/* Violet Issue — the design system this site is built in.
   Dark, cool-toned, dense: layered backgrounds instead of shadows, a violet accent
   used only as an accent, Inter for everything and JetBrains Mono for figures and
   identifiers. See violet-issue-DESIGN.md.

   The token names are the ones the markup already used, repointed to this palette,
   so a renderer that asks for var(--accent) gets the violet. */
/* Two renditions of the system. Violet Issue is a dark system; the light one keeps its
   palette, density and type, and swaps the layering: white cards on a near-white app
   background, the same violet accent, status colours darkened enough to read on white.
   Light is the default; [data-theme="dark"] is the original. */
:root{
  color-scheme:light;
  --paper:#FBFBFD; --surface:#FFFFFF; --surface-2:#F3F3F8; --surface-3:#ECECF3;
  --rule:#E3E3EC; --rule-2:#EDEDF3;
  --ink:#16161D; --ink-2:#44454F; --muted:#6B7080; --faint:#8E93A0;
  --accent:#5E6AD2; --accent-hover:#4E5BBF; --accent-2:#6E79D6;
  --accent-wash:rgba(94,106,210,.09); --accent-ring:rgba(94,106,210,.18); --accent-ink:#4A55B8;
  --conf-hi:#1F9D63; --conf-mid:#A97C00; --conf-lo:#8A8F98; --error:#D33F4B;
  --mark-top:#5E6AD2; --mark-rest:#C6CAEA; --grid:#E9E9F1;
  --s0:#F2F2F7; --s1:#E5E6F6; --s2:#D2D4F0; --s3:#B2B6E6; --s4:#8B92DB; --s5:#5E6AD2;
  --glass:rgba(251,251,253,.85); --scrim:rgba(20,20,35,.35); --scroll:#D3D4DE;
  --shadow:0 24px 48px rgba(20,20,45,.16);
  --sg-res:#6B7280; --sg-agr:#1F9D63; --sg-nrg:#A97C00; --sg-wat:#2B7FB8; --sg-mfg:#7A67D9;
  --sg-trn:#4A55B8; --sg-dig:#0E9A92; --sg-fin:#A64C9E; --sg-soc:#5573C0; --sg-def:#C23B3B;

  --ff-ui:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --ff-name:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --ff-num:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --sidebar:220px; --topbar:48px;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#101014; --surface:#1B1B25; --surface-2:#1F1F2E; --surface-3:#252536;
  --rule:#2C2C3A; --rule-2:#232330;
  --ink:#F1F1F4; --ink-2:#B9BDC6; --muted:#8A8F98; --faint:#6C707A;
  --accent:#5E6AD2; --accent-hover:#4E5BBF; --accent-2:#6E79D6;
  --accent-wash:rgba(94,106,210,.10); --accent-ring:rgba(94,106,210,.15); --accent-ink:#9AA3E6;
  --conf-hi:#3DD68C; --conf-mid:#F0C000; --conf-lo:#8A8F98; --error:#EB5757;
  --mark-top:#5E6AD2; --mark-rest:#3B3B54; --grid:#262634;
  --s0:#1B1B25; --s1:#23233A; --s2:#2C2C4E; --s3:#3A3C6F; --s4:#4B50A3; --s5:#5E6AD2;
  --glass:rgba(16,16,20,.88); --scrim:rgba(6,6,10,.55); --scroll:#2E2E3E;
  --shadow:0 24px 48px rgba(0,0,0,.4);
  --sg-res:#8A8F98; --sg-agr:#3DD68C; --sg-nrg:#F0C000; --sg-wat:#4CA5E0; --sg-mfg:#9B8AFB;
  --sg-trn:#5E6AD2; --sg-dig:#2ED4C6; --sg-fin:#C56FC0; --sg-soc:#6E8AD6; --sg-def:#EB5757;
}
*{box-sizing:border-box}
svg{fill:currentColor}   /* the sprite's icons take the colour of their context */
html{background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ff-ui);font-size:14px;line-height:1.5;
  -webkit-font-smoothing:antialiased;font-feature-settings:"cv05","ss01"}
a{color:var(--accent-ink)}
h1,h2,h3,h4{font-family:var(--ff-name);letter-spacing:-.03em;font-weight:600;color:var(--ink)}
b,strong{font-weight:600}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[hidden]{display:none!important}
::selection{background:rgba(94,106,210,.35)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:8px;border:2px solid var(--paper)}
::-webkit-scrollbar-track{background:transparent}

/* ============================ shell ============================ */
.app{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--surface);
  border-right:1px solid var(--rule);display:flex;flex-direction:column;z-index:70}
.ws{display:flex;align-items:center;gap:8px;height:var(--topbar);padding:0 12px;border-bottom:1px solid var(--rule);
  flex:0 0 auto}
.ws .logo{width:24px;height:24px;border-radius:6px;background:linear-gradient(140deg,var(--accent),var(--accent-2));
  display:grid;place-items:center;color:#fff;font-size:11px;font-weight:600;letter-spacing:-.02em;flex:0 0 auto}
.ws .wsname{min-width:0;line-height:1.2}
.ws .wsname a{display:block;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em}
.ws .wsname span{display:block;font-family:var(--ff-num);font-size:10px;color:var(--muted)}
.nav{flex:1 1 auto;overflow-y:auto;padding:12px 8px}
.nav-sec{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);
  padding:8px 8px 4px}
.nav a{display:flex;align-items:center;gap:9px;height:32px;padding:0 8px;border-radius:8px;text-decoration:none;
  color:var(--muted);font-size:13px;font-weight:500;transition:background .1s,color .1s}
