.aso-open { overflow: hidden; }
.aso-overlay { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 20px; background: rgba(8, 18, 28, .62); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; }
.aso-overlay.aso-visible { opacity: 1; visibility: visible; }
.aso-card { position: relative; width: min(92vw, 480px); padding: 42px 38px 32px; border-radius: 18px; background: #fff; color: #17212b; text-align: center; box-shadow: 0 24px 80px rgba(0,0,0,.3); transform: translateY(12px) scale(.98); transition: transform .2s ease; font-family: inherit; }
.aso-visible .aso-card { transform: translateY(0) scale(1); }
.aso-close { position: absolute; top: 10px; right: 14px; width: 36px; height: 36px; border: 0; padding: 0; background: transparent; color: #65717c; font-size: 30px; line-height: 34px; cursor: pointer; }
.aso-badge { display: inline-block; margin-bottom: 14px; padding: 7px 13px; border-radius: 999px; background: #e7f6fb; color: #087896; font-size: 14px; font-weight: 800; letter-spacing: .06em; }
.aso-card h2 { margin: 0 0 12px; color: #12354a; font-size: clamp(26px, 5vw, 36px); line-height: 1.12; }
.aso-message { margin: 0 auto 22px; max-width: 380px; color: #42515d; font-size: 18px; line-height: 1.5; }
.aso-claim { width: 100%; min-height: 52px; border: 0; border-radius: 9px; padding: 13px 20px; background: #087e9e; color: #fff; font-size: 17px; font-weight: 800; cursor: pointer; transition: background .15s ease, transform .15s ease; }
.aso-claim:hover { background: #066b86; transform: translateY(-1px); }
.aso-claim:disabled { opacity: .65; cursor: wait; }
.aso-status { margin-top: 15px; font-size: 15px; line-height: 1.45; }
.aso-success { color: #167344; font-weight: 700; }
.aso-error { color: #a22525; }
.aso-fine { margin-top: 18px; color: #76818a; font-size: 12px; line-height: 1.4; }
@media (max-width: 520px) { .aso-card { padding: 38px 22px 26px; } }
@media (prefers-reduced-motion: reduce) { .aso-overlay, .aso-card, .aso-claim { transition: none; } }
