/* Halden Labs finance dashboard, the portfolio copy. Two themes on one token set: the page follows the system setting, the
   Light/Dark button overrides it and the choice is kept on the device. Secondary text at 4.5:1 or better in both. Body text
   is IBM Plex Sans in sentence case; IBM Plex Mono is kept for the brand line, the version stamp and the footer. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/ibm-plex-sans.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-mono-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/ibm-plex-mono-500.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/ibm-plex-mono-600.woff2") format("woff2")}

/* The readable version: the dark theme keeps a deep navy palette and lifts the secondary text to 4.5:1 or better; the
   light theme is the same tokens in the light. */
:root{
  --bg:#0c1222; --panel:#141c2f; --panel-2:#1b2641; --line:#283451; --ink:#eef2f8; --muted:#b9c3d3; --dim:#8c97aa;
  --accent:#7fb4f0; --accent-ink:#0b1120; --warn:#f0c97f; --shadow:none; --gate-bg:#1b2641;
  /* chart series, in order: accent, pale, mid blue, muted, dim, deep */
  --c1:#7fb4f0; --c2:#cfe0f7; --c3:#4f7fb8; --c4:#b9c3d3; --c5:#6f7b90; --c6:#3b5278;
  --font-display:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-body:"IBM Plex Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color-scheme:dark;
}
@media (prefers-color-scheme:light){
  :root:not([data-theme="dark"]){
    --bg:#f4f6fa; --panel:#ffffff; --panel-2:#eaf1fb; --line:#dde3ec; --ink:#121c2e; --muted:#4b5669; --dim:#66718a;
    --accent:#2a66c4; --accent-ink:#ffffff; --warn:#8a5a00; --shadow:0 1px 2px rgba(18,28,46,.05); --gate-bg:#eaf1fb;
    --c1:#2a66c4; --c2:#8fb8ec; --c3:#17457f; --c4:#66718a; --c5:#a9b3c2; --c6:#d3dbe7;
    color-scheme:light;
  }
}
:root[data-theme="light"]{
  --bg:#f4f6fa; --panel:#ffffff; --panel-2:#eaf1fb; --line:#dde3ec; --ink:#121c2e; --muted:#4b5669; --dim:#66718a;
  --accent:#2a66c4; --accent-ink:#ffffff; --warn:#8a5a00; --shadow:0 1px 2px rgba(18,28,46,.05); --gate-bg:#eaf1fb;
  --c1:#2a66c4; --c2:#8fb8ec; --c3:#17457f; --c4:#66718a; --c5:#a9b3c2; --c6:#d3dbe7;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100dvh}
a{color:var(--accent)}
button{font:inherit}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num,td.n,th.n,.tile .v,.stamp,.kv .v{font-variant-numeric:tabular-nums lining-nums}
h1{font-weight:600;font-size:20px;line-height:1.25;margin:0;text-wrap:balance}
h2{font-size:16px;font-weight:600;line-height:1.3;color:var(--ink);margin:30px 0 12px}
h2:first-child{margin-top:6px}
.sub{color:var(--muted);max-width:72ch;margin:0 0 12px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* the frame: a sticky sidebar on the left, a sticky header over the content, the window scrolls (the fund site's shape) */
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100dvh}
.side{position:sticky;top:0;height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--panel);border-right:1px solid var(--line);padding:18px 14px 16px;display:flex;flex-direction:column;gap:16px}
.brand{display:flex;align-items:center;gap:10px;padding:2px 6px 6px}
.brand svg{width:32px;height:32px;flex:0 0 auto;border-radius:8px}
.brand b{display:block;font-size:15px;line-height:1.2}
.brand span{display:block;font-size:12.5px;color:var(--dim)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav .group{font-size:12px;color:var(--dim);padding:14px 10px 4px}
.nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font-size:14.5px;color:var(--muted);background:transparent;border:0;border-radius:8px;padding:8px 10px;min-height:40px;cursor:pointer}
.nav button:hover{background:var(--panel-2);color:var(--ink)}
.nav button[aria-selected="true"]{background:var(--gate-bg);color:var(--accent);font-weight:600}
.side-foot{margin-top:auto;display:grid;gap:10px;padding:0 4px}
.side-note{margin:0;font-size:12.5px;color:var(--dim);line-height:1.45}
.theme-toggle,.controls .tools button,.menu-btn,#views-close{font-size:13.5px;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:7px 12px;min-height:36px;cursor:pointer}
.theme-toggle:hover,.controls .tools button:hover,.menu-btn:hover{color:var(--ink)}
.main{min-width:0}
.top{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line);padding:14px 28px 10px}
.top-row{display:flex;align-items:center;gap:12px;min-height:36px}
.top-row h1{flex:1 1 auto;min-width:0}
.menu-btn{display:none;align-items:center;gap:6px}
.menu-btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}
.top .theme-toggle{display:none}
.content{padding:18px 28px 64px;max-width:1300px}
.controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0 2px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}
.seg button{font-size:13.5px;background:transparent;color:var(--muted);border:0;border-right:1px solid var(--line);padding:7px 12px;min-height:36px;cursor:pointer}
.seg button:last-child{border-right:0}
.seg button[aria-pressed="true"]{color:var(--accent-ink);background:var(--accent);font-weight:600}
.segwrap{display:inline-flex;align-items:center;gap:8px}
.seg-label{font-size:13px;color:var(--dim)}
.sel{display:none;font:inherit;font-size:14px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 10px;min-height:38px}
.sel.show{display:inline-block}
.seg button[disabled]{color:var(--dim);opacity:.55;cursor:not-allowed}
.stepper{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel);margin-left:2px}
.stepper button{font-size:18px;line-height:1;background:transparent;color:var(--muted);border:0;border-right:1px solid var(--line);padding:0 11px;min-height:36px;min-width:36px;cursor:pointer}
.stepper button:last-child{border-right:0}
.stepper button:hover{color:var(--ink)}
.stepper button[disabled]{color:var(--dim);opacity:.45;cursor:default}
.period-note{margin:6px 0 0;font-size:12.5px;color:var(--dim);line-height:1.45;max-width:110ch}
td.cur,th.cur{background:var(--gate-bg)}
/* the periods before the forecast start: modelled history, dimmed in the picker and the tables, banded on the charts */
td.hist,th.hist{color:var(--dim)}
.seg button.hist{color:var(--dim);font-style:italic}
.controls .tools{display:flex;gap:8px}
#plan-tools{margin-left:auto}

