/* ============================================================
   HONORS Portal — app shell styles (extends honors.css)
   Density + mode mechanics live on [data-density] / [data-mode]
   set on .portal root.
   ============================================================ */

.portal{
  --sidebar-w:248px;
  --topbar-h:64px;
  /* density-driven tokens (comfortable defaults) */
  --row-py:14px;
  --row-fs:14.5px;
  --card-pad:24px;
  --gap:20px;
  --num-fs:15px;
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr;
  min-height:100vh;
  background:var(--cream);
  color:var(--ink);
}
.portal[data-density="compact"]{
  --row-py:8px;
  --row-fs:13px;
  --card-pad:18px;
  --gap:14px;
  --num-fs:14px;
}

/* ============================ SIDEBAR ============================ */
.side{
  position:sticky;top:0;align-self:start;height:100vh;
  background:var(--paper);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;
  z-index:20;
}
.side-brand{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 22px;height:var(--topbar-h);
  border-bottom:1px solid var(--line-soft);
}
.side-brand .brand{font-size:23px;letter-spacing:.16em;}
.side-brand .home-chip{
  font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--sage);
}
.side-scroll{flex:1;overflow-y:auto;padding:18px 14px 24px;}
.nav-group{margin-bottom:22px;}
.nav-group > .nav-lbl{
  font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sage);padding:0 10px;margin-bottom:8px;display:block;
}
.nav-item{
  display:flex;align-items:center;gap:11px;width:100%;
  padding:9px 10px;border-radius:4px;border:none;background:none;cursor:pointer;
  font-family:inherit;font-size:14px;color:var(--ink);text-align:left;
  position:relative;transition:background .15s ease,color .15s ease;line-height:1.2;
}
.nav-item .ic{width:17px;height:17px;flex:none;color:var(--sage);transition:color .15s;}
.nav-item .lab{flex:1;}
.nav-item .badge{
  font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.04em;
  color:var(--gold);background:rgba(156,126,69,0.12);border-radius:100px;padding:2px 7px;
}
.nav-item:hover{background:rgba(30,58,43,0.05);}
.nav-item:hover .ic{color:var(--forest);}
.nav-item.on{background:var(--forest);color:var(--cream);}
.nav-item.on .ic{color:var(--gold-soft);}
.nav-item.on .badge{color:var(--cream);background:rgba(244,240,230,0.18);}
.role-flag{
  font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--sage);padding:2px 6px;border:1px solid var(--line);
  border-radius:3px;
}

.side-foot{
  border-top:1px solid var(--line-soft);padding:14px 16px;
  display:flex;align-items:center;gap:11px;
}
.avatar{
  width:34px;height:34px;border-radius:50%;flex:none;
  background:var(--forest);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  font-family:'Spline Sans Mono',monospace;font-size:12px;letter-spacing:.04em;
}
.avatar.sm{width:28px;height:28px;font-size:10px;}
.avatar.lg{width:44px;height:44px;font-size:15px;}
.side-foot .who{flex:1;min-width:0;}
.side-foot .who .nm{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.side-foot .who .sb{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.04em;color:var(--sage);}
.side-foot .cog{background:none;border:none;cursor:pointer;color:var(--sage);padding:5px;border-radius:4px;}
.side-foot .cog:hover{color:var(--ink);background:rgba(30,58,43,0.05);}

/* ============================ MAIN ============================ */
.main{min-width:0;display:flex;flex-direction:column;}

/* ---- Topbar ---- */
.topbar{
  position:sticky;top:0;z-index:15;height:var(--topbar-h);
  background:rgba(244,240,230,0.86);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:16px;padding:0 26px;
}
/* League switcher */
.lswitch{position:relative;}
.lswitch-btn{
  display:flex;align-items:center;gap:12px;background:none;border:1px solid transparent;
  border-radius:6px;padding:7px 10px;cursor:pointer;font-family:inherit;color:var(--ink);
  transition:background .15s,border-color .15s;
}
.lswitch-btn:hover{background:var(--paper);border-color:var(--line-soft);}
.lswitch-mark{
  width:34px;height:34px;border-radius:7px;flex:none;display:flex;align-items:center;justify-content:center;
  background:var(--forest);color:var(--gold-soft);font-family:'Cormorant Garamond',serif;font-size:19px;
}
.lswitch-mark.sim{background:var(--gold);color:var(--forest-deep);}
.lswitch-txt{text-align:left;line-height:1.15;}
.lswitch-txt .lt{font-size:14.5px;font-weight:600;}
.lswitch-txt .ls{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.05em;color:var(--sage);text-transform:uppercase;}
.lswitch-btn .chev{color:var(--sage);transition:transform .2s;}
.lswitch.open .chev{transform:rotate(180deg);}
.lmenu{
  position:absolute;top:calc(100% + 8px);left:0;width:330px;
  background:var(--paper);border:1px solid var(--line);border-radius:8px;
  box-shadow:0 18px 50px -18px rgba(27,32,24,0.35);padding:8px;z-index:40;
}
.lmenu-lbl{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);padding:8px 10px 6px;}
.lmenu-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:none;background:none;border-radius:6px;cursor:pointer;font-family:inherit;text-align:left;color:var(--ink);}
.lmenu-item:hover{background:rgba(30,58,43,0.05);}
.lmenu-item.on{background:rgba(156,126,69,0.1);}
.lmenu-item .mt{font-size:14px;font-weight:600;line-height:1.2;}
.lmenu-item .ms{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.04em;color:var(--sage);text-transform:uppercase;}
.lmenu-item .roles{margin-left:auto;display:flex;gap:4px;}

