/* Shared sign-up/sign-in panel. The existing authentication background stays intact. */
.auth-screen.auth-reference { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; height:100dvh; min-height:100dvh; padding:32px 20px; overflow-y:auto; overflow-x:hidden; background:transparent !important; }
.auth-screen.auth-reference .auth-card { position:relative; width:min(100%,540px); max-width:540px; margin:auto 0; padding:40px 42px 28px; border:1px solid #ffffff40 !important; border-radius:28px; background:radial-gradient(ellipse at 4% 0%,#a41a3933,transparent 38%),linear-gradient(145deg,#ffffff05,transparent 50%,#b4142910),#0b0f16c9 !important; box-shadow:inset 0 1px #ffbcc935,0 0 24px #df24440c,0 24px 90px #0007 !important; backdrop-filter:blur(20px) !important; -webkit-backdrop-filter:blur(20px) !important; color:#f7f7fa; transform:none; }
.auth-screen.auth-reference .auth-brand { justify-content:center; margin:0 0 25px; }
.auth-screen.auth-reference .auth-logo-img { width:270px; max-width:100%; height:auto; }
.auth-screen.auth-reference .auth-heading { text-align:center; margin-bottom:28px; }
.auth-screen.auth-reference .auth-heading h1 { margin:0; color:#f8f9fb; font-size:32px; line-height:1.2; font-weight:650; letter-spacing:-.045em; }
.auth-screen.auth-reference .auth-heading .auth-subtitle { display:block; margin:9px 0 0; color:#bfc3ce; font-size:14px; line-height:1.5; font-weight:400; letter-spacing:0; text-transform:none; white-space:normal; }
.auth-screen.auth-reference .auth-form { display:flex; flex-direction:column; width:100%; gap:0; }
.auth-screen.auth-reference .google-signin-panel { margin:0 0 24px; }
.auth-screen.auth-reference .google-signin-button { display:flex; align-items:center; justify-content:center; width:100%; max-width:400px; min-height:44px; margin-inline:auto; padding:0; background:transparent; border:0; border-radius:999px; overflow:visible; }
.auth-screen.auth-reference .google-signin-button:empty { display:none; }
.auth-screen.auth-reference .google-signin-fallback { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; max-width:400px; min-width:0; min-height:44px; margin:0 auto; padding:10px 16px; box-sizing:border-box; border:1px solid #dadce0; border-radius:999px; background:#fff; color:#3c4043; box-shadow:none; font-size:14px; font-weight:500; }
.auth-screen.auth-reference .google-signin-fallback span { min-width:0; white-space:nowrap; line-height:20px; }
.auth-screen.auth-reference .google-signin-fallback::before { content:none; }
.auth-screen.auth-reference .google-signin-fallback:disabled { opacity:.85; background:#fff; color:#3c4043; cursor:wait; }
.auth-screen.auth-reference .auth-google-mark { width:18px; height:18px; flex-shrink:0; }
.auth-screen.auth-reference .google-signin-divider { margin:23px 0 0; gap:18px; color:#aeb4bf; font-size:13px; line-height:18px; letter-spacing:0; text-transform:none; }
.auth-screen.auth-reference .google-signin-divider::before,.auth-screen.auth-reference .google-signin-divider::after { background:#ffffff16; }
.auth-screen.auth-reference .auth-entry { display:flex; flex-direction:row; align-items:center; gap:15px; min-height:72px; margin:0 0 12px; padding:12px 16px; border:1px solid #ffffff24; border-radius:14px; background:linear-gradient(120deg,#ffffff04,#ffffff02); box-shadow:inset 0 1px #ffffff03; transition:border-color .18s ease,box-shadow .18s ease; }
.auth-screen.auth-reference .auth-entry:focus-within { border-color:#ff76888f; box-shadow:0 0 0 2px #fb345323; }
.auth-screen.auth-reference .auth-entry-icon { flex-shrink:0; width:23px; height:23px; color:#aab0bc; }
.auth-screen.auth-reference .auth-entry-fields { display:flex; flex-direction:column; gap:3px; flex:1; min-width:0; text-align:left; }
.auth-screen.auth-reference .auth-entry .field-label { position:static; display:block; width:auto; height:auto; margin:0; padding:0; overflow:visible; clip-path:none; color:#d0d3db; font-size:13px; line-height:18px; letter-spacing:0; font-weight:400; }
.auth-screen.auth-reference #confirmGroup .field-label { margin:0; color:#d0d3db; font-size:13px; line-height:18px; font-weight:400; }
.auth-screen.auth-reference #authEmail,.auth-screen.auth-reference #authPassword,.auth-screen.auth-reference #authConfirmPassword { width:100%; min-height:22px; height:22px; margin:0; padding:0; border:0; border-radius:0; background:none; background-image:none; color:#f1f3f7; box-shadow:none; font:400 15px/22px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.auth-screen.auth-reference .auth-entry .field-input::placeholder { color:#838b99; opacity:1; }
.auth-screen.auth-reference .auth-entry .field-input:focus { outline:none; box-shadow:none; }
.auth-screen.auth-reference #authForm > .password-wrap::before,.auth-screen.auth-reference #confirmGroup > .password-wrap::before { content:none; }
.auth-screen.auth-reference #confirmGroup { margin:0; }
.auth-screen.auth-reference #confirmGroup .auth-entry { margin-bottom:0; }
.auth-screen.auth-reference .auth-entry .pw-toggle { position:static; display:grid; place-items:center; flex-shrink:0; width:36px; height:40px; min-height:40px; margin:0 -5px 0 0; padding:7px; transform:none; color:#a8aebb; border-radius:8px; background:transparent; }
.auth-screen.auth-reference .auth-entry .pw-toggle svg { width:21px; height:21px; }
.auth-screen.auth-reference .auth-entry .pw-toggle:hover { background:#ffffff08; color:#fff; }
.auth-screen.auth-reference #forgotPasswordBtn { min-height:34px; margin:0 0 4px; padding:0; color:#c1c6d0; font-size:13px; line-height:1.4; text-decoration:none; }
.auth-screen.auth-reference #forgotPasswordBtn:hover { color:#fff; text-decoration:underline; }
.auth-screen.auth-reference .auth-submit.fd-primary-action { display:flex; align-items:center; justify-content:center; width:100%; min-height:52px; margin-top:18px; padding:13px 20px; font:600 15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.auth-screen.auth-reference .auth-submit.fd-primary-action:disabled { opacity:.6; }
.auth-screen.auth-reference .auth-legal-notice { margin:20px 0 0; color:#a8aeb9; text-align:center; font-size:12px; line-height:1.75; }
.auth-screen.auth-reference .auth-legal-notice a { color:#c9ced8; text-decoration:underline; text-underline-offset:3px; }
.auth-screen.auth-reference .auth-tabs { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px 8px; min-height:0; margin:24px 0 0; padding:19px 0 0; border:0; border-top:1px solid #ffffff16; border-radius:0; background:none; box-shadow:none; color:#afb5c1; font-size:13px; line-height:1.5; }
.auth-screen.auth-reference .auth-mode-link,.auth-screen.auth-reference .auth-mode-link.active { flex:none; min-height:32px; width:auto; padding:3px 2px; border:0; border-radius:4px; background:none; box-shadow:none; color:#ff3154; font-size:14px; line-height:1.4; font-weight:500; text-decoration:none; }
.auth-screen.auth-reference .auth-mode-link:hover { color:#ff718b; text-decoration:underline; text-underline-offset:3px; background:none; }
.auth-screen.auth-reference :is(button,a):focus-visible { outline:2px solid #ff91a5; outline-offset:3px; }
.auth-screen.auth-reference .auth-error { margin:12px 0 0; padding:10px 12px; color:#ffd1dc; border:1px solid #f24b7040; background:#a91a3321; border-radius:9px; font-size:13px; line-height:1.45; }
.auth-screen.auth-reference .auth-error.auth-success { border-color:#5ad39b50; background:#153d2d9c; color:#dbffed; }
.auth-screen.auth-reference .auth-screen-close { position:fixed; top:max(12px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); min-width:44px; min-height:44px; z-index:2; }
.auth-screen.auth-reference .trial-context-banner { margin:0 0 20px; font-size:13px; line-height:1.5; }
.auth-screen.auth-reference .password-reset-heading h1 { font-size:28px; line-height:1.25; letter-spacing:-.03em; }
.auth-screen.auth-reference .password-reset-panel .auth-subtitle { margin:12px 0 24px; color:#bfc5cf; font-size:14px; line-height:1.6; }
.auth-screen.auth-reference :is(.password-reset-panel,.google-link-panel) .field-input { min-height:50px; padding:12px 14px; border:1px solid #ffffff30; border-radius:11px; background:#ffffff05; font-size:16px; }
.auth-screen.auth-reference .google-link-panel { margin-top:16px; padding:15px; border:1px solid #ffffff1f; border-radius:12px; background:#ffffff04; }
.auth-screen.auth-reference .google-link-copy { color:#bbc3cf; }
.auth-screen.auth-reference .google-signin-status { margin:8px 0 0; font-size:12px; color:#b8c0ce; }
.auth-screen.auth-reference.auth-keyboard-open { padding-bottom:calc(24px + env(safe-area-inset-bottom) + var(--auth-keyboard-gap,0px)); scroll-padding:20px 0 35vh; }
.auth-screen.auth-reference.auth-keyboard-open .auth-card { margin:0 auto; }
@media(max-width:700px) {
  .auth-screen.auth-reference { padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom)); }
  .auth-screen.auth-reference .auth-card { width:100%; max-width:420px; padding:30px 22px 25px; border-radius:24px; }
  .auth-screen.auth-reference .auth-brand { margin-bottom:21px; }
  .auth-screen.auth-reference .auth-logo-img { width:220px; max-width:100%; height:auto; }
  .auth-screen.auth-reference .auth-heading { margin-bottom:24px; }
  .auth-screen.auth-reference .auth-heading h1 { font-size:28px; }
  .auth-screen.auth-reference .auth-heading .auth-subtitle { margin-top:8px; font-size:13px; line-height:1.6; }
  .auth-screen.auth-reference .google-signin-panel { margin-bottom:21px; }
  .auth-screen.auth-reference .google-signin-button,.auth-screen.auth-reference .google-signin-fallback { min-height:44px; font-size:14px; }
  .auth-screen.auth-reference .google-signin-divider { margin-top:20px; }
  .auth-screen.auth-reference .auth-entry { gap:12px; min-height:66px; padding:10px 13px; margin-bottom:11px; border-radius:13px; }
  .auth-screen.auth-reference .auth-entry-icon { width:21px; height:21px; }
  .auth-screen.auth-reference .auth-entry .field-label,.auth-screen.auth-reference #confirmGroup .field-label { font-size:12px; line-height:17px; }
  .auth-screen.auth-reference #authEmail,.auth-screen.auth-reference #authPassword,.auth-screen.auth-reference #authConfirmPassword { font-size:16px; }
  .auth-screen.auth-reference .auth-submit.fd-primary-action { min-height:52px; margin-top:16px; }
  .auth-screen.auth-reference .auth-legal-notice { margin-top:18px; font-size:12px; line-height:1.6; }
  .auth-screen.auth-reference .auth-tabs { margin-top:22px; padding-top:17px; }
}
@media(max-width:700px) and (max-height:740px) {
  .auth-screen.auth-reference { padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom)); }
  .auth-screen.auth-reference .auth-card { padding:20px 20px 12px; }
  .auth-screen.auth-reference .auth-brand { margin-bottom:14px; }
  .auth-screen.auth-reference .auth-logo-img { width:200px; }
  .auth-screen.auth-reference .auth-heading { margin-bottom:20px; }
  .auth-screen.auth-reference .auth-heading h1 { font-size:26px; }
  .auth-screen.auth-reference .auth-heading .auth-subtitle { margin-top:6px; }
  .auth-screen.auth-reference .google-signin-panel { margin-bottom:14px; }
  .auth-screen.auth-reference .google-signin-button,.auth-screen.auth-reference .google-signin-fallback { min-height:44px; }
  .auth-screen.auth-reference .google-signin-divider { margin-top:17px; }
  .auth-screen.auth-reference .auth-entry { min-height:60px; padding:8px 12px; margin-bottom:10px; }
  .auth-screen.auth-reference .auth-legal-notice { margin-top:15px; }
  .auth-screen.auth-reference .auth-tabs { margin-top:14px; padding-top:12px; }
}
@media(prefers-reduced-motion:reduce) { .auth-screen.auth-reference,.auth-screen.auth-reference * { animation:none !important; transition:none !important; } }
