[hidden]{display:none!important}
:root{
  color-scheme:dark;
  --bg:#090c10;
  --surface:#10151a;
  --surface-raised:#151b20;
  --surface-quiet:#0c1014;
  --ink:#e8e1d4;
  --ink-strong:#fff9ed;
  --muted:#9b978f;
  --faint:#706f6a;
  --rule:#343a3d;
  --rule-strong:#53595a;
  --copper:#b9794d;
  --copper-bright:#dda06f;
  --copper-dark:#70472e;
  --alert:#cf625d;
  --alert-dark:#4e2929;
  --ok:#8ca089;
  --focus:#f0b77e;
  --radius:2px;
  --mono:"IBM Plex Mono","Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--bg);scrollbar-color:var(--rule-strong) var(--bg)}
body{
  min-width:320px;
  margin:0;
  color:var(--ink);
  background-color:var(--bg);
  background-image:linear-gradient(to bottom,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:100% 32px;
  font:14px/1.45 var(--sans);
}
button,input,select{font:inherit;color:inherit}
button,input,select{
  min-height:34px;
  border:1px solid var(--rule-strong);
  border-radius:var(--radius);
  background:var(--surface-quiet);
  padding:.48rem .62rem;
}
button{
  cursor:pointer;
  color:var(--ink-strong);
  font:700 .72rem/1 var(--mono);
  letter-spacing:.045em;
  text-transform:uppercase;
}
button:hover{border-color:var(--copper);background:#191713}
button:active{transform:translateY(1px)}
:where(button,input,select,a,[tabindex]):focus-visible{
  outline:2px solid var(--focus);
  outline-offset:2px;
  border-color:var(--focus);
  box-shadow:none;
}
::selection{color:var(--ink-strong);background:var(--copper-dark)}
.skip-link{
  position:fixed;
  z-index:100;
  top:.5rem;
  left:.5rem;
  padding:.55rem .7rem;
  color:var(--bg);
  background:var(--focus);
  font:700 .72rem var(--mono);
  text-decoration:none;
  transform:translateY(-180%);
}
.skip-link:focus{transform:none}

.hub-topbar{
  position:sticky;
  z-index:30;
  top:0;
  display:grid;
  grid-template-columns:auto minmax(360px,1fr) auto;
  align-items:stretch;
  min-height:54px;
  border-bottom:1px solid var(--rule-strong);
  background:#0b0f13;
}
.route-mark{display:flex;align-items:center;border-right:1px solid var(--rule);white-space:nowrap}
.brand{
  align-self:stretch;
  display:flex;
  align-items:center;
  gap:.55rem;
  padding:0 1rem;
  color:var(--ink-strong);
  font:800 .79rem var(--mono);
  letter-spacing:.1em;
  text-decoration:none;
}
.brand span{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border:1px solid var(--copper);
  color:var(--copper-bright);
  font-size:.62rem;
}
.route-code{padding-right:1rem;color:var(--faint);font:600 .62rem var(--mono);letter-spacing:.08em}
.hub-topbar nav{
  min-width:0;
  display:flex;
  align-items:stretch;
  overflow-x:auto;
  white-space:nowrap;
  scrollbar-width:thin;
}
.hub-topbar nav a{
  flex:none;
  display:flex;
  align-items:center;
  padding:0 .72rem;
  border-right:1px solid #252b2e;
  color:var(--muted);
  font:600 .68rem var(--mono);
  letter-spacing:.035em;
  text-decoration:none;
  text-transform:uppercase;
}
.hub-topbar nav a:hover{color:var(--ink-strong);background:var(--surface-raised)}
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:.38rem;padding:.45rem .7rem;border-left:1px solid var(--rule)}
.topbar-actions button{white-space:nowrap}
.freshness{
  max-width:280px;
  margin:0 .4rem 0 0;
  overflow:hidden;
  color:var(--muted);
  font:500 .64rem/1.25 var(--mono);
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.freshness[data-tone="loading"]{color:var(--copper-bright)}
.freshness[data-tone="error"]{color:#f08a84}
.freshness[data-tone="ready"]{color:var(--ok)}

main{width:min(1920px,100%);margin:0 auto;padding:clamp(.75rem,2vw,1.6rem)}
.query-panel{border:1px solid var(--rule-strong);background:var(--surface)}
.query-masthead{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  min-height:124px;
  border-bottom:1px solid var(--rule-strong);
}
.query-title-block{padding:1rem 1.15rem}
.eyebrow{margin:0;color:var(--copper-bright);font:800 .64rem/1.3 var(--mono);letter-spacing:.11em}
h1{margin:.25rem 0 .35rem;color:var(--ink-strong);font:700 clamp(1.55rem,3vw,2.7rem)/1 var(--sans);letter-spacing:-.045em}
.query-deck{max-width:760px;margin:0;color:var(--muted);font-size:.86rem}
.dataset-stamp{
  display:grid;
  align-content:center;
  padding:.8rem 1rem;
  border-left:1px solid var(--rule-strong);
  background:var(--surface-quiet);
  font-family:var(--mono);
}
.stamp-label{color:var(--faint);font-size:.59rem;letter-spacing:.14em}
.dataset-stamp>strong{margin:.2rem 0 .55rem;color:var(--copper-bright);font-size:1.05rem;letter-spacing:.05em}
.dataset-stamp dl{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--rule)}
.dataset-stamp dl div{padding:.4rem 0 0}
.dataset-stamp dl div+div{padding-left:.7rem;border-left:1px solid var(--rule)}
.dataset-stamp dt{color:var(--faint);font-size:.56rem;text-transform:uppercase}
.dataset-stamp dd{margin:.08rem 0 0;color:var(--muted);font-size:.65rem}

#query-form{
  display:grid;
  grid-template-columns:minmax(290px,1.05fr) minmax(280px,.9fr) minmax(520px,1.45fr) 124px;
  align-items:stretch;
  gap:1px;
  padding:.8rem;
  background-color:var(--rule);
  background-image:linear-gradient(to bottom,transparent 31px,rgba(255,255,255,.025) 32px);
  background-size:100% 32px;
}
.filter-group{
  position:relative;
  min-width:0;
  margin:0;
  padding:1.7rem .42rem .42rem;
  border:0;
  background:var(--surface);
}
.filter-group legend{
  position:absolute;
  top:.4rem;
  left:.5rem;
  padding:0;
  color:var(--muted);
  font:700 .58rem/1 var(--mono);
  letter-spacing:.09em;
  text-transform:uppercase;
}
.filter-group legend span{color:var(--copper-bright)}
.filter-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:1px;background:var(--rule)}
.time-group .filter-fields{grid-template-columns:repeat(4,minmax(105px,1fr))}
label{display:grid;min-width:0;gap:.28rem;color:var(--muted);font:700 .61rem/1.25 var(--mono);letter-spacing:.055em;text-transform:uppercase}
#query-form label{padding:.42rem;border:0;background:rgba(9,12,16,.88)}
#query-form label:focus-within{position:relative;z-index:4;box-shadow:inset 0 0 0 1px var(--copper)}
#query-form input,#query-form select{width:100%;min-width:0;color:var(--ink);font:500 .74rem var(--mono);letter-spacing:0;text-transform:none}
#query-form select{padding-right:1.5rem}
#query-form .run-query{
  align-self:stretch;
  min-height:58px;
  border-color:var(--copper);
  border-radius:0;
  color:#1b120d;
  background:var(--copper-bright);
}
#query-form .run-query:hover{background:#edb381}
#query-form .run-query:disabled{cursor:wait;color:var(--muted);border-color:var(--rule);background:var(--surface-quiet)}
.autocomplete-field{position:relative}
.autocomplete-menu{
  position:absolute;
  z-index:60;
  top:calc(100% - 1px);
  left:-1px;
  right:-1px;
  max-height:19rem;
  overflow:auto;
  border:1px solid var(--copper);
  border-radius:0;
  background:#0b0f13;
  box-shadow:8px 12px 0 rgba(0,0,0,.45);
}
.autocomplete-option{
  display:grid;
  width:100%;
  min-height:0;
  gap:.12rem;
  padding:.58rem .65rem;
  border:0;
  border-bottom:1px solid var(--rule);
  border-radius:0;
  background:transparent;
  text-align:left;
  text-transform:none;
}
.autocomplete-option:last-child{border-bottom:0}
.autocomplete-option strong{color:var(--ink);font:650 .76rem var(--sans)}
.autocomplete-option small{color:var(--muted);font:500 .62rem var(--mono)}
.autocomplete-option:hover,.autocomplete-option.active{color:var(--ink-strong);background:#231b16;box-shadow:inset 3px 0 var(--copper-bright)}
.query-foot{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:1rem;padding:.65rem .8rem;border-top:1px solid var(--rule);background:var(--surface-quiet)}
.hint{margin:0;color:var(--faint);font:500 .64rem/1.45 var(--mono)}
.coverage{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:1px}
.coverage span{padding:.26rem .48rem;border:1px solid var(--rule);border-radius:0;color:var(--muted);background:var(--surface);font:600 .59rem var(--mono);font-variant-numeric:tabular-nums;text-transform:uppercase}

.dashboard-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:1.35rem 0 .55rem;padding:0 .1rem}
.dashboard-heading h2{margin:.08rem 0 0;color:var(--ink-strong);font-size:1.35rem;letter-spacing:-.025em}
.dashboard-heading>p{max-width:630px;margin:0;color:var(--faint);font:500 .64rem/1.4 var(--mono);text-align:right}
.dashboard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:8px;align-items:start}
.widget{
  position:relative;
  grid-column:span var(--span,4);
  width:100%;
  min-width:0;
  min-height:280px;
  max-width:100%;
  overflow:auto;
  resize:both;
  border:1px solid var(--rule-strong);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:none;
}
.widget::after{
  position:absolute;
  right:2px;
  bottom:2px;
  width:9px;
  height:9px;
  content:"";
  border-right:2px solid var(--copper);
  border-bottom:2px solid var(--copper);
  pointer-events:none;
}
.widget.dragging{opacity:.55;border-color:var(--copper-bright)}
.widget-head{
  position:sticky;
  z-index:3;
  top:0;
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  min-height:51px;
  border-bottom:1px solid var(--rule-strong);
  background:#11161b;
  cursor:grab;
  user-select:none;
}
.widget-head:active{cursor:grabbing}
.drag-label{align-self:stretch;display:grid;place-items:center;border-right:1px solid var(--rule);color:var(--copper);font:700 .51rem var(--mono);letter-spacing:.08em;writing-mode:vertical-rl;transform:rotate(180deg)}
.widget-title{min-width:0;padding:.48rem .65rem}
.widget-head h3{margin:.08rem 0 0;overflow:hidden;color:var(--ink-strong);font-size:.88rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.widget-kicker{margin:0;overflow:hidden;color:var(--copper-bright);font:700 .54rem/1.2 var(--mono);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap}
.widget-actions{display:flex;gap:2px;padding:.35rem}
.widget-actions button{min-height:27px;padding:.3rem .42rem;border-color:var(--rule);font-size:.55rem}
.widget-body{min-height:210px;padding:.65rem;background-image:linear-gradient(to bottom,transparent 27px,rgba(255,255,255,.022) 28px);background-size:100% 28px}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.stat{min-width:0;padding:.66rem;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:rgba(9,12,16,.72)}
.stat small{display:block;overflow:hidden;color:var(--muted);font:650 .57rem var(--mono);letter-spacing:.045em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.stat strong{display:block;margin-top:.2rem;overflow:hidden;color:var(--ink-strong);font:650 clamp(.92rem,1.6vw,1.28rem)/1.15 var(--mono);font-variant-numeric:tabular-nums;text-overflow:ellipsis}
.rows{display:grid;border-top:1px solid var(--rule)}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;min-height:42px;padding:.4rem .48rem;border:1px solid var(--rule);border-top:0;background:rgba(9,12,16,.58)}
.row>span{color:var(--ink-strong);font:650 .67rem var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.row strong,.row span{overflow:hidden;text-overflow:ellipsis}
.row small{display:block;overflow:hidden;color:var(--faint);font:500 .58rem var(--mono);text-overflow:ellipsis;white-space:nowrap}
.row a{color:var(--copper-bright);font-weight:650;text-decoration-thickness:1px;text-underline-offset:3px}
.row a:hover{color:var(--ink-strong)}
.bar{height:3px;margin-top:.35rem;border-radius:0;background:#2d3031}
.bar>i{display:block;height:100%;border-radius:0;background:var(--copper)}
.signal{padding:.58rem .65rem;border:1px solid var(--rule);border-top:0;border-left:3px solid var(--copper);background:rgba(19,18,16,.72)}
.signal.high{border-left-color:var(--alert);background:rgba(40,19,19,.38)}
.signal>strong{color:var(--ink-strong);font-size:.75rem}
.signal p{margin:.24rem 0;color:var(--muted);font:500 .63rem var(--mono)}
.signal ul{margin:.35rem 0;padding-left:1.1rem;color:var(--ink);font-size:.72rem}
.signal small{color:var(--faint);font-size:.63rem}
.empty{margin:.2rem;padding:.7rem;border-left:2px solid var(--rule-strong);color:var(--muted);font:500 .68rem var(--mono)}
.timeline{display:flex;align-items:end;gap:2px;height:170px;padding:.5rem;border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);background-image:linear-gradient(to bottom,transparent 24%,var(--rule) 25%,transparent 26%,transparent 49%,var(--rule) 50%,transparent 51%,transparent 74%,var(--rule) 75%,transparent 76%)}
.timeline button{flex:1;min-width:7px;height:var(--height);min-height:2px;padding:0;border:0;border-radius:0;background:var(--copper)}
.timeline button:hover,.timeline button:focus-visible{background:var(--copper-bright)}
.caveats{margin:.65rem 0 0;padding:.75rem .85rem;border:1px solid #70513b;border-radius:var(--radius);color:#c9b9a6;background:#18130f;font-size:.7rem}
.caveats strong{color:var(--copper-bright);font:700 .62rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.caveats ul{margin:.35rem 0 0;padding-left:1.1rem}

.loading-sheet{min-height:230px;resize:none}
.loading-sheet::after{display:none}
.loading-sheet .widget-head{cursor:wait}
.loading-lines{display:grid;gap:8px;padding:.7rem}
.loading-line{height:13px;background:#22282b;animation:ledger-pulse 1.2s steps(2,end) infinite}
.loading-line:nth-child(2){width:72%}.loading-line:nth-child(3){width:88%}.loading-line:nth-child(4){width:54%}
.error-state{grid-column:1/-1;padding:1rem;border:1px solid var(--alert);background:#211313}
.error-state strong{display:block;color:#f19a94;font:700 .75rem var(--mono);letter-spacing:.06em;text-transform:uppercase}
.error-state p{margin:.4rem 0 .8rem;color:#c9aaa7}
@keyframes ledger-pulse{50%{background:#342b25}}

body[data-state="loading"] .dataset-stamp>strong{color:var(--copper-bright)}
body[data-state="error"] .dataset-stamp>strong{color:#f08a84}
body[data-state="ready"] .dataset-stamp>strong{color:var(--ok)}

dialog{width:min(780px,calc(100vw - 2rem));max-height:85vh;overflow:auto;padding:0;color:var(--ink);border:1px solid var(--copper);border-radius:var(--radius);background:#0e1317;box-shadow:14px 18px 0 rgba(0,0,0,.55)}
dialog::backdrop{background:rgba(3,5,7,.84)}
.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.dialog-head{padding:.75rem;border-bottom:1px solid var(--rule-strong);background:var(--surface-quiet)}
.dialog-head h2{margin:.12rem 0 0;color:var(--ink-strong);font-size:1.1rem}
.dialog-note{margin:.7rem;color:var(--muted);font-size:.73rem}
.catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:.7rem;border:1px solid var(--rule);background:var(--rule)}
.catalog button{min-height:78px;padding:.7rem;border:0;border-radius:0;background:var(--surface);text-align:left;text-transform:none}
.catalog button:hover{background:#1b1815}
.catalog strong{display:block;color:var(--copper-bright);font:700 .7rem var(--mono);text-transform:uppercase}
.catalog span{display:block;margin-top:.25rem;color:var(--muted);font:500 .69rem/1.35 var(--sans)}
#settings-form{display:grid;gap:.75rem;padding-bottom:.8rem}
#settings-form>label{margin:0 .8rem}
.dialog-actions{margin:.1rem .8rem 0;padding-top:.7rem;border-top:1px solid var(--rule)}
.danger{color:#f08a84;border-color:#8b4744}
.noscript{margin:1rem;padding:1rem;border:1px solid var(--alert);color:#f0aaa5;background:#211313}

@media(max-width:1500px){
  .hub-topbar{grid-template-columns:auto 1fr}.topbar-actions{grid-column:1/-1;border-top:1px solid var(--rule);border-left:0}.freshness{max-width:none;margin-right:auto;text-align:left}
  #query-form{grid-template-columns:repeat(2,minmax(0,1fr))}.time-group{grid-column:1/-1}.run-query{grid-column:1/-1;min-height:44px}.query-foot{grid-template-columns:1fr}.coverage{justify-content:flex-start}
}
@media(max-width:1050px){
  .hub-topbar{position:static}.route-mark{border-bottom:1px solid var(--rule)}.hub-topbar nav{border-bottom:1px solid var(--rule)}
  .query-masthead{grid-template-columns:1fr}.dataset-stamp{grid-template-columns:1fr auto;gap:0 1rem;border-top:1px solid var(--rule);border-left:0}.dataset-stamp dl{grid-column:1/-1}
  #query-form{grid-template-columns:1fr}.time-group{grid-column:auto}.widget{--span:6!important}.stat-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .route-mark{grid-column:1/-1}.route-code{display:none}.hub-topbar nav{grid-column:1/-1;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.topbar-actions{flex-wrap:wrap;justify-content:flex-start}.freshness{order:3;width:100%}
  main{padding:.5rem}.query-title-block{padding:.85rem}.dataset-stamp{grid-template-columns:1fr}.dataset-stamp dl{grid-column:auto}
  #query-form{grid-template-columns:1fr;padding:.5rem}.filter-fields,.time-group .filter-fields{grid-template-columns:1fr}#query-form .run-query{min-height:44px}
  .query-foot{grid-template-columns:1fr}.dashboard-heading{display:block}.dashboard-heading>p{margin-top:.35rem;text-align:left}.dashboard{display:block}.widget{width:100%!important;margin-bottom:.5rem;resize:vertical}.catalog{grid-template-columns:1fr}.dialog-head{align-items:start}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(forced-colors:active){button,input,select,.widget,.query-panel,.caveats{border:1px solid CanvasText}.bar>i,.timeline button{background:Highlight}.widget::after{border-color:Highlight}}