/* topbar right cluster */
.tb-spacer{flex:1;}
.tb-search{
  display:flex;align-items:center;gap:9px;background:var(--paper);border:1px solid var(--line);
  border-radius:7px;padding:8px 12px;width:230px;color:var(--sage);
}
.tb-search input{border:none;background:none;outline:none;font-family:inherit;font-size:13.5px;color:var(--ink);width:100%;}
.tb-search kbd{font-family:'Spline Sans Mono',monospace;font-size:10px;border:1px solid var(--line);border-radius:3px;padding:1px 5px;color:var(--sage);}

/* segmented control (mode / density / view-as) */
.seg2{display:inline-flex;border:1px solid var(--line);border-radius:7px;padding:3px;background:var(--paper);}
.seg2 button{
  font-family:'Spline Sans Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  border:none;background:none;color:var(--sage);padding:6px 11px;border-radius:5px;cursor:pointer;
  display:flex;align-items:center;gap:6px;transition:all .18s;white-space:nowrap;
}
.seg2 button.on{background:var(--forest);color:var(--cream);}
.seg2 button.on.gold{background:var(--gold);color:var(--forest-deep);}
.seg2 .ic{width:13px;height:13px;}
.tb-ctl-lbl{font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-right:2px;}
.icon-btn{background:none;border:1px solid var(--line);border-radius:7px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sage);transition:all .15s;}
.icon-btn:hover{color:var(--ink);border-color:var(--ink);}
.icon-btn .dot{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--gold);}
.bell-badge{position:absolute;top:3px;right:3px;min-width:16px;height:16px;border-radius:100px;background:var(--gold);color:var(--forest-deep);font-family:'Spline Sans Mono',monospace;font-size:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:1.5px solid var(--cream);}

/* ---- Content scroll area ---- */
.content{padding:26px;max-width:1500px;width:100%;margin:0 auto;}
.page-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap;}
.page-top .eyebrow{margin-bottom:8px;}
.page-top{align-items:flex-start;}
.page-top > div:first-child{flex:1;min-width:0;}
.page-top h1{font-size:clamp(27px,2.5vw,37px);line-height:1.12;margin-bottom:2px;}
.page-top .sub{color:var(--sage);font-size:15px;margin-top:10px;max-width:60ch;}
.page-actions{margin-top:6px;}
.page-actions{display:flex;gap:10px;align-items:center;}

/* the "context banner" that announces role */
.ctx-banner{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:var(--forest);color:var(--cream);border-radius:8px;padding:14px 20px;margin-bottom:22px;
}
.ctx-banner .cb-mark{width:40px;height:40px;border-radius:8px;background:rgba(244,240,230,0.12);display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--gold-soft);}
.ctx-banner .cb-txt{line-height:1.25;}
.ctx-banner .cb-txt b{font-size:15.5px;font-weight:600;}
.ctx-banner .cb-txt span{font-family:'Spline Sans Mono',monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-soft);display:block;margin-top:2px;}
.ctx-banner .cb-stats{margin-left:auto;display:flex;gap:26px;}
.ctx-banner .cb-stat .v{font-family:'Cormorant Garamond',serif;font-size:26px;line-height:1;}
.ctx-banner .cb-stat .l{font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,240,230,0.6);margin-top:5px;}
@media(max-width:760px){.ctx-banner .cb-stats{width:100%;margin-left:0;justify-content:space-between;gap:12px;}}

