/* Drilldown overlay: headline figure → chart → evidence → supporting table.
   Tokens only. Every selector is scoped to #drawer / .dw- / .dwc-. */

#scrim{position:fixed;inset:0;background:rgba(9,10,14,.52);backdrop-filter:blur(3px);z-index:60;
  opacity:0;pointer-events:none;transition:opacity .26s var(--ease)}
#scrim.on{opacity:1;pointer-events:auto}

#drawer{position:fixed;top:0;right:0;bottom:0;width:min(720px,100vw);z-index:61;background:var(--bg);
  border-left:1px solid var(--line-2);box-shadow:var(--shadow-drawer);
  transform:translateX(102%);transition:transform .3s var(--ease);display:flex;flex-direction:column}
#drawer.on{transform:none}
#drawer[aria-hidden=true]{visibility:hidden}

/* ---------- top strip ---------- */
.dw-top{display:flex;align-items:center;gap:10px;padding:12px 18px 12px 22px;flex:0 0 auto;
  background:var(--topbar-bg);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.dw-crumb{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3);min-width:0}
.dw-crumb button{color:var(--ink-3);padding:3px 6px;border-radius:5px;transition:background .14s,color .14s}
.dw-crumb button:hover{color:var(--ink);background:var(--bg-3)}
.dw-crumb .cur{color:var(--ink);font-weight:600;padding:3px 2px;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-crumb .sep{color:var(--line-2)}
.dw-close{margin-left:auto;flex:0 0 auto;width:30px;height:30px;border-radius:7px;color:var(--ink-3);
  display:grid;place-items:center;border:1px solid transparent;transition:background .14s,color .14s,border-color .14s}
.dw-close:hover{background:var(--bg-1);color:var(--ink);border-color:var(--line)}

.dw-body{overflow:auto;overflow-x:hidden;padding:20px 22px 56px;flex:1 1 auto;scroll-behavior:smooth}
.dw-body:focus{outline:none}

/* ---------- header ---------- */
.dw-eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin:0 0 7px}
.dw-title{font-size:23px;line-height:1.2;font-weight:600;letter-spacing:-.018em;margin:0;color:var(--ink)}
.dw-cross{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:9px 0 0;font-size:11.5px;color:var(--brand-deep);font-weight:600}
.dw-cross i{color:var(--line-2);font-style:normal}
.dw-cross span:last-child{color:var(--ink-2)}
.dw-sub{font-size:12.5px;color:var(--ink-2);margin:8px 0 0;line-height:1.5;max-width:62ch}

/* ---------- headline figure ---------- */
.dw-figure{position:relative;margin-top:16px;padding:18px 20px 16px;background:var(--bg-1);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-1);
  display:grid;grid-template-columns:1fr auto;gap:6px 18px;align-items:start}
.dw-fig-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 12px;min-width:0}
.dw-fig-v{font-family:var(--serif);font-size:40px;line-height:1;letter-spacing:-.025em;margin:0;color:var(--ink)}
.dw-fig-u{font-size:11.5px;color:var(--ink-3);margin:0;align-self:flex-end;padding-bottom:3px}
.dw-fig-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}

.dw-delta{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  padding:4px 9px;border-radius:999px;border:1px solid var(--line-2);background:var(--bg-2);align-self:flex-end;margin-bottom:2px}
.dw-delta small{font-weight:500;color:var(--ink-3);font-size:10.5px;letter-spacing:.01em}
.dw-delta.pos{color:var(--pos);border-color:rgba(20,102,63,.28);background:rgba(20,102,63,.07)}
.dw-delta.neg{color:var(--neg-ink);border-color:var(--neg-line);background:var(--neg-tint)}
.dw-caret{flex:0 0 auto}
.dw-delta.pos .dw-caret{fill:var(--pos)}
.dw-delta.neg .dw-caret{fill:var(--neg)}

.dw-spark .a{fill:currentColor;opacity:.12}
.dw-spark .l{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.dw-spark .d{fill:currentColor}
.dw-spark{color:var(--ink-3)}
.dw-spark.pos{color:var(--pos)}
.dw-spark.neg{color:var(--neg)}

.dw-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none}
.dw-chip{display:inline-block;font-size:11px;color:var(--ink-2);background:var(--bg-2);
  border:1px solid var(--line);border-radius:999px;padding:3px 9px;white-space:nowrap}