.nav a svg{width:16px;height:16px;flex:0 0 auto;opacity:.9}
.nav a .kbd{margin-left:auto}
.nav a:hover{background:var(--surface-2);color:var(--ink)}
.nav a[aria-current="page"]{background:var(--accent-wash);color:var(--ink)}
.nav a[aria-current="page"] svg{color:var(--accent);opacity:1}
.kbd{font-family:var(--ff-num);font-size:11px;color:var(--muted);background:var(--surface-2);
  border:1px solid var(--rule);border-radius:9999px;min-width:20px;height:20px;padding:0 6px;
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.nav-foot{flex:0 0 auto;border-top:1px solid var(--rule);padding:8px}
.nav-foot button{width:100%;display:flex;align-items:center;gap:9px;height:32px;padding:0 8px;border-radius:8px;
  background:transparent;border:0;color:var(--muted);font:500 13px/1 var(--ff-ui);cursor:pointer;transition:background .1s,color .1s}
.nav-foot button:hover{background:var(--surface-2);color:var(--ink)}
.nav-foot button svg{width:16px;height:16px}
.nav-foot .row{display:flex;gap:6px}
.nav-foot .row button{width:auto;flex:1 1 auto}
#theme-btn .kbd{margin-left:auto}

.main{margin-left:var(--sidebar);min-width:0}
.topbar{position:sticky;top:0;z-index:50;height:var(--topbar);display:flex;align-items:center;gap:12px;
  padding:0 20px;background:var(--glass);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.topbar h2{font-size:14px;font-weight:600;margin:0;letter-spacing:-.02em}
.topbar .crumb{font-family:var(--ff-num);font-size:11px;color:var(--muted)}
.topbar .spacer{flex:1 1 auto}
.pal-open{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 8px 0 10px;border-radius:6px;
  background:var(--surface);border:1px solid var(--rule);color:var(--muted);font:500 13px/1 var(--ff-ui);cursor:pointer;
  transition:border-color .1s,color .1s}
.pal-open:hover{border-color:var(--muted);color:var(--ink)}
.menu-btn{display:none}
.wrap{max-width:1280px;margin:0 auto;padding:0 20px 64px}

/* ============================ command palette ============================ */
.pal-backdrop{position:fixed;inset:0;z-index:100;background:var(--scrim);backdrop-filter:blur(4px);
  display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}
.pal{width:560px;max-width:100%;background:var(--surface-2);border:1px solid var(--rule);border-radius:12px;
  box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;max-height:70vh}
.pal input{height:44px;border:0;border-bottom:1px solid var(--rule);background:transparent;color:var(--ink);
  font:400 16px/1 var(--ff-ui);padding:0 16px;outline:none;flex:0 0 auto}
.pal input::placeholder{color:var(--muted)}
.pal-list{overflow-y:auto;padding:6px}
.pal-group{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);
  padding:10px 10px 4px}
.pal-row{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:6px;cursor:pointer;
  color:var(--ink-2);font-size:13px}
.pal-row svg{width:15px;height:15px;color:var(--muted);flex:0 0 auto}
.pal-row .sub2{color:var(--muted);font-size:12px;margin-left:auto;font-family:var(--ff-num);white-space:nowrap}
.pal-row[aria-selected="true"]{background:var(--accent-wash);color:var(--ink);box-shadow:inset 2px 0 var(--accent)}
.pal-row[aria-selected="true"] svg{color:var(--accent)}
.pal-foot{border-top:1px solid var(--rule);padding:7px 12px;display:flex;gap:14px;align-items:center;
  font-size:11px;color:var(--muted)}
.pal-foot b{font-family:var(--ff-num);font-weight:400;color:var(--ink-2)}
.pal-empty{padding:22px 12px;color:var(--muted);font-size:13px;text-align:center}

/* ============================ page furniture ============================ */
.pagehead{padding:28px 0 20px;border-bottom:1px solid var(--rule)}
.pagehead h1{font-size:24px;margin:0;line-height:1.25}
.standfirst{margin:10px 0 0;max-width:76ch;color:var(--ink-2);font-size:13px;line-height:1.6}
.standfirst b{color:var(--ink)}
.mastfoot{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:16px;font-family:var(--ff-num);font-size:11px;
  color:var(--muted)}
.mastfoot span b{color:var(--ink);font-weight:500}
section{margin-top:32px}
.sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;
  padding-bottom:10px;border-bottom:1px solid var(--rule)}
.sechead h2{font-size:16px;margin:0}
.sechead p{margin:4px 0 0;font-size:12px;color:var(--muted);max-width:70ch}
.legend{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-flex;align-items:center;gap:6px;font-style:normal}
.sw{width:10px;height:10px;border-radius:4px;display:block}
.sw-top{background:var(--mark-top)}.sw-rest{background:var(--mark-rest)}
.loading{padding:80px 8px;text-align:center;color:var(--muted);font-size:13px}
.empty{padding:64px 8px;text-align:center;color:var(--muted);font-size:13px}
footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--rule);font-size:12px;color:var(--muted);max-width:80ch}
footer p{margin:0 0 8px}
footer b{color:var(--ink-2)}

/* figures row */
.shorts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:20px}
.short{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:10px 12px}
.short dt{font-size:11px;font-weight:500;color:var(--muted);margin:0}
.short dd{margin:6px 0 0;font-family:var(--ff-num);font-size:20px;font-weight:500;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;line-height:1;color:var(--ink)}
.short dd small{font-size:11px;color:var(--muted);margin-left:2px}
.short .note{font-size:11px;color:var(--muted);margin-top:6px}