/* ============================ CARDS / WIDGETS ============================ */
.grid{display:grid;gap:var(--gap);}
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:8px;
  display:flex;flex-direction:column;overflow:hidden;position:relative;
}
.card-h{display:flex;align-items:center;gap:10px;padding:var(--card-pad) var(--card-pad) 0;}
.card-h .ck{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
.card-h h3{font-size:21px;font-weight:500;}
.card-h .ttl{flex:1;}
.card-h .ttl h3{font-size:20px;}
.card-h .act{margin-left:auto;display:flex;gap:6px;align-items:center;}
.card-b{padding:var(--card-pad);flex:1;}
.card-b.flush{padding:0;}
.card-foot{padding:13px var(--card-pad);border-top:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:10px;}
.linkrow{font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.04em;color:var(--forest);font-weight:500;display:inline-flex;align-items:center;gap:6px;cursor:pointer;background:none;border:none;}
.linkrow:hover .arr{transform:translateX(3px);}
.linkrow .arr{transition:transform .2s;}

.drag-handle{cursor:grab;color:var(--sage);opacity:0;transition:opacity .15s;display:flex;}
.card:hover .drag-handle{opacity:.55;}
.card.dragging{opacity:.4;}
.card.drop-target{outline:2px dashed var(--gold);outline-offset:-2px;}

/* KPI tiles */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:var(--card-pad);position:relative;overflow:hidden;}
.kpi .kl{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);}
.kpi .kv{font-family:'Cormorant Garamond',serif;font-size:46px;line-height:1;color:var(--forest);margin-top:10px;display:flex;align-items:baseline;gap:8px;}
.kpi .kv small{font-size:18px;color:var(--sage);font-family:'Public Sans';}
.kpi .kd{font-family:'Spline Sans Mono',monospace;font-size:11px;margin-top:10px;display:flex;align-items:center;gap:6px;}
.kpi .spark{position:absolute;right:16px;bottom:14px;opacity:.5;}
.up{color:var(--forest);}.down{color:#9a4a3a;}.flat{color:var(--sage);}

/* ============================ DATA GRID ============================ */
.dgrid-wrap{width:100%;overflow:auto;max-height:68vh;}
/* thin heritage scrollbars for in-card scroll regions */
.dgrid-wrap::-webkit-scrollbar,.tl::-webkit-scrollbar,.feed::-webkit-scrollbar{width:9px;height:9px;}
.dgrid-wrap::-webkit-scrollbar-thumb,.tl::-webkit-scrollbar-thumb,.feed::-webkit-scrollbar-thumb{background:rgba(27,32,24,0.18);border-radius:100px;border:2px solid var(--paper);}
.dgrid-wrap::-webkit-scrollbar-thumb:hover,.tl::-webkit-scrollbar-thumb:hover,.feed::-webkit-scrollbar-thumb:hover{background:rgba(27,32,24,0.32);}
table.dgrid{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;}
table.dgrid th{
  font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sage);text-align:left;padding:12px var(--card-pad);font-weight:500;white-space:nowrap;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);cursor:pointer;user-select:none;
}
table.dgrid th.r{text-align:right;}
table.dgrid th.sortable:hover{color:var(--ink);}
table.dgrid th .sortcaret{opacity:0;margin-left:5px;}
table.dgrid th.sorted .sortcaret{opacity:1;color:var(--gold);}
table.dgrid td{padding:var(--row-py) var(--card-pad);border-top:1px solid var(--line-soft);font-size:var(--row-fs);white-space:nowrap;}
table.dgrid td.r{text-align:right;}
table.dgrid tbody tr{transition:background .12s;}
table.dgrid tbody tr:hover{background:rgba(30,58,43,0.04);cursor:pointer;}
table.dgrid tbody tr.me-row{background:rgba(156,126,69,0.09);}
table.dgrid tbody tr.me-row:hover{background:rgba(156,126,69,0.14);}
table.dgrid tbody tr.lead-row td:first-child{box-shadow:inset 3px 0 0 var(--gold);}
.pos{font-family:'Cormorant Garamond',serif;font-size:21px;color:var(--forest);width:32px;}
.pname{font-weight:600;display:flex;align-items:center;gap:9px;}
.pname .you-tag{font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.08em;color:var(--gold);border:1px solid var(--gold-soft);border-radius:3px;padding:1px 5px;text-transform:uppercase;}
.pts{font-family:'Spline Sans Mono',monospace;color:var(--forest);font-weight:500;}
.num{font-family:'Spline Sans Mono',monospace;font-size:var(--num-fs);}
.mvr{font-family:'Spline Sans Mono',monospace;font-size:12px;}
.movechip{font-family:'Spline Sans Mono',monospace;font-size:10px;padding:1px 6px;border-radius:3px;}
.movechip.up{background:rgba(30,58,43,0.1);}
.movechip.down{background:rgba(154,74,58,0.1);}
.paid-yes{color:var(--forest);}
.paid-no{color:#9a4a3a;}

/* sparkline cell */
.spark-cell{width:90px;}

/* filter / toolbar above grids */
.gtools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px var(--card-pad);border-bottom:1px solid var(--line-soft);background:var(--paper);}
.chip-filter{font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.04em;border:1px solid var(--line);background:none;color:var(--sage);border-radius:100px;padding:6px 13px;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:6px;}
.chip-filter:hover{border-color:var(--ink);color:var(--ink);}
.chip-filter.on{background:var(--forest);border-color:var(--forest);color:var(--cream);}
.gtools .gt-spacer{flex:1;}
.gt-count{font-family:'Spline Sans Mono',monospace;font-size:11px;color:var(--sage);}

