:root{color-scheme:dark;--login-bg:#040b13;--login-halo:#12354a;--login-surface:#071722;--login-raised:#193c4d;--login-input:#081b27;--login-border:#557e92;--login-accent:#a8deef;--login-bright:#e9f9ff;--login-text:#d2e7f0;--login-muted:#94b2c2;--login-hue:0deg}
html[data-theme="purple"]{--login-bg:#0b0712;--login-halo:#302047;--login-surface:#140e1e;--login-raised:#35254b;--login-input:#1b1229;--login-border:#79618f;--login-accent:#d3affb;--login-bright:#f6edff;--login-text:#e8def2;--login-muted:#b1a0c0;--login-hue:75deg}
html[data-theme="red"]{--login-bg:#100709;--login-halo:#421b25;--login-surface:#1c0e13;--login-raised:#48232e;--login-input:#26131a;--login-border:#976471;--login-accent:#f4afbc;--login-bright:#fff0f3;--login-text:#f0dfe4;--login-muted:#c29fa9;--login-hue:150deg}
html[data-theme="gold"]{--login-bg:#0e0b06;--login-halo:#3b301e;--login-surface:#19140b;--login-raised:#3b311e;--login-input:#231c10;--login-border:#8d784f;--login-accent:#f0d298;--login-bright:#fff6df;--login-text:#eee6d4;--login-muted:#b9aa8d;--login-hue:205deg}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100svh;min-height:100dvh;display:grid;place-items:center;padding:24px 18px;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 25%,var(--login-halo),transparent 65%),var(--login-bg);color:var(--login-text);font-family:"Segoe UI",Arial,sans-serif;-webkit-text-size-adjust:100%}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 18%,color-mix(in srgb,var(--login-accent) 5%,transparent) 18.1%,transparent 18.2%,transparent 77%,color-mix(in srgb,var(--login-accent) 4%,transparent) 77.1%,transparent 77.2%);z-index:-1}
.login-shell{position:relative;isolation:isolate;width:min(500px,100%);padding:34px}
.login-shell:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border:32px solid transparent;border-image:url('/frame.png') 120 165 110 160 fill /32px 34px /0 stretch;filter:hue-rotate(var(--login-hue));opacity:.95}
.login-frame{position:relative;padding:27px 26px 24px;border:1px solid color-mix(in srgb,var(--login-border) 75%,transparent);background:linear-gradient(150deg,color-mix(in srgb,var(--login-surface) 89%,transparent),color-mix(in srgb,var(--login-surface) 96%,transparent));box-shadow:0 0 35px color-mix(in srgb,var(--login-accent) 7%,transparent)}
.login-brand{display:table;margin:0 auto 9px;padding:5px 24px;border:1px solid color-mix(in srgb,var(--login-accent) 45%,transparent);color:var(--login-bright);font-size:24px;font-weight:400;line-height:1.3;letter-spacing:4px;text-shadow:0 0 12px color-mix(in srgb,var(--login-accent) 70%,transparent)}
.login-kicker{margin:0;text-align:center;font-size:9px;line-height:1.6;letter-spacing:2px;color:var(--login-muted)}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin:25px 0 24px;border:1px solid var(--login-border);background:var(--login-input)}
button,input{font:inherit;-webkit-tap-highlight-color:transparent}
button{color:inherit;cursor:pointer;touch-action:manipulation}
.auth-tab{min-width:0;min-height:44px;padding:10px 8px;border:0;background:transparent;color:var(--login-muted);font-size:14px;line-height:1.4;transition:background .15s,color .15s}
.auth-tab+.auth-tab{border-left:1px solid var(--login-border)}
.auth-tab[aria-selected="true"]{background:var(--login-raised);color:var(--login-bright);box-shadow:inset 0 -2px var(--login-accent)}
.auth-tab:hover{color:var(--login-bright)}
h2{margin:0;color:var(--login-bright);font-size:22px;font-weight:500;line-height:1.35;text-align:center}
.form-description{margin:9px 0 23px;color:var(--login-muted);font-size:13px;line-height:1.6;text-align:center}
form{margin:0}
.form-field{display:grid;gap:8px;margin:0 0 19px}
.form-field label{color:var(--login-text);font-size:13px;line-height:1.4}
.form-field input{display:block;width:100%;min-width:0;min-height:46px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--login-border) 85%,transparent);border-radius:2px;background:var(--login-input);color:var(--login-bright);font-size:16px;line-height:1.4;scroll-margin-block:24px;transition:border-color .15s}
.form-field input:hover{border-color:var(--login-accent)}
.form-field input[aria-invalid="true"]{border-color:#eaa98f}
.field-hint{margin:0;color:var(--login-muted);font-size:11px;line-height:1.6}
.submit-button{display:block;width:100%;min-height:48px;margin:5px 0 0;padding:12px 10px;border:1px solid var(--login-accent);border-radius:2px;background:var(--login-raised);color:var(--login-bright);font-size:15px;font-weight:500;line-height:1.4;letter-spacing:.7px;box-shadow:inset 0 0 18px color-mix(in srgb,var(--login-accent) 5%,transparent);transition:background .15s}
.submit-button:hover{background:color-mix(in srgb,var(--login-raised) 75%,var(--login-border))}
.form-error{min-height:22px;margin:15px 0 0;color:#ffc8af;font-size:13px;line-height:1.6;text-align:center;overflow-wrap:anywhere}
input:focus-visible,button:focus-visible{outline:2px solid var(--login-accent);outline-offset:3px}
.form-error:focus{outline:none}
button:disabled,input:disabled{cursor:wait;opacity:.65}
@media(max-width:420px){.login-shell{padding:25px}.login-shell:before{border-width:24px;border-image-width:24px 26px}.login-frame{padding:25px 17px 21px}.login-brand{font-size:22px;padding:5px 22px}.login-kicker{font-size:8px;letter-spacing:1.4px}.auth-tabs{margin-top:23px}h2{font-size:21px}.form-description{font-size:12px}}
@media(max-height:700px){body{align-items:start}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

.access-panel[hidden],#auth-panel[hidden],#auth-tabs[hidden]{display:none!important}.access-panel{margin-top:24px}.access-panel h2{font-size:24px}.access-panel p{font-size:14px;line-height:1.6}.access-panel textarea{box-sizing:border-box;width:100%;resize:vertical;min-height:90px;font:14px/1.5 monospace;color:var(--text,#d8edf7);background:transparent;border:1px solid var(--line,#345161);padding:10px}.access-panel button{margin:8px 0;padding:12px 16px;color:var(--text,#d8edf7);background:transparent;border:1px solid var(--line,#345161);font:inherit}.access-message{color:var(--cyan-bright,#bcefff);overflow-wrap:anywhere}

#access-key-field[hidden]{display:none!important}#access-key-field textarea{box-sizing:border-box;width:100%;min-height:68px;padding:11px 12px;resize:vertical;background:transparent;border:1px solid var(--line,#345161);color:var(--text,#d8edf7);font:14px/1.5 monospace;overflow-wrap:anywhere}

#access-key-field textarea{display:block;min-width:0;min-height:76px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--login-border) 85%,transparent);border-radius:2px;background:var(--login-input);color:var(--login-bright);font:16px/1.4 "Segoe UI",Arial,sans-serif;scroll-margin-block:24px}#access-key-field textarea:hover{border-color:var(--login-accent)}#access-key-field textarea:focus-visible{outline:2px solid var(--login-accent);outline-offset:3px}#access-key-field textarea[aria-invalid="true"]{border-color:#eaa98f}#access-key-field textarea:disabled{cursor:wait;opacity:.65}
