/* today.css — Today v3 (docs/SITE_MAP.md §12; canvas "Today v3 final" boards 1–4). Layout only; the tokens and
   the type scale are style-v5.css (Graphite). Status header · book line · workspace (tabs) + Activity · chips.
   Legibility rules: nothing under 12px, labels in --faint (7:1) only, tables at 13px mono with 11px row padding. */

/* ── top bar: the bot line ── */
.nbot{display:flex;gap:18px;font-size:13px;padding-right:18px;border-right:1px solid var(--line)}
.nbot span{display:flex;gap:6px;align-items:baseline}.nbot i{font-style:normal;color:var(--faint)}.nbot b{font-weight:600}
.nbot b.pos{color:var(--green)}.nbot b.neg{color:var(--red)}
.nchecks{font-size:13px;color:var(--faint)}.nchecks.warn{color:var(--amber)}.nchecks.err{color:var(--red)}.nchecks.ok{color:var(--green)}

/* ── 1 · status header ── */
.tstat{display:flex;align-items:center;gap:14px;padding:11px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);margin-bottom:12px;overflow:hidden}
.tstat>b{font-size:15px;font-weight:600;white-space:nowrap}
.tstat-dot{width:10px;height:10px;border-radius:50%;background:var(--faint);flex:none}
.tstat-dot.open{background:var(--green)}.tstat-dot.pre{background:var(--amber)}.tstat-dot.closed{background:var(--accent)}
.tstat-date{font-size:13px;color:var(--faint);white-space:nowrap}
.tstat-steps{display:flex;align-items:center;gap:6px;margin-left:6px;overflow:hidden}
.tstat-steps .st{font-family:var(--mono);font-size:12px;white-space:nowrap;padding:4px 9px;border-radius:4px;border:1px solid var(--line);color:var(--faint)}
.tstat-steps .st.done{color:var(--green);background:var(--green-s);border-color:transparent}
.tstat-steps .st.next{color:var(--ink);border-color:var(--accent)}
.tstat-steps .st.miss{color:var(--red);background:var(--red-s);border-color:transparent}
.tstat-next{margin-left:auto;display:flex;gap:12px;align-items:center;white-space:nowrap;color:var(--soft);font-size:14px}
.tstat-next b{color:var(--ink)}.tstat-next .cd{color:var(--accent);font-size:13px}

