/* Visual language carried over from dashboard/Gennisi_Security_Platform.html so the gated
   platform and the analyst dashboard read as one product. */
:root{
  --bg:#0A1320; --bg2:#0E1A2B; --panel:#101F33; --panel2:#0C1828; --line:#1D3148; --line2:#26405C;
  --gold:#C9A85C; --gold-d:#9C8348; --teal:#43B0A6; --teal-d:#2F7E77;
  --fatal:#E5484D; --injury:#E8A13A;
  --text:#E9EEF5; --muted:#8499B0; --muted2:#62788F;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--text);font-family:'Sora',system-ui,sans-serif;font-size:14px}
h1,h2,h3,.disp{font-family:'Cormorant Garamond',serif}
a{color:var(--gold)}
[hidden]{display:none !important}

.classbar{background:#07101B;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;padding:5px 18px;text-align:center}
.classbar b{color:var(--gold)}

/* --- login --- */
.loginwrap{min-height:calc(100vh - 26px);display:flex;align-items:center;justify-content:center;padding:24px}
.loginbox{width:100%;max-width:380px;background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--line);border-radius:12px;padding:28px}
.loginbox .mark{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:700;line-height:1;margin-bottom:2px}
.loginbox .mark b{color:var(--gold)}
.loginbox .sub{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}
label{display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:14px 0 5px}
input,select{width:100%;background:#0a1420;border:1px solid var(--line2);border-radius:7px;color:var(--text);
  font-family:inherit;font-size:14px;padding:9px 11px}
input:focus,select:focus{outline:none;border-color:var(--gold-d)}
button.primary{width:100%;margin-top:20px;background:var(--gold);color:#10131a;border:0;border-radius:7px;
  padding:11px;font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.06em;cursor:pointer}
button.primary:disabled{opacity:.5;cursor:default}
.err{color:var(--fatal);font-size:12.5px;margin-top:14px;min-height:18px}

/* --- shell --- */
header.top{display:flex;align-items:center;gap:18px;padding:12px 20px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#0C1828,#0A1320);flex-wrap:wrap}
.brand .mark{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:700;line-height:1}
.brand .mark b{color:var(--gold)}
.brand .sub{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.spacer{flex:1}
.who{text-align:right;font-size:11.5px;color:var(--muted);line-height:1.5}
.who b{color:var(--text)}
.who .tierchip{display:inline-block;border:1px solid var(--gold-d);color:var(--gold);border-radius:12px;
  padding:1px 9px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-left:6px}
button.ghost{background:transparent;border:1px solid var(--line2);color:var(--muted);border-radius:7px;
  padding:6px 13px;font-family:inherit;font-size:12px;cursor:pointer}
button.ghost:hover{color:var(--text);border-color:var(--gold-d)}

.controls{display:flex;gap:14px;align-items:flex-end;padding:14px 20px;border-bottom:1px solid var(--line);
  background:#0A1320;flex-wrap:wrap}
.controls .f{min-width:170px}
.controls label{margin-top:0}
.controls button{margin-top:0;width:auto;padding:9px 18px}

.pad{padding:20px 24px 60px;max-width:1240px;margin:0 auto}
.sec{margin:26px 0 12px;display:flex;align-items:baseline;gap:12px}
.sec h2{margin:0;font-size:22px;color:var(--gold);font-weight:600}
.sec .tag{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted2)}
.sec .ln{flex:1;height:1px;background:var(--line)}

.kpirow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:8px;padding:11px 13px}
.kpi .v{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--gold);line-height:1}
.kpi .l{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:5px}
.kpi.teal{border-left-color:var(--teal)} .kpi.teal .v{color:var(--teal)}

.grid{display:grid;gap:16px}
.g2{grid-template-columns:1fr 1fr}
@media(max-width:980px){.g2{grid-template-columns:1fr}}
.card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);
  border-radius:10px;padding:14px 16px}
.card h3{margin:0 0 3px;font-size:18px;color:var(--text);font-weight:600}
.card .hint{font-size:11px;color:var(--muted2);margin:0 0 10px}
.chartbox{position:relative;height:260px}

table.cmp{width:100%;border-collapse:collapse;font-size:12.5px}
table.cmp th,table.cmp td{padding:6px 9px;border-bottom:1px solid var(--line);text-align:left}
table.cmp th{color:var(--muted);font-weight:500;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
table.cmp td.num{text-align:right;font-variant-numeric:tabular-nums}
.scroll{max-height:320px;overflow:auto}

#map{height:420px;border-radius:10px;border:1px solid var(--line)}
.leaflet-container{background:#0a1420}

/* --- the 402 treatment ---
   ACCESS_MODEL.md: a 402 is a commercial signal, not an error. It names the service tiers,
   states that pricing is not publicly advertised, and points at the account manager. */
.tiergate{background:rgba(201,168,92,.07);border:1px solid var(--gold-d);border-left:3px solid var(--gold);
  border-radius:8px;padding:16px 18px;color:#e8dcbd}
.tiergate h3{margin:0 0 6px;color:var(--gold);font-size:19px}
.tiergate p{margin:6px 0;font-size:12.5px;line-height:1.55}
.tiergate .tiers{display:flex;gap:10px;margin:12px 0 4px;flex-wrap:wrap}
.tiergate .t{border:1px solid var(--gold-d);border-radius:8px;padding:8px 13px;font-size:11.5px;min-width:140px}
.tiergate .t b{display:block;color:var(--gold);font-size:13px;margin-bottom:3px;letter-spacing:.04em}

.notice{background:rgba(67,176,166,.06);border:1px solid var(--teal-d);border-left:3px solid var(--teal);
  border-radius:8px;padding:10px 13px;font-size:12px;color:#bfe3df;margin-top:12px}
.internalbar{background:#9a2b2b;color:#fff;text-align:center;font-size:10.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;padding:5px}
.loading{color:var(--muted2);font-size:12.5px;padding:10px 0}
footer{border-top:1px solid var(--line);color:var(--muted2);font-size:10.5px;padding:16px 24px;text-align:center}
