/* bradshaw.css: generated by `python -m roundbook.web.build_css` from static/css/*.css. Do not edit. */
/* ---- 00_tokens.css ---- */
/* Tokens (DESIGN.md section 3). The only place colors, sizes, radii and shadows are defined.
   Names follow the artboard stylesheets (ad_base.css, r1.css). A page that needs a new value adds a token here first. */
:root{
/* color */
--page:#F4F4F2;
--surf:#FFFFFF;
--ink:#0B0B0C;
--mu:#5F5F66;
--hair:#E4E4E7;
--hair2:#CACACF;
--hair3:#85858D;
--acc:#C8380D;
--tint:#F5F5F6;
--ink2:#2A2A2E;
--scrim:rgba(11,11,12,0.36);
/* share-class ramp, oldest to newest; --c5 is the newest class */
--c0:#CBCBD1;
--c1:#ABABB3;
--c2:#85858D;
--c3:#5F5F67;
--c4:#3A3A40;
--c5:#C8380D;
/* type (Geist 400, 500, 600, 700; numerals tabular on the body) */
--xs:12px;
--sm:14px;
--md:16px;
--ms:18px;
--lg:22px;
--xl:32px;
--num:clamp(40px,4.4vw,64px);
--d:clamp(40px,5.8vw,84px);
/* spacing and layout */
--g1:8px;
--g2:16px;
--g3:24px;
--g4:40px;
--g5:56px;
--g6:96px;
--pad:56px;
/* shape and depth */
--r:12px;
--r2:8px;
--sh:0 1px 2px rgba(11,11,12,0.04);
--sh2:0 12px 40px rgba(11,11,12,0.14);
}
@media (max-width:700px){
:root{--pad:20px}
}

/* ---- 10_base.css ---- */
/* Base: reset, body, headings, links, focus and the small utilities (DESIGN.md sections 3, 6.0 and 12).
   No component styles live here. Everything reads tokens from 00_tokens.css. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;color-scheme:light}
body{margin:0;background:var(--page);color:var(--ink);font-family:Geist,"Helvetica Neue",Arial,sans-serif;font-size:var(--md);font-weight:400;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,p,dl,dd,dt,ol,ul,figure,blockquote{margin:0;padding:0}
ol,ul{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
pre,code,samp{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--sm)}
/* headings: weight 500 with negative tracking. h1 is the page title; the hero size (--d) is set by the hero component */
h1{font-size:clamp(32px,3.4vw,44px);font-weight:500;letter-spacing:-0.045em;line-height:1.1;text-wrap:balance}
h2{font-size:var(--xl);font-weight:500;letter-spacing:-0.03em;line-height:1.15}
h3{font-size:var(--lg);font-weight:500;letter-spacing:-0.02em;line-height:1.2}
/* links: ink, never the accent; component classes remove or restyle the underline where they need to */
a{color:inherit;text-decoration-color:var(--hair2);text-underline-offset:4px}
a:hover{text-decoration-color:var(--ink)}
/* focus: 2 px accent outline, 3 px offset (DESIGN.md 12) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:2px solid var(--acc);outline-offset:3px}
/* page width: 1440 px, centered, side margins from --pad */
.wrap{max-width:1440px;margin:0 auto;padding:0 var(--pad)}
/* utilities */
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.cap{font-size:var(--sm);color:var(--mu)}
.lede{margin-top:var(--g3);font-size:var(--lg);line-height:1.4;color:var(--mu);max-width:30em}
.asof{margin-top:6px;font-size:var(--xs);color:var(--mu)}
.num{font-variant-numeric:tabular-nums}
.miss{color:var(--mu)}
.fig32{font-size:var(--xl);font-weight:500;letter-spacing:-0.035em;line-height:1.1}

/* ---- 20_chrome.css ---- */
/* Chrome and layouts (DESIGN.md 6.1 and 8): skip link, wordmark, app header, public header, phone menu, trial chip,
   page title, hero, footer, and the region rules of the seven page layouts (classes beginning lay-).
   Tokens only. Ported from ad_base.css and r1.css with the 6.0 fixes. */

/* icons: size comes from the width and height attributes on the svg; this keeps them from shrinking in flex rows */
.ico{flex:none;vertical-align:-3px}

/* skip link: first focusable element, visible on focus */
.skip{position:absolute;left:var(--g2);top:-120px;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:0 20px;background:var(--ink);color:var(--surf);border-radius:var(--r2);font-size:var(--sm);font-weight:500;text-decoration:none}
.skip:focus{top:var(--g1)}
.skip.show{position:static}

/* wordmark */
.wm{display:inline-flex;align-items:center;min-height:40px;font-size:var(--lg);font-weight:600;letter-spacing:-0.055em;line-height:1;color:var(--ink);text-decoration:none}
.wm i{font-style:normal;color:var(--acc);font-weight:700;margin-left:0.03em}

/* header shell shared by the app and public headers */
.hd{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:12px 40px;padding:var(--g3) 0;border-bottom:1px solid var(--hair2)}
.hd summary{list-style:none;cursor:pointer}
.hd summary::-webkit-details-marker{display:none}

/* app header: nav, search, right cluster */
.nav{display:flex;flex-wrap:wrap;gap:0 28px}
.nav a,.pnav a,.hda>a{display:inline-flex;align-items:center;gap:6px;min-height:40px;font-size:var(--sm);color:var(--mu);text-decoration:none;text-underline-offset:9px;text-decoration-thickness:1px}
.nav a:hover,.pnav a:hover{color:var(--ink)}
.nav a[aria-current="page"],.pnav a[aria-current="page"],.hda>a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--acc)}
.nav a[aria-current="page"]:hover,.pnav a[aria-current="page"]:hover,.hda>a[aria-current="page"]:hover{text-decoration-color:var(--acc)}
.srch{position:relative;margin-left:auto;flex:0 1 280px;width:280px;max-width:100%}
.srch input{display:block;width:100%;min-height:40px;padding:6px 0;font:inherit;font-size:var(--sm);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);border-radius:0}
.srch input::placeholder{color:var(--mu);opacity:1}
.suggest{position:absolute;left:0;right:0;top:100%;z-index:30}
.suggest:empty{display:none}
.hda{display:flex;align-items:center;gap:20px}
.hda>a{color:var(--ink)}
.hda>a:hover{text-decoration:none}
.hda>a[aria-current="page"]:hover{text-decoration:underline}

/* trial chip: the visible chip is 28 px, the link target is 40 px */
.trial{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:0 10px;font-size:var(--xs);line-height:1;color:var(--ink);text-decoration:none;white-space:nowrap}
.trial::before{content:"";position:absolute;left:0;right:0;top:50%;height:28px;transform:translateY(-50%);border:1px solid var(--hair2);border-radius:6px}
.trial:hover::before{border-color:var(--ink)}

/* account menu: a disclosure with real links */
.acct{position:relative}
.acct summary{display:flex;align-items:center;gap:6px;min-height:40px;font-size:var(--sm);color:var(--ink)}
.acct[open] summary .ico{transform:rotate(180deg)}
.acct-p{position:absolute;right:0;top:calc(100% + 8px);z-index:30;display:grid;min-width:240px;padding:var(--g1);background:var(--surf);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh2)}
.acct-p a,.acct-p button{display:flex;align-items:center;width:100%;min-height:40px;padding:0 12px;font:inherit;font-size:var(--sm);color:var(--ink);text-align:left;text-decoration:none;background:none;border:0;border-radius:var(--r2);cursor:pointer}
.acct-p a:hover,.acct-p button:hover{background:var(--tint)}
.acct-who{display:grid;padding:8px 12px 12px;margin-bottom:var(--g1);border-bottom:1px solid var(--hair);font-size:var(--sm);font-weight:500}
.acct-who span{font-size:var(--xs);font-weight:400;color:var(--mu)}
.so{margin:0}

/* public header */
.pnav{display:flex;align-items:center;gap:0 28px;margin-left:auto}

/* phone controls: hidden until 700 px */
.hmob{display:none;align-items:center;gap:var(--g1);margin-left:auto}
.hmob summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;font-size:var(--sm);font-weight:500;color:var(--ink);background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2)}
.hmob summary:hover{border-color:var(--ink)}
.msrch>summary{width:44px;padding:0}
.mnu>summary{padding:0 14px}
.mnu .mc,.msrch .so-close{display:none}
.mnu[open] .mo,.msrch[open] .so-open{display:none}
.mnu[open] .mc,.msrch[open] .so-close{display:inline-flex;align-items:center;gap:8px}
.msrch-p{position:absolute;left:calc(var(--pad) * -1);right:calc(var(--pad) * -1);top:100%;z-index:21;margin:0;padding:12px var(--pad);background:var(--surf);border-bottom:1px solid var(--hair2)}
.msrch-p .in{display:block;width:100%;min-height:44px;padding:0 14px;font:inherit;font-size:var(--md);color:var(--ink);background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2)}

/* phone menu sheet: full height under the header */
.msheet{background:var(--surf)}
.mnu .msheet{position:absolute;left:calc(var(--pad) * -1);right:calc(var(--pad) * -1);top:100%;z-index:20;height:calc(100vh - 69px);height:calc(100dvh - 69px);overflow:auto}
.mm{display:flex;flex-direction:column;min-height:100%}
.ml{display:flex;align-items:center;width:100%;min-height:52px;padding:0 var(--pad);font:inherit;font-size:var(--ms);font-weight:500;letter-spacing:-0.015em;color:var(--ink);text-align:left;text-decoration:none;background:none;border:0;border-bottom:1px solid var(--hair);cursor:pointer}
.ml span{text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:7px}
.ml[aria-current="page"] span{text-decoration-color:var(--acc)}
.ml.sm2{min-height:48px;font-size:var(--md);font-weight:400;letter-spacing:0;color:var(--mu)}
.mrest{margin-top:20px}
.mfoot{margin-top:auto;display:grid;justify-items:start;gap:10px;padding:16px var(--pad) 24px}
.mfoot p{font-size:var(--xs);color:var(--mu)}
.mfoot .btn{justify-self:stretch;min-height:44px}

/* page title: list, settings and document pages */
.ph{padding:48px 0 32px}
.ph-t{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.ph h1{font-size:clamp(32px,3.4vw,44px);letter-spacing:-0.045em;line-height:1.1}
.ph .cap{margin-top:8px;max-width:56em}
.ph .asof{margin-top:6px}

/* hero: dashboards and marketing */
.hero{padding:88px 0 64px}
.hero h1{max-width:12em;font-size:var(--d);line-height:1.02;letter-spacing:-0.045em}
.hero .lede{max-width:30em}
.hero-act{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:var(--g4)}
.hero .fine{margin-top:var(--g2);font-size:var(--sm);color:var(--mu)}
.hero .asof{margin-top:var(--g3)}

/* footer */
.ft{margin-top:var(--g6);padding:var(--g3) 0 48px;border-top:1px solid var(--hair2);font-size:var(--xs);color:var(--mu)}
.ft-links{display:flex;flex-wrap:wrap;gap:0 28px;margin-bottom:var(--g1)}
.ft-links a{display:inline-flex;align-items:center;min-height:40px;font-size:var(--sm);color:var(--ink)}
.ft-line{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;min-height:40px}
.ft-line a{display:inline-flex;align-items:center;min-height:40px;color:var(--mu)}
.ft-line a:hover{color:var(--ink)}

/* layouts: section rhythm (.section). App pages 56 px, marketing and document pages 96 px. */
.section{margin-top:var(--g5);scroll-margin-top:var(--g3)}
.lay-marketing .section,.lay-document .section{margin-top:var(--g6)}
.bn:not(:empty){margin-top:var(--g3)}

/* dashboard and entity: headline figures */
.lay-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--g3) var(--g4)}
.lay-kpis:empty{display:none}
.lay-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--g3) var(--g4);margin-top:var(--g5)}
.lay-figs:empty{display:none}

/* list: filters panel, results, pagination */
.lay-results>*+*{margin-top:var(--g3)}

/* entity: identity, signal chips, section index, sources */
.lay-id{padding:var(--g5) 0 0}
.lay-name{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.lay-name h1{font-size:var(--num);line-height:1.02}
.lay-status{padding:6px 10px;font-size:var(--xs);line-height:1;white-space:nowrap;border:1px solid var(--ink);border-radius:6px}
.lay-id .asof{margin-top:12px}
.lay-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:var(--g3) var(--g4);margin-top:var(--g4);padding-top:var(--g3);border-top:1px solid var(--hair2)}
.lay-facts dt{font-size:var(--xs);color:var(--mu)}
.lay-facts dd{margin-top:2px;font-size:var(--md)}
.lay-signals{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px;margin-top:var(--g4)}
.lay-signals:empty{display:none}
.lay-index{margin-top:var(--g4)}
.lay-sources{margin-top:var(--g5);font-size:var(--sm);color:var(--mu);overflow-wrap:anywhere}

/* settings: side menu and content */
.lay-settings{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--g4) 72px}
.lay-menu{flex:1 1 200px;display:grid;max-width:220px;gap:2px}
.lay-menu a{display:flex;align-items:center;min-height:40px;font-size:var(--sm);color:var(--mu);text-decoration:none}
.lay-menu a:hover{color:var(--ink)}
.lay-menu a[aria-current="page"]{color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--acc);text-decoration-thickness:2px;text-underline-offset:6px}
.lay-settings-c{flex:999 1 560px;min-width:0}

/* focused flow: wordmark, one 440 px column at about a third of the height, legal line */
.lay-focused{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.lay-focused>.wrap{width:100%}
.lay-focused>main{flex:1}
.lay-focus-hd{padding:28px 0 0}
.lay-focus{width:100%;max-width:440px;margin:0 auto;padding:max(var(--g4),calc(33vh - 200px)) 0 var(--g5)}
.lay-legal{padding:var(--g3) 0 var(--g4);font-size:var(--xs);line-height:1.5;color:var(--mu);text-align:center}
.lay-legal a{white-space:nowrap}

/* document: contents rail and 720 px reading column */
.lay-doc{display:grid;grid-template-columns:minmax(0,240px) minmax(0,720px);align-items:start;gap:0 96px;padding-top:var(--g4);border-top:1px solid var(--ink)}
.lay-toc{position:sticky;top:var(--g3)}
.lay-toc .cap{margin-bottom:var(--g1)}
.lay-toc a{display:flex;align-items:center;min-height:40px;font-size:var(--sm);color:var(--mu);text-decoration:none;border-top:1px solid var(--hair)}
.lay-toc li:first-child a{border-top:0}
.lay-toc a:hover{color:var(--ink)}
.lay-tocm{display:none}
.lay-tocm summary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:40px;padding:0 14px;font-size:var(--sm);font-weight:500;color:var(--ink);list-style:none;cursor:pointer;background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2)}
.lay-tocm summary::-webkit-details-marker{display:none}
.lay-tocm[open] summary .ico{transform:rotate(180deg)}
.lay-tocm .jl{display:grid;margin-top:var(--g1);padding:4px var(--g2);background:var(--surf);border:1px solid var(--hair);border-radius:var(--r)}
.lay-tocm .jl a{display:flex;align-items:center;min-height:40px;font-size:var(--sm);text-decoration:none;border-top:1px solid var(--hair)}
.lay-tocm .jl a:first-child{border-top:0}
.lay-doc-body{min-width:0;font-size:var(--md);line-height:1.65}
.lay-doc-body p,.lay-doc-body li{margin-top:var(--g2)}
.lay-doc-body section{scroll-margin-top:var(--g3)}
.lay-doc-body section+section{margin-top:var(--g5)}
.lay-doc-body h2{margin-top:0}
.lay-doc-body h2+p{margin-top:var(--g3)}
.lay-request{margin-top:var(--g5)}
.lay-request:empty{display:none}

@media (max-width:1100px){
.lay-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1000px){
.lay-doc{grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:0 48px}
}
@media (max-width:900px){
.lay-figs{grid-template-columns:repeat(2,minmax(0,1fr))}
.lay-settings{gap:var(--g4)}
}
@media (max-width:800px){
.lay-doc{grid-template-columns:minmax(0,1fr);gap:var(--g4) 0}
.lay-toc{display:none}
.lay-tocm{display:block}
}
@media (max-width:700px){
/* headers collapse: app header keeps the wordmark, a search button and Menu */
.hd{padding:12px 0}
.hd.app{flex-wrap:nowrap;gap:12px}
.hd.app .nav,.hd.app .srch,.hd.app .hda{display:none}
.hmob{display:flex}
.hd.pub{flex-wrap:nowrap;gap:12px}
.hd.pub .pnav{margin-left:auto}
.hd.pub .pnav .pl{display:none}
.hd.pub .pnav a{min-height:44px}
.hd.pub .btn{min-height:44px}
.hd.pub .hmob{margin-left:0}
.ph{padding:32px 0 var(--g3)}
.hero{padding:48px 0 40px}
.section{margin-top:var(--g4)}
.lay-marketing .section,.lay-document .section{margin-top:var(--g5)}
.lay-kpis,.lay-figs{grid-template-columns:minmax(0,1fr)}
.lay-id{padding-top:var(--g4)}
.lay-menu{flex-basis:100%;max-width:none;display:flex;flex-wrap:wrap;gap:4px 20px}
.lay-focus{padding-top:var(--g4)}
.lay-doc{padding-top:var(--g3)}
.lay-doc-body section+section{margin-top:var(--g5)}
.ft{padding-bottom:var(--g4)}
}
@media (max-width:480px){
/* public header: wordmark, Sign in and an icon-only Menu. The trial button moves into the menu sheet; every
   public page also has it in its hero. */
.hd.pub .pnav{margin-left:auto}
.hd.pub .pnav .pl{display:none}
.hd.pub>.btn{display:none}
.hd.pub .mnu .mo{font-size:0;gap:0}
.hd.pub .mnu>summary{width:44px;padding:0}
}

/* ---- 40_data.css ---- */
/* 40_data.css: surfaces, layout containers and data display (DESIGN.md 6.2 and 6.3).
   Ported from demo/concepts/build_r1 (ad_base.css, r1.css and the canonical artboards) with the 6.0 fixes:
   plain class names, tokens only, 40 px targets, radius set, no literal white. */

/* ---- panel, ruled section, section header ---- */
.blk.panel { background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); box-shadow: var(--sh); padding: 32px; min-width: 0; }
.blk.flat { border-top: 1px solid var(--ink); padding-top: var(--g3); }
.sh { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 8px 32px; margin-bottom: var(--g3); }
.sh h2 { grid-column: 1; grid-row: 1; margin: 0; }
.sh .cap { grid-column: 1 / -1; grid-row: 2; max-width: 56em; margin: 0; }
.sh .sh-act { grid-column: 2; grid-row: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; }

/* ---- KPI panels ---- */
.kp { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--g3) var(--g4); }
.kp.k3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kc { background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); box-shadow: var(--sh); padding: 28px 28px 26px; min-width: 0; }
.kc .kv { margin: 0; font-size: var(--num); font-weight: 500; letter-spacing: -0.045em; line-height: 1; overflow-wrap: anywhere; }
.kc .kl { margin: var(--g2) 0 0; font-size: var(--md); }
.kc .kl .mk { margin-left: 4px; vertical-align: 2px; }
.kc .kd { margin: 2px 0 0; font-size: var(--sm); color: var(--mu); }
.kc .ks { margin: var(--g2) 0 0; font-size: var(--xs); color: var(--mu); }

/* ---- stat row ---- */
.stat { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; }
.stat .sl { display: grid; gap: 8px; min-width: 0; flex: 1 1 320px; }
.stat .sl p { margin: 0; }
.stat .meter { max-width: 420px; margin-top: 6px; }
.stat .sd { font-size: var(--sm); color: var(--mu); }

/* ---- settings layout ---- */
.setw { display: flex; flex-wrap: wrap; gap: var(--g4) var(--g5); align-items: flex-start; }
.side { flex: 1 1 200px; max-width: 220px; display: grid; gap: 2px; }
.side a { display: flex; align-items: center; min-height: 40px; font-size: var(--sm); color: var(--mu); text-decoration: none; }
.side a:hover { color: var(--ink); }
.side a[aria-current="page"] { color: var(--ink); font-weight: 500; text-decoration: underline; text-decoration-color: var(--acc); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.setc { flex: 999 1 560px; min-width: 0; }
.set { margin-top: var(--g5); }
.set:first-child { margin-top: 0; }
.set > h2 { margin: 0 0 var(--g2); font-size: var(--lg); font-weight: 500; letter-spacing: -0.02em; line-height: 1.2; }
.set > .cap { margin: calc(var(--g1) * -1) 0 var(--g2); }
.rows { border-top: 1px solid var(--ink); }
.row2 { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr); gap: 8px 40px; padding: 24px 0; border-bottom: 1px solid var(--hair2); align-items: baseline; }
.row2-l { display: block; font-size: var(--sm); font-weight: 500; }
.row2-h { display: block; margin-top: 2px; font-size: var(--xs); color: var(--mu); }
.ctl { min-width: 0; display: grid; gap: 10px; justify-items: start; }
.ctl > * { max-width: 100%; }

