/* NSW Health ED report — shared styles. Palette from dataviz skill (validated). */
:root {
  color-scheme: light;
  --page:        #f9f9f7;
  --surface-1:   #fcfcfb;
  --text-primary:#0b0b0b;
  --text-secondary:#52514e;
  --muted:       #898781;
  --grid:        #e1e0d9;
  --baseline:    #c3c2b7;
  --border:      rgba(11,11,11,0.10);
  --series-1:#2a78d6; --series-2:#008300; --series-3:#e87ba4; --series-4:#eda100;
  --series-5:#1baf7a; --series-6:#eb6834; --series-7:#4a3aa7; --series-8:#e34948;
  --good:#0ca30c; --warning:#fab219; --serious:#ec835a; --critical:#d03b3b;
  --seq-lo:#cde2fb; --seq-hi:#0d366b;
  --good-ink:#006300;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --page:        #0d0d0d;
  --surface-1:   #1a1a19;
  --text-primary:#ffffff;
  --text-secondary:#c3c2b7;
  --muted:       #898781;
  --grid:        #2c2c2a;
  --baseline:    #383835;
  --border:      rgba(255,255,255,0.10);
  --series-1:#3987e5; --series-2:#008300; --series-3:#d55181; --series-4:#c98500;
  --series-5:#199e70; --series-6:#d95926; --series-7:#9085e9; --series-8:#e66767;
  --good:#0ca30c; --warning:#fab219; --serious:#ec835a; --critical:#d03b3b;
  --seq-lo:#0d366b; --seq-hi:#9ec5f4;
  --good-ink:#0ca30c;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --page:#0d0d0d; --surface-1:#1a1a19; --text-primary:#fff; --text-secondary:#c3c2b7;
    --grid:#2c2c2a; --baseline:#383835; --border:rgba(255,255,255,0.10);
    --series-1:#3987e5; --series-3:#d55181; --series-4:#c98500; --series-5:#199e70;
    --series-6:#d95926; --series-7:#9085e9; --series-8:#e66767;
    --seq-lo:#0d366b; --seq-hi:#9ec5f4; --good-ink:#0ca30c;
  }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin:0; background:var(--page); color:var(--text-primary);
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size:15px; line-height:1.5;
}
a { color:var(--series-1); text-decoration:none; }
a:hover { text-decoration:underline; }

.nav {
  position:sticky; top:0; z-index:20; background:var(--surface-1);
  border-bottom:1px solid var(--border); display:flex; align-items:center;
  gap:4px; padding:0 16px; flex-wrap:wrap;
}
.nav .brand { font-weight:700; margin-right:16px; padding:12px 0; letter-spacing:-0.01em; }
.nav a.tab { padding:12px 12px; color:var(--text-secondary); font-weight:500;
  border-bottom:2px solid transparent; margin-bottom:-1px; }
.nav a.tab:hover { color:var(--text-primary); text-decoration:none; }
.nav a.tab.active { color:var(--text-primary); border-bottom-color:var(--series-1); }
.nav .spacer { flex:1; }
.themebtn { border:1px solid var(--border); background:transparent; color:var(--text-secondary);
  border-radius:8px; padding:6px 10px; cursor:pointer; font-size:13px; }
.themebtn:hover { color:var(--text-primary); }

.wrap { max-width:1080px; margin:0 auto; padding:24px 16px 72px; }
h1 { font-size:26px; letter-spacing:-0.02em; margin:8px 0 4px; }
h2 { font-size:19px; letter-spacing:-0.01em; margin:36px 0 6px; }
.sub { color:var(--text-secondary); margin:0 0 8px; }
.lede { color:var(--text-secondary); max-width:70ch; }

.card { background:var(--surface-1); border:1px solid var(--border); border-radius:14px;
  padding:18px; margin:14px 0; }
.card h3 { margin:0 0 2px; font-size:16px; }
.card .cap { color:var(--muted); font-size:13px; margin:0 0 10px; }

.tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:14px 0; }
.tile { background:var(--surface-1); border:1px solid var(--border); border-radius:12px; padding:14px 16px; }
.tile .k { color:var(--text-secondary); font-size:12.5px; text-transform:uppercase; letter-spacing:0.04em; }
.tile .v { font-size:30px; font-weight:650; letter-spacing:-0.02em; margin-top:2px; }
.tile .d { color:var(--muted); font-size:12.5px; margin-top:2px; }

svg.chart { width:100%; height:auto; display:block; }
svg.chart text { fill:var(--muted); font-size:12px; font-family:inherit; }
svg.chart .axlabel { fill:var(--text-secondary); }
svg.chart .grid { stroke:var(--grid); stroke-width:1; }
svg.chart .axis { stroke:var(--baseline); stroke-width:1; }
svg.chart .val { fill:var(--text-primary); font-variant-numeric:tabular-nums; }

.legend { display:flex; gap:16px; flex-wrap:wrap; margin:8px 2px 0; font-size:13px; color:var(--text-secondary); }
.legend .it { display:inline-flex; align-items:center; gap:6px; }
.legend .sw { width:12px; height:12px; border-radius:3px; display:inline-block; }

.tt { position:fixed; pointer-events:none; z-index:50; background:var(--surface-1);
  border:1px solid var(--border); border-radius:9px; padding:8px 10px; font-size:12.5px;
  box-shadow:0 6px 24px rgba(0,0,0,0.18); max-width:260px; opacity:0; transition:opacity .08s; }
.tt b { color:var(--text-primary); } .tt .m { color:var(--text-secondary); }
.tt .row { display:flex; justify-content:space-between; gap:14px; }

table.tbl { width:100%; border-collapse:collapse; font-size:13.5px; }
table.tbl th, table.tbl td { padding:7px 10px; text-align:right; white-space:nowrap;
  border-bottom:1px solid var(--border); }
table.tbl th:first-child, table.tbl td:first-child,
table.tbl th.l, table.tbl td.l { text-align:left; white-space:normal; }
table.tbl thead th { position:sticky; top:0; background:var(--surface-1); z-index:5;
  color:var(--text-secondary); font-weight:600; cursor:pointer; user-select:none; }
table.tbl thead th:hover { color:var(--text-primary); }
table.tbl thead th.sorted::after { content:" ▾"; color:var(--series-1); }
table.tbl thead th.sorted.asc::after { content:" ▴"; }
table.tbl tbody tr:hover { background:color-mix(in srgb, var(--series-1) 7%, transparent); }
td.num { font-variant-numeric:tabular-nums; }
.tablewrap { max-height:640px; overflow:auto; border:1px solid var(--border); border-radius:12px; }

.pill { display:inline-block; padding:1px 8px; border-radius:999px; font-size:12px; font-weight:600; }
.pill.high { background:color-mix(in srgb,var(--critical) 18%,transparent); color:var(--critical); }
.pill.low  { background:color-mix(in srgb,var(--series-1) 16%,transparent); color:var(--series-1); }
.pill.hol  { background:color-mix(in srgb,var(--series-7) 18%,transparent); color:var(--series-7); }
.pill.part { background:color-mix(in srgb,var(--muted) 20%,transparent); color:var(--text-secondary); }
.pill.norm { color:var(--muted); }

.controls { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:10px 0; }
.controls label { font-size:13px; color:var(--text-secondary); display:inline-flex; gap:6px; align-items:center; }
.controls select, .controls input[type=search] {
  font:inherit; font-size:13px; padding:5px 8px; border-radius:8px;
  border:1px solid var(--border); background:var(--surface-1); color:var(--text-primary); }
.note { color:var(--muted); font-size:12.5px; }
ul.findings { max-width:74ch; } ul.findings li { margin:6px 0; }
.hl { background:color-mix(in srgb,var(--series-4) 26%,transparent); padding:0 3px; border-radius:3px; }
