.auth-page { min-height:100vh;background:var(--surface-subtle);color:var(--text); }
.auth-page-frame { min-height:100vh;padding:24px;display:flex;align-items:center;justify-content:center; }
.auth-page-width { width:100%;max-width:896px; }
.auth-stack { display:flex;flex-direction:column;gap:24px; }
.auth-card { overflow:hidden;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 16px 44px rgba(20,31,38,.09); }
.auth-card-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:0; }
.auth-form-stack { min-width:0; }
.auth-form { padding:32px; }
.auth-field-group { display:flex;flex-direction:column;gap:22px; }
.auth-heading { display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center; }
.auth-heading h1 { margin:4px 0 0;font-size:24px;line-height:1.25;font-weight:750;letter-spacing:0; }
.auth-heading p { margin:0;color:var(--text-muted);font-size:13px; }
.auth-wordmark { width:132px;margin:0 auto 9px;display:block;text-decoration:none; }
.auth-wordmark > img { width:100%;height:auto; }
.auth-field { min-width:0;display:flex;flex-direction:column;gap:7px;color:var(--text);font-size:13px;font-weight:650; }
.auth-field > small,.auth-password-hint { color:var(--text-muted);font-size:11px;line-height:1.45;font-weight:400; }
.auth-field input { width:100%;height:40px; }
.auth-label-row { display:flex;align-items:center;gap:12px; }
.auth-label-row > a { margin-left:auto;font-size:12px;font-weight:500; }
.auth-page a { color:var(--accent-dark);text-underline-offset:3px; }
.auth-password-wrap { position:relative;display:block; }
.auth-password-wrap input { padding-right:40px; }
.auth-password-toggle { position:absolute;right:3px;top:3px;width:34px;height:34px;padding:0;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:var(--text-muted);cursor:pointer; }
.auth-password-toggle:hover { background:var(--surface-subtle);color:var(--text); }
.auth-password-toggle svg { width:16px;height:16px; }
.auth-password-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.auth-password-hint { margin:-12px 0 0; }
.auth-primary { width:100%;min-height:40px;padding:8px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:#fff;font:inherit;font-size:13px;font-weight:650;cursor:pointer;transition:background 140ms ease,border-color 140ms ease,transform 120ms ease; }
.auth-primary:hover:not(:disabled) { border-color:var(--accent-dark);background:var(--accent-dark); }
.auth-primary:active:not(:disabled) { transform:scale(.992); }
.auth-primary:disabled { opacity:.7;cursor:wait; }
.auth-spinner { display:none;animation:spin .8s linear infinite; }
.auth-primary[data-loading="true"] .auth-spinner { display:block; }
.auth-primary[data-loading="true"] > span { opacity:.75; }
.auth-separator { position:relative;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:11px; }
.auth-separator::before { content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--border); }
.auth-separator > span { position:relative;padding:0 10px;background:var(--surface); }
.auth-oauth-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.auth-oauth { height:40px;padding:0;display:grid;place-items:center;border:1px solid var(--control-border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;transition:border-color 140ms ease,background 140ms ease,transform 120ms ease; }
.auth-oauth:hover:not(:disabled) { border-color:var(--control-border-hover);background:var(--surface-subtle); }
.auth-oauth:active:not(:disabled) { transform:scale(.98); }
.auth-oauth:disabled { opacity:.32;cursor:not-allowed; }
.auth-oauth svg { width:18px;height:18px; }
.auth-switch,.auth-legal { margin:0;text-align:center;color:var(--text-muted);font-size:12px;font-weight:400; }
.auth-error { margin:0;padding:9px 10px;border:1px solid color-mix(in srgb,var(--danger) 32%,transparent);border-radius:6px;background:color-mix(in srgb,var(--danger) 7%,white);color:var(--danger);font-size:12px;font-weight:500; }
.auth-visual { position:relative;min-height:600px;overflow:hidden;padding:54px 46px 36px;display:flex;flex-direction:column;border-left:1px solid #dce6f4;background:#edf3fb;color:#142640;isolation:isolate; }
.auth-visual::before { content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(67,101,158,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(67,101,158,.035) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 68%); }
.auth-visual-copy { position:relative;z-index:2;max-width:300px; }
.auth-visual-copy h2 { margin:0;font-size:30px;line-height:1.28;font-weight:690;letter-spacing:0; }
.auth-visual-copy p { margin:11px 0 0;color:#5c6d87;font-size:14px;line-height:1.6; }
.auth-visual-art { position:absolute;z-index:1;left:0;right:0;bottom:4px;height:430px; }
.auth-visual-art svg { position:absolute;inset:0;width:100%;height:100%;overflow:visible; }
.auth-visual-art path { fill:none;stroke-linecap:round; }
.auth-route-soft { stroke:#fff;stroke-width:54;opacity:.76; }
.auth-route-line { stroke-width:3;opacity:.78; }
.auth-route-glint { stroke:#fff;stroke-width:4;stroke-dasharray:72 760;animation:auth-route-flow 8s ease-in-out infinite; }
.auth-visual-mark { position:absolute;left:50%;top:44%;width:148px;height:148px;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 18px 22px rgba(42,79,148,.1)); }
@keyframes auth-route-flow { from { stroke-dashoffset:520; } to { stroke-dashoffset:-120; } }
.shell-theme-menu button { position:relative;width:24px;height:24px;padding:0;border:0;border-radius:5px;display:grid;place-items:center;background:var(--swatch);cursor:pointer;box-shadow:none; }
.shell-theme-menu button svg { width:14px;height:14px;color:#fff;opacity:0;stroke-width:3;pointer-events:none; }
.shell-theme-menu button.active { outline:0;box-shadow:none; }
.shell-theme-menu button.active svg { opacity:1; }
.shell-theme-menu button:focus-visible { outline:2px solid color-mix(in srgb,var(--swatch) 68%,#18211f);outline-offset:2px; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

@media (max-width:760px) {
  .auth-page-frame { align-items:flex-start;padding:64px 16px 24px; }
  .auth-page-width { max-width:390px; }
  .auth-card-grid { display:block; }
  .auth-form { padding:24px; }
  .auth-visual { display:none; }
  .auth-password-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) { .auth-primary,.auth-oauth { transition:none; }.auth-route-glint { animation:none; } }

.legal-page-frame { min-height:100vh;padding:48px 20px; }
.legal-document { width:min(760px,100%);margin:0 auto;padding:34px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 16px 44px rgba(20,31,38,.07); }
.legal-document header,.legal-document footer { display:flex;align-items:center;justify-content:space-between;gap:16px; }
.legal-document header { padding-bottom:22px;border-bottom:1px solid var(--border); }
.legal-document header p { margin:0;color:var(--text-muted);font-size:12px; }
.legal-wordmark { width:130px;display:block;color:var(--text)!important;text-decoration:none; }
.legal-wordmark img { width:100%;height:auto; }
.legal-document h1 { margin:28px 0 12px;font-size:28px;line-height:1.25;letter-spacing:0; }
.legal-document h2 { margin:25px 0 7px;font-size:16px;letter-spacing:0; }
.legal-document p { margin:0;color:var(--text-secondary);font-size:13px;line-height:1.75; }
.legal-document footer { margin-top:30px;padding-top:18px;border-top:1px solid var(--border);justify-content:flex-start; }
.legal-document footer a { font-size:13px;font-weight:650; }
@media (max-width:600px) { .legal-page-frame{padding:16px}.legal-document{padding:22px}.legal-document header{align-items:flex-start;flex-direction:column}.legal-document h1{font-size:24px} }