/* ---- document layout ---- */
.dgrid { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 720px); gap: 0 96px; align-items: start; border-top: 1px solid var(--ink); padding-top: var(--g4); }
.toc { position: sticky; top: 24px; }
.toc .cap { margin: 0 0 8px; }
.toc ol { margin: 0; padding: 0; list-style: none; display: grid; }
.toc a { display: flex; align-items: center; min-height: 40px; font-size: var(--sm); color: var(--mu); text-decoration: none; border-top: 1px solid var(--hair); }
.toc li:first-child a { border-top: 0; }
.toc a:hover { color: var(--ink); }
.tocm { display: none; }
.tocm summary, .jump summary { list-style: none; cursor: pointer; width: 100%; justify-content: space-between; }
.tocm summary::-webkit-details-marker, .jump summary::-webkit-details-marker { display: none; }
.tocm[open] summary .ico, .jump[open] summary .ico { transform: rotate(180deg); }
.jl { display: grid; margin-top: 8px; background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); padding: 4px 16px; }
.jl a { display: flex; align-items: center; min-height: 40px; font-size: var(--sm); text-decoration: none; border-top: 1px solid var(--hair); }
.jl a:first-child { border-top: 0; }
.doc { max-width: 720px; min-width: 0; }
.doc section { scroll-margin-top: 24px; }
.doc section + section { margin-top: var(--g5); }
.doc h2 { margin: 0; }
.doc h2 + p { margin-top: var(--g3); }
.doc h3 { margin: var(--g4) 0 0; }
.doc p, .doc li { font-size: var(--md); line-height: 1.65; }
.doc p { margin: var(--g2) 0 0; }
.doc ul, .doc ol { margin: var(--g2) 0 0; padding-left: 1.25em; }

/* ---- entity section index ---- */
.idx { display: flex; flex-wrap: wrap; gap: 4px 28px; margin-top: var(--g4); }
.idx a { display: inline-flex; align-items: center; min-height: 40px; font-size: var(--sm); color: var(--mu); text-decoration: none; border-bottom: 1px solid transparent; }
.idx a:hover { color: var(--ink); border-bottom-color: var(--hair2); }
.jump { display: none; margin-top: var(--g3); }

/* ---- focused layout ---- */
.fx-page { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; padding: var(--g3) 0; }
.fx-page > .wm { align-self: flex-start; }
.fx-mid { flex: 1; display: grid; grid-template-rows: 1fr auto 2fr; }
.fx { grid-row: 2; width: 100%; max-width: 440px; margin: 0 auto; padding: var(--g4) 0; }
.fx-legal { margin: 0; padding-top: 8px; text-align: center; font-size: var(--xs); line-height: 1.5; color: var(--mu); }
.fx-legal a { white-space: nowrap; text-underline-offset: 3px; text-decoration-color: var(--hair2); }
.fx-legal a:hover { text-decoration-color: var(--ink); }
.fx-page.framed { min-height: 600px; background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); box-shadow: var(--sh); padding: 28px 32px 24px; }

/* ---- data table ---- */
.tw { overflow-x: auto; position: relative; }
.tb { width: 100%; min-width: var(--tmin, 1180px); border-collapse: collapse; font-size: var(--sm); }
.tb caption { text-align: left; }
.tb th, .tb td { text-align: left; font-weight: 400; vertical-align: baseline; padding: 16px 10px; }
.tb th:first-child, .tb td:first-child { padding-left: 0; }
.tb th:last-child, .tb td:last-child { padding-right: 0; }
.tb thead th { padding-top: 10px; padding-bottom: 10px; font-size: var(--xs); color: var(--mu); line-height: 1.3; vertical-align: bottom; border-bottom: 1px solid var(--ink); }
.tb tbody.rg { border-bottom: 1px solid var(--hair2); }
.tb tr.row:hover { background: var(--tint); }
.tb .r { text-align: right; }
.tb .tnw { white-space: nowrap; }
.tb th.co { min-width: 220px; font-size: var(--md); font-weight: 500; letter-spacing: -0.01em; }
.tb th.co a { color: inherit; text-decoration: none; }
.tb th.co a:hover { text-decoration: underline; }
.tb th.co small { display: block; margin-top: 2px; font-size: var(--xs); font-weight: 400; letter-spacing: 0; color: var(--mu); }
.tb td.act { width: 40px; padding-top: 8px; padding-bottom: 8px; }
.tb td.wkc { white-space: nowrap; }
.tb tr[hidden] { display: none; }
.tb tr.wrow > td { padding: 0 0 24px; }

/* decimal-aligned price */
.dec { display: inline-flex; justify-content: flex-end; }
.dec .ip { text-align: right; }
.dec .fp { display: inline-block; width: 5.4ch; text-align: left; }

/* working toggle, working panel */
.tg { display: inline-flex; align-items: center; min-height: 40px; margin: -9px 0; font: inherit; font-size: var(--sm); color: var(--ink); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-decoration-color: var(--hair2); text-underline-offset: 5px; white-space: nowrap; }
.tg:hover { text-decoration-color: var(--ink); }
.tg[aria-expanded="true"] { text-decoration-color: var(--acc); }
.wkp { box-sizing: border-box; width: 0; min-width: 100%; background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); box-shadow: var(--sh); padding: 20px 24px 18px; }
.wtx { max-width: 980px; }
.wtx p { margin: 3px 0 0; font-size: var(--sm); line-height: 1.55; overflow-wrap: anywhere; }
.wtx p:first-child { margin-top: 0; }
.wtx p.ind { padding-left: 20px; color: var(--mu); }
.wkl { display: flex; flex-wrap: wrap; gap: 4px 28px; margin-top: 16px; padding-top: 6px; border-top: 1px solid var(--hair); }
.wkl a { display: inline-flex; align-items: center; min-height: 40px; font-size: var(--sm); }
.src { gap: 6px; text-underline-offset: 5px; text-decoration-color: var(--acc); }
.src .ico { flex: none; }
.wlink { color: var(--ink); text-decoration: underline; text-decoration-color: var(--hair2); text-underline-offset: 4px; }
.wlink:hover { text-decoration-color: var(--ink); }
.wlink.ext { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; white-space: nowrap; }
/* trading name and website slots (DESIGN.md 5): the source line under a website, and "Registered as" under the name */
.wsrc { display: block; margin-top: 2px; font-size: var(--xs); color: var(--mu); }
.reg { margin-top: 6px; font-size: var(--sm); color: var(--mu); }
@media (min-width: 701px) { .lay-facts > .fw { grid-column: span 2; } }

/* ---- key-value rows ---- */
.wl-list { margin: 0; }
.wl { display: grid; grid-template-columns: minmax(0, var(--k, 180px)) minmax(0, 1fr); gap: 0 24px; padding: 10px 0; border-top: 1px solid var(--hair); font-size: var(--sm); }
.wl:first-child { border-top: 0; }
.wl .k { color: var(--mu); }
.wl .v { margin: 0; overflow-wrap: anywhere; }
.wl .nt { display: block; color: var(--mu); font-weight: 400; }
.wl.tot { margin-top: 2px; border-top: 1px solid var(--ink); font-weight: 500; }
.wl.tot .k { font-weight: 400; }
.wl-list.right .wl { grid-template-columns: minmax(0, 1fr) auto; }
.wl-list.right .v { text-align: right; }

/* ---- ruled list and Q&A ---- */
.rl { margin: 0; border-top: 1px solid var(--ink); }
.rli { display: grid; grid-template-columns: minmax(0, var(--lead, 300px)) minmax(0, 1fr); gap: 4px 40px; padding: 18px 0; border-bottom: 1px solid var(--hair2); }
.rli dt { font-size: var(--md); font-weight: 600; }
.rl.qa .rli dt { font-weight: 500; }
.rli dd { margin: 0; color: var(--mu); max-width: 44em; }

/* ---- status marks ---- */
.mk { display: inline-flex; align-items: center; gap: 6px; font-size: var(--xs); line-height: 1; padding: 5px 8px; border: 1px solid var(--hair2); border-radius: 6px; white-space: nowrap; color: var(--ink); background: var(--surf); font-weight: 400; }
.mk.live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--acc); }
.mk.est { border-style: dashed; border-color: var(--hair3); }
.mk.prev { border-color: var(--ink); }
.mk.soon { color: var(--mu); }
.mk.auto, .mk.pilot, .mk.possible { color: var(--ink2); border-color: var(--hair3); }
.mk.checking { color: var(--mu); border-style: dashed; }

/* ---- signal chips ---- */
.sigs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 12px; }
.sig { display: block; min-width: 0; padding: 12px 16px 13px; background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); color: inherit; text-decoration: none; }
a.sig:hover { border-color: var(--ink); }
.sig-t { display: block; font-size: var(--sm); font-weight: 500; }
.sig-s { display: block; margin-top: 2px; font-size: var(--xs); color: var(--mu); }

/* ---- ticker ---- */
.tk { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hair2); }
.tkr { display: grid; grid-template-columns: 150px minmax(0, 1.5fr) 170px minmax(0, 1.2fr) minmax(0, 1fr); gap: 4px 24px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--hair2); font-size: var(--sm); }
.tkt { display: grid; grid-template-columns: auto 1fr; gap: 0 10px; align-items: center; }
.tkt-t { font-size: var(--md); font-weight: 500; }
.tkt small { grid-column: 1 / -1; grid-row: 2; font-size: var(--xs); color: var(--mu); }
.tkt .mk { justify-self: start; }
.tkc { font-size: var(--md); font-weight: 500; overflow-wrap: anywhere; }
.tkc a { color: inherit; text-decoration: none; }
.tkc a:hover { text-decoration: underline; }
.tkc small { display: block; font-size: var(--xs); font-weight: 400; color: var(--mu); }
.tkm { color: var(--mu); overflow-wrap: anywhere; }
.tkp { display: none; }

/* ---- pagination ---- */
.pgn { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 0 0; font-size: var(--sm); color: var(--ink); }
.pgn-n { margin: 0; }
.pgn .pc { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.pgs { display: flex; align-items: center; gap: 8px; margin: 0; }
.pgs .in { width: auto; min-height: 40px; font-size: var(--sm); padding-left: 12px; }

/* ---- empty block and skeleton ---- */
.empty { max-width: 640px; padding: var(--g5) 0; border-top: 1px solid var(--hair2); border-bottom: 1px solid var(--hair2); }
.empty h3 { margin: 0; font-size: var(--ms); font-weight: 600; letter-spacing: -0.015em; line-height: 1.3; }
.empty p { margin: 8px 0 0; font-size: var(--md); color: var(--mu); max-width: 36em; }
.empty-act { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: var(--g3); }
.skel-wrap { border-top: 1px solid var(--ink); }
.skel-wrap.late { opacity: 0; animation: skel-in 0s linear 0.3s forwards; }
@keyframes skel-in { to { opacity: 1; } }
.skel-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0 20px; padding: 21px 0; border-bottom: 1px solid var(--hair2); }
.skel { display: block; height: 14px; background: var(--hair); border-radius: 4px; }
.skel.w1 { width: 80%; }
.skel.w2 { width: 55%; }
.skel.w3 { width: 70%; }
.skel.w4 { width: 45%; }
.skel.w5 { width: 90%; }

/* ---- 1100 px: four headline figures become two ---- */
@media (max-width: 1100px) {
  .kp, .kp.k3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tkr { grid-template-columns: 140px minmax(0, 1.3fr) 150px minmax(0, 1fr) minmax(0, 1fr); gap: 4px 16px; }
}

/* ---- 900 px: two-column sections stack ---- */
@media (max-width: 900px) {
  .kp.k3 { grid-template-columns: minmax(0, 1fr); }
  .dgrid { grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 0 48px; }
}

/* ---- 800 px: the contents rail becomes a disclosure ---- */
@media (max-width: 800px) {
  .dgrid { grid-template-columns: minmax(0, 1fr); gap: var(--g4) 0; }
  .toc { display: none; }
  .tocm { display: block; }
}

/* ---- 700 px: phones. Tables become cards; the settings menu becomes a row of links ---- */
@media (max-width: 700px) {
  .blk.panel { padding: 22px 18px; }
  .kp { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .kc { padding: 22px; }
  .sh { display: block; }
  .sh .cap { margin-top: 8px; }
  .sh .sh-act { margin-top: 8px; }

  .side { max-width: none; flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 0 20px; border-bottom: 1px solid var(--hair2); padding-bottom: 4px; }
  .row2 { grid-template-columns: minmax(0, 1fr); padding: 16px 0; gap: 8px; }
  .set { margin-top: var(--g4); }

  .idx { display: none; }
  .jump { display: block; }

  .fx-page.framed { padding: 20px; }

  .tb { min-width: 0; }
  .tb caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .tb, .tb tbody, .tb tr, .tb th, .tb td { display: block; }
  .tb thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .tb tbody.rg { position: relative; margin-top: 12px; padding: 16px 16px 12px; background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); }
  .tb th, .tb td { padding: 0; }
  .tb th:first-child, .tb td:first-child, .tb th:last-child, .tb td:last-child { padding: 0; }
  .tb tr.row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; align-items: start; }
  .tb tr.row:hover { background: none; }
  .tb tr.row > th:first-child { grid-column: 1 / -1; padding-right: 48px; }
  .tb td[data-l]::before { content: attr(data-l); display: block; font-size: var(--xs); line-height: 1.3; color: var(--mu); }
  .tb .r { text-align: left; }
  .tb .dec { justify-content: flex-start; }
  .tb td.act { position: absolute; top: 6px; right: 6px; width: auto; padding: 0; }
  .tb td.wkc { grid-column: 2; align-self: end; }
  .tb .tg { margin: 0; }
  .tb tr.wrow { margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--hair); }
  .tb tr.wrow > td { padding: 0; }
  .tb tr.wrow .wkp { border: 0; box-shadow: none; padding: 0; }
  .tb th.co { min-width: 0; }

  .wl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .wl-list.right .wl { grid-template-columns: minmax(0, 1fr) auto; gap: 0 16px; }
  .rli { grid-template-columns: minmax(0, 1fr); }

  .tkr { display: flex; flex-wrap: wrap; gap: 4px 0; padding: 16px 0; }
  .tkt, .tkc { width: 100%; }
  .tkt { display: flex; align-items: center; gap: 10px; }
  .tkt small { margin-left: auto; }
  .tkx, .tkm { display: none; }
  .tkp { display: block; width: 100%; font-size: var(--xs); color: var(--mu); }

  .pgn { display: grid; gap: 12px; }
}
@media (max-width: 480px) { .wlink.ext { white-space: normal; } }

/* ticker_feed: the swappable live ticker block */
.tkf-cap { margin: 0 0 var(--g3); max-width: 56em; }
.tkf-note { margin: var(--g2) 0 0; max-width: 56em; font-size: var(--xs); color: var(--mu); }

/* working_panel: structured working for any number (round 2, A3) */
.wp { box-sizing: border-box; background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); box-shadow: var(--sh); padding: 18px 24px 16px; }
.wp-h { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.wp-h h3 { font-size: var(--ms); font-weight: 600; letter-spacing: -0.01em; line-height: 1.3; }
.wp-x { min-height: 40px; display: inline-flex; align-items: center; }
.wp-t { width: 100%; border-collapse: collapse; font-size: var(--sm); line-height: 1.5; font-variant-numeric: tabular-nums; }
.wp-t th, .wp-t td { text-align: left; vertical-align: top; padding: 7px 16px 7px 0; border-top: 1px solid var(--hair); }
.wp-t tbody th { width: 170px; font-weight: 400; color: var(--mu); }
.wp-t td { overflow-wrap: anywhere; }
.wp-t tr.mu td { color: var(--mu); }
.wp-n { color: var(--mu); }
.wp-l { width: 1%; white-space: nowrap; padding-right: 0; }
.wp-l a { display: block; min-height: 24px; }
.wp-asof { margin-top: 8px; font-size: var(--xs); color: var(--mu); }
@media (max-width: 700px) { .wp { padding: 16px; } .wp-t, .wp-t tbody, .wp-t tr, .wp-t th, .wp-t td { display: block; width: auto; } .wp-t tr { border-top: 1px solid var(--hair); padding: 6px 0; } .wp-t th, .wp-t td { border: 0; padding: 1px 0; } .wp-l { white-space: normal; } .wp-l a { display: inline-block; margin-right: 14px; } }

/* ---- 50_controls.css ---- */
/* Controls and the query model (DESIGN.md 6.4 and 6.5, with the 6.0 fixes): buttons, fields, checks, choice cards, chips, switch, tabs, meter,
   filter bar, popovers, phone filters, result line, typeahead, and the save search, list, export and API call windows.
   Owner: X4. Reads tokens only (00_tokens.css). Class names follow r1.css; no .pg or .AD prefixes. */

/* ---- icons inside controls ---- */
.btn .ico,.tl .ico,.ib .ico,.ra .ico,.fb .ico,.srow .ico{flex:none}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--g1);font:inherit;font-size:var(--sm);font-weight:500;line-height:1;min-height:44px;padding:0 20px;border-radius:var(--r2);border:1px solid var(--ink);background:var(--ink);color:var(--surf);text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--ink2);border-color:var(--ink2)}
.btn.sec{background:var(--surf);color:var(--ink);border-color:var(--hair2)}
.btn.sec:hover{border-color:var(--ink);background:var(--surf)}
.btn.sm{min-height:40px;padding:0 14px}
.btn.wide{width:100%}
.btn[disabled],.btn[aria-disabled="true"]{background:var(--hair);border-color:var(--hair);color:var(--mu);cursor:not-allowed}
.btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
/* text button: 40 px target, underline in --hair2 that turns ink on hover */
.tl{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:var(--sm);color:var(--ink);background:none;border:0;padding:6px 0;min-height:40px;cursor:pointer;text-decoration:underline;text-decoration-color:var(--hair2);text-underline-offset:5px}
.tl:hover{text-decoration-color:var(--ink)}
/* icon button: 44 px square */
.ib{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--hair2);border-radius:var(--r2);background:var(--surf);color:var(--ink);cursor:pointer;padding:0;text-decoration:none}
.ib:hover{border-color:var(--ink)}
.ib.plain{border-color:transparent;background:none}
.ib.plain:hover{border-color:var(--hair2)}
/* row action: 40 px, borderless until hover */
.ra{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid transparent;border-radius:var(--r2);background:none;color:var(--mu);cursor:pointer;padding:0;text-decoration:none}
.ra:hover{border-color:var(--hair2);color:var(--ink)}
.ra.on,.ra[aria-expanded="true"]{color:var(--ink);border-color:var(--ink)}

/* ---- fields ---- */
.fld{display:grid;gap:6px;min-width:0}
.fld>label,.lbl{font-size:var(--sm);font-weight:500}
.in{width:100%;font:inherit;font-size:var(--md);color:var(--ink);background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2);padding:0 14px;min-height:44px}
.in::placeholder{color:var(--mu);opacity:1}
textarea.in{padding:10px 14px;min-height:96px;line-height:1.5;resize:vertical}
/* the chevron is a data URI, so its stroke is the ink value written out (#0B0B0C, --ink) */
select.in{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230B0B0C' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.hint{font-size:var(--xs);color:var(--mu)}
/* error: a 2 px ink border, never the accent; the padding gives the extra pixel back so the field does not jump */
.fld.bad .in{border:2px solid var(--ink);padding:0 13px}
.fld.bad textarea.in{padding:9px 13px}
.errm{display:flex;gap:8px;align-items:baseline;font-size:var(--sm);font-weight:500}
.errm::before{content:"!";flex:none;display:inline-grid;place-items:center;width:16px;height:16px;border-radius:999px;background:var(--ink);color:var(--surf);font-size:var(--xs);font-weight:700;line-height:1}

/* ---- checkbox, radio, fieldset ---- */
.ck{display:flex;gap:10px;align-items:center;font-size:var(--sm);min-height:40px;cursor:pointer}
.ck input{accent-color:var(--ink);width:18px;height:18px;margin:0;flex:none}
.ck small{margin-left:auto;font-size:var(--xs);color:var(--mu)}
.fset{border:0;margin:0;padding:0;min-width:0}
.fset>legend{padding:0;font-size:var(--sm);font-weight:500;margin-bottom:6px}
.fset>legend.lbl{margin-bottom:12px}
.rad{display:flex;flex-wrap:wrap;gap:0 24px}
.rad.stack{flex-direction:column;gap:0}

/* ---- choice cards: native radios styled as cards; checked gets the accent border and ring ---- */
.chcs{display:grid;gap:10px}
.chc{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:0 14px;align-items:start;min-height:56px;padding:14px 16px;background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r);cursor:pointer}
.chc:hover{border-color:var(--ink)}
.chc input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.chc .rd{width:18px;height:18px;margin-top:2px;border:1.5px solid var(--ink);border-radius:999px;display:grid;place-items:center}
.chc input:checked~.rd::after{content:"";width:8px;height:8px;border-radius:999px;background:var(--ink)}
.chc:has(input:checked){border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.chc:has(input:focus-visible){outline:2px solid var(--acc);outline-offset:3px}
.chc b{display:block;font-size:var(--md);font-weight:500;letter-spacing:-0.01em;line-height:1.35}
.chc .d{display:block;margin-top:2px;font-size:var(--sm);line-height:1.4;color:var(--mu)}

/* ---- selectable chips: checkboxes styled as chips ---- */
.chps{display:flex;flex-wrap:wrap;gap:8px}
.chp{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:var(--sm);line-height:1.3;color:var(--ink);background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2);padding:8px 14px;min-height:40px;cursor:pointer}
.chp input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.chp .ct{font-weight:400;color:var(--mu)}
.chp:hover{border-color:var(--ink)}
.chp:has(input:checked){border-color:var(--acc);box-shadow:0 0 0 1px var(--acc);font-weight:500}
.chp:has(input:checked) .ct{color:var(--ink);font-weight:400}
.chp:has(input:focus-visible){outline:2px solid var(--acc);outline-offset:3px}

/* ---- switch: a checkbox with role="switch" over a 38 x 22 track; On and Off flip in CSS ---- */
.tgl{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:40px;font-size:var(--sm);cursor:pointer}
.tgl input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.tgl .trk{position:relative;flex:none;width:38px;height:22px;border-radius:999px;background:var(--hair3)}
.tgl .trk::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:999px;background:var(--surf)}
.tgl input:checked+.trk{background:var(--ink)}
.tgl input:checked+.trk::after{left:19px}
.tgl input:focus-visible+.trk{outline:2px solid var(--acc);outline-offset:3px}
.tgl input:checked~.tgl-s .tgl-off,.tgl input:not(:checked)~.tgl-s .tgl-on{display:none}

