/* Live Monitor — layered on top of styles.css (shares the same :root vars) */

.head-nav{display:flex;gap:22px;font-size:14px}
.head-nav a{color:var(--muted);text-decoration:none;padding-bottom:2px;border-bottom:2px solid transparent}
.head-nav a:hover{color:var(--txt)}
.head-nav a.on{color:var(--txt);border-bottom-color:var(--accent)}

.sample-banner{background:#3a2a12;border-bottom:1px solid #6b4a1c;color:#ffcf8a;
  padding:10px 28px;font-size:13px;letter-spacing:.2px}
.sample-banner code{background:#00000055;padding:1px 6px;border-radius:4px}

.mon-intro{max-width:1120px;margin:0 auto;padding:30px 28px 0}
.mon-intro h1{font-size:30px;font-weight:800;margin:0 0 8px}
.mon-lede{color:var(--muted);font-size:15px;line-height:1.6;margin:0;max-width:760px}

.mon-controls{max-width:1120px;margin:0 auto;padding:22px 28px 0;
  display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}
.ctl{display:flex;flex-direction:column;gap:6px}
.ctl-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700}
.ctl select{background:var(--panel2);color:var(--txt);border:1px solid var(--line);
  border-radius:10px;padding:11px 14px;font-size:14px;min-width:250px;cursor:pointer;
  font-family:inherit;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 19px) calc(50% + 2px),calc(100% - 14px) calc(50% + 2px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.ctl select:focus{outline:none;border-color:var(--accent)}
.ctl-spacer{flex:1}
.asof{color:var(--muted);font-size:13px;padding-bottom:12px}

/* ── status ───────────────────────────────────────────────────────────── */
.mon-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:26px 0 4px}
.mon-title{font-size:24px;font-weight:800}
.pill{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  padding:5px 11px;border-radius:20px;border:1px solid}
.pill.healthy{color:#4ade80;border-color:#2c6b45;background:#132a1e}
.pill.watch  {color:#fbbf24;border-color:#7a5a15;background:#2b2210}
.pill.trim   {color:#fb923c;border-color:#8a4a1c;background:#2e1c10}
.pill.retire {color:#f87171;border-color:#7f2d2d;background:#2c1416}
.pill.nodata {color:var(--muted);border-color:var(--line);background:var(--chip)}
.mon-sub{color:var(--muted);font-size:14px;margin-bottom:20px}

/* live / sim verdict — the promotion-demotion rule, stated outright */
.verdict{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  border:1px solid;border-radius:12px;padding:14px 18px;margin-bottom:16px}
.verdict .v-tag{font-size:12px;font-weight:800;letter-spacing:.1em;
  padding:6px 12px;border-radius:7px;white-space:nowrap}
.verdict .v-txt{font-size:14px;line-height:1.55;color:var(--txt);flex:1;min-width:260px}
.v-live{border-color:#2c6b45;background:#0f2318}
.v-live .v-tag{background:#4ade80;color:#08130c}
.v-sim{border-color:#7f2d2d;background:#241214}
.v-sim .v-tag{background:#f87171;color:#2a0d0d}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:8px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px 17px}
.kpi-k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.kpi-v{font-size:25px;font-weight:800;margin-top:5px;letter-spacing:-.4px}
.kpi-s{font-size:12px;color:var(--muted);margin-top:3px}
.pos{color:var(--green)} .neg{color:var(--red)} .dim{color:var(--muted)}

/* ── charts ───────────────────────────────────────────────────────────── */
.chart-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:16px 18px 10px;margin-top:18px}
.chart-title{font-size:14px;font-weight:700;margin-bottom:2px}
.chart-note{font-size:12px;color:var(--muted);margin-bottom:12px}
.chart-wrap svg{width:100%;display:block}
.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:14px;height:2px;vertical-align:middle;margin-right:6px}
.legend .dash{height:0;border-top:2px dashed currentColor}

.gridline{stroke:var(--line);stroke-width:1}
.axis{fill:var(--muted);font-size:11px}
.roll-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}
.roll-area{fill:url(#rollFill)}
.base-line{stroke:var(--accent2);stroke-width:1.5;stroke-dasharray:6 5;fill:none}
.trim-line{stroke:#fb923c;stroke-width:1;stroke-dasharray:3 4;fill:none}
.retire-line{stroke:#f87171;stroke-width:1;stroke-dasharray:3 4;fill:none}
.zero-line{stroke:#55617a;stroke-width:1}
.blend{fill:#ffffff08}
.blend-lbl{fill:var(--muted);font-size:10px}
.bar-pos{fill:var(--green)} .bar-neg{fill:var(--red)}

/* ── component table ──────────────────────────────────────────────────── */
.tbl-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  margin-top:18px;overflow-x:auto}
table.mon{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
table.mon th{text-align:right;padding:12px 14px;color:var(--muted);font-size:11px;
  text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--line);white-space:nowrap}
table.mon th:first-child,table.mon td:first-child{text-align:left}
table.mon td{padding:12px 14px;border-bottom:1px solid #1e2634;text-align:right;white-space:nowrap}
table.mon tr:last-child td{border-bottom:none}
table.mon tr.clickable{cursor:pointer}
table.mon tr.clickable:hover td{background:#1a2130}
.s-name{font-weight:700}
.s-instr{display:inline-block;font-size:10px;font-weight:700;color:#0c0f14;
  background:var(--accent2);padding:1px 7px;border-radius:20px;margin-left:8px;vertical-align:1px}
.bar-cell{position:relative;min-width:110px}
.hbar{display:inline-block;height:7px;border-radius:4px;vertical-align:middle}

.no-fwd{background:var(--panel);border:1px dashed var(--line);border-radius:12px;
  padding:44px 24px;text-align:center;color:var(--muted);margin-top:18px;line-height:1.7}
.no-fwd strong{color:var(--txt)}

.site-foot{max-width:1120px;margin:44px auto 0;padding:20px 28px 40px;
  border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.6}

@media (max-width:640px){
  .mon-controls{padding:18px 18px 0}
  .mon-intro{padding:22px 18px 0}
  .ctl select{min-width:0;width:100%}
  .ctl{width:100%}
}

/* ── Grouped nav dropdowns for results/monitor (2026-08-11): pure CSS ──────── */
.head-nav{align-items:center}
.head-nav .nav-item{color:var(--muted);text-decoration:none;background:none;border:0;
  font-family:inherit;font-size:14px;cursor:pointer;padding:0}
.head-nav .nav-item:hover,.head-nav .nav-item.on,.head-nav .nav-group.on>.nav-group-btn{color:var(--txt)}
.head-nav .nav-group{position:relative;display:inline-flex;align-items:center}
.head-nav .nav-group-btn{display:inline-flex;align-items:center;gap:5px}
.head-nav .nav-caret{font-size:11px;opacity:.8;transition:transform .18s}
.head-nav .nav-group:hover .nav-caret,.head-nav .nav-group:focus-within .nav-caret{transform:rotate(180deg)}
.head-nav .nav-menu{position:absolute;top:calc(100% + 12px);left:50%;
  transform:translateX(-50%) translateY(6px);display:flex;flex-direction:column;min-width:180px;
  padding:8px;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 14px 40px rgba(0,0,0,.45);opacity:0;visibility:hidden;
  transition:opacity .16s,transform .16s;z-index:70}
.head-nav .nav-group:hover .nav-menu,.head-nav .nav-group:focus-within .nav-menu{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.head-nav .nav-group::after{content:"";position:absolute;top:100%;left:0;right:0;height:14px}
.head-nav .nav-menu a{display:block;padding:9px 12px;border-radius:8px;color:var(--muted);
  font-size:13px;border-bottom:0;white-space:nowrap}
.head-nav .nav-menu a:hover,.head-nav .nav-menu a.on{background:var(--chip,rgba(255,255,255,.06));color:var(--txt)}

/* ---- live forward test: month calendar + day detail (2026-09-12) ---- */
.lc{margin-top:18px}
.lc-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.lc-head>div>b{font-size:15px;margin-right:12px}
.lc-ms{font-size:12px;color:var(--muted)}
.lc-navs{display:flex;gap:6px}
.lc-nav{width:32px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:inherit;font-size:18px;cursor:pointer}
.lc-nav:disabled{opacity:.35;cursor:default}
.lc-dow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:8px}
.lc-dow span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2,var(--muted));text-align:center;font-weight:700}
.lc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.lc-d{min-height:88px;padding:10px 11px;border-radius:12px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;gap:3px}
.lc-d.pad{background:none;border:none;min-height:0}
.lc-d.off{opacity:.45;background:none}
.lc-d.future{opacity:.35;background:none}
.lc-d.none{opacity:.7}
.lc-d[data-d]{cursor:pointer}
.lc-d[data-d]:hover,.lc-d.on{border-color:var(--line2,#6b7a8a);box-shadow:0 0 0 2px rgba(255,255,255,.06)}
.lc-d.up{border-color:rgba(72,199,142,.55)}
.lc-d.down{border-color:rgba(230,112,112,.55)}
.lc-n{font-size:12px;font-weight:800;color:var(--muted)}
.lc-x{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2,var(--muted))}
.lc-p{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.lc-d.up .lc-p{color:var(--green)}.lc-d.down .lc-p{color:var(--red)}
.lc-m{font-size:11px;color:var(--muted)}
.lc-key{font-size:11.5px;color:var(--muted);margin:10px 0 0}
.lc-day{margin-top:16px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}
.lc-dh{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.lc-dh>b{font-size:15px}.lc-dh>span{font-size:12.5px;color:var(--muted)}
.lc-close{margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;color:inherit;width:30px;height:30px;font-size:18px;cursor:pointer}
.lc-eng{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.lc-er{display:flex;align-items:baseline;gap:10px;padding:9px 12px;border-radius:10px;border:1px solid var(--line)}
.lc-en{font-weight:800}.lc-et{font-size:11.5px;color:var(--muted);flex:1}
.lc-er b{font-variant-numeric:tabular-nums}
.lc-tr{margin-top:12px}.lc-tr summary{cursor:pointer;font-size:12.5px;color:var(--muted);margin-bottom:8px}
@media (max-width:640px){.lc-grid,.lc-dow{gap:5px}.lc-d{min-height:72px;padding:8px}.lc-p{font-size:13px}.lc-m{display:none}}

/* ── Forward-test record cards (2026-09-20, daily) ──────────────────────────
   One card per engine. Collapsed = name, equity sparkline, four numbers.
   Expanded = the plain-English record plus every round trip. */
.fc-head{margin:0 0 .35rem;font-size:.95rem}
.fc-bar{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;margin:.6rem 0 1rem}
.fc-bar label{font-size:.85rem;opacity:.75}
.fc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1rem}
.fc-card{border:1px solid rgba(128,128,128,.28);border-radius:10px;padding:.9rem 1rem 1rem;
  background:rgba(128,128,128,.05)}
.fc-name{margin:0 0 .5rem;font-size:1.05rem;line-height:1.25}
.fc-instr{font-size:.78rem;letter-spacing:.06em;opacity:.7;margin-left:.35rem}
.fc-spark{display:block;width:100%;height:56px;margin:.2rem 0 .55rem}
.fc-spark.empty{height:56px}
.fc-line{fill:none;stroke-width:1.6;vector-effect:non-scaling-stroke}
.fc-line.pos{stroke:#2e9e5b}.fc-line.neg{stroke:#c0392b}
.fc-zero{stroke:currentColor;opacity:.18;stroke-width:1;vector-effect:non-scaling-stroke}
.fc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;
  border-top:1px solid rgba(128,128,128,.22);padding-top:.55rem}
.fc-stats div{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.fc-stats b{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-stats span{font-size:.68rem;opacity:.65;line-height:1.2}
.fc-more{margin-top:.7rem;background:none;border:0;padding:0;cursor:pointer;
  font:inherit;font-size:.75rem;letter-spacing:.09em;opacity:.8}
.fc-more:hover{opacity:1;text-decoration:underline}
.fc-detail{margin-top:.8rem;border-top:1px solid rgba(128,128,128,.22);padding-top:.7rem}
.fc-detail dl{display:grid;grid-template-columns:minmax(96px,auto) 1fr;gap:.45rem .8rem;margin:0}
.fc-detail dt{font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;opacity:.6;
  padding-top:.15rem}
.fc-detail dd{margin:0;font-size:.86rem;line-height:1.45}
.fc-th{margin:1rem 0 .4rem;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;opacity:.6}
.fc-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fc-trades{width:100%;border-collapse:collapse;font-size:.78rem;white-space:nowrap}
.fc-trades th{text-align:left;font-weight:600;opacity:.6;font-size:.68rem;letter-spacing:.05em;
  text-transform:uppercase;padding:.25rem .5rem .3rem 0;border-bottom:1px solid rgba(128,128,128,.25)}
.fc-trades td{padding:.28rem .5rem .28rem 0;border-bottom:1px solid rgba(128,128,128,.12)}
.fc-trades .num,.fc-trades th.num{text-align:right;font-variant-numeric:tabular-nums;
  padding-right:.15rem;padding-left:.6rem}
.fc-t-d{font-variant-numeric:tabular-nums}
.fc-trades .pos,.fc-stats .pos,.fc-detail .pos{color:#2e9e5b}
.fc-trades .neg,.fc-stats .neg,.fc-detail .neg{color:#c0392b}
.fc-trades .dim,.fc-detail .dim{opacity:.55}
@media (max-width:560px){
  .fc-grid{grid-template-columns:1fr}
  .fc-detail dl{grid-template-columns:1fr;gap:.15rem .5rem}
  .fc-detail dt{padding-top:.5rem}
}

/* An expanded card spans the whole grid row: the round-trip table is 9 columns and is
   unreadable inside a 310px cell. */
.fc-card.open{grid-column:1/-1}
.fc-card.open .fc-spark{max-width:520px}
.fc-card.open .fc-stats{max-width:520px}

.fc-card.quiet{opacity:.72}
.fc-quiet{margin:.5rem 0 0;font-size:.85rem;line-height:1.5}

/* ── sizing strip + the same-days-one-year-earlier comparison ──────────────────
   Series colors are the validated pair (CVD-checked in both themes): blue = this
   month, amber = the backtest. The dash on the backtest line carries the identity
   as well as the color, so the pair survives colorblind viewing and print. */
:root{--fc-fwd:#1f6feb;--fc-bt:#d97706;--fc-grid:#dfe3e9;--fc-zero:#c3c9d3}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --fc-fwd:#4d8ff5;--fc-bt:#c27d1e;--fc-grid:#2b303a;--fc-zero:#3c434e}}
:root[data-theme="dark"]{--fc-fwd:#4d8ff5;--fc-bt:#c27d1e;--fc-grid:#2b303a;--fc-zero:#3c434e}

.fc-size{margin:.1rem 0 .5rem;font-size:.78rem;line-height:1.4;opacity:.8}
.fc-size b{font-weight:600;opacity:1}
.fc-verdict{margin:.55rem 0 0;font-size:.86rem;line-height:1.45;
  border-left:2px solid currentColor;padding-left:.6rem}
.fc-verdict.up{color:#2e9e5b}.fc-verdict.flat{color:inherit;opacity:.85}
.fc-verdict.down{color:#c0392b}.fc-verdict.thin{opacity:.7}
.fc-verdict b{font-weight:600}
.fc-cmp-lede{margin:.1rem 0 .5rem;font-size:.8rem;line-height:1.45;opacity:.75}
.fc-cmp{display:block;width:100%;max-width:640px;height:auto;overflow:visible;margin:.2rem 0 .1rem}
.cmp-grid{stroke:currentColor;opacity:.14;stroke-width:1}
.cmp-zero{stroke:currentColor;opacity:.3;stroke-width:1;stroke-dasharray:1 3}
.cmp-ln{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.cmp-ln.f{stroke:var(--fc-fwd)}.cmp-ln.b{stroke:var(--fc-bt);stroke-dasharray:5 4}
.cmp-cap{stroke:none}
.cmp-cap.f{fill:var(--fc-fwd)}.cmp-cap.b{fill:var(--fc-bt)}
.cmp-ax{font-size:9.5px;fill:currentColor;opacity:.55;font-variant-numeric:tabular-nums}
.cmp-end{font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:600}
.cmp-end.f{fill:var(--fc-fwd)}.cmp-end.b{fill:var(--fc-bt)}
.cmp-key{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;font-size:.78rem;opacity:.85;
  margin:.35rem 0 .2rem}
.cmp-key b{font-variant-numeric:tabular-nums}
.cmp-sw{display:inline-block;width:20px;border-top:2.5px solid;margin-right:.4rem;
  vertical-align:middle}
.cmp-sw.f{border-color:var(--fc-fwd)}
.cmp-sw.b{border-color:var(--fc-bt);border-top-style:dashed}
.cmp-d{opacity:.7}

/* ── ONE INK COLOR (Bud, 2026-09-20) ──────────────────────────────────────────
   "make all the fonts same color.. why are some green, some white and some reds
   .. does not make any sense". Red and green text was firing on every figure at
   once - the net, the median, each trade result, the hour medians - so the card
   read as decoration instead of information. Colour now lives ONLY where it
   carries meaning: the two chart lines and their legend swatches, which is the
   one place a reader has to tell two things apart. Sign is carried by the minus
   sign, which is what a number is for. These come last in the file so they win
   over the earlier .pos/.neg rules without deleting them. */
.fc-card .pos,
.fc-card .neg,
.fc-card .dim,
.fc-trades .pos,
.fc-trades .neg,
.fc-detail .pos,
.fc-detail .neg,
.fc-stats .pos,
.fc-stats .neg,
.fc-verdict.up,
.fc-verdict.down,
.fc-verdict.flat,
.fc-verdict.thin{color:inherit}
.fc-trades .dim,.fc-detail .dim,.fc-card .dim{opacity:.55}
.fc-verdict{border-left-color:currentColor;opacity:.92}
.fc-verdict.thin{opacity:.7}
/* the sparkline keeps a single neutral stroke for the same reason */
.fc-line.pos,.fc-line.neg{stroke:currentColor;opacity:.75}

/* ── A CARD IS ONE BIG BUTTON ─────────────────────────────────────────────────
   The 96x16px "THE RECORD" text was the whole hit area and read as not
   clickable. The card itself now toggles; the label stays as the affordance. */
.fc-card{cursor:pointer}
.fc-card.open{cursor:default}
/* 🛑 color:inherit is the fix, not a tidy-up. A <button> defaults to the UA's `buttontext`,
   which is BLACK - so "THE RECORD" rendered as black text on a dark card and was effectively
   invisible. That is why Bud reported the cards as not clickable twice: the target was there
   and working, he just could not see it. */
.fc-more{display:block;width:100%;text-align:left;padding:.45rem 0 .1rem;cursor:pointer;
  color:inherit;background:none;border:0;font:inherit;opacity:.85}
.fc-card:hover .fc-more{opacity:1;text-decoration:underline}
.fc-detail{cursor:default}

/* ── bench state ──────────────────────────────────────────────────────────────
   Bud removed every red/green font from these cards for good reason, so state is
   carried by a WORD and by weight, not a hue. A benched card is set back, never
   struck through: its record is as real as any other engine's. */
.fc-state{display:inline-block;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;padding:2px 7px;border-radius:3px;vertical-align:middle;margin-left:.45rem;
  border:1px solid currentColor;opacity:.75}
.fc-state.benched{opacity:1;background:currentColor}
.fc-state.benched::after{content:""}
.fc-card.is-benched{opacity:.82;border-style:dashed}
.fc-card.is-benched .fc-state.benched{color:inherit;background:none;opacity:.95}
.fc-bench{margin:.35rem 0 .5rem;font-size:.82rem;line-height:1.5;opacity:.85;
  border-left:2px solid currentColor;padding-left:.6rem}
.fc-filter{display:inline-flex;gap:0;border:1px solid rgba(128,128,128,.35);border-radius:5px;
  overflow:hidden;margin-right:auto}
.fc-filter button{font:inherit;font-size:.78rem;padding:.3rem .7rem;background:none;border:0;
  color:inherit;cursor:pointer;opacity:.6}
.fc-filter button+button{border-left:1px solid rgba(128,128,128,.35)}
.fc-filter button[aria-pressed="true"]{opacity:1;background:rgba(128,128,128,.16);font-weight:600}
.fc-gate{margin:1.4rem 0 .6rem;padding:1rem 1.1rem;border:1px solid rgba(128,128,128,.28);
  border-radius:6px;background:rgba(128,128,128,.05)}
.fc-gate h3{margin:0 0 .5rem;font-size:1rem}
.fc-gate p{margin:0 0 .6rem;font-size:.87rem;line-height:1.55;max-width:70ch}
.fc-gate p:last-child{margin-bottom:0}

/* ── Forward-test daily calendar (2026-09-21) ───────────────────────────────
   Same cells as the backtest calendar (landing.css .cal-* / .cd / .ys / .caltip), copied
   here because this page runs on styles.css, not landing.css. The vars that styles.css
   does not define are supplied locally; the page accent stands in for the gold. */
.fwd-cal{max-width:1120px;margin:0 auto;padding:34px 28px 10px;
  --gold:var(--accent);--gold-lt:var(--accent);--muted2:#6f7c90;--line2:#34405a}
.fwd-cal h2{font-size:22px;font-weight:800;margin:0 0 6px}
.fcal-pick{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 18px}
.fcal-pick button{font:inherit;font-size:13.5px;padding:8px 14px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:transparent;color:var(--muted);transition:.15s}
.fcal-pick button small{color:var(--muted2);font-size:11.5px}
.fcal-pick button:hover{border-color:var(--gold)}
.fcal-pick button.on{border-color:var(--gold);color:var(--txt);background:rgba(62,166,255,.10);font-weight:600}
.fwd-cal .cal-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:6px 0 22px}
.fwd-cal .cal-totals .cs{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.fwd-cal .cal-totals .cs b{display:block;font-size:25px;font-weight:800;letter-spacing:-.02em}
.fwd-cal .cal-totals .cs b.pos{color:var(--green)} .fwd-cal .cal-totals .cs b.neg{color:var(--red)}
.fwd-cal .cal-totals .cs span{display:block;margin-top:5px;font-size:13px;color:var(--muted);line-height:1.5}
.fwd-cal .cal-strip{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}
.fwd-cal .ys{flex:0 1 110px;padding:9px 6px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel);color:var(--txt);cursor:pointer;text-align:center;font:inherit}
.fwd-cal .ys:hover{border-color:var(--gold-lt)}
.fwd-cal .ys.on{border-color:var(--gold);background:rgba(62,166,255,.12)}
.fwd-cal .ys b{display:block;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.fwd-cal .ys span{display:block;margin-top:3px;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}
.fwd-cal .ys.up span{color:var(--green)} .fwd-cal .ys.down span{color:var(--red)} .fwd-cal .ys.even span{color:var(--muted2)}
.fwd-cal .cal-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin:10px 0 6px}
.fwd-cal .cal-arrow{width:40px;height:40px;border-radius:10px;border:1px solid var(--line2);
  background:var(--panel);color:var(--txt);font-size:17px;cursor:pointer}
.fwd-cal .cal-arrow:hover:not(:disabled){border-color:var(--gold)}
.fwd-cal .cal-arrow:disabled{opacity:.3;cursor:not-allowed}
.fwd-cal .cal-month{font-size:23px;font-weight:800;min-width:220px;text-align:center}
.fwd-cal .cal-stats{text-align:center;color:var(--muted);font-size:13.5px;margin:0 0 20px;line-height:1.9}
.fwd-cal .cal-stats b{font-weight:800} .fwd-cal .cal-stats b.pos{color:var(--green)} .fwd-cal .cal-stats b.neg{color:var(--red)}
.fwd-cal .csep{font-style:normal;color:var(--line2);margin:0 10px}
.fwd-cal .cal-wrap{overflow-x:auto;max-width:100%}
.fwd-cal .cm-dow{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:9px;min-width:640px}
.fwd-cal .cm-dow span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2);text-align:center;font-weight:700}
.fwd-cal .cm-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;min-width:640px}
.fwd-cal .cd{min-height:96px;padding:12px 13px;border-radius:12px;border:1px solid var(--line);
  background:var(--panel);display:flex;flex-direction:column;gap:3px}
.fwd-cal .cd[data-d]{cursor:pointer}
.fwd-cal .cd[data-d]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fwd-cal .cd.pad{background:none;border:none;min-height:0}
.fwd-cal .cd.pad.fc-out{min-height:96px;border:1px dashed rgba(255,255,255,.05);opacity:.55}
.fwd-cal .cd-n{font-size:15px;font-weight:800;color:var(--txt)}
.fwd-cal .cd-p{font-size:17px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.fwd-cal .cd-m{font-size:11.5px;color:var(--muted2)}
.fwd-cal .cd-x{font-size:12.5px;color:var(--muted2);margin-top:3px}
.fwd-cal .cd.up{border-color:rgba(74,222,128,.42);background:rgba(74,222,128,.08)}
.fwd-cal .cd.up .cd-p{color:var(--green)}
.fwd-cal .cd.down{border-color:rgba(248,113,113,.42);background:rgba(248,113,113,.08)}
.fwd-cal .cd.down .cd-p{color:var(--red)}
.fwd-cal .cd.even .cd-p{color:var(--muted)}
.fwd-cal .cd.none{background:transparent;border-style:dashed}
.fwd-cal .cd.none .cd-n{color:var(--muted2)}
.caltip{position:fixed;z-index:90;min-width:250px;max-width:340px;padding:12px 13px 10px;
  border-radius:12px;border:1px solid #34405a;background:#10151d;box-shadow:0 18px 44px rgba(0,0,0,.62);
  opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .12s ease,transform .12s ease;pointer-events:none}
.caltip.on{opacity:1;visibility:visible;transform:translateY(0)}
.caltip .ct-h{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6f7c90;font-weight:800;margin-bottom:9px}
.caltip .ct-r{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:4px 0;font-size:13px}
.caltip .ct-nm{color:#c3ccd8}
.caltip .ct-nm small{color:#6f7c90;font-size:10.5px}
.caltip .ct-v{font-weight:750;font-variant-numeric:tabular-nums;color:var(--muted)}
.caltip .ct-v.pos{color:var(--green)} .caltip .ct-v.neg{color:var(--red)}
.caltip .ct-t{margin-top:6px;padding-top:8px;border-top:1px solid var(--line);font-weight:800}
.caltip .ct-t .ct-nm{color:#e7ecf3}
.caltip .ct-f{margin-top:8px;font-size:10.5px;line-height:1.45;color:#6f7c90}
@media(max-width:720px){.fwd-cal{padding:26px 16px 6px}.fwd-cal .cal-month{min-width:150px;font-size:19px}
  .fwd-cal .cd,.fwd-cal .cd.pad.fc-out{min-height:84px;padding:9px}}
/* 2026-09-21: whole-fleet view + the same weekday a year earlier */
.fwd-cal .cd-ago{margin-top:auto;padding-top:4px;font-size:11px;color:var(--muted2)}
.fwd-cal .cd-ago b{font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}
.fwd-cal .cd-ago b.pos{color:rgba(74,222,128,.75)} .fwd-cal .cd-ago b.neg{color:rgba(248,113,113,.75)}
.fwd-cal .cd.none[data-d]{cursor:pointer}
.fcal-pick .cf-fleet{font-weight:600}
.caltip .ct-cols{display:grid;grid-template-columns:1fr auto auto;gap:14px}
.caltip .ct-ago{min-width:74px;text-align:right;opacity:.8}
.caltip{max-width:380px}
/* 2026-09-21: this month against the same weekdays a year earlier */
.fcmp-block{margin:0 0 42px}
.fcmp-block h2{font-size:22px;font-weight:800;margin:0 0 8px}
.fcmp-lede{color:var(--txt);font-size:15.5px;line-height:1.6;margin:0 0 18px;max-width:820px}
.fcmp-lede b{color:var(--green)}
.fcmp-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.fcmp{width:100%;min-width:620px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.fcmp th,.fcmp td{padding:13px 18px;text-align:left;border-bottom:1px solid var(--line);font-size:14.5px}
.fcmp thead th{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  font-weight:700;vertical-align:bottom;background:rgba(255,255,255,.02)}
.fcmp thead th small{display:block;margin-top:4px;text-transform:none;letter-spacing:0;font-weight:500;
  font-size:11.5px;color:#6f7c90}
.fcmp .num{text-align:right}
.fcmp tbody th{font-weight:700;color:var(--txt)}
.fcmp th small{color:#6f7c90;font-size:11px;font-weight:500;margin-left:4px}
.fcmp td.pos{color:var(--green)} .fcmp td.neg{color:var(--red)}
.fcmp sup{font-size:9px;color:var(--muted);margin-left:2px}
.fcmp-pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap}
.fcmp-pill.ahead{color:var(--green);background:rgba(74,222,128,.12);border:1px solid rgba(74,222,128,.3)}
.fcmp-pill.behind{color:#c7cfdb;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.fcmp tfoot tr.fcmp-fleet th,.fcmp tfoot tr.fcmp-fleet td{font-size:16px;font-weight:800;
  background:rgba(62,166,255,.07);border-top:2px solid rgba(62,166,255,.45);border-bottom:none}
.fcmp tfoot tr.fcmp-fleet .fcmp-pill{font-size:13.5px}
.fcmp tfoot tr.fcmp-benched th,.fcmp tfoot tr.fcmp-benched td{opacity:.62;font-size:13.5px;border-top:1px solid var(--line);border-bottom:none}
.fcmp-ctx{margin:16px 0 0;padding:12px 16px;border-left:3px solid var(--accent);background:rgba(62,166,255,.05);
  border-radius:0 10px 10px 0;font-size:14px;line-height:1.6;color:var(--txt);max-width:820px}
.fcmp-note{margin:12px 0 0;font-size:12.5px;line-height:1.55;color:var(--muted);max-width:820px}
.fcmp th,.fcmp td{background:transparent}
.fcmp thead th{background:rgba(255,255,255,.02)}
.fcmp tfoot tr.fcmp-fleet th{color:var(--txt)}
.fcmp tfoot tr.fcmp-fleet th,.fcmp tfoot tr.fcmp-fleet td{background:rgba(62,166,255,.07)}

/* 2026-09-21 two tracks: Micro / Mini switch at the top of the forward test */
.trk-switch{margin:18px 0 6px}
.trk-switch .size-opt{text-decoration:none;display:inline-block}