/* ============================ controls ============================ */
/* The filters scroll away with the page; the table header below them is what stays,
   pinned under the topbar, because that is what a long list needs in view. */
.rail{background:var(--paper);border-bottom:1px solid var(--rule);padding:10px 0}
.rail-in,.ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.field{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--rule);
  border-radius:6px;padding:0 10px;height:32px;min-width:0;max-width:100%;transition:border-color .1s}
.field label{font-size:11px;font-weight:500;color:var(--muted);white-space:nowrap}
select,input[type=search]{font-family:var(--ff-ui);font-size:13px;color:var(--ink);background:transparent;border:0;
  outline:none;padding:0;height:30px;max-width:100%;min-width:0}
select{cursor:pointer}
select option{background:var(--surface-2);color:var(--ink)}
input[type=search]{width:200px}
input[type=search]::placeholder{color:var(--muted)}
input[type=search]::-webkit-search-cancel-button{filter:grayscale(1) opacity(.6)}
.field:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring)}
.toggle{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 10px;background:transparent;
  border:1px solid var(--rule);border-radius:6px;font-size:13px;color:var(--ink-2);cursor:pointer;user-select:none;
  transition:border-color .1s,color .1s}
.toggle:hover{border-color:var(--muted);color:var(--ink)}
.toggle input{accent-color:var(--accent);margin:0;width:13px;height:13px}
.toggle[data-off="1"]{opacity:.4;cursor:not-allowed}
.btn-reset{height:32px;padding:0 12px;background:transparent;border:1px solid transparent;border-radius:6px;
  font:500 13px/1 var(--ff-ui);color:var(--muted);cursor:pointer;transition:background .1s,color .1s}
.btn-reset:hover{color:var(--ink);background:var(--surface-2)}
.seg-ctl,.hm-seg{display:inline-flex;background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:2px}
.seg-ctl button,.hm-seg button{appearance:none;border:0;background:transparent;font:500 13px/1 var(--ff-ui);
  color:var(--muted);padding:0 10px;height:24px;border-radius:4px;cursor:pointer;white-space:nowrap;transition:background .1s,color .1s}
.seg-ctl button:hover,.hm-seg button:hover{color:var(--ink)}
.seg-ctl button[aria-pressed="true"],.hm-seg button[aria-pressed="true"]{background:var(--accent);color:#fff}

/* filter chips: compact buttons; label chips (spans) are the 20px system chip */
.chips{display:flex;gap:6px;overflow-x:auto;padding:10px 0;scrollbar-width:thin;border-bottom:1px solid var(--rule-2)}
button.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 10px;
  background:var(--surface);border:1px solid var(--rule);border-radius:6px;cursor:pointer;
  font:500 13px/1 var(--ff-ui);color:var(--ink-2);white-space:nowrap;transition:background .1s,border-color .1s,color .1s}
button.chip svg{width:14px;height:14px;flex:0 0 auto;opacity:.8}
button.chip .n{font-family:var(--ff-num);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
button.chip:hover{border-color:var(--muted);color:var(--ink)}
button.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
button.chip[aria-pressed="true"] .n{color:rgba(255,255,255,.75)}
button.chip[aria-pressed="true"] svg{opacity:1}
span.chip,.pill,.badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:4px;
  font:500 11px/1 var(--ff-ui);white-space:nowrap;flex:0 0 auto;
  background:color-mix(in srgb,currentColor 15%,transparent)}
.c-now{color:var(--conf-hi)} .c-layer{color:var(--conf-mid)} .c-ext{color:var(--muted)}
.p-open{color:var(--conf-hi)} .p-closed{color:var(--conf-mid)}
.b-add{color:var(--conf-hi)} .b-split{color:var(--conf-mid)} .b-struct{color:var(--accent-ink)} .b-rule{color:var(--muted)}
.more{padding:18px 8px 4px;text-align:center}
.more button{font:500 13px/1 var(--ff-ui);color:var(--ink-2);background:var(--surface);border:1px solid var(--rule);
  border-radius:6px;padding:0 16px;height:32px;cursor:pointer;transition:border-color .1s,color .1s}
.more button:hover{border-color:var(--accent);color:var(--ink)}
.countbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 2px;
  font-family:var(--ff-num);font-size:11px;color:var(--muted);flex-wrap:wrap}
.countbar b{color:var(--ink);font-weight:500}
.countbar .legend{gap:12px;font-family:var(--ff-ui)}
.countbar .legend .dot{margin:0}
details{margin-top:28px;border-top:1px solid var(--rule);padding-top:14px}
summary{cursor:pointer;font-size:13px;color:var(--ink-2);font-weight:500}
summary:hover{color:var(--accent-ink)}

/* ============================ register table ============================ */
/* The register's header pins under the filter rail. A scroll container would make it
   stick to that container instead of the page, so the wrapper only scrolls on the narrow
   layout, where the header is not sticky anyway. */
.tablewrap{overflow-x:auto}
@media (min-width:761px){ .tablewrap{overflow:visible} }
table{width:100%;border-collapse:collapse}
.tablewrap table{min-width:680px}
.tblwrap{overflow-x:auto;margin-top:12px}
.tblwrap table,#tbl table{min-width:820px}
thead th{position:sticky;top:var(--topbar);z-index:10;background:var(--paper);
  font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);
  text-align:left;padding:10px 8px 8px;border-bottom:1px solid var(--rule);white-space:nowrap}
