:root {
    --cert-red: var(--ipaomtk-red, #e11d2f);
    --cert-red-dark: var(--ipaomtk-red-dark, #9f1021);
    --cert-gold: var(--ipaomtk-gold, #f5b11a);
    --cert-gold-soft: var(--ipaomtk-gold-soft, #fff1b8);
}

.ipaomtk-cert-launcher { position: fixed; right: 1rem; bottom: 1rem; z-index: 70; border: 1px solid rgba(245,177,26,.58); border-radius: 999px; padding: .85rem 1.1rem; background: linear-gradient(135deg,var(--cert-red),var(--cert-red-dark)); color: #fff; font: 900 .9rem/1 system-ui,sans-serif; box-shadow: 0 14px 34px rgba(159,16,33,.42),inset 0 1px 0 rgba(255,255,255,.18); cursor: pointer; transition: .2s ease; }
.ipaomtk-cert-launcher:hover,.ipaomtk-cert-launcher:focus-visible { color: var(--cert-gold-soft); transform: translateY(-2px); }
.ipaomtk-cert-launcher.is-ready { color: var(--cert-gold-soft); border-color: var(--cert-gold); }
.ipaomtk-cert-modal[hidden] { display: none; }
.ipaomtk-cert-modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 1rem; background: rgba(3,6,13,.82); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.ipaomtk-cert-modal__dialog { width: min(100%,31rem); max-height: calc(100vh - 2rem); overflow-y: auto; border: 1px solid rgba(245,177,26,.5); border-radius: 1.4rem; padding: 1.5rem; background: radial-gradient(circle at top right,rgba(225,29,47,.22),transparent 42%),linear-gradient(145deg,#111018,#10090c 62%,#240b11); color: #fff; box-shadow: 0 28px 80px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,241,184,.12); }
.ipaomtk-cert-modal__head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.ipaomtk-cert-modal h2 { margin: 0; color: var(--cert-gold); font-size: 1.4rem; font-weight: 950; }
.ipaomtk-cert-modal p { margin: .55rem 0 1.2rem; color: #ddd3b6; font-size: .92rem; line-height: 1.55; }
.ipaomtk-cert-modal__close { width: 2.4rem; height: 2.4rem; flex: 0 0 auto; border: 1px solid rgba(245,177,26,.32); border-radius: .75rem; background: rgba(255,255,255,.05); color: var(--cert-gold-soft); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.ipaomtk-cert-modal label { display: grid; gap: .45rem; margin: .9rem 0; color: var(--cert-gold-soft); font-size: .88rem; font-weight: 850; }
.ipaomtk-cert-modal input { width: 100%; box-sizing: border-box; border: 1px solid rgba(245,177,26,.4); border-radius: .8rem; padding: .78rem; background: rgba(3,6,13,.74); color: #fff; }
.ipaomtk-cert-modal input:focus { border-color: var(--cert-gold); outline: 3px solid rgba(245,177,26,.15); }
.ipaomtk-cert-modal__submit { width: 100%; margin-top: .55rem; border: 1px solid rgba(245,177,26,.65); border-radius: .85rem; padding: .9rem; background: linear-gradient(135deg,var(--cert-red),var(--cert-red-dark)); color: #fff; font-weight: 950; box-shadow: 0 12px 28px rgba(159,16,33,.34); cursor: pointer; }
.ipaomtk-cert-modal__submit:hover,.ipaomtk-cert-modal__submit:focus-visible { color: var(--cert-gold-soft); }
.ipaomtk-cert-modal__status { min-height: 1.25rem; margin: .75rem 0 0 !important; color: var(--cert-gold-soft) !important; font-size: .85rem !important; }
.ipaomtk-cert-modal__status.is-error { color: #ff6674 !important; }
@media (max-width:480px) { .ipaomtk-cert-launcher { right: .75rem; bottom: .75rem; } .ipaomtk-cert-modal__dialog { padding: 1.2rem; } }
