/* Approved Analyst Workbench shell. Existing application data contracts remain intact. */
:root{--color-bg:#07131e;--color-surface:#07111b;--color-surface-raised:#102332;--color-text:#e7eef4;--color-text-secondary:#b7c7d2;--color-text-muted:#91a5b4;--color-rule:#29404e;--color-border:#527080;--color-accent:#55c8ec;--color-focus:#8ee5ff;--color-lamp:#6cb6ff;--wb-font:"Segoe UI",Helvetica,sans-serif;--wb-rail:266px;--chart-1:#55c8ec;--chart-2:#91a5b4;--chart-3:#53d6a5}
:root[data-theme=light]{--color-bg:#f5f8fa;--color-surface:#edf3f6;--color-surface-raised:#fff;--color-text:#152a39;--color-text-secondary:#365466;--color-text-muted:#476577;--color-rule:#c1d0da;--color-border:#718b9c;--color-accent:#006681;--color-focus:#005f85;--color-lamp:#176c9c}
*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font:16px/1.55 var(--wb-font);font-variant-numeric:tabular-nums}h1,h2,h3,h4,button,input,select,.wm,.r-head h2,.r-card-value{font-family:var(--wb-font)!important}a{color:var(--color-accent)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wb-skip{position:fixed;left:16px;top:-100px;z-index:100;background:var(--color-surface-raised);padding:12px}.wb-skip:focus{top:12px}.wb-brand,.top .brand{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;color:var(--color-text);text-decoration:none;font-size:31px;font-weight:600;letter-spacing:-1px;white-space:nowrap;line-height:1.2}.wb-lamp{display:inline-block;width:56px;height:49px;flex:none;background:url('assets/workbench/10kgenie-lamp.svg') center/contain no-repeat}.wb-icon{display:inline-block;width:24px;height:24px;flex:none;background:currentColor;mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat}
.wb-sidebar{position:fixed;inset:0 auto 0 0;width:var(--wb-rail);padding:34px 19px 26px;border-right:1px solid var(--color-rule);background:var(--color-surface);display:flex;flex-direction:column;z-index:10}.wb-sidebar .wb-brand{margin:0 13px 40px}.wb-nav{display:grid;gap:7px}.wb-nav button,.wb-home{display:flex;gap:18px;align-items:center;min-height:51px;text-align:left;padding:12px 16px;border:0;border-radius:5px;text-decoration:none;background:transparent;color:var(--color-text);font-size:17px}.wb-nav button:hover,.wb-home:hover{background:var(--color-surface-raised)}.wb-nav button[aria-pressed=true],.wb-home[aria-current=page]{background:var(--color-surface-raised);color:var(--color-accent)}.wb-kicker{font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-muted);margin:38px 16px 18px}.wb-utilities{margin-top:auto;padding-top:19px;border-top:1px solid var(--color-rule);display:grid;gap:7px}.wb-utilities a{display:flex;gap:18px;align-items:center;min-height:44px;padding:7px 16px;text-decoration:none;font-size:15px;color:var(--color-text-secondary)}.wb-utilities a:hover{color:var(--color-accent)}
.wb-landing{margin-left:var(--wb-rail);padding:42px 50px 38px;min-height:100vh}.wb-breadcrumb{color:var(--color-text-secondary);font-size:15px;display:flex;gap:14px;align-items:center;margin-bottom:76px}.wb-breadcrumb a{text-decoration:none}.wb-intro .wb-eyebrow{color:var(--color-accent);font-size:16px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px}.wb-intro h1{font-size:54px;letter-spacing:-1.6px;font-weight:600;line-height:1.2;margin:0 0 13px}.wb-intro .wb-subtitle{color:var(--color-text-secondary);font-size:23px;margin:0 0 35px}.wb-company-label{display:block;font-size:22px;font-weight:600;margin-bottom:14px}.wb-search-row{display:flex;position:relative}.wb-search-row .fwrap{flex:1;min-width:0;position:relative}.wb-search-row input{display:block;width:100%;height:72px;background:transparent;border:1px solid var(--color-border);border-right:0;border-radius:6px 0 0 6px;color:var(--color-text);padding:12px 20px 12px 64px;font-size:21px}.wb-search-row input::placeholder{color:var(--color-text-muted);opacity:1}.wb-search-icon{position:absolute;left:22px;top:24px;pointer-events:none}.wb-submit{width:162px;min-height:72px;border:1px solid var(--color-accent);border-radius:6px;background:var(--color-accent);color:#07131e;font-weight:600;font-size:19px}.wb-submit:hover{filter:brightness(1.1)}:root[data-theme=light] .wb-submit{color:#fff}.wb-status{min-height:25px;color:var(--color-text-secondary);font-size:14px;margin:10px 0 18px}.wb-status:empty{min-height:0;margin:0}.wb-destination{margin:10px 0;color:var(--color-accent);font-size:14px}.wb-destination:empty{display:none}.wb-preview-note{border-left:2px solid var(--color-accent);padding:8px 12px;background:var(--color-surface-raised);font-size:13px;color:var(--color-text-secondary);margin-top:16px}
.wb-discover{display:grid;grid-template-columns:1.07fr 1fr;gap:42px;margin-top:50px}.wb-discover h2{font-size:24px;font-weight:600;line-height:1.3;margin:0 0 23px}.wb-examples{border:1px solid var(--color-rule);border-radius:7px;overflow:hidden}.wb-example{display:flex;gap:30px;align-items:center;padding:24px;min-height:91px;color:var(--color-text);text-decoration:none;border-bottom:1px solid var(--color-rule)}.wb-example:last-child{border-bottom:0}.wb-example:hover{background:var(--color-surface-raised)}.wb-symbol{color:var(--color-accent);padding:8px 12px;border:1px solid var(--color-rule);border-radius:5px;min-width:79px;text-align:center}.wb-example .wb-icon{margin-left:auto;width:26px}.wb-story{padding-left:50px;border-left:1px solid var(--color-rule)}.wb-story-row{display:flex;gap:29px;margin:32px 0}.wb-story-row>.wb-icon{width:42px;height:42px;color:var(--color-accent);margin-top:4px}.wb-story h3{font-size:20px;font-weight:500;margin:0 0 4px}.wb-story p{font-size:16px;color:var(--color-text-secondary);margin:0}.wb-story button{border:0;background:none;padding:0;color:var(--color-accent);font:inherit}.wb-source-footer{border-top:1px solid var(--color-rule);margin-top:54px;padding-top:28px;display:flex;gap:35px;color:var(--color-text-muted);font-size:14px}.wb-landing .stat{color:var(--color-text-muted);font-size:12px;margin:24px 0 0}.ac{position:absolute;inset:auto 0 auto 0;z-index:30;background:var(--color-surface-raised);border:1px solid var(--color-border);box-shadow:0 12px 25px #0004;max-height:320px;overflow:auto;border-radius:4px;color:var(--color-text)}.ac [role=option],.ac-item{padding:12px 16px;min-height:48px;cursor:pointer;border-bottom:1px solid var(--color-rule)}.ac [aria-selected=true],.ac [role=option]:hover{background:var(--color-bg);color:var(--color-accent)}.ac .ac-ticker{color:var(--color-accent);font-weight:600;margin-right:12px}.ac .ac-name{color:var(--color-text)}
/* Re-home existing controls without replacing their event handlers or data logic. */
body.wb-company .lay{display:block;margin-left:var(--wb-rail);max-width:none}body.wb-company .rail{position:fixed;inset:0 auto 0 0;width:var(--wb-rail);padding:28px 19px 20px;border-right:1px solid var(--color-rule);background:var(--color-surface);display:flex;flex-direction:column;overflow:auto;z-index:10}body.wb-company .top{display:block;position:static;height:auto;min-height:0;padding:0 12px 22px;border:0;background:none}body.wb-company .top .brand{font-size:30px;margin-bottom:24px}body.wb-company .top .finder{display:block!important;width:100%;max-width:none;margin:0}body.wb-company .top .fwrap{position:relative;width:100%}body.wb-company .top input{width:100%;min-height:44px;border:1px solid var(--color-border);border-radius:4px;padding:8px 10px;background:var(--color-bg);font-size:14px}body.wb-company .search-toggle{display:none}body.wb-company .primary-tabs{display:flex;flex-direction:column;gap:5px;padding:0;margin:0 0 14px;border:0;overflow:visible}body.wb-company .primary-tabs button{display:flex;align-items:center;gap:15px;min-height:48px;padding:11px 14px;text-align:left;border:0;border-radius:4px;color:var(--color-text);font-size:16px;background:none;box-shadow:none}body.wb-company .primary-tabs button[aria-pressed=true]{background:var(--color-surface-raised);color:var(--color-accent)}body.wb-company .rail-groups{overflow:visible;display:block;border-top:1px solid var(--color-rule);padding-top:12px;margin:0 0 25px}body.wb-company .rail-group{display:none!important;min-width:0}body.wb-company .rail-group.active:not([hidden]){display:block!important}body.wb-company .rk{display:none}body.wb-company .rail-group button{width:100%;min-height:39px;font-size:14px;line-height:1.3;padding:10px 13px 10px 22px;white-space:normal;color:var(--color-text-secondary)}body.wb-company .rail-group button.on{color:var(--color-accent);border-left:2px solid var(--color-accent);background:var(--color-surface-raised)}body.wb-company .rail-group button.on::before{display:none}body.wb-company .main{min-width:0;padding:35px 42px;max-width:none}body.wb-company .main>.wb-breadcrumb{margin-bottom:26px}body.wb-company h1{font-size:28px;letter-spacing:-.6px;font-weight:600}body.wb-company .sub{color:var(--color-text-muted);font-size:14px}body.wb-company .r-head{border-top:1px solid var(--color-rule);padding-top:26px}body.wb-company .r-head h2{font-size:30px;font-weight:600;letter-spacing:-.5px}body.wb-company .r-head,.r-section,.r-cards{max-width:100%}body.wb-company .r-eyebrow{color:var(--color-text-muted)}body.wb-company .r-table-scroll{border-color:var(--color-rule)}body.wb-company .r-table{font-size:14px}body.wb-company .r-table th{color:var(--color-text-secondary);font-weight:500}body.wb-company .r-filter{min-height:38px;border-color:var(--color-border)}body.wb-company .r-filter.on,body.wb-company .r-filter[aria-pressed=true]{background:var(--color-accent);color:#07131e}body.wb-company .preview-banner{margin-bottom:24px;font-size:13px;border-color:var(--color-accent);color:var(--color-text-secondary)}body.wb-company .wb-utilities{flex-shrink:0}body.wb-company .wb-utilities>span{display:none}body.wb-company .wb-utilities a{padding:5px 12px}body.wb-company .wb-view-picker{display:none}.wb-view-picker select{max-width:100%;width:100%;min-height:44px;color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:4px;padding:8px 12px}.wb-view-picker label{display:block;font-size:12px;color:var(--color-text-secondary);margin-bottom:6px}
@media(min-width:1600px){.wb-landing{max-width:1600px}}@media(max-width:1100px){:root{--wb-rail:230px}.wb-sidebar .wb-brand,.top .brand{font-size:26px}.wb-landing{padding:32px}.wb-discover{gap:25px}.wb-story{padding-left:25px}.wb-example{gap:16px;padding:18px}.wb-intro h1{font-size:46px}body.wb-company .main{padding:30px}.wb-brand .wb-lamp{width:48px;height:42px}}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){body{font-size:15px}.wb-sidebar{position:static;width:100%;padding:16px 18px;border-right:0;border-bottom:1px solid var(--color-rule)}.wb-sidebar .wb-brand{margin:0;font-size:26px}.wb-lamp{width:48px!important;height:42px!important}.wb-home,.wb-sidebar .wb-kicker{display:none}.wb-nav,body.wb-company .primary-tabs{position:fixed;inset:auto 0 0;z-index:50;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;background:var(--color-surface);border-top:1px solid var(--color-rule);padding:5px 4px calc(5px + env(safe-area-inset-bottom));margin:0}.wb-nav button,body.wb-company .primary-tabs button{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:55px;padding:5px 2px;font-size:12px;border-radius:3px;text-align:center}.wb-nav .wb-icon,body.wb-company .primary-tabs .wb-icon{width:20px;height:20px}.wb-sidebar .wb-utilities{display:none}.wb-landing{margin:0;padding:24px 20px 96px}.wb-breadcrumb{margin-bottom:35px;font-size:13px}.wb-intro .wb-eyebrow{font-size:12px}.wb-intro h1{font-size:35px;letter-spacing:-.9px}.wb-intro .wb-subtitle{font-size:18px;margin-bottom:27px}.wb-company-label{font-size:18px}.wb-search-row input{height:56px;padding:10px 12px 10px 40px;font-size:15px}.wb-search-icon{left:12px;top:18px;width:20px;height:20px}.wb-submit{width:82px;min-height:56px;font-size:15px}.wb-discover{grid-template-columns:1fr;gap:30px;margin-top:30px}.wb-discover h2{font-size:21px;margin-bottom:16px}.wb-story{padding:24px 0 0;border:0;border-top:1px solid var(--color-rule)}.wb-story-row{margin:24px 0;gap:20px}.wb-story h3{font-size:18px}.wb-story p{font-size:14px}.wb-story-row>.wb-icon{width:30px;height:30px}.wb-example{min-height:78px;padding:18px 16px;gap:15px;font-size:15px}.wb-symbol{min-width:66px;padding:7px 9px}.wb-source-footer{margin-top:24px;display:block;font-size:12px;padding-top:20px}.wb-source-footer span{display:block;margin-bottom:5px}body.wb-company .lay{margin:0}body.wb-company .rail{position:static;width:100%;padding:14px 18px;display:block;overflow:visible;border-right:0;border-bottom:1px solid var(--color-rule)}body.wb-company .top{padding:0;display:flex;align-items:center;gap:16px;flex-wrap:wrap}body.wb-company .top .brand{margin:0;font-size:24px}body.wb-company .top .finder{flex:1;min-width:95px}body.wb-company .top input{font-size:14px}body.wb-company .rail-groups{display:none!important}body.wb-company .rail>.wb-utilities{display:none}body.wb-company .main{padding:22px 18px 95px}body.wb-company .main>.wb-breadcrumb{margin-bottom:18px}body.wb-company h1{font-size:25px}body.wb-company .r-head h2{font-size:25px}body.wb-company .r-head{padding-top:18px}body.wb-company .r-table{font-size:14px}body.wb-company .wb-view-picker{display:block;margin:20px 0}body.wb-company .preview-banner{font-size:12px;margin-bottom:18px}.wb-mobile-utilities{display:flex;gap:20px;margin-top:24px}.wb-mobile-utilities a{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Keep existing support/theme controls reachable at narrow widths. */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.wb-sidebar .wb-utilities{display:flex;gap:12px;margin:14px 0 0;padding:10px 0 0}.wb-sidebar .wb-utilities a{padding:5px 0;min-height:44px;font-size:12px;gap:6px}.wb-sidebar .wb-utilities .wb-icon{width:16px;height:16px}body.wb-company .rail>.wb-utilities{display:flex;gap:16px;margin:12px 0 0;padding:8px 0 0}body.wb-company .rail>.wb-utilities a{padding:3px 0;font-size:12px;gap:6px;min-height:44px}body.wb-company .rail>.wb-utilities .wb-icon{width:16px;height:16px}}
/* === research charts v1 === Categorical slots validated with the dataviz validator against the
   workbench surfaces (dark #07111b: all checks pass; light #edf3f6: pass, contrast relief via legend + data table). */
:root{--r-cat-1:#3987e5;--r-cat-2:#d95926;--r-cat-3:#199e70;--r-cat-4:#c98500;--r-cat-5:#d55181;--r-cat-6:#008300;--r-cat-7:#9085e9;--r-cat-8:#e66767}
:root[data-theme=light]{--r-cat-1:#2a78d6;--r-cat-2:#eb6834;--r-cat-3:#1baf7a;--r-cat-4:#eda100;--r-cat-5:#e87ba4;--r-cat-6:#008300;--r-cat-7:#4a3aa7;--r-cat-8:#e34948}
.r-chart{position:relative;margin:0 0 18px;padding:14px 16px 12px;border:1px solid var(--color-rule);border-radius:8px;background:var(--color-surface)}
.r-chart figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 8px}
.r-chart-title{font-weight:600;color:var(--color-text)}
.r-chart-sub{font-size:13px;color:var(--color-text-muted)}
.r-chart-plot{width:100%;overflow:hidden}
.r-chart-plot svg{display:block;width:100%;height:auto}
.r-svg text{font-size:12px;fill:var(--color-text-muted);font-variant-numeric:tabular-nums}
.r-svg .r-vl{fill:var(--color-text-secondary)}
.r-svg .r-hlabel{fill:var(--color-text-secondary)}
.r-svg .r-grid{stroke:var(--color-rule);stroke-width:1}
.r-svg .r-zero{stroke:var(--color-border)}
.r-svg .r-tick{stroke-dasharray:2 4}
.r-svg .r-mark{stroke:var(--color-surface);stroke-width:2;paint-order:stroke}
.r-svg .r-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.r-svg .r-dash1{stroke-dasharray:6 4}.r-svg .r-dash2{stroke-dasharray:2 3}.r-svg .r-dash3{stroke-dasharray:8 3 2 3}
.r-s1{fill:var(--r-cat-1);stroke:var(--r-cat-1)}.r-s2{fill:var(--r-cat-2);stroke:var(--r-cat-2)}.r-s3{fill:var(--r-cat-3);stroke:var(--r-cat-3)}.r-s4{fill:var(--r-cat-4);stroke:var(--r-cat-4)}
.r-s5{fill:var(--r-cat-5);stroke:var(--r-cat-5)}.r-s6{fill:var(--r-cat-6);stroke:var(--r-cat-6)}.r-s7{fill:var(--r-cat-7);stroke:var(--r-cat-7)}.r-s8{fill:var(--r-cat-8);stroke:var(--r-cat-8)}
.r-svg .r-bars .r-mark,.r-svg .r-dot{stroke:var(--color-surface)}
/* Hover/focus ring after the bar/dot stroke rule so it also wins for bars inside .r-bars (same specificity, later wins). */
.r-svg .r-mark:hover,.r-svg .r-mark:focus,.r-svg .r-bars .r-mark:hover,.r-svg .r-bars .r-mark:focus{stroke:var(--color-text);outline:none}
.r-svg path.r-line.r-s1,.r-svg path.r-line.r-s2,.r-svg path.r-line.r-s3,.r-svg path.r-line.r-s4,.r-svg path.r-line.r-s5,.r-svg path.r-line.r-s6,.r-svg path.r-line.r-s7,.r-svg path.r-line.r-s8{fill:none}
.r-svg .r-neg{fill:var(--color-danger,var(--r-cat-8))}
.r-muted-mark{fill:var(--color-text-muted);stroke:var(--color-text-muted)}
.r-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0 0;padding:0;list-style:none;font-size:13px;color:var(--color-text-secondary)}
.r-key li{display:inline-flex;align-items:center;gap:6px}
.r-swatch{display:inline-block;width:12px;height:12px;border-radius:3px}
.r-key-value{color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.r-chart-note{margin:8px 0 0;font-size:13px;color:var(--color-text-muted)}
.r-chart-data{margin-top:10px}
.r-chart-data>summary{cursor:pointer;font-size:13px;color:var(--color-accent);min-height:32px;display:flex;align-items:center}
.r-tip{position:absolute;top:0;left:0;z-index:5;max-width:320px;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font-size:13px;line-height:1.4;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.25);white-space:pre-line}
.r-toggle{margin:0 0 12px}
.r-kpi .r-value{font-variant-numeric:tabular-nums}
.r-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px}
@media (max-width:640px){.r-chart{padding:12px 10px}.r-svg text{font-size:11px}.r-toggle button{min-height:44px}}
/* --- research charts v1: integration. Domain snippets (events, quality, ownership, capital allocation,
   governance) merged and de-duplicated, plus one shared layout for all research panes. Tokens only. --- */
/* Legend swatches and timeline dots are spans, so the fill/stroke slot rules above don't colour them. */
.r-swatch.r-s1{background:var(--r-cat-1)}.r-swatch.r-s2{background:var(--r-cat-2)}.r-swatch.r-s3{background:var(--r-cat-3)}.r-swatch.r-s4{background:var(--r-cat-4)}
.r-swatch.r-s5{background:var(--r-cat-5)}.r-swatch.r-s6{background:var(--r-cat-6)}.r-swatch.r-s7{background:var(--r-cat-7)}.r-swatch.r-s8{background:var(--r-cat-8)}
.r-swatch.r-muted-mark{background:var(--color-text-muted)}
/* Shared layout: controls, KPI strip, figures and record panels stack with one 16px rhythm and share one frame. */
.research-view>.r-cards,.research-view>.r-panel,.research-view>.r-chart,.research-view>.r-chart-grid,.research-view>.r-toggle,.research-view>.r-empty{margin:16px 0 0}
.research-view>.r-toggle+.r-toggle{margin-top:8px}
.research-view>.r-chart-grid>.r-chart{margin:0}
.research-view>.r-chart-note{margin:8px 0 0;max-width:90ch}
.research-view .r-card,.research-view .r-panel{border-color:var(--color-rule);border-radius:8px}
.research-view .r-panel{background:var(--color-surface)}
.research-view .r-panel-head{flex-wrap:wrap;gap:6px 12px;min-height:46px}
.research-view .r-panel-head .r-toggle{margin:0}
.r-panel>.r-toggle{margin:12px}
/* Toggle groups wrap instead of scrolling sideways, so every option is visible at any width and the focus ring is not clipped. */
.research-view .r-toggle{flex-wrap:wrap;overflow:visible;gap:6px}
.research-view .r-toggle button{white-space:normal;text-align:left}
.research-view .r-toggle button+button{border-left:1px solid var(--color-border)}
.r-chart figcaption .r-toggle{margin:0 0 0 auto;align-self:center}
.r-panel>.r-chart-note,.r-panel>p.r-muted{margin:10px 12px 12px;padding:0;max-width:90ch;font-size:13px;color:var(--color-text-muted)}
.r-panel>.r-chart{margin:0;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:transparent}
.r-panel>.r-chart-grid{padding:12px}
.r-table td .r-muted{font-variant-numeric:tabular-nums}
/* Long record panels (1,000+ rows) skip layout until scrolled near: every row stays in the DOM, first paint stays fast.
   Panels holding a chart are excluded so hover tooltips are never clipped by paint containment. */
.research-view>.r-panel:not(:has(.r-chart)){content-visibility:auto;contain-intrinsic-size:auto 600px}
/* KPI tiles: detail line, then an optional source line (.r-kpi-link) in every domain. */
.r-kpi .r-muted{line-height:1.45}
.r-kpi .r-kpi-link{margin:6px 0 0;font-size:13px;color:var(--color-text-muted)}
.r-meter{display:block;width:100%;height:8px;margin-top:8px}
.r-meter .r-meter-track{fill:var(--color-rule);stroke:none}
.r-meter .r-meter-fill{stroke:none}
/* events: latest-filings timeline (rail and dots are decorative, aria-hidden) */
.r-tl-toolbar{padding:12px 12px 0}
.r-tl-toolbar .r-filters,.r-tl-toolbar .r-toggle{margin:0}
.r-tl{position:relative;list-style:none;margin:0;padding:12px 12px 2px 36px}
.r-tl::before{content:"";position:absolute;left:21px;top:24px;bottom:24px;width:1px;background:var(--color-rule)}
.r-tl-item{position:relative;margin:0 0 10px}
.r-tl-dot{position:absolute;left:-20px;top:17px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px var(--color-surface)}
.r-tl-card{display:grid;grid-template-columns:128px minmax(0,1fr) auto;gap:4px 16px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}
.r-tl-when time{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.r-tl-body p{margin:0 0 4px}
.r-tl-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.r-chip{display:inline-block;padding:1px 8px;border:1px solid var(--color-accent);border-radius:4px;color:var(--color-accent);font-size:13px;font-variant-numeric:tabular-nums}
.r-tl-items{margin:0 0 4px;padding:0;list-style:none;color:var(--color-text-secondary)}
.r-tl-items li{margin:2px 0}
.r-tl-code{display:inline-block;min-width:76px;color:var(--color-text);font-variant-numeric:tabular-nums}
.r-tl-desc{color:var(--color-text-secondary)}
.r-tl-flags{margin-top:4px}
.r-tl-link{align-self:start;white-space:nowrap}
.r-badge{display:inline-block;margin:2px 6px 2px 0;padding:1px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:12px;color:var(--color-text-secondary)}
.r-badge-warn{border-color:var(--color-warning);color:var(--color-text)}
/* ownership: SEC code badge in the transaction record. The letter is text; colour is only the ring. */
.r-code{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;margin-right:4px;border:2px solid var(--color-border);border-radius:11px;color:var(--color-text);font-size:12px;font-weight:600;line-height:1;vertical-align:middle}
.r-code-p{border-color:var(--r-cat-3)}
.r-code-plan{border-color:var(--r-cat-1)}
.r-code-s{border-color:var(--r-cat-2)}
.r-code-x{border-color:var(--color-text-muted);color:var(--color-text-secondary)}
.r-scope{margin:0;padding:12px 16px 14px 32px;color:var(--color-text-secondary);font-size:14px}
.r-scope li+li{margin-top:4px}
@media (max-width:768px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .r-tl{padding-left:30px}.r-tl::before{left:15px}.r-tl-dot{left:-20px}
  .r-tl-card{grid-template-columns:1fr}
  .r-tl-toolbar .r-filters button,.r-panel>.r-toggle button{min-height:44px}
  .r-panel>.r-toggle{margin:10px}
}
/* === workbench charts v2 === Financial Charts panes, Data section charts, sparklines and the shared tooltip
   (research-ui.js blocks wb:core, wb:charts, wb:data). Merged from wb/core.css, charts.css and data.css,
   de-duplicated, and aligned with the research charts v1 look above: one card, one caption, one legend, one
   data table and one tooltip style across Research, Charts and Data. Colours come from var(--…) tokens only.
   Series slots resolve to the validated research categorical slots (--r-cat-1..3) and fall back to the page's
   --chart-1..3, which fail the dataviz validator on their own (dark: slot 2 is a grey, normal-vision dE 11;
   light: slots 1 and 2, deutan dE 0.6). To pin the plates to --chart-1..3, change the three --wb-c lines. */
:root{--wb-c1:var(--r-cat-1,var(--chart-1));--wb-c2:var(--r-cat-2,var(--chart-2));--wb-c3:var(--r-cat-3,var(--chart-3));
  --wb-tip-shadow:0 8px 22px -8px var(--color-bg)}
:root[data-theme=light]{--wb-tip-shadow:0 6px 18px -8px var(--color-border)}
.wb-s1{--wb-c:var(--wb-c1)}.wb-s2{--wb-c:var(--wb-c2)}.wb-s3{--wb-c:var(--wb-c3)}.wb-neg{--wb-c:var(--color-danger)}
/* Value-label halo follows the surface the chart sits on. */
.datachart{--wb-halo:var(--color-surface-raised)}
.r-chart{--wb-halo:var(--color-surface)}

/* --- plot (WB.svgBars, WB.svgLines): same text sizes, rules and marks as the research .r-svg --- */
.wb-svg{display:block;width:100%;height:auto;font-variant-numeric:tabular-nums}
.wb-svg text{font-size:12px;fill:var(--color-text-muted)}
.wb-svg .wb-cap{font-size:11px;letter-spacing:.06em;text-transform:uppercase;fill:var(--color-text-muted)}
.wb-svg .wb-grid{stroke:var(--color-rule);stroke-width:1;shape-rendering:crispEdges}
.wb-svg .wb-axis{stroke:var(--color-border);stroke-width:1;shape-rendering:crispEdges}
.wb-svg .wb-line{fill:none;stroke:var(--wb-c);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.wb-svg .wb-bar{fill:var(--wb-c)}
.wb-svg .wb-bar.wb-on{stroke:var(--color-text);stroke-width:1.5}
.wb-svg .wb-pt{fill:var(--wb-c);stroke:var(--wb-halo,var(--color-bg));stroke-width:2;opacity:0}
.wb-svg .wb-pt.wb-show,.wb-svg .wb-pt.wb-end,.wb-svg .wb-pt.wb-on{opacity:1}
.wb-svg .wb-pt.wb-on{stroke:var(--color-text);stroke-width:1.5}
.wb-svg .wb-vl{fill:var(--color-text-secondary);paint-order:stroke;stroke:var(--wb-halo,var(--color-bg));stroke-width:3px;stroke-linejoin:round}
.wb-svg .wb-vl.wb-last{fill:var(--color-text);font-weight:600}
.wb-svg .wb-off{fill:var(--color-warning)}
.wb-svg .wb-hit{fill:var(--color-text);fill-opacity:0;cursor:crosshair}
.wb-svg .wb-hit.wb-on{fill-opacity:.05}
.wb-svg .wb-xh{stroke:var(--color-text-muted);stroke-width:1;opacity:0;pointer-events:none;shape-rendering:crispEdges}
.wb-svg .wb-xh.wb-on{opacity:.8}
.wb-svg:focus{outline:none}
.wb-svg:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion:no-preference){.wb-svg .wb-pt,.wb-svg .wb-xh,.wb-svg .wb-hit{transition:opacity .12s,fill-opacity .12s}}

/* --- legend: one key row for research (.r-key) and financial plates (.wb-keyrow); same gap, size, swatch --- */
.wb-keyrow{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--color-text-secondary)}
.wb-key{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;min-width:0}
.wb-kl{color:var(--color-text-secondary)}
.wb-kv{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.wb-kp{font-size:12px;color:var(--color-text-muted)}
.wb-rate{font-style:normal;font-size:12px;color:var(--color-text-muted);padding:0 7px;border:1px solid var(--color-rule);border-radius:999px;white-space:nowrap}
.wb-span{margin-left:auto;font-size:12px;color:var(--color-text-muted);white-space:nowrap}
.wb-sw{display:inline-block;flex:none;align-self:center}
.wb-sw-line{width:16px;height:0;border-top:2px solid var(--wb-c)}
.wb-sw-d1{border-top-style:dashed}
.wb-sw-d2{border-top-style:dotted}
.wb-sw-bar{width:12px;height:12px;border-radius:3px;background:var(--wb-c)}
.wb-sw-none{width:16px;height:0}
.r-key-value{font-variant-numeric:tabular-nums}
.wb-offnote{margin:8px 0 0;max-width:80ch;font-size:13px;line-height:1.45;color:var(--color-text-muted)}
.wb-offnote::before{content:"";display:inline-block;width:8px;height:6px;margin:0 6px 1px 0;background:var(--color-warning);clip-path:polygon(50% 0,100% 100%,0 100%)}

/* --- tooltip: the research per-figure tip (.r-tip) and the page-wide financial tip (.wb-tip) share one look;
   the first line (period or category) reads as the heading in both. --- */
.r-tip,.wb-tip{max-width:min(340px,calc(100vw - 16px));padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font-size:13px;line-height:1.4;font-variant-numeric:tabular-nums;pointer-events:none;box-shadow:var(--wb-tip-shadow)}
.r-tip::first-line,.wb-tip.wb-tip-plain::first-line{font-weight:600}
.wb-tip{position:fixed;left:0;top:0;z-index:1000}
.wb-tip[hidden]{display:none}
.wb-tip.wb-tip-plain{white-space:pre-line}
.wb-tip-h{font-weight:600;margin:0 0 4px;color:var(--color-text)}
.wb-tip-g{display:grid;grid-template-columns:auto auto minmax(0,1fr);column-gap:8px;row-gap:2px;align-items:baseline}
.wb-tip-g .wb-sw{align-self:center}
.wb-tip-v{font-weight:600;text-align:right;white-space:nowrap;color:var(--color-text)}
.wb-tip-l{color:var(--color-text-secondary)}
.wb-tip-x{font-size:12px;color:var(--color-text-muted)}

/* --- sparkline: inline beside a row label or in a KPI tile --- */
.wb-spark{display:inline-flex;align-items:center;vertical-align:middle;margin:0 0 0 8px;line-height:0}
.wb-sparksvg{display:inline-block;vertical-align:middle;overflow:visible;width:auto;height:auto}
.wb-sparksvg .wb-sp-line{fill:none;stroke:var(--color-text-muted);stroke-width:1.25;stroke-linejoin:round;stroke-linecap:round}
.wb-sparksvg .wb-sp-pt{fill:var(--color-text-muted)}
.wb-sparksvg .wb-sp-zero{stroke:var(--color-rule);stroke-width:1}
.wb-sparksvg .wb-sp-end{fill:var(--wb-c)}

/* --- toolbar (Charts panes .wbc-bar, Data tray .wb-dc-bar): what the chart shows, and the period window,
   built on the research toggle (.r-filters .r-toggle) --- */
.wbc-bar,.wb-dc-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.wbc-bar{padding:0 0 12px;border-bottom:1px solid var(--color-border)}
.wb-dc-bar{margin:0 0 10px}
.wbc-range,.wb-dc-range{margin:0;font-size:13px;line-height:1.5;color:var(--color-text-secondary)}
.wbc-range b,.wb-dc-range b{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap}
.wbc-range-k,.wb-dc-range-k{margin-right:4px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}
.wbc-range-n,.wb-dc-range-n{color:var(--color-text-muted);white-space:nowrap}
.wbc .wbc-win,.wb-dc-bar .wb-dc-win{margin:0;flex:none;overflow:visible}
.wbc .wbc-win button,.wb-dc-bar .wb-dc-win button{min-height:36px;padding:4px 14px;font-size:13px;font-variant-numeric:tabular-nums}

/* --- Charts panes (WB.renderCharts): plates reuse the research card (.r-chart), toggle and KPI type --- */
.wbc{container-type:inline-size;margin-top:18px;min-width:0}
.wbc-empty{margin-top:26px}
.wbc>.fnote{margin-top:14px}
/* Summary strip: the research KPI tile (.r-card look) with the window's sparkline. */
.wbc-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0}
.wbc-strip.wbc-n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.wbc-strip.wbc-n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.wbc-strip.wbc-n1{grid-template-columns:minmax(0,340px)}
@container (max-width:999px){.wbc-strip.wbc-n4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:719px){.wbc-strip.wbc-n3{grid-template-columns:repeat(2,minmax(0,1fr))}.wbc-strip.wbc-n3>:last-child{grid-column:1/-1}}
.wbc-kpi{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l l" "v s" "d d";align-items:end;gap:2px 10px;min-width:0;margin:0;padding:14px 15px;border:1px solid var(--color-rule);border-radius:8px;background:var(--color-surface)}
.wbc-kpi .wbc-kpi-l{grid-area:l;margin:0;line-height:1.35}
.wbc-kpi .wbc-kpi-v{grid-area:v;margin:2px 0 0;font-size:24px;line-height:1.15;white-space:nowrap}
.wbc-kpi-d{grid-area:d;margin:6px 0 0;font-size:12px;line-height:1.4;color:var(--color-text-muted)}
.wbc-kpi-d b{font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.wbc-kpi-s{grid-area:s;align-self:center;line-height:0}
/* Plate grid: two columns when the pane is wide enough, one otherwise. */
.wbc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 0;align-items:start}
.wbc-grid>.wbc-plate.r-chart{margin:0;min-width:0}
.wbc-grid>.wbc-wide,.wbc-grid>.wbc-fill{grid-column:1/-1}
@container (max-width:759px){.wbc-grid{grid-template-columns:minmax(0,1fr)}}
@supports not (container-type:inline-size){@media (max-width:1100px){.wbc-grid{grid-template-columns:minmax(0,1fr)}}}
/* Plate head = the research figcaption: title (.r-chart-title weight and colour), derived tag, description
   (.r-chart-sub size and colour); change chips on the right. */
.wbc-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:6px 16px;margin:0 0 10px}
.wbc-titles{flex:1 1 220px;min-width:0}
.wbc-title{display:inline;margin:0;font-size:inherit;font-weight:600;line-height:1.35;color:var(--color-text)}
.wbc-tag{display:inline-block;margin:0 0 0 8px;padding:0 6px;border:1px solid var(--color-border);border-radius:4px;font-size:11px;line-height:17px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);vertical-align:2px}
.wbc-sub{margin:2px 0 0;font-size:13px;line-height:1.4;color:var(--color-text-muted)}
.wbc-chips{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 8px;margin:0;font-size:12px;line-height:1.5;color:var(--color-text-muted)}
.wbc-chip{display:inline-flex;align-items:baseline;gap:4px;padding:1px 9px;border:1px solid var(--color-rule);border-radius:999px;background:var(--color-surface-raised);white-space:nowrap}
.wbc-chip b{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.wbc-chip-l{color:var(--color-text-secondary)}
.wbc-vs{white-space:nowrap}
.wbc-sel{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}
.wbc-sel select{min-height:32px;padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:13px;font-variant-numeric:tabular-nums}
/* Plot, notes (the research .r-chart-note), and the in-window empty state. */
.wbc-plot{width:100%;min-width:0}
.wbc-plate .wbc-note{margin:8px 0 0;max-width:80ch;line-height:1.45}
.wbc-none{margin:6px 0 4px;padding:14px;border:1px dashed var(--color-rule);border-radius:6px;font-size:13px;line-height:1.45;color:var(--color-text-muted)}
/* Income bridge: totals in the series colour, falls muted, rises in the positive colour. */
.wbc-dec{--wb-c:var(--color-text-muted)}
.wbc-inc{--wb-c:var(--color-positive)}
.wbc-bridge .wbc-bl{fill:var(--color-text-secondary);paint-order:stroke;stroke:var(--wb-halo,var(--color-bg));stroke-width:3px;stroke-linejoin:round}
.wbc-bridge .wbc-bl-t{fill:var(--color-text);font-weight:600}
.wbc-bridge .wbc-bv{fill:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.wbc-bridge .wbc-bv-t{fill:var(--color-text);font-weight:600}
.wbc-bridge .wbc-bs{fill:var(--color-text-muted);font-variant-numeric:tabular-nums}
.wbc-bridge .wbc-conn{stroke:var(--color-border);stroke-width:1;stroke-dasharray:2 2;shape-rendering:crispEdges}
.wbc-bridge .wb-hit{cursor:default}

/* --- Data section: row trend lines in All concepts and Segments & breakouts (WB.enhanceDataPane) ---
   label | button | line in the sticky first column, which widens a little to make room. Lines are neutral;
   the row drawn in the tray takes its chart colour, and a member drawn in the tray carries its line swatch. */
.cscroll.wb-has-spark{--cfirst:clamp(236px,36vw,360px)}
.cnrow.wb-sp{grid-template-columns:minmax(0,1fr) auto auto}
.cnrow>.wb-spark{grid-column:3;grid-row:1;margin:0;align-self:center}
.cscroll .wb-sparksvg .wb-sp-line{stroke:var(--color-text-muted)}
.cscroll .wb-sparksvg .wb-sp-end{fill:var(--color-text-secondary)}
.wb-spark.wb-go{cursor:pointer}
.wb-spark.wb-go:hover .wb-sp-line{stroke:var(--color-text)}
#ctab tr.chartsel .wb-sp-line,#stab tr.wb-slot1 .wb-sp-line{stroke:var(--wb-c1)}
#ctab tr.chartsel .wb-sp-end,#stab tr.wb-slot1 .wb-sp-end{fill:var(--wb-c1)}
#stab tr.wb-slot2 .wb-sp-line{stroke:var(--wb-c2)}
#stab tr.wb-slot2 .wb-sp-end{fill:var(--wb-c2)}
#stab tr.wb-slot3 .wb-sp-line{stroke:var(--wb-c3)}
#stab tr.wb-slot3 .wb-sp-end{fill:var(--wb-c3)}
.wb-rowsw{margin:0 7px 2px 0;vertical-align:middle}
.wb-sphint{color:var(--color-text-muted)}

/* --- Data chart tray (WB.afterDataChart): the tray reads as a research figure card; its title takes the
   research figure-title type. Readings strip for one series, member table (doubles as the legend) for several. */
.datachart{border:1px solid var(--color-rule);border-radius:8px;box-shadow:inset 3px 0 0 var(--color-accent);padding:14px 16px 12px 19px}
.datachart .dctitle{font-family:inherit;font-size:inherit;font-weight:600;color:var(--color-text)}
.datachart .dcmeta{font-size:13px}
.wb-dc-sum{display:flex;flex-wrap:wrap;gap:10px 0;margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--color-rule)}
.wb-dc-stat{min-width:0;padding:0 18px 0 14px;border-left:1px solid var(--color-rule)}
.wb-dc-stat:first-child{padding-left:0;border-left:0}
.wb-dc-stat dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap}
.wb-dc-stat dd{margin:3px 0 0;font-size:13px;color:var(--color-text-muted);white-space:nowrap}
.wb-dc-stat dd b,.wb-dc-mt td b{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.wb-dc-stat dd b{font-size:17px}
.wb-dc-when{font-size:12px;color:var(--color-text-muted)}
.wb-dc-mwrap{margin:14px 0 0;padding-top:4px;border-top:1px solid var(--color-rule);overflow-x:auto;max-width:100%}
.wb-dc-mt{width:100%;font-size:13px}
.wb-dc-mt thead th{position:static;background:none;padding:6px 0 5px 16px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.wb-dc-mt thead th:first-child{min-width:0;padding-left:0}
.wb-dc-mt td,.wb-dc-mt tbody th{padding:6px 0 6px 16px;vertical-align:baseline}
.wb-dc-mt tbody th:first-child{padding-left:0;white-space:normal;min-width:11em}
.wb-dc-mt tr:last-child>*{border-bottom:0}
.wb-dc-mem{display:inline-flex;align-items:center;gap:8px;color:var(--color-text)}
.wb-dc-mem .wb-sw{flex:none}
.wb-dc-mt td.na{color:var(--color-text-muted);text-align:left}

/* --- data tables: one look for the Charts plates (.wbc-table) and the Data tray (.wb-dt-table), matched to
   the research data table: rule-framed scroll box, header row held while it scrolls, period first,
   numbers right-aligned in tabular figures, a dash (muted) for not reported. --- */
.wbc-data,.wb-dt{margin-top:10px}
.wbc-tscroll,.wb-dt-scroll{max-width:100%;max-height:320px;overflow:auto;margin-top:6px;border:1px solid var(--color-rule);border-radius:6px;scrollbar-color:var(--color-border) var(--color-surface)}
.wbc-tscroll,.wb-dt-scroll{max-width:760px}
/* A tray table with several members may use the full width. */
.wb-dt-scroll:has(thead th:nth-child(4)){max-width:100%}
.wb-dt-scroll{scrollbar-color:var(--color-border) var(--color-surface-raised)}
.wbc-tscroll:focus-visible,.wb-dt-scroll:focus-visible,.wb-dc-mwrap:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.wbc-table,.wb-dt-table{width:100%;min-width:0;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--color-text)}
.wbc-table caption,.wb-dt-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wbc-table thead th,.wb-dt-table thead th{position:sticky;top:0;left:auto;z-index:1;min-width:0;padding:6px 12px;border-bottom:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text-secondary);font-size:12px;font-weight:500;letter-spacing:0;text-align:right;white-space:nowrap;vertical-align:bottom}
.wb-dt-table thead th{white-space:normal;min-width:7em;max-width:18em}
.wbc-table thead th:first-child,.wb-dt-table thead th:first-child{min-width:0;left:auto;z-index:2;padding-left:12px;text-align:left}
.wbc-table tbody td,.wbc-table tbody th,.wb-dt-table tbody td,.wb-dt-table tbody th{padding:5px 12px;border-bottom:1px solid var(--color-rule);text-align:right;white-space:nowrap}
.wbc-table tbody th,.wb-dt-table tbody th{font-weight:400;text-align:left;color:var(--color-text-secondary)}
.wbc-table tbody tr:last-child>*,.wb-dt-table tbody tr:last-child>*{border-bottom:0}
.wbc-table tbody td.wbc-na,.wb-dt-table td.na{color:var(--color-text-muted)}
.wbc-table tbody .wbc-tr-t>*{font-weight:600;color:var(--color-text)}
.wbc-tfoot,.wb-dt-src{margin:8px 0 0;max-width:80ch;font-size:12px;line-height:1.45;color:var(--color-text-muted)}
.wb-dt-src{overflow-wrap:anywhere}

/* --- narrow screens: window buttons share the row at touch size; tiles and readings pair up; the row trend
   line drops under its label; member readings become one small card per member --- */
@media (max-width:640px){
  .wbc-bar{align-items:stretch}
  .wbc .wbc-win,.wb-dc-bar .wb-dc-win{display:flex;width:100%}
  .wbc .wbc-win button,.wb-dc-bar .wb-dc-win button{flex:1 1 0;min-height:44px;padding:4px 6px}
  .wbc-strip,.wbc-strip.wbc-n3,.wbc-strip.wbc-n4{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .wbc-strip.wbc-n1{grid-template-columns:minmax(0,1fr)}
  .wbc-kpi{grid-template-columns:minmax(0,1fr);grid-template-areas:"l" "v" "d" "s";padding:10px}
  .wbc-kpi .wbc-kpi-v{font-size:20px}
  .wbc-kpi-s{margin-top:6px;align-self:start}
  .wbc-grid{gap:12px}
  .wbc-chips{justify-content:flex-start}
  .wbc-sel select{min-height:44px}
  .datachart{padding:12px 10px 10px 13px}
  .cnrow.wb-sp{grid-template-columns:minmax(0,1fr) auto;row-gap:3px}
  .cnrow.wb-sp>.wb-spark{grid-column:1 / -1;grid-row:2;justify-self:start}
  .wb-dc-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
  .wb-dc-stat,.wb-dc-stat:first-child{padding:0;border-left:0}
  .wb-dc-stat dd{white-space:normal}
  .wb-dc-mwrap{overflow:visible}
  .wb-dc-mt thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .wb-dc-mt tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;padding:10px 0;border-bottom:1px solid var(--color-rule)}
  .wb-dc-mt tbody tr:last-child{border-bottom:0}
  .wb-dc-mt tbody th:first-child{grid-column:1 / -1;min-width:0;padding:0;border:0}
  .wb-dc-mt td{display:block;padding:0;border:0;text-align:left;white-space:normal}
  .wb-dc-mt td.na{grid-column:1 / -1}
  .wb-dc-mt td[data-label]::before{content:attr(data-label);display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}
  .wbc-table,.wb-dt-table{font-size:12px}
  .wbc-table thead th,.wb-dt-table thead th,.wbc-table tbody td,.wbc-table tbody th,.wb-dt-table tbody td,.wb-dt-table tbody th{padding-left:8px;padding-right:8px}
}
@media (max-width:520px){
  .wb-keyrow{gap:4px 12px;font-size:12px}
  .wb-span{margin-left:0}
  .r-tip,.wb-tip{font-size:12px}
}
/* === workbench charts v2 end === */
/* === research peers v6 (UI bundle v6) === Percentile cards reuse .r-kpi and the strip reuses the chart kit classes
   (r-s1, r-grid, r-axis, r-vl). Tokens only. The "not included in this release" state is neutral (no warning colour):
   it states release scope, not a data problem. */
.research-view>.r-peer-cohort{margin:16px 0 0}
.r-peer-cohort .r-source{white-space:nowrap}
.r-peer-ops{margin:0;padding:0;list-style:none}
.r-peer-ops li+li{margin-top:4px}
.r-state[data-coverage="not_in_release"]{border-left-color:var(--color-border)}
.r-state .r-state-scope{font-size:13px}
.wb-release-note{margin:10px 0 0;padding:8px 12px;border-left:3px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:14px}
/* === market v7 (UI bundle v7) === Market strip, Market panes and the seriesChart primitive. Tokens only (no literal
   colours); up/down use --color-positive/--color-danger and always sit next to a sign and an arrow. Rules are scoped
   to .mk-* classes, which exist in the DOM only when the market lane pointer is on. */
.mk-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin:14px 0 4px;padding:12px 16px;border:1px solid var(--color-rule);border-radius:8px;background:var(--color-surface);font-size:14px;color:var(--color-text-secondary)}
.mk-strip-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.mk-close{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:26px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.mk-chg{font-weight:600;font-variant-numeric:tabular-nums}
.mk-up{color:var(--color-positive)}.mk-down{color:var(--color-danger)}.mk-flat{color:var(--color-text-secondary)}
.mk-when{color:var(--color-text-muted);font-size:13px}
.mk-stale-chip{padding:1px 8px;border:1px solid var(--color-warning);border-radius:999px;color:var(--color-warning);font-size:12px}
.mk-range{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.mk-range-bar{display:block;flex:none}
.mk-track{fill:var(--color-rule)}.mk-fill{fill:var(--color-border)}.mk-pin{fill:var(--color-accent)}
.mk-kv{font-size:13px;color:var(--color-text-secondary)}.mk-kv strong{color:var(--color-text);font-weight:600;font-variant-numeric:tabular-nums}
.mk-cap{position:relative;display:inline-flex;align-items:center;gap:5px;border-radius:4px}
.mk-cap:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
.mk-info{display:inline-block;width:15px;height:15px;border:1px solid var(--color-border);border-radius:999px;font-size:10px;line-height:13px;text-align:center;font-style:italic;color:var(--color-text-muted)}
.mk-tipbox{display:none;position:absolute;left:0;top:calc(100% + 8px);z-index:20;width:min(360px,80vw);padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font-size:13px;line-height:1.45;box-shadow:0 8px 22px -8px var(--color-bg)}
.mk-cap:hover .mk-tipbox,.mk-cap:focus .mk-tipbox,.mk-cap:focus-within .mk-tipbox{display:block}
.mk-src{margin-left:auto;font-size:12px}
.mk-credit{color:var(--color-accent);text-underline-offset:2px}
.mk-strip-note{margin:0;font-size:14px}
.mk-legal{margin-top:6px}
body .disclaimer.mk-legal,body.wb-company .disclaimer.mk-legal{font-size:11px;line-height:1.45;color:var(--color-text-muted)} /* UI v7.2 s6 (D33): the only Tiingo credit, small */
.mk-view .mk-controls{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:16px}
.mk-view .mk-controls .r-filters{margin:0}
.mk-view .mk-note{margin-top:12px}
.mk-view .mk-h3{margin:22px 0 0;font-size:16px}
.mk-view .mk-cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mk-view .r-panel .r-table{min-width:560px}
.mk-formula .mk-eq{margin:4px 0 6px;color:var(--color-text-secondary);font-size:14px;font-variant-numeric:tabular-nums}
.mk-parts{margin:6px 0 0;padding-left:18px;font-size:13px}
.mk-caveat{margin-top:16px}
.mk-pill{display:inline-block;padding:1px 9px;border:1px solid var(--color-border);border-radius:999px;font-size:12px;white-space:nowrap;color:var(--color-text-secondary)}
.mk-pill[data-session="after_hours"]{border-color:var(--r-cat-7)}.mk-pill[data-session="pre_market"]{border-color:var(--r-cat-4)}.mk-pill[data-session="market_hours"]{border-color:var(--r-cat-3)}
.r-svg .mk-area{fill-opacity:.1;stroke:none}
.r-svg path.mk-series{stroke-width:1.6}
.r-svg .mk-band{fill:var(--r-cat-1);fill-opacity:.14;stroke:none}
.r-svg .mk-rule{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:5 4}
.r-svg .mk-rule-label{fill:var(--color-text-secondary)}
.r-svg .mk-cross{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:3 3}
.r-svg .mk-cross-dot{stroke:var(--color-surface);stroke-width:2}
.r-svg .mk-marker{stroke:var(--color-surface);stroke-width:1}
.r-svg .mk-hit{fill:transparent;stroke:none;pointer-events:all;cursor:crosshair}
.r-svg .mk-hit:focus{outline:none}
.r-svg .mk-hit:focus-visible{stroke:var(--color-focus);stroke-width:2}
/* UI r7 market fixes v1 (2026-10-02): the "Last trade <date>" chip (strip and Price & Returns header, the .mk-stale-chip
   look), the "Special" marker in the distributions table (the ex-dividend colour) and the one-off (TTM) figure in the TTM
   card. Phone: the close and the change keep the first line; the close date and the chip share the second (the chip's
   date never breaks); in the header the chip starts its own line. */
.mk-last-trade{white-space:nowrap}
.r-cutoff .mk-last-trade{display:inline-block;margin-left:8px;line-height:1.5}
.mk-pill.mk-special{padding:0 8px;border-color:var(--r-cat-7);color:var(--color-text);font-size:11.5px;line-height:1.6}
.mk-oneoff{margin:10px 0 0;padding-top:8px;border-top:1px solid var(--color-rule);font-size:13px;line-height:1.45;color:var(--color-text-muted)}
.mk-oneoff-k{display:block;font-size:12px;color:var(--color-text-secondary)}
.mk-oneoff strong{display:inline-block;margin:2px 6px 0 0;font-size:18px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.r-cutoff .mk-last-trade{display:table;margin:6px 0 0}
  .mk-strip-main:has(>.mk-last-trade)::before{content:"";order:1;flex-basis:100%;height:0}
  .mk-strip-main:has(>.mk-last-trade)>.mk-when,.mk-strip-main>.mk-last-trade{order:2}}
/* UI r8 insider and buyback v1 (2026-10-03): Filing Reactions > Insider Activity and Dividends, Buybacks & Splits >
   Buybacks. Both transaction pills use one neutral colour (the text says Purchase / Sale). Phone: each trade and each
   fiscal year is one card: the first line holds the date and the transaction (or the fiscal year and its end), then
   a two-column grid of label-over-value pairs; the four insider figures sit in a 2 x 2 grid. */
.mk-r8-lead{margin:12px 0 0;max-width:90ch;font-size:14px;line-height:1.5;color:var(--color-text-secondary)}
.r-panel>.mk-r8-lead{margin:12px 12px 10px}
.r-panel>.r-empty.mk-r8-empty{padding:16px 12px}
.r-panel>.r-caveat.mk-r8-stale{margin:12px 12px 0}
.mk-view>.mk-r8-stale{margin-top:12px}
.mk-pill.mk-ins-type{color:var(--color-text);border-color:var(--color-border)}
.mk-bb-split{display:block;margin-top:3px;max-width:22ch;font-size:12px;line-height:1.4;color:var(--color-text-muted);white-space:normal}
/* round 3: the Buybacks headers are short and never wrap or clip; the phone-only distributions cap (<= 600 px). */
.mk-bb-table th{white-space:nowrap}.mk-more8{display:none}
@media(max-width:600px){#pane tr.mk-cap8{display:none!important}.mk-more8{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 12px}
  .mk-more8 button{min-height:40px;padding:6px 14px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-accent);font-size:14px}
  .mk-more8 span{font-size:12.5px;color:var(--color-text-muted)}}
.mk-r8-table td{font-variant-numeric:tabular-nums}
/* U9: the share-count basis chip (quote bar, cap / EV cards, Valuation rows): small, neutral, never wraps inside. */
.mk-basis-chip{display:inline-block;margin:0 0 0 7px;padding:0 7px;border:1px solid var(--color-border);border-radius:999px;font-family:inherit;font-size:11.5px;font-weight:400;font-style:normal;line-height:1.55;letter-spacing:0;text-transform:none;white-space:nowrap;vertical-align:middle;color:var(--color-text-secondary)}
.r-value .mk-basis-chip,.km-value .mk-basis-chip{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.mk-strip .mk-basis-chip{margin-left:6px}
.mk-basis-line{margin:6px 0 0}.mk-basis-line .mk-basis-chip{margin-left:0}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.mk-view>.r-cards.mk-ins-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mk-strip .mk-cap{flex-wrap:wrap;row-gap:2px}.r-value .mk-basis-chip{font-size:11px;margin-left:6px}
  .mk-ins-cards .r-value{font-size:20px}
  #pane .r-table.mk-r8-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;padding:12px}
  #pane .r-table.mk-r8-table td{padding:0!important;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
  #pane .r-table.mk-r8-table td::before{float:none;display:block;width:auto;margin:0 0 2px;font-size:12px;line-height:1.35}
  #pane .r-table.mk-r8-table td:nth-child(-n+2)::before{content:none}
  #pane .r-table.mk-r8-table td:nth-child(1){font-weight:600;color:var(--color-text);font-size:15px}
  #pane .r-table.mk-r8-table td:nth-child(2){justify-self:end;text-align:right;font-weight:400;color:var(--color-text-secondary)}
  #pane .r-table.mk-r8-table .r-source{padding:0}}
/* UI r9 stale range v1 (2026-10-04): the "Stale range" chip (the r7 .mk-stale-chip look) after the 52-week range, with
   the reason as its tooltip (the .mk-cap tooltip box); the muted reason line is for phones only, where it takes its
   own full-width line under the range and the tooltip is not used. Tokens only. */
.mk-range-stale{position:relative;display:inline-block;margin-left:-14px;white-space:nowrap;border-radius:999px;cursor:default}
.mk-range-stale:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.mk-range-stale:hover .mk-tipbox,.mk-range-stale:focus .mk-tipbox,.mk-range-stale:focus-within .mk-tipbox{display:block;white-space:normal}
.mk-range-why{display:none}
.mk-range-chip{white-space:nowrap}
/* UI r9 multi-class market cap v1: the per-class rows of the Valuation cap card (one class per line; on a phone the
   shares x close wraps under the class name) and the "all classes" chip (the U9 .mk-basis-chip look). */
.mk-classes{margin:4px 0 6px;padding:0;list-style:none;font-size:14px;line-height:1.5;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.mk-classes li{display:flex;flex-wrap:wrap;gap:0 8px}.mk-cl-k{min-width:6.5em;color:var(--color-text)}.mk-cl-n{flex-basis:100%;font-size:12px;color:var(--color-text-muted)}
.mk-classes .mk-cl-total{margin-top:2px;padding-top:4px;border-top:1px solid var(--color-rule)}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.mk-range-stale{margin-left:0}.mk-range-stale .mk-tipbox{display:none!important}.mk-cl-k{min-width:0;flex-basis:100%}
  .mk-strip .mk-range-why{display:block;flex-basis:100%;margin:-4px 0 0;font-size:12.5px;line-height:1.45;color:var(--color-text-muted)}}
/* UI r10 company P/E v1 (U13, 2026-10-05): the quote-bar P/E on a company-total-cap page carries the "company" chip
   (the U9 .mk-basis-chip look) and the .mk-cap tooltip box, opened on hover or keyboard focus. Tokens only. */
.mk-pe-co{position:relative;display:inline-flex;align-items:center;gap:5px;border-radius:4px}
.mk-pe-co:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
.mk-pe-co:hover .mk-tipbox,.mk-pe-co:focus .mk-tipbox,.mk-pe-co:focus-within .mk-tipbox{display:block}
/* UI r10 round 2: the "this class" chip (same look); with a tooltip it opens on hover or keyboard focus. */
.mk-class-chip[tabindex]{position:relative;cursor:default}
.mk-class-chip[tabindex]:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.mk-class-chip .mk-tipbox{width:min(280px,70vw);white-space:normal;font-weight:400;text-align:left}
.mk-class-chip:hover .mk-tipbox,.mk-class-chip:focus .mk-tipbox,.mk-class-chip:focus-within .mk-tipbox{display:block}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.mk-strip .mk-pe-co{flex-wrap:wrap;row-gap:2px}}
/* UI r11 blank-field labels v1 (2026-10-06): the "derived" frequency chip (the U9 .mk-basis-chip look; tooltip on hover,
   above the chip and right-aligned, so it stays inside the scrolling table) and the blank-date reason (.mk-why): the
   reason is screen-reader text and opens as the same tooltip box on hover. Tokens only. */
.mk-derived-chip{position:relative;cursor:help}
.mk-derived-chip .mk-tipbox{left:auto;right:0;top:auto;bottom:calc(100% + 6px);width:min(260px,70vw);white-space:normal;text-align:left}
.mk-derived-chip:hover .mk-tipbox{display:block}
.mk-why{position:relative;cursor:help;border-bottom:1px dotted var(--color-text-muted)}
.mk-why .mk-why-tip{display:block;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mk-why:hover .mk-why-tip{top:auto;bottom:calc(100% + 6px);left:0;width:min(260px,70vw);height:auto;padding:8px 10px;margin:0;overflow:visible;clip:auto;white-space:normal;border:1px solid var(--color-border)}
/* UI r12 short reference label v1 (2026-10-06, U19): the reference-price label (.mk-reftip, focusable). Its full
   wording (.mk-reftip-box) is screen-reader text and opens as the tooltip box on hover, tap or keyboard focus. On a
   phone the box spans the reference row, so it never runs past the screen edge. Tokens only. */
.mk-reftip{position:relative;cursor:help;border-radius:4px}
.mk-reftip-label{border-bottom:1px dotted var(--color-text-muted)}
.mk-reftip:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.mk-reftip .mk-reftip-box{display:block;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mk-reftip:hover .mk-reftip-box,.mk-reftip:focus .mk-reftip-box{width:min(320px,80vw);height:auto;padding:8px 10px;margin:0;overflow:visible;clip:auto;white-space:normal;border:1px solid var(--color-border)}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.mk-ref{position:relative}.mk-reftip{position:static}.mk-reftip:hover .mk-reftip-box,.mk-reftip:focus .mk-reftip-box{left:0;right:0;width:auto}}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.mk-strip{gap:8px 14px;padding:10px 12px}.mk-close{font-size:22px}.mk-src{margin-left:0}.mk-view .mk-cards-2{grid-template-columns:1fr}.mk-tipbox{width:min(320px,86vw)}}
/* === market v7 end === */
/* === u22:style begin === */
#mkStrip .u22-rename {
  display: block;
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}
#mkStrip .u22-rename a {
  color: inherit;
  text-decoration: underline;
  overflow-wrap: anywhere;
}
#mkStrip .u22-rename a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
/* === u22:style end === */
/* === key metrics v7.1 (UI bundle v7.1) === Statements > Key metrics and the Market > Valuation metric rows. Tokens only
   (no literal colours), no good/bad or cheap/expensive colouring (DESIGN L11). Rules are scoped to .km-* classes,
   which exist in the DOM only when the market lane pointer is on. */