thead th.dim{text-align:center;width:46px;padding-inline:2px;cursor:help}
thead th.tot{text-align:right;width:72px;padding-right:12px}
thead th.num{width:48px;text-align:right;padding-right:10px}
thead th.ico{width:32px}
th.sortable{cursor:pointer}
th.sortable:hover{color:var(--ink)}
th[data-active="1"]{color:var(--accent-ink)}
tbody tr{border-bottom:1px solid var(--rule-2);transition:background .05s}
tbody tr:hover{background:var(--surface-2)}
td{padding:0 8px;vertical-align:middle}
.c-rank{font-family:var(--ff-num);font-size:12px;color:var(--muted);text-align:right;padding-right:10px;
  font-variant-numeric:tabular-nums}
.c-ico{padding-right:0}
.c-ico svg{width:16px;height:16px;color:var(--accent);opacity:.85;display:block;margin:auto}
/* one line per asset: 36px, everything inline, metadata taking the slack */
.rowline{display:flex;align-items:center;gap:8px;height:36px;min-width:0;font-size:14px}
.rowline .flag{font-family:var(--ff-num);font-size:11px;color:var(--muted);flex:0 0 auto;width:30px}
.rowline .nm{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;max-width:52ch}
.rowline .meta{flex:1 1 auto;min-width:0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.rowline .st{color:var(--conf-mid)}
.rowline .c-map{flex:0 0 auto}
.rowline .c-map a{font-size:13px}
.name{font-size:14px;font-weight:500;line-height:1.35;color:var(--ink)}
.name a.wl{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}
.name a.wl:hover{color:var(--accent-ink);border-bottom-color:var(--accent)}
.dup{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;flex:0 0 auto;
  font:500 11px/1 var(--ff-ui);white-space:nowrap;background:color-mix(in srgb,currentColor 15%,transparent)}
.name .dup{margin-left:8px;vertical-align:1px}
.flag-rv{color:var(--conf-hi)} .flag-dg{color:var(--accent-ink)}
.flag-na{color:var(--error)} .flag-ns{color:var(--conf-mid)}
.sub{font-size:12px;color:var(--muted);margin-top:2px;display:flex;flex-wrap:wrap;align-items:baseline;
  gap:0 10px;line-height:1.4}
.sub>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sub .flag{font-family:var(--ff-num);font-size:11px;color:var(--ink-2)}
.sub .st{color:var(--conf-mid)}
.c-map a{color:var(--muted);text-decoration:none;font-size:11px}
.c-map a:hover{color:var(--accent-ink)}
.dimcell{text-align:center;padding:0 3px}
.dimcell span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:22px;border-radius:4px;
  font-family:var(--ff-num);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.dimcell span.v0{background:var(--s0);color:var(--faint)}
.dimcell span.v1{background:var(--s1)}.dimcell span.v2{background:var(--s2)}
.dimcell span.v3{background:var(--s3);color:var(--ink)}
.dimcell span.v4{background:var(--s4);color:#fff}
.dimcell span.v5{background:var(--s5);color:#fff;font-weight:600}
.dimcell span.vu{background:transparent;color:var(--faint);font-weight:400}
.c-tot{text-align:right;padding-right:12px;white-space:nowrap}
.totn{font-family:var(--ff-num);font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.totd{font-family:var(--ff-num);font-size:10px;color:var(--muted)}
.totn.tu{color:var(--faint);font-weight:400}
.c-tot .bar{height:2px;border-radius:9999px;background:var(--accent);margin:4px 0 0 auto;opacity:.9}
.c-conf{width:22px;padding-left:0;padding-right:12px}
.dot{width:8px;height:8px;border-radius:9999px;display:block;margin-left:auto;border:1.5px solid transparent}
.k3{background:var(--conf-hi)}
.k2{background:transparent;border-color:var(--accent-2)}
.k1{background:transparent;border-color:var(--conf-mid)}
.k0{background:transparent;border-color:var(--faint)}

/* ============================ charts ============================ */
.chart{margin-top:20px;position:relative}
.plot{display:flex;align-items:stretch;gap:3px;height:260px;position:relative;border-bottom:1px solid var(--rule)}
.gridline{position:absolute;left:0;right:0;border-top:1px solid var(--grid);pointer-events:none}
.gridline span{position:absolute;left:0;top:-8px;font-family:var(--ff-num);font-size:10px;color:var(--faint);
  background:var(--paper);padding-right:6px}
.bar{flex:1 1 0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;position:relative;
  min-width:0;cursor:default}
.bar .seg{width:100%}
.bar .seg.top{background:var(--mark-top);border-radius:4px 4px 0 0}
.bar .seg.rest{background:var(--mark-rest)}
.bar .seg.rest.solo{border-radius:4px 4px 0 0}
.bar .dl{position:absolute;left:50%;transform:translateX(-50%);font-family:var(--ff-num);font-size:10px;
  color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.bar:hover .seg{filter:brightness(1.15)}
.axis{display:flex;gap:3px;margin-top:7px}
.axis span{flex:1 1 0;text-align:center;font-family:var(--ff-num);font-size:10px;color:var(--faint);min-width:0;
  font-variant-numeric:tabular-nums}
.axis span.on{color:var(--ink-2);font-weight:500}
.axtitle{margin-top:8px;font-size:11px;color:var(--muted);text-align:center}
.tip{position:absolute;z-index:40;pointer-events:none;background:var(--surface-3);border:1px solid var(--rule);
  border-radius:6px;padding:6px 10px;font-size:12px;color:var(--ink);transform:translate(-50%,-100%);
  white-space:nowrap;opacity:0;transition:opacity .1s}
.tip b{font-family:var(--ff-num);font-variant-numeric:tabular-nums}
.tip .r{color:var(--muted);display:block;margin-top:3px;font-size:11px}

/* nation cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px;margin-top:20px}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:12px 16px;
  display:flex;flex-direction:column;gap:10px}
.card header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.card h3{font-size:14px;font-weight:600;margin:0;line-height:1.3}
.card .iso,.cov .ciso,.sig .siso,.arch .an{font-family:var(--ff-num);font-size:11px;color:var(--muted);flex:0 0 auto}
.mini{display:flex;align-items:flex-end;gap:2px;height:58px;border-bottom:1px solid var(--rule-2)}
.mini i{flex:1 1 0;align-self:flex-end;background:var(--mark-top);border-radius:2px 2px 0 0;min-width:0;display:block;opacity:.9}
.miniax{display:flex;justify-content:space-between;font-family:var(--ff-num);font-size:10px;color:var(--faint);margin-top:4px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px solid var(--rule-2);padding-top:10px}
.kpi{min-width:0}
.kpi dt{font-size:11px;color:var(--muted);margin:0}
.kpi dd{margin:3px 0 0;font-family:var(--ff-num);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;line-height:1;color:var(--ink)}
.kpi dd small{font-size:10px;color:var(--faint);font-weight:400}
.leadline{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:baseline}
.leadline b{color:var(--ink-2)}

/* register depth */
.covgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(264px,100%),1fr));gap:0 24px;margin-top:16px;
  border-top:1px solid var(--rule)}
.cov{display:grid;grid-template-columns:1fr auto;gap:1px 10px;align-items:baseline;padding:10px 0;
  border-bottom:1px solid var(--rule-2)}
.cov h4{margin:0;font-size:13px;font-weight:500;line-height:1.3;min-width:0;color:var(--ink)}
.cov .cn{font-family:var(--ff-num);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.cov .cn small{font-size:10px;color:var(--faint);font-weight:400}
.cov .cbar{grid-column:1/-1;height:3px;border-radius:9999px;background:var(--rule-2);margin:6px 0 2px;display:flex;overflow:hidden}
.cov .cbar i{display:block;height:100%;background:var(--mark-top)}
.cov .cbar i.add{background:var(--mark-rest)}
.cov .cmeta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0 9px;font-size:11px;color:var(--muted)}

/* ============================ prose pages ============================ */
.doc .lede{max-width:80ch;font-size:13px;color:var(--ink-2);margin:10px 0 0;line-height:1.6}
.doc h2{font-size:20px;margin:32px 0 0;padding-bottom:10px;border-bottom:1px solid var(--rule)}
.doc h3{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:24px 0 0}
.doc p{max-width:80ch;font-size:13px;color:var(--ink-2);margin:12px 0 0;line-height:1.6}
.doc p.wide{max-width:none}
.doc .note{font-size:12px;color:var(--muted);border-left:2px solid var(--rule);padding-left:12px;margin-top:16px;max-width:78ch}
.fields{display:grid;grid-template-columns:minmax(180px,240px) 1fr;margin-top:16px;border-top:1px solid var(--rule)}
.fields dt{font-family:var(--ff-num);font-size:12px;color:var(--ink);padding:10px 16px 10px 0;
  border-bottom:1px solid var(--rule-2);font-weight:500}
.fields dd{margin:0;padding:10px 0;border-bottom:1px solid var(--rule-2);font-size:13px;color:var(--ink-2)}
.fields dd .vals{display:block;margin-top:4px;font-family:var(--ff-num);font-size:11px;color:var(--muted)}
.fields dd .fill{display:inline-block;margin-top:5px;font-family:var(--ff-num);font-size:11px;color:var(--muted);
  border:1px solid var(--rule);border-radius:4px;padding:1px 6px}
.rubric,.qtable,.ixtab{width:100%;border-collapse:collapse;margin-top:14px;font-size:13px}
.rubric th,.qtable th{text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);
  font-weight:600;padding:8px 10px 8px 0;border-bottom:1px solid var(--rule);vertical-align:bottom}
.rubric td,.qtable td{padding:8px 10px 8px 0;border-bottom:1px solid var(--rule-2);color:var(--ink-2);vertical-align:top}
.rubric td:first-child{font-family:var(--ff-num);font-weight:500;color:var(--ink);width:32px;font-variant-numeric:tabular-nums}
.qtable th{text-align:right} .qtable th:first-child{text-align:left}
.qtable td{text-align:right;font-family:var(--ff-num);font-variant-numeric:tabular-nums}
.qtable td:first-child{text-align:left;font-family:var(--ff-ui);color:var(--ink)}
.qtable .over{color:var(--conf-mid);font-weight:500}
.qtable .under{color:var(--accent-ink);font-weight:500}
.dimhead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:28px}
.dimhead h4{font-size:16px;font-weight:600;margin:0}
.dimhead .tag{font-family:var(--ff-num);font-size:11px;color:var(--accent-ink);
  background:var(--accent-wash);border-radius:4px;padding:2px 8px}
