/* BH-Execute — main stylesheet.
   Extracted from index.html on 2026-08-10: the app was a single 1.0 MB file, and a
   quarter of it was CSS nobody could navigate. Behaviour is unchanged -- this is the
   same block, in the same order, now editable on its own.
   The remaining <style> blocks in index.html are view-scoped (tracker, equipment,
   sheet map) and stay with the code that owns them. */
:root{
    --navy:#131B55; --blue:#92C0E9; --camel:#884934; --gold:#C8950C; --cream:#FAF7F0;
    /* ---- Design system (2026-08-10). Before this there were 25 font sizes, 13 corner
       radii and 5 page widths, all accumulated one at a time. These are the decisions;
       anything outside them is an accident. ---- */
    /* Two page widths, each with a reason: data views want room, prose wants a readable
       measure of roughly 70 characters. Nothing else. */
    --content-max:1180px;   /* scoreboard, map, dashboards, tables */
    --reading-max:920px;    /* vision, parking lot, anything mostly sentences */
    /* Type scale — seven steps. Half-pixel sizes were never a decision. */
    --t-xs:11px; --t-sm:12.5px; --t-md:14px; --t-lg:16.5px;
    --t-xl:20px; --t-2xl:26px; --t-3xl:34px;
    /* Display: full-screen confirmations only, where the point is that somebody
       reads it from across a room without looking for it (2026-09-08). */
    --t-display:64px;
    /* Three radii. */
    --r-sm:8px; --r-md:14px; --r-pill:999px;
    /* Text colours that PASS contrast on cream/white. The brand blue and sand are fills,
       not type: #92C0E9 on cream is 1.7:1 and #D1CCBD is 1.3:1, against a 4.5:1 standard. */
    --ink-blue:#2A5F8F; --ink-muted:#6A7075;
    /* Gold is a fill, not a text colour: white on #C8950C is 2.7:1 and #C8950C on cream
       is 2.5:1, both under the 4.5:1 bar. The BH system already carries a dark goldenrod
       for exactly this. Navy on gold = 5.9:1, dark goldenrod on cream = 4.7:1. */
    --gold-ink:#8a6a00;
    --ink:#1c2030; --muted:#6b7088; --line:#e7e3d8; --card:#ffffff;
    /* Shared "Modern Strategy" type system — matches Portal, Console, Assessments.
       Headings = Mulish (web-loaded, renders the same on every OS); big numbers = Oswald. */
    --font-head:'Mulish','Avenir Next','Avenir',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Inter,sans-serif;
    --font-num:'Oswald','DIN Condensed','Mulish',sans-serif;
    --navy-soft:#26306f; --shadow:0 1px 2px rgba(19,27,85,.06),0 6px 20px rgba(19,27,85,.06);
    --submitted:#674EA7;
    /* Per-client brand accent. Defaults to Blue Hen navy so the demo (no override)
       looks identical; set at runtime from org.primary_color_override in hydrateChrome. */
    --accent:#131B55;
    /* status-dropdown carets: white on dark fills, dark on light fills */
    --caret-w:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2 4.5l4 4 4-4' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    --caret-d:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2 4.5l4 4 4-4' fill='none' stroke='%231c2030' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--cream);font-size:14px;line-height:1.5}
  h1,h2,h3,h4{margin:0}
  .head{font-family:var(--font-head);font-weight:800;letter-spacing:-.01em}
  button{font-family:inherit;font-size:var(--t-base);cursor:pointer}
  a{color:inherit}

  /* ---------- Auth gate ---------- */
  #authGate{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;
    background:radial-gradient(120% 120% at 50% 0%,#1f2a7a 0%,#131B55 45%,#0a0f30 100%);}
  #bootSplash{display:none;position:fixed;inset:0;z-index:60;background:#F6F7FB;flex-direction:column;align-items:center;justify-content:center;gap:14px}
  body.booting #bootSplash{display:flex}
  body.booting #authGate{display:none!important}
  .bootSpin{width:34px;height:34px;border-radius:50%;border:3px solid #E3E7ED;border-top-color:#131B55;animation:bootspin .8s linear infinite}
  .bootTxt{font-size:13px;font-weight:700;color:#131B55;letter-spacing:.02em}
  @keyframes bootspin{to{transform:rotate(360deg)}}
  body.gated #authGate{display:flex}
  body.gated #appShell,body.gated #fab{display:none!important}
  /* First-login / forgot-password: "set your password" screen (Supabase recovery link). */
  #setPwGate{position:fixed;inset:0;z-index:301;display:none;align-items:center;justify-content:center;
    background:radial-gradient(120% 120% at 50% 0%,#1f2a7a 0%,#131B55 45%,#0a0f30 100%);}
  body.recovery #setPwGate{display:flex}
  body.recovery #authGate{display:none!important}
  body.recovery #appShell,body.recovery #fab{display:none!important}
  .gate-card{width:380px;max-width:92vw;background:#fff;border-radius:16px;padding:34px 30px;box-shadow:0 30px 80px rgba(0,0,0,.35);text-align:center}
  .gate-mark{font-size:26px;color:var(--navy);letter-spacing:.3px}
  .gate-mark sup{font-size:11px}
  .gate-sub{color:var(--muted);margin:6px 0 22px;font-size:13px}
  .gate-card input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:9px;margin-bottom:10px;font-size:14px}
  .gate-card input:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  .btn{border:none;border-radius:var(--r-sm);padding:11px 14px;font-weight:600;font-size:14px}
  .btn-primary{background:var(--navy);color:#fff;width:100%}
  .btn-ghost{background:transparent;color:var(--navy);border:1px solid var(--line);width:100%;margin-top:8px}
  .gate-note{font-size:12px;color:var(--muted);margin-top:14px}
  .gate-remember{display:flex;align-items:center;gap:8px;justify-content:flex-start;font-size:12.5px;color:var(--navy);margin:0 0 12px;cursor:pointer;text-align:left}
  .gate-card .gate-remember input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--navy);flex:0 0 auto}
  .gate-err{color:#990000;font-size:12.5px;min-height:16px;margin-top:8px}
  .gate-logo{height:44px;width:auto;display:block;margin:0 auto 18px}
  .gate-credit{font-size:11px;color:var(--muted);margin-top:22px;border-top:1px solid var(--line);padding-top:14px;letter-spacing:.2px}
  .gate-link{background:none;border:none;color:var(--blue);font-size:12.5px;cursor:pointer;margin-top:12px;text-decoration:underline;font-weight:600}
  .gate-link:hover{opacity:.8}
  .code-links{display:flex;justify-content:center;gap:18px}
  .gate-card input.code-input{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:20px;letter-spacing:4px;text-align:center}
  .gate-card input.code-input::placeholder{font-family:system-ui,-apple-system,sans-serif;font-size:14px;letter-spacing:normal}

  /* ---------- Shell ---------- */
  #appShell{display:flex;min-height:100vh}
  #sidebar{width:236px;flex:0 0 236px;background:var(--navy);color:#cdd3f0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
  /* sidebar brand lockup — Blue Hen platform brand (horse + BH Execute + Powered by Blue Hen) */
  .brand{display:flex;align-items:center;gap:14px;padding:22px 20px 20px;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
  .brand .sb-mark{flex:0 0 auto;display:inline-flex;align-items:center;color:#fff}
  .brand .sb-horse{height:54px;width:auto;display:block}
  .brand .sb-co{min-width:0}
  .brand .sb-co b{display:block;font-family:var(--font-head);font-weight:600;font-size:22px;line-height:1.1;color:#fff;white-space:nowrap}
/* Execute. wordmark (logo direction 01, Lavon 2026-09-10): Libre Baskerville, gold full stop, Blue Hen Agency beneath */
.brand .sb-word{font-family:'Libre Baskerville',Baskerville,Georgia,serif;font-weight:700;font-size:var(--t-2xl);letter-spacing:-.5px;line-height:1.1;color:#fff}
.sb-dot,.gate-dot,.mast-dot{color:#C8950C}
.brand .sb-by{display:block;font-style:normal;font-size:var(--t-sm);letter-spacing:.02em;color:#aeb6e6;text-transform:none;margin-top:4px;font-weight:600}
.sb-powered{display:flex;align-items:center;gap:8px;margin-bottom:8px}.sb-powered img{height:16px;width:auto;opacity:.9}.sb-powered b{color:#fff}
.gate-word{font-family:'Libre Baskerville',Baskerville,Georgia,serif;font-weight:700;font-size:var(--t-3xl);letter-spacing:-.5px;line-height:1.1;color:var(--navy);margin:0 auto 4px}
.gate-by{font-size:var(--t-sm);font-weight:600;color:#4a5286;margin-bottom:16px}
.mast-word01{font-family:'Libre Baskerville',Baskerville,Georgia,serif;font-weight:700;font-size:var(--t-3xl);letter-spacing:-.5px;line-height:1.05;color:#fff;padding:8px 0}
.mast-by{font-family:Inter,system-ui,sans-serif;font-size:var(--t-sm);font-weight:600;color:#C9D1EA;letter-spacing:.02em;margin-top:4px}

  .brand .sb-co em{display:block;font-style:normal;font-size:10.5px;letter-spacing:.6px;color:#aeb6e6;text-transform:uppercase;margin-top:4px}
  .brand .sb-co .sb-tm{font-size:11px;line-height:0;vertical-align:super;margin-left:1px}
  nav{padding:12px 12px;flex:1;overflow:auto}
  .nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;color:#cdd3f0;
    padding:10px 12px;border-radius:9px;font-size:14px;font-weight:500;margin-bottom:2px}
  .nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
  .nav-item.active{background:#fff;color:var(--navy);font-weight:600}
  .nav-ico{width:18px;height:18px;flex:0 0 18px;opacity:.9}
  .nav-item.active .nav-ico{opacity:1}
  .nav-count{margin-left:auto;font-size:11px;background:rgba(255,255,255,.14);padding:1px 7px;border-radius:10px}
  .nav-item.active .nav-count{background:var(--cream)}
  /* Decision Room only. Gold rather than a status colour: red and yellow already
     mean Not Done and Off Track on the board, and a sidebar badge that borrows one
     of those reads as a marker in trouble. */
  /* Todd, 2026-09-08: the quote tells you what was said; this is how you go and
     hear it. Staff only, same as the quote — a transcript is Blue Hen's working
     material, not a client deliverable. */
  .dm-listen{display:inline-block;margin:-2px 0 8px;font-size:var(--t-xs);font-weight:700;
    color:var(--navy);text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:1px}
  .dm-listen:hover{color:var(--gold-ink)}
  .nav-count.alert{background:#C8950C;color:#131B55;font-weight:800}
  .nav-item.active .nav-count.alert{background:#C8950C;color:#131B55}
  .me{padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}
  .me .avatar{background:var(--blue);color:var(--navy)}
  .me-name{color:#fff;font-size:13px;font-weight:600;line-height:1.1}
  .me-title{color:#9aa2d6;font-size:11px}
  .me-key{margin-left:auto;background:transparent;border:none;color:#9aa2d6;cursor:pointer;font-size:14px;line-height:1;padding:2px 4px}
  .me-key:hover{color:#fff}
  .me-out{background:transparent;border:none;color:#9aa2d6;cursor:pointer;padding:2px 4px}
  .me-out:hover{color:#fff}
  .sb-foot{padding:13px 18px 15px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:flex-start;gap:6px}
  .sb-foot img{height:25px;width:auto;display:block;opacity:.96}
  .sb-foot small{font-size:9.5px;line-height:1.35;color:#8189c0;letter-spacing:.2px}
  /* ===== Staff client-workspace switcher (sidebar; Blue Hen staff only) ===== */
  .sb-client{position:relative;padding:12px 14px 4px;border-bottom:1px solid rgba(255,255,255,.08)}
  .sb-client-label{font-size:9.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#8189c0;padding:0 2px 6px}
  .sb-client-btn{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:8px 10px;color:#fff;font-family:inherit;cursor:pointer;transition:.16s}
  .sb-client-btn:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28)}
  .sb-client-logo{flex:0 0 auto;width:26px;height:26px;border-radius:6px;object-fit:cover;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;overflow:hidden}
  .sb-client-name{flex:1;min-width:0;font-size:13px;font-weight:700;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-client-caret{flex:0 0 auto;width:13px;height:13px;opacity:.75;transition:transform .18s}
  .sb-client.open .sb-client-caret{transform:rotate(180deg)}
  /* padding-bottom so the last row reads as "scroll for more" rather than as a
     row that has been sliced in half. */
  /* The panel was pinned to the sidebar's width (left+right:14px), which left about
     128px for a name once the logo, tick and padding were taken out — so "Brothers
     Leadership" truncated. A switcher may spill over the content beside it; that is
     what dropdowns do. Grows to fit, stops at 320px. */
  .sb-client-menu{position:absolute;top:calc(100% + 4px);left:14px;
    min-width:calc(100% - 28px);width:max-content;max-width:320px;
    background:#fff;border:1px solid var(--line);border-radius:12px;
    box-shadow:0 14px 40px rgba(19,27,85,.28);padding:8px 8px 12px;z-index:60;
    display:none;max-height:60vh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
  .sb-client.open .sb-client-menu{display:block}
  .sb-org-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:8px 9px;cursor:pointer;font-family:inherit;transition:background .14s}
  .sb-org-row:hover{background:#f4f6fd}
  .sb-org-row.active{background:#eef2fd}
  .sb-org-logo{flex:0 0 auto;width:28px;height:28px;border-radius:6px;object-fit:cover;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;overflow:hidden}
  .sb-org-txt{min-width:0;flex:1}
  /* ⚠️ display:block is load-bearing. text-overflow/overflow do NOTHING on an
     inline box, and this is a <span> inside the flex item rather than the flex
     item itself — so the rules were all present and every long client name still
     ran off the edge and got clipped by the panel. "Alcorn State University S",
     "Brothers Finance Tea", "DuBard School for Langu". */
  .sb-org-name{display:block;font-size:13px;font-weight:700;color:var(--ink);line-height:1.2;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sb-org-sub{margin-top:2px;line-height:1}
  .sb-org-chip{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:1px 6px;border-radius:999px}
  .sb-org-chip.demo{background:#e3e9fb;color:#2a347e}
  .sb-org-chip.prospect{background:#fff4d6;color:#7a5a12}
  .sb-org-chip.paused{background:#f0e0e0;color:#7a2a2a}
  .sb-org-chip.archived{background:#e8e8ee;color:#5b617a}
  .sb-org-check{width:16px;height:16px;flex:none;color:var(--navy);opacity:0;margin-left:auto}
  .sb-org-row.active .sb-org-check{opacity:1}
  .sb-org-empty{font-size:12px;color:var(--muted);padding:12px 10px;text-align:center}

  #main{flex:1;min-width:0;display:flex;flex-direction:column}
  .topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 30px;height:64px;
    background:var(--navy);box-shadow:0 3px 16px rgba(19,27,85,.30);position:sticky;top:0;z-index:5}
  .tb-brand{display:flex;align-items:center;gap:14px;min-width:0}
  .tb-titles{display:flex;flex-direction:column;justify-content:center;min-width:0}
  .topbar h1{font-size:19px;color:#fff;line-height:1.12;font-weight:700}
  .topbar .sub{color:rgba(255,255,255,.82);font-size:12px;font-weight:600;letter-spacing:.2px}
  .hamb{display:none;background:none;border:none;font-size:20px;color:#fff}
  .tb-right{display:flex;align-items:center;gap:14px;flex:none}
  .tb-live{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap}
  .live-dot{width:10px;height:10px;background:#22c55e;border-radius:50%;box-shadow:0 0 8px rgba(34,197,94,.8);animation:livePulse 1.6s ease-in-out infinite}
  .live-dot.stale{background:#C41E1E;box-shadow:0 0 8px rgba(196,30,30,.8)}
  @keyframes livePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.35)}}
  .refresh-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;background:var(--blue);border:1px solid var(--blue);border-radius:8px;color:var(--navy);font-family:inherit;font-size:12px;font-weight:800;letter-spacing:.3px;cursor:pointer;transition:.18s;white-space:nowrap}
  .refresh-btn:hover{background:#a9d0f0;border-color:#a9d0f0;transform:translateY(-1px)}
  .refresh-btn.spinning svg{animation:refreshSpin .8s linear}
  .refresh-btn svg{width:14px;height:14px}
  /* Reset demo: Admin-only presenter tool to restore the pristine baseline. Understated
     translucent button with a gold caution hover, so it never competes with Refresh. */
  .reset-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.3px;cursor:pointer;transition:.18s;white-space:nowrap}
  .reset-btn:hover{background:rgba(201,169,110,.30);border-color:var(--gold)}
  .reset-btn svg{width:14px;height:14px}
  @keyframes refreshSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
  .tb-home{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:8px 13px;font-size:12px;font-weight:700;cursor:pointer;transition:.18s}
  .tb-home:hover{background:rgba(255,255,255,.2)}
  .tb-home svg{width:15px;height:15px}
  /* ===== "View as" presenter switcher ===== */
  .va-wrap{position:relative;flex:none}
  .va-btn{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:.18s;white-space:nowrap}
  .va-btn:hover{background:rgba(255,255,255,.2)}
  .va-btn svg.va-eye{width:15px;height:15px}
  .va-caret{width:12px;height:12px;opacity:.8;transition:transform .18s}
  .va-wrap.open .va-caret{transform:rotate(180deg)}
  .va-btn.previewing{background:var(--gold);border-color:var(--gold);color:var(--navy)}
  .va-btn.previewing:hover{background:#bb9b5f}
  .va-menu{position:absolute;top:calc(100% + 9px);right:0;width:320px;max-width:calc(100vw - 36px);background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 14px 40px rgba(19,27,85,.22);padding:8px;z-index:30;display:none;max-height:74vh;overflow:auto}
  .va-wrap.open .va-menu{display:block}
  .va-sec{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);padding:10px 10px 5px}
  .va-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:8px 10px;cursor:pointer;font-family:inherit;transition:background .14s}
  .va-row:hover{background:#f4f6fd}
  .va-row.active{background:#eef2fd}
  .va-ava{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:var(--navy);color:#fff}
  .va-row .va-txt{min-width:0;flex:1}
  .va-name{font-size:13px;font-weight:700;color:var(--ink);line-height:1.2;display:flex;align-items:center;gap:6px}
  .va-name .va-you{font-size:9.5px;font-weight:800;letter-spacing:.4px;color:var(--gold-ink);text-transform:uppercase}
  .va-sub{font-size:11px;color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .va-check{width:16px;height:16px;flex:none;color:var(--navy);opacity:0}
  .va-row.active .va-check{opacity:1}
  .va-badge{font-size:10px;font-weight:800;letter-spacing:.3px;padding:2px 8px;border-radius:999px;flex:none}
  .va-badge.admin{background:#131B55;color:#fff}
  .va-badge.leader{background:#4051b5;color:#fff}
  .va-badge.contributor{background:#e3e9fb;color:#2a347e}
  .va-badge.viewer{background:#eceef3;color:#5b617a}
  .va-foot{border-top:1px solid var(--line);margin-top:6px;padding:8px 6px 4px}
  .va-note{font-size:11px;color:var(--muted);line-height:1.4;padding:0 6px 4px}
  /* Preview banner under the topbar */
  .va-banner{display:none;align-items:center;gap:12px;background:linear-gradient(90deg,#fdf6e8,#faf1da);border-bottom:1px solid var(--gold);color:#5a4a23;font-size:13px;font-weight:600;padding:9px 30px}
  body.previewing .va-banner{display:flex}
  .va-banner svg{width:16px;height:16px;flex:none;color:var(--gold)}
  .va-banner b{color:var(--navy);font-weight:800}
  .va-banner .va-bspacer{flex:1}
  .va-exit{display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;border:none;border-radius:7px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:.16s}
  .va-exit:hover{background:var(--navy-soft)}
  /* Read-only hint shown to viewers in place of edit controls */
  .ro-hint{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--muted)}
  .ro-hint svg{width:12px;height:12px}
  .mt-access{margin-left:auto}
  /* Read-only Strategy Map cells (shown when the viewer can't edit that row) */
  .md-roperson{font-size:12.5px;font-weight:700;color:var(--ink)}
  .md-ronote{font-size:12.5px;color:var(--ink);white-space:pre-wrap;line-height:1.4}
  .md-ro{font-size:12px;color:var(--muted)}
  .content{padding:26px 30px 90px;max-width:1600px;width:100%}  /* all views fill the page width */
  .view{display:none}
  .view.active{display:block}
  #view-parking{max-width:var(--reading-max)}  /* Parking Lot stays a narrow, readable column */

  /* ---------- Bits ---------- */
  .avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;
    background:var(--navy);color:#fff;font-size:10.5px;font-weight:700;flex:0 0 28px}
  .avatar.sm{width:22px;height:22px;font-size:9px;flex-basis:22px}
  .card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
  .section-title{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:26px 0 12px}
  .pill{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
  .st-ontrack{background:#1155CC;color:#fff} .st-done{background:#52823D;color:#fff}
  .st-offtrack{background:#FFFF00;color:#1c2030} .st-notdone{background:#990000;color:#fff}
  .st-move{background:#E69138;color:#fff} .st-delete{background:#434343;color:#fff}
  .st-inprocess{background:#A4C2F4;color:#1c2030} .st-todo{background:#e7e3d8;color:#4a4d62}
  .st-submitted{background:var(--submitted);color:#fff} .st-not-started{background:#E2E8F0;color:#475569}
  .st-onhold{background:#5B21B6;color:#fff}
  .st-na{background:#E8EBF0;color:#6B7280}
  /* Not-started marker (future quarter): a quiet, uncolored placeholder, not a status pill. */
  .mk-none{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;color:var(--muted);background:transparent;border:1px dashed var(--line)}
  .tag{display:inline-block;font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:1px 9px;background:#fff}
  .progress{height:7px;border-radius:6px;background:#ece8dd;overflow:hidden}
  .progress > i{display:block;height:100%;background:var(--navy);border-radius:6px}
  .muted{color:var(--muted)}
  .empty{color:var(--muted);font-size:13px;padding:18px;text-align:center}

  /* ---------- Home ---------- */
  .home-top{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:16px}
  .score-card{padding:22px;text-align:center;display:flex;flex-direction:column;justify-content:center}
  .score-ring{position:relative;width:150px;height:150px;margin:6px auto 4px}
  .score-ring svg{transform:rotate(-90deg)}
  .score-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .score-num b{font-size:var(--t-3xl);color:var(--navy);font-family:var(--font-num);line-height:1}
  .score-num span{font-size:var(--t-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
  .vision{padding:22px}
  .vision .eyebrow{font-size:11px;color:var(--camel);font-weight:700;letter-spacing:.7px;text-transform:uppercase}
  .vision p{font-family:var(--font-head);font-size:20px;color:var(--navy);margin:8px 0 14px;line-height:1.35}
  .vision .facts{display:flex;gap:26px;flex-wrap:wrap}
  .fact b{display:block;font-size:var(--t-xl);color:var(--navy)} .fact span{font-size:var(--t-xs);color:var(--muted)}
  .grid{display:grid;gap:14px}
  .metrics{grid-template-columns:repeat(3,1fr)}
  .metric{padding:14px 16px}
  .metric .m-name{font-size:12.5px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
  .metric .m-dot{width:8px;height:8px;border-radius:50%}
  .metric .m-val{font-size:26px;color:var(--navy);font-weight:700;margin-top:4px;font-family:var(--font-num)}
  .metric .m-val small{font-size:var(--t-sm);color:var(--muted);font-weight:500;font-family:Inter}
  .metric .m-goal{font-size:var(--t-xs);color:var(--muted);margin-top:1px}
  .metric svg.spark{display:block;margin-top:8px}
  .imps{grid-template-columns:repeat(2,1fr)}
  .imp-card{padding:16px 18px;border-left:5px solid var(--navy)}
  .imp-card h3{font-size:16px;color:var(--navy);display:flex;align-items:center;gap:8px}
  .imp-card .desc{font-size:12.5px;color:var(--muted);margin:3px 0 12px}
  .imp-row{display:flex;align-items:center;gap:10px;margin-top:8px}
  .imp-row .progress{flex:1}
  .imp-stat{display:flex;gap:18px;margin-top:12px;font-size:var(--t-sm);color:var(--muted)}
  .imp-stat b{color:var(--navy);font-size:var(--t-md)}

  /* ---------- Strategy map (reimagined, MD-authentic) ---------- */
  .tree-sub{font-size:var(--t-sm);color:var(--muted);margin-left:auto}  /* still used by Weekly view + drilldowns */
  .map-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px;justify-content:flex-start}
  /* Quarter scope sits just left of List|Board; margin-left:auto on the FIRST of the
     pair pushes both to the right edge together. */
  /* Scope filter: reads as a control with a label, not a twin of List|Board. */
  .mt-qfilt{gap:8px}
  .map-qseg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:#fff}
  .map-qseg button{border:0;background:#fff;color:var(--muted);font:700 12.5px/1 Inter,system-ui,sans-serif;
    padding:9px 14px;cursor:pointer;font-family:inherit;white-space:nowrap}
  .map-qseg button+button{border-left:1px solid var(--line)}
  .map-qseg button.on{background:var(--navy);color:#fff}
  .map-qseg button:not(.on):hover{background:#f2f4fa;color:var(--navy)}
  .shm-tbl tr.shm-hidden-note td{background:#fbfcfe;color:#6a7280;font-size:var(--t-sm);font-style:italic;padding:9px 12px}
  .shm-showall{background:none;border:0;padding:0;font:inherit;font-style:normal;font-weight:700;color:var(--navy);text-decoration:underline;cursor:pointer}
  .mt-filt{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--muted)}
  .map-sel{border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 11px;font-size:var(--t-sm);color:var(--navy);font-weight:600;background:#fff;cursor:pointer}
  .mt-clear{background:var(--navy);color:#fff;border:none;border-radius:var(--r-sm);padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer}
  .mt-ghost{background:#fff;color:var(--muted);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
  .mt-ghost:hover{border-color:var(--navy);color:var(--navy)}
  .filtered-out{display:none!important}

  .map-plan{display:flex;flex-direction:column;gap:30px}
  /* ----- Imperative = top band of each section ----- */
  .m-imp{background:#fff;border:1px solid var(--line);border-top:7px solid var(--navy);border-radius:var(--r-md);padding:26px 28px;box-shadow:var(--shadow)}
  .m-imp-head{display:flex;align-items:flex-start;gap:18px}
  .m-imp-badge{flex:none;width:54px;height:54px;border-radius:14px;background:var(--navy);color:#fff;font-size:var(--t-xl);font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 4px 12px rgba(19,27,85,.28)}
  .m-imp-headtext{flex:1;min-width:0}
  .m-imp-eyebrow{display:flex;align-items:center;gap:11px;margin-bottom:7px;flex-wrap:wrap}
  .m-imp-kicker{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .m-focus{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);background:var(--gold);border:1px solid #b8965a;border-radius:999px;padding:3px 12px}
  .m-focus-row{margin-top:10px}
  .m-imp-title{font-size:var(--t-lg);line-height:1.22;font-weight:800;color:var(--navy);margin:0}
  .m-imp-def{margin:9px 0 0;font-size:var(--t-base);line-height:1.55;color:var(--ink);max-width:74ch;white-space:pre-line}
  /* Inline imperative editors (leaders/staff): look like the text until hovered/focused */
  .m-imp-edit{display:block;width:100%;font-family:inherit;font-size:var(--t-lg);line-height:1.22;font-weight:800;color:var(--navy);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;padding:2px 7px;margin:0 -7px}
  .m-imp-edit:hover{border-color:var(--line)}
  .m-imp-edit:focus{outline:none;border-color:var(--blue);background:#fff}
  .m-imp-defedit{display:block;width:100%;max-width:74ch;font-family:inherit;font-size:var(--t-base);line-height:1.55;color:var(--ink);border:1px solid transparent;border-radius:var(--r-sm);background:transparent;padding:6px 8px;margin:9px -8px 0;resize:vertical}
  .m-imp-defedit:hover{border-color:var(--line)}
  .m-imp-defedit:focus{outline:none;border-color:var(--blue);background:#fff}
  .m-focus-lbl{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--camel);margin-right:6px}
  .m-focus-edit{font-family:inherit;font-size:var(--t-sm);font-weight:700;color:var(--navy);border:1px solid var(--line);border-radius:8px;background:#fff;padding:5px 11px;min-width:240px}
  .m-focus-edit:focus{outline:2px solid rgba(19,27,85,.3);outline-offset:1px;border-color:var(--blue)}
  .m-imp-owner-lbl{color:var(--muted);font-size:12.5px;margin-right:4px}
  .m-imp-owner{font-size:var(--t-sm);font-weight:700;color:var(--muted);margin-top:9px}
  .m-imp-owner b{color:var(--ink)}

  /* ----- 5-Year Goal block ----- */
  .m-goals{margin-top:22px;display:flex;flex-direction:column;gap:26px}
  .m-goal{border-left:5px solid #b9c6e8;padding-left:22px}
  .m-goal-top{display:flex;align-items:flex-start;gap:15px}
  .m-goal-badge{flex:none;min-width:34px;height:34px;border-radius:var(--r-sm);background:var(--camel);color:#fff;font-size:var(--t-md);font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1;padding:0 7px}
  .m-goal-head{flex:1;min-width:0}
  .m-rowlabel-top{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
  .m-goal-name{font-size:var(--t-md);font-weight:800;color:var(--navy);line-height:1.3}
  .m-goal-line{margin-top:5px;font-size:var(--t-sm);color:var(--ink);line-height:1.5}
  .m-deliv-label{display:inline-block;font-size:var(--t-xs);font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--navy);background:#eef1fb;border:1px solid #cdd8f1;border-radius:5px;padding:1px 7px;margin-right:9px;vertical-align:1px}
  .m-goal-resp{margin-top:6px;font-size:12.5px;color:var(--muted)}
  .m-goal-resp b{color:var(--navy)}
  .m-goal-name .m-goal-status{display:inline-block;margin-left:10px;vertical-align:middle}

  /* ----- MD-style tables (Objective + 90-Day Markers): exact sheet labels ----- */
  .m-objs{margin-top:16px;display:flex;flex-direction:column;gap:20px}
  .m-obj-wrap{display:flex;flex-direction:column;gap:11px}
  .md-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:11px;background:#fff;-webkit-overflow-scrolling:touch}
  .md-table{border-collapse:collapse;width:100%;min-width:1040px;font-size:13px}
  .md-table th{background:var(--navy);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-align:center;vertical-align:middle;padding:9px 11px;border-right:1px solid rgba(255,255,255,.16);white-space:nowrap}
  .md-table th:last-child{border-right:none}
  .md-table td{padding:11px;border-top:1px solid var(--line);border-right:1px solid var(--line);vertical-align:middle;color:var(--ink);line-height:1.45}
  .md-table td:last-child{border-right:none}
  /* 6 columns: Name | Deliverables (auto, widest) | Responsible | Status | Notes | Deliverable file */
  .md-table col.oc1{width:250px}.md-table col.oc2{width:auto}.md-table col.oc3{width:150px}.md-table col.oc4{width:152px}.md-table col.oc5{width:208px}.md-table col.oc6{width:170px}
  /* headers are all centered (th rule above); data cells center only for Responsible (3), Status (4), Deliverable file (6) */
  .md-table th:nth-child(3),.md-table td:nth-child(3),.md-table th:nth-child(4),.md-table td:nth-child(4),.md-table th:nth-child(6),.md-table td:nth-child(6){text-align:center}
  .cell-name{font-weight:700;color:var(--navy)}
  .md-num{display:inline-block;font-weight:800;color:#fff;background:var(--navy);border-radius:7px;padding:1px 7px;margin-right:7px;font-size:12px}
  .md-num.obj{background:#eef1fb;border:1px solid #cdd8f1;color:var(--navy)}
  .md-name{font-weight:700}
  .md-qy{font-weight:800;color:var(--navy)}
  .md-now{display:inline-block;margin-left:7px;font-size:9px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#fff;background:#1155CC;border-radius:999px;padding:1px 7px;vertical-align:1px}
  /* breadcrumb on a fresh next-quarter row: which quarter it carried from (+ how many times) */
  .mk-carried,.mk-carryfwd,.mk-moved-in{display:inline-flex;align-items:center;gap:3px;font-size:var(--t-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#E69138;border:1px solid #cf7d1f;border-radius:999px;padding:2px 9px;vertical-align:1px;box-shadow:0 1px 2px rgba(230,145,56,.35)}
  .mk-carried b,.mk-carryfwd b{margin-left:3px;font-weight: 800}
  /* Moved on purpose is not carried-over-unfinished, so it does not wear the carry
     chip's amber. Same shape, navy: a decision the room took. */
  .mk-moved-in{background:var(--navy);border-color:var(--navy-deep);box-shadow:none}\n
  .cell-deliv{color:var(--ink)}
  .cell-who{white-space:nowrap}
  /* current-quarter marker row highlight (data rows stay white otherwise) */
  .md-table tr.cur td{background:#f3f7ff}
  /* settled history rows (done / moved / dropped / not-yet-started in a non-current quarter):
     text recedes to grey on a soft background, but the status pill keeps full color so the
     state stays readable -- we never wash the pill out with opacity. */
  .md-table tr.dim td{background:#fafbfc}
  /* ----- Sheet Map (Lampton pilot): navy FA bands + accordion objectives + marker tables.
         Collapsed row = number · title · Responsible · quarter dots · status. Expanded =
         the objective deliverable definition + an MD-style marker table with the standard
         Upload Deliverable control. Scoped under .shm-on so no other client changes. ----- */
  .shm-on .m-imp{margin:8px 0 52px}
  .shm-on .m-imp-head{background:var(--navy);border-radius:14px;padding:24px 26px;box-shadow:0 4px 14px rgba(19,27,85,.18)}
  .shm-on .m-imp-title,.shm-on h2.m-imp-title{font-size:var(--t-xl);line-height:1.18}
  .shm-on .m-imp-kicker{font-size:var(--t-xs);letter-spacing:.12em}
  .shm-on .m-imp-badge{background:#fff;color:var(--navy);box-shadow:none}
  .shm-on .m-imp-kicker{color:#ffd579}
  .shm-on .m-imp-title,.shm-on h2.m-imp-title{color:#fff}
  .shm-on input.m-imp-title{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.28);color:#fff;border-radius:8px}
  .shm-on .m-imp-def{color:rgba(255,255,255,.85)}
  .shm-on textarea.m-imp-defedit{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.28);color:#fff;border-radius:8px}
  .shm-on .m-focus{background:#ffd579;border-color:#ffd579}
  .shm-on .m-focus-lbl{color:#ffd579}
  .shm-on .m-focus-edit{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.28);color:#fff;border-radius:var(--r-sm)}
  .shm-on .m-imp-owner{color:rgba(255,255,255,.85)}
  .shm-on .m-imp-owner b{color:#fff}
  .shm-on .m-imp-owner .m-ownersel{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.3)}
  .shm-on .m-goals{margin-top:26px;gap:40px}
    /* A goal is a SECTION HEADER, not a card -- it used to be a white bordered box that
     competed with the objective cards below it (Lavon 2026-08-10). Now: kicker above
     the title, camel rule at the left, hairline underneath, page background. */
  .shm-goalstrip{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;
    margin:4px 0 22px;padding:2px 0 12px 14px;border-left:4px solid var(--camel);
    border-bottom:1px solid var(--line);background:none;font-size:var(--t-base)}
  .shm-goalhead{display:flex;flex-direction:column;gap:5px;min-width:0}
  .shm-goallbl{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--camel);white-space:nowrap}
  .shm-goalttl{font-weight:800;color:var(--navy);font-size:var(--t-lg);line-height:1.3}
  .shm-goalresp{color:var(--muted);font-weight:600;white-space:nowrap;font-size:var(--t-sm);padding-bottom:2px}
  /* Objective card, quieted (Lavon 2026-08-26). The drop shadow + 12px radius + 26px gap
     made 35 floating cards on a plan the size of Ergon's -- the "card look" that read as
     clutter. Now a hairline block on the page, with the caret as the only new control. */
  .shm-acc{background:#fff;border:1px solid var(--line);border-radius:8px;margin:0 0 12px}
  .shm-row{display:grid;grid-template-columns:22px 54px minmax(0,1fr) 190px 116px 128px;gap:12px;align-items:center;padding:11px 16px}
  /* Objectives are open by default now, so this only fires when you deliberately collapse
     one. Definitions have their own caret (.shm-defwrap) and are the real density lever. */
  .shm-acc.shm-closed .shm-body{display:none}
  .shm-acc.shm-closed .shm-row{padding-bottom:11px}
  /* ----- Collapsible definitions, goals and objectives alike (Lavon 2026-08-27) ----- */
  .shm-defwrap{margin:0 0 11px}
  .shm-deftog{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:2px 0;cursor:pointer;
    color:var(--muted);font:800 var(--t-xs)/1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
  .shm-deftog:hover{color:var(--navy)}
  .shm-deftog svg{transition:transform .12s ease;color:#a3adc2}
  .shm-deftog[aria-expanded="true"] svg{transform:rotate(90deg)}
  .shm-deftog:hover svg{color:var(--navy)}
  .shm-defwrap .shm-def{margin:7px 0 0}
  .shm-defwrap.shm-defclosed .shm-def{display:none}
  /* The goal definition hangs off the goal strip, indented to the same camel rule. */
  .shm-goalwrapstrip{margin:4px 0 22px}
  .shm-goalwrapstrip .shm-goalstrip{margin:0}
  .shm-goalwrapstrip .shm-defwrap{margin:9px 0 0;padding-left:14px}
  .shm-goalwrapstrip .shm-def-goal{border-left-color:var(--camel)}
  .shm-caret{border:0;background:transparent;padding:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;
    color:#94a0b8;cursor:pointer;border-radius:5px;transition:transform .12s ease,color .12s}
  .shm-caret:hover{background:#eef2fa;color:var(--navy)}
  .shm-caret[aria-expanded="true"]{transform:rotate(90deg)}
  .shm-ttl[data-action],.shm-def[data-action]{cursor:pointer}
  .shm-ttl[data-action]:hover{text-decoration:underline;text-underline-offset:3px}
  .shm-def[data-action]:hover{background:#f8fafd}
  .shm-mk b{cursor:pointer}
  .shm-ttl{font-weight:800;font-size:var(--t-base);line-height:1.35;color:var(--navy);min-width:0}
  .shm-own{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:#2c3345;white-space:nowrap;overflow:hidden}
  .shm-av{width:26px;height:26px;border-radius:50%;background:#e6ebf9;color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-size:var(--t-xs);font-weight:800;flex:none}
  .shm-stcell{display:flex;justify-content:flex-start}
  .shm-body{padding:2px 16px 14px;border-radius:0 0 8px 8px}
  /* Structural "+ Add" controls are editing chrome, not information: they appear on hover
     (and on keyboard focus) instead of sitting under every objective and goal. */
  .shm-addwrap{margin-top:8px;opacity:0;transition:opacity .12s}
  .shm-acc:hover .shm-addwrap,.shm-addwrap:focus-within{opacity:1}
  .shm-on .m-addobj{opacity:0;transition:opacity .12s}
  .shm-on .shm-goalwrap:hover .m-addobj,.shm-on .m-addobj:focus-within{opacity:1}
  @media(hover:none){.shm-addwrap,.shm-on .m-addobj{opacity:1}}
  .shm-def{border-left:3px solid var(--gold);padding:2px 0 2px 13px;margin:0 0 12px;font-size:var(--t-base);color:#333a4c;line-height:1.55;max-width:100ch}
  .shm-def ul{margin:7px 0 0 18px}
  .shm-def li{margin:2.5px 0}
  .shm-due{font-weight:800;color:var(--camel);white-space:nowrap}
  .shm-openbtn{font-weight:700;color:var(--navy);text-decoration:underline;cursor:pointer}
  .shm-tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;-webkit-overflow-scrolling:touch}
  .shm-tbl{border-collapse:collapse;width:100%;min-width:880px;font-size:var(--t-sm)}
  .shm-tbl th{background:var(--navy);color:#fff;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-align:left;padding:11px 14px;white-space:nowrap}
  .shm-tbl td{border-top:1px solid #e4e8f0;padding:15px 14px;vertical-align:top;line-height:1.5}
  .shm-tbl tr:first-child td{border-top:none}
  .shm-tbl tr.now td{background:#fdf8ec}
  .shm-tbl tr.dim .shm-mk b,.shm-tbl tr.dim .shm-mk .d,.shm-tbl tr.dim .shm-q,.shm-tbl tr.dim .shm-respnm{opacity:.62}
  .shm-q{white-space:nowrap;width:100px}
  .shm-qchip{display:inline-block;font-size:var(--t-xs);font-weight:800;letter-spacing:.04em;color:var(--navy);background:#e8ecf8;border-radius:5px;padding:3px 8px;white-space:nowrap}
  .shm-qchip.now{background:var(--gold);color:var(--navy)}
  .shm-mk b{display:block;font-size:var(--t-sm);margin-bottom:2px;cursor:pointer;color:var(--ink)}
  .shm-mk .d{display:block;color:#4c5566;font-size:12.5px}
  /* One bullet per row, everywhere a plan description is shown. */
  /* Two tiers of bullet, deliberately different (Lavon 2026-08-10). An objective's
     definition IS its content, so it keeps a solid disc at body size. A marker's
     description is supporting detail hanging off the bold marker title, so it uses
     a muted camel en-dash at a smaller size -- you can tell at a glance which level
     a line belongs to instead of two identical discs competing. */
  .shm-bul{margin:6px 0 0;padding-left:17px;list-style:disc}
  .shm-bul li{display:list-item;margin:0 0 5px;line-height:1.5;color:#4c5566;font-size:12.5px}
  .shm-bul li:last-child{margin-bottom:0}
  .shm-def .shm-bul li{font-size:var(--t-base);color:#333a4c;margin-bottom:7px}
  /* Marker sub-detail: dash, not disc. */
  .shm-mk .shm-bul{list-style:none;padding-left:2px;margin-top:5px}
  .shm-mk .shm-bul li{position:relative;padding-left:15px;font-size:var(--t-sm);color:#5b6474;margin-bottom:4px}
  .shm-mk .shm-bul li::before{content:'\2013';position:absolute;left:0;top:0;color:var(--camel);font-weight:800}
  .shm-deflead{display:block}
  .shm-chips{margin-top:5px;display:flex;gap:6px;flex-wrap:wrap}
  .shm-resp{white-space:nowrap;width:150px}
  .shm-respnm{font-weight:700;font-size:12.5px;margin-left:2px}
  .shm-st{width:135px}
  .shm-file{width:132px}
  /* Deliverable, reduced from a full-width button to an icon (Lavon 2026-08-26). Same
     actions -- upload, open, replace -- without 210 buttons competing with the plan. */
  .shm-deliv{display:inline-flex;align-items:center;gap:4px}
  .shm-deliv.none{font-size:var(--t-xs);color:#4a5286;font-weight:600}
  .shm-clip{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:28px;padding:0 9px;border-radius:var(--r-sm,8px);
    border:1px solid var(--line);background:#fff;color:#5a6272;cursor:pointer;text-decoration:none;font:700 var(--t-xs)/1 inherit;white-space:nowrap}
  .shm-clip.swap{padding:0 7px}
  .shm-clip:hover{border-color:var(--navy);color:var(--navy);background:#f4f7fd}
  .shm-clip.has{background:#eef3ff;border-color:#c3d3f2;color:var(--navy)}
  .shm-clip.swap{margin-left:0}
  .shm-clip.none{border:0;background:none;color:#b9c0cf;cursor:default;width:auto}
  /* Review mode: the newest note collapses to a count. Huddle still shows the full quote. */
  .shm-notechip{display:inline-flex;align-items:center;gap:4px;margin-top:5px;padding:2px 7px;border-radius:5px;
    border:1px solid var(--line);background:#fff;color:var(--muted);font:700 11px/1 inherit;cursor:pointer}
  .shm-notechip:hover{border-color:var(--navy);color:var(--navy)}
  .shm-notechip .nico{width:12px;height:12px;color:var(--camel);flex:none}
  .shm-empty{color:var(--muted);font-weight:600;text-align:center;padding:16px!important}

  /* ================= STATUS FILL RULE (Lavon 2026-08-27) =================
     The cell fills when the cell IS the datapoint. A row colours its control, not
     its background. A grid cell on the Roadmap carries a 2-5 word title, so filling
     it reads as a colour field. A list row here carries up to 127 characters -- a
     full sentence on saturated #FFFF00 or #5B21B6 is unreadable, which is why the
     row keeps a white background and takes its colour on a 3px left edge instead.
     Same palette, same controls; the fill differs for a stated reason.
     ====================================================================== */
  .shm-acc[data-status]{border-left:3px solid var(--line)}
  .shm-acc[data-status="on_track"]{border-left-color:#1155CC}
  .shm-acc[data-status="in_progress"]{border-left-color:#A4C2F4}
  .shm-acc[data-status="done"]{border-left-color:#52823D}
  .shm-acc[data-status="off_track"]{border-left-color:#FFFF00}
  .shm-acc[data-status="not_done"]{border-left-color:#990000}
  .shm-acc[data-status="move"]{border-left-color:#E69138}
  .shm-acc[data-status="on_hold"]{border-left-color:#5B21B6}
  .shm-acc[data-status="submitted"]{border-left-color:#674EA7}
  .shm-acc[data-status="not_started"]{border-left-color:#E2E8F0}
  /* Marker rows: border-left on a <tr> is dropped under border-collapse, so the edge
     lives on the first cell. */
  .shm-tbl tbody tr[data-status] td:first-child{border-left:3px solid transparent}
  .shm-tbl tbody tr[data-status="on_track"] td:first-child{border-left-color:#1155CC}
  .shm-tbl tbody tr[data-status="in_progress"] td:first-child{border-left-color:#A4C2F4}
  .shm-tbl tbody tr[data-status="done"] td:first-child{border-left-color:#52823D}
  .shm-tbl tbody tr[data-status="off_track"] td:first-child{border-left-color:#FFFF00}
  .shm-tbl tbody tr[data-status="not_done"] td:first-child{border-left-color:#990000}
  .shm-tbl tbody tr[data-status="move"] td:first-child{border-left-color:#E69138}
  .shm-tbl tbody tr[data-status="on_hold"] td:first-child{border-left-color:#5B21B6}
  .shm-tbl tbody tr[data-status="submitted"] td:first-child{border-left-color:#674EA7}
  .shm-tbl tbody tr[data-status="not_started"] td:first-child{border-left-color:#E2E8F0}

  /* ----- Review mode density (Lavon 2026-08-26) -----
     One marker used to occupy four stacked blocks: title, the full deliverable sentence as
     bullets, the newest note with author and timestamp, then the chips. Review clamps the
     supporting detail to a single line -- the full text is in the drawer, one click away,
     and Huddle mode still prints all of it. Nothing is deleted, only deferred. */
  .shm-review .shm-tbl td{padding:9px 14px}
  .shm-review .shm-mk .shm-bul{margin-top:3px}
  .shm-review .shm-mk .shm-bul li{margin-bottom:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .shm-review .shm-mk .shm-bul li:not(:first-child){display:none}
  .shm-review .shm-mk .d{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .shm-review .shm-def{margin-bottom:9px}
  .shm-review .shm-def .shm-bul li{margin-bottom:4px}
  .shm-review .m-goals{gap:26px}
  .shm-review .shm-goalstrip{margin:0 0 14px}
  /* Lean Discover (sheet clients): slim hero + phase tables */
  .shd-hero{display:flex;align-items:center;gap:16px;max-width:var(--content-max);margin:4px auto 20px;flex-wrap:wrap}
  .shd-hero h2{font-size:var(--t-xl);font-weight:800;color:var(--navy);margin:3px 0 0}
  .shd-count{margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 16px;font-size:var(--t-sm);font-weight:700;color:var(--muted);white-space:nowrap}
  .shd-count b{color:var(--navy);font-size:var(--t-lg);margin-right:5px}
  .shd-stage{max-width:var(--content-max);margin:0 auto 26px}
  /* Discover as FOLDERS (Lavon, 2026-09-19: "this page needs redesigning... what about
     the folder approach we use for the CC?"). Lifted from the Command Center's client
     Workspace (.ws-grid/.ws-tile/.ws-view) and snapped to this app's type scale, radii
     and 4px spacing grid. Prefix dws- so nothing collides with the CC names. */
  .dws{max-width:var(--content-max);margin:0 auto 32px}
  .dws-bar{margin:0 0 16px}
  .dws-bar input{width:100%;font:inherit;font-size:var(--t-md);font-weight:600;color:var(--navy);border:1px solid var(--line);border-radius:14px;padding:12px 16px;background:#fff}
  .dws-bar input:focus{outline:none;border-color:var(--gold,#C8950C)}
  .dws-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  @media (max-width:1000px){.dws-grid{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:520px){.dws-grid{grid-template-columns:1fr}}
  .dws-tile{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 20px 16px;text-align:left;cursor:pointer;font-family:inherit;transition:transform .12s,box-shadow .12s,border-color .12s}
  .dws-tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(19,27,85,.12);border-color:#92C0E9}
  .dws-tile.over{border-color:var(--gold,#C8950C);background:#FBF6E9}
  .dws-tile.empty{border-style:dashed}
  .dws-tile svg.dws-fold{width:64px;height:52px;display:block;margin-bottom:12px}
  .dws-tile b{display:block;font-size:var(--t-lg);color:var(--navy);line-height:1.3}
  .dws-tile .dws-sub{display:block;font-size:var(--t-sm);color:#4a5286;margin-top:4px;line-height:1.45}
  .dws-tile .dws-n{position:absolute;left:60px;top:36px;background:var(--gold,#C8950C);color:#fff;font-size:var(--t-xs);font-weight:800;border-radius:999px;padding:4px 8px;line-height:1;min-width:24px;text-align:center}
  .dws-tile .dws-tag{position:absolute;right:16px;top:16px;font-size:var(--t-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 8px;line-height:1}
  .dws-tag.conf{color:#8A6A00;background:#F3E7C6} .dws-tag.lead{color:#1155CC;background:#E8F0FB} .dws-tag.cap{color:#00863F;background:#EAF4EA}
  .dws-view{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 24px}
  .dws-back{font:800 var(--t-sm) inherit;font-family:inherit;color:#4a5286;background:none;border:0;cursor:pointer;padding:0;margin:0 0 12px}
  .dws-back:hover{color:var(--navy)}
  .dws-vh{display:flex;align-items:flex-start;gap:16px;margin-bottom:8px;padding-bottom:12px;border-bottom:1px solid #EEF0F7}
  .dws-vh h3{margin:0;font-size:var(--t-xl);font-weight:800;color:var(--navy)}
  .dws-vh p{margin:4px 0 0;color:#4a5286;font-size:var(--t-md)}
  .dws-vh .dws-vact{margin-left:auto;white-space:nowrap}
  .dws-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #EEF0F7;flex-wrap:wrap}
  .dws-row:last-child{border-bottom:0}
  .dws-ic{flex:0 0 52px;text-align:center;font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;padding:4px 0;border-radius:8px;background:#EEF0F7;color:var(--navy)}
  .dws-main{flex:1 1 220px;min-width:170px}
  .dws-main b{display:block;font-weight:700;color:var(--navy)}
  .dws-main .dws-meta{display:block;font-size:var(--t-sm);color:#4a5286}
  .dws-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
  .dws-empty{margin:12px 0;color:#4a5286;font-size:var(--t-md)}
  .dws-where{display:block;font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8A6A00;margin-bottom:2px}
  @media (max-width:760px){.dws-acts{width:100%;justify-content:flex-start}}
  .shd-stagehead{display:flex;align-items:baseline;gap:12px;margin:0 2px 10px;font-size:var(--t-md);color:var(--muted);font-weight:600}
  .shd-stagehead b{color:var(--navy);font-size:var(--t-xl);font-weight:800}
  .shd-no{background:var(--navy);color:#fff;border-radius:var(--r-sm);font-weight:800;font-size:var(--t-sm);padding:5px 12px;align-self:center}
  .shd-c{vertical-align:middle}
  /* One Ergon (Lampton Vision replacement) */
  .oe-wrap{max-width:var(--content-max);margin:6px auto 44px}
  .oe-head{display:flex;align-items:flex-end;gap:16px;margin:2px 2px 14px;flex-wrap:wrap}
  .oe-kicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--camel)}
  .oe-title{font-size:23px;font-weight:800;color:var(--navy);margin:3px 0 2px}
  .oe-sub{color:var(--muted);font-weight:600;font-size:13px}
  .oe-btn{margin-left:auto;display:inline-flex;align-items:center;gap:7px;background:var(--navy);color:#fff;font:700 12.5px/1 inherit;padding:11px 18px;border-radius:9px;text-decoration:none;white-space:nowrap}
  .oe-btn:hover{opacity:.92}
  .oe-posterlink{display:block}
  .oe-poster{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(16,24,64,.14);background:#fff}
  .shm-on .m-imp-eyebrow{display:flex;align-items:center;gap:12px}
  .shm-impedit{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border:1.5px solid rgba(255,255,255,.4);background:transparent;color:#fff;font:700 var(--t-xs)/1 inherit;padding:7px 13px;border-radius:8px;cursor:pointer}
  .shm-impedit:hover{background:rgba(255,255,255,.1)}
  .shm-impedit.on{background:#fff;color:var(--navy);border-color:#fff}
  .shm-tools{display:inline-flex;gap:7px}
  tr.shm-tr.filtered-out{display:none!important}
  /* Narrow screens: stack owner / quarter dots / status under the title instead of squeezing */
  @media(max-width:1080px){
    .shm-row{grid-template-columns:22px 44px minmax(0,1fr);row-gap:7px}
    .shm-caret{grid-column:1;grid-row:1;align-self:start}
    .shm-ttl{grid-column:3;grid-row:1}
    .shm-own,.shm-stcell{grid-column:3;justify-self:start}
  }
  .md-table tr.dim .md-qy,.md-table tr.dim .md-name,.md-table tr.dim .cell-deliv{color:#a2a8b6}
  .md-table tr.dim .md-note{color:#a2a8b6;background:#fbfcfd;border-color:#edeef3}
  .md-table tr.dim .m-ownersel{color:#a2a8b6;border-color:#edeef3}
  /* 90-Day Markers table header row: Blue Hen light blue, navy text for contrast; objective header stays navy */
  .md-table.mk-table th{background:var(--blue);color:var(--navy);border-right-color:rgba(19,27,85,.18)}
  .md-empty{color:var(--muted);font-style:italic;text-align:center}
  .m-owner{font-size:var(--t-sm);font-weight:700;color:var(--navy);white-space:nowrap}
  .m-owner.none{color:var(--muted);font-weight:500}
  /* Responsible dropdown (objectives + markers): change who owns the item inline */
  .m-ownersel{appearance:none;-webkit-appearance:none;border:1px solid var(--line);border-radius:8px;background-color:#fff;background-image:var(--caret-d);background-repeat:no-repeat;background-position:right 7px center;background-size:10px;padding:6px 22px 6px 11px;font-size:var(--t-sm);font-weight:700;color:var(--navy);cursor:pointer;max-width:100%;text-align:center;text-align-last:center}
  .m-ownersel.none{color:var(--muted);font-weight:500}
  .m-ownersel:hover{border-color:#cdd8f1}
  .m-ownersel:focus{outline:2px solid rgba(19,27,85,.3);outline-offset:1px}
  /* editable Notes cell */
  .md-note{width:100%;min-height:36px;resize:vertical;border:1px solid var(--line);border-radius:7px;padding:6px 8px;font:inherit;font-size:12.5px;line-height:1.4;color:var(--ink);background:#fff}
  .md-note:hover{border-color:#cdd8f1}
  .md-note:focus{outline:none;border-color:#9db4e8;box-shadow:0 0 0 2px rgba(157,180,232,.4)}
  .md-note::placeholder{color:#b8bccb}
  /* single "Upload Deliverable" control + uploaded-file state */
  .md-up{display:flex;flex-direction:column;align-items:center;gap:6px}
  .md-up-btn{display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
  .md-up-btn:hover{background:#26306f}
  .md-up-btn.replace{background:#fff;color:var(--muted);border:1.5px solid var(--line);padding:5px 10px;font-size:11px}
  .md-up-btn.replace:hover{border-color:#cdd8f1;color:var(--navy)}
  .md-up-file{display:inline-flex;align-items:center;gap:5px;max-width:158px;color:var(--navy);font-weight:700;font-size:12px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .md-up-file:hover{text-decoration:underline}
  .md-up-pending{font-size:9.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--submitted)}
  /* fully-colored Status control: one "button" tinted by the selected status */
  .m-status{appearance:none;-webkit-appearance:none;font-size:var(--t-sm);font-weight:800;border:none;border-radius:8px;padding:8px 24px 8px 12px;cursor:pointer;width:100%;max-width:170px;text-align:center;text-align-last:center;background-repeat:no-repeat;background-position:right 8px center;background-size:11px}
  .m-status:focus{outline:2px solid rgba(19,27,85,.35);outline-offset:1px}
  .m-status.s-on_track{background-color:#1155CC;color:#fff;background-image:var(--caret-w)}
  .m-status.s-off_track{background-color:#FFFF00;color:#1c2030;background-image:var(--caret-d)}
  .m-status.s-done{background-color:#52823D;color:#fff;background-image:var(--caret-w)}
  .m-status.s-not_done{background-color:#990000;color:#fff;background-image:var(--caret-w)}
  .m-status.s-in_progress{background-color:#A4C2F4;color:#1c2030;background-image:var(--caret-d)}
  .m-status.s-move{background-color:#E69138;color:#fff;background-image:var(--caret-w)}
  .m-status.s-on_hold{background-color:#5B21B6;color:#fff;background-image:var(--caret-w)}
  .m-status.s-delete{background-color:#434343;color:#fff;background-image:var(--caret-w)}
  .m-status.s-submitted{background-color:var(--submitted);color:#fff;background-image:var(--caret-w)}
  .m-status.s-not_started{background-color:#E2E8F0;color:#475569;background-image:var(--caret-d)}
  .m-status.s-na{background-color:#B8C0CC;color:#1c2030;background-image:var(--caret-d)}
  .m-status.s-none{background-color:#fff;color:var(--muted);border:1.5px solid var(--line);background-image:var(--caret-d)}
  /* Read-only status chip (lower access levels): same colored look as the select, no caret, no pointer. */
  .m-status.ro{display:inline-block;cursor:default;padding:8px 12px;background-image:none}
  /* Quick-status pill button (Strategy Map): the pill opens a menu in one tap. */
  button.m-status.mstat-btn{cursor:pointer;line-height:1.2}
  button.m-status.mstat-btn.open{outline:2px solid rgba(19,27,85,.35);outline-offset:1px}
  .mstat-pop{position:absolute;z-index:130;background:#fff;border:1px solid var(--line);border-radius:12px;
    box-shadow:0 14px 38px rgba(19,27,85,.24);padding:6px;min-width:194px;display:flex;flex-direction:column;gap:1px}
  .mstat-opt{display:flex;align-items:center;gap:9px;border:0;background:transparent;border-radius:8px;
    padding:9px 11px;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;text-align:left;width:100%}
  .mstat-opt:hover{background:#f3f6fc}
  .mstat-opt::before{content:'';width:24px;height:24px;border-radius:8px;flex:0 0 auto;background:#cbd5e1;box-shadow:inset 0 0 0 1px rgba(0,0,0,.10)}   /* a mini status button with its icon (2026-10-06) */
  .mstat-opt.on{background:#eef2fb}
  .mstat-opt.on::after{content:'';margin-left:auto;width:7px;height:12px;border:solid var(--navy);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translateY(-1px);flex:0 0 auto}
  .mstat-opt.s-on_track::before{background:#1155CC url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z'/%3E%3C/svg%3E") center/16px no-repeat}
  .mstat-opt.s-off_track::before{background:#FFFF00 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231c2030' d='M15 3H6.5c-.9 0-1.6.5-1.9 1.3l-2.5 6.2c-.1.3-.1.5-.1.8v1.9c0 1.1.9 2 2 2h5.6l-.8 4c-.1.5.1 1 .4 1.3l1 1 6.6-6.6c.4-.4.6-.9.6-1.4V5c0-1.1-.9-2-2-2zm4 0v12h3V3h-3z'/%3E%3C/svg%3E") center/16px no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
  .mstat-opt.s-done::before{background:#52823D url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5l5 5L20 6.5' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
  .mstat-opt.s-not_done::before{background:#990000 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3C/svg%3E") center/16px no-repeat}
  .mstat-opt.s-in_progress::before{background:#A4C2F4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231c2030' d='M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm1-17.93c3.94.49 7 3.86 7 7.93s-3.06 7.44-7 7.93V4.07z'/%3E%3C/svg%3E") center/16px no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
  .mstat-opt.s-not_started::before{background:#E2E8F0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23475569' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z'/%3E%3C/svg%3E") center/16px no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
  .mstat-opt.s-na::before{background:#B8C0CC url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231c2030' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z'/%3E%3C/svg%3E") center/16px no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
  .mstat-opt.s-ongoing::before{background:#884934 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z'/%3E%3C/svg%3E") center/16px no-repeat}
  .mstat-opt.s-move::before{background:#E69138 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E") center/16px no-repeat}
  .mstat-opt.s-on_hold::before{background:#5B21B6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E") center/16px no-repeat}
  .mstat-opt.s-delete::before{background:#434343 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E") center/16px no-repeat}
  .mstat-sep{height:1px;background:var(--line);margin:5px 4px}
  /* Full-text hover: a goal / objective / marker title shows the item's full wording in a
     floating tip (appended to body, so nothing clips it) — readable without opening the drawer. */
  .has-tip{cursor:help}
  /* Hover tips must clear every overlay they can be triggered from: the meeting runner
     (200), its modals (240), the info modal (260) and the item drawer (1201). At 140 the
     tip rendered BEHIND the runner, so objective hovers silently did nothing in a meeting
     -- and inside the drawer too (Lavon 2026-08-10). 1300 matches #wkTip, the other hover
     tip; both are pointer-events:none so they can never block a click. */
  .fulltip{position:absolute;z-index:1300;max-width:min(400px,calc(100vw - 48px));background:#1c2030;color:#fff;
    border-radius:10px;padding:10px 13px;box-shadow:0 12px 30px rgba(0,0,0,.28);pointer-events:none}
  .fulltip .ft-t{font-size:12.5px;font-weight:800;line-height:1.4}
  .fulltip .ft-b{font-size:11.5px;font-weight:500;line-height:1.5;margin-top:4px;color:#dfe3ef}
  .fulltip .ft-obj{font-size:11px;font-weight:700;line-height:1.45;margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.16);color:#a9c6f5}
  /* a carried marker's original row shows a static "Moved to Qx" pill (no dropdown) in move-orange */
  .mk-moved{display:inline-block;font-size:var(--t-sm);font-weight:800;border-radius:8px;padding:8px 12px;background:#E69138;color:#fff;max-width:170px;text-align:center;white-space:nowrap}
  /* a parked high-level decision (Move to next year / Delete) awaiting executive sign-off */
  .mk-pending{display:flex;flex-direction:column;align-items:center;gap:5px}
  .mk-pending .m-status{max-width:160px}
  .mk-pending-note{font-size:var(--t-xs);font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#884934}
  .mk-pending-req{font-size:11px;color:var(--muted)}
  .mk-appr-acts{display:flex;gap:6px;margin-top:1px}
  .mk-appr{font-size:11px;font-weight:800;border-radius:var(--r-sm);padding:5px 11px;cursor:pointer}
  .mk-appr.ok{background:#52823D;color:#fff;border:none}
  .mk-appr.ok:hover{background:#5c9444}
  .mk-appr.no{background:#fff;color:#990000;border:1.5px solid #990000}
  .mk-appr.no:hover{background:#fff5f5}
  .mk-appr-wait{font-size:11px;font-style:italic;color:var(--muted)}
  /* "Exec approved" chip on the name once a senior executive has signed off */
  .mk-appr-chip{display:inline-flex;align-items:center;gap:3px;margin-left:7px;font-size:var(--t-xs);font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#3d6a2e;background:#eaf4e3;border:1px solid #c5e0b4;border-radius:999px;padding:1px 8px;vertical-align:1px}
  /* decision modal (Move picker / approval confirm) */
  .dec-lede{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--ink)}
  .dec-target{margin:0 0 14px;padding:9px 12px;background:var(--cream);border:1px solid var(--line);border-radius:8px;font-weight:800;color:var(--navy);font-size:13px}
  .dec-q{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;font-size:14px;font-weight:700;color:var(--navy);background:#fff;margin-bottom:10px}
  .dec-hint{margin:0;font-size:12.5px;line-height:1.45;color:var(--muted)}
  .dec-flag{margin:12px 0 0;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#884934}
  .m-addobj{margin-top:14px}
  /* jump flash on a marker row */
  .md-table tr.flash td{animation:flashrow 1.7s ease-out}
  @keyframes flashrow{0%,35%{background:#fff7d6}100%{background:#fff}}

  /* ---------- This week ---------- */
  .week-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  .mini-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
  .mini-row:last-child{border-bottom:none}
  .mini-row .mr-name{flex:1}
  .mini-row .mr-val{font-weight:700;color:var(--navy)}
  /* trend + target beside a metric value (kpiTrendHTML) */
  .kt{display:inline-flex;align-items:center;gap:8px;flex:none}
  .kt-svg{display:block}
  .kt-d{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;color:#2a3160;background:#eef1fb;
    border-radius:999px;padding:2px 8px;line-height:1.3;white-space:nowrap}
  .kt-d.on{color:#fff;background:#52823D}
  .kt-d.off{color:#fff;background:#990000}
  .mw-it-right .kt{margin-right:8px}
  .sbd-trend{margin:12px 0 4px;background:var(--cream);border:1px solid var(--line);border-radius:11px;padding:12px 14px}
  .sbd-trend-h{font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#4a5286;margin-bottom:8px}
  .sbd-trend .kt-svg{width:100%;height:auto}
  .kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:6px}
  .kcol{background:#f4f1e8;border:1px solid var(--line);border-radius:12px;padding:10px;min-height:80px}
  .kcol h4{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:8px;display:flex;justify-content:space-between}
  .kcard{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 10px;margin-bottom:8px;box-shadow:var(--shadow)}
  .kcard .kt{font-size:13px;font-weight:500}
  .kcard .km{font-size:11px;color:var(--muted);margin-top:3px}
  .kcard .kfoot{display:flex;align-items:center;gap:6px;margin-top:8px}
  .kbtns{margin-left:auto;display:flex;gap:3px}
  .kbtns button{font-size:10px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:2px 6px;color:var(--muted)}
  .kbtns button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
  .kcard .kown{display:inline-flex;align-items:center;max-width:120px;height:22px;padding:0 9px;border-radius:11px;background:var(--navy);color:#fff;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kcard .kown.none{background:#e7e3d8;color:#4a4d62;font-weight:500}

  /* ---------- Parking ---------- */
  .pk-head{display:flex;justify-content:flex-end;margin-bottom:14px}
  .pk-add{display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;border:none;border-radius:var(--r-sm);padding:9px 16px;font-size:var(--t-sm);font-weight:600;cursor:pointer}
  .pk-add:hover{background:#0d1240}
  .pk-sec{font-size:var(--t-lg);font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--navy);margin:26px 0 12px;display:flex;align-items:center;gap:10px}
  .pk-sec:first-of-type{margin-top:0}
  .pk-count{font-size:var(--t-sm);font-weight:700;color:var(--navy);background:#eef1fb;border-radius:999px;padding:2px 9px}
  .pk-empty{font-size:var(--t-sm);color:var(--muted);padding:0 2px 8px}
  .pk{display:flex;gap:14px;padding:14px 16px;margin-bottom:10px;align-items:flex-start}
  .pk .pk-body{flex:1}
  .pk .pk-title{font-weight:600;font-size:var(--t-lg)}
  .pk .pk-ctx{font-size:var(--t-sm);color:var(--muted);margin:4px 0 8px;white-space:pre-line} /* notes keep their line breaks (AHM's facility topics, 2026-09-24) */
  .pk .pk-tags{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .pk-acts{display:flex;flex-direction:column;gap:6px;align-self:center;flex:0 0 auto}
  .pk-act{font-size:var(--t-xs);font-weight:700;border:none;border-radius:var(--r-sm);padding:6px 14px;cursor:pointer;white-space:nowrap;text-align:center;color:#fff;transition:background .12s}
  .pk-act.pk-todo{background:var(--navy)}
  .pk-act.pk-todo:hover{background:#0d1240}
  .pk-act.pk-edit{background:var(--camel)}
  .pk-act.pk-edit:hover{background:#6f3a2a}
  .pk-act.pk-ok{background:#52823D}
  .pk-act.pk-ok:hover{background:#5a9142}
  .pk-act.pk-rm{background:#990000}
  .pk-act.pk-rm:hover{background:#7a0000}
  /* Strategy Map inline add/edit controls */
  .t-edit{margin-left:8px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--line);background:#fff;border-radius:7px;color:var(--muted);cursor:pointer;flex:0 0 auto;vertical-align:middle;padding:0}
  .t-edit:hover{border-color:var(--navy);color:var(--navy);background:#eef1fb}
  /* ----- notes + change-history affordances ----- */
  .ent-meta{display:inline-flex;align-items:center;gap:3px;margin-left:6px;vertical-align:middle}
  .ent-note,.ent-hist{display:inline-flex;align-items:center;gap:4px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;border-radius:var(--r-sm);padding:2px 6px;font-family:inherit;font-size:11px;font-weight:700;line-height:1.4}
  .ent-note:hover,.ent-hist:hover{border-color:var(--line);background:#fff;color:var(--navy)}
  .ent-note svg,.ent-hist svg{flex:0 0 auto}
  .ent-note.has{color:var(--navy)}
  .ent-note .enb-n{font-size:var(--t-xs);font-weight:800;background:var(--blue);color:var(--navy);border-radius:999px;min-width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}
  .ent-hist{font-weight:600}
  .ent-hist.compact{padding:2px 5px}
  .ent-hist span{white-space:nowrap;max-width:170px;overflow:hidden;text-overflow:ellipsis}
  .kfoot .ent-meta,.pk-meta .ent-meta,.s-meta .ent-meta{margin-left:0}
  .pk-meta{margin-top:8px}
  .s-meta{margin-top:9px}
  .seat .ent-note,.seat .ent-hist,.kcard .ent-note,.kcard .ent-hist{padding:2px 5px}
  @media(max-width:760px){.ent-hist span{display:none}}
  /* Per-row "needs attention" badge. One outlined chip; the visible word and the hover
     text both name the reason. Hue tracks the status it stands for: off track -> yellow
     family, not done -> red family, overdue -> amber. */
  .alert-badge{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;margin-left:7px;
    font-size:10.5px;font-weight:800;letter-spacing:.01em;line-height:1;white-space:nowrap;
    border:1px solid;border-radius:999px;padding:2px 7px 2px 5px;cursor:default}
  .alert-badge svg{flex:0 0 auto}
  .alert-badge.ab-off {color:#7a5b00;background:#fffceb;border-color:#e8d486}
  .alert-badge.ab-nd  {color:#7a1414;background:#fbeaea;border-color:#e3a3a3}
  .alert-badge.ab-over{color:#8a3a12;background:#fff3e8;border-color:#f0c39a}
  .alert-badge:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
  @media(max-width:760px){.alert-badge{padding:3px;border-radius:50%}.alert-badge .ab-w{display:none}}
  /* notes panel + change-history panel (inside #infoModal) */
  .np h3,.ch h3{font-family:var(--font-head);font-size:21px;color:var(--navy);margin-bottom:2px}
  .np-sub{font-size:12.5px;color:var(--muted);margin-bottom:16px}
  .np-sub b{color:var(--ink)}
  .np-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;max-height:46vh;overflow:auto}
  .np-empty{font-size:13px;color:var(--muted);padding:14px;text-align:center;background:var(--cream);border-radius:10px}
  .note-item{border:1px solid var(--line);border-radius:11px;padding:11px 13px;background:#fff}
  .note-item.editing{background:var(--cream)}
  .ni-body{font-size:13.5px;color:var(--ink);line-height:1.5;white-space:pre-wrap;word-break:break-word}
  .ni-meta{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11.5px;color:var(--muted)}
  .ni-who{font-weight:700;color:var(--navy)}
  .ni-acts{margin-left:auto;display:inline-flex;gap:6px}
  .ni-acts button{background:none;border:none;color:var(--muted);font-size:11.5px;font-weight:700;cursor:pointer;padding:2px 4px;font-family:inherit}
  .ni-acts button:hover{color:var(--navy);text-decoration:underline}
  .ni-edit{width:100%;min-height:64px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13.5px;font-family:inherit;resize:vertical}
  .ni-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
  .np-add{border-top:1px solid var(--line);padding-top:14px}
  .np-add textarea{width:100%;min-height:70px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;font-family:inherit;resize:vertical}
  .np-addfoot{display:flex;justify-content:flex-end;margin-top:10px}
  .np-btn{background:var(--navy);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
  .np-btn:hover{background:var(--navy-soft)}
  .np-btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}
  .np-btn.ghost:hover{background:var(--cream)}
  .ch-list{display:flex;flex-direction:column}
  .ch-item{padding:12px 0;border-top:1px solid var(--line)}
  .ch-item:first-child{border-top:none}
  .ch-top{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}
  .ch-who{font-weight:700;color:var(--navy);font-size:13px}
  .ch-sys{color:var(--muted);font-weight:600;font-style:italic}
  .ch-when{font-size:11.5px;color:var(--muted)}
  .ch-act{font-size:12.5px;color:var(--muted);font-weight:600}
  .ch-field{display:flex;align-items:center;gap:8px;font-size:12.5px;margin:3px 0;flex-wrap:wrap}
  .chf-name{font-weight:700;color:var(--ink);min-width:108px}
  .chf-from{color:var(--muted);text-decoration:line-through}
  .chf-arrow{color:var(--muted)}
  .chf-to{color:var(--navy);font-weight:600}
  .chf-from em,.chf-to em{font-style:italic;text-decoration:none;color:var(--muted)}
  .t-add{margin:8px 0 4px;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--navy);background:#eef1fb;border:1px solid #cdd8f1;border-radius:8px;padding:6px 13px;cursor:pointer}
  .t-add:hover{background:#e0e7f9;border-color:#b3c3ee}
  .modal-row{display:flex;gap:12px}
  .modal-row>div{flex:1;min-width:0}
  .dur-field{display:flex;align-items:center;gap:9px}
  .dur-field input{width:120px}
  .dur-unit{color:var(--muted);font-weight:600}
  .dur-echo{margin-top:8px;font-weight:700;color:var(--navy);min-height:18px}
  .dur-rec{margin:10px 0 6px;color:var(--muted);font-size:13px;line-height:1.5}
  .lnk{background:none;border:none;color:var(--navy);font-weight:700;text-decoration:underline;cursor:pointer;padding:0;font-size:13px}

  /* Past Meetings and the items waiting to be placed sit side by side: the list
     had a 1fr title column stretched across 1180px with "View" marooned at the far
     right, which is where all the white space came from (Lavon, 2026-09-05). */
  .mt-split{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:20px;align-items:start;margin-top:32px}
  .mt-split .pm-wrap{margin-top:0}
  .mt-split .fm-wrap{margin:0}
  @media(max-width:1040px){ .mt-split{grid-template-columns:1fr} }

  /* How the notetaker works — folded by default, opens inline. */
  /* Reference, not a warning: blue family, so it never reads like the gold
     "ready to place" items further down the page (Lavon, 2026-09-05). */
  .mt-help{margin:0 0 16px;background:#F6F8FD;border:1px solid #cdd8f1;border-left:4px solid var(--ink-blue);
    border-radius:var(--r-md,14px);box-shadow:var(--shadow);padding:0 20px}
  .mt-help summary{font-size:var(--t-base);font-weight:700;color:var(--navy);cursor:pointer;padding:16px 0;
    list-style:none;display:flex;align-items:center;gap:12px}
  .mt-help-k{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;
    background:var(--navy);border:1px solid var(--navy);border-radius:var(--r-pill,999px);padding:4px 12px;flex:none}
  .mt-help summary::-webkit-details-marker{display:none}
  .mt-help summary::before{content:"";width:0;height:0;border-left:6px solid var(--ink-blue);
    border-top:5px solid transparent;border-bottom:5px solid transparent;transition:transform .15s;flex:none}
  .mt-help[open] summary::before{transform:rotate(90deg)}
  .mt-help-body{padding:0 0 20px;font-size:14px;line-height:1.55;color:#2a3160}
  .mt-help-body>p:first-child{max-width:90ch;margin-bottom:16px}
  .mt-help-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px 40px;align-items:start}
  .mt-help-cols>ol{margin:0}
  @media(max-width:820px){ .mt-help-cols{grid-template-columns:1fr} }
  .mt-help-body p{margin:0 0 12px}
  .mt-help-cols>div>p:last-child{margin-bottom:0}
  .mt-help-body ol{margin:0 0 12px;padding-left:22px}
  .mt-help-body li{margin-bottom:8px}
  .mt-help-plat{margin:0 0 12px;padding-left:20px;list-style:disc}   /* nested lists default to hollow circles */
  .mt-help-body li>.mt-help-plat{margin:8px 0 0}
  .mt-help-plat li{margin-bottom:4px}
  .mt-help-body b{color:var(--navy)}
  .mt-help-note{font-size:12.5px;color:#4a5286}
  @media(prefers-reduced-motion:reduce){ .mt-help summary::before{transition:none} }


  /* ---- phones: one column, full-width controls, thumb-sized targets ----
     The item panel's three-column control grid gave two 150px selects and a
     date box you had to aim at; Past Meetings rows squeezed four columns into
     375px (Lavon, 2026-09-05). Under 480px everything stacks. */
  @media(max-width:480px){
    .fm-wrap{padding:16px 16px 12px;border-left-width:4px}
    .fm-head h2{font-size:var(--t-lg)}
    .fm-t{font-size:var(--t-md)}
    /* The desktop rule pins these to columns 1 and 2 by name; on a phone every
       control takes the full row, so the pins have to lose here. */
    .fm-ctl{grid-template-columns:1fr !important;gap:8px}
    .fm-ctl>*{grid-column:1/-1 !important;grid-row:auto !important}
    .fm-ctl select,.fm-ctl input,.fm-ctl .fm-add{width:100%;min-height:44px;font-size:var(--t-md)}
    .fm-ctl .fm-skip{justify-self:end;min-height:32px;padding:4px 8px}
    .pm-row{grid-template-columns:1fr;gap:8px;padding:12px 16px}
    .pm-stats{justify-content:flex-start}
    .pm-acts{justify-content:flex-start;flex-wrap:wrap}
    .pm-acts .fq-peek,.pm-acts .rc-del{min-height:40px}
    .mt-help summary{font-size:var(--t-md);padding:12px 0}
    .mt-help{padding:0 16px}
    .mt-split{gap:16px;margin-top:20px}
    .mt-side{gap:16px}
    .dm-wrap{padding:16px 16px 12px;border-left-width:4px}
    .dm-head h2{font-size:var(--t-md)}
    .mt-start{width:100%;min-height:44px}
    .mt-act{width:100%}
  }


  /* ---- phones, app-wide (≤480px) --------------------------------------
     Measured 2026-09-05 at 375px: Tracker rows 284px too wide (fixed-width
     cells in a non-wrapping flex row), the Weekly Dashboard's stage pills 238px
     too wide, the transition-plan panel 261px too wide, tables on Home and
     Financials pushing the page sideways, and hundreds of controls under 32px.
     Nothing here touches desktop. */
  @media(max-width:480px){
    /* tap targets */
    .view button:not(.spr-rec):not(.ai-x):not(.fm-skip):not(.rc-del):not(.mstat-btn),
    .view select,.view input:not([type=checkbox]):not([type=radio]){min-height:40px}
    .view .pill,.view .st-pill,.view .mk-due,.view .pm-chip{font-size:var(--t-xs)}
    /* long words and fixed widths never push the page sideways */
    .view .card,.view .mw-item,.view .mw-it-right,.view .mini-row,.view .tk-row{min-width:0;max-width:100%;overflow-wrap:anywhere}
    /* any table not already inside a scroller scrolls on its own */
    #view-home table,#view-financials table,#view-week table,#view-weekly table{display:block;overflow-x:auto;width:100%;max-width:100%;-webkit-overflow-scrolling:touch}
    /* Tracker: title on its own line, the meta cells on the next */
    #view-tracker .tk-row{flex-wrap:wrap;gap:8px 12px;padding:12px}
    #view-tracker .tk-row>*{flex:0 0 auto}
    #view-tracker .tk-row .tk-title,#view-tracker .tk-row .tk-name,#view-tracker .tk-row .tk-t{flex:1 1 100%;min-width:0}
    #view-tracker .tk-due{width:auto;text-align:left}
    /* Weekly Dashboard: the stage pills wrap instead of running off the edge */
    .rt-row{flex-wrap:wrap;border-radius:var(--r-md);padding:4px}
    .rt-b{padding:8px 12px}
    /* Transition plan: the panel is the full width, not its content's width; the
       steps table inside it (530px) scrolls sideways instead of being clipped */
    :is(#view-map,.spr-map) .pm-panel,:is(#view-map,.spr-map) .rmv{width:100%;max-width:100%}
    :is(#view-map,.spr-map) .pm-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
    :is(#view-map,.spr-map) .pm-steps{min-width:480px}
    /* Tracker: the title block takes the whole first line */
    /* the tracker's own <style> block loads after this sheet, so these need weight */
    #view-tracker .tk-row .tk-main{flex:1 1 100% !important;min-width:0 !important;width:100% !important}
    #view-tracker .tk-row .tk-title{white-space:normal !important}
    :is(#view-map,.spr-map) .pm-tab{padding:10px 12px;font-size:var(--t-sm)}
    /* Equipment: compact rows (184 items) */
    #view-equipment .eq-row{padding:8px 12px;gap:8px}
  }


  /* ---- plan-state notice (gold: the plan is moving, not a failure) ----
     Solid fills only, no gradient: this sits at the top of a client screen and a
     faded panel is the first thing that reads as generated. Gold is the brand
     accent here, not a status colour -- nothing on this banner is a status. */
  .pnote{display:flex;gap:16px;align-items:flex-start;background:#FDF8EC;border:1px solid #E7D5A4;
    border-left:5px solid var(--gold);border-radius:var(--r-md);box-shadow:var(--shadow);
    padding:20px 24px;margin:0 0 20px}
  .pnote-ico{flex:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;
    border-radius:var(--r-sm);background:var(--gold);color:#fff}
  .pnote-ico svg{width:19px;height:19px}
  .pnote-b{min-width:0}
  .pnote-b b{display:block;font-family:var(--font-head);font-size:var(--t-lg);font-weight:800;color:var(--navy);
    letter-spacing:-.01em}
  .pnote-b p{margin:4px 0 0;font-size:var(--t-md);line-height:1.55;color:#4A4432;max-width:78ch}
  @media(max-width:640px){
    .pnote{gap:12px;padding:16px;border-left-width:4px}
    .pnote-ico{width:28px;height:28px}
    .pnote-ico svg{width:16px;height:16px}
    .pnote-b b{font-size:var(--t-md)}
    .pnote-b p{font-size:var(--t-sm)}
  }
  /* ---- first-run walkthrough (blue: reference, not a warning) ---- */
  .wt{background:#F6F8FD;border:1px solid #cdd8f1;border-left:4px solid var(--ink-blue);border-radius:var(--r-md);
    box-shadow:var(--shadow);padding:20px 24px;margin:0 0 20px}
  .wt-head{display:flex;align-items:center;gap:12px}
  .wt-head h2{font-size:var(--t-xl);color:var(--navy);margin:0;flex:1}
  .wt-k{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--navy);
    border-radius:var(--r-pill);padding:4px 12px;flex:none}
  .wt-x{font:inherit;font-size:20px;line-height:1;color:#4a5286;background:none;border:0;cursor:pointer;padding:4px 8px;box-shadow:none}
  .wt-lede{font-size:var(--t-md);color:#2a3160;margin:8px 0 16px;max-width:70ch}
  .wt-prog{font-size:var(--t-sm);font-weight:800;color:var(--ink-blue);background:#fff;border:1px solid #cdd8f1;border-radius:999px;padding:4px 12px;white-space:nowrap}
  .wt-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .wt-step{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px}
  .wt-step.done{background:#F3F8F0;border-color:#c9dfb9}
  .wt-chk{flex:0 0 auto;width:24px;height:24px;border-radius:50%;border:2px solid #cdd8f1;display:inline-flex;align-items:center;justify-content:center;font-size:var(--t-sm);font-weight:900;color:#fff}
  .wt-step.done .wt-chk{background:var(--green,#52823D);border-color:var(--green,#52823D)}
  .wt-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
  .wt-body b{color:var(--navy);font-size:var(--t-base)}
  .wt-body span{font-size:var(--t-sm);line-height:1.5;color:#2a3160}
  .wt-step i{font-style:normal;font-size:var(--t-xs);font-weight:800;color:#3d7a2a;white-space:nowrap}
  .wt-go{font:inherit;font-size:var(--t-xs);font-weight:800;color:var(--ink-blue);background:#fff;border:1px solid var(--ink-blue);border-radius:999px;padding:8px 12px;cursor:pointer;white-space:nowrap}
  .wt-go:hover{background:var(--ink-blue);color:#fff}
  .wt-foot{display:flex;justify-content:flex-end;margin-top:16px}
  .sb-help{font:inherit;font-size:var(--t-sm);font-weight:700;color:#cdd3f0;background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 12px;cursor:pointer;margin-bottom:8px}
  .sb-help:hover{color:#fff;border-color:rgba(255,255,255,.4)}
  .hp{max-height:64vh;overflow:auto;padding-right:4px}
  .hp h4{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4a5286;margin:16px 0 8px}
  .hp h4:first-child{margin-top:0}
  .hp p{font-size:var(--t-base);line-height:1.55;color:#2a3160;margin:0}
  .hp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
  .hp-list li{display:flex;flex-direction:column;gap:0;font-size:var(--t-sm);line-height:1.45;color:#2a3160}
  .hp-list li b{color:var(--navy);font-size:var(--t-base)}
  .hp-again{width:auto;margin-top:16px}
  @media(max-width:640px){ .wt{position:relative} .wt-steps{grid-template-columns:1fr} .wt-head{flex-wrap:wrap;padding-right:40px} .wt-head h2{flex:1 1 100%;min-width:0} .wt-go,.wt-x{min-height:40px;min-width:40px} .wt-x{position:absolute;top:8px;right:8px;font-size:var(--t-xl)} }
  .wt-done{width:auto;padding:12px 16px}
  @media(max-width:900px){ .wt-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
  @media(max-width:480px){ .wt{padding:16px} .wt-grid{grid-template-columns:1fr} .wt-foot{justify-content:stretch} .wt-done{width:100%} }


  /* phone: Scoreboard sections fold behind their labels */
  @media(max-width:480px){
    #view-home .mdx .mdx-fold-h{display:flex;align-items:center;gap:8px;cursor:pointer;min-height:44px;padding:8px 0}
    #view-home .mdx .mdx-fold-h::before{content:"";width:0;height:0;border-left:6px solid var(--ink-blue);border-top:5px solid transparent;border-bottom:5px solid transparent;transition:transform .15s}
    #view-home .mdx .mdx-fold-h.open::before{transform:rotate(90deg)}
    #view-home .mdx .mdx-folded{display:none !important}
  }

  /* ---------- Meetings ----------
     One panel, one row per meeting. Three equal cards, each with its whole agenda
     printed under a full-width button, gave every element the same weight and read
     as filler rather than a schedule (Lavon, 2026-09-05). The date leads in the
     numeral face because it is what the page is looked at for. */
  .mt-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md,14px);
    box-shadow:var(--shadow);overflow:hidden}
  .mt-row{display:grid;grid-template-columns:104px 1fr auto;gap:20px;align-items:start;
    padding:20px;border-top:1px solid var(--line)}
  .mt-panel[data-reorder] .mt-row{grid-template-columns:24px 104px 1fr auto;gap:16px}
  .mt-row:first-child{border-top:0}
  .mt-date{text-align:center}
  .mt-dow{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4a5286}
  .mt-dnum{font-family:var(--font-num);font-size:var(--t-lg);line-height:1.15;color:var(--navy);
    font-variant-numeric:tabular-nums;white-space:nowrap}
  .mt-dnum.mt-none{color:#4a5286}   /* was #8890bb — 3.11 on white at 16.5px (2026-09-12 QC) */
  .mt-time{font-size:11px;font-weight:700;color:#4a5286}
  .mt-main{min-width:0}
  .mt-main h3{font-size:16.5px;color:var(--navy);margin:0}
  .mt-act{display:flex;align-items:flex-start}
  .mt-start{font:inherit;font-size:12.5px;font-weight:700;color:#fff;background:var(--navy);
    border:1px solid var(--navy);border-radius:var(--r-sm,8px);padding:8px 16px;cursor:pointer;
    white-space:nowrap;box-shadow:none;min-width:192px;text-align:center}
  .mt-start:hover{background:#2a3160;border-color:#2a3160}
  .mt-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}
  .mt-len{font-size:var(--t-sm);font-weight:700;color:#2a3160}
  .mt-room{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:var(--t-xs)}
  .mt-room-l{font-weight:700;color:#4a5286}
  .mt-room-v{font-weight:700;color:var(--navy);background:#eef1fb;border:1px solid #cdd8f1;
    border-radius:var(--r-pill,999px);padding:2px 10px;max-width:280px;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap}
  .mt-ag{margin-top:12px}
  .mt-ag summary{font-size:var(--t-xs);font-weight:700;color:#4a5286;cursor:pointer;
    list-style:none;display:inline-flex;align-items:center;gap:8px}
  .mt-ag summary::-webkit-details-marker{display:none}
  .mt-ag summary::before{content:"";width:0;height:0;border-left:5px solid currentColor;
    border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}
  .mt-ag[open] summary::before{transform:rotate(90deg)}
  .mt-ag summary:hover{color:var(--navy)}
  @media(max-width:700px){
    .mt-row{grid-template-columns:1fr;gap:12px}
    .mt-date{display:flex;align-items:baseline;gap:8px;text-align:left}
    .mt-dnum{font-size:var(--t-lg)}
  }
  @media(prefers-reduced-motion:reduce){ .mt-ag summary::before{transition:none} }
  /* #E69138 on #fdf1e3 measured 2.23 at 11px — the Move hue is unreadable as small text
     on its own tint, and the canonical Move pill pair only reaches 3.76. Darkened within
     the same hue to 6.48 (2026-09-12 QC). */
  .mt-resched{margin-left:8px;font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#8a4405;background:#fdf1e3;border-radius:var(--r-sm);padding:2px 7px}
  .mt-setdate{border:0;background:transparent;color:var(--navy);font-weight:700;font-size:var(--t-sm);padding:2px 0;margin-right:14px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .mt-setdate:hover{color:var(--blue)}
  .mt-setdur{font-size:11px;font-weight:700;color:var(--navy);background:#eef1fb;border:1px solid #cdd8f1;border-radius:var(--r-sm);padding:3px 10px;cursor:pointer}
  .mt-setdur:hover{background:#e0e7f9;border-color:#b3c3ee}
  .mt-custom{font-size:var(--t-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#884934;background:#f3e9e2;border-radius:5px;padding:2px 7px}
  .mt-main .mt-purpose{font-size:var(--t-sm);color:#4a5286;margin-top:4px;line-height:1.5}
  /* ---- meetings the client added themselves (2026-09-12) ----
     A client's own meeting sits in the same list as the three house meetings and
     reads the same way; the only marks of difference are the frequency chip next to
     the title and the pair of edit controls, so the page stays one schedule rather
     than two. */
  .mt-freq{margin-left:8px;font-size:var(--t-xs);font-weight:800;letter-spacing:.04em;
    text-transform:uppercase;color:var(--navy);background:#eef1fb;border:1px solid #cdd8f1;
    border-radius:var(--r-pill,999px);padding:0 8px;line-height:1.8;vertical-align:2px;
    display:inline-block}
  .mt-row.mt-past{background:#fafbfe}
  .mt-resched.mt-held{color:#4a5286;background:#eef1fb}
  .mt-setdate.mt-rm{color:#9B2C2C}
  .mt-setdate.mt-rm:hover{color:#7a2020}
  .mt-setdate.armed{color:#fff;background:#9B2C2C;border-radius:var(--r-sm,8px);
    padding:4px 8px;text-decoration:none}
  .mt-addbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
    padding:16px 20px;border-top:1px solid var(--line);background:#fafbfe}
  .mt-addbtn{font:inherit;font-size:12.5px;font-weight:700;color:var(--navy);background:#eef1fb;
    border:1px solid #cdd8f1;border-radius:var(--r-sm,8px);padding:8px 16px;cursor:pointer;white-space:nowrap}
  .mt-addbtn:hover{background:#e0e7f9;border-color:#b3c3ee}
  .mt-addsub{font-size:var(--t-sm);color:#4a5286;line-height:1.5}
  /* Past Meetings, one fold per quarter. The quarter in progress is open; the rest are a
     single line each, so three years of weekly sprints is a dozen rows rather than 200. */
  .pm-q{border-top:1px solid var(--line)}
  .pm-q:first-of-type{border-top:0}
  .pm-q>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;
    padding:12px 4px;font-size:var(--t-sm);font-weight:800;color:var(--navy)}
  .pm-q>summary::-webkit-details-marker{display:none}
  .pm-q>summary::before{content:"";flex:none;width:0;height:0;border-left:5px solid currentColor;
    border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}
  .pm-q[open]>summary::before{transform:rotate(90deg)}
  .pm-q>summary:hover{color:var(--blue)}
  .pm-q-n{margin-left:auto;font-size:var(--t-xs);font-weight:700;color:#4a5286}
  @media(prefers-reduced-motion:reduce){ .pm-q>summary::before{transition:none} }
  /* The source line, same idea and same wording as the Scoreboard's exhibit footers. */
  .pg-srcrow{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
    margin:28px 0 8px;padding-top:8px;border-top:1px solid var(--line)}
  .pg-src{font-size:var(--t-xs);color:#4a5286;margin-right:auto}
  .pg-print{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:var(--t-sm);
    font-weight:700;color:var(--navy);background:#fff;border:1px solid #cdd8f1;
    border-radius:var(--r-sm,8px);padding:8px 12px;cursor:pointer}
  .pg-print:hover{background:#eef1fb;border-color:var(--navy)}
  /* ---- dragging the cards into order (2026-09-12) ----
     The grip is quiet until the row is hovered or the grip itself has focus, so the
     page still reads as a schedule rather than as a list of handles. */
  /* The grip is always on screen. Hiding it until hover meant opening the page and
     seeing nothing to take hold of (Lavon, 2026-09-12) -- an affordance nobody can
     find is not an affordance. The whole card drags; the grip is what says so. */
  .mt-grip{display:flex;align-items:center;justify-content:center;width:24px;height:32px;
    padding:0;border:0;background:transparent;color:#8890bb;border-radius:var(--r-sm,8px);
    cursor:grab;touch-action:none;transition:color .12s,background .12s}
  .mt-row:hover .mt-grip{color:var(--navy)}
  .mt-grip:hover{color:var(--navy);background:#eef1fb}
  .mt-grip:active{cursor:grabbing}
  .mt-grip-none{width:24px}
  /* The card itself is the handle, so it says so under the cursor -- except over the
     controls and the room link, which stay a pointer and stay clickable. */
  .mt-panel[data-reorder] .mt-row[data-mid]{cursor:grab;touch-action:pan-y}
  .mt-panel[data-reorder] .mt-row[data-mid] button,
  .mt-panel[data-reorder] .mt-row[data-mid] a,
  .mt-panel[data-reorder] .mt-row[data-mid] summary{cursor:pointer}
  .mt-panel[data-reorder] .mt-row[data-mid] .mt-room{cursor:auto}
  /* The lifted row follows the pointer; the placeholder holds its slot. */
  .mt-lift{position:fixed;z-index:60;box-shadow:0 12px 28px rgba(26,32,68,.18);
    background:var(--card);border-radius:var(--r-md,14px);border-top-color:transparent;
    pointer-events:none;cursor:grabbing}
  .mt-ph{border-top:1px solid var(--line);background:#eef1fb;border-radius:var(--r-sm,8px)}
  body.mt-dragging{cursor:grabbing;user-select:none}
  body.mt-dragging .mt-grip{opacity:1}
  @media(max-width:700px){
    .mt-panel[data-reorder] .mt-row{grid-template-columns:24px 1fr}
    /* The handle keeps the narrow left column; date, meeting and buttons stack in the wide one.
       Without this the meeting text fell into the 24px column, one word per line (2026-10-16). */
    .mt-panel[data-reorder] .mt-row>:not(.mt-grip):not(.mt-grip-none){grid-column:2}
    .mt-panel[data-reorder] .mt-row>.mt-grip,.mt-panel[data-reorder] .mt-row>.mt-grip-none{grid-column:1;grid-row:1}
  }
  @media(prefers-reduced-motion:reduce){ .mt-grip{transition:none} }
  .agenda{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
  .agenda .ag{display:flex;justify-content:space-between;font-size:12.5px;padding:4px 0}
  .agenda .ag b{color:var(--navy)}

  /* ---------- Org chart (CSS tree) ---------- */
  .org-head{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:6px}
  .org-title{margin-right:auto;font-size:var(--t-lg);font-weight:800;color:var(--navy)}
  .org-count{font-size:var(--t-sm);font-weight:800;color:var(--navy);background:#eef1fb;border:1px solid #cdd8f1;border-radius:var(--r-md);padding:5px 14px}
  .org-expand{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:700;color:var(--navy);background:#fff;border:1px solid #cdd8f1;border-radius:var(--r-md);padding:5px 14px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
  .org-expand:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
  #orgPane.org-full{position:fixed;inset:0;z-index:55;background:var(--cream);display:flex;flex-direction:column;padding:18px 22px}
  #orgPane.org-full .org-head{margin-bottom:12px}
  #orgPane.org-full .org-scroll{flex:1;overflow:auto;padding:8px 4px 28px}
  body.org-locked{overflow:hidden}
  .org-scroll{overflow-x:auto;padding:10px 4px 24px}
  .org-tree{display:inline-block;min-width:100%;text-align:center}
  .org-tree ul{position:relative;padding-top:24px;display:flex;justify-content:center;margin:0;list-style:none}
  .org-tree li{list-style:none;text-align:center;position:relative;padding:24px 6px 0}
  .org-tree li::before,.org-tree li::after{content:'';position:absolute;top:0;right:50%;border-top:2px solid var(--line);width:50%;height:24px}
  .org-tree li::after{right:auto;left:50%;border-left:2px solid var(--line)}
  .org-tree li:only-child::before,.org-tree li:only-child::after{display:none}
  .org-tree li:only-child{padding-top:0}
  .org-tree li:first-child::before,.org-tree li:last-child::after{border:0 none}
  .org-tree li:last-child::before{border-right:2px solid var(--line);border-radius:0 6px 0 0}
  .org-tree li:first-child::after{border-radius:6px 0 0 0}
  .org-tree ul ul::before{content:'';position:absolute;top:0;left:50%;border-left:2px solid var(--line);width:0;height:24px}
  .org-tree .seat{display:inline-block;vertical-align:top}
  .seat{position:relative;width:206px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:13px;text-align:center;box-shadow:var(--shadow)}
  .seat .s-role{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--camel)}
  .seat .s-person{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 0 5px}
  .seat .s-person b{color:var(--navy);font-size:var(--t-md)}
  .seat .s-acc{font-size:var(--t-xs);color:var(--muted);line-height:1.45}
  .seat-edit{position:absolute;top:6px;right:6px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--muted);border-radius:var(--r-sm);cursor:pointer;opacity:.4;transition:opacity .15s,background .15s,color .15s}
  .seat:hover .seat-edit{opacity:1}
  .seat-edit:hover{background:#eef1fb;color:var(--navy)}
  .seat-add{position:absolute;right:8px;bottom:-13px;width:26px;height:26px;border-radius:50%;border:1px solid #cdd8f1;background:#fff;color:var(--navy);font-size:var(--t-lg);font-weight:600;line-height:23px;text-align:center;padding:0;cursor:pointer;z-index:3;box-shadow:0 2px 6px rgba(19,27,85,.18);transition:background .15s,color .15s,border-color .15s}
  .seat-add:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
  .org-empty-wrap{padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
  .org-empty-wrap .muted{max-width:420px}
  /* Org chart documents (external/reference PDFs) */
  .ocf-card{margin-top:18px;padding:16px 18px}
  .ocf-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
  .ocf-head h3{font-size:var(--t-lg);color:var(--navy);margin:0}
  .ocf-up{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:700}
  .ocf-list{display:flex;flex-direction:column;gap:6px}
  .ocf-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff}
  .ocf-name{display:inline-flex;align-items:center;gap:8px;color:var(--navy);font-weight:700;font-size:var(--t-md);text-decoration:none;flex:1;min-width:0}
  .ocf-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ocf-name:hover{text-decoration:underline}
  .ocf-rm{border:0;background:transparent;color:var(--muted);padding:4px;border-radius:6px;cursor:pointer;display:flex;flex:0 0 auto}
  .ocf-rm:hover{color:#b3261e;background:#fbeceb}
  .ocf-empty{color:var(--muted);font-size:var(--t-sm);padding:8px 2px;line-height:1.5}
  .seat-under{margin:0 0 10px}
  .seat-hint{font-size:var(--t-xs);margin:8px 0 2px;line-height:1.4}
  .seat-remove{color:#990000;margin-top:10px}
  .seat-remove.armed{font-weight:800}
  label .opt{font-weight:400;color:var(--muted);font-size:11px}

  /* ---------- FAB + menu ---------- */
  #fab{position:fixed;right:26px;bottom:26px;z-index:40}
  .fab-btn{width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;border:none;font-size:28px;box-shadow:0 8px 24px rgba(19,27,85,.35);line-height:1}
  .fab-menu{position:absolute;right:0;bottom:68px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(19,27,85,.18);
    width:220px;overflow:hidden;display:none}
  .fab-menu.open{display:block}
  .fab-menu button{display:flex;width:100%;gap:10px;align-items:center;background:none;border:none;padding:11px 14px;font-size:13.5px;text-align:left;color:var(--ink)}
  .fab-menu button:hover{background:var(--cream)}
  .fab-menu .k{margin-left:auto;font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:0 5px}
  .fab-menu button svg{flex:0 0 16px;width:16px;height:16px}

  /* ---------- Modal + toast ---------- */
  #modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:rgba(10,15,48,.4)}
  body.runner-open #modal{z-index:240}   /* edit dialogs opened from the live runner sit above it */
  /* A form or confirm opened from inside the info window (a past meeting's record, notes, history) sits
     above it. "Make a to-do" on a meeting record opened underneath and looked dead (Lavon, 2026-10-15).
     :has() follows every way the window closes, so there is no class to forget to clear. */
  body:has(#infoModal.open) #modal{z-index:1300}
  #modal.open{display:flex}
  .modal-card{width:440px;max-width:94vw;background:#fff;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.3);overflow:hidden}
  .modal-card h3{padding:18px 20px 0;color:var(--navy);font-size:18px}
  .modal-body{padding:14px 20px}
  .modal-body label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:10px 0 4px}
  .modal-body input,.modal-body textarea,.modal-body select{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;font-family:inherit}
  .modal-body textarea{min-height:70px;resize:vertical}
  .cpw-lede{font-size:13px;color:var(--muted);margin:0 0 4px;line-height:1.45}
  /* Reset-demo confirm copy */
  .rd-lede{font-size:13.5px;color:var(--ink);margin:2px 0 10px;line-height:1.5}
  .rd-list{margin:0 0 12px;padding-left:18px}
  .rd-list li{font-size:13px;color:var(--ink);line-height:1.5;margin:5px 0}
  .rd-note{font-size:12.5px;color:var(--camel);font-weight:700;margin:0}
  .modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line)}
  /* askText / askConfirm — the in-app stand-ins for prompt() and confirm() */
  .ask-lede{font-size:14px;color:#2a3160;line-height:1.5;margin:2px 0 8px}
  .ask-hint{font-size:12.5px;color:#4a5286;line-height:1.5;margin:8px 0 0}
  .ask-missing{border-color:#990000 !important;box-shadow:0 0 0 3px rgba(153,0,0,.12)}
  .modal-card.danger .btn-primary{background:#990000;border-color:#990000}
  .modal-card.danger .btn-primary:hover{background:#7a0000}
  .modal-foot .btn{width:auto;padding:9px 16px}
  /* AI writing helper (staff-only) at the top of the Objective/Marker modals */
  .ai-help{margin:2px 0 6px;padding:12px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;background:linear-gradient(180deg,#fbfaf6,#fff)}
  .ai-help-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
  .ai-spark{width:15px;height:15px;flex:0 0 auto;color:var(--gold)}
  .ai-help-title{font-size:13px;font-weight:800;color:var(--navy);letter-spacing:.2px}
  .ai-help-tag{margin-left:auto;font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;background:#f0eee6;border-radius:999px;padding:2px 8px}
  .ai-help-sub{font-size:11.5px;color:var(--muted);margin:0 0 8px;line-height:1.45}
  .ai-help-row{margin:0 0 8px}
  .ai-help-row input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;font-family:inherit}
  .ai-help-btns{display:flex;gap:8px}
  .ai-help-btns .btn{width:auto;flex:1;padding:8px 10px;font-size:12.5px;margin-top:0}
  .btn-ai{background:var(--navy);color:#fff}
  .btn-ai-2{background:#fff;color:var(--navy);border:1px solid var(--line)}
  .ai-help-btns .btn:disabled{opacity:.55;cursor:default}
  .ai-out{margin-top:10px;display:flex;flex-direction:column;gap:8px}
  .ai-status{font-size:12px;color:var(--muted);padding:4px 2px;display:flex;align-items:center;gap:7px}
  .ai-status .ai-spin{width:13px;height:13px;border:2px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:aispin .7s linear infinite}
  @keyframes aispin{to{transform:rotate(360deg)}}
  .ai-err{font-size:12px;color:var(--camel);font-weight:600;padding:4px 2px;line-height:1.45}
  .ai-sug{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff}
  .ai-sug-title{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3}
  .ai-sug-deliv{font-size:12px;color:var(--muted);margin:4px 0 0;line-height:1.5}
  .ai-sug-metric{font-size:11px;color:var(--navy);margin:6px 0 0;font-weight:600}
  .ai-sug .btn{width:auto;padding:6px 12px;font-size:12px;margin-top:8px;background:var(--cream);color:var(--navy);border:1px solid var(--gold)}
  .ai-foot{font-size:10.5px;color:var(--muted);margin-top:2px;text-align:right}
  #toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--navy);color:#fff;
    padding:11px 18px;border-radius:10px;font-size:13px;opacity:0;transition:.25s;z-index:80;pointer-events:none}
  #toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

  @media(max-width:820px){
    #sidebar{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:.2s}
    body.nav-open #sidebar{transform:translateX(0)}
    .hamb{display:block}
    .home-top,.week-grid{grid-template-columns:1fr}
    .metrics{grid-template-columns:1fr 1fr}
    .imps{grid-template-columns:1fr}
    .bhx-hero-top{flex-direction:column;text-align:center;gap:18px}
    .bhx-summary{text-align:center}
    .ring-grid{grid-template-columns:1fr 1fr}
    .dash-qc-inner{flex-wrap:wrap}
    .scope-toggle{margin-left:0;margin-top:8px}
    .own-table{font-size:12px;display:block;overflow-x:auto;white-space:nowrap}
    /* Top bar: wrap to two rows so the title, live status, and action buttons never overlap or clip off-screen */
    .topbar{height:auto;min-height:60px;flex-wrap:wrap;padding:9px 14px;gap:10px 12px}
    .tb-brand{flex:1 1 auto}
    .topbar h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62vw}
    .topbar .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62vw}
    .tb-live{display:none}
    .tb-right{flex:1 1 100%;justify-content:flex-start;gap:8px;flex-wrap:wrap}
    .refresh-btn,.reset-btn,.tb-home,.va-btn{padding:7px 11px}
    /* View-as button now sits on the left, so open its menu to the right (left-anchored) instead of off the left edge */
    .va-menu{left:0;right:auto;max-width:calc(100vw - 28px)}
  }

  /* ===== Strategy Scoreboard (MD-Medical parity) ===== */
  .dash-banner{display:flex;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-bottom:3px solid var(--blue);
    border-radius:14px;box-shadow:var(--shadow);padding:20px 26px;margin-bottom:14px}
  .dash-banner .db-logo{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--accent)}
  .dash-banner .db-text{min-width:0}
  .db-tag{font-size:var(--t-sm);color:var(--camel);font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-top:7px}
  .dash-banner .name{font-family:var(--font-head);font-size:var(--t-3xl);color:var(--accent);line-height:1.05;letter-spacing:-.4px}
  .dash-qc{background:var(--navy);color:#fff;border-radius:14px;box-shadow:var(--shadow);padding:14px 20px;margin-bottom:22px}
  .dash-qc-inner{display:flex;align-items:center;gap:14px}
  .qc-badge{background:var(--blue);color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:6px 13px;border-radius:18px}
  .qc-detail{font-size:13px;opacity:.92}
  .scope-toggle{display:inline-flex;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:var(--r-md);padding:3px;margin-left:auto}
  .scope-btn{background:transparent;border:none;color:rgba(255,255,255,.78);font-family:inherit;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;padding:6px 14px;border-radius:18px;cursor:pointer;transition:.18s}
  .scope-btn:hover{color:#fff}
  .scope-btn.active{background:#fff;color:var(--navy)}

  .dash-h{font-size:15px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--camel);
    margin:32px 0 14px;padding-left:13px;border-left:5px solid var(--camel);line-height:1.1}

  .bhx-hero{padding:0;overflow:hidden}
  .bhx-hero-top{display:flex;align-items:center;gap:34px;padding:28px 32px}
  .bhx-ring{position:relative;width:170px;height:170px;flex:0 0 170px}
  /* ⚠️ letter-spacing is added AFTER the last character too, so a centred line
     carries that trailing gap on its right and sits visibly left of centre. The
     negative margin of the same size takes it back out of the box. Without it
     "BHX SCORE™" (1.4px tracking) hangs a whisker left inside the ring.
     Optical centring, not geometric: the block is number-over-label, so centring
     the pair puts the big number — which is what the eye reads as "the middle" —
     above the ring's axis. The small nudge down settles it. */
  .bhx-ring-label{position:absolute;inset:0;display:flex;flex-direction:column;
    align-items:center;justify-content:center}
  .bhx-ring-label b{font-size:var(--t-3xl);font-family:var(--font-num);line-height:1;
    letter-spacing:-1px}
  .bhx-ring-label span{font-size:var(--t-xs);font-weight:800;color:var(--camel);text-transform:uppercase;
    letter-spacing:1.4px;margin-top:5px}
  .bhx-summary{flex:1;min-width:0}
  .bhx-subtitle{font-size:11px;font-weight:800;color:var(--camel);text-transform:uppercase;letter-spacing:1px}
  .bhx-headline{font-family:var(--font-head);font-size:25px;color:var(--navy);line-height:1.15;margin:5px 0 8px}
  .bhx-detail{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:14px}
  .bhx-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .bhx-badge{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;padding:5px 13px;border-radius:18px;color:#fff}
  .how-btn{display:inline-flex;align-items:center;gap:7px;background:var(--navy);color:#fff;border:1px solid var(--navy);border-radius:8px;padding:8px 15px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:.18s}
  .how-btn:hover{background:#fff;color:var(--navy);box-shadow:var(--shadow)}
  .how-btn.ghost{background:transparent;color:var(--camel);border-color:var(--line);padding:6px 12px;font-size:11px}
  .how-btn.ghost:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
  .bhx-factors{display:flex;gap:0;border-top:1px solid var(--line);background:#fbfaf6}
  .bhx-factor{flex:1;padding:14px 10px;text-align:center;border-right:1px solid var(--line)}
  .bhx-factor:last-child{border-right:none}
  .bhx-factor b{display:block;font-size:var(--t-xl);color:var(--navy);font-family:var(--font-num);line-height:1}
  .bhx-factor span{display:block;font-size:var(--t-xs);color:var(--muted);margin-top:4px;line-height:1.3}
  .bhx-factor em{font-style:normal;color:var(--camel);font-weight:700}

  .ring-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .ring-tile{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);
    padding:18px 14px 16px;text-align:center;cursor:pointer;transition:.18s;display:flex;flex-direction:column;align-items:center}
  .ring-tile:hover{border-color:var(--navy);transform:translateY(-2px)}
  .ring-canvas{position:relative;width:104px;height:104px;margin-bottom:10px}
  .ring-canvas .pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:800;color:var(--navy)}
  .ring-tile .rt-name{font-size:var(--t-md);font-weight:700;color:var(--navy);margin-bottom:7px}
  .ring-tile .rt-meta{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);color:var(--muted);margin-bottom:9px}
  .ring-tile .rt-cta{font-size:var(--t-xs);font-weight:800;color:var(--camel);text-transform:uppercase;letter-spacing:.9px}

  .own-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
  .own-table th{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:800;text-align:center;padding:12px 10px;border-bottom:1px solid var(--line);background:#fbfaf6}
  .own-table th.l,.own-table td.l{text-align:left}
  .own-table td{padding:11px 10px;border-bottom:1px solid var(--line);font-size:13px;text-align:center;color:var(--ink)}
  .own-table tr:last-child td{border-bottom:none}
  .own-table .own-who{display:flex;align-items:center;gap:8px;font-weight:600}
  .own-table b{color:var(--navy)}
  .load{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:12px}
  .load-ok{background:#e3f0e0;color:#3a6b30} .load-watch{background:#fdf2d6;color:#8a6d1a} .load-over{background:#f6dada;color:#8a1f1f}

  .comp-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:20px 24px;margin-bottom:14px}
  .comp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}
  .comp-title{font-family:var(--font-head);font-size:19px;color:var(--navy)}
  .comp-sub{font-size:12px;color:var(--muted);margin-top:2px}
  .comp-score{font-size:30px;font-weight:800;color:var(--navy);font-family:var(--font-num);line-height:1}
  .comp-score-l{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--camel);text-align:right}
  .comp-bar{display:flex;height:22px;border-radius:7px;overflow:hidden;background:#ece8dd;margin-bottom:12px}
  .comp-seg{display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:800;min-width:0;overflow:hidden;transition:flex .4s}
  .seg-ontrack{background:#1155CC} .seg-done{background:#52823D} .seg-offtrack{background:#FFFF00;color:#1c2030}
  .seg-notdone{background:#990000} .seg-move{background:#E69138} .seg-inprocess{background:#A4C2F4;color:#1c2030}
  .seg-not-started{background:#94A3B8;color:#1c2030}
  .seg-na{background:#B8C0CC;color:#1c2030}
  .comp-legend{display:flex;flex-wrap:wrap;gap:8px}
  .comp-chip{display:inline-flex;align-items:center;gap:6px;background:#fbfaf6;border:1px solid var(--line);border-radius:14px;padding:4px 11px;font-size:11.5px;color:var(--navy);font-weight:600}
  .comp-chip i{width:8px;height:8px;border-radius:50%;display:inline-block}
  .comp-chip b{font-weight:800}
  .imp-comp-row{display:flex;align-items:center;gap:12px;margin-top:10px}
  .imp-comp-row .icr-name{width:120px;flex:0 0 120px;font-size:12.5px;font-weight:600;color:var(--navy)}
  .imp-comp-row .comp-bar{flex:1;margin-bottom:0;height:18px}

  /* Info / methodology modal */
  #infoModal{position:fixed;inset:0;z-index:260;display:none;align-items:center;justify-content:center;background:rgba(10,15,48,.45);padding:20px}
  #infoModal.open{display:flex}
  .info-card{width:580px;max-width:96vw;max-height:88vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.34);position:relative}
  /* Wide variant: drilldowns carry big tables, so their popover spans the full screen. */
  #infoModal.wide .info-card{width:min(1600px,calc(100vw - 32px));max-width:none;max-height:92vh}
  .info-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:24px;color:var(--muted);line-height:1;cursor:pointer}
  .info-close:hover{color:var(--navy)}
  .info-body{padding:26px 28px}
  .info-body h3{font-family:var(--font-head);font-size:22px;color:var(--navy);margin-bottom:4px;padding-right:24px}
  .info-body .info-lead{font-size:13px;color:var(--muted);margin-bottom:18px;line-height:1.5}
  .fac{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
  .fac-wt{flex:0 0 54px;text-align:center}
  .fac-wt b{display:block;font-size:var(--t-xl);color:var(--navy);font-family:var(--font-num);line-height:1}
  .fac-wt span{font-size:var(--t-xs);color:var(--camel);font-weight:800;text-transform:uppercase;letter-spacing:.5px}
  .fac-main .fac-name{font-size:14px;font-weight:800;color:var(--navy)}
  .fac-main .fac-name em{font-style:normal;color:var(--camel);font-weight:700;font-size:12px;margin-left:6px}
  .fac-main p{font-size:12.5px;color:var(--muted);line-height:1.5;margin:4px 0 0}
  .info-formula{margin-top:18px;background:#fbfaf6;border:1px solid var(--line);border-radius:10px;padding:14px 16px;font-size:13px;color:var(--navy);line-height:1.6}
  .info-formula b{color:var(--navy)}
  .drill-obj{border:1px solid var(--line);border-radius:10px;padding:13px 15px;margin-top:10px}
  .drill-obj .do-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .drill-obj .do-title{font-weight:700;color:var(--navy);font-size:13.5px}
  .drill-mark{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;border-top:1px dashed var(--line)}
  .drill-mark .dm-title{flex:1}

  /* Scoreboard tile drilldown content */
  .sbd-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);background:var(--cream);border:1px solid var(--line);padding:3px 8px;border-radius:11px;vertical-align:middle;margin-left:8px;white-space:nowrap}
  .sbd-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px;margin:16px 0 6px}
  .sbd-kpi{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:2px}
  .sbd-kpi span{font-size:var(--t-xs);font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}
  .sbd-kpi b{font-size:var(--t-xl);font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:-.3px}
  .sbd-kpi i{font-style:normal;font-size:var(--t-xs);font-weight:700;color:var(--muted)}
  .sbd-kpi.on b,.sbd-kpi.on i{color:#52823D}
  .sbd-kpi.off b,.sbd-kpi.off i{color:#990000}
  .sbd-h{margin:20px 0 9px;font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--camel);padding-left:10px;border-left:4px solid var(--camel);line-height:1.1}
  .sbd-tbl{width:100%;border-collapse:collapse;font-size:13px}
  .sbd-tbl th{text-align:left;font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding:0 8px 7px}
  .sbd-tbl td{padding:9px 8px;border-top:1px solid var(--line);color:var(--ink);vertical-align:middle}
  .sbd-tbl td.num,.sbd-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
  .sbd-stream{font-weight:600;color:var(--navy);margin-bottom:5px}
  .sbd-bar{height:5px;background:#ece8dd;border-radius:3px;overflow:hidden;max-width:150px}
  .sbd-bar i{display:block;height:100%;background:var(--blue);border-radius:3px}
  .sbd-sub{font-size:11px;color:var(--muted);margin-top:2px}
  .sbd-delta{font-weight:700}
  .sbd-delta.up{color:#52823D}
  .sbd-delta.dn{color:#990000}
  .sbd-note{margin:18px 0 2px;font-size:13px;line-height:1.55;color:var(--ink);background:var(--cream);border-left:4px solid var(--blue);border-radius:0 10px 10px 0;padding:12px 15px}
  .sbd-empty{margin:18px 0 2px;text-align:center;padding:24px 16px;background:var(--cream);border:1px dashed var(--line);border-radius:12px}
  .sbd-empty-ic{color:var(--camel);margin-bottom:9px;display:flex;justify-content:center}
  .sbd-empty-t{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:7px}
  .sbd-empty p{font-size:12.5px;line-height:1.55;color:var(--muted);max-width:380px;margin:0 auto}

  /* ===== Weekly Sprint runner ===== */
  /* Staging ribbon. deploy.py flips config.staging on for the staging site only, so a
     build can never be mistaken for the live app during a client meeting. */
  #stagingRibbon{position:fixed;top:0;left:0;right:0;z-index:2000;background:#990000;color:#fff;
    font:800 11.5px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;
    text-align:center;padding:5px 0;pointer-events:none}
  body.is-staging{border-top:22px solid #990000}
  #sprintRunner{position:fixed;inset:0;z-index:200;display:none;flex-direction:column;background:var(--cream)}
  #sprintRunner.open{display:flex}
  /* ---- the meeting header sits on the light surface, not on navy (2026-09-12) ----
     The dark canvas was retired on 2026-08-01 and again on 09-04 ("dark was too dark");
     .wkc became a light neutral panel with white cards, and the Command Center keeps navy
     for the sidebar and the controls while its page header is a white card on a light
     canvas. The runner never got swept. The rule that came out of it is navy for
     NAVIGATION chrome, light for the WORKING surface — so the agenda rail stays navy and
     this header joins the surface. The print stylesheet already rendered it exactly this
     way, so the light treatment is not new, it was just never on screen. */
  .sprint-head{display:flex;align-items:center;gap:18px;background:#fff;color:var(--navy);
    padding:13px 24px;border-bottom:1px solid var(--line)}
  .sh-brand{display:flex;align-items:center;gap:11px;color:var(--navy);white-space:nowrap}
  .sh-mark{display:inline-flex;align-items:center;color:var(--navy)}
  .sh-co b{display:block;font-family:var(--font-head);font-size:16px;line-height:1.05}
  .sh-co em{display:block;font-style:normal;font-size:8.5px;letter-spacing:.5px;color:#4a5286;text-transform:uppercase;margin-top:1px}
  .sh-title{min-width:0;flex:1 1 auto;border-left:1px solid var(--line);padding-left:18px}
  /* The title takes the space that is left and trims rather than shoving the clock.
     "Quarterly Strategy Meeting Agenda" against a 3:30:00 clock ran them together on a
     1180px laptop (2026-09-12). */
  .sh-agenda{font-family:var(--font-head);font-size:19px;line-height:1.08;letter-spacing:.2px;color:var(--navy);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sh-stepline{font-size:11.5px;color:#4a5286;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sh-stepline b{font-weight:700;color:var(--navy)}
  .sh-stepline span{color:#4a5286}
  .sh-stepline span:not(:empty)::before{content:"\00b7";margin:0 7px;color:#8890bb}
  .sh-stepline b[hidden]+span::before{content:none}
  /* flex:none + a floor on the width so a 3:30:00 quarterly clock and a 30:00 weekly one
     leave the title the same room, and the header does not shift as the clock ticks down. */
  .sprint-timer{margin-left:auto;flex:none;min-width:124px;display:flex;flex-direction:column;align-items:center;background:#eef1fb;border:1px solid #cdd8f1;border-radius:12px;padding:5px 16px;line-height:1;color:var(--navy)}
  .sprint-timer .st-clock{font-family:var(--font-num);font-size:25px;letter-spacing:.5px;font-variant-numeric:tabular-nums}
  .sprint-timer .st-cap{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#4a5286;margin-top:2px}
  /* The digits carry the signal, not just the box — you read the number, not the
     border. Yellow at 2 min, red once it goes past zero. */
  /* Running out of time, then over it — the canonical Off Track and Not Done LIGHT pairs,
     which is what reads on a white header. Same two colours as everywhere else. */
  .sprint-timer.warn{background:#FFF8C4;border-color:#e8dc8a}
  .sprint-timer.warn .st-clock{color:#7F6000}
  .sprint-timer.warn .st-cap{color:#7F6000}
  .sprint-timer.over{background:#F4CCCC;border-color:#e3a3a3}
  .sprint-timer.over .st-clock{color:#990000}
  .sprint-timer.over .st-cap{color:#990000}
  .sprint-pause{background:#fff;border:1px solid #cdd8f1;color:var(--navy);border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
  /* Start reads as the primary action before a meeting; once running it becomes the
     quieter Reset clock and Pause takes over as the live control. */
  .sprint-run.is-start{background:#52823D;border-color:#52823D;color:#fff;font-weight:800}
  .sprint-run.is-start:hover{background:#446c32;border-color:#446c32}
  .sprint-run:not(.is-start){background:#fff;border-color:#cdd8f1;color:var(--navy)}
  .sprint-run:not(.is-start):hover{border-color:var(--navy);color:var(--navy)}
  .sprint-pause[disabled]{opacity:.4;cursor:default}
  .sprint-pause:hover{background:#eef1fb}
  .sprint-home{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #cdd8f1;color:var(--navy);border-radius:8px;padding:7px 11px;font-size:12px;font-weight:600;cursor:pointer}
  .sprint-home:hover{background:#eef1fb}
  .sprint-home svg{width:15px;height:15px}
  .sprint-close{background:transparent;border:none;color:#4a5286;font-size:25px;line-height:1;padding:2px 4px}
  .sprint-close:hover{color:var(--navy)}
  /* in-runner Quick Add (the floating FAB sits behind the runner, so the runner needs its own) */
  .spr-quick{position:fixed;right:26px;bottom:86px;z-index:210}
  .sprint-quick{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;border:none;font-size:28px;line-height:1;box-shadow:0 8px 24px rgba(19,27,85,.35);cursor:pointer}
  .sprint-quick:hover{background:#1b2570}
  .spr-quick-menu{position:absolute;right:0;bottom:68px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(19,27,85,.28);padding:6px;min-width:210px;display:none;z-index:210}
  .spr-quick-menu.open{display:block}
  .spr-quick-menu button{display:flex;width:100%;gap:10px;align-items:center;background:none;border:none;padding:11px 14px;font-size:13.5px;text-align:left;color:var(--ink);border-radius:8px;cursor:pointer}
  .spr-quick-menu button:hover{background:var(--cream)}
  .spr-quick-menu button svg{flex:0 0 16px;width:16px;height:16px;color:var(--navy)}

  /* Left-rail agenda: the whole meeting visible at once, timed per segment.
     Click any segment to jump — a live meeting is nonlinear. */
  .sprint-body{display:flex;flex:1;min-height:0}
  .sprint-main{flex:1;display:flex;flex-direction:column;min-width:0}
  .sprint-rail{flex:none;width:304px;background:#0f164a;overflow-y:auto;padding:20px 14px 26px;display:flex;flex-direction:column;gap:5px}
  /* Below a wide desktop the agenda was taking a quarter of the screen away from the work
     (304 of 1180px, 2026-09-12). The labels fit comfortably at 248. */
  @media(max-width:1340px){ .sprint-rail{width:248px;padding:18px 10px 22px} .rail-item{padding:11px} }
  .rail-label{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#8f97cc;padding:0 12px 10px}
  .rail-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:transparent;border:0;border-radius:11px;padding:13px 13px;cursor:pointer;color:#aeb6e6}
  .rail-item:hover{background:rgba(255,255,255,.07)}
  .rail-no{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.12);font-size:11.5px;font-weight:800;color:#dfe4fb}
  .rail-name{flex:1;min-width:0;font-size:13.5px;font-weight:600;line-height:1.3;color:#dfe4fb}
  .rail-name small{display:block;font-size:11px;font-weight:500;color:#8f97cc;margin-top:2px}
  .rail-time{flex:none;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:#8f97cc;text-align:right;line-height:1.25}
  .rail-time small{display:block;font-size:10px;font-weight:600;color:#8f97cc}
  .rail-item.active{background:var(--gold)}
  .rail-item.active .rail-no{background:var(--navy);color:#fff}
  .rail-item.active .rail-name,.rail-item.active .rail-name small{color:var(--navy)}
  .rail-item.active .rail-time,.rail-item.active .rail-time small{color:#3a2d04}
  .rail-item.done .rail-no{background:#52823D;color:#fff}
  .rail-item.done .rail-name{color:#8f97cc}
  .rail-time.over{color:#ff9d93}
  .rail-item.active .rail-time.over{color:#8c1d12}
  @media(max-width:900px){
    .sprint-body{flex-direction:column}
    .sprint-rail{width:auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:10px 12px;gap:6px}
    .rail-label{display:none}
    .rail-item{flex:none;width:auto;padding:9px 12px}
    .rail-name{font-size:12.5px;white-space:nowrap}
    .rail-name small{display:none}
  }

  /* Access-level affordances inside the runner (lower tiers see read-only controls). */
  .spr-access{display:flex;align-items:center;gap:8px;background:#fbf4e6;border-bottom:1px solid #ecd9b0;color:var(--ink);font-size:12.5px;font-weight:600;padding:8px 30px}
  .spr-access svg{width:13px;height:13px;color:var(--camel);flex:none}
  .spr-ro-note{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);background:#f6f5f0;border:1px dashed var(--line);border-radius:8px;padding:9px 12px;margin:0 0 12px}
  .spr-ro-note svg{width:13px;height:13px;color:var(--muted);flex:none}
  .iss-note-ro{font-size:13px;color:var(--ink);line-height:1.5;white-space:pre-wrap;background:#f7f7f4;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:2px 0 8px;min-height:18px}
  .iss-note-ro.empty{color:var(--muted);font-style:italic}
  .ci-ro{font-size:13px;color:var(--ink);padding:7px 2px 2px;min-height:16px;text-align:left}
  .ci-ro.empty{color:var(--muted);font-style:italic}
  .rate-ro{font-size:13px;color:var(--muted);font-weight:700}
  .rate-ro b{color:var(--navy);font-size:15px}
  .sprint-stage{flex:1;overflow:auto;padding:26px 30px 40px}
  .sprint-inner{max-width:940px;margin:0 auto}
  .sprint-inner:has(.wkc){max-width:1280px}
  .sprint-foot{display:flex;align-items:center;gap:14px;background:#fff;border-top:1px solid var(--line);padding:13px 26px}
  .sf-hint{font-size:12px;color:var(--muted)}
  .sf-spacer{flex:1}
  .sf-btn{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:9px;padding:10px 22px;font-weight:700;font-size:13.5px}
  .sf-btn:hover{box-shadow:var(--shadow)}
  .sf-btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
  .sf-btn:disabled{opacity:.4;cursor:default;box-shadow:none}

  .sp-h{font-family:var(--font-head);font-size:23px;color:var(--navy);margin-bottom:3px}
  .sp-h-q{font-family:'Inter',system-ui,sans-serif;font-size:13px;font-weight:700;color:var(--navy);background:#eef1f8;border:1px solid #d6deef;border-radius:8px;padding:2px 10px;margin-left:9px;vertical-align:middle}
  .sp-h-due{font-family:'Inter',system-ui,sans-serif;font-size:13px;font-weight:700;color:#fff;background:var(--navy);border-radius:8px;padding:2px 11px;margin-left:7px;vertical-align:middle}
  .sp-lead{font-size:13px;color:var(--muted);margin-bottom:18px}
  .sp-sec{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--camel);margin:24px 0 11px;display:flex;align-items:center;gap:9px}
  .sp-sec:first-child{margin-top:4px}
  .sp-count{background:#efeada;color:var(--muted);border-radius:10px;font-size:11px;padding:1px 8px;font-weight:700}

  .ci-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
  .ci-card{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:15px 16px}
  .ci-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}
  .ci-top b{color:var(--navy);font-size:14px;line-height:1.1}.ci-top span{font-size:11.5px;color:var(--muted)}
  .ci-top .avatar{color:#fff;font-size:10.5px}
  .ci-id{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
  .ci-field{margin-top:9px}
  .ci-field label{display:block;font-size:10.5px;font-weight:800;color:var(--camel);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
  .ci-field input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit}
  .ci-field input:focus{outline:2px solid var(--blue);border-color:var(--blue)}

  /* Weekly Ops/Finance Dashboard (visual board) */
  .sb-hero{margin-bottom:6px}
  .sb-hero .bhx-ring-label b{font-size:var(--t-3xl)}
  .sb-section{margin-top:24px}
  .sb-sec-h{display:flex;align-items:baseline;gap:10px;margin:0 0 13px;font-size:var(--t-sm);font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--camel);padding-left:11px;border-left:5px solid var(--camel);line-height:1.1}
  /* One section treatment per meeting. The Dashboard step used a camel caps label while the
     Marker and Driver steps used a solid navy bar, so one meeting had two ideas of what a
     section heading looks like (2026-09-12).
     Resolved toward the LIGHT panel, not the navy bar: for any client on the console feed
     the in-meeting board renders inside .wkc, whose section label is already quiet navy on
     a light ground, and a navy bar here would paint straight over the treatment that
     retired the dark canvas. The Marker and Driver bars come down to match — see
     .mr-imp-h below. */
  #sprintRunner .sb-sec-h{color:var(--navy);background:#eef1fb;border-left:4px solid #384d9b;
    border-radius:var(--r-sm,8px);padding:8px 14px;margin:0 0 12px;align-items:center}
  #sprintRunner .sb-sec-h small{color:#4a5286}
  .sb-sec-h small{font-weight:700;color:var(--muted);letter-spacing:.2px;text-transform:none;font-size:var(--t-xs)}
  /* Power-BI-style mosaic: 12-col grid, tiles span 4/6/8/12 so charts get real
     width; rows always pack to a full 12 (Lavon 2026-08-03). */
  .sb-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
  /* In the meeting, this board is a 3-minute segment and it ran to 2.8 screens of scroll
     (8 tiles at 357px, two to a row — measured 2026-09-12). Three to a row on a wide
     screen, a shorter chart, and no per-tile "see the weekly breakdown" (nobody clicks
     through mid-meeting, and the chart above it already shows the run of weeks) brings it
     under one and a half. The standalone Weekly Dashboard is untouched. */
  #sprintRunner .sb-grid .sbt-cta{display:none}
  #sprintRunner .sb-tile{padding:11px 13px 10px}
  #sprintRunner .mtake{min-height:0;margin:2px 0 6px}
  #sprintRunner .mchart{padding-top:7px}
  #sprintRunner .mchart svg{max-height:64px}
  @media(min-width:1200px){
    #sprintRunner .sb-grid .sb-tile,
    #sprintRunner .sb-grid .sb-tile.sp4,
    #sprintRunner .sb-grid .sb-tile.sp6{grid-column:span 4}
    #sprintRunner .sb-grid .sb-tile.sp8{grid-column:span 8}
  }
  .sb-grid .sb-tile{grid-column:span 6}
  .sb-grid .sb-tile.sp4{grid-column:span 4}
  .sb-grid .sb-tile.sp6{grid-column:span 6}
  .sb-grid .sb-tile.sp8{grid-column:span 8}
  .sb-grid .sb-tile.sp12{grid-column:span 12}
  @media(max-width:860px){.sb-grid .sb-tile,.sb-grid .sb-tile.sp4,.sb-grid .sb-tile.sp6,.sb-grid .sb-tile.sp8{grid-column:span 12}}
  .sb-tile{background:#fff;border:1px solid var(--line);border-top:3px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:13px 15px 12px;display:flex;flex-direction:column}
  .sb-tile.on{border-top-color:#52823D}
  .sb-tile.off{border-top-color:#990000}
  .sbt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;min-height:40px}
  .sbt-name{font-size:var(--t-xl);font-weight:700;color:var(--navy);line-height:1.2}
  .sbt-tag{flex:none;font-size:var(--t-xs);font-weight:800;letter-spacing:.7px;text-transform:uppercase;padding:3px 7px;border-radius:var(--r-md);white-space:nowrap}
  .tag-lead{background:#eaf1fb;color:#1155CC}
  .tag-lag{background:#f2ebe4;color:#884934}
  .sbt-viz{height:54px;margin:1px 0 10px;position:relative}
  .sbt-viz.viz-banks{height:auto;min-height:54px}   /* per-bank rows grow the tile; nothing overlaps */
  .viz-progress{display:flex;align-items:center}
  .viz-gauge{display:flex;align-items:center;justify-content:center}
  .viz-gauge .gwrap{position:relative;width:108px;height:54px}
  .sbt-viz .muted{font-size:var(--t-xs)}
  .sbt-bullet{width:100%}
  .bul-track{position:relative;height:11px;background:#ece8dd;border-radius:6px}
  .bul-fill{position:absolute;top:0;left:0;height:100%;border-radius:6px;background:#52823D;transition:width .4s ease}
  .bul-fill.off{background:#990000}
  .bul-goal{position:absolute;top:-3px;width:3px;height:17px;border-radius:2px;background:var(--navy);transform:translateX(-50%)}
  .bul-cap{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.2px}
  .sbt-figure{display:flex;align-items:baseline;gap:6px}
  .sbt-input{width:88px;border:none;border-bottom:2px solid var(--line);background:transparent;font-family:inherit;font-size:var(--t-2xl);font-weight:800;line-height:1;color:var(--navy);padding:0 0 2px;letter-spacing:-.5px;-moz-appearance:textfield}
  .sbt-input::-webkit-outer-spin-button,.sbt-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
  .sbt-input:focus{outline:none;border-bottom-color:var(--blue)}
  .sb-tile.on .sbt-input{color:#52823D}
  .sb-tile.off .sbt-input{color:#990000}
  .sbt-unit{font-size:var(--t-sm);font-weight:700;color:var(--muted)}
  /* v2 card anatomy: answer first, chart second (Lavon 2026-08-04) */
  .mkpirow{display:flex;align-items:baseline;gap:10px;margin:7px 0 2px;flex-wrap:wrap}
  .mkpi{font-size:var(--t-2xl);font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.05}
  .k-good{color:#52823D}.k-bad{color:#990000}.k-neutral{color:#131B55}
  .mkpi-in{width:110px;font-size:var(--t-2xl)}
  .mkpi-unit{font-size:var(--t-xs);font-weight:700;color:#4a5286}
  .sbt-per{font-size:var(--t-xs);font-weight:700;color:#4a5286;margin:0 0 4px;letter-spacing:.01em}   /* "October so far · week 1 of 4" under a monthly number */
  .mchip{font-size:9.5px;font-weight:800;letter-spacing:.03em;padding:3px 9px;border-radius:11px;white-space:nowrap}
  .s-good{background:#E4F3E5;color:#176B11}.s-bad{background:#F8E2E2;color:#990000}.s-neutral{background:#EDF0F4;color:#5A6472}
  .mtake{font-size:var(--t-sm);color:#1d2440;line-height:1.45;margin:2px 0 8px;min-height:34px}
  .mchart{border-top:1px solid #EFF1F5;padding-top:9px;margin:2px 0 4px}
  .mchart svg{display:block;width:100%}
  .mlegend{display:flex;flex-wrap:wrap;gap:5px 18px;margin-top:9px;font-size:11px;font-weight:600;color:#1d2440}
  .mlegend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px}
  /* Strategy Scoreboard: trend takeaway + count-first At Risk (Lavon 2026-08-03) */
  .mdx .trend-take{font-size:var(--t-sm);font-weight:600;color:#1d2440;margin:8px 0 2px}
  .mdx .ar-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
  .mdx .ar-num{font-size:var(--t-2xl);font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
  .mdx .ar-chip{font-size:var(--t-xs);font-weight:800;letter-spacing:.04em;padding:3px 9px;border-radius:var(--r-md)}
  .mdx .ar-chip.bad{background:#F8E2E2;color:#990000}
  .mdx .ar-chip.good{background:#E4F3E5;color:#176B11}
  .mchart svg text{font-family:inherit;font-variant-numeric:tabular-nums}
  .mghost svg{opacity:.5}
  .mtag-await{display:inline-block;background:#FFFF00;color:#1c2030;font-size:var(--t-xs);font-weight:800;letter-spacing:.05em;padding:3px 9px;border-radius:4px;margin:5px 0 1px}
  /* "the number is real, the definition isn't agreed" — canonical Off Track
     yellow at full saturation, same as the awaiting-data tag. The question
     rides on the card so it gets raised in the room, not lost in a note. */
  .mtag-review{display:inline-block;background:#FFFF00;color:#1c2030;font-size:var(--t-xs);font-weight:800;letter-spacing:.05em;padding:3px 9px;border-radius:4px;margin:5px 0 1px}
  /* The flag is a control now, not a label: it opens the reason on hover, click
     or keyboard. The paragraph of explanation that used to sit under every KPI
     is gone — the reason lives one interaction away instead of crowding the card. */
  /* The period a file covers, stated on the card. It was computed and then not
     rendered, so every upload silently took the prior period. */
  .rpc-covers{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;
              letter-spacing:.04em;text-transform:uppercase;color:#5a6472;margin-bottom:8px}
  .rpc-period{font-family:inherit;font-size:var(--t-sm);font-weight:600;color:var(--navy,#131B55);
              border:1px solid #d7dbe4;border-radius:8px;padding:4px 8px;background:#fff;text-transform:none;letter-spacing:0}
  .mtag-review{cursor:pointer;border:0;transition:filter .12s}
  .mtag-review:hover,.mtag-review:focus-visible{filter:brightness(.92)}
  .mtag-review:focus-visible{outline:2px solid var(--navy,#131B55);outline-offset:4px}
  .sbt-up{margin-top:8px;display:inline-flex;align-items:center;gap:4px;background:var(--navy,#131B55);color:#fff;
          border:0;border-radius:var(--r-sm);padding:8px 12px;font-family:inherit;font-size:var(--t-sm);font-weight:700;cursor:pointer}
  .sbt-up:hover{filter:brightness(1.12)}
  /* Landing highlight after jumping from a tile, so the right card is obvious. */
  @keyframes rpcflash{0%{box-shadow:0 0 0 0 rgba(200,149,12,.85)}100%{box-shadow:0 0 0 16px rgba(200,149,12,0)}}
  .rpc-card.rpc-flash{animation:rpcflash 1.5s ease-out 1;border-color:#C8950C}
  .mreview{font-size:11.5px;line-height:1.45;color:#5a4a00;background:#FFFDE6;border-left:3px solid #FFFF00;padding:6px 9px;border-radius:0 4px 4px 0;margin:6px 0 2px}
  #wkTip{position:fixed;pointer-events:none;background:#131B55;color:#fff;font-size:11px;font-weight:600;padding:6px 10px;border-radius:7px;box-shadow:0 4px 14px rgba(0,0,0,.25);opacity:0;transition:opacity .1s;z-index:1300;white-space:nowrap;max-width:280px}
  .sbt-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
  .sbt-goal{font-size:var(--t-xs);color:var(--muted);line-height:1.25}
  .sbt-foot .pill{font-size:var(--t-xs)}
  .sbt-cta{margin-top:10px;width:100%;border:none;border-top:1px solid var(--line);background:transparent;padding:9px 0 1px;font-family:inherit;font-size:var(--t-xs);font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--camel);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;transition:color .15s}
  .sbt-cta span{font-size:var(--t-md);line-height:1;transition:transform .15s}
  .sbt-cta:hover{color:var(--navy)}
  .sbt-cta:hover span{transform:translateX(3px)}
  .sbt-acts{display:flex;align-items:center;gap:6px;margin-top:9px}
  .sbt-acts .ent-meta{display:inline-flex;gap:2px}
  .sbt-todo{margin-left:auto;border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:var(--r-sm);padding:4px 12px;font-family:inherit;font-size:var(--t-xs);font-weight:700;cursor:pointer}
  .sbt-todo:hover{border-color:var(--navy);background:var(--cream)}
  /* "Enter numbers" is the way in to every figure on a card — actual, goal,
     year-end and the monthly step — so it leads the action row. */
  .sbt-nums{border:1px solid var(--navy);background:var(--navy);color:#fff;border-radius:var(--r-sm);
    padding:4px 12px;font-family:inherit;font-size:var(--t-xs);font-weight:700;cursor:pointer}
  .sbt-nums:hover{background:#2a3160;border-color:#2a3160}
  .sbt-nums:focus-visible{outline:2px solid var(--gold-ink,#C8950C);outline-offset:2px}
  .sbt-roval{display:inline-block;font-size:var(--t-2xl);font-weight:800;line-height:1;color:var(--navy);letter-spacing:-.5px;padding:0 0 2px}
  .sb-tile.on .sbt-roval{color:#52823D}
  .sb-tile.off .sbt-roval{color:#990000}
  .sbt-viz.viz-hbar{height:92px}
  .sbt-viz.viz-combo,.sbt-viz.viz-group{height:62px}
  .combo-wrap{display:flex;flex-direction:column;height:100%}
  .combo-wrap .cc{flex:1;min-height:0;position:relative}
  .dual-legend{display:flex;gap:12px;justify-content:center;margin-top:4px;font-size:9px;font-weight:700;color:var(--muted)}
  .dual-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px}
  .sbt-viz.viz-donut{display:flex;align-items:center;justify-content:center;gap:12px}
  .viz-donut .dwrap{position:relative;width:54px;height:54px;flex:none}
  .viz-donut .dlbl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
  .viz-donut .dlbl b{font-size:13px;font-weight:800;color:var(--navy)}
  .viz-donut .dside{font-size:10.5px;color:var(--muted);line-height:1.45}
  .viz-donut .dside b{display:block;font-size:13px;color:var(--navy)}

  .mr-imp{margin-bottom:18px}
    /* The meeting's imperative header speaks the Strategy Map's language: navy band, white
     type, the map's own radius token -- scaled down because it repeats per imperative inside
     a ~940px step column (Lavon 2026-08-27: "I need a consistent look"). */
  /* Was a solid navy bar. Lightened 2026-09-12 to match .wkc and the in-meeting board: on a
     Marker Review with six imperatives the page was six full-width navy blocks separating
     the rows people are actually reading. The imperative's own colour swatch still leads. */
  .mr-imp-h{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--navy);font-size:15px;
    padding:11px 16px;background:#eef1fb;border-left:4px solid #384d9b;border-radius:var(--r-sm,8px);
    border-bottom:0;margin-bottom:10px}
  /* The swatch's halo was white, for the navy bar it used to sit on. On the light bar it
     needs the ring to be the bar's own colour or the swatch loses its edge. */
  .mr-imp-h i{width:11px;height:11px;border-radius:3px;display:inline-block;box-shadow:0 0 0 2px #fff}
  /* Tactical Rocks block in the weekly Marker Review: separated below the strategic markers */
  .mr-tactical{margin-top:24px;padding-top:4px;border-top:1px dashed var(--line)}
  .mr-tac-h i{background:var(--navy)}
  .mr-tac-n{margin-left:2px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--navy);color:#fff;font-size:11px;font-weight:800}
  .mk-row{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:12px 15px;margin-bottom:8px}
  .mk-row.mk-click{cursor:pointer;transition:box-shadow .12s ease,border-color .12s ease}
  .mk-row.mk-click:hover{box-shadow:0 3px 12px rgba(19,27,85,.10);border-color:#c7d0e8}
  .sb-tile.sb-click{cursor:pointer}
  .mk-row.bd-ontrack{border-left:4px solid #1155CC}
  .mk-row.bd-inprocess{border-left:4px solid #A4C2F4}
  .mk-row.bd-done{border-left:4px solid #52823D}
  .mk-row.bd-offtrack{border-left:4px solid #FFFF00}
  .mk-row.bd-notdone{border-left:4px solid #990000}
  .mk-row.bd-move{border-left:4px solid #E69138}
  .mk-row.bd-onhold{border-left:4px solid #5B21B6}
  .mk-row.bd-delete{border-left:4px solid #434343}
  .mk-row.bd-notstarted{border-left:4px solid #94A3B8}
  .mk-row.bd-submitted{border-left:4px solid var(--submitted)}
  .mk-top{display:flex;align-items:center;gap:10px}
  .mk-title{flex:1;font-weight:600}
  .mk-title .mk-desc{font-weight:400;color:#2c3140;font-size:12.5px;line-height:1.4;margin-top:3px}
  .mk-title small{display:block;font-weight:400;color:var(--muted);font-size:var(--t-xs);margin-top:3px}
  /* Responsible, at accountability weight (Lavon 2026-08-10). */
  .mk-resp{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:9px}
  .mk-resp-av{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:var(--t-xs);font-weight:800;flex:none;letter-spacing:.02em}
  .mk-resp-av.none{background:#e3e7ef;color:#8b93a3}
  .mk-resp-nm{font-size:var(--t-md);font-weight:800;color:var(--navy);line-height:1.2}
  .mk-resp-nm.none{color:#8b93a3;font-weight:700}
  .mk-resp-x{font-size:var(--t-sm);font-weight:700;color:var(--muted);background:#eef1f8;border:1px solid #dfe5f2;border-radius:999px;padding:3px 10px}
  .mk-resp-deliv{margin-left:auto}
  .mk-desclead{display:block}
  .mk-title .mk-desc .shm-bul{margin-top:5px;padding-left:2px;list-style:none}
  .mk-title .mk-desc .shm-bul li{position:relative;padding-left:15px;font-size:var(--t-sm);color:#5b6474;margin-bottom:4px;display:list-item}
  .mk-title .mk-desc .shm-bul li::before{content:'\2013';position:absolute;left:0;top:0;color:var(--camel);font-weight:800}
  .mk-anno{margin-top:8px;display:flex;align-items:center}
  .mk-anno .ent-meta{margin-left:0}
  .mk-btns{display:flex;gap:5px;margin-top:10px;flex-wrap:wrap}
  .mk-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 13px;font-size:var(--t-sm);font-weight:700;color:var(--muted)}
  .mk-btn:hover{border-color:var(--navy);color:var(--navy)}
  .mk-btn.on-notstarted.sel{background:#E2E8F0;color:#475569;border-color:#94A3B8}
  .mk-btn.on-ontrack.sel{background:#1155CC;color:#fff;border-color:#1155CC}
  .mk-btn.on-inprocess.sel{background:#A4C2F4;color:#1c2030;border-color:#A4C2F4}
  .mk-btn.on-done.sel{background:#52823D;color:#fff;border-color:#52823D}
  .mk-btn.on-offtrack.sel{background:#FFFF00;color:#1c2030;border-color:#d9d400}
  .mk-btn.on-notdone.sel{background:#990000;color:#fff;border-color:#990000}
  .mk-btn.on-move.sel{background:#E69138;color:#fff;border-color:#E69138}
  .mk-btn.on-delete.sel{background:#434343;color:#fff;border-color:#434343}
  .mk-btn.on-inprogress.sel{background:#A4C2F4;color:#1c2030;border-color:#A4C2F4}
  .mk-btn.on-onhold.sel{background:#5B21B6;color:#fff;border-color:#5B21B6}
  .mk-btn.on-ongoing.sel{background:#884934;color:#fff;border-color:#884934}
  .mk-btn.on-na.sel{background:#B8C0CC;color:#1c2030;border-color:#B8C0CC}
  /* The due date is the point of a 30-Day Driver, so it reads loud in every state --
     it used to be a pale 12px chip unless it happened to be overdue (Lavon 2026-08-10). */
  /* A due date is a DATE, not a status (2026-09-12). It used to render as a solid filled
     block — navy normally, #990000 when overdue — so on a list of five drivers the loudest
     things on screen were five date chips, each shouting over the item it belonged to, and
     an overdue one borrowed the Not Done hue for something that is not a status at all.
     These now use the canonical LIGHT pill pairing from the locked palette (pill bg + pill
     ink) instead of the solid chip pairing: the same colours, a quarter of the weight, and
     the item's own title is the loudest thing in its row again. */
  .mk-due{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-base);font-weight:700;color:var(--navy);background:#eef1fb;border:1px solid #cdd8f1;border-radius:var(--r-sm);padding:7px 13px;white-space:nowrap}
  .mk-due.over{color:#990000;background:#F4CCCC;border-color:#e3a3a3;font-weight:800}
  .mk-due.soon{color:#7F6000;background:#FFF8C4;border-color:#e8dc8a;font-weight:800}
  .mk-due.done{color:#4a5286;background:#f2f4fa;border-color:#e2e7f4}   /* completed: quiet, with a check icon */
  .mk-carry{display:inline-flex;align-items:center;font-size:11px;font-weight:700;color:#990000;background:#f7e7e7;border:1px solid #e6c9c9;border-radius:8px;padding:3px 9px;white-space:nowrap}
  /* Origin chip: items set in a quarterly planning meeting (source_tag, e.g. "Q3 Quarterly") */
  .mk-src{display:inline-flex;align-items:center;font-size:11px;font-weight:700;color:#8a6a00;background:#F8F1DE;border:1px solid #E6D5A8;border-radius:8px;padding:3px 9px;white-space:nowrap;margin-left:6px}
  /* Strategy variant: markers from the annual strategy map (no source_tag) */
  .mk-src.strat{color:var(--navy);background:#eef1f8;border-color:#d6deef}
  /* Carry chip on the Set Next Markers preview: only Not Done / In Process markers carry forward */
  .mk-fate{display:inline-flex;align-items:center;font-size:11px;font-weight:700;border-radius:8px;padding:3px 9px;white-space:nowrap}
  .mk-fate.carry{color:var(--navy);background:#eef1f8;border:1px solid #d6deef}
  /* Editable due chip: same look as .mk-due, with a transparent date input on top that opens a calendar */
  .mk-due.edit{position:relative;cursor:pointer}
  .mk-due.edit input[type=date]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:none;opacity:0;cursor:pointer}

/* Click-to-edit due date, used by dueCtl() wherever a due date is shown (2026-09-14).
   Wraps any chip or bare text: the date input is laid transparently over the label. */
.due-edit{position:relative;cursor:pointer}
.due-edit input[type=date]{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;padding:0;margin:0;cursor:pointer;font:inherit}
.due-edit:hover{text-decoration:underline dotted}
  .mk-due.edit:hover{border-color:var(--navy)}
  /* Status control centered in its own column on the right of the card */
  .mk-status{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:178px}
  /* Objective pill sits ABOVE the marker; hover reveals the full objective to the
     RIGHT of the pill (vertically centered) so it never covers the marker below. */
  .mk-objline{position:relative;margin-bottom:10px}
  .mk-obj{display:inline-flex;align-items:center;max-width:100%;font-size:var(--t-xs);color:var(--muted);background:#fbfaf6;border:1px solid var(--line);border-radius:8px;padding:4px 10px;line-height:1.35;position:relative}
  .mk-obj b{color:var(--navy);font-weight:700}
  .mk-obj[data-tip]:hover{border-color:var(--navy);color:var(--navy)}
  .mk-obj[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);z-index:60;width:min(340px,calc(100vw - 64px));background:#1c2030;color:#fff;font-size:var(--t-xs);font-weight:500;line-height:1.5;padding:9px 12px;border-radius:var(--r-sm);box-shadow:0 10px 26px rgba(0,0,0,.26);white-space:normal;pointer-events:none}

  .e3-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}
  .e3-tab{background:#fff;border:1px solid var(--line);border-radius:20px;padding:7px 15px;font-size:12.5px;font-weight:700;color:var(--muted)}
  .e3-tab:hover{border-color:var(--navy);color:var(--navy)}
  .e3-n{background:#efeada;border-radius:10px;font-size:11px;padding:0 7px;margin-left:6px;color:var(--muted)}
  .e3-tab.active{background:var(--gold);color:var(--navy);border-color:var(--gold)}
  .e3-tab.active .e3-n{background:rgba(19,27,85,.16);color:var(--navy)}
  .e3-blurb{font-size:12.5px;color:var(--muted);background:#fbfaf6;border:1px solid var(--line);border-radius:10px;padding:10px 13px;margin-bottom:13px}
  .iss{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:14px 16px;margin-bottom:10px}
  .iss.resolved{opacity:.5}
  .iss-top{display:flex;align-items:flex-start;gap:10px}
  .iss-cat{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:12px;color:#fff;white-space:nowrap}
  .cat-flashpoint{background:#990000}.cat-rprs{background:#884934}.cat-marker{background:#E69138;color:#1c2030}.cat-other{background:#3C7FB1}
  .iss-title{flex:1;font-weight:600}
  .iss-meta{font-size:11.5px;color:var(--muted);margin-top:2px}
  .iss-note{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;margin-top:10px;min-height:42px;resize:vertical}
  .iss-note:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  .iss-acts{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap;align-items:center}
  .iss-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;color:var(--navy)}
  .iss-btn:hover{box-shadow:var(--shadow)}
  .iss-btn.resolve{background:#52823D;color:#fff;border-color:#52823D}
  .iss-btn.reopen{color:var(--muted)}

  .qa{display:flex;gap:8px;flex-wrap:wrap;background:#fbfaf6;border:1px dashed var(--line);border-radius:11px;padding:12px 14px;margin-top:10px;align-items:center}
  .qa input,.qa select{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;background:#fff}
  .qa input.grow{flex:1;min-width:200px}
  .qa input[type=date]{min-width:150px;color:var(--navy)}
  .qa input:focus,.qa select:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  /* To-Do assignee widget: team member / Blue Hen / free-text off-team name */
  .td-assignee{display:inline-flex;gap:6px;align-items:center}
  .td-assignee-name{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;background:#fff;width:150px}
  .td-assignee-name:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  .modal-body .td-assignee{display:flex;gap:8px;width:100%;margin-top:2px}
  .modal-body .td-assignee-sel{flex:1;width:auto}
  .qa.nm-edit{margin:6px 0;align-items:center}
  .qa-del{flex:none;border:1px solid var(--line);background:#fff;color:#990000;border-radius:8px;width:32px;height:32px;font-size:19px;line-height:1;cursor:pointer;font-weight:700}
  .qa-del:hover{border-color:#990000;background:#fff5f5}
  .qa-add{background:var(--navy);color:#fff;border:none;border-radius:8px;padding:9px 17px;font-weight:700;font-size:13px}

  .td-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:11px 15px;margin-bottom:8px}
  .td-main{flex:1}.td-main b{font-weight:600}.td-main small{display:block;font-size:var(--t-xs);color:var(--muted)}
  .td-btns{display:flex;gap:6px}
  .td-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 14px;font-size:12px;font-weight:700;color:var(--muted)}
  .td-btn:hover{border-color:var(--navy);color:var(--navy)}
  .td-btn.on-done.sel{background:#52823D;color:#fff;border-color:#52823D}
  .td-btn.on-notdone.sel{background:#990000;color:#fff;border-color:#990000}

  .pk-mini{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:var(--t-sm)}
  .pk-mini:last-child{border-bottom:none}
  .pkm-t{flex:1}.pkm-t small{display:block;color:var(--muted);font-size:var(--t-xs)}

  .rate-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:11px 16px;margin-bottom:9px}
  .rr-who{flex:1;display:flex;align-items:center;gap:10px;font-weight:600;color:var(--navy)}
  .rate-btns{display:flex;gap:6px}
  .rate-btns button{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:15px;font-weight:800;color:var(--muted)}
  .rate-btns button:hover{border-color:var(--navy);color:var(--navy)}
  .rate-btns button.sel{background:var(--navy);color:#fff;border-color:var(--navy)}
  .rate-avg{background:var(--navy);color:#fff;border-radius:12px;padding:15px 22px;text-align:center;display:inline-block;margin-top:10px}
  .rate-avg b{font-family:var(--font-num);font-size:34px;line-height:1;display:block}
  .rate-avg span{font-size:9.5px;text-transform:uppercase;letter-spacing:.8px;color:#aeb6e6}

  .fin{max-width:760px;margin:0 auto;text-align:center}
  .fin h2{font-family:var(--font-head);font-size:var(--t-xl);color:var(--navy)}
  .fin-sub{color:var(--muted);font-size:var(--t-base);margin:5px 0 14px}
  .fin-saved{display:inline-flex;align-items:center;gap:7px;font-size:var(--t-sm);font-weight:700;color:var(--muted);background:#f4f6f8;border:1px solid var(--line);border-radius:999px;padding:5px 13px;margin:0 auto 22px}
  .fin-saved.ok{color:#3d7a2a;background:#eef6ea;border-color:#cfe6c4}
  .fin-saved.ok::before{content:'';width:7px;height:7px;border-radius:50%;background:#52823D}
  .fin-saved.err{color:#990000;background:#fbeaea;border-color:#e6c4c4}
  .fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;text-align:left}
  .fin-stat{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:16px 18px}
  .fin-stat b{display:block;font-size:var(--t-xl);color:var(--navy);font-family:var(--font-num);line-height:1}
  .fin-stat span{font-size:var(--t-sm);color:var(--muted)}
  .fin-list{text-align:left;margin-top:8px}
  .fl-h{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--camel);margin:20px 0 6px}
  .fl-item{font-size:13px;padding:7px 0;border-bottom:1px solid var(--line);display:flex;gap:9px;align-items:center}
  .fl-item:last-child{border-bottom:none}
  .fin-acts{display:flex;gap:10px;justify-content:center;margin-top:28px;flex-wrap:wrap}
  .wrap-done{margin-top:22px;padding:12px 16px;border-radius:10px;background:#eef6ea;border:1px solid #cfe6c3;color:#3d5a2e;font-size:13.5px;text-align:center}
  /* Wrap-up confirmation modal */
  .wrap-intro{font-size:13.5px;color:var(--navy);margin:0 0 14px}
  .wrap-flex{display:flex;gap:26px;align-items:flex-start}
  .wrap-rows{flex:1;min-width:0}
  .wrap-viz{flex:none;width:190px;text-align:center;padding-top:4px}
  .wrap-viz-cv{position:relative;width:160px;height:160px;margin:0 auto}
  .wrap-viz-cv .wv-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
  .wrap-viz-cv .wv-center b{font-family:var(--font-num);font-size:26px;color:var(--navy);line-height:1}
  .wrap-viz-cv .wv-center span{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:3px}
  .wrap-viz-title{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 8px}
  .wrap-legend{display:flex;flex-direction:column;gap:6px;text-align:left;margin-top:10px}
  .wrap-legend span{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink)}
  .wrap-legend i{width:11px;height:11px;border-radius:3px;flex:none;border:1px solid rgba(0,0,0,.12)}
  @media(max-width:640px){.wrap-flex{flex-direction:column}.wrap-viz{width:100%}}
  .wrap-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff}
  .wrap-n{flex:none;width:42px;height:42px;border-radius:10px;background:#eef1f8;color:var(--navy);font-family:var(--font-num);font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center}
  .wrap-tx b{display:block;font-size:14px;color:var(--navy)}
  .wrap-tx small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
  .wrap-note{font-size:12px;color:var(--muted);margin:14px 0 0}
  .td-carry{margin-left:8px;vertical-align:middle}

  /* ===== Meeting runner: mobile layout (placed after the runner base CSS so it wins; desktop >820px untouched) ===== */
  @media(max-width:820px){
    .sprint-head{position:relative;flex-wrap:wrap;align-items:center;gap:9px 7px;padding:12px 16px}
    .sh-brand{display:none}
    .sh-title{flex:1 1 100%;order:0;border-left:none;padding-left:0;padding-right:34px}
    .sh-agenda{white-space:normal;font-size:16px;line-height:1.18}
    .sh-stepline{white-space:normal}
    .sprint-timer{order:1;margin-left:0;padding:4px 12px}
    .sprint-timer .st-clock{font-size:20px}
    .sprint-pause{order:2;padding:7px 10px}
    .sprint-home{order:3;padding:7px 9px}
    .sprint-close{position:absolute;top:10px;right:12px;order:0;margin:0;font-size:28px;padding:0 4px;line-height:1}

    .spr-access{padding-left:16px;padding-right:16px}
    .sprint-stage{padding:20px 16px 36px}
    .ci-grid{grid-template-columns:1fr}
    /* Marker/Driver rows: status dropdown drops below the title so it never runs off-screen */
    .mk-top{flex-wrap:wrap}
    .mk-title{flex:1 1 100%;min-width:0}
    .mk-status{flex:1 1 100%;width:auto;justify-content:flex-start;margin-top:9px}
    /* To-Do rows: Done / Not Done buttons drop below the name */
    .td-row{flex-wrap:wrap}
    .td-main{flex:1 1 100%;min-width:0}
    .td-btns{width:100%}
    .sprint-foot{padding:12px 16px;gap:10px}
    .sf-hint{display:none}
    .sf-btn{padding:10px 16px;font-size:13px}
    .spr-quick{right:16px;bottom:78px}
    .fin h2{font-size:var(--t-xl)}
  }

  /* ----- Past Meetings (Meetings view) ----- */
  .pm-wrap{margin-top:34px}
  .pm-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
  .pm-head h2{font-family:var(--font-head);font-size:var(--t-lg);color:var(--navy);margin:0}
  .pm-sub{font-size:var(--t-sm);color:#4a5286}
  .pm-list{display:flex;flex-direction:column;gap:8px}
  .pm-row{display:grid;grid-template-columns:104px minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;text-align:left;
    background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:12px 16px;cursor:pointer;
    font:inherit;color:inherit;transition:border-color .12s,box-shadow .12s,transform .12s}
  .pm-row:hover{border-color:var(--navy);box-shadow:0 6px 18px rgba(19,27,85,.12);transform:translateY(-1px)}
  /* Matched to the schedule panel above it: same title size, same numeral face on
     the date, same navy for secondary text. Three components on one page had grown
     three type scales (Lavon, 2026-09-05). */
  .pm-date{font-family:var(--font-num);font-weight:500;color:var(--navy);font-size:var(--t-base);
    font-variant-numeric:tabular-nums;letter-spacing:.2px}
  .pm-title{font-weight:600;color:var(--navy);font-size:var(--t-base);display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
  .pm-type{display:inline-block;font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.5px;
    color:var(--camel);background:#f4ede6;border-radius:999px;padding:3px 9px}
  .pm-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
  .pm-chip{font-size:11px;color:#4a5286;background:#f4f6f8;border:1px solid var(--line);border-radius:999px;padding:3px 10px;white-space:nowrap}
  .pm-chip b{color:var(--navy)}
  .pm-go{font-size:12.5px;font-weight:700;color:var(--navy);white-space:nowrap}
  /* A recording row is not a button — it carries its own — so it needs the row
     chrome the <button> rows get for free. */
  .pm-note{cursor:default}
  .pm-note.waiting{background:#FFFDF6;border-color:#E8C874;border-left:4px solid #C8950C}
  .pm-note:hover{transform:none;box-shadow:var(--shadow)}
  .pm-note.waiting:hover{border-color:#C8950C}
  .pm-acts{display:flex;align-items:center;gap:8px;white-space:nowrap}
  .pm-chip-wait{color:#7a5c05;background:#FFF3D0;border-color:#E8C874;font-weight:800}
  .pm-note .rc-body{grid-column:1/-1;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
  .pm-empty{background:#fff;border:1px dashed var(--line);border-radius:var(--r-md);padding:24px;text-align:center;color:var(--muted);font-size:var(--t-sm)}
  @media(max-width:760px){
    .pm-row{grid-template-columns:1fr;gap:8px}
    .pm-stats{justify-content:flex-start}
  }
  /* ----- Archive detail (info modal) + print surface ----- */
  .pm-detail{text-align:left}
  .pm-detail-head{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}
  .pm-detail-head h3{font-family:var(--font-head);font-size:var(--t-lg);color:var(--navy);margin:0 0 4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .pm-detail-sub{font-size:12.5px;color:var(--muted)}
  .pm-detail .fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:4px}
  .pm-win b{color:var(--navy)}
  .pm-win-b{margin-top:3px;font-size:12.5px;color:var(--ink,#333);line-height:1.5}
  .pm-win-k{display:inline-block;min-width:78px;font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--camel)}
  .pm-acts{display:flex;justify-content:flex-end;margin-top:24px}
  .pm-print{padding:8px 4px}
  .pm-print-head{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--navy);padding-bottom:14px;margin-bottom:20px;color:var(--navy)}
  .pm-print-mark{color:var(--navy);display:flex}
  .pm-print-co{font-family:var(--font-head);font-size:20px;font-weight:700;color:var(--navy)}
  .pm-print-doc{font-size:var(--t-sm);color:var(--muted);text-transform:uppercase;letter-spacing:1px}
  #printRoot{display:none}

  /* ===== Meeting record (rich archive detail + printout) ===== */
  .rep-badge{display:inline-block;font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#fff;background:var(--navy);border-radius:999px;padding:3px 10px;vertical-align:middle}
  .rep-att{font-size:var(--t-sm);color:var(--muted);margin-top:8px}
  .rep-att-t{color:#4a5286;font-style:italic}
  .rep-sec{margin-top:18px}
  /* executive sign-off decisions block: a framed callout so the senior-executive items stand out */
  .rep-exec{margin-top:20px;padding:14px 16px;background:#fbf8f1;border:1px solid #e7dcc4;border-left:4px solid var(--gold);border-radius:var(--r-sm)}
  .rep-exec .fl-h{margin-top:0;color:var(--navy)}
  .rep-exec-lede{margin:2px 0 8px;font-size:12.5px;line-height:1.5;color:var(--muted)}
  .rep-exec-what{display:inline-block;font-size:var(--t-xs);font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--camel);margin-right:6px}
  .rep-row{padding:8px 0;border-bottom:1px solid var(--line)}
  .rep-row:last-child{border-bottom:none}
  .rep-row-top{display:flex;gap:12px;align-items:center;justify-content:space-between}
  .rep-row-main{font-size:var(--t-sm);color:var(--ink,#222);font-weight:600;flex:1;min-width:0}
  .rep-row-meta{display:flex;gap:8px;align-items:center;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
  .rep-row-sub{font-size:var(--t-xs);color:var(--muted);margin-top:3px;line-height:1.5}
  .rep-who{font-size:var(--t-xs);color:var(--camel);font-weight:700}
  .rep-q{display:inline-block;font-size:var(--t-xs);font-weight:700;color:var(--muted);background:#f1f0ec;border-radius:5px;padding:2px 7px}
  .rep-rates{display:flex;flex-wrap:wrap;gap:10px}
  .rep-rate{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 14px;text-align:center;min-width:70px}
  .rep-rate b{display:block;font-size:var(--t-lg);color:var(--navy);font-family:var(--font-num);line-height:1}
  .rep-rate span{font-size:11px;color:var(--muted)}
  .rep-rate-avg{background:var(--navy);border-color:var(--navy)}
  .rep-rate-avg b{color:#fff}
  .rep-rate-avg span{color:#cdd6f5}
  .rep-note{padding:9px 0;border-bottom:1px solid var(--line)}
  .rep-note:last-child{border-bottom:none}
  .rep-note-h{font-size:var(--t-xs);color:var(--camel);font-weight:700}
  .rep-note-by{color:var(--muted);font-weight:500;font-style:italic}
  .rep-note-b{font-size:var(--t-sm);color:var(--ink,#222);margin-top:3px;line-height:1.5;white-space:pre-wrap}
  .rep-log{padding:8px 0;border-bottom:1px solid var(--line)}
  .rep-log:last-child{border-bottom:none}
  .rep-log-h{font-size:var(--t-sm);color:var(--navy)}
  .rep-log-t{color:var(--muted);font-weight:500;font-size:11px}
  .rep-log-d{margin-top:3px;display:flex;flex-direction:column;gap:2px}
  .rep-chg{font-size:var(--t-sm);color:var(--ink,#333)}
  .rep-chg b{color:var(--camel)}
  .rep-board{margin-top:22px}
  .rep-acc{border:1px solid var(--line);border-radius:var(--r-sm);margin-top:8px;overflow:hidden;background:#fff}
  .rep-acc summary{cursor:pointer;padding:11px 14px;font-size:var(--t-sm);font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--navy);list-style:none;display:flex;align-items:center;gap:8px}
  .rep-acc summary::-webkit-details-marker{display:none}
  .rep-acc summary::before{content:'';width:7px;height:7px;border-right:2px solid var(--camel);border-bottom:2px solid var(--camel);transform:rotate(-45deg);transition:transform .15s}
  .rep-acc[open] summary::before{transform:rotate(45deg)}
  .rep-count{font-weight:600;color:var(--muted);font-size:11px}
  .rep-acc-body{padding:2px 14px 10px}

  @media print{
    #sidebar,#fab,.spr-quick,#appShell,.sprint-rail,.sprint-foot,.topbar,#modal,#infoModal{display:none!important}
    body.printing-archive #sprintRunner{display:none!important}
    body.printing-archive #printRoot{display:block!important;background:#fff;padding:0}
    .sprint-timer,.sprint-pause,.sprint-home,.sprint-close{display:none!important}
    #sprintRunner{position:static;background:#fff}
    /* Keep the client logo + agenda title on the printout, readable on white paper. */
    .sprint-head{background:#fff!important;color:var(--navy)!important;border-bottom:2px solid var(--navy);padding:0 0 12px;margin-bottom:18px}
    .sh-brand,.sh-mark,.sh-title,.sh-agenda{color:var(--navy)!important}
    .sh-co em,.sh-stepline,.sh-stepline b,.sh-stepline span{color:var(--muted)!important}
    .sh-title{border-left-color:#d8d8d8}
    .sprint-stage{overflow:visible;padding:0}
    body{background:#fff}
    /* Meeting record: expand every section and keep rows whole across page breaks. */
    .rep-acc-body{display:block!important}
    .rep-acc summary::before{display:none}
    .rep-row,.rep-note,.rep-log,.rep-acc,.pm-win,.rep-rate{break-inside:avoid}
    .fl-h{break-after:avoid}
    /* Vision & Values one-pager: show only #vvPage, hide all chrome + other views. */
    body.printing-vision #appShell{display:block!important}
    body.printing-vision .topbar,body.printing-vision #sidebar,body.printing-vision #fab{display:none!important}
    body.printing-vision .content{padding:0!important}
    body.printing-vision .view{display:none!important}
    body.printing-vision #view-vision{display:block!important}
    body.printing-vision .no-print{display:none!important}
    body.printing-vision .vv-page{box-shadow:none!important;border:0!important;margin:0!important;max-width:none!important}
    body.printing-vision .vv-sec,body.printing-vision .vv-vcard,body.printing-vision .vv-imp{break-inside:avoid}
    /* Any working page, printed the same way (2026-09-12). The Scoreboard had a Board Pack
       and the Vision page printed; the Strategy Map, My Work and the Parking Lot had no way
       off the screen at all. `printing-page` isolates whichever view is on, so one rule
       covers them all and a new view needs no new CSS. */
    body.printing-page #appShell{display:block!important}
    body.printing-page .topbar,body.printing-page #sidebar,body.printing-page #fab,
    body.printing-page .spr-quick,body.printing-page #sprintRunner{display:none!important}
    body.printing-page .content{padding:0!important}
    body.printing-page .view{display:none!important}
    body.printing-page .view.active{display:block!important}
    body.printing-page .no-print,body.printing-page .map-tools,body.printing-page .mt-addbar,
    body.printing-page .itemx,body.printing-page .mt-grip{display:none!important}
    body.printing-page .card,body.printing-page .kcard,body.printing-page .mt-row,
    body.printing-page .pk,body.printing-page .mw-card{break-inside:avoid;box-shadow:none!important}
    body.printing-page .pg-src{break-before:avoid}
  }
  @media(max-width:820px){
    .sh-co{display:none}
    .sprint-stage{padding:20px 16px 36px}
    .sprint-head,.sprint-foot{padding-left:16px;padding-right:16px}
  }

/* ===== Report Console (scoped .rpc) ===== */
.rpc-intro{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin-bottom:18px;box-shadow:var(--shadow)}
.rpc-intro h2{font-family:var(--font-head);font-size:var(--t-lg);margin:0 0 6px;color:var(--navy)}
.rpc-intro p{margin:0;font-size:var(--t-base);color:var(--ink);max-width:880px;line-height:1.55}
.rpc-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:20px}
.rpc-tile{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--shadow)}
.rpc-tile .n{font-family:var(--font-num);font-size:var(--t-xl);font-weight:600;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.rpc-tile .l{font-size:var(--t-xs);font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-top:6px}
.rpc-tile.ok{border-top-color:#52823D}.rpc-tile.ok .n{color:#52823D}
.rpc-tile.soon{border-top-color:var(--gold)}.rpc-tile.soon .n{color:var(--gold-ink)}
.rpc-tile.over{border-top-color:#990000}.rpc-tile.over .n{color:#990000}
.rpc-tile .bar{height:6px;background:var(--line);border-radius:4px;margin-top:10px;overflow:hidden}
.rpc-tile .bar>i{display:block;height:100%;background:#52823D;border-radius:4px}
.rpc-grp{font-family:var(--font-head);font-size:var(--t-md);font-weight:700;color:var(--navy);margin:24px 0 10px;display:flex;align-items:center;gap:10px}
.rpc-grp::before{content:'';width:5px;height:18px;border-radius:3px;background:var(--gold)}
.rpc-grp .ct{font-size:var(--t-xs);font-weight:700;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:3px 10px}
.rpc-card{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--line);border-radius:var(--r-md);padding:15px 18px;margin-bottom:10px;display:grid;grid-template-columns:1fr auto;gap:12px 24px;align-items:center;box-shadow:var(--shadow)}
.rpc-card.received{border-left-color:#52823D}
.rpc-card.overdue{border-left-color:#990000}
.rpc-card.soon{border-left-color:var(--gold)}
.rpc-card.auto{border-left-color:var(--blue)}
.rpc-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rpc-name{font-size:var(--t-base);font-weight:800;color:var(--navy)}
.rpc-badge{font-size:var(--t-xs);font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:2px 8px;border-radius:5px;background:#f2f0e9;color:var(--muted)}
.rpc-meta{display:flex;gap:15px;flex-wrap:wrap;font-size:var(--t-sm);color:var(--muted);font-weight:600;margin-top:5px}
.rpc-meta b{color:var(--navy)}
.rpc-meta .tbd{color:#990000;font-weight:800}
select.rpc-owner{font:700 var(--t-sm) Inter,sans-serif;color:var(--navy);background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 8px;cursor:pointer;max-width:230px}
select.rpc-owner.tbd-sel{color:#990000;border-color:#990000;background:#F8D7DA}
.rpc-drives-h{font-size:var(--t-xs);font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin:8px 0 4px}
.rpc-chips{display:flex;flex-wrap:wrap;gap:5px}
.rpc-chip{font-size:var(--t-xs);font-weight:600;color:var(--navy);background:#EAF1FA;border:1px solid #d3e3f5;border-radius:var(--r-sm);padding:2px 8px}
.rpc-note{font-size:var(--t-xs);color:var(--muted);margin-top:7px;line-height:1.5;max-width:640px}
.rpc-right{text-align:right;min-width:200px}
.rpc-duebig{margin-bottom:10px}
.rpc-duebig-l{font:800 var(--t-xs) Inter,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:#4a5286}
.rpc-duebig-d{font:800 var(--t-lg) Inter,sans-serif;color:var(--navy);letter-spacing:-.5px;line-height:1.15;margin-top:1px}
.rpc-duebig.over .rpc-duebig-l,.rpc-duebig.over .rpc-duebig-d{color:#990000}
.rpc-duebig-s{font:600 var(--t-xs) Inter,sans-serif;color:var(--muted);margin-top:3px;line-height:1.45}
.rpc-due{font-size:var(--t-xs);color:var(--muted);font-weight:600;margin-bottom:8px;line-height:1.5}
.rpc-due .d{color:var(--navy);font-weight:800}
.rpc-due .d.over{color:#990000}
.rpc-pill{display:inline-block;font-size:var(--t-xs);font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:999px;margin-bottom:8px}
.rpc-pill.over{background:#F8D7DA;color:#990000}
.rpc-pill.soon{background:#FBF3DE;color:#8a6a00}
.rpc-pill.up{background:#f2f0e9;color:var(--muted)}
.rpc-pill.auto{background:#E4F3E5;color:#1B8415}
.rpc-btn{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;border:none;border-radius:var(--r-sm);padding:10px 17px;font:800 12.5px Inter,sans-serif;cursor:pointer;white-space:nowrap}
.rpc-btn:hover{background:var(--navy-soft)}
.rpc-btn svg{width:14px;height:14px}
.rpc-btn.done{background:#E4F3E5;color:#1B8415;cursor:default}.rpc-btn.done:hover{background:#E4F3E5}
.rpc-rcvd{font-size:var(--t-sm);color:#1B8415;font-weight:800;margin-top:6px}
.rpc-rcvd-sub{font-size:var(--t-xs);color:#2a3160;font-weight:600;margin-top:2px}
/* One line per file on a slot. A card can hold several now (2026-09-14). */
.rpc-rcvd a{color:var(--muted);font-weight:600;text-decoration:underline;cursor:pointer}
.rpc-relink{font-size:var(--t-xs);color:#8a6a00;font-weight:700;background:none;border:none;cursor:pointer;margin-top:3px;text-decoration:underline;padding:0}
/* Financial boards keep MD's compact tile anatomy — the 2x headers were a
   Strategy Scoreboard request and leaked here through .ph */
.finb .sb-tile .sbt-name{font-size:var(--t-xl);letter-spacing:0;line-height:1.2}
.finb .sb-tile .sbt-head{margin-bottom:8px}
.finb .sb-tile .ph-kpi{font-size:var(--t-2xl);letter-spacing:-1px}
.finb .mchart svg{width:100%;height:auto;display:block}
/* Axis labels and value text sit above the hover zones and would otherwise
   swallow the pointer, leaving dead spots mid-chart (Lavon 2026-08-10). */
.mchart svg text{pointer-events:none}
.mchart svg .has-tip{cursor:default}
.pnl-togs{display:flex;gap:4px}
.pnl-tog{background:#fff;border:1px solid #d7dbe0;color:#6a7075;border-radius:6px;padding:4px 11px;font:700 11px Inter,sans-serif;cursor:pointer;white-space:nowrap}
.pnl-tog:hover{border-color:var(--navy);color:var(--navy)}
.pnl-tog.on{background:var(--navy);border-color:var(--navy);color:#fff}
.cmr-leg{display:flex;align-items:center;gap:6px;font:700 10.5px Inter,sans-serif;color:#5a6270}
.cmr-leg i{display:inline-block;width:11px;height:11px;border-radius:3px}
.cmr-leg em{font-style:normal;font-weight:600;color:#9aa0a8}
.cmr-click{cursor:pointer;border-radius:7px}
.cmr-click:hover{background:#F4F7FB}
.cmr-ents{margin-top:6px}
.cmr-ent{display:flex;align-items:center;gap:12px;padding:6px 4px}
.cmr-ent-nm{flex:0 0 170px;font:700 12.5px Inter,sans-serif;color:var(--navy);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmr-ent-bar{position:relative;flex:1 1 auto;height:20px;background:#EDF0F4;border-radius:5px;overflow:hidden}
.cmr-ent-bar i{position:absolute;left:0;top:0;bottom:0;background:#8FB4E3;border-radius:5px 0 0 5px}
.cmr-ent-bar b{position:absolute;left:0;top:0;bottom:0;background:#12233f;border-radius:5px 0 0 5px}
.cmr-ent-val{flex:0 0 96px;text-align:right;font:800 12.5px Inter,sans-serif;color:var(--navy)}
.cmr-ent-res{flex:0 0 118px;text-align:right;font:600 10.5px Inter,sans-serif;color:#8a8f9c}
.rpc-covers{display:inline-block;font:700 11px Inter,sans-serif;color:#5a6270;background:#eef0f3;border:1px solid #e0e3e8;border-radius:var(--r-sm);padding:5px 9px;margin:6px 0 8px;white-space:nowrap}
.rpc-parts{margin:8px 0 4px;text-align:left}
.rpc-parts-head{font-size:var(--t-xs);font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#4a5286;margin-bottom:6px}
.rpc-part{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:5px;background:var(--card)}
.rpc-part.in{background:#F4FAF4;border-color:#CFE6CB}
.rpc-part-nm{flex:1 1 auto;font:700 var(--t-xs) Inter,sans-serif;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rpc-part-file{font:600 var(--t-xs) Inter,sans-serif;color:#1B8415;cursor:pointer;text-decoration:underline;white-space:nowrap}
.rpc-part-btn{flex:0 0 auto;background:var(--navy);color:#fff;border:none;border-radius:var(--r-sm);padding:4px 10px;font:700 var(--t-xs) Inter,sans-serif;cursor:pointer}
.rpc-part-btn.again{background:#fff;color:#4a5286;border:1px solid #c9ced6}
.rpc-part-btn:hover{opacity:.9}
.rpc-week{font:600 11px Inter,sans-serif;color:var(--navy);background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 8px;margin:6px 0 8px;max-width:230px;cursor:pointer}
@media(max-width:640px){.rpc-card{grid-template-columns:1fr}.rpc-right{text-align:left}}

/* ===== Weekly Financial & Ops Dashboard (.wkd) + share shell (.shr) ===== */
.wkd-sec{font-family:var(--font-head);font-size:var(--t-lg);font-weight:700;color:var(--navy);margin:20px 0 12px;display:flex;align-items:center;gap:10px}
.wkd-sec::before{content:'';width:5px;height:18px;border-radius:3px;background:var(--gold)}
.wkd-sec .tag{font-size:var(--t-xs);font-weight:700;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:3px 10px;font-family:Inter,sans-serif}
.wkd-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:820px){.wkd-grid{grid-template-columns:1fr}}
.wkd-card{background:var(--card);border:1px solid var(--line);border-top:4px solid #384d9b;border-radius:var(--r-md);padding:18px 20px;box-shadow:var(--shadow)}
.wkd-card h4{font-size:var(--t-sm);font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.wkd-card .big{font-family:var(--font-num);font-size:var(--t-3xl);font-weight:600;line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums}
.wkd-card .wk{font-size:var(--t-xs);color:var(--muted);font-weight:600;margin:2px 0 12px}
.wkd-bars{display:flex;flex-direction:column;gap:7px}
.wkd-brow{display:grid;grid-template-columns:128px 1fr 92px;align-items:center;gap:10px;font-size:var(--t-sm)}
.wkd-brow .bl{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wkd-brow .bt{height:11px;background:#f0efe9;border-radius:var(--r-sm);overflow:hidden}
.wkd-brow .bt i{display:block;height:100%;border-radius:var(--r-sm);background:#384d9b}
.wkd-brow.dim .bt i{background:#c6cde4}
.wkd-brow .bv{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.wkd-empty{border:1.5px dashed var(--line);border-radius:var(--r-md);padding:22px 16px;text-align:center;color:var(--muted);font-size:var(--t-sm);line-height:1.6;background:var(--card)}
.wkd-empty b{color:var(--navy)}
.wkd-legend{display:flex;gap:16px;font-size:var(--t-xs);font-weight:700;color:var(--muted);margin:2px 0 10px}
.wkd-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.wkd-twrap{overflow-x:auto}
.wkd-mhead,.wkd-mrow{display:grid;grid-template-columns:1fr 130px 130px 96px;gap:10px;align-items:center;padding:8px 4px;font-size:var(--t-sm)}
.wkd-mhead{font-size:var(--t-xs);font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.wkd-mrow{border-bottom:1px solid #f0efe9}
.wkd-mrow:last-child{border-bottom:none}
.wkd-mrow .mn{font-weight:700;color:var(--navy)}
.wkd-mrow .mg,.wkd-mrow .mv{color:var(--ink);font-weight:600}
.wkd-pill{font-size:var(--t-xs);font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:var(--r-md);text-align:center}
.wkd-pill.on{background:#E4F3E5;color:#176B11}
.wkd-pill.off{background:#F8D7DA;color:#990000}
.wkd-pill.none{background:#f0efe9;color:var(--muted)}
.wkd-share{margin-top:18px;font-size:var(--t-sm);color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wkd-share code{background:#f0efe9;border-radius:var(--r-sm);padding:4px 9px;font-size:var(--t-xs);color:var(--navy);word-break:break-all}
.wkd-inmeeting{margin-bottom:14px}
/* status ribbon (reporting week / source files / freshness) */
/* The Latest-uploads ribbon was removed 2026-09-12; cards carry their own OUT OF DATE
   flag instead. .wkr-btn is kept below — the Report Console reuses it for Reload. */
.wkr-btn{margin-left:auto;background:var(--navy);color:#fff;border:none;border-radius:var(--r-sm);padding:10px 16px;font:800 12.5px Inter,sans-serif;cursor:pointer;white-space:nowrap}
/* Location strip on the Weekly Dashboard: one chip per facility, tap to re-scope every card (2026-09-10) */
.wkloc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid #E3E7ED;border-radius:var(--r-md);padding:8px 12px;margin:0 0 12px}
.wkloc-l{font-size:var(--t-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5A6472;margin-right:4px}
.wkloc-chip{font-family:inherit;display:inline-flex;flex-direction:column;align-items:flex-start;gap:0;background:#fff;border:1px solid #E3E7ED;border-radius:var(--r-sm);padding:4px 12px;cursor:pointer;color:var(--navy);line-height:1.3}
.wkloc-chip b{font-size:var(--t-sm);font-weight:800}
.wkloc-chip span{font-size:var(--t-xs);font-weight:700;color:#5A6472}
.wkloc-chip span.ok{color:#1B8415}.wkloc-chip span.mid{color:#8a6a00}.wkloc-chip span.low{color:#990000}
.wkloc-chip:hover{border-color:var(--navy)}
.wkloc-chip.on{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy)}

.wkr-btn:hover{background:var(--navy-soft)}
.wkr-seg{min-width:0;flex:1}
.wkr-k{font-size:var(--t-xs);font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--gold-deep,#8a6a00);margin-bottom:2px}
.wkr-div{width:1px;align-self:stretch;background:var(--line)}
.wkr-fresh.live{background:#A4C2F4;color:#131B55}
.wkc .wkr-k{color:#E8B33D}
.wkc .wkr-div{background:rgba(255,255,255,.12)}
.wkd-heroh{font-size:var(--t-xs);font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);padding:16px 24px 0}
.wkc .wkd-heroh{color:#8FA6C0}
/* hero + weekly cash history side by side */
.wkd-herorow{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;align-items:stretch}
.wkd-herorow .sb-hero{margin-bottom:0}
.wkd-herotrend h4{font-size:var(--t-sm);font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.wkd-trendnote{font-size:var(--t-xs);color:var(--muted);font-style:italic;margin-top:8px;line-height:1.5}
@media(max-width:900px){.wkd-herorow{grid-template-columns:1fr}}
/* at-a-glance strip */
.wkd-glab{font-size:var(--t-xs);font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--camel);margin:18px 4px 10px}
.wkd-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.wkd-gl{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--shadow);text-align:center}
.gl-lab{font-size:var(--t-xl);font-weight:700;letter-spacing:0;text-transform:none;color:var(--navy);line-height:1.2}
.gl-val{font-family:var(--font-num);font-size:28px;font-weight:600;color:var(--navy);margin:6px 0 2px;font-variant-numeric:tabular-nums}
.gl-foot{font-size:10.5px;color:var(--muted);font-style:italic}
/* feed-driven tile bits */
.sbt-tag.tag-auto{background:#E4F3E5;color:#1B8415}
.sbt-src{font-size:var(--t-xs);color:var(--muted);font-weight:600;margin:2px 0 6px}
.sbt-banks{display:flex;flex-direction:column;gap:7px;margin:4px 0 10px}
.sbt-bankrow{display:flex;flex-direction:column;gap:3px}
.sbt-bankline{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--t-xs);gap:8px}
.sbt-bankline .bl{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbt-bankline .bv{font-weight:700;font-variant-numeric:tabular-nums;color:var(--navy)}
.sbt-bankrow .bt{height:6px;background:#f0efe9;border-radius:4px;overflow:hidden}
.sbt-bankrow .bt i{display:block;height:100%;border-radius:4px;background:#384d9b}
.sbt-banktotal .sbt-roval{font-size:var(--t-2xl);width:auto}
.sbt-banktotal .sbt-unit{margin-left:6px}
@media(max-width:640px){.wkd-mhead,.wkd-mrow{grid-template-columns:1fr 90px 80px}.wkd-mhead span:nth-child(4),.wkd-mrow .wkd-pill{display:none}}
/* ===== Weekly Dashboard canvas (.wkc) — light, Power-BI style (2026-08-01) ===== */
.wkc{background:#EEF1F5;border:1px solid #E3E7ED;border-radius:var(--r-md);padding:18px 20px 24px}
.wkc .wkd-card,.wkc .wkd-gl,.wkc .sb-tile{background:#fff;border-color:#E3E7ED;box-shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06)}
.wkc .sb-tile{border-top-width:3px}
.wkc .wkd-glab,.wkc .sb-sec-h{color:#5A6472;border-left-color:#384d9b}
.wkc .sb-sec-h small{color:#4a5286}
.wkc .wkr-k{color:#4a5286}
.wkc .wkd-card h4{color:#5A6472}
.wkc .gl-lab{color:var(--navy)}
/* share shell */
body.shareview #authGate,body.shareview #setPwGate,body.shareview #appShell,body.shareview #fab{display:none!important}
#shareRoot{min-height:100vh;background:#F3F4F7}
body.shareview .shr-wrap .wkc{box-shadow:none;background:transparent;border:none;padding:10px 0 0}
.shr-load{padding:80px 20px;text-align:center;color:#6b7088;font-size:14px}
.shr-top{background:var(--navy);color:#fff;padding:14px 22px;display:flex;align-items:center;gap:16px}
/* FHI masthead on the share page (2026-09-10) - the same lockup the AHM dashboard carries, on Execute's 4/8pt grid and type scale */
.shr-top.mast-top{display:block;padding:12px 32px 0;border-bottom:3px solid #C8950C}
.mast-row{display:flex;align-items:center;gap:16px;width:100%;flex-wrap:wrap}
.mast-lockup{display:flex;align-items:center;gap:16px}
.exec-lockup{height:72px;width:auto;max-width:100%;display:block}
.mast-sel select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2 4.5l4 4 4-4' fill='none' stroke='%23131B55' stroke-width='1.8' stroke-linecap='round'/></svg>") no-repeat right 12px center/12px 12px;color:#131B55;border:0;border-radius:var(--r-sm);padding:8px 32px 8px 16px;font:700 var(--t-sm) Inter,system-ui,sans-serif;min-width:160px;cursor:pointer}
.mast-sel select:focus{outline:2px solid #C8950C;outline-offset:1px}
@media(max-width:760px){.exec-lockup{height:56px}}

.mast-client{background:#fff;border-radius:var(--r-sm);padding:8px 16px;display:flex;align-items:center;flex-shrink:0;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.mast-client img{height:32px;width:auto;display:block}
.mast-word{font-family:'Libre Baskerville',Baskerville,Georgia,serif;font-size:var(--t-xl);font-weight:700;line-height:1.05;color:#fff;letter-spacing:.2px}
.mast-sub{font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;color:#92C0E9;font-weight:700;margin-top:8px;display:flex;align-items:center}
.mast-sub b{color:#fff;font-weight:700}
.mast-nav{display:flex;gap:4px;background:rgba(255,255,255,.10);border-radius:var(--r-sm);padding:4px;margin-left:auto;flex-wrap:wrap}
.mnav{color:rgba(255,255,255,.85);text-decoration:none;font:700 var(--t-sm) Inter,system-ui,sans-serif;padding:8px 16px;border-radius:var(--r-sm);white-space:nowrap}
.mnav.active{background:#fff;color:#131B55}
.mnav:hover{background:rgba(255,255,255,.14)}
.mnav.active:hover{background:#fff}
.mast-strip{display:flex;align-items:center;gap:16px;width:100%;margin-top:8px;height:40px;border-top:1px solid rgba(255,255,255,.14)}
.mast-strip img{height:24px;width:auto;display:block;border-radius:var(--r-sm)}
.mast-strip .pf{font:700 var(--t-xs) Inter,system-ui,sans-serif;letter-spacing:.16em;color:#92C0E9;margin-right:auto}
.bh-live{display:inline-flex;align-items:center;gap:8px;font:600 var(--t-sm) Inter,system-ui,sans-serif;color:rgba(255,255,255,.85);cursor:pointer;white-space:nowrap}
.bh-live b{color:#fff;font-weight:800}
.bh-live .dot{width:8px;height:8px;border-radius:50%;background:#52823D;box-shadow:0 0 0 0 rgba(82,130,61,.6);animation:bhpulse 2.4s ease-out infinite}
@keyframes bhpulse{0%{box-shadow:0 0 0 0 rgba(82,130,61,.6)}70%{box-shadow:0 0 0 8px rgba(82,130,61,0)}100%{box-shadow:0 0 0 0 rgba(82,130,61,0)}}
.bh-foot{margin:28px 0 16px;padding:16px 0 0;border-top:1px solid #D9DDEB;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:600 var(--t-xs) Inter,system-ui,sans-serif;color:#4a5286;letter-spacing:.02em}
.bh-foot b{color:#131B55}.bh-foot .sep{opacity:.5}
@media(max-width:760px){.mast-nav{margin-left:0;order:3;width:100%;margin-top:8px}.shr-top.mast-top{padding:12px 16px 0}}

.shr-logo{background:#fff;border-radius:10px;padding:6px 10px;display:flex;align-items:center}
.shr-logo img{height:30px;display:block}
.shr-name{font-family:var(--font-head);font-size:18px;font-weight:800}
.shr-sub{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#cdd3f0;font-weight:700;margin-top:3px}
.shr-live{margin-left:auto;font-size:11.5px;font-weight:600;color:#cdd3f0}
.shr-wrap{max-width:1280px;margin:0 auto;padding:10px 22px 60px}

/* ===== MD-Medical dashboard (scoped .mdx) ===== */
.mdx{
    --bh-navy:   #131B55;
    --bh-blue:   #92C0E9;
    --bh-llg:    #D1CCBD;
    --bh-camel:  #884934;
    --bh-white:  #FFFFFF;
    --bh-black:  #000000;
    /* Was a hardcoded pale blue #E8EDF4, which made the Scoreboard the only view in the app
       not sitting on cream — a fourth surface level that added no meaning. Points at the shared
       --cream token (LLG's call, 2026-08-28) so the two can never drift apart again. */
    --page-bg:   var(--cream);
    --navy-05:   #F0F1F5;
    --navy-10:   #E2E3EA;
    --navy-15:   #D4D6E0;
    --blue-08:   #EDF4FA;
    --blue-15:   #D5E7F5;
    --camel-06:  #FAF3E8;
    --camel-12:  #F5E6CC;
    --llg-06:    #F5F3EF;
    --status-green:    #1B8415;
    --status-green-bg: #D4EDDA;
    --status-red:      #C41E1E;
    --status-red-bg:   #F8D7DA;
    /* The --st-* palette was removed 2026-08-28: it rendered Off Track as brown on pale
       yellow and In Process in #1155CC, the blue that means On Track everywhere else. The
       .mdx pills below now use the canonical palette, the same one the Strategy Map uses. */
    --radius:    14px;
    --radius-sm: 8px;
    --shadow:    0 1px 3px rgba(19,27,85,0.08), 0 6px 20px rgba(19,27,85,0.10);
    --shadow-lg: 0 2px 10px rgba(19,27,85,0.10), 0 16px 38px rgba(19,27,85,0.16);
    --ease:      cubic-bezier(0.4, 0, 0.2, 1);
}

.mdx *, .mdx *::before, .mdx *::after{ box-sizing: border-box; margin: 0; padding: 0; }
.mdx, .mdx{ overflow-x: hidden; }
.mdx{
    font-family: 'Inter', 'Mulish', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    background: var(--page-bg);
    color: var(--bh-black);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* TOP BAR */
.mdx .topbar{
    background: var(--bh-navy);
    padding: 0 48px;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 3px 16px rgba(19,27,85,0.30);
}
.mdx .topbar-brand{ display: flex; align-items: center; gap: 20px; }
.mdx .topbar-logo-img{
    height: 42px;
    width: auto;
    filter: brightness(0) invert(1);
    margin-right: -10px;
}
.mdx .topbar-logo-text{ color: #FFFFFF; font-size:var(--t-lg); font-weight: 800; letter-spacing: 2.5px; }
.mdx .topbar-divider{ width: 1px; height: 32px; background: rgba(255,255,255,0.25); }
.mdx .topbar-client{ color: #FFFFFF; font-size:var(--t-md); font-weight: 700; }
.mdx .topbar-subtitle{ color: rgba(255,255,255,0.85); font-size:var(--t-sm); font-weight: 600; letter-spacing: 0.3px; }
.mdx .topbar-right{ display: flex; align-items: center; gap: 18px; color: #FFFFFF; }
.mdx .topbar-meta{ color: rgba(255,255,255,0.75); font-size:var(--t-sm); font-weight: 500; }
.mdx .refresh-btn{
    display: flex; align-items: center; gap: 7px;
    padding: 8px 16px;
    background: var(--bh-blue);
    border: 1px solid var(--bh-blue);
    border-radius:var(--r-sm);
    color: var(--bh-navy);
    font-family: inherit;
    font-size:var(--t-sm);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s var(--ease);
    letter-spacing: 0.3px;
}
.mdx .refresh-btn:hover{ background: var(--blue-15); border-color: var(--bh-navy); transform: translateY(-1px); }
.mdx .refresh-btn.spinning svg{ animation: spin 0.8s linear; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.mdx .topbar-live{ display: flex; align-items: center; gap: 8px; font-size:var(--t-sm); font-weight: 600; }
.mdx .live-dot{
    width: 10px; height: 10px;
    background: #22c55e;
    border-radius: 50%;
    box-shadow: 0 0 8px rgba(34, 197, 94, 0.8);
    animation: pulse 1.6s ease-in-out infinite;
}
.mdx .live-dot.stale{ background: #C41E1E; box-shadow: 0 0 8px rgba(196,30,30,0.8); }
@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.6; transform: scale(1.35); }
}

/* CLIENT BANNER */
.mdx .client-banner{
    background: var(--bh-white);
    border-bottom: 3px solid var(--bh-blue);
    padding: 28px 48px;
}
.mdx .client-banner-inner{
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.mdx .client-name{ font-size:var(--t-3xl); font-weight: 800; color: var(--bh-navy); letter-spacing: -0.8px; line-height: 1.1; }
.mdx .client-tag{ font-size:var(--t-sm); color: var(--bh-camel); font-weight: 600; letter-spacing: 0.4px; text-transform: uppercase; }

/* QUARTER CONTEXT */
.mdx .quarter-context{
    background: var(--bh-navy);
    color: var(--bh-white);
    padding: 14px 48px;
}
.mdx .quarter-context-inner{
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.mdx .quarter-context-badge{
    background: var(--bh-blue);
    color: var(--bh-navy);
    padding: 6px 14px;
    border-radius:999px;
    font-size:var(--t-sm);
    font-weight: 800;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.mdx .quarter-context-detail{ font-size:var(--t-sm); opacity: 0.9; font-weight: 500; }

/* SCOPE TOGGLE */
.mdx .scope-toggle{
    display: inline-flex;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.24);
    border-radius:var(--r-md);
    padding: 3px;
    margin-left: auto;
}
.mdx .scope-btn{
    background: transparent;
    border: none;
    color: rgba(255,255,255,0.78);
    font-family: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius:999px;
    cursor: pointer;
    transition: all 0.2s var(--ease);
}
.mdx .scope-btn:hover{ color: var(--bh-white); }
.mdx .scope-btn.active{ background: var(--bh-white); color: var(--bh-navy); }

/* DASHBOARD */
.mdx .dashboard{
    max-width: 1400px;
    margin: 0 auto;
    padding: 32px 48px 64px;
}

/* SECTION LABEL — large visual callout */
.mdx .section-label{
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--bh-camel);
    margin: 40px 0 16px;
    padding-left: 16px;
    border-left: 5px solid var(--bh-camel);
    line-height: 1.1;
}
.mdx .section-label:first-child{ margin-top: 0; }
@media (max-width: 760px) {
    .mdx .section-label{
        font-size:var(--t-md);
        letter-spacing: 0.6px;
        margin: 32px 0 14px;
        padding-left: 12px;
        border-left-width: 4px;
    }
}

/* CARD */
.mdx .card{
    background: var(--bh-white);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    transition: box-shadow 0.25s var(--ease);
}
.mdx .card:hover{ box-shadow: var(--shadow-lg); }
.mdx .card-accent{ width: 100%; height: 4px; }
.mdx .card-header{
    padding: 24px 32px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.mdx .card-title{ font-size:var(--t-sm); text-transform: uppercase; letter-spacing: 1.2px; color: var(--bh-camel); font-weight: 700; }
.mdx .card-body{ padding: 0 32px 32px; }

/* DELIVERABLES KPI */
.mdx .deliv-kpi{ display: flex; align-items: center; gap: 24px; }
.mdx .deliv-kpi-num{ display: flex; align-items: baseline; gap: 8px; flex: none; }
.mdx .deliv-kpi-num b{ font-size:var(--t-3xl); font-weight: 800; color: var(--bh-navy); line-height: 1; }
.mdx .deliv-kpi-denom{ font-size:var(--t-md); font-weight: 700; color: var(--bh-camel); white-space: nowrap; }
.mdx .deliv-kpi-bar{ flex: 1; min-width: 90px; height: 10px; border-radius:var(--r-sm); background: #ece8dd; overflow: hidden; }
.mdx .deliv-kpi-bar span{ display: block; height: 100%; border-radius:var(--r-sm); background: var(--gold); transition: width 0.5s var(--ease); }
.mdx .deliv-kpi-pct{ font-size:var(--t-2xl); font-weight: 800; color: var(--gold); white-space: nowrap; flex: none; min-width: 52px; text-align: right; }
@media (max-width: 760px) {
    .mdx .deliv-kpi{ flex-wrap: wrap; gap: 12px 16px; }
    .mdx .deliv-kpi-pct{ margin-left: auto; }
    .mdx .deliv-kpi-bar{ flex-basis: 100%; order: 3; }
}

/* BHX HERO CARD (imp-unified-card) */
.mdx .imp-unified-card{ animation: fadeUp 0.45s ease-out both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.mdx .imp-unified-top{
    display: flex;
    align-items: center;
    gap: 40px;
    padding: 32px 40px 32px;
}
.mdx .imp-unified-ring{ position: relative; width: 170px; height: 170px; flex-shrink: 0; }
/* ⚠️ The canvas must FOLLOW the container, never be pinned to a fixed size.
   It was locked to 170px with !important while the container is resized to 192px
   at one breakpoint and 160px at another — so the drawn ring overflowed its own
   box and its centre sat 5px right and 5px below the box centre at one width,
   and 11px the other way at the next. The label centres on the BOX, so the score
   read as off-centre inside the ring. That was the whole bug; letter-spacing and
   padding had nothing to do with it. */
.mdx .imp-unified-ring canvas{ width: 100% !important; height: 100% !important; display: block; }
/* Same optical correction as .bhx-ring-label — see the note there. */
.mdx .imp-unified-ring-label{
    position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}
.mdx .imp-unified-ring-pct{font-family:var(--font-num); font-size:var(--t-3xl); font-weight: 800; color: var(--bh-navy); letter-spacing: -2px; line-height: 1; }
.mdx .imp-unified-ring-sub{ font-size:var(--t-xs); font-weight: 800; color: var(--bh-camel); text-transform: uppercase; letter-spacing: 1.5px; margin-top: 4px; }

.mdx .imp-unified-summary{ flex: 1; min-width: 0; }
.mdx .imp-unified-headline-row{ display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
.mdx .imp-unified-headline{ font-size:var(--t-2xl); font-weight: 800; color: var(--bh-navy); letter-spacing: -0.4px; line-height: 1.15; }
.mdx .imp-unified-subtitle{ font-size:var(--t-xs); font-weight: 800; color: var(--bh-camel); letter-spacing: 0.8px; text-transform: uppercase; margin-bottom: 10px; }
.mdx .imp-unified-detail{ font-size:var(--t-sm); color: var(--bh-navy); opacity: 0.78; line-height: 1.45; margin-bottom: 6px; }
.mdx .imp-unified-note{ font-size:var(--t-xs); color: var(--bh-camel); font-style: italic; opacity: 0.75; margin-bottom: 12px; }
.mdx .bhx-status-badge{
    display: inline-block;
    font-size:var(--t-xs);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 4px 12px;
    border: 2px solid;
    border-radius:var(--r-md);
    color: var(--bh-white);
    flex-shrink: 0;
}
.mdx .imp-unified-actions{ display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 8px; }

.mdx .bhx-how-btn, .mdx .imp-info-btn{
    display: inline-flex; align-items: center; gap: 8px;
    padding: 8px 16px;
    background: var(--bh-navy);
    color: var(--bh-white);
    border: 1px solid var(--bh-navy);
    border-radius: 8px;
    font-family: inherit; font-size:var(--t-sm); font-weight: 700; letter-spacing: 0.3px;
    cursor: pointer;
    transition: all 0.2s var(--ease);
}
.mdx .bhx-how-btn:hover, .mdx .imp-info-btn:hover{
    background: var(--bh-white); color: var(--bh-navy); transform: translateY(-1px); box-shadow: var(--shadow);
}
.mdx .imp-info-btn{
    padding: 6px 12px; font-size: 11px;
    background: transparent; color: var(--bh-camel); border-color: var(--navy-10);
}
.mdx .imp-info-btn:hover{ background: var(--bh-navy); color: var(--bh-white); border-color: var(--bh-navy); }

.mdx .imp-unified-divider{ height: 1px; background: var(--navy-10); margin: 0 36px; }
.mdx .imp-unified-breakdown{ padding: 24px 40px 40px; }
.mdx .imp-breakdown-section{ display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.mdx .imp-breakdown-title{ font-size: 14px; font-weight: 800; letter-spacing: 0.4px; color: var(--bh-navy); }

/* IMPERATIVE RING GRID */
.mdx .ring-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.mdx .ring-tile{
    border: 1px solid var(--navy-10);
    border-radius:var(--radius-sm);
    padding: 20px 18px 18px;
    text-align: center;
    background: var(--bh-white);
    cursor: pointer;
    transition: all 0.2s var(--ease);
    display: flex; flex-direction: column; align-items: center;
}
.mdx .ring-tile:hover{ border-color: var(--bh-navy); box-shadow: var(--shadow); transform: translateY(-2px); }
.mdx .ring-tile-pct{
    position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size:var(--t-xl); font-weight: 800; color: var(--bh-navy); letter-spacing: -0.6px;
}
.mdx .ring-tile-num{ font-size:var(--t-xs); font-weight: 800; letter-spacing: 1.2px; color: var(--bh-camel); text-transform: uppercase; margin-bottom: 4px; }
.mdx .ring-tile-name{ font-size:var(--t-sm); font-weight: 700; color: var(--bh-navy); line-height: 1.3; margin-bottom: 8px; min-height: 34px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mdx .ring-tile-focus{
    display: inline-block;
    background: var(--blue-08);
    color: var(--bh-navy);
    font-size:var(--t-xs); font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase;
    padding: 3px 10px;
    border-radius:var(--r-md);
    margin-bottom: 8px;
}
.mdx .ring-tile-cta{ font-size:var(--t-xs); font-weight: 700; color: var(--bh-camel); letter-spacing: 1px; text-transform: uppercase; }

/* OBJ HERO */
.mdx .obj-hero, .mdx .q-hero{
    background: var(--bh-white);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 32px 32px 24px;
    border-top: 4px solid var(--bh-navy);
    margin-bottom: 0;
}
.mdx .q-hero{ border-top-color: var(--bh-blue); }
.mdx .obj-hero-top, .mdx .q-hero-top{
    display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
    margin-bottom: 16px; flex-wrap: wrap;
}
.mdx .obj-hero-kicker, .mdx .q-hero-kicker{
    font-size:var(--t-xs); font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase;
    color: var(--bh-camel); margin-bottom: 6px;
}
.mdx .obj-hero-headline, .mdx .q-hero-headline{
    font-size:var(--t-xl); font-weight: 800; color: var(--bh-navy); letter-spacing: -0.4px; line-height: 1.2;
}
.mdx .obj-hero-sub, .mdx .q-hero-sub{ font-size:var(--t-sm); color: var(--bh-camel); margin-top: 4px; }
.mdx .obj-hero-score-wrap, .mdx .q-hero-score-wrap{ text-align: right; }
.mdx .obj-hero-score, .mdx .q-hero-score{ font-size:var(--t-3xl); font-weight: 800; letter-spacing: -1.4px; line-height: 1; }
.mdx .obj-hero-score-label, .mdx .q-hero-score-label{ font-size:var(--t-xs); font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--bh-camel); margin-top: 4px; }

.mdx .obj-hero-bar{
    display: flex; height: 22px; border-radius:var(--r-sm); overflow: hidden;
    background: var(--navy-10); margin-bottom: 12px;
}
.mdx .obj-hero-bar-seg{
    display: flex; align-items: center; justify-content: center;
    color: var(--bh-white); font-size:var(--t-xs); font-weight: 800;
    transition: flex 0.5s var(--ease);
    overflow: hidden; min-width: 0;
}
.mdx .obj-hero-bar-seg span{ white-space: nowrap; padding: 0 4px; }
.mdx .seg-ontrack{ background: #1155CC; }
.mdx .seg-done{ background: #52823D; }
.mdx .seg-offtrack{ background: #FFFF00; }
.mdx .seg-notdone{ background: #990000; }
.mdx .seg-onhold{ background: #5B21B6; }
.mdx .seg-move{ background: #E69138; }
.mdx .seg-inprocess{ background: #A4C2F4; }
.mdx .seg-blank{ background: #434343; }
/* Dark ink on this one: white on #94A3B8 measures 2.56, under the AA floor, and the
   same neutral carries #1c2030 on the other segment scale (2026-09-12 QC). */
.mdx .seg-notstarted{ background: #94A3B8; color:#1c2030; }
.mdx .seg-excluded{ background: var(--navy-15); color: var(--bh-camel); }

.mdx .obj-hero-legend, .mdx .q-hero-legend{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.mdx .legend-chip{
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--llg-06); border: 1px solid var(--navy-10); border-radius: 14px;
    padding: 4px 11px;
    font-size: 11px; color: var(--bh-navy); font-weight: 600;
}
.mdx .legend-chip i{
    display: inline-block; width: 8px; height: 8px; border-radius: 50%;
}
.mdx .legend-chip strong{ font-weight: 800; }
.mdx .legend-ontrack i{ background: #1155CC; }
.mdx .legend-done i{ background: #52823D; }
.mdx .legend-offtrack i{ background: #FFFF00; }
.mdx .legend-notdone i{ background: #990000; }
.mdx .legend-onhold i{ background: #5B21B6; }
.mdx .legend-move i{ background: #E69138; }
.mdx .legend-inprocess i{ background: #A4C2F4; }
.mdx .legend-blank i{ background: #434343; }
.mdx .legend-notstarted i{ background: #94A3B8; }
.mdx .legend-excluded i{ background: var(--navy-15); }

.mdx .obj-drill-toggle{
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--bh-navy); color: var(--bh-white);
    border: 1px solid var(--bh-navy); border-radius: 8px;
    padding: 9px 16px;
    font-family: inherit; font-size:var(--t-sm); font-weight: 700; letter-spacing: 0.3px;
    cursor: pointer;
    transition: all 0.2s var(--ease);
}
.mdx .obj-drill-toggle:hover{ transform: translateY(-1px); box-shadow: var(--shadow); }
.mdx .obj-drill-toggle .obj-drill-chev{ transition: transform 0.25s var(--ease); }
.mdx .obj-drill-toggle[aria-expanded="true"] .obj-drill-chev{ transform: rotate(180deg); }

.mdx .obj-drilldown{ margin-top: 20px; }
.mdx .obj-drilldown[hidden]{ display: none; }
.mdx .obj-deepdive-ctrl{
    display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
    background: var(--navy-05); border: 1px solid var(--navy-10);
    border-radius: var(--radius-sm); padding: 14px 16px;
    margin-bottom: 16px;
}
.mdx .ctrl-group{ display: flex; flex-direction: column; gap: 4px; }
.mdx .ctrl-label{ font-size:var(--t-xs); font-weight: 800; letter-spacing: 1px; color: var(--bh-camel); text-transform: uppercase; }
.mdx .ctrl-select, .mdx .ctrl-search{
    background: var(--bh-white);
    border: 1px solid var(--navy-15);
    border-radius:var(--r-sm);
    padding: 6px 10px;
    font-family: inherit; font-size:var(--t-sm); font-weight: 600; color: var(--bh-navy);
    min-width: 130px;
}
.mdx .ctrl-search{ min-width: 200px; flex: 1; align-self: flex-end; }
.mdx .ctrl-checkbox{
    display: inline-flex; align-items: center; gap: 6px;
    font-size:var(--t-sm); font-weight: 600; color: var(--bh-navy);
    align-self: flex-end;
    cursor: pointer;
}
.mdx .ctrl-checkbox input{ accent-color: var(--bh-navy); }
.mdx .obj-deepdive-count{
    font-size: 11px; font-weight: 700; letter-spacing: 0.4px;
    color: var(--bh-camel);
    align-self: flex-end;
    margin-left: auto;
}

/* ACCORDION */
.mdx .obj-accordion{ display: flex; flex-direction: column; gap: 8px; }
.mdx .acc-group{
    border: 1px solid var(--navy-10);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--bh-white);
}
.mdx .acc-group-head{
    display: flex; align-items: center; gap: 14px;
    padding: 14px 18px;
    cursor: pointer;
    transition: background 0.15s var(--ease);
    user-select: none;
}
.mdx .acc-group-head:hover{ background: var(--navy-05); }
.mdx .acc-group-chev{
    width: 12px; height: 12px;
    transition: transform 0.2s var(--ease);
    flex-shrink: 0;
    color: var(--bh-camel);
}
.mdx .acc-group.open .acc-group-chev{ transform: rotate(90deg); }
.mdx .acc-group-title{ font-size: 14px; font-weight: 800; color: var(--bh-navy); flex: 1; min-width: 0; }
.mdx .acc-group-sub{ font-size: 11px; color: var(--bh-camel); margin-top: 2px; font-weight: 600; }
.mdx .acc-group-tally{
    display: flex; align-items: center; gap: 10px;
    font-size: 11px; font-weight: 700; color: var(--bh-camel);
    flex-shrink: 0;
}
.mdx .acc-group-pct{
    font-size:var(--t-md); font-weight: 800; letter-spacing: -0.3px;
    padding: 2px 8px; border-radius: 8px;
}
.mdx .acc-group-bar{
    width: 100px; height: 8px; border-radius: 4px; background: var(--navy-10);
    display: flex; overflow: hidden;
}
.mdx .acc-group-bar > span{ display: block; min-width: 0; }
.mdx .acc-group-body{ display: none; padding: 4px 18px 14px; border-top: 1px solid var(--navy-05); }
.mdx .acc-group.open .acc-group-body{ display: block; }

.mdx .acc-row{
    display: grid; grid-template-columns: 1fr auto; gap: 14px;
    padding: 12px 0; border-bottom: 1px solid var(--navy-05);
}
.mdx .acc-row:last-child{ border-bottom: none; }
.mdx .acc-row-title{ font-size:var(--t-sm); font-weight: 600; color: var(--bh-navy); line-height: 1.4; }
.mdx .acc-row-sub{ font-size: 11px; color: var(--bh-camel); margin-top: 3px; }
.mdx .acc-row-meta{ display: flex; align-items: center; gap: 10px; flex-shrink: 0; align-self: start; }
.mdx .acc-row-owner{ font-size:var(--t-sm); color: var(--bh-camel); font-weight: 600; }
.mdx .acc-row-note{
    grid-column: 1 / -1;
    background: var(--camel-06);
    border-left: 3px solid var(--bh-camel);
    border-radius: 4px;
    padding: 8px 12px;
    margin-top: 8px;
    font-size:var(--t-sm);
    color: var(--bh-navy);
    font-style: italic;
}

/* STATUS PILLS */
.mdx .status-pill{
    display: inline-block;
    padding: 3px 11px;
    border-radius:var(--r-md);
    font-size:var(--t-xs);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex-shrink: 0;
}
.mdx .pill-on-track{ background:#1155CC; color:#fff; }
.mdx .pill-off-track{ background:#FFFF00; color:#1c2030; }
.mdx .pill-done{ background:#52823D; color:#fff; }
.mdx .pill-not-done{ background:#990000; color:#fff; }
.mdx .pill-on-hold{ background:#5B21B6; color:#fff; }
.mdx .pill-move{ background:#E69138; color:#fff; }
.mdx .pill-in-process{ background:#A4C2F4; color:#20325c; }
.mdx .pill-submitted{ background:#674EA7; color:#fff; }
.mdx .pill-ongoing{ background:#884934; color:#fff; }
.mdx .pill-delete{ background:#434343; color:#fff; }
.mdx .pill-blank{ background:#E8EBF0; color:#6B7280; }
.mdx .pill-not-started{ background:#E2E8F0; color:#475569; }

/* Q TREND — quarterly completion trend with 80% target line */
.mdx .trend-card{
    background: var(--llg-06);
    border: 1px solid var(--navy-10);
    border-radius:var(--radius-sm);
    padding: 18px 22px 14px;
    margin: 0 0 18px;
}
.mdx .trend-card-header{
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px; gap: 12px; flex-wrap: wrap;
}
.mdx .trend-title{
    font-size:var(--t-xs); font-weight: 800; letter-spacing: 1.2px;
    text-transform: uppercase; color: var(--bh-camel);
}
.mdx .trend-target-legend{
    font-size:var(--t-xs); font-weight: 700; color: var(--bh-camel);
    display: inline-flex; align-items: center; gap: 8px;
    text-transform: uppercase; letter-spacing: 0.5px;
}
.mdx .trend-target-legend::before{
    content: ''; display: inline-block; width: 22px; height: 2px;
    background: repeating-linear-gradient(90deg, var(--bh-camel) 0 4px, transparent 4px 8px);
}
.mdx .trend-plot{
    position: relative;
    height: 180px;
    margin-bottom: 8px;
}
.mdx .trend-target{
    position: absolute;
    left: 0; right: 0;
    bottom: 80%;
    height: 0;
    border-top: 2px dashed var(--bh-camel);
    pointer-events: none;
    z-index: 2;
}
.mdx .trend-target::after{
    content: 'TARGET 80%';
    position: absolute;
    right: 0; top: -8px;
    font-size:var(--t-xs); font-weight: 800;
    letter-spacing: 0.6px;
    color: var(--bh-camel);
    background: var(--llg-06);
    padding: 0 6px;
}
.mdx .trend-bars{
    display: flex; gap: 12px;
    height: 100%;
    align-items: stretch;
}
.mdx .trend-bar{
    flex: 1; min-width: 0;
    position: relative;
    display: flex; flex-direction: column; justify-content: flex-end;
    background: rgba(19,27,85,0.05);
    border-radius:4px 4px 0 0;
    overflow: visible;
}
.mdx .trend-bar-fill{
    width: 100%;
    border-radius:4px 4px 0 0;
    transition: height 0.6s var(--ease);
    position: relative;
    z-index: 1;
}
.mdx .trend-bar-fill.fill-on{ background: var(--status-green); }
.mdx .trend-bar-fill.fill-off{ background: var(--status-red); }
.mdx .trend-bar-empty{
    position: absolute; inset: 0;
    border: 2px dashed var(--navy-15);
    border-radius:4px 4px 0 0;
    background: repeating-linear-gradient(135deg, transparent 0 8px, rgba(19,27,85,0.03) 8px 16px);
}
.mdx .trend-bar-pct{
    position: absolute;
    left: 50%; transform: translateX(-50%);
    font-size:var(--t-sm); font-weight: 800;
    letter-spacing: -0.4px;
    white-space: nowrap;
    z-index: 3;
}
.mdx .trend-bar-pct.pct-empty{ color:#59616E; font-weight: 700; font-size:var(--t-xs); }  /* was --bh-llg (1.3:1); --ink-muted only reached 4.11 on this tinted row */
.mdx .trend-bar.is-current{ box-shadow: 0 0 0 2px var(--bh-blue); }
.mdx .trend-labels{
    display: flex; gap: 12px;
    padding-top: 4px;
}
.mdx .trend-label{
    flex: 1; min-width: 0;
    text-align: center;
}
.mdx .trend-label-q{
    font-size:var(--t-xs); font-weight: 800;
    color: var(--bh-navy); letter-spacing: 0.6px;
    text-transform: uppercase;
}
.mdx .trend-label-q.is-current{ color: var(--ink-blue); }  /* was --bh-blue: 1.7:1 on cream */
.mdx .trend-label-detail{
    font-size:var(--t-xs); font-weight: 600;
    color: var(--bh-camel); opacity: 0.8;
    margin-top: 2px;
}
@media (max-width: 760px) {
    .mdx .trend-plot{ height: 140px; }
    .mdx .trend-bar-pct{ font-size:var(--t-xs); }
}

/* Q KPI GRID — 90-day marker status tiles */
.mdx .q-kpi-grid{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
    margin: 16px 0 14px;
}
.mdx .q-kpi{
    background: var(--bh-white);
    border: 1px solid var(--navy-10);
    border-left: 5px solid var(--bh-navy);
    border-radius:var(--radius-sm);
    padding: 16px 18px;
    transition: all 0.2s var(--ease);
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.mdx .q-kpi:hover{ transform: translateY(-2px); box-shadow: var(--shadow); }
.mdx .q-kpi-num{
    font-size:var(--t-3xl);
    font-weight: 800;
    color: var(--bh-navy);
    letter-spacing: -1.2px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.mdx .q-kpi-label{
    font-size:var(--t-xs);
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--bh-camel);
    margin-top: 4px;
}
.mdx .q-kpi-detail{
    font-size:var(--t-xs);
    font-weight: 600;
    color: var(--bh-navy);
    opacity: 0.7;
}
.mdx .q-kpi.kpi-positive{ border-left-color: var(--status-green); }
.mdx .q-kpi.kpi-positive .q-kpi-num{ color: var(--status-green); }
.mdx .q-kpi.kpi-negative{ border-left-color: var(--status-red); }
.mdx .q-kpi.kpi-negative .q-kpi-num{ color: var(--status-red); }
.mdx .q-kpi.kpi-on-hold{ border-left-color: #5B21B6; }
.mdx .q-kpi.kpi-on-hold .q-kpi-num{ color: #5B21B6; }
.mdx .q-kpi.kpi-in-process{ border-left-color: #A4C2F4; }
.mdx .q-kpi.kpi-in-process .q-kpi-num{ color: #A4C2F4; }
.mdx .q-kpi.kpi-move{ border-left-color: #E69138; }
.mdx .q-kpi.kpi-move .q-kpi-num{ color: #E69138; }
@media (max-width: 760px) {
    .mdx .q-kpi-grid{ grid-template-columns: 1fr 1fr; }
    .mdx .q-kpi-num{ font-size:var(--t-2xl); }
}
@media (max-width: 420px) {
    .mdx .q-kpi-grid{ grid-template-columns: 1fr 1fr; }
}

/* OWNER SCORECARD */
.mdx .owner-scorecard-card .card-header{ display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.mdx .owner-hint{ font-size:var(--t-xs); font-weight: 600; color: var(--bh-camel); opacity: 0.75; }
.mdx .owner-table{ width: 100%; border-collapse: collapse; }
.mdx .owner-table th{
    font-size:var(--t-xs); text-transform: uppercase; letter-spacing: 1px;
    color: var(--bh-camel); font-weight: 700;
    padding: 10px 12px; text-align: left;
    border-bottom: 2px solid var(--navy-10);
}
.mdx .owner-table th.num-head{ text-align: center; }
.mdx .owner-table td{
    padding: 12px; font-size:var(--t-sm);
    border-bottom: 1px solid var(--navy-05);
    vertical-align: middle;
}
.mdx .owner-table tr:last-child td{ border-bottom: none; }
.mdx .owner-row{ cursor: pointer; transition: background 0.15s var(--ease); }
.mdx .owner-row:hover td{ background: var(--navy-05); }
.mdx .owner-name-wrap{ display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--bh-navy); }
.mdx .owner-bar{
    display: flex; gap: 2px; height: 14px;
    border-radius: 4px; overflow: hidden; background: var(--navy-10);
    min-width: 110px;
}
.mdx .owner-bar > span{ display: block; min-width: 0; }
.mdx .num{ text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }

.mdx .load-badge{
    display: inline-block;
    padding: 3px 11px;
    border-radius:var(--r-md);
    font-size:var(--t-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.mdx .load-ok{ background: #DBEAFE; color: #1155CC; }
.mdx .load-watch{ background: #FFF9C0; color: #1c2030; }
.mdx .load-overloaded{ background: #F7E3E3; color: #990000; }

/* AT RISK */
.mdx .at-risk-definitions{
    background: var(--llg-06);
    border: 1px solid var(--navy-10);
    border-radius: var(--radius-sm);
    padding: 14px 18px;
    margin-bottom: 14px;
    font-size:var(--t-sm); color: var(--bh-navy);
    display: flex; flex-direction: column; gap: 6px;
}
.mdx .at-risk-def strong{ font-weight: 800; color: var(--bh-camel); }

.mdx .grid-3{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
}
.mdx .at-risk-card-list{
    display: flex; flex-direction: column; gap: 10px; padding: 4px 0;
}
.mdx .at-risk-item{
    display: grid; grid-template-columns: 1fr auto; gap: 10px;
    padding: 10px 12px;
    background: var(--bh-white);
    border: 1px solid var(--navy-10);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all 0.15s var(--ease);
}
.mdx .at-risk-item:hover{ border-color: var(--status-red); transform: translateX(2px); box-shadow: var(--shadow); }
.mdx .at-risk-item-name{ font-size:var(--t-sm); font-weight: 600; color: var(--bh-navy); line-height: 1.35; }
.mdx .at-risk-item-owner{ font-size:var(--t-xs); color: var(--bh-camel); font-weight: 600; align-self: center; }
.mdx .empty-state{ text-align: center; color: var(--bh-llg); font-style: italic; padding: 32px 12px; font-size:var(--t-sm); }

/* FOOTER */
.mdx .footer{
    margin-top: 56px;
    padding: 24px 36px;
    background: var(--bh-navy);
    color: var(--bh-white);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}
.mdx .footer strong{ font-weight: 800; letter-spacing: 2px; font-size: 14px; }
.mdx .footer-text{ font-size: 11px; opacity: 0.75; line-height: 1.5; text-align: right; }

/* MODALS */
.mdx .modal-backdrop{
    position: fixed; inset: 0;
    background: rgba(19, 27, 85, 0.88);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
    z-index: 9999;
    animation: modalFade 0.2s ease-out;
}
.mdx .modal-backdrop[hidden]{ display: none; }
@keyframes modalFade { from { opacity: 0; } to { opacity: 1; } }
.mdx .modal{
    background: var(--bh-white);
    border-radius:var(--r-md);
    max-width: 720px;
    width: 100%;
    max-height: 88vh;
    overflow: auto;
    box-shadow: 0 20px 60px rgba(0,0,0,0.45);
    animation: modalPop 0.22s ease-out;
}
@keyframes modalPop {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.mdx .modal-header{
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 22px 28px 16px;
    border-bottom: 1px solid var(--navy-10);
}
.mdx .modal-kicker{ font-size:var(--t-xs); font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; color: var(--bh-camel); margin-bottom: 4px; }
.mdx .modal-title{ font-size:var(--t-lg); font-weight: 800; color: var(--bh-navy); line-height: 1.3; letter-spacing: -0.3px; }
.mdx .modal-close{
    background: transparent; border: none; font-size: 26px; line-height: 1;
    color: var(--bh-navy); opacity: 0.55; cursor: pointer; padding: 0 4px;
    font-family: inherit;
}
.mdx .modal-close:hover{ opacity: 1; }
.mdx .modal-body{ padding: 20px 28px 26px; }
.mdx .modal-intro{ font-size:var(--t-sm); color: var(--bh-navy); margin-bottom: 14px; line-height: 1.55; }

/* Modal — BHX methodology table */
.mdx .bhx-factor-table{ width: 100%; border-collapse: collapse; margin: 6px 0 14px; }
.mdx .bhx-factor-table th, .mdx .bhx-factor-table td{
    border-bottom: 1px solid var(--navy-10);
    padding: 10px 8px;
    text-align: left;
    font-size:var(--t-sm);
    vertical-align: top;
}
.mdx .bhx-factor-table th{
    font-size:var(--t-xs); font-weight: 800; letter-spacing: 1px; text-transform: uppercase;
    color: var(--bh-camel);
}
.mdx .bhx-factor-name{ font-weight: 800; color: var(--bh-navy); font-size:var(--t-sm); }
.mdx .bhx-factor-desc{ font-size:var(--t-xs); color: var(--bh-camel); margin-top: 3px; line-height: 1.4; }
.mdx .bhx-factor-weight{ font-weight: 700; color: var(--bh-navy); white-space: nowrap; text-align: center; }
.mdx .bhx-factor-pct{ font-weight: 800; font-size:var(--t-md); letter-spacing: -0.3px; text-align: center; white-space: nowrap; }
.mdx .bhx-formula{
    background: var(--navy-05);
    border: 1px solid var(--navy-10);
    border-radius: 8px;
    padding: 12px 14px;
    font-size:var(--t-sm);
    color: var(--bh-navy);
    line-height: 1.5;
}
.mdx .bhx-formula-label{ font-size:var(--t-xs); font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--bh-camel); margin-bottom: 6px; }
.mdx .bhx-factor-name em{ font-style: normal; font-size:var(--t-xs); background: var(--bh-camel); color: #fff; padding: 1px 6px; border-radius:3px; margin-left: 7px; letter-spacing: 0.5px; font-weight: 800; vertical-align: middle; text-transform: uppercase; }
.mdx .bhx-factor-rowlabel{ font-size:var(--t-xs); font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: var(--bh-camel); opacity: 0.9; margin-top: 9px; margin-bottom: 2px; }
.mdx .bhx-factor-what{ font-size:var(--t-xs); line-height: 1.5; color: var(--bh-navy); }
.mdx .bhx-factor-how{ font-size:var(--t-xs); line-height: 1.5; color: var(--bh-navy); opacity: 0.72; }
.mdx .bhx-factor-why{ font-size:var(--t-xs); line-height: 1.5; color: var(--bh-navy); background: var(--navy-05); border-left: 3px solid var(--bh-camel); padding: 6px 10px; border-radius:0 4px 4px 0; margin-top: 5px; }
.mdx .bhx-modal-summary{ margin-top: 16px; padding: 13px 16px; background: var(--navy-05); border: 1px solid var(--navy-10); border-radius: 8px; font-size: 12.5px; color: var(--bh-navy); line-height: 1.6; }

/* Owner modal sections */
.mdx .owner-modal-tally{
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    padding: 12px 14px;
    background: var(--navy-05);
    border-radius: 8px;
    margin-bottom: 16px;
}
.mdx .owner-modal-pct{ font-size: 26px; font-weight: 800; letter-spacing: -0.6px; }
.mdx .owner-modal-tally-label{ font-size:var(--t-xs); font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--bh-camel); }
.mdx .owner-modal-section-title{
    font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase;
    color: var(--bh-camel);
    margin: 18px 0 8px; padding-bottom: 6px;
    border-bottom: 1px solid var(--navy-10);
}

/* MOBILE */
@media (max-width: 760px) {
    .mdx .topbar{ padding: 0 18px; height: auto; min-height: 60px; flex-wrap: wrap; gap: 12px; padding-top: 10px; padding-bottom: 10px; }
    .mdx .topbar-brand{ gap: 10px; }
    .mdx .topbar-logo-text{ font-size:var(--t-md); letter-spacing: 1.5px; }
    .mdx .topbar-divider{ display: none; }
    .mdx .topbar-meta, .mdx .topbar-live{ display: none; }
    .mdx .topbar-right{ gap: 8px; }
    .mdx .refresh-btn{ padding: 6px 10px; font-size: 11px; }
    .mdx .client-banner, .mdx .quarter-context{ padding: 16px 18px; }
    .mdx .client-name{ font-size:var(--t-lg); }
    .mdx .scope-toggle{ margin-left: 0; margin-top: 6px; }
    .mdx .dashboard{ padding: 16px 16px 40px; }
    .mdx .imp-unified-top{ flex-direction: column; gap: 16px; padding: 24px 24px 16px; align-items: flex-start; }
    .mdx .imp-unified-divider{ margin: 0 24px; }
    .mdx .imp-unified-breakdown{ padding: 16px 24px 24px; }
    .mdx .ring-grid{ grid-template-columns: 1fr 1fr; gap: 12px; }
    .mdx .ring-tile{ padding: 14px 10px 12px; }
    .mdx .obj-hero, .mdx .q-hero{ padding: 24px 16px 16px; }
    .mdx .obj-hero-headline, .mdx .q-hero-headline{ font-size:var(--t-xl); }
    .mdx .obj-hero-score, .mdx .q-hero-score{ font-size:var(--t-2xl); }
    .mdx .obj-deepdive-ctrl{ gap: 8px; padding: 8px; }
    .mdx .ctrl-search{ min-width: 140px; }
    .mdx .grid-3{ grid-template-columns: 1fr; }
    .mdx .acc-group-tally{ display: none; }
    .mdx .q-imp-bar-row{ grid-template-columns: 1fr; gap: 6px; }
    .mdx .q-imp-bar-pct{ text-align: left; }
    .mdx .owner-table{ font-size:var(--t-sm); display: block; overflow-x: auto; }
    .mdx .footer{ flex-direction: column; align-items: flex-start; }
    .mdx .footer-text{ text-align: left; }
}
@media (max-width: 420px) {
    .mdx .ring-grid{ grid-template-columns: 1fr; }
}

    /* — Q2 Marker Heatmap (drilldown modal) — */
    .mdx .hm2-summary{ display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 18px; }
    .mdx .hm2-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(186px,1fr)); gap:10px; }
    .mdx .hm2-tile{ border-radius:var(--r-sm); padding:11px 12px; border:1px solid rgba(0,0,0,0.05); border-left:5px solid currentColor; min-height:64px; display:flex; flex-direction:column; gap:4px; }
    .mdx .hm2-tile-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
    .mdx .hm2-tile-num{ font-size:var(--t-xs); font-weight:800; letter-spacing:0.04em; opacity:0.85; }
    .mdx .hm2-tile-status{ font-size:var(--t-xs); font-weight:800; text-transform:uppercase; letter-spacing:0.05em; white-space:nowrap; }
    .mdx .hm2-tile-name{ font-size:12.5px; font-weight:600; line-height:1.3; color:#131B55; }
    .mdx .hm2-tile-owner{ font-size:var(--t-xs); font-weight:600; opacity:0.72; margin-top:auto; padding-top:2px; }
    .mdx .hm2-empty{ padding:34px; text-align:center; color:#8a90ad; font-weight:600; }
    @media (max-width:560px){ .mdx .hm2-grid{ grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); } }
/* canonical light-bg chip text */
.mdx .seg-offtrack,.mdx .seg-inprocess,.mdx .pill-off-track,.mdx .pill-in-process,.mdx .kpi-in-process,.mdx .hm2-tile.s-off-track,.mdx .hm2-tile.s-in-process{color:#1c2030}

/* ===== Unified item cards + details drawer (Strategy Map) ===== */
/* card rows (replace the dense MD table rows on the map) */
.dd-row{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--r-md);box-shadow:0 1px 2px rgba(19,27,85,.06),0 8px 22px rgba(19,27,85,.06);padding:13px 40px 13px 16px;margin-bottom:10px;display:flex;align-items:flex-start;gap:14px;position:relative;cursor:pointer;transition:.15s}
.dd-row:hover{border-color:#cfd8ee;box-shadow:0 2px 4px rgba(19,27,85,.08),0 14px 30px rgba(19,27,85,.11)}
.dd-row.dd-b-on_track{border-left-color:#1155CC}
.dd-row.dd-b-in_progress{border-left-color:#A4C2F4}
.dd-row.dd-b-off_track{border-left-color:#FFFF00}
.dd-row.dd-b-done{border-left-color:#52823D}
.dd-row.dd-b-not_done{border-left-color:#990000}
.dd-row.dd-b-move{border-left-color:#E69138}
.dd-row.dd-b-delete{border-left-color:#434343}
.dd-row.dd-b-submitted{border-left-color:var(--submitted)}
.dd-row.dd-b-not_started{border-left-color:#94A3B8}
.dd-row.dd-obj{background:#fbfcff;border-left-width:5px}
.dd-row.dd-cur{box-shadow:0 0 0 2px rgba(17,85,204,.18),0 8px 22px rgba(19,27,85,.07)}
.dd-row .dd-main{flex:1;min-width:0}
.dd-row.dd-dim .dd-main{opacity:.5}            /* dim history rows, but never the status pill */
.dd-type{font-size:var(--t-xs);font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dd-row.dd-obj .dd-type{font-size:var(--t-md);letter-spacing:.3px;color:var(--navy)}   /* objective = scannable section header, much larger */
.dd-now{background:#1155CC;color:#fff;border-radius:999px;font-size:var(--t-xs);font-weight:800;letter-spacing:.4px;padding:2px 7px;text-transform:uppercase}
.dd-rtitle{font-weight:600;font-size:var(--t-base);color:var(--ink);margin-top:3px;line-height:1.35}
.dd-rtitle .dd-num{display:inline-block;font-size:11px;font-weight:800;color:var(--navy);background:#eef1fb;border-radius:var(--r-sm);padding:1px 7px;margin-right:7px;vertical-align:1px}
.dd-meta{font-size:var(--t-sm);color:var(--muted);margin-top:4px}
.dd-note{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:#2c3140;background:#fbfaf6;border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 11px}
.dd-note .nico{width:14px;height:14px;color:var(--camel);flex:none}
.dd-note .ntext{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-note .nby{color:var(--muted);white-space:nowrap;flex:none}
.dd-note .nmore{color:var(--navy);font-weight:700;white-space:nowrap;flex:none;border-left:1px solid var(--line);padding-left:8px}
.dd-chg{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:var(--t-xs);color:var(--muted)}
.dd-chg svg{width:13px;height:13px;flex:none;color:#aeb2c6}
.dd-chg b{color:#3a3f52;font-weight:700}
.dd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.dd-chev{position:absolute;right:14px;top:18px;width:17px;height:17px;color:#c2c6d6;transition:.15s;flex:none}
.dd-row:hover .dd-chev{color:var(--navy);transform:translateX(2px)}
/* inline status pill inside a card: reuse .m-status look, just don't stretch */
.dd-row .m-status{width:auto;max-width:none;flex:none;align-self:flex-start}
.dd-row .mk-pending,.dd-row .mk-moved{align-self:flex-start}
/* right-side group: status with the deliverable affordance to the RIGHT of it (de-crowds the left stack) */
.dd-aside{display:flex;align-items:flex-start;gap:10px;align-self:flex-start;flex:none}
.dd-aside>.dd-deliv{margin-top:0}
/* tablet/preview band: stack the status+deliverable group BELOW the main content so the
   left stack (incl. the card note) keeps full, readable width instead of being squeezed */
@media(max-width:820px){
  .dd-row{flex-wrap:wrap}
  .dd-row .dd-main{flex-basis:100%}
  .dd-aside{margin-top:8px}
}
.dd-objgroup{margin:0 0 4px}
.dd-mklabel{font-size:var(--t-base);font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--navy);margin:10px 2px 9px;display:flex;align-items:center;gap:8px}   /* section header, much larger */
.dd-mklabel::before{content:"";width:11px;height:11px;border-radius:3px;background:var(--blue);display:inline-block}

/* scrim + drawer */
.dd-scrim{position:fixed;inset:0;background:rgba(13,18,52,.46);opacity:0;visibility:hidden;transition:opacity .26s ease,visibility .26s ease;z-index:1200}
.dd-scrim.open{opacity:1;visibility:visible}
.dd-drawer{position:fixed;top:0;right:0;height:100%;width:452px;max-width:94vw;background:var(--cream);box-shadow:-18px 0 50px rgba(19,27,85,.26);z-index:1201;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.18,1)}
.dd-scrim.open .dd-drawer{transform:translateX(0)}
.dd-dh{background:var(--navy);color:#fff;padding:18px 20px 17px;position:relative;flex:none}
.dd-kicker{font-size:11px;font-weight:700;letter-spacing:.3px;color:#aeb6e6;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dd-kicker .dot{width:3px;height:3px;border-radius:50%;background:#6b74b0;display:inline-block}
.dd-kicker b{color:#dfe4fb;font-weight:700}
.dd-dtitle{width:100%;margin-top:9px;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:#fff;font-family:var(--font-head);font-size:var(--t-lg);font-weight:700;line-height:1.18;padding:6px 8px;resize:none;overflow:hidden;transition:.15s}
.dd-dtitle:hover{background:rgba(255,255,255,.07)}
.dd-dtitle:focus{outline:none;background:#fff;color:var(--navy);border-color:var(--gold)}
.dd-dtitle[readonly]{cursor:default}
.dd-dtitle[readonly]:hover{background:transparent}
.dd-close{position:absolute;top:13px;right:13px;width:32px;height:32px;border:none;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-size:20px;line-height:1;cursor:pointer;transition:.15s}
.dd-close:hover{background:rgba(255,255,255,.24)}
.dd-body{flex:1;overflow-y:auto;padding:18px 20px 8px}
.dd-fld{margin-bottom:15px}
.dd-lab{font-size:var(--t-xs);font-weight:600;letter-spacing:.2px;color:var(--muted);margin-bottom:6px;display:block}
.dd-status{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:var(--t-sm);font-weight:800;border:none;border-radius:var(--r-sm);padding:10px 34px 10px 14px;cursor:pointer;width:100%;background-repeat:no-repeat;background-position:right 12px center;background-size:12px}
.dd-status.s-on_track{background-color:#1155CC;color:#fff;background-image:var(--caret-w)}
.dd-status.s-in_progress{background-color:#A4C2F4;color:#1c2030;background-image:var(--caret-d)}
.dd-status.s-off_track{background-color:#FFFF00;color:#1c2030;background-image:var(--caret-d)}
.dd-status.s-done{background-color:#52823D;color:#fff;background-image:var(--caret-w)}
.dd-status.s-not_done{background-color:#990000;color:#fff;background-image:var(--caret-w)}
.dd-status.s-move{background-color:#E69138;color:#fff;background-image:var(--caret-w)}
.dd-status.s-delete{background-color:#434343;color:#fff;background-image:var(--caret-w)}
.dd-status.s-submitted{background-color:var(--submitted);color:#fff;background-image:var(--caret-w)}
.dd-status.s-on_hold{background-color:#5B21B6;color:#fff;background-image:var(--caret-w)}
.dd-status.s-not_started{background-color:#E2E8F0;color:#475569;background-image:var(--caret-d)}
.dd-status.s-na{background-color:#B8C0CC;color:#1c2030;background-image:var(--caret-d)}
.dd-status.s-ongoing{background-color:#884934;color:#fff;background-image:var(--caret-w)}
.dd-status.s-none{background-color:#fff;color:var(--muted);border:1.5px solid var(--line);background-image:var(--caret-d)}
.dd-status:focus{outline:none;box-shadow:0 0 0 3px var(--gold)}
.dd-rostat{display:inline-flex;align-items:center;font-size:var(--t-sm);font-weight:800;border-radius:8px;padding:9px 14px}
.dd-grid2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.dd-ctl{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 11px}
.dd-ctl .av{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.dd-ctl select,.dd-ctl input{border:none;background:transparent;font-family:inherit;font-size:var(--t-base);font-weight:600;color:var(--ink);width:100%;cursor:pointer}
.dd-ctl select:focus,.dd-ctl input:focus{outline:none}
.dd-ctl .ic{width:16px;height:16px;color:var(--navy);flex:none}
.dd-ro{background:#f4f3ee;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;font-size:var(--t-base);font-weight:600;color:var(--ink)}
.dd-desc{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font-family:inherit;font-size:var(--t-base);color:var(--ink);line-height:1.5;padding:11px 12px;resize:vertical;min-height:72px;transition:.15s}
.dd-desc:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(19,27,85,.08)}
.dd-desc[readonly]{background:#f4f3ee;cursor:default}
.dd-carry{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#7a5b00;background:#fdf6da;border:1px solid #ece3b0;border-radius:8px;padding:4px 10px;margin-top:8px}
.dd-deliv-link{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;font-size:var(--t-sm);font-weight:700;color:var(--navy);text-decoration:none;margin-bottom:8px}
.dd-deliv-link:hover{border-color:var(--navy)}
.dd-upbtn{background:#fff;border:1px dashed var(--line);border-radius:var(--r-sm);padding:9px 12px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--navy);cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.dd-upbtn:hover{border-color:var(--navy)}
.dd-rmbtn{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.dd-rmbtn:hover{border-color:#c0392b;color:#c0392b;background:#fdf3f2}
/* deliverable affordance restored on the Strategy Map card (tighter than the drawer) */
.dd-deliv{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.dd-deliv .dd-deliv-link,.dd-deliv .dd-upbtn,.dd-deliv .dd-rmbtn{margin:0;padding:6px 11px;font-size:var(--t-sm)}
.dd-deliv .dd-deliv-link svg,.dd-deliv .dd-upbtn svg,.dd-deliv .dd-rmbtn svg{width:12px;height:12px}
/* "Also responsible" attached-people chips (marker co-responsibility, migration 038) */
.dd-people{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.dd-person{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 6px 5px 13px;font-size:12.5px;font-weight:700;color:var(--ink)}
.dd-person-nm{line-height:1}
.dd-person-rm{border:none;background:#f4f3ee;color:var(--muted);width:20px;height:20px;border-radius:50%;font-size:var(--t-base);line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:.15s}
.dd-person-rm:hover{background:#fdf3f2;color:#c0392b}
.dd-person-add{background:#fff;border:1px dashed var(--line);border-radius:var(--r-sm);padding:8px 12px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--navy);cursor:pointer}
.dd-person-add:focus{outline:none;border-color:var(--navy)}
.dd-person-none{font-size:12.5px;font-weight:600;color:var(--muted)}
.dd-seg{display:flex;gap:6px;background:#efeada;border-radius:var(--r-sm);padding:4px;margin:4px 0 14px}
.dd-seg button{flex:1;border:none;background:transparent;font-family:inherit;font-size:12.5px;font-weight:800;color:var(--muted);padding:8px 6px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:.15s}
.dd-seg button .n{background:#dfd8c2;color:var(--muted);border-radius:var(--r-sm);font-size:var(--t-xs);padding:0 6px;font-weight:800}
.dd-seg button.on{background:#fff;color:var(--navy);box-shadow:0 1px 2px rgba(19,27,85,.06),0 8px 22px rgba(19,27,85,.07)}
.dd-seg button.on .n{background:var(--navy);color:#fff}
.dd-noteitem{display:flex;gap:11px;margin-bottom:14px}
.dd-noteitem .av{width:30px;height:30px;border-radius:50%;background:var(--camel);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.dd-noteitem .nb{flex:1;min-width:0}
.dd-noteitem .nh{font-size:12.5px}
.dd-noteitem .nh b{color:var(--ink);font-weight:700}
.dd-noteitem .nh span{color:var(--muted);font-size:11px;margin-left:6px}
.dd-noteitem .nt{font-size:var(--t-sm);color:#2c3140;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);border-top-left-radius:3px;padding:9px 11px;margin-top:5px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.dd-noteitem .nacts{margin-top:5px;display:flex;gap:12px}
.dd-noteitem .nacts button{border:none;background:none;font-family:inherit;font-size:var(--t-xs);font-weight:700;color:var(--muted);cursor:pointer;padding:0}
.dd-noteitem .nacts button:hover{color:var(--navy)}
.dd-npempty{font-size:12.5px;color:var(--muted);padding:6px 0 14px}
.dd-composer{display:flex;gap:9px;align-items:flex-start;margin-top:4px;padding-top:14px;border-top:1px dashed var(--line)}
.dd-composer .av{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.dd-composer .cbox{flex:1}
.dd-composer textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);font-family:inherit;font-size:var(--t-sm);padding:9px 11px;resize:vertical;min-height:42px;box-sizing:border-box}
.dd-composer textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(19,27,85,.08)}
.dd-addnote{margin-top:8px;background:var(--navy);color:#fff;border:none;border-radius:var(--r-sm);padding:8px 16px;font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.dd-addnote:hover{background:#1c2670}
.dd-tl{position:relative;padding-left:22px}
.dd-tl::before{content:"";position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--line)}
.dd-ti{position:relative;margin-bottom:15px}
.dd-ti::before{content:"";position:absolute;left:-22px;top:3px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--gold)}
.dd-ti.insert::before{border-color:#52823D}
.dd-ti.delete::before{border-color:#990000}
.dd-ti .td{font-size:var(--t-sm);color:var(--ink);line-height:1.45}
.dd-ti .td b{font-weight:700}
.dd-ti .tt{font-size:11px;color:var(--muted);margin-top:2px}
.dd-ti .chf{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;margin-top:2px}
.dd-ti .chf .fn{color:var(--muted)}
.dd-ti .chf .ar{color:#aeb2c6}
.dd-foot{flex:none;border-top:1px solid var(--line);background:var(--cream);padding:13px 20px;display:flex;align-items:center;gap:10px}
.dd-btn{border:none;border-radius:var(--r-sm);font-family:inherit;font-size:var(--t-base);font-weight:700;padding:11px 18px;cursor:pointer;transition:.15s}
.dd-btn-primary{background:var(--gold);color:var(--navy)}
.dd-btn-primary:hover{background:#bb9b5f}
.dd-btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}
.dd-btn-ghost:hover{border-color:var(--navy);color:var(--navy)}
.dd-btn-del{margin-left:auto;background:transparent;border:none;color:#990000;font-size:12.5px;font-weight:600;padding:10px 4px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.dd-btn-del:hover{color:#7a0000}
.dd-gov{display:none;font-size:var(--t-xs);color:#7a5b00;background:#fdf6da;border:1px solid #ece3b0;border-radius:var(--r-sm);padding:9px 12px;margin:0 20px 13px}
.dd-gov.show{display:block}
.dd-gov b{color:var(--camel)}
@media(max-width:820px){
  .dd-drawer{width:100%;max-width:100%}
  .dd-grid2{grid-template-columns:1fr}
}

/* ===== Discovery ===== */
.disco-hero{display:flex;align-items:center;gap:28px;background:linear-gradient(120deg,var(--navy),var(--navy-soft));
  border-radius:var(--r-md);box-shadow:var(--shadow);padding:30px 34px;margin-bottom:26px;color:#fff}
.disco-hero-tx{flex:1;min-width:0}
.disco-kicker{display:inline-block;font-size:var(--t-xs);font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:1.4px;margin-bottom:9px}
.disco-hero h1{font-family:var(--font-head);font-size:var(--t-2xl);line-height:1.12;letter-spacing:-.3px;margin:0 0 10px}
.disco-hero p{font-size:var(--t-md);line-height:1.55;color:rgba(255,255,255,.82);max-width:64ch;margin:0}
.disco-hero-stat{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:var(--r-md);padding:18px 26px;min-width:122px}
.disco-hero-stat .num{font-family:var(--font-num);font-size:var(--t-3xl);line-height:1;color:#fff}
.disco-hero-stat .lab{font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.9px;color:var(--gold);margin-top:7px;text-align:center}

.disco-stage{margin-bottom:30px}
.disco-stage-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.disco-stage-no{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:var(--t-lg);line-height:1}
.disco-stage-tx h2{font-family:var(--font-head);font-size:var(--t-xl);color:var(--navy);line-height:1.1;margin:0}
.disco-stage-tx p{font-size:var(--t-sm);color:var(--muted);margin:2px 0 0}
.disco-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  @media(max-width:900px){ .disco-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
  @media(max-width:600px){ .disco-grid{grid-template-columns:1fr} }

.disco-card{display:flex;align-items:flex-start;gap:14px;text-align:left;width:100%;appearance:none;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);
  padding:17px 18px;cursor:pointer;transition:.18s;text-decoration:none;color:inherit;font-family:inherit}
.disco-card:hover{border-color:var(--navy);transform:translateY(-2px)}
.disco-card.muted{cursor:default}
.disco-card.muted:hover{border-color:var(--line);transform:none}
.disco-ico{flex:0 0 auto;width:42px;height:42px;border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;
  background:var(--cream);color:var(--navy);border:1px solid var(--line)}
.disco-ico svg{width:22px;height:22px}
.disco-ico.sm{width:36px;height:36px;border-radius:var(--r-sm)}
.disco-ico.sm svg{width:19px;height:19px}
.disco-cbody{flex:1;min-width:0;display:flex;flex-direction:column}
.disco-ctitle{font-size:var(--t-md);font-weight:700;color:var(--navy);line-height:1.25;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.disco-csub{font-size:var(--t-sm);color:var(--muted);line-height:1.45;margin-top:3px}
.disco-cmeta{display:flex;align-items:center;gap:10px;margin-top:11px;flex-wrap:wrap}
.disco-count{font-size:var(--t-sm);font-weight:700;color:var(--ink)}
.disco-chev{flex:0 0 auto;align-self:center;color:var(--muted);display:inline-flex;transition:.18s}
.disco-card.folder:hover .disco-chev{color:var(--navy);transform:translateX(2px)}
.disco-lock{display:inline-flex;align-items:center;gap:4px;font-size:var(--t-xs);font-weight:700;color:var(--camel)}
.disco-lock svg{width:12px;height:12px}
.disco-open{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:700;color:#fff;text-decoration:none;
  background:var(--navy);border:1px solid var(--navy);border-radius:var(--r-sm);padding:7px 13px;transition:.16s}
.disco-open:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.disco-open svg{width:13px;height:13px}
.dchip{display:inline-flex;align-items:center;font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:var(--r-md)}
.dchip-ready{background:#e3f0e0;color:#3a6b30}
.dchip-prog{background:#dbe7f7;color:#1f4f8a}
.dchip-plan{background:#eceaf2;color:#5b5670}
.disco-cap-badge{font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--navy);background:var(--gold);padding:2px 8px;border-radius:var(--r-sm)}
.disco-card.capstone{border-color:var(--gold);border-left:5px solid var(--gold);background:linear-gradient(90deg,#fffdf6,#fff)}
.disco-card.capstone .disco-ico{background:var(--navy);color:#fff;border-color:var(--navy)}

.disco-folder-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:14px}
.disco-folder-head h3{font-family:var(--font-head);font-size:var(--t-xl);color:var(--navy);margin:0;line-height:1.15}
.disco-folder-head p{font-size:var(--t-sm);color:var(--muted);margin:3px 0 0;line-height:1.45}
.disco-conf-note{display:flex;align-items:flex-start;gap:9px;background:#fdf6da;border:1px solid #ece3b0;border-radius:var(--r-sm);
  padding:11px 13px;font-size:var(--t-sm);color:#7a5b00;line-height:1.5;margin-bottom:16px}
.disco-conf-note svg{flex:0 0 auto;width:14px;height:14px;margin-top:1px;color:var(--camel)}
.disco-leader-list{display:flex;flex-direction:column;gap:8px}
.disco-leader{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:11px 14px}
.disco-leader .avatar{flex:0 0 auto;background:var(--navy);color:#fff}
.disco-leader-id{flex:1;min-width:0;display:flex;flex-direction:column}
.disco-leader-id .nm{font-size:var(--t-md);font-weight:700;color:var(--navy);display:flex;align-items:center;gap:7px}
.disco-leader-id .rl{font-size:var(--t-xs);color:var(--muted);margin-top:1px}
.disco-you{font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--navy);background:var(--blue);padding:2px 7px;border-radius:var(--r-sm)}
.disco-leader-open{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;
  text-decoration:none;font-size:var(--t-sm);font-weight:700;padding:8px 14px;border-radius:var(--r-sm);transition:.16s}
.disco-leader-open:hover{background:var(--gold);color:var(--navy)}
.disco-leader-open svg{width:13px;height:13px}
.disco-leader-lock{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:700;color:var(--muted);
  background:var(--cream);border:1px solid var(--line);padding:8px 14px;border-radius:var(--r-sm)}
.disco-leader-lock svg{width:13px;height:13px}
/* access badge on each card */
.disco-acc{font-size:var(--t-xs);font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:var(--r-md)}
.acc-team{background:#e3f0e0;color:#3a6b30}
.acc-lead{background:#dbe7f7;color:#1f4f8a}
.acc-conf{background:#f3e7df;color:var(--camel)}
/* single-doc card actions (Open / Replace / Remove / Upload) */
.disco-actions{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.disco-mini{appearance:none;cursor:pointer;font-family:inherit;font-size:var(--t-xs);font-weight:700;color:var(--navy);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 11px;transition:.16s}
.disco-mini:hover{border-color:var(--navy)}
.disco-mini.danger{color:var(--muted)}
.disco-mini.danger:hover{border-color:#c0392b;color:#c0392b;background:#fdf3f2}
.disco-up{appearance:none;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;
  font-size:var(--t-sm);font-weight:700;color:#fff;background:var(--navy);border:1px solid var(--navy);border-radius:var(--r-sm);padding:7px 13px;transition:.16s}
.disco-up:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.disco-up svg{width:13px;height:13px}
.disco-up.sm{font-size:var(--t-xs);padding:6px 11px}
.disco-locked{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:700;color:var(--muted);
  background:var(--cream);border:1px solid var(--line);padding:7px 12px;border-radius:var(--r-sm)}
.disco-locked svg{width:13px;height:13px;color:var(--camel)}
.disco-pending{font-size:var(--t-sm);color:var(--muted);font-style:italic}
/* folder-row actions + add-a-leader control */
.disco-leader-act{flex:0 0 auto;display:flex;align-items:center;gap:7px}
.disco-leader-pending{font-size:var(--t-sm);color:var(--muted);font-style:italic}
.disco-leader-del{appearance:none;cursor:pointer;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:var(--r-sm);color:var(--muted);background:#fff;border:1px solid var(--line);transition:.16s}
.disco-leader-del:hover{color:#c0392b;border-color:#c0392b;background:#fdf3f2}
.disco-leader-del svg{width:13px;height:13px}
.disco-add{display:flex;align-items:center;gap:9px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.disco-add-sel{flex:1;min-width:0;font-family:inherit;font-size:var(--t-sm);color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 11px}
.disco-add-btn{appearance:none;cursor:pointer;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-family:inherit;
  font-size:var(--t-sm);font-weight:700;color:#fff;background:var(--navy);border:1px solid var(--navy);border-radius:var(--r-sm);padding:8px 13px;transition:.16s}
.disco-add-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.disco-add-btn svg{width:13px;height:13px}
.disco-add-empty{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);font-size:var(--t-sm);color:var(--muted);font-style:italic}
@media(max-width:760px){
  .disco-hero{flex-direction:column;align-items:flex-start;gap:18px;padding:24px 22px}
  .disco-hero-stat{align-self:stretch;flex-direction:row;justify-content:center;gap:14px}
}
/* ===== My Work (personal home) ===== */
#view-mywork .mw-greet{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:8px 2px 20px}
#view-mywork .mw-greet-main{min-width:0}
#view-mywork .mw-hi{margin:0;font-size:var(--t-xl);line-height:1.12;font-weight:800;letter-spacing:-.015em;color:var(--ink)}
#view-mywork .mw-hi .mw-name{color:var(--navy)}
#view-mywork .mw-sub{margin-top:5px;font-size:var(--t-base);color:var(--muted)}
#view-mywork .mw-risk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#990000;background:#fbeaea;border:1px solid #f0c9c9;border-radius:999px;padding:5px 12px;flex:0 0 auto}
#view-mywork .mw-risk svg{width:12px;height:12px}
@media(max-width:600px){#view-mywork .mw-hi{font-size:var(--t-lg)}}
.mw-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.mw-card{padding:16px}
.mw-head{display:flex;align-items:center;gap:10px;margin:0 0 11px;flex-wrap:wrap}
.mw-head .section-title{margin:0}
.mw-horizon{margin-left:auto;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.mw-hz{background:#fff;border:1px solid #d7dbe0;color:#2a3160;border-radius:var(--r-sm);padding:4px 10px;font-family:inherit;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}
.mw-hz:hover{border-color:var(--navy);color:var(--navy)}
.mw-hz.on{background:var(--navy);border-color:var(--navy);color:#fff}
.mw-hz-note{font-size:var(--t-xs);color:#4a5286;font-weight:600;margin-left:3px}
.mw-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--navy);color:#fff;font-size:var(--t-sm);font-weight:700;flex:0 0 auto}
.mw-empty{font-size:var(--t-sm);color:var(--muted);font-style:italic;padding:4px 2px}
.mw-list{display:flex;flex-direction:column;gap:8px}
.mw-item{display:flex;align-items:center;gap:12px;justify-content:space-between;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;cursor:pointer;background:#fff;transition:border-color .14s,box-shadow .14s}
.mw-item:hover{border-color:var(--navy);box-shadow:0 2px 10px rgba(19,27,85,.07)}
.mw-it-main{min-width:0;flex:1 1 auto}
.mw-it-title{font-size:var(--t-base);font-weight:700;color:var(--ink);display:flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.3}
.mw-it-sub{font-size:var(--t-xs);color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-it-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.mw-up-line{margin-top:5px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.mw-up{color:var(--accent,#00857B);font-weight:700;font-size:var(--t-xs);cursor:pointer;text-decoration:none}
.mw-up:hover{text-decoration:underline}
.mw-deliv-tag{font-size:11px;color:#52823D;font-weight:700}
.fab-menu .plan-only,.spr-quick-menu .plan-only{display:none}
/* Drivers are a BHX-rhythm item; plan clients use action steps instead. */
body.plan-client .fab-menu .bhx-only,body.plan-client .spr-quick-menu .bhx-only{display:none}
body.plan-client .fab-menu .plan-only,body.plan-client .spr-quick-menu .plan-only{display:flex}
body.plan-client #fabMenu [data-kind="marker"],body.plan-client #fabMenu [data-kind="retreat"],body.plan-client #fabMenu [data-kind="todo"],body.plan-client #sprQuickMenu [data-kind="marker"],body.plan-client #sprQuickMenu [data-kind="retreat"],body.plan-client #sprQuickMenu [data-kind="todo"],body.plan-client #sprQuickMenu [data-kind="issue"]{display:none!important}
@media(max-width:900px){.mw-grid{grid-template-columns:1fr}}
/* ===== Vision & Values one-pager (#7) ===== */
#view-vision{max-width:var(--reading-max);margin:0 auto}
.vv-page{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 2px 16px rgba(19,27,85,.05);padding:30px 34px 26px}
.vv-mast{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;margin-bottom:6px;border-bottom:2px solid var(--navy)}
.vv-mast-id{display:flex;align-items:center;gap:15px;min-width:0}
.vv-logo{flex:0 0 auto;color:var(--navy);display:inline-flex}
.vv-org{font-size:var(--t-xl);font-weight:800;color:var(--ink);line-height:1.15}
.vv-kicker{font-size:var(--t-sm);font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--camel);margin-top:3px}
.vv-mast-acts{flex:0 0 auto}
.vv-print{display:inline-flex;align-items:center;gap:7px;font-size:var(--t-sm);font-weight:700;color:#fff;background:var(--navy);border:1px solid var(--navy);border-radius:var(--r-sm);padding:8px 14px;cursor:pointer;transition:.16s}
.vv-print:hover{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.vv-sec{padding:18px 0;border-bottom:1px solid var(--line)}
.vv-sec:last-of-type{border-bottom:0}
.vv-sec-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.vv-sec-label{font-size:var(--t-sm);font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--navy)}
/* pre-line so line breaks typed into a purpose or vision statement survive;
   without it MD's mission and its closing line collapsed onto one line. */
.vv-lede{font-size:var(--t-lg);line-height:1.55;color:var(--ink);margin:0;max-width:74ch;white-space:pre-line}
.vv-empty{font-size:var(--t-md);color:var(--muted);font-style:italic}
.vv-edit,.vv-add{display:inline-flex;align-items:center;gap:5px;font-size:var(--t-sm);font-weight:700;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 11px;cursor:pointer;transition:.14s}
.vv-edit:hover,.vv-add:hover{border-color:var(--navy);background:#f4f6fb}
.vv-edit svg,.vv-add svg{width:13px;height:13px}
.vv-vgrid{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden}
.vv-vcard{display:flex;align-items:flex-start;gap:16px;padding:16px 20px;border-top:1px solid var(--line);background:#fff}
  .vv-vcard:first-child{border-top:0}
  .vv-vcard .vv-vnum{font-family:var(--font-num);font-size:var(--t-xl);font-weight:500;color:var(--navy);background:none;border:0;padding:0;min-width:28px;line-height:1.1}
.vv-vnum{flex:0 0 auto;width:26px;height:26px;border-radius:var(--r-sm);background:var(--navy);color:#fff;font-size:var(--t-sm);font-weight:800;display:flex;align-items:center;justify-content:center}
.vv-vbody{min-width:0;flex:1 1 auto}
.vv-vname{font-size:var(--t-lg);font-weight:800;color:var(--ink);line-height:1.25}
.vv-vdesc{font-size:var(--t-md);color:var(--muted);line-height:1.45;margin-top:3px}
.vv-move{display:flex;flex-direction:column;gap:3px;flex:0 0 auto}
.vv-arrow{width:24px;height:20px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--navy);cursor:pointer;padding:0}
.vv-arrow:hover:not(:disabled){border-color:var(--navy);background:#f4f6fb}
.vv-arrow:disabled{opacity:.3;cursor:default}
.vv-vacts{display:flex;gap:6px;flex:0 0 auto;align-self:center}
.vv-vbtn{display:inline-flex;align-items:center;gap:4px;font-size:var(--t-xs);font-weight:700;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 9px;cursor:pointer;transition:.14s}
.vv-vbtn:hover{border-color:var(--navy);background:#f4f6fb}
.vv-vbtn svg{width:12px;height:12px}
.vv-vdel{color:#990000}
.vv-vdel:hover{border-color:#990000;background:#fbeaea}
.vv-plan-note{font-size:var(--t-md);line-height:1.55;color:var(--muted);margin:0 0 13px;max-width:74ch}
.vv-imps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  @media(max-width:900px){ .vv-imps{grid-template-columns:repeat(2,minmax(0,1fr))} }
.vv-imp{display:flex;align-items:center;gap:11px;text-align:left;border:1px solid var(--line);border-radius:var(--r-md);padding:11px 13px;background:#fff;cursor:pointer;transition:.14s;font:inherit}
.vv-imp:hover{border-color:var(--navy);box-shadow:0 2px 10px rgba(19,27,85,.07)}
.vv-imp-num{flex:0 0 auto;width:24px;height:24px;border-radius:var(--r-sm);background:var(--camel);color:#fff;font-size:var(--t-sm);font-weight:800;display:flex;align-items:center;justify-content:center}
.vv-imp-body{min-width:0;display:flex;flex-direction:column}
.vv-imp-name{font-size:var(--t-md);font-weight:700;color:var(--ink);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.vv-imp-sub{font-size:var(--t-xs);color:var(--muted);margin-top:2px}
.vv-foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);text-align:center}
.vv-modal-help{font-size:var(--t-sm);color:var(--muted);margin:8px 2px 0;line-height:1.45}
@media(max-width:760px){.vv-vgrid{grid-template-columns:1fr}.vv-page{padding:22px 18px}.vv-mast{flex-wrap:wrap}}

/* ════════════════════════════════════════════════════════════════
   NINETY-GRADE SPACING LAYER (2026-07-03, per Lavon: "spacing should
   match Ninety"). Appended last so the cascade wins. One type scale,
   8px spacing grid, 48px rows, generous card padding + section gaps.
   Navy stays the platform shell color (black+gold remains the
   deliverable/report skin).
   ════════════════════════════════════════════════════════════════ */

/* Type: 15px body, real secondary step */
body{font-size:15px;line-height:1.55}
.section-title{font-size:13px;letter-spacing:.07em;margin:32px 0 14px}

/* Shell: taller bar, roomier nav */
.topbar{height:68px;padding:0 32px}
.nav-item,.sidebar .nav-item{padding:12px 14px;font-size:14.5px;margin-bottom:3px}
.me{padding:16px}

/* Views: real margins, bigger gaps */
.content{padding:32px 40px 110px;max-width:1600px}
.map-plan{gap:32px}

/* Cards breathe */
.m-imp{padding:30px 32px;border-radius:var(--r-md)}
.metric{padding:22px 24px}
.pk{padding:18px 20px;margin-bottom:12px}
.note-item{padding:14px 16px}

/* Tables: 48px-class rows, air in every cell */
.md-table th{padding:12px 14px;font-size:11px}
.md-table td{padding:14px;line-height:1.5}

/* Sprint / list rows */
.mk-row{padding:16px 18px;margin-bottom:12px}
.iss{padding:18px 20px;margin-bottom:12px}
.td-row{padding:15px 18px;margin-bottom:12px;min-height:52px}

/* Meeting runner stage */
.sprint-stage{padding:32px 40px 48px}
.sprint-inner{max-width:1000px}

/* Inputs match the new rhythm */
.dec-q{padding:11px 13px}
.gate-card input{padding:12px 14px}

@media (max-width:820px){
  .content{padding:20px 16px 96px}
  .sprint-stage{padding:20px 16px 40px}
}

/* ── OPENNESS PASS v2 (Lavon: "still not as open as Ninety") ──
   Padding alone wasn't it. Three structural moves:
   1. Narrower centered content column — no wall-to-wall stretch.
   2. Lighter chrome — light table headers, single border level,
      no shadows on rows, thinner accents.
   3. Bigger gaps BETWEEN blocks than within them.               */

/* 1 · centered column with real margins */
.content{max-width:1320px;margin:0 auto;padding:40px 48px 120px}
.sprint-inner{max-width:1040px}

/* 2 · lighter chrome */
.md-table{font-size:13.5px}
.md-table th{background:#f2f4fa;color:var(--navy);border-right:none;
  padding:13px 16px;font-weight:700;letter-spacing:.05em}
.md-table td{border-right:none;padding:16px;line-height:1.55}
.m-imp{box-shadow:none;border-top-width:4px;padding:34px 38px}
.mk-row,.iss,.td-row,.pk,.note-item,.metric{box-shadow:none}
.mk-row{padding:18px 20px}
.td-row{padding:16px 20px;min-height:56px}
.iss{padding:20px 22px}

/* 3 · air between blocks beats air inside them */
.map-plan{gap:44px}
.home-top{gap:24px}
.grid{gap:20px}
.week-grid{gap:24px}
.kanban{gap:18px}
.ring-grid{gap:20px}
.section-title{margin:40px 0 16px}
.mk-row,.td-row{margin-bottom:14px}
.iss,.pk{margin-bottom:14px}

/* ── INSIGHTS view — one chart per card, maximum air ── */
.ins-wrap{display:flex;flex-direction:column;gap:32px}
.ins-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:900px){ .ins-grid{grid-template-columns:1fr} }
@media(max-width:1100px){.ins-grid{grid-template-columns:1fr}}
.ins-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:20px 24px;box-shadow:var(--shadow)}
.ins-card h3{margin:0 0 4px;font-size:var(--t-lg);font-weight:700;color:var(--navy);font-family:Inter,system-ui,sans-serif}
.ins-card .ins-sub{font-size:var(--t-sm);color:var(--muted);margin:0 0 24px;line-height:1.5;max-width:70ch;color:#4a5286}
.ins-chart{position:relative;height:240px}
.ins-stat-row{display:flex;gap:28px;margin:0 0 20px}
.ins-stat b{display:block;font-size:var(--t-2xl);font-weight:700;color:var(--navy);font-family:var(--font-num);line-height:1.1}
.ins-stat span{font-size:var(--t-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.ins-empty{padding:40px 0;text-align:center;color:var(--muted);font-size:14px}
/* scorecard trends rows */
.ins-metric{display:flex;align-items:center;gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}
.ins-metric:last-child{border-bottom:none}
.ins-metric .im-name{flex:1;min-width:0}
.ins-metric .im-name b{font-size:var(--t-md);font-weight:600;color:var(--ink)}
.ins-metric .im-name span{display:block;font-size:var(--t-sm);color:var(--muted);margin-top:2px}
.ins-metric .im-spark{width:220px;height:44px;position:relative;flex-shrink:0}
.ins-metric .im-latest{width:110px;text-align:right;flex-shrink:0}
.ins-metric .im-latest b{font-size:var(--t-xl);font-weight:700;color:var(--navy);font-family:var(--font-num)}
.ins-metric .im-latest span{display:block;font-size:var(--t-xs);color:var(--muted)}
.mk-confbar{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);flex-wrap:wrap}
.mk-conf{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:700;border-radius:999px;padding:5px 12px;background:#fbf4e6;color:#8a5a00;border:1px solid #ecd9b0}
.mk-conf.ok{background:#eef7ea;color:#3d6b2e;border-color:#cfe6c5}
.mk-conf-btn{border:1px solid var(--navy);background:var(--navy);color:#fff;border-radius:8px;padding:6px 14px;font-size:var(--t-sm);font-weight:700;cursor:pointer}
.mk-conf-btn:hover{background:#1b2570}
.sp-h-conf{font-family:'Inter',system-ui,sans-serif;font-size:13px;font-weight:700;color:var(--navy);background:#eef7ea;border:1px solid #cfe6c5;border-radius:8px;padding:2px 10px;margin-left:9px;vertical-align:middle}
.sp-h-conf.pending{background:#fbf4e6;border-color:#ecd9b0;color:#8a5a00}
/* The view tabs are the one control on this bar you click over and over, so they hold one
   position. `margin-left:auto` used to push the strip right by whatever free space was
   left, and each view contributes a different set of controls — the extra List filter, the
   two ghost buttons, the details toggle — so the tabs slid across a 319px range as you
   switched between views and the bar grew a second row on List (measured 2026-09-12,
   Lavon: "the buttons move around based on the view. Very disconcerting").
   Anchored at the start of the bar instead: the tabs and the two standing filters never
   move, and a view's own extra controls appear after them, which is where a new control
   should turn up. */
.map-viewtoggle{display:flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;flex:none}
.map-viewtoggle button{border:0;background:#fff;color:var(--muted);font:600 12.5px/1 Inter,system-ui,sans-serif;padding:9px 16px;cursor:pointer;display:flex;align-items:center;gap:7px}
.map-viewtoggle button.on{background:var(--navy);color:#fff}
/* Strategic | Tactical track toggle (Strategy Map) */
.map-trackseg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;flex:none}
.map-trackseg button{border:0;background:#fff;color:var(--muted);font:700 12.5px/1 Inter,system-ui,sans-serif;padding:9px 15px;cursor:pointer;display:flex;align-items:center;gap:7px}
.map-trackseg button.on{background:var(--navy);color:#fff}
.map-trackseg .mts-n{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-sm);background:rgba(0,0,0,.12);font-size:11px;font-weight:800}
.map-trackseg button.on .mts-n{background:rgba(255,255,255,.22)}
/* Review | Huddle. Same shape as the track segment so the two read as one control family. */
/* Jump strip: skip whole imperatives instead of scrolling past them. */
.map-jump{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.map-jump button{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:7px 12px 7px 7px;cursor:pointer;font:inherit;max-width:290px;min-width:0}
.map-jump button:hover{border-color:var(--navy);background:#f6f9ff}
.map-jump .mj-n{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:var(--r-sm);
  color:#fff;font-size:var(--t-xs);font-weight:800;flex:none}
.map-jump .mj-t{font-size:12.5px;font-weight:700;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.map-jump .mj-p{font-size:var(--t-sm);font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}
/* Tactical Rocks board */
.tact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:var(--r-md);background:#fff;margin-bottom:18px}
.tact-title{font:800 var(--t-md)/1.15 Inter,system-ui,sans-serif;color:var(--navy)}
.tact-sub{font-size:12.5px;line-height:1.5;color:var(--muted);margin-top:4px;max-width:600px}
.tact-head-r{display:flex;gap:24px;align-items:center;flex:none}
.tact-stat{text-align:center}
.tact-stat b{display:block;font:800 var(--t-lg)/1 Inter,system-ui,sans-serif;color:var(--navy)}
.tact-stat span{font-size:var(--t-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.tact-board{display:flex;flex-direction:column;gap:16px}
.tact-objlabel{font-size:var(--t-sm);font-weight:700;color:#1f2430;margin:2px 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tact-objkick{font-size:var(--t-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:#f1f4f9;padding:3px 8px;border-radius:var(--r-sm)}
.tact-empty{padding:22px 18px;border:1px dashed var(--line);border-radius:var(--r-md);color:var(--muted);font-size:var(--t-base);line-height:1.6;background:#fff}
.dd-tracksel{width:100%}
.pboard{display:flex;gap:22px;align-items:flex-start;overflow-x:auto;padding:6px 2px 26px}
.pb-col{flex:none;width:292px;background:#f2f4fa;border:1px solid var(--line);border-radius:14px;padding:18px 16px 16px}
.pb-col-h{display:flex;align-items:center;gap:9px;font:700 12px/1 Inter,system-ui,sans-serif;color:var(--navy);text-transform:uppercase;letter-spacing:.05em;margin:0 2px 16px}
.pb-col-h i{width:11px;height:11px;border-radius:4px;flex:none;border:1px solid rgba(0,0,0,.1)}
.pb-col-h small{margin-left:auto;font:700 12px/1 Inter,system-ui,sans-serif;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.pb-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(19,27,85,.05);padding:15px 16px;margin-bottom:12px;cursor:pointer}
.pb-card:hover{border-color:#b9c2e2;box-shadow:0 3px 10px rgba(19,27,85,.09)}
.pb-t{font:600 13.5px/1.45 Inter,system-ui,sans-serif;color:var(--ink)}
.pb-obj{font:500 11.5px/1.4 Inter,system-ui,sans-serif;color:var(--muted);margin-top:7px}
.pb-foot{display:flex;align-items:center;gap:8px;margin-top:11px;flex-wrap:wrap}
.pb-own{font:600 11.5px/1 Inter,system-ui,sans-serif;color:var(--navy);background:#eef1f8;border-radius:999px;padding:5px 11px}
.pb-carry{font:700 10.5px/1 Inter,system-ui,sans-serif;color:#fff;background:var(--camel);border-radius:999px;padding:5px 10px}
.pb-empty{font:500 12.5px/1.5 Inter,system-ui,sans-serif;color:var(--muted);padding:10px 4px 4px;text-align:center}
.ins-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.ins-toggle{display:flex;gap:0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;flex:none}
.ins-toggle button{border:0;background:#fff;color:var(--muted);font:600 12.5px/1 Inter,system-ui,sans-serif;padding:9px 16px;cursor:pointer}
.ins-toggle button.on{background:var(--navy);color:#fff}
.ins-grid13{overflow-x:auto;margin-top:10px}
.ins-grid13 table{border-collapse:collapse;width:100%;min-width:900px}
.ins-grid13 th{font:600 var(--t-xs)/1.3 var(--font-head);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:12px 10px;border-bottom:1px solid var(--line);text-align:center;background:#f2f4fa;white-space:nowrap}
.ins-grid13 th.mname,.ins-grid13 td.mname{text-align:left;position:sticky;left:0;background:#fff;min-width:190px;max-width:240px}
.ins-grid13 th.mname{background:#f2f4fa}
.ins-grid13 td{font:500 var(--t-sm)/1.3 var(--font-head);font-variant-numeric:tabular-nums;color:var(--ink);padding:12px 10px;border-bottom:1px solid #eef0f6;text-align:center;white-space:nowrap}
.ins-grid13 td.mname b{display:block;font-size:var(--t-md);color:var(--navy)}
.ins-grid13 td.mname span{font-size:var(--t-xs);color:#4a5286}
.ins-grid13 td.hit{background:rgba(82,130,61,.14);color:#3d6b2e;font-weight:600}
.ins-grid13 td.miss{background:rgba(153,0,0,.09);color:#7a1010;font-weight:600}
.ins-grid13 td.goalcol{font-weight:700;color:var(--navy);border-left:1px solid var(--line)}
.ins-carry-top{margin:20px 0 0;padding:0;list-style:none}
.ins-carry-top li{padding:12px 0;border-top:1px solid var(--line);font-size:var(--t-base);display:flex;gap:12px;align-items:baseline}
.ins-carry-top .cc{font-weight:800;color:var(--camel);white-space:nowrap}

/* ===== Division rollup (parent orgs with business-unit children — Ergon IS&L) ===== */
.sb-org-row.child{padding-left:32px}
.sb-org-row.child .sb-org-logo{width:22px;height:22px}
.dv-wrap{padding:20px 24px 34px;display:flex;flex-direction:column;gap:16px;max-width:1160px;margin:0 auto}
.dv-note{font-size:13px;color:#6b7280;line-height:1.5}
.dv-hero{display:flex;align-items:center;gap:22px;background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:14px;padding:20px 24px}
.dv-hero-ring{position:relative;width:118px;height:118px;flex:none}
.dv-hero-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:34px}
.dv-hero-kicker{font-weight:800;font-size:15px;color:var(--navy,#131B55);letter-spacing:.01em}
.dv-hero-line{font-size:13.5px;color:#374151;margin-top:4px}
.dv-hero-txt .dv-note{margin-top:6px}
.dv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.dv-tile{background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:12px;padding:16px 16px 14px;display:flex;flex-direction:column;gap:12px}
.dv-tile.off{opacity:.75}
.dv-tile-top{display:flex;align-items:center;gap:10px}
.dv-logo{width:34px;height:34px;border-radius:8px;object-fit:contain;background:#fff;border:1px solid var(--line,#e3e0d8)}
.dv-tname{font-weight:800;font-size:15px;color:var(--navy,#131B55)}
.dv-tq{font-size:12px;color:#6b7280;margin-top:1px}
.dv-tmid{display:flex;align-items:center;gap:14px}
.dv-ringwrap{position:relative;width:86px;height:86px;flex:none;display:block}
.dv-tnum{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px}
.dv-tstats{display:flex;flex-direction:column;gap:4px}
.dv-tstat{font-size:12.5px;color:#374151;line-height:1.45}
.dv-open{align-self:flex-start;border:1px solid var(--line,#d8d4c9);background:#f8f7f4;border-radius:8px;padding:7px 12px;font-weight:700;font-size:12.5px;color:var(--navy,#131B55);cursor:pointer}
.dv-open:hover{background:#efede7}

/* ---- "Who sits where": department assignment on a parent org's home ---- */
.dp-card{margin-top:18px;padding:18px 20px 16px;background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:var(--r-md,14px);box-shadow:var(--shadow)}
.dp-head{margin-bottom:14px}
.dp-h1{font-family:var(--font-head);font-size:var(--t-lg);font-weight:600;
  color:var(--navy);letter-spacing:-.01em;margin-bottom:4px}
.dp-list{display:flex;flex-direction:column}
.dp-row{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px 0;border-top:1px solid var(--line,#e3e0d8)}
.dp-row:first-child{border-top:0}
.dp-who{display:flex;flex-direction:column;gap:2px;min-width:0}
.dp-name{font-size:var(--t-md);font-weight:500;color:var(--ink)}
.dp-title{font-size:var(--t-xs);color:var(--muted)}
.dp-sel{font:inherit;font-size:var(--t-sm);padding:7px 10px;border-radius:var(--r-sm,8px);
  border:1px solid var(--line,#e3e0d8);background:#fff;color:var(--ink);min-width:210px}
.dp-sel:focus{outline:2px solid var(--ink-blue);outline-offset:1px}
.dp-sel:disabled{opacity:.5}
.dp-warn{margin-top:12px;padding:10px 14px;border-radius:var(--r-sm,8px);
  background:#FFF9C0;color:#1c2030;
  font-size:var(--t-sm);line-height:1.45}
@media (max-width:640px){
  .dp-row{flex-direction:column;align-items:flex-start;gap:8px}
  .dp-sel{width:100%;min-width:0}
}

/* ---- 30/60/90 compressed pipeline ----
   The Weekly canvas (.wkc) is LIGHT — rgb(238,241,245) — despite an old comment
   in index.html calling it dark. Styled to sit with the metric cards above it. */
.pip-wrap{margin:26px 0 6px}
.pip-title{font-family:var(--font-head);font-size:var(--t-xl);font-weight:600;
  color:var(--navy);letter-spacing:-.01em}
.pip-sub{font-size:var(--t-sm);color:var(--muted);line-height:1.5;max-width:76ch;margin:4px 0 16px}
.pip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}
.pip-col{background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:var(--r-md,14px);
  padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}
.pip-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  border-bottom:1px solid var(--line,#e3e0d8);padding-bottom:9px}
.pip-hl{font-family:var(--font-head);font-size:var(--t-xs);font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-blue)}
.pip-count{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.pip-count.full{color:var(--gold-ink);font-weight:600}
.pip-empty{font-size:var(--t-sm);color:var(--muted);padding:6px 2px}
.pip-cap{font-size:var(--t-xs);color:var(--gold-ink);line-height:1.45;
  background:#FFF9C0;border-radius:var(--r-sm);padding:7px 9px}
.pip-slot{background:var(--cream,#FAF7F0);border:1px solid var(--line,#e3e0d8);
  border-radius:var(--r-sm,8px);padding:11px;display:flex;flex-direction:column;gap:9px;position:relative}
.pip-co{font:inherit;font-size:var(--t-md);font-weight:600;color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid var(--line,#e3e0d8);padding:2px 0 5px;width:100%}
.pip-co::placeholder{color:var(--muted);font-weight:400;opacity:.75}
.pip-co:focus{outline:none;border-bottom-color:var(--ink-blue)}
.pip-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.pip-nums label{display:flex;flex-direction:column;gap:3px;font-size:var(--t-xs);letter-spacing:.07em;
  text-transform:uppercase;color:var(--muted)}
.pip-n{font:inherit;font-size:var(--t-sm);color:var(--ink);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:var(--r-sm);padding:5px 6px;width:100%;
  font-variant-numeric:tabular-nums}
.pip-n:focus{outline:none;border-color:var(--ink-blue)}
.pip-steps{border-top:1px solid var(--line,#e3e0d8);padding-top:8px;display:flex;flex-direction:column;gap:5px}
.pip-sh{font-size:var(--t-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.pip-open{color:var(--gold-ink);letter-spacing:0;text-transform:none;font-size:var(--t-xs);font-weight:600}
.pip-step{display:flex;align-items:center;gap:6px}
.pip-step.done .pip-st{text-decoration:line-through;color:var(--muted)}
.pip-tick{width:17px;height:17px;flex:none;border-radius:4px;border:1px solid var(--line,#e3e0d8);
  background:#fff;color:#fff;font-size:var(--t-xs);line-height:1;padding:0;cursor:pointer;box-shadow:none}
.pip-step.done .pip-tick{background:#52823D;border-color:#52823D}
.pip-st{font:inherit;font-size:var(--t-sm);color:var(--ink);background:transparent;
  border:0;padding:2px 0;flex:1;min-width:0}
.pip-st:focus{outline:none;border-bottom:1px solid var(--ink-blue)}
.pip-x{background:none;border:0;color:var(--muted);font-size:var(--t-md);line-height:1;
  padding:0 2px;cursor:pointer;box-shadow:none;opacity:.5}
.pip-x:hover{color:#990000;opacity:1}
.pip-addstep,.pip-add{font:inherit;font-size:var(--t-xs);color:var(--ink-blue);background:none;
  border:1px dashed var(--line,#e3e0d8);border-radius:var(--r-sm);padding:6px 8px;cursor:pointer;
  box-shadow:none;text-align:center}
.pip-addstep:hover,.pip-add:hover{border-color:var(--ink-blue);background:#fff}
.pip-add{padding:9px}
/* Remove used to be opacity:0 until the card was hovered — invisible, but still
   sitting over the top-right of the client-name row and still tappable, which on
   a phone (no hover) is a destructive control nobody can see. It is a plain,
   visible link at the foot of the card now. */
.pip-drop{align-self:flex-start;font-size:var(--t-xs);color:#4a5286;
  background:none;border:0;border-radius:var(--r-sm);padding:4px;cursor:pointer;box-shadow:none;
  text-decoration:underline;text-underline-offset:2px}
.pip-drop:hover{color:#990000}
.pip-drop:focus-visible{outline:2px solid var(--ink-blue);outline-offset:1px}
@media (max-width:900px){ .pip-grid{grid-template-columns:1fr} }
@media print{ .pip-add,.pip-addstep,.pip-drop,.pip-x{display:none !important} }

/* ---- "Now through December 31" focus band ----
   The near-term bar, large. Navy card so it reads as the headline of the
   dashboard rather than another metric tile. */
.fb-wrap{background:var(--navy);border-radius:var(--r-md,14px);padding:22px 24px 24px;
  margin:0 0 20px;box-shadow:var(--shadow)}
.fb-head{margin-bottom:18px}
.fb-title{font-family:var(--font-head);font-size:var(--t-2xl);font-weight:600;color:#fff;
  letter-spacing:-.015em;line-height:1.15}
.fb-sub{font-size:var(--t-sm);color:var(--blue,#92C0E9);line-height:1.5;margin-top:5px;max-width:74ch}
.fb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.fb-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);
  border-radius:var(--r-sm,8px);padding:16px 16px 14px;display:flex;flex-direction:column;gap:3px}
.fb-num{font-family:var(--font-num);font-weight:600;font-size:var(--t-3xl);line-height:1;color:#fff;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fb-name{font-family:var(--font-head);font-size:var(--t-sm);font-weight:600;color:#fff;
  opacity:.92;margin-top:5px}
.fb-goal{font-size:var(--t-xs);color:rgba(255,255,255,.5);line-height:1.4}
@media (max-width:700px){
  .fb-wrap{padding:18px}
  .fb-num{font-size:var(--t-2xl)}
  .fb-grid{grid-template-columns:repeat(2,1fr)}
}
@media print{ .fb-wrap{background:#fff;border:1px solid var(--line)}
  .fb-title,.fb-num,.fb-name{color:var(--navy)} .fb-sub,.fb-goal{color:#555}
  .fb-card{background:#fafafa;border-color:#ddd} }

/* ---- graduated target ladder inside a focus card ---- */
.fb-card.wide{grid-column:span 2}
.lad{margin-top:11px;padding-top:10px;border-top:1px solid rgba(255,255,255,.14)}
.lad-row{display:flex;gap:6px}
.lad-rung{flex:1;background:rgba(255,255,255,.07);border-radius:6px;padding:6px 4px;
  display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.lad-rung.todo{background:rgba(255,255,255,.03);border:1px dashed rgba(255,255,255,.18)}
.lad-mo{font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.lad-v{font-family:var(--font-num);font-size:var(--t-md);color:#fff;font-variant-numeric:tabular-nums}
.lad-rung.todo .lad-v{color:rgba(255,255,255,.4)}
.lad-note{font-size:var(--t-xs);color:var(--gold,#C8950C);margin-top:7px}
@media (max-width:700px){ .fb-card.wide{grid-column:span 2} .lad-v{font-size:var(--t-sm)} }

/* ---- rep view toggle ---- */
.rt-wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.rt-lab{font-family:var(--font-head);font-size:var(--t-xs);letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);font-weight:600}
.rt-row{display:flex;gap:4px;background:#fff;border:1px solid var(--line,#e3e0d8);
  border-radius:var(--r-pill,999px);padding:3px}
.rt-b{font:inherit;font-family:var(--font-head);font-size:var(--t-sm);font-weight:600;
  border:0;background:none;color:var(--muted);padding:6px 14px;border-radius:var(--r-pill,999px);
  cursor:pointer;box-shadow:none;white-space:nowrap}
.rt-b:hover{color:var(--ink)}
.rt-b.on{background:var(--navy);color:#fff}
.rt-note{font-size:var(--t-xs);color:var(--gold-ink);max-width:52ch;line-height:1.4}

/* ---- pipeline grouped by rep ---- */
.pip-reps{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;align-items:start}
.pip-rep{background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:var(--r-md,14px);
  padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}
.pip-rhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  border-bottom:1px solid var(--line,#e3e0d8);padding-bottom:9px}
.pip-rname{font-family:var(--font-head);font-size:var(--t-md);font-weight:600;color:var(--navy)}
.pip-rcount{font-size:var(--t-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.pip-rcount.short{color:var(--gold-ink);font-weight:600}
.pip-need{font-size:var(--t-xs);color:var(--gold-ink);background:#FFF9C0;
  border-radius:var(--r-sm);padding:6px 9px}
.pip-more{font-size:var(--t-xs);color:var(--muted);text-align:center}
.pip-orphan{margin-top:12px;font-size:var(--t-sm);color:var(--gold-ink)}
.pip-top{display:flex;gap:7px;align-items:center}
.pip-top .pip-co{flex:1;min-width:0}
.pip-h{font:inherit;font-size:var(--t-xs);color:var(--ink);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:var(--r-sm);padding:4px 5px;flex:none;max-width:118px}
.pip-h:focus{outline:none;border-color:var(--ink-blue)}

/* ---- one group per window, three clients in each ---- */
.pip-win{display:flex;flex-direction:column;gap:8px;background:var(--cream,#FAF7F0);
  border:1px solid var(--line,#e3e0d8);border-radius:var(--r-sm,8px);padding:12px}
.pip-winhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.pip-winl{font-family:var(--font-head);font-size:var(--t-xs);font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-blue)}
.pip-wincount{font-size:var(--t-xs);color:#4a5286;font-variant-numeric:tabular-nums}
.pip-wincount.full{color:#52823D;font-weight:600}
.pip-win .pip-slot{background:#fff}
/* A slot with no client name yet reads as unfinished rather than as a real deal. */
.pip-slot.unnamed{border-style:dashed;border-color:var(--gold-ink,#C8950C)}
.pip-move{display:flex;align-items:center;gap:8px}
.pip-movel{font-size:var(--t-xs);letter-spacing:.07em;text-transform:uppercase;color:#4a5286}
.pip-move .pip-h{flex:1;max-width:none}

/* ---- goal gaps flag ---- */
.gap-bar{display:flex;align-items:flex-start;gap:11px;background:#FFF9C0;
  border:1px solid rgba(133,77,14,.22);border-radius:var(--r-md,14px);
  padding:13px 16px;margin:0 0 16px}
.gap-ico{flex:none;width:20px;height:20px;border-radius:50%;background:var(--gold-ink);color:#fff;
  font-family:var(--font-head);font-weight:700;font-size:var(--t-sm);
  display:flex;align-items:center;justify-content:center;margin-top:1px}
.gap-txt{font-size:var(--t-sm);color:var(--gold-ink);line-height:1.5}
.gap-txt b{font-weight:700}
.gap-sub{font-size:var(--t-xs);opacity:.85;margin-top:2px}

/* ---- editable goals ---- */
.goal-ed{cursor:pointer;border-bottom:1px dashed currentColor;padding-bottom:1px}
.goal-ed:hover,.goal-ed:focus{color:var(--ink-blue);outline:none}
.goal-missing{color:var(--gold-ink);font-weight:600}
.lad-rung.ed{cursor:pointer}
.lad-rung.ed:hover,.lad-rung.ed:focus{background:rgba(255,255,255,.16);outline:none}
.lad-rung.todo.ed:hover{border-color:var(--blue,#92C0E9)}
.mgoal{font-size:var(--t-sm);color:var(--muted);margin:2px 0 0}
.mgoal.none .goal-missing{color:var(--gold-ink);font-weight:600}

/* ================= ROADMAP VIEW (Objective x Quarter) =================
   Third view of the Strategy Map. Per the STATUS FILL RULE the CELL fills here: it holds a
   2-5 word marker title and IS the datapoint, so the grid reads as a colour field. List
   rows elsewhere keep white backgrounds and take a 3px status edge instead. */
.rmv{background:#fff;border:1px solid var(--line);border-radius:var(--r-md,14px);margin:0 auto;overflow-x:auto}
.rmv-head{display:grid;border-bottom:2px solid var(--navy);background:#fff;border-radius:var(--r-md,14px) var(--r-md,14px) 0 0}
.rmv-head > div{padding:13px 16px;font-size:var(--t-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center}
.rmv-head > div:first-child{text-align:left}
.rmv-head .now{color:var(--navy);background:#fdf8ec}
.rmv-lane{border-bottom:12px solid var(--cream)}
.rmv-lane:last-child{border-bottom:0}
/* NOT sticky: .rmv sets overflow-x:auto so wide plans (Ergon runs 5 quarters) can scroll,
   and an overflow ancestor makes position:sticky resolve against that box instead of the
   viewport -- which mispositioned this header over the first row. Horizontal scroll matters
   more than a pinned lane label, and lanes are only a few rows deep. */
.rmv-lane-h{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;color:#fff}
.rmv-lane-t{font-size:var(--t-lg);font-weight:800;letter-spacing:-.2px}
.rmv-lane-m{margin-left:auto;font-size:12.5px;font-weight:700;opacity:.9;font-variant-numeric:tabular-nums}
.rmv-row{display:grid;border-top:1px solid var(--line);align-items:stretch}
.rmv-row:hover{background:#fbfaf7}
.rmv-obj{padding:14px 16px;border-right:1px solid var(--line);min-width:0;cursor:pointer}
.rmv-obj:hover .rmv-tt{text-decoration:underline;text-underline-offset:3px}
.rmv-n{font-size:var(--t-xs);font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}
.rmv-tt{font-size:14px;font-weight:800;color:var(--navy);line-height:1.35;margin-top:2px}
.rmv-g{font-size:var(--t-xs);color:var(--muted);margin-top:4px}
.rmv-cell{padding:10px;border-right:1px solid var(--line);display:flex;align-items:center;position:relative}
.rmv-cell:last-child{border-right:0}
.rmv-cell.now{background:#fdfbf3}
.rmv-stack{display:flex;flex-direction:column;gap:7px;width:100%}
.rmv-empty{width:100%;height:22px;border-radius:5px;border:1px dashed #dcdfe8}
/* Two rows, two columns: title top-left with status pinned top-right, upload bottom-left.
   They act on different things -- one records where the work stands, the other attaches the
   proof -- so they sit in opposite corners instead of reading as one control cluster. */
.rmv-chip{display:grid;grid-template-columns:minmax(140px,1fr) auto;gap:9px 8px;align-items:start;
  border-radius:var(--r-sm,8px);padding:10px 11px;border:1px solid rgba(0,0,0,.1);background:#E2E8F0;color:var(--ink);min-width:0}
.rmv-st{grid-column:2;grid-row:1;justify-self:end;align-self:start;max-width:100%}
.rmv-up{grid-column:1;grid-row:2;justify-self:start;align-self:end}
.rmv-chip .rmv-x{grid-column:2;grid-row:2;justify-self:end;align-self:end}
.rmv-st .m-status,.rmv-st select{max-width:100%}
.rmv-chip .rmv-t{grid-column:1;grid-row:1;min-width:0;font-size:12.5px;font-weight:800;line-height:1.3;cursor:pointer;
  overflow-wrap:break-word;word-break:normal;hyphens:none}
.rmv-chip .rmv-w{display:block;font-size:11px;font-weight:600;opacity:.75;margin-top:3px}
.rmv-chip .rmv-t:hover{text-decoration:underline;text-underline-offset:2px}
.rmv-acts{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rmv-chip.ghost{grid-template-columns:1fr}
.rmv-acts .shm-clip{min-height:26px;padding:0 8px;font-size:11px}
.rmv-acts select.m-status{max-width:100%}
.rmv-acts .m-status{white-space:nowrap}
/* canonical palette, full saturation -- the cell IS the status */
.rmv-chip.s-on_track{background:#1155CC;color:#fff;border-color:#1155CC}
.rmv-chip.s-in_progress{background:#A4C2F4}
.rmv-chip.s-done{background:#52823D;color:#fff;border-color:#52823D}
.rmv-chip.s-off_track{background:#FFFF00}
.rmv-chip.s-not_done{background:#990000;color:#fff;border-color:#990000}
.rmv-chip.s-move{background:#E69138;color:#fff}
.rmv-chip.s-on_hold{background:#5B21B6;color:#fff}
.rmv-chip.s-submitted{background:#674EA7;color:#fff}
.rmv-chip.s-not_started{background:#E2E8F0}
.rmv-chip.ghost{background:#fff!important;color:var(--muted)!important;border:1.5px dashed #c3cade;min-height:40px}
.rmv-in,.rmv-out{position:absolute;top:50%;transform:translateY(-50%);font-size:var(--t-base);font-weight:800;color:var(--camel);pointer-events:none}
.rmv-out{right:-9px}.rmv-in{left:-9px}
.rmv-x{display:inline-flex;align-items:center;background:var(--camel);color:#fff;border-radius:3px;padding:1px 5px;font-size:var(--t-xs);font-weight:800}
.rmv-none{padding:26px;text-align:center;color:var(--muted);font-weight:600}
@media(max-width:1000px){
  .rmv-row,.rmv-head{grid-template-columns:1fr!important}
  .rmv-obj{border-right:0;border-bottom:1px solid var(--line)}
  .rmv-lane-h{position:static}
}

  /* Ongoing: a recurring cadence, reported every meeting, excluded from the BHX score until
     it locks and becomes Done. Camel #884934 -- an existing BH brand colour, not previously
     used by any status, so the canonical palette gains no new hue. */
  .pill.st-ongoing{background:#884934;color:#fff}
  .m-status.s-ongoing{background:#884934;color:#fff}
  .dd-row.dd-b-ongoing{border-left-color:#884934}
  #view-tracker .tk-row.s-ongoing{border-left-color:#884934}
  .shm-acc[data-status="ongoing"]{border-left-color:#884934}
  .shm-tbl tbody tr[data-status="ongoing"] td:first-child{border-left-color:#884934}
  .rmv-chip.s-ongoing{background:#884934;color:#fff;border-color:#884934}

/* Ongoing column: recurring cadences have no date, so they get their own column at the end
   rather than being dropped off a date axis. */
.rmv-head .ongoing{color:#884934}
.rmv-cell.none{background:#fbf7f4}

/* Plan-client roadmap sits inside the outcome panel, so it drops the outer card chrome. */
:is(#view-map,.spr-map) .pm-rmwrap{padding:0}
:is(#view-map,.spr-map) .pm-rmwrap .rmv{border:0;border-radius:0;background:none}
:is(#view-map,.spr-map) .pm-rmwrap .rmv-lane{border-bottom:0}
:is(#view-map,.spr-map) .pm-rmwrap .rmv-row{border-top:1px solid var(--line)}
:is(#view-map,.spr-map) .pm-rmwrap .rmv-obj .rmv-tt{font-size:var(--t-base)}

/* Below ~210px a status pill beside the title leaves too little measure and words break
   mid-letter. The chip stacks instead: title full width, status under it, still top-right
   aligned within its own row. Scrolling the grid is preferable to shredding the words. */
@media(max-width:100000px){
  .rmv-cell{min-width:0}
}
.rmv-chip.narrow{grid-template-columns:minmax(0,1fr)}
.rmv-chip.narrow .rmv-st{grid-column:1;grid-row:2;justify-self:start}
.rmv-chip.narrow .rmv-up{grid-column:1;grid-row:3}
.rmv-chip.narrow .rmv-x{grid-column:1;grid-row:4;justify-self:start}

/* The note button is the platform's one prompt for writing a note, so it looks the same on a
   roadmap card as it does on an objective row. Sized to sit beside the upload chip. */
.rmv-up{display:inline-flex;align-items:center;gap:6px}
.rmv-up .ent-note{border:1px solid var(--line);background:#fff;border-radius:var(--r-sm,8px);
  min-height:28px;padding:0 9px;color:#5a6272;display:inline-flex;align-items:center;gap:5px}
.rmv-up .ent-note:hover{border-color:var(--navy);color:var(--navy)}
.rmv-up .ent-note.has{background:#fbf6ee;border-color:#e2d3b8;color:var(--camel)}
.rmv-chip.dark .rmv-up .ent-note,.rmv-chip.s-on_track .rmv-up .ent-note,
.rmv-chip.s-done .rmv-up .ent-note,.rmv-chip.s-not_done .rmv-up .ent-note,
.rmv-chip.s-on_hold .rmv-up .ent-note{background:#fff}

/* ---- roadmap hover definition cards (Lavon 8/28) ---- */
#hvCard{position:fixed;z-index:9600;display:none;background:#fff;border:1px solid var(--line);
  border-top:3px solid var(--navy);border-radius:12px;box-shadow:0 16px 44px rgba(19,27,85,.22);
  padding:14px 16px;font-size:12.5px;line-height:1.5;color:var(--ink);pointer-events:none}
#hvCard.open{display:block}
#hvCard .hv-kick{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
#hvCard .hv-title{font-size:14px;font-weight:800;color:var(--navy);line-height:1.35;margin-bottom:6px}
#hvCard .hv-def{margin-bottom:8px;white-space:pre-wrap}
#hvCard .hv-none{color:var(--muted);font-style:italic}
#hvCard .hv-row{display:flex;gap:8px;margin-top:3px}
#hvCard .hv-lbl{flex:0 0 78px;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-top:1px}
#hvCard .hv-val{flex:1;min-width:0}
#hvCard .hv-sep{border-top:1px dashed var(--line);margin:9px 0 6px}
#hvCard .hv-goal .hv-val{font-weight:700;color:var(--navy)}
#hvCard .hv-gdef{margin:2px 0 0 86px;color:var(--ink);font-size:12px}

/* ---- 3/5-Year Goal band rows on the Roadmap (Lavon 8/28, sized up same day:
   'It gets lost.' The goal tier reads at a glance now - definition inline,
   no hover needed at this altitude.) ---- */
.rmv-goalband{padding:12px 18px 11px;background:#F4F6FB;
  border-left:5px solid var(--navy);border-bottom:1px solid var(--line);cursor:default}
.rmv-goalband .rmv-gb-line{display:flex;align-items:baseline;gap:12px}
.rmv-goalband .rmv-gb-t{font-size:var(--t-lg);font-weight:800;color:var(--navy);line-height:1.3}
.rmv-goalband .rmv-gb-d{margin-top:3px;font-size:var(--t-sm);color:var(--ink);line-height:1.45;max-width:900px}
.rmv-lane-def{flex-basis:100%;font-size:var(--t-base);font-weight:600;color:rgba(255,255,255,.94);
  white-space:pre-line;line-height:1.55;margin-top:2px;max-width:1050px}
#hvCard .hv-gitem{margin-top:2px}
#hvCard .hv-gitem:before{content:"\2022  ";color:var(--muted)}

/* ---- Focus-area pills on Roadmap lane headers (Lavon 8/28): same gold chips
   the list view's imperative band shows - One Ergon tags for the Ergon family. ---- */
.rmv-lane-fa{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:14px;vertical-align:4px}
.rmv-fa-pill{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  color:var(--navy);background:#ffd579;border-radius:999px;padding:3px 12px;white-space:nowrap}

/* Spin off a to-do, from the notes panel on any marker. */
.np-spin{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.np-spin-h{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.np-spin .qa{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.np-spin .qa .grow{flex:1 1 190px;min-width:0}
.np-spin .qa input,.np-spin .qa select{border:1px solid var(--line);border-radius:var(--r-sm,8px);padding:8px 10px;font:inherit;font-size:12.5px;background:#fff}
.np-spin .qa-date{flex:0 0 140px}
.np-spin .qa-add{background:var(--navy);color:#fff;border:0;border-radius:var(--r-sm,8px);padding:9px 14px;font:700 12.5px/1 inherit;cursor:pointer;white-space:nowrap}
.np-spin .qa-add:hover{opacity:.92}
.np-spin .qa-add:disabled{opacity:.5;cursor:default}

/* ---- Imperative tiles: bar, not donut (Lavon 2026-08-28) ----
   Same data, a quarter of the height, and the gap to target is visible. */
.mdx .ring-tile-figure{margin:12px 0 8px}
.mdx .ring-tile-pct{position:static!important;inset:auto!important;transform:none!important;display:inline-flex;align-items:baseline;
  font-family:var(--font-num);font-size:var(--t-3xl);font-weight:800;line-height:1;letter-spacing:-.5px}
.mdx .ring-tile-pct i{font-style:normal;font-size:var(--t-lg);margin-left:2px;opacity:.65}
.mdx .ring-tile-track{position:relative;width:100%;align-self:stretch;height:8px;border-radius:2px;background:#E8EAF0;overflow:hidden}
.mdx .ring-tile-fill{display:block;height:100%;border-radius:2px;transition:width .5s cubic-bezier(.3,.8,.3,1)}
/* the 80 target, so a bar is read against something rather than in isolation */
.mdx .ring-tile-target{position:absolute;top:-2px;bottom:-2px;left:80%;width:2px;background:#131B55;opacity:.45}
.mdx .ring-tile{cursor:pointer;transition:border-color .12s,transform .12s}
.mdx .ring-tile:hover{border-color:var(--navy);transform:translateY(-1px)}
.mdx .ring-tile:focus-visible{outline:2px solid var(--navy);outline-offset:2px}

/* ── Imperative strip ──────────────────────────────────────────────────────
   These tiles sit INSIDE .imp-unified-card, which is already white with its own
   shadow. Giving each tile a second white surface + border + shadow stacked a
   card on a card and read as clutter rather than hierarchy. One elevation per
   zone: the card is the surface, the tiles are columns divided by hairlines. */
.mdx .ring-grid{ gap: 0; }
.mdx .ring-tile{
  background: transparent;
  border: 0;
  border-left: 1px solid var(--navy-10);
  border-radius:0;
  padding: 16px 24px 8px;
  box-shadow: none;
}
.mdx .ring-grid > .ring-tile:first-child{ border-left: 0; }
.mdx .ring-tile:hover{
  background: rgba(19,27,85,.03);
  border-color: var(--navy-10);
  box-shadow: none;
  transform: none;
}
.mdx .ring-grid > .ring-tile:first-child:hover{ border-left: 0; }
@media (max-width: 900px){
  /* two-up: the third tile starts a new row, so its left rule has nothing to divide */
  .mdx .ring-grid > .ring-tile:nth-child(odd){ border-left: 0; }
}
@media (max-width: 900px){
  /* this rule is later in the file than the base narrow-viewport block, so it has to
     restate the padding it would otherwise override */
  .mdx .ring-tile{ padding: 16px 16px 8px; }
}
@media (max-width: 640px){
  .mdx .ring-grid > .ring-tile{ border-left: 0; border-top: 1px solid var(--navy-10); }
  .mdx .ring-grid > .ring-tile:first-child{ border-top: 0; }
}

/* ── BHX hero: one focal point ─────────────────────────────────────────────
   The score was 44px against a 26px headline — close enough in weight that the
   eye had to choose between them. The number IS the story; everything else is
   caption. Score now reads ~3x the headline, on the 8pt grid. */
.mdx .imp-unified-ring{ width: 192px; height: 192px; }
.mdx .imp-unified-ring-pct{ font-size:var(--t-3xl); letter-spacing: -2.5px; }
.mdx .imp-unified-ring-sub{ font-size:var(--t-xs); margin-top: 6px; }
.mdx .imp-unified-headline{ font-size:var(--t-xl); letter-spacing: -0.2px; }
.mdx .imp-unified-top{ gap: 40px; }
@media (max-width: 900px){
  .mdx .imp-unified-ring{ width: 160px; height: 160px; }
  .mdx .imp-unified-ring-pct{ font-size:var(--t-3xl); letter-spacing: -2px; }
  .mdx .imp-unified-top{ gap: 24px; }
}

/* ── Cream page: give the white surfaces an edge ───────────────────────────
   The Scoreboard moved from a pale-blue page to cream (2026-08-28). Cream is only
   ~3% off white, so a shadow alone no longer separates a white card from the page
   the way it did on blue. A hairline does the work the tint used to do.
   .obj-hero / .q-hero keep their 4px coloured top rule, so only the other 3 sides. */
.mdx .card{ border: 1px solid var(--navy-10); }
.mdx .obj-hero, .mdx .q-hero{
  border-right: 1px solid var(--navy-10);
  border-bottom: 1px solid var(--navy-10);
  border-left: 1px solid var(--navy-10);
}

/* ── Board pack ────────────────────────────────────────────────────────────
   A print-only, multi-page client deliverable. Screen styles exist only so the
   trigger button matches the other topbar actions; everything else lives in the
   @media print block below, because #bpRoot is never shown on screen. */
.bp-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--r-pill);
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.10);color:#fff;
  font-size:12.5px;font-weight:700;letter-spacing:.2px;transition:background .18s ease,border-color .18s ease}
.bp-btn:hover{background:rgba(255,255,255,.20);border-color:rgba(255,255,255,.5)}
.bp-btn svg{width:15px;height:15px}
#bpRoot{display:none}
/* The topbar's button row already overflows its own height on narrow screens (pre-existing:
   .tb-right wraps but .topbar doesn't grow), and saving a 7-page pack from a phone isn't a
   real workflow. Don't add a fourth button to a row that is already spilling. */
@media (max-width: 900px){ .bp-btn{display:none!important} }

@media print{
  /* Isolate the pack: hide the entire app, show only #bpRoot. */
  body.printing-pack #appShell,body.printing-pack .topbar,body.printing-pack #sidebar,
  body.printing-pack #fab,body.printing-pack #modal,body.printing-pack #infoModal,
  body.printing-pack .modal-backdrop,body.printing-pack #printRoot{display:none!important}
  body.printing-pack{background:#fff}
  body.printing-pack #bpRoot{display:block!important;background:#fff}

  .bp-page{break-after:page;padding:0 0 8px;font-family:'Mulish','Avenir Next',sans-serif;color:#131B55}
  .bp-page.bp-last{break-after:auto}

  /* Cover */
  .bp-cover{display:flex;flex-direction:column;justify-content:space-between;min-height:9.4in;
    border-top:8px solid #131B55;padding-top:24px}
  .bp-cover-top .bmark{height:44px}
  .bp-cover-mid{padding-top:8px}
  .bp-kicker{font-size:11px;font-weight:800;letter-spacing:2.4px;text-transform:uppercase;color:#884934}
  .bp-co{font-size:44px;font-weight:800;letter-spacing:-1px;line-height:1.05;margin:8px 0 8px}
  .bp-cover-scope{font-size:15px;color:#5A6072;font-weight:600}
  .bp-cover-score{display:flex;align-items:center;gap:20px;margin-top:40px;padding-top:24px;
    border-top:1px solid #E2E3EA}
  .bp-cover-num{font-family:'Oswald',sans-serif;font-size:64px;font-weight:700;line-height:.9;letter-spacing:-3px}
  .bp-cover-lbl{font-size:13px;color:#5A6072;line-height:1.5;font-weight:600}
  .bp-cover-foot{display:flex;justify-content:space-between;font-size:11px;color:#5A6072;
    border-top:1px solid #E2E3EA;padding-top:8px}

  /* Interior page furniture */
  .bp-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
    border-bottom:2px solid #131B55;padding-bottom:8px;margin-bottom:16px}
  .bp-h2{font-size:22px;font-weight:800;letter-spacing:-.3px;margin:0}
  .bp-hsub{font-size:11.5px;color:#5A6072;margin-top:2px}
  .bp-h-mark{font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
    color:#884934;white-space:nowrap}
  .bp-h3{font-size:13px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
    color:#884934;margin:24px 0 8px}
  .bp-lede{font-size:13px;line-height:1.55;color:#2B3350;margin-bottom:16px;max-width:74ch}
  .bp-note{font-size:10.5px;line-height:1.5;color:#5A6072;margin-top:12px;max-width:80ch}
  .bp-empty{font-size:12px;color:#5A6072;font-style:italic;padding:8px 0}
  .bp-sub{font-size:10.5px;color:#5A6072;font-weight:400;margin-top:2px}

  .bp-stats{display:flex;gap:8px;margin-bottom:8px}
  .bp-stat{flex:1;border:1px solid #E2E3EA;border-radius:8px;padding:12px}
  .bp-stat b{display:block;font-family:'Oswald',sans-serif;font-size:26px;line-height:1;color:#131B55}
  .bp-stat span{display:block;font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;
    color:#5A6072;margin-top:4px;font-weight:700}

  .bp-tbl{width:100%;border-collapse:collapse;font-size:11px}
  .bp-tbl th{text-align:left;font-size:9px;letter-spacing:1px;text-transform:uppercase;
    color:#5A6072;border-bottom:1px solid #131B55;padding:0 8px 4px 0;font-weight:800}
  .bp-tbl td{padding:8px 8px 8px 0;border-bottom:1px solid #EDEEF2;vertical-align:top;line-height:1.4}
  .bp-tbl tr{break-inside:avoid}
  .bp-tbl thead{display:table-header-group}   /* repeat the header on every page a table spans */
  .bp-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
  /* Same right padding on head and body or the column edges disagree; without it a
     right-aligned heading butts straight into the next one ("EXEC %LOAD"). */
  .bp-tbl th.bp-num,.bp-tbl td.bp-num{padding-right:14px}
  .bp-tbl th.bp-num:last-child,.bp-tbl td.bp-num:last-child{padding-right:0}
  .bp-late td{background:#FFF6F6}

  .bp-chip{display:inline-block;padding:2px 7px;border-radius:999px;font-size:8.5px;
    font-weight:800;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .bp-bar{position:relative;display:block;height:6px;background:#E8EAF0;border-radius:2px;overflow:hidden;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  .bp-bar i{position:absolute;left:0;top:0;bottom:0;display:block;border-radius:2px}
  .bp-bar u{position:absolute;left:80%;top:0;bottom:0;width:1px;background:#131B55;opacity:.55}

  /* Status fills and score colours must survive the print pipeline. */
  .bp-cover-num,.bp-stat b,.bp-chip,.bp-bar i{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@page{ size:letter portrait; margin:0.55in 0.6in; }

/* Keyboard focus ring for the click-only rows made focusable above. Keyboard users must be able
   to SEE where they are; :focus-visible keeps it off mouse clicks. */
[data-action="open-row"]:focus-visible{
  outline: 2px solid var(--navy, #131B55);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Board pack: client mark left, Blue Hen mark right. A BH deliverable carries the real mark,
   never a typed "Blue Hen Agency" substitute. Navy artwork, because this prints on white. */
@media print{
  .bp-cover-top{display:flex;align-items:center;justify-content:space-between;gap:24px}
  .bp-cover-top .bp-bh{height:40px;width:auto;display:block}
}

/* At-a-glance figures are derived, so each one opens its own arithmetic. */
.wkd-gl.gl-click{cursor:pointer;transition:border-color .12s,box-shadow .12s}
.wkd-gl.gl-click:hover,.wkd-gl.gl-click:focus-visible{border-color:#384d9b;box-shadow:0 2px 10px rgba(19,27,85,.10);outline:none}
.gl-more{margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#4a5286}
.wkd-gl.gl-click:hover .gl-more{color:#1155CC}
.sbd-lede{margin:0 0 16px;font-size:14px;line-height:1.5;color:#2a3160}


/* ---- "Enter numbers" panel (every figure on a metric card, by hand) ---- */
.nm-lede{font-size:12.5px;line-height:1.55;color:#4a5286;margin:0 0 16px}
.nm-rule{height:1px;background:var(--line,#e3e0d8);margin:16px 0 4px}
.nm-row{display:flex;gap:8px;align-items:center}
.nm-row select{flex:none;max-width:190px}
.nm-row input{flex:1;min-width:0}

/* ---- recorded meeting summary (a notetaker's output) ----
   Sits UNDER what people typed in the room and is visibly a different kind of
   thing: a tinted panel with its source stated, so nobody ever reads a machine
   transcript as something a colleague wrote down. */
.ai-sec{background:var(--cream,#FAF7F0);border:1px solid var(--line,#e3e0d8);
  border-radius:var(--r-md,14px);padding:16px 18px}
.ai-src{font-size:var(--t-xs);color:#4a5286;margin:2px 0 12px;line-height:1.5}
.ai-sum p{font-size:var(--t-sm);line-height:1.65;color:#2a3160;margin:0 0 10px}
.ai-sum p:last-child{margin-bottom:0}
.ai-items{margin-top:16px;border-top:1px solid var(--line,#e3e0d8);padding-top:12px}
.ai-items-h{font-size:var(--t-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-blue);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.ai-items-h::before{content:"";width:8px;height:8px;border-radius:50%;background:#C8950C;flex:none}
/* An item still waiting on somebody reads as caution: white-on-navy made it
   disappear into the page (Lavon, 2026-09-05). Goldenrod rather than pure
   #FFFF00 — a full-width block of signal yellow shouts, and these sit on a
   client's screen. Once placed, the item drops back to plain white and gets
   out of the way, so what is left coloured is exactly what is left to do. */
.ai-item{display:flex;align-items:center;gap:12px;background:#FFF8E4;
  border:1px solid #E8C874;border-left:4px solid #C8950C;
  border-radius:var(--r-sm,8px);padding:8px 12px;margin-bottom:8px}
.ai-item.done{background:#fff;border:1px solid var(--line,#e3e0d8);border-left:4px solid #52823D}
.ai-item-t{flex:1;min-width:0;font-size:var(--t-sm);line-height:1.5;color:#2a3160}
.ai-item.done .ai-item-t{color:#4a5286}
.ai-item-done{flex:none;font-size:var(--t-xs);font-weight:600;color:#52823D}
.ai-item-acts{flex:none;display:flex;align-items:center;gap:8px}
.ai-mk{font:inherit;font-size:var(--t-xs);font-weight:700;color:#fff;background:var(--navy);
  border:1px solid var(--navy);border-radius:8px;padding:4px 12px;cursor:pointer;box-shadow:none}
.ai-mk:hover{background:#2a3160;border-color:#2a3160}
.ai-x{font:inherit;font-size:15px;line-height:1;color:#4a5286;background:none;border:0;
  padding:0 4px;cursor:pointer;box-shadow:none}
.ai-x:hover{color:#990000}
.ai-link{display:inline-block;margin-top:12px;font-size:var(--t-xs);color:var(--ink-blue)}
.pm-chip-rec{color:var(--ink-blue);font-weight:700}
@media print{ .ai-item-acts,.ai-link{display:none !important} }

/* ---- recordings waiting to be filed (staff only) ----
   Sits at the top of Meetings because a queue you have to go looking for is a
   queue nobody works. Gold, not red: it is a job to do, not a fault. */
.fq-wrap{background:#FFF9C0;border:1px solid rgba(133,77,14,.22);border-radius:var(--r-md,14px);
  padding:16px;margin:0 0 20px}
.fq-head{margin-bottom:12px}
.fq-head h2{font-family:var(--font-head);font-size:var(--t-lg);font-weight:600;color:var(--gold-ink);margin:0}
.fq-sub-h{font-size:var(--t-sm);color:var(--gold-ink);line-height:1.5}
.fq-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:var(--r-sm,8px);padding:12px;margin-bottom:8px}
.fq-row:last-child{margin-bottom:0}
.fq-main{flex:1 1 260px;min-width:0}
.fq-t{font-size:var(--t-sm);font-weight:600;color:var(--navy);line-height:1.4}
.fq-sub{font-size:var(--t-xs);color:#4a5286;margin-top:2px;line-height:1.5}
.fq-guess{color:var(--gold-ink);font-weight:600}
.fq-guess.ok{color:#1f7a4d}
.fq-pick{flex:0 1 340px;display:flex;flex-direction:column;gap:6px}
.fq-pick select{font:inherit;font-size:var(--t-xs);color:var(--ink);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px;width:100%}
.fq-pick select:focus{outline:none;border-color:var(--ink-blue)}
.fq-acts{flex:none;display:flex;align-items:center;gap:8px}
.fq-go{font:inherit;font-size:var(--t-xs);font-weight:700;color:#fff;background:var(--navy);
  border:1px solid var(--navy);border-radius:8px;padding:8px 16px;cursor:pointer;box-shadow:none}
.fq-go:hover{background:#2a3160;border-color:#2a3160}
.fq-x{font:inherit;font-size:var(--t-xs);color:#4a5286;background:none;border:0;
  padding:8px 4px;cursor:pointer;box-shadow:none;text-decoration:underline;text-underline-offset:2px;margin:0}
.fq-x:hover{color:#990000}

/* ---- read it before you file it ---- */
.fq-peek{font:inherit;font-size:var(--t-xs);font-weight:700;color:var(--navy);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px 12px;cursor:pointer;box-shadow:none}
.fq-peek:hover{border-color:var(--navy)}
.fq-prev{flex:1 0 100%;margin-top:12px;padding-top:12px;border-top:1px solid var(--line,#e3e0d8)}
.fq-prev-h{font-size:var(--t-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink-blue);margin:0 0 4px}
.fq-prev-body p{font-size:var(--t-sm);line-height:1.6;color:#2a3160;margin:0 0 8px}
.fq-prev-list{margin:0 0 12px;padding-left:20px}
.fq-prev-list li{font-size:var(--t-sm);line-height:1.6;color:#2a3160;margin-bottom:4px}
.fq-prev-who{color:#4a5286;font-weight:600}
.fq-prev-empty{font-size:var(--t-sm);color:var(--gold-ink)}
.fq-prev-link{font-size:var(--t-xs);color:var(--ink-blue)}

/* A bare count, never a client name — this renders on other clients' pages. */
.fq-elsewhere{background:#FFF9C0;border:1px solid rgba(133,77,14,.22);border-radius:var(--r-md,14px);
  padding:12px 16px;margin:0 0 20px;font-size:var(--t-sm);color:var(--gold-ink);line-height:1.5}
.fq-jump{font:inherit;font-size:var(--t-sm);color:var(--gold-ink);background:none;border:0;padding:0;
  cursor:pointer;box-shadow:none;text-decoration:underline;text-underline-offset:2px;font-weight:700}

/* ---- this client's filed recordings (staff only) ---- */
.rc-wrap{margin:24px 0 0}
.rc-headline{margin-bottom:12px}
.rc-headline h2{font-family:var(--font-head);font-size:var(--t-xl);font-weight:600;color:var(--navy);margin:0}
.rc-row{background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:var(--r-md,14px);
  padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}
/* A recording nobody has worked through yet has to be visible from across the
   list, not only once it is opened (Lavon, 2026-09-05). The card carries the
   caution edge; it goes plain white the moment the last item is placed. */
.rc-row.waiting{background:#FFFDF6;border-color:#E8C874;border-left:4px solid #C8950C}
.rc-wait{display:inline-block;margin-top:6px;font-size:var(--t-xs);font-weight:700;
  color:#7a5c05;background:#FFF3D0;border:1px solid #E8C874;border-radius:999px;padding:2px 10px}
.rc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.rc-t{font-family:var(--font-head);font-size:var(--t-md);font-weight:600;color:var(--navy);line-height:1.4}
.rc-sub{font-size:var(--t-xs);color:#4a5286;margin-top:2px;line-height:1.5}
.rc-attach{margin-top:8px}
.rc-att{font-size:var(--t-xs);color:#4a5286}
.rc-att.none{color:var(--gold-ink)}
.rc-pick{font:inherit;font-size:var(--t-xs);color:var(--ink);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px;max-width:360px;width:100%}
.rc-pick:focus{outline:none;border-color:var(--ink-blue)}
.rc-body{margin-top:16px;padding-top:16px;border-top:1px solid var(--line,#e3e0d8)}

/* ---- one-click delete on a to-do ---- */
.kcard{position:relative}
/* ---- the one delete affordance (2026-09-12) ----
   Top right of the card, ALWAYS on screen. The old to-do × only appeared on row hover,
   which is the same "affordance nobody can find" problem as the drag grip — Lavon asked
   for it "a little more pronounced". Quiet navy at rest, red on hover, and solid red once
   armed so the second click is unmistakably the destructive one. */
.itemx{position:absolute;top:8px;right:8px;z-index:2;display:flex;align-items:center;justify-content:center;
  width:24px;height:24px;padding:0;font:inherit;font-size:20px;line-height:1;font-weight:700;
  color:#4a5286;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm,8px);
  cursor:pointer;box-shadow:none;transition:color .12s,background .12s,border-color .12s}
.itemx:hover{color:#990000;border-color:#e3a3a3;background:#F4CCCC}
.itemx:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.itemx.armed{color:#fff;background:#990000;border-color:#990000;width:auto;padding:0 8px;font-size:12.5px}
.itemx.armed::after{content:"Delete";margin-left:4px;font-weight:800;letter-spacing:.02em}
/* every card that carries one has to be a positioning context, and leave it room */
.card.pk,.iss,#sprintRunner .tkmode .tk-row,.kcard{position:relative}
.card.pk,.iss,.kcard{padding-right:40px}
#sprintRunner .tkmode .tk-row{padding-right:38px}
.kdel{position:absolute;top:4px;right:4px;font:inherit;font-size:16px;line-height:1;color:#4a5286;
  background:none;border:0;border-radius:8px;padding:4px 8px;cursor:pointer;box-shadow:none;opacity:.55}
.kcard:hover .kdel,.kdel:focus{opacity:1}
.kdel:hover{color:#990000}
.kcard.from-rec{border-left:3px solid var(--gold-ink,#C8950C)}
.krec{display:inline-block;margin-left:8px;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gold-ink,#C8950C);font-weight:700;vertical-align:middle}
.rc-sweep{font:inherit;font-size:var(--t-xs);font-weight:700;color:var(--gold-ink);background:#FFF9C0;
  border:1px solid rgba(133,77,14,.22);border-radius:8px;padding:8px 12px;margin:0 0 16px;cursor:pointer;box-shadow:none}
.rc-sweep:hover{background:#fff6a0}

/* ---- delete a whole recording ---- */
.rc-btns{display:flex;align-items:center;gap:8px;flex:none}
.rc-del{font:inherit;font-size:var(--t-md);line-height:1;color:#4a5286;background:none;border:0;
  border-radius:8px;padding:4px 8px;cursor:pointer;box-shadow:none;opacity:.55}
.rc-row:hover .rc-del,.rc-del:focus{opacity:1}
.rc-del:hover{color:#990000}

/* edit sits beside delete on a to-do card */
.kedit{position:absolute;top:4px;right:28px;font:inherit;font-size:13px;line-height:1;color:#4a5286;
  background:none;border:0;border-radius:8px;padding:4px;cursor:pointer;box-shadow:none;opacity:.55}
.kcard:hover .kedit,.kedit:focus{opacity:1}
.kedit:hover{color:var(--navy)}

/* ---- what came out of the last meeting (the client's own triage) ---- */
/* Caution, not navy. Everything on this page is white-on-blue, so a panel of
   things waiting on a person read as more of the same and got skipped over
   (Lavon, 2026-09-05). Goldenrod rather than signal yellow — clients see this. */
.fm-wrap{background:transparent;border:0;border-radius:0;padding:0;margin:0 0 32px;box-shadow:none}
.fm-head{margin-bottom:12px}
.fm-head h2{font-family:var(--font-head);font-size:18px;font-weight:700;color:var(--navy);margin:0}
.fm-row{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:var(--shadow);padding:16px 20px;margin-bottom:12px}
.fm-row:first-of-type{border-top:0}
.fm-t{font-size:14px;font-weight:600;line-height:1.45;color:var(--navy);margin-bottom:8px}
.fm-ctl{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}
.fm-ctl .fm-due{grid-column:1/2}
.fm-ctl .fm-add{grid-column:2/3}
.fm-ctl .fm-skip{grid-column:3/4;grid-row:2}
.fm-ctl select,.fm-ctl input{font:inherit;font-size:var(--t-xs);color:var(--ink);background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px}
.fm-ctl select:focus,.fm-ctl input:focus{outline:none;border-color:var(--ink-blue)}
.fm-cat{font-weight:600}
.fm-add{font:inherit;font-size:var(--t-xs);font-weight:700;color:#fff;background:var(--navy);
  border:1px solid var(--navy);border-radius:8px;padding:8px 16px;cursor:pointer;box-shadow:none}
.fm-add:hover{background:#2a3160;border-color:#2a3160}
.fm-skip{font:inherit;font-size:24px;font-weight:700;line-height:1;color:#990000;background:#fff;
  border:2px solid #990000;border-radius:999px;width:36px;height:36px;min-height:36px;padding:0;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none;flex:none}
.fm-skip:hover,.fm-skip:focus-visible{background:#990000;color:#fff}
.dm-bymtg{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 20px;margin:0 0 24px}
.dm-bymtg-h{font-size:var(--t-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin:0 0 8px}
.dm-bymtg-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.dm-bymtg-row:first-of-type{border-top:0}
.dm-bymtg-row .dm-when{margin:0;flex:1 1 auto}
.dm-bymtg-n{font-size:var(--t-sm);font-weight:700;color:var(--navy);white-space:nowrap}
.dm-head .dm-clear{float:right}
.mdx .deliv-q{margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid var(--line)}
.mdx .deliv-q-h{font-size:var(--t-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin:0 0 8px}
.mdx .deliv-q-late{margin-top:8px;font-size:var(--t-sm);font-weight:700;color:var(--navy)}
.mdx .deliv-q-late.is-late{color:#990000}
.mdx .deliv-q-prev{margin-top:4px;font-size:var(--t-sm);color:var(--navy)}
.fm-hint{font-size:var(--t-xs);color:#7a5c05;margin-top:6px}

/* The row's number, and it is the same number in the recap email and in the
   checker's "worth a look" list. Not its position on this screen -- that shifts
   the moment somebody accepts one -- but its index in the stored record, which
   is what accept and file already address it by. */
.row-n{float:left;min-width:20px;text-align:center;font-size:var(--t-xs);font-weight:800;
  color:#fff;background:var(--navy);border-radius:999px;padding:0 4px;margin:0 8px 0 0;
  line-height:1.6}
.fm-row::after,.dm-row::after{content:"";display:block;clear:both}

/* ---- why things changed: the reason, on its way onto the marker ---- */
/* Deliberately NOT the gold of .fm-wrap. That card asks "where does this go?";
   this one asks "is that what was actually said?" -- a different question, and
   two identical cards stacked read as one long list of chores. */
.mt-side{display:grid;gap:20px;align-content:start;min-width:0}
.dm-wrap{background:transparent;border:0;border-radius:0;padding:0;margin:0 0 32px;box-shadow:none}
.dm-head{margin-bottom:12px}
.dm-head h2{font-family:var(--font-head);font-size:var(--t-lg);font-weight:700;color:var(--navy);margin:0}
.dm-when{font-size:var(--t-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);margin:0 0 8px}
.fm-row .dm-when{flex:1 1 100%;margin:0 0 4px}
.dm-row{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:var(--shadow);padding:16px 20px;margin-bottom:12px}
.dm-row:first-of-type{border-top:0}
.dm-said{font-size:var(--t-md);font-weight:600;line-height:1.45;color:var(--navy);margin-bottom:8px}
/* The line from the transcript, word for word. Blue Hen only -- a quote is a slice
   of everything that was said in the room, which is working material, not a
   deliverable (same rule as the transcript link). */
.dm-quote{font-size:var(--t-xs);line-height:1.5;color:#4a5286;background:var(--cream,#FAF7F0);
  border:1px solid var(--line,#e3e0d8);border-left:3px solid #C8950C;border-radius:8px;
  padding:8px 12px;margin-bottom:8px}
.dm-quote::before{content:"\201C"}
.dm-quote::after{content:"\201D"}
.dm-pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.dm-target{flex:1 1 200px;min-width:0;font:inherit;font-size:var(--t-xs);color:var(--ink);
  background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px}
.dm-target:focus{outline:none;border-color:var(--ink-blue)}
.dm-conf{flex:none;font-size:var(--t-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:#2a3160;background:#EEF1F8;border-radius:999px;padding:4px 8px}
.dm-conf.chosen{color:#fff;background:#1155CC}
.dm-conf.low{color:var(--gold-ink,#7a5c05);background:#FFF9C0}
.dm-conf.none{color:#4a5286;background:#f4f5f8}
.dm-body{display:block;width:100%;font:inherit;font-size:var(--t-sm);line-height:1.5;color:var(--ink);
  background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px 12px;resize:vertical}
.dm-body:focus{outline:none;border-color:var(--ink-blue)}
.dm-acts{display:flex;align-items:center;gap:8px;margin-top:8px}
.dm-file{flex:1;font:inherit;font-size:var(--t-xs);font-weight:700;color:#fff;background:var(--navy);
  border:1px solid var(--navy);border-radius:8px;padding:8px 16px;cursor:pointer;box-shadow:none}
.dm-file:hover{background:#2a3160;border-color:#2a3160}
.dm-acts .fm-skip{flex:none}
/* where a decision is pointed, on the recording's own panel */
.ai-dec-at{font-size:var(--t-xs);font-weight:600;color:#2a3160}
/* a note whose words came off a transcript, filed by the person named beside it */
.ni-src{font-size:var(--t-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:#2a3160;background:#EEF1F8;border-radius:999px;padding:4px 8px;white-space:nowrap}

/* ---- Blue Hen's own read on a client's page. Never shown to the client. ---- */
.sw-bar{display:flex;align-items:flex-start;gap:12px;background:#f4f5f8;
  border:1px dashed var(--line,#e3e0d8);border-radius:var(--r-md,14px);
  padding:12px 16px;margin:0 0 16px}
.sw-bar.late{background:#FFF9C0;border-color:rgba(133,77,14,.22)}
.sw-tag{flex:none;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:var(--navy);border-radius:999px;padding:4px 8px;margin-top:1px}
.sw-txt{font-size:var(--t-sm);line-height:1.5;color:#4a5286}
.sw-bar.late .sw-txt{color:var(--gold-ink)}

/* ---- the book at a glance, Blue Hen workspace only ---- */
.bk-wrap{background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:var(--r-md,14px);
  padding:16px;margin:0 0 20px;box-shadow:var(--shadow)}
.bk-head{margin-bottom:12px}
.bk-head h2{font-family:var(--font-head);font-size:var(--t-lg);font-weight:600;color:var(--navy);margin:0}
.bk-row{display:flex;align-items:center;gap:16px;width:100%;text-align:left;font:inherit;
  background:none;border:0;border-top:1px solid var(--line,#e3e0d8);padding:12px 8px;cursor:pointer;box-shadow:none}
.bk-row:hover{background:var(--cream,#FAF7F0)}
.bk-name{flex:1;min-width:0;font-size:var(--t-sm);font-weight:600;color:var(--navy)}
.bk-n{flex:none;font-size:var(--t-sm);color:#2a3160;font-variant-numeric:tabular-nums}
.bk-age{flex:none;font-size:var(--t-xs);color:#4a5286;min-width:120px}
.bk-row.warm .bk-age{color:var(--gold-ink);font-weight:600}
.bk-row.hot .bk-age{color:#990000;font-weight:700}

/* ---- send the notetaker into a meeting ---- */
.mt-note{display:block;width:100%;margin-top:12px;font:inherit;font-size:var(--t-xs);font-weight:700;
  color:var(--navy);background:#fff;border:1px solid var(--navy);border-radius:8px;
  padding:8px 12px;cursor:pointer;box-shadow:none;text-align:center}
.mt-note:hover{background:var(--cream,#FAF7F0)}
.mt-note:disabled{opacity:.6;cursor:default}

/* ---- notetaker control, in the meeting header beside the clock ---- */
/* Idle sits on the light header now (2026-09-12); the working and stopped states keep the
   colours they had, which already read on white. */
.spr-rec{font:inherit;font-size:12px;font-weight:700;color:var(--navy);background:#fff;
  border:1px solid #cdd8f1;border-radius:999px;padding:8px 16px;cursor:pointer;
  box-shadow:none;white-space:nowrap}
.spr-rec:hover{background:#eef1fb}
.spr-rec:disabled{opacity:.6;cursor:default}
/* Green and gently pulsing while it is working (Lavon's call). Red would read as
   Not Done in this palette, and nothing has gone wrong — it is running. */
.spr-rec.on{color:#fff;background:#52823D;border-color:#52823D;animation:recPulse 2s ease-in-out infinite}
/* The meeting is running and the notetaker is not — a risk, not a failure, so it wears the
   canonical Off Track pair rather than Not Done red (2026-09-12). Nothing is broken; the
   room is simply about to go unrecorded. */
.spr-rec.off{background:#FFF8C4;border-color:#e8dc8a;color:#7F6000}
.spr-rec.off:hover{background:#fdf3a8}
@keyframes recPulse{0%,100%{opacity:1}50%{opacity:.62}}
@media (prefers-reduced-motion:reduce){ .spr-rec.on{animation:none} }
.spr-reset{font:inherit;font-size:12px;font-weight:600;color:#4a5286;background:none;
  border:0;padding:8px 12px;cursor:pointer;box-shadow:none;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.spr-reset:hover{color:var(--navy)}

/* ---- the clock is the control: pause and reset live on it ---- */
#sprTimer{position:relative;cursor:pointer}
#sprTimer:hover{filter:brightness(1.12)}
#sprTimer.paused{opacity:.62}
.st-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:150px;background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:12px;box-shadow:0 14px 40px rgba(19,27,85,.28);
  padding:4px;z-index:60;cursor:default}
.st-menu button{display:block;width:100%;text-align:left;font:inherit;font-size:12px;font-weight:600;
  color:var(--navy);background:none;border:0;border-radius:8px;padding:8px 12px;cursor:pointer;box-shadow:none}
.st-menu button:hover{background:var(--cream,#FAF7F0)}
.gl-goal{margin-top:6px;font-size:12px;font-weight:700;color:#4a5286}

/* A live number that is known to be doubted. Set per measure, never blanket —
   the old blanket "needs confirming" tag was removed 2026-09-01 as noise. */
.mtag-data,.mtag-stale{display:inline-block;margin:4px 0 0;padding:4px 8px;border-radius:6px;
  background:#FFF4D6;color:#7A5B00;font-size:11px;font-weight:800;letter-spacing:.4px;
  border:1px solid #E8C35A;cursor:help}
/* A number nobody has refreshed is a RISK, not a failure — the canonical Off Track pair,
   same call as the Notetaker pill. It shares the data-flag chip's shape so the two read as
   the same kind of warning. */
.mtag-stale{background:#FFF8C4;border-color:#e8dc8a;color:#7F6000}

  /* ---- phone Scoreboard (2026-09-06) ---- */
  .pho{display:flex;flex-direction:column;gap:12px;padding:0 0 24px}
  .pho-bar{padding:0 0 8px}
  .pho-btn,.pho-full,.pho-more{font:inherit;font-size:var(--t-sm);font-weight:800;color:var(--ink-blue);background:#fff;border:1px solid var(--ink-blue);border-radius:999px;padding:12px 16px;cursor:pointer;min-height:44px}
  .pho-full{align-self:stretch;text-align:center}
  .pho-score{background:var(--navy);color:#fff;border-radius:var(--r-md);padding:20px 16px;display:flex;flex-direction:column;gap:4px}
  .pho-k{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#cdd3f0}
  .pho-num{font-size:var(--t-3xl);font-weight:900;line-height:1;letter-spacing:-1px}
  .pho-num small{font-size:var(--t-base);font-weight:700;color:#cdd3f0;margin-left:4px;letter-spacing:0}
  .pho-band{font-size:var(--t-md);font-weight:800}
  .pho-score.on .pho-band{color:#9BD3FF} .pho-score.watch .pho-band{color:var(--gold,#C8950C)} .pho-score.off .pho-band{color:#FFB3B3} .pho-score.none .pho-band{color:#cdd3f0}
  .pho-counts{display:flex;gap:16px;margin-top:8px;font-size:var(--t-sm);color:#cdd3f0;flex-wrap:wrap}
  .pho-counts b{color:#fff;font-size:var(--t-base)}
  .pho-h{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4a5286;margin-top:8px;display:flex;align-items:center;gap:8px}
  .pho-h-n{background:var(--gold,#C8950C);color:var(--navy);border-radius:999px;padding:4px 8px;letter-spacing:0;text-transform:none;font-size:var(--t-xs)}
  .pho-imps,.pho-needs{display:flex;flex-direction:column;gap:8px}
  .pho-imp{display:grid;grid-template-columns:32px 1fr auto;grid-template-rows:auto auto;column-gap:12px;row-gap:0;align-items:center;text-align:left;font:inherit;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px;cursor:pointer;min-height:56px}
  .pho-imp-n{grid-row:1/3;width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;font-size:var(--t-sm);font-weight:900;display:inline-flex;align-items:center;justify-content:center}
  .pho-imp-t{grid-column:2;grid-row:1;font-size:var(--t-base);font-weight:800;color:var(--navy);line-height:1.3}
  .pho-imp-s{grid-column:3;grid-row:1/3;font-size:var(--t-lg);font-weight:900;color:var(--navy)}
  .pho-imp-s.on{color:#1155CC} .pho-imp-s.watch{color:#8a6100} .pho-imp-s.off{color:#990000} .pho-imp-s.none{color:#4a5286}
  .pho-imp-m{grid-column:2;grid-row:2;font-size:var(--t-sm);color:#4a5286}
  .pho-need{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:0;align-items:center;text-align:left;font:inherit;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px;cursor:pointer;min-height:56px}
  .pho-need.mine{border-left:4px solid var(--gold,#C8950C)}
  .pho-need-t{grid-column:1;grid-row:1;font-size:var(--t-base);font-weight:700;color:var(--navy);line-height:1.3}
  .pho-need-m{grid-column:1;grid-row:2;font-size:var(--t-sm);color:#4a5286}
  .pho-pill{grid-column:2;grid-row:1/3;font-size:var(--t-xs);font-weight:800;border-radius:999px;padding:4px 8px;white-space:nowrap}
  .pho-pill.off{background:#FFFF00;color:var(--navy)} .pho-pill.nd{background:#990000;color:#fff} .pho-pill.late{background:var(--gold,#C8950C);color:var(--navy)}
  .pho-empty{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:16px;font-size:var(--t-base);color:#2a3160}

  /* ---- Insights read-outs + drilldowns (2026-09-06) ---- */
  .ins-why{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--ink-blue);color:var(--ink-blue);background:#fff;font:800 12.5px Inter,system-ui,sans-serif;cursor:pointer;vertical-align:middle;margin-left:4px;padding:0}
  .ins-why:hover{background:var(--ink-blue);color:#fff}
  .ins-read{background:#F6F8FD;border-left:4px solid var(--ink-blue);border-radius:var(--r-sm);padding:12px 16px;font-size:var(--t-base);line-height:1.5;color:#2a3160;margin:0 0 16px}
  .ins-metric{cursor:pointer;border-radius:var(--r-sm)}
  .ins-metric:hover{background:#F6F8FD}
  .im-none{display:block;font-size:var(--t-sm);color:#4a5286;line-height:44px;text-align:center}
  .ins-carry-top li{cursor:pointer}
  .ins-carry-top li:hover{background:#F6F8FD}
  .ins-carry-top .who{margin-left:auto;font-size:var(--t-sm);color:#4a5286;white-space:nowrap}
  .ins-info h3{font-size:var(--t-lg);color:var(--navy);margin:0 0 4px;padding-right:32px}
  .ins-info .info-lead{font-size:var(--t-base);color:#2a3160;line-height:1.5;margin:0 0 16px}
  .ins-info p{font-size:var(--t-base);color:#2a3160;line-height:1.55;margin:0 0 12px}
  .ins-h4{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4a5286;margin:16px 0 8px}
  .ins-drill{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
  .ins-drill li{display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 16px;cursor:pointer}
  .ins-drill li:hover{border-color:var(--ink-blue)}
  .ins-drill .t{grid-column:1;grid-row:1;font-size:var(--t-base);font-weight:700;color:var(--navy);line-height:1.3}
  .ins-drill .m{grid-column:1;grid-row:2;font-size:var(--t-sm);color:#4a5286}
  .ins-pill{grid-column:2;grid-row:1/3;font-size:var(--t-xs);font-weight:800;border-radius:999px;padding:4px 8px;white-space:nowrap;background:#e7e3d8;color:var(--navy)}
  .ins-pill.on{background:#1155CC;color:#fff} .ins-pill.done{background:#52823D;color:#fff} .ins-pill.off{background:#FFFF00;color:var(--navy)} .ins-pill.nd{background:#990000;color:#fff} .ins-pill.hold{background:#A4C2F4;color:var(--navy)}
  .ins-mtab{width:100%;border-collapse:collapse;font-size:var(--t-base)}
  .ins-mtab th{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4a5286;text-align:left;padding:8px 8px;border-bottom:1px solid var(--line)}
  .ins-mtab td{padding:8px 8px;border-bottom:1px solid var(--line);color:var(--navy);font-variant-numeric:tabular-nums}
  .ins-mtab td.hit{color:#3d7a2a;font-weight:800} .ins-mtab td.miss{color:#990000;font-weight:800} .ins-mtab .none{color:#4a5286}
  /* ---- Scorecard strip (feed clients) + Weekly 13-week grid fold ---- */
  .ins-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px;margin:0 0 16px;box-shadow:var(--shadow)}
  .ins-strip-k{font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--navy);border-radius:999px;padding:4px 12px}
  .ins-strip-t{flex:1;min-width:200px;font-size:var(--t-base);color:#2a3160;line-height:1.4}
  .ins-strip-go{font:inherit;font-size:var(--t-sm);font-weight:800;color:var(--ink-blue);background:#fff;border:1px solid var(--ink-blue);border-radius:999px;padding:8px 16px;cursor:pointer;white-space:nowrap}
  .ins-strip-go:hover{background:var(--ink-blue);color:#fff}
  .wk-grid13{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:0 16px;margin:16px 0 0;box-shadow:var(--shadow)}
  .wk-grid13>summary{cursor:pointer;padding:16px 0;font-size:var(--t-md);font-weight:800;color:var(--navy);list-style:none;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
  .wk-grid13>summary::-webkit-details-marker{display:none}
  .wk-grid13>summary::before{content:'\25B8';color:var(--ink-blue);font-size:var(--t-base)}
  .wk-grid13[open]>summary::before{content:'\25BE'}
  .wk-grid13>summary span{font-size:var(--t-sm);font-weight:500;color:#4a5286}
  .wk-grid13 .ins-grid13{margin:0 0 16px}

/* Every measure carries its own definition. Sized to sit on the name's baseline
   without pulling the eye off the measure itself. */
.mdef{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  margin-left:8px;padding:0;border:1px solid #C3C9DA;border-radius:50%;background:#fff;
  color:#4a5286;font:700 12.5px/1 Georgia,serif;cursor:help;vertical-align:middle;
  transition:border-color .12s,color .12s}
.mdef:hover,.mdef:focus-visible{border-color:#1155CC;color:#1155CC;outline:none}
/* Past Meetings runs full width now that the action-item queue moved to the
   Decision Room; without this the old 440px side column stays as dead space. */
.mt-split.solo{grid-template-columns:minmax(0,1fr)}

/* A decision row leads with what changed and what it changed, then why. The
   verbatim quote stays internal (Lavon, 2026-09-05) — the reason is what the
   client needs to confirm the record, not the transcript. */
.dm-on{color:#1155CC}
.dm-about{margin-top:4px;font-size:12.5px;font-weight:600;color:#4a5286}
.dm-why{margin-top:8px;font-size:14px;line-height:1.5;color:#2a3160}
.fm-dupe{margin-top:8px;font-size:12.5px;font-weight:700;color:#4a5286}

/* The wording came off a recording, so it is often nearly right rather than
   right. It is editable in place: the accept handler already reads this node's
   text, so whatever it says when you press Add is what lands on the board. */
.fm-t[contenteditable]{border:1px solid transparent;border-radius:8px;padding:8px;margin:-8px -8px 0;
  transition:border-color .12s,background .12s}
.fm-t[contenteditable]:hover{border-color:#C3C9DA;background:#fbfcfe}
.fm-t[contenteditable]:focus{border-color:#384d9b;background:#fff;outline:none}
/* Blue Hen staff only: says why the Report Console is or is not in the sidebar. */
.nav-diag{margin:12px 8px 0;padding:8px;border-radius:8px;background:rgba(255,255,255,.06);
  color:#b9c4dc;font-size:11px;font-weight:700;line-height:1.5}

/* Tells a long-lived tab that its code is stale. Without this a shipped fix can
   sit live on the server while the person looking at the page sees old code. */
.bhx-newbuild{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:2147483647;
  display:flex;align-items:center;gap:16px;padding:12px 16px;border-radius:14px;
  background:#131B55;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.28);
  font-size:14px;font-weight:700}
.bhx-newbuild button{border:0;border-radius:8px;padding:8px 16px;background:#C8950C;color:#fff;
  font-size:14px;font-weight:800;cursor:pointer}
.bhx-newbuild button:hover{background:#b5860b}
.rpc-empty{margin-top:16px;padding:24px;border-radius:14px;background:#fff;border:1px solid #e6e9f0;
  font-size:14px;line-height:1.6;color:#2a3160}

/* Report Console sits below the scrolling menu, always on screen. It is the one
   screen every client needs weekly; as the last item in a scrollable list it fell
   below the fold on shorter windows and read as missing. */
.nav-pinned{flex:0 0 auto;padding:8px 12px 12px;border-top:1px solid rgba(255,255,255,.10)}

/* Decision Room headings read like every other list on the platform: a camel
   section label with the navy rule, then white cards on the page ground. */
.dm-head h2,.fm-head h2{margin:0 0 4px;font-size:var(--t-2xl);font-weight:800;letter-spacing:0;
  text-transform:none;color:var(--navy);padding-left:0;border-left:0;line-height:1.2}
.dm-head .pm-sub,.fm-head .pm-sub{display:block;padding-left:0}

/* Category sections inside the Decision Room, in the recap email's order. */
.fm-sec{margin:0 0 24px}
.fm-sech{margin:0 0 12px;font-size:var(--t-xl);font-weight:800;letter-spacing:0;
  text-transform:none;color:var(--navy);padding-left:12px;border-left:4px solid var(--navy);line-height:1.2;display:flex;align-items:center;gap:10px}
.fm-na{padding:16px 20px;border:1px dashed var(--line);border-radius:var(--r-sm);
  background:transparent;color:#4a5286;font-size:var(--t-md);font-weight:700}

/* A choice dialog: which thing is this, rather than yes/no. */
.ask-choices{display:grid;gap:8px;margin-top:12px}
.ask-choice{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);
  border-radius:var(--r-sm);cursor:pointer;font-size:var(--t-md);color:var(--ink)}
.ask-choice:hover{border-color:#384d9b;background:#fbfcfe}
/* The related marker on a captured item, beside owner and due date. */
.fm-marker{max-width:200px}

/* "RECORDING STOPPED" — deliberately enormous and red. The person wrapping up
   has to know, from across a room, without reading anything. */
.rec-stopped{position:fixed;inset:0;z-index:2147483647;display:flex;align-items:center;
  justify-content:center;background:rgba(19,27,85,.62);animation:recIn .12s ease-out}
@keyframes recIn{from{opacity:0}to{opacity:1}}
.rec-stopped-in{position:relative;display:flex;align-items:center;gap:24px;
  background:#fff;border:8px solid #990000;border-radius:14px;padding:48px 72px;
  box-shadow:0 24px 64px rgba(0,0,0,.32)}
.rec-dot{width:40px;height:40px;border-radius:50%;background:#990000;flex:0 0 auto}
.rec-tx{font-size:var(--t-display);line-height:1;font-weight:900;letter-spacing:1px;color:#990000;white-space:nowrap}
.rec-x{position:absolute;top:8px;right:16px;border:0;background:transparent;color:#990000;
  font-size:var(--t-3xl);font-weight:900;line-height:1;cursor:pointer}
@media(max-width:720px){ .rec-tx{font-size:var(--t-3xl);white-space:normal;text-align:center}
  .rec-stopped-in{padding:32px 24px;gap:16px} }

/* Report Console — matched to AHM's console (ahm.bluehenagency.com/console.html).
   Colour lives in a 28px badge and the border, never as a solid block, so a wall
   of cells reads as a page rather than a heat map. The DATE is the point. */
.rpc-panel{background:#fff;border:1px solid var(--navy-10,#E2E3EA);border-radius:14px;
  padding:16px 16px;margin:0 0 20px}
.rpc-panel-h{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;flex-wrap:wrap}
.rpc-panel-h h2{font-family:Georgia,'Libre Baskerville',Baskerville,serif;font-size:16.5px;
  color:var(--navy);font-weight:400;margin:0}
.rpc-panel-h .sub{font-size:12.5px;color:#4a5286;font-weight:600}

.rpc-hg{display:grid;gap:8px;margin-top:12px;font-size:11px;align-items:stretch}
.rpc-hgh{font-size:12.5px;font-weight:800;color:var(--navy);text-align:center;padding:8px 4px 12px;line-height:1.25}
.rpc-hgh-first{text-align:left}
.rpc-hgh.now{color:#8a6a00}
.rpc-hgh.now::after{content:'';display:block;height:2px;border-radius:999px;background:#FFC800;margin:4px auto 0;width:32px}
.rpc-hgn{font-size:12.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;
  padding-right:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-column:1}
.rpc-hgn-t{display:flex;flex-direction:column;min-width:0}
.rpc-hgn-t small{font-size:11px;font-weight:700;color:#4a5286;margin-top:2px}
.rpc-ownband{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  margin:16px 0 0;padding:12px 16px;border-radius:8px;background:#F0F1F5;cursor:pointer}
.rpc-ownband:hover{background:#EAF1FA}
.rpc-ownband.on{background:#EAF1FA;box-shadow:inset 0 0 0 1px #92C0E9}
.rpc-ob-name{font-size:20px;font-weight:800;color:var(--navy);line-height:1.2}
.rpc-ob-meta{font-size:12.5px;font-weight:700;color:#4a5286}
.rpc-ob-meta b{color:#E02424}
.rpc-fadot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:#DDE0E9}
.rpc-fadot.in{background:#00A651}.rpc-fadot.late{background:#E02424}.rpc-fadot.soon{background:#FFC800}

.rpc-cell{height:72px;border-radius:8px;border:1px solid transparent;cursor:pointer;font-size:12.5px;
  font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:#fff;color:var(--ink);padding:8px}
.rpc-cell-top{display:flex;align-items:center;justify-content:center;gap:8px}
/* The second door: read what was sent, without leaving the grid. */
.tbc-reh{margin-left:8px;padding:0 8px;line-height:20px;border-radius:999px;background:#E69138;color:#fff;font-size:var(--t-xs);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.mw-rpt .mw-it-right{display:flex;align-items:center;gap:8px}
.mw-rpt-up{font:inherit;font-size:var(--t-xs);font-weight:700;color:#fff;background:var(--navy);border:1px solid var(--navy);border-radius:8px;padding:4px 12px;cursor:pointer}
.mw-rpt-up:hover,.mw-rpt-up:focus-visible{background:#2a3160}
.rpc-read{display:inline-block;margin-left:8px;padding:0 8px;line-height:20px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;vertical-align:middle}
.rpc-read.ok{background:#52823D;color:#fff}
.rpc-read.wait{background:#A4C2F4;color:#1c2030}
.rpc-read.chk{background:#E69138;color:#fff}
.rpc-open{font-size:11px;font-weight:800;color:#1155CC;text-decoration:underline;cursor:pointer;
  white-space:nowrap}
.rpc-open:hover{color:#0d3f9e}

/* ---- an embedded Blue Hen tool (2026-09-14) ----------------------------------
   The framed page brings its own chrome, so Execute adds a title, a line of context
   and a way out — and then gets out of the way. Sized against the viewport rather
   than a fixed height: a sprint agenda read through a letterbox is worse than a link. */
/* The link mode: one card, one door. Not a placeholder apologising for a missing frame —
   for a tool that keeps its own page, a clean hand-off is the better answer anyway. */
/* The half a consultant needs and a client does not: why the chart is empty. */
#view-financials .fin-staffnote{margin-top:12px;padding:12px 16px;background:#FFF8C4;
  border:1px solid #e8dc8a;border-radius:8px;font-size:12.5px;line-height:1.5;color:#7F6000}
#view-financials .fin-staffnote b{color:#7F6000}
.emb-card{background:#fff;border:1px solid var(--line,#e3e0d8);border-radius:14px;
  padding:32px;max-width:70ch}
.emb-lead{margin:0 0 20px;font-size:16.5px;line-height:1.55;color:var(--navy)}
.emb-go{display:inline-block;font-size:14px;font-weight:700;color:#fff;text-decoration:none;
  background:var(--navy);border-radius:8px;padding:12px 24px}
.emb-go:hover{background:#1d2668}
.emb-sub{margin:16px 0 0;font-size:12.5px;line-height:1.5;color:var(--navy)}
/* Always-visible way out of a framed tool. Quiet — it is a fallback, not a warning —
   but it must be there BEFORE the frame fails, because a broken frame cannot ask for it. */
.emb-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:12px;margin:0 0 12px}
.emb-bar-t{font-size:12.5px;line-height:1.5;color:var(--navy)}
.emb-wrap{border:1px solid var(--line,#e3e0d8);border-radius:14px;overflow:hidden;background:#fff}
.emb-f{display:block;width:100%;height:calc(100vh - 220px);min-height:520px;border:0}
@media (max-width:720px){ .emb-t{font-size:26px} .emb-f{height:calc(100vh - 180px)} }
/* The file list behind a cell holding several files. One row per file, each with its
   own door — a list you cannot open is just a longer way of hiding them. */
.rpc-fpanel{display:flex;flex-direction:column;gap:8px}
.rpc-fr{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line,#e3e0d8)}
.rpc-fr:last-child{border-bottom:0}
.rpc-fr-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rpc-fr-t b{font-size:14px;font-weight:700;color:var(--navy);word-break:break-word}
.rpc-fr-t span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#4a5286}
.rpc-fr-open{flex:0 0 auto;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}
.rpc-fr-open:hover{border-color:var(--navy);background:#eef1fb}
/* Destructive, so it reads differently from Open without shouting — the row is a list of
   files, not a warning. Colour only on intent (hover/focus), per the status palette. */
.rpc-fr-rm{flex:0 0 auto;font-size:12.5px;font-weight:700;color:#990000;background:#fff;
  border:1px solid var(--line,#e3e0d8);border-radius:8px;padding:8px 16px;cursor:pointer}
.rpc-fr-rm:hover{border-color:#990000;background:#fdf3f3}
/* The other door, and the one that went missing: this cell is where you upload.
   Same slot and weight as .rpc-open so a cell with a file and a cell waiting for one
   read as the same object, in navy rather than link-blue because it acts on THIS cell
   instead of opening something. */
.rpc-up{font-size:11px;font-weight:800;color:var(--navy);white-space:nowrap;
  text-transform:uppercase;letter-spacing:.04em}
.rpc-cell.late .rpc-up{color:#990000}
.rpc-cell.soon .rpc-up{color:#8a6a00}
.rpc-cell.missed .rpc-up{color:#8a4a4a}
.rpc-cell:not(.na):not(.pad):hover .rpc-up{text-decoration:underline}
.rpc-cell.na{background:#F0F1F5;border-color:#DDE0E9;color:#4a5286;cursor:default;
  font-size:11px;font-weight:700}
/* Owed back then and never sent. Quiet — it is history, not today's problem —
   but it must not read the same as "we were not asking for this yet". */
.rpc-cell.missed{background:#fff;border-style:dashed;border-color:#E0A0A0;color:#8a4a4a;
  font-size:11px;font-weight:700}
.rpc-cell.pad{background:transparent;border-color:transparent;cursor:default}
.rpc-cell.in{border-color:#00A651}
.rpc-cell.late{border-color:#E02424}
.pill.st-on-hold{background:#5B21B6;color:#fff;border-color:#5B21B6}
.rpc-cell.hold{border-color:#5B21B6;color:#5B21B6}
.rpc-cell.hold .rpc-up{color:#5B21B6}
.rpc-cell.soon{border-color:#FFC800;color:#8a6a00}
.rpc-cell:not(.na):not(.pad):hover{box-shadow:0 0 0 2px var(--navy);z-index:2}
.rpc-badge{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;flex:0 0 auto;font-size:14px;line-height:1}
.rpc-cell.in .rpc-badge{background:#00A651;color:#fff}
.rpc-cell.late .rpc-badge{background:#E02424;color:#fff}
.rpc-cell.soon .rpc-badge{background:#FFC800;color:#4A3600}
.rpc-cd{font-weight:700;letter-spacing:0}

.rpc-key{display:flex;gap:20px;margin-top:16px;font-size:11px;font-weight:700;color:#4a5286}
.rpc-key i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:-1px}
.rpc-key i.in{background:#00A651}.rpc-key i.soon{background:#FFC800}
.rpc-key i.late{background:#E02424}.rpc-key i.na{background:#DDE0E9}

.rpc-owners{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}
.rpc-owners th{text-align:left;padding:8px 12px 8px 0;font-size:11px;font-weight:800;
  color:#4a5286;border-bottom:1px solid #F0F1F5}
.rpc-owners td{padding:8px 12px 8px 0;border-top:1px solid #F0F1F5;color:var(--ink);font-weight:700}
.rpc-owners .n{text-align:right;font-variant-numeric:tabular-nums}
.rpc-owners .bad{color:#E02424;font-weight:800}
.rpc-owners .ok{color:#00A651;font-weight:800}
.rpc-own-row{cursor:pointer}
.rpc-own-row:hover{background:#F6F7FA}
.rpc-own-row.on{background:#EAF1FA}
.rpc-showing{font-size:12.5px;font-weight:600;color:#2a3160;padding:8px 0 8px}
.rpc-showing b{color:var(--navy);font-weight:800}
.rpc-showall{margin-left:12px;border:1px solid var(--navy-10,#E2E3EA);border-radius:8px;background:#fff;
  padding:4px 12px;font-size:12.5px;font-weight:700;color:var(--navy);cursor:pointer}



/* AHM's semicircle gauges — one per owner, the pace in the middle. */
.rpc-gauges{display:grid;gap:12px;align-items:stretch;margin:0 0 20px}
.rpc-gcard{background:#fff;border:1px solid var(--navy-10,#E2E3EA);border-radius:14px;padding:16px}
.rpc-gcard-h{display:flex;flex-direction:column;gap:0;margin-bottom:8px}
.rpc-gcard-h b{font-size:14px;font-weight:800;color:var(--navy)}
.rpc-gcard-h span{font-size:11px;font-weight:600;color:#4a5286;line-height:1.35}
.rpc-gauge{position:relative;width:200px;height:108px;margin:0 auto}
.rpc-ctr{position:absolute;left:0;right:0;bottom:8px;text-align:center}
.rpc-ctr .pc{font-size:26px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--navy)}
.rpc-ctr .lb{font-size:11px;font-weight:700;color:#4a5286;margin-top:4px;line-height:1.25}
.rpc-lb-due{color:#8a6a00}
.rpc-gkeys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;
  font-size:11px;font-weight:800;color:#4a5286;text-align:center}
.rpc-gkeys i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:0}
.rpc-gkeys i.in{background:#00A651}.rpc-gkeys i.late{background:#E02424}.rpc-gkeys i.soon{background:#FFC800}
/* Which system the file comes out of — Brightree or QuickBooks — said plainly on
   the row, because those are different people's jobs. */
.rpc-src{display:inline-block;padding:4px 8px;border-radius:999px;background:#EAF1FA;
  color:#131B55;font-size:11px;font-weight:800;letter-spacing:.2px}
/* Ownership is the row now, so the control lives on the row — quiet until wanted. */
.rpc-reassign{flex:0 0 auto;margin-left:8px;border:1px solid transparent;border-radius:8px;
  background:transparent;color:#4a5286;font-size:14px;font-weight:800;line-height:1;
  padding:4px 8px;cursor:pointer;opacity:0;transition:opacity .12s}
.rpc-hgn:hover .rpc-reassign,.rpc-reassign:focus-visible{opacity:1}
.rpc-reassign:hover{border-color:#C3C9DA;background:#fff;color:var(--navy)}

/* The Decision Room's standing instruction. It is the one screen where a person
   is asked to make a judgement on somebody else's reading of their meeting, and
   until 2026-09-08 it opened with a list and no explanation of what to do. */
/* Folded by default (2026-09-12): the work comes first, the explanation is one line you
   can open. See the note at the intro's markup. */
.dm-intro>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  font-size:var(--t-sm);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#4a5286}
.dm-intro>summary::-webkit-details-marker{display:none}
.dm-intro>summary::before{content:"";width:0;height:0;border-left:5px solid currentColor;
  border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}
.dm-intro[open]>summary::before{transform:rotate(90deg)}
.dm-intro>summary:hover{color:var(--navy)}
.dm-intro[open]>summary{margin-bottom:12px}
/* Closed it is one line, so it should not keep a full panel's padding. */
.dm-intro:not([open]){padding:12px 24px}
@media(prefers-reduced-motion:reduce){ .dm-intro>summary::before{transition:none} }
.dm-intro{margin:0 0 28px;padding:20px 24px;background:#fff;border:1px solid var(--line);
  border-left:4px solid var(--navy);border-radius:var(--r-md);box-shadow:var(--shadow);max-width:var(--reading-max)}
.dm-intro h2{font-family:var(--font-head);font-size:var(--t-2xl);font-weight:800;color:var(--navy);
  line-height:1.2;margin:0 0 8px}
.dm-intro p{margin:0 0 8px;font-size:var(--t-md);line-height:1.6;color:#2a3160}
.dm-intro p:last-child{margin-bottom:0}
.dm-intro b{color:var(--navy)}

/* The five recap sections read the same size in the room as they do in the
   email; 20px was sized for a sub-heading, and these are the headings. */
.fm-sech{font-size:var(--t-2xl)}

/* ---- Notetaker panel: Start on a meeting with no saved room (2026-09-10) ----
   Sizes and radii are the design tokens only -- the smoke suite fails any family
   that drifts off the type scale or radii. */
.ntp-scrim{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(10,15,48,.66);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.ntp-card{position:relative;width:620px;max-width:100%;max-height:94vh;overflow:auto;background:#fff;border-radius:var(--r-md);box-shadow:0 24px 60px rgba(8,12,44,.45)}
.ntp-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;color:var(--navy);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.ntp-x:hover{background:#F3F4FA}
.ntp-x:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.ntp-top{padding:24px 28px 0}
.ntp-eye{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-xs);font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--gold-ink);background:#FFF6E3;border:1px solid #EFD9A6;border-radius:var(--r-pill);padding:4px 12px}
.ntp-dot{width:8px;height:8px;border-radius:var(--r-pill);background:#C0392B}
.ntp-title{font-size:var(--t-2xl);font-weight:800;color:var(--navy);letter-spacing:-.015em;line-height:1.2;margin:12px 0 8px}
.ntp-lede{font-size:var(--t-md);color:#2a3160;line-height:1.6;margin:0}
.ntp-sec{padding:20px 28px 0}
.ntp-label{display:flex;align-items:center;gap:8px;font-size:var(--t-xs);font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--navy);margin-bottom:12px}
.ntp-num{width:22px;height:22px;border-radius:var(--r-pill);background:var(--navy);color:#fff;font-size:var(--t-xs);font-weight:800;display:inline-flex;align-items:center;justify-content:center;letter-spacing:0}
.ntp-easy{display:flex;gap:12px;align-items:flex-start;background:#EEF6EC;border:1px solid #cfe3c9;border-radius:var(--r-md);padding:12px 16px;margin-bottom:12px;font-size:var(--t-md);color:#2a3160;line-height:1.5}
.ntp-easy b{color:var(--navy)}
.ntp-tag{flex:0 0 auto;font-size:var(--t-xs);font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:#fff;background:#4E8A3E;border-radius:var(--r-pill);padding:4px 8px}
.ntp-or{font-size:var(--t-xs);font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:#4a5286;margin:4px 0 8px}
.ntp-where{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.ntp-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line);font-size:var(--t-md);color:#2a3160}
.ntp-row:first-child{border-top:0}
.ntp-app{flex:0 0 108px;font-size:var(--t-xs);font-weight:800;color:var(--navy);background:#eef1fa;border-radius:var(--r-sm);padding:8px 8px;text-align:center}
.ntp-path{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.ntp-k{display:inline-block;font-weight:700;color:var(--navy);background:#f4f6fb;border:1px solid #dde2ef;border-radius:var(--r-sm);padding:0 8px;font-size:var(--t-sm)}
.ntp-ar{color:#4a5286;font-weight:700}
.ntp-fields{display:grid;grid-template-columns:1.6fr 1fr;gap:12px}
.ntp-in{width:100%;border:2px solid var(--navy);border-radius:var(--r-sm);padding:12px 12px;font-family:inherit;font-size:var(--t-md);color:var(--ink);background:#fff;outline:0}
.ntp-in.ntp-pw{border-color:#cfd5e6}
.ntp-in.ntp-bad{border-color:#990000}
.ntp-help{font-size:var(--t-sm);color:#4a5286;margin-top:8px;line-height:1.5}
.ntp-help b{color:#2a3160}
.ntp-wr{margin:16px 28px 0;background:#FFF8EC;border:1px solid #EFD9A6;border-radius:var(--r-md);padding:12px 16px;font-size:var(--t-sm);color:#2a3160;line-height:1.5}
.ntp-wr b{color:var(--navy)}
.ntp-acts{padding:20px 28px 8px;display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:12px}
.ntp-b{border-radius:var(--r-sm);padding:12px 12px;font-family:inherit;font-weight:800;font-size:var(--t-md);cursor:pointer;text-align:center;line-height:1.25;background:#fff}
.ntp-b small{display:block;font-weight:600;font-size:var(--t-xs);margin-top:4px}
.ntp-send{background:var(--navy);color:#fff;border:2px solid var(--navy)}
.ntp-inp{color:var(--navy);border:2px solid var(--navy)}
.ntp-skip{color:#4a5286;border:2px solid #cfd5e6}
.ntp-fine{padding:4px 28px 24px;font-size:var(--t-sm);color:#4a5286;line-height:1.55;margin:0}
.ntp-fine b{color:#2a3160}
@media (max-width:640px){
  .ntp-top,.ntp-sec,.ntp-acts,.ntp-fine{padding-left:20px;padding-right:20px}
  .ntp-wr{margin-left:20px;margin-right:20px}
  .ntp-fields,.ntp-acts{grid-template-columns:1fr}
  .ntp-app{flex-basis:90px}
}

/* ══ SMALL SCREENS, LAST WORD ══════════════════════════════════════════════
   Phone rules have to sit at the END of this file. Everything below the
   "openness pass" re-declares .content, .ring-grid, .sprint-stage and friends
   with no media query, and at equal specificity the later rule wins -- so the
   phone rules written earlier were being overruled on the device they were
   written for. Measured on a 390px viewport: .content was still taking 48px of
   padding on each side, a quarter of the screen, and the Strategy Map's view
   toggle ran 40px past the right edge and scrolled the whole page sideways.
   Anything phone-specific goes here, after everything else. ─────────────── */
@media (max-width:820px){
  .content{padding:20px 16px 96px;max-width:none;margin:0}
  .sprint-stage{padding:20px 16px 36px}
  .bhx-hero-top{gap:18px}
  .ring-grid{grid-template-columns:1fr 1fr}
  .scope-toggle{margin-left:0}
}
@media (max-width:760px){
  .mdx .imp-unified-top{gap:16px}
  .mdx .ring-tile{padding:16px 12px 12px}
}
@media (max-width:640px){
  /* The segmented control does not fit one row on a phone. Two columns keeps
     the buttons thumb-sized instead of hiding half of them off the edge. */
  .map-viewtoggle{display:grid;grid-template-columns:1fr 1fr;flex:1 1 auto;width:100%;max-width:none}
  /* 40px is the app's existing touch floor for in-view buttons (.view button,
     at 480px). Matching it rather than asserting 44 here, which a longer
     :not() chain outranks anyway. */
  .map-viewtoggle button{justify-content:center;min-height:40px;padding:12px}
  .map-viewtoggle button+button{border-left:1px solid var(--line)}
  .map-viewtoggle button:nth-child(n+3){border-top:1px solid var(--line)}
  .map-viewtoggle button:nth-child(odd){border-left:0}
  /* Apple's floor for anything you tap is 44pt. The header controls were 28-33. */
  .hamb,.va-btn,.refresh-btn,.tb-home,.bp-btn{min-width:44px;min-height:44px}
  .hamb{display:flex;align-items:center;justify-content:center}
}
@media (max-width:480px){
  .dm-head h2{font-size:var(--t-md)}
  .dm-wrap{padding:16px 16px 12px}
  .fm-ctl input,.fm-ctl select{font-size:var(--t-md)}
  .fm-head h2{font-size:var(--t-lg)}
  .fm-t{font-size:var(--t-md)}
  .pm-acts,.pm-stats{justify-content:flex-start}
  .pm-row{gap:8px;grid-template-columns:1fr;padding:12px 16px}
  .rt-b{padding:8px 12px}
}

/* ===================== ONE ERGON (2026-09-19) =====================
   The One Ergon view on the Strategy Map, the consolidated grid on the division rollup, and
   the paper both print to. The view borrows the Board's columns (.pboard/.pb-col/.pb-card)
   so it reads as part of the map; only what differs is declared here. */
.oe-bar{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.oe-loose{font-size:var(--t-sm);font-weight:600;color:var(--navy)}
.oe-board{gap:16px}
.oe-board .pb-col{flex:1 1 0;min-width:200px}
.oe-board .pb-col-h{margin-bottom:8px}
.oe-def{font-size:var(--t-sm);line-height:1.45;color:var(--navy);margin:0 4px 16px}
.oe-card{cursor:pointer}
.oe-prog{margin-left:auto;font-size:var(--t-xs);font-weight:600;color:var(--navy);text-align:right}
.rmv-oe{margin-top:8px}
.oe-tag{display:inline-block;font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:var(--cream);border:1px solid var(--gold);border-radius:var(--r-pill);padding:4px 8px}
/* The column heads float under the top bar while the grid scrolls (Lavon, 2026-09-19). Sticky
   resolves against the nearest overflow ancestor, so on wide screens nothing between the
   heads and the window may scroll: the wrap only scrolls sideways on narrow screens, where
   the heads stay put, and the scoreboard shell clips instead of hiding when it holds this grid. */
.mdx:has(.oe-grid){overflow-x:clip}
@media (max-width:900px){ .oe-gridwrap{overflow-x:auto} }
@media (min-width:901px){ .oe-grid thead th{position:sticky;top:68px;z-index:3} }
.oe-grid{width:100%;border-collapse:collapse;font-size:var(--t-md);color:var(--navy)}
.oe-grid th,.oe-grid td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.oe-grid thead th{font-size:var(--t-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.oe-grid thead th{background:var(--navy);color:#fff;border-bottom:0;box-shadow:inset 0 -2px 0 var(--gold);padding:12px 8px}
.oe-grid thead th:first-child{border-radius:var(--r-sm) 0 0 0}
.oe-grid thead th:last-child{border-radius:0 var(--r-sm) 0 0}
.oe-grid tbody th{font-weight:700}
.oe-grid tbody th span,.oe-grid td span{display:block;font-size:var(--t-xs);font-weight:500}
.oe-grid td b{font-family:var(--font-num);font-size:var(--t-xl);font-weight:600}
.oe-grid td .oe-u{font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px}
.oe-grid .oe-tot b{color:var(--gold)}
/* heat: the house status colours at FULL strength, exactly the chip colours (Lavon, 2026-09-21:
   "we don't use muted" -- a pale tint is not a Blue Hen status colour). Ink follows the chip:
   white on blue and dark red, near-black on yellow. Not statused wears the Not Started chip. */
.oe-grid td.oe-h{padding:4px}
.oe-grid td.oe-h .oe-cell{margin:0;padding:8px 12px;min-height:100%}
.oe-h-ok .oe-cell,.oe-lg.oe-h-ok{background:#1155CC;color:#fff}
.oe-h-warn .oe-cell,.oe-lg.oe-h-warn{background:#FFFF00;color:#1c2030}
.oe-h-bad .oe-cell,.oe-lg.oe-h-bad{background:#990000;color:#fff}
.oe-h-none .oe-cell,.oe-lg.oe-h-none{background:#E2E8F0;color:var(--navy)}
.oe-grid td.oe-h .oe-cell b,.oe-grid td.oe-h .oe-cell span{color:inherit}
.oe-grid td.oe-h .oe-cell:hover,.oe-grid td.oe-h .oe-cell:focus-visible,.oe-grid td.oe-h .oe-cell.on{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--navy)}
.oe-grid td .oe-flag{font-weight:800;margin-top:4px;text-decoration:underline;text-underline-offset:2px}
.oe-legend{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.oe-lg{font-size:var(--t-xs);font-weight:700;border-radius:var(--r-sm);padding:4px 12px}
.oe-grid .oe-sum th,.oe-grid .oe-sum td{border-bottom:0;border-top:2px solid var(--navy)}
.oe-grid .oe-act{text-align:right}
.oe-cell{display:block;width:100%;margin:-4px;padding:4px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:var(--r-sm)}
.oe-cell:hover,.oe-cell:focus-visible{background:var(--cream)}
.oe-cell.on{background:var(--cream);box-shadow:inset 0 -2px 0 var(--gold)}
.oe-grid .oe-drillrow td{padding:0 0 16px;border-bottom:2px solid var(--gold)}
.oe-drill{background:var(--cream);border-radius:var(--r-md);padding:16px}
.oe-drill-h{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.oe-grid .oe-drill-h b{font-family:inherit;font-size:var(--t-md);font-weight:800;margin-right:auto}
.oe-dgroups{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.oe-dgroups.one{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start}
.oe-dgroups.one .oe-dg{display:contents}
.oe-dg h4{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;margin:0 0 8px;font-size:var(--t-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--navy);padding-bottom:4px}
.oe-dg h4 small{font-size:var(--t-xs);font-weight:700}
.oe-di{background:var(--white,#fff);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;margin:0 0 8px}
.oe-dgroups.one .oe-di{margin:0}
.oe-grid .oe-di b{display:block;font-family:inherit;font-size:var(--t-sm);font-weight:700;line-height:1.35}
.oe-grid .oe-di span{font-size:var(--t-xs);font-weight:500;line-height:1.4;margin-top:4px}
.oe-di i{display:block;font-style:normal;font-size:var(--t-xs);font-weight:600;margin-top:4px}
.oe-di-none{border-style:dashed;font-size:var(--t-xs)}
.oe-grid .oe-drill-h b small{display:block;font-size:var(--t-xs);font-weight:600;margin-top:4px}
.oe-seg{display:inline-flex;border:1px solid var(--navy);border-radius:var(--r-pill);overflow:hidden}
.oe-seg button{border:0;background:none;color:var(--navy);font:inherit;font-size:var(--t-xs);font-weight:700;padding:8px 12px;cursor:pointer}
.oe-seg button.on{background:var(--navy);color:#fff}
.oe-di-t{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.oe-di .m-status.ro{flex:0 0 auto;width:auto;max-width:none;padding:4px 8px;font-size:var(--t-xs);line-height:1.3}
.oe-di-hot{border-left:4px solid #990000}
.oe-dm{display:flex;align-items:flex-start;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.oe-grid .oe-dm b{font-size:var(--t-xs);font-weight:700}
.oe-grid .oe-dm span{margin-top:4px;font-style:normal}
.oe-dgroups.one .oe-di-fine,.oe-di-fine{padding:8px 12px}
#oePrint{display:none}
@media print{
  body.printing-oe > *:not(#oePrint){display:none!important}
  body.printing-oe #oePrint{display:block!important;color:#111;background:#fff}
  .oe-page{page-break-after:always;break-after:page}
  .oe-page:last-child{page-break-after:auto;break-after:auto}
  .oe-page header h1{font-size:var(--t-xl);margin:0;color:#111}
  .oe-page header p{font-size:var(--t-sm);margin:4px 0 12px;color:#111}
  .oe-band{background:#F6C944;color:#111;font-size:var(--t-sm);font-weight:800;text-align:center;padding:4px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .oe-cols{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid #9a9a9a;border-right:0}
  .oe-col{border-right:1px solid #9a9a9a;padding-bottom:8px}
  .oe-col h2{display:flex;justify-content:space-between;margin:0;padding:8px;background:#111;color:#fff;font-size:var(--t-sm);font-weight:800;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .oe-col h2 small{font-size:var(--t-sm);font-weight:600;color:#F6C944}
  .oe-cdef{margin:0;padding:8px;font-size:var(--t-xs);line-height:1.35;background:#F4F1E6;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .oe-it{padding:8px 8px 0;break-inside:avoid}
  .oe-it b,.oe-it span,.oe-it i{display:block;font-size:var(--t-xs);line-height:1.3;font-style:normal;color:#111}
  .oe-it span{color:#131B55}
  .oe-page footer{margin-top:8px;font-size:var(--t-xs);color:#111}
  .oe-page .oe-grid{color:#111;font-size:var(--t-sm)}
  .oe-page .oe-grid thead th{position:static;box-shadow:none;background:none;color:#111;border-bottom:2px solid #111;border-radius:0}
  .oe-page .oe-grid th,.oe-page .oe-grid td{padding:8px;border-bottom:1px solid #9a9a9a}
}

/* ===================== DIVISION ROLLUP PAGES (IS&L, 2026-09-21) =====================
   The Strategy Map and Parking Lot of a division that carries no plan of its own. */
.dvm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:0 0 24px}
.dvm-unit{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:16px;color:var(--navy);cursor:pointer;font:inherit}
.dvm-unit:hover,.dvm-unit:focus-visible{border-color:var(--gold);box-shadow:var(--shadow)}
.dvm-unit b{font-size:var(--t-md);font-weight:800}
.dvm-unit span,.dvm-unit i{font-size:var(--t-sm);font-style:normal;color:var(--navy)}
.dvm-unit em{margin-top:8px;font-size:var(--t-sm);font-style:normal;font-weight:700;color:var(--navy)}
.dvm-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-top:12px}
.dvp-open{margin-left:auto}

/* ===================== DIVISION QUARTERLY (IS&L, 2026-09-21) =====================
   The IS&L quarterly meeting: every unit's quarter on one table, then each unit closed out. */
.dq-wrap{overflow-x:auto;margin:0 0 16px}
.dq-table{width:100%;border-collapse:collapse;font-size:var(--t-md);color:var(--navy);font-variant-numeric:tabular-nums}
.dq-table th,.dq-table td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.dq-table thead th{font-size:var(--t-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.dq-table .dq-n{text-align:right}
.dq-mk{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.dq-no{min-width:24px;font-weight:800;color:var(--navy)}
.dq-tx{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;color:var(--navy)}
.dq-tx small{font-size:var(--t-sm);color:var(--navy)}
.dq-acts{display:flex;gap:4px;flex-wrap:wrap}
.dq-btn{font:inherit;font-size:var(--t-sm);font-weight:700;color:var(--navy);background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 12px;cursor:pointer}
.dq-btn:hover,.dq-btn:focus-visible{border-color:var(--gold)}
.dq-btn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.dq-by{font-size:var(--t-sm);font-weight:700;color:var(--navy);margin:-4px 0 8px}

/* ===================== SAVED MEETING: SUMMARY LEADS (2026-09-21) =====================
   Lavon: the summary heading "gets lost down there" and must be MUCH larger; the transcript and
   summary controls belong at the top. The summary now sits under the title, buttons above it. */
.pm-acts.pm-acts-top{justify-content:flex-start;margin:0 0 16px}
.pm-detail .ai-sec{margin:0 0 20px}
.fl-h.ai-h{font-family:var(--font-head);font-size:var(--t-xl);font-weight:800;text-transform:none;letter-spacing:0;color:var(--navy);margin:4px 0 8px}
/* "Leave the rest out" on a section of what came out of a meeting (2026-09-22) */
.fm-clear{margin-left:auto;font:inherit;font-size:var(--t-sm);font-weight:700;color:var(--navy);background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 12px;cursor:pointer}
.fm-clear:hover,.fm-clear:focus-visible{border-color:var(--gold)}
/* Done markers folded under one line inside a meeting (2026-09-22) */
.mr-done{margin:4px 0 0}
.mr-done>summary{cursor:pointer;list-style:none;padding:8px 4px;font-size:var(--t-sm);font-weight:700;color:var(--navy)}
.mr-done>summary::-webkit-details-marker{display:none}
.mr-done>summary::before{content:"▸ ";font-weight:800}
.mr-done[open]>summary::before{content:"▾ "}

/* All Markers (2026-09-24): this quarter's markers for the whole team, by group. Rows reuse
   My Work's .mw-item so the status menu, due date and drawer behave the same. */
.qm-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px}
.qm-title{font-family:var(--font-head);font-size:var(--t-xl);font-weight:800;color:var(--navy)}
.qm-tally{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:var(--t-sm);color:var(--navy)}
.qm-tally b{font-family:var(--font-num);font-size:var(--t-lg);font-weight:600;margin-right:4px}
.qm-tally .qm-good b{color:#52823D} .qm-tally .qm-bad b{color:#990000}
.qm-filter{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:var(--t-sm);font-weight:700;color:var(--navy)}
.qm-filter select{border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;font:inherit;font-weight:600;color:var(--navy);background:#fff;min-width:170px}
.qm-grid .mw-list{display:flex;flex-direction:column;gap:8px}
@media(max-width:700px){.qm-filter{margin-left:0;width:100%}.qm-filter select{flex:1}}

/* ---------- Quarterly Plan Review (migration 294; layout from the mockup Lavon reviewed 2026-09-30) ---------- */
.qpr-wrap{max-width:1040px}
.qpr-head{margin:0 0 24px}
.qpr-tally{margin:0 0 12px}
.qpr-bar{height:4px;border-radius:999px;background:#E2E8F0;overflow:hidden;margin:0 0 16px}
.qpr-bar span{display:block;height:100%;background:#52823D}
.qpr-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.qpr-filter{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:999px;padding:8px 16px;font-size:var(--t-md);font-weight:600;cursor:pointer}
.qpr-filter.on{background:var(--navy);border-color:var(--navy);color:#fff}
.qpr-add{margin-left:auto}
.qpr-imp{margin:32px 0 0}
.qpr-imp-h{font-size:var(--t-sm);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding:0 0 8px;border-bottom:2px solid var(--navy);margin:0 0 12px}
.qpr-obj{font-size:var(--t-md);font-style:italic;color:var(--navy);margin:16px 0 8px}
.qpr-mk{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin:0 0 16px}
.qpr-annual{font-size:var(--t-sm);color:var(--navy);padding:12px 20px}
.qpr-mk-ghost{padding:12px 20px;font-weight:700;color:var(--navy);border-bottom:1px solid var(--line)}
.qpr-sub{font-size:var(--t-xs);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);padding:8px 20px 8px 40px;background:#FAFAF7;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.qpr-item{padding:16px 20px;border-top:1px solid var(--line)}
.qpr-mk>.qpr-item:first-child,.qpr-mk>.qpr-sub:first-child{border-top:none}
.qpr-driver{padding-left:40px;background:#FCFCFE}
.qpr-row{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
.qpr-main{min-width:0;flex:1 1 auto}
.qpr-kind{font-size:var(--t-xs);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin:0 0 4px}
.qpr-title{font-size:var(--t-lg);font-weight:700;color:var(--navy);line-height:1.3}
.qpr-driver .qpr-title{font-size:var(--t-md)}
.qpr-desc{font-size:var(--t-md);color:var(--ink);margin:4px 0 0;line-height:1.5;max-width:68ch}
.qpr-chips-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}
.qpr-chip-p,.qpr-chip-s,.qpr-chip-q{font-size:var(--t-sm);border-radius:999px;padding:4px 12px;color:var(--navy);background:#EEF1F8}
.qpr-chip-s{background:#F6F0E1}
.qpr-chip-q{background:#FFF1C2;font-weight:700}
.qpr-note{font-size:var(--t-sm);color:var(--navy);background:#FFF8DC;border-radius:var(--r-sm);padding:8px 12px;margin:8px 0 0;max-width:68ch}
.qpr-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
.qpr-acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.qpr-btn{border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:var(--r-sm);padding:8px 12px;font-size:var(--t-sm);font-weight:700;cursor:pointer;white-space:nowrap}
.qpr-btn:focus-visible,.qpr-filter:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.qpr-btn:disabled{opacity:.5;cursor:default}
.qpr-go{border-color:#52823D;color:#52823D}
.qpr-stop{border-color:#990000;color:#990000}
.qpr-soft{border-color:var(--line)}
.qpr-pill{font-size:var(--t-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 12px;color:#fff}
.qpr-ok{background:#52823D}
.qpr-del{background:#434343}
.qpr-by{font-size:var(--t-xs);color:var(--navy)}
.qpr-s-deleted .qpr-title,.qpr-s-deleted .qpr-desc{text-decoration:line-through;opacity:.6}
.qpr-s-confirmed{background:#F3F8F0}
.qpr-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0 0;padding:16px;border:1px solid var(--line);border-radius:var(--r-sm);background:#FAFAF7}
.qpr-fld{display:flex;flex-direction:column;gap:4px;font-size:var(--t-xs);font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.08em}
.qpr-wide{grid-column:1/-1}
.qpr-in{font:inherit;font-size:var(--t-md);text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;background:#fff;width:100%}
.qpr-person{display:flex;flex-direction:column;gap:8px}
.qpr-edit-acts{grid-column:1/-1;display:flex;gap:8px}
.qpr-thread{margin:12px 0 0;padding:12px 16px;border-radius:var(--r-sm);background:#F7F8FC;display:flex;flex-direction:column;gap:12px}
.qpr-cmt{font-size:var(--t-md);color:var(--ink)}
.qpr-cmt-who{font-size:var(--t-xs);font-weight:700;color:var(--navy);margin:0 0 4px}
.qpr-cmt-new{display:flex;gap:8px;align-items:flex-end}
.qpr-newbox{background:#fff;border:1px solid var(--gold);border-radius:var(--r-md);margin:0 0 16px}
.qpr-newkind{max-width:240px}
.qpr-sign{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:20px 24px;margin:32px 0 0}
.qpr-sign-t{font-size:var(--t-lg);font-weight:700;color:var(--navy)}
.qpr-sign-s{font-size:var(--t-md);color:var(--navy);margin:4px 0 0}
.qpr-signbtn{background:var(--navy);color:#fff;padding:12px 24px;font-size:var(--t-md)}
.qpr-activity{margin:32px 0 0}
.qpr-tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm)}
.qpr-tbl th,.qpr-tbl td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);font-size:var(--t-sm);color:var(--navy)}
.qpr-tbl td.num{font-variant-numeric:tabular-nums}
@media (max-width:760px){
  .qpr-row{flex-direction:column}
  .qpr-side{align-items:flex-start}
  .qpr-acts{justify-content:flex-start}
  .qpr-driver{padding-left:20px}
  .qpr-sub{padding-left:20px}
  .qpr-sign{flex-direction:column;align-items:flex-start}
}
.qpr-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px;border-bottom:2px solid var(--navy);padding:0 0 8px}
.qpr-tablist{display:flex;flex-wrap:wrap;gap:8px}
.qpr-show{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-md);font-weight:600;color:var(--navy);margin-left:auto}
.qpr-show .qpr-in{width:auto}
.qpr-tabs .qpr-add{margin-left:0}
.qpr-tab{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:var(--r-sm);padding:8px 16px;font-size:var(--t-md);font-weight:700;cursor:pointer}
.qpr-tab.on{background:var(--navy);border-color:var(--navy);color:#fff}
.qpr-left{font-weight:400}
.qpr-tab:focus-visible,.qpr-info:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.qpr-switch{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-md);font-weight:600;color:var(--navy);cursor:pointer;padding:0 8px}
.qpr-switch input{width:16px;height:16px;accent-color:var(--navy)}
.qpr-info{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;border:1px solid var(--navy);background:#fff;color:var(--navy);font:italic 700 12.5px Georgia,serif;cursor:pointer;vertical-align:middle;margin-left:4px;letter-spacing:0;text-transform:none}
.qpr-info[aria-expanded="true"]{background:var(--navy);color:#fff}
.qpr-def{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 16px;margin:0 0 12px;font-size:var(--t-md);color:var(--ink);max-width:76ch;display:flex;flex-direction:column;gap:8px}
.qpr-def p{margin:0;line-height:1.5}
.qpr-def b{color:var(--navy)}
.qpr-feed{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 16px;margin:0 0 16px;display:flex;flex-direction:column;gap:4px}
.qpr-feed-h{font-size:var(--t-xs);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 4px}
.qpr-feed-row{display:block;text-align:left;border:none;background:none;padding:8px 0;border-top:1px solid var(--line);font:inherit;font-size:var(--t-sm);color:var(--navy);cursor:pointer}
.qpr-feed-row:first-of-type{border-top:none}
.qpr-feed-row:hover b,.qpr-feed-row:focus-visible b{text-decoration:underline}
.qpr-feed-who{font-weight:700}
.qpr-feed-body{display:block;color:var(--ink);font-size:var(--t-md);margin:4px 0 0}
.qpr-mine-line{font-size:var(--t-sm);color:var(--navy);margin:8px 0 0}
.qpr-mine-line b{font-weight:800}
.qpr-changes{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:8px 16px;margin:0 0 16px}
.qpr-changes summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.qpr-changes summary::-webkit-details-marker{display:none}
.qpr-changes summary .qpr-feed-h{margin:0}
.qpr-changes-t{font-weight:700;color:var(--navy);font-size:var(--t-sm)}
.qpr-changes-n{color:var(--ink);font-size:var(--t-sm)}
.qpr-changes[open] summary{margin-bottom:8px}
.qpr-changes-tbl td:first-child{font-weight:700;vertical-align:top;width:34%}
.qpr-changes-src{font-size:var(--t-xs);color:var(--ink);margin:8px 0 0}
.qpr-flash{box-shadow:inset 0 0 0 2px var(--gold)}
@media (prefers-reduced-motion:no-preference){.qpr-flash{transition:box-shadow .4s}}
/* One at a time: the LuLu's inspection card (bh-runner-kit .focusbox / .fnav), in Execute's tokens */
.qpr-card1{background:#fff;border:1.5px solid var(--navy);border-radius:var(--r-md);padding:20px 24px;margin:0 0 16px}
.qpr-card1.qpr-c-ok{border-color:#52823D}
.qpr-card1.qpr-c-del{border-color:#990000}
.qpr-card1 .qpr-mk{margin:0;border-radius:var(--r-sm)}
.qpr-card-kicker{font-size:var(--t-sm);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 8px}
.qpr-card-title{font-size:20px;font-weight:800;color:var(--navy);margin:0 0 8px}
.qpr-card1 .qpr-obj{margin:0 0 12px}
.qpr-card-acts{display:flex;justify-content:flex-end;margin:16px 0 0}
.qpr-cnav{display:flex;align-items:center;gap:12px;padding:16px 0 32px;border-top:1.5px solid var(--line)}
.qpr-cnav .qpr-btn{min-height:44px;padding:8px 24px;font-size:var(--t-md)}
.qpr-next{background:var(--navy);color:#fff}
.qpr-cpos{flex:1;text-align:center;font-size:var(--t-lg);font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}
@media (max-width:760px){
  .qpr-card1{padding:16px}
  .qpr-cnav{position:sticky;bottom:0;background:var(--page-bg,#F4F5F9);padding:12px 0}
}

.qpr-tally{align-items:center}
.qpr-tools{display:inline-flex;gap:8px;margin-left:auto}
.qpr-imp{scroll-margin-top:96px}
.qpr-tools .qpr-btn{display:inline-flex;align-items:center;gap:8px}
.qpr-printline{display:none}
@media print{
  body.printing-page #view-qreview .qpr-tabs,body.printing-page #view-qreview .qpr-tools,body.printing-page #view-qreview .qpr-feed,
  body.printing-page #view-qreview .qpr-acts,body.printing-page #view-qreview .qpr-info,body.printing-page #view-qreview .qpr-cnav,
  body.printing-page #view-qreview .qpr-thread,body.printing-page #view-qreview .qpr-edit,body.printing-page #view-qreview .qpr-newbox,
  body.printing-page #view-qreview .qpr-signbtn,body.printing-page #view-qreview .qpr-activity,body.printing-page #view-qreview .qpr-bar{display:none!important}
  body.printing-page #view-qreview .qpr-item,body.printing-page #view-qreview .qpr-sub{break-inside:avoid}
  body.printing-page #view-qreview .qpr-imp-h{break-after:avoid}
  body.printing-page #view-qreview .qpr-obj{break-after:avoid}
  body.printing-page #view-qreview .qpr-printline{display:block;font-size:11px;color:var(--navy);margin:24px 0 0;border-top:1px solid var(--line);padding:8px 0 0}
}
@media print{
  body.printing-page #view-qreview .qpr-item{padding:8px 12px}
  body.printing-page #view-qreview .qpr-driver{padding-left:24px}
  body.printing-page #view-qreview .qpr-title{font-size:14px}
  body.printing-page #view-qreview .qpr-desc{font-size:12.5px;margin:0}
  body.printing-page #view-qreview .qpr-chips-row{margin:4px 0 0;gap:4px}
  body.printing-page #view-qreview .qpr-chip-p,body.printing-page #view-qreview .qpr-chip-s,body.printing-page #view-qreview .qpr-chip-q{font-size:11px;padding:0 8px}
  body.printing-page #view-qreview .qpr-sub{padding:4px 12px 4px 24px}
  body.printing-page #view-qreview .qpr-mk{margin:0 0 8px;overflow:visible}
  body.printing-page #view-qreview .qpr-imp{margin:16px 0 0}
  body.printing-page #view-qreview .qpr-obj{margin:8px 0 4px}
  body.printing-page #view-qreview .qpr-note{padding:4px 8px;margin:4px 0 0}
}
/* Plan view: a marker's steps under it (migration 298) */
.pm-steps tr.pm-step td{background:#FAFAF7;font-size:var(--t-sm)}
.pm-steps tr.pm-step td.pm-sname{padding-left:32px}
.pm-step-m{display:block;font-size:var(--t-xs);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 4px}
/* Strategy Map > Files (2026-09-30) */
.fl-wrap{max-width:1040px}
.fl-top{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0 0 16px}
.fl-count{font-size:var(--t-md);color:var(--navy)}
.fl-count b{font-size:var(--t-lg);margin-right:4px}
.fl-pick{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-md);font-weight:600;color:var(--navy);margin-left:auto}
.fl-pick select{font:inherit;font-weight:400;border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;background:#fff;color:var(--ink)}
.fl-imp{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);margin:0 0 16px;overflow:hidden}
.fl-imp-h{font-size:var(--t-sm);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding:12px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.fl-n{margin-left:auto;color:var(--navy);letter-spacing:0}
.fl-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;padding:12px 20px;border-top:1px solid var(--line)}
.fl-imp-h+.fl-row{border-top:none}
.fl-kind{display:block;font-size:var(--t-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin:0 0 4px}
.fl-title{font-size:var(--t-md);font-weight:700;color:var(--navy);cursor:pointer}
.fl-title:hover{text-decoration:underline}
.fl-file a{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-md);font-weight:600;color:var(--navy);word-break:break-word}
.fl-file a:hover span{text-decoration:underline}
.fl-meta{display:block;font-size:var(--t-sm);color:var(--navy);margin:4px 0 0}
.fl-old{font-size:var(--t-sm);color:var(--navy);margin:8px 0 0;line-height:1.6}
.fl-old a{font-size:var(--t-sm);font-weight:400}
@media (max-width:760px){ .fl-row{grid-template-columns:1fr;gap:8px} .fl-pick{margin-left:0} }
/* Review, then confirm (migration 303) */
.qpr-stage{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;background:#fff;border:1.5px solid var(--gold);border-radius:var(--r-md);padding:12px 16px;margin:0 0 16px}
.qpr-stage.on{border-color:#52823D}
.qpr-stage-pill{font-size:var(--t-sm);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--navy)}
.qpr-stage-s{font-size:var(--t-md);color:var(--navy)}
.qpr-startbtn{margin-left:auto;background:var(--navy);color:#fff;padding:8px 16px;font-size:var(--t-md)}
.qpr-stage .qpr-soft{margin-left:auto}
.qpr-vote.on{color:#fff}
.qpr-vote.qpr-go.on{background:#52823D}
.qpr-vote.qpr-stop.on{background:#990000}
.qpr-vote.on:not(.qpr-go):not(.qpr-stop){background:var(--navy)}
.qpr-input{margin:8px 0 0;padding:8px 12px;background:#F7F8FC;border-radius:var(--r-sm);font-size:var(--t-sm);color:var(--navy);display:flex;flex-direction:column;gap:4px}
.qpr-input-n b{font-variant-numeric:tabular-nums}
.qpr-sugg{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.qpr-sugg-who{font-weight:700}
.qpr-edit-h{font-size:var(--t-sm);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
/* Personal review link (migration 305): the review page and nothing else */
body.reviewlink #sidebar,body.reviewlink .topbar,body.reviewlink #fab,body.reviewlink #authGate,body.reviewlink #setPwGate,
body.reviewlink #wtHost,body.reviewlink .spr-quick,body.reviewlink #sprintRunner{display:none!important}
body.reviewlink #appShell{display:block!important;margin:0!important;grid-template-columns:1fr!important}
body.reviewlink .content{margin-left:0!important;padding:24px 16px 48px!important;max-width:1080px;margin:0 auto!important}
body.reviewlink .view{display:none!important}
body.reviewlink #view-qreview{display:block!important}
/* No-login link with plan tabs (migration 347): Strategy Map + Strategy Scoreboard, no Review */
body.linktabs .content{max-width:none!important;padding:0 0 48px!important}
body.linktabs #view-qreview{display:none!important}
body.linktabs .view.lt-on{display:block!important}
body.linktabs #view-home.lt-on{max-width:1280px;margin:0 auto;padding:16px 16px 0}
#linkTabBar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
#linkTabBar .lt-top{display:flex;align-items:center;gap:12px;padding:8px 16px 4px;flex-wrap:wrap}
#linkTabBar .lt-top img{height:32px;width:auto}
#linkTabBar .lt-org{font-weight:800;color:var(--navy);font-size:var(--t-md)}
#linkTabBar .lt-who{margin-left:auto;font-size:var(--t-sm);color:var(--navy)}
#linkTabBar .lt-tabs{display:flex;gap:4px;padding:0 12px;overflow-x:auto}
#linkTabBar .lt-tab{background:none;border:0;border-bottom:3px solid transparent;padding:12px 16px;font:inherit;font-weight:700;font-size:var(--t-sm);color:#5a6080;cursor:pointer;white-space:nowrap}
#linkTabBar .lt-tab.on{color:var(--navy);border-bottom-color:var(--gold)}
#linkTabBar .lt-scopes{display:flex;gap:8px;padding:8px 16px;border-top:1px solid var(--line);background:#F7F8FC}
#linkTabBar .lt-scopes[hidden]{display:none}
#linkTabBar .lt-scope{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font:inherit;font-size:var(--t-sm);font-weight:700;color:var(--navy);cursor:pointer}
#linkTabBar .lt-scope.on{background:var(--navy);border-color:var(--navy);color:#fff}
#view-linkmap iframe.lt-map{display:block;width:100%;height:calc(100vh - 96px);border:0;background:#F3F3F3}
.qpr-linkmsg{background:#fff;border:1.5px solid var(--navy);border-radius:var(--r-md);padding:24px;margin:48px auto;max-width:560px;text-align:center}
.qpr-linkwho{font-size:var(--t-md);color:var(--navy);margin:-8px 0 16px}
/* Whole-plan review (migration 307) */
.qpr-goal{background:#FAF7EE}
.qpr-goal .qpr-title{font-size:var(--t-lg)}
.qpr-goalctx{font-size:var(--t-sm);color:var(--navy);padding:12px 20px;border-bottom:1px solid var(--line);background:#FAF7EE}
.qpr-goalbox{border-color:var(--gold)}
.qpr-unflag{margin-left:auto}
/* Team link: choose your name (migration 309) */
.qpr-pick{background:#fff;border:1.5px solid var(--navy);border-radius:var(--r-md);padding:24px;margin:32px auto;max-width:640px}
.qpr-pick-q{font-size:var(--t-lg);font-weight:700;color:var(--navy);margin:16px 0 12px}
.qpr-pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.qpr-pick-btn{padding:12px 16px;font-size:var(--t-md);text-align:left}
.qpr-pick-logo{margin:0 0 16px}
.qpr-pick-logo img{height:96px;width:auto;max-width:320px;object-fit:contain;display:block}
.qpr-pick-foot{display:flex;align-items:center;gap:12px;margin:24px 0 0;padding:16px 0 0;border-top:1px solid var(--line);font-size:var(--t-sm);color:var(--ink)}
.qpr-pick-foot img{height:32px;width:auto;display:block}
.qpr-pick-foot b{color:var(--navy)}
.qpr-notme{color:var(--navy);text-decoration:underline}

/* ---- the one item panel (2026-10-02): every field saves as it changes ---- */
.dd-foot .dd-saved{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:var(--navy)}
.dd-foot .dd-saved.busy{opacity:.75}
.dd-foot .dd-saved.error{color:#990000}
.dd-foot .dd-btn-del{margin-left:0}
.dd-turn{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--navy);padding:8px 8px;cursor:pointer}
.dd-turn:focus{outline:none;border-color:var(--navy)}
.dd-ctl input[type=number]{cursor:text}
.dd-ctl .ip-prog{flex:1;accent-color:var(--navy);cursor:pointer;padding:0}
.dd-ctl .ip-prog-n{min-width:40px;text-align:right;font-weight:800;font-size:12.5px;color:var(--navy);font-variant-numeric:tabular-nums}
.dd-ctl select:disabled,.dd-ctl input:disabled{cursor:default;color:var(--ink);opacity:1}
.ip-files .ip-file{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ip-files .ip-file .dd-deliv-link{margin:0;flex:1;min-width:0}
.ip-files .ip-file .dd-deliv-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ip-files .ip-file .dd-rmbtn{padding:8px 8px}
.ip-by{font-size:12.5px;font-weight:600;color:var(--navy)}
body.dd-open #modal{z-index:1300}      /* a confirm asked from inside the panel sits above it */
#toast{z-index:1400}
#toast .toast-undo{pointer-events:auto;margin-left:8px;background:var(--gold);color:var(--navy);border:none;border-radius:8px;font-family:inherit;font-size:12.5px;font-weight:800;padding:4px 12px;cursor:pointer}
/* the × on every item (2026-10-02): rows that carry one make room for it */
.has-x{position:relative}
.dd-row.has-x,.tk-row.has-x,.mw-item.has-x,.pk-mini.has-x{padding-right:40px}
.itemx.inl{position:static;display:inline-flex;vertical-align:middle;margin-left:8px;flex:none;width:24px;height:24px;font-size:16.5px}
.itemx.inl.armed{width:auto}
.kcard[data-action="open-row"],.pk-body[data-action="open-row"],.iss-top[data-action="open-row"],#sprintRunner .tk-main[data-rowtype="todo"],.pk-mini[data-action="open-row"],.pm-band[data-action="open-row"],.shm-goalhead[data-action="open-row"],.pl-goalhead[data-action="open-row"]{cursor:pointer}
.kanban{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.kanban{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.kanban{grid-template-columns:1fr}}
.kbtns button.knd.on{background:#990000;color:#fff;border-color:#990000}
/* marker progress (2026-10-02) */
.mk-prog{display:inline-flex;align-items:center;gap:8px;margin-left:8px;vertical-align:middle;white-space:nowrap}
.mk-prog-t{display:block;width:72px;height:6px;border-radius:3px;background:#E2E8F0;overflow:hidden}
.mk-prog-t i{display:block;height:100%;background:var(--navy);border-radius:3px}
.mk-prog b{font-size:11px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}
.shm-mk .mk-prog{display:flex;margin:4px 0 0}
/* quarter close: send unfinished markers to the long-term parking lot (2026-10-02) */
.wrap-park{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:4px}
.wrap-park>b{font-size:14px;color:var(--navy)}
.wrap-park>small{font-size:12.5px;color:var(--navy);margin-bottom:4px}
.wrap-park-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink);cursor:pointer;padding:4px 0}
.wrap-park-row input{flex:none;width:16px;height:16px;accent-color:var(--navy)}
.wrap-park-row span{flex:1;min-width:0}
.wrap-park-row em{font-style:normal;font-size:11px;font-weight:700;color:var(--navy);white-space:nowrap}
/* the marker × sits at the right edge of the sheet table row, beside the file, never under it */
.shm-tbl td.shm-file{position:relative;padding-right:36px}
.shm-tbl td.shm-file .itemx.inl{position:absolute;top:12px;right:4px;margin:0}
/* a person's photo in place of their initials (2026-10-02) */
.has-photo{overflow:hidden;padding:0!important;background:#fff!important}
.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
#meAvatar{cursor:pointer}
#meAvatar:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* the one status menu opens above a live meeting too */
body.runner-open .mstat-pop{z-index:260}
body.dd-open .mstat-pop{z-index:1310}
.kbtns .mstat-btn,.kbtns .m-status{font-size:11px;padding:4px 20px 4px 8px;white-space:nowrap;
  /* .kbtns button's background:#fff shorthand resets repeat/position/size; without these the caret tiles across the pill (Troy's to-do card, 2026-10-15) */
  background-repeat:no-repeat;background-position:right 6px center;background-size:9px}
.kbtns .m-status.ro{padding:4px 8px}
/* Retreat Bin on the Parking Lot page (2026-10-02) */
.pk-sec .pk-when{font-size:12.5px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--navy)}
.pk-sec .pk-add-sm{margin-left:auto;padding:8px 12px;font-size:12.5px;letter-spacing:0;text-transform:none}
.pk-pastwrap{margin-top:8px}
.pk-pastwrap>summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--navy);padding:8px 0}
.card.pk.pk-past{opacity:.75}
/* the coach in the item panel (2026-10-02) */
.ip-coach-btns{display:flex;flex-wrap:wrap;gap:8px}
.ip-coach-out{margin-top:8px}
.ip-coach-wait{font-size:12.5px;font-weight:700;color:var(--navy);padding:8px 0}
.ip-coach-err{font-size:12.5px;font-weight:700;color:#990000;padding:8px 0}
.ip-coach-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 16px;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink)}
.ip-coach-card .m-status{align-self:flex-start}
.ip-coach-card b{font-size:12.5px;color:var(--navy)}
.ip-coach-card ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.ip-coach-card p{margin:0}
.ip-coach-h{font-weight:700}
.ip-coach-why{font-size:12.5px;color:var(--navy)}
.ip-coach-card .dd-upbtn,.ip-coach-card .ip-coach-use{align-self:flex-start}
/* type-to-add: the one way to add, at the bottom of every list (2026-10-02) */
.qadd{display:flex;align-items:center;gap:8px;margin:8px 0 4px;padding:8px 12px;border:1px dashed var(--line);border-radius:var(--r-sm);background:#fff;transition:border-color .15s}
.qadd:focus-within{border-style:solid;border-color:var(--navy);box-shadow:0 0 0 3px rgba(19,27,85,.08)}
.qadd-plus{flex:none;font-weight:800;font-size:16.5px;line-height:1;color:var(--navy)}
.qadd-in{flex:1;min-width:0;border:none;background:transparent;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);padding:4px 0}
.qadd-in:focus{outline:none}
.qadd-in::placeholder{color:var(--navy);opacity:.7;font-weight:600}
.qadd[data-busy="1"]{opacity:.6}
.mw-card .qadd{margin:8px 16px 16px}
.kcol .qadd{margin-top:8px}
/* the add line is always on screen (an affordance you have to hover to find is one nobody finds),
   quiet at rest and full strength on hover or while typing */
.shm-addwrap,.shm-on .m-addobj{opacity:1!important}
.qadd{opacity:.7}
.qadd:hover,.qadd:focus-within{opacity:1}
.qadd{opacity:1}
.qadd-in::placeholder{color:var(--navy);opacity:.8}
/* Lavon's Ninety notes (2026-10-02): "Check icon for on track or done. Thumbs down for not done."
   Drawn on the one status pill, so it shows on every screen and in every meeting. */
.m-status:not(select).s-not_started::before,.m-status:not(select).s-on_track::before,.m-status:not(select).s-off_track::before,.m-status:not(select).s-done::before,.m-status:not(select).s-not_done::before,.m-status:not(select).s-on_hold::before,.m-status:not(select).s-in_progress::before,.m-status:not(select).s-ongoing::before,.m-status:not(select).s-na::before,.m-status:not(select).s-move::before,.m-status:not(select).s-delete::before,.m-status:not(select).s-submitted::before{
  content:'';display:inline-block;width:1.7em;height:1.7em;margin:-.3em .35em -.3em -.1em;vertical-align:middle;flex:none;background:currentColor;
  -webkit-mask:var(--ic-check) center/contain no-repeat;mask:var(--ic-check) center/contain no-repeat}
/* 2026-10-05, matching Ninety: On Track = thumbs up, Off Track and Not Done = thumbs down, Done = check */
.m-status:not(select).s-on_track::before{-webkit-mask-image:var(--ic-thumbup);mask-image:var(--ic-thumbup)}
.m-status:not(select).s-off_track::before{-webkit-mask-image:var(--ic-thumbdown);mask-image:var(--ic-thumbdown)}
/* 2026-10-06, approved by Lavon: every status carries its own icon; Not Done is a circled X so it reads apart from Off Track */
.m-status:not(select).s-not_started::before{-webkit-mask-image:var(--ic-circle);mask-image:var(--ic-circle)}
.m-status:not(select).s-not_done::before{-webkit-mask-image:var(--ic-xcircle);mask-image:var(--ic-xcircle)}
.m-status:not(select).s-on_hold::before{-webkit-mask-image:var(--ic-pause);mask-image:var(--ic-pause)}
.m-status:not(select).s-in_progress::before{-webkit-mask-image:var(--ic-half);mask-image:var(--ic-half)}
.m-status:not(select).s-ongoing::before{-webkit-mask-image:var(--ic-repeat);mask-image:var(--ic-repeat)}
.m-status:not(select).s-na::before{-webkit-mask-image:var(--ic-slash);mask-image:var(--ic-slash)}
.m-status:not(select).s-move::before{-webkit-mask-image:var(--ic-arrow);mask-image:var(--ic-arrow)}
.m-status:not(select).s-delete::before{-webkit-mask-image:var(--ic-trash);mask-image:var(--ic-trash)}
.m-status:not(select).s-submitted::before{-webkit-mask-image:var(--ic-upload);mask-image:var(--ic-upload)}
.ip-coach-card .m-status::before{display:none!important}
:root{
  --ic-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
  --ic-thumbup:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z'/%3E%3C/svg%3E");
  --ic-alert:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E");
  --ic-circle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z'/%3E%3C/svg%3E");
  --ic-xcircle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z'/%3E%3C/svg%3E");
  --ic-pause:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E");
  --ic-half:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm1-17.93c3.94.49 7 3.86 7 7.93s-3.06 7.44-7 7.93V4.07z'/%3E%3C/svg%3E");
  --ic-repeat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z'/%3E%3C/svg%3E");
  --ic-slash:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z'/%3E%3C/svg%3E");
  --ic-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z'/%3E%3C/svg%3E");
  --ic-trash:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E");
  --ic-upload:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M5 20h14v-2H5v2zm0-10h4v6h6v-6h4l-7-7-7 7z'/%3E%3C/svg%3E");
  --ic-thumbdown:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M15 3H6.5c-.9 0-1.6.5-1.9 1.3l-2.5 6.2c-.1.3-.1.5-.1.8v1.9c0 1.1.9 2 2 2h5.6l-.8 4c-.1.5.1 1 .4 1.3l1 1 6.6-6.6c.4-.4.6-.9.6-1.4V5c0-1.1-.9-2-2-2zm4 0v12h3V3h-3z'/%3E%3C/svg%3E");
}
.mt-reviewnote{margin:0 0 16px;padding:12px 16px;border-radius:var(--r-sm);background:#FFF8C4;color:#1c2030;font-size:14px;font-weight:700}
  /* ---- the repeating rule on each standing meeting (2026-10-07) ---- */
  .mt-cad{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:var(--t-sm);color:var(--navy)}
  .mt-cad-l{font-size:var(--t-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase}
  .mt-cad-v{font-weight:600}
  .mt-which{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px}
  .mt-which label{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--navy);margin:0}
  .mt-which label input{width:auto;margin:0;flex:none}
  .mt-which label{justify-content:flex-start;text-align:left}

/* Meeting History button at the top of the Meetings page (Lavon 2026-10-15: the history at the bottom was too hard to find). */
#view-meetings .mh-jump{display:flex;justify-content:flex-end;margin:0 0 16px}
/* Larger and filled in the client's brand color (Lavon 2026-10-15: "larger and colored, so it stands out"). */
#view-meetings .mh-btn{background:var(--accent,#131B55);color:#fff;border:0;border-radius:8px;padding:12px 24px;
  font:inherit;font-size:16.5px;font-weight:800;letter-spacing:.02em;cursor:pointer;box-shadow:0 2px 6px rgba(19,27,85,.18)}
#view-meetings .mh-btn:hover{filter:brightness(1.12)}
#view-meetings .mh-btn:focus-visible{outline:3px solid #C9A96E;outline-offset:2px}
@media (max-width:640px){#view-meetings .mh-jump{justify-content:stretch} #view-meetings .mh-btn{width:100%;padding:16px 16px}}
#view-meetings #meetingHistory{scroll-margin-top:84px}

/* ===== Strategy Map: the spreadsheet layout (2026-10-18) =====
   The same sheet the teams have worked from for two years (map.html): gray title band, black
   imperative bands, teal five-year goals, then each objective and its action steps in five columns. */
.xs-wrap{--xs-gray:#6F7374;--xs-teal:#00968F;--xs-hdr:#888B8D;--xs-sub:#EFEFEF;--xs-line:#D9D9D9;font-family:Arial,Helvetica,sans-serif;color:#111;font-size:14px}
.xs-help{background:#fff;border:1px solid var(--xs-line);border-bottom:0;padding:8px 12px;font-size:12.5px;color:#333}
.xs-sheet{background:#fff;box-shadow:0 0 0 1px var(--xs-line);margin-bottom:40px;overflow-x:auto}
table.xs{width:100%;min-width:880px;border-collapse:collapse;table-layout:fixed}
table.xs col.c1{width:19%} table.xs col.c2{width:27%} table.xs col.c3{width:13%} table.xs col.c4{width:15%} table.xs col.c5{width:16%} table.xs col.c6{width:10%}
table.xs td{border:1px solid var(--xs-line);padding:8px;vertical-align:middle;line-height:1.35;word-wrap:break-word}
table.xs .xs-title td{background:var(--xs-gray);color:#fff;height:150px;vertical-align:bottom;font-size:26px;padding:104px 8px 8px;position:relative}
.xs-title img{position:absolute;left:16px;top:16px;width:300px;height:76px;object-fit:contain;object-position:left top}
table.xs .xs-imp td{background:#000;color:#fff;padding:12px 8px}
.xs-imp .h{font-size:20px;font-weight:700} .xs-imp .nm{text-transform:uppercase}
table.xs .xs-goal td{background:var(--xs-teal);color:#fff;padding:12px 8px}
.xs-goal .h{font-size:16.5px;font-weight:700}
table.xs .xs-oh td{background:var(--xs-hdr);color:#fff;font-weight:700;text-align:center;font-size:12.5px;padding:4px}
table.xs .xs-ah td{background:var(--xs-sub);font-weight:700;text-align:center;font-size:12.5px;padding:4px}
.xs-obj td.l{font-weight:700}
table.xs td.c{text-align:center} table.xs td.notes{font-size:12.5px;color:#333}
.xs-na td{color:#555;font-style:italic}
.xs-ed{outline:none;border-radius:2px;cursor:text}
.xs-ed:hover{box-shadow:inset 0 0 0 1px #9BB4D6}
.xs-ed:focus{box-shadow:inset 0 0 0 2px #3B6FB6;background:#fff;color:#111}
.xs-carry{display:inline-block;font-size:11px;color:#7A5B00;background:#FFF3C4;border-radius:3px;padding:0 4px;margin-left:4px}
table.xs .m-status{width:100%;max-width:100%;justify-content:center;font-size:12.5px;padding:4px 8px;gap:4px;white-space:nowrap;text-align:center;line-height:1.2}
table.xs .xs-own{width:100%;max-width:100%;font-size:12.5px}
table.xs .md-note{width:100%;font-size:12.5px;min-height:40px}
.xs-load{margin-top:24px} .xs-load td{font-size:12.5px} .xs-load .h td{background:var(--xs-hdr);color:#fff;font-weight:700}
.xs-GOOD{background:#D9EAD3} .xs-WATCH{background:#FFF2CC} .xs-OVERLOAD{background:#990000;color:#fff}
@media print{.xs-help{display:none} .xs-sheet{box-shadow:none} table.xs .m-status{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.xs-ed:empty:before{content:attr(data-ph);color:rgba(255,255,255,.7);font-style:italic}
.xs-obj .xs-ed:empty:before,.xs-mk .xs-ed:empty:before{color:#8a8d91}
.xs-sug{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;color:#1c2030;background:#FFE600;border-radius:4px;padding:0 4px;vertical-align:middle;cursor:default}

/* ===== Strategy Map: one slim bar (2026-10-18, Lavon: "confusing and overwhelming and crowded") ===== */
.mt-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:0 0 8px;border-bottom:1px solid var(--line)}
.mt-tabs{display:flex;gap:4px}
.mt-tab{white-space:nowrap;background:none;border:0;border-bottom:3px solid transparent;padding:8px 12px;font:inherit;font-size:14px;font-weight:700;color:#53565a;cursor:pointer}
.mt-tab:hover{color:var(--navy)} .mt-tab.on{color:var(--navy);border-bottom-color:var(--gold,#C8950C)}
.mt-year{font:inherit;font-size:14px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}
.mt-sp{flex:1}
.mt-fwrap{position:relative}
.mt-filterbtn{font:inherit;font-size:14px;font-weight:700;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);cursor:pointer}
.mt-filterbtn.on{border-color:var(--navy)} .mt-filterbtn b{display:inline-block;min-width:20px;padding:0 4px;margin-left:4px;border-radius:999px;background:var(--navy);color:#fff;font-size:11px}
.mt-filterpop{position:absolute;right:0;top:calc(100% + 8px);z-index:40;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(19,27,85,.14);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:260px}
.mt-filterpop label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:700;color:#53565a}
.mt-filterpop select{font:inherit;font-size:14px;padding:4px 8px}
#view-map .pg-sub:empty{display:none}
#view-map .pg-head .pg-title{font-size:20px}
.xs-gotit{float:right;font:inherit;font-size:12.5px;font-weight:700;padding:0 8px;margin-left:8px;border:1px solid var(--xs-line);border-radius:4px;background:#fff;cursor:pointer}
.xs-oestrip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:#fff;border:1px solid var(--xs-line);border-bottom:0;padding:8px 12px}
.xs-oek{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#7A5B00;margin-right:4px}
.xs-oeb{font:inherit;font-size:12.5px;padding:0 8px;border:1px solid var(--xs-line);border-radius:999px;background:#fff;cursor:pointer}
.xs-oeb b{color:var(--navy)} .xs-oeb.on{background:var(--navy);color:#fff;border-color:var(--navy)} .xs-oeb.on b{color:#fff} .xs-oeb.none{opacity:.5}
.xs-oeclr{font:inherit;font-size:12.5px;border:0;background:none;color:var(--navy);text-decoration:underline;cursor:pointer}
.xs-oe{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;color:#00796F;letter-spacing:.4px;cursor:default;border-bottom:1px dotted #00796F}

/* ===== List and Roadmap, calmed to match the spreadsheet (2026-10-18) =====
   Controls that act on one row (upload, comment) appear when that row is pointed at, or when it already
   holds a file; labels that only repeat what the page already says are gone. */
.mt-calm .rmv-up{visibility:hidden}
.mt-calm .rmv-chip:hover .rmv-up,.mt-calm .rmv-chip:focus-within .rmv-up,.mt-calm .rmv-up:has(.shm-deliv.has){visibility:visible}
.mt-calm .rmv-obj-up{visibility:hidden}
.mt-calm .rmv-obj:hover .rmv-obj-up,.mt-calm .rmv-obj:focus-within .rmv-obj-up,.mt-calm .rmv-obj-up:has(.shm-deliv.has){visibility:visible}
.mt-calm .rmv-lane-fa,.mt-calm .rmv-lane-m{display:none}
.mt-calm .rmv-tt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mt-calm .oe-tag{background:none;border:0;padding:0;font-size:11px;font-weight:700;letter-spacing:.4px;color:#00796F;text-transform:none}
.mt-calm .oe-tag::before{content:'One Ergon · '}
.mt-calm .shm-impedit,.mt-calm .shm-due{display:none}

/* Definitions as points (2026-10-18): on the spreadsheet's black imperative band, each point a bullet. */
.xs-defl{margin:8px 0 0;padding-left:20px} .xs-defl li{margin:2px 0}
.xs-focus{margin:4px 0 0;color:#d9dbe0}
/* A closed quarter's score above the spreadsheet, and the quarter switch on the IS&L rollup (2026-10-19). */
.xs-qscore{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:0 0 12px;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff);color:var(--navy);font-size:14px}
.xs-qscore b{font-size:16.5px;font-weight:800}
.dv-qpick{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.dv-qpick-l{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}
/* Quarter dropdown above the Scoreboard's three score boxes (2026-10-19). */
.ex-qpick{display:flex;align-items:center;gap:8px;margin:16px 0 8px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}
.ex-qpick select{font:inherit;font-size:14px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--navy);padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff)}

/* ---- Retreat Prep (migration 353, Lavon 2026-10-19). The IS&L retreat pre-work, filled in
   here: an overview of every packet, then one packet with its three parts. Reading width,
   navy headings with the small gold section label, plain tables; no cards in colours. ---- */
#view-retreat{max-width:var(--reading-max)}
.rp-intro{margin:0 0 18px}
.rp-where{font-size:var(--t-md);color:var(--muted);margin-bottom:10px}
.rp-dates{display:flex;flex-wrap:wrap;gap:8px 24px;border-top:1px solid var(--navy);border-bottom:1px solid var(--line);padding:8px 0;font-size:var(--t-sm);color:var(--ink)}
.rp-dates b{color:var(--navy);margin-right:6px}
.rp-lead{font-size:var(--t-md);line-height:1.55;color:var(--ink);margin:0 0 16px}
.rp-note{font-size:var(--t-sm);color:var(--muted);margin:-4px 0 8px}
.rp-h{font-size:var(--t-sm);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);margin:22px 0 8px}
.rp-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.rp-tbl{width:100%;border-collapse:collapse;background:#fff}
.rp-tbl th{background:var(--navy);color:#fff;text-align:left;font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;padding:8px 8px;font-weight:700}
.rp-tbl td{padding:12px 8px;border-bottom:1px solid var(--line);font-size:var(--t-md);vertical-align:middle}
.rp-row{cursor:pointer}
.rp-row:hover td,.rp-row:focus td{background:var(--cream)}
.rp-row:focus{outline:2px solid var(--gold);outline-offset:-2px}
.rp-you{display:inline-block;margin-left:8px;font-size:var(--t-xs);font-weight:700;color:var(--navy);border:1px solid var(--navy);border-radius:var(--r-pill);padding:0 8px;vertical-align:1px}
.rp-mute{color:var(--muted);font-size:var(--t-sm)}
.rp-chip{display:inline-block;font-size:var(--t-xs);font-weight:700;border-radius:var(--r-pill);padding:4px 8px;white-space:nowrap}
.rp-chip.rp-none{background:#f1f0ec;color:var(--muted)}
.rp-chip.rp-prog{background:#fbf1d6;color:var(--gold-ink)}
.rp-chip.rp-done{background:#e4eedf;color:#3f6a2f}
.rp-back{background:none;border:0;color:var(--ink-blue);font:inherit;font-size:var(--t-sm);font-weight:700;cursor:pointer;padding:0;margin-bottom:10px}
.rp-pk-h h3{font-size:var(--t-2xl);color:var(--navy);margin:0}
.rp-pk-who{font-size:var(--t-sm);color:var(--muted);margin:4px 0 14px}
.rp-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--line);margin-bottom:18px}
.rp-tab{background:none;border:0;border-bottom:3px solid transparent;font:inherit;font-size:var(--t-md);font-weight:700;color:var(--muted);padding:8px 8px;cursor:pointer;display:flex;align-items:center;gap:8px}
.rp-tab.on{color:var(--navy);border-bottom-color:var(--gold)}
.rp-tab:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.rp-sec{margin:0 0 26px}
.rp-sec-k{font-size:var(--t-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.rp-sec h4{font-size:var(--t-lg);color:var(--navy);margin:2px 0 4px}
.rp-guide{font-size:var(--t-sm);font-style:italic;color:var(--camel);line-height:1.5;margin-bottom:8px}
.rp-in{font:inherit;font-size:var(--t-md);color:var(--ink);border:1px solid #d9d5ca;border-radius:var(--r-sm);padding:8px 8px;background:#fff;width:100%;box-sizing:border-box;line-height:1.45}
textarea.rp-in{resize:vertical}
.rp-in:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.rp-in:disabled{background:#f7f6f2;color:var(--ink)}
.rp-res{width:100%;border-collapse:collapse}
.rp-res th{text-align:left;font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--navy);padding:6px 8px}
.rp-res td{padding:4px 4px 4px 0;vertical-align:top}
.rp-res td:last-child{width:28px}
.rp-x{background:none;border:0;color:var(--muted);font:inherit;font-size:var(--t-sm);cursor:pointer;padding:6px}
.rp-x:hover{color:#990000}
.rp-add{margin-top:8px}
.rp-tally{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:var(--t-sm);color:var(--muted);margin:4px 0 10px}
.rp-tally b{color:var(--navy);font-size:var(--t-lg)}
.rp-unit{margin-bottom:16px}
.rp-unit-h{font-size:var(--t-md);font-weight:700;color:var(--navy);border-bottom:1px solid var(--navy);padding-bottom:4px;margin-bottom:6px}
.rp-goal{font-size:var(--t-sm);font-weight:700;color:var(--camel);margin:12px 0 4px}
.rp-obj{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.rp-obj-t{font-size:var(--t-md);line-height:1.4}
.rp-why{grid-column:1/-1}
.rp-st{white-space:nowrap}
.rp-seg{display:flex;gap:4px;flex-wrap:wrap}
.rp-segb{border:1px solid #d9d5ca;background:#fff;color:var(--ink);font:inherit;font-size:var(--t-sm);font-weight:600;border-radius:var(--r-pill);padding:4px 12px;cursor:pointer;white-space:nowrap}
.rp-segb:disabled{cursor:default;opacity:.75}
.rp-segb.on.rp-done{background:#52823D;border-color:#52823D;color:#fff}
.rp-segb:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.rp-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rp-2 label span,.rp-issue label span,.rp-dec>span{display:block;font-size:var(--t-sm);font-weight:700;color:var(--navy);margin-bottom:4px}
.rp-num{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;margin-bottom:6px}
.rp-num b{font-size:var(--t-xl);color:var(--gold-ink)}
.rp-issue{border:1px solid var(--navy);border-radius:var(--r-sm);padding:16px 16px;margin-bottom:16px;background:#fff}
.rp-issue label{display:block;margin-bottom:10px}
.rp-issue-h{display:flex;justify-content:space-between;align-items:center;font-size:var(--t-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:8px}
.rp-dec{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.rp-dec>span{width:100%}
.rp-submit{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--navy);padding:16px 0 4px;margin-top:8px;font-size:var(--t-sm);color:var(--ink)}
.rp-submit.on{color:#3f6a2f;font-weight:700}
.rp-saved{position:sticky;bottom:12px;text-align:right;font-size:var(--t-xs);color:var(--muted);min-height:16px;margin-top:8px}
.rp-saved.err{color:#990000;font-weight:700}
.rp-slides{margin:8px 0 0 16px;padding:0}
.rp-slides li{margin-bottom:8px;font-size:var(--t-md)}
.rp-slides li span{display:block;font-size:var(--t-sm);color:var(--muted)}
.rp-file{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line)}
.rp-link{background:none;border:0;padding:0;font:inherit;font-size:var(--t-md);font-weight:700;color:var(--ink-blue);cursor:pointer;text-decoration:underline}
.rp-up{display:inline-block;margin-top:10px}
@media (max-width:720px){ .rp-2{grid-template-columns:1fr} .rp-obj{grid-template-columns:1fr} .rp-tbl th:nth-child(2),.rp-tbl td:nth-child(2){display:none} .rp-tbl th,.rp-tbl td{padding-left:8px;padding-right:8px} .rp-res{min-width:520px} .rp-sec{overflow-x:auto} }
