:root{color-scheme:dark;--background:#121315;--panel:#1d1f23;--foreground:#f4f5f7;--secondary:#a5a9b6;--accent:#aeb5ff;--border:rgba(255,255,255,.09);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--foreground);background:var(--background)}
*{box-sizing:border-box}body{margin:0;min-height:100svh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 70% 0,rgba(106,126,240,.12),transparent 55%)}a{color:var(--accent);text-underline-offset:4px}button,input{font:inherit}::selection{background:#aeb5ff;color:#191a22}:focus-visible{outline:2px solid #c5caff;outline-offset:4px}.skip-link{position:absolute;left:20px;top:-100px;z-index:10;background:var(--panel);padding:12px 16px;border-radius:8px}.skip-link:focus{top:12px}.brand-header{padding:28px 36px}.brand{display:inline-flex;align-items:center;gap:12px;font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--foreground);text-decoration:none}.brand-mark,.panel-mark{display:grid;place-items:center;background:linear-gradient(135deg,#96a6ff,#7779ee 55%,#b78bdf);color:#191a22;font-weight:650}.brand-mark{width:40px;height:40px;border-radius:13px}.auth-main{flex:1;display:grid;place-items:center;padding:28px 20px 56px}.auth-panel{width:min(100%,440px);padding:36px;background:var(--panel);border:1px solid var(--border);border-radius:22px}.panel-mark{width:48px;height:48px;border-radius:15px;margin-bottom:26px;font-size:23px}h1{margin:0;font-size:29px;line-height:1.2;letter-spacing:-.035em;font-weight:600;text-wrap:balance}.intro{margin:12px 0 28px;font-size:15px;line-height:1.65;color:var(--secondary)}.intro strong{font-weight:500;color:var(--foreground)}.field{margin-bottom:20px}.field label{display:block;font-size:14px;font-weight:500;margin-bottom:9px;color:#e3e5ed}.field input{width:100%;min-width:0;min-height:48px;padding:12px 14px;background:#15161a;border:1px solid #3c404c;border-radius:10px;color:var(--foreground);caret-color:var(--accent);font-size:16px;transition:border-color .15s}.field input:focus{border-color:var(--accent);outline:2px solid rgba(174,181,255,.23);outline-offset:1px}.field input::placeholder{color:#a0a5b3}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:13px 17px;margin-top:26px;border:0;border-radius:11px;background:var(--accent);color:#191a22;text-decoration:none;font-weight:600;font-size:15px;cursor:pointer;transition:background .15s}.primary-button:hover{background:#c0c5ff}.primary-button:active{background:#9da7fa}.primary-button span{font-size:20px;line-height:1}.account-note{border-top:1px solid var(--border);padding-top:22px;margin:27px 0 0;font-size:13px;line-height:1.7;color:var(--secondary)}.notice{padding:13px 15px;margin-bottom:24px;border:1px solid #494f77;border-radius:10px;background:#262a3c;color:#d2d7ff;font-size:14px;line-height:1.6}.form-errors,.field-errors{color:#f4b7b4;font-size:14px;line-height:1.5}.form-errors{background:#3b262a;border-radius:9px;padding:12px 14px;margin-bottom:20px}.form-errors ul,.field-errors ul{margin:0;padding-left:18px}.field-errors{margin-top:8px}.field-help{font-size:13px;line-height:1.6;color:var(--secondary)}.field-help ul{padding-left:19px;margin:11px 0 0}.field-help li+li{margin-top:4px}.auth-footer{text-align:center;padding:0 20px 27px;color:#a0a5b3;font-size:12px;line-height:1.6}@media(max-width:480px){.brand-header{padding:22px 24px}.auth-main{padding:12px 16px 32px}.auth-panel{padding:28px 23px;border-radius:18px}h1{font-size:27px}.intro{font-size:15px}.auth-footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Haven 2026 visual refresh: form markup and server behavior unchanged. */
:root{color-scheme:light;--background:#f7f7f2;--panel:#fff;--foreground:#25332c;--secondary:#59645c;--accent:#365b47;--border:#dce1d8}
body{background:var(--background)}.brand-mark,.panel-mark{background:#365b47;color:#fff;border-radius:50%;font-family:Georgia,serif}.auth-panel{border-radius:16px;padding:40px}.field label{color:#25332c}.field input{background:#f7f7f2;border-color:#c2cbbf;color:#25332c}.field input::placeholder{color:#59645c}.field input:focus{outline-color:#365b4740}.primary-button{color:#fff;border-radius:9px}.primary-button:hover{background:#294b38}.primary-button:active{background:#203e2e}.notice{background:#edf1e7;border-color:#b9c8ae;color:#365b47}.form-errors{background:#f9eae6;color:#a43f3f}.field-errors{color:#a43f3f}.auth-footer{color:#59645c}h1{font-family:Georgia,serif;font-weight:400;font-size:34px}::selection{background:#365b47;color:#fff}:focus-visible{outline-color:#365b47}@media(max-width:480px){.auth-panel{padding:28px 23px}h1{font-size:30px}}

/* Haven, second edition. Haven is the default; Dark and Light remain available. */
:root {--haven-atmosphere:none;--haven-elevation:0 14px 40px rgba(0,0,0,.14);--haven-journal:#202831;--haven-heading-font:Georgia,'Times New Roman',serif}
[data-haven-theme="dark"] {
 color-scheme:dark;--haven-canvas:#101216;--haven-surface:#191c22;--haven-soft:#242830;
 --haven-text:#eef0f6;--haven-muted:#b2b8c6;--haven-border:#353b47;
 --haven-accent:#d4dbea;--haven-accent-text:#d4dbea;--haven-on-accent:#182030;
 --haven-plum:#c6adbc;--haven-plum-text:#e5c1d2;--haven-danger:#ffb4b4;--haven-warning:#e9c68b;--haven-success:#a3d1b2;
 --haven-journal:#202831;--haven-atmosphere:none;
}
[data-haven-theme="light"] {--haven-journal:#e9eddf;--haven-atmosphere:none;--haven-elevation:0 14px 40px rgba(28,40,31,.08)}
:root:not([data-haven-theme]),[data-haven-theme="haven"] {
 color-scheme:dark;--haven-canvas:#100b1d;--haven-surface:#1e1530;--haven-soft:#302240;
 --haven-text:#f5efff;--haven-muted:#c1b2d7;--haven-border:#503765;
 --haven-accent:#cfb4ff;--haven-accent-text:#dbc6ff;--haven-on-accent:#26123f;
 --haven-plum:#e3a7d5;--haven-plum-text:#f4c4e9;--haven-danger:#ffb4c5;--haven-warning:#f1ce94;--haven-success:#b7dfc5;
 --haven-journal:#2d2041;--haven-elevation:0 18px 48px rgba(6,0,20,.3);
 --haven-atmosphere:radial-gradient(ellipse 70% 52% at 86% -8%,rgba(157,73,255,.28),transparent 76%),radial-gradient(ellipse 50% 40% at 12% 64%,rgba(119,49,201,.16),transparent 80%),radial-gradient(ellipse 35% 28% at 96% 97%,rgba(212,87,216,.13),transparent 80%);
}

:root{--background:var(--haven-canvas);--panel:var(--haven-surface);--foreground:var(--haven-text);--secondary:var(--haven-muted);--accent:var(--haven-accent-text);--border:var(--haven-border)}
body{background-color:var(--background);background-image:var(--haven-atmosphere);background-attachment:fixed;color:var(--foreground)}
.brand-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 40px}.auth-appearance{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--secondary)}.auth-appearance[hidden]{display:none}.auth-appearance select{font:inherit;min-height:44px;padding:8px 12px;border-radius:9px;background:var(--panel);color:var(--foreground);border:1px solid var(--border)}
.brand-mark,.panel-mark{background:var(--haven-accent);color:var(--haven-on-accent);border-radius:12px}.auth-panel{padding:40px;border-color:var(--border);background:var(--panel);max-width:460px}.panel-mark{margin-bottom:30px}
.field label{color:var(--foreground)}.field input{background:var(--background);color:var(--foreground);border-color:var(--border);border-radius:9px}.field input::placeholder{color:var(--secondary)}.field input:focus{border-color:var(--accent);outline-color:var(--accent)}
.primary-button{background:var(--haven-accent);color:var(--haven-on-accent);min-height:50px}.primary-button:hover{background:var(--haven-accent);filter:brightness(1.1)}.primary-button:active{background:var(--haven-accent);filter:brightness(.95)}
.notice{background:var(--haven-soft);color:var(--foreground);border-color:var(--border)}.form-errors{background:var(--haven-soft);color:var(--haven-danger)}.field-errors{color:var(--haven-danger)}.auth-footer{color:var(--secondary)}::selection{background:var(--haven-accent);color:var(--haven-on-accent)}:focus-visible{outline-color:var(--accent)}
@media(max-width:480px){.brand-header{padding:20px}.auth-appearance{font-size:0;gap:0}.auth-appearance select{font-size:13px}.auth-panel{padding:30px 23px}.auth-main{padding-top:20px}}

/* Haven cloud identity: a white H over an orbital purple tile. */
.haven-cloud-brand{display:flex;align-items:center;gap:11px;min-width:0;padding:0 4px}
.haven-cloud-logo{width:46px;height:46px;flex-shrink:0;display:block}
.haven-cloud-wordmark{min-width:0;display:flex;flex-direction:column;gap:4px}
.haven-cloud-wordmark strong{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:650;font-size:17px;letter-spacing:-.03em;line-height:1.25;color:var(--haven-text);white-space:nowrap}
.haven-cloud-wordmark span{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:11px;line-height:1.4;color:var(--haven-muted);white-space:nowrap}
.haven-sidebar>.haven-cloud-brand{margin-bottom:34px}

@media(max-width:480px){.brand-header{padding:20px 16px}.brand{gap:9px}.haven-cloud-logo{width:40px;height:40px}.haven-cloud-wordmark strong{font-size:16px}.haven-cloud-wordmark span{font-size:10px}}
