:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Segoe UI",sans-serif;color:#edf0e8;background:#101410;color-scheme:dark;--line:#394338;--muted:#b1b9aa;--accent:#c0d48c;--panel:#191f19;--mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 18%,#26302255,transparent 65%)}
header{display:flex;align-items:center;gap:24px;padding:20px 32px;background:#151a15;border-top:3px solid var(--accent);border-bottom:1px solid var(--line)}header strong{letter-spacing:1.5px;color:#edf0e8;font-size:18px;white-space:nowrap}header strong span{color:inherit}.console-title{border-left:1px solid var(--line);padding-left:24px}h1{font-size:18px;margin:0}.console-title>span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.access-tag{display:inline-flex;align-items:center;gap:8px;color:var(--accent);border:1px solid #58663f;padding:7px 10px;border-radius:4px;font:600 11px var(--mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.access-tag>span{font-size:9px}#account{display:grid;gap:4px;margin-left:auto;text-align:right}#signed-in-email{font-size:14px;overflow-wrap:anywhere}#account-role{color:var(--muted);font-size:12px}header:has(#account[hidden]) .access-tag{margin-left:auto}
main{max-width:1120px;margin:32px auto;padding:0 24px}.card{padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:20px}h2{font-size:18px;line-height:1.35;margin:0 0 16px}p{color:var(--muted);line-height:1.65;font-size:14px}label{display:grid;gap:8px;font-size:14px;font-weight:600}input,button,select{font:inherit;border-radius:5px;min-height:44px}input,select{width:100%;padding:10px 12px;border:1px solid #677360;background:#111711;color:#edf0e8}input::placeholder{color:#98a18f;opacity:1}select{padding-right:32px}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;background:var(--accent);color:#15200c;padding:10px 16px;border:1px solid var(--accent);font-size:14px;font-weight:650;line-height:20px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#d1e4a5;border-color:#d1e4a5}button:disabled{opacity:.55;cursor:wait}.secondary{background:transparent;color:var(--accent);border-color:#71815b}.secondary:hover:not(:disabled){background:#2b3524;border-color:var(--accent)}.quiet{background:transparent;border-color:transparent;color:var(--muted)}.quiet:hover:not(:disabled){background:#2b3524;color:#edf0e8;border-color:transparent}.danger{background:#291b19;color:#ffb6a8;border-color:#bb786c}.danger:hover:not(:disabled){background:#402621;border-color:#ffb6a8}:focus-visible{outline:3px solid #dceba8;outline-offset:4px}[hidden]{display:none!important}
#login{max-width:480px;margin:64px auto;padding:36px;border-top:2px solid var(--accent);box-shadow:0 20px 60px #0004}.access-emblem{display:grid;place-items:center;width:56px;height:56px;color:var(--accent);border:1px solid #576344;background:#263020;border-radius:8px;margin-bottom:24px}.access-emblem svg{width:32px;height:32px}.eyebrow{color:var(--accent);font:600 11px var(--mono);letter-spacing:.14em;margin:0 0 10px}.login-card h2{font-size:30px;letter-spacing:-.6px;margin-bottom:6px}.login-subtitle{color:#d5dccb;margin:0 0 22px;font-size:15px}.login-card form{display:grid;gap:12px;margin-top:26px}.login-card form button{width:100%}.login-note{font-size:12px;margin-top:24px;border-top:1px solid var(--line);padding-top:18px}#admin-code{font:600 24px var(--mono);letter-spacing:.16em}#login-error{color:#ffb6a8;margin:16px 0 0}#login-error:empty{display:none}
.portal-nav{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:24px}.nav-button{background:transparent;color:var(--muted);border:0;border-radius:0;padding:12px 20px}.nav-button[aria-current]{color:var(--accent);box-shadow:inset 0 -3px var(--accent)}.nav-button:hover:not(:disabled){background:#263020}.fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px}.form-footer,.section-heading,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.form-footer{margin-top:20px}.section-heading h2{margin:0}.license-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.license-row:last-child{border:0}.license-row strong{display:block;margin-bottom:8px;overflow-wrap:anywhere}.license-row p{margin:0}.license-row>button{align-self:center}.badge{display:inline-block;font:600 11px var(--mono);padding:4px 8px;border-radius:4px;background:#2e3c24;color:#d1e4a5;margin-left:10px;vertical-align:middle}.badge.invalid{background:#3b2420;color:#ffb6a8}#license-code{font-family:var(--mono);font-size:13px;margin:8px 0 16px}.code-actions,.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.actions{margin:20px 0}.license-delivery{padding:22px;border:1px solid #58663f;background:#20291c;border-radius:6px;margin:24px 0}.license-delivery h3{margin:0;font-size:17px}.license-delivery p{margin:8px 0 20px}.expiry-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:24px 0}.expiry-form label{width:210px}.expiry-form button{height:44px}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:18px 0;margin:18px 0}.danger-zone p,.danger-zone .actions{margin:0}.device{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.device>div{min-width:0;overflow-wrap:anywhere}.device small{display:block;color:var(--muted);margin-top:6px}.audit{font:12px/1.9 var(--mono);color:var(--muted);padding-left:20px;overflow-wrap:anywhere}
.user-add-form{display:grid;grid-template-columns:minmax(0,1fr) 180px auto;gap:12px;align-items:end;margin:24px 0;padding-bottom:24px;border-bottom:1px solid var(--line)}.user-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.user-row strong{overflow-wrap:anywhere;font-size:14px}.user-row p{margin:4px 0 0;font-size:13px}.user-role-form{display:flex;gap:8px;align-items:flex-end}.user-role-form label{font-size:12px}.field-note{font-size:13px}#new-license{border-color:#71815b}#status:empty{display:none}#status:not(:empty){position:fixed;bottom:20px;right:20px;max-width:min(560px,calc(100vw - 40px));margin:0;padding:14px 18px;border:1px solid #71815b;background:#293521;color:#e2edcb;border-radius:6px;box-shadow:0 8px 28px #0006;z-index:5;overflow-wrap:anywhere}footer{display:flex;justify-content:center;gap:24px;color:#b1b9aa;padding:20px 24px;font:10px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase}dialog{border:1px solid #677360;background:#191f19;color:#edf0e8;border-radius:8px;padding:26px;max-width:min(460px,calc(100vw - 32px))}dialog::backdrop{background:#050805bb}
@media(max-width:800px){header{flex-wrap:wrap;gap:16px}#account{margin-left:0;flex:1;text-align:left}.access-tag{margin-left:auto}}
@media(max-width:650px){header{padding:16px;gap:12px}header strong{font-size:15px}.console-title{padding-left:12px}h1{font-size:16px}header:has(#account[hidden]) .access-tag{margin-left:0}#account{min-width:180px}main{padding:0 16px;margin-top:24px}#login{margin:32px auto;padding:26px}.card{padding:20px}.fields,.license-row,.user-add-form,.user-row{grid-template-columns:1fr}.user-row{gap:12px}.user-row>button,.license-row>button{justify-self:start}.form-footer,.danger-zone,.device{align-items:flex-start;flex-direction:column}.section-heading{flex-wrap:wrap}.code-actions>button{flex:1;white-space:nowrap}.expiry-form label{width:100%}footer{flex-wrap:wrap;gap:8px 24px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
/* Align actions with the control, not with the label above it. */
.user-row>button{align-self:end}.user-role-form select{width:180px}.user-role-form button{height:44px}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23c0d48c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px 16px;padding-right:44px}
@media(forced-colors:active){select{appearance:auto;background-image:none;padding-right:12px}}
@media(max-width:650px){.user-row>button{align-self:auto}.user-role-form select{width:100%;min-width:0}.user-role-form label{flex:1;min-width:0}}
