html.apv-auth-open { overflow: hidden; }
.apv-auth-modal { font-family: var(--ap-ui-font); line-height: 1.65; }
.apv-google-area { margin: 0 0 12px; }
.apv-google-button-wrap { position: relative; width: 100%; max-width: 400px; height: 46px; margin: 0 auto; overflow: hidden; border-radius: 13px; }
.apv-google-button-face { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 10px; height: 46px; border-radius: 13px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.12); color: #fff; font-family: var(--ap-ui-font); font-size: 13px; font-weight: 900; line-height: 1; letter-spacing: .2px; box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 10px 20px rgba(0,0,0,.18); pointer-events: none; transition: background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.apv-google-icon { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; background: #fff; }
/* The official Google control handles pointer/keyboard input; the face is decorative. */
#apv-google-button { position: absolute; inset: 0; z-index: 1; width: 100%; height: 46px; opacity: .001; overflow: hidden; }
#apv-google-button > div, #apv-google-button iframe { width: 100% !important; max-width: 100% !important; height: 46px !important; }
.apv-google-button-wrap:hover .apv-google-button-face, .apv-google-button-wrap:focus-within .apv-google-button-face { background: rgba(255,255,255,.085); border-color: rgba(204,102,255,.32); box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 12px 24px rgba(0,0,0,.22), 0 0 18px rgba(204,102,255,.10); }
.apv-google-button-wrap:focus-within { outline: 2px solid #fff; outline-offset: 3px; }
.apv-google-button-wrap:not(.is-ready) .apv-google-button-face { opacity: .55; }
.apv-google-message { color: #c7c8d4; font-size: 12px; line-height: 1.5; text-align: center; margin: 12px 0; }
.apv-auth-divider { display: flex; align-items: center; gap: 10px; color: #8d88a3; font-size: 11px; margin: 13px 0 0; }
.apv-auth-divider::before, .apv-auth-divider::after { content: ''; height: 1px; background: #ffffff14; flex: 1; }
.apv-google-link { margin-top: 14px; }
.apv-auth-modal { width: min(430px, calc(100vw - 28px)); max-width: none; max-height: calc(100dvh - 32px); padding: 0; border: 1px solid #ffffff14; border-radius: 28px; background: #090c16; color: #fff; box-shadow: 0 22px 60px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.04); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #ffffff30 transparent; }
.apv-auth-modal::backdrop { background: #000b; backdrop-filter: blur(5px); }
.apv-auth-card { position: relative; padding: 30px 24px 24px; background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 2px, transparent 2px 14px), radial-gradient(circle at top left, rgba(65,150,255,.10), transparent 35%), radial-gradient(circle at bottom right, rgba(255,24,70,.09), transparent 38%), linear-gradient(180deg, rgba(14,18,35,.96), rgba(7,9,18,.98)); }
.apv-auth-modal [hidden] { display: none !important; }
.apv-auth-close { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 36px; height: 36px; padding: 8px; border: 0; border-radius: 50%; color: #bfc1ce; background: transparent; cursor: pointer; }
.apv-auth-close:hover { color: #fff; background: #ffffff0d; }
.apv-auth-close svg { width: 20px; height: 20px; }
.apv-auth-heading { text-align: center; }
.apv-auth-badge { display: inline-block; padding: 7px 14px; margin-bottom: 14px; border: 1px solid rgba(200,145,255,.25); border-radius: 999px; background: rgba(130,75,255,.20); color: #f1c8ff; font-size: 12px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.apv-auth-heading h2 { margin: 0; font-family: 'Poppins', system-ui, sans-serif; font-size: 31px; font-weight: 900; line-height: 1.08; letter-spacing: -.04em; }
.apv-auth-heading p { max-width: 310px; margin: 12px auto 22px; color: #c8c4d8; font-size: 14px; font-weight: 500; line-height: 1.45; }
.apv-auth-tabs { display: grid; grid-template-columns: 1fr 1fr; padding: 5px; border: 1px solid #ffffff0f; border-radius: 17px; background: rgba(5,6,13,.42); margin-bottom: 16px; }
.apv-auth-tabs button { min-height: 44px; padding: 0 8px; border: 0; border-radius: 13px; background: transparent; color: #beb8d2; font-family: 'Poppins', system-ui, sans-serif; font-size: 15px; font-weight: 900; cursor: pointer; }
.apv-auth-tabs button[aria-selected="true"] { color: #fff; background: linear-gradient(90deg, #9c3dff, #ff2d6d); box-shadow: 0 10px 24px rgba(255,45,109,.22); }
.apv-auth-form { display: grid; gap: 8px; }
.apv-auth-form > label { color: #bcb7cf; font-size: 12px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.apv-auth-form input:not([type="checkbox"]) { display: block; width: 100%; min-height: 48px; padding: 0 14px; margin: 0 0 6px; border: 1px solid #ffffff14; border-radius: 14px; background: #050913; box-shadow: inset 0 1px 0 #ffffff07; color: #fff; font: inherit; font-size: 15px; }
.apv-auth-form input:not([type="checkbox"]):focus { outline: none; border-color: rgba(255,45,109,.45); box-shadow: 0 0 0 3px rgba(255,45,109,.10); }
.apv-auth-password { position: relative; }
.apv-auth-password input { padding-right: 64px !important; }
.apv-auth-password button { position: absolute; top: 0; right: 5px; min-height: 48px; padding: 0 10px; color: #aeb0c2; font: inherit; font-size: 11px; background: transparent; border: 0; cursor: pointer; }
.apv-auth-options { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 2px 0 10px; color: #aeb0c2; font-size: 11px; }
.apv-auth-options label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.apv-auth-options input { margin: 0; width: 14px; height: 14px; accent-color: var(--ap-accent); }
.apv-auth-options a, .apv-auth-switch button { color: #dfa5ff; text-decoration: none; }
.apv-auth-options a:hover, .apv-auth-switch button:hover { color: #fff; text-decoration: underline; }
.apv-auth-submit { width: 100%; min-height: 52px; margin-top: 6px; padding: 10px; border: 0; border-radius: 16px; background: linear-gradient(90deg, #ff2d55, #ff1744); color: #fff; box-shadow: 0 12px 28px rgba(255,23,68,.24); font-family: 'Poppins', system-ui, sans-serif; font-size: 15px; font-weight: 900; letter-spacing: .02em; cursor: pointer; }
.apv-auth-submit:hover { filter: brightness(1.08); }
.apv-auth-submit:disabled { cursor: wait; opacity: .65; }
.apv-auth-switch { text-align: center; margin: 18px 0 0; color: #9c9fb2; font-size: 14px; font-weight: 800; }
.apv-auth-switch button { border: 0; background: transparent; padding: 0 2px; font: inherit; font-weight: 800; cursor: pointer; }
.apv-auth-hint { color: #969aad; font-size: 11px; margin: -4px 0 4px; }
.apv-auth-message { margin: 0; padding: 10px 12px; border: 1px solid #ff819733; border-radius: 10px; background: #ff456214; color: #ffc1cc; font-size: 12px; line-height: 1.5; }
.apv-auth-message.is-success { border-color: #6bcaa653; background: #28765022; color: #c9f4dc; }
.apv-auth-unavailable { font-size: 13px; color: #c8c4d8; }
.apv-auth-modal button:focus-visible, .apv-auth-modal a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (max-width: 480px) {
  .apv-auth-modal { border-radius: 23px; max-height: calc(100dvh - 24px); }
  .apv-auth-card { padding: 28px 20px 22px; }
  .apv-auth-heading h2 { font-size: 28px; }
}

.apv-auth-divider { font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
@media (max-width: 600px) { .apv-auth-heading h2 { font-size: 28px; } .apv-auth-form input:not([type=checkbox]) { font-size: 16px; } }