.km-list{list-style:none;margin:0;padding:0}
.km-row{padding:10px 12px;border-top:1px solid var(--color-rule)}
.km-list>.km-row:first-child{border-top:0}
.km-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.km-label{flex:1 1 220px;min-width:0;font-size:14px;color:var(--color-text)}
.km-spark-box{display:inline-flex;flex:none}
.km-spark{display:block}
.km-spark-line{fill:none;stroke:var(--color-accent);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.km-spark-dot{fill:var(--color-accent)}
.km-spark-last{stroke:var(--color-surface);stroke-width:1}
.km-value{flex:none;min-width:104px;text-align:right;font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:18px;color:var(--color-text);font-variant-numeric:tabular-nums}
.km-badge,.km-chip{display:inline-block;padding:1px 9px;border:1px solid var(--color-border);border-radius:999px;font-family:var(--wb-font);font-size:12px;line-height:1.5;white-space:nowrap;color:var(--color-text-secondary);vertical-align:middle}
.km-badge[data-state="unavailable"]{border-color:var(--color-warning)}
.km-badge[data-state="not_meaningful"]{border-style:dashed}
.km-chip{margin-left:8px}
.km-reason{margin:4px 0 0;font-size:13px;color:var(--color-text-muted)}
.km-note{margin:6px 0 0;font-size:12.5px;color:var(--color-text-muted)}
/* UI U3 all-metrics v1 (U3, 2026-09-30): the lock styles are gone with the locks. The history table runs the fiscal years
   across (every year the lane sends) inside a .km-scroll region that scrolls sideways; its row labels stay in place (sticky). */
.km-hist tbody th{padding:4px 8px;text-align:left;white-space:nowrap;font-weight:600;color:var(--color-text-muted);border-bottom:1px solid var(--color-rule)}
.km-hist td.km-num{text-align:right}
.km-hist th[scope="row"]{position:sticky;left:0;z-index:1;background:var(--color-surface)}
.km-how{margin-top:6px;font-size:13px;color:var(--color-text-secondary)}
.km-how>summary{width:max-content;max-width:100%;cursor:pointer;font-size:12.5px;color:var(--color-accent)}
.km-how>summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.km-formula{margin:8px 0 2px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12.5px;color:var(--color-text-secondary)}
.km-period{margin:2px 0 0;font-size:12.5px}
.km-kv{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:3px 14px;margin:8px 0 0;font-size:12.5px}
.km-kv dt{color:var(--color-text-muted)}.km-kv dd{margin:0;color:var(--color-text-secondary)}
.km-scroll{margin-top:8px}
.km-table{width:100%;border-collapse:collapse;font-size:12.5px}
.km-table caption{font-size:0;line-height:0;height:0;padding:0;overflow:hidden}
.km-table thead th{position:static;background:none;padding:4px 8px;text-align:left;white-space:nowrap;font-weight:600;color:var(--color-text-muted);border-bottom:1px solid var(--color-rule)}
.km-table td{padding:4px 8px;text-align:left;white-space:normal;overflow-wrap:anywhere;vertical-align:top;border-bottom:1px solid var(--color-rule);color:var(--color-text-secondary)}
.km-table td:first-child{overflow-wrap:normal;min-width:9em}
.km-table .km-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-text)}
.km-hist{width:auto;min-width:260px;margin-top:10px}
.km-acc{font-size:11.5px}
.km-table .r-source{white-space:normal}
.km-signals{margin:8px 0 0;padding:0;list-style:none;font-size:12.5px}
.km-signals li{padding:2px 0}
.km-mark{display:inline-block;width:18px;color:var(--color-text-secondary)}
.km-signals li[data-pass="false"] .km-mark{color:var(--color-text-muted)}
.km-wacc-inputs{padding:10px 12px;border-top:1px solid var(--color-rule);font-size:13px;color:var(--color-text-secondary)}
.km-wacc-inputs ul{margin:6px 0 0;padding-left:18px}
.km-collapsed{margin-top:14px}
.km-all{margin-top:10px}
.km-compact .km-row{padding:6px 12px}
.km-intro{margin-top:12px}
.km-foot .r-source{white-space:normal}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){.km-label{flex-basis:100%}.km-value{min-width:0;text-align:left}.km-kv{grid-template-columns:1fr}.km-row{padding:10px 8px}}
/* --- kv-table: U29 r3 (2026-10-18): scoped by .u29-kv to Market > Valuation and Key Metrics. Compact rows across the full pane. Phone lists stay unchanged. --- */
@media not ((max-width:760px) or ((max-width:950px) and (max-height:500px) and (pointer:coarse))){
  /* U29 revision 3: preserve source text in one muted flow under each label/value pair. */
  .r-cards.kv-cap-table.u29-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;padding:0;margin:0 0 12px}
  .kv-cap-table.u29-kv>.r-card{min-width:0;min-height:0;padding:7px 0;border:0;border-radius:0;background:none;box-shadow:none;font-size:11px;line-height:1.35;color:var(--color-text-muted)}
  .kv-cap-table.u29-kv>.r-card>.r-label{float:left;margin:0 8px 2px 0;font-size:13px;line-height:1.35;letter-spacing:normal;text-transform:none;color:var(--color-text)}
  .kv-cap-table.u29-kv>.r-card>.r-value{display:block;margin:0 0 2px;text-align:right;font-family:inherit;font-size:14px;line-height:1.35;color:var(--color-text)}
  .kv-cap-table.u29-kv>.r-card>.mk-eq,.kv-cap-table.u29-kv>.r-card>.r-muted{display:inline;margin:0;font-size:11px;line-height:1.35;color:inherit;overflow-wrap:anywhere}
  .kv-cap-table.u29-kv>.r-card>.mk-eq::after,.kv-cap-table.u29-kv>.r-card>.r-muted::after{content:' '}
  .kv-cap-table.u29-kv .mk-parts,.kv-cap-table.u29-kv .mk-classes{display:inline;margin:0;padding:0;list-style:none}
  .kv-cap-table.u29-kv .mk-parts>li,.kv-cap-table.u29-kv .mk-classes>li{display:inline;font-size:11px}
  .kv-cap-table.u29-kv .mk-parts>li::after,.kv-cap-table.u29-kv .mk-classes>li::after{content:' · '}
  .r-panel:has(>.kv-table.u29-kv){max-width:none;border:0;border-radius:0;background:none;container-type:inline-size}
  .km-list.kv-table.u29-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;width:100%;max-width:none;padding:0}
  .kv-table.u29-kv>.km-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;align-content:start;gap:2px 8px;min-width:0;padding:7px 0;border-top:1px solid var(--color-rule)}
  .kv-table.u29-kv>.km-row:first-child{border-top:0}
  .kv-table.u29-kv>.km-row>.km-head{display:contents}
  .kv-table.u29-kv>.km-row>.km-head>.km-label{grid-column:1;grid-row:1;min-width:0;font-size:13px;line-height:1.35}
  .kv-table.u29-kv>.km-row>.km-head>.km-value{grid-column:4;grid-row:1;min-width:0;text-align:right;font-size:14px;line-height:1.35;white-space:nowrap}
  .kv-table.u29-kv>.km-row>.km-head>.km-spark-box{grid-column:3;grid-row:1;align-items:center}
  .kv-table.u29-kv .km-spark-box svg{width:54px;height:18px}
  .kv-table.u29-kv>.km-row>.km-reason{grid-column:1/-1;grid-row:2;margin:0;font-size:11px;line-height:1.35;white-space:normal;overflow:visible;text-overflow:clip}
  .kv-table.u29-kv>.km-row:has(>.km-how[open])>.km-reason{white-space:normal;overflow:visible}
  .kv-table.u29-kv>.km-row>.km-note{grid-column:1/-1;grid-row:3;margin:0;font-size:11px;line-height:1.35}
  .kv-table.u29-kv>.km-row>.km-how{grid-column:2;grid-row:1;margin:0;min-width:0;padding:0}
  .kv-table.u29-kv>.km-row>.km-how:not([open])>summary{font-size:0;width:16px;list-style:none;text-align:center}
  .kv-table.u29-kv>.km-row>.km-how:not([open])>summary::-webkit-details-marker{display:none}
  .kv-table.u29-kv>.km-row>.km-how:not([open])>summary::after{content:'ⓘ';font-size:13px;line-height:18px}
  .kv-table.u29-kv>.km-row>.km-how[open]{grid-column:1/-1;grid-row:4;margin-top:4px}
  .kv-table.u29-kv>.km-row>.km-how .km-scroll{overflow-x:auto;max-width:100%}
  .kv-table.u29-kv .km-signals{columns:auto 220px;column-gap:24px}
  .kv-table.u29-kv+.km-wacc-inputs{max-width:none;box-sizing:border-box}
  @container (min-width:1400px){.km-list.kv-table.u29-kv{grid-template-columns:repeat(3,minmax(300px,1fr))}}
}
/* --- kv-table end --- */
/* === key metrics v7.1 end === */
/* === mk:debtb begin === */
/* Financial Health uses label/value rows. Debt levels use neutral colours. */
.km-view .km-list.debtb-health{display:block;list-style:none;margin:0;padding:0 12px;width:100%;box-sizing:border-box;border:0;background:none}
.km-view .debtb-health>.km-row{display:block;margin:0;padding:7px 0;min-width:0;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:none;box-shadow:none}
.km-view .debtb-health>.km-row>.km-head{display:flex;flex-wrap:nowrap;align-items:baseline;justify-content:space-between;gap:8px;margin:0}
.km-view .debtb-health .km-head>.km-label{order:0;flex:1 1 auto;min-width:0;font-size:13px;font-weight:400;color:var(--color-text-secondary)}
.km-view .debtb-health .km-head>.km-value{order:0;display:block;flex:0 1 auto;min-width:0;text-align:right;font-size:13px;font-weight:600;overflow-wrap:anywhere;color:var(--color-text)}
.km-view .debtb-health .km-head>.km-spark-box{flex:0 0 auto}
.km-view .debtb-health .km-how{margin-top:4px}
.km-view .debtb-history{padding:8px 12px;color:var(--color-text)}
.km-view .debtb-history>summary{cursor:pointer}
.km-view .debtb-series{margin-top:12px;min-width:0}
.km-view .debtb-series h4{margin:0 0 4px;font-size:13px}
.km-view .debtb-chart{display:block;width:300px;max-width:100%;height:auto;color:var(--color-text-secondary)}
.km-view .debtb-chart path{fill:none;stroke:currentColor;stroke-width:1.5}
.km-view .debtb-chart circle{fill:currentColor}
.km-view .debtb-history .km-num{color:var(--color-text)}
.km-view .debtb-health~.tkg-note,.km-view .debtb-wait>.tkg-note{margin:8px 12px}
/* === mk:debtb end === */
/* === mb:mobile v7.2 (UI bundle v7.2) === Phone layout, first-paint and touch fixes. Phones and in-app browsers
   (X, Instagram, LinkedIn) first: nothing scrolls inside the page vertically (the page owns vertical scroll; wide
   tables scroll sideways only), inputs are 16px so iOS does not zoom on focus, the company header is one 52px row,
   pane choice is a sticky chip row, statement tables open on the latest period with a synced sticky header, and
   Research record tables become labelled cards (mb:touch in workbench.js adds the behaviour). Desktop is untouched
   except the three global rules at the top. Tokens only; no new files. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--color-bg)}
/* First paint: each template hides the body inline until this stylesheet applies (make_v72_source FIRST_PAINT). */
body{visibility:visible;animation:none}
button,a,summary,select,input,label,[role=tab]{touch-action:manipulation}
/* First paint: workbench.js (the last script) re-homes the company page. Until it has run, the pre-shell layout stays
   invisible (the page colour shows) instead of flashing; a 3 s step reveals it anyway if that script never runs. */
body:not(.wb-company)>header.top,body:not(.wb-company)>.lay{visibility:hidden;animation:mb-reveal 0s linear 3s forwards!important}
@keyframes mb-reveal{to{visibility:visible}}
/* The phone-only controls added by mb:touch never show on wider screens. */
.mb-chips,.mb-sentinel,.mb-thead,.mb-more,.mb-notice-more{display:none}
/* All widths: a sticky first header cell stays above the other sticky header cells when a wide table is scrolled sideways
   (v7.1 gave them equal z-index, so later period headers painted over "Concept"). */
