/* Layout A: the board's type and color tokens, ledger rows separated by hairlines. */
.bots-page [hidden] { display: none !important; }
.bots-header { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; padding: 8px 16px; border-bottom: 1px solid var(--border); }
.bots-header a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; font-family: var(--display); font-size: calc(21px * var(--type-scale)); font-weight: 700; }
.privacy-label { color: var(--muted); font-size: var(--fs-small); }
.bots-header button { margin-left: auto; }
.bots-page #bots-main { display: block; width: 100%; max-width: 1280px; margin: 0 auto; padding: 20px 16px 48px; }
.bots-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.bots-page h1 { margin: 0; font: 700 calc(36px * var(--type-scale))/1.15 var(--display); }
.bots-page h2 { margin: 24px 0 12px; font: 700 calc(26px * var(--type-scale))/1.25 var(--display); }
.bots-page h2 small { display: inline; margin-left: 8px; font-family: var(--font); font-weight: 400; }
.bots-page p { margin: 10px 0; overflow-wrap: anywhere; }
.intro, #load-status, .paper-note, .method { color: var(--muted); }
#warnings { color: var(--nearby); }
.bot-tabs { position: sticky; top: 0; z-index: 5; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin: 22px 0 16px; border-bottom: 1px solid var(--border); background: var(--border); }
.bot-tabs button { min-width: 0; min-height: 64px; border: 0; border-radius: 0; padding: 10px 4px; background: var(--canvas); overflow-wrap: anywhere; }
.bot-tabs button span { display: block; margin-top: 3px; font: 600 calc(15px * var(--type-scale))/1.2 var(--display); letter-spacing: .05em; }
.bot-tabs button[aria-selected="true"] { background: var(--text); color: var(--canvas); font-weight: 700; }
.ledger-summary { border-left: 3px solid var(--muted); padding: 2px 12px; margin: 16px 0 24px; }
.ledger-summary:empty { display: none; }
.shadow-comparison-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.shadow-test { border-top: 1px solid var(--border); }
.shadow-index { margin: 0; padding-left: 18px; }
.shadow-index li { margin: 4px 0; overflow-wrap: anywhere; }
.shadow-group { margin-top: 28px; }
.shadow-daily { padding: 10px 0; border-top: 1px solid var(--border); }
.ledger-summary p { margin: 6px 0; }
.money, .ledger-facts dd, .position h3, .usage { font-family: var(--display); font-variant-numeric: tabular-nums; }
.money, .usage { font-weight: 600; font-size: calc(18px * var(--type-scale)); }
.ledger-summary .meta { color: var(--muted); }
.position { padding: 16px 0; border-top: 1px solid var(--border); }
.position:last-child { border-bottom: 1px solid var(--border); }
.position h3 { margin: 0; font-size: calc(21px * var(--type-scale)); line-height: 1.3; overflow-wrap: anywhere; }
.position-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.position-heading p { color: var(--muted); margin: 0; }
.ledger-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 20px; margin: 14px 0; }
.ledger-facts div { min-width: 0; }
.ledger-facts dt { color: var(--muted); font-size: var(--fs-small); }
.ledger-facts dd { margin: 2px 0 0; font-size: calc(18px * var(--type-scale)); overflow-wrap: anywhere; }
.pnl-line { margin: 6px 0; }
.method { margin-top: 28px !important; border-top: 1px solid var(--border); padding-top: 16px; font-size: var(--fs-small); }
.paper-history-heading { margin-top: 36px !important; }
.older-positions > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; }
@media (max-width: 600px) {
  .bots-page #bots-main { padding: 16px 12px 36px; }
  .bots-header { gap: 4px 12px; padding: 8px 12px; }
  .privacy-label { flex-basis: 100%; order: 3; }
  .ledger-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
  .bot-tabs button { font-size: 14px; }
}
.bot-tabs a {display:flex;align-items:center;justify-content:center;min-width:44px;min-height:64px;padding:4px;text-align:center;background:var(--canvas);overflow-wrap:anywhere;}
.status-chips {display:flex;flex-wrap:wrap;gap:6px;margin:12px 0;}
.status-chip {border:1px solid currentColor;padding:4px 8px;font-size:var(--fs-small);overflow-wrap:anywhere;}
.real {color:var(--wet);border-color:var(--wet);}
.paper {color:var(--approaching);border-color:var(--approaching);}
.hypothetical {color:var(--nearby);border-color:var(--nearby);}
.unknown {color:var(--muted);}
.unknown .money, .unknown .pos, .unknown .neg, .unknown .pnl-line {color:var(--muted);}
.healthy {color:var(--pos);}
.rules {display:grid;grid-template-columns:minmax(130px,1fr) 3fr;gap:8px 16px;max-width:900px;}
.rules dt,.definitions dt {font-weight:700;}
.rules dd,.definitions dd {margin:0;overflow-wrap:anywhere;}
.bot-guide {border-top:1px solid var(--border);padding:12px 0;}
#overview > div {border-left:3px solid;padding:4px 12px;margin:12px 0;}
.bots-page summary {min-height:44px;padding:10px 0;cursor:pointer;}
.experiment-table {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.bots-page a[href="#definitions"] {display:inline-flex;min-height:44px;align-items:center;}
@media(max-width:700px){.rules{grid-template-columns:1fr;gap:4px}.rules dd{margin-bottom:10px}.experiment-table{grid-template-columns:1fr}.bot-tabs a{font-size:12px}}
.table-scroll {max-width:100%;overflow-x:auto;margin:16px 0;}
.bots-page table {width:100%;border-collapse:collapse;font-size:var(--fs-small);}
.bots-page th,.bots-page td {text-align:left;vertical-align:top;padding:10px;border-bottom:1px solid var(--border);min-width:105px;}
.bots-page th:first-child {min-width:180px;}
@media(max-width:600px){.bot-tabs button,.bot-tabs a{font:600 13px/1.2 var(--display);padding:8px 2px;}}

/* Bots owns its width; the weather board's main > * tile cap does not apply. */
.bots-page #bots-main > * { max-width: none; min-width: 0; }
.bots-page #bots-main { max-width: 1280px; }
.bots-page .bot-panel, .bots-page #retired { width: 100%; }
.bots-page :is(section, details, article, td, th) { overflow-wrap: anywhere; min-width: 0; }
.bots-page :is([id], h2, h3) { scroll-margin-top: calc(var(--bot-tabs-height, 72px) + 16px); }
.bot-tabs { top: 0; background: var(--canvas); isolation: isolate; }
.bots-page #live-card { border: 1px solid var(--border); border-top: 4px solid var(--wet); padding: 16px; margin-top: 20px; background: var(--raised); }
#live-card h2 { margin: 0 0 12px; font-size: var(--fs); color: var(--muted); }
#overview .live-state { font-weight: 700; font-size: calc(22px * var(--type-scale)); margin-top: 0; }
#overview > div { border: 0; padding: 0; margin: 0; }
#overview .open-bets { padding: 0; list-style: none; }
.open-bets li { padding: 8px 0; border-bottom: 1px solid var(--border); font-variant-numeric: tabular-nums; }
.fault, #warnings { color: var(--neg); }
.fault { font-weight: 700; }
.halt-line { margin: 12px 0; padding-top: 12px; border-top: 1px solid var(--border); }
.halt-line > span { font-weight: 700; }
.overview-secondary { border-top: 1px solid var(--border) !important; padding-top: 12px !important; }
.bots-page #at-glance { border: 0; padding: 0; }
.bots-page .strategy-table { table-layout: fixed; }
.bots-page .strategy-table th:first-child { width: 23%; }
.bots-page .strategy-table th:nth-child(2) { width: 34%; }
.bots-page .strategy-table th:nth-child(3) { width: 33%; }
.bots-page .strategy-table th:last-child { width: 10%; }
.bots-page .strategy-table :is(th,td) { min-width: 0; }
.bots-page .strategy-table .money { font-size: var(--fs); }
.status-chip { display: inline-block; max-width: 100%; }
@media (min-width:1100px) {
  #overview { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 32px; }
  #overview .overview-secondary { border-top: 0 !important; border-left: 1px solid var(--border); padding: 0 0 0 24px !important; }
  #overview .overview-secondary h3 { margin-top: 0; }
  #panel-real { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
}
@media (max-width:700px) {
  .bots-page #live-card { padding: 12px; }
  .bots-page .table-scroll { overflow: visible; }
  .bots-page .table-scroll table, .bots-page .table-scroll tbody { display: block; width: 100%; }
  .bots-page .table-scroll thead { display: none; }
  .bots-page .table-scroll tr { display: block; margin: 12px 0; border: 1px solid var(--border); padding: 12px; background: var(--raised); }
  .bots-page .table-scroll :is(th,td) { display: block; width: 100% !important; min-width: 0; border: 0; padding: 4px 0; }
  .bots-page .strategy-table th { font-size: var(--fs); }
  .bots-page .table-scroll table:not(.strategy-table) td::before { content: attr(data-label) ': '; font-weight: 700; }
  .shadow-comparison-row { grid-template-columns: 1fr; }
}
/* 2026-10-20 cleanup: each real-money bot is its own block; paper sits apart under its own heading. */
.bots-page .money-group { margin: 0 0 8px; font: 700 calc(15px * var(--type-scale))/1.2 var(--display); letter-spacing: .06em; text-transform: uppercase; color: var(--wet); }
#at-glance .money-group:not(:first-child) { margin-top: 24px; color: var(--approaching); }
#overview .money-bot { padding: 10px 0 12px; border-bottom: 1px solid var(--border); }
#overview .money-bot .live-state { font-size: calc(20px * var(--type-scale)); }
#overview .money-total { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--wet); }
#overview .money-total p { margin: 4px 0; }
.unknown-cost { font-size: var(--fs-small); border-left: 3px solid var(--muted); padding-left: 8px; }
#retired-list > summary { display: flex; align-items: center; min-height: 44px; }
#retired-list > summary h2 { display: inline; margin: 0; }
/* A short tab (Paper) still scrolls to sit under the sticky tab bar now that Retired is collapsed. */
.bots-page .bot-panel { min-height: calc(100vh - var(--bot-tabs-height, 72px) - 24px); }