/* ---- tabs and the segmented toggle ---- */
.sg{display:flex;flex-wrap:wrap;gap:0 24px}
.sg.rule{border-bottom:1px solid var(--hair2)}
.sg-t{display:inline-flex;align-items:center;gap:6px;font-size:var(--sm);color:var(--mu);text-decoration:none;padding:8px 0;min-height:40px;border-bottom:2px solid transparent;cursor:pointer}
.sg.rule .sg-t{margin-bottom:-1px;padding:8px 0 10px}
.sg-t:hover{color:var(--ink)}
.sg-t[aria-selected="true"]{color:var(--ink);font-weight:500;border-bottom-color:var(--acc)}
.sg-t .ct{font-size:var(--xs);font-weight:400;color:var(--mu)}

/* ---- meter: 6 px track, ink fill, the words beside it ---- */
.mtr{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.meter{flex:1 1 120px;min-width:120px;height:6px;background:var(--hair);border-radius:3px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--ink)}
.mtr-l{font-size:var(--xs);color:var(--mu);white-space:nowrap}
.mtr-n{margin-left:auto;font-size:var(--xs);color:var(--mu)}

/* ---- filter bar ---- */
.fb-open{display:none}
.fbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fw{position:relative}
.fb{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:var(--sm);color:var(--mu);background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2);padding:0 12px;min-height:40px;cursor:pointer;white-space:nowrap}
.fb b{font-weight:500;color:var(--ink)}
.fb:hover{border-color:var(--ink)}
.fb.on{border-color:var(--ink);color:var(--ink)}
.fb[aria-expanded="true"]{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.fb .ico{color:var(--mu)}
.fbar .tl{padding:6px 8px}

/* ---- filter popover: also the shape of the list popover ---- */
.fpop{background:var(--surf);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh2);padding:8px 0;min-width:280px;max-width:100%}
.fw .fpop{position:absolute;z-index:3;top:calc(100% + 8px);left:0;width:320px}
.fpt{padding:8px 20px 10px;font-size:var(--xs);color:var(--mu);border-bottom:1px solid var(--hair);margin-bottom:4px}
.fpn{padding:8px 20px 4px;font-size:var(--xs);color:var(--mu)}
.fo{display:flex;align-items:center;gap:12px;min-height:40px;padding:0 20px;font-size:var(--sm);cursor:pointer}
.fo:hover{background:var(--tint)}
.fo.sel{font-weight:500}
.fo input[type="checkbox"]{accent-color:var(--ink);width:18px;height:18px;margin:0;flex:none}
.fo input[type="radio"]{appearance:none;-webkit-appearance:none;flex:none;width:10px;height:10px;margin:0 4px 0 0;border:1px solid var(--hair3);border-radius:999px;background:transparent}
.fo input[type="radio"]:checked{background:var(--acc);border-color:var(--acc)}
.fo .n{margin-left:auto;color:var(--mu);font-weight:400}
.pf{display:flex;gap:12px;padding:14px 20px 8px;margin-top:4px;border-top:1px solid var(--hair)}
/* add to list: sits under the row action that opened it (the parent is position:relative) */
.fpop.pop-add{position:absolute;z-index:3;top:calc(100% + 8px);right:0;width:340px}
.fpop.pop-add .ck{padding:0 20px}
.fpop .fp-new{padding:12px 20px 4px;border-top:1px solid var(--hair);margin-top:4px}
.fpop .fp-new .in{min-height:40px;font-size:var(--sm)}
.fpop .fp-done{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:8px 20px 12px}
.fpop.inline{position:static;width:auto}

/* ---- result panel and result line ---- */
.blk.panel.rpn{padding:28px 32px 24px}
.rline{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px;padding:20px 0 12px;border-bottom:1px solid var(--ink)}
.rpn .rline{margin-top:20px;padding:20px 0 0;border-top:1px solid var(--hair);border-bottom:0;align-items:center}
.rcount{font-size:var(--lg);font-weight:500;letter-spacing:-0.02em}
.rcount span{font-size:var(--sm);font-weight:400;letter-spacing:0;color:var(--mu)}
.rpn .rcount span{display:block;margin-top:2px}
.acts{display:flex;flex-wrap:wrap;gap:0 8px;align-items:center}
.acts .tl{padding:6px 10px}
.acts .tl .ico{color:var(--ink)}
.rs-form{display:inline-flex;align-items:center;gap:10px;margin-right:12px}
.rs-l{font-size:var(--sm);color:var(--mu)}
.rs{width:auto;min-height:40px;font-size:var(--sm);padding-left:12px}

/* ---- phone filters: the button row and the bottom sheet ---- */
.mbar{display:none}
.fsh,.fsh-scrim{display:none}
.fsh{background:var(--surf);border-radius:var(--r) var(--r) 0 0;box-shadow:var(--sh2);padding:10px 0 0;max-height:90vh;overflow:auto}
.fsh-scrim{background:var(--scrim)}
.fsh-d{min-height:100%}   /* the dialog role sits on this inner box: HTML allows no ARIA role on <form> */
.grab{display:block;width:36px;height:4px;border-radius:3px;background:var(--hair2);margin:0 auto 6px}
.fsh-h{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 20px}
.fsh-h h2{font-size:var(--ms);font-weight:600;letter-spacing:-0.015em;line-height:1.3}
.fsr{border-top:1px solid var(--hair)}
.srow{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 20px;font-size:var(--md);color:var(--ink);cursor:pointer;list-style:none}
.srow::-webkit-details-marker{display:none}
.srow .sv2{margin-left:auto;font-size:var(--sm);font-weight:500;text-align:right}
.srow .ico{color:var(--mu)}
.fsr[open] .srow .ico{transform:rotate(180deg)}
.fsh .fpo{padding:0 0 8px}
.sfoot{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:16px 20px 24px;border-top:1px solid var(--hair);position:sticky;bottom:0;background:var(--surf)}
.fsh.inline,.fsh-scrim.inline{display:block;position:absolute;z-index:2}
.fsh-scrim.inline{inset:0;z-index:1}
.fsh.inline{left:0;right:0;bottom:0;max-height:calc(100% - 72px)}

/* ---- typeahead (ARIA 1.2 combobox with a listbox) ---- */
.ta{position:relative}
.ta-box{position:relative}
.ta-bar{display:flex;align-items:center;gap:8px}
.ta-bar .srch{flex:1 1 auto;width:auto;min-width:0;margin-left:0}
.ta-cancel{display:none}
.ta .tdd{position:absolute;z-index:5;top:calc(100% + 8px);left:0;right:0}
.ta.inline .tdd{position:static;margin-top:8px}
.tdd{background:var(--surf);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh2);padding:8px 0}
.tgh{padding:12px 20px 6px;font-size:var(--xs);color:var(--mu)}
.topt{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;text-decoration:none;min-height:56px;color:var(--ink)}
.topt:hover,.topt[aria-selected="true"]{background:var(--tint)}
.tn{display:block;min-width:0}
.tn b{display:block;font-weight:500;font-size:var(--sm);overflow-wrap:anywhere}
.tn small{display:block;font-size:var(--xs);color:var(--mu)}
.tc{flex:none;font-size:var(--xs);color:var(--mu);text-align:right}
.tnone{padding:10px 20px 14px;font-size:var(--sm);color:var(--mu)}
.tsee{border-top:1px solid var(--hair);margin-top:8px;min-height:52px;font-size:var(--sm);font-weight:500}
.kbd{font-size:var(--xs);font-weight:400;color:var(--mu);border:1px solid var(--hair2);border-radius:4px;padding:1px 5px}

/* ---- windows: save search, export, API call (self contained; swap for the overlay dialog when it lands) ---- */
.qd-scrim{position:fixed;inset:0;z-index:50;display:flex;justify-content:center;align-items:flex-start;padding:56px 24px 64px;overflow:auto;background:var(--scrim)}
.qd-scrim.inline{position:relative;inset:auto;z-index:auto;border-radius:var(--r);padding:40px 20px}
.qd{width:100%;max-width:520px;min-width:0;background:var(--surf);border-radius:var(--r);box-shadow:var(--sh2);padding:32px;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-content:start}
.qd.wide{max-width:720px;padding:32px 36px 36px}
.qd-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.qd-h h2{font-size:var(--lg);font-weight:500;letter-spacing:-0.02em;line-height:1.2}
.qd-h .ib{flex:none;margin:-6px -10px 0 0}
.qd-s{margin-top:4px;font-size:var(--sm);color:var(--mu)}
.qd-t{font-size:var(--md);color:var(--mu);max-width:36em}
.qd-f{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;min-width:0}
.qd-sec{min-width:0}
.qd-sh{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding-bottom:10px;border-bottom:1px solid var(--ink)}
.qd-sh h3{font-size:var(--md);font-weight:600;letter-spacing:-0.01em;line-height:1.3}
.qd-sh .bs{display:flex;flex-wrap:wrap;gap:0 20px}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--rows,8),auto);grid-auto-flow:column;gap:0 32px;margin-top:6px}
.cols .ck{border-bottom:1px solid var(--hair)}
.qd-pv h3{font-size:var(--md);font-weight:600;letter-spacing:-0.01em;line-height:1.3;margin-bottom:10px}
.qcode{background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2);padding:12px 16px;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--sm);line-height:1.6;white-space:pre}
.qd-pv .qcode div:first-child{font-weight:600}
.qd-qt{padding-top:20px;border-top:1px solid var(--ink)}
.qd-qt .mtr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px}
.qd-qt .meter{grid-column:1/-1}
.qd-qt .mtr-n{margin-left:0}
.qd-qt .q{font-size:var(--md);margin-top:12px}
.qd-qt .q b{font-weight:600}
.qd-qt .rad{margin-top:8px}
.qd-qt .rad .ck{min-height:44px;font-size:var(--md)}
.qd.wide .btns .btn{min-width:150px}

/* ---- gallery helpers (the /_design page only) ---- */
.gx-ctl-row{display:flex;flex-wrap:wrap;gap:var(--g2);align-items:center}
.gx-ctl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--g3);align-items:start}
.gx-ctl-w340{max-width:340px}
.gx-ctl-w360{max-width:360px}
.gx-ctl-w420{max-width:420px;display:grid;gap:var(--g2)}
.gx-ctl-w440{max-width:440px}
.gx-ctl-w640{max-width:640px}
.gx-ctl-pn{margin-top:var(--g2)}
.gx-ctl-top{align-items:flex-start}
.gx-ctl-pad{min-height:560px}
.gx-ctl-ta{max-width:560px;min-height:380px}
.gx-ctl-box{position:relative;max-width:360px;min-height:380px;padding:20px;border:1px solid var(--hair);border-radius:var(--r);background:var(--page)}
.gx-ctl-rel{position:relative}
.gx-ctl-co{display:flex;align-items:center;justify-content:space-between;gap:var(--g2);padding:10px 12px 10px 16px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r2)}
.gx-ctl-phone{position:relative;width:100%;max-width:375px;height:680px;overflow:hidden;background:var(--page);border:1px solid var(--hair);border-radius:var(--r)}
.gx-ctl-phone .mbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:16px}
.gx-ctl-phone .mbar .fb{min-height:44px}
.gx-ctl-phone .mbar .rs{margin:0;min-height:44px;width:100%}

/* ---- breakpoints ---- */
@media (max-width:1100px){
.fbar .fw:nth-child(n+4) .fpop{left:auto;right:0}
}
@media (max-width:900px){
.rpn .rline{align-items:flex-start}
.qd.wide{max-width:640px}
}
@media (max-width:700px){
.fbar.dk{display:none}
.mbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}
.mbar .fb{min-height:44px}
.mbar .rs{margin:0;min-height:44px;width:100%}
.fsh-scrim:not(.inline){display:block;position:fixed;inset:0;z-index:40}
.fsh:not(.inline){display:block;position:fixed;left:0;right:0;bottom:0;z-index:41}
.blk.panel.rpn{padding:16px 16px 8px}
.rline{display:block}
.rcount span{display:block;margin-top:2px}
.rpn .rline{margin-top:16px;padding-top:16px}
.rline .acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;margin-top:8px}
.rline .acts .tl{padding:6px 0}
.rpn .acts .rs-form{display:none}
.fw .fpop{position:static;width:auto;margin-top:8px;box-shadow:none}
.fpop.pop-add{position:static;width:auto;margin-top:8px;box-shadow:none}
.ta-cancel{display:inline-flex}
.ta .tdd{box-shadow:none}
.qd-scrim{padding:100px 12px 32px}
.qd-scrim.inline{padding:24px 12px}
.qd{padding:24px 20px}
.qd.wide{padding:24px 18px 28px}
.cols{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}
.qd .btns .btn{flex:1 1 140px}
.qd.wide .btns .btn{min-width:0}
.sg{gap:0 20px}
}

/* ---- 60_overlays.css ---- */
/* 60_overlays.css: dialog, sheet, banner, lock row, confirm, toast, fragment error, page states, plan card, plan table, code block, stepper (DESIGN.md 6.6 and 6.7).
   Owned by the overlays executor. Uses the documented classes of other slices in markup (.btn, .tl, .mk, .meter, .fig32) but never redefines them. */

/* ---- scrim and dialog ---- */
.scrim{position:fixed;inset:0;z-index:50;display:flex;justify-content:center;padding:56px 24px 64px;overflow-y:auto;background:var(--scrim)}
.scrim.inl{position:static;inset:auto;z-index:auto;overflow:visible;padding:56px 20px;border-radius:var(--r)}
.dlg{width:100%;max-width:520px;margin:auto;background:var(--surf);border-radius:var(--r);box-shadow:var(--sh2);padding:32px}
.dlg.wide{max-width:720px}
.dlg-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.dlg-t{margin:0;font-size:var(--lg);font-weight:500;letter-spacing:-0.02em;line-height:1.2;max-width:22em}
.dlg-x{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;margin:-8px -10px 0 0;padding:0;border:1px solid transparent;border-radius:var(--r2);background:none;color:var(--ink);cursor:pointer;text-decoration:none}
.dlg-x:hover{border-color:var(--hair2)}
.dlg-b{min-width:0;margin-top:var(--g3)}
.dlg-b>*:first-child{margin-top:0}
.dlg-s{margin:4px 0 0;font-size:var(--sm);color:var(--mu)}
.dlg-f{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin:0}
.dlg-f fieldset{margin:0;padding:0;border:0;min-width:0}
.dlg-f legend{padding:0;margin-bottom:6px;font-size:var(--sm);font-weight:500}
.dlg-a{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}

/* ---- bottom sheet (phone only) ---- */
.sheet-scrim{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;background:var(--scrim)}
.sheet-scrim.inl{position:static;inset:auto;z-index:auto;max-width:375px;min-height:660px;border-radius:var(--r);overflow:hidden}
.sheet{width:100%;max-height:92vh;overflow-y:auto;background:var(--surf);border-radius:var(--r) var(--r) 0 0;box-shadow:var(--sh2);padding:10px 0 0}
.sheet-scrim.inl .sheet{max-height:none}
.sheet-grab{width:36px;height:4px;border-radius:4px;background:var(--hair2);margin:0 auto 6px}
.sheet-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px 20px}
.sheet-t{margin:0;font-size:var(--ms);font-weight:600;letter-spacing:-0.015em;line-height:1.3}
.sheet-h .dlg-x{margin:0}
.sheet-b{padding:0}
.sheet-r{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 20px;font:inherit;font-size:var(--md);color:var(--ink);background:none;border:0;border-top:1px solid var(--hair);text-align:left;text-decoration:none;cursor:pointer}
.sheet-v{margin-left:auto;font-size:var(--sm);font-weight:500;text-align:right}
.sheet-r .ico{flex:none;color:var(--mu)}
.sheet-f{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:16px 20px 24px;border-top:1px solid var(--hair)}
@media (min-width:701px){.sheet-scrim:not(.inl){display:none}}

/* ---- banner: monochrome for every severity ---- */
.ban{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:12px 20px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r);font-size:var(--sm)}
.ban .grow{flex:1 1 320px;min-width:0}
.ban b{font-weight:600}
.ban .stk2{display:grid;gap:6px}
.ban-s{margin:0;font-size:var(--xs);color:var(--mu)}
.ban .btn,.ban form{flex:none}
.ban p{margin:0}

/* ---- locked results: count plus plain lock, never blurred rows ---- */
.lock{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:24px 0;border-bottom:1px solid var(--hair2);font-size:var(--sm)}
.lock .ico{flex:none}
.lock .grow{flex:1 1 320px;min-width:0}

/* ---- inline confirmation ---- */
.cfm-d>summary{list-style:none;display:inline-flex}
.cfm-d>summary::-webkit-details-marker{display:none}
.cfm-d>summary:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.cfm{width:100%;max-width:560px;margin-top:var(--g2);padding:20px 22px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r)}
.cfm-t{margin:0;font-size:var(--ms);font-weight:600;letter-spacing:-0.015em;line-height:1.3}
.cfm p{margin:6px 0 0;font-size:var(--sm);color:var(--mu)}
.cfm-a{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:var(--g2)}
.cfm-a form{display:contents}

/* ---- toast ---- */
.toast{position:fixed;left:24px;bottom:24px;z-index:60;display:flex;flex-wrap:wrap;align-items:center;gap:0 16px;max-width:min(480px,calc(100vw - 40px));padding:12px 20px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh2);font-size:var(--sm)}
.toast.inl{position:static;display:inline-flex;max-width:480px}
.toast p{margin:0}
.toast-a{display:inline-flex;align-items:center;min-height:40px;color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--hair2);text-underline-offset:5px}
.toast-a:hover{text-decoration-color:var(--ink)}
.toast-a.tl{padding:0;font-weight:500}

/* ---- fragment error ---- */
.ferr{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:20px 0;border-top:1px solid var(--hair2);border-bottom:1px solid var(--hair2);font-size:var(--sm)}
.ferr p{margin:0;font-weight:500}
.ferr p:before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;margin-right:8px;border-radius:50%;background:var(--ink);color:var(--surf);font-size:var(--xs);font-weight:700;line-height:1;vertical-align:1px}

/* ---- page states: 404, 500, trial ended, signed out ---- */
.pst{max-width:640px;padding:var(--g5) 0 0}
.pst-h{margin:0;font-size:clamp(32px,3.4vw,44px);font-weight:500;letter-spacing:-0.045em;line-height:1.1}
.pst-p{margin:12px 0 0;font-size:var(--md);color:var(--mu);max-width:34em}
.pst-ref{margin:12px 0 0;font-size:var(--sm);color:var(--mu)}
.pst-s{position:relative;max-width:520px;margin-top:var(--g3)}
.pst-s .ico{position:absolute;left:16px;top:17px;color:var(--mu);pointer-events:none}
.pst-s input{width:100%;min-height:52px;padding:0 14px 0 46px;font:inherit;font-size:var(--md);color:var(--ink);background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2)}
.pst-s input::placeholder{color:var(--mu);opacity:1}
.pst-a{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;margin-top:var(--g3)}
.pst-x{margin-top:var(--g4)}

/* ---- plan cards: aligned by grid rows (subgrid), not min-heights ---- */
.pls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--g3);row-gap:0;margin:0;padding:0;list-style:none}
.pln{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:0;min-width:0;margin-bottom:0;padding:28px 24px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh)}
.pln.pick{padding:27.5px 23.5px;border:1.5px solid var(--ink)}
.pln-h{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;font-size:var(--lg);font-weight:600;letter-spacing:-0.02em;line-height:1.2}
.pln-pn{margin-top:16px}
.pln-pn .fig32{margin:0}
.pln-n{margin:4px 0 0;font-size:var(--sm);color:var(--mu)}
.pln-w{margin:20px 0 0;font-size:var(--sm);line-height:1.5;color:var(--mu)}
.pln-cta{margin-top:20px}
.pln-cta .btn{width:100%}
.pln-i{margin:24px 0 0;padding:0;list-style:none;border-top:1px solid var(--hair2);align-self:start}
.pln-i li{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--hair);font-size:var(--sm);line-height:1.45}
.pln-i li:last-child{border-bottom:0}
.pln-i .ico{flex:none;margin-top:1px}
.pln-i .t{flex:1;min-width:0}
.pln-i .mk{flex:none;margin-top:1px}

/* ---- plan comparison: table above 700 px, one card per plan below ---- */
.cmpw{overflow-x:auto}
.cmp{width:100%;min-width:880px;table-layout:fixed;border-collapse:collapse;border-top:1px solid var(--ink);font-size:var(--sm);line-height:21px}
.cmp th,.cmp td{padding:14px 20px 14px 0;text-align:left;vertical-align:top;font-weight:400;border-bottom:1px solid var(--hair2)}
.cmp thead th{padding:20px 20px 18px 0;border-bottom:1px solid var(--ink)}
.cmp tbody th{font-weight:500}
.cmp th:first-child{width:24%}
.cmp-p{display:grid;gap:2px;align-content:start}
.cmp-p b{font-size:var(--md);font-weight:600;letter-spacing:-0.01em}
.cmp-n{font-size:var(--xs);color:var(--mu)}
.cmp .ico{display:block;margin:1.5px 0}
.cmp td .mk{display:flex;width:fit-content;margin-top:6px}
.dsh{display:inline-block;width:12px;height:2px;margin:9px 0 10px;background:var(--hair2)}
.plans{display:none;margin:0;padding:0;list-style:none}
.plan-c{padding:24px 20px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r);box-shadow:var(--sh)}
.plan-c h3{margin:0;font-size:var(--lg);font-weight:600;letter-spacing:-0.02em}
.plan-c .plan-pr{margin:4px 0 0;font-size:var(--md)}
.plan-c .plan-n{margin:2px 0 0;font-size:var(--xs);color:var(--mu)}
.plan-rows{margin:var(--g2) 0 0}
.plan-r{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 16px;align-items:start;padding:12px 0;border-top:1px solid var(--hair);font-size:var(--sm)}
.plan-r dt{color:var(--mu)}
.plan-r dd{margin:0;text-align:right}
.plan-r dd .ico{display:inline-block;vertical-align:-3px}
.plan-r dd .dsh{margin:0;vertical-align:middle}
.plan-r dd .mk{display:inline-flex;margin-left:6px}