/* ── 2 · book line ── */
.tbook{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden;margin-bottom:12px}
.tbook .k{padding:12px 16px;border-right:1px solid var(--line);min-width:0}.tbook .k:last-child{border-right:0}
.tbook .k i{display:block;font-style:normal;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:500;white-space:nowrap}
.tbook .k b{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbook .k b.pos,.tbook .k b .pos{color:var(--green)}.tbook .k b.neg,.tbook .k b .neg{color:var(--red)}.tbook .k b.warn,.tbook .k b .warn{color:var(--amber)}.tbook .k b small{font-size:14px;color:var(--faint);font-weight:400}
.tbook .k small{display:block;font-size:13px;color:var(--soft);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbook .bar{height:5px;background:var(--panel2);border-radius:3px;margin-top:8px;overflow:hidden}.tbook .bar .f{height:100%;background:var(--green);border-radius:3px}
.tbook .bar .f.warn{background:var(--amber)}.tbook .bar .f.bad{background:var(--red)}

/* ── 3 · workspace + activity ── */
.tmain{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;margin-bottom:12px;align-items:start}
.twork,.tact{border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden;min-width:0}
.ttabs{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 4px;overflow-x:auto}
.ttabs button{font:inherit;font-size:14px;padding:11px 16px;background:none;border:0;border-bottom:2px solid transparent;color:var(--soft);cursor:pointer;white-space:nowrap}
.ttabs button:hover{color:var(--ink)}.ttabs button.on{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
.ttabs button .n{font-family:var(--mono);font-size:12px;color:var(--faint);margin-left:6px}
.ttabs-meta{margin-left:auto;font-size:12px;color:var(--faint);padding:0 14px;white-space:nowrap}
.tverdict{padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel2)}
.tv-line{display:flex;gap:14px;align-items:center}
.tv-badge{font-family:var(--mono);font-size:12px;letter-spacing:.05em;padding:3px 9px;border-radius:4px;white-space:nowrap;background:var(--panel);color:var(--faint);flex:none}
.tv-badge.tier-GREEN{background:var(--green-s);color:var(--green)}.tv-badge.tier-YELLOW{background:var(--amber-s);color:var(--amber)}
.tv-badge.tier-ORANGE{background:rgba(245,162,90,.14);color:var(--tier-orange)}.tv-badge.tier-RED{background:var(--red-s);color:var(--red)}
.tv-text{font-size:15px;font-weight:600;line-height:1.35}
.tv-nums{font-size:13px;color:var(--soft);margin-top:8px}.tv-nums b{color:var(--ink);font-weight:600}.tv-nums a{color:var(--accent);text-decoration:none;cursor:pointer}
.tpanel[hidden]{display:none}
.tscroll{overflow-x:auto}
.tfoot{padding:10px 16px;border-top:1px solid var(--line);font-size:13px;color:var(--faint)}.tfoot a{color:var(--accent);text-decoration:none}.tfoot b.pos{color:var(--green)}.tfoot b.neg{color:var(--red)}

/* positions / orders table */
.ptable{width:100%;border-collapse:collapse;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px}
.ptable th{text-align:right;padding:9px 10px;font-family:var(--body);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:500;border-bottom:1px solid var(--line);white-space:nowrap}
.ptable th:first-child,.ptable td:first-child,.ptable th.l,.ptable td.l{text-align:left}
.ptable td{padding:11px 8px;text-align:right;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.ptable td:first-child{white-space:normal;min-width:200px}.ptable th{padding:9px 8px}
.ptable tr:last-child td{border-bottom:0}
.ptable td.pos{color:var(--green);font-weight:600}.ptable td.neg{color:var(--red);font-weight:600}.ptable td.mut{color:var(--soft)}
.ptable .nm{font-family:var(--body);display:flex;align-items:center;gap:10px}.ptable .nm b{font-size:14px;font-weight:600}
.ptable .sub{font-family:var(--body);font-size:12.5px;color:var(--faint);margin-top:2px}.ptable .legs{font-size:12px;color:var(--soft);margin-top:3px}
.ptable td.loading{text-align:left;padding:16px}
.pb{font-family:var(--mono);font-size:12px;letter-spacing:.05em;padding:3px 8px;border-radius:4px;white-space:nowrap}
.pb.ok{background:var(--green-s);color:var(--green)}.pb.warn{background:var(--amber-s);color:var(--amber)}.pb.bad{background:var(--red-s);color:var(--red)}.pb.off{background:var(--panel2);color:var(--faint)}.pb.tier-GREEN{background:var(--green-s);color:var(--green)}.pb.tier-YELLOW{background:var(--amber-s);color:var(--amber)}.pb.tier-ORANGE{background:rgba(245,162,90,.14);color:var(--tier-orange)}.pb.tier-RED{background:var(--red-s);color:var(--red)}

/* plan */
.plan-list{padding:0}
.plan-ev{display:grid;grid-template-columns:70px 1fr;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line)}
.plan-ev .at{font-family:var(--mono);font-size:14px;color:var(--faint);padding-top:2px}.plan-ev.next .at{color:var(--accent)}.plan-ev.done .at{color:var(--green)}.plan-ev.miss .at{color:var(--red)}
.plan-ev b{font-size:14px;font-weight:600}.plan-ev .d{font-size:13px;color:var(--soft);margin-top:3px;line-height:1.5}
.plan-ev .cd{font-family:var(--mono);font-size:13px;color:var(--accent);margin-left:8px}
.plan-sub .card-h{border-top:1px solid var(--line)}
.plan-ready{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
.plan-ready span{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--line);border-radius:6px;font-size:13px;color:var(--soft)}
.plan-ready span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}
.plan-ready span.warn::before{background:var(--amber)}.plan-ready span.bad::before{background:var(--red)}

/* tickets, compact (today-cards.js) */
.tickets-compact .card-b{padding:8px 16px}
.tk-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:14px}
.tk-row:first-child{border-top:0}
.tk-row .n{font-weight:600} .tk-row .n small{font-weight:400;color:var(--faint);font-size:12.5px;margin-left:6px}
.tk-row .s{font-family:var(--mono);font-size:12.5px;letter-spacing:.05em;white-space:nowrap}
.tk-row .s.place{color:var(--green)} .tk-row .s.opt{color:var(--amber)} .tk-row .s.skip{color:var(--faint)} .tk-row .s.unpriced{color:var(--red)}
.tk-row .legs{font-family:var(--mono);font-size:12.5px;color:var(--soft);display:block;margin-top:2px}

/* the decision panel inside its tab (dash-v4 resets the hero class, so the id wins) */
#hero.hero{padding:0!important;display:block!important;gap:0!important;margin-bottom:0;border:0!important;border-radius:0!important;background:transparent!important}
#hero.hero::before{display:none}
#hero .tdec-head{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;padding:14px 16px 12px}
#hero .h-tier,#hero .h-mid .h-action{display:none}
#hero .eyebrow{margin:0;font-size:12px}
#hero .h-mid .h-action{font-size:17px;line-height:1.35;margin-bottom:0}
#hero .eyebrow{margin-bottom:6px}
.tnums{margin:0 16px!important;border-radius:8px!important}
.tnums.cap{grid-template-columns:repeat(5,1fr)}
.tnums .t{padding:10px 12px}.tnums .t b{font-size:18px}
.twhy{margin:12px 16px 16px;font-size:14px;color:var(--soft)}
.twhy .h-reason{margin-top:10px;font-size:14px;line-height:1.55}
.twhy .chips{margin-top:10px}
.twhy-nums{margin:12px 0 0!important}.twhy-nums.cap{grid-template-columns:repeat(4,1fr)}

