/* Generated by site/theme/build_theme.py from world/brand/theme.md (Treeline). Do not edit. */
:root{
  --bg:#F5F7FB;
  --surface:#FDFDFF;
  --border:#E0DACE;
  --line:#9A8861;
  --text:#151F3E;
  --heading:#086313;
  --muted:#634B08;
  --hue:#4967D4;
  --on-hue:#FDFDFF;
  --ink:#4967D4;
  --sea:#253463;
  --on-sea:#FDFDFF;
  --focus:#253463;
  --success:#008226;
  --warn:#926700;
  --danger:#632335;
  --on-status:#FDFDFF;
  --pos:#008226;
  --neg:#632335;
  --sun:#F6B83D;
  --on-sun:#151F3E;
  --sun-ink:#B58100;
  --deep:#086313;
  --on-deep:#FDFDFF;
  --deep-2:#253463;
  --bar:#086313;
  --hue-bar:#88A7FF;
  --on-hue-bar:#151F3E;
  --c1:#3D56AC;
  --c2:#2C8731;
  --c3:#4593D9;
  --c4:#AC3A5C;
  --c5:#E2A520;
  --c6:#865911;
  --s1:#E7F2E6;
  --s2:#C3DAC2;
  --s3:#A1C19F;
  --s4:#7EA97D;
  --s5:#5C925C;
  --s6:#397A3A;
  --s7:#086313;
  --d1:#425CB2;
  --d2:#7B93D3;
  --d3:#B9C7E9;
  --d4:#EDEEF3;
  --d5:#E0C394;
  --d6:#BF8B1F;
  --d7:#815C0A;
  --f-display:'Bricolage Grotesque','Arial Narrow',system-ui,sans-serif;
  --f-body:'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
:root:not([data-theme="light"]){
  --bg:#080D1D;
  --surface:#10172C;
  --border:#272F47;
  --line:#7F662A;
  --text:#ECEEF4;
  --heading:#ECEEF4;
  --muted:#A88E53;
  --hue:#678AFA;
  --on-hue:#080D1D;
  --ink:#678AFA;
  --sea:#BDCAEC;
  --on-sea:#080D1D;
  --focus:#678AFA;
  --success:#4BB859;
  --warn:#F6B83D;
  --danger:#BC7383;
  --on-status:#080D1D;
  --pos:#4BB859;
  --neg:#BC7383;
  --on-sun:#080D1D;
  --sun-ink:#F6B83D;
  --c1:#506DCC;
  --c2:#3D9640;
  --c3:#5197D8;
  --c4:#C04D6D;
  --c5:#BF8800;
  --c6:#895B16;
  color-scheme:dark;
}
}
:root[data-theme="dark"]{
  --bg:#080D1D;
  --surface:#10172C;
  --border:#272F47;
  --line:#7F662A;
  --text:#ECEEF4;
  --heading:#ECEEF4;
  --muted:#A88E53;
  --hue:#678AFA;
  --on-hue:#080D1D;
  --ink:#678AFA;
  --sea:#BDCAEC;
  --on-sea:#080D1D;
  --focus:#678AFA;
  --success:#4BB859;
  --warn:#F6B83D;
  --danger:#BC7383;
  --on-status:#080D1D;
  --pos:#4BB859;
  --neg:#BC7383;
  --on-sun:#080D1D;
  --sun-ink:#F6B83D;
  --c1:#506DCC;
  --c2:#3D9640;
  --c3:#5197D8;
  --c4:#C04D6D;
  --c5:#BF8800;
  --c6:#895B16;
  color-scheme:dark;
}
:root[data-theme="light"]{color-scheme:light}
/* Treeline role overrides (tokens only, world/brand/theme.md): Forest header bar, Navy banner, Forest dark blocks, Sun highlights, control borders on --line */
.hdr{--surface:var(--bar);--bg:var(--deep);--text:var(--on-deep);--border:var(--bar);--hue:var(--hue-bar);--on-hue:var(--on-hue-bar);--ink:var(--on-deep);--muted:var(--on-deep)}
.mk,.tile.hi,.hero .state{--hue:var(--deep);--on-hue:var(--on-deep)}
.banner{--hue:var(--deep-2);--on-hue:var(--on-deep)}
mark,.bigfig{--hue:var(--sun);--on-hue:var(--on-sun)}
.chip,.src,.fbtn,.btn.ghost,.pill.ln,.inp{--border:var(--line)}
/* Components (token-only). Grown from site/mockup/build_mockup.py; layout grammar of docs/reference/site-pages.md §3.2. */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;overflow-x:hidden}
body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.6 var(--f-body);overflow-x:hidden}
a{color:var(--ink);font-weight:400;text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover,a:focus-visible{text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
h1,h2,h3,h4,p,ul,ol,dl,figure{margin:0}
ul.plain,ol.plain{padding:0;list-style:none}
.num,.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;z-index:50;background:var(--surface);padding:8px}

/* header (S1 S7 S8 S9 S10; S30 sizes from colours-v3-treeline.html; S33 one row: mark, nav, Find, Ask B, Claude, Help, theme) */
.hdr{position:sticky;top:0;z-index:20;background:var(--surface);color:var(--text);border-bottom:1px solid var(--border)}
.hdr-in{margin:0;padding:6px 16px;display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;position:relative}
/* the header wordmark (David, 11 Oct 10:25): the mark's B and Sun dot with no tile, 26px cap height, then "brain" in
   Public Sans 500 19px (its b is about 55% of the B), 3px after the B, both on one baseline (the svg's foot) */
.lock{display:inline-flex;align-items:baseline;gap:3px;text-decoration:none;flex:none;color:var(--on-deep);padding:2px 0}
.lock:hover,.lock:focus-visible{text-decoration:none}
.lock .wm-b{width:25.3px;height:28.7px;display:block;flex:none}
.lock-w{font:500 19px/1 var(--f-body);letter-spacing:-.015em;color:var(--on-deep)}
@media (max-width:439px){.lock-w{display:none}}  /* below 440px the row holds the B and dot alone */
.mk{width:36px;height:36px;display:block}
.mk rect{fill:var(--deep)}
.mk g{fill:var(--on-hue);stroke:var(--on-hue)}
.mk circle{fill:var(--sun)}
.lock .mk{width:30px;height:30px;display:block}
.hdr nav{order:5;flex:1 1 100%;min-width:0}
.hdr .tools{margin-left:0}
@media (min-width:1180px){.hdr nav{order:0;flex:1 1 auto}}
.hdr nav>ul{display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0;list-style:none}
.hdr nav li{position:relative}
.hdr nav a{display:block;padding:6px 6px;border-radius:6px;color:var(--text);font-weight:400;font-size:13px;text-decoration:none;white-space:nowrap}
.hdr nav a:hover,.hdr nav a:focus-visible{background:var(--bg);text-decoration:none}
.hdr nav .cur>a{box-shadow:inset 0 -3px 0 var(--hue-bar);border-radius:0}
.hdr nav .gh::after{content:"";display:inline-block;margin-left:5px;width:6px;height:6px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:translateY(-3px) rotate(45deg);opacity:.75}
.hdr nav .grp>ul{display:none;position:absolute;left:0;top:100%;z-index:30;min-width:220px;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgb(0 0 0 / .25)}
.hdr nav .grp:hover>ul,.hdr nav .grp:focus-within>ul,.hdr nav .grp.open>ul{display:block}
/* S33 one row at 1180: on the wide bar the groups carry no chevron (as the specimen draws them; aria-haspopup stays) */
@media (min-width:861px) and (hover:hover),(min-width:1180px){.hdr nav .gh::after{display:none}}
/* S34 wide touch screens (an iPad 11-inch in landscape is 1180px): the labelled nav, a tap opens a group and a second
   tap or a tap outside closes it (nav.js); hover and focus do not open it there, so the second tap can close it */
@media (hover:none) and (min-width:1180px){.hdr.jsnav nav .grp:not(.open)>ul{display:none}}
.menu-t{display:none;align-items:center;gap:6px;height:38px;padding:0 10px;border-radius:8px;border:0;background:transparent;color:var(--text);font:600 14px/1 var(--f-body);cursor:pointer}
.menu-t svg{width:20px;height:20px}
.tools{display:flex;align-items:center;gap:4px;flex:none}
.btn{display:inline-flex;align-items:center;gap:8px;font:600 14px/1 var(--f-body);background:var(--sea);color:var(--on-sea);border:0;border-radius:8px;padding:10px 14px;cursor:pointer;text-decoration:none}
/* S32 Ask B and Claude as logo tiles (David 09:45): 28px tiles in the same 38px button as Help and theme; the Ask B
   tile is the mark with its Chalk rim (marks.ask_mark_svg), the Claude tile clay with a white burst */
.hdr .ico.ask svg,.hdr .ico.claude svg{width:28px;height:28px}
.hdr .ico:hover{background:color-mix(in srgb,var(--on-deep) 12%,var(--bar))}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}
.ico{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;border:0;background:transparent;color:var(--text);cursor:pointer;text-decoration:none;padding:0;font:600 13px/1 var(--f-body)}
.ico:hover{background:var(--bg)}
.ico svg{width:22px;height:22px;display:block}
.ico.txt{width:auto;padding:0 10px;gap:6px}
.theme-t .ic-dark,.theme-t .ic-light{display:none}
:root[data-theme="dark"] .theme-t .ic-light,:root[data-theme="light"] .theme-t .ic-dark{display:block}
:root:not([data-theme]) .theme-t .ic-auto{display:block}
.theme-t .ic-auto{display:none}
@media (max-width:860px){.ico.txt .lbl{display:none}}
/* S16, S34 the Menu button: under 861px, and on touch screens under 1180px; it opens the groups as a full-width
   tap-to-expand list (nav.js). A touch screen 1180px and wider keeps the labelled nav on the one header row */