/* ---- code block ---- */
.codew{min-width:0;max-width:100%;display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 12px}
.code{flex:1 1 240px;min-width:0;padding:12px 16px;overflow-x:auto;background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--sm);line-height:1.6;color:var(--ink)}
.code div{min-height:1.6em;white-space:pre}
.code.hdr div:first-child{font-weight:600}
.code-copy{flex:none}
.mkey{overflow-wrap:anywhere}

/* ---- stepper ---- */
.stp{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}
.stp-t{margin:0;font-size:var(--xs);color:var(--mu)}
.stp-b{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin-top:8px}
.stp-b i{display:block;height:3px;border-radius:3px;background:var(--hair)}
.stp-b i.on{background:var(--ink)}

/* ---- mobile: 1100, 900 and 700 px ---- */
@media (max-width:1100px){
.pls{grid-template-columns:repeat(2,minmax(0,1fr))}
.pln{margin-bottom:var(--g3)}
.pls{margin-bottom:calc(var(--g3) * -1)}
}
@media (max-width:900px){
.cmp{min-width:760px}
.cmp th,.cmp td{padding-right:12px}
}
@media (max-width:700px){
.scrim{padding:24px 12px 32px}
.scrim.inl{padding:24px 12px}
.dlg{padding:24px 20px}
.dlg-t{font-size:var(--lg)}
.ban{padding:12px 16px}
.ban .btn{width:100%;min-height:44px}
.lock .btn{width:100%}
.toast{left:20px;right:20px;bottom:20px;max-width:none}
.toast.inl{max-width:none}
.pst{padding-top:var(--g4)}
.pst-a .btn{width:100%}
.pls{grid-template-columns:minmax(0,1fr)}
.pln{padding:24px 20px}
.pln.pick{padding:23.5px 19.5px}
.cmpw{display:none}
.plans{display:grid;gap:var(--g2)}
.cfm{padding:18px 16px}
.cfm-a .btn{flex:1 1 140px}
.codew .code-copy{width:100%}
.stp{min-height:44px}
}

/* ---- 70_charts.css ---- */
/* Charts (DESIGN.md 7). The chart box, the HTML label layer, the legend, the note and every mark class in
   charts/__init__.py CLS (m-*). The SVG holds marks only; all text is HTML over it, so it keeps its true size
   when the SVG is stretched (preserveAspectRatio="none"). Strokes never scale. Rows-based charts
   (72_charts_rows.css) and the network (74_network.css) reuse the mark classes defined here. */

/* ---- box ---- */
.chart{position:relative;margin:0;min-width:0;max-width:100%}
.chart .cscroll{overflow-x:auto;overflow-y:hidden}
.chart .cbox{position:relative}
@media (max-width:700px){.chart .cbox{min-width:var(--cmin,0)}}   /* min_width is a phone minimum: below it the chart scrolls */
.chart .plot{position:relative;height:var(--h);margin-top:var(--top)}
.chart .plot-svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block;overflow:visible}
.chart .plot-svg :is(rect,line,path){vector-effect:non-scaling-stroke}
.has-y .plot,.has-y .xrow{margin-left:44px}

/* ---- marks ---- */
.m-bar{fill:var(--ink)}
.m-now{fill:var(--acc)}
.m-part{fill:none;stroke:var(--acc);stroke-width:1.5;stroke-dasharray:4 3}
.m-alt{fill:var(--c2)}
.m-hollow{fill:var(--surf);stroke:var(--hair3);stroke-width:1}
.m-other{fill:var(--c1);stroke:var(--hair3);stroke-width:1}
.m-grid{stroke:var(--hair);stroke-width:1}
.m-axis{stroke:var(--ink);stroke-width:1}
.m-stem{stroke:var(--ink);stroke-width:1.5}
.m-track{fill:var(--hair2)}
.m-count{fill:var(--c3)}
.m-c0,.m-c1,.m-c2,.m-c3,.m-c4,.m-c5,.m-rest{stroke:var(--surf);stroke-width:1}
.m-c0{fill:var(--c0)}
.m-c1{fill:var(--c1)}
.m-c2{fill:var(--c2)}
.m-c3{fill:var(--c3)}
.m-c4{fill:var(--c4)}
.m-c5{fill:var(--c5)}
.m-rest{fill:var(--hair)}
.m-c0,.m-c1,.m-rest{stroke:var(--hair3)}

/* ---- label layer ---- */
.chart .l{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1px);transform:translate(-50%,-100%);font-size:var(--xs);line-height:1.3;color:var(--mu);white-space:nowrap;text-align:center}
.chart .l.a-start{transform:translate(0,-100%);text-align:left}
.chart .l.a-end{transform:translate(-100%,-100%);text-align:right}
.chart .l .sub{display:block}
.chart .l.v{line-height:1}
.chart .l.v.b{line-height:1.3}
.chart .l.v.b .t{color:var(--ink);font-weight:500;display:block}
.chart .l.v.now .t{color:var(--acc);font-weight:500}
.chart .l.v.now{color:var(--acc)}
.chart .l.v.b.now{color:var(--mu)}
.chart .l.v.neg{transform:translate(-50%,0)}
.chart .l.y{left:-44px;width:36px;text-align:right;line-height:1;transform:translateY(-50%)}
.chart .l.pt{width:10px;height:10px;border-radius:999px;background:var(--ink);transform:translate(-50%,-50%)}
.chart .l.pt.big{width:20px;height:20px;background:var(--acc);border:3px solid var(--surf);box-shadow:0 0 0 1px var(--acc)}

/* x-axis row */
.chart .xrow{position:relative;margin-top:10px;min-height:20px;font-size:var(--xs);color:var(--mu);line-height:1.3}
.chart .xrow.two{min-height:38px}
.chart .xrow .l{top:0;transform:translateX(-50%)}
.chart .xrow .l.a-start{transform:none}
.chart .xrow .l.a-end{transform:translateX(-100%)}
.chart .xrow .l .sub{min-height:16px}
.chart .xrow .l.sel{color:var(--ink);font-weight:500}

/* ---- legend, picks, note, empty ---- */
.clegend{display:flex;flex-wrap:wrap;gap:6px 28px;margin-top:var(--g3);font-size:var(--xs);color:var(--mu)}
.clegend li{display:inline-flex;align-items:center;gap:8px}
.sw{display:inline-block;flex:none;width:14px;height:10px;vertical-align:middle}
.sw.dot{width:10px;border-radius:999px;background:var(--ink)}
.sw.m-bar{background:var(--ink)}
.sw.m-now{background:var(--acc)}
.sw.m-part{background:none;border:1.5px dashed var(--acc)}
.sw.m-alt{background:var(--c2)}
.sw.m-hollow{background:var(--surf);border:1px solid var(--hair3)}
.sw.m-other{background:var(--c1);border:1px solid var(--hair3)}
.sw.m-c0{background:var(--c0)}
.sw.m-c1{background:var(--c1)}
.sw.m-c2{background:var(--c2)}
.sw.m-c3{background:var(--c3)}
.sw.m-c4{background:var(--c4)}
.sw.m-c5{background:var(--c5)}
.sw.m-rest{background:var(--hair)}
.sw.m-c0,.sw.m-c1,.sw.m-rest{border:1px solid var(--hair3)}
.cpicks{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:var(--g2)}
.cpick{display:inline-flex;align-items:center;min-height:40px;font-size:var(--sm);color:var(--mu);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:8px}
.cpick:hover{color:var(--ink);text-decoration-color:var(--hair2)}
.cpick[aria-current]{color:var(--ink);text-decoration-color:var(--acc)}
.cnote{margin-top:var(--g2);font-size:var(--xs);color:var(--mu);max-width:64em}
.cempty{font-size:var(--sm);color:var(--mu)}

/* ---- step_area: plot left, legend table right ---- */
.chart--step_area .cgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--g4) var(--g5);align-items:start}
.clegtbl{width:100%;border-collapse:collapse;font-size:var(--sm)}
.clegtbl th,.clegtbl td{padding:10px 0;border-top:1px solid var(--hair);text-align:left;font-weight:400;vertical-align:middle}
.clegtbl thead th{padding:0 0 8px;border-top:0;border-bottom:1px solid var(--ink);color:var(--mu);font-size:var(--xs);vertical-align:bottom}
.clegtbl tbody th .sw{margin-right:10px}
.clegtbl .r{text-align:right;font-variant-numeric:tabular-nums}
.clegtbl th.r{width:92px}
.clegtbl th.r+th.r{width:64px}
.clegtbl .tot th,.clegtbl .tot td{border-top:1px solid var(--ink);font-weight:500}

/* ---- scale: ticks with stems, 20 px marker; vertical under 700 px ---- */
.chart--scale{padding-bottom:52px}
.chart--scale .plot{margin-left:24px;margin-right:24px}
.chart--scale .plot-svg{border-radius:4px;overflow:hidden}
.chart--scale .sc-v{display:none}
.chart--scale .l.e{transform:translate(0,-50%);color:var(--mu);font-size:var(--sm)}
.chart--scale .l.e.lo{transform:translate(calc(-100% - 16px),-50%)}
.chart--scale .l.e.hi{transform:translate(16px,-50%)}
.chart--scale .l.tick{display:flex;height:44px;padding-left:8px;border-left:1px solid var(--ink);font-size:var(--sm);line-height:20px;transform:none;text-align:left}
.chart--scale .l.tick.up{align-items:flex-start}
.chart--scale .l.tick.dn{align-items:flex-end}
.chart--scale .l.tick b{font-weight:500;color:var(--ink)}
.chart--scale .l.tick.me{border-left-color:var(--acc)}
.chart--scale .l.pt.big{z-index:1}

/* ---- phone ---- */
@media (max-width:900px){
.chart--step_area .cgrid{grid-template-columns:1fr}
}
@media (max-width:700px){
.has-y .plot,.has-y .xrow{margin-left:36px}
.chart .l.y{left:-36px;width:30px}
.chart .l.alt{visibility:hidden}
.clegtbl th.r{width:84px}
.clegtbl th.r+th.r{width:52px}
.chart--scale{padding-bottom:28px}
.chart--scale .sc-h{display:none}
.chart--scale .sc-v{display:block}
.chart--scale .plot{width:8px;height:480px;margin:var(--g2) 0 var(--g2) 6px}
.chart--scale .l.e{left:50%}
.chart--scale .l.e.lo{top:0;transform:translate(-50%,calc(-100% - 8px))}
.chart--scale .l.e.hi{top:100%;transform:translate(-50%,8px)}
.chart--scale .l.tick,.chart--scale .l.tick.up,.chart--scale .l.tick.dn{left:100%;top:calc(var(--x) * 1%);height:auto;padding-left:36px;border-left:0;align-items:center;transform:translateY(-50%)}
.chart--scale .l.tick::before{content:"";position:absolute;left:0;top:50%;width:28px;height:1px;background:var(--ink)}
.chart--scale .l.tick.me::before{background:var(--acc)}
.chart--scale .l.pt.big{left:50%;top:calc(var(--x) * 1%)}
}

/* ---- 72_charts_rows.css ---- */
/* Charts built from HTML rows (DESIGN.md 7.3): heatmap, hbar, stack100, box and range rows, gauge.
   Markup: templates/components/chart_rows.html. Prefix rc-. SVG mark classes used by the row plots (m-grid, m-part,
   m-hollow, m-now, m-c0, m-c1) are restated here under the row-plot wrappers so the plots do not depend on
   the load order of 70_charts.css; the values are the same tokens. */
.rc{min-width:0}
.rc-note{margin:var(--g3) 0 0;max-width:72em;font-size:var(--xs);line-height:1.5;color:var(--mu)}
.rc-empty{margin:0;font-size:var(--sm);color:var(--mu)}

/* legend: 14 x 10 swatches, 12 px muted; light greys carry a --hair3 outline */
.rc-legend{display:flex;flex-wrap:wrap;gap:6px 28px;margin:0 0 var(--g2);font-size:var(--xs);color:var(--mu)}
.rc-legend span{display:inline-flex;align-items:center;gap:8px}
.rc-sw{flex:none;display:inline-block;width:14px;height:10px}
.rc-sw.is-ink{background:var(--ink)}
.rc-sw.is-now{background:var(--acc)}
.rc-sw.is-alt,.rc-sw.is-c2{background:var(--c2)}
.rc-sw.is-hollow{background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair3)}
.rc-sw.is-other,.rc-sw.is-c1{background:var(--c1);box-shadow:inset 0 0 0 1px var(--hair3)}
.rc-sw.is-c0{background:var(--c0);box-shadow:inset 0 0 0 1px var(--hair3)}
.rc-sw.is-c3{background:var(--c3)}
.rc-sw.is-c4{background:var(--c4)}

/* ---- heatmap: a real table in a labelled scroll region ---- */
.rc-hmw{overflow-x:auto}
.rc-hm{width:100%;min-width:780px;table-layout:fixed;border-collapse:separate;border-spacing:2px}
.rc-hm thead th:first-child{width:120px}
.rc-hm th,.rc-hm td{padding:4px 6px;text-align:center;font-size:var(--xs);font-weight:400;font-variant-numeric:tabular-nums}
.rc-hm thead th{vertical-align:bottom;line-height:1.25;color:var(--mu)}
.rc-hm tbody th{padding-left:0;text-align:left;font-size:var(--sm);color:var(--ink)}
.rc-hm td{height:34px;border-radius:4px;vertical-align:middle}
.rc-hm td.is-w{color:var(--surf)}
.rc-hm td.is-k{color:var(--ink)}
.rc-hm td.is-o{box-shadow:inset 0 0 0 1px var(--hair3)}
.rc-hm .is-sum{font-weight:500}
.rc-hm td.is-grand{font-weight:600}

/* ---- hbar: name, track, value; note and side under ---- */
.rc-hb{display:grid;grid-template-columns:150px minmax(0,1fr) 92px;grid-template-areas:"n t v" ". note side";gap:0 12px;align-items:center;padding:7px 0;font-size:var(--sm)}
.rc-hb-name{grid-area:n;overflow-wrap:anywhere}
.rc-trk{grid-area:t;height:16px;background:var(--tint);border-radius:3px}
.rc-fill{display:block;height:100%;min-width:2px;border-radius:3px;background:var(--ink)}
.rc-fill.is-now{background:var(--acc)}
.rc-fill.is-alt{background:var(--c2)}
.rc-fill.is-other{background:var(--c1);box-shadow:inset 0 0 0 1px var(--hair3)}
.rc-fill.is-hollow{background:var(--surf);box-shadow:inset 0 0 0 1px var(--hair3)}
.rc-hb-v{grid-area:v;text-align:right;font-weight:500}
.rc-hb.is-na .rc-hb-v{font-size:var(--xs);font-weight:400}
.rc-hb-note{grid-area:note;margin-top:2px;font-size:var(--xs);color:var(--mu)}
.rc-hb-side{grid-area:side;margin-top:2px;text-align:right;font-size:var(--xs);color:var(--mu)}
.rc-tag{display:inline-block;margin-left:8px;padding:2px 8px;border:1px solid var(--hair2);border-radius:6px;font-size:var(--xs);line-height:1.4;color:var(--mu)}
/* sm: Investor co-holders. Name and count on one line, a 6 px hair track under */
.rc-hbar.is-sm .rc-hb{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n v" "t t" "note note" "side side";gap:0 16px;padding:12px 0;border-bottom:1px solid var(--hair2)}
.rc-hbar.is-sm .rc-hb:first-child{padding-top:0}
.rc-hbar.is-sm .rc-trk{height:6px;margin-top:8px;background:var(--hair)}
.rc-hbar.is-sm .rc-hb-side{text-align:left}

/* ---- stack100: one 22 px bar per row ---- */
.rc-sk{display:grid;grid-template-columns:150px minmax(0,1fr) 72px;gap:0 12px;align-items:center;padding:7px 0;font-size:var(--sm)}
.rc-sk-name{overflow-wrap:anywhere}
.rc-sk-n{text-align:right;font-size:var(--xs);color:var(--mu)}
.rc-bar{display:flex;height:22px;border-radius:3px;overflow:hidden;background:var(--tint)}
.rc-seg{height:22px;min-width:0}
.rc-seg+.rc-seg{box-shadow:inset 1px 0 0 var(--surf)}
.rc-seg.is-c4{background:var(--c4)}
.rc-seg.is-c3{background:var(--c3)}
.rc-seg.is-c2{background:var(--c2)}
.rc-seg.is-c1{background:var(--c1)}
.rc-seg.is-c0{background:var(--c0);box-shadow:inset 0 0 0 1px var(--hair3)}

/* ---- box and range rows: 36 px stretched SVG plot between a name and a figure ---- */
.rc-bxr{display:grid;grid-template-columns:260px minmax(0,1fr) 112px;gap:0 20px;align-items:center;min-height:36px}
.rc-bxn{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;font-size:var(--sm)}
.rc-bxn .nm{overflow-wrap:anywhere}
.rc-bxn .nn{font-size:var(--xs);color:var(--mu);white-space:nowrap}
.rc-bxm{text-align:right;font-size:var(--sm);font-weight:500;white-space:nowrap}
.rc-bxh{min-height:24px}
.rc-bxh .rc-bxm{font-size:var(--xs);font-weight:400;color:var(--mu)}
.rc-bxr.is-on .nm{color:var(--acc);font-weight:500}
.rc-bxp{position:relative;min-width:0}
.rc-bxp .plot-svg{display:block;width:100%;height:36px;overflow:visible}
.rc-bxp .plot-svg *{vector-effect:non-scaling-stroke}
.rc-bxp .m-grid{stroke:var(--hair);stroke-width:1}
.rc-bxp .rp-one{stroke:var(--hair3)}
.rc-bxp .rp-mk{stroke:var(--acc);stroke-width:1.5;stroke-dasharray:4 3;fill:none}
.rc-bxp .rp-wh{stroke:var(--ink);stroke-width:1}
.rc-bxp .rp-wh.is-on{stroke:var(--acc)}
.rc-bxp .rp-box{fill:var(--c0);stroke:var(--hair3);stroke-width:1}
.rc-bxp .rp-box.m-hollow{fill:var(--surf);stroke:var(--hair3)}
.rc-bxp .rp-box.m-now{fill:var(--acc);stroke:var(--acc)}
.rc-bxp .rp-md{stroke:var(--ink);stroke-width:2}
.rc-bxp .rp-md.is-on{stroke:var(--surf)}
.rc-bxp .rp-sbox{fill:var(--hair3);stroke:var(--hair3);stroke-width:1}
.rc-bxp .rp-sbox.is-h{fill:var(--surf)}
.rc-bxp .rp-smd{stroke:var(--ink);stroke-width:3}
.rc-bxp .rp-smd.is-h{stroke:var(--hair3)}
.rc-bxa{min-height:0}
.rc-axis{height:24px;border-top:1px solid var(--ink)}
.rc-axis .al{position:absolute;top:4px;transform:translateX(-50%);font-size:var(--xs);line-height:1.3;color:var(--mu);white-space:nowrap}
.rc-bxk .rc-bxp{height:24px}
.rc-bxk .bk{position:absolute;top:2px;font-size:var(--xs);font-weight:500;line-height:1.3;color:var(--acc);white-space:nowrap}
.rc-bxk .bk.is-end{transform:translateX(-100%)}

/* ---- gauge: 24 px track, ticks under, marker label above ---- */
.rc-gg+.rc-gg{margin-top:var(--g4)}
.rc-gtt{margin:0;font-size:var(--sm);font-weight:500}
.rc-gtrk{position:relative;height:24px;margin-top:44px}
.rc-gtrk .plot-svg{position:absolute;left:0;top:0;width:100%;height:24px;overflow:visible;display:block}
.rc-gtrk .plot-svg *{vector-effect:non-scaling-stroke}
.rc-gtrk .gg-band{stroke:var(--hair3);stroke-width:1}
.rc-gtrk .gg-band.m-c0{fill:var(--c0)}
.rc-gtrk .gg-band.m-c1{fill:var(--c1)}
.rc-gtrk .gg-tick{stroke:var(--ink);stroke-width:1}
.rc-gtrk .gg-mark{stroke:var(--acc);stroke-width:3}
.rc-tri{position:absolute;top:-12px;width:14px;height:10px;background:var(--acc);clip-path:polygon(0 0,100% 0,50% 100%);transform:translateX(-50%)}
.rc-gm{position:absolute;top:-38px;transform:translateX(-50%);font-size:var(--sm);font-weight:600;color:var(--acc);white-space:nowrap}
.rc-gtk{position:relative;height:44px;margin-top:8px}
.rc-gtk span{position:absolute;top:0;transform:translateX(-50%);text-align:center;font-size:var(--xs);line-height:1.35;color:var(--ink);white-space:nowrap}
.rc-gtk i{display:block;font-style:normal;color:var(--mu)}

@media (max-width:700px){
.rc-hm td{height:32px}
/* hbar and stack100: name and value on one line, the bar full width under it */
.rc-hb,.rc-hbar.is-sm .rc-hb{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n v" "t t" "note note" "side side";gap:0 12px;padding:9px 0}
.rc-hbar.is-sm .rc-hb{padding:12px 0}
.rc-hbar.is-sm .rc-hb:first-child{padding-top:0}
.rc-hb .rc-trk{margin-top:6px}
.rc-hb-side{text-align:left}
.rc-sk{grid-template-columns:minmax(0,1fr) auto;gap:0 12px;padding:9px 0}
.rc-sk-name{grid-column:1;grid-row:1}
.rc-sk-n{grid-column:2;grid-row:1}
.rc-sk .rc-bar{grid-column:1/-1;grid-row:2;margin-top:6px}
/* box and range rows: name and figure on one line, the plot full width under it */
.rc-bxr{grid-template-columns:minmax(0,1fr) auto;gap:0 12px;padding-top:10px}
.rc-bxn{order:1;justify-content:flex-start}
.rc-bxm{order:2}
.rc-bxp{order:3;grid-column:1/-1}
.rc-bxh{display:none}
.rc-plot.is-box .rc-bxr:not(.rc-bxa) .rc-bxm:after{content:" median";font-size:var(--xs);font-weight:400;color:var(--mu)}
.rc-bxa,.rc-bxk{grid-template-columns:minmax(0,1fr);padding-top:0}
.rc-bxa>div:not(.rc-bxp){display:none}
.rc-axis .al.alt{visibility:hidden}
/* gauge: tick labels alternate between two rows */
.rc-gtk{height:84px}
.rc-gtk span:nth-child(even){top:42px}
}

/* ---- 74_network.css ---- */
/* Investor network (DESIGN.md 7.3). Markup: templates/components/network.html. Prefix nw-.
   The map is laid out in a 1316 x 780 space and placed in percent, so it scales with its box. Below 1040 px it
   scrolls sideways inside .nw-scroll. Colors are tokens; dots are circles (50%), cards use --r and 6 px. */
.nw-scroll{overflow-x:auto}
.nw{position:relative;min-width:1040px;aspect-ratio:1316/780;margin-top:var(--g3)}
.nw .plot-svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block;overflow:visible}
.nw-e{fill:none;stroke-width:1;vector-effect:non-scaling-stroke}
.nw-c{stroke:var(--c3)}
.nw-h{stroke:var(--c2)}
.nw-x{stroke-dasharray:5 4}
.nw-hot{stroke:var(--acc);stroke-width:1.75}

/* company dots: ink when active, --c2 when idle, white with an ink ring when ceased, accent when selected */
.nw-dot,.nw-hd,.nw-ct{position:absolute;font-family:inherit;cursor:pointer}
.nw-dot{display:block;padding:0;border:2px solid var(--ink);border-radius:50%;background:var(--ink);transform:translate(-50%,-50%)}
.nw-dot.is-idle{background:var(--c2);border-color:var(--c2)}
.nw-dot.is-cea{background:var(--surf);border-color:var(--ink)}
.nw-dot.is-sel{background:var(--acc);border-color:var(--acc)}
.nw-dot.is-cea.is-sel{background:var(--surf);border-color:var(--acc)}
/* hit areas reach 40 px: the dot and the card are smaller than the target, the ::after is not */
.nw-dot::after{content:"";position:absolute;inset:-15px}
.nw-hd::after{content:"";position:absolute;inset:-5px 0}
.nw-l{position:absolute;padding:0 2px;font-size:var(--xs);line-height:14px;color:var(--ink);white-space:nowrap;pointer-events:none;background:color-mix(in srgb,var(--surf) 85%,transparent)}
.nw-l.is-n{transform:translate(-50%,-100%)}
.nw-l.is-s{transform:translate(-50%,0)}
.nw-l.is-e{transform:translate(0,-50%)}
.nw-l.is-w{transform:translate(-100%,-50%)}
.nw-l.is-on{font-weight:600}

/* holder cards: 164 x 30 */
.nw-hd{display:flex;align-items:center;width:164px;height:30px;padding:0 8px;border:1px solid var(--c2);border-radius:6px;background:var(--surf);color:var(--ink);font-size:var(--xs);line-height:1.1;text-align:left;text-decoration:none;white-space:nowrap;overflow:visible;transform:translate(-50%,-50%)}
.nw-hd.is-sel{border:2px solid var(--acc);font-weight:600}

/* centre card: 200 x 58 */
.nw-ct{display:flex;flex-direction:column;justify-content:center;width:200px;height:58px;padding:4px 8px;border:2px solid var(--ink);border-radius:var(--r);background:var(--ink);color:var(--surf);font-size:var(--sm);font-weight:500;line-height:1.25;text-align:left;text-decoration:none;transform:translate(-50%,-50%)}
.nw-ct small{display:block;font-size:var(--xs);font-weight:400}
.nw-ct.is-sel{outline:2px solid var(--acc);outline-offset:3px}

/* legend dots (10 px) */
.nw-sw{flex:none;display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ink)}
.nw-sw.is-idle{background:var(--c2)}
.nw-sw.is-cea{background:var(--surf);border:2px solid var(--ink)}