/* phone: the bottom bar and the Views sheet */
.bottombar{display:none}
.scrim{position:fixed;inset:0;z-index:25;background:rgba(6,10,20,.45)}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--panel);border-top:1px solid var(--line);border-radius:16px 16px 0 0;max-height:82dvh;overflow-y:auto;overscroll-behavior:contain;padding:12px 14px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 6px;font-size:15px}
.sheet .nav button{min-height:46px;font-size:15.5px}

/* the Ask tab's definitions: a two-column list on a desk, one column on a phone */
.defs{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}
.def{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:4px 18px;padding:10px 14px;border-bottom:1px solid var(--line)}
.def:last-child{border-bottom:0}
.def .k{font-weight:600}
.def .k .u{color:var(--dim);font-weight:400;font-size:13px;margin-left:6px;white-space:nowrap}
.def .d{color:var(--muted);font-size:14px}

/* the stamp on every data screen */
.stamp{font-size:12.5px;color:var(--dim);line-height:1.6;margin:0 0 16px;word-break:break-word}
.stamp-more{font:inherit;font-size:12.5px;color:var(--accent);background:transparent;border:0;padding:0 4px;cursor:pointer}
.stamp-full{display:block;margin-top:2px;font-family:var(--font-display);font-size:12px}
.stamp b{color:var(--muted);font-weight:500}
.stamp .ok{color:var(--accent)}
.stamp .warn{color:var(--warn)}
.download{display:block;margin-top:8px}
.download-model{font:inherit;font-size:13px;font-weight:600;color:var(--accent);background:transparent;border:1px solid var(--line);border-radius:999px;padding:7px 12px;min-height:36px;cursor:pointer}
.download-model:disabled{opacity:.6;cursor:default}
.download-note{display:block;margin-top:4px;font-size:12.5px;color:var(--muted);font-family:var(--font-body)}
.download-note.warn{color:var(--warn)}
.stamp .download{margin-top:6px}

