:root{color-scheme:dark;--bg:#0d1412;--panel:#131d19;--well:#0f1815;--line:#26362f;--ink:#e4ebe6;--muted:#9fb3a9;--faint:#7f958a;--accent:#81c4a2;--caution:#f0cf3a;--caution-text:#f3e9b8;--qr-bg:#fff;--display:Bahnschrift,'DIN Alternate','DIN 2014','Roboto Condensed','Arial Narrow','Segoe UI',sans-serif;--sans:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;--mono:Consolas,'SF Mono',Menlo,monospace}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:46px 16px 32px;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans)}
.brand-strip{position:fixed;top:0;left:0;right:0;height:22px;z-index:2;display:flex;align-items:center;justify-content:center;font:12px var(--display);color:#86a596;background:#0a100e;border-bottom:1px solid #1d2b25;white-space:nowrap;overflow:hidden}.brand-strip b{color:#c3dccd;font-weight:500;margin:0 .35em}

/* The thinking orb from the assistant (web/plexus.js), turning faster while a sign-in is checked. */
.orb-wrap{width:260px;max-width:100%;margin:6px auto 18px;flex:none}
#cloud-band{width:100%;height:200px;position:relative}#cloudCanvas{display:block;width:100%;height:100%}
.orb-label{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:2px;color:#89bba0;font:9.5px var(--mono);letter-spacing:2px}.orb-label b{font-weight:400}.orb-label span{height:1px;width:22px;background:#264c39}

.login-card{width:min(420px,100%);padding:30px 32px 28px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 24px 70px #0006}
.brand{font:600 26px var(--display);letter-spacing:-.02em;margin-bottom:26px}.brand span,.brand i{color:var(--accent);font-style:normal}.brand span{font-size:28px;margin-right:2px}
.plant{margin:0 0 2px;font:500 15px var(--display);color:var(--accent)}
h1{font:300 38px/1.1 var(--display);letter-spacing:-.015em;margin:0 0 8px}
p{color:var(--muted);margin-top:0}#intro{font-size:14px;margin-bottom:6px}
label{display:grid;gap:6px;margin:18px 0;font:500 14px var(--display);color:#c2d1c8}
label small{font:12px/1.5 var(--sans);color:var(--faint)}
input{width:100%;min-height:46px;padding:11px 13px;border:1px solid #33473d;border-radius:8px;background:var(--well);color:var(--ink);font:15px var(--sans)}
input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
input[name=otp],input[name=setup_code]{font:600 18px var(--mono);letter-spacing:.12em}
button{width:100%;min-height:46px;margin-top:8px;padding:11px;border:0;border-radius:8px;background:var(--accent);color:#07140c;font:600 16px var(--display);cursor:pointer}
button:hover{background:#95d1b2}button:disabled{opacity:.55;cursor:wait}
button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.error{margin:16px 0 0;padding:10px 12px;border:1px solid #a65b57;border-left:4px solid #e0675b;border-radius:8px;background:#2a1817;color:#f1c3bf;font-size:13.5px}
.safety{margin:22px 0 0;padding:10px 12px;border:1px solid #57501f;border-left:4px solid var(--caution);border-radius:8px;background:#1f1d0b;color:var(--caution-text);font-size:12.5px;line-height:1.5}
.foot{width:min(420px,100%);margin:18px 0 0;padding:0 4px;font-size:12px;color:var(--faint)}.foot b{color:var(--muted);font-weight:600}

/* Two-factor sign-in for Lineage accounts. */
.setup-2fa{margin:18px 0 0}.steps{margin:0 0 14px;padding-left:20px;color:#c2d1c8;font-size:13.5px;line-height:1.6}
.qr{display:block;width:200px;height:200px;margin:0 auto;padding:8px;border-radius:10px;background:var(--qr-bg);image-rendering:pixelated}
.key{font-size:12.5px;margin:12px 0 0;text-align:center}.key code{display:block;margin:6px 0;font:600 14px var(--mono);letter-spacing:.06em;color:var(--ink);word-break:break-all}
.key a{color:var(--accent);font-size:12.5px}
.recovery h2{font:400 26px var(--display);margin:4px 0 8px}.codes{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:14px 0;padding:14px 14px 14px 34px;border:1px solid var(--line);border-radius:10px;background:var(--well);font:600 15px var(--mono);letter-spacing:.05em}
.row{display:flex;gap:8px}.ghost{background:none;border:1px solid #33473d;color:var(--ink);font-weight:500}.ghost:hover{background:#1a2722}
.check{display:flex;align-items:center;gap:9px;margin:16px 0 4px;font:14px var(--sans)}.check input{width:auto;min-height:0}

/* A demo plant's shared sign-in. */
.demo-box{margin:18px 0 6px;padding:14px 16px;border:1px solid #3c6a52;border-radius:10px;background:#132a1f}.demo-box strong{color:var(--accent);font:600 15px var(--display)}.demo-box p{font-size:13px;margin:4px 0 10px}.demo-box dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:13px}.demo-box dt{color:var(--muted)}.demo-box dd{margin:0;font:13px var(--mono);color:var(--ink);overflow-wrap:anywhere}

/* Short screens (a phone with its keyboard up, a landscape tablet) keep the form first. */
@media(max-height:760px){.orb-wrap{width:200px}#cloud-band{height:150px}}
@media(max-height:600px){.orb-wrap{display:none}body{padding-top:38px}}
@media(max-width:480px){body{padding-top:34px}.login-card{padding:24px 20px 22px}h1{font-size:32px}.brand{margin-bottom:18px}.brand-strip{font-size:10.5px}}
