:root{
  color-scheme: light;
  --brand-navy:#163c64; --brand-orange:#ff7f00;
  --surface-0:#f4f6f9; --surface-1:#ffffff; --surface-2:#ffffff;
  --text-primary:#0e1b2b; --text-secondary:#46566a; --text-muted:#7a8799;
  --grid:#e3e8ef; --border:rgba(22,60,100,0.14);
  --accent:#2a64a0; --accent-strong:#163c64; --danger:#c53030; --ok:#0a7d0a;
  --band-bg:#163c64; --band-muted:#b9c9dc;
  --shadow:0 1px 2px rgba(14,27,43,.05),0 8px 28px rgba(22,60,100,.09);
}
@media (prefers-color-scheme: dark){
  :root{
    color-scheme: dark;
    --surface-0:#0a1320; --surface-1:#101c2c; --surface-2:#16253a;
    --text-primary:#ffffff; --text-secondary:#b8c5d4; --text-muted:#7f8fa3;
    --grid:#1d2d42; --border:rgba(255,255,255,.1);
    --accent:#8fb3dc; --accent-strong:#2a5d94; --danger:#ff8a80; --ok:#5fd35f;
    --band-bg:#0f2a47; --band-muted:#9fb4cc;
    --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 28px rgba(0,0,0,.35);
  }
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{
  background:var(--surface-0); color:var(--text-primary);
  font-family:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif; font-size:14px;
  padding-inline:16px; padding-block:24px; min-height:100vh;
}
a{color:var(--accent);}
.band{
  background:var(--band-bg); color:#fff; border-radius:16px 16px 0 0; padding:20px 24px;
  border-bottom:4px solid var(--brand-orange); display:flex; align-items:center; gap:16px;
}
.band img{height:54px;width:auto;display:block;}
.band .t{font-weight:800;font-size:17px;line-height:1.2;}
.band .s{color:var(--band-muted);font-size:12.5px;margin-top:2px;}
.eyebrow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-orange);font-weight:700;margin:0 0 4px;}

/* login */
.login-wrap{max-width:420px;margin:6vh auto 0;}
.login-card{background:var(--surface-1);border:1px solid var(--border);border-top:none;border-radius:0 0 16px 16px;padding:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;}
label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;color:var(--text-secondary);}
input,select{
  font-family:inherit;font-size:14px;color:var(--text-primary);background:var(--surface-2);
  border:1px solid var(--border);border-radius:9px;padding:10px 12px;width:100%;
}
input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.btn{
  font-family:inherit;font-size:14px;font-weight:800;border:none;border-radius:9px;padding:11px 16px;cursor:pointer;
  background:var(--brand-orange);color:#0f2a47;
}
.btn.secondary{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border);font-weight:700;}
.btn.small{font-size:12.5px;padding:7px 11px;}
.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--border);}
.msg{border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45;}
.msg.err{background:rgba(197,48,48,.10);color:var(--danger);}
.msg.ok{background:rgba(10,125,10,.10);color:var(--ok);}
.hint{font-size:12px;color:var(--text-muted);line-height:1.5;}
.foot{text-align:center;font-size:11.5px;color:var(--text-muted);margin-top:18px;}

/* admin */
.admin-wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:18px;}
.admin-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-radius:16px;}
.admin-top .links{display:flex;gap:14px;align-items:center;font-size:13px;}
.admin-top .links a{color:#fff;opacity:.9;}
.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;}
.panel h2{margin:0;font-size:16px;}
.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end;}
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:0 10px 8px;border-bottom:1px solid var(--border);white-space:nowrap;}
td{padding:10px;border-bottom:1px solid var(--grid);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
.pill{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--grid);color:var(--text-secondary);}
.pill.admin{background:rgba(255,127,0,.16);color:#b35900;}
.pill.off{background:rgba(197,48,48,.12);color:var(--danger);}
.row-actions{display:flex;gap:6px;flex-wrap:wrap;}
.row-actions form{display:inline;}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;font-size:13px;}
.kv dt{color:var(--text-muted);} .kv dd{margin:0;}
pre.log{background:var(--surface-0);border:1px solid var(--border);border-radius:10px;padding:12px;font-size:12px;overflow:auto;max-height:320px;white-space:pre-wrap;margin:0;}
details summary{cursor:pointer;font-weight:700;font-size:13px;}