.view{display:none}.view.active{display:block}

/* cards and tiles */
.grid{display:grid;gap:12px}
.grid > *{min-width:0}
.mt{margin-top:12px}
.h3s{font-size:15px;margin:14px 0 6px}
.gc1{grid-column:1}.gc2{grid-column:2}.gc3{grid-column:3}.gc4{grid-column:4}
.gr1{grid-row:1}.gr2{grid-row:2}.gr3{grid-row:3}.gr4{grid-row:4}.gr5{grid-row:5}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px 14px;position:relative;min-width:0;box-shadow:var(--shadow)}
.card.gate{border:2px solid var(--accent);background:var(--gate-bg)}
.card.people{border-style:dashed}
.card h3{margin:0 0 6px;font-size:15.5px;font-weight:600;line-height:1.3;text-wrap:balance;padding-right:56px}
.card .lines{margin:0;padding:0;list-style:none;color:var(--muted);font-size:14px}
.card .lines li{margin:3px 0}
.card .chip{position:absolute;top:12px;right:12px;font-family:var(--font-display);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:4px;padding:2px 6px}
.card .lane-chip{display:none;font-size:12px;color:var(--dim);margin-bottom:6px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px 12px;min-width:0;box-shadow:var(--shadow)}
.tile.gate{border:2px solid var(--accent);background:var(--gate-bg)}
.tile .l{font-size:13.5px;color:var(--muted);line-height:1.35;min-height:36px}
.tile .v{font-size:28px;font-weight:600;line-height:1.15;margin:8px 0 4px;letter-spacing:-.01em}
.tile .v small{font-size:14px;font-weight:500;color:var(--muted);margin-left:4px}
.tile .s{font-size:13px;color:var(--dim);line-height:1.4}
.note{color:var(--dim);font-size:13.5px;margin:8px 0 0}
.note.warn{color:var(--warn)}
p.lead{color:var(--muted);margin:0 0 14px;max-width:80ch}
.pill{display:inline-block;font-family:var(--font-display);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--muted);margin-right:4px;white-space:nowrap}
.pill.judgment{border-color:var(--accent);color:var(--accent)}
.pill.placeholder{border-color:var(--warn);color:var(--warn)}
.pill.derived{border-color:var(--muted)}
.empty{border:1px dashed var(--line);border-radius:12px;padding:16px;color:var(--muted);font-size:14px;background:var(--panel)}

/* charts */
.chart-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px;min-width:0;box-shadow:var(--shadow)}
.chart-title{font-size:14.5px;font-weight:600;color:var(--ink);margin:0 0 2px}
.chart-unit{font-size:13px;color:var(--dim);margin:0 0 8px}
.chart{position:relative;height:260px}
.chart canvas{position:absolute;inset:0}

/* tables: the box scrolls sideways, the first column stays put at every width, and a fade at the right edge says there is
   more to scroll (the clip-r class, set by the page from the box's scroll position) */
.tableouter{position:relative;min-width:0}
.tableouter.clip-r::after{content:"";position:absolute;top:1px;right:1px;bottom:1px;width:40px;pointer-events:none;border-radius:0 12px 12px 0;background:linear-gradient(to right,rgba(0,0,0,0),var(--panel))}
.tablewrap{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}
.tablewrap td:first-child,.tablewrap th:first-child{position:sticky;left:0;z-index:1;background:var(--panel)}
.tablewrap th:first-child{background:var(--panel-2)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:9px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
th{font-size:12.5px;color:var(--muted);font-weight:600;white-space:nowrap;background:var(--panel-2)}
tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;white-space:nowrap}
td.u{color:var(--dim);font-size:13px;white-space:nowrap}
tr.key td{font-weight:600}
tr.key td:first-child{color:var(--ink)}
tr.sub td{color:var(--muted);padding-left:24px}
tr.head td{font-size:12.5px;font-weight:600;color:var(--dim);padding-top:16px;border-bottom:1px solid var(--line)}
tr.total td{border-top:1px solid var(--muted);font-weight:600}
td.dim{color:var(--dim)}
td.src{color:var(--muted);font-size:13px;max-width:34ch}
td.src a{word-break:break-word}
tr.detail td{color:var(--muted);font-size:13px;padding:0 12px 12px 12px;border-bottom:1px solid var(--line)}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:var(--panel-2)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
.kv .k{color:var(--muted)}
.kv .v{text-align:right}