/* ============================ SCENARIO MODELER ============================ */
.scn-wrap{display:grid;grid-template-columns:340px 1fr;gap:var(--gap);}
@media(max-width:900px){.scn-wrap{grid-template-columns:1fr;}}
@media(max-width:820px){.cal-sub{grid-template-columns:1fr !important;}}
.scn-controls .field{margin-bottom:18px;}
.scn-controls label{display:block;font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-bottom:9px;}
.scn-controls select,.scn-controls input[type=number]{width:100%;background:var(--cream);border:1px solid var(--line);border-radius:5px;padding:11px 13px;font-family:inherit;font-size:15px;color:var(--ink);}
.range-row{display:flex;align-items:center;gap:14px;}
.range-row input[type=range]{flex:1;accent-color:var(--forest);}
.range-val{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--forest);min-width:54px;text-align:right;line-height:1;}
.scn-out{display:flex;flex-direction:column;gap:14px;}
.verdict{border-radius:8px;padding:24px;border:1px solid var(--line);background:var(--paper);}
.verdict.win{background:var(--forest);color:var(--cream);border-color:var(--forest);}
.verdict .vk{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);}
.verdict h3{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:500;margin:12px 0 6px;line-height:1.05;}
.verdict.win h3 em{color:var(--gold-soft);}
.verdict p{font-size:14.5px;color:rgba(244,240,230,0.78);max-width:46ch;}
.verdict:not(.win) p{color:var(--sage);}
.odds-bar{height:10px;border-radius:100px;background:rgba(244,240,230,0.18);overflow:hidden;margin-top:18px;}
.odds-bar > i{display:block;height:100%;background:var(--gold-soft);border-radius:100px;}
.scn-table td{font-size:14px;}
.proj-leader{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line-soft);}
.proj-leader:last-child{border:none;}
.proj-leader .pl-n{display:flex;align-items:center;gap:10px;}
.proj-leader .pl-p{font-family:'Spline Sans Mono',monospace;font-size:14px;color:var(--forest);}

/* ============================ ACTIVITY FEED ============================ */
.feed{display:flex;flex-direction:column;}
.feed-item{display:flex;gap:16px;padding:var(--card-pad);border-bottom:1px solid var(--line-soft);}
.feed-item:last-child{border-bottom:none;}
.feed-dot{width:38px;height:38px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--cream);border:1px solid var(--line);color:var(--forest);}
.feed-dot.lead{background:var(--forest);color:var(--gold-soft);border-color:var(--forest);}
.feed-dot.you{background:var(--gold);color:var(--forest-deep);border-color:var(--gold);}
.feed-bd{flex:1;min-width:0;}
.feed-bd .fh{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:500;line-height:1.18;display:block;}
.feed-bd .ft{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--sage);display:block;margin-top:5px;}
.feed-bd p{font-size:14.5px;color:var(--sage);margin-top:7px;max-width:72ch;}
.feed-bd p .ref{color:var(--forest);font-weight:600;border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap;}
.feed-bd p .ref:hover{border-bottom-color:var(--forest);}
.feed-refs{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap;}
.ref-chip{font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.02em;color:var(--forest);border:1px solid var(--line);border-radius:100px;padding:5px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s;background:none;}
.ref-chip:hover{border-color:var(--forest);background:rgba(30,58,43,0.04);}
.feed-delta{font-family:'Spline Sans Mono',monospace;font-size:12px;color:var(--gold);align-self:flex-start;white-space:nowrap;}