.cscroll thead th:first-child{z-index:3}
/* All widths: a statement section title (a row-wide cell) stays in view when the table is scrolled sideways. */
.tscroll tr.sec>th>span{position:sticky;left:8px;display:inline-block}
/* All widths: landing-page suggestions keep the ticker apart from the name (v7.1 ran them together: "BRK-ABERKSHIRE"). */
.wb-landing .ac [role=option]{display:flex;align-items:baseline;gap:12px;font-weight:600;white-space:nowrap}
.wb-landing .ac [role=option]>span{min-width:0;font-weight:400;white-space:normal;color:var(--color-text-secondary)}
@media (hover:none){
  /* iOS sends mouse events on tap only to elements it treats as clickable: this makes chart marks show their readout. */
  [data-tip],.wb-hit,.r-svg .r-mark{cursor:pointer}
  .wb-example:hover{background:none}.wb-nav button:hover,.wb-home:hover{background:none}
  .wb-example:active,.mb-chips button:active,.wb-nav button:active,body.wb-company .primary-tabs button:active,.mb-more button:active{background:var(--color-surface-raised)}
}
/* Phone layout: portrait phones, and landscape phones (short touch screens up to 950px wide). */
@media (max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  /* ---- inputs: 16px or iOS zooms the page on focus (and stays zoomed) ---- */
  input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}
  /* ---- company page header: brand · search · support · theme in one row; search opens below it ---- */
  /* z-index 30: the search suggestions (inside the header) open above the sticky chips (25) and pinned table header (20) */
  body.wb-company .rail{position:relative;z-index:30;padding:4px 4px 4px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-rule)}
  body.wb-company .rail .top{display:flex;flex-wrap:wrap;align-items:center;gap:0;min-height:48px;padding:0}
  body.wb-company .rail .top .brand{margin:0 auto 0 0;min-height:44px;font-size:21px;letter-spacing:-.6px}
  body.wb-company .rail .top .brand .wb-lamp{width:38px!important;height:33px!important}
  body.wb-company .rail .top .search-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;margin:0 88px 0 0;padding:0;font-size:0;color:var(--color-text-secondary)}
  body.wb-company .rail .top .search-toggle::before{content:"";display:block;width:22px;height:22px;background:currentColor;-webkit-mask:url('assets/workbench/search.svg') center/contain no-repeat;mask:url('assets/workbench/search.svg') center/contain no-repeat}
  body.wb-company .rail .top .search-toggle[aria-expanded=true]{color:var(--color-accent)}
  body.wb-company .rail .top .finder{display:none!important;flex:1 0 100%;order:5;min-width:0;margin:2px 12px 10px 0;padding:0;background:none;border:0}
  body.wb-company .rail .top.search-open .finder{display:block!important}
  body.wb-company .rail .top input{min-height:46px}
  body.wb-company .rail>.wb-utilities{position:absolute;top:4px;right:4px;display:flex;gap:0;margin:0;padding:0;border:0}
  body.wb-company .rail>.wb-utilities>span{display:none}
  body.wb-company .rail>.wb-utilities a{display:flex;align-items:center;justify-content:center;width:44px;height:48px;min-height:44px;padding:0;gap:0;border:0;font-size:0;color:var(--color-text-secondary)}
  body.wb-company .rail>.wb-utilities .wb-icon{width:21px;height:21px}
  .ac{max-height:min(52vh,320px)}
  /* ---- company page body ---- */
  body.wb-company .lay{min-height:0}
  body.wb-company .main{padding:14px 16px 96px}
  body.wb-company .main>.wb-breadcrumb{display:none}
  body.wb-company h1{font-size:23px;line-height:1.25;letter-spacing:-.4px}
  body.wb-company .sub{font-size:13px;line-height:1.45;margin-top:3px}
  body.mb-has-chips .wb-view-picker{display:none}
  .mb-sentinel{display:block;height:0}
  .mb-chips{position:sticky;top:0;z-index:25;display:flex;gap:8px;margin:12px -16px 0;padding:8px 16px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;background:var(--color-bg);border-bottom:1px solid var(--color-rule)}
  .mb-chips::-webkit-scrollbar{display:none}
  .mb-chips.mb-fade-r{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}
  .mb-chips.mb-fade-l{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent)}
  .mb-chips.mb-fade-l.mb-fade-r{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent)}
  .mb-chips button{flex:none;min-height:40px;padding:8px 15px;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:15px;line-height:1.2;white-space:nowrap}
  .mb-chips button[aria-current=true]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg);font-weight:600}
  body.wb-company .lead{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:14px 0 0;padding-bottom:14px}
  body.wb-company .lead>*{min-width:0}
  body.wb-company .lead .k{font-size:12px;letter-spacing:.07em}
  body.wb-company .lead .v{font-size:22px;margin-top:1px;line-height:1.2}
  body.wb-company .lead .d{font-size:12px;margin-top:1px}
  /* Research and Market panes carry their own headline tiles; the statement KPIs and statement notices are not about them.
     Charts opens with its own KPI tiles (the same figures), so the statement KPI row is not repeated there. */
  body[data-mb-section=research] #lead,body[data-mb-section=research] #notices,body[data-mb-section=market] #lead,body[data-mb-section=market] #notices,body[data-mb-section=charts] #lead{display:none}
  body.wb-company .notice{margin-top:12px;padding:8px 10px;font-size:13px;line-height:1.45}
  body.wb-company .notice.mb-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-bottom:0;border-bottom:8px solid transparent}
  .mb-notice-more{display:inline-flex;align-items:center;min-height:36px;margin:2px 0 0;padding:0 2px;border:0;background:none;color:var(--color-accent);font-size:13px}
  body.wb-company .viewrow{gap:6px 8px;margin-top:12px;align-items:center}
  body.wb-company .viewrow .vlab{display:none}
  body.wb-company .viewrow button[data-view]{min-height:40px;padding:6px 12px;font-size:15px}
  body.wb-company .viewrow .export-group{width:auto;margin-left:auto;gap:6px}
  body.wb-company .viewrow .xbtn{min-height:40px;padding:6px 10px;font-size:14px;border-radius:6px}
  body.wb-company .viewrow #exportStatus{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
  body.wb-company #statementExports,body.wb-company #pane .ctrl .xbtn{display:none!important} /* UI v7.2 s6 (D33, mobile layer): no file exports on phones; desktop keeps them */
  body.wb-company .viewrow .cur{order:3;width:100%;margin:0;font-size:12px}
  body.wb-company #pane>.loading{min-height:62vh;padding:22px 0;background:none;font-size:14px}
  body.wb-company .scrollhint{margin-top:8px;font-size:12px;line-height:1.45}
  body.wb-company .fnote,body.wb-company .disclaimer{font-size:12.5px;line-height:1.5}
  body.wb-company .rowtoggle{min-height:40px;margin-top:6px;font-size:14px}
  /* ---- wide tables: sideways only, full bleed; the page owns vertical scroll (no scroll trap) ---- */
  body.wb-company .tscroll,body.wb-company .cscroll{max-height:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;margin:6px -16px 0;border-bottom:0}
  body.wb-company .wbc-tscroll,body.wb-company .wb-dt-scroll{max-height:none;overflow-y:hidden;overscroll-behavior-x:contain}
  body.wb-company .tscroll table{font-size:13.5px}
  body.wb-company .tscroll thead th:first-child,body.wb-company .tscroll tbody tr:not(.sec)>th:first-child{min-width:min(44vw,190px);width:min(44vw,190px);max-width:190px;white-space:normal;line-height:1.3;padding-left:16px}
  body.wb-company .tscroll tr.sec>th{padding:16px 0 6px 0}
  body.wb-company .tscroll tr.sec>th>span{left:16px}
  body.wb-company .tscroll td{padding:7px 0 7px 14px}
  body.wb-company .tscroll td:last-child,body.wb-company .tscroll thead th:last-child{padding-right:16px}
  body.wb-company .tscroll tbody th:first-child,body.wb-company .cscroll td:first-child,body.wb-company .cscroll tbody th:first-child{box-shadow:1px 0 0 var(--color-rule),8px 0 8px -8px rgba(0,0,0,.45)}
  body.wb-company .cscroll{--cfirst:46vw}
  body.wb-company .cscroll thead th:first-child,body.wb-company .cscroll td:first-child,body.wb-company .cscroll tbody tr:not(.sec)>th:first-child{padding-left:16px;max-width:200px}
  body.wb-company .ctrl{gap:10px 14px;margin-top:12px}
  body.wb-company .ctrl input[type=text]{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface)}
  body.wb-company .ctrl label{min-height:44px}
  body.wb-company .ctrl input[type=checkbox]{width:20px;height:20px}
  body.wb-company .chartact{display:inline-flex;align-items:center;min-height:32px;padding:0 4px}
  /* synced sticky header for statement and concept tables (built by mb:touch; shown only while the real one is off screen) */
  .mb-twrap{position:relative}
  .mb-thead{display:block;position:sticky;top:var(--mb-sticky-top,57px);z-index:20;height:0;margin:0 -16px;overflow:visible;pointer-events:none}
  .mb-thead>div{overflow:hidden;visibility:hidden;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:0 6px 10px -8px rgba(0,0,0,.5)}
  .mb-thead.mb-on>div{visibility:visible}
  .mb-thead table{table-layout:fixed;border-collapse:collapse;width:auto;margin:0}
  .mb-thead th{position:relative!important;top:auto!important;left:auto!important;z-index:1!important;background:var(--color-surface)}
  .mb-thead th:first-child{z-index:3!important;background:var(--color-surface);box-shadow:1px 0 0 var(--color-rule),8px 0 8px -8px rgba(0,0,0,.45)}
  /* ---- Research: KPI tiles, toggles, record tables as labelled cards, long lists in pages of 20 ---- */
  .research-view>.r-panel:not(:has(.r-chart)){content-visibility:visible}
  #pane .r-cards{gap:10px}
  #pane .r-eyebrow,#pane .r-label,#pane .wbc-range-k,#pane .wbc-kpi-l,#pane .wbc-tag{font-size:12px}
  #pane .r-caveat,#pane .r-state{font-size:14px;line-height:1.5;padding:10px 12px}
  #pane .r-card{min-height:0;padding:12px 14px}
  #pane .r-value{font-size:22px;margin:4px 0}
  .research-view .r-toggle button,.research-view .r-filters button,#pane .r-filters button{min-height:40px;padding:6px 12px;font-size:14px}
  #pane .r-panel-head{padding:10px 12px}
  #pane .r-table-scroll:not(.km-scroll){overflow:visible;max-width:none}
  #pane .km-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}
  #pane .r-table,#pane .r-table tbody,#pane .r-table tr,#pane .r-table td{display:block;width:auto;min-width:0!important}
  #pane .r-table thead{display:block;position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
  #pane .r-table tr{padding:10px 12px;border-bottom:1px solid var(--color-rule)}
  #pane .r-table tbody tr:last-child{border-bottom:0}
  /* label | value: the label floats in the cell's left padding, so mixed cell content (badges + text) keeps flowing inline */
  #pane .r-table td{display:flow-root;padding:3px 0 3px 118px!important;border:0;text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:14px;line-height:1.45}
  #pane .r-table td::before{content:attr(data-label);float:left;width:106px;margin-left:-118px;color:var(--color-text-muted);font-size:12.5px;line-height:1.6;font-weight:400;overflow-wrap:normal}
  #pane .r-table td:first-child{font-weight:600;color:var(--color-text)}
  #pane .r-source,#pane .r-tl-link{display:inline-block;padding:7px 0;white-space:normal}
  #pane tr.mb-cap{display:none!important}
  .mb-more{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px 12px;align-items:center}
  .mb-more button{min-height:40px;padding:6px 14px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-accent);font-size:14px}
  .mb-more span{font-size:12.5px;color:var(--color-text-muted)}
  #pane .r-tl{padding-right:10px}
  #pane .r-tl-card{padding:10px 12px}
  /* ---- disclosure rows ("How it's calculated", "Data table") and Market strip items: finger-sized ---- */
  #pane summary{padding:9px 0}
  .mk-strip .mk-kv{padding:3px 0}
  /* ---- charts: readable axis text, no nested scroll in the data tables ---- */
  #pane .r-chart{padding:12px 10px}
  /* ---- bottom navigation: out of the way while typing; long labels wrap under the icon ---- */
  .wb-nav,body.wb-company .primary-tabs{transition:transform .18s ease}
  .wb-nav button,body.wb-company .primary-tabs button{min-height:52px;font-size:11.5px;line-height:1.15;white-space:normal}
  body.mb-typing .wb-nav,body.mb-typing.wb-company .primary-tabs{transform:translateY(110%)}
  /* ---- landing page: one header row, search in the first screen ---- */
  .wb-sidebar{display:flex;flex-direction:row;align-items:center;min-height:56px;padding:4px 4px 4px 16px}
  .wb-sidebar .wb-brand{font-size:22px;letter-spacing:-.6px}
  .wb-sidebar .wb-lamp{width:40px!important;height:35px!important}
  .wb-sidebar .wb-utilities{display:flex!important;gap:0!important;margin:0 0 0 auto!important;padding:0!important;border:0!important}
  .wb-sidebar .wb-utilities a{display:flex;align-items:center;justify-content:center;width:44px;height:48px;padding:0!important;gap:0!important;font-size:0!important;color:var(--color-text-secondary)}
  .wb-sidebar .wb-utilities .wb-icon{width:21px!important;height:21px!important}
  .wb-landing{padding:18px 16px 100px}
  .wb-landing .wb-breadcrumb{display:none}
  .wb-intro .wb-eyebrow{margin-bottom:8px}
  .wb-intro h1{font-size:32px;margin-bottom:6px}
  .wb-intro .wb-subtitle{font-size:17px;margin-bottom:18px}
  .wb-company-label{font-size:16px;margin-bottom:8px}
  .wb-search-row input{height:52px}
  .wb-search-icon{top:16px}
  .wb-submit{min-height:52px}
  .wb-discover{margin-top:26px}
  .wb-example{min-height:64px;padding:12px 14px}
}
/* Landscape phones: vertical room is scarce, so the chip row scrolls away with the page (the pinned table header then
   sticks at the top), the bottom bar is one slim row, and the four headline figures sit in one row. */
@media (max-width:950px) and (max-height:500px) and (pointer:coarse){
  .mb-chips{position:static}
  .wb-nav,body.wb-company .primary-tabs{padding:2px 8px calc(2px + env(safe-area-inset-bottom))}
  .wb-nav button,body.wb-company .primary-tabs button{flex-direction:row;gap:8px;min-height:40px;font-size:13px;white-space:nowrap}
  .wb-nav .wb-icon,body.wb-company .primary-tabs .wb-icon{width:18px;height:18px}
  body.wb-company .main{padding-bottom:64px}
  .wb-landing{padding-bottom:64px}
  body.wb-company .lead{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.wb-company .tscroll thead th:first-child,body.wb-company .tscroll tbody tr:not(.sec)>th:first-child{min-width:200px;width:200px;max-width:220px}
}
@media (max-width:360px){
  body.wb-company .rail .top .brand{font-size:19px}
  .mb-chips button{padding:8px 12px;font-size:14px}
  body.wb-company .lead .v{font-size:20px}
  .wb-intro h1{font-size:28px}
}
/* === mb:mobile v7.2 end === */
/* === fi:research v7.3 (UI bundle v7.3) === Footnotes and Institutions views (domain:footnotes, domain:institutions
   blocks in research-ui.js). Colours come only from the theme tokens, so light and dark need no extra rules. */
.fi-num{font-variant-numeric:tabular-nums;white-space:nowrap}
/* The generic header caveat joins coverage notes without punctuation; these two views print them themselves (.fi-cav). */
.research-view[data-research-domain=footnotes]>.r-caveat:not(.fi-cav),.research-view[data-research-domain=institutions]>.r-caveat:not(.fi-cav){display:none}
.research-view>.r-caveat.fi-cav+.r-caveat.fi-cav{margin-top:8px}
.fi-inst{display:block;color:var(--color-text);font-weight:500}
.fi-qual{display:block;margin-top:2px;font-size:12.5px;color:var(--color-text-muted)}
.r-panel>.fi-filing{margin:4px 12px 0;font-size:13.5px;color:var(--color-text-secondary);max-width:100ch}
.r-panel>.fi-sub{margin:16px 12px 6px;font-size:14px;font-weight:600;color:var(--color-text)}
.r-panel>.fi-sub+.r-chart-note{margin-top:0}
.r-panel>.r-table-scroll+.fi-sub{margin-top:20px}
.r-panel>details.fi-all{margin:14px 12px 12px}
.r-panel>details.fi-all>.r-table-scroll{margin-top:8px}
.research-view>details.fi-about{margin:16px 0 0}
.fi-about .r-scope{margin:8px 0 0;padding-left:18px;font-size:13px;color:var(--color-text-secondary);max-width:100ch}
.fi-about .r-scope li{margin:4px 0}
.fi-badges{display:inline-flex;flex-wrap:wrap;gap:4px}
.fi-badges .r-badge{margin:0;white-space:nowrap}
.r-panel>details.fi-text{margin:0 12px;border-top:1px solid var(--color-rule)}
.r-panel>details.fi-text:last-of-type{margin-bottom:12px}
.fi-text>summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;min-height:44px;padding:10px 0;cursor:pointer;list-style-position:outside}
.fi-text>summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.fi-text-title{color:var(--color-accent);font-weight:500}
.fi-text-meta{font-size:12.5px;color:var(--color-text-muted)}
.fi-text-body{padding:0 0 14px}
.fi-text-body>p{margin:0 0 8px;max-width:100ch;font-size:14px;line-height:1.6;color:var(--color-text-secondary);overflow-wrap:anywhere;white-space:pre-line}
.fi-text-body>p.fi-text-p{max-height:28em;overflow:auto;padding-right:8px}
.fi-text-table .fi-text-title{color:var(--color-text-secondary)}
.r-panel>details.fi-older{margin:6px 12px 12px}
.fi-older>details.fi-text{border-top:1px solid var(--color-rule)}
.research-view[data-research-domain=footnotes] .r-source,.research-view[data-research-domain=institutions] .r-source{white-space:nowrap}
.fi-text-src{font-size:13px}
.fi-src{white-space:nowrap}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .r-panel>.fi-filing,.r-panel>.fi-sub,.r-panel>details.fi-all,.r-panel>details.fi-text{margin-left:12px;margin-right:12px}
  .fi-text-body>p.fi-text-p{max-height:none;overflow:visible;padding-right:0}
  #pane .r-table td:has(>.fi-na){display:none}
  .fi-text-body>p{font-size:15px}
  #pane .r-table td .fi-inst{display:inline}
  #pane .r-table td .fi-qual{display:block}
}
/* Desktop: the summary cards share one row (the base grid is 4 columns, so a 5th or 6th card sat alone on a second row). */
@media(min-width:1051px){
  .research-view[data-research-domain=footnotes]>.r-cards,.research-view[data-research-domain=institutions]>.r-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
}
.fi-more{margin-top:12px}
/* v7.3 r2 (nightly request 2026-09-29, site-wide): the desktop rail is a fixed flex column with overflow auto; its
   children kept the default flex-shrink, so on short windows the brand header (min-height 0) collapsed under the nav.
   No child shrinks now; the rail scrolls instead. Phones are unaffected (the rail is display:block there). */
body.wb-company .rail>*{flex-shrink:0}
/* v7.4: the landing's per-domain dates line sits right under the statistics line; the combined-filing note. */
.wb-landing .stat-dates{margin-top:6px}
.fi-coreg{margin:4px 0 10px}
/* === fi:research v7.3 end === */
/* === mk:charts v7.4 (UI bundle v7.4) === Charts lane: mk:chart2 panels, mk:pricechart controls (compare chips, indicator
   chips, indicator disclosure) and mk:aroundfilings. Appended after fi:research v7.3 (CONTRACTS.md E.3). Tokens only (no
   literal colours), dark and light through the existing tokens; no cheap/expensive or good/bad colouring (L11): golden
   and death crosses differ by shape and label, MACD histogram bars are one neutral colour. */
/* Indicator palette (fix round 1, owner default 2026-09-30): indicators get their own colours, never shared with the
   close, SPY/compare series (--r-cat-1..5) or the marker lanes (10-K, 10-Q, 8-K, splits, dividends). Checked by
   tools/palette_check.cjs: >= 3:1 against both chart surfaces and CIEDE2000 >= 15 from every --r-cat slot and from each
   other, dark and light. SMA lines are solid, EMA lines dashed; Bollinger is a neutral band. */
:root{--mk-ind-1:#3cc6d6;--mk-ind-2:#bcc93a;--mk-ind-3:#dcb996;--mk-ind-4:#cf6bdc;--mk-ind-5:#b4c0ca}
:root[data-theme=light]{--mk-ind-1:#007f8f;--mk-ind-2:#6f7a00;--mk-ind-3:#8a5a2b;--mk-ind-4:#a33ab3;--mk-ind-5:#56605a}
.mk-ind-1{fill:var(--mk-ind-1);stroke:var(--mk-ind-1)}.mk-ind-2{fill:var(--mk-ind-2);stroke:var(--mk-ind-2)}.mk-ind-3{fill:var(--mk-ind-3);stroke:var(--mk-ind-3)}
.mk-ind-4{fill:var(--mk-ind-4);stroke:var(--mk-ind-4)}.mk-ind-5{fill:var(--mk-ind-5);stroke:var(--mk-ind-5)}
.r-svg path.r-line.mk-ind-1,.r-svg path.r-line.mk-ind-2,.r-svg path.r-line.mk-ind-3,.r-svg path.r-line.mk-ind-4,.r-svg path.r-line.mk-ind-5,.r-svg path.r-line.c2-bench{fill:none}
.r-swatch.mk-ind-1{background:var(--mk-ind-1)}.r-swatch.mk-ind-2{background:var(--mk-ind-2)}.r-swatch.mk-ind-3{background:var(--mk-ind-3)}.r-swatch.mk-ind-4{background:var(--mk-ind-4)}.r-swatch.mk-ind-5{background:var(--mk-ind-5)}
.r-svg .c2-ribbon.mk-ind-band{fill:var(--color-text-secondary);stroke:none}
.r-swatch.mk-ind-band{background:var(--color-text-secondary);opacity:.45}
/* SPY benchmark: neutral dashed line; non-split price adjustment marker: neutral bar */
.c2-bench{fill:var(--color-text-secondary);stroke:var(--color-text-secondary)}
.r-swatch.c2-bench{background:var(--color-text-secondary)}
.r-svg .c2-adj{fill:var(--color-text-muted)}
.r-swatch.c2-adj{background:var(--color-text-muted)}
.r-svg path.c2-line{stroke-width:1.6}
.r-svg path.c2-line.c2-thin{stroke-width:1.2}
.r-svg path.c2-bars{fill:none;stroke-linecap:butt}
.r-svg path.c2-bars.c2-vol{stroke:var(--color-border);stroke-opacity:.9}
.r-svg path.c2-bars.c2-hist{stroke:var(--color-text-muted);stroke-opacity:.8}
.r-svg .c2-ribbon{fill-opacity:.12;stroke:none}
.r-svg .c2-plabel{fill:var(--color-text-secondary);font-size:11px}
.r-svg .mk-rule.c2-ref{stroke:var(--color-text-muted);stroke-dasharray:3 4}
.r-svg .c2-vrule{stroke:var(--color-text-muted);stroke-dasharray:4 4}
.r-svg .c2-point{stroke:var(--color-surface);stroke-width:1.5;paint-order:stroke}
.r-svg .c2-golden,.r-svg .c2-death{fill:var(--color-text)}
.r-svg a.c2-link{cursor:pointer}
.r-svg a.c2-link:hover .mk-marker,.r-svg a.c2-link:focus .mk-marker{stroke:var(--color-text);stroke-width:2}
.r-svg a.c2-link:focus{outline:none}
.r-svg a.c2-link:focus-visible .mk-marker{stroke:var(--color-focus);stroke-width:3}
.r-svg .c2-hit{fill:transparent;stroke:none;pointer-events:all;cursor:crosshair;touch-action:pan-y}
.r-svg path.af-event{stroke:var(--color-text-muted);stroke-opacity:.55;fill:none}
.r-swatch.af-event{background:var(--color-text-muted)}
.r-swatch.c2-cross-key{background:var(--color-text)}
/* controls */
.mk-view .pc-compare,.mk-view .pc-ind{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px}
.mk-view .pc-ind .r-filters{margin:0}
.mk-view .pc-label{margin:0;min-width:64px;font-size:13px;color:var(--color-text-muted)}
.mk-view .pc-hint{margin:0;font-size:12px;color:var(--color-text-muted)}
.mk-view .pc-ind .pc-hint{flex:1 1 100%}
.mk-view .pc-chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:2px 10px;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:13px;font-variant-numeric:tabular-nums}
.mk-view button.pc-chip[aria-pressed="true"],.mk-view .pc-chip-on{border-color:var(--color-accent);color:var(--color-text);background:var(--color-surface-raised)}
.mk-view .pc-chip-off{border-style:dashed;color:var(--color-text-muted)}
.mk-view .pc-chip-wait{color:var(--color-text-muted)}
.mk-view .pc-chip-idle{color:var(--color-text-muted)}
/* indicator disclosure: the button is for phones only (block.mobile.css); here the rows always show */
.mk-view .pc-inds-toggle{display:none}
.mk-view .pc-x{display:inline-flex;align-items:center;justify-content:center;min-width:26px;min-height:26px;margin-right:-6px;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;font-size:16px;line-height:1}
.mk-view .pc-x:hover{background:var(--color-surface)}
.mk-view .pc-add{display:inline-flex;align-items:center;gap:6px;margin:0}
.mk-view .pc-add input{width:8.5em;min-height:34px;padding:4px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);text-transform:uppercase}
.mk-view .pc-add input::placeholder{text-transform:none;color:var(--color-text-muted)}
.mk-view .pc-add button{min-height:34px;padding:4px 14px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text)}
.mk-view .pc-add input:focus-visible,.mk-view .pc-add button:focus-visible,.mk-view .pc-chip:focus-visible,.mk-view .pc-x:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.mk-view .pc-multi button[disabled]{opacity:.5;cursor:not-allowed}
.mk-view .r-toggle button[disabled]{opacity:.5;cursor:not-allowed}
.mk-view .af-controls{margin-top:12px}
.mk-view .r-chart .r-tip{max-width:340px}
/* === mk:charts v7.4 end === */
/* === mk:multiples v7.4 (UI bundle v7.4) === Market > Valuation multiples (research-ui.js block mk:multiples). The own
   band reuses .mk-band (--r-cat-1), the own median reuses .mk-rule; the peer median is --r-cat-2 dashed and its
   p25-p75 ribbon a light --r-cat-2 fill. Tokens only (no literal colours), so dark and light need no extra rules.
   No cheap/expensive colouring (L11): nothing here depends on where the value sits. */