/* ---- 76_timeline.css ---- */
/* Company timeline (round 2, A1) and the facts strip (A2). Markup: templates/components/timeline.html; marks: charts/lanes.py.
   Classes: tl- for the timeline, fs- for the facts strip. Only tokens for color, size and radius. */

/* ---- section ---- */
.tl-panel .sh { margin-bottom: 0; }
.tl-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; margin: 20px 0 0; padding: 0; list-style: none; font-size: var(--xs); color: var(--mu); }
.tl-legend li { display: inline-flex; align-items: center; gap: 8px; }
.tl-lg { position: relative; display: inline-block; flex: none; box-sizing: border-box; width: 14px; height: 14px; border-radius: 50%; }
.tl-lg.up { background: var(--ink); border: 2px solid var(--ink); }
.tl-lg.flat { background: var(--surf); border: 2px solid var(--hair3); }
.tl-lg.down { background: var(--surf); border: 2px dashed var(--ink); }
.tl-lg.first { background: var(--surf); border: 2px solid var(--ink); }
.tl-lg.first::before { content: ""; position: absolute; left: 50%; top: 50%; width: 4px; height: 4px; margin: -2px 0 0 -2px; border-radius: 50%; background: var(--ink); }
.tl-lg.np { width: 10px; height: 10px; border-radius: 3px; background: var(--surf); border: 1.5px solid var(--hair3); }

/* ---- chart box: lane titles | plot, then the axis row ---- */
.tl-scroll { margin-top: 20px; overflow-x: auto; overflow-y: hidden; }
.tl-box { position: relative; display: grid; grid-template-columns: 132px minmax(0, 1fr); direction: ltr; }
.tl-labs { position: sticky; left: 0; z-index: 5; grid-column: 1; grid-row: 1 / 3; min-height: var(--h); background: var(--surf); }
.tl-lab { position: absolute; left: 0; width: 100%; box-sizing: border-box; padding: 14px 12px 0 0; border-top: 1px solid var(--hair2); font-size: var(--sm); font-weight: 500; line-height: 1.3; }
.tl-lab small { display: block; margin-top: 2px; font-size: var(--xs); font-weight: 400; color: var(--mu); }
.tl-plot { position: relative; grid-column: 2; grid-row: 1; height: var(--h); margin: 0 20px; }
.tl-plot > .plot-svg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.tl-plot .plot-svg :is(rect, line, path) { vector-effect: non-scaling-stroke; }
.tl-axis { position: relative; grid-column: 2; grid-row: 2; height: 56px; margin: 0 20px; }

/* svg marks */
.m-shade { fill: var(--tint); }
.m-yr { stroke: var(--hair); stroke-width: 1; }
.m-lane { stroke: var(--hair2); stroke-width: 1; }
.m-ldr { stroke: var(--hair2); stroke-width: 1; }
.m-grant { fill: var(--c3); }
.m-hc { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linejoin: miter; }
.m-ftick { stroke: var(--ink); stroke-width: 12; stroke-linecap: butt; }

/* text over the plot */
.tl-shl { position: absolute; left: 0; font-size: var(--xs); line-height: 16px; color: var(--mu); white-space: nowrap; pointer-events: none; }
.tl-fin { position: absolute; left: 0; font-size: var(--xs); line-height: 16px; color: var(--mu); white-space: nowrap; transform: translateY(-100%); pointer-events: none; }
.tl-empty { position: absolute; left: 0; margin: 0; font-size: var(--sm); color: var(--mu); }
.tl-v { position: absolute; z-index: 2; transform: translateX(-50%); font-size: var(--xs); line-height: 16px; color: var(--mu); white-space: nowrap; pointer-events: none; }
.tl-v.a-start { transform: none; }
.tl-v.a-end { transform: translateX(-100%); }
.tl-v.on { color: var(--acc); font-weight: 600; }
.tl-v2 { display: block; font-size: var(--xs); font-weight: 400; color: var(--mu); }
.tl-v.on .tl-v2 { color: var(--acc); font-weight: 500; }
.tl-cap { position: absolute; z-index: 2; box-sizing: border-box; width: max-content; max-width: 230px; margin: 0; font-size: var(--xs); line-height: 1.35; color: var(--mu); pointer-events: none; }
.tl-cap b { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-weight: 500; color: var(--ink); }
.tl-cap.a-end { transform: translateX(-100%); text-align: right; }
.tl-cap.ev { max-width: 220px; margin-left: -8px; }
.tl-cap.ev.a-end { margin-left: 0; margin-right: -8px; }
.tl-cap.on b { color: var(--acc); }

/* rounds: circles by step-up, area by cash */
.tl-d { position: absolute; z-index: 1; box-sizing: border-box; width: var(--d); height: var(--d); margin: 0; padding: 0; border-radius: 50%; transform: translate(-50%, -50%); background: var(--ink); border: 2px solid var(--ink); }
.tl-d::after { content: ""; position: absolute; inset: -14px; }
.tl-d.up { background: var(--ink); border-color: var(--ink); }
.tl-d.flat { background: var(--surf); border-color: var(--hair3); }
.tl-d.down { background: var(--surf); border: 2px dashed var(--ink); }
.tl-d.unk { background: var(--surf); border: 2px dotted var(--hair3); }
.tl-d.first { background: var(--surf); border-color: var(--ink); }
.tl-d.first::before { content: ""; position: absolute; left: 50%; top: 50%; width: 5px; height: 5px; margin: -2.5px 0 0 -2.5px; border-radius: 50%; background: var(--ink); }
.tl-d.np { border-radius: 3px; background: var(--surf); border: 1.5px solid var(--hair3); }
.tl-d.on { box-shadow: 0 0 0 3px var(--surf), 0 0 0 5px var(--acc); }

/* grants: the bar is an svg rect; this link sits exactly over it */
.tl-g { position: absolute; z-index: 1; box-sizing: border-box; display: block; overflow: hidden; margin: 0; padding: 0; text-decoration: none; }
.tl-g.on { overflow: visible; box-shadow: 0 0 0 2px var(--surf), 0 0 0 4px var(--acc); }
.tl-gt { display: block; padding: 0 10px; font-size: var(--sm); font-weight: 500; line-height: 26px; color: var(--surf); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tl-gx { position: absolute; z-index: 2; font-size: var(--sm); font-weight: 500; line-height: 26px; color: var(--ink); white-space: nowrap; pointer-events: none; }
.tl-gx.a-end { transform: translateX(-100%); }

/* headcount, filings, events */
.tl-h { position: absolute; z-index: 1; width: 12px; height: 12px; box-sizing: border-box; margin: 0; padding: 0; border-radius: 50%; background: var(--ink); border: 2px solid var(--surf); box-shadow: 0 0 0 1px var(--ink); transform: translate(-50%, -50%); }
.tl-h::after { content: ""; position: absolute; inset: -14px; }
.tl-h.on { box-shadow: 0 0 0 1px var(--ink), 0 0 0 4px var(--surf), 0 0 0 6px var(--acc); }
.tl-tk { position: absolute; z-index: 1; width: 12px; transform: translateX(-50%); background: transparent; }
.tl-tk::after { content: ""; position: absolute; top: -20px; bottom: 0; left: -14px; right: -14px; }
.tl-tk.on { background: var(--acc); }
.tl-e { position: absolute; z-index: 1; box-sizing: border-box; width: 14px; height: 14px; margin: 0; padding: 0; background: var(--ink); border: 2px solid var(--ink); transform: translate(-50%, -50%) rotate(45deg); }
.tl-e::after { content: ""; position: absolute; inset: -12px; }
.tl-e.on { box-shadow: 0 0 0 3px var(--surf), 0 0 0 5px var(--acc); }

/* axis labels */
.tl-ax { position: absolute; top: 10px; font-size: var(--xs); line-height: 16px; color: var(--mu); white-space: nowrap; transform: translateX(-50%); }
.tl-ax.e { top: 32px; }
.tl-ax.a-start { transform: none; }
.tl-ax.a-end { transform: translateX(-100%); }

/* ---- working under the chart, and the table of every point ---- */
.tl-wk { margin-top: var(--g3); }
.tl-wsub { margin: 0 0 12px; font-size: var(--sm); color: var(--mu); max-width: 56em; }
.tl-wk:empty { display: none; }
.tl-pts { margin-top: var(--g5); }
.tl-pts .tw { margin-top: var(--g2); }
.tl-pts .tb th.rh { width: 130px; }
.tl-pts .tb th:nth-child(3), .tl-pts .tb th:nth-child(4), .tl-pts .tb th:nth-child(5) { width: 130px; }
.tl-pts .tb th:nth-child(6) { width: 110px; }
.tl-w { display: inline; font-size: var(--sm); font-weight: 500; }
.tl-pts .tb td small { display: block; margin-top: 2px; font-size: var(--xs); color: var(--mu); }
.tl-more { margin: var(--g2) 0 0; }
.tl-pts .tb tr.sel { background: var(--tint); }
.tl-pts .tb th { white-space: nowrap; }
.tl-pts .tb th .mk { margin-left: 6px; vertical-align: 1px; }
.tl-pts .tb td, .tl-pts .tb th.rh { padding-top: 12px; padding-bottom: 12px; }
.tl-v:has(.tl-v2) { color: var(--ink); }

/* ---- facts strip ---- */
.fs-grid { display: grid; gap: var(--g2); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fs-grid.n1 { grid-template-columns: minmax(0, 1fr); max-width: 360px; }
.fs-grid.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fs-grid.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fs-c { display: flex; flex-direction: column; min-width: 0; padding: 18px 20px 12px; background: var(--surf); border: 1px solid var(--hair); border-radius: var(--r); box-shadow: var(--sh); }
.fs-c.open { border-color: var(--ink); }
.fs-t { flex: 1 1 auto; padding-bottom: 12px; }
.fs-t b { display: block; font-size: var(--ms); font-weight: 500; letter-spacing: -0.015em; line-height: 1.25; }
.fs-t p { margin: 8px 0 0; font-size: var(--sm); color: var(--mu); }
.fs-c .tg { align-self: flex-start; margin-top: auto; }
.fs-wk { margin-top: var(--g3); }
.fs-wk:empty { display: none; }

@media (max-width: 1100px) {
  .fs-grid, .fs-grid.n3, .fs-grid.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-grid.n1 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .tl-pts { margin-top: var(--g4); }
  .tl-pts .tb th.rh, .tl-pts .tb th:nth-child(n+3) { width: auto; }
  .fs-grid { gap: 10px; }
  .fs-c { padding: 16px 14px 6px; }
  .fs-t b { font-size: var(--md); font-weight: 600; letter-spacing: -0.01em; }
  .fs-t p { font-size: var(--xs); }
      }

/* ---- 79_page_legal.css ---- */
/* Terms and API terms (templates/pages/terms.html, api_terms.html). The global reset removes list markers, so a legal bullet list
   gets them back inside the Document body. Tokens only. */
.lay-doc-body .pg-legal-list{margin:var(--g2) 0 0;padding-left:1.25em;list-style:disc}
.lay-doc-body .pg-legal-list li{margin-top:var(--g1);padding-left:4px}
.lay-doc-body .pg-legal-list li::marker{color:var(--mu)}

/* ---- 80_page_saved.css ---- */
/* 80_page_saved.css: executor Q5 (saved). Page classes are pg-saved-*. Only layout the components do not give. Tokens only. */

.pg-saved-body{padding-top:var(--g3)}

/* the three tables share the .tb look; these set their minimum widths and vertical rhythm */
.pg-saved-tb th,.pg-saved-tb td{vertical-align:middle}
.pg-saved-tb thead th{vertical-align:bottom}
.pg-saved-ts{--tmin:1180px}
.pg-saved-tl{--tmin:720px}
.pg-saved-ta{--tmin:860px}
.pg-saved-ts th.co{min-width:180px}
.pg-saved-f{min-width:220px;max-width:340px}
.pg-saved-act{width:1%;white-space:nowrap;text-align:right}
.pg-saved-act .btn{vertical-align:middle}
.pg-saved-act .ra{vertical-align:middle;margin-left:6px}
.pg-saved-tb td.act form{margin:0;display:flex;justify-content:flex-end}
.pg-saved-sw{margin:0;display:flex;align-items:center;gap:12px}
.pg-saved-nb{margin-top:var(--g3);max-width:60em}

/* round 2 (A5): the Alerts tab's lead line with New alert, the events list, and the New alert dialog's checkbox rows */
.pg-saved-alh{display:flex;justify-content:flex-end;padding-bottom:12px}
.pg-saved-tv{--tmin:860px}
.pg-saved-tv th.co{min-width:240px}
.pg-saved-evs{display:grid;grid-template-columns:minmax(0,1fr)}
.pg-saved-evs .ck .mk{margin-left:8px}
.pg-saved-nb a{color:var(--ink)}

/* a list: title and cap at the left, its actions at the right */
.pg-saved-list+.pg-saved-list{margin-top:var(--g5)}
.pg-saved-lh{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 32px;padding-bottom:20px}
.pg-saved-lh h2{font-size:var(--lg);letter-spacing:-0.02em;line-height:1.2}
.pg-saved-lh .cap{margin-top:4px}
.pg-saved-la{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}

/* inline panels: edit a saved search, make a new list */
.pg-saved-pn{max-width:560px;margin-top:var(--g3)}
.pg-saved-pn h2{font-size:var(--lg);letter-spacing:-0.02em;line-height:1.2;margin-bottom:var(--g2)}
.pg-saved-form{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.pg-saved-pn .cfm-d{margin-top:var(--g3);padding-top:var(--g3);border-top:1px solid var(--hair)}

/* the Add to list popover in place, under one company row */
.pg-saved-add{margin-top:var(--g6)}
.pg-saved-add h2{font-size:var(--xl)}
.pg-saved-add .cap{margin-top:8px}
.pg-saved-ctx{margin-top:var(--g3);min-height:380px;border:1px solid var(--hair);border-radius:var(--r);padding:20px;background:var(--page)}
.pg-saved-rel{position:relative}
.pg-saved-mrow{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r2);padding:10px 12px 10px 16px}
.pg-saved-mrow .co{font-size:var(--md);font-weight:500;letter-spacing:-0.01em}
.pg-saved-mrow .co small{display:block;font-size:var(--xs);font-weight:400;color:var(--mu);letter-spacing:0}

@media (max-width:700px){
.pg-saved-body{padding-top:var(--g2)}
.pg-saved-ctx{min-height:0;padding:14px}
.pg-saved-act{width:auto;text-align:left}
.pg-saved-act .ra{margin-left:0}
.pg-saved-pn{max-width:none}
.pg-saved-add{margin-top:64px}
/* saved searches as cards: name, then On, Results now and Filed this week across, filters, Alert and Shared, actions */
.pg-saved-ts tr.row{grid-template-columns:repeat(6,minmax(0,1fr))}
.pg-saved-ts tr.row>th{order:0}
.pg-saved-ts .pg-saved-on{grid-column:span 2;order:1}
.pg-saved-ts .pg-saved-now{grid-column:span 2;order:2}
.pg-saved-ts .pg-saved-wk{grid-column:span 2;order:3}
.pg-saved-ts .pg-saved-f{grid-column:1/-1;order:4;min-width:0;max-width:none}
.pg-saved-ts .pg-saved-al{grid-column:span 3;order:5}
.pg-saved-ts .pg-saved-sh{grid-column:span 3;order:6}
.pg-saved-ts .pg-saved-act{grid-column:1/-1;order:7;display:flex;align-items:center;gap:6px}
/* lists as cards: company, then the three figures across; Remove sits top right (the shared .act rule) */
.pg-saved-tl tr.row{grid-template-columns:1.5fr 1fr .7fr}
.pg-saved-tl tr.row>td:nth-child(2){grid-column:1}
.pg-saved-tl .act form{display:block}
/* the events list as cards: company, then the latest event, its date, the post-money and the count across */
.pg-saved-tv tr.row{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg-saved-tv .act form{display:block}
.pg-saved-alh .btn{width:100%}
/* alerts as cards: the switch gets its own row */
.pg-saved-ta tr.row>td:last-child{grid-column:1/-1}
}

/* ---- 81_page_discover.css ---- */
/* 81_page_discover.css: Discover (Market pulse). Classes prefixed pg-discover-. Tokens only. */
.pg-discover-note { margin: var(--g2) 0 0; max-width: 56em; font-size: var(--xs); color: var(--mu); }
.pg-discover-link { margin: var(--g1) 0 0; }
.lay-dashboard #heat .rc-note { margin-top: var(--g2); }

/* ---- 81_page_events.css ---- */
/* 81_page_events.css: Events (round 2, A4; refined in W9 R2). Page classes are pg-events-*. Only layout the components do not give. Tokens only. */

.pg-events-w{margin-top:var(--g4);margin-bottom:var(--g4)}

/* the count chips: links that toggle an event type; the picked ones take the accent ring */
.pg-events-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:8px}
.pg-events-chip{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;min-height:84px;color:var(--ink);text-decoration:none;background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r);padding:14px 16px}
.pg-events-chip:hover{border-color:var(--ink)}
.pg-events-chip[aria-current="true"]{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.pg-events-chip .n{font-size:var(--lg);font-weight:500;letter-spacing:-0.02em;line-height:1.1}
.pg-events-chip .l{font-size:var(--sm);line-height:1.3}
.pg-events-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}

/* the filter bar: the shared .fbar and .fb */
.pg-events-bar{gap:10px}
.pg-events-bar .fb .ico{width:14px;height:14px}
.pg-events-bar .tl{min-height:40px}

.rpn .rcount .mk.live{display:inline-flex;margin-left:8px;vertical-align:2px}

/* the list: a real table; seven columns, the three figures aligned on the right */
.pg-events-tw{margin-top:var(--g3)}
.pg-events-tb{--tmin:1040px;table-layout:fixed}
.pg-events-hd{width:104px}
.pg-events-ht{width:230px}
.pg-events-hn{width:124px}
.pg-events-hp{width:160px;white-space:nowrap}
.pg-events-hw{width:132px}
.pg-events-tb thead .mk{margin-left:4px;vertical-align:1px}
.pg-events-tb th.co{width:auto;min-width:0}
.pg-events-t{vertical-align:middle}
.pg-events-t .mk{white-space:normal;line-height:1.3;text-align:left}
.pg-events-t .mk+.mk{margin-top:4px}
.pg-events-x{color:var(--ink2)}
.pg-events-a{white-space:nowrap;text-align:right}
.pg-events-tb tr.wrow>td{padding:0 0 20px}
.pg-events-tb .wp{max-width:980px}

@media (max-width:700px){
.pg-events-w{margin-top:var(--g3);margin-bottom:var(--g3)}
.pg-events-chips{display:flex;overflow-x:auto;gap:8px;padding-bottom:6px;scroll-snap-type:x proximity}
.pg-events-chip{flex:none;width:148px;scroll-snap-align:start}
.pg-events-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px}
.pg-events-bar .fw{display:block;grid-column:1/-1}
.pg-events-bar .fb{width:100%;justify-content:flex-start;min-height:44px}
.pg-events-bar .fb .ico{margin-left:auto}
.pg-events-bar .tl{padding:6px 0}
.fbar.pg-events-bar .fw .fpop,.fbar.pg-events-bar .fw .fpop.fpop-wide{position:static;width:auto;min-width:0;max-width:none;margin-top:8px}
/* rows stack: date and event on one line, company under, then the three figures across, then the working toggle */
.pg-events-tb{table-layout:auto}
.pg-events-tb tr.pg-events-r{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"d t t" "c c c" "f1 f2 f3" "a a a";gap:10px 12px;align-items:start}
.pg-events-tb tr.pg-events-r>td.pg-events-d{grid-area:d;font-size:var(--sm);font-weight:500;align-self:center}
.pg-events-tb tr.pg-events-r>td.pg-events-t{grid-area:t;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;min-width:0}
.pg-events-tb tr.pg-events-r>th.pg-events-c{grid-area:c;padding-right:0}
.pg-events-tb tr.pg-events-r>td.pg-events-f1{grid-area:f1}
.pg-events-tb tr.pg-events-r>td.pg-events-f2{grid-area:f2}
.pg-events-tb tr.pg-events-r>td.pg-events-f3{grid-area:f3}
.pg-events-tb tr.pg-events-r>td.pg-events-x{grid-area:f1;grid-column:1/-1}
.pg-events-tb tr.pg-events-r>td.pg-events-a{grid-area:a;justify-self:start}
.pg-events-tb .pg-events-t .mk{max-width:100%;text-align:right}
.pg-events-tb .pg-events-t .mk+.mk{margin-top:0}
.pg-events-tb th.co{width:auto}
}