@media (max-width:860px),(hover:none) and (max-width:1179px){
.menu-t{display:inline-flex;padding:0 8px}
.hdr-in{column-gap:8px}
.tools{gap:4px}
.hdr nav{order:4;flex-basis:100%}
.hdr.jsnav:not(.open) nav{display:none}
.hdr nav>ul{flex-direction:column;flex-wrap:nowrap;gap:0;padding:4px 0 8px}
.hdr nav a{padding:12px 8px;font-size:15px;border-radius:0;border-top:1px solid color-mix(in srgb,var(--on-deep) 18%,transparent)}
.hdr nav .grp>ul,.hdr nav .grp:hover>ul,.hdr nav .grp:focus-within>ul{display:none;position:static;box-shadow:none;border:0;border-radius:0;background:transparent;padding:0 0 0 16px;min-width:0}
.hdr nav .grp.open>ul,.hdr:not(.jsnav) nav .grp>ul{display:block}
.hdr nav .grp.open>.gh::after{transform:translateY(1px) rotate(-135deg)}
.hdr nav .cur>a{box-shadow:inset 3px 0 0 var(--hue-bar)}
}
/* One header row down to 360px: mark 30, Menu 79, Find 38, four 38px icons, gaps 4/4px = 323 of 328 */
@media (max-width:400px){.hdr-in{column-gap:4px}}
.banner{background:var(--deep-2);color:var(--on-deep)}
/* S35: one thin line, "Data as of Fri 9 Oct 2026 · CRM 6 Oct · ...": one line at 1180px, wraps only on phones */
.banner-in{margin:0;padding:5px 16px;display:flex;gap:2px .5em;flex-wrap:wrap;align-items:baseline;font-size:13px;line-height:1.5}
.banner b{font-weight:600}
.banner .bn-src{display:contents}
.banner .bn-s{font-size:12px;color:color-mix(in srgb,var(--on-deep) 75%,var(--deep-2))}
.banner .bn-s,.banner .bn-asof{white-space:nowrap}
.crumbs{margin:0;padding:10px 16px 0;font-size:13px;color:var(--muted)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}
.crumbs li+li::before{content:"/";margin-right:4px;color:var(--line)}
.crumbs a{font-weight:400}