.formula{font-family:var(--ff-num);font-size:12px;background:var(--surface);border:1px solid var(--rule);
  border-radius:8px;padding:14px 16px;margin-top:16px;color:var(--ink-2);line-height:1.8;overflow-x:auto}
.formula b{color:var(--accent-ink);font-weight:500}
.mono{font-family:var(--ff-num);font-size:.9em;color:var(--ink-2);overflow-wrap:anywhere}
.key{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;font-size:12px;color:var(--muted);align-items:center}
.key i{font-style:normal;display:inline-flex;align-items:center;gap:7px}

/* indices */
.idxgroup{margin-top:28px;border-top:1px solid var(--rule);padding-top:16px}
.idxgroup > header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.idxgroup .num{font-family:var(--ff-num);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.idxgroup h3{font-size:16px;font-weight:600;text-transform:none;letter-spacing:-.02em;color:var(--ink);margin:0}
.idxgroup .sub{font-size:12px;color:var(--muted)}
.idxpair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:8px;margin-top:14px}
.idx{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:12px 16px;
  display:flex;flex-direction:column;gap:8px}
.idx header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.idx h4{font-size:16px;font-weight:600;margin:0}
.idx .q{font-size:13px;color:var(--ink);margin:0}
.idx dl{margin:0;display:grid;grid-template-columns:66px 1fr;gap:5px 10px;font-size:12px}
.idx dt{font-size:11px;color:var(--muted);font-weight:500;padding-top:1px}
.idx dd{margin:0;color:var(--ink-2)}
.idx details.calc{border-top:1px solid var(--rule-2);margin-top:2px;padding-top:8px}
.idx details.calc > summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;
  font-size:12px;font-weight:500;color:var(--accent-ink)}