.dw-maths{grid-column:1/-1;margin:12px 0 0;padding:9px 11px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--r-s);font-size:11.5px;color:var(--ink-2);overflow-x:auto}
.dw-maths .lbl{display:block;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);
  margin-bottom:5px;font-weight:600}
.dw-maths .mono{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- panels ---------- */
.dw-panel{margin-top:16px;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-1);overflow:hidden}
.dw-panel-h{display:flex;align-items:baseline;gap:10px;padding:13px 18px 11px;border-bottom:1px solid var(--line)}
.dw-panel-h h3{margin:0;font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--ink)}
.dw-hint{margin-left:auto;font-size:10.5px;color:var(--ink-3);white-space:nowrap}
.dw-slot{padding:14px 18px 16px}
.dw-slot-ev{padding:14px 18px 16px}
.dw-slot-grid{padding:0;overflow-x:auto}
.dw-loading{height:56px;border-radius:var(--r-s);background:linear-gradient(90deg,var(--bg-2),var(--bg-3),var(--bg-2));
  background-size:200% 100%;animation:dwsheen 1.1s linear infinite}
@keyframes dwsheen{to{background-position:-200% 0}}
.dw-empty{margin:2px 0;font-size:12px;color:var(--ink-4)}

.dw-kv{display:grid;grid-template-columns:minmax(96px,auto) 1fr;gap:8px 18px;font-size:12.5px;margin:0;padding:14px 18px 16px}
.dw-kv dt{color:var(--ink-3)}
.dw-kv dd{margin:0;color:var(--ink)}
.dw-link{color:var(--brand-deep);font-weight:600;padding:0;border-bottom:1px solid var(--brand-tint-2)}
.dw-link:hover{color:var(--brand-dark);border-bottom-color:var(--brand)}

