:root{
  --bg:#0b0d10;
  --panel:#10141a;
  --panel2:#0f1318;
  --surface:#0d1218;
  --text:#e7edf5;
  --text-soft:#cfd8e3;
  --heading:#dbe6f4;
  --muted:#9aa7b6;
  --border:#1b2330;
  --shadow: 0 6px 20px rgba(0,0,0,.25);
  --r:14px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  --blue:#60a5fa;
  --green:#34d399;
  --orange:#fb923c;
  --red:#f87171;
}

@media (prefers-color-scheme: light){
  :root{
    --bg:#f5f7fb;
    --panel:#ffffff;
    --panel2:#f7f9fd;
    --surface:#f4f7fc;
    --text:#10243c;
    --text-soft:#2c3f57;
    --heading:#0b1f36;
    --muted:#5f7288;
    --border:#d2deec;
    --shadow: 0 6px 20px rgba(16,36,60,.08);
  }
}

*{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:var(--sans); line-height:1.35; }
a{ color:inherit; text-decoration:none; opacity:.9; }
a:hover{ opacity:1; text-decoration:underline; }

.wrap{ max-width:1050px; margin:0 auto; padding:28px 18px 60px; }

.top{ display:flex; gap:18px; justify-content:space-between; align-items:flex-start; margin-bottom:18px; }
h1{ margin:0 0 6px; font-size:28px; letter-spacing:.2px; }
.sub{ margin:0 0 10px; color:var(--muted); }
.nav{ display:flex; gap:10px; align-items:center; color:var(--muted); font-size:13px; }
.dot{ opacity:.6; }
.meta-block{ min-width:300px; background:linear-gradient(180deg, var(--panel), var(--panel2)); border:1px solid var(--border); border-radius:var(--r); padding:12px 14px; box-shadow:var(--shadow); color:var(--muted); font-size:12.5px; }
.meta-block .k{ color:var(--muted); opacity:.8; margin-right:8px; font-family:var(--mono); }
.meta-block div{ margin:6px 0; }