/* ============================ SCHEDULE ============================ */
.sched-list{display:flex;flex-direction:column;}
.sched-row{display:flex;align-items:center;gap:18px;padding:var(--row-py) var(--card-pad);border-top:1px solid var(--line-soft);transition:background .12s;}
.sched-row:first-child{border-top:none;}
.sched-row:hover{background:rgba(30,58,43,0.04);}
.sched-date{text-align:center;width:54px;flex:none;}
.sched-date .dow{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--gold);}
.sched-date .dnum{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--forest);line-height:1;}
.sched-main{flex:1;min-width:0;}
.sched-main .st{font-size:15px;font-weight:600;}
.sched-main .sc{font-family:'Spline Sans Mono',monospace;font-size:11px;color:var(--sage);margin-top:3px;}
.sched-tee{text-align:right;font-family:'Spline Sans Mono',monospace;font-size:13px;color:var(--ink);}
.statpill{font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:100px;border:1px solid var(--line);color:var(--sage);}
.statpill.you{background:var(--gold);color:var(--forest-deep);border-color:var(--gold);}
.statpill.open{background:rgba(30,58,43,0.08);color:var(--forest);border-color:transparent;}
.statpill.draft{color:var(--sage);}

/* misc small */
.btn-sm{padding:8px 14px;font-size:13px;}
.stepbtn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--forest);font-size:22px;font-family:'Cormorant Garamond',serif;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:all .15s;}
.stepbtn:hover{border-color:var(--forest);background:rgba(30,58,43,0.05);}
.pcover .ph-lbl{opacity:.8;}
/* capped, scrollable data regions (rec: long boards/schedules scroll in-box) */
.tl{max-height:62vh;overflow:auto;padding-right:8px;}
.feed.scroll-cap{max-height:64vh;overflow:auto;}

/* ---- rank movement (▲▼ vs last week) ---- */
.mvchip{font-family:'Spline Sans Mono',monospace;font-size:11px;display:inline-flex;align-items:center;gap:3px;}
.mvchip.up{color:var(--forest);}
.mvchip.down{color:#9a4a3a;}
.mvchip.flat{color:var(--sage);opacity:.7;}
.gapcell{font-family:'Spline Sans Mono',monospace;font-size:12px;color:var(--sage);}
.gapcell b{color:var(--gold);}

/* ---- leaderboard mini-cards (rec #8) ---- */
.lb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:var(--gap);}
.lbcard{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:18px 20px;}
.lbcard h4{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:4px;}
.lbcard .lbsub{font-size:12px;color:var(--sage);margin-bottom:10px;}
.lbrow{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line-soft);font-size:13.5px;}
.lbrow.first{border-top:none;}
.lbrow .lbn{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--forest);width:20px;}
.lbrow .lbnm{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lbrow .lbv{font-family:'Spline Sans Mono',monospace;color:var(--forest);font-size:13px;}
.lbrow.me .lbnm{color:var(--gold);}

/* ---- fixtures-and-results timeline (rec #4) ---- */
.tl{position:relative;padding-left:30px;}
.tl::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:1px;background:var(--line);}
.tlrow{position:relative;display:flex;gap:16px;align-items:flex-start;padding:14px 4px;cursor:pointer;border-radius:6px;transition:background .12s;}
.tlrow:hover{background:rgba(30,58,43,0.04);}
.tlrow .tldot{position:absolute;left:-26px;top:18px;width:11px;height:11px;border-radius:50%;background:var(--cream);border:2px solid var(--sage);}
.tlrow.live .tldot{border-color:var(--gold);background:var(--gold);box-shadow:0 0 0 4px rgba(156,126,69,0.18);}
.tlrow.upcoming .tldot{border-color:var(--forest);}
.tlrow.done .tldot{border-color:var(--line);background:var(--line);}
.tldate{width:58px;flex:none;text-align:left;}
.tldate .d1{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.08em;color:var(--gold);}
.tldate .d2{font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--forest);line-height:1;}
.tlmain{flex:1;min-width:0;}
.tlmain .tt{font-size:15px;font-weight:600;}
.tlmain .ts{font-family:'Spline Sans Mono',monospace;font-size:11px;color:var(--sage);margin-top:3px;}
.tlmain .tres{font-size:13.5px;color:var(--ink);margin-top:6px;}
.tlmain .tres b{color:var(--forest);}
.tl-pill{font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:100px;border:1px solid var(--line);white-space:nowrap;align-self:center;color:var(--sage);}
.tl-pill.live{color:var(--forest-deep);background:var(--gold);border-color:var(--gold);}
.tl-pill.upcoming{color:var(--forest);border-color:var(--forest);}
.whatsnext{background:var(--forest);color:var(--cream);border-radius:8px;padding:24px 26px;display:flex;gap:24px;align-items:center;flex-wrap:wrap;}
.whatsnext .wn-date{text-align:center;flex:none;}
.whatsnext .wn-date .wd1{font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.12em;color:var(--gold-soft);}
.whatsnext .wn-date .wd2{font-family:'Cormorant Garamond',serif;font-size:52px;line-height:.9;color:var(--cream);}
.whatsnext .wn-main{flex:1;min-width:200px;}
.whatsnext .wn-main .wk{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);}
.whatsnext .wn-main h3{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:500;margin:6px 0 4px;}
.whatsnext .wn-main p{color:rgba(244,240,230,0.75);font-size:14px;}