/* board detail under positions */
.tsub{border-top:1px solid var(--line)}
.tsub>summary{list-style:none;cursor:pointer;padding:10px 16px;font-size:13px;color:var(--accent)}
.tsub>summary::-webkit-details-marker{display:none}
.tsub .card-h{border-top:1px solid var(--line)}

/* activity */
.act-list{padding:2px 16px;max-height:760px;overflow-y:auto}
.act{display:grid;grid-template-columns:44px 104px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.4}
.act:last-child{border-bottom:0}
.act .t{font-family:var(--mono);color:var(--faint)}.act .s{color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.act .m{color:var(--ink)}.act.ok .m{color:var(--green)}.act.warn .m{color:var(--amber)}.act.bad .m{color:var(--red)}.act.mut .m{color:var(--soft)}
.act .m small{color:var(--faint);font-size:12px}.act .m .d2{display:block;color:var(--soft);font-size:12.5px;margin-top:2px}

/* ── chips ── */
.tchips{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 14px}
.tchips button{font:inherit;font-size:13px;padding:7px 13px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--soft);cursor:pointer}
.tchips button:hover{border-color:var(--accent);color:var(--ink)}
.tchips button.open{background:var(--panel2);color:var(--ink);border-color:var(--accent)}
.tchips .obs{margin-left:6px}

/* ── phone: the same page as a feed (board 4) ── */
@media(max-width:1100px){.tmain{grid-template-columns:1fr}.tbook{grid-template-columns:repeat(3,minmax(0,1fr))}.tbook .k:nth-child(3n){border-right:0}.tbook .k:nth-child(-n+3){border-bottom:1px solid var(--line)}.tnums.cap{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){
  .nbot,.nchecks,.micro .m:nth-child(3),.clk{display:none}.nav{gap:8px;padding:0 10px}.brand{white-space:nowrap;font-size:14px}.micro{gap:10px}
  .tstat{flex-wrap:wrap;gap:8px 12px}.tstat-steps{order:3;flex-basis:100%;margin-left:0;overflow-x:auto}.tstat-next{margin-left:0;order:4;flex-basis:100%;white-space:normal}
  .tbook{position:sticky;top:0;z-index:5;grid-template-columns:repeat(3,minmax(0,1fr))}.tbook .k{padding:9px 10px}.tbook .k b{font-size:17px}.tbook .k small{display:none}.tbook .k:nth-child(n+4){display:none}.tbook .bar{display:none}
  .ttabs button{padding:10px 12px;font-size:13px}.ttabs-meta{display:none}
  /* the tables become cards: the name spans the row, every other cell is a labelled value */
  .ptable thead{display:none}.ptable,.ptable tbody{display:block}
  .ptable tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;padding:12px 14px;border-bottom:1px solid var(--line)}
  .ptable td,.ptable td:first-child{display:block;padding:0;border:0;text-align:left;white-space:normal;min-width:0}
  .ptable td:first-child,.ptable td[data-l="Result"]{grid-column:1/-1}.ptable td[data-l="Status"]{grid-column:1/3}
  .ptable td[data-l]::before{content:attr(data-l);display:block;font-family:var(--body);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}
  .ptable td[data-l="P&L"]{grid-column:3;text-align:right}
  .act-list{max-height:none}
  #hero .tdec-head{grid-template-columns:1fr;gap:10px}.tnums.cap,.twhy-nums.cap{grid-template-columns:repeat(2,1fr)}
}