/* ---- 81_page_signals.css ---- */
/* 81_page_signals.css: Signals. Classes prefixed pg-signals-. Tokens only. One card per signal: a heading with the count, a closed Rule disclosure,
   then a table of the matches. */
.pg-signals-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--g5); }
.pg-signals-card { min-width: 0; }
.pg-signals-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--g3); }
.pg-signals-head h2 { margin: 0; text-wrap: balance; }
.pg-signals-head h2 .mk { margin-left: var(--g1); vertical-align: middle; }
.pg-signals-n { display: flex; align-items: baseline; gap: var(--g2); margin: 0; flex: none; }
.pg-signals-big { font-size: var(--num); font-weight: 500; letter-spacing: -0.045em; line-height: 1; }
.pg-signals-basis { font-size: var(--sm); color: var(--mu); }
.pg-signals-rule { margin: var(--g1) 0 var(--g2); font-size: var(--sm); color: var(--mu); }
.pg-signals-rule summary { cursor: pointer; width: max-content; min-height: 28px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 3px; }
.pg-signals-rule p { margin: var(--g1) 0 0; max-width: 56em; }
.pg-signals-card .tw { margin-top: var(--g2); }
.pg-signals-sub { display: block; font-size: var(--xs); color: var(--mu); }
.pg-signals-card .wlink { font-size: var(--sm); white-space: nowrap; }
.pg-signals-more { margin-top: var(--g2); }
.pg-signals-soon { margin: var(--g2) 0 0; font-size: var(--md); color: var(--mu); }
.pg-signals-tg { display: inline-block; margin: 0 6px 6px 0; padding: 5px 8px; font-size: var(--xs); line-height: 1.2; border: 1px solid var(--hair2); border-radius: 6px; }
.pg-signals-hwk { margin-top: var(--g3); max-width: 760px; }
/* sources not connected yet: a title and the Coming mark */
.pg-signals-coming { display: grid; gap: 0; margin: var(--g5) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--hair2); }
.pg-signals-coming li { display: flex; align-items: center; justify-content: space-between; gap: var(--g2); padding: var(--g2) 0; border-bottom: 1px solid var(--hair2); font-size: var(--md); }
@media (max-width: 700px) {
  .pg-signals-head { flex-direction: column; align-items: flex-start; gap: var(--g1); }
  .pg-signals-grid { gap: var(--g4); }
}
.pg-signals-card td a + a{margin-left:var(--g2)}

/* ---- 82_page_rounds.css ---- */
/* 82_page_rounds.css: executor P2 (rounds, companies, investors, not_found, server_error). Page classes are pg-<page>-*.
   Only layout the components do not give. Tokens only. */

/* companies: the large search field under the title, and the header-search specimen */
.pg-companies-search{position:relative;max-width:880px}
.pg-companies-search .ico{position:absolute;left:16px;top:17px;color:var(--mu);pointer-events:none}
.pg-companies-search .in{width:100%;min-height:52px;padding-left:46px}
.pg-companies-hint{margin:var(--g2) 0 var(--g4)}
.pg-companies-ta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--g4) 96px;align-items:start}
@media (max-width:900px){
.pg-companies-ta{grid-template-columns:minmax(0,1fr);gap:var(--g4)}
}

/* investors: the note under the list */
.pg-investors-note{max-width:56em}

/* ---- 83_page_company.css ---- */
/* Company X-ray page (templates/pages/company.html). Layout the components do not give: the header actions, the sticky section menu beside the
   sections, the Summary rows, the Details table, "More" disclosures, charge and filing lists, the dot plot of companies like this, and the old pairs (two panels side
   by side, the runway beside its table). Tokens only; classes begin pg-company-. */

/* ---- header: name on the left, actions on the right ---- */
.pg-company-idr{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--g3) var(--g4)}
.pg-company-idl{min-width:0}
.pg-company-act{position:relative}
.pg-company-actf{display:flex;flex-wrap:wrap;align-items:center;gap:var(--g1)}
.pg-company-actm{display:none;align-items:center;gap:var(--g1)}
.pg-company-inl{border-color:var(--ink)}
.pg-company-inl .ico{fill:currentColor}
.pg-company-act .ib.sm{width:40px;height:40px}
.pg-company-pm{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 20px;font-size:var(--sm);color:var(--ink);text-decoration:none}
.pg-company-pm:hover{background:var(--tint)}
.pg-company-shr{display:grid;gap:12px;padding:8px 20px 4px}
.pg-company-url{padding:10px 12px;border:1px solid var(--hair2);border-radius:var(--r2);background:var(--surf);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--sm);overflow-wrap:anywhere}
.pg-company-shl{display:flex;flex-wrap:wrap;gap:4px 20px;padding:4px 20px 8px}
.pg-company-shl a{display:inline-flex;align-items:center;min-height:40px}

