/* Shared design for the public home and sign-in pages. Public pages default to light. */
:root[data-theme-scope="public"] {
  --bg:#f7faf9; --card:#fff; --text:#193137; --muted:#62757a; --faint:#65787c; --border:#dfe9e5;
  --accent:#116c60; --accent-bg:#e9f5ee; --accent-ink:#fff; --good:#14724f; --good-bg:#edf8f1;
  --bad:#b63f39; --bad-bg:#fcefeb; --input:#fbfdfc; --soft:#eef4f1; --deep:#123a35;
  --subtle:#e1eae6; --on-deep:#f0f9f4; --on-deep-muted:#bed8cc; --public-shadow:0 20px 70px rgba(27,66,52,.07);
}
:root[data-theme-scope="public"][data-color-scheme="dark"] {
  --bg:#101d20; --card:#17292c; --text:#e5efeb; --muted:#a5bcb7; --faint:#9cb3af; --border:#2c4241;
  --accent:#7dd8b4; --accent-bg:#203d32; --accent-ink:#103025; --good:#83d5ad; --good-bg:#203b2e;
  --bad:#ffa69b; --bad-bg:#432a27; --input:#142326; --soft:#1b3031; --deep:#0c2925;
  --subtle:#334c47; --on-deep:#effaf4; --on-deep-muted:#bfd9cc; --public-shadow:0 20px 70px rgba(0,0,0,.16);
}
html { scroll-behavior:smooth; }
.public-site { margin:0; font:14px/1.65 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; }
.public-site main:focus { outline:none; }
.public-site a { color:var(--accent); text-underline-offset:4px; }
.container { width:min(1180px,calc(100% - 72px)); margin:0 auto; }
.brand { display:inline-flex; align-items:center; gap:9px; color:var(--text) !important; text-decoration:none; font-size:23px; font-weight:800; letter-spacing:-.9px; line-height:1; white-space:nowrap; }
.brand-dot { width:5px; height:5px; align-self:flex-start; margin:2px 0 0 -5px; background:var(--accent); border-radius:50%; }
.site-header { position:sticky; top:0; z-index:20; background:var(--bg); border-bottom:1px solid var(--border); }
.header-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:26px; }
.site-nav,.header-actions { display:flex; align-items:center; gap:27px; }
.site-nav { margin-left:auto; }
.site-nav a,.login-link { color:var(--muted) !important; text-decoration:none; font-size:12px; font-weight:500; white-space:nowrap; }
.site-nav a:hover,.login-link:hover { color:var(--accent) !important; }
.header-actions { gap:19px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:17px; font-size:13px; font-weight:600; line-height:1.4; padding:14px 20px; border:1px solid var(--border); border-radius:8px; text-decoration:none; cursor:pointer; min-height:46px; transition:background .15s,border-color .15s,transform .15s; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.btn.primary:hover { filter:brightness(1.07); }
.btn.secondary { background:var(--card); color:var(--text); }
.btn.secondary:hover { border-color:var(--accent); color:var(--accent); }
.btn.small { font-size:11px; padding:10px 14px; min-height:38px; gap:11px; }
.btn:disabled { opacity:.6; cursor:wait; }
.theme-toggle { display:grid; place-items:center; width:34px; height:34px; padding:8px; border:1px solid var(--border); background:var(--card); border-radius:50%; color:var(--muted); flex:none; }
.theme-toggle:hover { color:var(--accent); border-color:var(--accent); }
.theme-toggle svg { width:17px; height:17px; }
.theme-sun { display:none; }
[data-color-scheme="dark"] .theme-moon { display:none; }
[data-color-scheme="dark"] .theme-sun { display:block; }
.mobile-label { display:none; }
.eyebrow { display:block; margin:0 0 13px; font-size:9px; font-weight:600; letter-spacing:.13em; line-height:1.6; color:var(--accent); }
.public-site h1,.public-site h2,.public-site h3,.public-site p { margin-top:0; }
.public-site h2 { font-size:39px; line-height:1.18; letter-spacing:-1.5px; font-weight:600; }
.public-site input { padding:12px 14px; border-radius:7px; border:1px solid var(--border); background:var(--input); color:var(--text); min-height:44px; font-size:13px; width:100%; }
.public-site input:focus { outline:3px solid var(--accent-bg); border-color:var(--accent); }
.public-site label { display:grid; gap:7px; font-size:12px; font-weight:500; }
.public-site .hint { font-weight:400; font-size:10px; color:var(--muted); line-height:1.6; }
.public-site input[aria-invalid=true] { border-color:var(--bad); }
.field-error { color:var(--bad); font-size:11px; font-weight:400; }
.form-error { color:var(--bad); background:var(--bad-bg); border-radius:7px; padding:11px 13px; margin:0; font-size:12px; line-height:1.6; }
.skip-link { position:fixed; left:20px; top:-100px; z-index:100; background:var(--card); color:var(--accent); border:1px solid var(--accent); border-radius:7px; padding:10px 14px; }
.skip-link:focus { top:12px; }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
@media (max-width:1000px) { .site-nav { gap:18px; } .header-inner { gap:20px; } .container { width:calc(100% - 48px); } .header-actions { gap:13px; } }
@media (max-width:800px) { .site-nav { display:none; } .header-inner { min-height:72px; } }
@media (max-width:520px) { .container { width:calc(100% - 36px); } .header-inner { gap:10px; min-height:68px; } .brand { font-size:20px; gap:7px; letter-spacing:-.7px; } .brand img { width:28px; height:28px; } .header-actions { gap:11px; } .header-actions .btn { padding:8px 10px; min-height:34px; font-size:10px; gap:8px; } .desktop-label { display:none; } .mobile-label { display:inline; } .login-link { font-size:11px; } .theme-toggle { width:30px; height:30px; padding:7px; } .public-site h2 { font-size:31px; letter-spacing:-1px; } }
@media (max-width:359px) { .header-actions { gap:8px; } .header-actions .btn>span:last-child { display:none; } .brand { font-size:18px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