/* ── depth (2026-09-25): the v5 layering applied to the v3 modules ── */
.tstat,.tbook,.twork,.tact{box-shadow:var(--lift)}
.tstat{background:var(--head)}
.tstat-dot.open{box-shadow:0 0 0 3px rgba(95,211,138,.18)}.tstat-dot.pre{box-shadow:0 0 0 3px rgba(242,193,78,.18)}.tstat-dot.closed{background:var(--accent);box-shadow:0 0 0 3px rgba(154,168,255,.2)}
.tstat-steps .st.next{background:var(--raise);box-shadow:var(--lift-sm)}
.tbook .k{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.015),transparent 40%)}
.tbook .k::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--line-bright)}
.tbook .k.pos::before{background:var(--green)}.tbook .k.neg::before{background:var(--red)}.tbook .k.warn::before{background:var(--amber)}.tbook .k.acc::before{background:var(--accent-grad)}
.ttabs{background:var(--head)}
.ttabs button.on{background:var(--panel);box-shadow:var(--lift-sm);border-radius:6px 6px 0 0;border-bottom-color:transparent;position:relative}
.ttabs button.on::after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent-grad)}
.tverdict{position:relative;background:var(--panel2);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);color:var(--ink);border:0;border-bottom:1px solid var(--line)}
.tverdict .tv-text{color:var(--ink)}
.tverdict::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line-bright)}
.tverdict.tier-GREEN::before{background:var(--green)}.tverdict.tier-YELLOW::before{background:var(--amber)}.tverdict.tier-ORANGE::before{background:var(--tier-orange)}.tverdict.tier-RED::before{background:var(--red)}
.tverdict.tier-GREEN{background:linear-gradient(90deg,rgba(95,211,138,.07),transparent 30%),var(--panel2)}
.tverdict.tier-YELLOW{background:linear-gradient(90deg,rgba(242,193,78,.07),transparent 30%),var(--panel2)}
.tverdict.tier-ORANGE{background:linear-gradient(90deg,rgba(245,162,90,.07),transparent 30%),var(--panel2)}
.tverdict.tier-RED{background:linear-gradient(90deg,rgba(255,123,114,.08),transparent 30%),var(--panel2)}
.ptable thead th{background:var(--head);position:sticky;top:0}
.ptable tbody tr:hover td{background:rgba(255,255,255,.025)}
.pb{box-shadow:var(--lift-sm)}
.act{transition:background .12s}.act:hover{background:rgba(255,255,255,.02)}
.plan-ev.next{background:linear-gradient(90deg,rgba(154,168,255,.08),transparent 40%)}
.plan-ready span{background:var(--raise);box-shadow:var(--lift-sm)}

/* ── 3b · VALIDATED 0-DTE STRATEGIES (its own frame, deliberately not a workspace tab) ──
   The separation is the point: a validated-but-unsized strategy must never read as an order.
   A dashed left rail and a muted frame mark it as a RECORD rather than an instruction, and the
   only group that gets the live accent is Traded. */
.tval{margin:14px 0 0;border:1px solid var(--line-soft);border-left:3px dashed var(--line-bright);
      border-radius:10px;background:var(--panel2);padding:12px 14px}
.tval-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.tval-head h2{margin:0;font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:600;letter-spacing:.01em}
.tval-count{font-size:12px;color:var(--ink-2);margin-left:auto}
.tval-cap{margin:6px 0 10px;font-size:12px;line-height:1.55;color:var(--ink-3);max-width:84ch}
.tval-cap b{color:var(--ink-2);font-weight:600}
.tval-src{display:block;margin-top:3px;font-size:11px;color:var(--ink-4,var(--ink-3))}
.tval-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tval-t{width:100%;border-collapse:collapse;font-size:12px;min-width:720px}
.tval-t th{text-align:left;font-weight:600;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;
           color:var(--ink-3);padding:5px 8px;border-bottom:1px solid var(--line-soft);white-space:nowrap}
.tval-t td{padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:top}
.tval-t th.r,.tval-t td.r{text-align:right;font-family:var(--mono);white-space:nowrap}
.tval-t tbody tr:hover td{background:rgba(255,255,255,.025)}
.tval-g td{padding:9px 8px 4px;border-bottom:1px solid var(--line-soft)}
.tval-g b{font-size:11.5px;letter-spacing:.02em}
.tval-g i{font-style:normal;color:var(--ink-3);font-size:11px;font-weight:400}
.tval-g .n{font-family:var(--mono);color:var(--ink-3);font-size:11px}
.tval-g.g-traded b{color:var(--green)}
.tval-nm{font-weight:500;color:var(--ink)}
.tval-slot{color:var(--ink-3);white-space:nowrap;font-family:var(--mono);font-size:11px}
.tval-why{color:var(--ink-3);line-height:1.45;min-width:200px}
.tval-t tr.r-traded .tval-nm{color:var(--green)}
.tval-t tr.r-traded td{background:rgba(95,211,138,.045)}
.tval-t tr.dim .tval-nm,.tval-t tr.dim .r{color:var(--ink-3)}
.tval-tier{font-family:var(--mono);font-size:11px;color:var(--ink-2)}
/* phone: the table scrolls horizontally rather than reflowing, so a row stays one strategy */
@media (max-width:760px){
  .tval{padding:10px 11px;margin-left:-2px;margin-right:-2px}
  .tval-head h2{font-size:14px}
  .tval-count{margin-left:0;flex-basis:100%}
  .tval-t{font-size:11.5px;min-width:660px}
}