/* ---- month calendar (toggle view) ---- */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-dow{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);text-align:center;padding-bottom:4px;}
.cal-cell{min-height:66px;border:1px solid var(--line-soft);border-radius:6px;padding:7px;display:flex;flex-direction:column;gap:3px;}
.cal-empty{border:none;}
.cal-num{font-family:'Spline Sans Mono',monospace;font-size:12px;color:var(--sage);}
.cal-has{background:rgba(156,126,69,0.1);border-color:var(--gold);cursor:pointer;}
.cal-has:hover{background:rgba(156,126,69,0.2);}
.cal-has .cal-num{color:var(--ink);font-weight:600;}
.cal-ev{font-size:10px;line-height:1.15;color:var(--forest);font-weight:600;overflow:hidden;}

/* ============================ ACTION CENTER ============================ */
.ac-sec{padding:6px 0;}
.ac-sec-h{display:flex;align-items:center;gap:10px;padding:12px var(--card-pad) 8px;}
.ac-sec-l{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
.ac-sec-c{font-family:'Spline Sans Mono',monospace;font-size:10px;color:var(--sage);background:rgba(27,32,24,0.06);border-radius:100px;padding:1px 8px;}
.ac-row{display:flex;gap:15px;align-items:flex-start;padding:15px var(--card-pad);border-top:1px solid var(--line-soft);}
.ac-sec .ac-row:first-of-type{border-top:none;}
.ac-ic{width:38px;height:38px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--cream);border:1px solid var(--line);color:var(--forest);}
.ac-ic.now{background:var(--gold);color:var(--forest-deep);border-color:var(--gold);}
.ac-body{flex:1;min-width:0;}
.ac-t{font-size:15.5px;font-weight:600;display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.ac-must{font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--forest-deep);background:var(--gold-soft);padding:2px 7px;border-radius:100px;}
.ac-d{font-size:13.5px;color:var(--sage);margin-top:4px;max-width:62ch;line-height:1.5;}
.ac-meta{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-top:7px;}
.ac-act{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex:none;}
.ac-snooze{background:none;border:none;font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--sage);cursor:pointer;}
.ac-snooze:hover{color:var(--ink);}
.ac-expand{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft);}
@media(max-width:640px){.ac-row{flex-wrap:wrap;}.ac-act{flex-direction:row;width:100%;justify-content:flex-end;margin-top:8px;}}

.needsyou{display:flex;align-items:center;gap:14px;background:var(--forest);color:var(--cream);border-radius:8px;padding:14px 18px;margin-bottom:var(--gap);cursor:pointer;}
.needsyou .ny-ic{width:38px;height:38px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--gold);color:var(--forest-deep);}
.needsyou .ny-body{flex:1;min-width:0;}
.needsyou .ny-t{font-size:14.5px;font-weight:600;}
.needsyou .ny-t .dim{color:rgba(244,240,230,0.7);}

