/* Dashboard only after explicit auth-ready — never flash during sign-in */
#portalApp { visibility:hidden; pointer-events:none; }
body.auth-ready #portalApp { visibility:visible; pointer-events:auto; }
.auth-gate {
  position:fixed; inset:0; z-index:200;
  display:grid; place-items:center;
  padding:max(env(safe-area-inset-top),24px) 20px max(env(safe-area-inset-bottom),24px);
  background:var(--black);
}
.auth-gate[hidden] { display:none !important; }
.auth-card {
  width:100%; max-width:360px; text-align:center;
  background:var(--panel); border:1px solid var(--line);
  border-radius:var(--radius, 16px); padding:32px 24px 26px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 16px 40px rgba(0,0,0,.08);
}
[data-theme="dark"] .auth-card {
  box-shadow:0 24px 60px rgba(0,0,0,.45);
  border-color: var(--line-2);
}
.auth-logo-stack {
  position:relative; height:44px; margin:0 auto 18px;
  display:grid; line-height:0;
}
.auth-logo-stack .logo {
  grid-area:1/1; height:44px; width:auto; max-width:min(85vw,300px);
  object-fit:contain; object-position:center;
}
.auth-logo-stack .logo-light { visibility:hidden; }
[data-theme="light"] .auth-logo-stack .logo-dark { visibility:hidden; }
[data-theme="light"] .auth-logo-stack .logo-light { visibility:visible; }

@media (max-width:640px) {
  .auth-logo-stack {
    width:100%;
    height:35px;
    margin:0 auto 16px;
    justify-items:center;
    place-items:center;
  }
  .auth-logo-stack .logo {
    height:35px;
    width:auto;
    max-width:min(88vw, 280px);
    margin:0 auto;
    object-fit:contain;
    object-position:center center;
    justify-self:center;
  }
}
.auth-card h2 {
  font-family:var(--font-display, -apple-system, BlinkMacSystemFont, sans-serif); font-weight:700;
  font-size:1.45rem; letter-spacing:-.03em; margin-bottom:8px;
}
  .auth-sub { color:var(--ink-2); font-size:.92rem; margin-bottom:20px; line-height:1.45; }
  .auth-sub.auth-busy { color:var(--cyan); margin-bottom:12px; }
.auth-google-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  width:100%; border:1px solid var(--line-2); cursor:pointer;
  font-family:var(--font-display, -apple-system, BlinkMacSystemFont, sans-serif); font-weight:600; font-size:1rem;
  background:var(--white); color:var(--ink-1);
  border-radius:14px; padding:14px 16px;
  transition:background .2s, transform .15s;
}
.auth-google-btn:active { transform:scale(.98); }
.auth-google-btn:disabled { opacity:.55; cursor:default; }
@media(hover:hover){ .auth-google-btn:hover:not(:disabled){ background:var(--panel-hover, #EFEFF4); } }
.auth-google-btn svg { width:20px; height:20px; flex:none; }
.auth-help { margin-top:14px; }
.auth-help-copy {
  color:var(--ink-2); font-size:.88rem; line-height:1.45; margin:0 0 10px;
}
.auth-help-copy b { color:var(--ink-1); font-weight:650; }
.auth-open-link {
  display:inline-block;
  color:var(--cyan);
  font-size:.9rem;
  font-weight:600;
  text-decoration:none;
  border-bottom:1px dashed rgba(84,213,245,.45);
  line-height:1.45;
}
.auth-open-link:active { opacity:.85; }
@media(hover:hover){ .auth-open-link:hover{ opacity:.9; } }
.auth-err { color:var(--red, #FF3B30); font-size:.85rem; margin-top:14px; line-height:1.4; }