/* filters */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 12px}
.filters input:not([type="checkbox"]),.filters select{font:inherit;font-size:14px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-height:38px}
.filters input:not([type="checkbox"]){flex:1 1 180px;min-width:0}
.filters input[type="checkbox"]{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.filters label.chk{display:inline-flex;gap:6px;align-items:center;color:var(--muted);font-size:13.5px;white-space:nowrap}
.count{font-size:13px;color:var(--dim);margin-left:auto}

/* ask */
.ask form{display:grid;gap:10px}
.ask textarea{font:inherit;font-size:16px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:14px;min-height:96px;resize:vertical;box-shadow:var(--shadow)}
.ask button.send{justify-self:start;font-size:15px;font-weight:600;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:10px 22px;min-height:44px;cursor:pointer}
.ask button.send[disabled]{background:var(--line);color:var(--dim);cursor:not-allowed}
.answer{white-space:pre-wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:12px;box-shadow:var(--shadow)}

/* the model flow (the generated fragment's classes) */
button.more{margin-top:8px;font-size:13.5px;font-weight:500;color:var(--accent);background:transparent;border:0;padding:8px 0;min-height:36px;cursor:pointer}
button.more::before{content:"+ "}
button.more[aria-expanded="true"]::before{content:"\2013  "}
.detail-list{margin:4px 0 2px;padding:10px 0 0 18px;color:var(--ink);font-size:14px;border-top:1px solid var(--line);list-style:disc}
.detail-list li{margin:4px 0}
.detail-list[hidden]{display:none}
.band{margin-top:24px;border:1px dashed var(--line);border-radius:12px;padding:16px 16px 14px;background:var(--panel)}
.band h2{margin:0 0 12px;color:var(--ink)}
.band .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13.5px;margin-top:18px}
.legend .sw{display:inline-block;width:22px;height:12px;border-radius:3px;vertical-align:middle;margin-right:6px}
.legend .sw.gate{border:2px solid var(--accent);background:var(--gate-bg)}
.legend .sw.people{border:1px dashed var(--muted)}
.foot{color:var(--dim);font-size:13.5px;margin-top:12px;max-width:110ch}
.rowtitle{font-size:14.5px;font-weight:600;margin:18px 0 8px}
.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.stage{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px 12px;position:relative;box-shadow:var(--shadow)}
.stage.gate{border:2px solid var(--accent);background:var(--gate-bg)}
.stage h3{margin:0 0 2px;font-size:15.5px;font-weight:600}
.stage .who{font-style:italic;color:var(--muted);font-size:13.5px;margin:0 0 6px}
.stage .lines{margin:0;padding:0;list-style:none;color:var(--muted);font-size:14px}
.stage .label{font-size:12.5px;color:var(--dim);margin-top:6px}
.plan-arrow{font-size:13px;color:var(--muted);text-align:right;margin:8px 4px 0}
.props{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}

footer.site{color:var(--dim);font-size:12.5px;margin-top:40px;border-top:1px solid var(--line);padding-top:14px;font-family:var(--font-display);line-height:1.6}