.mx-panel>.mx-controls{margin:12px 12px 0;gap:10px 28px}
.mx-panel>.mx-controls .r-filters{margin:0}
.mx-panel>.r-cards{margin:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.mx-panel>.r-state{margin:12px}
.mx-panel>.r-empty{padding:18px 12px}
.mx-panel>.mx-src{margin:0 12px;padding:2px 0;border-bottom:1px solid var(--color-rule)}
.mx-panel>.mx-src[open]{padding-bottom:12px}
.mx-panel>.mx-peer-note{margin:0 12px 12px}
.mx-panel>.mx-caveat{margin:12px 12px 14px}
.mx-panel>.mx-profile{margin:12px 12px 0}
.r-svg .mk-band.mx-own-band{fill:var(--r-cat-1);fill-opacity:.14}
.r-svg .mk-rule.mx-own-median{stroke:var(--color-text-muted)}
.r-svg .mx-peer-ribbon{fill:var(--r-cat-2);fill-opacity:.13;stroke:none}
.r-svg path.mx-peer-median{fill:none;stroke:var(--r-cat-2);stroke-width:1.6;stroke-dasharray:7 4}
.r-svg .mk-marker.mx-step{fill:var(--color-text-muted)}
.r-swatch.mx-sw-band{background:var(--r-cat-1);opacity:.35}
.r-swatch.mx-sw-rule{height:0;border-top:2px dashed var(--color-text-muted);border-radius:0;background:transparent}
.r-swatch.mx-sw-peer{height:0;border-top:2px dashed var(--r-cat-2);border-radius:0;background:transparent}
.r-swatch.mx-sw-ribbon{background:var(--r-cat-2);opacity:.3}
.mx-members{margin:8px 0 4px;color:var(--color-text-secondary);font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.mx-src .r-chart-note{margin:6px 0 0}
.mk-view .r-panel .mx-src .r-table{min-width:0}
/* === mk:multiples v7.4 end === */
/* === u29:multiples begin === */
/* U29 compact line v1 (2026-10-13, owner: "U29 v2 OK, remove the boxes too"). Market > Valuation multiples (research-ui.js
   block mk:multiples): .mx-kv holds the kv-table rows that replace the KPI boxes, one line each (wraps on narrow screens),
   at every width. The selectors are one class more specific than the shared kv-table rules (Prices thread, U29) and the
   key metrics rules, so the rows look the same with or without the kv-table CSS. Tokens only (no literal colours). */
.mx-panel>.mx-kv{margin:12px 12px 4px;min-width:0}
.mx-kv>.km-list.kv-table{display:block;width:auto;max-width:none;margin:0;padding:0;list-style:none}
.mx-kv>.kv-table>.km-row{display:block;min-width:0;padding:5px 0;border-top:1px solid var(--color-rule);font-size:13px;line-height:1.45;color:var(--color-text-muted);overflow-wrap:anywhere}
.mx-kv>.kv-table>.km-row:first-child{border-top:0;padding-top:0}
.mx-kv>.kv-table>.km-row>.km-label{display:inline;flex:none;min-width:0;font-size:13px;color:var(--color-text-secondary)}
.mx-kv>.kv-table>.km-row>.km-value{display:inline;flex:none;min-width:0;text-align:left;font-family:inherit;font-size:14px;font-weight:600;color:var(--color-text);white-space:normal}
.mx-kv>.kv-table>.km-row>.km-reason{display:inline;margin:0;font-size:13px;color:var(--color-text-muted);white-space:normal;overflow:visible}
/* === u29:multiples end === */
/* === wc:pane v7.4 (UI bundle v7.4) === Statements > What Changed (wc:engine, wc:pane in research-ui.js; wc:route in
   workbench.js). Tokens only (no literal colours), so light and dark need no extra rules. No good/bad colouring (L11):
   flags, added and removed text are told apart by labels, borders and strike-through, never by red or green.
   Every rule is scoped to .wc-* classes, which exist only on the What Changed pane. */
.wc-view .r-panel>.r-cards{margin:12px 12px 0}
.wc-view .wc-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.wc-view .wc-cards .r-card{min-height:0}
.wc-view .wc-cards .r-value{font-size:21px;overflow-wrap:anywhere}
.wc-view .r-panel>.wc-filing{margin:12px 12px 0;font-size:13.5px}
.wc-view .r-panel>.wc-rule{margin-top:8px}
.wc-view .r-panel-head .wc-count{margin:0;font-size:13px}
.wc-view .r-panel>.wc-sub{margin:16px 12px 6px;font-size:14px;font-weight:600;color:var(--color-text);font-family:var(--wb-font)}
.wc-view .r-panel>.wc-sub:first-of-type{margin-top:12px}
.wc-sub-note{margin-left:6px;font-weight:400;font-size:12.5px;color:var(--color-text-muted)}
.wc-view .r-panel>.r-table-scroll+.wc-sub{margin-top:20px}
.wc-view .r-panel>.r-table-scroll:last-child{margin-bottom:0}
.wc-table{min-width:880px}
.wc-table thead th.wc-num,.wc-table td.wc-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.wc-table td.wc-num{color:var(--color-text)}
.wc-line{display:block;color:var(--color-text);font-weight:500}
.wc-pct{display:block;font-size:12.5px;color:var(--color-text-secondary)}
.wc-why{min-width:15em;max-width:34ch;font-size:13.5px;color:var(--color-text-secondary)}
.wc-src{white-space:nowrap;font-size:13px}
.wc-src .r-source{white-space:nowrap}
.wc-reason{white-space:nowrap}
.wc-reason[data-reason="new_line"]{border-color:var(--color-accent);color:var(--color-text)}
.wc-reason[data-reason="dropped_line"]{border-style:dashed}
.wc-reason[data-reason="sign_flip"]{border-width:2px;padding:0 7px}
.wc-derived{border-style:dotted;color:var(--color-text-muted)}
.wc-nolink{margin:0;font-size:12.5px}
.wc-movers{margin-top:16px}
.wc-movers .r-chart{margin:0}
.wc-view .r-panel>.wc-debt-line .r-source{margin-left:4px}
.wc-view .r-panel>.r-table-scroll{margin:0 12px}
.wc-view .r-panel>.r-table-scroll .r-table{min-width:520px}
.wc-view .r-panel>.r-table-scroll .wc-table{min-width:880px}
.wc-view .r-panel>.wc-sub+.r-table-scroll.wc-scroll{margin:0}
.wc-text{list-style:none;margin:0 12px;padding:0}
.wc-text li{margin:0 0 8px;padding:6px 10px;max-width:100ch;font-size:14px;line-height:1.55;color:var(--color-text-secondary);border-left:3px solid var(--color-border);overflow-wrap:anywhere}
.wc-add li{border-left-color:var(--color-accent)}
.wc-add ins{text-decoration:none;color:var(--color-text)}
.wc-del li{border-left-style:dashed}
.wc-del del{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:var(--color-text-muted);color:var(--color-text-muted)}
.wc-view .r-panel>.wc-more,.wc-view .r-panel>.wc-reworded,.wc-view .r-panel>.wc-textnote{margin:6px 12px 12px}
.wc-view .r-panel>.wc-nochange{margin:12px 12px 4px;font-size:13.5px;color:var(--color-text-secondary)}
.wc-view .r-panel>:last-child{margin-bottom:12px}
.wc-view>details.wc-about{margin:16px 0 0}
.wc-view>.wc-state{margin-top:16px}
.wc-view>.wc-state[data-coverage="ok"]{border-left-color:var(--color-accent)}
.wc-view>.wc-stale{margin-top:14px}
.wc-view>.wc-foot{margin-top:14px}
@media(max-width:1050px){.wc-view .wc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* fix round 1 (2026-09-30): Show All toggle for flags beyond the top 15, decreases drawn as outlined bars (not a
   good/bad colour, L11), and the phone list that replaces the Largest Changes chart under mb:. */
.wc-view [data-wc-extra][hidden]{display:none}
.wc-view .r-panel>.wc-showall-row{margin:12px 12px 0}
.wc-showall{min-height:32px;padding:4px 12px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-accent);font:inherit;font-size:13.5px;cursor:pointer}
.wc-showall:hover{border-color:var(--color-accent)}
.wc-showall:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.wc-movers .r-svg .r-mark.wc-neg{fill:var(--r-cat-1);fill-opacity:.16;stroke:var(--r-cat-1);stroke-width:1.5;stroke-dasharray:5 3;paint-order:normal}
.wc-movers .r-svg .r-mark.wc-neg:hover,.wc-movers .r-svg .r-mark.wc-neg:focus{stroke:var(--color-text)}
.wc-movers .r-swatch.wc-neg{box-sizing:border-box;background:transparent;border:1.5px dashed var(--r-cat-1)}
.wc-mlist-wrap{display:none}
.wc-mlist-title{font-size:15px;font-weight:600;color:var(--color-text);font-family:var(--wb-font)}
.wc-mlist{list-style:none;margin:8px 0 0;padding:0}
.wc-mlist li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0 8px 10px;border-left:3px solid var(--r-cat-1);border-top:1px solid var(--color-rule)}
.wc-mlist li+li{margin-top:6px}
.wc-mlist li[data-sign="neg"]{border-left-style:dashed}
.wc-mlist-name{font-weight:500;color:var(--color-text);overflow-wrap:anywhere}
.wc-mlist-st{font-size:12.5px;color:var(--color-text-muted);text-align:right}
.wc-mlist-val{grid-column:1/-1;font-size:14px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.wc-mlist-src{grid-column:1/-1;font-size:13px}
/* === wc:pane v7.4 end === */
/* === fi:moves v7.4 (UI bundle v7.4) === Institutions "Who Is Buying", "Net Buying by Quarter" and "Institutional
   Ownership vs Price" (the fi:moves and fi:flowprice blocks in research-ui.js). Tokens only, so light and dark need no
   extra rules; buying/selling colours always sit next to a sign. Every rule is scoped to .fi-mv / .fi-fp classes, which
   exist only when an Institutions object carries data.moves. Append after fi:research v7.3 (CONTRACTS E.3). */
.fi-mv .r-panel-head h3{margin:0}
.fi-mv-period{display:inline-block;padding:2px 10px;border:1px solid var(--color-border);border-radius:999px;font-size:12.5px;color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}
.r-panel>.fi-mv-when{margin:12px 12px 0;max-width:100ch;font-size:13.5px;line-height:1.5;color:var(--color-text-secondary)}
.r-panel>.r-cards.fi-mv-kpis{margin:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.fi-mv-kpis .r-card{min-height:0}
.r-panel>.fi-mv-adj,.r-panel>.fi-mv-nc{margin:12px}
.fi-mv-nc strong{color:var(--color-text);font-weight:600}
.r-panel>.fi-mv-note{margin:10px 12px 8px}
.r-panel>.fi-mv-note:last-child{margin-bottom:12px}
.fi-mv-rank{float:left;min-width:2.2em;margin-right:6px;color:var(--color-text-muted);font-weight:400;font-variant-numeric:tabular-nums}
.fi-mv-rank+.fi-inst,.fi-mv-rank+.fi-inst+.fi-qual{margin-left:calc(2.2em + 6px)}
.r-panel>.fi-mv-more{margin:12px}
.r-panel>.fi-mv-more .r-toggle{margin:0}
.fi-mv .fi-mv-pos{color:var(--color-positive)}
.fi-mv .fi-mv-neg{color:var(--color-danger)}
.r-svg .fi-mv-bar{fill:var(--r-cat-1);stroke:var(--color-surface)}
.r-svg .fi-mv-bar.r-neg{fill:var(--color-danger,var(--r-cat-8))}
.r-swatch.fi-mv-bar{background:var(--r-cat-1)}
.r-swatch.fi-mv-sw-neg{background:var(--color-danger,var(--r-cat-8))}
.research-view>.fi-fp{margin:16px 0 0}
.fi-fp>.r-toggle{margin:0 0 12px}
.fi-fp .r-chart{margin:0}
.fi-fp .fi-fp-credit{margin:8px 0 0;font-size:12px}
.fi-fp .r-cards{margin-top:12px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.fi-fp .r-kpi-link .r-badge{margin:0}
.r-svg .fi-fp-q{stroke:var(--color-border);stroke-width:1;stroke-dasharray:3 4}
.r-svg .fi-fp-pos{fill:var(--r-cat-1)}
.r-svg .fi-fp-neg{fill:var(--color-danger,var(--r-cat-8))}
.r-svg .fi-fp-hold{fill:var(--r-cat-3)}
.r-svg .fi-fp-future{fill:var(--color-rule);fill-opacity:.45}
.r-svg .fi-fp-futuretext,.r-svg .fi-fp-nc{fill:var(--color-text-muted);font-size:11px}
.r-svg .fi-fp-lane{fill:var(--color-text-secondary)}
.r-swatch.fi-fp-sw-hold{background:var(--r-cat-3)}
.r-swatch.fi-fp-sw-future{background:var(--color-rule)}
/* === fi:moves v7.4 end === */
/* === tkg:gate begin === */
/* 10KGenie tier gate. Uses the site tokens (--color-*), so light and dark mode both work. */
.tkg-preview{position:relative;max-height:420px;overflow:hidden;pointer-events:none;user-select:none}
.tkg-preview::after{content:"";position:absolute;left:0;right:0;bottom:0;height:200px;
  background:linear-gradient(180deg,transparent,var(--color-bg))}
.tkg-gate-free{position:relative;margin-top:-48px;display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;
  background:var(--color-surface-raised);border:1px solid var(--color-rule);border-radius:8px;padding:24px}
.tkg-gate-free>div:first-child{flex:1 1 320px}
.tkg-gate-free h3{margin:0 0 4px;font-size:17px}
.tkg-gate-free p{margin:0;color:var(--color-text-secondary)}
/* ghost and card share one grid cell, so the box grows with the card at any width (no clipped buttons) */
.tkg-gate-pro{position:relative;display:grid;border:1px solid var(--color-rule);border-radius:10px;overflow:hidden;min-height:520px}
.tkg-gate-pro>.tkg-ghost,.tkg-gate-pro>.tkg-overlay{grid-area:1/1}
.tkg-ghost{padding:24px;display:flex;flex-direction:column;gap:14px;filter:blur(3px);opacity:.45}
.tkg-bar{height:14px;border-radius:4px;background:var(--color-rule)}
.tkg-overlay{position:relative;display:flex;align-items:center;justify-content:center;padding:24px}
.tkg-card{max-width:520px;min-width:0;box-sizing:border-box;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:12px;padding:28px;
  display:flex;flex-direction:column;gap:14px;color:var(--color-text)}
.tkg-card h2{margin:0;font-size:24px}
.tkg-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tkg-card li{display:flex;gap:10px;align-items:flex-start}
.tkg-card li svg{flex:0 0 18px;margin-top:3px;color:var(--chart-3)}
.tkg-lock{color:var(--color-accent)}
.tkg-badge{align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;padding:3px 8px;border-radius:3px;
  background:var(--color-accent);color:var(--color-bg)}
.tkg-actions{display:flex;flex-wrap:wrap;gap:12px}
.tkg-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border-radius:4px;font:inherit;font-weight:600;
  cursor:pointer;border:1px solid var(--color-border);background:transparent;color:var(--color-text);text-decoration:none;
  text-align:center;line-height:1.3;padding-top:8px;padding-bottom:8px;box-sizing:border-box}
.tkg-btn.tkg-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}
.tkg-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.tkg-note{margin:0;font-size:13px;color:var(--color-text-muted)}
.tkg-err{margin:0;color:#ff8f8f}
@media (max-width:600px){
  .tkg-gate-pro{min-height:0}
  .tkg-overlay{padding:12px}
  .tkg-card{padding:20px}
  .tkg-card h2{font-size:20px}
  .tkg-actions .tkg-btn{flex:1 1 100%}
  .tkg-gate-free{padding:18px}
}
/* tab-row lock icon for Pro panes: add <span class="tkg-tab-lock" title="Pro">…lock svg…</span> after the label */
.tkg-tab-lock{display:inline-flex;margin-left:6px;color:var(--color-accent)}
/* === tkg:gate end === */
/* === tkg:nav begin === */
/* Launch release (NAV-SPEC.md Group 1): account entry, account menu, Follow / Add to Portfolio, recent dropdown,
   lock icons, dialogs, footer legal links. Site tokens only; light and dark follow them. */
.tkg-acct{margin:0 13px 22px;display:flex;flex-direction:column;gap:8px;min-height:36px;position:relative}
body.wb-company .rail .tkg-acct{margin:14px 0 6px}
.tkg-signin{display:block;text-align:center;padding:8px 12px;border-radius:4px;background:var(--color-accent);color:var(--color-bg);font-weight:600;text-decoration:none}
.tkg-signin:hover{filter:brightness(1.08)}
.tkg-pricing,.tkg-my{display:flex;align-items:center;gap:9px;color:var(--color-text-secondary);text-decoration:none;font-size:14px}
.tkg-pricing:hover,.tkg-my:hover{color:var(--color-text)}
.tkg-acct-row{display:flex;align-items:center;justify-content:space-between;gap:6px}
.tkg-menu-btn{background:none;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-secondary);padding:3px 5px;cursor:pointer;line-height:0}
.tkg-acct .tkg-menu-btn{flex:none;width:28px;min-width:0;height:28px;min-height:0;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:inherit}
.tkg-my{white-space:nowrap}
.tkg-menu-btn:hover,.tkg-menu-btn[aria-expanded="true"]{color:var(--color-text);border-color:var(--color-text-muted)}
.tkg-menu{position:absolute;left:0;right:0;top:100%;margin-top:6px;z-index:60;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:6px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.25);display:flex;flex-direction:column}
.tkg-menu[hidden]{display:none}
.tkg-menu-who{margin:2px 8px 6px;font-size:12px;color:var(--color-text-muted);overflow-wrap:anywhere}
.tkg-menu [role="menuitem"]{display:block;text-align:left;background:none;border:0;padding:7px 8px;border-radius:4px;color:var(--color-text);text-decoration:none;font:inherit;font-size:14px;cursor:pointer}
.tkg-menu [role="menuitem"]:hover,.tkg-menu [role="menuitem"]:focus{background:var(--color-surface);outline:none}
.tkg-menu [role="menuitem"]:focus-visible{box-shadow:inset 0 0 0 2px var(--color-focus)}
.tkg-icon{display:inline-flex;width:16px;height:16px;flex:none;color:inherit}
.tkg-bar-item{display:none}
/* company header actions */
.tkg-co-actions{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.tkg-co-actions[hidden]{display:none}
.tkg-follow,.tkg-add{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--color-border);border-radius:4px;background:none;color:var(--color-text-secondary);font:inherit;font-size:13px;cursor:pointer}
.tkg-follow:hover,.tkg-add:hover{color:var(--color-text);border-color:var(--color-text-muted)}
.tkg-follow[aria-pressed="true"]{color:var(--color-accent);border-color:var(--color-accent)}
.tkg-follow:disabled{opacity:.6;cursor:default}
/* dialogs */
.tkg-dialog{margin:auto;max-width:420px;width:calc(100% - 32px);border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-raised);color:var(--color-text);padding:22px 22px 18px}
.tkg-dialog::backdrop{background:rgba(0,0,0,.55)}
.tkg-dialog h2{margin:0 28px 10px 0;font-size:19px}
.tkg-dialog p{margin:0 0 14px;color:var(--color-text-secondary)}
.tkg-dialog-close{position:absolute;right:10px;top:8px;background:none;border:0;color:var(--color-text-muted);font-size:22px;cursor:pointer;line-height:1}
.tkg-dialog .tkg-actions{display:flex;flex-wrap:wrap;gap:10px}
.tkg-dialog .tkg-btn{display:inline-block;padding:8px 14px;border-radius:4px;border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;font:inherit;font-size:14px;background:none;cursor:pointer}
.tkg-dialog .tkg-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg);font-weight:600}
.tkg-form{display:flex;flex-direction:column;gap:6px}
.tkg-form label{font-size:13px;color:var(--color-text-secondary)}
.tkg-form input{padding:8px 10px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);font:inherit;margin-bottom:6px}
.tkg-form .tkg-btn{margin-top:4px;align-self:flex-start}
.tkg-muted{font-size:12px;color:var(--color-text-muted);margin:4px 0 0}
.tkg-err{color:var(--color-danger);font-size:13px;margin:8px 0 0}
.tkg-err a{color:inherit;font-weight:600}
.tkg-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:6px;padding:10px 16px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:14px}
.tkg-toast a{color:var(--color-accent)}
/* recent dropdown */
.tkg-recent{position:absolute;left:0;right:0;top:100%;margin-top:4px;z-index:40;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:6px;padding:6px 0;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.tkg-recent[hidden]{display:none}
.tkg-recent-h{margin:4px 12px 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}
.tkg-recent-o{display:flex;align-items:center;gap:9px;padding:7px 12px;cursor:pointer;color:var(--color-text);font-size:14px}
.tkg-recent-o .tkg-icon{color:var(--color-text-muted)}
.tkg-recent-o:hover,.tkg-recent-o[aria-selected="true"]{background:var(--color-surface)}
.tkg-recent-o .wb-symbol{font-weight:600;min-width:3.6em}
/* lock icons on Pro tabs */
.tkg-tab-lock{display:inline-flex;vertical-align:-1px;margin-left:6px;color:var(--color-accent)}
/* footer legal links */
.tkg-legal a{color:inherit}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .wb-sidebar .tkg-acct,body.wb-company .rail .tkg-acct{display:none}
  .tkg-bar-item{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:55px;padding:5px 2px;font-size:12px;color:var(--color-text-secondary);text-decoration:none;text-align:center}
  .tkg-bar-item .wb-icon,.tkg-bar-item .tkg-icon{width:20px;height:20px}
  .tkg-bar-item .tkg-icon svg{width:20px;height:20px}
  .tkg-dialog{padding:18px 16px 14px}
  .tkg-dialog .tkg-actions .tkg-btn{flex:1 1 100%;text-align:center}
}
/* === tkg:nav end === */
/* === mb:mobile v7.4 (UI bundle v7.4) === Phone overrides for the v7.4 blocks, one sub-section per lane (charts, valuation, diffs, ownership; CONTRACTS.md E.3). Last block in the file so it wins the cascade. Tokens only. */
/* -- charts -- (sub-section of mb:mobile v7.4, the LAST workbench.css block; CONTRACTS.md E.3). Phones and landscape
   phones, the same media condition as mb:mobile v7.2. Touch targets 44 px, the compare row and the chips wrap, the
   ticker input takes the row, no horizontal page scroll at 320/360/390 px. Selectors start at #pane: the v7.2 mobile layer sets min-height:40px on
   '#pane .r-filters button', and an id selector beats a class chain, so without #pane the 44 px targets would lose. The chart heights for narrow plots are set
   by the renderer (heightNarrow below 520 px of plot width). */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .mk-view .pc-compare,#pane .mk-view .pc-ind{gap:6px 8px;margin-top:10px}
  #pane .mk-view .pc-label{flex:1 1 100%;min-width:0}
  #pane .mk-view .pc-compare .pc-label{flex:0 0 auto} /* fix round 1: "Compare" shares the row with the SPY chip */
  #pane .mk-view .pc-chip{min-height:44px;padding:2px 12px}
  #pane .mk-view .pc-x{min-width:44px;min-height:44px;margin:-6px -10px -6px 0}
  #pane .mk-view .pc-add{flex:1 1 100%;min-width:0}
  #pane .mk-view .pc-add input{flex:1 1 auto;width:auto;min-width:0;min-height:44px;font-size:16px}
  #pane .mk-view .pc-add button{min-height:44px}
  #pane .mk-view .pc-controls .r-toggle button,#pane .mk-view .pc-multi button,#pane .mk-view .af-controls .r-toggle button{min-height:44px;min-width:44px}
  #pane .mk-view .r-chart .r-tip{max-width:min(300px,82vw)}
  /* fix round 1: the indicator rows fold behind one full-width button, so the chart starts within the first screen */
  #pane .mk-view .pc-inds{margin-top:10px}
  #pane .mk-view .pc-inds-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:6px 12px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text);font-size:14px;text-align:left}
  #pane .mk-view .pc-inds-toggle::after{content:"";width:8px;height:8px;margin-left:4px;border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);transform:rotate(45deg) translateY(-2px)}
  #pane .mk-view .pc-inds[data-open="true"] .pc-inds-toggle::after{transform:rotate(-135deg) translateY(-2px)}
  #pane .mk-view .pc-inds-count{margin-left:auto;font-size:13px}
  #pane .mk-view .pc-inds-toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
  #pane .mk-view .pc-inds[data-open="false"] .pc-inds-body{display:none}
}
@media(max-width:360px){
  #pane .mk-view .pc-controls .r-toggle button{padding:6px 9px}
  #pane .mk-view .pc-multi button{padding:6px 10px}
}
/* -- charts end -- */
/* -- valuation -- */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  /* -- valuation (mk:multiples) -- phones: one KPI per row, finger-sized switcher that wraps (no sideways scroll),
     tighter panel insets. Goes inside the mb:mobile v7.4 media query (@media(max-width:760px),(max-width:950px) and
     (max-height:500px) and (pointer:coarse)); the integrator places this sub-section, the preview wraps it itself. */
  #pane .mx-panel>.mx-controls{margin:10px 10px 0}
  #pane .mx-panel>.mx-controls{gap:8px}
  #pane .mx-panel>.mx-controls .r-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;overflow:visible}
  #pane .mx-panel>.mx-controls .r-filters button{min-width:0;min-height:44px;padding:4px;font-size:14px;line-height:1.2;white-space:normal;overflow-wrap:anywhere;border-left:1px solid var(--color-border);margin:0 -1px -1px 0}
  #pane .mx-panel>.r-cards{grid-template-columns:1fr;margin:10px}
  #pane .mx-panel>.r-state{margin:10px}
  #pane .mx-panel>.mx-src,#pane .mx-panel>.mx-peer-note{margin-left:10px;margin-right:10px}
  #pane .mx-panel>.mx-profile{margin:10px 10px 0}
  #pane .mx-panel>.mx-caveat{margin:10px 10px 12px}
  #pane .mx-panel .r-key{gap:4px 12px;font-size:12.5px}
  #pane .mx-panel .r-chart-sub{font-size:12.5px}
  /* Fix round 1 (2026-09-30): the peer toggle keeps each label on one line at 320 px ("Peer Median" wrapped). The row
     stays the 3-column grid of the metric row above; 13px labels and tighter side padding fit "Peer Median" in a third
     of a 320 px panel. The median rule label is no longer drawn (its value is in the legend), so the 2026-09-29 rule
     that hid it on phones is gone. */
  #pane .mx-panel>.mx-controls .r-filters[aria-label="Peer layer"] button{padding:4px 2px;font-size:13px;white-space:nowrap;overflow-wrap:normal}
}
/* -- valuation end -- */
/* -- diffs -- (wc:pane phone overrides; goes inside mb:mobile v7.4, which comes last in workbench.css) */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .wc-view .wc-cards{grid-template-columns:1fr 1fr}
  .wc-view .wc-cards .r-value{font-size:19px}
  .wc-view .r-panel>.r-cards{margin:10px 12px 0}
  .wc-view .r-panel>.r-table-scroll{margin:0}
  #pane .wc-table td.wc-num{text-align:left;white-space:normal}
  #pane .wc-table td .wc-pct{display:inline;margin-left:6px}
  #pane .wc-table td.wc-why{max-width:none;min-width:0;font-size:14px}
  #pane .wc-table td.wc-src{white-space:normal}
  #pane .wc-table td .wc-line{display:inline}
  .wc-view .r-panel>.wc-sub{margin:14px 12px 4px}
  .wc-sub-note{display:block;margin:2px 0 0}
  .wc-text{margin:0 12px}
  .wc-text li{font-size:15px;padding:6px 8px}
  .wc-view .r-panel>.wc-filing{font-size:14px}
  .wc-view .r-panel-head .wc-count{font-size:13px}
  /* Largest Changes: a list, not the 720-wide chart scaled to phone width (fix round 1) */
  .wc-movers>.r-chart{display:none}
  .wc-movers>.wc-mlist-wrap{display:block;padding:12px;border:1px solid var(--color-rule);border-radius:8px;background:var(--color-surface)}
  .wc-movers .wc-mlist-title{margin:0 0 2px}
  .wc-movers .wc-mlist-note{margin:0}
  .wc-mlist-src .r-source{display:inline-block;padding:6px 0}
  .wc-showall{min-height:40px;width:100%}
}
@media(max-width:360px){
  .wc-view .wc-cards{grid-template-columns:1fr}
}
/* Touch tablets (761-1100 px) keep the desktop layout: give the standalone SEC links a 24 px target (WCAG 2.2 AA 2.5.8). */
@media(min-width:761px) and (max-width:1100px) and (pointer:coarse){
  .wc-view .r-source{display:inline-block;padding:4px 0}
}
/* -- diffs end -- */
/* Ownership lane phone overrides for the shared "mb:mobile v7.4" block (CONTRACTS E.3): the integrator pastes the
   sub-section below into that block, which is last in workbench.css so it wins the cascade. Same phone query as
   mb:mobile v7.2; tokens only; 320/360/390 px, dark and light. */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
/* -- ownership -- */
  #pane .fi-mv .r-panel-head{align-items:flex-start}
  #pane .fi-mv-period{white-space:normal}
  #pane .r-panel>.r-cards.fi-mv-kpis{margin:10px;grid-template-columns:1fr}
  #pane .r-panel>.fi-mv-when,#pane .r-panel>.fi-mv-note{margin-left:12px;margin-right:12px;font-size:14px}
  #pane .r-panel>.fi-mv-adj,#pane .r-panel>.fi-mv-nc{margin:10px}
  #pane .fi-mv .r-toggle button,#pane .fi-fp>.r-toggle button{flex:1 1 auto;min-height:44px}
  #pane .r-panel>.fi-mv-more{margin:10px}
  #pane .fi-mv-rank{float:none;display:inline;min-width:0;margin-right:4px}
  #pane .fi-mv-rank+.fi-inst,#pane .fi-mv-rank+.fi-inst+.fi-qual{margin-left:0}
  #pane .fi-mv-more .r-toggle button{min-height:44px}
  #pane .fi-fp .r-cards{grid-template-columns:1fr}
  #pane .fi-fp .fi-fp-credit{font-size:12.5px}
}
/* -- ownership end -- */
/* === mb:mobile v7.4 end === */
/* === co:pane v7.6 (UI bundle v7.6, wave 2a) === Compare Companies (co:engine, co:pane in research-ui.js; co:route in
   workbench.js). Tokens only (no literal colours), so light and dark need no extra rules. No good/bad colouring
   (L11): company columns are told apart by the categorical swatches r-s1..r-s5 and their labels, never by red or
   green, and no value is highlighted as better. Every rule is scoped to .co-* classes, which exist only on this pane,
   except the Compare section button rule at the end. */
.co-view .co-set{margin-top:14px;padding:12px;border:1px solid var(--color-rule);background:color-mix(in srgb,var(--color-surface) 55%,transparent)}
.co-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.co-chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;max-width:100%;padding:3px 6px 3px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-raised)}
.co-chip-off{border-style:dashed;background:transparent}
.co-chip .r-swatch{flex:none}
.co-swatch-off{background:transparent;border:1px dashed var(--color-text-muted)}
.co-chip-sym{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.co-chip-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--color-text-secondary)}
.co-x{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:28px;min-height:28px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:17px;line-height:1;cursor:pointer}
.co-x:hover{background:var(--color-surface);color:var(--color-text)}
.co-x:focus-visible,.co-btn:focus-visible,.co-spy:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.co-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-top:12px}
.co-add{display:flex;flex-direction:column;gap:4px;margin:0}
.co-add label{font-size:12px;color:var(--color-text-muted)}
.co-add-row{display:flex;align-items:center;gap:8px}
.co-add .co-add-wrap input{width:15em;min-height:36px;padding:4px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font-size:13px}
.co-add .co-add-wrap input:focus{border-color:var(--color-accent)}
.co-add .co-ac{min-width:18em}
.co-btn{min-height:36px;padding:4px 12px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-accent);font-size:13px;cursor:pointer}
.co-btn:hover{border-color:var(--color-accent)}
.co-cap{margin:0;font-size:13px}
/* Past the cap: the companies the address asks for that are not shown (.co-left), and the Pro panel that replaces the add
   slot (.co-gate, the panel markup and its .tkg-* styles come from the shared gate). The panel takes its own full row. */
.co-left{flex:1 1 100%;margin:0;font-size:13px;color:var(--color-text-secondary)}
.co-actions>.co-gate{flex:1 1 100%;min-width:0;max-width:760px}
.co-gate>.co-left{margin:0 0 10px;font-size:14px;color:var(--color-text)}
.co-view>.co-gate,#pane>.co-gate{width:100%;min-width:0}
.co-status{min-height:1.4em;margin:8px 0 0;font-size:13px}
.co-status:empty{display:none}
.co-view>.co-notes{margin-top:12px}
.co-notes ul{margin:0;padding-left:18px}
.co-notes li+li{margin-top:4px}
.co-view>.co-state{margin-top:14px}
.co-view>.co-state[data-coverage="ok"]{border-left-color:var(--color-accent)}
.co-points{margin:12px 12px 12px 30px;padding:0;max-width:100ch}
.co-points li{margin:0 0 6px;font-size:14px;line-height:1.55;color:var(--color-text-secondary)}
.co-points li:last-child{margin-bottom:0}
.co-panel-note{font-size:13px}
.co-view .r-panel>.co-scroll{margin:0}
.co-table{min-width:520px}
.co-table.co-n4,.co-table.co-n5{min-width:760px}
.co-table thead th{vertical-align:bottom}
.co-table th.co-num,.co-table td.co-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.co-table td.co-num{color:var(--color-text)}
.co-table td.co-na{color:var(--color-text-muted)}
.co-col{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--color-text)}
.co-fy{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--color-text-muted)}
.co-table th.co-metric{font-weight:500;color:var(--color-text);text-align:left;white-space:normal;min-width:11em}
.co-table tr.co-group th{padding-top:14px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);background:transparent;border-bottom:1px solid var(--color-rule)}
.co-table tbody tr:first-child.co-group th{padding-top:8px}
.co-sub{display:block;margin-top:2px;font-size:12px;white-space:normal;color:var(--color-text-muted)}
.co-table tr.co-cohort td{white-space:normal;font-size:12.5px;color:var(--color-text-secondary)}
.co-charts{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:12px}
.co-charts .r-chart{margin:0}
.co-history>.co-src{margin-top:0}
.co-chart-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 12px 0}
.co-chart-controls .r-filters{margin:0}
.co-spy{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:2px 12px;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:13px;cursor:pointer}
.co-spy[aria-pressed="true"]{border-color:var(--color-accent);color:var(--color-text);background:var(--color-surface-raised)}
.co-market>.r-chart{margin:12px}
.co-market>.co-scroll{margin-top:12px}
.co-market>.r-state{margin:12px}
.co-market .co-wait{margin:12px}
.co-credit a{white-space:nowrap}
.co-inst>summary.co-sum{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;min-height:46px;padding:10px 12px;cursor:pointer;list-style:none}
.co-inst>summary.co-sum::-webkit-details-marker{display:none}
.co-inst>summary.co-sum::before{content:"";flex:none;align-self:center;width:8px;height:8px;margin-right:4px;border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);transform:rotate(-45deg)}
.co-inst[open]>summary.co-sum::before{transform:rotate(45deg)}
.co-sum-title{flex:1 1 auto;font-size:16px;font-weight:600;color:var(--color-text)}
.co-sum-note{font-size:13px}
.co-inst[open] .co-sum-note{display:none}
.co-inst[open]>summary.co-sum{border-bottom:1px solid var(--color-rule)}
.co-inst-body>p{margin:10px 12px 12px;font-size:13px}
.co-inst-body>.r-chart-note{margin:10px 12px 0}
.co-inst-body>.r-chart-note:last-child{margin-bottom:12px}
.co-view>details.co-about{margin:16px 0 0}
.co-view>.co-foot{margin-top:14px}
@media(prefers-reduced-motion:reduce){.co-view *{transition:none!important;animation:none!important}}
/* === co:pane v7.6 end === */
/* === mb:mobile v7.6 compare (top-picks wave 2a-1, Compare) === Phone overrides for the Compare blocks. Last block in the file at apply time so it wins the cascade. Tokens only. */
/* -- compare -- (co:pane phone overrides; goes inside mb:mobile v7.6, the LAST workbench.css block; CONTRACTS.md E.3).
   Same phone media condition as mb:mobile v7.2/v7.4. The side-by-side tables become one card per metric: the metric
   name on top, then one line per company (swatch + "SYMBOL · FY" label from data-label, value on the right), so
   nothing scrolls sideways at 320/360/390 px. Touch targets 44 px; the add field takes the row (16 px text, no iOS
   zoom). Selectors start at #pane so they beat the v7.2 mobile layer's #pane rules. Tokens only. */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .co-view .co-set{padding:10px}
  #pane .co-chip{min-height:44px;padding:2px 2px 2px 10px}
  #pane .co-chip-name{max-width:44vw}
  #pane .co-x{min-width:44px;min-height:44px}
  #pane .co-actions{flex-direction:column;align-items:stretch}
  #pane .co-actions>.co-gate{flex:none;width:100%;max-width:none}
  #pane .co-add,#pane .co-add-row{width:100%}
  #pane .co-add .co-add-wrap{flex:1 1 auto;min-width:0}
  #pane .co-add .co-add-wrap input{width:100%;min-height:44px;font-size:16px}
  #pane .co-add .co-ac{min-width:0}
  #pane .co-btn{min-height:44px;width:100%}
  #pane .co-add-row .co-btn{width:auto;flex:none}
  #pane .co-points{margin:10px 12px 10px 28px}
  #pane .co-points li{font-size:15px}
  /* tables as cards */
  #pane .co-view .r-panel>.co-scroll{overflow:visible}
  #pane .co-table{min-width:0;width:100%;border-collapse:separate;border-spacing:0}
  #pane .co-table thead{display:none}
  #pane .co-table,#pane .co-table tbody,#pane .co-table tr,#pane .co-table th,#pane .co-table td{display:block}
  #pane .co-table tr{padding:8px 12px;border-top:1px solid var(--color-rule)}
  #pane .co-table tbody tr:first-child{border-top:0}
  #pane .co-table tr.co-group{padding:14px 12px 2px;border-top:0}
  #pane .co-table tr.co-group th{padding:0;border:0}
  #pane .co-table tr.co-group+tr{border-top:0}
  #pane .co-table th.co-metric{min-width:0;padding:0 0 4px;font-size:15px;white-space:normal;border:0}
  #pane .co-table td.co-num{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 10px;padding:3px 0;text-align:right;white-space:normal;border:0;font-size:15px}
  #pane .co-table td.co-num::before{content:attr(data-label);flex:1 1 auto;text-align:left;font-size:13px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
  #pane .co-table td .co-sub{flex:1 1 100%;text-align:right}
  #pane .co-table tr.co-cohort td{font-size:13px}
  /* each company line carries its column colour, as the swatches in the chips and the chart legends */
  /* the v7.2 card layer gives every #pane .r-table cell a 118 px label gutter (!important) and floats the label into it;
     these cards put the label and the value on one flex line instead */
  #pane .co-view .co-table td.co-num{padding:3px 0 3px 11px!important;box-shadow:inset 3px 0 0 var(--r-cat-1)}
  #pane .co-view .co-table td.co-num::before{float:none;width:auto;margin-left:0;line-height:1.45}
  #pane .co-view .co-table td.co-num:nth-child(3){box-shadow:inset 3px 0 0 var(--r-cat-2)}
  #pane .co-view .co-table td.co-num:nth-child(4){box-shadow:inset 3px 0 0 var(--r-cat-3)}
  #pane .co-view .co-table td.co-num:nth-child(5){box-shadow:inset 3px 0 0 var(--r-cat-4)}
  #pane .co-view .co-table td.co-num:nth-child(6){box-shadow:inset 3px 0 0 var(--r-cat-5)}
  #pane .co-charts{padding:10px}
  #pane .co-chart-controls{margin:10px 10px 0}
  #pane .co-chart-controls .r-filters button{min-height:44px;min-width:44px}
  #pane .co-spy{min-height:44px}
  #pane .co-market>.r-chart{margin:10px}
  #pane .co-view .r-chart .r-tip{max-width:min(300px,82vw)}
  #pane .co-inst>summary.co-sum{min-height:52px}
  #pane .co-view .r-source{display:inline-block;padding:6px 0}
}
@media(max-width:480px){
  #pane .co-chip-name{display:none}
}
@media(max-width:360px){
  #pane .co-chart-controls .r-filters button{padding:6px 9px}
}
/* -- compare end -- */
/* === mb:mobile v7.6 compare end === */
/* === mk:divsafety (wave 2a) === Market > Dividends & Splits: Dividend Safety Score card (research-ui.js block
   mk:divsafety). Tokens only (no literal colours), so dark and light need no extra rules. No colour by result: the
   points bar is one neutral tone whatever the score; the label is plain text (no badge, no star). */
.ds-card{scroll-margin-top:16px}
.ds-card .ds-score{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:12px 12px 4px}
.ds-card .ds-total{margin:0;font-family:"Iowan Old Style",Palatino,Georgia,serif;font-variant-numeric:tabular-nums}
.ds-card .ds-num{font-size:40px;line-height:1;color:var(--color-text)}
.ds-card .ds-of{font-size:18px;color:var(--color-text-muted)}
.ds-card .ds-label{margin:0;font-size:20px;font-weight:600;color:var(--color-text)}
.ds-card .ds-meta{flex-basis:100%;margin:2px 0 0;font-size:13px}
.ds-card .ds-none .ds-label{font-size:18px}
.ds-card .ds-factors{list-style:none;margin:8px 12px 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.ds-card .ds-factor{padding:10px 0;border-top:1px solid var(--color-rule);min-width:0;scroll-margin-top:16px}
.ds-card .ds-factor:focus{outline:2px solid var(--color-focus);outline-offset:2px}
.ds-card .ds-f-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.ds-card .ds-f-name{font-weight:600;color:var(--color-text)}
.ds-card .ds-f-pts{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--color-text)}
.ds-card .ds-bar{display:block;width:100%;height:4px;margin:6px 0 6px}
.ds-card .ds-bar-bg{fill:var(--color-rule)}
.ds-card .ds-bar-fill{fill:var(--color-text-muted)}
.ds-card .ds-f-measure{margin:0;font-size:14px;line-height:1.5;color:var(--color-text-secondary);overflow-wrap:anywhere}
.ds-card .ds-f-measure strong{color:var(--color-text);font-weight:600}
.ds-card .ds-f-note,.ds-card .ds-f-band{margin:2px 0 0;font-size:13px;line-height:1.45}
.ds-card>.ds-basis,.ds-card>.ds-copy{margin:10px 12px 0}
.ds-card>.ds-copy{margin-bottom:14px}
.ds-card>.ds-how,.ds-card>.ds-src{margin:10px 12px 0;padding:2px 0;border-bottom:1px solid var(--color-rule)}
.ds-card>.ds-how[open],.ds-card>.ds-src[open]{padding-bottom:12px}
.ds-card .ds-in-title{margin:12px 0 6px;font-size:14px;font-weight:600}
.ds-card .ds-miss{margin:6px 12px 0;padding-left:20px;font-size:14px;color:var(--color-text-secondary)}
.mk-view .r-panel.ds-card .r-table{min-width:0}
.r-kpi .ds-kpi-see{margin:2px 0 0}
#pane .km-row:focus{outline:2px solid var(--color-focus);outline-offset:-2px}
/* === mk:divsafety (wave 2a) end === */
/* === sc:screener v7.5 (wave 2a) === Screen Companies (sc:model, sc:view in research-ui.js; sc:route in workbench.js).
   Desktop and tablet. Tokens only (no literal colours), so dark and light need no extra rules. Phone rules are in the
   mb:mobile sub-section (block.mobile.css). */
.wb-landing.sc-pending>:not(.wb-breadcrumb){visibility:hidden}
.wb-landing.sc-view{max-width:none}
.wb-landing.sc-view .wb-breadcrumb{margin-bottom:28px}
.sc-entry{display:flex;align-items:center;gap:8px;margin:18px 0 0;font-size:16px}
.sc-entry a{font-weight:600}
.sc-entry .wb-icon{width:16px;height:16px;background:var(--color-accent)}
.sc{min-width:0;color:var(--color-text);font-family:var(--wb-font)}
.sc-head{margin:0 0 20px}
.sc-eyebrow{margin:0 0 8px;color:var(--color-accent);font-size:15px;letter-spacing:.08em;text-transform:uppercase}
.sc-head h1{margin:0 0 8px;font-size:40px;line-height:1.15;font-weight:600;letter-spacing:-1px}
.sc-sub{margin:0;max-width:820px;color:var(--color-text-secondary);font-size:17px}
.sc-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin:0 0 14px;padding:14px 0;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}
.sc-preset{display:grid;gap:6px;min-width:260px;flex:0 1 380px}
.sc-preset select{width:100%;min-width:0}
.sc-preset label,.sc-add label,.sc-sortpick label{font-size:13px;color:var(--color-text-secondary)}
.sc select,.sc input[type=text],.sc input[type=search]{min-height:40px;padding:7px 10px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:15px;max-width:100%}
.sc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 14px;border:1px solid var(--color-border);border-radius:4px;background:transparent;color:var(--color-text);font:inherit;font-size:15px;line-height:1.2;cursor:pointer;white-space:nowrap}
.sc-btn:hover{background:var(--color-surface-raised)}
.sc-btn:disabled{opacity:.55;cursor:default}
.sc-btn.sc-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}
.sc-open,.sc-close,.sc-done,.sc-sortpick,.sc-scrim{display:none}
.sc-export{display:inline-flex;gap:8px}
.sc-status{flex:1 1 100%;margin:0;min-height:22px;color:var(--color-text-secondary);font-size:14px}
.sc-colpick{position:relative}
.sc-colpick>summary{list-style:none}
.sc-colpick>summary::-webkit-details-marker{display:none}
.sc-colpick>summary::after{content:"";margin-left:8px;border:5px solid transparent;border-top-color:currentColor;transform:translateY(3px)}
.sc-colpick:not([open]) .sc-colmenu{display:none}
.sc-colmenu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;width:min(560px,calc(100vw - 48px));max-height:420px;overflow:auto;padding:12px 14px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
.sc-colmenu fieldset{margin:0;padding:0;border:0;min-width:0}
.sc-colmenu legend{padding:6px 0 4px;font-size:13px;font-weight:600;color:var(--color-text-secondary)}
.sc-colmenu .sc-btn{grid-column:1/-1;justify-self:start;margin-top:6px}
.sc-check{display:flex;align-items:flex-start;gap:8px;padding:3px 0;font-size:14px;line-height:1.35;color:var(--color-text);cursor:pointer}
.sc-check input{margin:2px 0 0;width:16px;height:16px;flex:none;accent-color:var(--color-accent)}
.sc-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}
.sc-filters{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;padding:14px;border:1px solid var(--color-rule);border-radius:6px;background:var(--color-surface)}
.sc-fhead{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}
.sc-fhead h2{margin:0;font-size:18px;font-weight:600}
.sc-flist{display:grid;gap:10px;margin:12px 0}
.sc-f{margin:0;padding:10px 10px 6px;border:1px solid var(--color-rule);border-radius:5px;min-width:0}
.sc-f legend{padding:0 4px;font-size:14px;font-weight:600;max-width:100%}
.sc-unit{font-weight:400;color:var(--color-text-muted);font-size:13px}
.sc-x{display:block;margin:4px 0 0 auto;min-height:32px;padding:4px 2px;border:0;background:transparent;color:var(--color-accent);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}
.sc-range{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}
.sc-range label{font-size:13px;color:var(--color-text-secondary)}
.sc-range input{width:100%;min-width:0}
.sc-hint{margin:6px 0 0;font-size:13px;color:var(--color-text-muted)}
.sc-err{margin:6px 0 0;font-size:13px;color:var(--color-danger,var(--r-cat-8))}
.sc input[aria-invalid=true]{border-color:var(--color-danger,var(--r-cat-8))}
.sc-find{width:100%;margin:2px 0 6px}
.sc-opts{max-height:190px;overflow:auto;padding-right:4px}
.sc-add{display:grid;gap:6px}
.sc-add select{width:100%}
.sc-fbtns{display:flex;gap:8px;margin-top:12px}
.sc-results{min-width:0}
.sc-tablewrap{position:relative;overflow-x:auto;border:1px solid var(--color-rule);border-radius:6px}
.sc-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.sc-table th,.sc-table td{padding:8px 10px;border-bottom:1px solid var(--color-rule);text-align:left;vertical-align:top}
.sc-table thead th{background:var(--color-surface);font-weight:500;color:var(--color-text-secondary);white-space:nowrap;padding:0}
.sc-table thead th button{display:flex;align-items:center;gap:4px;width:100%;min-height:40px;padding:8px 10px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.sc-table thead th.sc-num button{justify-content:flex-end;text-align:right}
.sc-table thead th[aria-sort] button{color:var(--color-text);font-weight:600}
.sc-arrow{font-size:12px;color:var(--color-accent);min-width:10px}
.sc-table tbody tr:hover{background:var(--color-surface-raised)}
.sc-table .sc-num{text-align:right;white-space:nowrap}
.sc-table tbody th.sc-sym{font-weight:600;white-space:nowrap}
.sc-table .sc-name{min-width:180px;max-width:320px}
.sc-na{color:var(--color-text-muted);cursor:help}
.sc-empty{margin:0;padding:28px 16px;color:var(--color-text-secondary)}
.sc-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 0;font-size:14px;color:var(--color-text-secondary)}
.sc-notes{margin:26px 0 0;padding:14px 0 0;border-top:1px solid var(--color-rule);font-size:14px;color:var(--color-text-secondary);max-width:900px}
.sc-notes p{margin:0 0 8px}
.sc-disclaimer{color:var(--color-text-muted)}
@media(max-width:1100px){.sc-layout{grid-template-columns:260px minmax(0,1fr);gap:18px}.sc-head h1{font-size:34px}}
/* === sc:screener v7.5 end === */
/* === mb:mobile v7.6 divscreen (top-picks wave 2a-1, Dividend Safety + screener) === Phone overrides for the mk:divsafety and sc:screener blocks, one sub-section per lane. Last block in the file at apply time so it wins the cascade. Tokens only. */
/* -- dividend safety -- */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  /* -- dividend safety (mk:divsafety, wave 2a) -- phones: one factor per row, tighter insets, the score and its label
     on one line where they fit. Goes inside the phone media query (@media(max-width:760px),(max-width:950px) and
     (max-height:500px) and (pointer:coarse)); the integrator places this sub-section, the preview wraps it itself. */
  #pane .ds-card .ds-factors{grid-template-columns:1fr;margin:6px 10px 0}
  #pane .ds-card .ds-score{margin:10px 10px 2px;gap:2px 12px}
  #pane .ds-card .ds-num{font-size:34px}
  #pane .ds-card .ds-label{font-size:18px}
  #pane .ds-card>.ds-basis,#pane .ds-card>.ds-copy,#pane .ds-card>.ds-how,#pane .ds-card>.ds-src{margin-left:10px;margin-right:10px}
  #pane .ds-card .ds-miss{margin:6px 10px 0}
  #pane .ds-card .ds-f-measure{font-size:14px}
  #pane .ds-card .ds-how .r-table td,#pane .ds-card .ds-src .r-table td{overflow-wrap:anywhere}
  #pane .ds-card .ds-goto{display:inline-block;min-height:24px}
}
/* -- dividend safety end -- */
/* Screener phone overrides for the shared mb:mobile block (the integrator pastes this sub-section into the
   mb:mobile wave-2a block, last in workbench.css, so it wins the cascade). Same phone query as mb:mobile v7.2;
   tokens only; 320/360/390 px and landscape, dark and light. Filters open in a bottom drawer; results are cards;
   exports are not offered on phones (D33). */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
