/* BH-Execute — editorial layer (2026-09-10).
   Carries the Command Center's look into Execute so the two platforms read as one system
   (Lavon: "The platforms need to match in style and feel"): Mulish type, tracked navy caps
   for labels, navy-family text (never grey), blocks marked by a navy top rule instead of a
   bordered and shadowed box, and no resting shadows. Floating layers (menus, popovers,
   drawers, modals, tooltips) keep theirs so they still lift off the page.
   Loaded after styles.css so it wins the cascade; it changes no markup and no behaviour.
   Left alone on purpose: the status palette and the Execute. wordmark. The Scoreboard (.mdx)
   was left mirroring MD Medical until Lavon approved it as numbered exhibits (2026-09-10).
   Values stay on the design-system scale (type 11/12.5/14/16.5/20/26/34, radii 8/14/pill,
   4/8pt spacing) so tests/smoke_test.py holds this file to the same ratchet. */

/* ---- tokens: cool paper canvas, navy-family text, cool hairlines, no resting shadow ---- */
:root{
  --cream:#F5F6FA;
  --ink:#2a3160; --muted:#4a5286; --ink-muted:#4a5286;
  --line:#E4E7F0; --hair:#EEF0F7;
  --shadow:none;
}
body{font-family:'Mulish','Inter','Avenir Next',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--cream)}