/* The Race — horizontal strip hero */
.race-strip{display:flex;align-items:center;gap:26px;background:var(--forest);color:var(--cream);border-radius:8px;padding:18px 26px;flex-wrap:wrap;}
.race-strip .rs-lead{flex:1;min-width:240px;}
.race-strip .rs-lead h3{font-family:'Cormorant Garamond',serif;font-size:29px;font-weight:500;line-height:1.05;margin:5px 0 4px;}
.race-strip .rs-lead h3 em{color:var(--gold-soft);font-style:italic;}
.race-strip .rs-lead p{color:rgba(244,240,230,0.75);font-size:13.5px;max-width:54ch;}
.race-strip .rs-lead p b{color:var(--cream);}
.race-strip .rs-stats{display:flex;align-items:center;gap:20px;}
.race-strip .rs-stat{text-align:center;}
.race-strip .rs-stat .v{font-family:'Cormorant Garamond',serif;font-size:34px;line-height:1;}
.race-strip .rs-stat .l{font-family:'Spline Sans Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(244,240,230,0.6);margin-top:6px;white-space:nowrap;}
.race-strip .rs-div{width:1px;height:36px;background:rgba(244,240,230,0.18);}
.race-strip .rs-cta{display:flex;gap:10px;flex-wrap:wrap;}
@media(max-width:980px){.race-strip .rs-stats{order:3;width:100%;justify-content:space-between;}.race-strip .rs-div{display:none;}.race-strip .rs-cta{order:4;}}

/* ============================ OVERLAYS (onboarding / tour / wizard) ============================ */
.ovl{position:fixed;inset:0;z-index:120;background:rgba(19,39,28,0.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto;}
.ovl-card{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 30px 80px -20px rgba(0,0,0,0.5);width:100%;max-width:480px;padding:26px 30px 30px;}
.ovl-card.wide{max-width:860px;}
.ob-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:14px;}
.ob-dots{display:flex;gap:6px;}
.ob-dots span{width:7px;height:7px;border-radius:50%;background:var(--line);transition:all .2s;}
.ob-dots span.on{background:var(--gold);width:20px;border-radius:100px;}
.ob-body{}
.ob-h{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:500;line-height:1.04;margin:6px 0 10px;}
.ob-p{color:var(--sage);font-size:15.5px;line-height:1.6;max-width:46ch;}
.ob-cta{width:100%;justify-content:center;margin-top:24px;}
.ob-nav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;}
.ob-agree{display:flex;gap:11px;align-items:flex-start;margin:20px 0 6px;font-size:13.5px;color:var(--sage);line-height:1.5;cursor:pointer;}
.ob-agree input{margin-top:3px;width:18px;height:18px;accent-color:var(--forest);flex:none;}
.ob-skip{position:absolute;bottom:-34px;left:50%;transform:translateX(-50%);background:none;border:none;color:rgba(244,240,230,0.7);font-family:'Spline Sans Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;}
.ob-skip:hover{color:#fff;}
.ob-x{background:none;border:none;color:var(--sage);cursor:pointer;padding:4px;}
.ob-x:hover{color:var(--ink);}
.ovl-card .field{margin-bottom:14px;}

/* scorecard (post score) */
.sc-wrap{overflow-x:auto;margin-bottom:14px;}
table.sc{width:100%;border-collapse:collapse;min-width:540px;}
table.sc th,table.sc td{text-align:center;padding:6px 4px;font-family:'Spline Sans Mono',monospace;font-size:12px;border:1px solid var(--line-soft);}
table.sc th{background:var(--forest);color:var(--cream);font-weight:500;font-size:11px;}
table.sc th.sc-rh,table.sc td.sc-rh{background:var(--paper-2);color:var(--sage);text-transform:uppercase;letter-spacing:.06em;font-size:9px;width:46px;position:sticky;left:0;z-index:1;}
table.sc th.sc-tot,table.sc td.sc-tot{background:var(--paper-2);font-weight:600;color:var(--forest);}
table.sc .sc-par td{color:var(--ink);}
.sc-si{display:block;color:var(--gold);font-size:8px;line-height:1;height:8px;}
.sc-input{width:34px;height:32px;text-align:center;border:1px solid var(--line);border-radius:5px;background:var(--cream);font-family:'Spline Sans Mono',monospace;font-size:14px;color:var(--ink);}
.sc-input:focus{outline:none;border-color:var(--forest);}
.sc-input.under{background:rgba(30,58,43,0.12);border-color:var(--forest);color:var(--forest);font-weight:600;}
.sc-input.over{color:#9a4a3a;}
.sc-pts td{color:var(--gold);font-weight:600;}
.sc-stat-l{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;}
.sc-stat-v{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--ink);line-height:1;margin-top:4px;}

/* wizard */
.wiz{display:grid;grid-template-columns:1fr 260px;gap:26px;}
.wiz-main{min-width:0;}
.wiz-tpls{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.wiz-tpl{text-align:left;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--cream);cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:all .15s;}
.wiz-tpl:hover{border-color:var(--forest);}
.wiz-tpl.on{border-color:var(--forest);background:rgba(30,58,43,0.05);box-shadow:inset 0 0 0 1px var(--forest);}
.wiz-tpl-ic{width:34px;height:34px;border-radius:8px;background:var(--forest);color:var(--gold-soft);display:flex;align-items:center;justify-content:center;}
.wiz-tpl-t{font-weight:600;font-size:15px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.wiz-tpl-ty{font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);border:1px solid var(--line);border-radius:100px;padding:2px 7px;}
.wiz-tpl-d{font-size:12.5px;color:var(--sage);line-height:1.45;}
.wiz-opt{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line-soft);}
.wiz-opt:first-of-type{border-top:none;}
.wiz-opt b{font-size:14.5px;}
.wiz-opt span{display:block;font-size:13px;color:var(--sage);margin-top:3px;max-width:46ch;}
.wiz-sum{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:18px;align-self:start;}
.wiz-sum-h{font-family:'Spline Sans Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);}
.wiz-sum-name{font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--forest);margin:6px 0 14px;line-height:1.1;}
.wiz-sum-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:7px 0;border-top:1px solid var(--line-soft);}
.wiz-sum-row span{color:var(--sage);}
.wiz-foot{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:18px;border-top:1px solid var(--line-soft);}
@media(max-width:720px){.wiz{grid-template-columns:1fr;}.wiz-tpls{grid-template-columns:1fr;}.wiz-sum{order:-1;}}
.btn-on-dark{background:rgba(244,240,230,0.1);border:1px solid rgba(244,240,230,0.3);color:var(--cream);}
.btn-on-dark:hover{background:rgba(244,240,230,0.18);border-color:rgba(244,240,230,0.5);}
.dim{color:var(--sage);}
.barmini{display:inline-flex;gap:2px;align-items:flex-end;height:18px;}
.barmini i{width:4px;background:var(--gold-soft);border-radius:1px;display:block;}
.empty{padding:60px 20px;text-align:center;color:var(--sage);font-family:'Spline Sans Mono',monospace;font-size:12px;letter-spacing:.04em;}