/* -- screener -- */
  .sc-head h1{font-size:30px;letter-spacing:-.6px}
  .sc-sub{font-size:15px}
  .sc-eyebrow{font-size:13px}
  .sc-top{gap:10px;padding:10px 0}
  .sc-preset{flex:1 1 100%;min-width:0;width:100%}
  .sc select,.sc input[type=text],.sc input[type=search]{font-size:16px;min-height:44px}
  .sc-btn{min-height:44px;font-size:15px}
  .sc-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .sc-open{display:inline-flex}
  .sc-export{display:none}
  .sc-sortpick{display:grid;gap:4px;grid-column:1/-1}
  .sc-sortpick select{width:100%}
  .sc-colpick{grid-column:auto}
  .sc-colpick>summary{width:100%}
  .sc-colmenu{position:fixed;left:8px;right:8px;top:auto;bottom:calc(72px + env(safe-area-inset-bottom));width:auto;max-height:60vh;grid-template-columns:1fr;z-index:70}
  .sc-check{min-height:44px;align-items:center;font-size:15px}
  .sc-check input{width:20px;height:20px;margin:0}
  .sc-layout{display:block}
  .sc-scrim{position:fixed;inset:0;z-index:64;background:var(--color-bg);opacity:.7}
  .sc-drawer-open .sc-scrim{display:block}
  .sc-filters{display:none;position:fixed;left:0;right:0;bottom:0;top:auto;z-index:65;max-height:88vh;overflow:auto;margin:0;padding:14px 16px calc(16px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--color-border);border-radius:12px 12px 0 0;background:var(--color-surface-raised);box-shadow:0 -10px 30px -12px var(--color-bg)}
  .sc-drawer-open .sc-filters{display:block}
  .sc-fhead{position:sticky;top:-14px;margin:-14px -16px 8px;padding:12px 16px;background:var(--color-surface-raised);border-bottom:1px solid var(--color-rule);z-index:1}
  .sc-close,.sc-done{display:inline-flex}
  .sc-fbtns{position:sticky;bottom:calc(-16px - env(safe-area-inset-bottom));margin:12px -16px calc(-16px - env(safe-area-inset-bottom));padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--color-surface-raised);border-top:1px solid var(--color-rule)}
  .sc-fbtns .sc-btn{flex:1 1 0}
  .sc-x{min-height:44px;font-size:15px}
  .sc-range{grid-template-columns:auto minmax(0,1fr);row-gap:8px}
  .sc-opts{max-height:240px}
  .sc-tablewrap{overflow:visible;border:0;border-radius:0}
  .sc-table,.sc-table tbody,.sc-table tr,.sc-table td,.sc-table tbody th{display:block}
  .sc-table thead{display:none}
  .sc-table tbody tr{margin:0 0 10px;padding:10px 12px;border:1px solid var(--color-rule);border-radius:6px;background:var(--color-surface)}
  .sc-table tbody tr:hover{background:var(--color-surface)}
  .sc-table tbody th.sc-sym{padding:0;border:0;font-size:17px}
  .sc-table tbody th.sc-sym a{display:inline-flex;align-items:center;min-height:44px}
  .sc-table td.sc-name{padding:0 0 6px;border:0;max-width:none;min-width:0;color:var(--color-text-secondary);font-size:14px;white-space:normal}
  .sc-table td.sc-num{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border:0;border-top:1px solid var(--color-rule);white-space:normal;font-size:15px}
  .sc-table td.sc-num::before{content:attr(data-label);color:var(--color-text-secondary);text-align:left}
  .sc-pager{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .sc-pager span{grid-column:1/-1;grid-row:1;text-align:center}
  .sc-notes{font-size:14px}
  .sc-entry{font-size:16px;min-height:44px}
}
@media (max-width:360px){
  .sc-head h1{font-size:27px}
  .sc-actions{grid-template-columns:1fr}
}
/* -- screener end -- */
/* === mb:mobile v7.6 divscreen end === */
/* === sc:revenue-note r2 begin === */
.sc-table .sc-value{display:block;min-width:0}
/* build 1 fix: a min width, so the note wraps to about 3 lines on desktop instead of one word per line */
.sc-table .sc-revenue-note{display:block;min-width:12rem;max-width:20rem;margin:4px 0 0 auto;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.45;color:var(--color-text-secondary);font-weight:400}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .sc-table td.sc-has-note{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start}
  .sc-table td.sc-has-note::before{min-width:0;overflow-wrap:anywhere}
  .sc-table .sc-revenue-note{min-width:0;max-width:100%;font-size:13px}
}
/* === sc:revenue-note r2 end === */
/* === sc:screener-ui r1 begin === */
/* Screener UI r1 (owner 2026-10-13): the empty default prompt, the yes/no filters and the market-data note. Desktop rules,
   then the phone rules (same phone query as mb:mobile). Tokens only, so dark and light need no extra rules. */
.sc-prompt{padding:28px 16px}
.sc-prompt .sc-empty{padding:0;font-size:17px;color:var(--color-text)}
.sc-prompt .sc-hint{margin:6px 0 0;font-size:14px}
.sc-prompt-open{display:none}
.sc-flag .sc-opts{display:flex;flex-wrap:wrap;gap:4px 18px;max-height:none}
.sc-notes .sc-mnote{color:var(--color-text-secondary)}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .sc-prompt{padding:20px 4px}
  .sc-prompt .sc-empty{font-size:16px}
  .sc-prompt-open{display:inline-flex;margin-top:14px;min-height:44px;width:100%;max-width:100%}
  .sc-flag .sc-opts{gap:0 18px}
  .sc-flag .sc-check{min-width:88px}
}
/* === sc:screener-ui r1 end === */
/* === sc:screener-ui-a r2 begin === */
/* sc-ui-a r2 (owner 2026-10-20 07:58: "two inputs right above one another", "white space"): compact filter cards with a
   header row (name, unit, x), paired fields side by side, quick date buttons as small pills, a one-row My Screens control
   whose save form takes the row's place, a slightly wider filter panel (340 px). Tokens only: dark is the default and
   light is :root[data-theme=light]; the date fields follow it. Phone rules use the mb:mobile phone query. */
.sc-top{gap:12px 28px;padding:12px 0}
.sc-preset{flex:1 1 360px;max-width:520px;gap:4px}
.sc-pdesc{margin:2px 0 0;max-width:62ch;font-size:13px;line-height:1.4;color:var(--color-text-secondary)}
.sc-saved{display:grid;gap:4px;flex:1 1 340px;max-width:520px;min-width:0}
.sc-saved>label{font-size:13px;color:var(--color-text-secondary)}
.sc-saved>label .sc-unit{font-size:12px}
.sc-saved-row{display:flex;align-items:center;gap:8px;min-width:0}
.sc .sc-saved-row select,.sc .sc-saved-row input[type=text]{flex:1 1 auto;width:auto;min-width:0}
.sc-saved-row .sc-btn{flex:none}
.sc-top>.sc-actions{flex:1 1 100%}
.sc-layout{grid-template-columns:340px minmax(0,1fr)}
.sc-flist{gap:8px;margin:10px 0 12px}
.sc-f{position:relative;padding:8px 10px 10px;border-radius:6px;background:var(--color-surface-raised)}
.sc-fh{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px;margin:0 0 6px}
.sc-fl{min-width:0;font-size:14px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.sc-fl[title]{cursor:help}
.sc .sc-f .sc-x{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:0;margin:0 -4px 0 0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--color-text-secondary);font-size:19px;line-height:1;text-decoration:none}
.sc .sc-f .sc-x:hover{background:var(--color-surface);color:var(--color-text)}
.sc .sc-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;row-gap:0}
.sc-dash{color:var(--color-text-muted);font-size:14px;text-align:center}
.sc .sc-range input[type=text]{width:100%;min-width:0;min-height:36px;padding:5px 8px;font-size:14px;background:var(--color-surface)}
.sc input[type=date]{width:100%;min-width:0;min-height:36px;padding:4px 6px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text);font:inherit;font-size:14px;color-scheme:dark}
:root[data-theme=light] .sc input[type=date]{color-scheme:light}
.sc-dquick{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sc .sc-dquick .sc-btn{min-height:26px;padding:2px 10px;border-radius:999px;font-size:12.5px;color:var(--color-text-secondary)}
.sc .sc-dquick .sc-btn:hover{color:var(--color-text)}
.sc-f .sc-find{margin:0 0 6px;background:var(--color-surface)}
.sc-f .sc-note{margin:6px 0 0}
.sc-f .sc-err:not([hidden]){margin:6px 0 0}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .sc-preset,.sc-saved{flex:1 1 100%;max-width:none;width:100%}
  .sc-pdesc{max-width:none}
  .sc-saved-row[data-sc-row]{flex-wrap:wrap}
  .sc .sc-saved-row[data-sc-row] select{flex:1 1 100%}
  .sc-saved-row[data-sc-row] .sc-btn{flex:1 1 0}
  .sc .sc-range{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);row-gap:0}
  .sc .sc-range input[type=text],.sc input[type=date]{min-height:44px;font-size:16px}
  .sc .sc-f .sc-x{width:40px;height:40px;margin:-6px -8px -6px 0;font-size:22px}
  .sc .sc-dquick .sc-btn{min-height:36px;padding:4px 12px;font-size:14px}
  .sc-f{padding:8px 12px 12px}
}
@media(max-width:339px){
  .sc .sc-range{grid-template-columns:minmax(0,1fr);row-gap:6px}
  .sc-dash{display:none}
}
/* === sc:screener-ui-a r2 end === */
/* === cf:entry v7.6 (compare-fix2) === Home page entry for Compare Companies (cf:entry in workbench.js): the landing link
   (same look as the screener's .sc-entry), the company picker, and (compare-fix3) the Workspace list item "Compare", an <a>
   in .wb-nav that looks like the section buttons (desktop rail, phone bottom bar, landscape phone bar; the Fair Value item
   is a real button and needs no rule). Tokens only (no literal colours), so dark and light need no extra rules. Inserted
   right after co:pane v7.6 end; its phone rules are inside this block (same phone media condition as mb:mobile v7.2/v7.4/v7.6).
   The first line and the end line are the anchors of other drop-ins (dropin-debt-a): keep them as they are. */
/* compare-fix3: the nav item. Same box as ".wb-nav button" (workbench.css first block), with the link reset. */
.wb-nav a.cf-nav{display:flex;gap:18px;align-items:center;min-height:51px;text-align:left;padding:12px 16px;border:0;border-radius:5px;text-decoration:none;background:transparent;color:var(--color-text);font-size:17px;cursor:pointer}
.wb-nav a.cf-nav:hover{background:var(--color-surface-raised)}
.wb-nav a.cf-nav:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}
@media (hover:none){.wb-nav a.cf-nav:hover{background:none}.wb-nav a.cf-nav:active{background:var(--color-surface-raised)}}
.cf-entry{display:flex;align-items:center;gap:8px;margin:18px 0 0;font-size:16px}
.sc-entry+.cf-entry{margin-top:8px}
.cf-entry a{font-weight:600}
.cf-entry .wb-icon{width:16px;height:16px;background:var(--color-accent)}
.cf-scrim{position:fixed;inset:0;z-index:60;background:color-mix(in srgb,var(--color-bg) 72%,transparent)}
.cf-picker{position:fixed;z-index:61;top:12vh;left:50%;transform:translateX(-50%);width:min(520px,calc(100vw - 32px));max-height:80vh;overflow:auto;padding:22px 24px 20px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);box-shadow:0 18px 40px #0006;font-family:var(--wb-font)}
.cf-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cf-head h2{margin:0;font-size:24px;font-weight:600;line-height:1.25}
.cf-close,.cf-x{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:22px;line-height:1}
.cf-close:hover,.cf-x:hover{background:var(--color-surface-raised);color:var(--color-text)}
.cf-sub{margin:6px 0 16px;color:var(--color-text-secondary);font-size:15px}
.cf-rows{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.cf-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:4px 6px}
.cf-label{grid-column:1/-1;font-size:13px;color:var(--color-text-secondary)}
.cf-field{position:relative;min-width:0}
.cf-field input{display:block;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font-size:15px}
.cf-field input::placeholder{color:var(--color-text-muted);opacity:1}
.cf-field input:focus{border-color:var(--color-accent)}
.cf-field input[aria-invalid=true]{border-color:var(--color-text)}
.cf-row .cf-x{grid-column:2;grid-row:2;margin:0}
.cf-err{grid-column:1/-1;margin:0;padding-left:10px;border-left:2px solid var(--color-accent);color:var(--color-text);font-size:13px}
.cf-picker .ac{top:calc(100% + 2px)}
.cf-picker .ac [role=option]{display:flex;align-items:baseline;gap:12px;font-weight:600;white-space:nowrap}
.cf-picker .ac [role=option]>span{min-width:0;font-weight:400;white-space:normal;color:var(--color-text-secondary)}
.cf-more{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin:12px 0 0;padding:6px 2px;border:0;background:transparent;color:var(--color-accent);font-weight:600;font-size:15px}
.cf-more:hover{text-decoration:underline;text-underline-offset:3px}
.cf-hint{margin:10px 0 0;color:var(--color-text-secondary);font-size:13px}
.cf-msg{margin:10px 0 0;color:var(--color-text);font-size:14px}
.cf-msg:empty{display:none}
.cf-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--color-rule)}
.cf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:96px;padding:8px 18px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text);font-size:15px;font-weight:600}
.cf-btn:hover{background:var(--color-surface-raised)}
.cf-btn.cf-go{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-bg)}
.cf-btn.cf-go:hover{background:var(--color-accent);filter:brightness(1.1)}
.cf-btn:disabled{opacity:.6}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  html.cf-open{overflow:hidden}
  .wb-nav a.cf-nav{flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:52px;padding:5px 2px;font-size:11.5px;line-height:1.15;border-radius:3px;text-align:center;white-space:normal}
  .wb-nav:has(>.cf-nav):has(>.cf-fv) button,.wb-nav:has(>.cf-nav):has(>.cf-fv) a.cf-nav{min-width:0;font-size:11px;letter-spacing:-.01em;overflow-wrap:normal;word-break:normal}
  .cf-entry{min-height:44px;font-size:16px;margin-top:14px}
  .sc-entry+.cf-entry{margin-top:0}
  .cf-entry a{display:inline-flex;align-items:center;min-height:44px}
  .cf-picker{top:auto;bottom:0;left:0;right:0;transform:none;width:100%;max-height:calc(100dvh - 24px);padding:18px 16px calc(16px + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:12px 12px 0 0}
  .cf-head h2{font-size:21px}
  .cf-close,.cf-x{width:44px;height:44px}
  .cf-field input{min-height:48px;font-size:16px}
  .cf-picker .ac{max-height:min(40vh,280px)}
  .cf-more{min-height:44px}
  .cf-actions{gap:8px}
  .cf-btn{flex:1 1 0;min-height:48px}
}
@media(max-width:374px){.wb-nav:has(>.cf-nav):has(>.cf-fv) button,.wb-nav:has(>.cf-nav):has(>.cf-fv) a.cf-nav{font-size:10px}}
@media (max-width:950px) and (max-height:500px) and (pointer:coarse){.wb-nav a.cf-nav{flex-direction:row;gap:8px;min-height:40px;font-size:13px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.cf-picker,.cf-scrim{transition:none!important;animation:none!important}}
/* === cf:entry v7.6 (compare-fix2) end === */
/* === u23p1:market-home begin === */
.mh-root{min-width:0;max-width:100%;margin:36px 0 0;padding-top:28px;border-top:1px solid var(--color-rule);color:var(--color-text)}
.mh-root[hidden],.sc-view .mh-root,.sc-pending .mh-root{display:none!important}
.mh-root h2,.mh-root h3{margin:0;font-weight:600;letter-spacing:0;text-transform:none}
.mh-root h2{font-size:28px}.mh-root h3{font-size:19px}
/* U64 r1: the h2 is sr-only, so the date line is the only visible child; it stays at the right end */
.mh-heading{display:flex;justify-content:flex-end;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.mh-note{color:var(--color-text-secondary);font-size:13px;line-height:1.5}
.mh-root p.mh-note{margin:6px 0 15px}
.mh-indices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;margin-bottom:24px}
.mh-index,.mh-tile{min-width:0;padding:16px;border:1px solid var(--color-rule);border-radius:6px;background:var(--color-surface);display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.mh-company{min-width:0;max-width:100%;overflow-wrap:anywhere;text-decoration:none;color:var(--color-text)}
.mh-company:hover{text-decoration:underline;color:var(--color-accent)}
.mh-value{font-size:23px;line-height:1.3;white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums}
/* Match financials.html market tokens on the index view. Reuse the base mk-* classes. */
.mh-root{--color-positive:#53D6A5;--color-danger:#FF7B72}
:root[data-theme=light] .mh-root{--color-positive:#16794C;--color-danger:#B42318}
.mh-breadth{padding:20px 0;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}
.mh-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.mh-count{display:flex;flex-direction:column;gap:6px;min-width:0}.mh-count-value{font-size:24px;font-weight:600}
.mh-sectors{margin:24px 0}.mh-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
.mh-tile .mh-company{font-size:15px;font-weight:600}.mh-symbol{margin-left:6px;font-size:12px;font-weight:400;color:var(--color-text-secondary)}.mh-tile .mh-value{margin-top:auto}
.mh-sectors>h3{margin-bottom:14px}.mh-root p.mh-reason{margin:0;overflow-wrap:anywhere}
.mh-movers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:26px 0 12px}
.mh-mover-group{min-width:0}.mh-mover-list{list-style:none;padding:0;margin:12px 0 0}
.mh-mover{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;min-width:0;min-height:62px;padding:10px 0;border-bottom:1px solid var(--color-rule)}
.mh-mover .mh-company{display:flex;flex-direction:column;gap:2px}.mh-mover .mh-value{font-size:18px}
@media(max-width:1100px){.mh-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.mh-indices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.mh-root{margin-top:28px;padding-top:22px}.mh-root h2{font-size:25px}.mh-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.mh-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.mh-movers{grid-template-columns:minmax(0,1fr);gap:24px}.mh-index,.mh-tile{padding:12px}.mh-value{font-size:21px}}
.mh-returns{width:100%;min-width:0;display:flex;flex-direction:column;gap:8px}
.mh-return{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;min-width:0}
.mh-root span.mh-company:hover{text-decoration:none;color:var(--color-text)}
/* U23p1b r2 heatmap. Cells sit edge to edge. Text stays neutral, so the sign and number carry the direction too.
   Dark: #e7eef4 text on every step >= 5.3:1. Light: #152a39 text on every step >= 6.4:1. */
.mh-root{--heat-n3:#8a2a2f;--heat-n2:#612226;--heat-n1:#3d1a1d;--heat-0:var(--color-surface-raised);--heat-p1:#12382c;--heat-p2:#17573f;--heat-p3:#1a6e4c;--heat-text:#e7eef4}
:root[data-theme=light] .mh-root{--heat-n3:#e9968e;--heat-n2:#f4c4bf;--heat-n1:#fbe6e4;--heat-0:#edf3f6;--heat-p1:#e3f4ea;--heat-p2:#bfe6cf;--heat-p3:#8fd1ab;--heat-text:#152a39}
.mh-heat{border:0;border-radius:0;color:var(--heat-text)}.mh-heat .mh-company,.mh-heat .mh-symbol,.mh-heat .mh-note,.mh-heat .mh-value{color:var(--heat-text)}
.mh-heat-n3{background:var(--heat-n3)}.mh-heat-n2{background:var(--heat-n2)}.mh-heat-n1{background:var(--heat-n1)}.mh-heat-0{background:var(--heat-0)}
.mh-heat-p1{background:var(--heat-p1)}.mh-heat-p2{background:var(--heat-p2)}.mh-heat-p3{background:var(--heat-p3)}
/* U34: 52-week high and low company links under the counts */
.mh-root p.mh-tickers{margin:2px 0 0;font-size:13px;line-height:1.6;display:flex;flex-wrap:wrap;gap:2px 10px}.mh-tickers .mh-company{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}
/* === u23p1:market-home end === */
/* === u23p2:home begin === */
.wb-landing:has(.sh-questions){min-width:0}
.wb-landing .wb-breadcrumb{margin-bottom:24px}
.wb-landing .wb-intro{max-width:820px}
.wb-landing .wb-intro h1{font-size:36px;letter-spacing:-.4px}
.wb-landing .wb-intro .wb-subtitle{font-size:16px;line-height:1.6;margin-bottom:18px}
.wb-landing .wb-company-label{font-size:14px;margin-bottom:8px}
.wb-landing .wb-search-row input{height:52px;font-size:16px;padding-left:48px}
.wb-landing .wb-search-icon{left:16px;top:15px;width:20px;height:20px}
.wb-landing .wb-submit{min-height:52px;width:110px;font-size:15px}
.wb-landing #sh-stats{font-size:14px;color:var(--color-text-secondary);margin:12px 0 20px;line-height:1.6}
.sh-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;border-top:1px solid var(--color-rule);margin-top:24px}
.sh-questions[hidden],.sh-filings[hidden],.sc-view .sh-questions,.sc-view .sh-filings,.sc-pending .sh-questions,.sc-pending .sh-filings{display:none!important}
.sh-card{min-width:0;padding:18px 0;border-bottom:1px solid var(--color-rule);overflow-wrap:anywhere}
.sh-wide{grid-column:1/-1}
.sh-card .sh-question{font-size:14px;font-weight:400;color:var(--color-text-secondary);letter-spacing:0;text-transform:none;margin:0 0 6px}
.sh-answer{font-family:Georgia,serif;font-size:21px;line-height:1.4;margin:0 0 10px}
.sh-wide .sh-answer{font-size:25px}
.sh-foot{margin:6px 0 0;font-size:12px;color:var(--color-text-muted)}
.sh-list{margin:12px 0 0;padding-left:20px;font-size:13px;line-height:1.5}
.sh-list li{margin:0 0 4px}
.sh-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--color-text-muted)}
.sh-links{display:flex;flex-wrap:wrap;gap:8px 16px}
.sh-link{color:var(--color-accent);text-decoration:none;overflow-wrap:anywhere}
.sh-link:hover{text-decoration:underline}
.sh-share{height:8px;background:var(--color-rule);margin-top:12px;border-radius:2px;overflow:hidden}
.sh-share span{display:block;height:100%;background:var(--color-accent)}
.sh-filings{margin-top:34px;padding-top:12px;border-top:2px solid var(--color-text);min-width:0}
.sh-filings>h2,.wb-landing .sh-start h2{font-size:21px;font-weight:600;margin:0 0 12px;letter-spacing:0;text-transform:none}
.sh-note{font-size:12px;color:var(--color-text-muted);margin:0 0 18px}
.sh-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 30px}
.sh-table-section{min-width:0;max-width:100%}
.sh-table-section h3{font-size:15px;font-weight:600;margin:0;padding-bottom:8px;border-bottom:2px solid var(--color-text)}
.sh-table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px}
.sh-table th,.sh-table td{padding:8px 5px;border-bottom:1px solid var(--color-rule);text-align:left;vertical-align:top;overflow-wrap:anywhere;white-space:normal}
.sh-table th{font-size:12px;font-weight:500;color:var(--color-text-secondary)}
.sh-table th:first-child,.sh-table td:first-child{width:20%}
.sh-table .sh-number,.sh-table th:last-child{text-align:right}
.sh-table-section[data-table=insider_buys] th:nth-child(2){width:32%}
.sh-table-section[data-table=insider_sells] th:nth-child(2){width:32%}
.sh-role{display:block;color:var(--color-text-muted);font-size:11px}
.wb-landing .sh-start{display:block;margin-top:34px}
.wb-landing .sh-start .wb-examples{display:flex;flex-wrap:wrap;gap:12px 20px;border:0;border-radius:0}
.wb-landing .sh-start .wb-example{padding:4px 0;min-height:0;gap:8px;border:0;font-size:13px;max-width:100%;overflow-wrap:anywhere}
.wb-landing .sh-start .wb-symbol{padding:2px 6px;min-width:48px;font-size:12px}
@media(max-width:760px){
 .wb-landing .sh-questions,.wb-landing .sh-tables{grid-template-columns:minmax(0,1fr);gap:0}
 .wb-landing .sh-table-section{margin-bottom:24px}
 .wb-landing .wb-intro h1{font-size:29px}
 .wb-landing .sh-answer,.wb-landing .sh-wide .sh-answer{font-size:20px}
 .wb-landing .wb-submit{width:86px}
 .wb-landing .wb-search-row input{font-size:14px}
 .wb-landing .sh-meta{display:block}
 .wb-landing .sh-links{margin-top:8px}
}
/* r6 (owner 10-16): the header search replaces the home search block. The form stays in the page, hidden, because the
   landing script binds #go and #sym. */
.wb-intro #go[hidden],.wb-intro .wb-destination[hidden]{display:none!important}
/* === u23p2:home end === */
/* === dd:pane v7.9 (Debt Deep Dive, Phase A) === Four debt cards at the top of Research > Footnotes & Obligations (dd:pane in
   research-ui.js). Tokens only, so light and dark need no extra rules. The phone rules sit at the end of this block and carry
   the #pane prefix, so they win over the general phone layer (mb:mobile v7.2 to v7.6) without being the last block in the file. */
.dd-root{margin:16px 0 0}
.dd-root>.r-caveat,.dd-root>.r-panel,.dd-root>.r-empty{margin:16px 0 0}
.dd-root>:first-child{margin-top:0}
.dd-root .loading{padding:12px 0;color:var(--color-text-secondary)}
.dd-root>.r-empty{padding:12px;border:1px solid var(--color-rule);border-radius:8px;background:var(--color-surface)}
.dd-root .r-panel{background:var(--color-surface)}
.dd-root .r-panel>.r-cards.dd-kpis{margin:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.dd-kpis .r-card{min-height:0;min-width:0;overflow-wrap:anywhere}
.dd-root .r-panel>.r-chart-note{margin:8px 12px 12px}
.dd-root .r-panel>.r-chart+.fi-sub,.dd-root .r-panel>.r-table-scroll+.fi-sub,.dd-root .r-panel>.r-chart-note+.fi-sub{margin-top:18px}
.dd-root .r-panel>.r-chart:last-child{border-bottom:0}
.dd-root .r-panel>.r-toggle{margin:12px}
.dd-root .r-panel>details.dd-all{margin:14px 12px 12px}
.dd-root .r-panel>details.dd-all>.r-table-scroll{margin-top:8px}
.dd-tag{display:inline;padding:0;background:none;color:var(--color-text-secondary);font:12.5px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;white-space:normal}
.dd-derived{font-size:12px;white-space:nowrap}
.dd-root .r-table td .fi-qual{overflow-wrap:anywhere}
.dd-root .r-key{margin:8px 0 0}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .dd-root{margin-top:12px}
  #pane .dd-root>.r-caveat,#pane .dd-root>.r-panel,#pane .dd-root>.r-empty{margin-top:12px}
  #pane .dd-root>:first-child{margin-top:0}
  #pane .dd-root .r-panel>.r-cards.dd-kpis{grid-template-columns:1fr;margin:10px}
  #pane .dd-root .r-panel>.r-chart-note,#pane .dd-root .r-panel>.fi-sub,#pane .dd-root .r-panel>details.dd-all{margin-left:12px;margin-right:12px}
  #pane .dd-root .r-panel>.r-toggle{margin:10px}
  #pane .dd-root .r-toggle button{min-height:44px}
  #pane .dd-root .r-table td .dd-tag{display:inline}
  #pane .dd-root .r-table td:has(>.fi-na){display:none}
  #pane .dd-root .r-chart{padding:12px 10px}
}
/* === dd:pane v7.9 end === */
/* === fi:customers v7.5 (UI wave 2a) === "Customer Concentration" card in the Accounting Quality view (the fi:customers
   block in research-ui.js). Tokens only, so light and dark need no extra rules. Every rule is scoped to .fi-cc classes,
   which exist only when the pair declares the `customers` Research domain. Append after the last wave-1 research block
   (fi:moves v7.4), before the mobile block. */
.research-view>.fi-cc>.r-panel{margin:16px 0 0}
.fi-cc .r-panel-head h3{margin:0}
.fi-cc-period{display:inline-block;padding:2px 10px;border:1px solid var(--color-border);border-radius:999px;font-size:12.5px;color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}
.r-panel>.fi-cc-lw{margin:12px 12px 0;padding:8px 12px;max-width:100ch;border-left:3px solid var(--color-warning);background:var(--color-surface-raised);font-size:13.5px;line-height:1.5;color:var(--color-text-secondary)}
.fi-cc-lw strong{color:var(--color-text);font-weight:600}
.fi-cc-lw .fi-cc-src{white-space:nowrap}
.r-panel>.fi-cc-kpis>.r-cards{margin:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.fi-cc-kpis .r-card{min-height:0}
.r-panel>.fi-cc-chart{padding:4px 12px 0}
.fi-cc-chart>.r-toggle{margin:0 0 12px}
.fi-cc-chart>.r-chart{margin:0}
.r-panel>.fi-cc-latest{margin:16px 12px 0}
.fi-cc-latest h4{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--color-text)}
.fi-cc-latest .r-table{min-width:620px}
.r-panel>.fi-cc-note{margin:12px 12px 0;max-width:100ch}
.r-panel>.fi-cc-asof{margin:6px 12px 12px;font-size:12px}
/* === fi:customers v7.5 end === */
/* === v:pane v7.7 (Valuation Phase 1) === Fair Value Models pane (pane id v-valuation) (val:engine, v:models, v:pane in research-ui.js; v:route
   in workbench.js). Tokens only (no literal colours), so light and dark need no extra rules. No verdict colours: the
   fair value against the price is never green or red, and the football field tells methods apart by the categorical
   slots r-s1..r-s7 and their labels. Every rule is scoped to .v-* classes, which exist only on this pane. The
   Fair Value section button needs no rule (it reuses the rail button style). */
.v-view .v-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px}
@media(min-width:1180px){.v-view .v-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}}
.v-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.v-view .v-panel{margin:0;min-width:0}
.v-view>.v-ff{margin-top:16px}
.v-lead{margin:0 12px 10px;font-size:13px;line-height:1.5}
.v-group{margin:0 12px 12px;padding:0;border:0;min-width:0}
.v-group>legend{padding:0;margin:0 0 6px;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--color-text-secondary)}
.v-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(7.5em,10em) auto auto;align-items:center;gap:2px 10px;padding:6px 0;border-top:1px solid var(--color-rule)}
.v-group>legend+.v-row{border-top:0}
.v-label{min-width:0;font-size:14px;color:var(--color-text)}
.v-field{display:flex;align-items:center;gap:6px;min-width:0}
.v-field input{width:100%;min-width:0;min-height:34px;padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:14px;text-align:right;font-variant-numeric:tabular-nums}
.v-field input:focus{border-color:var(--color-accent);outline:2px solid var(--color-focus);outline-offset:1px}
.v-field input:disabled{border-style:dotted;background:transparent;color:var(--color-text-muted)}
.v-field input::placeholder{color:var(--color-text-muted)}
.v-unit{flex:none;min-width:2.4em;font-size:12px;color:var(--color-text-muted)}
.v-tag{justify-self:start;padding:1px 8px;border:1px solid var(--color-rule);border-radius:999px;font-size:12px;line-height:1.5;white-space:nowrap;color:var(--color-text-secondary)}
.v-tag:empty{display:none}
.v-row[data-state="user"] .v-tag,.v-row[data-state="saved"] .v-tag{border-color:var(--color-accent);color:var(--color-accent)}
.v-row[data-state="user"] .v-field input{border-color:var(--color-accent)}
.v-row[data-state="missing"] .v-field input{border-style:dashed;border-color:var(--color-text-muted)}
.v-row[data-state="missing"] .v-tag{border-style:dashed}
.v-row[data-invalid] .v-field input{border-color:var(--color-text);border-width:2px;border-style:solid}
.v-reset{min-height:30px;padding:2px 8px;border:0;border-radius:6px;background:transparent;color:var(--color-accent);font-size:12.5px;cursor:pointer}
.v-reset:hover{background:var(--color-surface-raised)}
.v-note{grid-column:1/-1;margin:0;font-size:12.5px;line-height:1.45;color:var(--color-text-muted)}
.v-note:empty{display:none}
.v-row[data-invalid] .v-note{color:var(--color-text)}
.v-options{display:flex;flex-direction:column;gap:8px}
.v-check-row{padding:6px 0 8px;border-top:1px solid var(--color-rule)}
.v-check{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:2px 10px;font-size:14px;cursor:pointer}
.v-check input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--color-accent)}
.v-check .v-note{grid-column:2}
.v-out{margin:0 12px 12px;font-size:14px}
.v-big{margin:4px 0 8px;font-size:20px;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.v-big .v-tag{vertical-align:middle;font-weight:400}
.v-big-line{margin:4px 0 8px;font-size:16px;line-height:1.5;color:var(--color-text)}
.v-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(13em,1fr));gap:6px 16px;margin:8px 0 0}
.v-dl>div{min-width:0}
.v-dl dt{font-size:12px;color:var(--color-text-muted)}
.v-dl dd{margin:0;font-size:14px;color:var(--color-text);font-variant-numeric:tabular-nums}
.v-needs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none}
.v-link{min-height:32px;padding:3px 10px;border:1px dashed var(--color-border);border-radius:999px;background:transparent;color:var(--color-accent);font-size:13px;cursor:pointer}
.v-link:hover{border-color:var(--color-accent)}
.v-needs-box{padding:10px 12px;border:1px dashed var(--color-border);border-radius:8px}
.v-needs-box>p{margin:0}
.v-disclaimer-line{margin:0 0 10px;padding:8px 10px;border-left:3px solid var(--color-border);background:color-mix(in srgb,var(--color-surface-raised) 60%,transparent);font-size:13px;color:var(--color-text-secondary)}
.v-cards{margin-top:0}
.v-cards+.v-cards{margin-top:10px}
.v-kpi-main .r-value{color:var(--color-accent)}
.v-cur-note{margin:8px 0 0;font-size:13px}
.v-notes{margin:10px 0 0;padding-left:18px;font-size:12.5px;color:var(--color-text-muted)}
.v-details{margin-top:12px}
.v-details>summary{min-height:36px;padding:6px 0;font-size:14px;color:var(--color-accent);cursor:pointer}
.v-details .r-table-scroll+.r-table-scroll{margin-top:12px}
.v-ff .v-ff-body{margin:0 12px}
.v-ff .r-chart{margin:0}
.r-svg .v-ff-tick{stroke:var(--color-text);stroke-width:2}
.r-svg .v-ff-price{stroke:var(--color-text);stroke-width:1.5;stroke-dasharray:5 4}
.r-svg .v-ff-price-label{fill:var(--color-text);font-weight:600}
.r-svg .v-ff-label{fill:var(--color-text-secondary)}
.r-svg .v-ff-clip{fill:var(--color-text-secondary);stroke:none}
.r-svg .v-ff-val,.r-svg .v-ff-clip-text{fill:var(--color-text-secondary);font-size:12px}
.r-svg .v-ff-bar{fill-opacity:.55}
.r-svg .v-ff-bar:focus,.r-svg .v-ff-point:focus{outline:none;stroke:var(--color-text)}
.v-skipped{margin:10px 0 0;padding-left:18px;font-size:12.5px}
.v-ff-credit{margin:8px 0 0;font-size:12.5px}
.v-bars{margin:14px 12px 12px;padding-top:12px;border-top:1px solid var(--color-rule)}
.v-bars>h4{margin:0 0 8px;font-size:14px;font-weight:600}
.v-bar-list{margin:0 0 10px;padding:0;list-style:none}
.v-bar-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:4px 0}
.v-bar-name{font-weight:600;min-width:0;overflow-wrap:anywhere}
.v-bar-range{font-size:13px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}
.v-bar-add{margin:0}
.v-bar-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}
.v-bar-f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--color-text-muted)}
.v-bar-f input{width:11em;min-height:34px;padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:14px}
.v-bar-f input[name="label"]{width:15em}
.v-bar-f input:focus{border-color:var(--color-accent);outline:2px solid var(--color-focus);outline-offset:1px}
.v-bar-msg{min-height:1.3em;margin:6px 0 0;font-size:13px;color:var(--color-text-secondary)}
.v-bar-msg:empty{display:none}
.v-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:4px 12px;border:1px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-accent);font:inherit;font-size:13px;text-decoration:none;cursor:pointer}
.v-btn:hover{border-color:var(--color-accent)}
.v-btn:disabled{color:var(--color-text-muted);border-color:var(--color-rule);cursor:not-allowed}
.v-btn-main{border-color:var(--color-accent)}
.v-btn-quiet{min-height:30px;padding:2px 8px;border-color:transparent}
.v-btn-warn{border-color:var(--color-text);color:var(--color-text);font-weight:600}
.v-btn:focus-visible,.v-reset:focus-visible,.v-link:focus-visible,.v-model-name:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.v-saved-body{margin:0 12px 12px;font-size:14px}
.v-signin{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.v-signin>p{flex:1 1 18em;margin:0}
.v-open{margin:0 0 6px}
.v-open-note,.v-ro{margin:0 0 8px;padding:6px 10px;border-left:3px solid var(--color-border);font-size:13px;color:var(--color-text-secondary)}
.v-save{margin:0}
.v-save>label{display:block;margin-bottom:4px;font-size:12px;color:var(--color-text-muted)}
.v-save-row{display:flex;flex-wrap:wrap;gap:8px}
.v-save-row input{flex:1 1 14em;min-width:0;min-height:36px;padding:4px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:14px}
.v-save-row input:focus{border-color:var(--color-accent);outline:2px solid var(--color-focus);outline-offset:1px}
.v-save>.r-muted{margin:6px 0 0;font-size:13px}
.v-status{min-height:1.3em;margin:8px 0 0;font-size:13px;color:var(--color-text-secondary)}
.v-status:empty{display:none}
.v-count{margin:10px 0 6px;font-size:13px}
.v-model-list{margin:0;padding:0;list-style:none}
.v-model{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:8px 0;border-top:1px solid var(--color-rule)}
.v-model-open{box-shadow:inset 3px 0 0 var(--color-accent);padding-left:10px}
.v-model-name{font-weight:600;color:var(--color-accent);overflow-wrap:anywhere}
.v-model-meta{flex:1 1 12em;font-size:13px;color:var(--color-text-secondary)}
.v-model-acts{display:flex;gap:4px}
.v-confirm{flex:1 1 100%;margin:4px 0 0;font-size:13px;color:var(--color-text)}
.v-rename{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 100%}
.v-rename input{flex:1 1 12em;min-width:0;min-height:34px;padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:14px}
.v-saved-note{margin:10px 0 0;font-size:12.5px}
.v-view>.v-disclaimer{margin:16px 0 0;padding:10px 12px;border:1px solid var(--color-rule);border-radius:8px;font-size:12.5px;line-height:1.5;color:var(--color-text-secondary)}
.v-view>.v-hidden{margin-top:14px}
.v-credit{white-space:nowrap}
@media(prefers-reduced-motion:reduce){.v-view *{transition:none!important;animation:none!important}}
/* === v:pane v7.7 end === */
/* === v2:pane v7.8 (Valuation Phase 2) === Fair Value tools (v2:tools in research-ui.js): the model switcher, the DDM,
   bank and comps models, bull/base/bear cases, sensitivity grids, the peer picker and the export panel. Goes in
   workbench.css right after "v:pane v7.7 end". Tokens only (no literal colours), so light and dark need no extra rules.
   Heat shading is ONE hue (the accent) mixed in at 8 to 58 %: darker = higher value. There is no red or green and no
   verdict colour. The base cell has an outline. Every rule is scoped to .v2-* classes inside the Fair Value pane. */
.v-view .v2-switch{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:14px 0 0}
.v2-switch-label{margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}
.v2-switch-row{display:flex;flex-wrap:wrap;gap:6px}
.v2-sw{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 14px;border:1px solid var(--color-border);border-radius:999px;background:transparent;color:var(--color-text);font:inherit;font-size:14px;cursor:pointer}
.v2-sw:hover{border-color:var(--color-accent)}
.v2-sw[aria-pressed="true"]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 16%,transparent);color:var(--color-text);font-weight:600}
.v2-sw:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.v2-pro{padding:0 6px;border:1px solid var(--color-border);border-radius:999px;font-size:11px;font-weight:600;line-height:1.5;color:var(--color-text-secondary)}
.v-view>.v2-scen,.v-view>.v2-grids,.v-view>.v2-export,.v-view>.tp-gate{margin-top:16px}
.v2-radios{display:flex;flex-direction:column;gap:6px}
.v2-cases{margin-bottom:10px}
.v2-src{margin:8px 0 0;font-size:12.5px;line-height:1.45}
.v2-deltas{margin-top:4px}
.v2-grid-h{margin:14px 0 6px;font-size:14px;font-weight:600}
.v2-grid-h:first-child{margin-top:0}
.v2-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.v2-grid{border-collapse:separate;border-spacing:2px;font-size:13px;font-variant-numeric:tabular-nums}
.v2-grid caption{caption-side:top;padding:0 0 6px;text-align:left;font-size:12.5px;line-height:1.4;height:auto;overflow:visible;color:var(--color-text-muted)}
.v2-grid th{padding:6px 8px;font-weight:600;color:var(--color-text-secondary);white-space:nowrap;text-align:right}
.v2-grid thead th{text-align:center}
.v2-grid .v2-corner{font-size:11.5px;font-weight:400;color:var(--color-text-muted);text-align:left;white-space:normal;min-width:0;max-width:9.5em}
.v2-grid td{min-width:5.6em;padding:7px 8px;border-radius:4px;text-align:right;white-space:nowrap;color:var(--color-text)}
.v2-heat{background:color-mix(in srgb,var(--color-accent) var(--v2-h,20%),transparent)}
.v2-grid td[data-base]{outline:2px solid var(--color-text);outline-offset:-2px;font-weight:700}
.v2-na{color:var(--color-text-muted);background:transparent;border:1px dashed var(--color-rule)}
.v2-grid-more{display:none;margin-top:8px}
.v2-comps-table input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--color-accent)}
.v2-comps-table th[scope="row"]{text-align:left;white-space:nowrap}
.v2-comps-table td{font-variant-numeric:tabular-nums}
.v2-n{font-size:12px}
.v2-mult{width:6.5em;min-height:32px;padding:3px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:13.5px;text-align:right}
.v2-mult:focus{border-color:var(--color-accent);outline:2px solid var(--color-focus);outline-offset:1px}
.v2-mult[aria-invalid="true"]{border-color:var(--color-text);border-width:2px}
.v2-mult:disabled{border-style:dotted;background:transparent}
.v2-peer-box{margin:0 12px 10px}
.v2-peer-list{margin:0 0 8px;padding:0;list-style:none}
.v2-peer{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:4px 0;border-top:1px solid var(--color-rule)}
.v2-peer:first-child{border-top:0}
.v2-peer-sym{font-weight:600;min-width:4.5em}
.v2-peer-state{flex:1 1 10em;min-width:0;font-size:13px;color:var(--color-text-secondary);overflow-wrap:anywhere}
.v2-peer-add>label{display:block;margin-bottom:4px;font-size:12px;color:var(--color-text-muted)}
.v2-peer-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.v2-peer-wrap{position:relative;flex:1 1 14em;min-width:0}
.v2-peer-wrap input{width:100%;min-height:36px;padding:4px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:14px}
.v2-peer-wrap input:focus{border-color:var(--color-accent);outline:2px solid var(--color-focus);outline-offset:1px}
.v2-peer-msg{min-height:1.3em;margin:6px 0 0;font-size:13px;color:var(--color-text-secondary)}
.v2-peer-msg:empty{display:none}
.v2-fflink{margin:10px 0 0}
.v2-export-msg{min-height:1.3em;margin:8px 0 0;font-size:13px;color:var(--color-text-secondary)}
.v2-export-msg:empty{display:none}
.v-view .v2-in .v-group>legend{color:var(--color-text-secondary)}
.v-hist summary{font-size:13.5px}
/* Last Close card (v11 shots, 2026-10-10): the Phase 1 rule .v-credit{white-space:nowrap} cut "Market Data from Tiingo.com" in a narrow card ("Market Data from Ti" at 1440 px).
   The credit text wraps; the card shows overflow instead of clipping. Phase 1 CSS stays frozen: these rules load after it and have the higher specificity. */