/* ---- shell ---- */
.topbar{box-shadow:none;border-bottom:1px solid rgba(255,255,255,.08)}
.nav-item{border-radius:0 8px 8px 0}
.nav-item.active{background:rgba(255,255,255,.1);color:#fff;font-weight:700;box-shadow:inset 3px 0 0 var(--gold)}
.nav-item.active .nav-count{background:rgba(255,255,255,.18);color:#fff}

/* ---- blocks: a navy top rule, not a box ---- */
.card{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none}
.section-title{font-family:var(--font-head);font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}
.empty,.empty-state{color:var(--muted)}

/* ---- no resting shadows on anything that sits on the page ---- */
.ci-card,.comp-card,.dash-banner,.dash-qc,.disco-card,.disco-hero,.dm-intro,.dm-row,.dp-card,.fin-stat,.fm-row,
.info-card,.ins-card,.ins-strip,.iss,.kcard,.m-imp,.mk-row,.mt-panel,.ntp-card,.oe-poster,.own-table,.pb-card,
.pip-col,.pip-rep,.pm-row,.rate-row,.rc-row,.ring-tile,.rpc-card,.rpc-intro,.rpc-tile,.sb-tile,.seat,.td-row,
.vv-page,.vv-vgrid,.wk-grid13,.wkd-card,.wkd-gl,.wt,.mast-client,.bk-wrap,.fb-wrap{box-shadow:none}
.dd-row:hover,.mk-row.mk-click:hover,.pb-card:hover,.pm-row:hover,.mw-item:hover,.vv-imp:hover,.wkd-gl.gl-click:hover{box-shadow:none;background:#F8F9FC}

/* ---- buttons: the Command Center's squarer, quieter controls ---- */
.btn{border-radius:4px}

/* ================= per screen ================= */

/* client banner, top of every screen: a masthead over one navy rule, not a card */
.dash-banner{background:transparent;border:0;border-bottom:1px solid var(--navy);border-radius:0;box-shadow:none;padding:0 0 16px;margin-bottom:24px}

/* top-bar controls: the Command Center's squarer corners */
.refresh-btn,.reset-btn,.tb-home,.va-btn{border-radius:4px}

/* page headings: light and large; section heads: tracked navy caps */
.shd-hero h2,.mw-greet-main>:first-child{font-weight:300;font-size:34px;letter-spacing:-.012em;color:var(--navy)}
.dm-head h2,.fm-head h2,.shd-stagehead b{font-weight:300;font-size:26px;letter-spacing:-.01em;color:var(--navy)}

/* Decision Room: intro as a navy-rule block; each decision a hairline row, not a box */
.dm-intro{background:#fff;border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none}
.dm-intro h2{font-weight:300;font-size:26px;letter-spacing:-.01em}
.dm-row{background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;box-shadow:none;padding:20px 4px}

/* Parking Lot: hairline rows under tracked caps, gold condensed counts, quiet actions */
.pk-sec{font-size:12.5px;letter-spacing:.16em;padding-bottom:8px;border-bottom:1px solid var(--navy)}
/* Goldenrod on the near-white page measured 2.51:1 at 16.5px — gold cannot carry text on
   white, which is why the platform's own rule puts a mark on a solid disc instead. The
   numeral keeps the editorial treatment (numeral face, no chip) in the DARK gold that is
   already the platform's text gold: 4.69:1. (2026-09-12 QC) */
.pk-sec .pk-count,.pk-count{background:none;padding:0;border-radius:0;font-family:var(--font-num);font-size:16.5px;font-weight:500;color:#8a6a00;letter-spacing:.04em}
.card.pk{background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;margin-bottom:0;padding:16px 4px}
.pk-acts button,.pk-acts .pk-act{background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:4px;font-size:12.5px;font-weight:700}
.pk-acts button:last-child,.pk-acts .pk-act:last-child{color:#990000}
.pk-acts button:hover,.pk-acts .pk-act:hover{border-color:var(--navy)}

/* Meetings: instructions as a quiet fold, the meeting list as one navy-rule block */
.mt-help{background:transparent;border:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);border-radius:0}
.sw-bar{background:transparent;border:0;border-radius:0;padding-left:0;padding-right:0}
.mt-panel{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none}

/* Discover: the Command Center's pale table header instead of solid navy */
.shm-tblwrap{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px}
.shm-tbl th{background:#F5F6FA;color:#4a5286;letter-spacing:.12em;border-bottom:1px solid var(--line)}
.shm-tbl td{border-top-color:var(--hair)}

/* Vision & Values, Report Console, Org Chart: no shadowed page cards */
.vv-page{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none}
.vv-mast{border-bottom-width:1px}
.rpc-empty{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none}
.seat{border-radius:8px}

/* page titles that were small and bold: light and large, as in the Command Center */
.mw-hi,.rpc-head h2{font-weight:300;font-size:34px;letter-spacing:-.012em;color:var(--navy);line-height:1.15}

/* Decision Room: the confirm action is a compact button, not a full-width slab */
.dm-row .dm-file{width:auto;min-width:0;padding:8px 16px;border-radius:4px;font-size:12.5px}

/* ---- views that inject their own <style> (it lands after this file, so these carry `body` for
        the extra specificity) ---- */

/* Financials: the report links as hairline rows under one navy rule; the client colour stays as a thin tick */
body #view-financials .fin-cards{gap:0;border-top:2.5px solid var(--navy)}
body #view-financials .fin-card{background:transparent;border-top:0;border-right:0;border-bottom:1px solid var(--hair);border-left-width:3px;border-radius:0;box-shadow:none;padding:16px 20px}
body #view-financials .fin-card:hover{box-shadow:none;transform:none;background:#F8F9FC}
body #view-financials .fin-cico{background:transparent}
body #view-financials .fin-carr{color:var(--gold-ink)}

/* Equipment Audit: the audit card as a navy-rule block; area bands become tracked caps over a rule */
body #view-equipment .eq-head{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px}
body #view-equipment .eq-sec-head{background:transparent;color:var(--navy);border-radius:0;padding:0 0 8px;border-bottom:2.5px solid var(--navy)}
body #view-equipment .eq-sec-head::before{border-left-color:var(--navy)}
body #view-equipment .eq-sec-title{font-size:14px;letter-spacing:.16em}
body #view-equipment .eq-sec-count{background:none;padding:0;border-radius:0;font-family:var(--font-num);font-size:16.5px;font-weight:500;color:var(--gold)}

/* Tracker: section bands become tracked caps over a rule. Each band's colour is written inline by
   tkSec() (border-left accent, and a background only on Overdue), so these two properties need
   !important. Overdue keeps its meaning: the one head with an inline background reads dark red. */
body #view-tracker .tk-sec-head{background:transparent!important;border-left:0!important;color:var(--navy);box-shadow:none;border-radius:0;padding:0 0 8px;border-bottom:2.5px solid var(--navy)}
body #view-tracker .tk-sec-head[style*="background"]{color:#990000;border-bottom-color:#990000}
body #view-tracker .tk-sec-title{font-size:14px;letter-spacing:.16em}
body #view-tracker .tk-sec-count{background:none;padding:0;border-radius:0;font-family:var(--font-num);font-size:16.5px;font-weight:500;color:var(--gold)}
body #view-tracker .tk-sec-head[style*="background"] .tk-sec-count{color:#990000}
body #view-tracker .tk-sec-body .tk-row{border-top:0;border-right:0;border-bottom:1px solid var(--hair);border-radius:0;margin-bottom:0;background:transparent}
body #view-tracker .tk-sec-body .tk-row:nth-child(even){background:transparent}
body #view-tracker .tk-sec-body .tk-row:hover{background:#F8F9FC}
body #view-tracker .tk-head{border-bottom-color:var(--navy)}

/* ---- top bar: light, so the navy sidebar is the one navy element on the page (Lavon 9/10:
        "Is the blue header and the blue sidebar too much") ---- */
.topbar{background:#fff;border-bottom:1px solid var(--line);box-shadow:none}
.topbar h1{color:var(--navy);font-weight:300;font-size:20px;letter-spacing:-.01em}
.topbar .sub{color:#4a5286}
.hamb{color:var(--navy)}
.tb-live{color:var(--navy)}
.tb-right>.reset-btn,.tb-right>.bp-btn,.tb-right>.tb-home,.va-btn{background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:4px}
.tb-right>.bp-btn:hover,.tb-right>.tb-home:hover,.va-btn:hover{background:#F8F9FC;border-color:var(--navy)}
.tb-right>.reset-btn:hover{background:#FFF8E6;border-color:var(--gold)}
.refresh-btn{background:var(--navy);border-color:var(--navy);color:#fff;border-radius:4px}
.refresh-btn:hover{background:var(--navy-soft);border-color:var(--navy-soft)}
.va-btn.previewing{background:var(--gold);border-color:var(--gold);color:var(--navy)}

/* ---- sidebar selected item: the Command Center's rule exactly (deep navy, gold left edge, white) ---- */
.nav-item.active{background:#0C1240;color:#fff;font-weight:700;box-shadow:inset 3px 0 0 var(--gold)}

/* the two that an older, ID-scoped or flex rule outranked */
body #view-mywork .mw-hi{font-weight:300;font-size:34px;letter-spacing:-.012em;color:var(--navy);line-height:1.15}
@media(max-width:600px){body #view-mywork .mw-hi{font-size:26px}}
body .rpc-wrap .rpc-head h2{font-weight:300;font-size:34px;letter-spacing:-.012em;color:var(--navy);line-height:1.15}
.dm-acts .dm-file{flex:0 0 auto;width:auto;padding:8px 16px;border-radius:4px;font-size:12.5px}

/* phones and small tablets: the top bar's controls wrap onto extra lines, so the bar grows with
   them instead of holding the desktop 68px and letting Refresh/Home spill over the page */
@media (max-width:900px){.topbar{height:auto;min-height:64px;padding-top:8px;padding-bottom:8px}}

/* ---- sidebar, decluttered (Lavon 9/10: "the sidebar has too much stuff") ---- */
.sb-client-label{display:none}
.sb-client{padding:12px 12px 8px}
nav{padding:8px 12px}
.nav-item{padding:8px 12px;font-size:14px;margin-bottom:0}
/* counts: only the Decision Room (the one asking for action) stays gold; the rest are quiet numbers */
.nav-count:not(.alert){background:transparent;color:#aeb6e6;font-family:var(--font-num);font-size:12.5px;font-weight:500;padding:0}
.nav-item.active .nav-count:not(.alert){background:transparent;color:#fff}
/* reference pages sit below a thin rule, a step quieter */
.nav-div{height:1px;background:rgba(255,255,255,.12);margin:8px 12px}
.nav-item.nav-ref{font-size:12.5px;color:#aeb6e6;padding-top:4px;padding-bottom:4px}
.nav-item.nav-ref .nav-ico{opacity:.7}
.nav-item.nav-ref.active{color:#fff}
/* footer: one line — How Execute works as a quiet link, the horse beside it; the copyright lives on the sign-in screen */
.sb-foot{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px}
.sb-foot small:not(.sb-powered){display:none}
.sb-help{background:none;border:0;border-radius:0;padding:0;margin:0;color:#cdd3f0;font-size:12.5px;font-weight:700;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:4px}
.sb-help:hover{color:#fff;text-decoration-color:#fff}
.sb-powered{margin:0;font-size:11px;color:#aeb6e6}
/* the footer row is 236px wide: each side stays on one line, and the credit reads as the horse + "Blue Hen" */
.sb-help,.sb-powered{white-space:nowrap}
.sb-powered{font-size:0;gap:4px}
.sb-powered b{font-size:11px;color:#fff}
.sb-foot .sb-powered{font-size:0}
.sb-foot .sb-powered b{font-size:11px}

/* ---- one header: the top bar carries the client; each page opens with its own title ---- */
.tb-titles{display:none}
.tb-client{display:flex;align-items:center;gap:12px;min-width:0}
.tb-client .tbc-logo{display:inline-flex;align-items:center;flex:none;color:var(--accent)}
.tb-client .tbc-logo img,.tb-client .tbc-logo svg{max-height:28px;width:auto}
.tb-client .tbc-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.tb-client b{font-size:14px;font-weight:800;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-client i{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-home{display:none!important}
.refresh-btn{font-size:0;gap:0;padding:8px}
.va-btn:not(.previewing){padding:8px}
.va-btn:not(.previewing) #vaBtnLabel,.va-btn:not(.previewing) .va-caret{display:none}
.pg-head{padding:4px 0 16px;margin-bottom:24px;border-bottom:1px solid var(--navy)}
.pg-title{margin:0;font-family:var(--font-head);font-weight:300;font-size:34px;letter-spacing:-.012em;color:var(--navy);line-height:1.15}
.pg-sub{margin-top:4px;font-size:14px;color:#4a5286}
.pg-sub:empty{display:none}
/* titles the page head now carries, so the screen's own copy of them goes */
body .rpc-wrap .rpc-head h2,body .rpc-wrap .rpc-head>.pm-sub{display:none}
body #view-mywork .mw-greet-main:not(:has(.mw-name)){display:none}
body #view-mywork .mw-hi{font-size:20px}

/* ---- 6-Month Transition Plan (plan clients, e.g. LuLu's): its own PM_STYLE lands after this file,
        so these carry `body` ---- */
/* outcome list: hairline rows, gold numerals, the selected outcome marked with a gold edge like the sidebar */
body :is(#view-map,.spr-map) .pm-rail{gap:0;border-top:2.5px solid var(--navy)}
body :is(#view-map,.spr-map) .pm-tab{background:transparent;border:0;border-bottom:1px solid var(--hair);border-left:3px solid transparent;border-radius:0;padding:12px;color:var(--ink);font-size:12.5px}
body :is(#view-map,.spr-map) .pm-tab:hover{background:#F8F9FC}
body :is(#view-map,.spr-map) .pm-tab.active{background:#fff;border-left-color:var(--gold);color:var(--navy);font-weight:800}
body :is(#view-map,.spr-map) .pm-tab b{font-family:var(--font-num);font-weight:500;color:var(--gold);opacity:1}
/* outcome panel: a navy rule and a light title instead of the navy band */
body :is(#view-map,.spr-map) .pm-panel{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none}
body :is(#view-map,.spr-map) .pm-band{background:transparent;padding:20px 28px 16px;border-bottom:1px solid var(--hair)}
body :is(#view-map,.spr-map) .pm-onum{color:var(--gold-ink);letter-spacing:.16em}
body :is(#view-map,.spr-map) .pm-oname{color:var(--navy);font-weight:300;font-size:26px;letter-spacing:-.01em}
/* labels in tracked navy caps; text in the navy family */
body :is(#view-map,.spr-map) .pm-lab{color:var(--navy);letter-spacing:.16em}
body :is(#view-map,.spr-map) .pm-owner,body :is(#view-map,.spr-map) .pm-goal,body :is(#view-map,.spr-map) .pm-meas li{color:var(--ink)}
body :is(#view-map,.spr-map) .pm-sname{color:var(--navy)}
/* action steps: the Command Center's table header */
body :is(#view-map,.spr-map) .pm-steps th{background:#F5F6FA;color:#4a5286;letter-spacing:.12em;border-bottom:1px solid var(--line)}
body :is(#view-map,.spr-map) .pm-steps td{border-bottom-color:var(--hair)}

/* ================= item 2: the small tells ================= */
/* name row: smaller, with drawn icons instead of emoji (Lavon 9/10: "the users name at the bottom is too large") */
.me{padding:12px 16px;gap:8px}
.me .avatar{width:24px;height:24px;flex:0 0 24px;font-size:11px}
.me-name{font-size:12.5px;font-weight:700}
.me-title{font-size:11px;color:#aeb6e6}
.me-key,.me-out{display:inline-flex;align-items:center;justify-content:center;padding:4px;color:#aeb6e6}
.me-key svg,.me-out svg{width:16px;height:16px}

/* loading: once the frame is drawn, a reload or client switch covers only the content area and shows
   the outline of a page (title, rule, rows) instead of a blank screen and a spinner */
body.chrome-ready #bootSplash{left:236px;top:68px;background:var(--cream);justify-content:flex-start;align-items:stretch;padding:40px 48px;gap:16px}
body.chrome-ready .bootSpin{display:none}
body.chrome-ready .bootTxt{font-family:var(--font-head);font-weight:300;font-size:34px;letter-spacing:-.012em;color:var(--navy);padding-bottom:16px;border-bottom:1px solid var(--navy);max-width:1224px}
body.chrome-ready #bootSplash::after{content:"";display:block;height:320px;max-width:1224px;border-top:2.5px solid var(--navy);
  background:linear-gradient(#EEF0F7,#EEF0F7) 24px 28px/40% 12px no-repeat,linear-gradient(#EEF0F7,#EEF0F7) 24px 64px/70% 12px no-repeat,
  linear-gradient(#EEF0F7,#EEF0F7) 24px 116px/55% 12px no-repeat,linear-gradient(#EEF0F7,#EEF0F7) 24px 152px/65% 12px no-repeat,
  linear-gradient(#EEF0F7,#EEF0F7) 24px 204px/45% 12px no-repeat,#fff;animation:bhxPulse 1.6s ease-in-out infinite}
@keyframes bhxPulse{50%{opacity:.6}}
@media (prefers-reduced-motion:reduce){body.chrome-ready #bootSplash::after{animation:none}}
@media (max-width:900px){body.chrome-ready #bootSplash{left:0;top:64px;padding:24px 16px}}

/* phone top bar: the client and the controls share one row */
@media (max-width:900px){
  .topbar{flex-wrap:nowrap;gap:8px}
  .tb-brand{flex:1 1 auto;min-width:0}
  .tb-right{flex:0 0 auto;flex-wrap:nowrap;gap:8px}
  .tb-right>.reset-btn{font-size:0;gap:0;padding:8px}
  .va-menu{left:auto;right:0}
}
.mw-ico{width:12px;height:12px;vertical-align:-1px;margin-right:4px}
/* phones: the client name gets the room; the plan line is on every page head's screen anyway */
@media (max-width:600px){.tb-client i{display:none}}
body.switching #bootSplash{display:flex}
/* phones: the transition plan's outcome list stays one clean column (its own rule wraps short outcomes side by side) */
@media (max-width:860px){body :is(#view-map,.spr-map) .pm-rail{flex-direction:column}body :is(#view-map,.spr-map) .pm-tab{flex:none}}

/* ---- Next 30 days (Strategy Map and transition plan): the Tracker's rows, in the editorial style.
        Its copy of the Tracker styles is injected with the view, so these carry `body` ---- */
body :is(#view-map,.spr-map) .n30{max-width:var(--content-max);margin:0 auto}
body :is(#view-map,.spr-map) .n30-intro{font-size:14px;color:var(--muted);margin:0 0 24px}
body :is(#view-map,.spr-map) .n30-intro b{font-family:var(--font-num);font-weight:500;font-size:16.5px;color:var(--navy)}
body :is(#view-map,.spr-map) .n30 .tk-sec-head{background:transparent!important;border-left:0!important;color:var(--navy);box-shadow:none;border-radius:0;padding:0 0 8px;border-bottom:2.5px solid var(--navy)}
body :is(#view-map,.spr-map) .n30 .tk-sec-head[style*="background"]{color:#990000;border-bottom-color:#990000}
body :is(#view-map,.spr-map) .n30 .tk-sec-title{font-size:14px;letter-spacing:.16em}
body :is(#view-map,.spr-map) .n30 .tk-sec-count{background:none;padding:0;border-radius:0;font-family:var(--font-num);font-size:16.5px;font-weight:500;color:var(--gold)}
body :is(#view-map,.spr-map) .n30 .tk-sec-head[style*="background"] .tk-sec-count{color:#990000}
body :is(#view-map,.spr-map) .n30 .tk-sec-body .tk-row{border-top:0;border-right:0;border-bottom:1px solid var(--hair);border-radius:0;margin-bottom:0;background:transparent}
body :is(#view-map,.spr-map) .n30 .tk-sec-body .tk-row:nth-child(even){background:transparent}
body :is(#view-map,.spr-map) .n30 .tk-sec-body .tk-row:hover{background:#F8F9FC}

/* ---- item 3 prototype: headlines that state the finding (Scoreboard, Strategy Map) ---- */
.pg-eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:8px}
.pg-eyebrow:empty{display:none}
.pg-head.is-finding .pg-title{font-size:26px;line-height:1.25;max-width:62ch;text-wrap:balance}

/* ---- Strategy Map · Plan view: imperatives down the left, the selected one on the right ---- */
body :is(#view-map,.spr-map) .pl-goal{margin:0 0 24px}
body :is(#view-map,.spr-map) .pl-goal .pm-lab{margin-top:24px}
body :is(#view-map,.spr-map) .pl-obj{margin:0 0 16px;border-top:1px solid var(--hair);padding-top:12px}
body :is(#view-map,.spr-map) .pl-obj-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;cursor:pointer}
body :is(#view-map,.spr-map) .pl-obj-h b{color:var(--navy);font-size:14px}
body :is(#view-map,.spr-map) .pl-num{font-family:var(--font-num);color:var(--gold);font-size:14px}
body :is(#view-map,.spr-map) .pl-own{margin-left:auto;font-size:12.5px;color:var(--muted)}
body :is(#view-map,.spr-map) .pl-st{display:inline-block;font-size:11px;font-weight:700;padding:0 8px;line-height:20px;border-radius:999px;white-space:nowrap}
body :is(#view-map,.spr-map) .pl-obj .pm-steps{margin-top:8px}
body :is(#view-map,.spr-map) .pl-obj .pm-steps tbody tr{cursor:pointer}
body :is(#view-map,.spr-map) .pl-obj .pm-steps tbody tr:hover td{background:#F8F9FC}
body :is(#view-map,.spr-map) .pl-none{font-size:12.5px;color:var(--muted);padding:8px 0}

/* ---- one line under the view buttons saying what the view covers ---- */
.map-span{font-size:12.5px;color:var(--muted);margin:0 auto 16px;max-width:var(--content-max)}

/* ---- the Scoreboard as numbered exhibits (Lavon, 2026-09-10: "i like that") ----
   Each block is an exhibit: a tracked label with a gold numeral, a navy rule, a light headline
   that states the finding, a line on how to read it, the chart, and a source line. Bars are navy
   on a warm track; gold marks the one thing that needs attention; the status palette appears
   only where a status is shown. Exhibits 02 and 03 sit side by side; the grid packs them with
   `dense` so the labels stay direct children of .dashboard (the phone fold walks them). */
.mdx .quarter-context{background:transparent;color:var(--navy);padding:16px 48px 0}
/* The wrapper was a flex ROW with a 16px gap, built when a scope toggle sat beside the
   badge. That toggle is gone, so the two remaining children wrap and the row gap lands
   between the header and its subtext — 16px on top of the subtext's own 4px margin,
   which is why it read as detached. A column with no gap lets the 4px margin govern,
   the same 4px that sits under the page headline. */
.mdx .quarter-context-inner{flex-direction:column;align-items:flex-start;gap:0}
.mdx .quarter-context-badge{background:none;color:var(--navy);padding:0;border-radius:0;font-family:var(--font-head);font-size:26px;font-weight:700;letter-spacing:.01em;text-transform:none;line-height:1.2}
/* Match .pg-sub — the subtitle that sits under the page headline in exactly this
   relationship. It had been set at 16.5px navy 500, heavier and larger than every
   other subtext on the page, which is what made it read as detached from its header. */
.mdx .quarter-context-detail{color:#4a5286;opacity:1;font-size:14px;font-weight:400;line-height:1.55;margin-top:4px}
.mdx .scope-toggle{background:#fff;border:1px solid var(--line);border-radius:8px;padding:0;overflow:hidden}
.mdx .scope-btn{color:var(--muted);border-radius:0;padding:8px 16px}
.mdx .scope-btn:hover{color:var(--navy)}
.mdx .scope-btn.active{background:var(--navy);color:#fff}

.mdx .ex-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;grid-auto-flow:row dense;padding-top:24px}
.mdx .ex-board>*{grid-column:1/-1;min-width:0}
.mdx .ex-board>.ex-l{grid-column:1}
.mdx .ex-board>.ex-r{grid-column:2}
.mdx .section-label.ex-label{display:flex;align-items:baseline;gap:16px;margin:40px 0 12px;padding-left:0;border-left:0;font-size:20px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);line-height:1.3}
.mdx .ex-board>.ex-label:first-child{margin-top:0}
/* The period each section's numbers cover, stamped on the section's own label instead of
   one pill in the top bar (Lavon, 2026-09-13). Subordinate to the label, not a second
   badge: the gap is tightened from the label's 16px to 8px and a middot carries the join,
   so it reads as "THE NUMBERS · Q3 2026" rather than as a tag stuck on the end. */
.mdx .ex-label .sl-per{font-style:normal;font-size:14px;font-weight:600;letter-spacing:.06em;
  color:var(--navy);margin-left:-8px;white-space:nowrap}
.mdx .ex-label .sl-per::before{content:"\00b7";margin-right:8px;font-weight:600}
/* Only when the plan is tracking a quarter the calendar has already left — the one signal
   the deleted pill carried that nothing else on the page said. */
.mdx .quarter-context-detail.off-quarter{color:#8a6a00;font-weight:600}
/* A unit the page could not read. Goldenrod, not red: nothing is broken in the plan, the
   page just does not have all of it — and it must never pass as an empty plan. */
.mdx .dv-fail{display:flex;flex-direction:column;gap:4px;align-items:flex-start;
  background:#fff;border:1px solid #8a6a00;border-left:4px solid #8a6a00;border-radius:14px;
  padding:16px 20px;margin:0 0 20px}
.mdx .dv-fail b{font-size:16.5px;color:#8a6a00}
.mdx .dv-fail span{font-size:12.5px;line-height:1.5;color:var(--navy)}
.mdx .dv-retry{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--navy);
  background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px 16px;cursor:pointer}
.mdx .dv-retry:hover{border-color:var(--navy)}

/* ---- rollup summary panels (2026-09-13) --------------------------------------
   A row in the rollup opens a summary of what was clicked instead of switching the
   whole app to that unit (Lavon: "they need to pull up summary data for each click
   point"). The panel is .mdx so the figures, bars and column heads inside it are the
   Scoreboard's own, not a second set that happens to look similar. */
body .modal-card.wide{width:760px;max-width:94vw}
body .modal-card.wide .modal-body{max-height:74vh;overflow-y:auto}
.dv-modal{max-width:100%}
.dv-modal .dv-sec{margin:0 0 24px}
.dv-modal .dv-sec:last-of-type{margin-bottom:8px}
.dv-modal .ex-col-h{margin:0 0 12px}
.dv-modal .ex-rows{margin:0}
.dv-modal .ex-cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.dv-kv{display:flex;gap:16px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line,#e3e0d8)}
.dv-kv:last-child{border-bottom:0}
.dv-kv span{flex:0 0 136px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
.dv-kv b{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--navy);line-height:1.45}
.dv-modal .ex-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--line,#e3e0d8)}
@media (max-width:720px){
  .dv-modal .ex-cols3{grid-template-columns:1fr;gap:16px}
  .dv-kv{flex-direction:column;gap:4px}
  .dv-kv span{flex:none}
}
.mdx .dv-note.off-quarter{color:#8a6a00;font-weight:600}
@media (max-width:720px){ .mdx .ex-label .sl-per{font-size:12.5px} }
/* Goldenrod measured 2.51:1 on the near-white page — the same trap as the parking count.
   The exhibit numeral keeps its treatment in the platform's dark text gold (4.69). */
.mdx .ex-label em{font-style:normal;font-family:var(--font-num);font-weight:500;font-size:26px;letter-spacing:.04em;color:#8a6a00}
.mdx .card.ex{background:#fff;border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none;padding:24px 28px 16px;margin:0;overflow:visible;animation:none}
.mdx .card.ex:hover{box-shadow:none}
.mdx .ex-h{font-family:inherit;font-weight:300;font-size:20px;line-height:1.3;letter-spacing:-.01em;color:var(--navy);margin:0 0 4px;text-wrap:balance}
.mdx .ex-what{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0 0 20px;max-width:80ch}
.mdx .ex-src{font-size:11px;color:var(--muted);border-top:1px solid var(--hair);padding-top:8px;margin-top:16px}
.mdx .ex-src:empty{display:none}
.mdx .ex-how{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:0;background:none;border:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.mdx .ex-how:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
.mdx .ex-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.mdx .ex .obj-drill-toggle{background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:8px;padding:8px 16px;font-size:12.5px;font-weight:700;letter-spacing:0}
.mdx .ex .obj-drill-toggle:hover{transform:none;box-shadow:none;border-color:var(--navy)}

/* 01 · the score on its bands, beside the five parts */
.mdx .ex-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:40px;align-items:start}
.mdx .ex-big{font-family:var(--font-num);font-weight:500;font-size:64px;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.mdx .ex-big small{font-size:20px;color:var(--muted);margin-left:8px}
.mdx .ex-band{margin:8px 0 32px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.mdx .ex-zones{position:relative;display:flex;height:12px}
.mdx .ex-zones span{height:12px}
.mdx .ex-zones .z-off{background:#ECEEF4}
.mdx .ex-zones .z-watch{background:#F3E7C6}
.mdx .ex-zones .z-on{background:#DCEAD4}
.mdx .ex-tgt{position:absolute;top:-4px;height:20px;border-left:2px dashed var(--gold)}
.mdx .ex-pin{position:absolute;top:-8px;width:3px;height:28px;background:var(--navy);transform:translateX(-50%)}
.mdx .ex-pin em{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-style:normal;font-family:var(--font-num);font-size:12.5px;line-height:1.4;color:var(--navy)}
.mdx .ex-zlab{display:flex;margin-top:8px;font-size:11px;color:var(--muted)}
.mdx .ex-zlab span{padding-left:4px;white-space:nowrap}
.mdx .ex-ticks,.mdx .ex-axis{position:relative;height:16px;margin-top:4px;font-family:var(--font-num);font-size:11px;color:var(--muted)}
.mdx .ex-ticks span,.mdx .ex-axis span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.mdx .ex-ticks span:first-child,.mdx .ex-axis span:first-child{transform:none}
.mdx .ex-ticks span:last-child,.mdx .ex-axis span:last-child{transform:translateX(-100%)}
.mdx .ex-axis{margin-left:180px;margin-right:60px}
.mdx .ex-detail{margin-top:16px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.mdx .ex-note{margin-top:8px;font-size:12.5px;font-weight:600;color:var(--gold-ink)}

/* bar rows: 01 parts, 02 imperatives, 03 markers, 04 load */
.mdx .ex-row{display:grid;grid-template-columns:168px minmax(0,1fr) 48px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--hair)}
.mdx .ex-row:last-child{border-bottom:0}
.mdx .ex-click{cursor:pointer}
.mdx .ex-click:hover{background:#F8F9FC}
.mdx .ex-click:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.mdx .ex-lbl{min-width:0;font-size:14px;font-weight:700;line-height:1.25;color:var(--navy);overflow-wrap:anywhere}
.mdx .ex-lbl small{display:block;font-size:11px;font-weight:400;color:var(--muted)}
.mdx .ex-track{position:relative;height:12px;background:#E6E3DA}
.mdx .ex-fill{position:absolute;left:0;top:0;bottom:0;background:var(--navy)}
.mdx .ex-fill.hi{background:var(--gold)}
.mdx .ex-fill.over{background:#C41E1E}
.mdx .ex-tline{position:absolute;top:-4px;bottom:-4px;border-left:2px dashed var(--gold)}
.mdx .ex-val{font-family:var(--font-num);font-weight:500;font-size:20px;text-align:right;color:var(--navy);font-variant-numeric:tabular-nums}
.mdx .ex-val.hi{color:var(--gold-ink)}
.mdx .ex-val.over{color:#C41E1E}
.mdx .ex-load .ex-fill{top:3px;bottom:3px}
.mdx .ex-zrow{display:grid;grid-template-columns:168px minmax(0,1fr) 48px;gap:12px;font-size:11px;color:var(--muted)}
.mdx .ex-zrow>div{display:flex}
.mdx .ex-zrow span{padding-left:4px;white-space:nowrap;overflow:hidden}

/* 03 · one block per marker, in the status palette */
.mdx .ex-blocks{display:flex;gap:4px;height:20px}
.mdx .ex-blocks i{flex:0 0 calc(100% / var(--n) - 4px);min-width:4px}
.mdx .b-done{background:#52823D}
.mdx .b-on{background:#1155CC}
.mdx .b-ip{background:#A4C2F4}
.mdx .b-move{background:#E69138}
.mdx .b-hold{background:#5B21B6}
.mdx .b-off{background:#FFFF00;box-shadow:inset 0 0 0 1px #7F6000}
.mdx .b-nd{background:#990000}
.mdx .b-ns{background:#fff;box-shadow:inset 0 0 0 1px #B7BCD0}
.mdx .ex-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:12.5px;color:var(--muted)}
.mdx .ex-legend span{display:inline-flex;align-items:center;gap:8px}
.mdx .ex-legend i{display:inline-block;width:12px;height:12px}

/* 05 · quarter by quarter: the MD trend chart, flattened onto the exhibit */
.mdx .ex-trend{background:none;border:0;border-radius:0;padding:0;margin:0}
.mdx .ex-trend .trend-bar{background:#F1EFE8;border-radius:0}
.mdx .ex-trend .trend-bar-fill{border-radius:0}
.mdx .ex-trend .trend-bar-fill.fill-on{background:var(--navy)}
.mdx .ex-trend .trend-bar-fill.fill-off{background:var(--gold)}
.mdx .ex-trend .trend-bar.is-current{box-shadow:inset 0 0 0 2px var(--navy)}
.mdx .ex-trend .trend-bar-pct{font-family:var(--font-num);font-weight:500;color:var(--navy)}
.mdx .ex-trend .trend-target{border-top-color:var(--gold)}
.mdx .ex-trend .trend-target::after{background:#fff;color:var(--gold-ink)}

/* 06 · objectives: composition bar with a plain legend */
.mdx .ex-toprow{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.mdx .ex-fig{text-align:right}
.mdx .ex-fig-n{font-family:var(--font-num);font-weight:500;font-size:34px;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.mdx .ex-fig-l{margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mdx .ex .obj-hero-bar{border-radius:0;height:20px}
.mdx .ex .legend-chip{background:none;border:0;border-radius:0;padding:0;font-size:12.5px;font-weight:400;color:var(--muted)}
.mdx .ex .legend-chip strong{color:var(--navy)}
.mdx .ex .legend-chip i{width:12px;height:12px;border-radius:0}
.mdx .ex .obj-hero-legend{gap:8px 16px}

/* 07 · at risk: three columns divided by hairlines */
.mdx .ex-cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.mdx .ex-col{min-width:0;padding:0 24px;border-left:1px solid var(--hair)}
.mdx .ex-col:first-child{padding-left:0;border-left:0}
.mdx .ex-col:last-child{padding-right:0}
.mdx .ex-col-h{margin-bottom:8px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.mdx .ex .ar-num{font-family:var(--font-num);font-weight:500;font-size:26px}
.mdx .ex .ar-chip{background:none;padding:0;border-radius:0;letter-spacing:.14em}
.mdx .ex .at-risk-item{border:0;border-bottom:1px solid var(--hair);border-radius:0;padding:8px 0;background:none}
.mdx .ex .at-risk-item:hover{transform:none;box-shadow:none;background:#F8F9FC}
.mdx .ex .at-risk-card-list{gap:0}
.mdx .ex .at-risk-item-owner{color:var(--muted)}

/* 08 · deliverables */
.mdx .ex .deliv-kpi-num b{font-family:var(--font-num);font-weight:500;font-size:34px}
.mdx .ex .deliv-kpi-denom{color:var(--muted)}
.mdx .ex .deliv-kpi-bar{height:12px;border-radius:0;background:#E6E3DA}
.mdx .ex .deliv-kpi-bar span{border-radius:0;background:var(--navy)}
.mdx .ex .deliv-kpi-pct{font-family:var(--font-num);font-weight:500;font-size:26px;color:var(--navy)}

/* the full owner table, inside exhibit 04 */
.mdx .ex .owner-table th{color:var(--navy);border-bottom:1px solid var(--navy)}
.mdx .ex .owner-table td{border-bottom:1px solid var(--hair)}

/* 02 and 03 are half width: a narrower label column gives the bars room, and 80% and 100%
   would collide on the short axis, so the half-width axis keeps 0% and the 80% target */
.mdx .ex-board>.ex-l .ex-row,.mdx .ex-board>.ex-r .ex-row{grid-template-columns:120px minmax(0,1fr) 40px}
.mdx .ex-board>.ex-l .ex-axis{margin-left:132px;margin-right:52px}
.mdx .ex-board>.ex-l .ex-axis span:last-child{display:none}
@media (max-width:980px){
  .mdx .ex-board{grid-template-columns:minmax(0,1fr)}
  .mdx .ex-board>.ex-l,.mdx .ex-board>.ex-r{grid-column:1}
  .mdx .ex-two{grid-template-columns:minmax(0,1fr);gap:24px}
  .mdx .ex-cols3{grid-template-columns:minmax(0,1fr)}
  .mdx .ex-col,.mdx .ex-col:first-child{padding:16px 0 0;margin-top:16px;border-left:0;border-top:1px solid var(--hair)}
  .mdx .ex-col:first-child{margin-top:0;padding-top:0;border-top:0}
}
@media (max-width:760px){
  /* the dashboard narrows here, so the quarter block has to as well or it sits
     32px right of the cards and the section labels below it */
  .mdx .quarter-context{padding:16px 16px 0}
}
@media (max-width:640px){
  .mdx .card.ex{padding:20px 16px 12px}
  .mdx .ex-row,.mdx .ex-zrow{grid-template-columns:112px minmax(0,1fr) 40px}
  .mdx .ex-axis{margin-left:124px;margin-right:52px}
}

/* ---- Strategy Map · Roadmap cards: neutral card, status on the edge and the pill
   (Lavon, 2026-09-10: item 5, "go"). The canonical palette is unchanged; it moves from the
   whole card to a 4px left edge and the status pill, which already carries the chip colour,
   so a quarter full of markers reads as work rather than a colour field. This replaces the
   STATUS FILL RULE noted in styles.css for the Roadmap; Board and List were already neutral. */
.rmv{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px}
.rmv-head{border-radius:0;border-bottom:1px solid var(--navy)}
.rmv-chip,.rmv-chip[class*="s-"]{background:#fff;color:var(--ink);border:1px solid var(--line);border-left:4px solid #C3CADE;border-radius:0 8px 8px 0}
.rmv-chip:hover{background:#F8F9FC}
.rmv-chip .rmv-t{color:var(--navy)}
.rmv-chip .rmv-w{opacity:1;color:var(--muted)}
.rmv-st .m-status{padding-top:4px;padding-bottom:4px;font-size:11px}
.rmv-chip.s-on_track{border-left-color:#1155CC}
.rmv-chip.s-done{border-left-color:#52823D}
.rmv-chip.s-in_progress{border-left-color:#A4C2F4}
.rmv-chip.s-off_track{border-left-color:#FFFF00}
.rmv-chip.s-not_done{border-left-color:#990000}
.rmv-chip.s-move{border-left-color:#E69138}
.rmv-chip.s-on_hold{border-left-color:#5B21B6}
.rmv-chip.s-submitted{border-left-color:#674EA7}
.rmv-chip.s-ongoing{border-left-color:#884934}
.rmv-chip.s-not_started{border-left-color:#94A3B8}
.rmv .rmv-chip.ghost{border:1.5px dashed #c3cade}
:is(#view-map,.spr-map) .pm-rmwrap .rmv{border-top:0}

/* ---- Execution Insights as exhibits 09-13 (Lavon, 2026-09-10, item 6) ----
   Same anatomy as the Scoreboard's exhibits: tracked label with a gold numeral over a navy
   rule, the read-out sentence as the headline, the how-to-read line, then the chart. A CSS
   counter numbers them (09 on the Scoreboard, 01 on the standalone Insights page). */
.ins-wrap{gap:32px;counter-reset:insx}
#homeInsights{padding-top:32px}
#homeInsights .ins-wrap{counter-reset:insx 8}
.ins-grid{gap:32px 28px}
.ins-ex{display:flex;flex-direction:column;min-width:0}
.ins-ex>.ins-card{flex:1}
.ins-lbl{display:flex;align-items:center;gap:12px;min-height:24px;margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;line-height:1.4;color:var(--muted)}
.ins-lbl em{font-style:normal;font-family:var(--font-num);font-weight:500;font-size:14px;letter-spacing:.06em;color:var(--gold)}
.ins-lbl em::before{counter-increment:insx;content:counter(insx,decimal-leading-zero)}
.ins-lbl .ins-why{width:20px;height:20px;font-size:11px;letter-spacing:0}
.ins-card{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;box-shadow:none;padding:24px 28px 16px}
.ins-card .ins-read{background:none;border:0;border-radius:0;padding:0;margin:0 0 4px;font-size:16.5px;font-weight:400;line-height:1.45;color:var(--navy)}
.ins-card .ins-sub{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0 0 20px}
.ins-stat b{font-size:26px;font-weight:500}
.ins-stat span{font-size:11px;font-weight:800;letter-spacing:.12em}
.ins-toggle{border-radius:8px}
.ins-toggle button{font-family:inherit;font-weight:700;padding:8px 16px}
.ins-metric .im-name b{color:var(--navy)}
.ins-carry-top .cc{color:var(--gold-ink)}
/* the Scoreboard's closing line: a hairline and navy type, not a navy slab (item 6) */
.mdx .footer{margin-top:48px;padding:16px 0 0;background:none;color:var(--navy);border-radius:0;border-top:1px solid var(--navy)}
.mdx .footer strong{font-size:11px;letter-spacing:.16em}
.mdx .footer-text{opacity:1;color:var(--muted)}

/* ---- Meetings · Past meetings as one ledger (Lavon, 2026-09-10, item 6) ----
   Ten separate rounded boxes become one list under the navy rule, rows divided by hairlines.
   A meeting waiting on the Notetaker keeps a thin gold edge and its "ready to place" chip;
   dates stay on one line. Scoped to the Meetings view: the transition plan has its own pm-*. */
#view-meetings .pm-wrap{margin-top:40px}
#view-meetings .pm-head{display:block;margin-bottom:8px}
/* Lavon, 2026-09-21: "The Past meetings header has to be much larger. It gets lost." */
#view-meetings .pm-head h2{margin:0 0 8px;font-family:var(--font-head);font-size:var(--t-2xl);font-weight:800;letter-spacing:0;text-transform:none;color:var(--navy)}
#view-meetings .pm-sub{font-size:12.5px;color:var(--muted)}
#view-meetings .pm-list{gap:0;background:#fff;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px}
#view-meetings .pm-row{grid-template-columns:160px minmax(0,1fr) auto auto;padding:12px 16px;background:#fff;border:0;border-bottom:1px solid var(--hair);border-radius:0;box-shadow:none;transform:none}
#view-meetings .pm-row:last-child{border-bottom:0;border-radius:0 0 8px 8px}
#view-meetings .pm-row:hover{background:#F8F9FC;box-shadow:none;transform:none;border-color:var(--hair)}
#view-meetings .pm-date{white-space:nowrap}
#view-meetings .pm-type{padding:0;background:none;border-radius:0;font-size:11px;letter-spacing:.12em;color:var(--muted)}
#view-meetings .pm-note.waiting{background:#fff;border-color:var(--hair);border-left:0;box-shadow:inset 3px 0 0 var(--gold)}
#view-meetings .pm-note.waiting:hover{background:#F8F9FC}
#view-meetings .pm-go{text-decoration:underline;text-underline-offset:3px}
#view-meetings .pm-empty{border:0;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px}
@media(max-width:760px){ #view-meetings .pm-row{grid-template-columns:1fr} }

/* ---- Strategy Map · List: headers you can see, and an Upload you can find (Lavon, 2026-09-11:
   "The 5-year (or 3-Year) Goal and 2027 Objective Headers need to be larger and visible ...
   The upload button needs to be more visible. Took me a little while to find it.") ---- */
.shm-goalhead{gap:4px}
.shm-goallbl{font-size:12.5px;letter-spacing:.14em;color:var(--gold-ink)}
.shm-goalttl{font-size:20px;line-height:1.3}
.shm-objlbl{display:block;margin-bottom:4px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);white-space:nowrap}
.shm-ttl{font-size:16.5px}
.shm-ttl[data-action]:hover .shm-objlbl{text-decoration:none}
/* Upload: navy on a tint with a navy edge -- a real button, not grey text in a hairline box */
.shm-clip{min-height:32px;padding:0 12px;gap:8px;font-size:12.5px;color:var(--navy);background:#EEF1FA;border:1px solid var(--navy)}
.shm-clip:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.shm-clip.has{background:#fff;border-color:#c3d3f2;color:var(--navy)}
.shm-clip.swap{padding:0 8px;background:#fff}
/* The marker table sized its columns from the content, so a Review-mode one-line description
   (white-space:nowrap + ellipsis, styles.css) never truncated -- it widened the table to ~1,500px
   and pushed Responsible, Status and the Upload column off the right edge on every objective.
   Fixed widths let the ellipsis work and keep all five columns on screen (2026-09-11). */
.shm-tbl{table-layout:fixed;min-width:640px}
.shm-tbl th:nth-child(1){width:100px}
.shm-tbl th:nth-child(3){width:132px}
.shm-tbl th:nth-child(4){width:128px}
.shm-tbl th:nth-child(5){width:128px}
.shm-tbl td{overflow-wrap:anywhere}
.shm-tbl .shm-resp,.shm-tbl .shm-st,.shm-tbl .shm-file{width:auto}
.shm-tbl th{white-space:normal;line-height:1.3}
/* When the table itself is narrow (a half-width window, a tablet, a phone) the five columns cannot
   all fit, and the Upload column was the one that fell off the right edge. Below 700px of table
   width each marker becomes a compact card: quarter on the left, the marker on top, and
   Responsible, Status and Upload on the line under it -- nothing scrolls sideways. Keyed to the
   table's own width (a container query), so it follows the space, not the screen size. */
:is(#view-map,.spr-map) .shm-tblwrap{container-type:inline-size}
@container (max-width:700px){
  :is(#view-map,.spr-map) .shm-tbl{display:block;min-width:0;table-layout:auto}
  :is(#view-map,.spr-map) .shm-tbl thead{display:none}
  :is(#view-map,.spr-map) .shm-tbl tbody{display:block}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr{display:grid;grid-template-columns:112px minmax(0,1fr) auto auto;grid-template-areas:"q mk mk mk" "q resp st file";align-items:center;border-top:1px solid var(--hair)}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr:first-child{border-top:0}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr.now{background:#fdf8ec}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr td{border-top:0;padding:8px 12px;width:auto}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr td.shm-q{grid-area:q;align-self:stretch;padding-top:12px}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr td.shm-mk{grid-area:mk;padding-top:12px}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr td.shm-resp{grid-area:resp;padding-bottom:12px}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr td.shm-st{grid-area:st;padding-bottom:12px}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr td.shm-file{grid-area:file;padding-bottom:12px}
  :is(#view-map,.spr-map) .shm-tbl tr:not(.shm-tr),:is(#view-map,.spr-map) .shm-tbl tr:not(.shm-tr) td{display:block}
}
@container (max-width:440px){
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"q file" "mk mk" "resp st"}
  :is(#view-map,.spr-map) .shm-tbl tr.shm-tr td.shm-q{align-self:center;padding-bottom:0}
}

/* ==== Strategy Map List: four levels, four looks (Lavon, 2026-09-11: "imperatives, goals, objectives and
   markers EASY to differentiate and follow ... all headers large ... sections very distinguishable").
   Imperative = navy band, 26px white title, % on plan at the right. Goal = warm band with a 6px gold
   edge, 20px title. Objective = white card with a 4px status edge, 16.5px title, owner/due/status/Upload
   on one line. Marker = row, 14px title, quarter first. Each level steps in and hangs from a guide
   line so any marker can be traced up to its imperative. Every level has the same arrow. ==== */
.shm-on .m-imp{background:none;border:0;border-radius:0;padding:0;box-shadow:none;margin:8px 0 40px}
.shm-on .m-imp-head{align-items:center;gap:16px;padding:20px 24px;border-radius:8px;box-shadow:none}
.shm-on h2.m-imp-title{font-size:26px;font-weight:700;line-height:1.2}
.shm-on .m-imp-kicker{font-size:12.5px;letter-spacing:.14em}
.shm-on .m-imp-owner{margin-top:8px}
.m-imp-stats{margin-left:auto;flex:none;text-align:right;font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.85);white-space:nowrap}
.m-imp-stats b{display:block;font-family:var(--font-num);font-weight:500;font-size:34px;line-height:1;color:#fff}
.shm-review p.m-imp-def{display:none}
.shm-on .m-goals{margin:16px 0 0 20px;padding-left:20px;border-left:2px solid var(--navy);gap:24px}
.shm-on .m-imp.shm-lvclosed > .m-goals{display:none}
.shm-on .m-imp-head .shm-caret{width:32px;height:32px;flex:none;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px}
.shm-on .m-imp-head .shm-caret:hover{background:rgba(255,255,255,.12);color:#fff}

.shm-goalwrapstrip{margin:0 0 12px}
.shm-goalstrip{align-items:center;justify-content:flex-start;gap:12px;margin:0;padding:12px 16px;background:#FBF6EA;border-left:6px solid var(--gold);border-bottom:0;border-radius:0 8px 8px 0}
.shm-goalresp{margin-left:auto;padding:0;font-size:12.5px;font-weight:700;color:var(--muted)}
.shm-goalwrapstrip .shm-defwrap{margin:8px 0 0;padding-left:28px}
.shm-on .shm-objs{margin-left:16px;padding-left:24px;border-left:2px solid #E6E3DA}
.shm-goalwrap.shm-lvclosed > .shm-objs,.shm-goalwrap.shm-lvclosed .shm-goalwrapstrip > .shm-defwrap{display:none}
.shm-goalstrip .shm-caret{width:28px;height:28px;flex:none;color:var(--gold-ink)}

.shm-acc[data-status]{border-left-width:4px}
.shm-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 16px}
.shm-row .shm-ttl{flex:1 1 260px}
.shm-row .shm-own,.shm-row .shm-due,.shm-row .shm-stcell,.shm-row .shm-rowfile{flex:none}
.shm-row .shm-due{font-size:12.5px;font-weight:700;color:var(--muted)}
.shm-row .m-status{width:auto;min-width:120px}
.shm-rowfile{display:inline-flex;align-items:center;gap:8px}
.shm-caret{width:28px;height:28px}
.shm-mk b{font-size:14px}

.map-details{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--navy);cursor:pointer}
.map-details:hover{border-color:var(--navy)}
.map-details .md-box{width:16px;height:16px;border:2px solid var(--navy);border-radius:0;background:#fff}
.map-details.on .md-box{background:var(--navy);box-shadow:inset 0 0 0 2px #fff}
@media (max-width:760px){
  .shm-on .m-imp-head{flex-wrap:wrap}
  .m-imp-stats{margin-left:48px;text-align:left}
  .shm-on .m-goals{margin-left:8px;padding-left:12px}
  .shm-on .shm-objs{margin-left:8px;padding-left:12px}
}
/* the older List gave every goal a 5px pale-blue left border; on the sheet map the goal band and guide line carry that job */
.shm-on .m-goal.shm-goalwrap{border-left:0;padding-left:0;margin-left:0}

/* ---- Strategy Map step 2: the Roadmap and Plan views fold too (Lavon, 2026-09-11) ---- */
.rmv-lane-h .shm-caret{width:28px;height:28px;flex:none;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px}
.rmv-lane-h .shm-caret:hover{background:rgba(255,255,255,.12);color:#fff}
.rmv-lane.shm-lvclosed > .rmv-lane-b{display:none}
.rmv-gb-line{display:flex;align-items:center;gap:8px}
.rmv-goalband .shm-caret{width:24px;height:24px;flex:none;color:var(--gold-ink)}
.rmv-goal.shm-lvclosed > .rmv-row{display:none}
.rmv-review .rmv-lane-def,.rmv-review .rmv-gb-d{display:none}
.pl-goal-h{display:flex;align-items:center;gap:8px}
.pl-goal.shm-lvclosed > .pl-goal-b{display:none}
.pl-obj-h .shm-caret{flex:none}
.pl-obj.shm-closed > .pm-steps,.pl-obj.shm-closed > .pl-none{display:none}

/* ==== Strategy Map step 3: Plan and Roadmap on the same four looks as the List (Lavon, 2026-09-11) ====
   Plan: the goal was an 11px caption, smaller than its objectives; now the gold band with a 20px
   title. Objectives are white cards with a status edge and the List's "2026 Objective N.N" heading.
   Roadmap: imperative lane 20px > goal band 16.5px (gold edge) > objective 14px > marker 12.5px. */
body :is(#view-map,.spr-map) .pl-goal{margin:0 0 24px}
body :is(#view-map,.spr-map) .pl-goal-h{gap:12px;margin:24px 0 12px;padding:12px 16px;background:#FBF6EA;border-left:6px solid var(--gold);border-radius:0 8px 8px 0}
.pl-goalhead{display:flex;flex-direction:column;gap:4px;min-width:0}
.pl-goallbl{font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.pl-goalttl{font-size:20px;font-weight:800;line-height:1.3;color:var(--navy)}
.pl-goalown{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap}
body :is(#view-map,.spr-map) .pl-goal-h .shm-caret{color:var(--gold-ink)}
body :is(#view-map,.spr-map) .pl-goal-b{margin-left:16px;padding-left:24px;border-left:2px solid #E6E3DA}
body :is(#view-map,.spr-map) .pl-obj{margin:0 0 12px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-left:4px solid #C3CADE;border-radius:0 8px 8px 0}
body :is(#view-map,.spr-map) .pl-obj-h{align-items:center;gap:8px 16px}
.pl-objttl{flex:1 1 240px;display:flex;flex-direction:column;gap:4px;min-width:0}
.pl-objlbl{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
body :is(#view-map,.spr-map) .pl-obj-h b{font-size:16.5px;font-weight:800;line-height:1.3}
body :is(#view-map,.spr-map) .pl-own{margin-left:0}
body :is(#view-map,.spr-map) .pm-sname{font-size:14px}
body :is(#view-map,.spr-map) .pl-obj[data-status="on_track"]{border-left-color:#1155CC}
body :is(#view-map,.spr-map) .pl-obj[data-status="done"]{border-left-color:#52823D}
body :is(#view-map,.spr-map) .pl-obj[data-status="in_progress"]{border-left-color:#A4C2F4}
body :is(#view-map,.spr-map) .pl-obj[data-status="off_track"]{border-left-color:#FFFF00}
body :is(#view-map,.spr-map) .pl-obj[data-status="not_done"]{border-left-color:#990000}
body :is(#view-map,.spr-map) .pl-obj[data-status="move"]{border-left-color:#E69138}
body :is(#view-map,.spr-map) .pl-obj[data-status="on_hold"]{border-left-color:#5B21B6}
body :is(#view-map,.spr-map) .pl-obj[data-status="submitted"]{border-left-color:#674EA7}

.rmv-lane-t{font-size:20px;font-weight:700}
.rmv-goalband{background:#FBF6EA;border-left:6px solid var(--gold)}
.rmv-goalband .rmv-gb-line{align-items:center}
.rmv-gb-head{display:flex;flex-direction:column;gap:4px;min-width:0}
.rmv-gb-lbl{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.rmv-goalband .rmv-gb-t{font-size:16.5px}
.rmv-n{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.rmv-own{margin-top:4px;font-size:12.5px;color:var(--muted)}
@media(max-width:1000px){
  .rmv-head{display:none}
  .rmv-cell.rmv-cell-empty{display:none}
  .rmv-cell{display:block;border-right:0;border-top:1px solid var(--hair)}
  .rmv-cell::before{content:attr(data-q);display:block;margin-bottom:8px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
  .rmv-cell.now::before{color:var(--gold-ink)}
}

/* ==== Strategy Map step 4: Board and Next 30 days (Lavon, 2026-09-11) ====
   Board: each card leads with its imperative and names its objective, 14px column headings.
   Next 30 days: each item says Imperative > Objective; when its own width is tight (a half
   window, a phone) each item becomes a card instead of squeezing the title to one word per line.
   Scoped to :is(#view-map,.spr-map) .n30, so the meeting runner's Tracker rows are untouched. */
.pb-col-h{font-family:inherit;font-size:14px;font-weight:800;letter-spacing:.08em}
.pb-col-h small{padding:0;background:none;border:0;font-family:var(--font-num);font-size:14px;font-weight:500;color:var(--gold)}
.pb-crumb{margin-bottom:4px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.pb-t{font-family:inherit;font-size:14px;font-weight:700;line-height:1.35;color:var(--navy)}
.pb-obj{margin-top:4px;font-family:inherit;font-size:12.5px;line-height:1.4;color:var(--muted)}
.pb-obj b{font-weight:800;color:var(--ink)}

body :is(#view-map,.spr-map) .n30{container-type:inline-size}
.tk-crumb{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink)}
body :is(#view-map,.spr-map) .n30 .tk-title{font-size:14px;font-weight:700;color:var(--navy)}
@container (max-width:760px){
  body :is(#view-map,.spr-map) .n30 .tk-row{flex-wrap:wrap;gap:8px 12px}
  body :is(#view-map,.spr-map) .n30 .tk-main{flex:1 1 100%}
  body :is(#view-map,.spr-map) .n30 .tk-deliv-cell{width:auto;justify-content:flex-start}
  body :is(#view-map,.spr-map) .n30 .tk-owner{width:auto;flex:1 1 160px}
  body :is(#view-map,.spr-map) .n30 .tk-due{width:auto;margin-left:auto}
}

/* ---- the missing text-size token (Strategy Map step 5, 2026-09-11) ----
   var(--t-base) is used 54 times (styles.css 43, index.html 11) and was never defined, so each
   use silently inherited whatever its parent had -- usually the 15px body, which is off the scale.
   It is the body-text step of the scale: 14px. */
:root{--t-base:14px}

/* ---- every Strategy Map view: the same hover card and the same Upload (Lavon, 2026-09-11) ---- */
.pb-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pb-up{margin-left:auto}
.pl-up{flex:none}
body :is(#view-map,.spr-map) .pm-steps td.pl-file{white-space:nowrap;width:1%}
.rmv-obj-up{margin-top:8px}
#hvCard .hv-kick{font-size:11px;letter-spacing:.12em;color:var(--gold-ink)}
/* hover card: a lead line, then one bullet per line (Lavon, 2026-09-11: "each bullet should be on a separate line") */
#hvCard .hv-def{white-space:normal}
#hvCard .hv-lead{display:block}
#hvCard .hv-def .shm-bul{margin:8px 0 0;padding-left:20px;list-style:disc}
#hvCard .hv-def .shm-bul li{margin:0 0 4px;font-size:14px;line-height:1.45;color:var(--ink)}

/* ---- Roadmap: the current quarter stands out (Lavon, 2026-09-11: "the current quarter needs to be
   highlighted"). Gold heading band, a warmer column with a gold line down each side, and a gold edge
   on each current-quarter card when the columns stack. Other quarters are NOT dimmed: the status
   palette rule is never to fade a status tile. ---- */
.rmv-head .now{background:var(--gold);color:var(--navy)}
.rmv-cell.now{background:#FBF3DC;box-shadow:inset 2px 0 0 var(--gold),inset -2px 0 0 var(--gold)}
@media(max-width:1000px){
  .rmv-cell.now{box-shadow:inset 4px 0 0 var(--gold)}
}

/* ---- first load: the page's outline instead of a full-screen spinner (Lavon, 2026-09-11) ----
   From the first frame after sign-in: the navy sidebar, the white top bar and placeholder blocks where
   the page will be, so the wait reads as the page arriving. Once the sidebar and top bar are real
   (body.chrome-ready) the content-area outline above takes over, as before. */
.bootSk{display:none}
body.booting:not(.chrome-ready) #bootSplash{background:var(--cream)}
body.booting:not(.chrome-ready) .bootSpin,body.booting:not(.chrome-ready) .bootTxt{display:none}
body.booting:not(.chrome-ready) .bootSk{display:block;position:fixed;inset:0}
.bsk-side{position:absolute;left:0;top:0;bottom:0;width:236px;padding:24px 16px;display:flex;flex-direction:column;gap:12px;background:var(--navy)}
.bsk-side i{display:block;height:12px;border-radius:999px;background:rgba(255,255,255,.14)}
.bsk-side i.bsk-logo{height:24px;width:120px;margin-bottom:16px;background:rgba(255,255,255,.24)}
.bsk-top{position:absolute;left:236px;right:0;top:0;height:68px;display:flex;align-items:center;padding:0 32px;background:#fff;border-bottom:1px solid var(--line)}
.bsk-client{display:block;width:220px;height:16px;border-radius:999px;background:#E8EBF3}
.bsk-main{position:absolute;left:236px;right:0;top:68px;bottom:0;max-width:1224px;padding:40px 48px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 28px;align-content:start}
.bsk-main i{display:block;grid-column:1/-1;border-radius:0}
.bsk-main .bsk-eyebrow{width:160px;height:12px;border-radius:999px;background:#E3D6B0}
.bsk-main .bsk-title{width:60%;height:34px;border-radius:999px;background:#DDE1EC}
.bsk-main .bsk-rule{height:1px;background:var(--navy);margin-bottom:16px}
.bsk-main .bsk-block{height:200px;background:#fff;border-top:2.5px solid var(--navy)}
.bsk-main .bsk-half{grid-column:auto;height:160px}
.bsk-side i,.bsk-client,.bsk-main .bsk-eyebrow,.bsk-main .bsk-title,.bsk-main .bsk-block{animation:bskPulse 1.4s ease-in-out infinite}
@keyframes bskPulse{0%,100%{opacity:1}50%{opacity:.6}}
@media (prefers-reduced-motion:reduce){.bsk-side i,.bsk-client,.bsk-main i{animation:none}}
@media (max-width:900px){
  .bsk-side{display:none}
  .bsk-top{left:0;height:64px;padding:0 16px}
  .bsk-main{left:0;top:64px;padding:24px 16px;grid-template-columns:minmax(0,1fr)}
  .bsk-main .bsk-half{grid-column:1/-1}
}

/* ---- the phone Scoreboard in the exhibit style (Lavon, 2026-09-11, item 9) ----
   Same content, same order: the score on its bands, one row per imperative against the 80% line,
   then what needs someone. White blocks under a navy rule, hairline rows, condensed numerals, gold
   for what is below target; status pills keep the canonical palette. */
.pho-score{background:#fff;color:var(--navy);border-radius:0 0 8px 8px;border-top:2.5px solid var(--navy);padding:20px 16px 16px}
.pho-k{color:var(--muted);letter-spacing:.14em}
.pho-num{font-family:var(--font-num);font-weight:500;font-size:64px;letter-spacing:0;color:var(--navy)}
.pho-num small{font-size:20px;font-weight:400;color:var(--muted)}
.pho-band{margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.pho-score.on .pho-band{color:#1B8415}
.pho-score.watch .pho-band{color:var(--gold-ink)}
.pho-score.off .pho-band{color:#C41E1E}
.pho-score.none .pho-band{color:var(--muted)}
.pho-scale{position:relative;display:flex;height:8px;margin:16px 0 8px}
.pho-scale span{height:8px}
.pho-scale .z-off{width:60%;background:#ECEEF4}
.pho-scale .z-watch{width:20%;background:#F3E7C6}
.pho-scale .z-on{width:20%;background:#DCEAD4}
.pho-scale::after{content:"";position:absolute;left:80%;top:-4px;height:16px;border-left:2px dashed var(--gold)}
.pho-pin{position:absolute;top:-8px;width:3px;height:24px;background:var(--navy);transform:translateX(-50%)}
.pho-counts{margin-top:8px;padding-top:12px;border-top:1px solid var(--hair);color:var(--muted)}
.pho-counts b{font-family:var(--font-num);font-weight:500;font-size:20px;color:var(--navy)}
.pho-h{margin-top:24px;gap:12px;font-size:11px;letter-spacing:.16em;color:var(--muted)}
.pho-h em{font-style:normal;font-family:var(--font-num);font-weight:500;font-size:14px;letter-spacing:.06em;color:var(--gold)}
.pho-imps,.pho-needs{gap:0;background:#fff;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px}
.pho-imp{grid-template-columns:28px minmax(0,1fr) auto;grid-template-rows:auto auto auto;padding:12px 16px;background:none;border:0;border-bottom:1px solid var(--hair);border-radius:0}
.pho-imp:last-child{border-bottom:0}
.pho-imp-n{width:auto;height:auto;border-radius:0;background:none;color:var(--gold);font-family:var(--font-num);font-weight:500;font-size:20px}
.pho-imp-t{font-size:14px}
.pho-imp-s{font-family:var(--font-num);font-weight:500;font-size:20px}
.pho-imp-s.on,.pho-imp-s.none{color:var(--navy)}
.pho-imp-s.watch,.pho-imp-s.off{color:var(--gold-ink)}
.pho-imp-bar{grid-column:2/4;grid-row:3;position:relative;height:6px;margin-top:8px;background:#E6E3DA}
.pho-imp-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--navy)}
.pho-imp-bar i.hi{background:var(--gold)}
.pho-imp-bar b{position:absolute;left:80%;top:-4px;bottom:-4px;border-left:2px dashed var(--gold)}
.pho-need{padding:12px 16px;background:none;border:0;border-bottom:1px solid var(--hair);border-radius:0}
.pho-need.mine{border-left:0;box-shadow:inset 3px 0 0 var(--gold)}
.pho-empty{background:none;border:0;border-radius:0}
.pho-btn,.pho-full,.pho-more{border-radius:8px;color:var(--navy);border-color:var(--navy)}
.pho-more{margin:8px 16px 12px}

/* ---- the transition plan (plan clients) on the Strategy Map's looks (Lavon, 2026-09-11, item 10) ----
   Outcome heading (the band above), the goal as the gold band with a 20px title, Measured By as a
   numbered list under it, then action steps as hairline rows under a navy rule with a status edge. */
body :is(#view-map,.spr-map) .pc-goal{display:flex;flex-direction:column;gap:4px;margin:16px 0 12px;padding:12px 16px;background:#FBF6EA;border-left:6px solid var(--gold);border-radius:0 8px 8px 0}
.pc-goallbl{font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.pc-goalttl{font-size:20px;font-weight:800;line-height:1.3;color:var(--navy)}
body :is(#view-map,.spr-map) .pc-under{margin-left:16px;padding-left:24px;border-left:2px solid #E6E3DA}
body :is(#view-map,.spr-map) .pc-under .pm-lab{margin:16px 0 8px;font-size:11px;letter-spacing:.16em;color:var(--muted)}
body :is(#view-map,.spr-map) .pc-under .pm-meas{margin:0 0 8px;padding-left:20px;font-size:14px;line-height:1.5;color:var(--ink)}
body :is(#view-map,.spr-map) .pc-under .pm-meas li{margin-bottom:4px}
.pc-lbl{margin:24px 0 8px;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pc-lbl b{margin-left:8px;font-family:var(--font-num);font-weight:500;font-size:14px;letter-spacing:0;color:var(--gold)}
.pc-steps{background:#fff;border-top:2.5px solid var(--navy);border-radius:0 0 8px 8px;container-type:inline-size}
.pc-step{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto auto auto;gap:8px 16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--hair);border-left:4px solid #C3CADE}
.pc-step:last-child{border-bottom:0}
.pc-step:hover{background:#F8F9FC}
.pc-step.s-on_track{border-left-color:#1155CC}
.pc-step.s-done{border-left-color:#52823D}
.pc-step.s-in_progress{border-left-color:#A4C2F4}
.pc-step.s-off_track{border-left-color:#FFFF00}
.pc-step.s-not_done{border-left-color:#990000}
.pc-step.s-move{border-left-color:#E69138}
.pc-step.s-on_hold{border-left-color:#5B21B6}
.pc-step.s-ongoing{border-left-color:#884934}
.pc-num{font-family:var(--font-num);font-weight:500;font-size:14px;color:var(--gold)}
.pc-main{min-width:0;cursor:pointer}
.pc-main b{display:block;font-size:14px;font-weight:800;line-height:1.35;color:var(--navy)}
.pc-main:hover b{text-decoration:underline;text-underline-offset:3px}
.pc-deliv{display:block;margin-top:4px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.pc-own{font-size:12.5px;font-weight:700;color:var(--navy);white-space:nowrap}
.pc-due{font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.pc-pill{display:inline-block;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.pc-none{padding:16px;font-size:14px;color:var(--muted)}
@container (max-width:720px){
  /* number on its own line, the name full width, then owner|due and status|Upload as even pairs
     (an 'auto' column grew to a long file name and squeezed the owner to 0px) */
  .pc-step{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"n n" "m m" "o d" "s u";padding:12px}
  .pc-up{min-width:0;max-width:100%}
  .pc-up .shm-deliv,.pc-up .shm-clip{max-width:100%;min-width:0}
  .pc-up .shm-clip span{overflow:hidden;text-overflow:ellipsis}
  .pc-num{grid-area:n;align-self:start}
  .pc-main{grid-area:m}
  .pc-own{grid-area:o}
  .pc-due{grid-area:d;justify-self:end}
  .pc-st{grid-area:s}
  .pc-up{grid-area:u;justify-self:end}
}
@media (max-width:760px){
  /* on a phone the steps get the width: no indent under the goal, less panel padding */
  body :is(#view-map,.spr-map) .pc-under{margin-left:0;padding-left:0;border-left:0}
  body :is(#view-map,.spr-map) .pm-body{padding:16px 12px 24px}
}

/* ---- plan year (2026-09-12) -------------------------------------------------
   Drawn only for a client whose plan spans more than one year, which today is the
   Ergon business units carrying their 2025 history. Everyone else sees no change. */
body .map-tools .map-yearpick{display:flex;align-items:center;gap:8px}
body .map-tools .map-yearpick label{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy)}
body .map-tools .map-yearpick select{font:inherit;font-size:14px;color:var(--navy);background:#fff;
  border:1px solid var(--line);border-radius:8px;padding:8px 12px}

/* The closed-year strip. Goldenrod rather than red: this is a deliberate act by the
   reader, not a fault — but it has to be impossible to miss, because every number
   behind it belongs to a finished year. */
body #planYearBar{position:fixed;left:0;right:0;bottom:0;z-index:9000;
  display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;
  padding:12px 24px;background:var(--gold,#C8950C);color:#1a1400;
  font-size:14px;box-shadow:0 -2px 12px rgba(0,0,0,.18)}
body #planYearBar b{font-weight:700}
body #planYearBar button{font:inherit;font-weight:600;cursor:pointer;
  background:#1a1400;color:#fff;border:0;border-radius:8px;padding:8px 16px}
body #planYearBar button:hover{background:#000}
@media (max-width:640px){ body #planYearBar{font-size:12.5px;padding:8px 16px} }

/* A third level in the client switcher: Ergon › Ergon IS&L › the seven units.
   One more step of indent, not a new visual language — the row is the same row. */
body .sb-org-row.gchild{padding-left:44px}

/* ---- sidebar client logos (2026-09-12) --------------------------------------
   These were cropped, not fitted. object-fit:cover inside a 26px square keeps the
   MIDDLE of the image, so Ergon Trucking's wordmark rendered as "GO" and Ergon
   Terminaling (7:1) showed a few letters of one word. Ten of the twenty-nine client
   logos are wide wordmarks — Havard, MD Medical, LuLu's and Blue Hen's own mark among
   them — so this had been quietly mangling client brands long before the Ergon units
   arrived. A cropped logo is a brand problem, not a cosmetic one.

   contain never crops. Letting the box grow sideways to a cap keeps a wide mark
   legible rather than shrinking it into a square; a square logo is untouched, because
   width:auto at a fixed height IS its square. */
body .sb-client-logo,
body .sb-org-logo{object-fit:contain;padding:2px 3px}
/* The switcher button holds one logo with nothing to line up against, so it hugs. */
body .sb-client-logo{width:auto;min-width:26px;max-width:64px}
/* The menu is a LIST, so the logo column is a fixed width and every client name starts
   at the same place. Sizing each box to its own logo made the names ragged — a wide
   wordmark pushed its name 20px right of the one above it. A square logo simply sits
   centred in the slot. */
body .sb-org-logo{width:44px}
body .sb-org-row.child .sb-org-logo{width:44px;height:22px}
/* The navy behind .sb-org-logo exists for the initials fallback (white on navy). A
   transparent wordmark in dark ink would vanish into it, so an actual image gets the
   white card the switcher button already uses. */
body img.sb-org-logo{background:#fff}

/* ---- quarterly execution leaderboard (2026-09-12) ---------------------------
   A trophy goes to the unit that leads the quarter, and the race is within a client —
   Ergon's seven units against each other. The tiles used to be alphabetical. */
body .dv-tile-top{position:relative}
body .dv-rank{margin-left:auto;flex:0 0 auto;align-self:flex-start;
  font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 9px;border-radius:999px;background:#EEF0F5;color:#4a5286}
body .dv-rank.lead{background:var(--gold,#C8950C);color:#1a1400}
body .dv-rank.out{background:transparent;color:#6b7192;border:1px dashed #c9cddb;font-weight:700}
body .dv-tile.leader{border-color:var(--gold,#C8950C);box-shadow:0 0 0 2px rgba(200,149,12,.25)}
body .dv-hero-lead{margin-top:6px;font-size:14px;color:var(--navy)}
body .dv-hero-lead b{font-weight:800}

/* ---- holding card (2026-09-12) ----------------------------------------------
   Ergon sits above Ergon IS&L and Lampton Love so the estate has the right shape; it
   runs no plan and gets no score. The rollup that matters is one level down. */
body .hold-head{margin:0 0 20px}
body .hold-head h2{font-family:var(--font-head);font-weight:300;font-size:34px;color:var(--navy);margin:0 0 4px}
body .hold-head p{margin:0;font-size:14px;color:var(--navy)}
body .hold-list{display:flex;flex-direction:column;gap:12px;max-width:640px}
body .hold-row{display:flex;align-items:center;gap:16px;width:100%;cursor:pointer;text-align:left;
  padding:16px 20px;background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:12px}
body .hold-row:hover{border-color:var(--navy)}
body .hold-logo{width:40px;height:32px;flex:0 0 auto;object-fit:contain}
body .hold-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
body .hold-txt b{font-size:16.5px;color:var(--navy)}
body .hold-txt span{font-size:12.5px;color:#4a5286}
body .hold-go{flex:0 0 auto;font-size:12.5px;font-weight:700;color:var(--navy)}

/* ---- the three horizons, under the band (2026-09-12) ------------------------
   The big score never said which number it was: an abstract QUARTER / YTD / PTD
   toggle sat higher up the page, so the quarter appeared three times and beside the
   score not once. These name the real quarter — "Q3 2026", not "Quarter" — show all
   three at once, and switch the page. They replace that toggle rather than join it. */
body .ex-horiz{display:flex;gap:8px;margin:16px 0 24px;flex-wrap:wrap}
body .ex-horiz .exh{flex:1 1 0;min-width:96px;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;gap:4px;padding:8px 12px;
  background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:12px}
body .ex-horiz .exh:hover{border-color:var(--navy)}
body .ex-horiz .exh.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
body .ex-horiz .exh-l{font-size:11px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body .ex-horiz .exh-n{font-family:var(--font-head);font-size:26px;font-weight:300;line-height:1}

/* ---- quick add, removed (2026-09-12) ----------------------------------------
   A button floating over the page is a different design language from the rest of
   Execute, and restyling it did not answer that — Lavon: "remove the blue button".
   Everything it offered is reachable from the page that owns it; nothing is orphaned
   except the keyboard shortcuts, which still work. */
body #fab{display:none!important}

/* A completed five-year goal. Rare by design — the horizon resets to five years at the
   end of year 2 — so when one lands it should read as an event, not as a rounding
   adjustment inside an imperative's percentage. */
body .mdx .goal-done{display:inline-block;margin-left:8px;font-size:11px;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;
  background:#E4F3E5;color:#176B11}

/* ---- what is outstanding on deliverables (2026-09-12) -----------------------
   The section showed a count and a bar and stopped, which is the one thing about
   deliverables nobody can act on. Grouped by the person responsible: "12 of 40" is a
   status, "Ben Tedford owes four" is a conversation. */
body .mdx .deliv-owes{padding:16px 0;border-bottom:1px solid var(--hair,#e8e5dc)}
body .mdx .deliv-owes:last-child{border-bottom:0}
body .mdx .deliv-owes-h{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
body .mdx .deliv-owes-h b{font-size:16.5px;color:var(--navy)}
body .mdx .deliv-owes-h span{font-size:12.5px;color:#4a5286}
body .mdx .deliv-owes-row{display:flex;gap:12px;padding:4px 0;font-size:14px;color:var(--navy)}
body .mdx .dor-k{flex:0 0 116px;font-size:11px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#4a5286;padding-top:4px}
body .mdx .dor-t{flex:1;min-width:0}
body .mdx .deliv-owes-more{margin-top:4px;font-size:12.5px;color:#4a5286}

/* ---- what is dragging a part of the score (2026-09-12) ----------------------
   "Accountability health is the one part below target, at 56" named the problem and
   gave you nowhere to go. Each row: the status that costs credit, the item, the owner. */
body .mdx .fx-list{display:flex;flex-direction:column}
body .mdx .fx-row{display:grid;grid-template-columns:112px minmax(0,1fr) 140px;gap:12px;
  align-items:baseline;padding:8px 0;border-bottom:1px solid var(--hair,#e8e5dc);font-size:14px;color:var(--navy)}
body .mdx .fx-row:last-child{border-bottom:0}
body .mdx .fx-s{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#4a5286}
body .mdx .fx-w{font-size:12.5px;color:#4a5286;text-align:right}
@media (max-width:640px){
  body .mdx .fx-row{grid-template-columns:1fr;gap:0}
  body .mdx .fx-w{text-align:left}
}

/* ---- the division over time (2026-09-13) ------------------------------------
   The rollup said where each unit stands and nothing about where it is heading, which
   across Ergon IS&L hid the only thing that matters: every unit ran near 100% through
   2025 and fell off through 2026. A ranked list cannot say that; a line can. */
body .dv-trend{margin:0 0 24px;padding:24px}
body .dvt-h{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}
body .dvt-h b{font-family:var(--font-head);font-size:20px;font-weight:700;color:var(--navy)}
body .dvt-h span{font-size:14px;color:#4a5286}
body .dvt-svg{width:100%;height:auto;display:block;overflow:visible}
body .dvt-keys{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
body .dvt-key{display:flex;align-items:center;gap:8px;cursor:pointer;
  font-size:12.5px;font-weight:700;color:var(--navy);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:999px;padding:4px 12px}
body .dvt-key:hover{border-color:var(--navy)}
body .dvt-key i{width:12px;height:12px;border-radius:50%;flex:0 0 auto}

/* ---- division rollup (2026-09-13) -------------------------------------------
   Almost nothing here: the exhibits use the Scoreboard's own classes — ex-fig-n,
   obj-hero-bar, legend-chip, ex-col, ex-row — so the division page and a client page
   are visibly the same product. Only the four-up figure grid and the objective grouping
   inside the at-risk drilldown have no existing equivalent. */
.mdx .ex-cols4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.mdx .ex-cols4 .ex-col{padding:0;border:0}
.mdx .ex-fig-n small{font-family:var(--font-head);font-size:20px;color:var(--muted)}
.mdx .dv-riskobj{margin:8px 0 16px;padding-left:12px;border-left:2px solid var(--hair,#e8e5dc)}
.mdx .dv-riskobj-t{font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:4px}
.mdx .dv-riskobj:last-child{margin-bottom:0}
@media (max-width:860px){ .mdx .ex-cols4{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px} }

/* the three windows on the same question, as buttons rather than three charts */
body .dvb-scopes{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
body .dvb-sc{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--navy);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:999px;padding:4px 16px}
body .dvb-sc:hover{border-color:var(--navy)}
body .dvb-sc.on{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---- Calmer screens after the Ninety comparison (Lavon, 2026-10-05: "Ninety is less crowded
   or has more padding between lines... see how uncrowded their edit boxes are, how they are
   edited inline"). One block, so it can be judged and taken back as a whole. ---- */

/* Past due: the red date chip also carries a "!" mark, as Ninety's to-dos do. */
.mk-due.over::before{content:'';width:1.5em;height:1.5em;margin:-.2em 0;flex:none;background:currentColor;
  -webkit-mask:var(--ic-alert) center/contain no-repeat;mask:var(--ic-alert) center/contain no-repeat}

/* Row controls stay on screen (the × was asked for on every item) but sit quietly until the
   row is pointed at, so the title is what the eye lands on. Phones and tablets keep them at
   full strength, since there is no pointing there. */
@media (hover:hover) and (pointer:fine){
  .itemx:not(.armed){opacity:.5;transition:opacity .15s}
  :hover>.itemx,:focus-within>.itemx,.itemx:focus-visible,
  .tk-row:hover .itemx,.rmv-row:hover .itemx,.shm-row:hover .itemx,.card.pk:hover .itemx{opacity:1}
  .ent-meta{opacity:.55;transition:opacity .15s}
  :hover>.ent-meta,.tk-row:hover .ent-meta,.card.pk:hover .ent-meta,.mw-item:hover .ent-meta,.ent-meta:focus-within{opacity:1}
  .shm-deliv:not(.has) .shm-clip{border-color:transparent;background:transparent}
  .tk-row:hover .shm-deliv .shm-clip,.shm-row:hover .shm-deliv .shm-clip,.rmv-row:hover .shm-deliv .shm-clip{border-color:var(--line);background:#fff}
}

/* The × never lands on top of the row's own text (it covered the quarter in the meeting's
   marker review and "Spin off to-do" on the Parking Lot). */
body #sprintRunner .tk-row:has(>.itemx){position:relative;padding-right:48px}
.card.pk{position:relative;padding-right:48px}
.card.pk>.itemx{top:16px;right:8px}

/* More air between lines, closer to Ninety's spacing. */
body #sprintRunner .tkmode .tk-row{padding:16px 48px 16px 16px;margin-bottom:12px}
#sprintRunner .tk-title{line-height:1.45}
#sprintRunner .tk-meta{margin-top:8px}
.mw-item{padding-top:16px;padding-bottom:16px}
.card.pk{padding-top:20px;padding-bottom:20px}
.pk-title{line-height:1.5}
.pk-acts .pk-act.pk-todo{color:var(--navy)}

/* The item panel, Ninety-plain (Lavon, 2026-10-05: "Did you match the minimalistic approach of
   90?"). White, the title large at the top, then one property per line (label left, value right)
   with no boxes until pointed at, then the longer text as sections under thin rules. */
.dd-drawer{background:#fff;width:520px}
.dd-dh{background:#fff;color:var(--navy);padding:20px 56px 4px 24px}
.dd-kicker{color:var(--navy);font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}
.dd-kicker b{color:var(--navy)}
.dd-kicker .dot{background:var(--navy)}
.dd-dtitle{color:var(--navy);font-size:var(--t-2xl);line-height:1.25;margin:8px 0 0 -8px;width:calc(100% + 8px);padding:4px 8px}
.dd-dtitle:hover{background:#F3F5FA}
.dd-dtitle:focus{background:#fff;color:var(--navy);border-color:var(--navy)}
.dd-close{top:16px;right:16px;background:transparent;color:var(--navy);font-size:var(--t-2xl)}
.dd-close:hover{background:#F3F5FA}
.dd-body{padding:12px 24px 16px}
.dd-fld{margin-bottom:0}
.dd-fld.dd-prop{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:center;column-gap:12px;min-height:44px;padding:4px 0}
.dd-fld.dd-prop>.dd-lab{margin:0;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--navy)}
.dd-fld.dd-prop>.dd-ctl{border:1px solid transparent;background:transparent;padding:4px 8px;margin-left:-8px;min-width:0;transition:background .15s,border-color .15s}
.dd-fld.dd-prop>.dd-ctl:hover{background:#F3F5FA}
.dd-fld.dd-prop>.dd-ctl:focus-within{background:#fff;border-color:var(--navy)}
.dd-fld.dd-prop .dd-status{width:auto;justify-self:start;padding:8px 32px 8px 12px;font-size:12.5px}
.dd-fld.dd-prop .dd-rostat{justify-self:start}
.dd-fld.dd-prop .dd-people{min-width:0}
.dd-fld.dd-sec{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.dd-fld.dd-sec>.dd-lab,.dd-fld.dd-sub>.dd-lab{font-size:14px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--navy);margin-bottom:8px}
.dd-fld.dd-sub{margin-top:12px}
.dd-fld.dd-sec .dd-desc:not([readonly]){border:1px solid transparent;background:transparent;padding:4px 8px;margin-left:-8px;width:calc(100% + 8px);min-height:48px;transition:background .15s,border-color .15s}
.dd-fld.dd-sec .dd-desc:not([readonly]):hover{background:#F3F5FA}
.dd-fld.dd-sec .dd-desc:not([readonly]):focus{background:#fff;border-color:var(--navy);box-shadow:none}
.dd-fld.dd-sec .dd-desc:not([readonly])::placeholder{color:var(--navy);opacity:.55}
.dd-fld.dd-sec .dd-desc:not([readonly]):placeholder-shown{min-height:40px}
.dd-seg{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.dd-foot{background:#fff}
@media (max-width:560px){ .dd-fld.dd-prop{grid-template-columns:112px minmax(0,1fr)} }

/* Typing straight in the list: the title becomes a text box in place. */
.inl-on{display:block}
.inl-edit{display:block;width:100%;min-width:160px;font:inherit;color:inherit;line-height:inherit;letter-spacing:inherit;
  background:#fff;border:1px solid var(--navy);border-radius:var(--r-sm);padding:4px 8px;margin:-4px -8px;resize:none;overflow:hidden;box-shadow:0 0 0 3px rgba(19,27,85,.08)}
.inl-edit:focus{outline:none}
@media (hover:hover) and (pointer:fine){
  .tk-title,.iss-title,.pk-title,.mw-it-title,.kcard .kt,.dd-rtitle,td.shm-mk>b,.pb-t,td.pm-sname,.inl-desc,.mk-desc,.tk-deliv,.pc-deliv,.pk-ctx{cursor:text}
  .tk-owner .mk-resp,td.shm-resp,td.pm-own,.pc-own,.pb-own{cursor:pointer}
  .tk-owner .mk-resp:hover,td.shm-resp:hover .shm-respnm,.pc-own:hover,.pb-own:hover{text-decoration:underline}
}
/* Notes / Change history as plain tabs with an underline, not a filled switch */
.dd-body .dd-seg{display:flex;gap:24px;background:transparent;border-radius:0;padding:16px 0 0;box-shadow:none}
.dd-body .dd-seg button{flex:none;background:transparent;box-shadow:none;border:0;border-bottom:2px solid transparent;border-radius:0;padding:4px 0 8px;color:var(--navy);font-size:14px;font-weight:700}
.dd-body .dd-seg button.on{background:transparent;box-shadow:none;border-bottom-color:var(--navy)}
/* "More details" in the item panel: where the item sits in the plan, folded away (2026-10-06) */
.dd-more{margin:4px 0 0}
.dd-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:12.5px;font-weight:700;color:var(--navy)}
.dd-more>summary::-webkit-details-marker{display:none}
.dd-more>summary::before{content:'';width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.dd-more[open]>summary::before{transform:rotate(45deg)}
.dd-more>summary:hover{text-decoration:underline}
/* Progress counts the marker's steps (2026-10-06); when all are done it offers "Mark Done?" */
.mk-prog b{white-space:nowrap}
button.mk-prog-ask{background:#EAF3E4;border:1px solid #52823D;border-radius:999px;padding:4px 12px;margin-left:8px;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
button.mk-prog-ask em{font-style:normal;font-size:11px;font-weight:800;color:#2F5A1E}
button.mk-prog-ask:hover{background:#D9EBCF}
button.mk-prog-ask:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
.prog-pop{position:absolute;z-index:1500;display:flex;gap:4px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(19,27,85,.16)}
.prog-pop button{border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:700;color:var(--navy);padding:8px 12px;border-radius:8px;cursor:pointer}
.prog-pop button:hover{background:#F3F5FA}
.prog-pop button.on{background:var(--navy);color:#fff}
.inl-edit.inl-multi{font-size:14px;line-height:1.5;font-weight:400}
.own-pop{flex-direction:column;align-items:stretch;min-width:180px;max-height:320px;overflow-y:auto}
.own-pop button{text-align:left}
/* The file name in the Strategy Map's file column stops short of the × instead of running under it */
.shm-tbl td.shm-file .shm-deliv{display:inline-flex;max-width:100%;min-width:0}
.shm-tbl td.shm-file .shm-clip.has{min-width:0;max-width:100%}
.shm-tbl td.shm-file .shm-clip.has span{display:inline-block;min-width:0;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
/* "Details" beside every row's title: the way into the item panel (2026-10-06) */
.row-open{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:0 8px;height:24px;vertical-align:middle;
  border:1px solid var(--line);border-radius:999px;background:#fff;font-family:inherit;font-size:11px;font-weight:700;letter-spacing:0;text-transform:none;
  color:var(--navy);cursor:pointer;white-space:nowrap;line-height:1}
.row-open span{font-size:14px;line-height:1}
.row-open:hover{border-color:var(--navy);background:#F3F5FA}
.row-open:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
@media print{.row-open{display:none!important}}
body.printing-page .row-open{display:none!important}
.dec-alt{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:var(--navy);display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.dec-alt .dec-park{padding:8px 12px}
/* Bigger status icons (2026-10-06) need the label kept on one line: "On Track" was wrapping */
.m-status:not(select){white-space:nowrap}
.shm-tbl th:nth-child(4){width:156px}
.shm-tbl th:nth-child(5){width:184px}
/* The Strategy Map's file column shows the file's name; Replace lives in the Details panel (2026-10-06) */
.shm-tbl td.shm-file .shm-clip.swap{display:none}
.shm-tbl td.shm-file .shm-clip.has span{max-width:112px}
.shm-tbl td.shm-file .shm-clip.has{padding-left:8px;padding-right:8px;gap:4px}
/* Show what can be typed into in place: a light highlight on pointing (Lavon, 2026-10-06: "Need this
   to be clear"). The Details button beside the title is the way into the full panel. */
@media (hover:hover) and (pointer:fine){
  :is(.tk-title,.iss-title,.pk-title,.mw-it-title,.kcard .kt,.dd-rtitle,td.shm-mk>b,.pb-t,td.pm-sname,.inl-desc,.mk-desc,.tk-deliv,.pc-deliv,.pk-ctx):not(.inl-on):hover{
    background:#EEF1F8;border-radius:4px;box-shadow:0 0 0 4px #EEF1F8}
  :is(.tk-owner .mk-resp,td.pm-own,.pc-own,.pb-own):hover,td.shm-resp:hover .shm-respnm{background:#EEF1F8;border-radius:4px;box-shadow:0 0 0 4px #EEF1F8;text-decoration:none}
  :is(.tk-title,.iss-title,.pk-title,.mw-it-title,.kcard .kt,.dd-rtitle,td.shm-mk>b,.pb-t,td.pm-sname):hover .row-open{background:#fff}
}
/* The other-quarters hint: a small "+" chip (2026-10-06) */
.shm-showall.shm-qplus{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12.5px;font-weight:700;color:var(--navy);text-decoration:none;cursor:pointer}
.shm-showall.shm-qplus:hover{border-color:var(--navy);background:#F3F5FA}
/* The meeting map: all of the year's quarters, or collapsed to this one (2026-10-06) */
.spr-mrtoggle{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.spr-mrtoggle .spr-mrq{margin-left:auto;display:inline-flex;gap:4px;padding-left:12px}
/* Add a person from the meeting's check-in (2026-10-06) */
.spr-addperson-row{display:flex;justify-content:flex-start;margin:12px 0 4px}
.ap-note{margin:12px 0 0;font-size:12.5px;color:var(--navy)}
/* People in a meeting: the × by a name, and those left out (2026-10-06) */
.ci-who{display:flex;align-items:center;gap:8px}
.ci-who .ci-x{margin-left:4px}
.ci-skipped{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 4px;font-size:12.5px;color:var(--navy)}
.ci-skipped>span{font-weight:700}
.ci-back{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px dashed var(--line);border-radius:999px;background:#fff;font:inherit;font-size:12.5px;color:var(--navy);cursor:pointer}
.ci-back:hover{border-style:solid;border-color:var(--navy)}
.ci-back.ro{cursor:default}
.px-choices{display:grid;grid-template-columns:auto 1fr;gap:12px 16px;align-items:center}
.px-what{font-size:12.5px;color:var(--navy)}
.px-left{color:#990000;border-color:#e3a3a3}