.idx details.calc > summary::-webkit-details-marker{display:none}
.idx details.calc > summary::before{content:"+";font-family:var(--ff-num);width:9px}
.idx details.calc[open] > summary::before{content:"\2212"}
.idx .calc dl{margin-top:10px;grid-template-columns:70px minmax(0,1fr)}
.idx .calc .f{font-family:var(--ff-num);font-size:11px;line-height:1.8;color:var(--ink-2);background:var(--surface-2);
  border:1px solid var(--rule-2);border-radius:6px;padding:7px 9px;overflow-x:auto;overflow-wrap:break-word}
.idx .calc .chg{border-left:2px solid var(--conf-mid);padding-left:9px}
.ixscroll{overflow-x:auto;margin-top:14px}
.ixscroll .ixtab{min-width:640px;margin-top:0}
.ixtab td:first-child{font-family:var(--ff-ui);font-weight:500;width:112px;color:var(--ink)}
.ixtab td:last-child{width:30%}
.formula.ixnote{font-size:11.5px;line-height:1.9}
.ixrules{max-width:80ch;margin:10px 0 0;padding-left:20px;font-size:13px;color:var(--ink-2)}
.ixrules li{margin-top:9px;padding-left:4px}
.ixrules li b{color:var(--ink)}

/* designations */
.desig{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:8px;margin-top:18px}
.dcard{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:12px 16px;
  display:flex;flex-direction:column;gap:9px}