.v-view .v-credit{white-space:normal;overflow-wrap:anywhere}
.v-view .r-kpi{min-width:0;overflow:visible}
.v-view .r-kpi .r-muted{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
/* Hidden Phase 2 panels (no base value) leave no frame; the author display rule of .r-panel must not undo [hidden]. */
.v-view .r-panel.v2-scen[hidden],.v-view .r-panel.v2-grids[hidden],.v-view .r-panel.v2-export[hidden]{display:none}
/* The v7 base CSS gives a panel that is a direct child of .research-view content-visibility:auto (600 px placeholder, painted near the viewport only):
   full-page captures showed these 3 short panels as empty frames. Draw them always (the method of the Phase 3 export panel). */
.v-view>.r-panel.v2-scen,.v-view>.r-panel.v2-grids,.v-view>.r-panel.v2-export{content-visibility:visible;contain-intrinsic-size:none}
/* === v2:pane v7.8 end === */
/* === v3:pane v7.9 (Valuation Phase 3) === The 3-statement model and sum of the parts (v3:model in research-ui.js).
   Goes in workbench.css right after "v2:pane v7.8 end" (our own block; the Technical Chart block is not touched). Tokens only (no
   literal colours), so light and dark need no extra rules. Badges and chips use text, a border style and an icon-free
   label, never red or green. Statement tables scroll inside their own box with the line names fixed on the left. */
.v-view>.v3-usedcf,.v-view>.v3-export,.v-view>.v3-note{margin-top:16px}
.v3-badges{display:flex;flex-wrap:wrap;gap:6px 8px;margin:0 0 12px;padding:0;list-style:none}
.v3-badge{display:inline-block;padding:2px 10px;border:1px solid var(--color-border);border-radius:999px;font-size:12.5px;font-weight:600;line-height:1.6;color:var(--color-text);white-space:nowrap}
.v3-badge[data-ok="1"]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 12%,transparent)}
.v3-badge[data-ok="0"]{border:2px dashed var(--color-text);background:transparent}
.v3-badge[data-ok="1"]::before{content:"\2713\00a0"}
.v3-badge[data-ok="0"]::before{content:"!\00a0"}
.v3-use{margin:0 0 14px}
.v3-use .v-btn{margin-top:8px}
.v3-use-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.v3-st-h{margin:16px 0 6px;font-size:14px;font-weight:600}
.v3-tbl{width:auto;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;color:var(--color-text)}
.v3-tbl caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}   /* an h4 names each table; the caption stays for screen readers */
.v3-tbl th,.v3-tbl td{padding:5px 10px;border-bottom:1px solid var(--color-rule);text-align:right;vertical-align:top}
.v3-tbl thead th{font-weight:600;color:var(--color-text-secondary)}
.v3-tbl th[scope="row"]{text-align:left;font-weight:400}
/* the phone layer turns .r-table into blocks; these tables are .v3-tbl (not .r-table), so they stay tables and scroll in .v2-scroll */
.v3-st th,.v3-st td{padding:5px 10px;border-bottom:1px solid var(--color-rule);text-align:right;white-space:nowrap}
.v3-st th[scope="row"],.v3-st .v3-line,.v3-st .v3-corner{position:sticky;left:0;z-index:1;min-width:11em;max-width:16em;background:var(--color-surface);text-align:left;white-space:normal;font-weight:400}
.v3-st thead th{font-weight:600;color:var(--color-text-secondary)}
.v3-st .v3-grp{text-align:center;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}
.v3-st .v3-proj{background:color-mix(in srgb,var(--color-accent) 7%,transparent)}
.v3-e{font-weight:400;font-size:11px;color:var(--color-text-muted)}
.v3-st .v3-sub th,.v3-st .v3-sub td{font-weight:700}
.v3-st .v3-check th,.v3-st .v3-check td{border-bottom:0;padding-top:8px}
.v3-st .v3-check .v3-badge{font-size:11.5px;padding:0 7px}
.v3-chip{display:inline-block;padding:0 7px;border:1px solid var(--color-border);border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.6;color:var(--color-text-secondary);white-space:nowrap}
.v3-chip[data-conf="high"]{border-color:var(--color-accent);color:var(--color-text)}
.v3-chip[data-conf="low"],.v3-chip[data-conf="none"]{border-style:dashed}
.v3-chip[data-conf="user"]{border-style:double;border-width:3px}
.v3-seg-table td,.v3-recon td,.v3-bridge td{font-variant-numeric:tabular-nums}
.v3-seg-table th[scope="row"],.v3-recon th[scope="row"],.v3-bridge th[scope="row"]{text-align:left}
.v3-bridge .v3-sub th,.v3-bridge .v3-sub td{font-weight:700}
.v3-sel select{width:100%;min-height:36px;padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:14px}
.v3-sel select:focus{border-color:var(--color-accent);outline:2px solid var(--color-focus);outline-offset:1px}
.v-view .v3-seg>legend{color:var(--color-text-secondary)}
/* 2026-10-10: the export panel is a direct child of .research-view, so the v7 base rule gives it content-visibility:auto (600 px
   placeholder, painted only near the viewport). It showed as an empty box in full-page captures. It is short: paint it always. */
.research-view>.r-panel.v3-export{content-visibility:visible;contain-intrinsic-size:none}
/* 2026-10-10 (later): the export panel has its own classes, not v2-export / v2-export-msg. dropin-valuation2 FINAL hides the
   FIRST .v2-export in the pane when its own model has no base value, and that hid this panel after a typed margin. */
.v3-export-msg{min-height:1.3em;margin:8px 0 0;font-size:13px;color:var(--color-text-secondary)}
.v3-export-msg:empty{display:none}
/* === v3:pane v7.9 end === */
/* === mb:mobile v7.7 valuation (Valuation Phase 1) === Phone overrides for the Fair Value Models pane (pane id v-valuation). Last block in
   workbench.css at apply time, so it wins the cascade. Same phone media condition as mb:mobile v7.2/v7.4/v7.6.
   - Each input row becomes: label on its own line, then the field (full width, 44 px, 16 px text so iOS does not
     zoom) with its unit, then the source tag and Reset on one line, then the note.
   - Buttons and links are 44 px touch targets. The bar form and the save form stack in one column.
   - The football field redraws at the plot width (labels above the bars below 520 px, v:pane ffDraw), so nothing
     scrolls sideways at 320/360/390 px. The forecast table scrolls inside its own box (r-table-scroll).
   - The bottom section bar has 7 buttons with Compare and Fair Value. With 7, each column is as wide as its label
     needs (labels wrap at spaces only, never inside a word) and the free width is shared out. Label text is 11 px,
     10 px below 375 px. The launch release adds an 8th item (tkg:nav account entry): below 420 px the bar then has
     2 rows of 4, and the page gets more bottom padding. If a large text setting still does not fit, the bar scrolls
     inside itself. The page never scrolls sideways. tests/test-v-phonebar.cjs checks 320/360/390 px.
   Selectors start at #pane (or the section bar) so they beat the v7.2 mobile layer's #pane rules. Tokens only. */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .v-view .v-layout{gap:12px;margin-top:10px}
  #pane .v-col{gap:12px}
  #pane .v-lead{margin:0 10px 8px}
  #pane .v-group{margin:0 10px 10px}
  #pane .v-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:8px 0}
  #pane .v-label{grid-column:1/-1;font-size:15px}
  #pane .v-field{grid-column:1/-1}
  #pane .v-field input{min-height:44px;font-size:16px}
  #pane .v-unit{min-width:3.6em;font-size:13px}
  #pane .v-tag{font-size:12.5px}
  #pane .v-reset{min-height:44px;min-width:44px;justify-self:end;font-size:14px}
  #pane .v-note{font-size:13px}
  #pane .v-check{min-height:44px;font-size:15px}
  #pane .v-check input{width:22px;height:22px}
  #pane .v-out{margin:0 10px 10px}
  #pane .v-big{font-size:19px}
  #pane .v-dl{grid-template-columns:minmax(0,1fr)}
  #pane .v-link{min-height:44px;font-size:14px}
  #pane .v-btn{min-height:44px;font-size:15px}
  #pane .v-btn-quiet{min-height:44px;min-width:44px}
  #pane .v-details>summary{min-height:44px;display:flex;align-items:center}
  #pane .v-ff .v-ff-body{margin:0 10px}
  #pane .v-ff .r-chart{padding:10px 0}
  #pane .v-view .r-chart .r-tip{max-width:min(300px,82vw)}
  #pane .v-bars{margin:12px 10px 10px}
  #pane .v-bar-fields{flex-direction:column;align-items:stretch}
  #pane .v-bar-f input,#pane .v-bar-f input[name="label"]{width:100%;min-height:44px;font-size:16px}
  #pane .v-bar-list li{padding:2px 0}
  #pane .v-saved-body{margin:0 10px 10px}
  #pane .v-signin .v-btn{width:100%}
  #pane .v-save-row{flex-direction:column;align-items:stretch}
  #pane .v-save-row input{flex:none;width:100%;min-height:44px;font-size:16px}
  #pane .v-model{flex-direction:column;align-items:stretch;gap:4px}
  #pane .v-model-name{display:inline-block;padding:10px 0}
  #pane .v-model-acts{justify-content:flex-start;gap:8px}
  #pane .v-rename{flex-direction:column;align-items:stretch}
  #pane .v-rename input{flex:none;width:100%;min-height:44px;font-size:16px}
  #pane .v-view .r-source,#pane .v-credit{display:inline-block;padding:6px 0}
  #pane .v-view>.v-disclaimer{font-size:13px}
  body.wb-company .primary-tabs:has(>button:nth-child(7)){grid-auto-columns:auto;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
  body.wb-company .primary-tabs:has(>button:nth-child(7))::-webkit-scrollbar{display:none}
  body.wb-company .primary-tabs:has(>button:nth-child(7)) button{min-width:0;padding:5px 2px;font-size:11px;letter-spacing:-.01em;overflow-wrap:normal;word-break:normal}
}
@media(max-width:360px){
  #pane .v-unit{min-width:3em;font-size:12px}
  #pane .v-model-acts .v-btn{flex:1 1 auto}
}
@media(max-width:374px){
  body.wb-company .primary-tabs:has(>button:nth-child(7)) button{font-size:10px}
}
@media(max-width:419px){
  body.wb-company .primary-tabs:has(>button:nth-child(7)):has(>:nth-child(8)){grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr))}
  body.wb-company:has(.primary-tabs>button:nth-child(7)):has(.primary-tabs>:nth-child(8)) .main{padding-bottom:150px}
}
/* === mb:mobile v7.7 valuation end === */
/* === mb:mobile v7.8 valuation tools (Valuation Phase 2) === Phone overrides for the Fair Value tools. Goes LAST in
   workbench.css, after "mb:mobile v7.7 valuation end". Same phone media condition as the other mb: blocks.
   - The model switcher wraps to two rows when needed; each button is a 44 px touch target.
   - Sensitivity grids show the centre 3 x 3 cells; "Show Full Grid" shows all 25. A full grid scrolls inside its own
     box. The page never scrolls sideways at 320/360/390 px.
   - The comps table becomes one card per multiple (labels from data-label); the peer form stacks in one column.
   - Inputs reuse the v:pane rows, so the v7.7 phone rules (44 px, 16 px text) apply. Tokens only. */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .v-view .v2-switch{margin-top:10px;gap:6px}
  /* audit F5 (2026-10-10): the Phase 1 rule .v-model-meta{flex:1 1 12em} turns into a 12 em HEIGHT when .v-model is a column (v-mobile.css:47):
     each saved-model row was ~267 px tall. Size to the content. */
  #pane .v-model-meta{flex:0 0 auto}
  #pane .v2-switch-row{width:100%}
  #pane .v2-sw{flex:1 1 calc(50% - 6px);justify-content:center;min-height:44px;padding:6px 10px;font-size:15px}
  #pane .v-view>.v2-scen,#pane .v-view>.v2-grids,#pane .v-view>.v2-export,#pane .v-view>.tp-gate{margin-top:12px}
  #pane .v2-grid{font-size:13px;border-spacing:2px}
  #pane .v2-grid td{min-width:0;padding:8px 6px}
  #pane .v2-grid th{padding:6px 4px}
  #pane .v2-grid .v2-corner{max-width:6.5em;font-size:11px}
  #pane .r-table-scroll.v2-scroll{overflow-x:auto;max-width:100%}
  #pane .v2-grid-wrap[data-full="0"] .v2-outer,#pane .v2-grid-wrap[data-full="0"] .v2-outer-row{display:none}
  #pane .v2-grid-more{display:inline-flex;min-height:44px;width:100%}
  #pane .v2-comps-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  #pane .v2-comps-table,#pane .v2-comps-table tbody,#pane .v2-comps-table tr,#pane .v2-comps-table td,#pane .v2-comps-table th[scope="row"]{display:block;width:auto}
  #pane .v2-comps-table tr{padding:8px 0;border-top:1px solid var(--color-rule)}
  #pane .v2-comps-table th[scope="row"]{padding:2px 0;font-size:15px}
  #pane .v2-comps-table td{padding:3px 0;white-space:normal;overflow-wrap:anywhere}
  #pane .v2-comps-table td::before{content:attr(data-label) ": ";font-size:12.5px;color:var(--color-text-muted)}
  #pane .v2-comps-table td[data-label="Use"]{display:flex;align-items:center;gap:8px;min-height:44px}
  #pane .v2-comps-table input[type="checkbox"]{width:24px;height:24px}
  #pane .v2-mult{width:8em;min-height:44px;font-size:16px}
  #pane .v2-peer-box{margin:0 10px 10px}
  #pane .v2-peer{min-height:44px}
  #pane .v2-peer-row{flex-direction:column;align-items:stretch}
  #pane .v2-peer-wrap{flex:none;width:100%}
  #pane .v2-peer-wrap input{min-height:44px;font-size:16px}
  #pane .v2-peer-row .v-btn{width:100%}
  #pane .v2-export .v-btn{width:100%}
  #pane .v2-fflink .v-link{min-height:44px;width:100%}
}
@media(max-width:360px){
  #pane .v2-sw{flex-basis:100%}
  #pane .v2-grid{font-size:11.5px}
  #pane .v2-grid td{padding:8px 4px}
}
/* === mb:mobile v7.8 valuation tools end === */
/* === fi:customers mobile begin === */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
/* -- concentration -- */
  #pane .fi-cc .r-panel-head{align-items:flex-start}
  #pane .fi-cc-period{white-space:normal}
  #pane .r-panel>.fi-cc-kpis>.r-cards{margin:10px;grid-template-columns:1fr}
  #pane .r-panel>.fi-cc-chart{padding:4px 10px 0}
  #pane .fi-cc-toggle button{flex:1 1 auto;min-height:44px}
  #pane .r-panel>.fi-cc-latest{margin:14px 0 0}
  #pane .fi-cc-latest h4{margin:0 12px 6px}
  #pane .r-panel>.fi-cc-lw,#pane .r-panel>.fi-cc-note{margin-left:10px;margin-right:10px;font-size:14px}
  #pane .fi-cc-lw .fi-cc-src{white-space:normal}
  #pane .r-panel>.fi-cc-asof{margin:6px 10px 12px}
}
/* === fi:customers mobile end === */
/* === fi:customers-kv begin === */
/* Customer Concentration uses one fact-sheet column. Detail text wraps without clipping. */
.fi-cc .fi-cc-kpis{margin:12px;min-width:0}
.fi-cc .fi-cc-kpis>.km-list.kv-table{display:grid;grid-template-columns:minmax(0,1fr);list-style:none;margin:0;padding:0;min-width:0;max-width:100%}
.fi-cc .fi-cc-kpis .kv-table>.km-row{display:block;margin:0;padding:4px 0;min-width:0;min-height:0;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:none;box-shadow:none}
.fi-cc .fi-cc-kpis .km-row>.km-head{display:flex;flex-wrap:nowrap;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;margin:0}
.fi-cc .fi-cc-kpis .km-head>.km-label{flex:0 1 auto;min-width:0;overflow-wrap:anywhere;color:var(--color-text-secondary);font:400 13px/1.4 "Segoe UI",sans-serif}
.fi-cc .fi-cc-kpis .km-head>.km-value{display:block;flex:0 1 auto;min-width:0;max-width:75%;text-align:right;overflow-wrap:anywhere;font:600 13px/1.4 "Segoe UI",sans-serif;font-variant-numeric:tabular-nums;white-space:normal;color:var(--color-text)}
.fi-cc .fi-cc-kpis .fi-cc-detail{display:block;min-width:0;margin:2px 0 0;font:400 11px/1.5 "Segoe UI",sans-serif;color:var(--color-text-muted);overflow-wrap:anywhere;white-space:normal}
.fi-cc .fi-cc-kpis .fi-cc-fy{margin-right:.5em;font-variant-numeric:tabular-nums}
.fi-cc .fi-cc-kpis .r-kpi-link{display:inline;margin:0 0 0 .5em;padding:0;font:inherit;color:inherit}
/* r1.2: an inline-block link moves to the next line as one piece, so the arrow never wraps alone.
   It still wraps inside if it is wider than the line (no clipping). */
.fi-cc .fi-cc-kpis .fi-cc-detail a{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere;color:inherit}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .fi-cc .fi-cc-kpis{margin:10px}
  .fi-cc .fi-cc-kpis>.km-list.kv-table{grid-template-columns:minmax(0,1fr)}
  /* r1.2: the source link takes its own line, so its 32px tap height adds no gap inside the text. */
  .fi-cc .fi-cc-kpis .r-kpi-link{display:block;margin:0}
  .fi-cc .fi-cc-kpis .fi-cc-detail a{display:inline-flex;align-items:center;min-height:32px;box-sizing:border-box}
  /* r1.2: the "Data table and sources" link under the customers table gets the same 12px gutter as its heading. */
  .fi-cc .fi-cc-latest>.r-chart-data{margin-left:12px;margin-right:12px}
}
/* === fi:customers-kv end === */
/* === mb:mobile v7.9 valuation model (Valuation Phase 3) === Phone overrides for the 3-statement model and sum of the
   parts. Goes LAST in workbench.css, after "mb:mobile v7.8 valuation tools end" (our own block). Same phone media
   condition as the other mb: blocks.
   - Statement tables scroll sideways inside their own box; the line names stay fixed on the left and wrap.
   - The segment table becomes one card per segment (labels from data-label).
   - Buttons, selects and inputs are 44 px touch targets with 16 px text. The page never scrolls sideways at 320/360/390 px. */
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .v-view>.v3-usedcf,#pane .v-view>.v3-export,#pane .v-view>.v3-note{margin-top:12px}
  #pane .v3-badge{white-space:normal}
  #pane .v3-st{font-size:12.5px}
  #pane .v3-st th,#pane .v3-st td{padding:6px 8px}
  #pane .v3-st th[scope="row"],#pane .v3-st .v3-line,#pane .v3-st .v3-corner{min-width:8.5em;max-width:9.5em;font-size:12px}
  #pane .v3-use .v-btn,#pane .v3-use-actions .v-btn,#pane .v3-export .v-btn{width:100%;min-height:44px}
  #pane .v3-sel select{min-height:44px;font-size:16px}
  #pane .v3-seg-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  #pane .v3-seg-table,#pane .v3-seg-table tbody,#pane .v3-seg-table tr,#pane .v3-seg-table td,#pane .v3-seg-table th[scope="row"]{display:block;width:auto}
  #pane .v3-seg-table tr{padding:8px 0;border-top:1px solid var(--color-rule)}
  #pane .v3-seg-table th[scope="row"]{padding:2px 0;font-size:15px}
  #pane .v3-seg-table td{padding:3px 0;text-align:left;white-space:normal;overflow-wrap:anywhere}
  #pane .v3-seg-table td::before{content:attr(data-label) ": ";font-size:12.5px;color:var(--color-text-muted)}
  #pane .v3-chip{white-space:normal}
}
@media(max-width:360px){
  #pane .v3-st{font-size:11.5px}
  #pane .v3-st th[scope="row"],#pane .v3-st .v3-line,#pane .v3-st .v3-corner{min-width:7.5em;max-width:8em}
}
/* === mb:mobile v7.9 valuation model end === */
/* === u24:reset begin === */
/* U24 header reset r2 (v11, 2026-10-14, bug B14): pages without the company-page inline reset showed browser-default
   header controls (grey search box, grey buttons, underlined name). Zero specificity, so every u24 rule still wins.
   The brand shows the original lamp (10kgenie-lamp.svg) after the name, at the pre-U24 sizes. No outline change. */
:where(.u24-top,.u24-rail,.u24-phone,.u24-dialog) :where(input,button){font:inherit;color:inherit;background:transparent;border:0;margin:0;padding:0}
:where(.u24-top,.u24-rail,.u24-phone,.u24-dialog) :where(a){text-decoration:none}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2')}
@font-face{font-family:"PJS Fallback Segoe";font-weight:700;src:local("Segoe UI Bold"),local("SegoeUI-Bold");size-adjust:106.13%;ascent-override:97.80%;descent-override:20.92%;line-gap-override:0%}
@font-face{font-family:"PJS Fallback Arial";font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:103.09%;ascent-override:100.69%;descent-override:21.53%;line-gap-override:0%}
.u24-top .u24-brand{font-family:"Plus Jakarta Sans","PJS Fallback Segoe","PJS Fallback Arial","Segoe UI",system-ui,sans-serif;font-weight:700;font-size:23.75px;letter-spacing:-.4px;gap:0}
.u24-top .u24-brand img{display:none}
.u24-top .u24-brand b{font-weight:inherit;color:#2592BD}.u24-top .u24-brand i{font-style:normal;margin-right:-1.5px}
:root[data-theme=light] .u24-top .u24-brand b{color:#1C6E8E}
.u24-top .u24-brand::after{content:"";display:inline-block;flex:none;width:42px;height:42px;margin-left:1.95px;position:relative;top:-10.18px;transform:translate(0,0.36px);background:url('assets/workbench/10kgenie-lamp.svg') center/contain no-repeat}
@media(max-width:860px){.u24-top .u24-brand{font-size:19.75px}.u24-top .u24-brand::after{width:33px;height:33px;margin-left:2.91px;top:-7.85px;transform:translate(-.25px,0.12px)}}
/* === u24:reset end === */
/* === u24:style begin === */
body.u24{display:block!important;visibility:visible;margin:0;padding:0;background:var(--color-bg);color:var(--color-text)}
.u24 [hidden]{display:none!important}.u24 .u24-legacy,.u24 .primary-tabs,.u24 .wb-view-picker,.u24 .mb-chips,.u24 .u24-old-header,.u24 .lead,.u24 .tkg-acct,.u24 .tkg-company-actions{display:none!important}
.u24 .lay{display:block;min-height:0;margin-left:0!important;width:100%}.u24 .wb-breadcrumb{display:none}.u24 .u24-main{margin:0 0 0 212px!important;padding:26px 28px 60px!important;max-width:none!important;min-width:0;width:auto!important}
.u24-top{height:68px;display:flex;align-items:center;gap:24px;padding:12px 24px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:relative;z-index:40}
.u24-brand{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:600;color:var(--color-text);min-width:164px}.u24-brand img{width:28px;height:28px}
.u24-search{position:relative;display:flex;align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-bg);width:min(580px,60%);padding:0 10px}
.u24-search input{min-width:0;width:100%;height:40px;font-size:13px}.u24-search button{min-width:32px;min-height:36px}.u24-search .ac{top:100%}
.u24-account{margin-left:auto;border:1px solid var(--color-border);border-radius:5px;padding:8px 13px;white-space:nowrap}
.u24-rail{position:absolute;left:0;top:68px;width:212px;min-height:calc(100vh - 68px);padding:14px 12px 28px;border-right:1px solid var(--color-border);background:var(--color-surface)}
.u24-rail a,.u24-rail button,.u24-dialog nav>a,.u24-dialog .u24-tools a,.u24-dialog .u24-tools button,.u24-my a{display:flex;gap:10px;align-items:center;padding:8px 9px;color:var(--color-text-secondary);min-height:36px;text-align:left;width:100%;border-radius:4px;text-decoration:none;font-size:13px}
.u24-rail a:hover,.u24-rail a[aria-current=page],.u24-chips a[aria-current=page]{background:var(--color-surface-raised);color:var(--color-accent)}
.u24-subnav{margin:0 0 8px 19px;border-left:1px solid var(--color-border);padding-left:7px}.u24-subnav a{font-size:12px;padding:5px 8px}
.u24-chip{border:1px solid var(--color-border);padding:10px;margin:10px 5px 15px;border-radius:5px}.u24-chip b,.u24-chip span{display:block}.u24-chip b{font-size:15px}.u24-chip span{font-size:11px;color:var(--color-text-muted);margin-top:3px}
.u24-label{font-size:10px;letter-spacing:.08em;color:var(--color-text-muted);margin:15px 9px 5px}.u24-tools{border-top:1px solid var(--color-border);margin-top:15px;padding-top:8px}
.u24 .u24-title{font:600 19px/1.4 "Segoe UI",sans-serif;margin:22px 0 10px}.u24-context{margin:0 0 15px}.u24-summary,.u24-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.u24-card{border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);padding:16px;min-width:0;display:flex;flex-direction:column;gap:9px;scroll-margin:24px}
.u24-card h3{display:flex;gap:8px;align-items:center;font:600 12px/1.5 "Segoe UI",sans-serif;color:var(--color-accent);margin:0}
.u24-card .u24-value{font:25px/1.25 Georgia,serif;overflow-wrap:anywhere;margin:0}.u24-card .u24-missing{font:14px/1.5 "Segoe UI",sans-serif;color:var(--color-text-muted)}
.u24-detail,.u24-chart-note{font-size:11.5px;color:var(--color-text-muted);line-height:1.5;margin:0}.u24-spark{width:100%;height:54px;color:var(--color-accent);margin:4px 0}
.u24-links{border-top:1px solid var(--color-border);padding-top:10px;margin-top:auto;display:flex;flex-wrap:wrap;gap:7px 12px;font-size:12px}.u24-links a{line-height:1.5}.u24-grid .u24-card{min-height:267px}
.u24-focus{outline:2px solid var(--color-accent);outline-offset:2px}.u24-summary .u24-card{min-height:165px}.u24-summary .u24-spark{height:35px}
.u24-chips{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 9px}.u24-chips a{font-size:12px;padding:6px 11px;border-radius:16px;border:1px solid var(--color-border);color:var(--color-text)}
.u24-source{color:var(--color-text-muted);font-size:11px;margin:10px 0}.u24-skeleton{height:18px;width:90%;background:var(--color-surface-raised);border-radius:3px;margin:9px 0;animation:u24-pulse .8s alternate infinite}.u24-skeleton:nth-child(2){height:32px;width:70%}@keyframes u24-pulse{to{opacity:.35}}
.u24-unavailable{padding:20px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-surface)}.u24-unavailable p{margin:10px 0;color:var(--color-text-muted)}
.u24[data-u24-accounts=off] .tkg-co-actions{display:none!important}.u24-phone{display:none}.u24-dialog{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:20px;max-width:500px;width:calc(100% - 28px);max-height:85vh;overflow:auto;margin:auto}.u24-dialog::backdrop{background:#0009}.u24-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px}.u24-dialog-head h2{font-size:18px}.u24-dialog-head button{min-height:44px}
.u24[data-u24-area=overview] #viewrow{display:none!important}.u24 #coName{font-size:26px}.u24 .wb-intro{max-width:850px}.u24 .wb-discover{max-width:1000px}.u24 .wb-source-footer{margin-top:30px}
@media(min-width:861px) and (max-width:1199px){.u24-grid,.u24-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){
 .u24-top{height:auto;min-height:108px;padding:11px 14px;gap:9px;flex-wrap:wrap}.u24-brand{min-width:0;font-size:19px}.u24-brand img{width:25px;height:25px}.u24-account{font-size:12px;min-height:38px}.u24-search{order:3;width:100%;max-width:none}.u24-search input{font-size:16px;height:38px}
 .u24-rail{display:none}.u24 .u24-main{margin:0!important;padding:18px 16px 95px!important}.u24-grid,.u24-summary{grid-template-columns:1fr}.u24-grid .u24-card{min-height:0}.u24-summary .u24-card{min-height:140px}.u24-card{padding:15px}.u24-card .u24-value{font-size:25px}.u24-card .u24-missing{font-size:14px}.u24-links a{min-height:30px;padding-top:4px}.u24-chips a{min-height:40px;display:flex;align-items:center}
 .u24-phone{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:45;background:var(--color-surface);border-top:1px solid var(--color-border);padding:5px 5px max(7px,env(safe-area-inset-bottom));justify-content:space-around;gap:2px}.u24-phone a,.u24-phone button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;min-width:54px;font-size:11px;color:var(--color-text-secondary);text-decoration:none;padding:3px}
 .u24 #coName{font-size:23px}.u24 #coSub{font-size:10px}.u24 .mk-strip{max-width:100%;flex-wrap:wrap}.u24 .u24-dialog nav a,.u24 .u24-dialog nav button{min-height:44px}.u24 .wb-intro h1{font-size:29px}.u24 .u24-source{line-height:1.5}
}
@media(prefers-reduced-motion:reduce){.u24-skeleton{animation:none}}

