/* Shared signup/sign-in overlay and premium launcher — available on every page. */
.auth-overlay {
  width: min(100% - 32px, 570px);
  max-width: 570px;
  max-height: min(88dvh, 760px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--border-strong);
  border-radius: 20px;
  background: transparent;
  color: var(--text);
  overflow: visible;
  box-shadow: 0 32px 110px rgba(0,0,0,.72);
}
.auth-overlay:not([open]) { display: none; }
.auth-overlay [data-auth-panel][hidden] { display: none!important; }
.auth-overlay::backdrop { background: rgba(3,3,8,.78); backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
.auth-overlay__sheet { max-height: inherit; overflow: hidden auto; border-radius: inherit; background: radial-gradient(24rem 16rem at 92% -8%,rgba(124,92,255,.2),transparent 68%),var(--surface); }
.auth-overlay__grab { display: none; }
.auth-overlay__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 23px 24px 17px; border-bottom: 1px solid var(--border); }
.auth-overlay__eyebrow { display: block; margin-bottom: 5px; color: var(--lime); font: 800 .6rem/1.2 var(--font-mono); letter-spacing: .09em; text-transform: uppercase; }
.auth-overlay__head h2 { margin: 0; font-size: clamp(1.45rem,4vw,2rem); letter-spacing: -.035em; }
.auth-overlay__close { display: grid; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; place-items: center; border: 1px solid var(--border); border-radius: 50%; background: var(--surface-2); color: var(--text-muted); }
.auth-overlay__close:hover { border-color: var(--accent); color: var(--text); }
.auth-overlay__body { padding: 18px 24px 24px; }
.auth-overlay__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-bottom: 18px; padding: 4px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg); }
.auth-overlay__tabs button { min-height: 39px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: var(--text-muted); font-size: .78rem; font-weight: 800; }
.auth-overlay__tabs button[aria-current="true"] { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
.auth-overlay__choice > p { margin: 0 0 15px; color: var(--text-muted); font-size: .78rem; line-height: 1.55; text-align: center; }
.auth-overlay__provider { position: relative; display: flex; width: 100%; min-height: 49px; align-items: center; justify-content: center; gap: 10px; padding: 10px 15px; border: 1px solid var(--border-strong); border-radius: 999px; background: var(--surface-2); color: var(--text); font-size: .8rem; font-weight: 800; }
.auth-overlay__provider:hover { border-color: var(--accent); background: color-mix(in srgb,var(--surface-2) 84%,var(--accent-soft)); }
.auth-overlay__provider:disabled { opacity: .5; cursor: not-allowed; }
.auth-overlay__provider > svg:first-child { flex: 0 0 20px; width: 20px; height: 20px; }
.auth-overlay__provider--email > svg:last-child { position: absolute; right: 15px; }
.auth-overlay__divider { display: flex; align-items: center; gap: 11px; margin: 13px 0; color: var(--text-dim); font-size: .66rem; }
.auth-overlay__divider::before,.auth-overlay__divider::after { content: ""; height: 1px; flex: 1; background: var(--border); }
.auth-overlay__legal { margin: 14px 0 0; color: var(--text-dim); font-size: .64rem; line-height: 1.5; text-align: center; }
.auth-overlay__legal a { color: var(--accent-text); text-decoration: underline; text-underline-offset: 2px; }
.auth-overlay__back { display: inline-flex; align-items: center; gap: 5px; margin: 0 0 14px; padding: 0; border: 0; background: transparent; color: var(--text-muted); font-size: .72rem; font-weight: 800; }
.auth-overlay__form { display: grid; gap: 13px; }
.auth-overlay__signup-fields,.auth-overlay__credentials { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.auth-overlay__form label:not(.auth-overlay__remember) { display: grid; min-width: 0; gap: 6px; color: var(--text-muted); font-size: .7rem; font-weight: 800; }
.auth-overlay__form input[type="text"],.auth-overlay__form input[type="email"],.auth-overlay__form input[type="password"] { width: 100%; min-width: 0; min-height: 46px; padding: 0 13px; border: 1px solid var(--border-strong); border-radius: 10px; outline: 0; background: var(--bg); color: var(--text); font: 500 .8rem/1 var(--font-body); }
.auth-overlay__form input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.auth-overlay__password { position: relative; display: block; }
.auth-overlay__password input { padding-right: 45px!important; }
.auth-overlay__password button { position: absolute; top: 50%; right: 5px; display: grid; width: 36px; height: 36px; padding: 0; place-items: center; border: 0; border-radius: 8px; background: transparent; color: var(--text-dim); transform: translateY(-50%); }
.auth-overlay__remember { display: flex; align-items: flex-start; gap: 9px; color: var(--text-muted); font-size: .68rem; line-height: 1.45; cursor: pointer; }
.auth-overlay__remember input { flex: 0 0 auto; width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--accent); }
.auth-overlay__status { min-height: 18px; margin: 0; color: #ff8793; font-size: .7rem; line-height: 1.45; }
.auth-overlay__submit { display: flex; min-height: 48px; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--accent); border-radius: 11px; background: var(--accent-solid); color: #fff; font-size: .8rem; font-weight: 850; }
.auth-overlay__submit[disabled] { opacity: .7; cursor: wait; }
.auth-overlay__spinner { display: none; width: 17px; height: 17px; flex: 0 0 17px; border: 2px solid rgba(255,255,255,.32); border-top-color: #fff; border-radius: 50%; animation: auth-overlay-spin .65s linear infinite; }
.is-loading > .auth-overlay__spinner,.auth-overlay__provider.is-loading .auth-overlay__spinner { display: block; }
.auth-overlay__provider.is-loading > svg { display: none; }
.auth-overlay__forgot { color: var(--accent-text); font-size: .7rem; font-weight: 800; text-align: center; }
.auth-overlay__google-profile { display: flex; align-items: center; gap: 11px; margin-bottom: 16px; padding: 12px; border: 1px solid var(--border); border-radius: 11px; background: var(--bg); }
.auth-overlay__google-profile img,.auth-overlay__google-avatar { display: grid; flex: 0 0 43px; width: 43px; height: 43px; place-items: center; overflow: hidden; border-radius: 50%; background: var(--accent-soft); object-fit: cover; }
.auth-overlay__google-profile span { min-width: 0; }
.auth-overlay__google-profile strong,.auth-overlay__google-profile small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.auth-overlay__google-profile small { color: var(--text-muted); font-size: .68rem; }
.auth-overlay__success { display: grid; min-height: 245px; place-items: center; align-content: center; gap: 10px; text-align: center; }
.auth-overlay__success > span { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(212,255,63,.3); border-radius: 50%; background: rgba(212,255,63,.08); color: var(--lime); }
.auth-overlay__success h3,.auth-overlay__success p { margin: 0; }
.auth-overlay__success p { color: var(--text-muted); font-size: .78rem; }
.auth-overlay__success i { display: block; width: min(250px,70%); height: 3px; overflow: hidden; border-radius: 3px; background: var(--border); }
.auth-overlay__success i::after { content: ""; display: block; width: 100%; height: 100%; background: var(--lime); transform-origin: left; animation: auth-overlay-progress 1.35s linear both; }
.auth-overlay-launcher { position: fixed; z-index: 10012; left: 12px; bottom: max(12px,env(safe-area-inset-bottom)); display: none; align-items: center; gap: 8px; min-height: 43px; padding: 8px 14px; border: 1px solid var(--accent); border-radius: 999px; background: var(--accent-solid); color: #fff; box-shadow: 0 15px 38px rgba(0,0,0,.42); font-size: .74rem; font-weight: 850; }
.auth-overlay-launcher.is-visible { display: inline-flex; }

.premium-float { position: fixed; z-index: 10010; top: calc(var(--header-h,64px) + 12px); right: 12px; bottom: auto; display: inline-flex; width: max-content; max-width: calc(100vw - 24px); min-width: max-content; min-height: 46px; flex: none; align-items: center; gap: 8px; padding: 7px 15px 7px 8px; border: 1px solid rgba(255,204,75,.48); border-radius: 999px; background: linear-gradient(135deg,rgba(29,19,48,.98),rgba(68,34,112,.98)); color: #fff; font-size: .76rem; font-weight: 850; line-height: 1; white-space: nowrap; text-decoration: none; cursor: grab; touch-action: none; user-select: none; box-shadow: 0 12px 34px rgba(0,0,0,.38),0 0 0 1px rgba(139,92,246,.2); backdrop-filter: blur(12px); animation: premium-global-drift 3.4s ease-in-out infinite; transition: left .42s cubic-bezier(.2,.8,.2,1),top .42s cubic-bezier(.2,.8,.2,1),transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.premium-float span { display: block; flex: 0 0 auto; min-width: max-content; white-space: nowrap; }
.premium-float img { width: 29px; height: 29px; flex: 0 0 29px; object-fit: contain; background: transparent; filter: drop-shadow(0 3px 5px rgba(0,0,0,.32)); }
.premium-float:hover { border-color: rgba(255,214,91,.9); color: #fff; transform: translateY(-2px); }
.premium-float.is-dragging { cursor: grabbing; animation: none; translate: 0 0; transition: none; }
.premium-float.is-returning { animation: none; translate: 0 0; }
@keyframes premium-global-drift { 0%,100%{translate:0 0} 50%{translate:0 -4px} }
@keyframes auth-overlay-spin { to{transform:rotate(360deg)} }
@keyframes auth-overlay-progress { from{transform:scaleX(0)} to{transform:scaleX(1)} }

.premium-welcome{inset:0;width:min(92vw,510px);max-width:510px;margin:auto;padding:0;overflow:visible;border:1px solid rgba(255,255,255,.12);border-radius:34px;background:transparent;color:#fff;box-shadow:0 42px 120px rgba(0,0,0,.8),0 0 70px rgba(112,45,255,.2)}
.premium-welcome:not([open]){display:none}.premium-welcome::backdrop{background:rgba(3,3,8,.86);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px)}
.premium-welcome__card{position:relative;display:flex;min-height:min(720px,88dvh);flex-direction:column;overflow:hidden;padding:clamp(30px,6vw,48px);border-radius:inherit;background:radial-gradient(28rem 22rem at 4% 0,rgba(119,24,255,.78),transparent 60%),radial-gradient(22rem 18rem at 98% 100%,rgba(139,92,246,.42),transparent 70%),linear-gradient(155deg,#16101f 0%,#0d0d13 46%,#111018 100%);isolation:isolate}
.premium-welcome__card:before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:linear-gradient(120deg,rgba(255,255,255,.12),transparent 24%,transparent 76%,rgba(255,255,255,.05));pointer-events:none}
.premium-welcome__graphic{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none}.premium-welcome__graphic span{position:absolute;border:1px solid rgba(255,255,255,.075);border-radius:50%}.premium-welcome__graphic span:nth-child(1){width:340px;height:340px;left:-205px;top:-205px;box-shadow:0 0 0 44px rgba(255,255,255,.018),0 0 0 92px rgba(255,255,255,.012)}.premium-welcome__graphic span:nth-child(2){width:260px;height:260px;right:-170px;bottom:-120px;box-shadow:0 0 0 50px rgba(124,92,255,.03)}.premium-welcome__graphic span:nth-child(3){width:7px;height:7px;right:19%;top:31%;border:0;background:var(--lime);box-shadow:0 0 22px var(--lime)}
.premium-welcome__close{position:absolute;z-index:3;top:18px;right:18px;display:grid;width:40px;height:40px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:rgba(8,8,14,.56);color:#dedce6;backdrop-filter:blur(10px);transition:transform .2s ease,border-color .2s ease}.premium-welcome__close:hover{border-color:rgba(255,255,255,.35);transform:rotate(7deg)}
.premium-welcome__head{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;padding-right:44px}.premium-welcome__eyebrow{color:rgba(255,255,255,.74);font:650 clamp(.78rem,2vw,.92rem)/1.2 var(--font-body);letter-spacing:.13em;text-transform:uppercase}.premium-welcome__popular{display:inline-flex;min-height:42px;align-items:center;gap:7px;padding:9px 16px;border:1px solid rgba(255,255,255,.17);border-radius:999px;background:linear-gradient(135deg,#f3a6ff,#c77cff);color:#291335;font-size:.78rem;font-weight:900;box-shadow:0 11px 28px rgba(181,76,255,.2)}
.premium-welcome__price{display:flex;align-items:flex-end;gap:10px;margin:30px 0 24px}.premium-welcome__price strong{font-family:var(--font-display);font-size:clamp(3.6rem,13vw,6rem);font-weight:500;line-height:.82;letter-spacing:-.07em}.premium-welcome__price span{margin-bottom:7px;color:#e8e6ed;font-size:1rem}
.premium-welcome__rule{height:1px;background:linear-gradient(90deg,rgba(255,255,255,.72),rgba(255,255,255,.2))}
.premium-welcome__benefits{display:grid;gap:18px;margin:25px 0 34px;list-style:none}.premium-welcome__benefits li{display:flex;align-items:center;gap:13px;color:#f1eff5;font-size:clamp(.86rem,2vw,1rem);line-height:1.35}.premium-welcome__benefits li>span{display:grid;flex:0 0 28px;width:28px;height:28px;place-items:center;border-radius:50%;background:#fff;color:#16101f;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.premium-welcome__actions{display:grid;gap:10px;margin-top:auto}.premium-welcome__actions a{display:flex;min-height:64px;align-items:center;justify-content:center;gap:14px;padding:14px 20px;border:1px solid rgba(255,255,255,.17);border-radius:16px;background:linear-gradient(105deg,#6614da,#9866db);color:#fff;font-size:1rem;font-weight:850;box-shadow:0 18px 38px rgba(78,17,166,.34);transition:transform .2s ease,filter .2s ease}.premium-welcome__actions a:hover{color:#fff;filter:brightness(1.08);transform:translateY(-2px)}.premium-welcome__actions button{min-height:38px;padding:6px;border:0;background:transparent;color:rgba(255,255,255,.62);font-size:.72rem;font-weight:750}.premium-welcome__actions button:hover{color:#fff}

@media (max-width: 680px) {
  .premium-welcome{inset:auto 0 0;width:100%;max-width:none;max-height:94dvh;margin:auto 0 0;border-width:1px 0 0;border-radius:30px 30px 0 0}.premium-welcome__card{min-height:min(650px,94dvh);max-height:94dvh;overflow-y:auto;padding:29px 20px max(18px,env(safe-area-inset-bottom))}.premium-welcome__head{min-height:51px;padding-right:42px}.premium-welcome__popular{min-height:37px;padding:7px 12px;font-size:.7rem}.premium-welcome__price{margin:22px 0 20px}.premium-welcome__price strong{font-size:clamp(3.25rem,18vw,4.6rem)}.premium-welcome__price span{font-size:.82rem}.premium-welcome__benefits{gap:14px;margin:21px 0 25px}.premium-welcome__benefits li{font-size:.82rem}.premium-welcome__benefits li>span{flex-basis:25px;width:25px;height:25px}.premium-welcome__actions a{min-height:56px;border-radius:14px}
  .auth-overlay { inset: auto 0 0; width: 100%; max-width: none; max-height: min(92dvh,760px); margin: auto 0 0; border-width: 1px 0 0; border-radius: 32px 32px 0 0; transform: translateY(22px); opacity: 0; }
  .auth-overlay[open] { transform: translateY(0); opacity: 1; transition: transform .62s cubic-bezier(.22,1,.36,1),opacity .3s ease; }
  .auth-overlay__sheet { padding-bottom: env(safe-area-inset-bottom); }
  .auth-overlay__grab { display: block; width: 42px; height: 4px; margin: 9px auto 0; border-radius: 999px; background: var(--border-strong); }
  .auth-overlay__head { padding: 13px 17px 12px; }
  .auth-overlay__head h2 { font-size: 1.25rem; }
  .auth-overlay__body { padding: 14px 17px 18px; }
  .auth-overlay__signup-fields,.auth-overlay__credentials { grid-template-columns: 1fr; gap: 10px; }
  .auth-overlay__form { gap: 10px; }
  .auth-overlay__provider { min-height: 47px; }
  .premium-float { top: calc(var(--header-h,64px) + 8px); right: 9px; min-width: max-content; max-width: calc(100vw - 18px); min-height: 42px; padding: 6px 12px 6px 7px; font-size: .69rem; touch-action:pan-y; cursor:pointer; }
  .premium-float img { width: 27px; height: 27px; flex-basis: 27px; }
}

@media (prefers-reduced-motion: reduce) {
  .premium-float,.auth-overlay[open],.auth-overlay__success i::after { animation: none!important; transition: none!important; }
}