.dcard header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dcard h3{font-size:16px;font-weight:600;margin:0;text-transform:none;color:var(--ink)}
.dcard .inst{font-size:13px;color:var(--ink);margin:0}
.dcard .inst small{display:block;color:var(--muted);font-size:11px;margin-top:2px;font-family:var(--ff-num)}
.dcard .sum{font-size:12px;color:var(--ink-2);margin:0}
.dcard .stats{display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid var(--rule-2);padding-top:9px;
  font-family:var(--ff-num);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.dcard .stats b{color:var(--ink);font-weight:500}
.gaprow{display:grid;grid-template-columns:36px 1fr;gap:0 14px;align-items:baseline;padding:12px 0;
  border-bottom:1px solid var(--rule-2)}
.gaprow .n{font-family:var(--ff-num);font-size:18px;font-weight:500;color:var(--accent-ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.gaprow h4{font-size:14px;font-weight:600;margin:0;color:var(--ink)}
.gaprow .who{font-family:var(--ff-num);font-size:11px;color:var(--muted);margin-top:4px}
.gaprow .fix{margin-top:8px;padding-left:11px;border-left:2px solid var(--accent);font-size:12px;color:var(--ink-2);max-width:78ch}
.gaprow .fix b{color:var(--accent-ink)}
.gaprow .fix b.cap{color:var(--ink)}
.gaprow .fix span{display:block;margin-top:3px;font-family:var(--ff-num);font-size:11px;color:var(--muted)}
.gaprow .fix.na{border-left-color:var(--rule)}
.gaprow .fix.na b{color:var(--muted)}

/* recommendations (taxonomy page) */
.rec{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:12px 16px;margin-top:10px;
  display:flex;flex-direction:column;gap:8px}
.rec header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rec h4{font-size:16px;font-weight:600;margin:0}
.rec p{margin:0;font-size:13px;color:var(--ink-2);max-width:80ch}
.rec .evid{font-family:var(--ff-num);font-size:11px;color:var(--muted);border-top:1px solid var(--rule-2);
  padding-top:8px;line-height:1.7}
.rec .evid b{color:var(--ink-2)}
.rec ul{margin:0;padding-left:18px;font-size:13px;color:var(--ink-2)}
.rec li{margin-top:4px}
.recgrp{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;padding-bottom:8px;
  border-bottom:1px solid var(--rule-2);font-family:var(--ff-num);font-size:11px}
.recgrp .gl{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600;font-family:var(--ff-ui)}
.recgrp .gv{color:var(--ink);font-weight:500;font-family:var(--ff-ui);font-size:13px}
.recgrp .lvl-num{color:var(--accent-ink);font-variant-numeric:tabular-nums}
.recgrp .lvl-arrow{color:var(--faint)}
.recgrp .lvl-lab,.recgrp .lvl-same{color:var(--muted)}
.recgrp .gnote{color:var(--muted);font-family:var(--ff-ui);font-size:12px;flex-basis:100%}

/* ============================ taxonomy ============================ */
.tgroup{margin-top:32px;border-top:1px solid var(--rule);padding-top:14px}
.tgroup > header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;justify-content:space-between}
.tgroup .gname{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.tgroup .gnum{font-family:var(--ff-num);font-size:11px;color:var(--accent-ink)}
.tgroup h3{font-size:20px;font-weight:600;margin:0;text-transform:none;color:var(--ink)}
.tgroup .gid{font-family:var(--ff-num);font-size:11px;color:var(--muted)}
.gstats{display:flex;gap:14px;font-family:var(--ff-num);font-size:11px;color:var(--muted);flex-wrap:wrap;
  font-variant-numeric:tabular-nums}
.gstats b{color:var(--ink);font-weight:500}
#view-tax .sub{display:grid;grid-template-columns:1fr 176px;gap:0 20px;padding:12px 0;
  border-bottom:1px solid var(--rule-2);align-items:start}
#view-tax .sub:first-of-type{border-top:1px solid var(--rule-2);margin-top:12px}
#view-tax .sub h4{font-size:14px;font-weight:600;margin:0;color:var(--ink)}
#view-tax .sub .sid{font-family:var(--ff-num);font-size:11px;color:var(--muted);margin-top:3px}
#view-tax .sub p{margin:8px 0 0;font-size:13px;color:var(--ink-2);max-width:72ch;line-height:1.6}
#view-tax .sub .ex{margin-top:7px;font-size:11px;color:var(--muted);font-family:var(--ff-num)}
.smetrics{font-family:var(--ff-num);font-size:11px;color:var(--muted);display:grid;gap:4px;
  font-variant-numeric:tabular-nums;padding-top:2px}
.smetrics span{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--rule-2);padding-bottom:3px}
.smetrics b{color:var(--ink);font-weight:500}

/* ============================ signature ============================ */
/* the ten categorical hues are tokens; see the palettes at the top of this file */
.sigbar{display:flex;width:100%;height:10px;border-radius:4px;overflow:hidden;background:var(--rule-2)}
.sigbar i{display:block;height:100%;min-width:0}
.siglegend{display:flex;flex-wrap:wrap;gap:4px 14px;padding:4px 2px 14px;font-size:11px;color:var(--muted)}
.siglegend i{display:inline-flex;align-items:center;gap:5px;font-style:normal;white-space:nowrap}
.siglegend .sw{width:9px;height:9px;border-radius:3px;flex:0 0 auto}
.sig{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline;padding:11px 0;
  border-bottom:1px solid var(--rule-2)}
.sig h4{margin:0;font-size:13px;font-weight:500;line-height:1.3;min-width:0;color:var(--ink)}
.sig .sarch{font-size:11px;font-weight:500;color:var(--accent-ink);background:var(--accent-wash);border-radius:4px;
  padding:2px 8px;white-space:nowrap}
.sig .sigbar{grid-column:1/-1;margin:7px 0 2px}
.sig .smeta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0 10px;font-size:11px;color:var(--muted)}
.sig .smeta b{color:var(--ink-2);font-weight:500}
.sig .shallow{color:var(--conf-mid)}
.arch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(288px,100%),1fr));gap:8px;margin-top:4px}
.arch{border:1px solid var(--rule);border-radius:8px;padding:12px 16px;background:var(--surface)}
.arch h4{margin:0 0 2px;font-size:14px;font-weight:600}
.arch .sigbar{margin:10px 0 9px}
.arch .adesc{font-size:12px;color:var(--ink-2);line-height:1.6;margin:0 0 8px}
.arch .aex{font-size:11px;color:var(--muted);font-family:var(--ff-num);line-height:1.7}
.arch .aex b{color:var(--ink-2);font-weight:500}
.cl-foot{font-size:12px;color:var(--muted);margin-top:10px}

/* ============================ home ============================ */
.hm-panel{border:1px solid var(--rule);border-radius:8px;background:var(--surface);padding:12px}
.hm-cat{display:flex;align-items:center;gap:8px;margin:2px 3px 12px;font-size:11px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.hm-cat-badge{margin-left:auto;flex-shrink:0;font-family:var(--ff-num);font-size:11px;letter-spacing:0;
  border:1px solid var(--rule);border-radius:4px;padding:2px 8px;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.hm-grid{columns:2 420px;column-gap:12px}
.hm-block{break-inside:avoid;background:var(--surface-2);border:1px solid var(--rule);border-radius:8px;
  padding:10px;margin:0 0 12px;border-top:2px solid var(--hb)}
.hm-block[data-k="res"]{--hb:var(--sg-res)} .hm-block[data-k="agr"]{--hb:var(--sg-agr)}
.hm-block[data-k="nrg"]{--hb:var(--sg-nrg)} .hm-block[data-k="wat"]{--hb:var(--sg-wat)}
.hm-block[data-k="mfg"]{--hb:var(--sg-mfg)} .hm-block[data-k="trn"]{--hb:var(--sg-trn)}
.hm-block[data-k="dig"]{--hb:var(--sg-dig)} .hm-block[data-k="fin"]{--hb:var(--sg-fin)}
.hm-block[data-k="soc"]{--hb:var(--sg-soc)} .hm-block[data-k="def"]{--hb:var(--sg-def)}
.hm-head{display:flex;align-items:center;gap:8px;padding:4px 4px 10px;color:var(--ink);text-decoration:none;
  font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;line-height:1.3}
.hm-head svg{width:15px;height:15px;flex-shrink:0;color:var(--hb)}
.hm-head .hm-nm{min-width:0}
.hm-head:hover .hm-nm,.hm-head:focus-visible .hm-nm{color:var(--accent-ink)}
.hm-badge{margin-left:auto;flex-shrink:0;background:var(--surface);border:1px solid var(--rule);border-radius:4px;
  padding:1px 7px;font-family:var(--ff-num);font-size:11px;font-weight:500;letter-spacing:0;
  font-variant-numeric:tabular-nums;color:var(--ink-2)}
.hm-caps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.hm-cap{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;height:32px;
  padding:0 8px 0 10px;border-radius:6px;text-decoration:none;color:var(--ink-2);background:var(--surface);
  font-size:12px;font-weight:500;transition:background .1s,color .1s}
.hm-cap:hover,.hm-cap:focus-visible{background:var(--surface-3);color:var(--ink)}
.hm-cn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hm-num{flex-shrink:0;font-family:var(--ff-num);font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}
.hm-cap[data-zero="1"] .hm-num{opacity:.5}
.hm-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:8px}
.hm-link{display:block;border:1px solid var(--rule);border-radius:8px;padding:12px 16px;background:var(--surface);
  color:inherit;text-decoration:none;transition:border-color .1s,background .1s}
.hm-link:hover{border-color:var(--accent);background:var(--surface-2)}
.hm-link h3{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--ink)}
.hm-link p{margin:0;font-size:12px;line-height:1.55;color:var(--muted)}