/* page and layout grammar */
.page{margin:0;padding:16px 16px 64px;display:grid;gap:16px}
.page>*{min-width:0}
.ptitle{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.ptitle h1{font:800 clamp(1.8rem,4.4vw,2.7rem)/1.04 var(--f-display);letter-spacing:-.035em;color:var(--heading);text-wrap:balance}
.ptitle .sub{color:var(--muted);font-size:14px}
.sec{display:grid;gap:12px;min-width:0}
.sec>h2{font:700 clamp(1.15rem,2.2vw,1.35rem)/1.2 var(--f-display);letter-spacing:-.02em;color:var(--heading)}
.sec>.note{margin-top:-6px}
/* page grid: world/brand/theme.md Layout L1-L10, as the Treeline layout panel draws it */
.pg{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;align-items:stretch;min-width:0}
.pg>*{min-width:0}
.pg>.blk,.pg>.stack{grid-column:span var(--tr,2)}
.pg>.sec-h,.pg>.sec-n{grid-column:1 / -1}
.pg>.sec-h{font:700 clamp(1.15rem,2.2vw,1.35rem)/1.2 var(--f-display);letter-spacing:-.02em;color:var(--heading);margin-top:8px}
.pg>.sec-n{margin-top:-10px}
@media (min-width:1600px){.pg{display:flex;flex-wrap:wrap;--n:4}
  .pg>.blk,.pg>.stack{flex:1 1 calc((100% - (var(--n) - 1) * 16px) / var(--n) * var(--sp) + (var(--sp) - 1) * 16px);
    max-width:calc((100% - (var(--n) - 1) * 16px) / var(--n) * 3 + 32px)}
  .pg>.sec-h,.pg>.sec-n{flex:0 0 100%}
  .pg>[data-full]{flex:0 0 100%;max-width:100%}}
@media (min-width:2100px){.pg{--n:5}}
@media (max-width:1099px){.pg{grid-template-columns:repeat(2,minmax(0,1fr))}.pg>.blk,.pg>.stack{grid-column:span 1}
  .pg>[data-span="2"],.pg>[data-span="3"],.pg>.alone{grid-column:span 2}}
@media (max-width:699px){.pg{grid-template-columns:minmax(0,1fr)}.pg>[data-span]{grid-column:1 / -1}}
.note{font-size:12.5px;color:var(--muted);font-style:italic}
.filt{display:flex;gap:8px;align-items:center}
.inp{font:400 14px var(--f-body);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-width:0;width:min(100%,360px)}
.foot{margin:0;padding:0 16px 40px;font-size:12.5px;color:var(--muted)}

/* block card */
.blk{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0;position:relative}
.blk.bare{background:transparent;border:0;padding:0}
.bh{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.bh h3{font:700 16px/1.2 var(--f-display);margin-right:auto;color:var(--heading)}
.bh h3 a{color:var(--ink)}
.bb{min-width:0;display:grid;gap:10px;align-content:start}
.clamp .bb{max-height:calc(var(--rs,1) * 300px);overflow:hidden;position:relative}
.clamp.open .bb{max-height:none}
.clamp:not(.open) .bb.over::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(transparent,var(--surface))}
.more{align-self:flex-start;font:600 12.5px/1 var(--f-body);color:var(--muted);background:none;border:0;padding:2px 0;cursor:pointer}
.bf{margin-top:auto;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12px;color:var(--muted)}
.bf .mf{margin-left:auto;font-weight:500;font-size:12px}
.src{font:500 10.5px/1 var(--f-mono);letter-spacing:.02em;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:3px 6px;white-space:nowrap}
.src.ai{color:var(--on-sea);background:var(--sea);border-color:var(--sea)}
.asof{font:400 11.5px var(--f-mono);color:var(--muted)}
.pending{border:1px dashed var(--line);border-radius:8px;padding:12px 14px;color:var(--muted);font-size:13.5px;background:var(--bg)}
.pending b{color:var(--text);display:block;font-weight:600;margin-bottom:2px}
.pending.quiet{border-style:dotted;background:transparent;padding:8px 12px;font-size:13px}
.pending.quiet b{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.blk-missing{border:2px dashed var(--danger);border-radius:8px;padding:12px;display:grid;gap:4px;color:var(--text)}
.lab{font:600 11px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
mark{background:var(--sun);color:var(--on-sun);font-weight:600;padding:1px 6px;border-radius:4px}
.pill{display:inline-block;font:600 11.5px/1 var(--f-body);padding:5px 9px;border-radius:999px;white-space:nowrap;background:var(--border);color:var(--text)}
.pill.su{background:var(--success);color:var(--on-status)}
.pill.wa{background:var(--warn);color:var(--on-status)}
.pill.da{background:var(--danger);color:var(--on-status)}
.pill.ln{background:transparent;border:1px solid var(--border);color:var(--muted)}
.chip{display:inline-block;font:500 11px/1 var(--f-mono);border:1px solid var(--line);border-radius:4px;padding:4px 6px;color:var(--text);background:transparent;white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chipgrp{display:grid;gap:6px}

/* basic blocks */
.mstrip{display:flex;flex-wrap:wrap;gap:10px 28px}
.mstrip>div{display:grid;gap:1px;min-width:90px}
.mstrip .k{font:600 10.5px/1.2 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mstrip .v{font:500 clamp(1.2rem,2.4vw,1.5rem)/1.1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.mstrip .n{font-size:12px;color:var(--muted)}
.prose{display:grid;gap:8px;font-size:14.5px}
.prose .sum{font-size:15px;line-height:1.6}
.prose ul,.md ul{margin:0;padding-left:20px}
.prose li+li,.md li+li{margin-top:3px}
.md{display:grid;gap:8px;font-size:14.5px}
.md h1,.md h2,.md h3,.md h4{font-family:var(--f-display);color:var(--heading);letter-spacing:-.015em}
.md h1{font-size:1.5rem}.md h2{font-size:1.25rem}.md h3{font-size:1.08rem}
.md pre{overflow-x:auto;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;font:400 12.5px/1.5 var(--f-mono)}
.list{display:grid;gap:0;margin:0;padding:0;list-style:none;font-size:14px}
.list>li{padding:8px 0;border-top:1px solid var(--border);display:grid;gap:2px}
.list>li:first-child{border-top:0;padding-top:0}
.list span.t{font-weight:600}
.meta{font-size:12.5px;color:var(--muted)}
.date{font:400 12px var(--f-mono);color:var(--muted);white-space:nowrap}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{text-align:left;padding:6px 10px 6px 0;border-top:1px solid var(--border);vertical-align:top}
thead th{border-top:0;font:600 10.5px/1.2 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
td.r,th.r{text-align:right}
td.r{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.split{display:grid;gap:6px}
.split+.split{padding-top:10px;border-top:1px solid var(--border)}
.ailab{display:inline-block;font:600 10.5px/1 var(--f-body);letter-spacing:.09em;text-transform:uppercase;background:var(--sea);color:var(--on-sea);padding:4px 7px;border-radius:4px;justify-self:start}
.status{font:700 1.05rem var(--f-display)}
.st-good{color:var(--pos)}.st-bad{color:var(--neg)}.st-warn{color:var(--warn)}
.ns{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;font-size:14px;align-items:baseline}
.ns dt{font:600 10.5px/1.6 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ns dd{margin:0}
.turns,.msgs,.trail{display:grid;gap:0;margin:0;padding:0;list-style:none}
.turns>li,.msgs>li,.trail>li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:4px 12px;padding:10px 0;border-top:1px solid var(--border)}
.turns>li:first-child,.msgs>li:first-child,.trail>li:first-child{border-top:0}
.turns .who,.msgs .who,.trail .who{font-weight:600;font-size:13.5px}
.msgs .body,.trail .body,.turns .body{white-space:pre-wrap;font-size:14px}
.fold>summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:13px;margin-top:6px}

/* hero */
.hero{display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr);align-items:center}
.hero .av,.hero .lg.hero-av{width:64px;height:64px}
.hero .lg.hero-av{border-radius:14px}
.hero-blank{display:inline-grid;place-items:center;background:var(--sea);color:var(--on-sea);font:800 1.6rem var(--f-display)}
.hero .meta{margin-top:4px;color:var(--muted)}
.hero-sum{margin-top:6px;color:var(--text)}
.hero h1{font:800 clamp(1.9rem,4.6vw,2.9rem)/1.02 var(--f-display);letter-spacing:-.04em;color:var(--heading);text-wrap:balance}
.hero .kind{font:500 1.05rem var(--f-display);color:var(--muted)}
.hero .state{font:700 1rem var(--f-display);background:var(--deep);color:var(--on-deep);padding:3px 10px;border-radius:5px}
.hero .top{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.pills{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-top:6px}
.bigfig{font:500 clamp(1.4rem,3vw,2rem)/1 var(--f-mono);background:var(--sun);color:var(--on-sun);padding:5px 10px;border-radius:6px;font-variant-numeric:tabular-nums}

/* people rows (S2): logos and portraits */
.av{width:28px;height:28px;border-radius:50%;display:inline-block;vertical-align:middle;flex:none;object-fit:cover}
.lg{width:28px;height:28px;border-radius:7px;display:inline-block;vertical-align:middle;flex:none}
.av.sm,.lg.sm{width:22px;height:22px}
.av.lgx,.lg.lgx{width:40px;height:40px}
.faces{display:inline-flex;align-items:center}
.faces .av{margin-left:-6px;box-shadow:0 0 0 2px var(--surface)}
.faces .av:first-child{margin-left:0}
.faces .plus{font:500 11px var(--f-mono);color:var(--muted);margin-left:4px}
.crow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:8px 0;border-top:1px solid var(--border)}
.crow:first-child{border-top:0}
.crow .tiles2{grid-row:1 / span 2;display:inline-flex;gap:4px}
.crow .tiles2 .lg,.crow .tiles2 .av{width:32px;height:32px}
.crow .ln1{min-width:0;font-size:13.5px;line-height:1.3}
.crow .meta{grid-column:2 / span 2}
.tchip{grid-column:3;grid-row:1;font-size:12px;line-height:1;padding:4px 6px;border:1px solid var(--line);border-radius:5px;color:var(--text);background:var(--surface)}
.days-top{display:flex;gap:6px 16px;flex-wrap:wrap;align-items:baseline;justify-content:space-between;margin:-4px 0 8px}
.days-top .upd{font-size:12.5px;color:var(--muted)}
.days{display:grid;gap:12px;grid-template-columns:repeat(var(--days,5),minmax(0,1fr))}
.day{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:grid;gap:4px;align-content:start;min-width:0}
.day h4{font:700 13.5px/1.2 var(--f-display);color:var(--heading)}
.day .empty{font-size:12.5px;color:var(--muted)}
@media (max-width:1040px){.days{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.days{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.days{grid-template-columns:minmax(0,1fr)}}
.ocards{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.ocard{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 14px;display:grid;gap:6px;align-content:start}
.ocard .top{display:flex;gap:10px;align-items:center}
.ocard h4{font:700 15px/1.2 var(--f-display)}
.ocard .facts{font-size:12.5px;color:var(--muted)}
.ocard .snip{font-size:13.5px}
.ocard .why{font-size:12.5px;border-left:3px solid var(--sun);padding-left:8px}
.people{display:grid;gap:0;margin:0;padding:0;list-style:none}
.person{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1px 10px;align-items:center;padding:8px 0;border:0;border-top:1px solid var(--border);width:100%;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.people>li:first-child .person{border-top:0}
.person>.av{grid-row:1 / span 2}
.person[aria-pressed="true"]{box-shadow:inset 3px 0 0 var(--sea);padding-left:8px}
.person .nm{font-weight:600}
.person .ct{font:400 11.5px var(--f-mono);color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fbtn{font:500 12.5px/1 var(--f-body);border:1px solid var(--border);background:var(--bg);color:var(--text);padding:6px 10px;border-radius:999px;cursor:pointer}
.fbtn[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.act{display:grid;gap:0;margin:0;padding:0;list-style:none}
.act>li{display:grid;grid-template-columns:92px 64px minmax(0,1fr) auto;gap:2px 10px;padding:8px 0;border-top:1px solid var(--border);align-items:center}
.act>li:first-child{border-top:0}
.act .ty{font:500 10.5px/1 var(--f-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.act .tx{min-width:0}
@media (max-width:560px){.act>li{grid-template-columns:minmax(0,1fr) auto}.act .date,.act .ty{grid-column:1}}
.ochart{display:grid;gap:14px}
.ochart h4{font:600 11px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tiles{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
.ptile{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);min-width:0}
.ptile .nm{font-weight:600;font-size:13.5px;display:block}
.ptile .ti{font-size:12px;color:var(--muted);display:block}

/* charts */
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart text{font:400 11.5px var(--f-mono);fill:var(--muted)}
.chart .strong{fill:var(--text);font-weight:500}
.chart .gl{stroke:var(--border);stroke-width:1;fill:none}
.chart .mk-l{stroke:var(--muted);stroke-width:1.25;stroke-dasharray:3 3}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);margin:0;padding:0;list-style:none}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.smx{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.smx figure{display:grid;gap:2px}
.smx figcaption{font:600 11px/1.2 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
details.tfb>summary{cursor:pointer;font-size:12px;color:var(--muted)}

/* drawers: help (S10); dialogs share the shell */
.drawer{position:fixed;inset:0 0 0 auto;width:min(560px,100vw);height:100vh;max-height:none;margin:0 0 0 auto;border:0;border-left:1px solid var(--line);padding:0;background:var(--surface);color:var(--text);overflow:auto}
.drawer::backdrop{background:rgb(0 0 0 / .35)}
.drawer .dh{position:sticky;top:0;display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--surface);border-bottom:1px solid var(--border)}
.drawer .dh h2{font:700 1.2rem var(--f-display);color:var(--heading);margin-right:auto}
.drawer .db{padding:16px 18px 32px}
.x{background:none;border:1px solid var(--line);border-radius:8px;width:34px;height:34px;cursor:pointer;color:var(--text);font-size:18px;line-height:1}
/* the breadcrumb row (crumbs only, S33) and Find in the header row (S15, S33): a 38px field on the Forest bar
   with a 3:1 edge (--on-deep 60% on --bar); on a phone a 38px icon that opens over the row on focus */
.subbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 24px;padding:10px 16px 0}
.subbar .crumbs{padding:0;flex:1 1 auto;min-width:0}
.hsearch{position:relative;flex:1 1 120px;max-width:240px;margin-left:auto;min-width:110px}
.hsearch .hs-ic{position:absolute;left:9px;top:50%;width:18px;height:18px;transform:translateY(-50%);pointer-events:none;color:var(--text)}
.hsearch input{width:100%;height:38px;font:400 13px var(--f-body);color:var(--text);background:color-mix(in srgb,var(--on-deep) 10%,var(--bar));border:1px solid color-mix(in srgb,var(--on-deep) 60%,var(--bar));border-radius:8px;padding:0 10px 0 34px;-webkit-appearance:none;appearance:none}
.hsearch input:focus{outline:2px solid var(--on-deep);outline-offset:1px}
.hsearch input::placeholder{color:var(--text);opacity:.85}
.hs-list{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;min-width:280px;margin:0;padding:4px;list-style:none;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgb(0 0 0 / .18)}
.hs-list{background:var(--surface);color:var(--text)}
.hs-list li>a{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center;padding:6px 8px;border-radius:6px;color:var(--ink)}
.hs-list .meta{grid-column:2;font-size:12px;color:var(--muted)}
.hs-list li>a>.tile{grid-row:1 / span 2;width:22px;height:22px;border-radius:5px}
.hs-list .tile.blank{display:inline-grid;place-items:center;background:var(--sea);color:var(--on-sea);font:700 11px var(--f-body)}
.hs-grp{font:600 10.5px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 8px 4px}
.hs-list{max-height:70vh;overflow:auto}
.hs-list li[aria-selected="true"]>a{background:color-mix(in srgb,var(--line) 18%,transparent)}
.hs-none{padding:8px;font-size:13px;color:var(--muted)}
@media (max-width:600px){.hsearch{flex:0 0 38px;min-width:0}
  .hsearch input{padding:0 0 0 38px;cursor:pointer}
  .hsearch input::placeholder{color:transparent}
  .hsearch .hs-ic{left:10px}
  .hsearch:focus-within{position:absolute;left:16px;right:16px;top:6px;z-index:40;max-width:none}
  .hsearch:focus-within input{cursor:text;background:var(--bar)}
  .hsearch:focus-within input::placeholder{color:var(--text)}}
/* S22 stamps, lead sentence, data-freshness strip */
.bh .stamp{font:400 11.5px var(--f-mono);color:var(--muted);white-space:nowrap}
.blk p{font-size:15px;line-height:1.6}
.prose .sum b{font-weight:600;color:var(--text)}
.sources{display:flex;flex-wrap:wrap;gap:6px}
.sbadge{font-size:12px;padding:4px 8px;border:1px solid var(--line);border-radius:5px;color:var(--muted)}
.sbadge b{color:var(--text);font-weight:600}
/* S21 organisation hero: one title line */
.hero-org{display:block}
.hero-org .hline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.hero-org h1{font:800 clamp(1.7rem,3.6vw,2.5rem)/1.05 var(--f-display)}
.hero-org .tline{font:500 1.15rem var(--f-display);color:var(--muted)}
.stword{font-weight:700}
.stword.good{color:var(--pos)}.stword.bad{color:var(--neg)}.stword.steady{color:var(--text)}
.harr{font:600 clamp(1.4rem,3vw,2rem)/1 var(--f-mono);color:var(--text)}
.hchips{display:inline-flex;flex-wrap:wrap;gap:6px}
.hchips .chip{font-size:13px;padding:4px 9px;border:1px solid var(--line);border-radius:6px;color:var(--text)}
.hchips .chip.wa{border-color:var(--warn)}
.hero-org>.meta{margin-top:6px}

/* L9 equal heights: a list's own height does not set the row; it scrolls inside its card */
.pg>.blk.lst>.bb{flex:1 1 0;min-height:min(320px,60vh);overflow:auto;contain:size}
@media (max-width:699px){.pg>.blk.lst>.bb{contain:none;max-height:480px}}
/* L20 compact rows */
.calls>.crow,.act>li,.list>li{padding:6px 0}
/* S18 amended, L21, L22: call row = logo above portrait in one narrow column; title and "Org · person" take the width */
.crow{grid-template-columns:28px minmax(0,1fr) auto;gap:2px 8px}
.crow .tiles2{grid-row:1 / span 2;display:flex;flex-direction:column;gap:2px}
.crow .tiles2 .lg,.crow .tiles2 .av{width:28px;height:28px}
.crow .meta{grid-column:2 / span 2;font-size:12.5px;color:var(--muted)}
.crow .cd{grid-column:3;grid-row:1;font:400 12px var(--f-mono);color:var(--muted)}
/* an entity page's sources line (the L23 freshness strip is in the banner, S35; no STALE pills) */
.pg>.blk.bare[data-as="sources"]{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 14px;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.pg>.blk.bare[data-as="sources"]>.bf{margin:0 0 0 auto;padding:0;border:0}
.fresh{font-size:12.5px;line-height:1.8}
.bh .hlink{font-size:13px}
/* L8b stacks: blocks one above the other at the row's height; the last one scrolls inside its card */
.pg>.stack{display:flex;flex-direction:column;gap:16px;min-width:0}
.stack>.blk:last-child{flex:1 1 0;min-height:200px}
.stack>.blk:last-child>.bb{flex:1 1 0;min-height:0;overflow:auto;contain:size}
@media (max-width:699px){.stack>.blk:last-child>.bb{contain:none}}
/* S37 organisation page (Eileen): the AI stack [AI facts, AI opinion, Next step] keeps its natural height and sets
   the row; the facts stack beside it (Profile, Key facts) fills it, Key facts scrolling if it must (L8b, L9).
   Contacts on a row of their own flow into columns. Key facts and Profile row styles live in render/keyfacts.py. */
.pg>.stack#ai>.blk:last-child{flex:1 0 auto;min-height:0}
.pg>.stack#ai>.blk:last-child>.bb{flex:0 0 auto;contain:none}
@media (max-width:699px){.pg>.stack#facts-profile>.blk:last-child,.pg>.stack#facts-profile>.blk:last-child>.bb{flex:0 0 auto;min-height:0}}
.blk[data-as="contacts"][data-span="3"] .people{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));column-gap:24px}
.blk[data-as="contacts"][data-span="3"] .people>li .person{border-top:0;border-bottom:1px solid var(--border)}
.ai-op .status{font-size:1em}
.chips.ev .chip{text-decoration:none}

/* Ask B (Nikola, docs/15): the chat panel in the ask-brain dialog, its pop-out page, and the pill bottom-right.
   The pill sits in .ask-fabs, a bottom-right column stack: a Help pill added there later stacks above it, never over it. */
.ask-fabs{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:15;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:11px}
.ask-pill{display:inline-flex;align-items:center;gap:8px;min-height:43px;padding:6px 16px 6px 7px;border-radius:999px;background:var(--deep);color:var(--on-deep);font:600 14px/1 var(--f-body);text-decoration:none;box-shadow:0 6px 18px rgb(0 0 0 / .22)}
.ask-pill:hover,.ask-pill:focus-visible{text-decoration:none;filter:brightness(1.08)}
.ask-pill svg,.ab-h svg{width:30px;height:30px;display:block;flex:none}
@media print{.ask-fabs{display:none}}
.drawer.askb[open],.askb.pop{display:flex;flex-direction:column;overflow:hidden}
.drawer.askb.max{width:100vw}
.askb.pop{height:100vh;height:100dvh;background:var(--surface);color:var(--text)}
body.ask-popout{margin:0;overflow:hidden}
.ab-h{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 12px;background:var(--deep);color:var(--on-deep);flex:none}
.ab-t{margin-right:auto;display:grid;line-height:1.25;min-width:0}
.ab-t h2{font:700 1.05rem var(--f-display);color:var(--on-deep);margin:0}
.ab-t span{font-size:12px;opacity:.85}
.ab-i{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border-radius:8px;background:transparent;border:1px solid color-mix(in srgb,var(--on-deep) 40%,transparent);color:var(--on-deep);cursor:pointer;font-size:18px;line-height:1;text-decoration:none}
.ab-i:hover,.ab-i:focus-visible,.ab-i[aria-pressed="true"]{background:color-mix(in srgb,var(--on-deep) 14%,transparent);text-decoration:none}
.ab-back{color:var(--on-deep);font-size:13px;text-decoration:underline}
.ab-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.ab-status{flex:none;margin:0;padding:5px 16px;min-height:1.9em;font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--border)}
.ab-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:14px 16px;display:grid;align-content:start;gap:12px}
.ab-intro{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13.5px;line-height:1.5}
.ab-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ab-chips button{font:inherit;font-size:13px;text-align:left;color:var(--text);background:transparent;border:1px solid var(--border);border-radius:999px;padding:6px 11px;cursor:pointer}
.ab-chips button:hover{border-color:var(--sea)}
.ab-thread{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ab-u{justify-self:end;max-width:85%}
.ab-u .ab-b{background:var(--sea);color:var(--on-sea);border-radius:12px 12px 3px 12px;padding:8px 12px;overflow-wrap:anywhere}
.ab-a .ab-b{background:var(--surface);border:1px solid var(--border);border-radius:12px 12px 12px 3px;padding:10px 12px;overflow-wrap:anywhere;font-size:14px}
.ab-b p+p,.ab-b p+ul,.ab-b p+ol,.ab-b ul+p,.ab-b ol+p{margin-top:7px}
.ab-b ul,.ab-b ol{margin:4px 0 0;padding-left:20px}
.ab-b li+li{margin-top:3px}
.ab-b code{font:12.5px var(--f-mono)}
.ab-dead{color:var(--muted)}
.ab-meta{font-size:11.5px;color:var(--muted);margin-top:6px}
.ab-u .ab-meta{color:inherit;opacity:.85}
.ab-chart{margin:8px 0 0}
/* viz figures carry their own white surface: a white card with a --line edge in both themes reads as a figure */
.ab-chart img{display:block;max-width:100%;height:auto;border-radius:6px;background:#fff;border:1px solid var(--line);padding:4px}
.ab-chart figcaption{font-size:12px;color:var(--muted)}
.ab-key{flex:none;display:grid;gap:8px;padding:10px 16px;border-top:1px solid var(--border)}
.ab-key label{display:grid;gap:6px;font-weight:600;font-size:13.5px}
.ab-key input{height:38px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0 10px}
.ab-comp{flex:none;display:grid;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface)}
.ab-comp textarea{width:100%;min-height:46px;max-height:180px;resize:none;font:inherit;font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 11px}
.ab-comp textarea:focus-visible,.ab-pick:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.ab-bar{display:flex;align-items:center;gap:8px;min-width:0}
.ab-clip{display:inline-grid;place-items:center;width:34px;height:34px;flex:none;padding:0;border-radius:8px;background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer}
.ab-pick{height:34px;min-width:0;flex:0 1 auto;font:inherit;font-size:13px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0 6px}
.ab-clear{margin-left:auto;background:none;border:0;padding:6px 4px;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;text-decoration:underline}
.ab-send{height:34px;padding:0 16px;flex:none}
.ab-send:disabled{opacity:.6;cursor:progress}
.ab-files{display:flex;flex-wrap:wrap;gap:6px}
.ab-file{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--border);border-radius:999px;padding:2px 4px 2px 10px}
.ab-file button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0 4px}