/* === u30:overview begin === */
/* Shared U29 row names. All overrides stay inside U30 containers. */
.u24 .u30-overview{container-type:inline-size;width:100%;max-width:none}
.u24 .u30-facts{column-count:2;column-gap:28px;column-fill:balance}
.u24 .u30-group{display:inline-block;vertical-align:top;break-inside:avoid;width:100%;min-width:0;margin:0 0 14px;padding:0;border:0;background:none;scroll-margin:24px}
.u24 .u30-group h3{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 3px;font:600 12px/1.5 "Segoe UI",sans-serif;color:var(--color-accent)}
.u24 .u30-group h3 a{font-size:11px;font-weight:400;white-space:nowrap}
.u24 .u30-overview .km-list.kv-table{display:block;list-style:none;margin:0;padding:0;width:100%;max-width:none}
.u24 .u30-overview .kv-table>.km-row{display:block;margin:0;padding:4px 0;min-width:0;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:none}
.u24 .u30-overview .km-row>.km-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;margin:0}
.u24 .u30-overview .km-head>.km-label{flex:0 1 auto;min-width:0;color:var(--color-text-secondary);font:400 13px/1.4 "Segoe UI",sans-serif}
.u24 .u30-overview .km-head>.km-value{display:block;flex:0 1 auto;min-width:0;max-width:75%;text-align:right;overflow-wrap:anywhere;font:600 13px/1.4 "Segoe UI",sans-serif;font-variant-numeric:tabular-nums;white-space:normal;color:var(--color-text)}
.u24 .u30-overview .km-value b{font-weight:600}
.u24 .u30-overview .km-value small{display:inline;margin-left:6px;font-size:11px;font-weight:400;color:var(--color-text-muted)}
.u24 .u30-more{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding-top:5px;font-size:11px;line-height:1.5}
.u24 .u30-more>span{color:var(--color-text-muted)}
.u24 .u30-status{margin:0;padding:4px 0;color:var(--color-text-muted);font-size:12px;line-height:1.4}
.u24 .u30-summary{display:flex;flex-wrap:wrap;gap:4px 0;align-items:baseline;padding:7px 0;margin:0 0 8px;border:0;background:none;box-shadow:none;color:var(--color-text-secondary);font:400 13px/1.45 "Segoe UI",sans-serif}
.u24 .u30-summary>span{padding:0 12px;border-left:1px solid var(--color-rule);min-width:0;overflow-wrap:anywhere}
.u24 .u30-summary>span:first-child{padding-left:0;border-left:0}
.u24 .u30-summary b{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}
.u24 .u30-summary .u30-short-label{display:none}
.u24 .u30-summary:empty,.u24 .u30-summary[hidden]{display:none}
.u24 .u30-summary{width:100%;box-sizing:border-box}
.u24 .u30-summary>span{max-width:100%;box-sizing:border-box}
.u24 .u30-summary+.u24-chips{margin-top:4px}
.u24 .u30-summary .u30-period{font-size:11px;font-weight:400;color:var(--color-text-muted)}
@container (min-width:1180px){.u24 .u30-facts{column-count:3}}
@media (max-width:760px),((max-width:950px) and (max-height:500px) and (pointer:coarse)){
 .u24 .u30-facts{column-count:1}
 .u24 .u30-group{margin-bottom:12px}
 .u24 .u30-group h3 a,.u24 .u30-more a{display:inline-flex;align-items:center;min-height:32px;box-sizing:border-box}
 .u24 .u30-group h3{margin-bottom:8px;align-items:center}
 .u24 .u30-more{gap:8px 10px;padding-top:8px;align-items:center}
 .u24 .u30-summary{font-size:11px;gap:4px 0}
 .u24 .u30-summary>span{padding:0 5px}
 .u24 .u30-summary .u30-full-label{display:none}
 .u24 .u30-summary .u30-short-label{display:inline}
 .u24 .u30-business{display:block}
 .u24 .u30-business>span{display:inline}
 .u24 .u30-business .u30-period{white-space:nowrap}
}
/* === u30:overview end === */
/* U28 navigation rules. Existing data and overview rules remain unchanged. */
html:has(body.u24){scrollbar-gutter:stable}
.u28-compat[hidden]{display:none!important}
.u28-fallback{display:grid;gap:7px}
.u28-fallback>a{display:flex;align-items:center;gap:18px;min-height:51px;padding:12px 16px;border-radius:5px;text-decoration:none;color:var(--color-text);font-size:17px}
.u28-fallback>a:hover{background:var(--color-surface-raised)}
.u28-account-menu{position:absolute;right:24px;top:calc(100% - 8px);z-index:60;width:200px;padding:6px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.u28-account-menu[hidden]{display:none}
.u28-account-menu [role=menuitem]{display:block;width:100%;padding:8px;text-align:left;border:0;border-radius:4px;background:none;color:var(--color-text);font:inherit;font-size:14px;text-decoration:none;cursor:pointer}
.u28-account-menu [role=menuitem]:hover,.u28-account-menu [role=menuitem]:focus{background:var(--color-surface);outline:2px solid var(--color-focus);outline-offset:-2px}
.u24-account{flex:0 0 96px;width:96px}
.u28-fixed [data-u28-item=workspace]{white-space:nowrap}
@media(max-width:860px){
 .u24-phone>a,.u24-phone>button{flex:1 1 0;min-width:0;gap:4px;text-align:center;line-height:1.2;white-space:normal;overflow-wrap:normal}
 .u24-phone .wb-icon{flex:none;width:20px;height:20px}
 .u28-account-menu{right:14px;top:50px}
}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
 .u28-fallback{position:fixed;inset:auto 0 0;z-index:50;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;background:var(--color-surface);border-top:1px solid var(--color-rule);padding:5px 4px calc(5px + env(safe-area-inset-bottom))}
 .u28-fallback>a{display:flex;flex-direction:column;gap:4px;justify-content:center;min-height:55px;padding:5px 2px;font-size:11px;text-align:center}
 .u28-fallback .wb-icon{width:20px;height:20px}
}
/* === u24:style end === */
/* === u30:mk begin === */
/* Price-lane fact sheets. Every selector requires the class added by this package. */
#pane .r-cards.kv-mk-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;width:100%;min-width:0;padding:0;margin:0 0 12px}
#pane .kv-mk-table>.r-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);align-content:start;align-items:baseline;gap:2px 8px;min-width:0;min-height:0;padding:7px 0;border:0;border-top:1px solid var(--color-rule);border-radius:0;background:none;box-shadow:none;font-size:11px;line-height:1.35;color:var(--color-text-muted)}
#pane .kv-mk-table>.r-card>.r-label{float:none;grid-column:1;grid-row:1;min-width:0;margin:0;font-size:13px;line-height:1.35;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--color-text);white-space:normal;overflow-wrap:anywhere}
#pane .kv-mk-table>.r-card>.r-value{grid-column:2;grid-row:1;min-width:0;margin:0;text-align:right;font-family:inherit;font-size:14px;line-height:1.35;color:var(--color-text);white-space:normal;overflow-wrap:anywhere}
#pane .kv-mk-table>.r-card>:not(.r-label):not(.r-value){grid-column:1/-1;min-width:0;margin:0;font-size:11px;line-height:1.35}
#pane .kv-mk-table>.r-card .r-muted,#pane .kv-mk-table>.r-card .km-reason,#pane .kv-mk-table>.r-card .mk-eq{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;max-height:none;-webkit-line-clamp:unset}
@media(max-width:760px){#pane .r-cards.kv-mk-table{grid-template-columns:minmax(0,1fr)}}
#pane .kv-mk-table>.r-card>.r-value.kv-neg:not(.kv-dd),#pane .kv-mk-returns .kv-neg{color:var(--color-danger)}
#pane .kv-mk-table>.r-card>.r-value.kv-pos,#pane .kv-mk-returns .kv-pos{color:var(--color-positive)}
#pane .kv-mk-table>.r-card>.r-value.kv-dd.kv-neg{color:var(--color-danger)}
/* === u30:mk end === */
/* === u30:topicks begin === */
/* U30 part 2 (owner, Oct 13: "yes, all tiles to fact-sheet style"). Top Picks KPI groups as fact-sheet rows: fi:moves
   (.fi-mv-kpis), fi:flowprice (.fi-fp-value) and dd:pane (.dd-kpis) in research-ui.js. Markup is the shared kv-table row
   (ul.km-list.kv-table > li.km-row > div.km-head > span.km-label + span.km-value). Every rule is scoped under .u30-tp
   or .u30-tp-wrap, so the U29 kv-table rules and other km-* users do not change. The wrapper div keeps the list from
   being a direct child of .r-panel. Type sizes follow u30:part2 (label 13 px, value 14 px bold, notes 11 px). Label left,
   value right, hairline dividers, no boxes. Values wrap instead of scrolling sideways. Tokens only. */
.u30-tp-wrap{min-width:0;max-width:100%;margin:12px 0 0}
.r-panel>.u30-tp-wrap{margin:12px}
.u30-tp.km-list.kv-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;width:100%;max-width:none;margin:0;padding:0;list-style:none}
/* A one-row group (.u30-tp-one, Value at Last Close) keeps the two-column grid, so its label and value stay close. */
.u30-tp.kv-table>.km-row{display:block;min-width:0;margin:0;padding:7px 0;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:none;box-shadow:none}
.u30-tp.kv-table>.km-row>.km-head{display:flex;flex-wrap:nowrap;align-items:baseline;justify-content:space-between;gap:4px 12px;min-width:0;margin:0}
.u30-tp.kv-table>.km-row>.km-head>.km-label{flex:0 1 auto;min-width:0;font-size:13px;font-weight:400;line-height:1.35;color:var(--color-text);overflow-wrap:anywhere}
.u30-tp.kv-table>.km-row>.km-head>.km-value{flex:0 1 auto;min-width:0;max-width:65%;text-align:right;font-family:inherit;font-size:14px;font-weight:700;line-height:1.35;color:var(--color-text);font-variant-numeric:tabular-nums;white-space:normal;overflow-wrap:anywhere}
.u30-tp.kv-table>.km-row>.u30-tp-note{margin:2px 0 0;max-width:none;font-size:11px;line-height:1.35;color:var(--color-text-muted);overflow-wrap:anywhere}
.u30-tp.kv-table>.km-row>.r-kpi-link{margin:4px 0 0;font-size:11px;color:var(--color-text-muted)}
.u30-tp.kv-table>.km-row>.r-kpi-link .r-badge{margin:0;white-space:normal}
/* Sign colours (owner, Oct 13, "colors yes"; u30-mk r2 rule): only the value of a signed change. Theme tokens only. */
.u30-tp.kv-table>.km-row>.km-head>.km-value.kv-neg{color:var(--color-danger)}
.u30-tp.kv-table>.km-row>.km-head>.km-value.kv-pos{color:var(--color-positive)}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .r-panel>.u30-tp-wrap,.r-panel>.u30-tp-wrap{margin:10px}
  .u30-tp.km-list.kv-table{grid-template-columns:minmax(0,1fr)}
  .u30-tp.kv-table>.km-row{padding:8px 0}
  .u30-tp.kv-table>.km-row>.km-head>.km-label{flex:0 1 auto;font-size:12px}
  .u30-tp.kv-table>.km-row>.km-head>.km-value{min-width:0;max-width:60%;text-align:right}
}
/* === u30:topicks end === */
/* === u28:r3 begin === */
.u24-search.u28-attn{outline:2px solid var(--color-accent, #2f80c0);outline-offset:3px;box-shadow:0 0 12px 1px var(--color-accent, #2f80c0);animation:u28-search-pulse .6s ease-out 2}
@keyframes u28-search-pulse{50%{box-shadow:0 0 3px 0 var(--color-accent, #2f80c0)}}
.u28-company-label{font-size:10px;letter-spacing:.08em;color:var(--color-text-muted);margin:15px 9px 5px}
.u28-company-chip{border:1px solid var(--color-border);padding:10px;margin:10px 5px 15px;border-radius:5px;overflow-wrap:anywhere}
.u28-company-chip b,.u28-company-chip span{display:block}.u28-company-chip b{font-size:15px}.u28-company-chip span{font-size:11px;color:var(--color-text-muted);margin-top:3px}
.u28-company-hint{font-size:10px;line-height:1.4;letter-spacing:-.02em;white-space:nowrap;color:var(--color-text-muted);margin:8px 0 10px}
@media(prefers-reduced-motion:reduce){.u24-search.u28-attn{animation:none}}
/* === u28:r3 end === */
/* === u24:16 begin === */
.wb-source-footer>.u24-tiingo,.wb-source-footer>.u24-tiingo a,.disclaimer.u24-tiingo,.disclaimer.u24-tiingo a{color:var(--color-text-muted)}
/* === u24:16 end === */
/* === b17:rail begin === */
/* B17 (R&UI 2026-10-16): the rail is absolute with a fixed min-height, so its background ended one screen down on long pages.
   Paint the same rail colour and border as a body background stripe, so it runs to the page bottom. No layout change. */
@media(min-width:861px){body.u24{background-image:linear-gradient(to right,var(--color-surface) 0,var(--color-surface) 211px,var(--color-border) 211px,var(--color-border) 212px,transparent 212px)}}
/* === b17:rail end === */

/* === u30:tables begin === */
/* Keep the label paint above period headers and values. Separate borders keep
   the right rule attached to the sticky cell in Chromium. */
.cscroll table{border-collapse:separate;border-spacing:0}
.cscroll td:first-child,
.cscroll tbody tr:not(.sec)>th:first-child,
.cscroll thead th:first-child{
  position:sticky;left:0;background:var(--color-surface);
  border-right:1px solid var(--color-rule);z-index:3;
  box-shadow:none;
}
.cscroll thead th{z-index:2}
.cscroll thead th:first-child{z-index:4}
/* A colspan cell cannot stick as a whole: it is as wide as its table.
   Pin its existing inner element. Keep that element within the label width,
   so a shorter table still has room for it at the shared maximum offset. */
.cscroll tr.sec>th:first-child{
  position:static;background:var(--color-surface);border-right:0;
  box-shadow:none;z-index:auto;padding-left:0;
}
.cscroll tr.sec>th>.secrow{
  position:sticky;left:8px;display:flex;flex-wrap:wrap;
  width:calc(var(--cfirst) - 16px);max-width:calc(100% - 16px);
  white-space:normal;gap:4px 12px;background:var(--color-surface);
}
.cscroll .secrow>span:first-child{min-width:0;overflow-wrap:anywhere}
.cscroll .secrow .chartact{margin-left:0;flex:none}
body.wb-company .cscroll tbody tr:not(.sec)>th:first-child,
body.wb-company .cscroll td:first-child{box-shadow:none}
/* === u30:tables end === */
/* === dd:cards begin === */
/* Reuse the Debt panel and table classes. Values use the fact-sheet font and neutral colours. */
.dd-ext-root,.dd-cov-root{display:block;min-width:0;max-width:100%;width:100%;box-sizing:border-box}
.dd-cov-root:empty{display:none}
.r-panel.dd-sheet{min-width:0;max-width:100%;width:100%;box-sizing:border-box;margin:16px 0 0;border:1px solid var(--color-rule);border-radius:8px;background:var(--color-surface);color:var(--color-text)}
.dd-sheet,.dd-sheet *{box-sizing:border-box;font-family:"Segoe UI",sans-serif}
.dd-sheet .r-panel-head,#pane .dd-sheet .r-panel-head{padding:12px;min-width:0}
.dd-sheet .r-panel-head h3{margin:0;font:600 15px/1.4 "Segoe UI",sans-serif;color:var(--color-text)}
.dd-sheet-body{padding:0 12px 12px;min-width:0;max-width:100%}
.dd-visible{min-width:0;max-width:100%}
.dd-sheet .dd-note,.dd-ext-root>.dd-note{margin:6px 0;color:var(--color-text-muted);font:400 12px/1.5 "Segoe UI",sans-serif;overflow-wrap:anywhere}
.dd-sheet .r-chart-data{margin-top:10px;min-width:0;max-width:100%}
.dd-sheet .r-chart-data>summary{white-space:normal;overflow-wrap:anywhere}
.dd-sheet a{color:var(--color-accent);overflow-wrap:anywhere}
.dd-sheet blockquote,.dd-sheet details p{margin:8px 0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.dd-sheet .r-table-scroll,#pane .r-panel.dd-sheet .r-table-scroll{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;border:0}
.dd-sheet .r-table,#pane .dd-sheet .r-table{display:table;width:100%;min-width:520px!important;max-width:none;border-collapse:collapse;table-layout:auto;font:400 13px/1.4 "Segoe UI",sans-serif}
.dd-sheet .r-table caption,#pane .dd-sheet .r-table caption{display:table-caption;caption-side:top;text-align:left;padding:4px 0 6px;color:var(--color-text-secondary);font:400 12px/1.5 "Segoe UI",sans-serif;white-space:normal}
.dd-sheet .r-table thead,#pane .dd-sheet .r-table thead{display:table-header-group;position:static;width:auto;height:auto;margin:0;padding:0;overflow:visible;clip:auto;clip-path:none;white-space:normal}
.dd-sheet .r-table tbody,#pane .dd-sheet .r-table tbody{display:table-row-group;width:auto}
.dd-sheet .r-table tr,#pane .dd-sheet .r-table tr{display:table-row;width:auto;padding:0;border:0}
.dd-sheet .r-table th,.dd-sheet .r-table td,#pane .dd-sheet .r-table th,#pane .dd-sheet .r-table td{display:table-cell;width:auto;padding:6px 8px!important;border:0;border-bottom:1px solid var(--color-rule);vertical-align:top;white-space:nowrap;text-align:right;font:400 13px/1.4 "Segoe UI",sans-serif;color:var(--color-text);font-variant-numeric:tabular-nums}
.dd-sheet .r-table th,#pane .dd-sheet .r-table th{color:var(--color-text-secondary);font-weight:600}
.dd-sheet .r-table th:first-child,.dd-sheet .r-table td:first-child,#pane .dd-sheet .r-table th:first-child,#pane .dd-sheet .r-table td:first-child{text-align:left;padding-left:0!important;color:var(--color-text-secondary);font-weight:400}
.dd-sheet .r-table td::before,#pane .dd-sheet .r-table td::before{display:none;content:none}
.dd-sheet .dd-text-table .r-table td,#pane .dd-sheet .dd-text-table .r-table td{text-align:left}
.dd-sheet .dd-text-table .r-table td:nth-child(2),#pane .dd-sheet .dd-text-table .r-table td:nth-child(2){min-width:24ch;max-width:70ch;white-space:normal;overflow-wrap:anywhere}
.dd-sheet details .r-table td,#pane .dd-sheet details .r-table td{min-width:10ch;max-width:48ch;white-space:normal;overflow-wrap:anywhere;text-align:left}
.dd-sheet code{font:400 12px/1.5 "Segoe UI",sans-serif;color:var(--color-text-secondary)}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  .r-panel.dd-sheet{margin-top:12px}
  .dd-sheet .r-panel-head,#pane .dd-sheet .r-panel-head{padding:10px}
  .dd-sheet-body{padding:0 10px 10px}
  .dd-sheet a{display:inline-flex;align-items:center;min-height:32px}
  /* r2.1 (Claude): on the phone the values stay in view. The label column wraps and the period columns keep their width. */
  .dd-sheet .r-table,#pane .dd-sheet .r-table{min-width:0!important}
  .dd-sheet .r-table th,.dd-sheet .r-table td,#pane .dd-sheet .r-table th,#pane .dd-sheet .r-table td{padding:6px 4px!important}
  .dd-sheet .r-table th:first-child,.dd-sheet .r-table td:first-child,#pane .dd-sheet .r-table th:first-child,#pane .dd-sheet .r-table td:first-child{white-space:normal;overflow-wrap:anywhere;min-width:12ch}
  /* r2.1 (Claude): excerpt tables stack, one cell under the other, so the excerpt uses the full panel width. */
  .dd-sheet .dd-text-table .r-table,.dd-sheet .dd-text-table .r-table tbody,.dd-sheet .dd-text-table .r-table tr,
  #pane .dd-sheet .dd-text-table .r-table,#pane .dd-sheet .dd-text-table .r-table tbody,#pane .dd-sheet .dd-text-table .r-table tr{display:block;width:auto}
  .dd-sheet .dd-text-table .r-table thead,#pane .dd-sheet .dd-text-table .r-table thead{display:none}
  .dd-sheet .dd-text-table .r-table caption,#pane .dd-sheet .dd-text-table .r-table caption{display:block;width:auto}
  .dd-sheet .dd-text-table .r-table td,#pane .dd-sheet .dd-text-table .r-table td{display:block;width:auto;min-width:0;max-width:none;padding:4px 0!important;border:0;white-space:normal;text-align:left}
  .dd-sheet .dd-text-table .r-table td:nth-child(2),#pane .dd-sheet .dd-text-table .r-table td:nth-child(2){min-width:0;max-width:none}
  .dd-sheet .dd-text-table .r-table tr,#pane .dd-sheet .dd-text-table .r-table tr{border-bottom:1px solid var(--color-rule);padding:4px 0}
}
/* === dd:cards end === */
/* === u30:part2 begin === */
/* U30 part 2: full-width fact sheets. Scope is limited to the five marked renderers. */
#pane .research-view:has(>.u30-part2-table){container-type:inline-size}
#pane .u30-part2-table.kv-table{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;
  width:100%;max-width:none;margin:16px 0 0;padding:0;
  border:0;border-radius:0;background:none;box-shadow:none;
}
#pane .u30-part2-table.kv-table>.r-card,
#pane .u30-part2-table.kv-table>.wbc-kpi{
  display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:none;
  align-items:baseline;align-content:start;gap:2px 8px;min-width:0;min-height:0;
  margin:0;padding:7px 0;border:0;border-bottom:1px solid var(--color-rule);
  border-radius:0;background:none;box-shadow:none;
}
#pane .u30-part2-table.kv-table>article>.r-label{
  grid-area:auto;grid-column:1;grid-row:1;margin:0;min-width:0;
  font-family:inherit;font-size:13px;font-weight:400;line-height:1.35;
  letter-spacing:normal;text-transform:none;color:var(--color-text);
}
#pane .u30-part2-table.kv-table>article>.r-value{
  grid-area:auto;grid-column:2;grid-row:1;margin:0;min-width:0;
  font-family:inherit;font-size:14px;font-weight:700;line-height:1.35;
  text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;
}
#pane .u30-part2-table.kv-table>article>.r-muted,
#pane .u30-part2-table.kv-table>article>.r-kpi-link,
#pane .u30-part2-table.kv-table>article>.wbc-kpi-d{
  grid-area:auto;grid-column:1/-1;margin:0;font-size:11px;line-height:1.35;
  color:var(--color-text-muted);overflow-wrap:anywhere;
}
#pane .u30-part2-table.kv-table>.wbc-kpi{
  grid-template-columns:minmax(0,1fr) auto;
}
#pane .u30-part2-table.kv-table>.wbc-kpi>.r-value{grid-column:2}
#pane .u30-part2-table.kv-table>.wbc-kpi>.r-label{font-size:12px}
#pane .u30-part2-table.kv-table>.wbc-kpi>.wbc-kpi-d{grid-column:1;grid-row:2}
#pane .u30-part2-table.kv-table>.wbc-kpi>.wbc-kpi-s{
  grid-area:auto;grid-column:2;grid-row:2;align-self:center;justify-self:end;margin:0;line-height:0;
}
#pane .u30-part2-table.kv-table .wbc-kpi-s svg{width:54px;height:18px}
@container (min-width:1200px){
  #pane .u30-part2-table.kv-table{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@container (min-width:1000px){
  #pane .u30-part2-table.kv-table.wbc-strip{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:16px}
}
@media(max-width:760px),(max-width:950px) and (max-height:500px) and (pointer:coarse){
  #pane .u30-part2-table.kv-table{grid-template-columns:minmax(0,1fr);gap:0}
  #pane .u30-part2-table.kv-table>article>.r-label{font-size:12px}
}
/* === u30:part2 end === */
/* === u38:intl begin === */
/* U38 r4 + U39 + U40 r1 (R&UI 2026-10-17, U40 2026-10-18): Market today groups, each in its own container (owner chose mockup C4,
   APPROVALS.md lines 15-16). Muted green and red cells, three steps each. The heat scale key is removed. The rate row has no heat
   colour: a higher or lower yield is not good or bad by itself. The figure is a size container, so the layout follows the width
   of the home column, not the window: three columns from 820 px, two balanced columns from 560 px, one column in data order below.
   U40 r4: the u38:intl JS block puts the containers in 3, 2 or 1 stacks (data-cols on .u40-grid) by the section width.
   U40 r3 (owner, APPROVALS.md lines 20-21, "remove this entire section"): the whole home intro is removed from view: the heading
   "Ask the SEC filings.", the subtitle, the counts line (#sh-stats) and the Screen and Compare landing links. Compare stays in
   the side menu, on company pages and in Help. The .wb-intro section stays in the page, because other blocks write into it
   (sc-entry, cf-entry, u23p2 stats, the hidden search nodes). The h1 stays for screen readers as the only h1 of the home page
   and the label of .wb-intro. The u38:intl JS block sets its text. */
.wb-landing>.wb-intro{margin:0;padding:0}
.wb-landing>.wb-intro>#search-title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.wb-landing>.wb-intro>:not(#search-title){display:none!important}
.mh-root.u40-top{margin-top:0;padding-top:0;border-top:0}
.mh-root .mt-matrix{container-type:inline-size;min-width:0;margin:0 0 24px}
.mh-root .mt-in{--mt-value:68px;
  --mt-gain-1:#133528;--mt-gain-2:#1b4a36;--mt-gain-3:#246146;--mt-loss-1:#3b2023;--mt-loss-2:#542a2e;--mt-loss-3:#6e353a;
  font-size:14px;line-height:1.45;color:var(--color-text)}
:root[data-theme=light] .mh-root .mt-in{--mt-gain-1:#e2f1e7;--mt-gain-2:#c2e3cd;--mt-gain-3:#9dcfae;--mt-loss-1:#f7e4e4;--mt-loss-2:#eec6c6;--mt-loss-3:#e2a3a3}
/* U40: Market today sits directly after the search intro. */
.u40-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.u40-grid[data-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.u40-grid[data-cols="1"]{grid-template-columns:minmax(0,1fr)}
.u40-stack{display:grid;gap:12px;align-content:start;min-width:0}
.u40-card{min-width:0;border:1px solid var(--color-rule);border-radius:3px;background:var(--color-surface-raised);overflow:hidden}
.mh-root .u40-card .mt-group-title{margin:0;padding:8px 11px 4px;font-size:14px;line-height:20px;font-weight:600}
.u40-note{margin:-2px 0 0;padding:0 11px 4px;color:var(--color-text-secondary);font-size:11.5px;line-height:16px}
.mt-table{width:100%;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums}
.mt-table col.mt-vcol{width:var(--mt-value)}
.mt-table thead th{height:18px;padding:0 8px 3px;border-bottom:1px solid var(--color-rule);color:var(--color-text-muted);font-size:11px;font-weight:500;line-height:14px;text-align:right}
.mt-table thead th:first-child{padding-left:11px;text-align:left}
.mt-table tbody th{height:34px;padding:3px 8px 3px 11px;border-bottom:1px solid var(--color-rule);text-align:left;font-weight:400;vertical-align:middle}
.mt-table tbody tr:last-child th,.mt-table tbody tr:last-child td{border-bottom:0}
.mt-id{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;column-gap:6px}
.mt-symbol{font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:600;line-height:14px}
.mt-label{color:var(--color-text-secondary);font-size:12px;line-height:15px;overflow-wrap:anywhere}
.mt-cell{padding:0;border-left:2px solid var(--color-surface-raised);border-bottom:1px solid var(--color-surface-raised);text-align:right;vertical-align:middle}
.mt-v{display:block;padding:8px 8px;color:var(--color-text);font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:16px;font-weight:500;white-space:nowrap}
.mt-gain-1{background:var(--mt-gain-1)}.mt-gain-2{background:var(--mt-gain-2)}.mt-gain-3{background:var(--mt-gain-3)}
.mt-loss-1{background:var(--mt-loss-1)}.mt-loss-2{background:var(--mt-loss-2)}.mt-loss-3{background:var(--mt-loss-3)}
.mt-flat{background:var(--color-surface-raised)}
/* The heat colour fills the whole cell, also when a long label makes the row taller. */
@supports selector(:has(a)){
  .mt-cell:has(>.mt-gain-1){background:var(--mt-gain-1)}.mt-cell:has(>.mt-gain-2){background:var(--mt-gain-2)}.mt-cell:has(>.mt-gain-3){background:var(--mt-gain-3)}
  .mt-cell:has(>.mt-loss-1){background:var(--mt-loss-1)}.mt-cell:has(>.mt-loss-2){background:var(--mt-loss-2)}.mt-cell:has(>.mt-loss-3){background:var(--mt-loss-3)}}
.mt-v.mt-missing{background:var(--color-surface);color:var(--color-text-muted);font-family:var(--wb-font);font-size:11px;font-weight:400;padding-inline:4px;white-space:normal}
.mt-v.mt-rate{background:transparent}
.mt-rate-id{display:flex;flex-direction:column;gap:1px}
.mt-rate-level{font-family:ui-monospace,Consolas,monospace;font-size:14px;font-weight:600;line-height:18px;white-space:nowrap}
.mt-rate-label{color:var(--color-text-secondary);font-size:12px;line-height:15px}
.mt-source{margin:0;padding:4px 11px 6px;border-top:1px solid var(--color-rule);color:var(--color-text-muted);font-size:11px;line-height:16px}
.mh-root .mt-caption{display:grid;gap:2px;padding-top:10px;color:var(--color-text-muted);font-size:11px;line-height:1.6}
.mt-caption p{margin:0}
@container (max-width:420px){
  .mh-root .mt-in{--mt-value:72px}
  .mt-id{grid-template-columns:minmax(0,1fr);row-gap:1px}
  .mt-table tbody th{height:auto;padding:6px 8px 6px 10px}
  .mt-label{font-size:11.5px;line-height:14px}
  .mh-root .mt-caption{display:block}
  .mt-caption p+p{margin-top:3px}}
/* === u38:intl end === */
/* === u41:breadth begin === */
/* U41 r1 (R&UI 2026-10-18): Market breadth as one container in the U40 style, mockup B3 "Single headline figure" (owner,
   APPROVALS.md line 25). The section is a size container: the 5 cells go to 2 columns when the section is narrower than 560 px.
   "See all" lists open in place under the cells. */
.mh-breadth.u41{padding:0;border:0;margin:0 0 24px;container-type:inline-size;min-width:0}
.u41-card{min-width:0;border:1px solid var(--color-rule);border-radius:3px;background:var(--color-surface-raised);overflow:hidden;font-size:14px;line-height:1.45;color:var(--color-text)}
.u41-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:2px 12px;padding:8px 11px 4px}
.mh-root h3.u41-title{margin:0;font-size:14px;line-height:20px;font-weight:600}
.u41-asof{color:var(--color-text-muted);font-size:11.5px}
.mh-root p.u41-sub{margin:0;padding:0 11px 8px;color:var(--color-text-secondary);font-size:12px;line-height:16px;border-bottom:1px solid var(--color-rule)}
.u41-lead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 22px;align-items:center;padding:16px 11px 14px}
.mh-root p.u41-big{margin:0;font:400 64px/1 "Iowan Old Style",Palatino,Georgia,serif;letter-spacing:-1px;color:var(--color-text)}
.u41-big small{font-size:28px}
.mh-root p.u41-say{margin:0;font:400 20px/1.35 "Iowan Old Style",Palatino,Georgia,serif;color:var(--color-text)}
.u41-say .u41-up,.u41-say .u41-dn{font-weight:600}
.mh-root p.u41-cap{margin:4px 0 0;color:var(--color-text-muted);font-size:12px;line-height:16px}
.u41-nw{white-space:nowrap}
.u41-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.u41-up{color:var(--color-positive)}.u41-dn{color:var(--color-danger)}.u41-mu{color:var(--color-text-secondary)}
.u41-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--color-rule)}
.u41-cell{padding:9px 11px 11px;min-width:0}
.u41-cell+.u41-cell{border-left:1px solid var(--color-rule)}
.u41-k{display:block;color:var(--color-text-muted);font-size:11px;line-height:14px}
.u41-v{display:block;margin-top:2px;font:600 18px/24px ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
.mh-root p.u41-tks{margin:4px 0 0;display:flex;flex-wrap:wrap;gap:2px 10px;font-size:12px;line-height:20px}
.mh-root a.u41-tk{color:var(--color-accent);font:600 12px/20px ui-monospace,Consolas,monospace;text-decoration:underline;text-underline-offset:2px}
.u41-more{margin:6px 0 0;padding:3px 9px;font:inherit;font-size:12px;line-height:18px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border,var(--color-rule));border-radius:3px;cursor:pointer}
.u41-more:hover{border-color:var(--color-accent)}
.u41-more:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.u41-all{padding:9px 11px 11px;border-top:1px solid var(--color-rule)}
.mh-root h4.u41-all-title{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:16px;font-weight:600}
.u41-all[hidden]{display:none}
@container (max-width:559px){
  .u41-lead{grid-template-columns:minmax(0,1fr)}.mh-root p.u41-big{font-size:56px}.mh-root p.u41-say{font-size:18px}
  .u41-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .u41-cell:nth-child(odd){border-left:0}.u41-cell:nth-child(n+3){border-top:1px solid var(--color-rule)}.u41-cell:last-child{grid-column:1/-1}
}
/* === u41:breadth end === */
/* === nolegend:caption begin === */
/* Owner request (APPROVALS.md line 34, 2026-10-19 07:29 PT): remove the note under the Market today containers ("Cell colour
   shows the size of the change. Green: gain. Red: loss." and "The Treasury yield has no colour. ..."), with its spacing, at
   every width and theme. The u38:intl figcaption is hidden. It stays in the page as the figure's aria description. */
.mh-root .mt-matrix .mt-caption{display:none!important}
/* === nolegend:caption end === */
/* === u42:live begin === */
/* U42 r5: live stamp dot, the scope note for Market today, and the intraday source label in the page footer. */
.mh-heading > time.u42-live::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;
  background:var(--color-positive);vertical-align:1px}