@media (max-width:980px){
  .app{display:block}
  .side{display:none}
  html{scroll-padding-top:150px}
  body{font-size:15.5px}
  .top{padding:10px 14px 8px}
  .top-row h1{font-size:18px}
  .menu-btn{display:inline-flex}
  .top .theme-toggle{display:inline-block}
  .content{padding:14px 14px calc(88px + env(safe-area-inset-bottom))}
  .controls{gap:8px;padding:8px 0 2px}
  .segwrap{gap:6px}
  .seg{display:none}
  .sel{display:inline-block;flex:1 1 auto;min-width:0}
  .segwrap{flex:1 1 calc(50% - 4px);min-width:0}
  #year-wrap,#trend-wrap{order:1}
  #at-wrap{flex:1 1 100%;order:2}
  #at-wrap .sel{flex:1 1 auto}
  .period-note{display:none}
  .controls .tools{margin-left:0;width:100%}
  .controls .tools button{flex:1}
  .bottombar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--panel);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .bottombar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11.5px;color:var(--muted);background:transparent;border:0;border-radius:8px;min-height:48px;padding:4px 2px;cursor:pointer}
  .bottombar button svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .bottombar button[aria-selected="true"],.bottombar button[aria-expanded="true"]{color:var(--accent);font-weight:600}
  .grid.two,.grid.three,.grid.four{grid-template-columns:1fr}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile .v{font-size:24px}
  .chart{height:220px}
  .def{grid-template-columns:1fr;gap:2px}
  .card h3{padding-right:60px}
  .band .grid4,.stages,.props{grid-template-columns:1fr}
  .plan-arrow{text-align:left}
  td.src{max-width:24ch}
}
/* row 81 (2026-11-08): every number explains itself (a tap on a tile opens the explain sheet), the personal arrival on
   Today, the Ask box's rules, and the installed app's safe area under the status bar. */
.tile[data-k]{cursor:pointer}
.tile[data-k]:hover,.tile[data-k]:focus-visible{border-color:var(--accent);outline:none}
/* the drawer (site v05i-1, register rows 100 to 102): a side panel on a desk, a tall sheet on a phone; the lines behind a
   figure and the decisions that read it are buttons that open their own drawer; a grid cell and a sensitivity row open a
   tested run; a tile with a destination reads as a link */
