:root{color-scheme:light;--ink:#142c39;--muted:#526976;--line:#d8e2e7;--bg:#f2f6f8;--card:#fff;--green:#086d59;--mint:#9de5cd;--nav:#122b37;--danger:#b13336;
  --lead:#0f8a5f;--weak:#b7860b;--lag:#c2413b;--impr:#2a6fb0;--up:#0f8a5f;--down:#c2413b;--green-bg:#dcf2e7;--red-bg:#f9e0de;
  font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
button,input,select{font:inherit;color:inherit}
.sidebar{background:var(--nav);color:#dce9ee;padding:22px 16px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:10px;align-items:center}.brand strong{display:block;color:#fff}.brand small{color:#9bb4bf;font-size:.75rem}
.brand-mark{width:36px;height:36px;border-radius:9px;background:var(--mint);color:var(--nav);display:grid;place-items:center;font-weight:800;font-size:.85rem}
nav{display:flex;flex-direction:column;gap:4px}
.nav{background:none;border:0;border-radius:8px;color:#c6d7de;text-align:left;padding:10px 12px;cursor:pointer;font-weight:600;font-size:.9375rem}
.nav:hover{background:#1c3b4a}.nav.active{background:#244757;color:#fff;box-shadow:inset 3px 0 0 var(--mint)}
.sidebar-foot{margin-top:auto;font-size:.8125rem;color:#9bb4bf;display:grid;gap:6px}
.sidebar .text-button{color:var(--mint);text-align:left;padding:0}
main{padding:24px 28px 40px;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.eyebrow{font-size:.6875rem;letter-spacing:.12em;color:var(--muted);font-weight:700}
h1{margin:4px 0 0;font-size:1.6rem}h2{font-size:1rem;margin:0}
.topbar-status{display:flex;gap:10px;align-items:center}
.badge{font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:999px;background:#e5ecef;color:var(--muted)}
.badge.live{background:#d9f3e8;color:var(--green)}.badge.live::before{content:"● "}
.badge.stale{background:#fdeedd;color:#9a5b00}
.muted{color:var(--muted);font-size:.8125rem}.mono{font-family:ui-monospace,Consolas,monospace;font-size:.8125rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px;min-width:0}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.rotation{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.tile span{display:block;font-size:.75rem;color:var(--muted);font-weight:600}
.tile strong{display:block;font-size:1.5rem;font-variant-numeric:tabular-nums;margin-top:2px}
.tile small{color:var(--muted);font-size:.75rem}
.tile.g{background:var(--green-bg);border-color:#b5e2cb}.tile.r{background:var(--red-bg);border-color:#efc1bd}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:10px}
.toolbar label{display:grid;gap:4px;font-size:.75rem;font-weight:600;color:var(--muted)}
.toolbar .grow{flex:1;min-width:160px}
select,input[type=search],input[type=password]{border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:#fff}
.replay{display:flex;gap:10px;align-items:center;margin:4px 0 8px;flex-wrap:wrap}
.replay input[type=range]{flex:1;min-width:160px;accent-color:var(--green)}
.replay button,.segmented button,.secondary{border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 12px;cursor:pointer}
.replay button.on,.segmented button.on{border-color:var(--green);color:var(--green);font-weight:700}
.segmented{display:flex;gap:6px}
svg{display:block;width:100%;height:auto}svg text{fill:var(--ink);font-family:inherit}
.chart svg{width:100%}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.8125rem;font-variant-numeric:tabular-nums}
th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left}
th{color:var(--muted);font-weight:600;font-size:.75rem;position:sticky;top:0;background:#fff}
td.g{background:var(--green-bg)}td.r{background:var(--red-bg)}
tr.pick{cursor:pointer}tr.pick:hover td{background:#f4f8fa}tr.sel td{background:#e6f2ee}
.side .table-wrap{max-height:560px;overflow:auto}
.q-Leading{color:var(--lead);font-weight:600}.q-Weakening{color:var(--weak);font-weight:600}.q-Lagging{color:var(--lag);font-weight:600}.q-Improving{color:var(--impr);font-weight:600}
.quadrant-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quadrant-lists h3{margin:0 0 6px;font-size:.8125rem}.quadrant-lists ol{margin:0;padding-left:18px;font-size:.8125rem;line-height:1.6}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:.8125rem}.facts dt{color:var(--muted)}.facts dd{margin:0}
.sector-detail{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px}
.sector-detail h3{margin:0 0 4px;font-size:1rem}.sector-detail .bars{max-height:220px;overflow:auto;margin-top:8px}
.bar-row{display:grid;grid-template-columns:110px 1fr 60px;gap:8px;align-items:center;font-size:.75rem;padding:2px 0}
.bar-track{height:8px;position:relative;background:#eef3f5;border-radius:4px}.bar-fill{position:absolute;top:0;bottom:0;border-radius:4px}
.note{color:var(--muted);font-size:.75rem;margin:6px 0 0}
.gold-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.gold-tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.gold-tile span{display:block;font-size:.75rem;color:var(--muted);font-weight:600}
.gold-tile strong{display:block;font-size:1.6rem;font-variant-numeric:tabular-nums;margin:2px 0}
.gold-tile .chg{font-weight:700;font-size:.875rem}.chg.up{color:var(--up)}.chg.down{color:var(--down)}
.gold-tile dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:10px 0 0;font-size:.75rem}
.gold-tile dt{color:var(--muted)}.gold-tile dd{margin:0;font-variant-numeric:tabular-nums}
.gold-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
@media(max-width:1000px){.gold-tiles{grid-template-columns:minmax(0,1fr)}}
.quote-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line);font-size:.875rem}.quote-row b{font-variant-numeric:tabular-nums}
.empty{color:var(--muted);font-size:.875rem;padding:24px 0;text-align:center}
.text-button{background:none;border:0;color:var(--green);cursor:pointer;font-weight:600;font-size:.8125rem}
dialog{border:0;border-radius:14px;padding:26px;max-width:400px;width:calc(100% - 32px);box-shadow:0 18px 50px #12283740}
dialog::backdrop{background:#12283799}
dialog label{display:block;font-size:.8125rem;font-weight:600;margin:14px 0 6px}dialog input{width:100%}
.primary{background:var(--green);color:#fff;border:0;border-radius:8px;padding:11px 16px;font-weight:700;width:100%;margin-top:14px;cursor:pointer}
.error{color:var(--danger);font-size:.8125rem;min-height:1em}
#tip{position:fixed;pointer-events:none;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.75rem;box-shadow:0 6px 18px #1228371f;display:none;z-index:9;max-width:260px}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:1100px){.grid.rotation{grid-template-columns:minmax(0,1fr)}}
@media(max-width:860px){
  body{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px;gap:12px}
  nav{flex-direction:row;flex-wrap:wrap}.nav{padding:8px 10px}.sidebar-foot{margin:0;grid-auto-flow:column}
  main{padding:16px}.grid.two{grid-template-columns:minmax(0,1fr)}
}

.grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}
@media(max-width:1100px){.grid.three{grid-template-columns:minmax(0,1fr)}}
.chart-title{font-size:.8125rem;margin:0 0 4px;color:var(--muted)}
.decision .posture{display:inline-block;font-weight:800;font-size:1.05rem;padding:6px 12px;border-radius:8px;margin-bottom:8px}
.posture.washout{background:#fde2e1;color:#a52a24}.posture.defensive{background:#fde8d6;color:#a2501a}
.posture.repairing{background:#fff3c4;color:#8a6500}.posture.constructive{background:#dcf2e7;color:#0b6b48}
.posture.selective{background:#e3eefb;color:#1f5aa0}.posture.overheated{background:#ffe7c2;color:#9a5b00}
.decision ul{margin:4px 0 0;padding-left:20px;line-height:1.55;font-size:.9rem}
.decision .rot{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:.8125rem}
td.z-washout{background:#f9d4d2}td.z-below{background:#fff0c7}td.z-operating{background:#d6f0e1}td.z-overheated{background:#ffdcb0}
td.partial{color:var(--muted);font-style:italic}
.bar-fill.up{background:var(--up)}.bar-fill.down{background:var(--down)}
circle.head{cursor:pointer}