/* responsive shell */
.menu-toggle{display:none;}

/* mobile bottom tab bar */
.bottomnav{display:none;}
@media(max-width:920px){
  .bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(244,240,230,0.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));}
  .bn-item{flex:1;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;color:var(--sage);cursor:pointer;font-family:inherit;}
  .bn-item.on{color:var(--forest);}
  .bn-ic{position:relative;display:flex;}
  .bn-l{font-family:'Spline Sans Mono',monospace;font-size:9px;letter-spacing:.04em;text-transform:uppercase;}
  .bn-post .bn-ic{background:var(--forest);color:var(--cream);width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;margin-top:-2px;}
  .bn-item.bn-post.on .bn-ic{background:var(--forest-deep);}
  .bn-badge{position:absolute;top:-4px;right:-8px;min-width:14px;height:14px;border-radius:100px;background:var(--gold);color:var(--forest-deep);font-family:'Spline Sans Mono',monospace;font-size:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;}
  .content{padding-bottom:84px !important;}
}
@media(max-width:1080px){
  .kpi-row{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:920px){
  .portal{grid-template-columns:1fr;}
  .side{position:fixed;left:0;top:0;width:280px;transform:translateX(-100%);transition:transform .25s ease;box-shadow:0 0 60px rgba(0,0,0,.2);}
  .portal.nav-open .side{transform:translateX(0);}
  .menu-toggle{display:flex;}
  .tb-search{display:none;}
}
@media(max-width:680px){
  .content{padding:18px 16px;}
  .kpi-row{grid-template-columns:1fr 1fr;}
  .tb-ctl-lbl{display:none;}
}