.sheet.explain{max-width:720px;margin:0 auto}
@media (min-width:981px){
  .sheet.explain{left:auto;right:0;top:0;bottom:0;width:min(500px,100%);max-width:none;max-height:none;margin:0;border-radius:0;border-top:0;border-left:1px solid var(--line);box-shadow:-8px 0 30px rgba(0,0,0,.22);padding:16px 20px 28px}
}
@media (max-width:980px){.sheet.explain{max-height:92dvh}}
.sheet.explain .mini{height:120px;margin-top:6px}
.sheet.explain .lines{list-style:none;margin:4px 0 0;padding:0}
.sheet.explain .lines li{margin:0;border-top:1px solid var(--line)}
.sheet.explain .lines li:first-child{border-top:0}
.sheet.explain .lines .ll{color:var(--muted);min-width:0;flex:1 1 auto}
.sheet.explain .lines .lv{font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;text-align:right}
.sheet.explain .lines.plain li{display:flex;justify-content:space-between;gap:12px;padding:6px 2px;font-size:14px}
.sheet.explain .lines li.flat{display:flex;justify-content:space-between;gap:12px;padding:7px 2px;font-size:14px}
.sheet.explain .linebtn{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;font:inherit;font-size:14px;color:var(--ink);background:transparent;border:0;padding:7px 2px;min-height:36px;cursor:pointer;border-radius:6px}
.sheet.explain .linebtn:hover,.sheet.explain .linebtn:focus-visible{background:var(--panel-2);outline:none}
.sheet.explain .linebtn .ll::after{content:" \203A";color:var(--accent)}
.sheet.explain .dim{color:var(--dim);font-size:12.5px}
.sheet.explain .go a{display:inline-block;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none}
.sheet.explain .recq{margin:4px 0 0}
.sheet.explain .recq a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.sheet.explain .ex-how{margin-top:14px;padding-top:6px;border-top:1px solid var(--line)}
.sheet.explain .ex-how .row{margin:8px 0}
.fine-link{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--accent)}
/* the three paths on Today, the lab table's sort buttons, the recommendation cards */
.paths .card.path h3{padding-right:0;font-size:15px}
.paths .card.path .v{font-size:26px;font-weight:600;letter-spacing:-.01em;margin:6px 0 4px;font-variant-numeric:tabular-nums lining-nums}
.paths .card.path .lines{margin:0;font-size:13px;color:var(--dim)}
.card.tap{cursor:pointer}
.card.tap:hover,.card.tap:focus-visible{border-color:var(--accent);outline:none}
.sortbtn{font:inherit;color:inherit;background:transparent;border:0;padding:0;cursor:pointer;text-align:inherit;font-weight:inherit}
.sortbtn:hover,.sortbtn:focus-visible{color:var(--accent);outline:none}
a.back{color:var(--accent);margin-right:6px}
a.back::before{content:"\2039 "}
.card.rec{margin-top:16px;border-left:4px solid var(--accent)}
.card.rec h3{padding-right:84px}
.card.rec .chip.draft{background:transparent;color:var(--warn);border:1px dashed var(--warn)}
.card.rec .chip.proposed{background:var(--accent);color:var(--accent-ink)}
.card.rec .chip.accepted{background:var(--ink);color:var(--bg)}
.card.rec .rec-text{margin:6px 0 8px;font-size:15px;line-height:1.5;max-width:80ch}
.card.rec .rec-more{margin:4px 0;font-size:14px;color:var(--muted);max-width:80ch}
.card.rec .rec-more b{color:var(--ink);font-weight:600}
.card.rec .fine{margin-top:8px}
td.cur .cellbtn{font-weight:600}
.card.partner .tiles{margin-top:10px}
.card.partner .tile{background:var(--bg)}
a.golink{display:inline-block;color:var(--accent);font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
table.labs td:first-child,table.labs th:first-child{white-space:nowrap}
.tile.tap{cursor:pointer}
.tile.tap:hover,.tile.tap:focus-visible{border-color:var(--accent);outline:none}
.tile[data-go] .v{font-size:22px}
td .cellbtn{font:inherit;font-variant-numeric:tabular-nums lining-nums;color:inherit;background:transparent;border:0;padding:4px 6px;margin:-4px -6px;border-radius:6px;cursor:pointer;width:calc(100% + 12px);text-align:right}
td .cellbtn:hover,td .cellbtn:focus-visible{background:var(--gate-bg);outline:none}
tr.clickable{cursor:pointer}
tr.clickable:hover td,tr.clickable:focus-visible td{background:var(--panel-2)}
tr.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.sheet.explain .sheet-body{font-size:14.5px;line-height:1.5;padding:0 2px 8px}
.sheet.explain .big{font-size:26px;font-weight:600;letter-spacing:-.01em;margin:2px 0 10px}
.sheet.explain .big small{font-size:14px;font-weight:500;color:var(--muted);margin-left:6px}
.sheet.explain .row{margin:10px 0}
.sheet.explain .row b{display:block;font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;font-weight:500;margin-bottom:2px}
.fine{font-size:12.5px;color:var(--dim);margin:8px 0 0}
.arrival{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 16px}
.arrival h2{margin:0 0 6px;font-size:20px}
.arrival p{margin:6px 0}
.arrival .borrowed a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
.arrival .borrowed a:hover{color:var(--accent)}
.arrival .path{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.arrival .path a,.arrival .path button{display:inline-block;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:8px 14px;font:inherit;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.3}
.arrival .path a.quiet,.arrival .path button.quiet{background:transparent;color:var(--accent);border:1px solid var(--line)}
.arrival .path button:disabled{opacity:.6;cursor:default}
.rules{margin:8px 0 0;font-size:14px;color:var(--muted)}
.rules summary{cursor:pointer;color:var(--accent)}
/* the model's method notes, collapsed under a section (v05g-13) */
.how{margin:8px 0 0;font-size:13.5px;color:var(--muted)}
.how summary{cursor:pointer;color:var(--accent);width:max-content;max-width:100%}
.how p{margin:6px 0 0;max-width:90ch;line-height:1.5}
.rules ul{margin:6px 0 0 18px;padding:0}
.rules li{margin:3px 0}
/* the system map (register row 91, 2026-11-09): four parts side by side on a wide screen, stacked on a phone; the flow
   lines point down a part and on to the next part; designed and company's cards by border and chip */
.sysmap .parts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
.sysmap .part{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.sysmap .part-title{margin:0;font-size:16px;line-height:1.3}
.sysmap .part-sub{margin:2px 0 10px;color:var(--muted);font-size:13.5px}
.sysmap .part .card{margin:0 0 10px}
.sysmap .flow{margin:-2px 0 10px;padding:0 4px;color:var(--dim);font-size:12.5px;line-height:1.4}
.sysmap .flow::before{content:"\2193  "}
.sysmap .flow.next{margin:2px 0 0;color:var(--muted)}
.sysmap .flow.next::before{content:"\2192  "}
.card.designed{border-style:dotted}
.card.company{border-style:dashed}
.card.designed .chip,.card.company .chip{background:transparent;color:var(--muted);border:1px dotted var(--muted);padding:1px 6px}
.card.designed h3{padding-right:84px}
.card.company h3{padding-right:92px}
.card.company .chip{border-style:dashed}
.card .label{font-size:12.5px;color:var(--dim);margin-top:6px}
.sysmap .cadence{color:var(--muted);font-size:13.5px;margin:14px 0 0;max-width:110ch;line-height:1.5}
.legend .sw.live{border:1px solid var(--ink)}
.legend .sw.designed{border:1px dotted var(--muted)}
.legend .sw.company{border:1px dashed var(--muted)}
@media (max-width:980px){
  .sysmap .parts{grid-template-columns:1fr}
  .sysmap .flow.next::before{content:"\2193  "}
}
@media (display-mode:standalone){.top{padding-top:calc(14px + env(safe-area-inset-top))}}
@media (prefers-reduced-motion:reduce){*{transition:none !important}}
/* the Ask box, scored, and the MCP server (register row 82, How it is built) */
.evals{margin-top:34px;padding-top:6px;border-top:1px solid var(--line)}
.evals-score{display:flex;align-items:baseline;gap:10px;margin:4px 0 2px}
.evals-score .big{font-size:30px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.evals-score .lbl{color:var(--muted);font-size:14px}
.evals-line a{color:var(--accent)}
.pill.pass{border-color:var(--accent);color:var(--accent)}
.pill.fail{border-color:var(--warn);color:var(--warn)}
.evals .warn{color:var(--warn)}
.evals .answer{margin-top:8px;font-size:13.5px;color:var(--ink)}
ul.plain{margin:0 0 14px 18px;padding:0;color:var(--muted);max-width:80ch}
ul.plain li{margin:4px 0}
.evals code,.evals pre.cmd{font-family:var(--font-display);font-size:12.5px}
.mcp-tools .tool-roles{display:block;margin-top:3px;color:var(--dim);font-size:12.5px}
.evals pre.cmd{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0 0;color:var(--ink)}
.evals-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}
.evals-list li{border-bottom:1px solid var(--line)}
.evals-list li:last-child{border-bottom:0}
.evals-item{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:10px 14px;cursor:pointer}
.evals-item:hover,.evals-item:focus-visible{background:var(--panel-2)}
.evals-item .qe{min-width:0;flex:1 1 auto}
.evals-item .q{color:var(--ink)}
.evals-item .exp{color:var(--muted);font-size:13px;margin-top:3px;overflow-wrap:anywhere}
.evals-item .pill{flex:0 0 auto;margin:2px 0 0}
.evals-detail{padding:0 14px 12px;color:var(--muted);font-size:13px}

/* the portfolio copy: the Portfolio link in the sidebar's foot, the fiction line on every screen, the contact button in the
   place of the workbook download, the test set's category pill, the recorded MCP exchanges */
.signout{display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap;font-size:13.5px;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:7px 12px;min-height:36px;text-decoration:none;cursor:pointer}
.signout:hover{color:var(--ink)}
.sheet-foot{display:flex;align-items:center;gap:12px;padding:12px 16px 20px;border-top:1px solid var(--line)}
.sheet-foot .side-note{flex:1 1 auto;min-width:0}
.sheet-foot .signout{margin-left:auto;min-height:44px;padding:9px 16px;font-size:15px}
.fiction{margin:4px 0 0;font-size:12.5px;color:var(--dim);line-height:1.4}
.content > .fiction{margin:0 0 10px}
a.download-model{display:inline-block;text-decoration:none;line-height:1.3}
a.download-model:hover{background:var(--panel-2)}
.pill.cat{background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}
.mcp-ex{margin:14px 0 18px}
.mcp-ex h4{margin:0 0 4px;font-size:14px;font-weight:600}
.mcp-ex pre.cmd{white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}
.mcp-ex pre.cmd.reply{border-left:3px solid var(--accent)}