.dw-note{font-size:12.5px;color:var(--ink-2);line-height:1.55;margin:0 0 8px}
.dw-note.mono{font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.dw-evfb .dw-evlink{color:var(--brand-deep);font-size:12px;font-weight:600}
.dw-foot{font-size:11px;color:var(--ink-4);margin:12px 2px 0}

/* ---------- charts: shared ---------- */
.dwc{position:relative}
.dwc-cap{margin:12px 0 0;font-size:10.5px;color:var(--ink-4)}
.dwc-chev{color:var(--ink-4);font-size:13px;flex:0 0 auto}

/* ranked bars */
.dwc-bars{display:flex;flex-direction:column;gap:2px}
.dwc-bar{display:grid;grid-template-columns:minmax(0,15.5em) 1fr auto auto;align-items:center;gap:12px;
  width:100%;text-align:left;padding:7px 8px;border-radius:var(--r-s);transition:background .14s}
.dwc-bar.is-drill{cursor:pointer}
.dwc-bar.is-drill:hover{background:var(--bg-2)}
.dwc-bar-l{font-size:12.5px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dwc-bar-l small{display:block;font-size:10.5px;color:var(--ink-3);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dwc-bar-t{position:relative;height:9px;border-radius:5px;background:var(--bg-3);overflow:hidden;min-width:40px}
.dwc-bar-t i{display:block;height:100%;border-radius:5px;transition:width .4s var(--ease)}
.dwc-bar-v{font-family:var(--serif);font-size:13.5px;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;min-width:5.4em}

/* donut */
.dwc-donut{display:grid;grid-template-columns:170px 1fr;gap:20px;align-items:center}
.dwc-ring{position:relative;width:160px;height:160px}
.dwc-centre{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.dwc-centre .v{font-family:var(--serif);font-size:22px;letter-spacing:-.02em;color:var(--ink)}
.dwc-centre .l{font-size:10px;color:var(--ink-4);margin-top:2px}
.dwc-arc{cursor:pointer;transition:opacity .16s}
.dwc-arc:hover{opacity:.78}
.dwc-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;min-width:0}
.dwc-leg{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:5px 7px;border-radius:var(--r-s);transition:background .14s}
.dwc-leg.is-drill{cursor:pointer}
.dwc-leg.is-drill:hover{background:var(--bg-2)}
.dwc-leg i{width:8px;height:8px;border-radius:2px;flex:0 0 auto}
.dwc-leg-l{font-size:12px;color:var(--ink-2);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dwc-leg-v{font-family:var(--serif);font-size:12.5px;color:var(--ink);flex:0 0 auto;display:flex;align-items:baseline;gap:6px}
.dwc-leg-v small{font-family:var(--sans);font-size:10px;color:var(--ink-4);min-width:2.4em;text-align:right}

/* area line */
.dwc-line-svg{display:block;width:100%;height:148px}
.dwc-gl{stroke:var(--line);stroke-width:1;stroke-dasharray:2 4}
.dwc-area{opacity:.10}
.dwc-lp{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.dwc-pd{fill:var(--bg-1);stroke:var(--ink-4);stroke-width:1;opacity:0}
.dwc-pt:hover .dwc-pd{opacity:1}
.dwc-xax{display:flex;justify-content:space-between;margin-top:6px;font-size:9.5px;color:var(--ink-4);
  font-variant-numeric:tabular-nums}
.dwc-xax .dim{opacity:.55}

/* day timeline */
.dwc-tl{padding-top:4px}
.dwc-tl-ax{position:relative;height:14px;margin-left:112px}
.dwc-tl-ax span{position:absolute;transform:translateX(-50%);font-size:9.5px;color:var(--ink-4);font-variant-numeric:tabular-nums}
.dwc-tl-row{display:flex;align-items:center;gap:12px;margin-top:6px}
.dwc-tl-l{width:100px;flex:0 0 100px;font-size:11px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dwc-tl-t{position:relative;flex:1 1 auto;height:26px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-s)}
.dwc-tl-g{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.dwc-seg{position:absolute;top:4px;bottom:4px;border-radius:3px;background:var(--brand);opacity:.85;min-width:3px}
.dwc-seg.is-drill{cursor:pointer}
.dwc-seg.is-drill:hover{opacity:1;transform:scaleY(1.14)}
.dwc-seg.t-leak{background:var(--neg)}
.dwc-seg.t-work{background:var(--brand)}

/* matrix */
.dwc-mx-scroll{overflow-x:auto;padding-bottom:2px}
.dwc-mx-grid{display:table;border-spacing:3px;min-width:100%}
.dwc-mx-r{display:table-row}
.dwc-mx-rl,.dwc-mx-ch,.dwc-mx-c{display:table-cell;vertical-align:middle}
.dwc-mx-rl{width:132px;max-width:132px;font-size:11.5px;color:var(--ink-2);padding-right:8px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dwc-mx-ch{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600;
  text-align:center;padding:0 4px 6px;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dwc-mx-c{text-align:center;height:34px;min-width:64px;border-radius:6px;font-size:11.5px;color:var(--ink);
  font-variant-numeric:tabular-nums;transition:transform .14s var(--ease),box-shadow .14s}
.dwc-mx-c.is-drill{cursor:pointer}
.dwc-mx-c.is-drill:hover{box-shadow:0 0 0 1.5px var(--brand) inset}
.dwc-mx-c.is-none{background:var(--bg-2)}
.dwc-mx-c.is-none i{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--line-2)}

/* ---------- fallback table ---------- */
.dw-tblwrap{overflow-x:auto}
.dw-tbl{width:100%;border-collapse:collapse;font-size:12px}
.dw-tbl th{text-align:left;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
  font-weight:600;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--bg-2);white-space:nowrap}
.dw-tbl td{padding:9px 14px;border-bottom:1px solid var(--divider);color:var(--ink-2);vertical-align:top}
.dw-tbl tr:last-child td{border-bottom:0}
.dw-tbl .a-right{text-align:right}
.dw-tbl .a-center{text-align:center}

/* ---------- shared components inside the overlay ---------- */
#drawer .gd{--gd-radius:0}
#drawer .gd-wrap,#drawer .gd-tablewrap{overflow-x:auto}
#drawer .ev{margin:0}

#drawer :focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:5px}

@media (max-width:760px){
  .dw-figure{grid-template-columns:1fr}
  .dw-fig-side{align-items:flex-start;flex-direction:row}
  .dwc-donut{grid-template-columns:1fr;justify-items:center}
  .dwc-bar{grid-template-columns:minmax(0,10em) 1fr auto auto}
  .dwc-tl-ax{margin-left:0}
  .dwc-tl-row{flex-direction:column;align-items:stretch;gap:3px}
  .dwc-tl-l{width:auto;flex:none}
}
@media (prefers-reduced-motion:reduce){
  .dw-loading{animation:none}
  .dwc-bar-t i{transition:none}
}