.mh-root p.u42-note{display:grid;gap:2px;margin:-12px 0 12px;color:var(--color-text-muted);font-size:11px;line-height:1.6}
.mh-root p.u42-note[hidden]{display:none}
.wb-source-footer>.u42-source{color:var(--color-text-muted)}.wb-source-footer>.u42-source[hidden]{display:none}
/* === u42:live end === */
/* === u43:breadth begin === */
/* U43 r2: compact Market breadth container, one third of a new row under the U40 containers. Only for #u43-box / .u43-row. */
.mh-root .u43-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start;margin:12px 0 0}
.mh-root .u43-box{min-width:0}
.u43-box .u43-body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:center;padding:4px 10px 8px}
.u43-box .u43-fig{min-width:0;max-width:112px}
.mh-root .u43-box p.u43-big{margin:0;font:400 42px/1 "Iowan Old Style",Palatino,Georgia,serif;letter-spacing:-1px;color:var(--color-text)}
.u43-box .u43-big small{font-size:22px}
.mh-root .u43-box p.u43-cap{margin:2px 0 0;color:var(--color-text-secondary);font-size:12px;line-height:16px}
.u43-box .u43-t{width:100%;border-collapse:collapse;font-size:12.5px}
.u43-box .u43-t th{font-weight:400;text-align:left;color:var(--color-text-secondary);padding:3px 0;border-bottom:1px solid var(--color-rule);white-space:nowrap}
.u43-box .u43-t td{text-align:right;padding:3px 0 3px 8px;border-bottom:1px solid var(--color-rule);font:600 13px/18px ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
.u43-box .u43-t tr:last-child th,.u43-box .u43-t tr:last-child td{border-bottom:0}
.u43-box .u43-t td.u43-act{padding-left:6px;width:1%;white-space:nowrap}
.u43-box .u43-act button.u41-more{margin:0;padding:0 5px;font-size:11.5px;line-height:17px}
.u43-box .u41-all{margin:0;padding:6px 10px 8px;border-top:1px solid var(--color-rule)}
@media(max-width:1100px){.mh-root .u43-box{grid-column:span 2}}
@media(max-width:760px){.mh-root .u43-row{grid-template-columns:minmax(0,1fr)}.mh-root .u43-box{grid-column:auto}}
/* === u43:breadth end === */
/* === u43:movers begin === */
/* U43 movers r1: Top gainers and Top decliners in one compact card (#u43-mov) next to the breadth container. */
.mh-root .u43-mov{min-width:0;grid-column:span 2}
.u43-mov .mh-movers{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;margin:0;padding:0 10px 4px}
.mh-root .u43-mov .mh-mover-group h3{margin:0;padding:4px 0 2px;font-size:12px;font-weight:400;color:var(--color-text-secondary);border-bottom:1px solid var(--color-rule)}
.u43-mov .mh-mover-list{margin:0}
.u43-mov .mh-mover{min-height:0;padding:3px 0;gap:8px;grid-template-columns:minmax(0,1fr) auto}
.u43-mov .mh-mover .mh-company{flex-direction:row;align-items:baseline;gap:8px;min-width:0;overflow:hidden;white-space:nowrap}
.u43-mov .mh-mover .mh-company strong{font:600 12.5px/18px ui-monospace,Consolas,monospace;flex:none}
.mh-root .u43-mov .mh-mover .mh-company .mh-note{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;margin:0}
.u43-mov .mh-mover .mh-value{font:600 13px/18px ui-monospace,Consolas,monospace}
.mh-root .u43-mov p.u43-movnote{margin:0;padding:4px 10px 8px;color:var(--color-text-muted);font-size:11.5px}
@media(max-width:1100px){.mh-root .u43-mov{grid-column:1/-1}}
@media(max-width:760px){.u43-mov .mh-movers{grid-template-columns:minmax(0,1fr);gap:8px}.mh-root .u43-mov{grid-column:auto}}
/* === u43:movers end === */
/* === u44:index-chart begin === */
/* U44 r1: "US indexes today" card (#u44-box), one chart with 4 lines (SPY, IWM, DIA, QQQ), above International. */
/* U44 r2: no chart and one note line (.u44-note) when fewer than 3 minutes have a value (.u44-few); legend hidden with no value.
   Full-width card above .u40-grid (bottom margin = the grid gap); from 560 px (.u44-wide) the legend is one row of 4. */
.mh-root .u44-box{--u44-spy:#2f6fdb;--u44-iwm:#0f8a7e;--u44-dia:#b86e00;--u44-qqq:#8b4fd8;padding-bottom:10px;min-width:0;margin:0 0 12px}
html[data-theme=dark] .mh-root .u44-box{--u44-spy:#6aa8ff;--u44-iwm:#3fd2c3;--u44-dia:#f5b041;--u44-qqq:#c99bfa}
.mh-root .u44-box[hidden]{display:none}
.mh-root .u44-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-right:11px}
.mh-root .u44-stamp{font-size:11px;color:var(--color-text-muted);white-space:nowrap}
.mh-root .u44-stamp.u44-live::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-positive);margin-right:5px;vertical-align:1px}
.mh-root .u44-sub{margin:0;padding:0 11px 4px;font-size:12px;color:var(--color-text-muted)}
.mh-root .u44-chart{display:block;width:100%;height:auto;touch-action:pan-y}
.mh-root .u44-ax{font-size:10px;fill:var(--color-text-muted)}
.mh-root .u44-zero{stroke:var(--color-text-muted);stroke-dasharray:3 3;stroke-width:1;opacity:.6}
.mh-root .u44-cross{stroke:var(--color-text-secondary);stroke-width:1}
.mh-root .u44-line{fill:none;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.mh-root path.u44-spy{stroke:var(--u44-spy)}.mh-root path.u44-iwm{stroke:var(--u44-iwm)}.mh-root path.u44-dia{stroke:var(--u44-dia)}.mh-root path.u44-qqq{stroke:var(--u44-qqq)}
.mh-root circle.u44-spy{fill:var(--u44-spy)}.mh-root circle.u44-iwm{fill:var(--u44-iwm)}.mh-root circle.u44-dia{fill:var(--u44-dia)}.mh-root circle.u44-qqq{fill:var(--u44-qqq)}
.mh-root .u44-legend{list-style:none;margin:2px 0 0;padding:0 11px;display:grid;grid-template-columns:1fr;gap:3px;font-size:12px}
.mh-root .u44-legend li{display:flex;align-items:baseline;gap:5px;min-width:0}
.mh-root .u44-legend li[hidden]{display:none}
.mh-root .u44-legend[hidden],.mh-root .u44-note[hidden],.mh-root .u44-few .u44-chart{display:none}
.mh-root .u44-note{margin:4px 0 6px;padding:0 11px;font-size:12px;color:var(--color-text-secondary)}
.mh-root .u44-wide .u44-legend{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:18px}
.mh-root .u44-legend .u44-sw{flex:none;width:10px;height:3px;border-radius:2px;align-self:center}
.mh-root .u44-legend .u44-spy .u44-sw{background:var(--u44-spy)}.mh-root .u44-legend .u44-iwm .u44-sw{background:var(--u44-iwm)}
.mh-root .u44-legend .u44-dia .u44-sw{background:var(--u44-dia)}.mh-root .u44-legend .u44-qqq .u44-sw{background:var(--u44-qqq)}
.mh-root .u44-legend .u44-name{color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mh-root .u44-legend .u44-v{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
/* === u44:index-chart end === */
/* === breadth:live begin === */
/* breadth:live r1 (owner APPROVALS.md lines 88 and 89): live stamp dot, the "As of Oct 19 close" row of the u43 box, and the
   breadth source label in the page footer. Only for .brl-* nodes. */
.u43-box time.brl-live::before{content:"";display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;
  background:var(--color-positive);vertical-align:1px}
.u43-box .u43-t tr.brl-eod td{text-align:left;padding:4px 0 1px;font-family:inherit;font-weight:400;font-size:11px;line-height:14px;color:var(--color-text-muted)}
.u43-box .u43-t tr.brl-eod[hidden],.mh-root .u43-box p.brl-rep[hidden]{display:none}
.wb-source-footer>.brl-source{color:var(--color-text-muted)}.wb-source-footer>.brl-source[hidden]{display:none}
/* === breadth:live end === */
/* === home:layout-b begin === */
/* Home layout B r1 (R&UI 2026-10-20, owner "home layout B", APPROVALS.md line 97). See the workbench.js block of the same name.
   .hl-mid = the chart card in the middle column, .hl-strip = US sectors as a full-width strip, .hl-full = movers full width. */
.mh-root .u40-s2>.u44-box.hl-mid{margin:0}
.mh-root .hl-mid .u44-legend{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}
.mh-root .hl-mid .u44-legend .u44-name{display:none}
.mh-root .hl-mid .u44-legend .u44-v{margin-left:auto}
.mh-root #mh-sector.hl-strip{display:block;margin:12px 0 0}
.mh-root .hl-strip .u40-note{margin:0;padding:0 11px 4px}
.mh-root .hl-strip .mt-table{display:block;width:100%}
.mh-root .hl-strip .mt-table colgroup,.mh-root .hl-strip .mt-table thead{display:none}
.mh-root .hl-strip .mt-table tbody{display:grid;grid-auto-flow:column;grid-template-rows:repeat(4,auto);grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:18px;padding:0 11px 6px}
.mh-root .hl-strip .mt-table tr{display:grid;grid-template-columns:minmax(0,1fr) 64px 64px;align-items:center;border-bottom:1px solid var(--color-rule)}
.mh-root .hl-strip .mt-table th,.mh-root .hl-strip .mt-table td{display:flex;align-items:center;align-self:stretch}
.mh-root .hl-strip .mt-table td{justify-content:flex-end}
.mh-root .hl-heads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:18px;padding:0 11px;font-size:11px;
  color:var(--color-text-muted)}
.mh-root .hl-heads span{display:grid;grid-template-columns:minmax(0,1fr) 64px 64px;border-bottom:1px solid var(--color-rule)}
.mh-root .hl-heads b{font-weight:400}
.mh-root .hl-heads i{font-style:normal;text-align:right;padding-right:7px}
.mh-root .u43-row>.u43-mov.hl-full{grid-column:1/-1}
/* === home:layout-b end === */
/* === home:table-bg begin === */
/* Home table background r1 (R&UI 2026-10-20, owner "Mockup B, all fills transparent", APPROVALS.md line 107).
   Home page only (.mh-root): the cards, the flat value cells and the value cell borders show the page background.
   Scoped rules, no !important: .mh-root + class (0,2,0) wins over the base rules .u40-card, .mt-flat and .mt-cell (0,1,0). */
.mh-root .u40-card{background:transparent}
.mh-root .mt-flat{background:transparent}
.mh-root .mt-cell{border-left-color:transparent;border-bottom-color:transparent}
/* === home:table-bg end === */
/* === home:heat-text begin === */
/* Home heat text r1 (R&UI 2026-10-20). Owner via PM: "No inner lines with green and red text" (heat text A r2, APPROVALS.md
   line 111) and the title line + shade addition (mockup r3, see README). Market today (.mh-root .mt-in) only.
   Scoped rules, no !important. Each selector has more classes than the live rule it replaces.
   1. Heat cells: no fill. Gains use the positive text color, losses the danger text color, flat values keep the text color. */
.mh-root .mt-in .mt-cell{background:transparent}
.mh-root .mt-in .mt-v.mt-gain-1,.mh-root .mt-in .mt-v.mt-gain-2,.mh-root .mt-in .mt-v.mt-gain-3{background:transparent;color:var(--color-positive)}
.mh-root .mt-in .mt-v.mt-loss-1,.mh-root .mt-in .mt-v.mt-loss-2,.mh-root .mt-in .mt-v.mt-loss-3{background:transparent;color:var(--color-danger)}
/* 2. No inner lines: border width 0. The card borders (.u40-card) and the See all buttons (.u41-more) keep their lines. */
.mh-root .mt-in .mt-table th{border-bottom-width:0}
.mh-root .mt-in .hl-strip .mt-table tr{border-bottom-width:0}
.mh-root .mt-in .hl-heads span{border-bottom-width:0}
.mh-root .mt-in .mt-source{border-top-width:0}
.mh-root .mt-in .u43-box .u43-t th,.mh-root .mt-in .u43-box .u43-t td{border-bottom-width:0}
.mh-root .mt-in .u43-box .u41-all{border-top-width:0}
.mh-root .mt-in .u43-mov .mh-mover-group h3{border-bottom-width:0}
.mh-root .mt-in .mh-mover{border-bottom-width:0}
/* 3. Title area (the card title + its note, or the chart head + sub line): a slight shade and one line under it.
   The shade mixes 8% of the text color over the page: a little darker in light mode, a little lighter in dark mode. */
.mh-root .mt-in .u40-card>.mt-group-title,.mh-root .mt-in .u40-card>.mt-group-title+.u40-note,
.mh-root .mt-in .u44-box>.u44-head,.mh-root .mt-in .u44-box>.u44-head+.u44-sub{background:color-mix(in srgb,var(--color-text) 8%,transparent)}
.mh-root .mt-in .u40-card>.mt-group-title+.u40-note{margin-top:0}
.mh-root .mt-in .u40-card>.mt-group-title:not(:has(+.u40-note)),.mh-root .mt-in .u40-card>.mt-group-title+.u40-note,
.mh-root .mt-in .u44-box>.u44-head+.u44-sub{border-bottom:1px solid var(--color-rule);margin-bottom:4px}
/* === home:heat-text end === */
/* === home:width begin === */
/* Home max content width r2 (R&UI 2026-10-21, owner "home width 1200", APPROVALS line 117; mockup run3-staging/home-width-mockup-r1).
   On screens wider than 860 px the home main column is at most 1256 px (1200 px content + 2 x 28 px padding). Extra space
   goes to equal side margins, right of the 212 px sidebar (100% = the body width, so a scroll bar does not shift the center).
   Home view only: the screener (?view=screener, main.sc-view) keeps the full width. U66 r1 (owner APPROVALS 291): the page
   behind the open Compare picker (html.cf-open) keeps the home width. Phones (860 px or narrower) keep their own rule. Only index.html has main.wb-landing. */
@media (min-width:861px){html .u24 .u24-main.wb-landing:not(.sc-view){max-width:1256px!important;margin-left:max(212px,calc(212px + (100% - 212px - 1256px) / 2))!important}}
/* === home:width end === */
/* === u49:shell begin === */
/* U49 shell r1 (R&UI 2026-10-21). Owner via PM, APPROVALS.md line 131 "home shell placement A". Mockups:
   run3-staging/home-shell-mockup-r1 and -r2. The brand and the menu are one solid block from top to bottom. A small arrow
   on the logo line collapses the menu to a 60 px icon column (the arrow then sits under the lamp). The search has its own
   bar above the page content, centered (on the home page, above Market today). The home column centers right of the menu.
   Phone (860 px or narrower): one brand row, then the search, no empty row. */
:root{--u49-rail:212px;--u49-fill:color-mix(in srgb,var(--color-text) 5%,var(--color-surface))}
html.u49-min{--u49-rail:60px}
.u24-rail .u24-label{letter-spacing:0;font-size:12px}
.u49-arrow{display:none}
.u49-searchbar{display:flex;justify-content:center}
.u49-searchbar .u24-search{width:min(760px,100%);max-width:none;margin:0;background:var(--color-surface)}
.u49-searchbar .u24-search input{border:0;background:transparent;box-shadow:none;color:var(--color-text)}
.u49-searchbar .u24-search input:focus{outline:none}
.u49-searchbar .u24-search:focus-within{border-color:var(--color-text-secondary)}
.u49-searchbar .u24-search button{border:0;background:transparent;color:var(--color-text)}
@media (min-width:861px){
  body.u24{background-image:none}
  .u24-top{position:fixed;left:0;top:0;width:var(--u49-rail);height:68px;padding:12px 0 12px 24px;gap:0;background:var(--u49-fill);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);z-index:42}
  .u24-top .u24-brand{min-width:0}
  .u24-rail{position:fixed;left:0;top:68px;bottom:0;width:var(--u49-rail);min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--u49-fill);z-index:41}
  .u24 .u24-main{margin-left:var(--u49-rail)!important;padding-top:22px!important}
  html .u24 .u24-main.wb-landing:not(.sc-view){margin-left:max(var(--u49-rail),calc(var(--u49-rail) + (100% - var(--u49-rail) - 1256px) / 2))!important}
  .u49-searchbar{margin-left:var(--u49-rail);padding:26px 28px 0}
  .u49-arrow{display:flex;position:absolute;top:20px;left:calc(var(--u49-rail) - 32px);width:28px;height:28px;align-items:center;justify-content:center;padding:0;border:0;border-radius:3px;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:22px;line-height:1;cursor:pointer}
  .u49-arrow:hover{color:var(--color-text);background:color-mix(in srgb,var(--color-text) 8%,transparent)}
  .u49-arrow:focus-visible{outline:2px solid var(--color-accent,#2f80c0);outline-offset:1px}
  /* collapsed: icons only, the lamp keeps the logo line, the arrow sits under it */
  html.u49-min .u24-top{padding:12px 0}
  html.u49-min .u24-top .u24-brand{font-size:0;gap:0;justify-content:center;width:var(--u49-rail);margin:0;padding:0}
  html.u49-min .u24-top .u24-brand::after{width:40px;height:36px;margin-left:0;top:0;transform:translate(-.51px,-8.73px)}
  html.u49-min .u24-top .u24-brand span{display:none}
  html.u49-min .u49-arrow{top:74px;left:16px}
  html.u49-min .u24-rail{padding:42px 0 28px}
  html.u49-min .u24-rail a,html.u49-min .u24-rail button,html.u49-min .u24-rail .u24-area>*{font-size:0;gap:0;justify-content:center}
  html.u49-min .u24-rail .u24-label,html.u49-min .u24-rail .u28-company-hint,html.u49-min .u24-rail .u24-area ul,html.u49-min .u24-rail .u24-area ol{display:none}
  html.u49-min .u24-rail nav,html.u49-min .u24-rail .u24-tools,html.u49-min .u24-rail .u28-company,html.u49-min .u24-rail .u24-area,html.u49-min .u24-rail .u28-utilities{margin-left:0;margin-right:0;padding-left:0;padding-right:0}
}
@media (max-width:860px){
  .u24-top{height:auto;min-height:0}
  .u49-searchbar{padding:12px 16px 0}
  .u49-searchbar .u24-search{width:100%}
}
/* === u49:shell end === */
/* === u44:range begin === */
/* U44 r3 range bar (R&UI 2026-10-21, APPROVALS lines 115 and 116; mockup run3-staging/home-chart-range-mockup-r1).
   One row of 10 equal buttons under the chart sub line. The selected range is filled with the text color. On a phone
   (600 px or narrower) each button is at least 32 px high. A range without data is a disabled button. */
.mh-root .u44-ranges{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));margin:6px 11px;border:1px solid var(--color-rule);border-radius:3px;overflow:hidden}
.mh-root .u44-ranges button{min-width:0;margin:0;padding:3px 0;border:0;border-left:1px solid var(--color-rule);border-radius:0;background:transparent;
  color:var(--color-text-secondary);font:inherit;font-size:11px;line-height:16px;cursor:pointer}
.mh-root .u44-ranges button:first-child{border-left:0}
.mh-root .u44-ranges button[aria-pressed=true]{background:var(--color-text);color:var(--color-bg);font-weight:600}
.mh-root .u44-ranges button:disabled{color:var(--color-text-muted);opacity:.5;cursor:default}
.mh-root .u44-ranges button:focus-visible{outline:2px solid var(--color-accent,var(--color-text));outline-offset:-2px}
@media (max-width:600px){.mh-root .u44-ranges button{min-height:32px}}
/* === u44:range end === */
/* === u29:phone begin (R&UI 2026-10-21, dropin-u29-phone-r1) === */
/* The U29 compact fact-sheet rows (What Changed summary, Valuation > Ratios, Key metrics) on phones too, in one column.
   Same rules as the desktop kv-table block above, with one column, under #pane so the phone #pane .r-card/.r-value rules do not win. Owner no-tile rule; DA WC-PANE-PHONE-TILES-1021. */
@media (max-width:760px),((max-width:950px) and (max-height:500px) and (pointer:coarse)){
  #pane .r-cards.kv-cap-table.u29-kv{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0;margin:0 0 12px}
  #pane .kv-cap-table.u29-kv>.r-card{min-width:0;min-height:0;padding:7px 0;border:0;border-radius:0;background:none;box-shadow:none;font-size:11px;line-height:1.35;color:var(--color-text-muted)}
  #pane .kv-cap-table.u29-kv>.r-card>.r-label{float:left;margin:0 8px 2px 0;font-size:13px;line-height:1.35;letter-spacing:normal;text-transform:none;color:var(--color-text)}
  #pane .kv-cap-table.u29-kv>.r-card>.r-value{display:block;margin:0 0 2px;text-align:right;font-family:inherit;font-size:14px;line-height:1.35;color:var(--color-text)}
  #pane .kv-cap-table.u29-kv>.r-card>.mk-eq,#pane .kv-cap-table.u29-kv>.r-card>.r-muted{display:inline;margin:0;font-size:11px;line-height:1.35;color:inherit;overflow-wrap:anywhere}
  #pane .kv-cap-table.u29-kv>.r-card>.mk-eq::after,#pane .kv-cap-table.u29-kv>.r-card>.r-muted::after{content:' '}
  #pane .kv-cap-table.u29-kv .mk-parts,#pane .kv-cap-table.u29-kv .mk-classes{display:inline;margin:0;padding:0;list-style:none}
  #pane .kv-cap-table.u29-kv .mk-parts>li,#pane .kv-cap-table.u29-kv .mk-classes>li{display:inline;font-size:11px}
  #pane .kv-cap-table.u29-kv .mk-parts>li::after,#pane .kv-cap-table.u29-kv .mk-classes>li::after{content:' · '}
  #pane .r-panel:has(>.kv-table.u29-kv){max-width:none;border:0;border-radius:0;background:none;container-type:inline-size}
  #pane .km-list.kv-table.u29-kv{display:grid;grid-template-columns:minmax(0,1fr);gap:0;width:100%;max-width:none;padding:0}
  #pane .kv-table.u29-kv>.km-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;align-content:start;gap:2px 8px;min-width:0;padding:7px 0;border-top:1px solid var(--color-rule)}
  #pane .kv-table.u29-kv>.km-row:first-child{border-top:0}
  #pane .kv-table.u29-kv>.km-row>.km-head{display:contents}
  #pane .kv-table.u29-kv>.km-row>.km-head>.km-label{grid-column:1;grid-row:1;min-width:0;font-size:13px;line-height:1.35}
  #pane .kv-table.u29-kv>.km-row>.km-head>.km-value{grid-column:4;grid-row:1;min-width:0;text-align:right;font-size:14px;line-height:1.35;white-space:nowrap}
  #pane .kv-table.u29-kv>.km-row>.km-head>.km-spark-box{grid-column:3;grid-row:1;align-items:center}
  #pane .kv-table.u29-kv .km-spark-box svg{width:54px;height:18px}
  #pane .kv-table.u29-kv>.km-row>.km-reason{grid-column:1/-1;grid-row:2;margin:0;font-size:11px;line-height:1.35;white-space:normal;overflow:visible;text-overflow:clip}
  #pane .kv-table.u29-kv>.km-row:has(>.km-how[open])>.km-reason{white-space:normal;overflow:visible}
  #pane .kv-table.u29-kv>.km-row>.km-note{grid-column:1/-1;grid-row:3;margin:0;font-size:11px;line-height:1.35}
  #pane .kv-table.u29-kv>.km-row>.km-how{grid-column:2;grid-row:1;margin:0;min-width:0;padding:0}
  #pane .kv-table.u29-kv>.km-row>.km-how:not([open])>summary{font-size:0;width:16px;list-style:none;text-align:center}
  #pane .kv-table.u29-kv>.km-row>.km-how:not([open])>summary::-webkit-details-marker{display:none}
  #pane .kv-table.u29-kv>.km-row>.km-how:not([open])>summary::after{content:'ⓘ';font-size:13px;line-height:18px}
  #pane .kv-table.u29-kv>.km-row>.km-how[open]{grid-column:1/-1;grid-row:4;margin-top:4px}
  #pane .kv-table.u29-kv>.km-row>.km-how .km-scroll{overflow-x:auto;max-width:100%}
  #pane .kv-table.u29-kv .km-signals{columns:auto 220px;column-gap:24px}
  #pane .kv-table.u29-kv+.km-wacc-inputs{max-width:none;box-sizing:border-box}
  #pane .kv-cap-table.u29-kv>.r-card+.r-card{border-top:1px solid var(--color-rule)}
  #pane .kv-cap-table.u29-kv>.r-card>.r-value{overflow-wrap:anywhere}
  #pane .wc-cards.kv-cap-table.u29-kv{padding:0 12px}
}
/* === u29:phone end === */
/* === u48:theme begin === */
/* U48 (R&UI dropin-u48-theme-r1, 2026-10-22; owner "u48 ok", APPROVALS.md line 145; mockup u48-theme-mockup-r2):
   the home page look on the company pages, Screener, My account, Help and the search list. Cards with a 1 px rule
   border and 3 px corners, a shaded 14 px title band, 11 px muted column heads in sentence case, 34 px rows,
   12 px gaps, a 36 px title line, no eyebrow labels. The u48:theme script in workbench.js sets html.u48 (and
   html.u48-help) on these pages and adds the u48-* classes. The search list rules have no scope. */
:root{--u48-title:color-mix(in srgb,var(--color-text) 8%,transparent)}
@media (min-width:861px){:where(html.u48) .u24 .u24-main{max-width:1256px!important;margin-left:max(var(--u49-rail),calc(var(--u49-rail) + (100% - var(--u49-rail) - 1256px) / 2))!important}}
:where(html.u48) .u48-titleline{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin:0 0 4px}
:where(html.u48) .u48-titleline>h1,:where(html.u48) .u48-titleline>h2{margin:0!important;font-size:28px!important;font-weight:600!important;line-height:1.2!important;letter-spacing:0!important}
:where(html.u48) .u48-titleline .tkg-co-actions{margin:0!important}
:where(html.u48) .u48-sub{margin:0 0 16px!important;font-size:13px!important;color:var(--color-text-secondary)!important}
:where(html.u48) .u48-eyebrow{display:none!important}
:where(html.u48) .u24-context.u48-context{display:flex;align-items:baseline;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;margin:18px 0 10px}
:where(html.u48) .u24-context.u48-context>h2{margin:0;font-size:19px;font-weight:600;letter-spacing:0;text-transform:none}
:where(html.u48) .u24-context.u48-context>.u24-source{margin:0;font-size:12px;color:var(--color-text-muted)}
:where(html.u48) .u24-context.u48-context>.u24-chips,:where(html.u48) .u24-context.u48-context>.u30-summary{flex-basis:100%}
:where(html.u48) .u48-card{min-width:0;margin:0 0 12px!important;padding:0 0 6px!important;border:1px solid var(--color-rule)!important;border-radius:3px!important;background:transparent!important;box-shadow:none!important;max-width:none!important;overflow:hidden}
:where(html.u48) .u48-card>.u48-title,:where(html.u48) .u48-card>.u48-title *{text-transform:none!important;letter-spacing:0!important}
:where(html.u48) .u48-card>.u48-title{display:flex;align-items:baseline;justify-content:space-between;gap:4px 12px;flex-wrap:wrap;margin:0 0 4px!important;padding:8px 11px 4px!important;
  background:var(--u48-title)!important;border:0!important;border-bottom:1px solid var(--color-rule)!important;border-radius:0!important;
  font-size:14px!important;line-height:20px!important;font-weight:600!important;color:var(--color-text)!important}
:where(html.u48) .u48-card>.u48-title h2,:where(html.u48) .u48-card>.u48-title h3,:where(html.u48) .u48-card>.u48-title h4{margin:0!important;font-size:14px!important;line-height:20px!important;font-weight:600!important}
:where(html.u48) .u48-card>.u48-title a{font-size:12px;font-weight:400}
:where(html.u48) .u48-card>:not(.u48-title):not(.u48-flush){margin-left:11px!important;margin-right:11px!important}
:where(html.u48) .u48-card>.u48-flush{margin-left:0!important;margin-right:0!important}
:where(html.u48) .u48-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
:where(html.u48) .u48-grid>.u48-card{margin:0!important}
@media (max-width:860px){:where(html.u48) .u48-grid{grid-template-columns:minmax(0,1fr)}}
:where(html.u48) .u48-card table{background:transparent!important}
:where(html.u48) .u48-card thead th{background:transparent!important;font-size:11px!important;font-weight:500!important;color:var(--color-text-muted)!important;
  text-transform:none!important;letter-spacing:0!important;border-bottom:1px solid var(--color-rule)!important}
:where(html.u48) .u48-card tbody td,:where(html.u48) .u48-card tbody th{border-bottom:1px solid var(--color-rule)}
:where(html.u48) .u48-card tbody tr:last-child>td,:where(html.u48) .u48-card tbody tr:last-child>th{border-bottom:0}
:where(html.u48) .u48-card th:first-child,:where(html.u48) .u48-card td:first-child{padding-left:11px!important}
:where(html.u48) .u48-card th:last-child,:where(html.u48) .u48-card td:last-child{padding-right:11px!important}
:where(html.u48) .tscroll.u48-card{margin-top:8px!important;padding:0!important;overflow:auto!important}
:where(html.u48) .tscroll.u48-card thead th{background:color-mix(in srgb,var(--color-text) 8%,var(--color-bg))!important;color:var(--color-text)!important;font-size:12px!important;padding-top:8px!important;padding-bottom:5px!important}
:where(html.u48) .tscroll.u48-card thead th:first-child{font-size:14px!important;font-weight:600!important}
:where(html.u48) .tscroll.u48-card tr.sec>th{font-size:12px!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;color:var(--color-text-secondary)!important}
:where(html.u48) #viewrow .vlab,:where(html.u48) .u48-plain{text-transform:none!important;letter-spacing:0!important;font-size:13px!important}
:where(html.u48) .u48-card.r-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px!important;padding:2px 11px 4px!important}
:where(html.u48) .u48-card.r-cards>.u48-title{grid-column:1/-1;margin:-2px -11px 4px!important}
:where(html.u48) .u48-card.r-cards>*{margin-left:0!important;margin-right:0!important}
:where(html.u48) .u48-card.r-cards>.r-card{min-width:0;min-height:0!important;padding:7px 0!important;border:0!important;border-top:1px solid var(--color-rule)!important;border-radius:0!important;background:none!important;box-shadow:none!important;
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:0 8px;font-size:11px;color:var(--color-text-muted)}
:where(html.u48) .u48-card.r-cards>.r-card.u48-first,:where(html.u48) .u48-card.r-cards>.r-card.u48-first2{border-top:0!important}
:where(html.u48) .u48-card.r-cards>.r-card>.r-label{grid-column:1;margin:0!important;font-size:13px!important;line-height:1.35!important;letter-spacing:normal!important;text-transform:none!important;color:var(--color-text)!important}
:where(html.u48) .u48-card.r-cards>.r-card>.r-value{grid-column:2;grid-row:1;margin:0!important;text-align:right;font-family:inherit!important;font-size:14px!important;line-height:1.35!important;font-weight:600!important;color:var(--color-text)!important}
:where(html.u48) .u48-card.r-cards>.r-card>:not(.r-label):not(.r-value){grid-column:1/-1;margin:2px 0 0!important;font-size:11px!important;line-height:1.35!important}
@media (max-width:760px){:where(html.u48) .u48-card.r-cards{grid-template-columns:minmax(0,1fr)}:where(html.u48) .u48-card.r-cards>.r-card.u48-first2{border-top:1px solid var(--color-rule)!important}}
:where(html.u48) .u48-card>.km-list,:where(html.u48) .u48-card>.kv-table{width:auto!important;padding:0!important;border:0!important;background:none!important}
:where(html.u48) .u48-card .km-row{border-color:var(--color-rule)}
:where(html.u48) figure.u48-card>.r-chart-plot,:where(html.u48) figure.u48-card>.r-key,:where(html.u48) figure.u48-card>details,:where(html.u48) figure.u48-card>p{margin-top:6px!important}
:where(html.u48) .sc .sc-head{margin-bottom:14px}
:where(html.u48) .sc .sc-head h1{font-size:28px!important;font-weight:600!important;margin:0!important}
:where(html.u48) .sc .sc-head .sc-sub{margin:4px 0 0!important;font-size:13px;color:var(--color-text-secondary)}
:where(html.u48) .sc-top.u48-card{padding:10px 11px!important}
:where(html.u48) .sc-top.u48-card>*{margin-left:0!important;margin-right:0!important}
:where(html.u48) .sc-filters.u48-card{padding-bottom:10px!important}
:where(html.u48) .sc-tablewrap.u48-card{padding:0!important}
:where(html.u48) .sc label,:where(html.u48) .sc .sc-fhead{text-transform:none!important;letter-spacing:0!important}
:where(html.u48) .u48-card *,:where(html.u48) #viewrow .vlab,:where(html.u48) .tscroll tr.sec>th>span{text-transform:none!important;letter-spacing:0!important}
:where(html.u48) #pane .r-head{display:flex;align-items:baseline;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;margin:6px 0 10px!important}
:where(html.u48) #pane .r-head h2,:where(html.u48) #pane .r-head h3{margin:0!important;font-size:19px!important;font-weight:600!important;line-height:1.3!important}
:where(html.u48) #pane .r-head .r-cutoff{margin:0!important;font-size:12px!important;color:var(--color-text-muted)!important}
:where(html.u48) .sc-top.u48-card>.sc-status:empty{display:none}
:where(html.u48) .sc-top.u48-card{padding-bottom:4px!important}
:where(html.u48) .u48-card>.r-table-scroll,:where(html.u48) .u48-card>.wbc-tscroll{max-width:100%!important;overflow-x:auto!important}
:where(html.u48) .u48-card .r-tl{margin:0!important;padding:0!important}
:where(html.u48) .u48-card .r-tl-card{border:0!important;border-top:1px solid var(--color-rule)!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:7px 0!important}
:where(html.u48) .u48-card .r-tl-item:first-child .r-tl-card{border-top:0!important}
:where(html.u48) .u48-card .r-tl-toolbar{margin:6px 11px 4px!important}
:where(html.u48) .u48-card .r-tl-note{margin-top:6px!important}
:where(html.u48) #pane .r-chart-grid{gap:12px!important}
:where(html.u48) #pane .r-chart-grid>.u48-card{margin:0!important}
:where(html.u48-help) #legal .tkg-legal-doc{max-width:760px}
:where(html.u48-help) #legal .tkg-legal-doc>h1{margin:0 0 4px!important;font-size:28px!important;font-weight:600!important;line-height:1.2!important;letter-spacing:0!important}
:where(html.u48-help) #legal .tkg-legal-doc>h1+p{margin:0 0 16px!important;font-size:13px;color:var(--color-text-secondary)}
:where(html.u48-help) #legal .tkg-legal-doc>h2{margin:22px 0 6px!important;padding:0 0 4px!important;font-size:19px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;border-bottom:1px solid var(--color-rule)}
:where(html.u48-help) #legal .tkg-legal-doc>ul.u48-card{list-style:none;padding:0!important}
:where(html.u48-help) #legal .tkg-legal-doc>ul.u48-card>li{margin:0!important;padding:7px 11px!important;border-top:1px solid var(--color-rule)}
:where(html.u48-help) #legal .tkg-legal-doc>ul.u48-card>li:first-child{border-top:0}
:where(html.u48-help) #legal .tkg-legal-doc>ul.u48-card>li.u48-title{border-top:0}
:where(html.u48-help) #legal .tkg-legal-foot{max-width:760px}
:where(html.u48) .u48-card .ta-head,:where(html.u48) .u48-card>.u48-title .ta-btn{margin:0!important}
#u24-results.ac>div{display:grid!important;grid-template-columns:64px minmax(0,1fr);align-items:baseline;column-gap:8px}
#u24-results.ac>div>span{margin-left:0!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#u24-results.ac{border:1px solid var(--color-rule)!important;border-radius:3px!important;box-shadow:0 2px 8px color-mix(in srgb,var(--color-text) 10%,transparent)!important}
:where(html.u48) #ta-in>.ta-row #ta-hello{margin:0!important;font-size:28px!important;font-weight:600!important;line-height:1.2!important;letter-spacing:0!important}
:where(html.u48) #ta-in>.ta-row #ta-asof{margin:4px 0 16px!important;font-size:13px!important}
:where(html.u48) #ta-in .ta-cols{gap:12px!important}
:where(html.u48) #ta-in .u48-card .ta-set{border-color:var(--color-rule)!important;padding-left:11px;padding-right:11px}
:where(html.u48) .u48-titleline>h1,:where(html.u48) .u48-titleline>h2,:where(html.u48) #ta-in>.ta-row #ta-hello,:where(html.u48-help) #legal .tkg-legal-doc>h1,:where(html.u48) .sc .sc-head h1{font-size:36px!important;line-height:1.2!important}
@media (max-width:860px){:where(html.u48) .u48-titleline>h1,:where(html.u48) .u48-titleline>h2,:where(html.u48) #ta-in>.ta-row #ta-hello,:where(html.u48-help) #legal .tkg-legal-doc>h1,:where(html.u48) .sc .sc-head h1{font-size:29px!important}}
:where(html.u48) #pane .u30-facts{column-gap:12px!important}
:where(html.u48) #pane .u30-facts>.u48-card{break-inside:avoid}
:where(html.u48) .u48-card .km-row{min-height:34px;padding:7px 0!important;font-size:14px!important;line-height:20px!important;box-sizing:border-box}
:where(html.u48) .u48-card .km-list>.km-row{padding-left:0!important;padding-right:0!important}
:where(html.u48) .u48-card tbody td,:where(html.u48) .u48-card tbody th{padding-top:7px!important;padding-bottom:7px!important;font-size:14px;line-height:20px}
:where(html.u48) .tscroll.u48-card tbody td,:where(html.u48) .tscroll.u48-card tbody th{font-size:inherit}
:where(html.u48) .u48-card.r-cards>.r-card{padding:7px 0!important;min-height:34px!important}
:where(html.u48-help) #legal .tkg-legal-doc>ul.u48-card>li{min-height:34px;box-sizing:border-box}
:where(html.u48) #ta-in .ta-cols,:where(html.u48) #pane .r-chart-grid,:where(html.u48) .u48-grid{gap:12px!important}
/* === u48:theme end === */
/* === rt:css begin === */
/* U47 Ratios Over Time (Top Picks, 2026-10-22): the ratio names are buttons that pick the chart. Plain text with an
   underline, no tile, no upper case. The picked row has a light accent wash. Tokens only, so both themes work. */
.rt-pick{appearance:none;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-rule);text-underline-offset:3px}
.rt-pick:hover,.rt-pick:focus-visible{text-decoration-color:currentColor}
.rt-pick[aria-pressed="true"]{font-weight:600;text-decoration:none}
.rt-tbl tr.rt-on>th,.rt-tbl tr.rt-on>td{background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface))}
/* The group tables fill the card, and the column heads sit right under the card title (R&UI review with U48). */
.rt-view .rt-tbl{width:100%}
.rt-view .r-panel>.r-table-scroll{margin-top:0}
/* u47-phone r1 (Top Picks, 2026-10-24): the tables open scrolled to the newest years, so the "Ratio" corner cell must cover
   the year heads that pass under it. The u48 card sets head cells transparent with !important, so this rule needs it too. */
.rt-view .rt-tbl thead .v3-corner{z-index:3!important;background:var(--color-surface)!important}
/* U51 (Top Picks, 2026-10-24): the Ratios over time block at the bottom of Valuation > Ratios. A rule above it and a
   plain title, no tile, no upper case. Tokens only, so both themes work. */
.rt-inval{margin:28px 0 0;padding-top:16px;border-top:1px solid var(--color-rule)}
.rt-inval-h{margin:0;font-size:18px;font-weight:600;color:var(--color-text)}
/* === rt:css end === */

/* === u50:css begin === */
/* U50 (owner "U50 B"): Key Metrics as one table across years (research-ui.js u50:km-years). Thin rules, one title line
   per group, numbers right-aligned in tabular figures. The metric column stays in place when the years scroll sideways.
   Child selectors only: the "How it's calculated" tables inside keep their own styles. */
.km-view .u50-panel{padding:0;overflow:hidden;background:var(--color-surface)}
.km-view .u50-scroll{margin:0;overflow-x:auto;background:var(--color-surface)}
.u50-km{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;background:var(--color-surface)}
.u50-km>*>tr>th,.u50-km>*>tr>td{padding:7px 12px;border-bottom:1px solid var(--color-rule);vertical-align:top;text-align:left;background:var(--color-surface)}
.u50-km>thead>tr>th{font-size:12px;font-weight:500;color:var(--color-text-muted);padding-top:9px;padding-bottom:7px;white-space:nowrap}
.u50-km>*>tr>.u50-num{text-align:right;white-space:nowrap;width:1%}
.u50-km>tbody>tr>td.u50-num{color:var(--color-text-secondary)}
.u50-km>tbody>tr>td.u50-latest{font-weight:600;color:var(--color-text)}
.u50-km>tbody>tr>th[scope="row"],.u50-km>thead>tr>th:first-child{position:sticky;left:0;z-index:1;font-weight:400;white-space:normal;overflow-wrap:break-word}
.km-view table.u50-km>thead>tr>th{position:static;background:var(--color-surface)}
/* The U48 card rule clears head backgrounds with !important. The sticky Metric head must hide the years under it. */
:where(html.u48) .u48-card table.u50-km>thead>tr>th{background:var(--color-surface)!important}
.km-view table.u50-km>thead>tr>th:first-child,.km-view table.u50-km>tbody>tr>th[scope="row"]{position:sticky;left:0;z-index:3;box-shadow:inset -1px 0 0 var(--color-rule)}
.u50-km>tbody>tr.u50-group>th>span{position:sticky;left:12px}
.u50-km>tbody>tr.u50-group>th{font-size:14px;font-weight:600;color:var(--color-text);padding-top:16px;border-bottom:1px solid var(--color-border)}
.u50-km>tbody>tr.u50-group:first-child>th{padding-top:10px}
.u50-km .u50-name{font:inherit;color:var(--color-text);background:none;border:0;padding:0;margin:0;text-align:left;white-space:normal;cursor:pointer;text-decoration:underline dotted var(--color-text-muted);text-underline-offset:3px}
.u50-km button.u50-name:hover{color:var(--color-accent)}
.u50-km button.u50-name:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.u50-km button.u50-name[aria-expanded="true"]{text-decoration-style:solid}
.u50-km span.u50-name{text-decoration:none;cursor:default}
.u50-km>tbody>tr>th>.u50-note{margin:2px 0 0;font-size:12px;line-height:1.4;color:var(--color-text-muted);font-weight:400;white-space:normal;max-width:60ch}
.u50-km>tbody>tr>td .u50-na{color:var(--color-text-muted);font-weight:400}
.u50-km>tbody>tr.u50-how>td,.u50-km>tbody>tr.u50-extra>td{padding:4px 12px 12px;white-space:normal}
.u50-km>tbody>tr.u50-how>td>details.km-how{margin:0;position:sticky;left:12px;max-width:760px;box-sizing:border-box}
.u50-km>tbody>tr.u50-how>td>details.km-how>summary{display:none}
.u50-km>tbody>tr.u50-extra:has(>td>.debtb-wait:empty){display:none}
.u50-km>tbody>tr.u50-row:focus{outline:2px solid var(--color-focus);outline-offset:-2px}
@media (max-width:760px){
 .u50-km{font-size:13px}
 .u50-km>*>tr>th,.u50-km>*>tr>td{padding:7px 8px}
 .u50-km>tbody>tr>th[scope="row"],.u50-km>thead>tr>th:first-child{width:136px;min-width:136px;max-width:136px}
 .u50-km>tbody>tr.u50-group>th{width:auto;max-width:none}
 .u50-km>tbody>tr.u50-how>td>details.km-how{left:8px}
 .u50-km>tbody>tr.u50-group>th>span{left:8px}
}
/* === u50:css end === */
/* === u52:titlecase css begin === */
/* U52 (owner, APPROVALS.md lines 185 and 186): Title Case, no all-caps. Title-like labels show their own Title Case text. The ticker
   box (.mk-view .pc-add input) keeps upper case. The hidden "Market" eyebrow stays hidden before the U48 class arrives. */
.wb-kicker,.wb-intro .wb-eyebrow,.wb-svg .wb-cap,.wbc-range-k,.wb-dc-range-k,.wbc-tag,.wb-dc-stat dt,.wb-dc-mt thead th,
.wb-dc-mt td[data-label]::before,.tkg-badge,.tkg-recent-h,.co-table tr.co-group th,.sc-eyebrow,.v2-switch-label,.v3-st .v3-grp,
.rk,.lead .k,.vlab,tr.sec span,.fig svg .cap,.dcplot svg .cap,.r-eyebrow,.r-label,.ta-badge,#ws-brief li .ws-k{text-transform:none!important;letter-spacing:normal!important}
:where(html.u48) .r-eyebrow{display:none!important}
/* === u52:titlecase css end === */
/* === u55:inputs begin === */
.u55-inputs td:first-child{white-space:normal}
.u55-i{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 0 0 6px;padding:0;border:1px solid var(--color-border);border-radius:50%;background:none;color:var(--color-text-muted);font:italic 600 11px/1 Georgia,"Times New Roman",serif;cursor:pointer;vertical-align:1px}
.u55-i::after{content:"";position:absolute;inset:-10px}
.u55-i:hover,.u55-i[aria-expanded=true]{color:var(--color-text);border-color:var(--color-text-muted)}
.u55-i:focus-visible{outline:2px solid var(--r-cat-1);outline-offset:2px}
.u55-pop{position:fixed;z-index:60;width:max-content;max-width:360px;padding:10px 12px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:6px;box-shadow:var(--wb-tip-shadow);font-size:12.5px;line-height:1.45;color:var(--color-text-secondary);white-space:normal;overflow-wrap:anywhere;text-align:left}
.u55-pop[hidden]{display:none}
/* The Key Metrics How It's Calculated box is sticky (its own stacking layer) under sticky metric names (z-index 3): lift it while its window is open. */
details.km-how:has(.u55-pop:not([hidden])){z-index:5}
.u55-t{margin:0;font-weight:600;color:var(--color-text)}
.u55-h{margin:8px 0 2px;font-size:11.5px;font-weight:600;color:var(--color-text-muted)}
.u55-list{margin:0;padding:0}
.u55-list>div+div{margin-top:3px}
/* === u55:inputs end === */
/* === mk:tipfix begin === mkstrip-tipfix-r1 (R&UI 2026-10-25, PM "strip tooltip cut"): the price strip is also a .u48-card,
   whose overflow:hidden clipped the Market Cap tip box below the strip. The strip keeps its frame, only the clip goes. */
:where(html.u48) #mkStrip.u48-card{overflow:visible}
/* === mk:tipfix end === */
/* === u78:title-wrap begin === */
/* U78 r2 (R&UI 2026-10-30): html.u78-nocompany (set by the u24:shell block of workbench.js) means the page found no company.
   Then a long symbol wraps inside the header, so the page has no side scroll. Real company titles are not changed. */
:where(html.u48.u78-nocompany) .u48-titleline{min-width:0}
:where(html.u78-nocompany) #coName{overflow-wrap:break-word;min-width:0;max-width:100%}
/* === u78:title-wrap end === */