/* ============================ map ============================ */
#map-canvas{height:min(72vh,760px);min-height:420px;border:1px solid var(--rule);border-radius:8px;margin-top:10px;
  background:var(--surface)}
.map-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 24px;font-size:12px;color:var(--muted)}
.map-legend i{display:inline-block;width:10px;height:10px;border-radius:9999px;margin-right:6px;vertical-align:-1px}
/* Mapbox ships its own stylesheet and loads it after this one, so these win explicitly. */
.mapboxgl-popup .mapboxgl-popup-content{font-family:var(--ff-ui);background:var(--surface-2)!important;
  color:var(--ink)!important;padding:12px 14px!important;border:1px solid var(--rule);border-radius:8px!important;
  box-shadow:var(--shadow)!important}
.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{border-top-color:var(--surface-2)!important}
.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{border-bottom-color:var(--surface-2)!important}
.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{border-right-color:var(--surface-2)!important}
.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{border-left-color:var(--surface-2)!important}
.mapboxgl-popup-close-button{color:var(--muted);font-size:16px;padding:2px 6px}
.mapboxgl-popup-close-button:hover{background:transparent;color:var(--ink)}
.mp-n{font-weight:600;font-size:14px;line-height:1.3}.mp-n a{color:var(--accent-ink);text-decoration:none}
.mp-m,.mp-p{font-size:12px;color:var(--muted);margin-top:4px}
.mp-s{font-size:12px;margin-top:6px;color:var(--ink-2);font-family:var(--ff-num)}
.mp-r{display:inline-block;margin-top:8px;font-size:12px;color:var(--accent-ink);text-decoration:none}
.mapboxgl-ctrl-group{background:var(--surface-2)!important;border:1px solid var(--rule)!important;border-radius:6px!important}
.mapboxgl-ctrl-group button{background:transparent!important}
.mapboxgl-ctrl-group button+button{border-top:1px solid var(--rule)!important}
.mapboxgl-ctrl-group button .mapboxgl-ctrl-icon{filter:invert(1) opacity(.7)}
.mapboxgl-ctrl-scale{background:transparent!important;border-color:var(--rule)!important;color:var(--muted)!important;
  font-family:var(--ff-num)!important}
.mapboxgl-ctrl-attrib{background:rgba(27,27,37,.8)!important}
.mapboxgl-ctrl-attrib a{color:var(--muted)!important}

/* ============================ responsive ============================ */
@media (max-width:900px){
  :root{--sidebar:0px}
  .sidebar{position:fixed;inset:0 auto 0 0;width:240px;transform:translateX(-100%);transition:transform .15s}
  .sidebar[data-open="1"]{transform:none;box-shadow:var(--shadow)}
  .main{margin-left:0}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;
    background:var(--surface);border:1px solid var(--rule);color:var(--ink-2);cursor:pointer}
  .menu-btn svg{width:15px;height:15px}
}
@media (max-width:760px){
  thead th{position:static}
  input[type=search]{width:140px}
  .tablewrap table{min-width:0;table-layout:fixed}
  thead th.dim,td.dimcell{display:none}
  thead th.num,.c-rank{width:32px;padding-right:6px}
  thead th.ico{width:26px}
  thead th.tot{width:58px;padding-right:6px}
  .c-tot{padding-right:6px}
  th.c-conf,.c-conf{width:20px;padding-right:4px}
  .name{overflow-wrap:anywhere}
  .rail-in>.field,.ctl>.field{flex:1 1 100%}
  .field select,.field input[type=search]{flex:1 1 auto;width:0}
  .plot{height:200px}
}
@media (max-width:700px){ #view-tax .sub{grid-template-columns:1fr} .smetrics{margin-top:10px} .arch-grid{grid-template-columns:1fr} }
@media (max-width:620px){ .fields{grid-template-columns:1fr} .fields dt{padding-bottom:0;border-bottom:0} .fields dd{padding-top:4px} }
@media (max-width:460px){ .hm-caps{grid-template-columns:minmax(0,1fr)} .hm-panel{padding:10px} }