/* ---- the section menu and the sections ---- */
.pg-company-pw{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--g5);margin-top:var(--g5);align-items:start}
.pg-company-pc{min-width:0}
.pg-company-menu{position:sticky;top:16px;display:grid;border-top:1px solid var(--ink);padding-top:8px}
.pg-company-menu a,.pg-company-menu .cm{display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:0 8px;min-height:36px;padding:7px 0;font-size:var(--sm);color:var(--mu);text-decoration:none}
.pg-company-menu a:hover{color:var(--ink)}
/* the section in view, without JavaScript: the section the address points at, or Summary before any link is followed */
.pg-company-pw:not(:has(.pg-company-pc :target)) .pg-company-menu a[href="#summary"],
.pg-company-pw:has(#summary:target) .pg-company-menu a[href="#summary"],
.pg-company-pw:has(#details:target) .pg-company-menu a[href="#details"],
.pg-company-pw:has(#timeline:target) .pg-company-menu a[href="#timeline"],
.pg-company-pw:has(#signals:target) .pg-company-menu a[href="#signals"],
.pg-company-pw:has(#rounds:target) .pg-company-menu a[href="#rounds"],
.pg-company-pw:has(#shares:target) .pg-company-menu a[href="#shares"],
.pg-company-pw:has(#ownership:target) .pg-company-menu a[href="#ownership"],
.pg-company-pw:has(#group:target) .pg-company-menu a[href="#group"],
.pg-company-pw:has(#financials:target) .pg-company-menu a[href="#financials"],
.pg-company-pw:has(#grants:target) .pg-company-menu a[href="#grants"],
.pg-company-pw:has(#charges:target) .pg-company-menu a[href="#charges"],
.pg-company-pw:has(#filings:target) .pg-company-menu a[href="#filings"],
.pg-company-pw:has(#similar:target) .pg-company-menu a[href="#similar"]{color:var(--ink);font-weight:500}
.pg-company-pw:not(:has(.pg-company-pc :target)) .pg-company-menu a[href="#summary"] .nm,
.pg-company-pw:has(#summary:target) .pg-company-menu a[href="#summary"] .nm,
.pg-company-pw:has(#details:target) .pg-company-menu a[href="#details"] .nm,
.pg-company-pw:has(#timeline:target) .pg-company-menu a[href="#timeline"] .nm,
.pg-company-pw:has(#signals:target) .pg-company-menu a[href="#signals"] .nm,
.pg-company-pw:has(#rounds:target) .pg-company-menu a[href="#rounds"] .nm,
.pg-company-pw:has(#shares:target) .pg-company-menu a[href="#shares"] .nm,
.pg-company-pw:has(#ownership:target) .pg-company-menu a[href="#ownership"] .nm,
.pg-company-pw:has(#group:target) .pg-company-menu a[href="#group"] .nm,
.pg-company-pw:has(#financials:target) .pg-company-menu a[href="#financials"] .nm,
.pg-company-pw:has(#grants:target) .pg-company-menu a[href="#grants"] .nm,
.pg-company-pw:has(#charges:target) .pg-company-menu a[href="#charges"] .nm,
.pg-company-pw:has(#filings:target) .pg-company-menu a[href="#filings"] .nm,
.pg-company-pw:has(#similar:target) .pg-company-menu a[href="#similar"] .nm{text-decoration:underline;text-decoration-color:var(--acc);text-decoration-thickness:2px;text-underline-offset:6px}
.pg-company-pc{--sec:72px}
.pg-company-ps,.pg-company-pc .section{margin-top:var(--sec);scroll-margin-top:var(--g3)}
.pg-company-ps.first{margin-top:0}
.pg-company-ps .tl-sec{margin-top:0}
.pg-company-pc>.section:first-child{margin-top:0}

/* ---- Summary: what it does, then the facts from filings ---- */
.pg-company-wh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.pg-company-what h3{font-size:var(--lg);margin-right:4px}
.pg-company-wh .wlink{font-size:var(--sm)}
.pg-company-prows{margin-top:var(--g2);border-top:1px solid var(--ink)}
.pg-company-prow{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:6px 32px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--hair2)}
.pg-company-prow>dt{font-size:var(--sm);color:var(--mu)}
.pg-company-prow>dd{min-width:0;overflow-wrap:anywhere}
.pg-company-prow>dd>*+*{margin-top:2px}
.pg-company-rn{font-size:var(--sm);color:var(--mu)}
.pg-company-tell{display:block;margin-top:2px;font-size:var(--sm)}
.pg-company-prow small.pg-company-rn{margin-left:8px;font-size:var(--xs)}
.pg-company-prow .mu{color:var(--mu)}
.pg-company-quote{max-width:44em}
.pg-company-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.pg-company-tags .wlink{font-size:var(--sm)}
.pg-company-tag{display:inline-block;padding:6px 8px;font-size:var(--xs);line-height:1;white-space:nowrap;border:1px solid var(--hair2);border-radius:6px}
.pg-company-code{display:inline-block;margin-right:8px;padding:5px 8px;font-size:var(--xs);font-weight:500;line-height:1;vertical-align:1px;border:1px solid var(--hair2);border-radius:6px}
.pg-company-fl{margin-top:var(--g4);padding-top:var(--g3);border-top:1px solid var(--hair2)}
.pg-company-what+.pg-company-fl{margin-top:var(--g4)}
.pg-company-fl:first-child{margin-top:0;padding-top:0;border-top:0}
.pg-company-fl h3{margin-bottom:var(--g2);font-size:var(--lg)}

/* ---- Details and key-value tables: key, value, source ---- */
.pg-company-kvt th.rh{width:200px;font-weight:400;color:var(--mu);font-size:var(--sm)}
.pg-company-kvt td.dsrc{width:190px;text-align:right;font-size:var(--sm)}
.pg-company-kvt td.dsrc .wlink.ext{white-space:normal}
.pg-company-kvt td{overflow-wrap:anywhere}

/* tighter rows than the shared table */
.pg-company-pc .tb tbody th,.pg-company-pc .tb td{padding-top:12px;padding-bottom:12px}

/* ---- "More": a closed details that holds the arithmetic and the secondary rows ---- */
.pg-company-more{margin-top:var(--g3);border-top:1px solid var(--hair2)}
.pg-company-more>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;list-style:none;cursor:pointer;font-size:var(--sm);font-weight:500}
.pg-company-more>summary::-webkit-details-marker{display:none}
.pg-company-more[open]>summary .ico{transform:rotate(180deg)}
.pg-company-more .tw{margin-bottom:var(--g2)}
.pg-company-more .pg-company-wk{margin-bottom:var(--g2)}

/* ---- Rounds: the old pair of panels, the working, the runway ---- */
.pg-company-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--g4)}
.pg-company-pair>div{min-width:0}
.pg-company-pair>div>.blk{height:100%}
.pg-company-run{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--g4);align-items:start}
.pg-company-run>.blk{min-width:0}
.pg-company-wk{max-width:980px}
.pg-company-note{margin-top:var(--g2);max-width:56em}
.pg-company-wk .mk{margin-right:var(--g1)}
.pg-company-wkp{margin-top:var(--g3);max-width:980px}
.pg-company-gt{margin-top:var(--g3)}

/* ---- Charges ---- */
.pg-company-nocharge{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:16px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--hair2)}
.pg-company-chl{font-size:var(--md)}
.pg-company-nocharge .wlink.ext{margin-left:auto}
.pg-company-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:var(--g3);font-size:var(--md)}
.pg-company-nocharge+.pg-company-wkp+*,.pg-company-nocharge+.tw{margin-top:var(--g3)}
.pg-company-mkt{font-size:var(--sm);color:var(--mu)}

/* ---- Filing list ---- */
.pg-company-chips{display:flex;flex-wrap:wrap;gap:var(--g1);margin-bottom:var(--g2)}
.pg-company-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;font-size:var(--sm);line-height:1.3;color:var(--ink);text-decoration:none;background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2)}
.pg-company-chip:hover{border-color:var(--ink)}
.pg-company-chip[aria-current="true"]{font-weight:500;border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.pg-company-chip .ct{font-size:var(--xs);font-weight:400;color:var(--mu)}

/* ---- Companies like this ---- */
.pg-company-dp{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0 20px;margin-top:var(--g2)}
.pg-company-dpl{display:grid;grid-auto-rows:44px}
.pg-company-dpl div{display:flex;align-items:center;font-size:var(--sm);line-height:1.25;border-top:1px solid var(--hair)}
.pg-company-dpl div:first-child{border-top:0}
.pg-company-dpl div.me{font-weight:600}
.pg-company-dpp{position:relative;margin-right:28px;border-bottom:1px solid var(--ink)}
.pg-company-dpp .gl{position:absolute;top:0;bottom:0;width:0;border-left:1px solid var(--hair)}
.pg-company-dpp .dot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--ink)}
.pg-company-dpp .dot.me{width:18px;height:18px;margin:-9px 0 0 -9px;background:var(--acc)}
.pg-company-dpp .dv{position:absolute;transform:translate(14px,-50%);font-size:var(--xs);line-height:1;color:var(--mu);white-space:nowrap}
.pg-company-dpp .dv.l{transform:translate(calc(-100% - 14px),-50%)}
.pg-company-dpp .dv.me{font-weight:600;color:var(--acc)}
.pg-company-dpx{position:relative;height:20px;margin:8px 28px 0 220px}
.pg-company-dpx span{position:absolute;top:0;transform:translateX(-50%);font-size:var(--xs);line-height:1.3;color:var(--mu)}
.pg-company-dpc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:var(--g2);font-size:var(--xs);color:var(--mu)}
.pg-company-dpc .sw{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;background:var(--ink)}
.pg-company-dpc .sw.me{background:var(--acc)}
.pg-company-peers{margin-top:var(--g3)}
.pg-company-peers thead th{white-space:nowrap}
.pg-company-peers thead th .mk{margin-left:6px;vertical-align:1px}
.pg-company-me th.co{font-weight:600}
.pg-company-thisco{display:inline-block;margin-top:4px;padding:2px 6px;font-size:var(--xs);font-weight:500;line-height:1.3;border:1px solid var(--ink);border-radius:6px}
.pg-company-th{max-width:200px;font-size:var(--sm);color:var(--mu)}
.pg-company-stp{font-weight:500}
.pg-company-peers th.co small{display:block;margin-top:2px;font-size:var(--xs);font-weight:400;color:var(--mu)}


@media (max-width:1100px){
.pg-company-pair{gap:var(--g3)}
}
@media (max-width:1000px){
/* the section menu becomes a row that scrolls sideways */
.pg-company-pw{grid-template-columns:minmax(0,1fr);gap:var(--g3);margin-top:var(--g4)}
.pg-company-menu{position:sticky;top:0;z-index:4;display:flex;gap:0 24px;margin:0 calc(var(--pad) * -1);padding:0 var(--pad);overflow-x:auto;scrollbar-width:none;background:var(--page);border-top:0;border-bottom:1px solid var(--hair2)}
.pg-company-menu a,.pg-company-menu .cm{flex:none;flex-wrap:nowrap;white-space:nowrap}
.pg-company-pc [id]{scroll-margin-top:64px}
.pg-company-pw:not(:has(.pg-company-pc :target)) .pg-company-menu a[href="#summary"],
.pg-company-pw:has(#summary:target) .pg-company-menu a[href="#summary"],
.pg-company-pw:has(#details:target) .pg-company-menu a[href="#details"],
.pg-company-pw:has(#timeline:target) .pg-company-menu a[href="#timeline"],
.pg-company-pw:has(#signals:target) .pg-company-menu a[href="#signals"],
.pg-company-pw:has(#rounds:target) .pg-company-menu a[href="#rounds"],
.pg-company-pw:has(#shares:target) .pg-company-menu a[href="#shares"],
.pg-company-pw:has(#ownership:target) .pg-company-menu a[href="#ownership"],
.pg-company-pw:has(#group:target) .pg-company-menu a[href="#group"],
.pg-company-pw:has(#financials:target) .pg-company-menu a[href="#financials"],
.pg-company-pw:has(#grants:target) .pg-company-menu a[href="#grants"],
.pg-company-pw:has(#charges:target) .pg-company-menu a[href="#charges"],
.pg-company-pw:has(#filings:target) .pg-company-menu a[href="#filings"],
.pg-company-pw:has(#similar:target) .pg-company-menu a[href="#similar"]{box-shadow:inset 0 -2px 0 var(--acc)}
.pg-company-pw:not(:has(.pg-company-pc :target)) .pg-company-menu a[href="#summary"] .nm,
.pg-company-pw:has(#summary:target) .pg-company-menu a[href="#summary"] .nm,
.pg-company-pw:has(#details:target) .pg-company-menu a[href="#details"] .nm,
.pg-company-pw:has(#timeline:target) .pg-company-menu a[href="#timeline"] .nm,
.pg-company-pw:has(#signals:target) .pg-company-menu a[href="#signals"] .nm,
.pg-company-pw:has(#rounds:target) .pg-company-menu a[href="#rounds"] .nm,
.pg-company-pw:has(#shares:target) .pg-company-menu a[href="#shares"] .nm,
.pg-company-pw:has(#ownership:target) .pg-company-menu a[href="#ownership"] .nm,
.pg-company-pw:has(#group:target) .pg-company-menu a[href="#group"] .nm,
.pg-company-pw:has(#financials:target) .pg-company-menu a[href="#financials"] .nm,
.pg-company-pw:has(#grants:target) .pg-company-menu a[href="#grants"] .nm,
.pg-company-pw:has(#charges:target) .pg-company-menu a[href="#charges"] .nm,
.pg-company-pw:has(#filings:target) .pg-company-menu a[href="#filings"] .nm,
.pg-company-pw:has(#similar:target) .pg-company-menu a[href="#similar"] .nm{text-decoration:none}
}
@media (max-width:900px){
.pg-company-pair,.pg-company-run{grid-template-columns:minmax(0,1fr)}
.pg-company-run{gap:var(--g3)}
}
@media (max-width:700px){
.pg-company-actf{display:none}
.pg-company-actm{display:flex}
.pg-company-act{width:100%}
.pg-company-pc{--sec:56px}
.pg-company-prow{grid-template-columns:minmax(0,1fr);gap:2px}
/* the key-value tables stay flat rows on a phone: key above value, no card */
.pg-company-kvt th.rh,.pg-company-kvt td.dsrc{width:auto;text-align:left}
.pg-company-kvt tbody.rg{margin-top:0;padding:12px 0;background:none;border:0;border-bottom:1px solid var(--hair2);border-radius:0}
.pg-company-kvt tr.row{grid-template-columns:minmax(0,1fr);gap:2px}
.pg-company-kvt{border-top:1px solid var(--ink)}
.pg-company-nocharge .wlink.ext{margin-left:0}
.pg-company-dp{grid-template-columns:110px minmax(0,1fr);gap:0 12px}
.pg-company-dpx{margin-left:122px}
.pg-company-dpl div{font-size:var(--xs)}
.pg-company-dpx span:nth-child(even){display:none}
}

/* ---- 84_page_investor.css ---- */
/* Investor network page (templates/pages/investor.html). Classes prefixed pg-investor-. Tokens only.
   Portfolio table and co-holder bars sit side by side from 1200 px up, stacked below. */
.pg-investor-two{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:var(--g5) var(--g4);align-items:start}
.pg-investor-more{margin-top:var(--g2)}
.pg-investor-links{display:flex;flex-wrap:wrap;gap:0 var(--g3);margin-top:var(--g2)}
.pg-investor-soon{display:flex;align-items:baseline;gap:var(--g1);margin-top:var(--g3);font-size:var(--sm);color:var(--mu)}
.pg-investor-soon .mk{flex:none}
/* the map nodes are links, which the component styles as blocks: centre their text like the buttons they replace */
.pg-investor-map .nw-hd{display:flex;align-items:center}
.pg-investor-map .nw-ct{display:flex;flex-direction:column;justify-content:center}
@media (max-width:1200px){
.pg-investor-two{grid-template-columns:minmax(0,1fr)}
}

/* ---- 85_page_market.css ---- */
/* Market pages (templates/pages/market.html, market_grants.html, market_themes.html, market_trends.html). Layout the components do not
   give: the tab strip, the two-column panel rows, the round picks, the selected round beside its gauges, the grant funnel and journey,
   the quarter chart frame, the region tiles, the paired technology bars. Prefix pg-market-. Tokens only. */
/* the five-tab strip: a row of links, the current page underlined in the accent */
.pg-market-tabs{margin-top:0}
.pg-market-tabs .sg-t[aria-current="page"]{color:var(--ink);font-weight:500;border-bottom-color:var(--acc)}
.pg-market-tabs .sg-t{white-space:nowrap}
.pg-market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--g4);align-items:start}
.pg-market-ctl{display:flex;flex-wrap:wrap;gap:0 var(--g4);margin-bottom:var(--g2)}
.pg-market-picks{display:flex;flex-wrap:wrap;gap:var(--g1);margin-bottom:var(--g4)}
.pg-market-pick{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;font-size:var(--sm);line-height:1.3;color:var(--ink);text-decoration:none;background:var(--surf);border:1px solid var(--hair2);border-radius:var(--r2)}
.pg-market-pick:hover{border-color:var(--ink)}
.pg-market-pick[aria-current]{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc);font-weight:500}
.pg-market-sit{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:var(--g4);align-items:start}
.pg-market-detail h3{margin-bottom:4px}
.pg-market-detail h3 a{text-decoration:none}
.pg-market-detail .wl-list{margin-top:var(--g3)}
.pg-market-src{margin-top:var(--g3)}
.pg-market-gauges .rc-gg+.rc-gg{margin-top:var(--g5)}
@media (max-width:900px){
  .pg-market-grid,.pg-market-sit{grid-template-columns:minmax(0,1fr)}
}

/* ---- grants to equity (A6) ---- */
.pg-market-flt{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--g2) var(--g3);margin-top:var(--g3);max-width:1000px}
.pg-market-ff{display:grid;align-content:start;gap:var(--g1);min-width:0;margin:0}
.pg-market-ff .hint{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.pg-market-c{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 32px;margin-top:var(--g4)}
.pg-market-c h2{font-size:var(--lg);letter-spacing:-0.02em;line-height:1.25}
.pg-market-fl{margin-top:var(--g3)}
.pg-market-fr{display:grid;grid-template-columns:minmax(200px,300px) minmax(0,1fr) minmax(150px,230px);grid-template-areas:"lab bar fig";gap:0 32px;align-items:center;padding:20px 0;border-top:1px solid var(--hair)}
.pg-market-fr:first-child{border-top:0;padding-top:4px}
.pg-market-fr.sep{margin-top:var(--g1);border-top:1px solid var(--hair2)}
.pg-market-flab{grid-area:lab;min-width:0}
.pg-market-fl1{margin:0;font-size:var(--md);font-weight:500;line-height:1.3}
.pg-market-fld{margin:2px 0 0;font-size:var(--sm);color:var(--mu)}
.pg-market-flab .tg{margin:2px 0 0}
.pg-market-ftk{grid-area:bar;height:28px;background:var(--hair);min-width:0}
.pg-market-ftk i{display:block;height:100%;background:var(--ink);min-width:4px}
.pg-market-ftk i.g{background:var(--hair3)}
.pg-market-ftk i.z{min-width:0}
.pg-market-ffig{grid-area:fig;text-align:right;min-width:0}
.pg-market-fn{margin:0;font-size:var(--xl);font-weight:500;letter-spacing:-0.035em;line-height:1.1}
.pg-market-fp{margin:0;font-size:var(--sm);color:var(--mu)}
.pg-market-wk{margin-top:var(--g3)}
.pg-market-kc{display:flex;flex-direction:column;align-items:flex-start}
.pg-market-kc .kd{margin-bottom:var(--g2)}
.pg-market-kc .tg{margin-top:auto}
.pg-market-es{margin:0 0 var(--g2)}
.pg-market-tb th.co{min-width:0;font-size:var(--sm)}
.pg-market-sel th.co::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--acc);vertical-align:1px}
.pg-market-sh{display:flex;align-items:center;gap:12px}
.pg-market-shtk{flex:1;height:8px;min-width:60px;background:var(--hair);border-radius:4px;overflow:hidden}
.pg-market-shtk i{display:block;height:100%;background:var(--ink)}
.pg-market-sh b{flex:none;width:5ch;text-align:right;font-weight:500}
.pg-market-md{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 8px}
.pg-market-sm{display:block;font-size:var(--xs);color:var(--mu)}
.pg-market-jp{margin-top:72px}
.pg-market-jp .sh{margin-bottom:var(--g1)}
.pg-market-jc{margin-top:0}
.pg-market-jw{overflow-x:auto;margin-top:var(--g2)}
.pg-market-j{min-width:920px;position:relative}
.pg-market-jg{position:absolute;left:270px;right:0;top:0;bottom:0;pointer-events:none}
.pg-market-jsh{position:absolute;left:0;top:0;bottom:0;background:var(--tint)}
.pg-market-jsh span{position:absolute;z-index:2;left:8px;top:6px;padding:2px 6px;background:var(--tint);font-size:var(--xs);color:var(--mu);white-space:nowrap}
.pg-market-jyr{position:absolute;top:0;bottom:0;border-left:1px solid var(--hair2)}
.pg-market-jyr span{position:absolute;left:6px;top:32px;font-size:var(--xs);color:var(--mu)}
.pg-market-jh{height:60px}
.pg-market-jr{position:relative;display:grid;grid-template-columns:270px minmax(0,1fr);align-items:center;border-top:1px solid var(--hair)}
.pg-market-jl{padding:12px 24px 12px 0;font-size:var(--sm);font-weight:500;line-height:1.35}
.pg-market-jl small{display:block;margin-top:2px;font-size:var(--xs);font-weight:400;color:var(--mu)}
.pg-market-jt{position:relative;align-self:stretch;min-height:56px}
.pg-market-jt.rd{min-height:96px}
.pg-market-jb{position:absolute;top:50%;height:16px;margin-top:-8px;border-radius:3px;background:var(--ink)}
.pg-market-jb.loan{background:var(--surf);border:2px solid var(--ink)}
.pg-market-jb.live{background:var(--acc);border:2px solid var(--acc)}
.pg-market-jb.loan.live{background:var(--surf)}
.pg-market-jd{position:absolute;top:50%;border-radius:50%;background:var(--ink);border:1.5px solid var(--surf);opacity:0.88;transform:translate(-50%,-50%)}
.pg-market-jq{position:absolute;bottom:10px;width:11px;height:11px;border:1.5px solid var(--hair3);background:var(--surf);transform:translateX(-50%)}
.pg-market-jv{position:absolute;transform:translateX(-50%);font-size:var(--xs);line-height:1;color:var(--mu);white-space:nowrap}
.pg-market-jlg{display:flex;flex-wrap:wrap;gap:var(--g1) 28px;margin-top:var(--g2);padding-top:var(--g2);border-top:1px solid var(--hair);font-size:var(--xs);color:var(--mu)}
.pg-market-jlg span{display:inline-flex;align-items:center;gap:8px}
.pg-market-jlg i{display:inline-block;flex:none}
.pg-market-jlg .b1{width:18px;height:10px;border-radius:3px;background:var(--ink)}
.pg-market-jlg .b2{width:18px;height:10px;border-radius:3px;border:2px solid var(--ink);background:var(--surf)}
.pg-market-jlg .b3{width:18px;height:10px;border-radius:3px;background:var(--acc)}
.pg-market-jlg .c1{width:12px;height:12px;border-radius:50%;background:var(--ink)}
.pg-market-jlg .q1{width:11px;height:11px;border:1.5px solid var(--hair3);background:var(--surf)}
.pg-market-jtg{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:var(--g2)}
@media (max-width:700px){
  .pg-market-tabs{gap:0 20px}
  .pg-market-fr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"lab fig" "bar bar";gap:12px 16px;align-items:start}
  .pg-market-jp{margin-top:var(--g5)}
  .pg-market-j{min-width:640px}
  .pg-market-jg{left:0}
  .pg-market-jr{display:block}
  .pg-market-jl{position:sticky;left:0;width:300px;padding:12px 0 0;background:var(--surf);z-index:3}
  .pg-market-jt{min-height:40px}
  .pg-market-jt.rd{min-height:92px}
  .pg-market-md{justify-content:flex-start}
}

/* ---- themes (B2) and trends (B5): the labels, the medians, the region tiles ---- */
.pg-market-tb td>.mk{margin-top:6px}
.pg-market-tb td small.pg-market-sm{display:block}
.pg-market-geo{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:var(--g4) var(--g5);align-items:start}
.pg-market-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,76px);gap:var(--g1)}
.pg-market-tile{display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:8px 10px;border-radius:var(--r2);font-size:var(--xs);line-height:1.25;overflow-wrap:anywhere}
.pg-market-tile b{font-size:var(--lg);font-weight:500;letter-spacing:-0.02em;line-height:1}
.pg-market-tile.t0{background:var(--tint);border:1px dashed var(--hair2);color:var(--mu)}
.pg-market-tile.t1{background:var(--c0);border:1px solid var(--hair3);color:var(--ink)}
.pg-market-tile.t2{background:var(--c1);border:1px solid var(--hair3);color:var(--ink)}
.pg-market-tile.t3{background:var(--c3);color:var(--surf)}
.pg-market-tile.t4{background:var(--c4);color:var(--surf)}
.pg-market-rgl{margin:0;padding:0;list-style:none;font-size:var(--sm)}
.pg-market-rgl li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair2)}
.pg-market-rgl li:first-child{border-top:1px solid var(--ink)}
.pg-market-rgl li.z{color:var(--mu)}
.pg-market-big{font-size:var(--lg);font-weight:500;letter-spacing:-0.02em}
.pg-market-tch{display:inline-block;margin:0 6px 6px 0;padding:5px 8px;border:1px solid var(--hair2);border-radius:6px;background:var(--surf);font-size:var(--xs);line-height:1;color:var(--mu);white-space:nowrap}
.pg-market-lk{overflow-wrap:anywhere}
.pg-market-tlg{display:flex;flex-wrap:wrap;gap:6px 28px;margin:var(--g3) 0 0;padding:0;list-style:none;font-size:var(--sm)}
.pg-market-tlg li{display:inline-flex;align-items:center;gap:8px}
.pg-market-tsw{display:inline-block;flex:none;width:28px;height:10px;border-radius:3px;background:var(--ink)}
.pg-market-tsw.b{background:var(--c1);box-shadow:inset 0 0 0 1px var(--hair3)}
.pg-market-tbl{margin-top:var(--g3)}
.pg-market-thd{display:grid;grid-template-columns:150px minmax(0,1fr) 190px;gap:0 var(--g3);padding:0 0 10px;font-size:var(--xs);color:var(--mu)}
.pg-market-thd div:last-child{text-align:right}
.pg-market-trow{display:grid;grid-template-columns:150px minmax(0,1fr) 190px;gap:0 var(--g3);align-items:center;padding:12px 0;border-top:1px solid var(--hair);font-size:var(--sm)}
.pg-market-trow:first-of-type{border-top:1px solid var(--ink)}
.pg-market-tn1{font-weight:500}
.pg-market-ttk{display:grid;gap:5px}
.pg-market-ttk i{display:block;height:10px;border-radius:3px;background:var(--ink);min-width:2px}
.pg-market-ttk i.b{background:var(--c1);box-shadow:inset 0 0 0 1px var(--hair3)}
.pg-market-tvals{display:grid;gap:2px;text-align:right;font-size:var(--xs);color:var(--mu);line-height:1.3}
.pg-market-tvals b{font-weight:500;color:var(--ink);font-size:var(--sm)}
.pg-market-tvals span+span b{color:var(--mu)}
.pg-market-tb tr.wrow>td{padding:0 0 24px}
@media (max-width:900px){
  .pg-market-geo,.pg-market-flt{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
  .pg-market-tpk{overflow-x:auto;padding-bottom:4px}
  .pg-market-tpk .sg{display:grid;grid-auto-flow:column;grid-template-rows:repeat(4,auto);gap:0 24px;justify-content:start}
  .pg-market-tpk .sg-t{white-space:nowrap}
  .pg-market-tiles{grid-template-rows:repeat(5,84px)}
  .pg-market-thd{display:none}
  .pg-market-trow{grid-template-columns:minmax(0,1fr);gap:var(--g1) 0}
  .pg-market-tvals{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--g2);text-align:left}
  .pg-market-tb td>.mk{margin-top:4px}
  .pg-market-tb td[data-l="Themes"],.pg-market-tb td[data-l="Careers page"],.pg-market-tb td[data-l="Also tagged"]{grid-column:1/-1}
  .pg-market-tch{white-space:normal;line-height:1.3}
}

/* ---- trimmed pages: the closed "More" block, the journey's rounds table ---- */
.pg-market-more{margin-top:var(--g3)}
.pg-market-more>summary{display:inline-block;min-height:32px;padding:4px 0;font-size:var(--sm);color:var(--mu);cursor:pointer}
.pg-market-more>summary:hover{color:var(--ink)}
.pg-market-more[open]>summary{margin-bottom:var(--g2)}
.pg-market-jrt{margin-top:var(--g4)}

/* ---- 86_page_home.css ---- */
/* 86_page_home.css: Home (pg-home-) and Pricing (pg-pricing-). Tokens only. */

/* the data date under the four figures */
.pg-home-asof { margin-top: var(--g2); }

/* feature rows: a text column and an excerpt panel, alternating sides */
.pg-home-fr { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--g5) 72px; align-items: center; padding-top: var(--g4); border-top: 1px solid var(--ink); }
.pg-home-fr + .pg-home-fr { margin-top: var(--g6); }
.pg-home-fr.is-rev { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.pg-home-fr.is-rev .pg-home-frt { order: 2; }
.pg-home-frt h2 { max-width: 11em; font-size: clamp(32px, 3.4vw, 44px); letter-spacing: -0.045em; line-height: 1.06; text-wrap: balance; }
.pg-home-frt p { margin-top: 20px; max-width: 24em; font-size: var(--lg); line-height: 1.4; color: var(--mu); }
.pg-home-frt .wlink { display: inline-block; margin-top: var(--g3); font-size: var(--sm); }
.pg-home-frp { min-width: 0; }

/* excerpt panels */
.pg-home-exh { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--g1) var(--g2); margin-bottom: 20px; }
.pg-home-exh b { display: block; font-size: var(--md); font-weight: 600; letter-spacing: -0.01em; }
.pg-home-exh small { display: block; font-size: var(--sm); color: var(--mu); }
.pg-home-ex .wl-list .wl { padding: 11px 0; }
.pg-home-fl { margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--hair); font-size: var(--sm); color: var(--mu); }
.pg-home-ex .src { display: inline-flex; align-items: center; margin-top: var(--g2); }
.pg-home-cap { margin-top: var(--g2); }
.pg-home-ex .tb th.co { min-width: 0; }

/* the box plot's three figures */
.pg-home-bxst { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--g3); margin: 28px 0 0; }
.pg-home-bxst > div { min-width: 0; padding-top: 12px; border-top: 1px solid var(--hair2); }
.pg-home-bxst dt { font-size: var(--xs); color: var(--mu); }
.pg-home-bxst dd { margin: 4px 0 0; font-size: var(--xl); font-weight: 500; letter-spacing: -0.035em; line-height: 1.1; }

/* five ways out of a view */
.pg-home-outs { margin: 0; padding: 0; list-style: none; }
.pg-home-outs li { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 4px var(--g3); align-items: center; padding: 13px 0; border-top: 1px solid var(--hair); }
.pg-home-outs li:first-child { padding-top: 0; border-top: 0; }
.pg-home-outs li:last-child { padding-bottom: 0; }
.pg-home-outs h3 { display: flex; align-items: center; gap: 10px; font-size: var(--md); font-weight: 600; letter-spacing: -0.01em; }
.pg-home-outs p { margin: 0; padding: 8px 0; font-size: var(--sm); line-height: 1.45; }

/* who uses Bradshaw */
.pg-home-who { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--g4) 32px; margin: 0; padding: 0; list-style: none; }
.pg-home-who li { min-width: 0; padding-top: var(--g2); border-top: 1px solid var(--ink); }
.pg-home-who h3 { line-height: 1.2; }
.pg-home-who p { margin-top: 10px; font-size: var(--md); line-height: 1.5; color: var(--mu); }

/* plans */
.pg-home-plh { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-bottom: var(--g3); }
.pg-home-plh h2 { margin-right: auto; }
.pg-home-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--g3); margin: 0; padding: 0; list-style: none; }
.pg-home-plans .blk.panel { display: flex; flex-direction: column; min-width: 0; padding: 28px; }
.pg-home-plans h3 { font-weight: 600; }
.pg-home-plans .fig32 { margin-top: var(--g2); }
.pg-home-pn { margin-top: 4px; font-size: var(--sm); color: var(--mu); }
.pg-home-pd { flex: 1; margin-top: 20px; padding-top: var(--g2); border-top: 1px solid var(--hair); font-size: var(--sm); color: var(--mu); }

/* closing band (Home and Pricing) */
.pg-home-band, .pg-pricing-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px; padding: var(--g4); }
.pg-home-bandr, .pg-pricing-bandr { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }

/* the optional fifth figure (Companies tracked) sits on its own full-width row under the four, number and label side by side */
.lay-kpis > .kc:nth-child(5) { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 28px; padding-top: 22px; padding-bottom: 22px; }
.lay-kpis > .kc:nth-child(5) .kl { margin: 0; }

/* pricing */
.pg-pricing-draft { margin-top: var(--g3); }
.pg-pricing-faq .rli dd { max-width: none; }

@media (max-width: 1100px) {
  .pg-home-fr, .pg-home-fr.is-rev { grid-template-columns: minmax(0, 1fr); }
  .pg-home-fr.is-rev .pg-home-frt { order: 0; }
  .pg-home-frt h2, .pg-home-frt p { max-width: 30em; }
  .pg-home-who { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pg-home-plans { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .pg-home-fr { padding-top: 28px; gap: 28px; }
  .pg-home-fr + .pg-home-fr { margin-top: 64px; }
  .pg-home-frt p { margin-top: 14px; font-size: var(--md); }
  .pg-home-bxst { grid-template-columns: minmax(0, 1fr); gap: var(--g2); }
  .pg-home-bxst > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--g2); }
  .pg-home-bxst dd { margin: 0; font-size: var(--lg); }
  .pg-home-outs li { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .pg-home-outs p { padding: 0; }
  .pg-home-who { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .pg-home-plans .blk.panel { padding: 22px 18px; }
  .pg-home-plh h2 { margin-right: 0; width: 100%; }
  .pg-home-band, .pg-pricing-band { padding: 28px 20px; }
  .pg-home-bandr, .pg-pricing-bandr { width: 100%; }
}

/* ---- 87_page_lists.css ---- */
/* Additions to the Companies list (templates/pages/companies.html, templates/components/query.html): the filters on what a company's
   website shows. Classes prefixed pg-lists-, plus the extra states of the filter bar and popover that the components now draw.
   Tokens only. */
.fw-soon{display:inline-flex;align-items:center;gap:var(--g1)}
.fb[disabled]{color:var(--mu);border-style:dashed;background:var(--tint);cursor:not-allowed}
.fb[disabled]:hover{border-color:var(--hair2)}
.fb[disabled] b{color:var(--mu)}
/* a popover title that carries marks: the title at the left, the marks and "Correct this" at the right */
.fpt-m{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--g1) var(--g2)}
.fpm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--g1) 12px}
/* the Theme popover: many chips, so a wide popover */
.fw .fpop.fpop-wide{width:min(560px,calc(100vw - 2 * var(--pad)));max-width:none}
.fpo-chips{padding:var(--g2) 20px 0}
.fpo-chips .chps{gap:var(--g1)}
.fsr .fpo-chips{padding-bottom:var(--g2)}
/* the view as a query */
.pg-lists-ql{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--g1) var(--g3);margin-top:var(--g3);padding:12px 20px;background:var(--surf);border:1px solid var(--hair);border-radius:var(--r)}
.pg-lists-qh{font-size:var(--xs);color:var(--mu)}
.pg-lists-qc{display:block;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--sm);overflow-wrap:anywhere}
/* the Pilot mark, then a short link to everything without the filters */
.pg-lists-cov{display:flex;flex-wrap:wrap;align-items:center;gap:var(--g1) var(--g2);margin-top:var(--g1)}
.pg-lists-all{display:inline-flex;align-items:center;min-height:40px;font-size:var(--sm)}
/* labels in the table */
.pg-lists-tch{display:inline-block;margin:0 6px 6px 0;padding:5px 8px;font-size:var(--xs);line-height:1.2;color:var(--mu);max-width:100%;background:var(--surf);border:1px solid var(--hair2);border-radius:6px}
.pg-lists-tch.on{color:var(--ink);border-color:var(--ink)}
.pg-lists-wk{margin-top:var(--g3)}
@media (max-width:700px){
.pg-lists-ql{padding:12px 16px}
.fw-soon{display:flex;flex-wrap:wrap}
}

.lay-results .empty p:empty{display:none}
.pg-companies-search{margin-bottom:var(--g4)}

/* ---- 87_page_method.css ---- */
/* How the figures work (templates/pages/method.html). Layout the components do not give: ruled rows of rules and
   thresholds (a ruled kv), worked-example panels inside the reading column, the mark rows' example line, and the
   two-column sector and region lists. Tokens only. */
.lay-doc-body .pg-method-panel{margin-top:var(--g3);padding:20px 28px 24px}
.lay-doc-body .pg-method-pcap{margin:0 0 8px;line-height:1.4}
.pg-method-wk{max-width:960px}
.pg-method-wk .wl,.pg-method-rows .wl{line-height:1.5}
.pg-method-rows{margin-top:var(--g3);border-top:1px solid var(--ink)}
.pg-method-rows .wl{padding:12px 0;border-top-color:var(--hair2)}
.pg-method-rows .wl:first-child{border-top:0}
.pg-method-rows .wl .k{color:var(--ink)}
.pg-method-rows .wl .v{font-weight:500}
.pg-method-rows .wl.tot{border-top-color:var(--ink)}
.pg-method-rows .wl:last-child{border-bottom:1px solid var(--hair2)}
.pg-method-marks{margin-top:var(--g3)}
.pg-method-marks .rli{grid-template-columns:minmax(0,130px) minmax(0,1fr);gap:4px 24px;align-items:baseline}
.pg-method-marks .rli dd{color:var(--ink);font-size:var(--sm);line-height:1.55}
.pg-method-marks .rli dt{font-size:var(--sm)}
.pg-method-ex{display:block;margin-top:4px;color:var(--mu)}
.pg-method-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--g3) var(--g4);margin-top:var(--g3)}
.pg-method-cols h3{font-size:var(--md);font-weight:600;letter-spacing:-0.01em;padding-bottom:8px;border-bottom:1px solid var(--ink)}
.pg-method-cols ul{list-style:none;margin:0;padding:0}
.lay-doc-body .pg-method-cols li{margin:0;padding:9px 0;border-bottom:1px solid var(--hair2);font-size:var(--sm);line-height:1.5}
.pg-method-act{margin-top:var(--g3)}
@media (max-width:700px){
.lay-doc-body .pg-method-panel{padding:16px 18px 20px}
.pg-method-marks .rli{grid-template-columns:minmax(0,1fr)}
.pg-method-cols{grid-template-columns:minmax(0,1fr)}
}

/* ---- 87_page_privacy.css ---- */
/* Privacy notice and data request form (templates/pages/privacy.html). Layout the components do not give: the ruled rows of
   the notice (a ruled list with the key at 14 px), and the request form's two-column rows. Tokens only. */
.pg-privacy-rows{margin-top:var(--g3)}
.pg-privacy-rows .rli{grid-template-columns:minmax(0,170px) minmax(0,1fr);gap:4px 24px;padding:16px 0;align-items:baseline}
.pg-privacy-rows .rli dt{font-size:var(--sm);letter-spacing:-0.01em}
.pg-privacy-rows .rli dd{color:var(--ink);font-size:var(--sm);line-height:1.55;max-width:none}
.pg-privacy-rows .rli dd .mk{margin-left:6px}
.lay-doc-body .pg-privacy-form{margin-top:var(--g3);padding:28px}
.pg-privacy-fields{display:grid;gap:var(--g3)}
.pg-privacy-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--g3)}
.pg-privacy-two>.fld{align-content:start}
.pg-privacy-fields .btns{gap:12px 20px}
.pg-privacy-note{font-size:var(--sm);color:var(--mu)}
.pg-privacy-cerr{margin-top:var(--g1)}
.lay-doc-body .pg-privacy-ok{margin:0}
.pg-privacy-nw{white-space:nowrap}
@media (max-width:700px){
.pg-privacy-rows .rli{grid-template-columns:minmax(0,1fr)}
.lay-doc-body .pg-privacy-form{padding:22px 18px}
.pg-privacy-two{grid-template-columns:minmax(0,1fr)}
.pg-privacy-fields .btns .btn{width:100%}
}

/* ---- 87_page_public_company.css ---- */
/* Public company page (templates/pages/public_company.html). Layout the components do not give: the allotted date with its
   range on a second line, the lock row under the rounds table, a reading width for the About text. Tokens only. */
.pg-public-company-al{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.pg-public-company-allot{display:block}
.pg-public-company-allot small{display:block;font-size:var(--xs);color:var(--mu)}
.pg-public-company-lock{margin-top:0}
.pg-public-company-note{margin-top:var(--g2);max-width:56em}
.pg-public-company-about{max-width:720px}
.pg-public-company-about p{line-height:1.65}
.pg-public-company-about .btns{margin-top:var(--g2);gap:var(--g1) 28px}
.pg-public-company-about .cap{margin-top:var(--g3)}
@media (max-width:700px){
.pg-public-company-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--g3) var(--g2)}
}

/* ---- 88_page_signin.css ---- */
/* Sign up and sign in (pages/signin.html): the text and form rhythm of the focused column. */
.pg-signin-h{font-size:var(--xl);font-weight:500;letter-spacing:-0.035em;line-height:1.12}
.pg-signin-tx{margin-top:var(--g2);line-height:1.55;color:var(--mu)}
.pg-signin-tx b{font-weight:500;color:var(--ink)}
.pg-signin-form{display:grid;gap:var(--g2);margin-top:var(--g3)}
.pg-signin-acts{display:grid;gap:var(--g2);margin-top:var(--g3)}
.pg-signin-ln,.pg-signin-note{font-size:var(--sm);color:var(--mu);text-align:center}
.pg-signin-ln{margin-top:var(--g3)}
.pg-signin-ln a{color:var(--ink)}
.pg-signin-note{min-height:1.5em}
.pg-signin-mic{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--hair2);border-radius:var(--r2);margin-bottom:var(--g3)}

/* ---- 88_page_welcome.css ---- */
/* First run (pages/welcome.html): the step heading, the form column and the compact "how often" choice. */
.pg-welcome-h{margin-top:var(--g4);font-size:var(--xl);font-weight:500;letter-spacing:-0.035em;line-height:1.15}
.pg-welcome-form{margin-top:var(--g3);display:flex;flex-direction:column;gap:var(--g4)}
.pg-welcome-form .fset>legend.lbl{display:flex;justify-content:space-between;gap:var(--g2);width:100%}
.pg-welcome-lgn{font-weight:400;color:var(--mu)}
.pg-welcome-match{padding-top:var(--g2);border-top:1px solid var(--ink);font-weight:500;letter-spacing:-0.01em}
.pg-welcome-acts{display:flex;align-items:center;gap:var(--g2)}
.pg-welcome-acts .btn{flex:1}
.pg-welcome-acts .tl{flex:none;min-height:44px}
.pg-welcome-sum{margin-top:var(--g3);padding:18px 20px;background:var(--tint);border:1px solid var(--hair);border-radius:var(--r)}
.pg-welcome-sum b{display:block;font-weight:500;letter-spacing:-0.01em;line-height:1.4}
.pg-welcome-sum p{margin-top:4px;font-size:var(--sm);color:var(--mu)}
.pg-welcome-note{margin-top:calc(var(--g4) * -1 + var(--g2));font-size:var(--sm);line-height:1.7;color:var(--mu)}
.pg-welcome-note .mk{margin:0 1px 0 4px;vertical-align:1px}
/* three short choices in a row: the card without its ring, centered */
.pg-welcome-freq .chcs{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--g1)}
.pg-welcome-freq .chc{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--g1);border-radius:var(--r2);text-align:center}
.pg-welcome-freq .chc .rd{display:none}
.pg-welcome-freq .chc b{font-size:var(--sm)}
.pg-welcome-freq .chc:has(input:checked) b{font-weight:500}
@media (max-width:700px){
.pg-welcome-h{margin-top:var(--g3);font-size:26px}
}

/* ---- 89_page_account.css ---- */
/* 89_page_account.css: executor Q4 (account, team, billing, api_keys). One family: the shared pieces are pg-account-*, the page pieces
   pg-team-*, pg-billing-* and pg-api-*. Only layout the components do not give. Tokens only. */

/* ---- shared: values, inline forms, rows ---- */
.pg-account-cv{margin:0;font-size:var(--md)}
.pg-account-after{margin-left:var(--g1)}
.pg-account-mu{color:var(--mu)}
.pg-account-post{display:inline-block;margin:0}
.pg-account-inl{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%;max-width:520px}
.pg-account-inl .fld{flex:1 1 220px}
.pg-account-stack{display:grid;gap:var(--g2);width:100%;max-width:520px}
.pg-account-acts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px}
.pg-account-sel{max-width:200px}
.pg-account-sent{margin-bottom:var(--g3)}
.pg-account-sent p{margin:0}
.pg-team-note{margin:var(--g2) 0 0;font-size:var(--sm);color:var(--mu)}
.pg-account-sh{margin-bottom:var(--g2)}
.pg-account-sh h2{font-size:var(--lg);font-weight:500;letter-spacing:-0.02em;line-height:1.2}
.pg-account-save{margin-top:var(--g4)}
.pg-account-ses{display:grid;width:100%;max-width:560px}
.pg-account-sesr{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;padding:12px 0;border-top:1px solid var(--hair)}
.pg-account-sesr:first-child{border-top:0;padding-top:0}
.pg-account-sesr b{display:block;font-weight:500}
.pg-account-sesr .cap{display:block}

/* ---- tables: members and keys use the shared .tb table; these set their widths and action cells ---- */
.pg-team-tb{--tmin:880px}
.pg-api-tb{--tmin:760px}
.pg-team-tb select.in{width:132px;min-height:40px;font-size:var(--sm)}
.pg-team-tb .co .mk{margin-left:6px;vertical-align:1px}
.pg-team-tb td small.cap{display:block;margin-top:2px}
.pg-team-role{display:flex;align-items:center;gap:4px 12px;margin:0}
.pg-team-acts,.pg-api-acts{white-space:nowrap}
.pg-team-acts>*{margin-right:20px;vertical-align:middle}
.pg-team-acts>*:last-child{margin-right:0}
.pg-team-tb .tl,.pg-api-tb .tl{padding:0}
.pg-api-tb th.rh{font-weight:500;font-size:var(--md);letter-spacing:-0.01em;min-width:110px}
.pg-api-key .mkey>span{color:var(--mu);letter-spacing:0.05em}

/* ---- billing ---- */
.pg-billing-usg{display:grid;gap:var(--g1);width:100%;max-width:520px}
.pg-billing-ut{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 16px;margin:0;font-size:var(--md)}
.pg-billing-ut b{font-weight:500}
.pg-billing-ut span{font-size:var(--sm);color:var(--mu)}
.pls.pg-billing-plans{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg-billing-stripe{display:flex;align-items:center;gap:10px;margin:var(--g2) 0 0;font-size:var(--sm);color:var(--mu)}
.pg-billing-stripe .ico{flex:none}
.pg-billing-none{margin:0;padding:20px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--hair2);color:var(--mu)}
.rows .pg-billing-none{border-top:0}
.pg-billing-invr{width:100%;font-size:var(--md)}
.pg-billing-invl{display:flex;flex-wrap:wrap;gap:4px 24px;align-items:baseline}
.pg-billing-invl .tl{padding:0}
@media (max-width:700px){
.pls.pg-billing-plans{grid-template-columns:minmax(0,1fr)}
}

/* ---- api keys ---- */
.pg-api-links{display:flex;flex-wrap:wrap;gap:0 24px;margin-top:var(--g1)}
.pg-api-links a{display:inline-flex;align-items:center;min-height:40px;font-size:var(--sm);white-space:nowrap}
.pg-api-usage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:var(--g4) var(--g5);align-items:center}
.pg-api-usage-one{grid-template-columns:minmax(0,1fr)}
.pg-api-usage .stat{display:block}
.pg-api-lock{margin-top:var(--g3);padding:0;border-bottom:0}
.pg-api-code{display:grid;gap:var(--g3)}
.pg-api-cdh{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-bottom:var(--g2)}
.pg-api-cdh h3{font-size:var(--ms);font-weight:600;letter-spacing:-0.015em}
.pg-api-pre{display:block;flex:none;white-space:normal}
.pg-api-keybox{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:var(--g2);padding:12px 12px 12px 16px;background:var(--page);border:1px solid var(--hair2);border-radius:var(--r2)}
.pg-api-keybox .code{flex:1 1 180px;min-width:0;padding:0;background:none;border:0;white-space:nowrap;overflow:hidden}
.pg-api-done{margin-top:var(--g3)}
@media (max-width:900px){
.pg-api-usage{grid-template-columns:minmax(0,1fr);gap:var(--g3)}
}

/* ---- phones: tables become cards (40_data.css); the action cells take a full row ---- */
@media (max-width:700px){
.pg-account-inl .fld,.pg-account-inl .btn{flex-basis:100%;width:100%}
.pg-team-acts,.pg-api-acts{grid-column:1 / -1;white-space:normal}
.pg-team-acts:empty,.pg-api-acts:empty{display:none}
.pg-team-rolec{grid-column:1 / -1}
.pg-team-tb select.in{flex:1 1 auto;width:auto;min-width:0}
.pg-team-role{flex-wrap:nowrap}
.pg-api-keybox .btn{width:100%}
.pg-api-done .btn{width:100%}
}

/* ---- shared: tighter hint under a value, marks after a value ---- */
.pg-account-cv .mk{margin-left:var(--g1)}
.pg-account-cv+.hint,.pg-account-sel+.hint,.pg-account-inl+.hint,.pg-account-post+.hint,.ck+.hint{margin-top:-4px}

/* ---- 89_page_billing_api.css ---- */
/* 89_page_billing_api.css: executor E4. Billing (pg-billing-*) and API keys (pg-api-*) additions of Wave 7. Only these two pages use it.
   The first pieces of both families are in 89_page_account.css. Tokens only. */

/* ---- billing: the note shown where the checkout and portal buttons would be when Stripe is not set up ---- */
.pg-billing-note{margin:0 0 var(--g3);font-size:var(--sm);color:var(--mu)}
.ctl .pg-billing-note{margin:var(--g1) 0 0}

/* ---- billing: seats and billing period inside the Pro checkout form ---- */
.pg-billing-opts{display:grid;gap:var(--g3);margin-bottom:var(--g3)}
.pg-billing-opts .in{max-width:140px}
.pg-billing-opts .ck{min-height:40px}

/* ---- api keys: a plan without API calls, and the "only owners" line under the Keys heading ---- */
.pg-api-lock-solo{margin-top:0}
.pg-api-owners{margin:0 0 var(--g3);font-size:var(--sm);color:var(--mu)}

/* ---- 90_gallery.css ---- */
/* /_design gallery only (planner). Not used by product pages. */
.gx-toc{display:flex;flex-wrap:wrap;gap:4px 20px;padding:16px 0 24px;border-bottom:1px solid var(--hair2);font-size:var(--sm)}
.gx-toc a{color:var(--mu);text-decoration:none;min-height:40px;display:inline-flex;align-items:center}
.gx-toc a:hover{color:var(--ink)}
.gx-group{margin-top:var(--g6);padding-top:var(--g3);border-top:1px solid var(--ink)}
.gx-h{font-size:var(--xl);font-weight:500;letter-spacing:-0.03em;margin:0 0 var(--g3)}
.gx-item{margin-top:var(--g5)}
.gx-item>.gx-name{font-size:var(--xs);color:var(--mu);margin:0 0 var(--g2);font-family:inherit}

/* ---- 96_demo.css ---- */
/* 96_demo.css: the guided demo (W9, R5). Everything here applies only when base.html renders the demo bar (body[data-demo]).
   Markup: templates/components/demo.html. Behavior: static/app.js ("guided demo"), which also sets --demo-h (the bar's height).
   Parts: the guide bar (top on a desktop, a compact sheet at the bottom on a phone), the coach mark on the step's focus element,
   the locked-action dialog (the existing .scrim and .dlg, plus one rule so [hidden] wins). Tokens only. */

:root{--demo-h:64px}

/* ---- guide bar: white, hair border, shadow; sticks to the top above the app header ---- */
.demo-bar{position:sticky;top:0;z-index:70;background:var(--surf);border-bottom:1px solid var(--hair2);box-shadow:var(--sh2)}
.demo-in{display:flex;align-items:center;gap:8px 24px;max-width:1440px;margin:0 auto;padding:10px var(--pad);min-height:64px}
.demo-st{flex:none;display:flex;align-items:center;gap:12px;margin:0;font-size:var(--xs);color:var(--mu);white-space:nowrap}
.demo-tag{padding:2px 8px;border:1px solid var(--hair2);border-radius:var(--r2);font-weight:600;color:var(--ink)}
.demo-cp{flex:1 1 auto;min-width:0;margin:0;font-size:var(--sm);line-height:1.4;color:var(--mu)}
.demo-t{margin-right:8px;font-weight:600;color:var(--ink)}
.demo-act{flex:none;display:flex;align-items:center;gap:8px 20px}
.demo-act .tl{min-height:40px}

/* ---- coach mark: a 2 px accent outline with an offset and a soft dimming of the page behind it ---- */
[data-demo-focus],
html:not(.demo-js) body[data-demo] :target{
  outline:2px solid var(--acc);outline-offset:8px;
  box-shadow:0 0 0 8px var(--page),0 0 0 100vmax color-mix(in srgb,var(--ink) 14%,transparent);
  scroll-margin:calc(var(--demo-h) + 24px) 0 24px;
}
/* table rows and row groups take an outline only (they cannot carry a shadow) */
tr[data-demo-focus],html:not(.demo-js) body[data-demo] tr:target{box-shadow:none;outline-offset:-2px}
tbody[data-demo-focus]{box-shadow:none;outline-offset:0}

/* ---- locked-action dialog ---- */
.demo-dlg[hidden]{display:none}
.demo-dlg{z-index:80}
.demo-dlg .dlg-b{margin-top:var(--g3)}

/* sticky bars of the pages sit under the demo bar instead of behind it */
body[data-demo] .pg-company-menu{top:var(--demo-h)}

/* ---- phone: a compact sheet at the bottom with the step title, Next and Start free trial ---- */
@media (max-width:700px){
  .demo-bar{position:fixed;top:auto;left:0;right:0;bottom:0;border-bottom:0;border-top:1px solid var(--hair2);border-radius:var(--r) var(--r) 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .demo-in{flex-wrap:wrap;padding-top:12px;padding-bottom:12px;min-height:0;gap:6px 12px}
  .demo-st{flex:1 1 100%}
  .demo-cp{flex:1 1 100%}
  .demo-x{display:none}
  .demo-t{margin-right:0;font-size:var(--md)}
  .demo-act{flex:1 1 100%;gap:8px 12px}
  .demo-act .demo-go{flex:1 1 0;min-width:0}
  .demo-act .demo-next{flex:none;justify-content:center;min-height:40px;padding:0 16px;border:1px solid var(--hair2);border-radius:var(--r2);text-decoration:none}
  body[data-demo]{padding-bottom:var(--demo-h)}
  body[data-demo] .pg-company-menu{top:0}
  [data-demo-focus],
  html:not(.demo-js) body[data-demo] :target{scroll-margin:24px 0 calc(var(--demo-h) + 24px)}
}
@media (prefers-reduced-motion:no-preference){html.demo-js{scroll-behavior:smooth}}
