/* ABF.ai brand layer: linked last in <head> on every page.
   Platform rules are scoped to pages that load topbar.js, which is every
   page behind the login and none of the public ones, and to .pm-demo, the
   homepage's slices of the real UI (index.html). The scope also raises
   specificity above page styles and runtime-injected chrome CSS. */

/* Metric-matched fallbacks: text laid out in these takes the same space as
   the web fonts, so the swap when DM Sans / DM Mono / Instrument Serif load
   does not move the layout. Overrides computed from the font files
   (hhea/typo metrics and average advance width against the local font). */
@font-face{font-family:"DM Sans Fallback";src:local("Arial"),local("ArialMT"),local("Helvetica");font-weight:100 550;size-adjust:102.43%;ascent-override:96.85%;descent-override:30.27%;line-gap-override:0%}
@font-face{font-family:"DM Sans Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Bold");font-weight:551 1000;size-adjust:101.61%;ascent-override:97.63%;descent-override:30.51%;line-gap-override:0%}
@font-face{font-family:"DM Mono Fallback";src:local("Courier New"),local("CourierNewPSMT"),local("Courier");size-adjust:99.98%;ascent-override:99.22%;descent-override:31.01%;line-gap-override:0%}
@font-face{font-family:"Instrument Serif Fallback";src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Times");size-adjust:80.98%;ascent-override:122.25%;descent-override:38.28%;line-gap-override:0%}

:root{
  --b-green:#3ecf82;--b-green-l:#b8f0d4;--b-green-d:#1a7a3c;--b-green-a:#00c97a;
  --b-bg:#FCFCFB;--b-cream:#F6F4EF;--b-line:#E7E5E0;--b-fill:#F4F4F2;
  --b-text:#1a1a1a;--b-body:#3D3D3A;--b-muted:#6B6B66;
  --b-breach:#B42318;--b-breach-t:#FEF3F2;
  --b-watch:#B54708;--b-watch-t:#FFFAEB;
  --b-watch-fill:#E0A43A; /* watch squares, dots, bars; #B54708 stays for watch text */
  --b-pass:#1a7a3c;--b-pass-t:#ECF7EF;
}

/* Focus: no browser default ring; keyboard focus only, 2px green */
:focus{outline:none}
:focus-visible{outline:2px solid #1a7a3c;outline-offset:2px}

/* ── Public pages ─────────────────────────────────────────────── */
.deal-memo-hdr::before{content:none}

/* The shared header (tools/bake-site-nav.js, site-nav.js). Sticky; its
   negative bottom margin lets the page start under it, as it did under the
   old fixed nav. Below 900px the links fold into a full-screen sheet. */
html:has(.sn){scroll-padding-top:calc(74px + env(safe-area-inset-top))}
/* Landscape with a notch: the page pads to the side insets; the header and footer reach back to the edges */
html:has(.sn) body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.sn,.sf{margin-left:calc(env(safe-area-inset-left) * -1);margin-right:calc(env(safe-area-inset-right) * -1)}
.sn{--sn-h:74px;position:sticky;top:0;z-index:100;margin-bottom:calc(var(--sn-h) * -1);padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);
  background:rgba(246,244,239,.93);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(62,207,130,.1);font-family:"DM Sans","DM Sans Fallback",sans-serif}
.sn-bar{height:var(--sn-h);box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 56px}
.sn-logo{display:inline-flex;align-items:center;min-height:48px;text-decoration:none;flex-shrink:0}
.sn-logo svg{display:block}
.sn-links{display:flex;align-items:center;gap:2px}
.sn-links a{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box;font-size:15px;font-weight:500;color:#4D6A56;padding:0 18px;border-radius:8px;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.sn-links a:hover,.sn-links a[aria-current="page"]{background:#EEFAF4;color:#1a7a3c}
.sn-cta{display:flex;align-items:center;gap:10px}
.sn-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font:600 15px/1 "DM Sans","DM Sans Fallback",sans-serif;border-radius:9px;padding:0 20px;height:44px;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.sn-ghost{color:#4D6A56;background:none;border:1px solid rgba(62,207,130,.28)}
.sn-ghost:hover{background:#EEFAF4;border-color:#3ecf82;color:#1a7a3c}
.sn-solid{color:#fff;background:#1a7a3c;border:1px solid #1a7a3c;font-weight:700;box-shadow:0 2px 10px rgba(26,122,60,.18)}
.sn-solid:hover{background:#2a9a52;border-color:#2a9a52}
.sn-signin{display:none}
.sn-burger,.sn-x{display:none;width:48px;height:48px;align-items:center;justify-content:center;padding:0;margin-right:-12px;border:0;border-radius:10px;background:none;color:#1C2E21;cursor:pointer;flex-shrink:0}
.sn-burger:hover,.sn-x:hover{background:#EEFAF4}
.sn-menu{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;background:#F6F4EF;font-family:"DM Sans","DM Sans Fallback",sans-serif;
  padding:env(safe-area-inset-top) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));
  opacity:0;transform:translateY(-8px);transition:opacity .18s ease-out,transform .18s ease-out}
.sn-menu.sn-in{opacity:1;transform:none}
.sn-menu[hidden]{display:none}
.sn-menu-head{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between}
.sn-menu .sn-x{display:inline-flex;margin-right:-4px}
.sn-menu-links{flex:1;display:flex;flex-direction:column;padding:12px 0 24px}
.sn-menu-links a{display:flex;align-items:center;min-height:56px;padding:0 4px;border-bottom:1px solid rgba(62,207,130,.15);font-size:22px;font-weight:600;letter-spacing:-.01em;color:#0E1A12;text-decoration:none}
.sn-menu-links a[aria-current="page"]{color:#1a7a3c}
.sn-menu-cta{display:flex;flex-direction:column;gap:12px}
.sn-menu-cta .sn-btn{width:100%;height:52px;font-size:17px;border-radius:12px}
@media (max-width:899px){
  html:has(.sn){scroll-padding-top:calc(56px + env(safe-area-inset-top))}
  .sn{--sn-h:56px}
  .sn-bar{padding:0 16px}
  .sn-bar .sn-logo svg{width:90px;height:32px}
  .sn-bar .sn-links,.sn-bar .sn-cta{display:none}
  .sn-burger{display:inline-flex}
}
/* Phones: Sign in as a text link beside the menu */
@media (max-width:639px){
  .sn-bar .sn-signin{display:inline-flex;align-items:center;min-height:44px;margin-left:auto;padding:0 12px;font-size:15px;font-weight:600;color:#1a7a3c;text-decoration:none}
  .sn-bar{gap:4px}
}
@media (max-width:1100px) and (min-width:900px){ .sn-bar{padding:0 24px} .sn-links a{padding:0 12px} }
@media (prefers-reduced-motion:reduce){ .sn-menu{transition:none} }

/* The shared footer */
.sf{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#0E1A12;border-top:1px solid rgba(62,207,130,.08);font-family:"DM Sans","DM Sans Fallback",sans-serif;
  padding:20px calc(56px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(56px + env(safe-area-inset-left))}
.sf svg{display:block;flex-shrink:0}
.sf-links{display:flex;flex-wrap:wrap;gap:4px 8px}
.sf-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-size:14px;color:rgba(255,255,255,.62);text-decoration:none;transition:color .18s}
.sf-links a:hover{color:#3ecf82}
@media (max-width:899px){
  .sf{flex-direction:column;align-items:stretch;gap:12px;padding:28px calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}
  .sf svg{margin:0 0 4px 10px}
  .sf-links{flex-direction:column;gap:0}
  .sf-links a{min-height:48px;font-size:16px;border-bottom:1px solid rgba(255,255,255,.06)}
}
.ds-icon,.ai-sector-ico:empty{display:none}
.ai-sector-ico{background:none;color:var(--b-muted)}

/* ── Platform ─────────────────────────────────────────────────── */
:is(html:has(script[src*="topbar.js"]), .pm-demo){

  /* Page tokens that mean the same thing on every platform page.
     (--green, --green-d, --green-p, --green-bright differ between page
     families, so they are not remapped here.) */
  --bg:var(--b-bg);--border:var(--b-line);
  --text:var(--b-text);--text-muted:var(--b-muted);--muted:var(--b-muted);--text-light:#8A8A85;--light:#8A8A85;
  --red:var(--b-breach);--red-dim:var(--b-breach-t);--red-d:var(--b-breach-t);
  --amber:var(--b-watch);--amber-dim:var(--b-watch-t);--amber-d:var(--b-watch-t);
  --green-l:var(--b-green-d);--green-light:var(--b-green-d);
  --blue:var(--b-body);--blue-d:var(--b-fill);--blue-dim:var(--b-fill);
  --purple:var(--b-body);--purple-dim:var(--b-fill);--teal:var(--b-body);--teal-d:var(--b-fill);
  --orange:var(--b-body);--navy:var(--b-body);--navy-2:var(--b-body);
  --unread-bg:#fff;--color-info:var(--b-green-d);
  --indigo:var(--b-body);--indigo-d:var(--b-fill);--blue-l:var(--b-fill);--blue-b:var(--b-line);--ink:var(--b-text);
  --blue-dd:var(--b-fill);--teal-b:var(--b-line);--teal-bdr:var(--b-line);--orange-d:var(--b-fill);--orange-l:var(--b-fill);--orange-b:var(--b-line);
  --earth:var(--b-body);--earth-d:var(--b-fill);--slate:var(--b-body);--slate-d:var(--b-fill);--ink-2:var(--b-text);

  font-variant-numeric:tabular-nums;

  body{background:var(--b-bg);font-family:"DM Sans","DM Sans Fallback",sans-serif}

  /* Sidebar */
  .sidebar{background:var(--b-bg);border-right:1px solid var(--b-line)}
  .sidebar .si{color:var(--b-muted);border-radius:8px}
  .sidebar .si:hover{background:var(--b-fill);color:var(--b-green-d)}
  .sidebar .si.active,.sidebar .si.active:hover{background:var(--b-green-d);color:#fff}
  #cs-toast svg{stroke:var(--b-muted)}

  /* Top nav, sub-nav, tabs: active = green text + 2px underline, no pill */
  .topnav{background:#fff;border-bottom:1px solid var(--b-line);box-shadow:none}
  /* Selected state (top nav, sub-tabs, chips, segmented controls): green fill,
     white text, the sidebar tile's 8px radius. Unselected: body text, no fill */
  .nav-btn,.subnav-link,.tab-btn,.fp-tab-btn,.tab,.import-type-pill,.mob-rsn-pill{background:transparent;color:var(--b-body);border-radius:8px;box-shadow:none}
  .nav-btn:hover,.subnav-link:hover,.tab-btn:hover,.fp-tab-btn:hover,.tab:hover,.import-type-pill:hover,.mob-rsn-pill:hover{background:var(--b-fill);color:var(--b-body)}
  .nav-btn.active,.subnav-link.active,.tab-btn.active,.fp-tab-btn.active,.tab.active,.import-type-pill.active,.mob-rsn-pill.active,
  .nav-btn.active:hover,.subnav-link.active:hover,.tab-btn.active:hover,.fp-tab-btn.active:hover,.tab.active:hover,.import-type-pill.active:hover,.mob-rsn-pill.active:hover{background:var(--b-green-d);color:#fff;box-shadow:none}

  /* Sticky sub-tab bar: solid, full width, directly under the top nav */
  .tab-bar{position:sticky;top:var(--th,var(--tb-h,56px));z-index:40;background:var(--b-bg);border:0;border-bottom:1px solid var(--b-line);border-radius:0;box-shadow:none;
    margin:0 -32px 20px;padding:8px 32px}
  .tab-panel [id],.tab-panel{scroll-margin-top:calc(var(--th,var(--tb-h,56px)) + 64px)}
  main [id]{scroll-margin-top:calc(var(--th,var(--tb-h,56px)) + 16px)}
  .nav-badge,.nav-btn-wrap .nav-badge{background:var(--b-fill);color:var(--b-muted);border:none;box-shadow:none}

  /* Buttons */
  .btn{border-radius:8px}
  .btn-primary,.btn-dark{background:var(--b-green-d);color:#fff;border-color:var(--b-green-d)}
  .btn-primary:hover,.btn-dark:hover{background:#15632f;border-color:#15632f}
  .btn-outline,.btn-date{background:transparent;color:var(--b-text);border:1px solid var(--b-line)}
  .btn-outline:hover,.btn-date:hover{background:var(--b-fill);border-color:var(--b-line)}

  /* Mobile drawer (topbar.js) */
  .mob-nav-item{color:var(--b-text)}
  .mob-nav-item.active,.mob-nav-item:hover{background:var(--b-fill);color:var(--b-green-d)}
  .mob-nav-item svg,.mob-nav-section{color:var(--b-muted)}
  .mob-drawer-head{border-bottom-color:var(--b-line)}

  /* Deal quick-nav (deal-quicknav.js) */
  .dq-icon{display:none}
  .dq-link{border:1px solid var(--b-line);border-radius:8px}
  .dq-link:hover{border-color:var(--b-green-d);background:#fff}


  /* Cards: white, 1px line, 2px green top, no shadow, radius 12 */
  .stat-card,.table-card,.sc,.cc,.tc,.card,.sec,.page-header,.analyst-strip,.strip-card,.chart-card,
  .ai-summary,.notif-item,.report-card,.template-card,.builder-form,.dd-table,.pmod,.mod-card,.feat-card,
  .mod-stat,.stat,.sources-row,.chart-wrap,#mapContainer,.ctrl-bar,.fp-sec,.cp-ph,.fp-deal-header,
  .hero-section,.mod-hero{
    background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);
    border-radius:12px;box-shadow:none}
  .stat-card:hover,.table-card:hover,.sc:hover,.cc:hover,.tc:hover,.card:hover,.notif-item:hover,
  .report-card:hover,.template-card:hover,.pmod:hover,.mod-card:hover,.feat-card:hover,.stat:hover,
  .prompt-card:hover,.founder-card:hover{box-shadow:none;transform:none;border-color:var(--b-line);border-top-color:var(--b-green)}
  .page-header::before,.cp-ph::before,.mod-card::before,.pmod::before,.feat-card::before,.report-stripe,
  .hero-gridbg,.hero-glow,.mod-hero-gridbg,.mod-hero-glow{display:none}
  .mod-card.soon{background:#fff;opacity:1}
  .mod-hero-title,.hero-section h1,.hero-section h2{color:var(--b-text)}
  .mod-hero-sub,.hero-section p{color:var(--b-muted)}
  .sec-h,.builder-form-footer,.report-footer{background:#fff}
  .msg.ai .bubble,.input-card,.cp-lock-msg,.fp-lock-msg{box-shadow:none;border-radius:12px}
  .input-card{border-color:var(--b-line)}

  /* Row accent bars off; unread dots green */
  .deal-stripe{background:var(--b-line)}
  .ai-summary{border-left:1px solid var(--b-line)}
  .notif-item.unread::before{display:none}
  .notif-item.unread{border-color:var(--b-line)}
  .agent-block{border-left-color:var(--b-line)}
  .agent-block.synthesis{background:#fff}
  .unread-dot,.notif-dot{background:var(--b-green-d)}
  .act-dot,.cs-dot,.sector-dot{background:#D6D4CE}

  /* Status pills: muted semantic on a light tint of itself */
  .badge-green,.b-gr,.b-perf,.cs-pass,.ds-recv,.ph-badge.perf,.pmod-badge.live,.mod-badge.live,.feat-badge.live{
    background:var(--b-pass-t);color:var(--b-pass);border-color:transparent;font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .badge-amber,.b-am,.b-watch,.cs-warn,.ds-pend,.ph-badge.watch,.fp-cs-warn,.td-warn{
    background:var(--b-watch-t);color:var(--b-watch);border-color:transparent}
  .b-re,.b-concern,.cs-fail,.ds-late,.ph-badge.concern,.notif-tag.breach,.td-red{
    background:var(--b-breach-t);color:var(--b-breach);border-color:transparent}
  .vae-box.ok,.cp-ratio-box.ok{background:var(--b-pass-t);border-color:transparent}
  .vae-box.warn,.cp-ratio-box.warn{background:var(--b-watch-t);border-color:transparent}
  .vae-box.bad,.cp-ratio-box.bad{background:var(--b-breach-t);border-color:transparent}
  .mod-card.togglable.enabled .mod-badge::before{content:none}

  /* Categorical pills: neutral */
  .b-bl,.b-pu,.b-navy,.type-pill,.t-draw,.t-repay,.t-ext,.t-rel,.perm-badge,.pb-read,.pb-none,.pb-full,
  .sector-count,.dd-tag-red,.dd-tag-amber,.dd-tag-blue,.dd-tag-purple,.dd-tag-slate,.dd-mini-tag,
  .notif-tag.transaction,.notif-tag.import,.notif-tag.system,.schedule-daily,.schedule-weekly,.schedule-monthly,
  .lens-ff,.lens-bc,.fin-a,.fin-e,.cs-bcred-chip,.last-updated,.ph-badge,.audit-row-type,.type-tape,.type-deal,
  .type-cov,.type-db,.fp-badge-gen,.fp-tape-kv-b,.demo-badge,.ctrl-asset-badge,.attach-pill.pdf,
  .pmod-badge.soon,.mod-badge.soon,.feat-badge.soon,.wip-pill,.edit-hint,.mod-hero-badge,
  .beta-badge,.input-beta,.ai-bar-beta,
  .tr > .td:nth-child(2) .badge,.deal-row > .td:nth-child(2) .badge{
    background:var(--b-fill);color:var(--b-body);border:1px solid var(--b-line);box-shadow:none;font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .beta-badge,.input-beta,.ai-bar-beta{color:var(--b-muted);border-color:transparent}

  /* Eyebrows */
  .report-type-label,.section-label,.heat-th,.dd-th,.notif-group-label,.stat-label,.sources-lbl,
  .ctrl-dropdown-label,.ctrl-controls-label,.mod-hero-eyebrow,.mod-stat-lbl,.feat-soon-txt,.agent-label,
  .breadcrumb{
    font-family:"DM Sans","DM Sans Fallback",sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted)}
  .section-label::after{background:var(--b-line)}

  /* Icons: bare, #6B6B66, no tile; empty emoji tiles hidden */
  .report-icon,.template-icon,.notif-icon-wrap,.perm-icon,.pmod-ico,.mod-ico,.feat-ico,.fp-dh-icon,.cp-ph-icon{
    background:transparent;border:none;box-shadow:none;color:var(--b-muted)}
  .report-icon svg,.template-icon svg,.notif-icon-wrap svg,.perm-icon svg,.pmod-ico svg,.mod-ico svg,.feat-ico svg,
  .ai-summary-header svg,.ai-icon{stroke:var(--b-muted);color:var(--b-muted)}
  .sector-icon:empty,.pi:empty,.ph-icon:empty,.prompt-card-icon:empty{display:none}
  .ph-icon{background:transparent;border:none;box-shadow:none;color:var(--b-muted)}

  /* Selected states: 1px green border on white */
  .template-card.selected,.metric-chip.on,.format-pill.on,.delivery-option.on,.period-tab.active,
  .import-type-pill.active,.model-option-active,.sb-item.active,.ctrl-recent-item.selected,.edit-toggle.unlocked,
  .mob-nav-active,.msg-act-up.active,.msg-act.copied{
    background:#fff;border:1px solid var(--b-green-d);color:var(--b-green-d);box-shadow:none}
  .template-card.selected .template-check{background:#fff;border-color:var(--b-green-d);color:var(--b-green-d)}
  .delivery-option.on .delivery-name,.delivery-option.on .delivery-top svg{color:var(--b-green-d);stroke:var(--b-green-d)}
  body.edit-mode [contenteditable="true"],body.edit-mode [contenteditable="true"]:focus{background:#FAFAF9;border-bottom-color:var(--b-line)}

  /* Segmented tabs inside pages: underline */
  .fp-tab-bar,.tabs{background:transparent;box-shadow:none;border:none;border-bottom:1px solid var(--b-line);border-radius:0}
  .tab:hover{background:transparent;color:var(--b-text)}

  /* More buttons */
  .btn-g,.btn-excel,.spread-fin-btn,.bug-btn-send,.btn-export,.ctrl-new-btn,.gen-facility-btn,.msg-edit-submit{
    background:var(--b-green-d);color:#fff;border-color:var(--b-green-d);border-radius:8px;box-shadow:none;transform:none}
  .btn-o,a.btn[download],.followup-btn,.subnav-date{
    background:transparent;color:var(--b-text);border:1px solid var(--b-line);border-radius:8px}
  .danger-zone{background:var(--b-breach-t);border-color:#FECDCA}
  .dz-title,.dz-sub{color:var(--b-breach)}
  .dz-btn{color:var(--b-breach);border-color:#FECDCA;background:#fff}
  .av{background:var(--b-body)}
  .msg.user .msg-av{background:var(--b-green-d);color:#fff}
  .msg.user .bubble{background:var(--b-fill)}

  /* AI summaries / notifications: no colored inline text */
  .hl-red,.hl-amber,.hl-green,.highlight-red,.highlight-amber,.highlight-green{color:inherit;background:none;font-weight:700}
  .ai-feedback-btn:hover{color:var(--b-text);border-color:var(--b-line);background:var(--b-fill)}

  /* Tables: no green slabs */
  .fin-tbl th,.fin-table th,.fp-tape-table thead th,.tbl tr.total td,.fin-tbl tr.fin-total td,.bridge-total,
  .cp-fin-tbl tr.cp-fin-total td,.gen-facility-bar{background:var(--b-fill);color:var(--b-text)}
  .fin-tbl td.pos,.bridge-val.pos{color:inherit}
  .tv-table tbody tr:hover td,.fp-tape-table tbody tr:hover td,.tr:hover{background:#FAFAF9}

  /* Charts and progress */
  .stat-chart [stroke="#6366f1"]{stroke:var(--b-green-d)}
  .stat-chart [stop-color="#6366f1"]{stop-color:var(--b-green-d)}
  .bf,.fp-hb-fill,.fp-ind-bar-fill{background:var(--b-green-d)}
  .bf[style*="#f59e0b"]{background:var(--b-watch-fill)!important}

  /* Inline styles written in markup or by JS that CSS can only reach with !important */
  span[style*="background:#e53935"]{background:var(--b-green-d)!important}
  #cal-modal > div:first-child{background:#fff!important;color:var(--b-text)!important;border-bottom:1px solid var(--b-line)}
  #cal-modal button[onclick="applyCalDate()"]{background:var(--b-green-d)!important;color:#fff!important}

  /* Fund finance family */
  .deal-header,.deal-card,.stat-box{background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);border-radius:12px;box-shadow:none}
  .deal-card:hover{box-shadow:none;transform:none}
  .b-sub,.b-abl,.b-rat,.dt-sub,.dt-abl,.dt-rat,.b-indigo,.pill-indigo,.p-indigo,.p-blue,.p-amber,.tn-badge,.irev,.i2l,.kv-b{
    background:var(--b-fill);color:var(--b-body);border:1px solid var(--b-line);box-shadow:none}
  .cs-pass,.pill-gr{background:var(--b-pass-t);color:var(--b-pass)}
  .elig-warn,.pill-am,.due-soon,.cov-warn,.kv-a{background:var(--b-watch-t);color:var(--b-watch)}
  .cov-fail,.kv-r,.sna{background:var(--b-breach-t);color:var(--b-breach)}
  .dh-icon,.dc-icon,.lt-head-icon,.lt-opt-icon,.action-icon{background:transparent;border:none;box-shadow:none;color:var(--b-muted)}
  .dh-icon:empty,.dc-icon:empty,.action-icon:empty,.wip-icon:empty{display:none}
  .lt-opt:hover{border-color:var(--b-green-d)}
  .hb-fill,.ind-bar-fill,.util-bar-fill,.util-fill,.bar-fill,.lbf{background:var(--b-green-d)}
  .fd-modal,.lt-modal{font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .sl-val{font-family:"DM Sans","DM Sans Fallback",sans-serif}
  input.si:focus,select.flt:focus{outline:none;border-color:var(--b-green-d);box-shadow:none}
  .watch-tooltip{box-shadow:none}

  /* Consumer, real assets, trade family */
  .placeholder-module{background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);border-radius:12px;box-shadow:none}
  .chart-tip{box-shadow:none;border:1px solid var(--b-line)}
  .gp-icon,.gp-trigger-icon,.gb-icon,.fd-head-icon,.fd-opt-icon{background:transparent;border:none;box-shadow:none;color:var(--b-muted)}
  .gp-icon:empty,.gp-trigger-icon:empty,.gb-icon:empty,.fd-head-icon:empty,.lt-head-icon:empty{display:none}
  .cs-watch,.ds-pending,.due-soon,.kv-a,.la,.lo,.kv-o,.days-30,.days-60,.s-30,.st-30,.s-settled,.s-60,.p-am,.hb-fill-am,.elig-warn{
    background:var(--b-watch-t);color:var(--b-watch)}
  .ds-funded,.due-ok,.kv-g,.lg,.days-ok,.st-ok,.s-cur,.s-pif{background:var(--b-pass-t);color:var(--b-pass)}
  .due-overdue,.kv-r,.lr,.days-90,.st-90,.s-90,.st-60,.p-re,.s-repo,.s-reo,.el-n,.lm-max,.lv-cov,.dn{
    background:var(--b-breach-t);color:var(--b-breach)}
  .kv-g,.kv-a,.kv-r,.lg,.la,.lr,.lo,.kv-o,.trend-up,.dn,.el-n,.lm-max,.lv-cov{background:none}
  .b-blue,.b-or,.b-earth,.b-slate,.b-teal,.b-tf,.ds-final,.pill-bl,.dt-him,.dt-npl,.dt-cc,.dt-auto,.dt-stud,.deal-type,
  .lt-new,.lt-used,.ltff,.ltfh,.ltbr,.ltgu,.at-cc,.at-pl,.at-med,.p4,.pinstall,.s-lit,
  .s-aero,.s-cons,.s-ene,.s-hlt,.s-ind,.s-tech,.p-slate,.p-earth,.p-teal,.tc-count,.gp-badge,.guarantee-banner{
    background:var(--b-fill);color:var(--b-body);border:1px solid var(--b-line)}
  .gb-text{color:var(--b-body)}
  .guarantee-panel{border-left-color:var(--b-line)}
  .lennar-panel{background:var(--b-fill)}
  .prog-fill,.geo-fill,.eq-fill,.merch-fill,.seg-fill{background:var(--b-green-d)}
  .sbar-seg+.sbar-seg{box-shadow:inset 2px 0 0 #fff}
  .bk-0{background:var(--b-pass-t);color:var(--b-pass)}
  .bk-1{background:var(--b-watch-t);color:var(--b-watch)}
  .bk-2,.bk-3{background:var(--b-breach-t);color:var(--b-breach)}
  .tl-dot.active{background:#fff;border:1px solid var(--b-green-d)}
  .tl-dot.done{background:var(--b-green-d)}
  .fd-opt:hover{border-color:var(--b-green-d)}
  input.sinp:focus{outline:none;border-color:var(--b-green-d);box-shadow:none}
  tbody tr:hover td{background:#FAFAF9}
  thead th{background:#FAFAF9;color:var(--b-muted)}
  .tbl tr.flagged td{background:var(--b-watch-t)}
  .mono,.sl-val,.chart-tip-val{font-variant-numeric:tabular-nums}
  .kpi-val,.perf-val,.sc-v,.kv,.stat-val,.dc-kpi-val,.lv-val,.lv-box-val,.bk-val,.tn-title,.tape-title,tr.totals td{font-weight:700}

  /* Type: data stays mono; labels and figures are DM Sans */
  .think-label,.tv-kv,.note,.radius-select,.ctrl-recent-price,.field-val.mono{font-family:"DM Sans","DM Sans Fallback",sans-serif}

  /* Type: DM Sans everywhere; no Instrument Serif inside the platform */
  em,i,.serif,[class*="serif"]{font-family:"DM Sans","DM Sans Fallback",sans-serif}
}

/* Transactions placeholder (page moves to the event ledger) */
:is(html:has(script[src*="topbar.js"]), .pm-demo){
  .txn-placeholder{background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);border-radius:12px;padding:40px 36px;max-width:640px;margin-top:8px}
  .txn-placeholder-eyebrow{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted);margin-bottom:10px}
  .txn-placeholder-title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--b-text);margin-bottom:10px}
  .txn-placeholder-body{font-size:14px;line-height:1.6;color:var(--b-body);margin:0}
}

/* Modals and overlays follow the card rule (panels are inline-styled, hence !important) */
:is(html:has(script[src*="topbar.js"]), .pm-demo){
  #cal-modal,#txn-modal > div,#import-modal > div,.fd-modal,.lt-modal,.bug-modal,.mob-sheet{
    border-radius:12px!important;box-shadow:none!important;border:1px solid var(--b-line)!important;border-top:2px solid var(--b-green)!important}
  .mob-sheet{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}
  #txn-modal,#import-modal{background:rgba(0,0,0,.45)!important;backdrop-filter:none!important}
  #txn-modal div[style*="#e8f5ec"],#import-modal div[style*="#e8f5ec"]{background:transparent!important}
  #import-modal div[style*="border-bottom:1px solid #f0f4f8"]{border-bottom-color:var(--b-line)!important}
  .ctrl-dropdown{box-shadow:none;border:1px solid var(--b-line);border-radius:12px}
}

/* Login page: same platform rule */
html:has(#usernameInput){
  body{background:var(--b-bg);font-family:"DM Sans","DM Sans Fallback",sans-serif}
  #glcanvas,.noise{display:none}
  .card{background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);border-radius:12px;box-shadow:none;backdrop-filter:none}
  .card-title{color:var(--b-text);font-weight:700}
  .card-sub,.card-footer{color:var(--b-muted)}
  .field label,.divider,.back-link{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
  .divider::before,.divider::after{background:var(--b-line)}
  .field input{background:#fff;border:1px solid var(--b-line);border-radius:8px;box-shadow:none}
  .field input:focus{border-color:var(--b-green-d);box-shadow:none}
  .btn-login{background:var(--b-green-d);color:#fff;border:1px solid var(--b-green-d);border-radius:8px;box-shadow:none}
  .btn-login:hover{background:#15632f;transform:none;box-shadow:none}
  .btn-demo{background:transparent;color:var(--b-text);border:1px solid var(--b-line);border-radius:8px}
  .btn-demo:hover{background:var(--b-fill);border-color:var(--b-line);color:var(--b-text)}
  .card-footer a{color:var(--b-green-d)}
  .error-msg{color:var(--b-breach);background:var(--b-breach-t);border-color:#FECDCA}
  .error-msg svg{stroke:var(--b-breach)}
}

/* Phones: pages force their own active sub-tab/nav colors with !important */
@media (max-width:768px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo) .subnav-link.active,
  :is(html:has(script[src*="topbar.js"]), .pm-demo) .nav-btn.active,
  :is(html:has(script[src*="topbar.js"]), .pm-demo) .tab-btn.active{background:var(--b-green-d)!important;color:#fff!important;box-shadow:none!important;border-radius:8px!important}
}

/* tf1-tape-msc-ar uses purple for 90D+ (breach) and teal for current (pass) */
:is(html:has(script[src*="topbar.js"]):has(.s-aero), .pm-demo){--purple:var(--b-breach);--teal:var(--b-pass)}

/* Overnight Digest, Needs attention, bell dropdown, saved questions */
:is(html:has(script[src*="topbar.js"]), .pm-demo){
  .digest-card,.attention-card{background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);border-radius:12px;padding:20px 24px;margin-bottom:16px}
  .digest-head,.attention-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
  .digest-title,.attention-title{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--b-text);display:flex;align-items:center;gap:8px}
  .digest-beta{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--b-fill);color:var(--b-muted);padding:2px 7px;border-radius:99px}
  .digest-meta,.attention-count{margin-left:auto;font-size:12px;color:var(--b-muted)}
  .digest-body{margin:0;font-size:13.5px;line-height:1.7;color:var(--b-body);max-width:92ch}
  .digest-body strong{color:var(--b-text);font-weight:600}
  .digest-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--b-line)}
  .digest-stat{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--b-muted)}
  .digest-stat strong{color:var(--b-text);font-weight:600}
  .digest-stat svg{width:13px;height:13px;stroke:var(--b-muted);flex-shrink:0}
  .digest-feedback{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--b-muted)}
  .digest-fb{width:28px;height:28px;border-radius:6px;border:1px solid var(--b-line);background:#fff;color:var(--b-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
  .digest-fb:hover{color:var(--b-green-d);background:var(--b-fill)}
  .digest-fb[aria-pressed="true"]{background:var(--b-green-d);border-color:var(--b-green-d);color:#fff}
  .digest-fb svg{width:13px;height:13px}
  &:has(#overnight-digest) .subnav{padding-block:10px}

  /* Rows shared by the Dashboard list and the bell dropdown */
  .attention-list{display:flex;flex-direction:column}
  .att-row{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;padding:11px 4px;border-top:1px solid var(--b-line);text-decoration:none;color:inherit}
  .attention-list .att-row:first-child{border-top:none}
  .att-row:hover{background:var(--b-fill)}
  .att-row:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
  .att-pill{justify-self:start;font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap}
  .att-breach{background:var(--b-breach-t);color:var(--b-breach)}
  .att-watch{background:var(--b-watch-t);color:var(--b-watch)}
  .att-pass{background:var(--b-pass-t);color:var(--b-pass)}
  .att-main{display:flex;flex-direction:column;gap:2px;min-width:0}
  .att-title{font-size:13.5px;font-weight:600;color:var(--b-text)}
  .att-detail{font-size:12.5px;color:var(--b-muted);line-height:1.45}
  .att-where{font-size:12px;color:var(--b-green-d);font-weight:500;white-space:nowrap}
  @media (max-width:640px){
    .digest-card,.attention-card{padding:16px}
    .digest-feedback{margin-left:0}
    .att-row{grid-template-columns:1fr;gap:4px}
    .att-where{white-space:normal}
  }

  .notif-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 3px;border-radius:99px;background:var(--b-green-d);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1.5px solid #fff;pointer-events:none}
  .bell-dd{position:fixed;z-index:10000;width:min(380px,calc(100vw - 16px));max-height:min(480px,calc(100vh - 80px));max-height:min(480px,calc(100dvh - 80px));overflow-y:auto;background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);border-radius:12px;box-shadow:0 12px 32px rgba(26,26,26,.12);font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .bell-dd[hidden]{display:none}
  .bell-dd-head{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px 8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted)}
  .bell-dd-count{text-transform:none;letter-spacing:0;font-weight:500}
  .bell-dd-row{grid-template-columns:56px 1fr;padding:10px 14px}
  .bell-dd-row .att-where{display:none}
  .bell-dd-row .att-title{font-size:13px}
  .bell-dd-row .att-detail{font-size:12px}
  .bell-dd-foot{display:block;padding:11px 14px;border-top:1px solid var(--b-line);font-size:12.5px;font-weight:600;color:var(--b-green-d);text-decoration:none}
  .bell-dd-foot:hover{background:var(--b-fill)}

  /* Intelligence: Save / Schedule, Saved group, saved answers */
  .msg-act-save.active,.msg-act-sched.active{color:var(--b-green-d);background:var(--b-pass-t)}
  .msg-act-save.active svg{fill:currentColor}
  .sb-saved .sb-item-meta{color:var(--b-muted)}
  .sb-group-flash{color:var(--b-green-d);background:var(--b-pass-t);border-radius:6px;transition:background .6s,color .6s}
  .sv-pop{position:fixed;z-index:10000;width:264px;background:#fff;border:1px solid var(--b-line);border-top:2px solid var(--b-green);border-radius:12px;box-shadow:0 12px 32px rgba(26,26,26,.12);padding:14px;font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .sv-pop[hidden]{display:none}
  .sv-pop-h{font-size:13.5px;font-weight:700;color:var(--b-text);margin-bottom:10px}
  .sv-pop-l{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted);margin:10px 0 6px}
  .sv-seg{display:flex;flex-wrap:wrap;gap:6px}
  .sv-seg button{flex:1 1 auto;font:500 12.5px "DM Sans","DM Sans Fallback",sans-serif;padding:6px 10px;border-radius:8px;border:1px solid var(--b-line);background:#fff;color:var(--b-body);cursor:pointer}
  .sv-seg button:hover{background:var(--b-fill)}
  .sv-seg button.on{background:var(--b-green-d);border-color:var(--b-green-d);color:#fff}
  .sv-pop-f{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
  .sv-pop-f button{font:600 12.5px "DM Sans","DM Sans Fallback",sans-serif;padding:7px 12px;border-radius:8px;cursor:pointer}
  .sv-cancel{background:#fff;border:1px solid var(--b-line);color:var(--b-body)}
  .sv-ok{background:var(--b-green-d);border:1px solid var(--b-green-d);color:#fff}
  #sv-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:var(--b-text);color:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;padding:10px 18px;border-radius:10px;z-index:10001;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px)}
  #sv-toast.show{opacity:1;transform:translate(-50%,0)}
  .sv-block{border-left:3px solid var(--b-line);background:var(--b-bg);border-radius:0 8px 8px 0;padding:14px 16px;margin-bottom:12px}
  .sv-label{margin-bottom:10px}
  .sv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:12px}
  .sv-kpi{background:#fff;border:1px solid var(--b-line);border-radius:8px;padding:10px 12px}
  .sv-kpi-l{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted)}
  .sv-kpi-v{font-size:18px;font-weight:700;color:var(--b-text);margin-top:2px}
  .sv-kpi-s{font-size:11.5px;color:var(--b-muted)}
  .sv-table{width:100%;border-collapse:collapse;font-size:12.5px;margin:4px 0 8px;display:block;overflow-x:auto}
  .sv-table th{text-align:left;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted);padding:6px 10px 6px 0;border-bottom:1px solid var(--b-line);white-space:nowrap}
  .sv-table td{padding:8px 10px 8px 0;border-bottom:1px solid var(--b-line);color:var(--b-body);vertical-align:top}
  .sv-table a{color:var(--b-green-d);text-decoration:none;font-weight:500}
  .sv-h{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted);margin:14px 0 6px}
  .sv-muted{color:var(--b-muted);font-size:12.5px;line-height:1.5}
  .sv-list{margin:4px 0 8px 18px;padding:0;font-size:13px;line-height:1.6;color:var(--b-body)}
}

/* Daily Brief (dashboard.html). Instrument Serif is used here only,
   for the masthead and story headlines. DM Mono only for times, dates and IDs; figures are DM Sans
   with tabular lining numerals (.fp-num). */
:is(html:has(script[src*="topbar.js"]):has(.fp), .pm-demo){
  --fp-serif:"Instrument Serif","Instrument Serif Fallback",Georgia,serif;
  --fp-mono:"DM Mono","DM Mono Fallback",ui-monospace,monospace;

  .fp{padding:0 32px 48px;box-sizing:border-box;width:100%;color:var(--b-text)}

  /* Intelligence: the conversations sidebar and the thread. Messages sit in
     a 760px column; today's Daily Brief breaks out of it as a live artifact
     (up to 1200px). The composer floats at the bottom over a fade and the
     thread scrolls under it. The Brief reflows by its own width (container
     "brief"): the rail stacks below 1100px. */
  .main{min-height:0}
  .ic{--ic-side:264px;position:relative;display:grid;grid-template-columns:var(--ic-side) minmax(0,1fr);height:calc(100vh - var(--tb-h,56px));height:calc(100dvh - var(--tb-h,56px));overflow:hidden;background:var(--b-bg)}
  &.cv-collapsed .ic{--ic-side:0px}
  .ic-side{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;border-right:1px solid var(--b-line);background:var(--b-bg)}
  &.cv-collapsed .ic-side{visibility:hidden;border-right:0}
  .ic-chat{min-width:0;min-height:0;display:flex}
  .ix-panel.ix-pane{position:static;z-index:auto;width:100%;max-width:760px;height:100%;transform:none;border-left:0;box-shadow:none;transition:none;background:#fff}
  .ic .ix-panel.ix-pane{position:relative;max-width:none;background:var(--b-bg)}
  .ix-pane .ix-head{gap:8px;padding:0 8px}
  .ic .ix-pane .ix-head{background:#fff}
  .ix-pane .ix-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ix-pane .ix-new{margin-left:0}
  .ic-side-btn,.ix-pane .ix-hist{flex-shrink:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
  .ix-pane .ix-hist{width:32px;height:32px}
  .ic-side-btn:hover,.ix-pane .ix-hist:hover{background:var(--b-fill);color:var(--b-text)}
  .ic-side-btn:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
  .ix-note p{margin:0;padding:8px 12px;border-radius:8px;background:var(--b-fill);font-size:13px;line-height:1.45;color:var(--b-body)}
  .ix-note .ix-link{padding:0;border:0;background:none;font:inherit;font-weight:500;color:var(--b-green-d);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
  .ix-follow-open{margin-top:12px}
  .ix-time{margin:0 0 6px;font:12px/1 var(--fp-mono);color:var(--b-muted)}
  .ix-edition{margin-bottom:32px}
  /* The column; the thread's end clears the composer and its fade */
  .ic .ix-pane .ix-msgs{padding:24px 24px calc(264px + var(--kb,0px) + env(safe-area-inset-bottom))}
  .ic .ix-pane .ix-msg,.ic .ix-pane .ix-empty{max-width:760px;margin-left:auto;margin-right:auto}
  .ic .ix-pane .ix-msg.ix-edition{margin-bottom:16px}
  .ic .ix-pane .ix-msg[data-edition="today"]{max-width:none;margin-bottom:32px}
  .bl-line{max-width:760px;margin:8px auto 12px!important;font-size:15px;color:var(--b-body)}
  .bl-by{font-family:var(--fp-mono);font-size:12px;color:var(--b-muted)}
  .bl-slot{width:min(1200px,100%);margin:0 auto}
  .ic .ix-pane .ix-edition > .ix-answer{max-width:none}
  /* The composer, pinned at the bottom centre; the thread fades under it */
  /* bottom: above the on-screen keyboard (--kb from topbar.js; 0 without one), at any width */
  .ic .ix-pane .ix-foot{position:absolute;left:0;right:0;bottom:var(--kb,0px);z-index:3;padding:0 24px calc(20px + env(safe-area-inset-bottom));background:var(--b-bg)}
  &.kb-open .ic .ix-pane .ix-foot{padding-bottom:12px}
  .ic .ix-pane .ix-foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:96px;pointer-events:none;background:linear-gradient(to bottom,rgba(252,252,251,0),#FCFCFB)}
  @supports ((backdrop-filter:blur(6px)) or (-webkit-backdrop-filter:blur(6px))){
    .ic .ix-pane .ix-foot::before{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 70%);mask-image:linear-gradient(to bottom,transparent,#000 70%)}
  }
  .ic .ix-pane .ix-composer{max-width:760px;margin:0 auto;padding:10px 12px 10px;background:#fff;border:1px solid #E7E5E0;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
  .ic .ix-pane .ix-composer:focus-within{box-shadow:0 0 0 2px #1a7a3c,0 8px 24px rgba(0,0,0,.08);border-color:transparent}
  .ic .ix-pane .ix-composer .ix-row{border:0;padding:0 0 0 4px}
  .ic .ix-pane .ix-composer .ix-row:focus-within{border:0}
  .ic .ix-pane .ix-composer .ix-at{left:0;right:0}
  /* The sticky strip: today's artifact, while you are in the conversation below */
  .bl-sticky{position:absolute;top:56px;left:0;right:0;z-index:4;display:flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 24px;
    background:rgba(255,255,255,.97);border-bottom:1px solid var(--b-line);font:400 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);
    opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility 0s .2s}
  .bl-sticky.on{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s,visibility 0s}
  .bl-sep{color:#B8B6AF}
  .bl-back{height:28px;padding:0 10px;border:1px solid var(--b-line);border-radius:8px;background:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-green-d);cursor:pointer}

  /* The live artifact */
  .bl-art,.bl-past{background:#fff;border:1px solid #E7E5E0;border-radius:12px;overflow:clip}
  .bl-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-height:52px;padding:8px 10px 8px 20px;border-bottom:1px solid var(--b-line)}
  .bl-title{margin:0;font:600 15px/1.2 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
  .bl-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-pass)}
  .bl-dot{width:7px;height:7px;border-radius:50%;background:var(--b-green);animation:fpLive 1.6s ease-in-out infinite}
  .bl-upd{font-size:13px;color:var(--b-muted)}
  .bl-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--b-line);border-radius:8px;background:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer;white-space:nowrap}
  .bl-btn:hover,.bl-back:hover{background:var(--b-fill)}
  .bl-btn:focus-visible,.bl-back:focus-visible,.bl-strip:focus-visible,.bl-card:focus-visible,.bl-past-h:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
  .bl-eds{position:relative}
  .bl-menu{position:absolute;right:0;top:100%;z-index:5;margin-top:4px;min-width:210px;padding:4px;background:#fff;border:1px solid var(--b-line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
  .bl-menu[hidden]{display:none}
  .bl-menu button{display:block;width:100%;padding:8px 12px;border:0;border-radius:8px;background:none;text-align:left;font:400 14px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);cursor:pointer}
  .bl-menu button:hover,.bl-menu button:focus-visible{background:var(--b-fill);outline:0}
  /* Present from the first paint; one line, so an update never moves anything */
  .bl-strip{display:block;width:100%;height:36px;box-sizing:border-box;margin:0;padding:0 20px;border:0;border-bottom:1px solid var(--b-line);background:#fff;
    text-align:left;font:400 13px/36px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bl-strip.on{color:var(--b-body);background:var(--b-pass-t);cursor:pointer}
  .bl-strip:disabled{cursor:default}
  .bl-body{container:brief/inline-size}
  .bl-card{display:none}
  .bl-collapsed .bl-body{display:none}
  .bl-collapsed .bl-card{display:flex;flex-direction:column;gap:4px;width:100%;padding:14px 20px;border:0;background:#fff;text-align:left;cursor:pointer;font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .bl-card-h{font-family:var(--fp-serif);font-size:22px;line-height:1.2;color:var(--b-text)}
  .bl-card-s{font-size:13px;color:var(--b-muted)}
  /* Past editions: frozen cards that open inline */
  .bl-past-h{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:0;background:none;text-align:left;font:400 14px/1.4 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer}
  .bl-past-h:hover{background:var(--b-fill)}
  .bl-past-t{flex:1;min-width:0}
  .bl-past-h svg{flex-shrink:0;color:var(--b-muted);transition:transform .2s}
  .bl-past-h[aria-expanded="true"] svg{transform:rotate(180deg)}
  .bl-past-body{border-top:1px solid var(--b-line)}
  .bl-past-body[hidden]{display:none}
  .bl-frozen .bl-head{min-height:44px}
  .fp-frozen{padding-top:20px!important}
  /* An item an intraday update touched: its tag's space is there from the start */
  .fp-upd{display:inline-block;margin-left:8px;padding:1px 6px;border-radius:4px;background:var(--b-pass-t);color:var(--b-green-d);
    font:600 11px/1.4 "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:.02em;vertical-align:middle;white-space:nowrap;visibility:hidden}
  .fp-upd.on{visibility:visible}
  .fp-flash{animation:fpRow 1.6s ease-out}
  .fp-tip{position:fixed;z-index:1200;max-width:260px;padding:6px 10px;border-radius:8px;background:#1a1a1a;color:#fff;font:500 13px/1.35 "DM Sans","DM Sans Fallback",sans-serif;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.18)}
  /* The ledger rail: rows waiting above the box slide in by transform */
  .fp-feed-in{transform:translateY(calc(var(--pending, 0) * -1 * var(--fp-row-h)));transition:transform .5s ease-out}
  .fp-feed-in.fp-still{transition:none}

  /* The viewer: "Expand" opens the live brief full screen under the top bar */
  .bc-art{display:none;position:fixed;top:var(--tb-h,56px);left:0;right:0;bottom:0;z-index:60;flex-direction:column;min-width:0;min-height:0;background:var(--b-bg)}
  &.bc-view .bc-art{display:flex}
  &.bc-view{overflow:hidden}
  .bc-art-head{flex-shrink:0;height:48px;box-sizing:border-box;display:flex;align-items:center;gap:8px;padding:0 8px 0 24px;border-bottom:1px solid var(--b-line);background:#fff}
  .bc-art-title{flex:1;min-width:0;margin:0;font:600 14px/1.2 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bc-art-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;container:brief/inline-size}
  .bc-art-body > .fp{max-width:1248px;margin:0 auto}
  /* A labelled Close: the viewer covers the whole screen, so the way out is spelled out */
  .bc-close{height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px 0 10px;border:1px solid var(--b-line);border-radius:10px;background:#fff;color:var(--b-text);cursor:pointer;font:500 14px "DM Sans","DM Sans Fallback",sans-serif}
  .bc-close:hover{background:var(--b-fill);color:var(--b-text)}
  .bc-close:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
  @media (prefers-reduced-motion:reduce){.bl-sticky,.fp-feed-in,.bl-past-h svg{transition:none!important}.bl-dot,.fp-flash{animation:none!important}}

  /* Phones and small tablets: the sidebar is a drawer */
  @media (max-width:1023px){
    .ic{display:block}
    .ic-chat{height:100%}
    .ic-side{position:fixed;top:0;left:0;bottom:0;z-index:1001;width:320px;max-width:88vw;visibility:visible;transform:translateX(-100%);transition:transform .2s ease-out;box-shadow:0 8px 24px rgba(0,0,0,.08)}
    &.cv-open .ic-side{transform:none}
    &.cv-collapsed .ic-side{visibility:visible}
    .bc-art-head{padding:0 8px 0 16px}
  }
  @media (max-width:639px){
    /* The thread ends clear of the composer, the keyboard (--kb, topbar.js) and the home bar */
    .ic .ix-pane .ix-msgs{padding:16px 12px calc(248px + var(--kb,0px) + env(safe-area-inset-bottom));scroll-padding-top:56px}
    .ic .ix-pane .ix-foot{bottom:var(--kb,0px);padding:0 calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}
    &.kb-open .ic .ix-pane .ix-foot{padding-bottom:8px}
    /* One line: Live, counts, time, and a Back button with a full-size tap area */
    .bl-sticky{height:48px;white-space:nowrap}
    .bl-sticky > span{flex-shrink:0}
    .bl-back{position:relative;height:36px;padding:0 12px;flex-shrink:0}
    .bl-back::after{content:"";position:absolute;inset:-6px -4px}
    /* The update strip: two lines, its height fixed from the first paint */
    .bl-strip{height:56px;padding:8px 14px;line-height:20px;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
    .bl-head .bl-btn{height:44px;padding:0 12px}
    /* Touch targets: header icons at 44px; small controls keep their look and get a 44px hit area */
    .ic-side-btn,.ix-pane .ix-new,.cv-x{width:44px;height:44px}
    .cv-search{min-height:44px}
    .ix-pane .ix-scope,.ix-pane .ix-harness,.ix-pane .ix-bug,.ix-pane .ix-hist,.ix-pane .ix-send,
    .bl-art .fp-more,.bl-art .fp-rail-h a,.bl-art .fp-chain-h a,.bl-art .fp-group,.bl-art .fp-need a{position:relative}
    /* The composer on a phone: 36px chips in a 44px row, 40px buttons with 44px hit areas */
    .ix-pane .ix-chips{min-height:44px;align-items:center}
    .ix-pane .ix-scope,.ix-pane .ix-harness{height:36px;padding:0 10px}
    .ix-pane .ix-scope{overflow:visible}
    .ix-pane .ix-scope-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
    .ix-pane .ix-bug{width:40px;height:36px}
    .ix-pane .ix-hist,.ix-pane .ix-send{width:40px;height:40px}
    .ix-pane .ix-scope::after,.ix-pane .ix-harness::after,.ix-pane .ix-bug::after{content:"";position:absolute;inset:-4px -2px}
    .ix-pane .ix-hist::after,.ix-pane .ix-send::after{content:"";position:absolute;inset:-2px}
    .bl-art .fp-more::after,.bl-art .fp-rail-h a::after,.bl-art .fp-chain-h a::after,.bl-art .fp-group::after{content:"";position:absolute;inset:-12px -4px}
    .bl-past-h{min-height:48px}
    .bl-head{padding:8px 8px 8px 14px}
    .bl-strip{padding:0 14px}
    .bl-sticky{padding:0 8px 0 12px;gap:6px;font-size:12px}
    .bl-sticky .bl-hide-s{display:none}
  }
  @media (min-width:1024px){ .cv-x{display:none} }

  /* Story footers: the link to the facility or sub-book */
  .fp-story-foot{display:flex}
  /* 16px between a story's footer link and the next story's rule */
  .fp-edition > .fp-rule,.fp-frozen > .fp-rule,.fp-edition > .fp-cols4,.fp-frozen > .fp-cols4{margin-top:16px}
  .fp-edition > .fp-rule + .fp-story,.fp-frozen > .fp-rule + .fp-story{margin-top:20px}
  .fp-story-foot .fp-more::after{content:" →"}
  .fp a{color:var(--b-text);text-decoration:none}
  .fp a:hover{color:var(--b-green-d);text-decoration:underline}
  .fp-mono{font-family:var(--fp-mono)}
  .fp-muted{color:var(--b-muted)}
  .fp-pass{color:var(--b-pass)}
  .fp-watch{color:var(--b-watch)}
  .fp-breach{color:var(--b-breach)}
  .fp-eyebrow,.fp-kicker{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
  .fp-section{margin:0}
  .fp-grow{flex:1}

  /* Ask about your book: under the masthead. The top bar's Ask bar is
     hidden here; ⌘K and "/" focus this input (intel.js) */
  .topnav .ask-bar{display:none!important}
  .topnav .topnav-right{margin-left:auto}
  .fp-eds :focus-visible,.fp-link:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
  .fp-edbar[hidden]{display:none}
  .fp-link{padding:0;border:0;background:none;font:inherit;font-weight:500;color:var(--b-green-d);cursor:pointer;text-decoration:underline;text-underline-offset:2px}

  /* Editions menu (masthead, right) */
  .fp-mast-r{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
  .fp-eds{position:relative}
  .fp-eds-btn{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;border:1px solid var(--b-line);border-radius:8px;background:#fff;
    font:600 12px "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--b-body);cursor:pointer}
  .fp-eds-btn:hover{background:var(--b-fill)}
  .fp-eds-menu{position:absolute;right:0;top:100%;z-index:60;margin-top:4px;min-width:200px;padding:4px;background:#fff;border:1px solid var(--b-line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08);text-align:left}
  .fp-eds-menu[hidden]{display:none}
  .fp-eds-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:none;font:400 14px "DM Sans","DM Sans Fallback",sans-serif;
    letter-spacing:0;text-transform:none;color:var(--b-text);text-align:left;cursor:pointer}
  .fp-eds-menu button:hover{background:var(--b-fill)}
  .fp-eds-menu button[aria-checked="true"]{font-weight:600}
  .fp-eds-menu button[aria-checked="true"]::after{content:"";width:5px;height:9px;margin-left:auto;border:solid var(--b-green-d);border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg)}
  .fp-edbar{margin:0;padding:10px 16px;border-radius:8px;background:var(--b-fill);font-size:14px;color:var(--b-body)}
  /* A past edition is a snapshot: the live rail and ticker belong to today */
  .fp-past .fp-ticker,.fp-past .fp-rail,.fp-past .fp-coming{display:none}
  .fp-past .fp-grid{grid-template-columns:minmax(0,1fr)}

  /* Masthead */
  .fp-mast{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:16px;padding:28px 0 14px;border-bottom:3px solid var(--b-text)}
  .fp-mast-side{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
  .fp-mast-r{text-align:right}
  .fp-title{margin:0;text-align:center;font-family:var(--fp-serif);font-weight:400;font-size:64px;line-height:1;letter-spacing:-.01em;color:var(--b-text)}

  /* Ticker */
  .fp-ticker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1px solid var(--b-text)}
  .fp-tick{display:flex;flex-direction:column;gap:4px;padding:12px 16px 12px 0;margin-right:16px;border-right:1px solid var(--b-line)}
  .fp-tick:last-child{border-right:0;margin-right:0}
  .fp-tick-l{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted)}
  .fp-tick-v{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-variant-numeric:tabular-nums lining-nums;font-size:20px;font-weight:500;color:var(--b-text)}
  .fp-tick-v.fp-pass{color:var(--b-pass)}.fp-tick-v.fp-watch{color:var(--b-watch)}.fp-tick-v.fp-breach{color:var(--b-breach)}

  /* Columns */
  .fp-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:40px;padding-top:28px}
  .fp-main{display:flex;flex-direction:column;gap:28px;min-width:0}
  .fp-rule{border:0;border-top:1px solid var(--b-text);margin:0}

  /* Stories */
  .fp-lead{display:flex;flex-direction:column;gap:14px}
  .fp-h1{margin:0;font-family:var(--fp-serif);font-weight:400;font-size:54px;line-height:1.04;letter-spacing:-.01em;max-width:880px;color:var(--b-text)}
  .fp-h2{margin:0;font-family:var(--fp-serif);font-weight:400;font-size:34px;line-height:1.1;color:var(--b-text)}
  .fp-h3{margin:0;font-family:var(--fp-serif);font-weight:400;font-size:24px;line-height:1.15;color:var(--b-text)}
  .fp-dek{margin:0;font-size:20px;line-height:1.45;color:var(--b-body);max-width:860px}
  .fp-byline{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted)}
  .fp-body{font-size:15px;line-height:1.6;color:var(--b-body)}
  .fp-body p{margin:0}
  .fp-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .fp-more{font-size:13px;font-weight:500;color:var(--b-green-d)!important;align-self:flex-start}
  .fp-chain{border:1px solid var(--b-line);border-radius:6px;background:#fff}
  .fp-chain-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--b-line)}
  .fp-chain-h a{font-size:13px;color:var(--b-green-d)}
  .fp-chain-row{display:grid;grid-template-columns:72px 130px minmax(0,1fr) 120px;gap:16px;padding:9px 16px;border-bottom:1px solid var(--b-fill);font-size:13px;align-items:baseline;color:var(--b-body)}
  .fp-chain-row:last-child{border-bottom:0}
  .fp-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-body)}
  .fp-val{text-align:right;color:var(--b-text)}
  .fp-val.fp-breach{color:var(--b-breach)}
  .fp-second{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:32px}
  .fp-second-main{display:flex;flex-direction:column;gap:10px}
  .fp-figure{display:flex;flex-direction:column;gap:6px;justify-content:center;border-left:1px solid var(--b-line);padding-left:24px}
  .fp-figure-v{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-weight:600;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em;font-size:72px;line-height:1;color:var(--b-breach)}
  .fp-figure-s{font-size:12px;color:var(--b-muted)}
  .fp-briefs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
  .fp-brief{display:flex;flex-direction:column;gap:8px}
  .fp-brief p{margin:0;font-size:14px;line-height:1.55;color:var(--b-body)}

  /* Every headline opens a thread; the open one stays marked */
  .fp a.fp-door{color:inherit}
  .fp a.fp-door:hover{color:var(--b-green-d);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.12em}
  .fp-door:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px;border-radius:2px}
  .fp-story{position:relative;transition:background-color .2s ease-out}
  .fp-story.fp-on{background:var(--b-pass-t);box-shadow:0 0 0 12px var(--b-pass-t);border-radius:1px}
  .fp-story.fp-on .fp-door{color:var(--b-green-d)}
  .fp-story[hidden],.fp-rule[hidden],.fp-need[hidden],.fp-book-row[hidden],.fp-nostory[hidden],.fp-feed-empty[hidden]{display:none}
  .fp-nostory{margin:0;font-family:var(--fp-serif);font-size:34px;line-height:1.1;color:var(--b-text)}

  /* Overnight by desk: four labeled columns */
  .fp-cols4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;border-top:1px solid var(--b-text);padding-top:16px}
  .fp-col{display:flex;flex-direction:column;gap:16px;min-width:0;border-left:1px solid var(--b-line);padding-left:16px}
  .fp-col:first-child{border-left:0;padding-left:0}
  .fp-col-h{margin:0;color:var(--b-text)}
  .fp-item{display:flex;flex-direction:column;gap:4px}
  .fp-item-h{margin:0;font-family:var(--fp-serif);font-weight:400;font-size:21px;line-height:1.15;color:var(--b-text)}
  .fp-item p{margin:0;font-size:14px;line-height:1.5;color:var(--b-body)}
  .fp-empty{margin:0;font-size:14px;color:var(--b-muted)}
  .fp-empty[hidden]{display:none}
  .fp-else{margin:0;padding-top:12px;border-top:1px solid var(--b-line);font-size:14px;color:var(--b-body)}
  .fp-quiet{margin:0;font-family:var(--fp-serif);font-weight:400;font-size:44px;line-height:1.08;color:var(--b-text)}

  /* Needs you today (rail, first) */
  .fp-needs{list-style:none;margin:0;padding:0}
  .fp-need a{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:10px 0;border-bottom:1px solid var(--b-fill);color:inherit}
  .fp a.fp-need-a,.fp .fp-need a:hover{text-decoration:none}
  .fp .fp-need a:hover{background:var(--b-fill);color:inherit}
  .fp-need a:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
  .fp-need-t{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-body)}
  .fp-need-t.fp-breach{color:var(--b-breach)}.fp-need-t.fp-watch{color:var(--b-watch)}
  .fp-need-fac{font-size:14px;font-weight:600;color:var(--b-text)}
  .fp-need-d{font-size:13px;line-height:1.45;color:var(--b-body)}


  /* Right rail */
  .fp-rail{border-left:1px solid var(--b-line);padding-left:32px;display:flex;flex-direction:column;gap:28px;min-width:0}
  .fp-rail-h{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:2px solid var(--b-text)}
  .fp-rail-title{margin:0;font:700 18px/1 "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:-.01em;color:var(--b-text)}
  .fp-rail-h a{font-size:13px;color:var(--b-green-d)}
  .fp-dot{width:7px;height:7px;border-radius:50%;background:var(--b-green);animation:fpLive 1.6s ease-in-out infinite}
  .fp-dot-still{animation:none;background:var(--b-pass)}
  .fp-live-state{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--b-pass)}
  .fp-live-btn{height:30px;padding:0 10px;border:1px solid var(--b-line);border-radius:4px;background:#fff;font:600 11px "DM Sans","DM Sans Fallback",sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--b-body);cursor:pointer}
  .fp-live-btn:hover{background:var(--b-fill)}
  /* Done: the button goes invisible but keeps its space, so the header never changes height */
  .fp-live-btn[hidden]{display:inline-block;visibility:hidden}
  .fp-rail-h:has(#fp-live-btn){height:42px;box-sizing:border-box;flex-wrap:nowrap!important;white-space:nowrap}
  /* Exactly 8 one-line rows from first paint; events enter at the top and
     the oldest drops off inside the box, so nothing around it moves */
  .fp-feed{--fp-row-h:36px;height:calc(var(--fp-row-h) * 8);overflow:hidden}
  .fp-feed-row{display:grid;grid-template-columns:60px 96px fit-content(120px) minmax(0,1fr);gap:10px;align-items:center;height:var(--fp-row-h);box-sizing:border-box;border-bottom:1px solid var(--b-fill);white-space:nowrap;color:inherit}
  .fp a.fp-feed-row:hover{text-decoration:none;color:inherit;background:var(--b-fill)}
  .fp-feed-row > *{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .fp-feed-row > .fp-mono{font-size:12px}
  .fp-feed-row .fp-type{font-size:10.5px}
  /* Touch widths: the Brief's small labels at 12px */
  @media (max-width:1024px){ .fp-upd,.fp-type,.fp-feed-row .fp-type,.fp-need-t,.fp-live-state,.fp-live-btn,.fp-status-head{font-size:12px} }
  .fp-feed-text{font-size:13px;color:var(--b-body)}
  .fp-feed-fac{font-size:13px;font-weight:600;color:var(--b-text)}
  .fp-feed-empty{height:var(--fp-row-h);display:flex;align-items:center;font-size:13px;color:var(--b-muted)}
  .fp-fresh{animation:fpRow 2.6s ease-out,fpIn .35s ease-out}
  .fp-book{display:flex;flex-direction:column;gap:10px;padding-top:12px}
  .fp-book-row{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;align-items:center}
  .fp-book-name{font-size:12px;color:var(--b-body)}
  /* Sub-book breach: 2px ring, 2px padding, same radius as the squares; each square keeps its own fill */
  .fp-group{display:inline-flex;gap:4px;padding:2px;border:2px solid var(--b-breach);border-radius:2px;margin:-4px 0}
  .fp a.fp-group:hover{background:var(--b-breach-t)}
  .fp-group:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
  .fp-ring-key{display:inline-block;width:10px;height:10px;box-sizing:border-box;border:2px solid var(--b-breach);border-radius:2px}
  .fp-cells{display:flex;flex-wrap:wrap;gap:4px}
  .fp-cell{display:inline-block;width:14px;height:14px;border-radius:2px;background:#E3E3DE;font-style:normal}
  .fp-cell-watch{background:var(--b-watch-fill)}
  .fp-cell-breach{background:var(--b-breach)}
  .fp-cell-lit-key{background:var(--b-green)}
  .fp-cell-out{opacity:.25}
  .fp-lit{animation:fpPing 2.6s ease-out}
  .fp-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--b-muted);padding-top:12px}
  .fp-legend span{display:inline-flex;gap:6px;align-items:center}
  .fp-legend .fp-cell{width:10px;height:10px}
  .fp-status-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 92px 64px;gap:10px;padding:8px 0;border-bottom:1px solid var(--b-fill);font-size:13px}
  .fp-status-row > span:last-child,.fp-status-row > span:nth-child(2){text-align:right}
  .fp-status-head{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--b-muted);padding:10px 0 6px}
  .fp-num{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-variant-numeric:tabular-nums lining-nums;color:var(--b-text)}
  .fp-status-meta{font-size:12px;color:var(--b-muted);text-align:right}
  .fp-note{margin:10px 0 0;font-size:13px;color:var(--b-muted)}

  /* Coming up */
  .fp-coming{margin-top:36px;border-top:3px solid var(--b-text);padding-top:14px;display:flex;flex-direction:column;gap:12px}
  .fp-coming-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
  .fp-coming-item{display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--b-line);padding-left:14px;font-size:14px;line-height:1.45;color:var(--b-body)}
  .fp-coming-d{font-size:13px;font-weight:500;color:var(--b-text)}

  /* Phone width (the artifact inline, or the viewer): a brief laid out for
     the phone, not a squeezed desktop one. The main column and the rail
     flatten into one list so "Needs you today" follows the lead story. */
  @container brief (max-width:640px){
    .fp-feed{--fp-row-h:72px}
    .fp-feed-row{grid-template-columns:56px auto minmax(0,1fr);grid-template-rows:1fr 1fr;gap:0 8px;padding:6px 0}
    .fp-feed-text{grid-column:1 / -1}
  }
  @keyframes fpLive{0%,100%{opacity:1}50%{opacity:.25}}
  @keyframes fpIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  @keyframes fpRow{0%{background:var(--b-pass-t)}100%{background:transparent}}
  @keyframes fpPing{0%{background:var(--b-green);box-shadow:0 0 0 0 rgba(62,207,130,.7)}40%{background:var(--b-green);box-shadow:0 0 0 7px rgba(62,207,130,0)}100%{box-shadow:0 0 0 0 rgba(62,207,130,0)}}
  @media (prefers-reduced-motion:reduce){.fp-dot,.fp-fresh,.fp-lit{animation:none}}

  @container brief (max-width:1300px){
    .fp-h1{font-size:46px}
    .fp-coming-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .fp-cols4{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}
    .fp-col:nth-child(3){border-left:0;padding-left:0}
  }
  @container brief (max-width:1100px){
    .fp-grid{grid-template-columns:minmax(0,1fr)}
    .fp-rail{border-left:0;padding-left:0;border-top:1px solid var(--b-text);padding-top:28px}
    .fp-title{font-size:52px}
  }
  @container brief (max-width:768px){
    .fp{padding:0 16px 32px}
    .fp-mast{grid-template-columns:1fr;gap:6px;text-align:center;padding-top:18px}
    .fp-mast-r{text-align:center}
    .fp-title{font-size:40px;order:-1}
    .fp-ticker{grid-template-columns:repeat(3,minmax(0,1fr))}
    .fp-tick{padding:10px 8px 10px 0;margin-right:8px}
    .fp-tick:nth-child(3n){border-right:0;margin-right:0}
    .fp-tick-v{font-size:17px}
    .fp-h1{font-size:32px;line-height:1.1}
    .fp-h2{font-size:26px}
    .fp-h3{font-size:21px}
    .fp-dek{font-size:17px}
    .fp-cols,.fp-briefs{grid-template-columns:minmax(0,1fr);gap:16px}
    .fp-cols4{grid-template-columns:minmax(0,1fr)}
    .fp-col{border-left:0;padding-left:0;border-top:1px solid var(--b-line);padding-top:12px}
    .fp-col:first-child{border-top:0;padding-top:0}
    .fp-mast-r{align-items:center}
    .fp-quiet{font-size:30px}
    .fp-nostory{font-size:26px}
    .fp-second{grid-template-columns:minmax(0,1fr);gap:16px}
    .fp-figure{border-left:0;padding-left:0;border-top:1px solid var(--b-line);padding-top:14px}
    .fp-figure-v{font-size:56px}
    .fp-chain-row{grid-template-columns:64px minmax(0,1fr);gap:4px 12px}
    .fp-chain-row .fp-type{grid-column:2}
    .fp-chain-row > span:nth-child(3){grid-column:2}
    .fp-chain-row .fp-val{grid-column:2;text-align:left}
    .fp-chain-h{flex-wrap:wrap}
    .fp-rail-h{flex-wrap:wrap}
    .fp-book-row{grid-template-columns:minmax(0,1fr)}
    .fp-status-row{grid-template-columns:minmax(0,1fr) 60px 84px 58px;gap:8px}
    .fp-status-meta{text-align:left;flex-basis:100%}
    .fp-coming-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  }
  /* (after the 768px rules, which it refines) */
  @container brief (max-width:640px){
    .fp-ticker{grid-template-columns:repeat(2,minmax(0,1fr))}
    .fp-tick:nth-child(3n){border-right:1px solid var(--b-line);margin-right:8px}
    .fp-tick:nth-child(2n){border-right:0;margin-right:0}
    .fp h1,.fp h2,.fp h3,.fp-h1,.fp-h2,.fp-h3,.fp-quiet,.fp-nostory,.fp-mast-r,.fp-dek{text-wrap:balance}
    .fp-h1{font-size:30px}
    /* Chain rows in two lines: time, type and value; then what happened */
    .fp-chain-row{grid-template-columns:64px minmax(0,1fr) auto;gap:2px 10px}
    .fp-chain-row .fp-type{grid-column:2;grid-row:1}
    .fp-chain-row .fp-val{grid-column:3;grid-row:1;text-align:right}
    .fp-chain-row > span:nth-child(3){grid-column:2 / -1;grid-row:2}
    .fp-grid{row-gap:0}
    .fp-grid > .fp-main,.fp-grid > .fp-rail,.fp-main > .fp-edition{display:contents}
    .fp-main > *,.fp-edition > *,.fp-rail > *{order:3}
    .fp-main > .fp-edbar{order:0}
    .fp-edition > .fp-lead{order:1}
    .fp-rail > section:has(#fp-needs){order:2;margin:8px 0 28px}
    .fp-rail > section{border-top:1px solid var(--b-text);padding-top:20px;margin-top:28px}
    .fp-rail-h{flex-wrap:wrap;row-gap:4px}
    .fp-cells{gap:6px}
    .fp-cell{width:20px;height:20px}
    .fp-legend .fp-cell{width:12px;height:12px}
  }
}

/* Phones: no page scrolls sideways. The icon sidebar gives way to the top
   bar's menu drawer; wide tables and charts scroll inside their own box. */
@media (max-width:768px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo){
    .sidebar,#sidebar-mount{display:none!important}
    .main{margin-left:0!important;min-width:0!important;max-width:100vw;width:100%}
    .content{padding:16px!important;min-width:0}
    .content *{min-width:0}
    .content{overflow-wrap:anywhere}
    .content table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
    .content canvas,.content svg:not([width]){max-width:100%}
    .content img{max-width:100%;height:auto}
    .topnav .nav-btn,.topnav .nav-btn-wrap{display:none}
    .topnav{padding:0 12px}
    .tab-bar{overflow-x:auto;flex-wrap:nowrap;margin:0 -16px 16px;padding:8px 16px;scrollbar-width:none}
    .tab-bar .tab-btn{flex-shrink:0;white-space:nowrap}
    .body-grid{grid-template-columns:minmax(0,1fr)!important}
    .right-col{position:static}
    .dc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    /* One-pagers: edit and export stay as icon-only buttons in the top bar; header row wraps */
    .topnav .edit-hint{display:none!important}
    .topnav .edit-toggle,.topnav .btn-excel{font-size:0!important;gap:0!important;padding:7px!important}
    .topnav .edit-toggle svg,.topnav .btn-excel svg{width:16px;height:16px}
    .topnav-right{gap:8px!important;min-width:0}
    .ph-top{flex-wrap:wrap;gap:12px}
    .grid-2,.grid-3,.grid-65-35,.grid-60-40{grid-template-columns:minmax(0,1fr)!important}
    .ph-top > div[style*="align-items:flex-end"]{align-items:flex-start!important}
    .kpi-strip,.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .kpi-val,.stat-val,.stat-label{overflow-wrap:anywhere}
  }
}

/* ── Clean facility view (deal and portfolio pages: html[data-facility]) ──
   Values in body color; only Watch (#B54708) and Breach (#B42318) get color.
   Rows are plain table rows; no boxes, tints, badges or mini-cards. */
html[data-facility]{
  --b-row-line:#EFEEEA;

  /* A. Passing values: body color, not green */
  .content [style*="color:var(--green)"]:not(a):not(button),
  .content [style*="color: var(--green)"]:not(a):not(button),
  .content [style*="color:#1a7a3c"]:not(a):not(button),
  .content [style*="color:#16a34a"]:not(a):not(button),
  .content [style*="color:#3ecf82"]:not(a):not(button),
  .elig-pass,.cov-pass,.up,.gp-trigger-status{color:var(--b-body)!important}
  .cs-pass,.pill-gr,.ds-funded,.due-ok,.b-gr,.b-nav,.sec-badge,.cov-status{background:none!important;border:0!important;color:var(--b-body)!important;padding:0!important;box-shadow:none!important}
  .cs-warn,.b-am,.ds-pend{background:none!important;border:0!important;color:var(--b-watch)!important;padding:0!important}

  /* B. Rows: label left, value right, tabular figures, 1px dividers */
  .content div[style*="justify-content:space-between"][style*="border-radius"],
  .content div[style*="justify-content: space-between"][style*="border-radius"],
  .elig-row{background:none!important;border:0!important;border-bottom:1px solid var(--b-row-line)!important;border-radius:0!important;
    padding:8px 0!important;box-shadow:none!important;font-variant-numeric:tabular-nums}
  .content div[style*="justify-content:space-between"][style*="border-radius"] > span:last-child,
  .elig-row .elig-val{text-align:right}
  .cov-table td,.cov-table th{border-bottom-color:var(--b-row-line)!important}
  .cov-table tr[style*="background"]{background:none!important}
  /* The single answer row of a calculation (e.g. Remaining availability, Excess to SPV) */
  .content.content div[style*="border:1.5px solid #b8f0d4"],
  .content.content div[style*="border:1.5px solid #B8F0D4"],
  .content.content div[style*="border:2px solid #b8f0d4"]{border:0!important;border-top:1px solid var(--b-line)!important;border-bottom:0!important;font-weight:700;background:none!important;border-radius:0!important}
  .content div[style*="border:1.5px solid #b8f0d4"] *,.content div[style*="border:2px solid #b8f0d4"] *{color:var(--b-text)!important}
  /* Intermediate subtotal (Borrowing base): a plain bold row */
  .content div[style*="border:1.5px solid #E7E5E0"],.content div[style*="border:2px solid #E7E5E0"]{background:none!important;border:0!important;border-bottom:1px solid var(--b-row-line)!important;border-radius:0!important;font-weight:700}
  /* No tinted fills anywhere in the facility body */
  .content [style*="background:var(--green-d)"],.content [style*="background:var(--amber-d)"],.content [style*="background:var(--blue-d)"],
  .content [style*="background:#FFFAEB"],.content [style*="background:#f0fdf4"],.content [style*="background:#e8f5ec"]{background:none!important}
  .content [style*="border:1px solid #FEDF89"],.content [style*="border:1px solid #fde68a"],.content [style*="border:1.5px solid var(--green-b)"]{border-color:transparent!important}

  /* C. Waterfall: no numbered circles or dashed connectors; eyebrow step headings; indented sub-lines */
  .content [style*="width:22px;height:22px;border-radius:50%"]{display:none!important}
  .content [style*="border-left:2px dashed"]{border-left:0!important;margin-left:0!important;padding-left:16px!important}
  .content [style*="border-left:3px solid #E7E5E0"]{border-left:0!important;padding-left:16px!important}
  .content div[style*="text-transform:uppercase"][style*="letter-spacing:.05em"][style*="font-weight:700"]{font-size:12px!important;font-weight:600!important;letter-spacing:.06em!important;color:var(--b-muted)!important}
  .content div[style*="padding:11px 14px"][style*="border-radius"]{background:none!important;border:0!important;border-bottom:1px solid var(--b-row-line)!important;border-radius:0!important;padding:8px 0!important}

  /* D. Source and info notes: gray 13px text, no banner, no icon, no red */
  .src-note,.source-note,.elig-note,.fac-note{background:none!important;border:0!important;padding:0!important;margin:12px 0 0!important;font-size:13px!important;font-style:normal!important;color:var(--b-muted)!important}
  .src-note svg,.fac-note svg{display:none}
  .elig-watch-word{color:var(--b-watch)}

  /* F. KPI groups inside cards: plain label / value pairs */
  .pm-item,.ltv-box,.lv-box,.perf-box,.gp-kpi,.gp-trigger,.lp-kpi,.lp-obligation,.lt-inline-card,.dc-kpis,.dc-kpis > *,
  .bk-pass,.bk-watch,.bk-breach,.bk-item,
  .content div[style*="background:var(--bg)"][style*="border:1px solid var(--border)"][style*="border-radius"]{background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important}
  .pm-item,.ltv-box,.lv-box,.perf-box,.gp-kpi,.lp-kpi{padding:0!important}

  /* H. Reference markers: 1px gray */
  .lv-cov{background:var(--b-muted)!important;width:1px!important}

  /* I. Timeline dots: gray; watch amber and breach red only */
  .tl-dot,.tl-dot.done,.tl-dot.active,.tl-dot.future{background:var(--b-fill)!important;border-color:var(--b-line)!important;color:transparent!important;box-shadow:none!important}
  .tl-dot > div{background:#8A8A85!important}
  .tl-dot.tl-watch > div,.tl-dot.tl-watch:not(:has(> div)){background:var(--b-watch-fill)!important}
  .tl-dot.tl-breach > div,.tl-dot.tl-breach:not(:has(> div)){background:var(--b-breach)!important}
  .content [style*="border-left:3px solid #E7E5E0"]{background:none!important}
  .fac-status{border:0!important;font-weight:600}
  .fac-pass{background:var(--b-pass-t)!important;color:var(--b-pass)!important}
  .fac-watch{background:var(--b-watch-t)!important;color:var(--b-watch)!important}
  .fac-breach{background:var(--b-breach-t)!important;color:var(--b-breach)!important}
  .tl-title[style*="color:var(--blue)"]{color:var(--b-text)!important}

  /* J. Other badges and callouts */
  .lp-logo{background:var(--b-fill)!important;color:var(--b-body)!important}
  .action-due.due-soon{background:none!important;color:var(--b-watch)!important}
  .watch-tooltip{border-color:var(--b-line)!important;color:var(--b-body)!important}
}

/* Facility documents drawer (facility-docs.js): fixed on the right, over the
   page; the page layout never changes */
.fdx-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.25)}
.fdx-drawer{position:fixed;top:0;right:0;bottom:0;z-index:1001;width:420px;max-width:100vw;box-sizing:border-box;
  display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--b-line);box-shadow:-8px 0 32px rgba(26,26,26,.12);
  font-family:"DM Sans","DM Sans Fallback",sans-serif;overflow-y:auto}
.fdx-backdrop[hidden],.fdx-drawer[hidden]{display:none}
.fdx-head{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 14px;border-bottom:1px solid var(--b-line)}
.fdx-title{margin:0;font:600 16px/1.3 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.fdx-sub{margin:2px 0 0;font-size:13px;color:var(--b-muted)}
.fdx-x{margin-left:auto;flex-shrink:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
.fdx-x:hover{background:var(--b-fill);color:var(--b-text)}
.fdx-list{list-style:none;margin:0;padding:0}
.fdx-item{border-bottom:1px solid #EFEEEA}
.fdx-doc{all:unset;box-sizing:border-box;display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px 20px;cursor:pointer}
.fdx-doc:hover,.fdx-item.on .fdx-doc{background:var(--b-fill)}
.fdx-doc:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
.fdx-icon{flex-shrink:0;display:inline-flex;margin-top:1px;color:var(--b-muted)}
.fdx-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.fdx-doc-title{font-size:14px;font-weight:500;color:var(--b-text)}
.fdx-doc-meta{font-size:13px;color:var(--b-muted);font-variant-numeric:tabular-nums}
.fdx-note{margin:0;padding:0 20px 12px 50px;font-size:13px;color:var(--b-muted);background:var(--b-fill)}
.fdx-note[hidden]{display:none}
@media (max-width:640px){.fdx-drawer{width:100vw;border-left:0}}

/* ── No sidebar; green top bar (all platform pages) ─────────────── */
:is(html:has(script[src*="topbar.js"]), .pm-demo){
  .sidebar{display:none!important}
  .main{margin-left:0!important;min-width:0}
  #search-overlay{left:0!important}

  .topnav{background:var(--b-green-d)!important;height:56px!important;min-height:56px;border-bottom:0!important;box-shadow:none!important}
  .topnav .logo svg text:first-of-type{fill:#fff}
  .topnav .logo svg text:last-of-type,.topnav .logo svg circle{fill:#b8f0d4}
  .topnav .nav-btn{color:rgba(255,255,255,.8);background:transparent;border-radius:8px}
  .topnav .nav-btn:hover{color:#fff;background:transparent}
  .topnav .nav-btn.active,.topnav .nav-btn.active:hover{background:#fff;color:var(--b-green-d);font-weight:600;box-shadow:none}
  .topnav .nav-badge,.topnav .nav-btn-wrap .nav-badge{background:#1a1a1a;color:#fff;border:0}
  .topnav .icon-btn,.topnav .ib{background:transparent!important;border-color:transparent!important;color:#fff!important;box-shadow:none}
  .topnav .icon-btn:hover,.topnav .ib:hover{background:rgba(255,255,255,.12)!important}
  .topnav .icon-btn svg,.topnav .ib svg{stroke:#fff;color:#fff}
  .topnav [data-bell]:not(.tb-alerts) > span,.topnav [data-bell] .notif-badge{background:var(--b-breach)!important;color:#fff!important;border:2px solid var(--b-green-d)!important}
  .topnav .mob-menu-btn{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
  /* Tape pages' bar (back link, title, badge, meta, export buttons) on green */
  .topnav .tn-back{color:rgba(255,255,255,.8)}
  .topnav .tn-back:hover{color:#fff;background:rgba(255,255,255,.12)}
  .topnav .tn-div{background:rgba(255,255,255,.3)}
  .topnav .tn-title{color:#fff}
  .topnav .tn-badge{background:rgba(255,255,255,.15);color:#fff;border-color:transparent}
  .topnav .tn-meta{color:rgba(255,255,255,.75)}
  .topnav .btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
  .topnav .btn-o:hover{background:rgba(255,255,255,.12)}
  .topnav .btn-g,.topnav .btn-primary{background:#fff;color:var(--b-green-d);border-color:#fff}
  .topnav .av,.topnav .avatar,.topnav #topbar-av{cursor:pointer;box-shadow:0 0 0 2px rgba(255,255,255,.25)}

  /* Avatar menu: same look as the bell dropdown */
  .av-dd{position:fixed;z-index:10000;min-width:200px;padding:6px;background:#fff;border:1px solid var(--b-line);border-radius:12px;box-shadow:0 12px 32px rgba(26,26,26,.12);font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .av-dd[hidden]{display:none}
  .av-dd a,.av-dd button{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:8px;font-size:13.5px;color:var(--b-text);cursor:pointer}
  .av-dd a:hover,.av-dd button:hover{background:var(--b-fill)}
  .av-dd a:focus-visible,.av-dd button:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
  .av-dd svg{width:16px;height:16px;flex-shrink:0;color:var(--b-muted)}
  .av-dd button[data-act="signout"]{border-top:1px solid #EFEEEA;border-radius:0 0 8px 8px;margin-top:4px}

  /* Mobile drawer: Settings and Sign out are buttons styled as items */
  .mob-nav-btn{width:calc(100% - 16px);border:0;background:none;font:inherit;text-align:left;cursor:pointer}

  #cs-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:var(--b-text);color:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;padding:10px 18px;border-radius:10px;z-index:10001;transition:opacity .2s,transform .2s}
  #cs-toast.show{opacity:1;transform:translate(-50%,0)}
}

/* ── Figures (every page) ──
   Money, percentages, multiples, bps, counts and ratios: DM Sans with
   tabular lining numerals, no slashed zero. DM Mono (.mono) only for times,
   IDs, file names and tape field names. Numeric columns right-align; the
   aligner in topbar.js matches their headers. */
body{font-variant-numeric:tabular-nums lining-nums}
.num{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-variant-numeric:tabular-nums lining-nums}
td.num,th.num{text-align:right}
.mono{font-family:"DM Mono","DM Mono Fallback",monospace}

/* ── Top bar: nav, Ask bar, status and alerts chips (all platform pages) ──
   One scale: 8px grid (4px inside controls), radii 8px controls / 12px
   cards and panels, type 12 / 13 / 14 / 16 / 22 / 32. Hover is a tint only;
   the one shadow is on overlays. */
:is(html:has(script[src*="topbar.js"]), .pm-demo){
  --ix-shadow:0 8px 24px rgba(0,0,0,.08);

  .topnav{gap:8px}
  .topnav .logo{margin-right:8px}
  .tb-nav{display:flex;align-items:center;gap:4px;flex-shrink:0}
  .topnav .nav-btn{height:32px;display:inline-flex;align-items:center;padding:0 12px;font-size:14px;transition:none}
  .topnav .nav-btn:hover{background:rgba(255,255,255,.12);color:rgba(255,255,255,.8)}
  .topnav .nav-btn:active{background:rgba(255,255,255,.2)}

  .ask-bar{flex:1 1 520px;min-width:160px;max-width:520px;height:40px;margin:0 auto;display:flex;align-items:center;gap:8px;
    padding:0 12px;border:0;border-radius:8px;background:#fff;color:var(--b-muted);cursor:text;
    font:400 14px/1 "DM Sans","DM Sans Fallback",sans-serif;text-align:left}
  .ask-bar:hover{background:#F4F4F2}
  .ask-bar:active{background:#EAE9E5}
  .ask-bar:focus-visible{outline:2px solid #fff;outline-offset:2px}
  .ask-bar svg{flex-shrink:0}
  .ask-ph{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ask-kbd{flex-shrink:0;min-width:48px;box-sizing:border-box;text-align:center;padding:0 4px;border:1px solid var(--b-line);border-radius:4px;font:500 12px/20px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-muted);background:#fff}

  /* The right cluster never wraps: it keeps its width, the Ask bar gives way,
     then the chips shorten (status to dot + time, alerts to dot + count) */
  .topnav{flex-wrap:nowrap}
  .topnav-right{display:flex;align-items:center;flex-wrap:nowrap;margin-left:0;gap:8px;flex-shrink:0;white-space:nowrap}
  .topnav-right > *{flex-shrink:0}
  .topnav .logo,.topnav > a:has(.logo),.tb-nav{flex-shrink:0}
  .tb-status,.tb-alerts{height:32px;display:inline-flex;align-items:center;gap:8px;padding:0 8px;border:0;border-radius:8px;background:none;
    color:#fff;font:500 13px/1 "DM Sans","DM Sans Fallback",sans-serif;text-decoration:none;white-space:nowrap;cursor:pointer;font-variant-numeric:tabular-nums}
  .tb-status:hover,.tb-alerts:hover{background:rgba(255,255,255,.12)}
  .tb-status:active,.tb-alerts:active{background:rgba(255,255,255,.2)}
  .tb-status:focus-visible,.tb-alerts:focus-visible{outline:2px solid #fff;outline-offset:0}
  .tb-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
  .tb-dot-ok{background:var(--b-green)}
  .tb-dot-alert{background:#F97066;box-shadow:0 0 0 2px var(--b-green-d)}
  .tb-alerts-n{display:none}

  /* Dropdowns and menus: fade in over 120ms; the overlay shadow */
  .bell-dd,.av-dd{box-shadow:var(--ix-shadow)}
  .bell-dd:not([hidden]),.av-dd:not([hidden]),.ix-at:not([hidden]){animation:ix-fade .12s ease-out}
  .bell-dd-head{padding:12px 16px 8px}
  .bell-dd-row{padding:12px 16px}
  .bell-dd-foot{padding:12px 16px;font-size:13px}
  .bell-dd-foot:focus-visible,.bell-dd a:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
  .av-dd{padding:4px}
  .av-dd a,.av-dd button{padding:8px 12px;font-size:14px}
  .mob-drawer{box-shadow:var(--ix-shadow)!important}
  .fdx-drawer{box-shadow:var(--ix-shadow)}
}
@keyframes ix-fade{from{opacity:0}}

@media (max-width:1280px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo) .tb-status-l{display:none}
}
/* Facility pages: the side column stacks under the main one before the
   main column's tables would push the page sideways */
@media (max-width:1100px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo) .body-grid{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:960px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo){
    .tb-alerts-t{display:none}
    .tb-alerts-n{display:inline}
    .ask-kbd{display:none}
  }
}
@media (max-width:768px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo) .tb-nav{display:none!important}
}
/* Phone: logo, ask icon, alerts dot and count, menu */
@media (max-width:640px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo){
    .ask-bar{flex:0 0 40px;min-width:0;width:40px;margin:0 0 0 auto;padding:0;justify-content:center;background:none;color:#fff;order:2}
    .ask-bar:hover{background:rgba(255,255,255,.12)}
    .ask-bar:active{background:rgba(255,255,255,.2)}
    .ask-ph{display:none}
    .topnav-right{order:3}
    .topnav-right .av,.topnav-right .avatar,.topnav-right #topbar-av{display:none!important}
    .tb-status{display:none}
    .topnav:has(.ask-bar) .mob-menu-btn{order:4;display:flex!important}
    .tb-alerts{padding:0 8px}
    /* Tape pages keep their tool bar: back link, title and the downloads */
    .topnav .tn-div,.topnav .tn-badge,.topnav .tn-meta,.topnav .tn-right [onclick^="toggleFS"]{display:none!important}
    .topnav .tn-right{margin-left:auto;gap:8px;flex-shrink:0}
    .topnav .tn-back{min-width:0;flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}
    .topnav .tn-back svg{vertical-align:-2px}
    .topnav .tn-title{white-space:nowrap;flex-shrink:0}
    .topnav:has(.tn-back){padding:0 16px;gap:8px}
    .topnav .tn-right .btn{font-size:0!important;gap:0!important;padding:0!important;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center}
    .topnav .tn-right .btn svg{width:16px;height:16px}
  }
}

/* ── Notch and home bar (all platform pages) ─────────────────────────
   --tb-h is the top bar's full height: 56px plus the inset under the
   status bar. In landscape the body pads to the side insets and the bar
   reaches back across them with borders in its own green. Full-screen
   layers pad to the insets they touch. env() is 0 without a notch. */
:is(html:has(script[src*="topbar.js"])){
  --tb-h:calc(56px + env(safe-area-inset-top));
  & body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .topnav{height:var(--tb-h)!important;min-height:var(--tb-h);border-top:env(safe-area-inset-top) solid var(--b-green-d);
    border-left:env(safe-area-inset-left) solid var(--b-green-d);border-right:env(safe-area-inset-right) solid var(--b-green-d);
    margin-left:calc(env(safe-area-inset-left) * -1);margin-right:calc(env(safe-area-inset-right) * -1)}
  .bc-art{padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
  .mob-drawer{box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}
  .ix-panel:not(.ix-pane){padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}
  /* The panel ends at the on-screen keyboard's top edge (--kb, topbar.js), so its composer stays in view */
  .ix-panel:not(.ix-pane){bottom:var(--kb,0px)}
  /* A phone on its side is still a phone: the panel takes the whole screen */
  @media (max-height:500px) and (max-width:1023px){ .ix-panel:not(.ix-pane){width:100vw;border-left:0} }
  &.kb-open .ix-panel:not(.ix-pane){padding-bottom:0}
  /* The menu drawer opens from the right, beside its button (static page copies included) */
  .mob-drawer{left:auto!important;right:0!important;width:min(300px,88vw)!important;transform:translateX(100%)!important;box-shadow:var(--ix-shadow,-4px 0 24px rgba(0,0,0,.15))!important;overscroll-behavior:contain}
  .mob-drawer.open{transform:none!important}
  .mob-x{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;margin-right:-10px;padding:0;border:0;border-radius:10px;background:none;color:var(--b-muted);cursor:pointer}
  .mob-x:hover{background:var(--b-fill);color:var(--b-text)}
  .mob-x svg{width:20px;height:20px}
  /* Touch: the bar's controls are 44px */
  @media (max-width:1023px){
    .topnav .logo,.topnav a:has(> .logo){min-height:44px;display:inline-flex;align-items:center}
    .topnav .mob-menu-btn{width:44px!important;height:44px!important;border-radius:10px}
    .tb-alerts{height:44px;min-width:44px;justify-content:center;padding:0 10px}
    .mob-nav-item{min-height:48px;box-sizing:border-box}
    .mob-nav-section{font-size:12px}
  }
  /* Touch widths: nothing under 12px. Page stylesheets get the same floor
     from tools/bake-phone-type.js; these are brand.css's own small sizes,
     the injected quick-nav's, and inline styles (including generated ones). */
  @media (max-width:1024px){
    .digest-beta,.att-pill,.notif-badge,.sv-pop-l,.sv-kpi-l,.sv-kpi-s,.sv-table th,.ix-vb-l,.pf-arrow,.pf-lseg,.dq-label,.dq-sub{font-size:12px}
    :is([style*="font-size:7px"],[style*="font-size: 7px"],[style*="font-size:7.5px"],[style*="font-size: 7.5px"],[style*="font-size:8px"],[style*="font-size: 8px"],[style*="font-size:8.5px"],[style*="font-size: 8.5px"],[style*="font-size:9px"],[style*="font-size: 9px"],[style*="font-size:9.5px"],[style*="font-size: 9.5px"],[style*="font-size:10px"],[style*="font-size: 10px"],[style*="font-size:10.5px"],[style*="font-size: 10.5px"],[style*="font-size:11px"],[style*="font-size: 11px"],[style*="font-size:11.5px"],[style*="font-size: 11.5px"]):not(svg *){font-size:12px!important}
  }
  @media (max-width:640px){
    .ask-bar{flex-basis:44px;width:44px;height:44px}
    /* Deal pages: the header stacks; the title takes the full width, the buttons wrap below it */
    .dh-top{flex-direction:column;gap:12px}
    .dh-top > div:first-child{flex:none!important;width:100%}
    .dh-right{margin-left:0;align-items:flex-start;width:100%}
    .dh-right .btn-row{flex-wrap:wrap}
    .dh-right .btn{min-height:44px}
    .tab-btn,.fp-tab-btn,.subnav-link{min-height:44px}
    .bc a{display:inline-block;padding:14px 2px;margin:-14px -2px}
    .dh-right > div[style*="text-align:right"]{text-align:left!important}
    /* KPI strips: two columns, never a letter wide */
    .kpi-row,.kpi-row2,.ph-kpis,.stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;row-gap:16px!important}
    .stats > *{min-width:0}
    /* Two-up layouts and strips stack or wrap */
    .breakdown,.kct-grid{grid-template-columns:minmax(0,1fr)!important}
    .sbar-legend{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .analyst-strip{flex-wrap:wrap}
    .analyst-strip > .as-item{flex:1 1 45%;min-width:0}
    .sec-h{flex-wrap:wrap;row-gap:8px}
    /* The LTV chart legend (ARCC, BCRED NAV): its Book / Shadow / Headroom group wraps under the keys.
       Not :has(): on pages that build large tables it makes Chromium re-match every mutation. */
    div[style^="display:flex;align-items:center;gap:20px;margin-top:10px;margin-bottom:4px;padding:10px 14px"]{flex-wrap:wrap;row-gap:10px}
    .uw-grid,.vae-grid{grid-template-columns:minmax(0,1fr)!important}
    .bucket-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    /* Tape pages: filters and the tool bar's icon buttons at 44px */
    .btn,.f-select,.f-input{min-height:44px}
    .topnav .tn-right .btn{width:44px!important;height:44px!important}
    .uw-key{flex-shrink:1!important;min-width:0}
    /* Portfolio deal cards: the KPI block moves under the name */
    .deal-card{flex-wrap:wrap}
    .deal-card > div:not(.dc-icon):not(.dc-kpis){flex:1 1 0;min-width:0}
    .dc-kpis{margin-left:0!important;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))!important;flex-shrink:1!important}
    .dc-kpi{min-width:0!important}
  }
  /* Phones: a wide table scrolls inside its own box (topbar.js wraps it), with a fade at the edge that has more */
  .tb-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;
    background:linear-gradient(to right,#fff 40%,rgba(255,255,255,0)) left center / 32px 100% no-repeat local,
      linear-gradient(to left,#fff 40%,rgba(255,255,255,0)) right center / 32px 100% no-repeat local,
      linear-gradient(to right,rgba(26,26,26,.14),rgba(26,26,26,0)) left center / 14px 100% no-repeat scroll,
      linear-gradient(to left,rgba(26,26,26,.14),rgba(26,26,26,0)) right center / 14px 100% no-repeat scroll}
}

/* ── Intelligence panel (intel.js): right slide-over on every platform page ── */
.ix-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.25);opacity:0;transition:opacity .15s ease-in}
.ix-backdrop.open{opacity:1;transition:opacity .2s ease-out}
/* While closing, clicks pass through to the page */
.ix-backdrop:not(.open),.ix-panel:not(.open){pointer-events:none}
.ix-panel{position:fixed;top:0;right:0;bottom:0;z-index:1001;width:480px;max-width:100vw;box-sizing:border-box;display:flex;flex-direction:column;
  background:#fff;border-left:1px solid var(--b-line);box-shadow:0 8px 24px rgba(0,0,0,.08);
  transform:translateX(100%);transition:transform .15s ease-in;font-family:"DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.ix-panel.open{transform:none;transition:transform .2s ease-out}
.ix-backdrop[hidden],.ix-panel[hidden]{display:none}
.ix-head{height:56px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 8px 0 24px;border-bottom:1px solid var(--b-line)}
.ix-title{margin:0;font:600 16px/1 "DM Sans","DM Sans Fallback",sans-serif}
.ix-full{margin-left:auto;height:32px;display:inline-flex;align-items:center;padding:0 8px;border-radius:8px;font-size:13px;font-weight:500;color:var(--b-green-d);text-decoration:none}
.ix-full:hover{background:var(--b-fill)}
.ix-new{width:40px;height:40px;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
.ix-new:hover{background:var(--b-fill)}
.ix-new:active{background:#EAE9E5}
.ix-new + .ix-full{margin-left:0}
.ix-x{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
.ix-x:hover{background:var(--b-fill)}
.ix-x:active{background:#EAE9E5}
.ix-msgs{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:24px}
.ix-foot{flex-shrink:0}
.ix-composer{position:relative;padding:16px 24px 24px;border-top:1px solid var(--b-line)}
/* Start view: the composer sits between the questions and the documents */
.ix-slot{margin:16px 0 0}
.ix-slot .ix-composer{padding:0;border-top:0}
.ix-slot .ix-at{left:0;right:0}
.ix-continue{display:block;width:100%;margin:0 0 16px;padding:8px 12px;border:0;border-radius:8px;background:var(--b-fill);
  font:400 13px/1.4 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ix-continue:hover{background:#EAE9E5}
.ix-continue-k{font-weight:600;color:var(--b-text)}
.ix-panel .ix-docs{margin-top:32px}
.ix-panel .ix-docs-h{margin:0 0 8px;font:600 14px/1.4 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.ix-panel .ix-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ix-panel .ix-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:72px;padding:16px;border:1px solid var(--b-line);border-radius:12px;background:#fff;
  font-family:"DM Sans","DM Sans Fallback",sans-serif;text-align:left;cursor:pointer}
.ix-panel .ix-tile:hover{background:var(--b-fill)}
.ix-panel .ix-tile:active{background:#EAE9E5}
.ix-panel .ix-tile-t{font-size:14px;font-weight:600;color:var(--b-text)}
.ix-panel .ix-tile-a{font-size:13px;color:#9A9A94}
.ix-docs-note{margin:8px 0 0;font-size:13px;color:var(--b-muted)}
.ix-docs-note a{color:var(--b-green-d)}
.ix-row{display:flex;align-items:flex-end;gap:8px;padding:4px 4px 4px 12px;border:1px solid var(--b-line);border-radius:8px;background:#fff}
.ix-row:focus-within{border-color:var(--b-green-d)}
.ix-row textarea{flex:1;min-width:0;min-height:32px;max-height:160px;box-sizing:border-box;padding:4px 0;border:0;outline:0;resize:none;background:none;
  font:400 16px/1.5 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.ix-row textarea::placeholder{color:#9A9A94}
.ix-send{flex-shrink:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:var(--b-green-d);color:#fff;cursor:pointer}
.ix-send:hover{background:#166a34}
.ix-send:active{background:#125a2c}
.ix-send:disabled{background:var(--b-fill);color:#9A9A94;cursor:default}
.ix-panel :focus-visible,.ix-home :focus-visible,.input-card :focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
.ix-row textarea:focus-visible,.input-card textarea:focus-visible{outline:0}

/* Scope chip and the "@" list (panel and full page) */
.ix-scope{display:inline-flex;align-items:center;gap:4px;height:24px;min-width:0;max-width:100%;margin:0;padding:0 8px;border:0;border-radius:8px;background:var(--b-fill);
  font:500 12px/1 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ix-scope:hover,.ix-harness:hover{background:#EAE9E5}
.ix-chips{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}
.ix-harness{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:0;border-radius:8px;background:var(--b-fill);
  font:500 12px/1 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer;white-space:nowrap}
.ix-harness svg{color:var(--b-muted)}
.ix-chips .ix-harness{margin-left:auto}
.ix-bug{flex-shrink:0;width:28px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
.ix-bug:hover{background:var(--b-fill);color:var(--b-text)}
.ix-bug:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}

/* Report a problem (feedback.js): same look as the other dialogs */
.fb-back{position:fixed;inset:0;z-index:1099;background:rgba(0,0,0,.25)}
.fb-dialog{position:fixed;top:50%;left:50%;z-index:1100;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-sizing:border-box;display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--b-line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08);font-family:"DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.fb-back[hidden],.fb-dialog[hidden],.fb-dialog [hidden]{display:none!important}
.fb-dialog.fb-over{border-color:var(--b-green-d);box-shadow:0 0 0 3px var(--b-pass-t),0 8px 24px rgba(0,0,0,.08)}
.fb-head{flex-shrink:0;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 20px;border-bottom:1px solid var(--b-line)}
.fb-title{margin:0;font:600 16px/1 "DM Sans","DM Sans Fallback",sans-serif}
.fb-x{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
.fb-x:hover{background:var(--b-fill)}
.fb-body{flex:1;min-height:0;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px}
.fb-field{display:flex;flex-direction:column;gap:6px}
.fb-label{font-size:13px;font-weight:600}
.fb-text{width:100%;box-sizing:border-box;min-height:96px;padding:8px 12px;border:1px solid var(--b-line);border-radius:8px;resize:vertical;font:400 16px/1.5 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.fb-text:focus{outline:0;border-color:var(--b-green-d)}
.fb-err{margin:0;font-size:13px;color:var(--b-breach)}
.fb-drop{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px;border:1px dashed #CFCDC6;border-radius:8px}
.fb-or{font-size:13px;color:var(--b-muted)}
.fb-choose{color:var(--b-green-d);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.fb-thumb{display:flex;align-items:center;gap:12px}
.fb-thumb img{width:160px;max-height:100px;object-fit:cover;object-position:top;border:1px solid var(--b-line);border-radius:8px}
.fb-ctx{padding-top:4px;border-top:1px solid #EFEEEA}
.fb-ctx-h{margin:8px 0 4px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.fb-ctx-list{margin:0;font-size:12px;line-height:1.45;color:#9A9A94}
.fb-ctx-list div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px}
.fb-ctx-list dt{color:var(--b-muted)}
.fb-ctx-list dd{margin:0;overflow-wrap:anywhere}
.fb-fail{margin:0;padding:8px 12px;border-radius:8px;background:var(--b-fill);font-size:13px;color:var(--b-body)}
.fb-foot{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--b-line)}
.fb-grow{flex:1}
.fb-btn{height:32px;padding:0 12px;border:1px solid var(--b-line);border-radius:8px;background:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer;white-space:nowrap}
.fb-btn:hover:not(:disabled){background:var(--b-fill)}
.fb-btn:disabled{opacity:.6;cursor:default}
.fb-primary{background:var(--b-green-d);border-color:var(--b-green-d);color:#fff}
.fb-primary:hover:not(:disabled){background:#166a34}
.fb-link{padding:0;border:0;background:none;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-green-d);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.fb-email-on{font-weight:600}
.fb-dialog :focus-visible,.fb-choose:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
.fb-text:focus-visible{outline:0}
@media (max-width:640px){.fb-foot{flex-wrap:wrap}.fb-email{order:3;width:100%;text-align:left}}
.ix-harness:active,.ix-scope:active{background:#E2E1DC}

/* Mode and agents popover (same look as the dropdowns) */
.ix-hx{position:fixed;z-index:10002;width:min(360px,calc(100vw - 16px));max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;box-sizing:border-box;padding:8px;
  background:#fff;border:1px solid var(--b-line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08);font-family:"DM Sans","DM Sans Fallback",sans-serif}
.ix-hx[hidden]{display:none}
.ix-hx:not([hidden]){animation:ix-fade .12s ease-out}
.ix-hx-k{margin:8px 8px 4px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.ix-hx-k:first-child{margin-top:4px}
.ix-hx-opt{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:0;border-radius:8px;background:none;text-align:left;cursor:pointer;font:inherit}
.ix-hx-opt:hover:not([disabled]){background:var(--b-fill)}
.ix-hx-opt[disabled]{cursor:default}
.ix-hx-opt[disabled] .ix-hx-t,.ix-hx-opt[disabled] .ix-hx-d{color:#9A9A94}
.ix-hx-opt:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
.ix-hx-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ix-hx-check{flex-shrink:0;width:16px;height:16px;color:var(--b-green-d)}
.ix-hx-t{font-size:14px;font-weight:500;color:var(--b-text)}
.ix-hx-d{font-size:13px;line-height:1.4;color:var(--b-muted)}
.ix-hx-agents{list-style:none;margin:0;padding:0}
.ix-hx-agents li{display:flex;flex-direction:column;gap:2px;padding:8px}
.ix-scope-at{color:var(--b-muted)}
.ix-at{position:absolute;left:24px;right:24px;bottom:100%;margin-bottom:-8px;z-index:2;max-height:320px;overflow-y:auto;padding:4px;
  background:#fff;border:1px solid var(--b-line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.ix-at[hidden]{display:none}
.ix-at-item{display:flex;align-items:baseline;justify-content:space-between;gap:16px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:none;
  font:400 14px/1.3 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);text-align:left;cursor:pointer}
.ix-at-item:hover,.ix-at-item.on{background:var(--b-fill)}
.ix-at-kind{flex-shrink:0;font-size:12px;color:var(--b-muted)}
.ix-at-empty{margin:0;padding:8px 12px;font-size:13px;color:var(--b-muted)}

/* Thread: questions, answers, "How I got this" */
.ix-empty-h{margin:0 0 16px;font:600 16px/1.4 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.ix-qs{display:flex;flex-direction:column;gap:8px}
.ix-q{display:block;width:100%;padding:12px 16px;border:1px solid var(--b-line);border-radius:8px;background:#fff;
  font:500 14px/1.4 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);text-align:left;cursor:pointer}
.ix-q:hover{background:var(--b-fill)}
.ix-q:active{background:#EAE9E5}
.ix-msg{margin:0 0 24px}
.ix-user p{display:inline-block;max-width:100%;margin:0;padding:8px 16px;border-radius:12px;background:var(--b-fill);font:500 16px/1.55 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.ix-msg-scope{display:block;margin-top:4px;font-size:12px;color:var(--b-muted)}
.ix-answer{max-width:72ch;font:400 16px/1.55 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body)}
.ix-answer p,.ix-answer ul,.ix-answer ol{margin:0 0 16px}
.ix-answer ul,.ix-answer ol{padding-left:24px}
.ix-answer > :last-child{margin-bottom:0}
.ix-answer strong{color:var(--b-text);font-weight:600}
.ix-answer a,.ix-how a{color:var(--b-green-d)}
.ix-answer code{font:13px "DM Mono","DM Mono Fallback",monospace;background:var(--b-fill);padding:0 4px;border-radius:4px}
.ix-table{width:100%;margin:0 0 16px;border-collapse:collapse;font-size:14px;line-height:1.4;font-variant-numeric:tabular-nums}
.ix-table th{padding:8px 16px 8px 0;border-bottom:1px solid var(--b-line);text-align:left;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted);white-space:nowrap}
.ix-table td{padding:8px 16px 8px 0;border-bottom:1px solid #EFEEEA;color:var(--b-body);vertical-align:top}
.ix-table th:last-child,.ix-table td:last-child{padding-right:0}
.ix-table .num{text-align:right;white-space:nowrap}
.ix-watch{color:var(--b-watch);font-weight:600}
/* Charts in answers (intel.js chartHtml): brand series colors, values at
   the bar ends, no gridlines, tabular figures */
.ix-chart{margin:0 0 16px;font-family:"DM Sans","DM Sans Fallback",sans-serif;font-variant-numeric:tabular-nums lining-nums;max-width:560px}
.ix-chart-t{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--b-text)}
.ix-hb{display:flex;flex-direction:column;gap:6px}
.ix-hb-r{display:grid;grid-template-columns:minmax(0,36%) minmax(0,1fr);gap:10px;align-items:center;font-size:13px;line-height:1.3}
.ix-hb-l{color:var(--b-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ix-hb-t{display:flex;align-items:center;gap:6px;min-width:0}
.ix-hb-f{display:block;height:14px;min-width:2px;border-radius:2px;flex-shrink:0}
.ix-hb-v{font-weight:500;color:var(--b-text);white-space:nowrap}
.ix-vb{display:grid;gap:8px;align-items:start}
.ix-vb-c{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.ix-vb-a{height:140px;width:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-bottom:1px solid #E7E5E0}
.ix-vb-v{margin-bottom:4px;font-size:12px;font-weight:500;color:var(--b-text);white-space:nowrap}
.ix-vb-b{display:block;width:min(36px,70%);min-height:2px;border-radius:2px 2px 0 0}
.ix-vb-l{font-size:11.5px;line-height:1.25;color:var(--b-body);text-align:center;overflow-wrap:anywhere}
.ix-line{display:block;width:100%;height:auto}
.ix-line text{font:500 12px "DM Sans","DM Sans Fallback",sans-serif;font-variant-numeric:tabular-nums lining-nums}
.ix-line-v{fill:var(--b-text)}
.ix-line-l{fill:var(--b-body);font-weight:400}
.ix-chart-bad{margin:0 0 16px}
.ix-chart-note{margin:0 0 6px!important;font-size:13px;color:var(--b-muted)}
.ix-breach{color:var(--b-breach);font-weight:600}
.ix-how{margin-top:8px;font-size:13px;color:var(--b-muted)}
.ix-how summary{display:inline-flex;align-items:center;gap:4px;height:24px;cursor:pointer;list-style:none;border-radius:8px}
.ix-how summary::-webkit-details-marker{display:none}
.ix-how summary::after{content:"";width:6px;height:6px;margin-left:4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.ix-how[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.ix-how summary:hover{color:var(--b-text)}
.ix-how-body{max-width:72ch;padding:8px 0 0}
.ix-how-body p{margin:0 0 8px}
.ix-how-k{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.ix-how ul{list-style:none;margin:0 0 8px;padding:0}
.ix-how li{padding:4px 0}
.ix-how-detail,.ix-how-when{display:block;font-size:12px;color:#9A9A94}

/* Fixed-size placeholder while an answer is prepared */
.ix-skel{display:flex;flex-direction:column;gap:12px;height:72px;max-width:72ch}
.ix-skel span{display:block;height:12px;border-radius:4px;background:var(--b-fill);animation:ix-pulse 1.2s ease-in-out infinite}
.ix-skel span:nth-child(1){width:92%}.ix-skel span:nth-child(2){width:78%}.ix-skel span:nth-child(3){width:56%}
@keyframes ix-pulse{50%{opacity:.5}}

/* Save, Schedule and follow-ups under an answer */
.ix-acts{display:flex;gap:8px;margin-top:8px}
.ix-act{height:28px;padding:0 10px;border:1px solid var(--b-line);border-radius:8px;background:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer}
.ix-act:hover:not(:disabled){background:var(--b-fill)}
.ix-act:disabled{color:var(--b-muted);cursor:default}
.ix-act-primary{background:var(--b-green-d);border-color:var(--b-green-d);color:#fff}
.ix-act-primary:hover:not(:disabled){background:#166a34}
.ix-follow{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px}
.ix-follow .ix-fq{width:auto;max-width:100%;padding:8px 12px;font-size:14px;color:var(--b-green-d)}
.ix-sched-g{display:flex;gap:4px;padding:0 4px}
.ix-sched-g .ix-hx-opt{width:auto;padding:6px 10px;border:1px solid var(--b-line);font-size:13px}
.ix-sched-g .ix-hx-opt[aria-checked="true"]{border-color:var(--b-green-d);background:var(--b-pass-t);color:var(--b-green-d);font-weight:600}
.ix-sched-f{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding:8px 4px 4px;border-top:1px solid #EFEEEA}
.ix-toast{position:fixed;left:50%;bottom:28px;z-index:10003;transform:translate(-50%,12px);opacity:0;pointer-events:none;padding:10px 16px;border-radius:8px;
  background:var(--b-text);color:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;transition:opacity .15s,transform .15s}
.ix-toast.show{opacity:1;transform:translate(-50%,0)}

/* Conversations drawer (conversations.js): saved questions and history */
.cv-back{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.25)}
.cv-back[hidden],.cv-drawer[hidden]{display:none}
.cv-drawer{position:fixed;top:0;left:0;bottom:0;z-index:1001;width:400px;max-width:100vw;box-sizing:border-box;display:flex;flex-direction:column;
  background:#fff;border-right:1px solid var(--b-line);box-shadow:0 8px 24px rgba(0,0,0,.08);font-family:"DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);animation:cv-in .2s ease-out}
@keyframes cv-in{from{transform:translateX(-100%)}to{transform:none}}
.cv-head{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 24px;border-bottom:1px solid var(--b-line)}
.cv-title{margin:0;font:600 16px/1 "DM Sans","DM Sans Fallback",sans-serif}
.cv-x{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
.cv-x:hover{background:var(--b-fill)}
.cv-find{display:block;padding:16px 24px 8px}
.cv-search{width:100%;height:36px;box-sizing:border-box;padding:0 12px;border:1px solid var(--b-line);border-radius:8px;font:400 16px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);background:#fff}
.cv-search:focus{outline:0;border-color:var(--b-green-d)}
.cv-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 16px 24px}
.cv-g{margin-top:16px}
.cv-g[hidden],.cv-list li[hidden],.cv-none[hidden]{display:none}
.cv-h{margin:0 8px 4px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.cv-list{list-style:none;margin:0;padding:0}
.cv-item{display:flex;flex-direction:column;gap:2px;width:100%;box-sizing:border-box;padding:8px;border:0;border-radius:8px;background:none;text-align:left;text-decoration:none;cursor:pointer;font:inherit;color:inherit}
.cv-item:hover{background:var(--b-fill)}
.cv-item.on{background:#EAE9E5}
.cv-brief .cv-t{display:flex;align-items:center;gap:6px;font-weight:600}
.cv-brief svg{color:var(--b-green-d);flex-shrink:0}
.ic-side .cv-head{padding:0 8px 0 16px}
.ic-side .cv-find{padding:12px 12px 4px}
.ic-side .cv-body{padding:4px 8px 24px}
.ic-side .cv-g{margin-top:12px}
.cv-item:focus-visible,.cv-x:focus-visible{outline:2px solid var(--b-green-d);outline-offset:-2px}
.cv-t{font-size:14px;font-weight:500;line-height:1.35;color:var(--b-text)}
.cv-m{font-size:12px;color:var(--b-muted)}
.cv-none{margin:16px 8px;font-size:14px;color:var(--b-muted)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media (max-width:640px){.cv-drawer{width:100vw;border-right:0}.cv-head{padding-left:16px}.cv-find{padding:16px 16px 8px}.cv-body{padding:8px 8px 24px}}
@media (prefers-reduced-motion:reduce){.cv-drawer{animation:none}.fp,.fp-story,.ix-toast{transition:none}}

@media (max-width:640px){
  .ix-panel{width:100vw;border-left:0}
  .ix-head{padding-left:16px}
  .ix-msgs{padding:16px}
  .ix-composer{padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
  .ix-at{left:16px;right:16px}
}

/* ── Intelligence file page (intel-files.html, unlinked) ── */
:is(html:has(script[src*="topbar.js"]), .pm-demo){
  .ix-home{flex:1;overflow-y:auto;padding:48px 24px}
  .ix-home[hidden]{display:none}
  .ix-home-in{max-width:720px;margin:0 auto}
  .ix-home-h{margin:0 0 16px;font:600 22px/1.3 "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:0;color:var(--b-text)}
  .ix-home .ix-qs{margin-bottom:24px}
  .ix-home-slot .input-zone{padding:0;background:none}
  .ix-docs{margin-top:32px}
  .ix-docs-h{margin:0 0 8px;font:600 14px/1.4 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
  .ix-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .ix-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:72px;padding:16px;border:1px solid var(--b-line);border-radius:12px;background:#fff;
    font-family:"DM Sans","DM Sans Fallback",sans-serif;text-align:left;cursor:pointer}
  .ix-tile:hover{background:var(--b-fill)}
  .ix-tile:active{background:#EAE9E5}
  .ix-tile-t{font-size:14px;font-weight:600;color:var(--b-text)}
  .ix-tile-a{font-size:13px;color:#9A9A94}
  .ix-sample{margin:16px 0 0;font-size:13px;color:var(--b-muted)}
  .ix-link{padding:0;border:0;background:none;font:inherit;color:var(--b-green-d);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
  .ix-samples{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
  .ix-samples[hidden]{display:none}
  .ix-sample-btn{height:32px;padding:0 12px;border:1px solid var(--b-line);border-radius:8px;background:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer}
  .ix-sample-btn:hover{background:var(--b-fill)}

  /* Composer: quiet card, scope chip on top */
  .input-zone{padding:16px 24px}
  .input-card{border:1px solid var(--b-line);border-radius:12px;box-shadow:none}
  .input-card:focus-within{border-color:var(--b-green-d)}
  .input-card > .ix-chips{margin:12px 16px 0}
  .input-card > .ix-at{left:0;right:0;margin-bottom:8px}
  .input-row{padding:8px 16px 4px}
  .input-ta{font-size:16px;line-height:1.5}
  .input-ta::placeholder{color:#9A9A94}
  .input-zone > div:last-child:not(.input-card){font-size:12px!important}

  /* Answers read at 16px, 72 characters a line */
  .msg.ai .bubble{font-size:16px;line-height:1.55;box-shadow:none}
  .msg.ai .bubble :is(p,ul,ol){max-width:72ch}
  .msg.ai .bubble .ix-answer{color:var(--b-body)}
  .msg-attr-logo{font-size:12px}
  .msg-body > .ix-how{margin-top:8px}
}
@media (max-width:640px){
  :is(html:has(script[src*="topbar.js"]), .pm-demo){
    .ix-home{padding:24px 16px}
    .ix-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
    .input-zone{padding:8px 16px}
  }
}
@media (prefers-reduced-motion:reduce){
  .ix-panel,.ix-panel.open,.ix-backdrop,.ix-backdrop.open{transition:none}
  .bell-dd,.av-dd,.ix-at,.ix-hx,.ix-skel span{animation:none!important}
}

/* ── Portfolios (abf-portfolios.html, portfolios.js) ──────────────
   Capital strip, Map / Table / Ladder, facility screen. Status colors only
   for status; measures use one green ramp. */
.pf-page{--pf-line:#E7E5E0;--pf-row:#EFEEEA;--pf-tint:#F4F4F2;--pf-press:#EAE9E5;
  width:100%;max-width:1360px;margin:0 auto;padding:32px 40px 64px!important;box-sizing:border-box;align-self:center;font-family:"DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.pf-page .num{font-variant-numeric:tabular-nums lining-nums}
.pf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 24px;margin:0 0 24px}
.pf-h1{margin:0;font:600 32px/1.2 "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:-.01em}
.pf-sub{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 0;font-size:14px;color:var(--b-muted)}
.pf-sub strong{color:var(--b-text);font-weight:600}
.pf-asof{margin:0;font-size:13px;color:var(--b-muted);white-space:nowrap}
.pf-muted{color:var(--b-muted)}
.pf-strong{font-weight:600;color:var(--b-text)}
.pf-r{text-align:right;justify-content:flex-end}
.pf-ell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-small{margin:0;font-size:13px;line-height:1.4}
.pf-eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.pf-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}
.pf-dot.pf-pass{background:var(--b-green-d)}.pf-dot.pf-watch{background:var(--b-watch-fill)}.pf-dot.pf-breach{background:var(--b-breach)}
.pf-pass-t{color:var(--b-green-d)}.pf-watch-t{color:var(--b-watch)}.pf-breach-t{color:var(--b-breach)}
.pf-link{padding:0;border:0;background:none;font:inherit;font-size:13px;font-weight:500;color:var(--b-green-d);cursor:pointer}
.pf-link:hover{text-decoration:underline}
.pf-btn{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border:1px solid var(--pf-line);border-radius:8px;background:#fff;
  font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);cursor:pointer;text-decoration:none;white-space:nowrap}
.pf-btn:hover{background:var(--pf-tint)}
.pf-btn:active{background:var(--pf-press)}
.pf-btn-l{height:40px;padding:0 16px;font-size:14px}
.pf-primary{background:var(--b-green-d);border-color:var(--b-green-d);color:#fff}
.pf-primary:hover{background:#166a34}
.pf-page :focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}

/* Capital strip */
.pf-strip{border:1px solid var(--pf-line);border-radius:12px;background:#fff;overflow:hidden}
.pf-shead,.pf-srow{display:grid;grid-template-columns:200px minmax(0,1fr) 88px 88px 88px 80px 72px 256px;gap:16px;align-items:center;padding:0 24px}
.pf-shead{height:40px;border-bottom:1px solid var(--pf-row);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.pf-srows{min-height:392px}
.pf-srow{width:100%;height:56px;border:0;border-bottom:1px solid var(--pf-row);background:none;text-align:left;font:400 14px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);box-sizing:border-box}
button.pf-srow{cursor:pointer}
button.pf-srow:hover{background:var(--pf-tint)}
.pf-srow.on{background:#EEF6F1}
.pf-srow.on .pf-sname{color:var(--b-green-d)}
.pf-srow.pf-dim{opacity:.5}
.pf-srow > .num{text-align:right}
.pf-sname{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-sbar{height:8px;border-radius:4px;background:var(--pf-tint)}
.pf-bar{display:flex;height:8px;border-radius:4px;background:#D3E8DA;overflow:hidden}
.pf-bar > span{height:8px;background:var(--b-green-d)}
.pf-sstatus{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-width:0;font-size:13px;line-height:18px;overflow:hidden}
.pf-sstatus .pf-dot{margin-right:8px;vertical-align:1px}
.pf-sonb{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:16px;align-items:center;height:48px;padding:0 24px;background:#FAFAF9;font-size:13px;color:var(--b-body)}
.pf-chip{display:inline-flex;align-items:center;gap:8px;height:24px;padding:0 8px;border-radius:8px;font-size:12px;font-weight:600;white-space:nowrap}
.pf-chip-onb{justify-self:start;background:var(--pf-tint);color:var(--b-body)}
.pf-pass-chip{background:#E6F2EA;color:var(--b-green-d)}.pf-watch-chip{background:var(--b-watch-t);color:var(--b-watch)}.pf-breach-chip{background:var(--b-breach-t);color:var(--b-breach)}

/* Toolbar */
.pf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:40px;margin:32px 0 16px}
.pf-toolbar[hidden]{display:none}
.pf-tl,.pf-tr{display:flex;align-items:center;gap:16px;font-size:13px}
.pf-tr{gap:8px}
.pf-segs{display:flex;gap:4px;padding:4px;border-radius:8px;background:var(--pf-tint)}
.pf-seg{height:32px;padding:0 12px;border:0;border-radius:8px;background:none;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer;white-space:nowrap}
.pf-seg:hover{background:var(--pf-press)}
.pf-seg.on{background:#fff;color:var(--b-green-d)}
.pf-crumb{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;color:var(--b-muted)}
.pf-key{display:inline-flex;align-items:center;gap:8px;margin-left:8px;color:var(--b-body)}
.pf-key-solid{width:16px;height:12px;border-radius:2px;background:var(--b-green-d)}
.pf-key-dash{width:14px;height:10px;border:1.5px dashed var(--b-green-d);border-radius:2px}
.pf-key-dia{display:inline-block;width:8px;height:8px;background:var(--b-text);transform:rotate(45deg);flex-shrink:0}

/* View area: one container for Map, Table, Ladder and the facility screen,
   always the page's content width; wide views scroll inside it. Fixed
   heights keep first paint and view switches from moving the page. */
html:has(.pf-page){scrollbar-gutter:stable}
.pf-area{position:relative;width:100%;min-width:0}
.pf-view{width:100%;box-sizing:border-box}
.pf-area-table .pf-view{overflow-x:auto}
.pf-table{min-width:960px;box-sizing:border-box}
.pf-area-ladder .pf-view{overflow-x:auto;overflow-y:hidden}
.pf-lwrap{position:relative;height:100%}
.pf-area-map .pf-view{position:relative;height:600px;border:1px solid var(--pf-line);border-radius:12px;background:#fff;overflow:hidden}
.pf-area-ladder .pf-view{position:relative;height:560px;border:1px solid var(--pf-line);border-radius:12px;background:#fff;overflow:hidden}
.pf-phead{position:absolute;display:flex;align-items:center;gap:8px;height:24px;padding:0 4px;border:0;background:none;font:400 12px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);text-align:left;white-space:nowrap;overflow:hidden;cursor:pointer}
.pf-phead:hover .pf-strong{text-decoration:underline}
.pf-tile{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:4px 8px;border:0;border-radius:4px;box-sizing:border-box;overflow:hidden;
  font:400 12px/1.25 "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);text-align:left;cursor:pointer}
.pf-tile:hover{filter:brightness(.95)}
.pf-tile.pf-on-dark{color:#fff}
.pf-tile-pass{background:#E6F2EA}.pf-tile-watch{background:var(--b-watch-fill);color:#2B1A00}.pf-tile-breach{background:var(--b-breach);color:#fff}
.pf-tn{max-width:100%;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-ta{opacity:.85}
.pf-tm{margin-top:auto;opacity:.85}
.pf-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:8px;min-height:24px;font-size:12px;color:var(--b-body)}
.pf-lg{display:inline-flex;align-items:center;gap:8px}
.pf-lg i{display:inline-block;width:16px;height:12px;border-radius:2px}
.pf-lg i.pf-ramp{width:56px;background:linear-gradient(90deg,rgb(236,244,239),#1a7a3c)}
.pf-lg i.pf-none{background:#F4F4F2;border:1px solid var(--pf-line)}
.pf-legend-note{margin-left:auto}
.pf-tip{position:absolute;z-index:20;width:296px;padding:16px;box-sizing:border-box;border:1px solid var(--pf-line);border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.08);
  font-size:13px;pointer-events:none;animation:ix-fade .12s ease-out}
.pf-tip[hidden]{display:none}
.pf-tip-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:14px}
.pf-code{font-size:12px;color:#9A9A94;font-weight:400;margin-left:8px}
.pf-tip-sub{margin-top:4px;font-size:12px}
.pf-tip-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:12px 0 0}
.pf-tip-g dt,.pf-kv dt{font-size:12px;color:var(--b-muted)}
.pf-tip-g dd,.pf-kv dd{margin:0;font-weight:600}
.pf-tip-g .pf-wide{grid-column:1 / -1}
.pf-tip-f{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:8px;border-top:1px solid var(--pf-row);font-size:12px}
.pf-st{display:inline-flex;align-items:center;gap:8px;font-weight:600}

/* Table */
.pf-table{border:1px solid var(--pf-line);border-radius:12px;background:#fff;overflow:hidden}
.pf-table .pf-tr{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1.2fr) 88px 104px 128px 72px 80px 96px 136px;gap:16px;align-items:center;width:100%;padding:0 24px;box-sizing:border-box;border:0;background:none;
  font:400 14px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);text-align:left}
.pf-th{height:40px;border-bottom:1px solid var(--pf-line)!important;background:#FAFAF9!important}
.pf-sort{display:flex;align-items:center;gap:4px;height:40px;padding:0;border:0;background:none;font:600 12px "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted);cursor:pointer}
.pf-sort.on,.pf-sort:hover{color:var(--b-text)}
.pf-arrow{width:8px;font-size:10px}
.pf-group{height:48px;border-bottom:1px solid var(--pf-row)!important;background:#F6F9F7!important;cursor:pointer;font-size:13px!important}
.pf-group:hover{background:#EEF4F0!important}
.pf-gname{display:flex;align-items:center;gap:8px;font-weight:600}
.pf-chev{color:var(--b-green-d);transition:transform .12s}
.pf-group[aria-expanded="true"] .pf-chev{transform:rotate(90deg)}
.pf-row{height:40px;border-bottom:1px solid var(--pf-row)!important;cursor:pointer}
.pf-row:hover{background:var(--pf-tint)!important}
.pf-fname{display:flex;align-items:baseline;gap:0;min-width:0;padding-left:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-util{display:flex;align-items:center;gap:8px}
.pf-mini{display:inline-flex;width:56px;height:6px;border-radius:3px;background:var(--pf-tint);overflow:hidden}
.pf-mini > span{height:6px;background:var(--b-green-d)}
.pf-ext{font-size:12px}
.pf-note{margin:8px 0 0;font-size:12px;color:var(--b-muted)}

/* Ladder */
.pf-lsum{display:flex;flex-wrap:wrap;gap:8px 32px;padding:16px 24px 0;font-size:13px;color:var(--b-body)}
.pf-lsum strong{color:var(--b-text);font-weight:600}
.pf-lplot{position:absolute;left:0;right:0}
.pf-lgrid{position:absolute;right:16px;height:1px;background:var(--pf-row)}
.pf-laxis{position:absolute;left:0;width:56px;text-align:right;font-size:12px;color:var(--b-muted)}
.pf-lbase{position:absolute;right:16px;height:1px;background:var(--b-text)}
.pf-lq{position:absolute;text-align:center;font-size:12px;color:var(--b-muted)}
.pf-lq.pf-strong{color:var(--b-text)}
.pf-ltot{position:absolute;text-align:center;font-size:12px;font-weight:600}
.pf-lseg{position:absolute;padding:2px 4px;border:0;border-radius:2px;box-sizing:border-box;overflow:hidden;font:600 11px/1.2 "DM Sans","DM Sans Fallback",sans-serif;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}
.pf-shade-0{background:#1a7a3c;color:#fff}.pf-shade-1{background:#5DA27A;color:#fff}.pf-shade-2{background:#98CBA8;color:#0B2E18}.pf-shade-3{background:#C3E2CC;color:#0B2E18}.pf-shade-4{background:#E3F1E7;color:#0B2E18}
.pf-ghost{border:1.5px dashed var(--b-green-d);background:rgba(26,122,60,.05);color:var(--b-green-d)}
.pf-lrp{position:absolute;display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}
.pf-lrp-label{position:absolute;left:0;width:56px;text-align:right;font-size:12px;line-height:1.2;color:var(--b-muted)}

/* Facility screen */
.pf-fac-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;margin:32px 0 16px}
.pf-back{padding-left:8px}
.pf-pn{display:flex;gap:8px;flex-shrink:0}
.pf-card{display:flex;flex-direction:column;gap:32px;padding:32px;border:1px solid var(--pf-line);border-radius:12px;background:#fff}
.pf-fac-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.pf-fac-title{display:flex;align-items:center;flex-wrap:wrap;gap:16px}
.pf-fac-title h2{margin:0;font:600 32px/1.2 "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:-.01em;outline:0}
.pf-fac-meta{margin-top:8px;font-size:14px}
.pf-fac-meta .mono{font-size:12px}
.pf-fac-acts{display:flex;gap:8px;flex-shrink:0}
.pf-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.pf-panel{display:flex;flex-direction:column;gap:16px;padding:0 32px;border-left:1px solid var(--pf-row)}
.pf-panel:first-child{padding-left:0;border-left:0}
.pf-panel:last-child{padding-right:0}
.pf-big{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:14px}
.pf-big > span:first-child{font-size:32px;font-weight:600;line-height:1.1}
.pf-big-text{font-size:16px;font-weight:600;line-height:1.4}
.pf-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.pf-kv dd{font-size:16px}
.pf-capbar{height:8px;border-radius:4px;background:#D3E8DA;overflow:hidden}
.pf-capbar > span{display:block;height:8px;background:var(--b-green-d)}
.pf-gauge{position:relative;height:32px}
.pf-gauge::before{content:"";position:absolute;left:0;right:0;top:12px;height:8px;border-radius:4px;background:var(--pf-tint)}
.pf-gauge-fill{position:absolute;left:0;top:12px;height:8px;border-radius:4px 0 0 4px;background:var(--b-green-d)}
.pf-gauge-over{position:absolute;right:0;top:12px;height:8px;border-radius:0 4px 4px 0;background:repeating-linear-gradient(135deg,#E7E5E0 0 3px,#F4F4F2 3px 6px)}
.pf-gauge-max{position:absolute;top:4px;width:2px;height:24px;margin-left:-1px;background:var(--b-text)}
.pf-term{position:relative;height:32px}
.pf-term-line{position:absolute;left:0;right:0;top:12px;height:2px;background:var(--pf-line)}
.pf-term-fill{position:absolute;left:0;top:9px;height:8px;border-radius:2px;background:var(--b-green-d)}
.pf-term-ext{position:absolute;top:8px;height:10px;box-sizing:border-box;border:1.5px dashed var(--b-green-d);border-left:0;border-radius:0 2px 2px 0}
.pf-term-rp{position:absolute;top:9px;margin-left:-4px;background:#fff;border:2px solid var(--b-text);box-sizing:border-box}
.pf-yr{position:absolute;top:20px;padding-left:4px;border-left:1px solid var(--pf-line);font-size:12px;line-height:12px;color:#9A9A94}
.pf-sibs{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid var(--pf-row)}
.pf-sib-list{display:flex;flex-wrap:wrap;gap:8px}
.pf-sib{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid var(--pf-line);border-radius:8px;background:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);cursor:pointer}
.pf-sib:hover{background:var(--pf-tint)}
.pf-sib.on{background:var(--b-green-d);border-color:var(--b-green-d);color:#fff}
.pf-sib.on .pf-muted{color:rgba(255,255,255,.8)}

@media (max-width:1100px){
  .pf-shead,.pf-srow{grid-template-columns:160px minmax(0,1fr) 80px 80px 72px 200px}
  .pf-shead > :nth-child(5),.pf-shead > :nth-child(6),.pf-srow > :nth-child(5),.pf-srow > :nth-child(6){display:none}
  .pf-table .pf-tr{grid-template-columns:minmax(0,2fr) 80px 96px 112px 72px 72px 88px 104px}
  .pf-table .pf-tr > :nth-child(2){display:none}
  .pf-panels{grid-template-columns:minmax(0,1fr);gap:24px}
  .pf-panel{padding:0;border-left:0}
}
/* Phones: Table view only; the strip and facility screen stack */
@media (max-width:639px){
  .pf-page{padding:24px 16px 48px!important}
  .pf-head{flex-direction:column;align-items:flex-start;gap:8px}
  .pf-h1{font-size:22px}
  .pf-shead{display:none}
  .pf-srows{min-height:0}
  .pf-srow{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;row-gap:4px;height:auto;padding:12px 16px}
  .pf-srow > *{grid-column:1 / -1}
  .pf-srow > .pf-sname{grid-column:1;grid-row:1}
  .pf-srow > :nth-child(4){grid-column:2;grid-row:1}
  .pf-srow > :nth-child(3),.pf-srow > :nth-child(5),.pf-srow > :nth-child(6),.pf-srow > :nth-child(7){display:none}
  .pf-sonb{grid-template-columns:1fr;height:auto;gap:4px;padding:12px 16px}
  .pf-toolbar{height:auto;margin:24px 0 8px;flex-wrap:wrap;row-gap:8px}
  .pf-views .pf-seg:not([data-view="table"]){display:none}
  /* A group row's name and count wrap by word, never mid-word */
  .pf-table .pf-tr.pf-group{height:auto;min-height:48px}
  .pf-table .pf-group .pf-gname{display:block;padding:10px 0;overflow-wrap:normal;word-break:normal}
  .pf-table .pf-group .pf-gname svg{display:inline-block;vertical-align:-2px;margin-right:6px}
  .pf-table .pf-group .pf-gname .pf-muted{display:block;margin-left:22px;font-weight:400}
  .pf-table{min-width:0}
  .pf-table .pf-tr{grid-template-columns:minmax(0,1fr) 72px 88px;padding:0 16px}
  .pf-table .pf-tr > :nth-child(n+4):not(:nth-child(8)){display:none}
  .pf-table .pf-tr > :nth-child(2),.pf-table .pf-tr > :nth-child(4){display:none}
  .pf-row{height:auto;min-height:48px}
  .pf-fname{padding-left:0;white-space:normal}
  .pf-code{display:none}
  .pf-fac-bar{flex-direction:column;align-items:flex-start}
  .pf-crumb{flex-wrap:wrap}
  .pf-card{padding:16px}
  .pf-fac-head{flex-direction:column}
  .pf-fac-title h2{font-size:22px}
  .pf-fac-acts{flex-wrap:wrap}
  .pf-kv{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ── Collateral (abf-collateral.html, collateral.js) ─────────────── */
html.cl-wait .cl-page{visibility:hidden}
.cl-page{--cl-line:#E7E5E0;--cl-row:#EFEEEA;--cl-tint:#F4F4F2;width:100%;max-width:1360px;margin:0 auto;padding:32px 40px 64px!important;box-sizing:border-box;align-self:center;
  display:flex;flex-direction:column;gap:24px;font-family:"DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.cl-page .num{font-variant-numeric:tabular-nums lining-nums}
.cl-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}
.cl-h1{margin:0;font:600 32px/1.2 "DM Sans","DM Sans Fallback",sans-serif;letter-spacing:-.01em}
.cl-sub{margin:8px 0 0;font-size:14px;color:var(--b-muted)}
.cl-sub .num{color:var(--b-text);font-weight:600}
.cl-sub .num,.cl-sub .mono{white-space:nowrap}
.cl-btn{height:40px;padding:0 16px;border:1px solid var(--b-green-d);border-radius:8px;background:#fff;font:600 14px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-green-d);cursor:pointer}
.cl-btn:hover{background:#EEF6F1}
.cl-eyebrow{display:block;margin:0;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.cl-muted{color:var(--b-muted)}
.cl-strong{font-weight:600;color:var(--b-text)}
.cl-small{font-size:13px;line-height:1.4;margin:0}
.cl-r{text-align:right;justify-self:end}
.cl-ell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-link{padding:0;border:0;background:none;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-green-d);text-decoration:none;cursor:pointer}
.cl-link:hover{text-decoration:underline}
.cl-page :focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
.cl-pass-t{color:var(--b-green-d)}.cl-watch-t{color:var(--b-watch)}.cl-breach-t{color:var(--b-breach)}
.cl-st{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;white-space:nowrap}
.cl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cl-st.cl-pass{color:var(--b-green-d)}.cl-st.cl-pass .cl-dot{background:var(--b-green-d)}
.cl-st.cl-watch{color:var(--b-watch)}.cl-st.cl-watch .cl-dot{background:var(--b-watch-fill)}
.cl-st.cl-breach{color:var(--b-breach)}.cl-st.cl-breach .cl-dot{background:var(--b-breach)}

/* Search */
.cl-search{position:relative;display:flex;flex-direction:column;gap:8px}
.cl-search input{height:48px;box-sizing:border-box;padding:0 16px;border:1px solid var(--cl-line);border-radius:8px;background:#fff;font:400 16px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.cl-search input:focus{outline:0;border-color:var(--b-green-d)}
.cl-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:420px;overflow-y:auto;padding:8px;box-sizing:border-box;
  border:1px solid var(--cl-line);border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.08);animation:ix-fade .12s ease-out}
.cl-results[hidden]{display:none}
.cl-res-h{padding:8px 8px 4px}
.cl-res{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:8px;border-radius:8px;font-size:14px;color:var(--b-text);text-decoration:none}
.cl-res .mono{font-size:13px}
.cl-res .cl-muted{font-size:12px;flex-shrink:0}
.cl-res:hover,.cl-res.on{background:var(--cl-tint)}
.cl-res-note{margin:0;padding:8px;font-size:13px}

/* Action cards */
.cl-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;min-height:208px}
.cl-card{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--cl-line);border-radius:12px;background:#fff}
.cl-card-n{font-size:32px;font-weight:600;line-height:1.1}
.cl-card-breach .cl-card-n{color:var(--b-breach)}
.cl-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.cl-card-list a{display:flex;flex-direction:column;gap:2px;margin:0 -8px;padding:4px 8px;border-radius:8px;text-decoration:none}
.cl-card-list a:hover{background:var(--cl-tint)}
.cl-card-fac{font-size:13px;font-weight:600;color:var(--b-green-d)}
.cl-card-desc{font-size:13px;line-height:1.4;color:var(--b-body)}
.cl-card p{margin:0;font-size:13px}

/* Sections and tables (facility-page style) */
.cl-grid{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:24px;align-items:start}
.cl-sec{display:flex;flex-direction:column;gap:12px;min-width:0;padding:24px;border:1px solid var(--cl-line);border-radius:12px;background:#fff}
.cl-sec-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.cl-sec-h h2{margin:0;font:600 16px/1.3 "DM Sans","DM Sans Fallback",sans-serif}
.cl-segs{display:flex;gap:4px;padding:4px;border-radius:8px;background:var(--cl-tint)}
.cl-seg{height:32px;padding:0 12px;border:0;border-radius:8px;background:none;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer;white-space:nowrap}
.cl-seg:hover{background:#EAE9E5}
.cl-seg.on{background:#fff;color:var(--b-green-d)}
.cl-table{display:flex;flex-direction:column;min-width:0}
.cl-tr{display:grid;align-items:center;gap:16px;min-height:40px;padding:4px 0;border-bottom:1px solid var(--cl-row);font-size:14px;color:var(--b-text);text-decoration:none}
a.cl-tr:hover{background:#FAFAF9}
.cl-th{min-height:32px;border-bottom-color:var(--cl-line);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.cl-cushion .cl-tr{grid-template-columns:minmax(0,2.2fr) 96px 88px minmax(0,1.6fr) 88px 64px}
.cl-fname{min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-cush{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;column-gap:8px;min-width:0}
.cl-cush .num{text-align:right}
.cl-bar{height:6px;border-radius:3px;background:var(--cl-tint);overflow:hidden}
.cl-bar > span{display:block;height:6px;border-radius:3px;background:var(--b-green-d)}
.cl-shadow{grid-column:1 / -1;font-size:12px;text-align:left!important;white-space:nowrap}
.cl-tested{grid-column:1 / -1;font-size:12px;line-height:1.3}
.cl-sparkcell{display:flex;align-items:center;color:var(--b-green-d)}
.cl-spark{display:block}
.cl-ex{grid-template-columns:minmax(0,1fr) 88px 72px 112px}
.cl-exname{display:flex;flex-direction:column;min-width:0}
.cl-exname > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-exname .cl-muted{font-size:12px}
.cl-more{align-self:flex-start;margin-top:8px}
.cl-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cl-tile{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:8px;background:#FAFAF9}
.cl-tile-v{font-size:22px;font-weight:600;line-height:1.2}
.cl-tile-v.mono{font-size:20px}
.cl-class-open{grid-column:1 / -1;justify-self:start}
.cl-mv{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(184px,1fr) minmax(0,2.2fr) 72px}

/* Collateral breakpoints: cards and class tiles 4 → 2 → 1 at 1200 / 640;
   cushion and exposure each take the full width; tables drop their
   least important columns first, then become two-line rows below 640 */
@media (max-width:1199px){
  .cl-cards,.cl-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1099px){
  .cl-cushion .cl-tr{grid-template-columns:minmax(0,2.2fr) 96px 88px minmax(0,1.6fr) 64px}
  .cl-cushion .cl-tr > :nth-child(5){display:none}
  .cl-mv{grid-template-columns:minmax(0,1.6fr) minmax(184px,1fr) minmax(0,2.2fr) 72px}
  .cl-mv > :nth-child(2){display:none}
}
@media (max-width:899px){
  .cl-cushion .cl-tr{grid-template-columns:minmax(0,2.2fr) 96px 88px minmax(0,1.6fr)}
  .cl-cushion .cl-tr > :nth-child(6){display:none}
  .cl-ex{grid-template-columns:minmax(0,1fr) 88px 112px}
  .cl-ex > :nth-child(3){display:none}
}
@media (max-width:639px){
  .cl-page{padding:24px 16px 48px!important;gap:16px}
  .cl-h1{font-size:22px}
  .cl-cards,.cl-tiles{grid-template-columns:minmax(0,1fr)}
  .cl-cards{min-height:0}
  .cl-sec{padding:16px}
  /* Two-line rows: name + status, then cushion + class */
  .cl-cushion .cl-th{display:none}
  .cl-cushion .cl-tr{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;row-gap:4px;padding:8px 0}
  .cl-cushion .cl-tr > :nth-child(1){grid-column:1;grid-row:1}
  .cl-cushion .cl-tr > :nth-child(3){grid-column:2;grid-row:1;justify-self:end}
  .cl-cushion .cl-tr > :nth-child(4){grid-column:1;grid-row:2}
  .cl-cushion .cl-tr > :nth-child(2){display:block;grid-column:2;grid-row:2;justify-self:end;font-size:13px}
  .cl-ex.cl-th{display:none}
  .cl-ex{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;row-gap:4px;padding:8px 0}
  .cl-ex > :nth-child(1){grid-column:1 / -1;grid-row:1}
  .cl-ex > :nth-child(2){grid-column:1;grid-row:2;justify-self:start;text-align:left}
  .cl-ex > :nth-child(4){grid-column:2;grid-row:2}
  .cl-mv{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;row-gap:4px;padding:8px 0}
  .cl-mv > :nth-child(1){grid-column:1;grid-row:1}
  .cl-mv > :nth-child(3){grid-column:2;grid-row:1}
  .cl-mv{grid-template-rows:auto auto auto}
  .cl-mv > :nth-child(4){grid-column:1 / -1;grid-row:2}
  .cl-mv > :nth-child(5){grid-column:1 / -1;grid-row:3;justify-self:start}
}

/* ── Import (import.js): the one data-import dialog ─────────────── */
.im-backdrop{position:fixed;inset:0;z-index:1100;background:rgba(0,0,0,.25);animation:ix-fade .12s ease-out}
.im-dialog{position:fixed;left:50%;top:50%;z-index:1101;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;border:1px solid #E7E5E0;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.08);
  font-family:"DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);animation:ix-fade .12s ease-out}
.im-backdrop[hidden],.im-dialog[hidden],.im-dialog [hidden]{display:none!important}
.im-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 16px 8px 24px}
.im-title{margin:0;font:600 16px/1.3 "DM Sans","DM Sans Fallback",sans-serif}
.im-x{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:var(--b-muted);cursor:pointer}
.im-x:hover{background:#F4F4F2;color:var(--b-text)}
.im-body{display:flex;flex-direction:column;gap:16px;padding:8px 24px 16px}
.im-step{display:flex;flex-direction:column;gap:16px}
.im-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:160px;padding:24px;box-sizing:border-box;border:1px solid #E7E5E0;border-radius:12px;background:#fff;text-align:center;cursor:pointer}
.im-drop:hover,.im-drop.on{background:#F4F4F2}
.im-drop:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
.im-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.im-drop-t{font-size:16px;font-weight:500}
.im-browse{color:var(--b-green-d);text-decoration:underline;text-underline-offset:2px}
.im-drop-s{font-size:13px;color:var(--b-muted)}
.im-file{display:flex;flex-direction:column;gap:8px}
.im-file-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #E7E5E0;border-radius:12px}
.im-file-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.im-file-size{font-size:13px;color:var(--b-muted)}
.im-change{padding:0;border:0;background:none;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-green-d);cursor:pointer}
.im-detect{margin:0;font-size:13px;color:var(--b-body)}
.im-detect.im-err{color:var(--b-breach)}
.im-field{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.im-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--b-muted)}
.im-fac{height:40px;padding:0 12px;border:1px solid #E7E5E0;border-radius:8px;background:#fff;font:400 14px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text)}
.im-fac:focus-visible{outline:2px solid var(--b-green-d);outline-offset:1px}
.im-feed{margin:0;font-size:13px;color:var(--b-muted)}
.im-feed a,.im-done-a{color:var(--b-green-d)}
.im-done{display:flex;flex-direction:column;gap:8px;padding:8px 0}
.im-done-t{margin:0;font-size:16px;font-weight:600}
.im-done-s{margin:0;font-size:14px;color:var(--b-body)}
.im-done-a{font-size:14px;font-weight:500}
.im-foot{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid #EFEEEA}
.im-btn{height:40px;padding:0 16px;border:1px solid #E7E5E0;border-radius:8px;background:#fff;font:500 14px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);cursor:pointer}
.im-btn:hover{background:#F4F4F2}
.im-primary{border-color:var(--b-green-d);background:var(--b-green-d);color:#fff}
.im-primary:hover{background:#166a34}
.im-primary:disabled{border-color:#E7E5E0;background:#F4F4F2;color:#9A9A94;cursor:default}
.im-dialog button:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
/* Tape pages without a top-bar tool row: the same look as their CSV button */
.im-trigger{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid #E7E5E0;border-radius:8px;background:#fff;font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-text);cursor:pointer}
.im-trigger:hover{background:#F4F4F2}
/* Tape rows flagged in an import */
.tape-flag{display:inline-block;margin-left:8px;padding:0 8px;border-radius:8px;background:var(--b-watch-t);color:var(--b-watch);font-size:12px;font-weight:600;line-height:20px;white-space:nowrap}

/* ── Homepage product visuals (index.html; tools/bake-hero.js, hero.js) ──
   Slices of the real UI, drawn by the platform rules above through the
   .pm-demo scope. Below: what each platform page's own stylesheet would
   otherwise supply, the hero's frame and camera, and the section slices. */
.pm-demo{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-variant-numeric:tabular-nums lining-nums;color:var(--b-text);text-align:left;line-height:1.4}
.pm-demo *,.pm-demo *::before,.pm-demo *::after{box-sizing:border-box}
.pm-demo p,.pm-demo h1,.pm-demo h2,.pm-demo h3,.pm-demo ul{margin:0}
.pm-demo .topnav{display:flex;align-items:center;gap:8px;padding:0 20px;position:relative}
.pm-demo .logo{display:flex;align-items:center;margin-right:8px;flex-shrink:0}
.pm-demo .tb-nav{display:flex}
.pm-demo .nav-btn{border-radius:8px}
.pm-demo .topnav-right{margin-left:auto}
.pm-demo .av{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.18);color:#fff;font:600 12px "DM Sans","DM Sans Fallback",sans-serif}
.pm-demo .fp-mono{font-family:"DM Mono","DM Mono Fallback",ui-monospace,monospace}
.pm-demo .hx-link{font-size:13px;color:var(--b-green-d)}
.pm-demo .num{font-family:"DM Sans","DM Sans Fallback",sans-serif;font-variant-numeric:tabular-nums lining-nums}

/* The hero: one 1664×1325 view of the landing page (the frame's own
   aspect): the thread with today's brief as a live artifact. The camera
   opens on it whole, zooms into each beat, and ends wide again; --k fits
   the frame's width, --z is the zoom. Everything moves by transform or
   opacity, so the page never shifts. */
.hx{position:relative}
.hx-frame{position:relative;width:100%;aspect-ratio:703/560;overflow:hidden;border:1px solid #E7E5E0;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08);background:var(--b-bg);pointer-events:none;
  --k:1;--z:.4225;--x:0;--y:0;contain:layout paint}
.hx-stage{position:absolute;top:0;left:0;width:1664px;height:1325px;background:var(--b-bg);transform-origin:0 0;
  transform:translate(calc(var(--x) * -1px * var(--z) * var(--k)),calc(var(--y) * -1px * var(--z) * var(--k))) scale(calc(var(--z) * var(--k)));
  transition:transform .6s ease-in-out}
.hx-stage > .topnav{position:absolute;top:0;left:0;right:0;height:56px;z-index:3}
.hx-stage .hx-ic{position:absolute!important;top:56px;left:0;right:0;bottom:0;height:auto!important;display:block!important}
.hx-ic .ic-chat{height:100%}
.hx-ic .ix-msgs{overflow:hidden}
.hx-msgs-in{position:relative;transform:translateY(calc(var(--scroll, 0) * -1px));transition:transform .6s ease-in-out}
.hx-feed-in{--pending:1}
/* The update strip's beat: the artifact's body is veiled, its header and strip stay clear */
.hx-frame .bl-body{position:relative}
.hx-frame .bl-body::after{content:"";position:absolute;inset:0;background:#fff;opacity:0;transition:opacity .5s;pointer-events:none}
.hx-frame.spot .bl-body::after{opacity:.94}
.hx-frame.up .hx-feed-in{--pending:0}
.hx-frame .ix-msg{position:relative}
.hx-frame .fp-door{cursor:default}
.hx-frame .hx-step{opacity:0;transition:opacity .3s ease-out}
.hx-frame .hx-step.on{opacity:1}
.hx-skel{position:absolute;top:0;left:0;right:0;transition:opacity .25s}
.hx-frame .hx-body{opacity:0;transition:opacity .45s ease-out}
.hx-frame .done > .hx-skel{opacity:0}
.hx-frame .done > .hx-body{opacity:1}
.hx-frame .ix-how-body{clip-path:inset(0 0 100% 0);transition:clip-path .5s ease-out}
.hx-frame .ix-how.expand .ix-how-body{clip-path:inset(0)}
.hx-frame .hx-ev{opacity:0;transform:translateY(-6px);transition:opacity .35s ease-out,transform .35s ease-out}
.hx-frame .hx-ev.on{opacity:1;transform:none}
.hx-frame .fp-story.fp-on{background:var(--b-pass-t);box-shadow:0 0 0 12px var(--b-pass-t)}
.hx-input{position:relative;flex:1;min-width:0;height:32px;font:400 16px/32px "DM Sans","DM Sans Fallback",sans-serif;white-space:nowrap;overflow:hidden}
.hx-typed,.hx-ph{position:absolute;left:0;top:0}
.hx-ph{color:#9A9A94;transition:opacity .15s}
.hx-typed:not(:empty) + .hx-ph{opacity:0}
.hx-typed:not(:empty)::after{content:"";position:absolute;right:-3px;top:7px;width:1.5px;height:18px;background:var(--b-text)}
.hx-cursor{position:absolute;top:0;left:0;width:20px;height:20px;z-index:20;opacity:0;transition:transform .6s ease-in-out,opacity .2s;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3 2l13 7-6 1.5L7 17z' fill='%231a1a1a' stroke='%23fff' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat;
  transform:translate(calc(var(--cx, 0) * 1px),calc(var(--cy, 0) * 1px))}
.hx-cursor.on{opacity:1}
.hx-cursor.tap{animation:hx-tap .25s ease-out}
@keyframes hx-tap{50%{transform:translate(calc(var(--cx, 0) * 1px),calc(var(--cy, 0) * 1px)) scale(.8)}}
/* Replay sits below the frame's bottom-right corner, never over the product */
.hx-replay{position:absolute;right:0;top:calc(100% + 10px);height:32px;padding:0 12px;border:1px solid var(--b-line);border-radius:8px;background:#fff;
  font:500 13px "DM Sans","DM Sans Fallback",sans-serif;color:var(--b-body);cursor:pointer;visibility:hidden;opacity:0;transition:opacity .3s}
.hx-replay.on{visibility:visible;opacity:1}
.hx-replay:hover{background:var(--b-fill)}
.hx-replay:focus-visible{outline:2px solid var(--b-green-d);outline-offset:2px}
/* Phones: the replay gives way to one notification-style card under the
   hero's subhead (tools/bake-hero.js, region "note"). Static, not interactive. */
.hx-note{display:none}
@media (max-width:639px){
  .hx-frame,.hx-replay,.hx > .hx-sr{display:none}
  .hx-note{display:block;margin:0 0 16px}
  .hx-note-card{padding:14px;background:#fff;border:1px solid #E7E5E0;border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.08);pointer-events:none;
    font-family:"DM Sans","DM Sans Fallback",sans-serif}
  .hx-note-h{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}
  .hx-note-mark{flex-shrink:0;display:block;border-radius:5px}
  .hx-note-app{font-weight:600;color:#1a1a1a}
  .hx-note-t{margin-left:auto;color:#6B6B66}
  .hx-note-b{margin:0;font-size:16px;line-height:1.4;color:#1a1a1a;text-wrap:balance}
}
@media (prefers-reduced-motion:reduce){.hx-stage,.hx-msgs-in,.hx-frame .hx-step,.hx-frame .hx-body,.hx-skel,.hx-frame .ix-how-body,.hx-frame .hx-ev,.hx-cursor,.hx-feed-in,.hx-sticky,.hx .bl-dot,.hx-frame .bl-body::after{transition:none!important;animation:none!important}}

/* The homepage's one product visual below the hero: a citation lineage
   (tools/bake-hero.js, region "trace") in the Brief's own chain rows. The
   platform's scoped rules outrank plain class selectors, so the overrides
   carry !important. */
.pm-slice{display:flex;flex-direction:column;gap:14px}
.pm-card{background:#fff;border:1px solid #E7E5E0;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:20px 22px;overflow:hidden}
.pm-fp{color:var(--b-text)}
.pm-trace .fp-chain{margin:0!important}
.pm-trace .fp-chain-row{grid-template-columns:24px 112px minmax(0,1fr) auto!important;gap:10px!important;padding:12px 14px!important;align-items:baseline}
.pm-trace .pm-file{overflow-wrap:anywhere}
.pm-trace .fp-chain-h .fp-mono{font-size:12px!important}
@media (max-width:640px){
  .pm-card{padding:16px}
  /* Two lines a step: number, step and value; then the detail */
  .pm-trace .fp-chain-row{grid-template-columns:20px minmax(0,1fr) auto!important;gap:4px 10px!important;padding:12px!important}
  .pm-trace .fp-chain-row .fp-type{grid-column:2!important;grid-row:1}
  .pm-trace .fp-chain-row .fp-val{grid-column:3!important;grid-row:1;text-align:right!important}
  .pm-trace .fp-chain-row > span:nth-child(3){grid-column:2 / -1!important;grid-row:2}
  .pm-trace .fp-chain-h{flex-wrap:wrap;row-gap:4px}
}