.regime{ display:flex; background:linear-gradient(180deg, var(--panel), var(--panel2)); border:1px solid var(--border); border-radius:var(--r); padding:14px; box-shadow:var(--shadow); margin:14px 0 18px; }
.regime-left{ display:flex; gap:14px; align-items:flex-start; width:100%; }
.pill{ font-family:var(--mono); letter-spacing:.6px; font-weight:700; padding:10px 12px; border-radius:999px; border:1px solid var(--border); background:var(--surface); min-width:90px; text-align:center; }
.pill.green,.pill.GREEN{ border-color:#1f5d3d; color:#8ce4bb; }
.pill.blue,.pill.BLUE{ border-color:#245a9a; color:#95c5ff; }
.pill.orange,.pill.ORANGE{ border-color:#7a4c19; color:#ffc28f; }
.pill.red,.pill.RED{ border-color:#7a1f1f; color:#ffb0b0; }

.regime-text{ flex:1; }
.regime-text .row{ display:flex; gap:10px; align-items:baseline; margin:2px 0 6px; }
.label{ color:var(--muted); font-size:12px; font-family:var(--mono); }
.value{ font-size:14px; }
.desc{ color:var(--text-soft); margin:4px 0; }
.meta-inline{ margin-top:8px; color:var(--muted); font-size:12px; font-family:var(--mono); }

.tiles{ display:grid; grid-template-columns: repeat(3, 1fr); gap:12px; margin-bottom:18px; }
.tile{ background:linear-gradient(180deg, var(--panel), var(--panel2)); border:1px solid var(--border); border-radius:var(--r); padding:14px; box-shadow:var(--shadow); }
.tile-sub{ margin-top:4px; color:var(--muted); font-size:12px; }
.big{ font-size:32px; margin-top:8px; font-family:var(--mono); letter-spacing:.4px; }

.section{ margin:18px 0; }
.section h2{ font-size:16px; margin:0 0 10px; color:var(--heading); letter-spacing:.2px; }
.section h3{ font-size:13px; margin:10px 0 8px; color:var(--muted); font-family:var(--mono); font-weight:600; }
.ghost{ visibility:hidden; }
.section-explainer,.context,.meta{ color:var(--muted); font-size:13px; }

.two-col{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
.col{ background:linear-gradient(180deg, var(--panel), var(--panel2)); border:1px solid var(--border); border-radius:var(--r); padding:14px; box-shadow:var(--shadow); }

ul{ margin:0; padding-left:18px; color:var(--text-soft); }
li{ margin:6px 0; }

.grid-4{ display:grid; grid-template-columns: repeat(4, 1fr); gap:10px; }
.card,.metric-card{ background:linear-gradient(180deg, var(--panel), var(--panel2)); border:1px solid var(--border); border-radius:var(--r); padding:12px; box-shadow:var(--shadow); }
.metric-card h3{ margin:0 0 4px; font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-family:var(--mono); }
.metric-card .value{ font-size:20px; font-weight:700; }
.metric-card .subtle,.metric-card .why{ font-size:12px; color:var(--muted); }

.section-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.muted{ color:var(--muted); }
.foot{ margin-top:12px; font-size:12.5px; }

.daily-strip,.card-grid{ display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); margin-top:10px; }
.daily-chip{ border:1px solid var(--border); border-radius:12px; background:var(--surface); padding:10px 12px; }
.daily-chip-title{ display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-family:var(--mono); }

.lens-panel{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.label-inline{ color:var(--muted); font-size:12px; font-family:var(--mono); }
.lens-select,.toggle-btn{ background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:8px; padding:6px 8px; }
.controls-row{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }

#drivers{ list-style:none; padding:0; }
#drivers li{ border:1px solid var(--border); border-radius:12px; padding:10px; background:var(--surface); }
.reason-item { display:flex; gap:8px; align-items:center; justify-content:space-between; }
.reason-help { position:relative; display:inline-flex; width:18px; height:18px; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:999px; font-size:11px; color:var(--muted); }
.reason-help-tooltip { position:absolute; top:calc(100% + 6px); right:0; width:220px; background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:8px; opacity:0; visibility:hidden; }
.reason-help:hover .reason-help-tooltip,.reason-help:focus-visible .reason-help-tooltip{opacity:1;visibility:visible;}

.expandable-card { margin-top:12px; border:1px solid var(--border); border-radius:12px; overflow:hidden; background:linear-gradient(180deg, var(--panel), var(--panel2)); }
.expandable-card > summary { list-style:none; cursor:pointer; font-weight:600; padding:10px 14px; }
.expandable-card > summary::-webkit-details-marker { display:none; }
.expandable-body { padding:12px 14px 14px; border-top:1px solid var(--border); }
.control-panel-grid { display:grid; gap:10px; }
.trigger-progress { margin-top:6px; height:6px; border-radius:999px; background:rgba(148,163,184,.3); overflow:hidden; }
.trigger-progress-bar { height:100%; background: linear-gradient(90deg, var(--blue), #93c5fd); }
.weakest-link { font-size:12px; color:var(--muted); }

.table-wrap{ overflow:auto; border:1px solid var(--border); border-radius:var(--r); background:linear-gradient(180deg, var(--panel), var(--panel2)); box-shadow:var(--shadow); }
table{ width:100%; border-collapse:collapse; }
th, td{ padding:12px 12px; border-bottom:1px solid var(--border); vertical-align:top; }
th{ text-align:left; color:var(--muted); font-family:var(--mono); font-size:12px; font-weight:600; }
td{ color:var(--text-soft); font-size:13px; }
td.reg{ font-family:var(--mono); font-weight:700; }
.num { text-align:right; font-family:var(--mono); }
.table-container { overflow-x:auto; }

.sparkline { width:100%; height:96px; border:1px solid var(--border); border-radius:8px; background:var(--surface); display:block; }
.sparkline-polyline { fill:none; stroke:var(--blue); stroke-width:2; }
.sparkline-axis { stroke:var(--border); stroke-width:1; }
.sparkline-tick { stroke:var(--muted); stroke-width:1; stroke-linecap:round; opacity:.85; }
.sparkline-axis-label,.sparkline-points { color:var(--muted); fill:var(--muted); font-size:10px; }
.note { margin-top:10px; border:1px solid var(--border); border-radius:12px; padding:10px 12px; background:var(--surface); }
footer { margin-top:14px; font-size:13px; color:var(--muted); }

@media (max-width: 960px){
  .top{ flex-direction:column; }
  .meta-block{ width:100%; min-width:auto; }
  .tiles{ grid-template-columns:1fr; }
  .grid-4{ grid-template-columns:1fr; }
  .two-col{ grid-template-columns:1fr; }
  .section-head{ align-items:flex-start; flex-direction:column; }
}
