/* ═══════════════════════════════════════════════════════════════════
     eThor Sales Portal — Nordic Light design system (DESIGN.md)
     ONE stylesheet, one token set. No override layers.

     !important ledger (each entry justified):
       1. .hidden{display:none !important} — JS-toggled visibility utility
          that must beat inline style="display:flex/grid" set by scripts.
       2. prefers-reduced-motion block (3 declarations) — accessibility
          override that must silence every animation/transition, including
          any set inline by scripts.
     Alias tokens (legacy names still referenced by ~600 inline styles):
       --bg2/--glass → --surface · --glass-hi → --surface-alt
       --blue/--cyan → --info · --violet → --ink-dim · --amber → --warn
       --rose/--pink → --error · --green-hi → --green-hover
       --grad → flat green→green pair (renders solid) · --grad-warm → flat warn
       --r-sm → --r-ctl
     ═══════════════════════════════════════════════════════════════════ */
  :root{
    /* Surfaces */
    --bg:#F6F5F1;
    --surface:#FFFFFF;
    --surface-alt:#FBFAF7;
    /* Ink */
    --ink:#111214;
    --ink-dim:#50596B;
    --ink-faint:#9AA3AF;
    /* Lines */
    --line:rgba(17,18,20,0.08);
    --line-strong:rgba(17,18,20,0.16);
    /* Accent */
    --green:#0F6B34;
    --green-hover:#0C5A2B;
    --green-soft:#E9F4EE;
    --green-ink:#0A4D25;
    /* Semantic */
    --warn:#9A5B00;  --warn-soft:#FBF1E2;
    --error:#B42318; --error-soft:#FBEAE8;
    --info:#175CD3;  --info-soft:#EAF1FB;
    /* Type */
    --font-sans:'Inter','Helvetica Neue',system-ui,sans-serif;
    --font-mono:'JetBrains Mono',ui-monospace,monospace;
    /* Radii */
    --r-card:14px;
    --r-ctl:9px;
    --r-pill:999px;
    /* Elevation */
    --shadow-1:0 1px 2px rgba(17,18,20,.05);
    --shadow-2:0 4px 8px rgba(17,18,20,.08);
    /* Z scale */
    --z-dropdown:100; --z-sticky:200; --z-backdrop:300; --z-modal:400;
    --z-toast:500; --z-tooltip:600;
    /* Motion */
    --ease:cubic-bezier(0.22,1,0.36,1);
    /* Layout */
    --sidebar-w:232px;
    /* ── Legacy aliases (do not use in new rules) ── */
    --bg2:var(--surface);
    --glass:var(--surface);
    --glass-hi:var(--surface-alt);
    --blue:var(--info);
    --cyan:var(--info);
    --violet:var(--ink-dim);
    --amber:var(--warn);
    --rose:var(--error);
    --pink:var(--error);
    --green-hi:var(--green-hover);
    --grad:linear-gradient(135deg,var(--green),var(--green));
    --grad-warm:linear-gradient(135deg,var(--warn),var(--warn));
    --r-sm:var(--r-ctl);
  }

  *{box-sizing:border-box}
  html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:400;min-height:100vh;overflow-x:hidden}
  button,input,select,textarea{font-family:inherit}

  ::selection{background:rgba(15,107,52,0.18);color:var(--ink)}
  ::-webkit-scrollbar{width:10px;height:10px}
  ::-webkit-scrollbar-track{background:transparent}
  ::-webkit-scrollbar-thumb{background:rgba(17,18,20,0.12);border-radius:var(--r-pill)}
  ::-webkit-scrollbar-thumb:hover{background:rgba(17,18,20,0.22)}

  h1,h2,h3,h4,h5{color:var(--ink)}
  a{color:var(--green)}
  a:hover{color:var(--green-hover)}
  .display{font-weight:700;letter-spacing:-0.01em}
  .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
  code,pre,kbd,samp{font-family:var(--font-mono)}
  .grad-text{color:var(--green)}
  input::placeholder,textarea::placeholder{color:var(--ink-dim)}
  :focus-visible{outline:2px solid var(--green);outline-offset:2px}

  /* Tabular figures so dashboards align */
  .big-num,.live-row .v,.deal-card .dc-value,table td,table th{
    font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
  }

  /* ===================== App shell ===================== */
  .app{position:relative;z-index:1;display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}

  /* ===================== Sidebar ===================== */
  .sidebar{
    position:sticky;top:0;height:100vh;
    padding:28px 20px;
    border-right:1px solid var(--line);
    background:var(--surface-alt);
    display:flex;flex-direction:column;
    z-index:10;
  }
  .brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}
  .logomark{
    width:38px;height:38px;border-radius:var(--r-ctl);
    background:var(--green);
    display:grid;place-items:center;
    color:#fff;font-weight:700;font-size:19px;
    box-shadow:var(--shadow-1);
  }
  .brand-name{font-weight:700;font-size:18px;letter-spacing:-0.01em;line-height:1;color:var(--ink)}
  .brand-sub{font-size:11px;letter-spacing:0.06em;color:var(--ink-dim);text-transform:uppercase;margin-top:4px;font-weight:600}
  .divider{height:1px;background:var(--line);margin:24px -4px}
  .nav{display:flex;flex-direction:column;gap:4px}
  .nav-item{
    display:flex;align-items:center;gap:12px;
    padding:10px 12px;border-radius:var(--r-ctl);cursor:pointer;
    color:var(--ink-dim);font-size:14px;font-weight:500;
    transition:background-color .18s var(--ease), color .18s var(--ease);
    border:1px solid transparent;
    position:relative;
    user-select:none;
  }
  .nav-item:hover{color:var(--ink);background:rgba(17,18,20,0.04)}
  .nav-item.active{
    color:var(--green-ink);background:var(--green-soft);font-weight:600;
  }
  .nav-item .ni{width:18px;height:18px;flex:none;opacity:.9}
  .nav-item.active .ni{color:var(--green);opacity:1}
  /* Hub tabs (underline tablist inside hub member views) */
  .hub-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:22px}
  .hub-tab{
    appearance:none;background:none;border:0;border-bottom:2px solid transparent;
    padding:9px 2px 10px;margin-bottom:-1px;font-family:inherit;font-size:14px;font-weight:500;
    color:var(--ink-dim);cursor:pointer;
    transition:color .18s var(--ease), border-color .18s var(--ease);
  }
  .hub-tab:hover{color:var(--ink)}
  .hub-tab.active{color:var(--ink);border-bottom-color:var(--green);font-weight:600}
  .hub-tab:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:var(--r-ctl)}
  /* Profile popover items — shared look for buttons and the admin link */
  .pm-item{display:block;width:100%;box-sizing:border-box;text-align:left;padding:10px 12px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink-dim);font-size:13px;cursor:pointer;text-decoration:none}
  .pm-item:hover{background:var(--surface-alt);color:var(--ink)}
  /* Command-bar leading icon (replaces decorative glyphs) */
  .cmd-ic{width:18px;height:18px;flex:none;color:var(--ink-dim)}
  .nav-section{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);padding:16px 12px 6px;font-weight:600}
  .nav-section:first-child{padding-top:0}
  .sidebar-footer{margin-top:auto;font-size:11px;color:var(--ink-dim);line-height:1.55}
  .sidebar-footer strong{color:var(--ink);font-weight:500}
  .initials{
    display:inline-flex;align-items:center;justify-content:center;
    width:24px;height:24px;border-radius:50%;
    background:var(--green);color:#fff;font-size:10.5px;font-weight:600;
    margin-right:8px;vertical-align:middle;
  }

  /* ===================== Main ===================== */
  /* Bottom padding clears the fixed furniture: 32px ticker + 54px Claude button
     + its 28px offset = 114px. Anything less leaves the last card underneath it. */
  .main{padding:32px 28px 124px;max-width:1280px;width:100%;min-width:0}
  .mode{display:none}
  .mode.active{display:block}
  @keyframes modeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  /* View header (former hero) */
  .hero-eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    padding:6px 12px;border-radius:var(--r-pill);
    background:var(--surface);border:1px solid var(--line);
    font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;
    margin-bottom:18px;
  }
  .hero-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
  .hero-title{font-weight:700;font-size:27px;line-height:1.2;letter-spacing:-0.01em;margin:0 0 10px;max-width:1100px;color:var(--ink)}
  .hero-title .accent{color:var(--green)}
  .hero-sub{color:var(--ink-dim);font-size:15px;max-width:680px;line-height:1.55;margin-bottom:28px}

  /* Command input */
  .command{position:relative;max-width:820px;margin:0 auto 16px}
  .command-inner{
    display:flex;align-items:center;gap:10px;
    background:var(--surface);
    border:1px solid var(--line-strong);border-radius:var(--r-card);
    padding:8px 8px 8px 18px;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
    box-shadow:var(--shadow-1);
  }
  .command-inner:focus-within{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .command-inner input{
    flex:1;background:transparent;border:0;outline:0;
    color:var(--ink);font-size:16px;padding:12px 0;font-weight:400;
  }
  .command-inner input::placeholder{color:var(--ink-dim)}

  /* Buttons */
  .cta{
    display:inline-flex;align-items:center;gap:8px;cursor:pointer;
    background:var(--green);color:#fff;border:0;
    padding:9px 16px;border-radius:var(--r-ctl);
    font-weight:600;font-size:14px;letter-spacing:0;
    transition:background-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);
    box-shadow:var(--shadow-1);
    position:relative;overflow:hidden;
  }
  .cta:hover{background:var(--green-hover)}
  .cta:active{transform:translateY(1px)}
  .cta:focus-visible{outline:2px solid var(--green);outline-offset:2px}
  .cta[disabled]{background:var(--ink-faint);cursor:not-allowed;pointer-events:none}
  .cta .arr{font-size:16px;line-height:1;transition:transform .18s var(--ease)}
  .cta:hover .arr{transform:translateX(3px)}
  .cta.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong);box-shadow:none}
  .cta.ghost:hover{background:var(--surface-alt)}

  .loading-dots{display:inline-flex;gap:5px;align-items:center}
  .loading-dots span{
    width:6px;height:6px;border-radius:50%;
    background:currentColor;
    animation:blink 1s infinite var(--ease);
  }
  .loading-dots span:nth-child(2){animation-delay:.15s}
  .loading-dots span:nth-child(3){animation-delay:.3s}
  @keyframes blink{
    0%,80%,100%{opacity:.35}
    40%{opacity:1}
  }

  .suggest{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:820px;margin:14px auto 0}
  .chip{
    display:inline-flex;align-items:center;gap:7px;
    padding:6px 12px;border-radius:var(--r-pill);
    background:var(--surface);border:1px solid var(--line);
    font-size:12.5px;color:var(--ink-dim);cursor:pointer;font-weight:500;
    transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease);
  }
  .chip:hover{color:var(--ink);border-color:var(--line-strong)}
  .chip.on{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.22)}

  /* ===================== Intel grid ===================== */
  .intel{margin-top:32px;display:grid;grid-template-columns:repeat(12, 1fr);gap:18px}
  .card{
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:20px;
    position:relative;overflow:hidden;
    box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .card:hover{border-color:var(--line-strong)}
  .card .label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px}
  .card .label .gm{color:var(--green);font-size:13px}
  .card h3{font-weight:600;font-size:18px;margin:0 0 8px;letter-spacing:-0.01em;color:var(--ink)}
  .big-num{font-family:var(--font-mono);font-weight:500;font-size:27px;letter-spacing:0;line-height:1.1;color:var(--green)}
  .big-num .unit{font-size:13px;font-family:var(--font-mono);font-weight:400;color:var(--ink-dim);margin-left:6px}
  .badge{
    display:inline-flex;align-items:center;gap:6px;
    padding:4px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:600;
    letter-spacing:0.06em;text-transform:uppercase;
    background:var(--green-soft);color:var(--green-ink);
  }
  .badge .sq{width:8px;height:8px;border-radius:2px;background:currentColor;opacity:.9}

  .c-profile{grid-column:span 5}
  .c-depot{grid-column:span 4}
  .c-kwh{grid-column:span 3}
  .c-triggers{grid-column:span 4}
  .c-tier{grid-column:span 5}
  .c-makers{grid-column:span 3}
  .c-pitch{grid-column:span 12}
  .c-objections{grid-column:span 12}

  @media (max-width:1200px){
    .c-profile,.c-depot,.c-kwh,.c-triggers,.c-tier,.c-makers{grid-column:span 6}
  }

  /* Tablet / phone: collapse the fixed sidebar into a scrollable top bar and
     stack all multi-column grids. Keeps the portal usable on an iPad in a demo. */
  @media (max-width:760px){
    .app{grid-template-columns:1fr}
    .sidebar{
      position:sticky;top:0;height:auto;flex-direction:row;align-items:center;gap:14px;
      overflow-x:auto;white-space:nowrap;padding:12px 16px;
      border-right:0;border-bottom:1px solid var(--line);
    }
    .sidebar .divider,.sidebar .nav-section,.sidebar .brand-sub{display:none}
    .sidebar .nav{flex-direction:row;align-items:center;gap:4px;flex:1 1 auto;min-width:0}
    .sidebar .nav-item{display:inline-flex;flex:0 0 auto;margin:0}
    .main{padding:20px 16px 124px;max-width:100%}
    .intel{grid-template-columns:1fr;margin-top:24px}
    .c-profile,.c-depot,.c-kwh,.c-triggers,.c-tier,.c-makers,.c-pitch,.c-objections,.c-vainu{grid-column:1/-1}
    .prop-doc,.brief-doc,.email-client{padding:24px 20px}
    .prop-doc h1{font-size:24px}
    .actions{flex-wrap:wrap}
    .hero-title{font-size:24px}
  }

  .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
  .chips .chip{cursor:default;padding:5px 10px;font-size:12px}

  .meter{height:8px;border-radius:var(--r-pill);background:rgba(17,18,20,0.06);overflow:hidden;margin-top:6px;position:relative}
  .meter .fill{height:100%;border-radius:inherit;transform-origin:left;transition:transform .8s var(--ease)}

  .trigger-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}
  .trigger{
    display:flex;gap:12px;padding:11px 13px;border-radius:var(--r-ctl);
    background:var(--surface-alt);border:1px solid var(--line);
    font-size:14px;color:var(--ink);line-height:1.4;
  }
  .trigger .gm{color:var(--ink-dim);font-size:14px;margin-top:2px}

  /* Tier cards — tier identity color as a flat surface (data meaning) */
  .tier-card{
    position:relative;border-radius:var(--r-card);padding:20px 22px;
    border:1px solid var(--line);
    overflow:hidden;
    color:#fff;
    background:var(--tc1);
  }
  .tier-card h4{font-size:22px;margin:0 0 6px;letter-spacing:-0.01em;font-weight:700;color:#fff}
  .tier-card .tag{opacity:.9;font-size:13.5px;margin-bottom:16px}
  .tier-card .rat{font-size:14px;line-height:1.5;padding:10px 12px;border-radius:var(--r-ctl);background:rgba(255,255,255,0.14);margin-top:16px;font-style:italic}
  .tier-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:12px;opacity:.92}
  .tier-meta b{display:block;font-family:var(--font-mono);font-size:13.5px;font-weight:500;margin-top:2px;opacity:1}

  .pitch{
    background:var(--green-soft);
    border:1px solid rgba(15,107,52,0.16);
    border-radius:var(--r-card);padding:26px 30px;position:relative;overflow:hidden;
  }
  .pitch .q{
    font-style:italic;font-weight:500;
    font-size:20px;line-height:1.45;letter-spacing:-0.01em;color:var(--green-ink);
  }
  .pitch .lbl{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--green-ink);margin-bottom:12px;font-weight:600}

  .makers{display:flex;flex-direction:column;gap:8px;margin-top:4px}
  .maker{
    display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-ctl);
    background:var(--surface-alt);border:1px solid var(--line);
    font-size:13.5px;
  }
  .maker .av{
    width:30px;height:30px;border-radius:var(--r-ctl);display:grid;place-items:center;
    background:var(--green-soft);
    font-weight:700;font-size:12px;color:var(--green-ink);
    flex-shrink:0;border:1px solid rgba(15,107,52,0.16);
  }

  .obj-scroll{display:flex;gap:14px;overflow-x:auto;padding:4px 0 14px;margin:-4px -4px 0;scroll-snap-type:x mandatory}
  .obj-scroll::-webkit-scrollbar{height:6px}
  .obj-card{
    flex:0 0 320px;scroll-snap-align:start;
    padding:16px 18px;border-radius:var(--r-card);
    background:var(--surface);border:1px solid var(--line);
    box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .obj-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}
  .obj-card .qq{font-weight:600;font-size:15px;line-height:1.35;margin-bottom:8px;color:var(--ink)}
  .obj-card .aa{font-size:13px;color:var(--ink-dim);line-height:1.5}
  .obj-card .tt{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;font-weight:600}

  .stagger{opacity:0;transition:opacity .25s var(--ease)}
  .stagger.in{opacity:1}

  .confidence{margin-top:32px;text-align:center;font-size:12px;color:var(--ink-dim);letter-spacing:0.04em}

  /* ===================== Mode 2 — Discovery ===================== */
  .disc-wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:24px}
  .disc-head h2{font-size:27px;letter-spacing:-0.01em;margin:0 0 8px;font-weight:700;color:var(--ink)}
  .disc-head p{color:var(--ink-dim);margin:0;font-size:15px}
  .acc{display:flex;flex-direction:column;gap:12px}
  .acc-item{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;
    box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease);
  }
  .acc-item.open{border-color:var(--line-strong)}
  .acc-head{display:flex;align-items:center;gap:14px;padding:16px 20px;cursor:pointer;user-select:none}
  .acc-head .num{
    width:28px;height:28px;border-radius:var(--r-ctl);display:grid;place-items:center;
    background:var(--surface-alt);border:1px solid var(--line);font-family:var(--font-mono);font-size:12px;color:var(--ink-dim);
    transition:background-color .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);flex-shrink:0;
  }
  .acc-item.open .acc-head .num{background:var(--green);color:#fff;border-color:transparent}
  .acc-head h4{margin:0;font-size:16px;font-weight:600;letter-spacing:-0.01em;flex:1;color:var(--ink)}
  .acc-head .caret{color:var(--ink-faint);transition:transform .25s var(--ease)}
  .acc-item.open .acc-head .caret{transform:rotate(180deg);color:var(--green)}
  .acc-body{max-height:0;overflow:hidden}
  .acc-item.open .acc-body{max-height:800px}
  .acc-content{padding:4px 20px 20px}

  .field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
  .field label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600}
  .field input, .field textarea, .field select{
    background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:11px 13px;color:var(--ink);font-size:14px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .field input:focus, .field textarea:focus, .field select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .field textarea{min-height:72px;resize:vertical}
  .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
  .chip-pick{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}

  .slider-wrap{display:flex;align-items:center;gap:14px}
  .slider-wrap input[type=range]{
    flex:1;height:6px;appearance:none;background:var(--green-soft);
    border-radius:var(--r-pill);outline:0;
  }
  .slider-wrap input[type=range]::-webkit-slider-thumb{
    appearance:none;width:18px;height:18px;border-radius:50%;
    background:#fff;border:3px solid var(--green);cursor:pointer;
    box-shadow:var(--shadow-1);
  }
  .slider-val{
    min-width:36px;font-family:var(--font-mono);font-weight:500;
    color:var(--green);
    font-size:16px;text-align:right;font-variant-numeric:tabular-nums;
  }

  .live-panel{
    position:sticky;top:24px;align-self:start;
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:20px;
    box-shadow:var(--shadow-1);
    display:flex;flex-direction:column;gap:16px;
  }
  .live-panel h3{font-size:18px;margin:0 0 2px;font-weight:600;letter-spacing:-0.01em;color:var(--ink)}
  .live-panel .sub{font-size:12.5px;color:var(--ink-dim);margin-bottom:8px}
  .live-row{display:flex;justify-content:space-between;align-items:center;padding:12px 13px;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);gap:12px}
  .live-row .k{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600}
  .live-row .v{font-family:var(--font-mono);font-weight:500;font-size:15px;color:var(--green);text-align:right}
  .live-row .v.plain{color:var(--ink)}
  .live-tier{
    padding:18px;border-radius:var(--r-card);position:relative;overflow:hidden;color:#fff;
    background:var(--tc1);
  }
  .live-tier h5{font-size:17px;margin:0 0 4px;font-weight:700;color:#fff}
  .live-tier .tg{font-size:13px;opacity:.92}

  /* ===================== Mode 3 — Proposal ===================== */
  .prop-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:18px;margin-bottom:24px}
  .prop-head h2{font-size:27px;letter-spacing:-0.01em;margin:0;font-weight:700;color:var(--ink)}
  .prop-head p{color:var(--ink-dim);margin:6px 0 0}
  .breadcrumb{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}
  .bc{
    padding:6px 12px;border-radius:var(--r-pill);font-size:12.5px;
    background:var(--surface);border:1px solid var(--line);color:var(--ink-dim);
  }
  .bc.hi{color:var(--green-ink);border-color:rgba(15,107,52,0.22);background:var(--green-soft)}

  .skeleton{display:flex;flex-direction:column;gap:14px;padding:34px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
  .sk-line{height:14px;border-radius:6px;background:linear-gradient(90deg, rgba(17,18,20,0.05) 0%, rgba(17,18,20,0.09) 50%, rgba(17,18,20,0.05) 100%);background-size:200% 100%;animation:shim 1.4s linear infinite}
  @keyframes shim{0%{background-position:200% 0}100%{background-position:-200% 0}}
  .sk-h{height:28px;width:55%}
  .sk-p{width:92%}
  .sk-s{width:70%}

  .prop-doc{
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:48px 56px;
    font-size:15px;line-height:1.7;color:var(--ink);
    max-width:920px;margin:0 auto;
    box-shadow:var(--shadow-1);
  }
  .prop-doc h1{font-weight:700;font-size:27px;letter-spacing:-0.01em;margin:0 0 6px;color:var(--ink)}
  .prop-doc .meta-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-dim);letter-spacing:0.04em;margin-bottom:28px;display:block}
  .prop-doc h2{font-weight:650;font-size:21px;letter-spacing:-0.01em;margin:32px 0 10px;color:var(--ink);padding-bottom:8px;border-bottom:1px solid var(--line)}
  .prop-doc h3{font-weight:600;font-size:17px;margin:24px 0 8px;color:var(--ink)}
  .prop-doc p{margin:0 0 12px}
  .prop-doc strong{color:var(--ink);font-weight:600}
  .prop-doc em{color:var(--ink-dim)}
  .prop-doc ul, .prop-doc ol{padding-left:22px;margin:0 0 14px}
  .prop-doc li{margin-bottom:6px}
  .prop-doc hr{border:0;height:1px;background:var(--line-strong);margin:28px 0}
  .prop-doc blockquote{margin:18px 0;padding:14px 20px;background:var(--green-soft);border-radius:var(--r-ctl);font-style:italic;font-size:15.5px;color:var(--green-ink)}
  .prop-doc code, .prop-doc pre{background:var(--surface-alt);color:var(--ink);border:1px solid var(--line)}
  .prop-section{opacity:0;transform:translateY(8px);transition:opacity .25s var(--ease), transform .25s var(--ease)}
  .prop-section.in{opacity:1;transform:none}
  /* Markdown tables (emitted by mdToHtml) */
  table.md-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px;line-height:1.5}
  table.md-table th{font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;text-align:left;color:var(--ink-dim);padding:8px 12px;border-bottom:1px solid var(--line-strong)}
  table.md-table td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top}
  table.md-table tr:last-child td{border-bottom:0}

  .actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:26px}

  /* ===================== Mode 4 — Chat ===================== */
  .chat-wrap{display:flex;flex-direction:column;height:calc(100vh - 80px);margin-top:-8px}
  .chat-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}
  .chat-head h2{font-size:22px;margin:0;letter-spacing:-0.01em;font-weight:650;color:var(--ink)}
  .model-lbl{
    display:inline-flex;align-items:center;gap:8px;
    padding:6px 12px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);
    font-size:12px;color:var(--ink-dim);font-family:var(--font-mono);
  }
  .model-lbl .p{width:6px;height:6px;border-radius:50%;background:var(--green)}

  .chat-body{flex:1;display:flex;gap:24px;overflow:hidden;padding-top:18px}
  .chat-gutter{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:9px}
  .chat-gutter .lbl{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:4px;font-weight:600}
  .prompt-chip{
    padding:12px 14px;border-radius:var(--r-ctl);cursor:pointer;
    background:var(--surface);border:1px solid var(--line);
    font-size:13px;color:var(--ink);line-height:1.4;
    transition:border-color .18s var(--ease), background-color .18s var(--ease);text-align:left;
  }
  .prompt-chip:hover{border-color:var(--line-strong);background:var(--surface-alt)}
  .dash-chip{
    padding:7px 13px;border-radius:var(--r-pill);cursor:pointer;
    background:var(--surface);border:1px solid var(--line);
    font-size:12.5px;color:var(--ink-dim);line-height:1.3;
    transition:border-color .18s var(--ease), color .18s var(--ease);white-space:nowrap;
  }
  .dash-chip:hover{border-color:var(--line-strong);color:var(--ink)}

  .chat-main{flex:1;display:flex;flex-direction:column;min-width:0}
  .msgs{flex:1;overflow-y:auto;padding-right:8px;display:flex;flex-direction:column;gap:14px}
  .msg{max-width:78%;padding:13px 16px;border-radius:var(--r-card);line-height:1.55;font-size:14px;animation:msgIn .25s var(--ease) both}
  .msg.user{align-self:flex-end;background:var(--green-soft);border:1px solid rgba(15,107,52,0.14);border-bottom-right-radius:5px;color:var(--ink)}
  .msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:5px;color:var(--ink)}
  .msg.assistant p{margin:0 0 8px}
  .msg.assistant p:last-child{margin:0}
  .msg.assistant h3{font-size:14px;margin:0 0 6px;font-weight:600;color:var(--ink)}
  .msg.assistant strong{color:var(--ink)}
  .msg.assistant ul{margin:6px 0;padding-left:20px}
  @keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  .typing{display:inline-flex;gap:5px;align-items:center;padding:14px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);border-bottom-left-radius:5px;align-self:flex-start}
  .typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);animation:blink 1s infinite}
  .typing span:nth-child(2){animation-delay:.15s}
  .typing span:nth-child(3){animation-delay:.3s}

  .composer{
    margin-top:16px;display:flex;gap:10px;align-items:flex-end;
    background:var(--surface);border:1px solid var(--line-strong);
    border-radius:var(--r-card);padding:10px;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .composer:focus-within{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .composer textarea{
    flex:1;background:transparent;border:0;outline:0;color:var(--ink);
    font-size:14px;padding:10px 12px;min-height:24px;max-height:180px;resize:none;line-height:1.5;
  }
  .composer textarea::placeholder{color:var(--ink-dim)}

  /* ===================== Error toast ===================== */
  .toast{
    position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);
    background:var(--ink);border:0;
    color:#fff;padding:12px 18px;border-radius:var(--r-ctl);font-size:13.5px;
    display:flex;align-items:center;gap:12px;
    opacity:0;transition:opacity .25s var(--ease), transform .25s var(--ease);pointer-events:none;z-index:var(--z-toast);
    box-shadow:var(--shadow-2);
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:all}
  .toast button{background:rgba(255,255,255,0.16);border:0;color:#fff;font-size:12px;padding:5px 10px;border-radius:6px;cursor:pointer}

  .hidden{display:none !important}

  /* dropdown suggest */
  .sug-wrap{position:relative;max-width:820px;margin:0 auto}
  .sug-list{
    position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:var(--z-dropdown);
    background:var(--surface);
    border:1px solid var(--line-strong);border-radius:var(--r-card);overflow:hidden;
    max-height:320px;overflow-y:auto;
    box-shadow:var(--shadow-2);
  }
  .sug-item{
    padding:11px 18px;font-size:14px;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;gap:10px;
    border-bottom:1px solid var(--line);
  }
  .sug-item:last-child{border:0}
  .sug-item:hover, .sug-item.hi{background:var(--green-soft);color:var(--green-ink)}
  .sug-item .seg{font-size:11px;color:var(--ink-dim);letter-spacing:0.06em;text-transform:uppercase}

  /* ===================== Mode 5 — Site Simulator ===================== */
  .sim-head{margin-bottom:20px}
  .sim-head h2{font-size:27px;letter-spacing:-0.01em;margin:0 0 6px;font-weight:700;color:var(--ink)}
  .sim-head p{color:var(--ink-dim);margin:0;font-size:15px}
  .sim-ctrls{
    display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px;
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;margin-bottom:18px;
    box-shadow:var(--shadow-1);
  }
  .sim-ctrl label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;display:block;margin-bottom:6px}
  .sim-ctrl input[type=number]{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);
    border-radius:var(--r-ctl);padding:8px 10px;color:var(--ink);font-family:var(--font-mono);font-size:14px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .sim-ctrl input[type=number]:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .sim-ctrl .seg-pick{display:flex;gap:4px;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:3px}
  .sim-ctrl .seg-pick button{
    flex:1;background:transparent;border:0;color:var(--ink-dim);
    font-size:12px;padding:6px 4px;border-radius:6px;cursor:pointer;
    transition:background-color .18s var(--ease), color .18s var(--ease);
  }
  .sim-ctrl .seg-pick button.on{background:var(--green);color:#fff}
  .sim-toggle{
    display:flex;align-items:center;gap:8px;background:var(--surface-alt);
    border:1px solid var(--line);border-radius:var(--r-ctl);padding:8px 10px;cursor:pointer;
    font-size:12.5px;color:var(--ink-dim);
    transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease);user-select:none;
  }
  .sim-toggle.on{background:var(--green-soft);border-color:rgba(15,107,52,0.22);color:var(--green-ink)}
  .sim-toggle .dot{width:10px;height:10px;border-radius:50%;background:var(--line-strong);transition:background-color .18s var(--ease)}
  .sim-toggle.on .dot{background:var(--green)}

  .sim-canvas-wrap{
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:20px 24px;
    position:relative;overflow:hidden;box-shadow:var(--shadow-1);
  }
  .sim-timebar{display:flex;align-items:center;gap:20px;margin-bottom:10px}
  .sim-arc{flex:1;height:56px;position:relative}
  .sim-time-big{font-family:var(--font-mono);font-weight:500;font-size:27px;letter-spacing:0;line-height:1;min-width:110px;color:var(--ink);font-variant-numeric:tabular-nums}
  .sim-time-big .unit{font-size:13px;color:var(--ink-dim);font-family:var(--font-mono);font-weight:400;margin-left:6px}

  .sim-svg-wrap{width:100%;height:420px;position:relative}
  .sim-svg{width:100%;height:100%;display:block}

  .sim-playbar{
    display:flex;align-items:center;gap:16px;margin-top:12px;
    padding:12px 14px;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-card);
  }
  .sim-play{
    width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;
    background:var(--green);color:#fff;font-size:20px;
    display:grid;place-items:center;
    box-shadow:var(--shadow-1);
    transition:background-color .18s var(--ease), transform .18s var(--ease);flex-shrink:0;
  }
  .sim-play:hover{background:var(--green-hover);transform:scale(1.04)}
  .sim-scrub{flex:1;appearance:none;height:6px;background:var(--green-soft);border-radius:var(--r-pill);outline:0}
  .sim-scrub::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--green);cursor:pointer;box-shadow:var(--shadow-1)}
  .sim-speed{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);padding:3px}
  .sim-speed button{background:transparent;border:0;color:var(--ink-dim);font-family:var(--font-mono);font-size:12px;padding:6px 12px;border-radius:6px;cursor:pointer}
  .sim-speed button.on{background:var(--green);color:#fff}

  .sim-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:16px}
  .sim-metric{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;
    box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease);
  }
  .sim-metric:hover{border-color:var(--line-strong)}
  .sim-metric .k{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;margin-bottom:8px}
  .sim-metric .v{font-family:var(--font-mono);font-weight:500;font-size:22px;letter-spacing:0;line-height:1;color:var(--green);font-variant-numeric:tabular-nums}
  .sim-metric .v .unit{font-size:11px;color:var(--ink-dim);font-family:var(--font-mono);font-weight:400;margin-left:4px}
  .sim-ring{position:relative;width:56px;height:56px;margin-top:-4px}
  .sim-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
  .sim-ring .bg{stroke:rgba(17,18,20,0.08);fill:none;stroke-width:6}
  .sim-ring .fg{stroke:url(#ringGrad);fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .3s var(--ease)}
  .sim-ring .txt{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-mono);font-size:13px;color:var(--ink)}

  .sim-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
  .sim-compare .c{
    padding:20px 22px;border-radius:var(--r-card);border:1px solid var(--line);
    background:var(--surface);box-shadow:var(--shadow-1);
    position:relative;overflow:hidden;
  }
  .sim-compare .c.red{background:var(--error-soft);border-color:rgba(180,35,24,0.16)}
  .sim-compare .c.green{background:var(--green-soft);border-color:rgba(15,107,52,0.16)}
  .sim-compare h4{font-size:17px;margin:0 0 14px;font-weight:650;letter-spacing:-0.01em;color:var(--ink)}
  .sim-compare .red h4{color:var(--error)}
  .sim-compare .green h4{color:var(--green-ink)}
  .sim-compare ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
  .sim-compare li{font-size:13.5px;color:var(--ink-dim);line-height:1.5;padding-left:22px;position:relative}
  .sim-compare .red li::before{content:"✕";position:absolute;left:0;color:var(--error);font-weight:700}
  .sim-compare .green li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}

  /* Particles */
  .particle{fill:currentColor}

  /* ===================== Mode 6 — Financial Simulator ===================== */
  .fin-ctrls{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 22px;
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;margin-bottom:18px;
    box-shadow:var(--shadow-1);
  }
  .fin-slider label{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;margin-bottom:8px}
  .fin-slider label .v{font-family:var(--font-mono);font-size:14px;color:var(--green);letter-spacing:0;font-variant-numeric:tabular-nums}
  .fin-slider input[type=range]{width:100%;height:5px;appearance:none;background:var(--green-soft);border-radius:var(--r-pill);outline:0}
  .fin-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--green);cursor:pointer;box-shadow:var(--shadow-1)}

  .fin-layout{display:grid;grid-template-columns:1fr 280px;gap:18px}
  .fin-tiers{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
  .fin-tier{
    position:relative;border-radius:var(--r-card);padding:16px 16px 18px;
    border:1px solid var(--line);overflow:hidden;color:#fff;
    background:var(--tc1);
    transition:transform .18s var(--ease), box-shadow .18s var(--ease);
  }
  .fin-tier.rec{transform:translateY(-4px);box-shadow:var(--shadow-2)}
  .fin-tier .rec-badge{position:absolute;top:10px;right:10px;font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;background:rgba(255,255,255,0.24);padding:4px 8px;border-radius:var(--r-pill);font-weight:600}
  .fin-tier h5{font-size:15px;margin:0 0 2px;font-weight:700;letter-spacing:-0.01em;color:#fff}
  .fin-tier .tline{font-size:10.5px;opacity:.9;margin-bottom:14px;line-height:1.3}
  .fin-row{display:flex;justify-content:space-between;font-size:11.5px;margin-bottom:5px;opacity:.92}
  .fin-row b{font-family:var(--font-mono);font-weight:500;font-size:12px;opacity:1}
  .fin-save{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.22)}
  .fin-save .lbl{font-size:10px;letter-spacing:0.06em;text-transform:uppercase;opacity:.9;margin-bottom:4px}
  .fin-save .big{font-family:var(--font-mono);font-weight:500;font-size:20px;letter-spacing:0;line-height:1;font-variant-numeric:tabular-nums}

  .fin-chart-wrap{
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:20px 24px;margin-top:16px;
    box-shadow:var(--shadow-1);
  }
  .fin-chart-wrap h4{font-size:16px;margin:0 0 14px;font-weight:650;color:var(--ink)}
  .fin-chart{width:100%;height:340px;display:block}
  .fin-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--ink-dim)}
  .fin-legend .li{display:inline-flex;align-items:center;gap:6px}
  .fin-legend .sw{width:14px;height:3px;border-radius:2px}

  .fin-side{display:flex;flex-direction:column;gap:12px}
  .fin-side h4{font-size:15px;margin:0 0 4px;font-weight:650;color:var(--ink)}
  .fin-scenario{
    padding:14px 16px;border-radius:var(--r-ctl);cursor:pointer;
    background:var(--surface);border:1px solid var(--line);
    transition:border-color .18s var(--ease), background-color .18s var(--ease);
  }
  .fin-scenario:hover{border-color:var(--line-strong);background:var(--surface-alt)}
  .fin-scenario .t{font-weight:600;font-size:13.5px;color:var(--ink);margin-bottom:4px}
  .fin-scenario .d{font-size:11.5px;color:var(--ink-dim);line-height:1.4}

  .fin-narr{
    margin-top:18px;padding:20px 24px;border-radius:var(--r-card);
    background:var(--green-soft);
    border:1px solid rgba(15,107,52,0.16);
    display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  }
  .fin-narr p{margin:0;font-size:15px;line-height:1.5;font-style:italic;color:var(--green-ink);max-width:760px}

  .fin-tooltip{
    position:absolute;pointer-events:none;opacity:0;transition:opacity .15s var(--ease);
    background:var(--ink);
    border:0;border-radius:var(--r-ctl);padding:8px 12px;
    font-size:12px;font-family:var(--font-mono);color:#fff;z-index:var(--z-tooltip);
    box-shadow:var(--shadow-2);
  }
  .fin-tooltip.show{opacity:1}

  @media (max-width:1200px){
    .sim-ctrls{grid-template-columns:repeat(4,1fr)}
    .sim-metrics{grid-template-columns:repeat(3,1fr)}
    .fin-ctrls{grid-template-columns:repeat(2,1fr)}
    .fin-tiers{grid-template-columns:repeat(2,1fr)}
    .fin-layout{grid-template-columns:1fr}
  }

  /* ============ Proposal Tabs ============ */
  .prop-tabs{display:inline-flex;gap:2px;padding:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;margin-bottom:24px}
  .prop-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--ink-dim);font-size:13.5px;font-weight:500;padding:10px 14px;border-radius:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:color .18s var(--ease), border-color .18s var(--ease);margin-bottom:-1px}
  .prop-tab:hover{color:var(--ink)}
  .prop-tab.active{color:var(--ink);border-bottom-color:var(--green);font-weight:600}
  .prop-tab .g{font-size:15px;opacity:.9}
  .prop-tab.active .g{color:var(--green);opacity:1}

  /* ============ Brief (1-pager) ============ */
  .brief-doc{max-width:680px;margin:0 auto;padding:44px 52px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1)}
  .brief-doc h1{font-weight:700;font-size:24px;margin:0 0 4px;letter-spacing:-0.01em;color:var(--ink)}
  .brief-doc h2{font-weight:600;margin:22px 0 8px;text-transform:uppercase;letter-spacing:0.06em;font-size:11px;color:var(--ink-dim)}
  .brief-doc h3{font-weight:600;font-size:15px;margin:18px 0 6px;color:var(--ink)}
  .brief-doc p{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--ink)}
  .brief-doc ul, .brief-doc ol{padding-left:20px;margin:0 0 12px}
  .brief-doc li{font-size:14px;margin-bottom:4px;line-height:1.55;color:var(--ink)}
  .brief-doc strong{color:var(--ink);font-weight:600}
  .brief-doc hr{border:0;height:1px;background:var(--line-strong);margin:20px 0}
  .brief-doc blockquote{margin:14px 0;padding:12px 18px;background:var(--green-soft);border-radius:var(--r-ctl);font-style:italic;color:var(--green-ink)}
  .brief-meta{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-dim);letter-spacing:0.04em;margin-bottom:22px;display:block}

  /* ============ Email client UI ============ */
  .email-client{max-width:720px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-1)}
  .email-top{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center;background:var(--surface-alt)}
  .email-dot{width:11px;height:11px;border-radius:50%;background:var(--line-strong)}
  .email-dot.r{background:#ff5f57}.email-dot.y{background:#febc2e}.email-dot.g{background:#28c840}
  .email-top .lbl{margin-left:12px;font-size:11px;letter-spacing:0.06em;color:var(--ink-dim);text-transform:uppercase;font-weight:600}
  .email-subj{padding:16px 28px;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:baseline;background:var(--surface-alt)}
  .email-subj .k{font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;color:var(--ink-dim);text-transform:uppercase;min-width:72px}
  .email-subj .v{font-family:var(--font-mono);font-size:14px;color:var(--ink);font-weight:500}
  .email-body{padding:26px 32px;font-size:14.5px;line-height:1.65;color:var(--ink);white-space:pre-wrap}
  .email-body strong{color:var(--ink)}

  /* ============ Training ============ */
  .train-head{margin-bottom:22px}
  .train-head h2{font-size:27px;margin:0;letter-spacing:-0.01em;font-weight:700;color:var(--ink)}
  .train-head p{color:var(--ink-dim);margin:8px 0 0;max-width:640px}

  .train-tabs{display:inline-flex;gap:2px;padding:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;margin-bottom:28px}
  .train-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--ink-dim);font-size:14px;font-weight:500;padding:11px 16px;border-radius:0;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:color .18s var(--ease), border-color .18s var(--ease);margin-bottom:-1px}
  .train-tab:hover{color:var(--ink)}
  .train-tab.active{color:var(--ink);border-bottom-color:var(--green);font-weight:600}
  .train-tab .g{font-size:17px;opacity:.9}
  .train-tab.active .g{color:var(--green)}
  .train-pane{display:none}
  .train-pane.active{display:block}

  /* scenario picker */
  .scn-picker{max-width:1100px}
  .scn-head h3{font-weight:650;font-size:21px;margin:0 0 6px;letter-spacing:-0.01em;color:var(--ink)}
  .scn-head p{color:var(--ink-dim);margin:0 0 22px}
  .scn-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:14px;margin-bottom:22px}
  .scn-card{position:relative;padding:20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);cursor:pointer;box-shadow:var(--shadow-1);transition:border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);overflow:hidden}
  .scn-card:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow-2)}
  .scn-card .num{font-family:var(--font-mono);font-size:11px;color:var(--green);letter-spacing:0.06em;margin-bottom:10px}
  .scn-card .ttl{font-weight:600;font-size:15px;color:var(--ink);margin-bottom:6px;line-height:1.3;position:relative}
  .scn-card .sub{font-size:12.5px;color:var(--ink-dim);line-height:1.5;position:relative}
  .scn-custom{display:flex;gap:10px;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--r-card);background:var(--surface-alt)}
  .scn-custom input{flex:1;background:transparent;border:0;color:var(--ink);font-size:14px;padding:6px 10px;outline:none}
  .scn-custom input::placeholder{color:var(--ink-dim)}

  /* drill layout */
  .drill{display:grid;grid-template-columns:240px 1fr 280px;gap:18px;min-height:660px}
  .drill.hidden{display:none}
  .drill-left, .drill-right{display:flex;flex-direction:column;gap:14px}
  .drill-card{padding:16px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1)}
  .drill-lbl{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px;font-weight:600}
  .stat-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;color:var(--ink-dim);border-bottom:1px dashed var(--line)}
  .stat-row:last-child{border:0}
  .stat-row b{color:var(--ink);font-family:var(--font-mono);font-weight:500}
  .scn-summary{font-size:13px;color:var(--ink);line-height:1.5}

  .drill-center{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden;min-height:660px}
  .drill-header{padding:16px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
  .drill-title{font-weight:650;font-size:16px;color:var(--ink)}
  .drill-sub{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--ink-dim)}
  .obj-tag{display:inline-flex;padding:4px 10px;border-radius:var(--r-pill);background:var(--green-soft);border:1px solid rgba(15,107,52,0.16);color:var(--green-ink);font-size:11px;letter-spacing:0.04em;font-family:var(--font-mono)}

  .drill-msgs{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:14px;max-height:560px}
  .drill-msg{max-width:84%;padding:13px 16px;border-radius:var(--r-card);font-size:14px;line-height:1.55;animation:msgIn .25s var(--ease) both}
  .drill-msg.buyer{align-self:flex-start;background:var(--surface-alt);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:5px;display:flex;gap:12px;align-items:flex-start}
  .drill-msg.buyer .avatar{width:32px;height:32px;border-radius:50%;background:var(--warn-soft);display:grid;place-items:center;font-weight:700;font-size:12px;color:var(--warn);flex-shrink:0}
  .drill-msg.buyer .txt{flex:1}
  .drill-msg.buyer.cue{box-shadow:0 0 0 1px var(--line-strong)}
  .drill-msg.buyer .cue-tag{display:inline-block;margin-top:8px;padding:3px 8px;border-radius:6px;background:var(--warn-soft);color:var(--warn);font-size:11px;font-family:var(--font-mono);border:1px solid rgba(154,91,0,0.2)}
  .drill-msg.user{align-self:flex-end;background:var(--green-soft);border:1px solid rgba(15,107,52,0.14);color:var(--ink);border-bottom-right-radius:5px}

  .feedback-card{align-self:flex-end;max-width:84%;margin-top:-4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface-alt);animation:fbIn .25s var(--ease) both}
  @keyframes fbIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .fb-scores{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-bottom:10px}
  .fb-score{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-dim);font-family:var(--font-mono)}
  .fb-score .name{width:62px;text-transform:lowercase}
  .fb-score .bar{flex:1;height:6px;border-radius:3px;background:rgba(17,18,20,0.06);overflow:hidden}
  .fb-score .fill{height:100%;width:0;border-radius:3px}
  .fb-score .fill.s5{background:var(--green)}
  .fb-score .fill.s4{background:var(--green)}
  .fb-score .fill.s3{background:var(--warn)}
  .fb-score .fill.s2, .fb-score .fill.s1{background:var(--error)}
  .fb-score .v{width:22px;text-align:right;color:var(--ink)}
  .fb-overall{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px dashed var(--line)}
  .fb-overall .num{font-family:var(--font-mono);font-weight:500;font-size:24px;color:var(--green);font-variant-numeric:tabular-nums}
  .fb-overall .lbl{font-size:12px;color:var(--ink-dim)}
  .fb-quote{margin-top:10px;padding:10px 12px;font-style:italic;font-size:13px;color:var(--green-ink);background:var(--green-soft);border-radius:var(--r-ctl)}
  .fb-better{margin-top:10px}
  .fb-better summary{cursor:pointer;font-size:12px;color:var(--green);font-weight:500;outline:none}
  .fb-better[open] summary{color:var(--green-hover)}
  .fb-better .better-body{margin-top:8px;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:var(--r-ctl);font-size:13px;color:var(--ink);line-height:1.55}

  .drill-composer{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line);background:var(--surface-alt)}
  .drill-composer textarea{flex:1;background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);font-size:14px;padding:12px 14px;border-radius:var(--r-ctl);resize:none;min-height:44px;max-height:160px;outline:none;transition:border-color .18s var(--ease), box-shadow .18s var(--ease)}
  .drill-composer textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}

  .ref-tag{font-weight:600;font-size:14px;color:var(--green-ink);margin-bottom:10px;padding:6px 10px;display:inline-block;border-radius:var(--r-ctl);background:var(--green-soft)}
  .ref-list{display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--ink-dim);line-height:1.5}
  .ref-list .ro{padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-alt)}
  .ref-list .ro b{color:var(--ink);display:block;margin-bottom:2px;font-size:13px}
  .ref-facts{font-size:12.5px;color:var(--ink-dim);line-height:1.65}
  .ref-facts b{color:var(--ink)}

  .shimmer-bubble{align-self:flex-start;width:60%;height:48px;border-radius:var(--r-card);background:linear-gradient(90deg, rgba(17,18,20,0.05) 0%, rgba(17,18,20,0.09) 50%, rgba(17,18,20,0.05) 100%);background-size:200% 100%;animation:shim 1.4s linear infinite}

  /* coverage meter */
  .cov-list{display:flex;flex-direction:column;gap:10px}
  .cov-row{font-size:12px;color:var(--ink-dim)}
  .cov-row .cov-head{display:flex;justify-content:space-between;margin-bottom:4px;font-family:var(--font-mono);color:var(--ink)}
  .cov-row .cov-bar{height:6px;background:rgba(17,18,20,0.06);border-radius:3px;overflow:hidden}
  .cov-row .cov-fill{height:100%;width:0;background:var(--green);border-radius:3px}
  .cov-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:10px;border-top:1px dashed var(--line);font-size:12px;color:var(--ink-dim)}
  .cov-total b{font-family:var(--font-mono);font-weight:500;font-size:20px;color:var(--green);font-variant-numeric:tabular-nums}
  .timer{font-size:27px;font-weight:500;color:var(--ink);text-align:center;padding:10px 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums}

  .hint-sub{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;font-weight:600}
  .cue-list{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-dim)}
  .cue-list .cue-empty{padding:10px;border:1px dashed var(--line);border-radius:var(--r-ctl);color:var(--ink-dim);text-align:center;font-size:11.5px}
  .cue-list .cue{padding:8px 10px;background:var(--warn-soft);border-radius:var(--r-ctl);color:var(--warn)}
  .cheat{display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--ink-dim);line-height:1.55}
  .cheat b{color:var(--ink);font-weight:600;display:block;margin-bottom:2px}
  .mini-toggle{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--green);cursor:pointer;font-weight:600}

  /* final scorecard */
  .scorecard-overlay{position:fixed;inset:0;background:rgba(17,18,20,0.4);display:grid;place-items:center;z-index:var(--z-modal);padding:40px;animation:fbIn .25s var(--ease) both}
  .scorecard{max-width:720px;width:100%;padding:40px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-2);position:relative;overflow:hidden}
  .scorecard > *{position:relative}
  .scorecard .eyebrow{font-size:11px;letter-spacing:0.06em;color:var(--green);text-transform:uppercase;margin-bottom:6px;font-weight:600}
  .scorecard h2{font-weight:700;font-size:26px;letter-spacing:-0.01em;margin:0 0 22px;color:var(--ink)}
  .scorecard .grade-row{display:flex;gap:24px;align-items:center;margin-bottom:28px;padding:20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface-alt)}
  .scorecard .grade-letter{font-family:var(--font-mono);font-weight:500;font-size:64px;line-height:1;color:var(--green);letter-spacing:0}
  .scorecard .grade-meta{flex:1}
  .scorecard .grade-meta .k{font-size:11px;letter-spacing:0.06em;color:var(--ink-dim);text-transform:uppercase;margin-bottom:4px;font-weight:600}
  .scorecard .grade-meta .v{font-weight:600;font-size:18px;color:var(--ink);margin-bottom:8px}
  .scorecard .grade-meta .d{font-size:13px;color:var(--ink-dim);line-height:1.55}
  .scorecard h3{font-weight:600;font-size:13px;color:var(--ink);margin:20px 0 10px;text-transform:uppercase;letter-spacing:0.06em}
  .scorecard ul{padding-left:22px;margin:0 0 12px}
  .scorecard li{font-size:14px;color:var(--ink);margin-bottom:6px;line-height:1.55}
  .scorecard blockquote{margin:12px 0;padding:12px 16px;background:var(--green-soft);border-radius:var(--r-ctl);font-style:italic;color:var(--green-ink);font-size:14px}
  .scorecard .actions{justify-content:flex-start;margin-top:24px}

  @media (max-width:1200px){
    .drill{grid-template-columns:1fr}
    .drill-left, .drill-right{flex-direction:row;overflow-x:auto}
    .drill-left .drill-card, .drill-right .drill-card{min-width:240px;flex-shrink:0}
  }

  /* ===================== FCR Ticker (Feature 6) ===================== */
  .fcr-ticker{
    position:fixed;bottom:0;left:var(--sidebar-w);right:0;height:32px;z-index:var(--z-sticky);
    background:var(--surface);
    border-top:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;gap:18px;
    font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);
    padding:0 20px;
  }
  .fcr-ticker .sep{color:var(--line-strong)}
  .fcr-ticker .val{color:var(--ink);transition:color .3s;font-variant-numeric:tabular-nums}
  .fcr-ticker .val.up{color:var(--green)}
  .fcr-ticker .val.down{color:var(--error)}
  .fcr-ticker .lbl{cursor:help;position:relative}
  .fcr-ticker .lbl .tip{
    position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
    background:var(--ink);border:0;border-radius:var(--r-ctl);
    padding:8px 12px;font-size:11px;color:#fff;white-space:nowrap;
    pointer-events:none;opacity:0;transition:opacity .15s;z-index:var(--z-tooltip);
    box-shadow:var(--shadow-2);
  }
  .fcr-ticker .lbl:hover .tip{opacity:1}
  .fcr-ticker .ts{color:var(--ink-dim);opacity:.8}
  .main{padding-bottom:124px}

  /* ===================== Battlecards (Feature 1) ===================== */
  .bc-banner{
    text-align:center;padding:24px;border-radius:var(--r-card);margin-bottom:24px;
    background:var(--green-soft);
    border:1px solid rgba(15,107,52,0.16);
  }
  .bc-banner h3{font-weight:700;font-size:22px;margin:0;letter-spacing:-0.01em;color:var(--green-ink)}
  .bc-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
  .bc-col{padding:20px 22px;border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1)}
  .bc-col.red{background:var(--error-soft);border-color:rgba(180,35,24,0.14)}
  .bc-col.blue{background:var(--green-soft);border-color:rgba(15,107,52,0.14)}
  .bc-col h4{font-size:16px;margin:0 0 12px;font-weight:650;letter-spacing:-0.01em;color:var(--ink)}
  .bc-col.red h4{color:var(--error)}
  .bc-col.blue h4{color:var(--green-ink)}
  .bc-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
  .bc-col li{font-size:13.5px;color:var(--ink-dim);line-height:1.5;padding-left:20px;position:relative}
  .bc-col.red li::before{content:"-";position:absolute;left:0;color:var(--error);font-weight:700}
  .bc-col.blue li::before{content:"+";position:absolute;left:0;color:var(--green);font-weight:700}

  .bc-h2h{width:100%;border-collapse:collapse;margin-bottom:18px}
  .bc-h2h th{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);padding:10px 14px;text-align:left;border-bottom:1px solid var(--line-strong);font-weight:600}
  .bc-h2h td{padding:12px 14px;font-size:13.5px;color:var(--ink);border-bottom:1px solid var(--line)}
  .bc-h2h .winner-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600}
  .bc-h2h .winner-badge.ethor{background:var(--green-soft);color:var(--green-ink)}
  .bc-h2h .winner-badge.comp{background:var(--error-soft);color:var(--error)}

  .bc-special{padding:20px 22px;border-radius:var(--r-card);border:1px solid var(--line);margin-bottom:14px;background:var(--surface)}
  .bc-special.amber{background:var(--warn-soft);border-color:rgba(154,91,0,0.16)}
  .bc-special.red{background:var(--error-soft);border-color:rgba(180,35,24,0.14)}
  .bc-special.green{background:var(--green-soft);border-color:rgba(15,107,52,0.16)}
  .bc-special .sp-label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:10px;font-weight:600}
  .bc-special.amber .sp-label{color:var(--warn)}
  .bc-special.red .sp-label{color:var(--error)}
  .bc-special.green .sp-label{color:var(--green-ink)}
  .bc-special .sp-body{font-size:15px;line-height:1.6;color:var(--ink)}
  .bc-special.amber .sp-body{font-style:italic;font-size:16px}

  /* ===================== Stakeholders (Feature 2) ===================== */
  .persona-header{
    display:flex;align-items:center;gap:20px;
    padding:24px;border-radius:var(--r-card);
    background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);
    margin-bottom:20px;
  }
  .persona-icon{
    width:64px;height:64px;border-radius:var(--r-card);display:grid;place-items:center;
    font-weight:700;font-size:26px;color:#fff;flex-shrink:0;
  }
  .persona-meta h3{font-size:21px;margin:0 0 4px;font-weight:650;color:var(--ink);letter-spacing:-0.01em}
  .persona-meta .pm-sub{font-size:14px;color:var(--ink-dim)}
  .persona-badges{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
  .persona-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
  .persona-card{padding:18px 20px;border-radius:var(--r-card);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1)}
  .persona-card .pc-label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px;font-weight:600}
  .persona-card.red-tint{background:var(--error-soft);border-color:rgba(180,35,24,0.12)}
  .persona-card.amber-tint{background:var(--warn-soft);border-color:rgba(154,91,0,0.12)}
  .persona-card.blue-tint{background:var(--info-soft);border-color:rgba(23,92,211,0.12)}
  .persona-card.green-tint{background:var(--green-soft);border-color:rgba(15,107,52,0.12)}
  .persona-card.violet-tint{background:var(--surface-alt);border-color:var(--line)}
  .persona-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
  .persona-card li{font-size:13.5px;color:var(--ink-dim);line-height:1.5}
  .persona-card .quote-text{font-style:italic;font-size:15px;color:var(--ink);line-height:1.5}
  .persona-card .mono-text{font-family:var(--font-mono);font-size:13px;color:var(--green);line-height:1.5}
  .persona-card .strike{text-decoration:line-through;opacity:.7}

  /* ===================== Contracts (Feature 3) ===================== */
  .contract-doc{
    max-width:860px;margin:0 auto;
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:48px 56px;
    box-shadow:var(--shadow-1);
    font-size:14.5px;line-height:1.7;color:var(--ink);
  }
  .contract-doc h1{font-weight:700;font-size:24px;margin:0 0 4px;color:var(--ink);letter-spacing:-0.01em}
  .contract-doc h2{font-weight:650;font-size:17px;margin:28px 0 8px;color:var(--ink)}
  .contract-doc h3{font-weight:600;font-size:15px;margin:20px 0 6px;color:var(--ink)}
  .contract-doc p{margin:0 0 10px}
  .contract-doc strong{color:var(--ink);font-weight:600}
  .contract-doc ul,.contract-doc ol{padding-left:22px;margin:0 0 12px}
  .contract-doc li{margin-bottom:6px;line-height:1.55}
  .contract-doc hr{border:0;height:1px;background:var(--line-strong);margin:24px 0}
  .contract-doc .placeholder{background:var(--warn-soft);color:var(--warn);padding:1px 6px;border-radius:4px;font-family:var(--font-mono);font-size:13px}
  @media print{
    .sidebar,.fcr-ticker,.toast,.actions,.prop-tabs,.hub-tabs,.claude-fab,.claude-panel{display:none}
    .main{padding:0;max-width:100%}
    .contract-doc,.prop-doc,.brief-doc,.email-client{box-shadow:none;border:none}
    .contract-doc .placeholder{background:#fff3cd;color:#8b5e00}
    .prop-doc h2,.prop-doc h3,.brief-doc h2{page-break-after:avoid}
    table.md-table,.prop-section{page-break-inside:avoid}
    @page{margin:18mm}
  }

  .contract-form{display:flex;flex-direction:column;gap:12px;max-width:820px}
  .contract-form .acc-item .acc-body{max-height:0;overflow:hidden}
  .contract-form .acc-item.open .acc-body{max-height:1200px}

  .hw-checks{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
  .hw-check{
    display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-ctl);cursor:pointer;
    background:var(--surface);border:1px solid var(--line);font-size:13px;color:var(--ink-dim);
    transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease);user-select:none;
  }
  .hw-check.on{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.22)}
  .hw-check .hw-dot{width:10px;height:10px;border-radius:3px;background:var(--line-strong);transition:background-color .18s var(--ease)}
  .hw-check.on .hw-dot{background:var(--green)}

  /* ===================== Frame Agreement (Feature 4) ===================== */
  .frame-sites-table{width:100%;border-collapse:collapse;margin:14px 0}
  .frame-sites-table th{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);padding:8px 10px;text-align:left;border-bottom:1px solid var(--line-strong);font-weight:600}
  .frame-sites-table td{padding:6px 8px;border-bottom:1px solid var(--line)}
  .frame-sites-table input{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:6px 8px;color:var(--ink);font-size:13px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .frame-sites-table input:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .frame-sites-table .rm-row{background:transparent;border:0;color:var(--error);cursor:pointer;font-size:14px;padding:4px 8px;border-radius:6px;opacity:.6;transition:opacity .15s}
  .frame-sites-table .rm-row:hover{opacity:1}

  .seg-toggle-3{display:flex;gap:4px;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:3px}
  .seg-toggle-3 button{
    flex:1;background:transparent;border:0;color:var(--ink-dim);
    font-size:12.5px;padding:8px 12px;border-radius:6px;cursor:pointer;
    transition:background-color .18s var(--ease), color .18s var(--ease);
  }
  .seg-toggle-3 button.on{background:var(--green);color:#fff}

  .frame-result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
  .frame-stat{
    padding:18px 20px;border-radius:var(--r-card);background:var(--surface);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow-1);
  }
  .frame-stat .fs-label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;font-weight:600}
  .frame-stat .fs-val{font-family:var(--font-mono);font-weight:500;font-size:24px;color:var(--green);letter-spacing:0;font-variant-numeric:tabular-nums}
  .frame-stat .fs-val .fs-unit{font-size:12px;color:var(--ink-dim);font-family:var(--font-mono);font-weight:400}

  .frame-sites-result{width:100%;border-collapse:collapse;margin:14px 0}
  .frame-sites-result th{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);padding:10px 12px;text-align:left;border-bottom:1px solid var(--line-strong);font-weight:600}
  .frame-sites-result td{padding:10px 12px;font-size:13.5px;color:var(--ink-dim);border-bottom:1px solid var(--line)}
  .frame-sites-result .tier-pill{display:inline-block;padding:3px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600;color:#fff}

  /* ===================== PV Rooftop (Feature 5) ===================== */
  .pv-section{
    margin-top:24px;background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:22px 26px;box-shadow:var(--shadow-1);
  }
  .pv-section h3{font-weight:650;font-size:19px;margin:0 0 16px;letter-spacing:-0.01em;color:var(--ink)}
  .pv-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
  .pv-input label{display:block;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:6px;font-weight:600}
  .pv-input input,.pv-input select{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:8px 10px;color:var(--ink);font-family:var(--font-mono);font-size:14px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .pv-input input:focus,.pv-input select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .pv-results{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
  .pv-result{
    padding:14px 16px;border-radius:var(--r-card);background:var(--warn-soft);
    border:1px solid rgba(154,91,0,0.16);text-align:center;
  }
  .pv-result .pr-label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:6px;font-weight:600}
  .pv-result .pr-val{font-family:var(--font-mono);font-weight:500;font-size:21px;color:var(--warn);letter-spacing:0;font-variant-numeric:tabular-nums}
  .pv-result .pr-val .pr-unit{font-size:11px;color:var(--ink-dim);font-family:var(--font-mono);font-weight:400}
  .pv-svg-wrap{margin:16px auto;width:100%;max-width:500px;height:180px}

  /* ===================== Document Hub ===================== */
  .doc-topbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:20px}
  .doc-search{
    flex:1;min-width:240px;display:flex;align-items:center;gap:10px;
    background:var(--surface);border:1px solid var(--line-strong);
    border-radius:var(--r-ctl);padding:8px 16px;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .doc-search:focus-within{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .doc-search input{flex:1;background:transparent;border:0;outline:0;color:var(--ink);font-size:14px;padding:6px 0}
  .doc-search input::placeholder{color:var(--ink-dim)}
  .doc-search .search-icon{color:var(--ink-dim);font-size:16px}
  .doc-pills{display:flex;flex-wrap:wrap;gap:7px}
  .doc-pill{
    padding:7px 14px;border-radius:var(--r-pill);font-size:12.5px;cursor:pointer;
    background:var(--surface);border:1px solid var(--line);color:var(--ink-dim);font-weight:500;
    transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease);user-select:none;
  }
  .doc-pill:hover{color:var(--ink);border-color:var(--line-strong)}
  .doc-pill.active{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.22)}
  .doc-sort{
    padding:8px 14px;border-radius:var(--r-ctl);font-size:12.5px;cursor:pointer;
    background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-dim);
    outline:0;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .doc-sort:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  @media (max-width:1200px){.doc-grid{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:800px){.doc-grid{grid-template-columns:1fr}}
  .doc-card{
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:20px 22px;
    cursor:pointer;box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);position:relative;overflow:hidden;
  }
  .doc-card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:var(--shadow-2)}
  .doc-card .doc-cat-badge{
    display:inline-block;padding:4px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:600;
    letter-spacing:0.04em;margin-bottom:10px;
  }
  .doc-card .doc-title{font-weight:600;font-size:16px;letter-spacing:-0.01em;margin-bottom:6px;color:var(--ink);line-height:1.3}
  .doc-card .doc-aud{
    display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-pill);
    font-size:10.5px;font-weight:500;background:var(--surface-alt);border:1px solid var(--line);color:var(--ink-dim);margin-bottom:8px;
  }
  .doc-card .doc-preview{font-size:13px;color:var(--ink-dim);line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .doc-card .doc-tags{display:flex;flex-wrap:wrap;gap:5px}
  .doc-card .doc-tags span{padding:3px 8px;border-radius:var(--r-pill);font-size:10px;background:var(--surface-alt);border:1px solid var(--line);color:var(--ink-dim);font-family:var(--font-mono)}
  .doc-empty{text-align:center;padding:60px 20px;color:var(--ink-dim);font-size:15px}

  .doc-viewer-overlay{
    position:fixed;inset:0;z-index:var(--z-modal);display:flex;justify-content:flex-end;
    background:rgba(17,18,20,0.4);
    animation:docOverIn .2s var(--ease) both;
  }
  @keyframes docOverIn{from{opacity:0}to{opacity:1}}
  .doc-viewer{
    width:60%;max-width:900px;height:100vh;overflow-y:auto;
    background:var(--surface);
    border-left:1px solid var(--line);padding:40px 48px 60px;
    animation:docSlideIn .25s var(--ease) both;
    box-shadow:var(--shadow-2);
  }
  @keyframes docSlideIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
  .doc-viewer-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px}
  .doc-viewer-header .doc-title-area{flex:1}
  .doc-viewer-header .doc-title-area h2{font-weight:700;font-size:24px;letter-spacing:-0.01em;margin:0 0 10px;color:var(--ink)}
  .doc-viewer-header .doc-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
  .doc-viewer-close{
    width:36px;height:36px;border-radius:var(--r-ctl);display:grid;place-items:center;
    background:var(--surface);border:1px solid var(--line);color:var(--ink-dim);
    cursor:pointer;font-size:18px;transition:background-color .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);flex-shrink:0;
  }
  .doc-viewer-close:hover{color:var(--error);background:var(--error-soft);border-color:rgba(180,35,24,0.2)}
  .doc-viewer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
  .doc-viewer-actions .cta{padding:9px 14px;font-size:13px}
  .doc-viewer-content{font-size:15px;line-height:1.7;color:var(--ink)}
  .doc-viewer-content h1{font-weight:700;font-size:22px;margin:28px 0 8px;color:var(--ink)}
  .doc-viewer-content h2{font-weight:650;font-size:19px;margin:24px 0 8px;color:var(--ink)}
  .doc-viewer-content h3{font-weight:600;font-size:16px;margin:20px 0 6px;color:var(--ink)}
  .doc-viewer-content p{margin:0 0 12px}
  .doc-viewer-content strong{color:var(--ink)}
  .doc-viewer-content ul,.doc-viewer-content ol{padding-left:22px;margin:0 0 14px}
  .doc-viewer-content li{margin-bottom:6px}

  /* ===================== Sales Dashboard / Pipeline ===================== */
  .pipe-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}
  .pipe-stat{
    padding:20px 22px;border-radius:var(--r-card);background:var(--surface);
    border:1px solid var(--line);text-align:center;box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease);
  }
  .pipe-stat:hover{border-color:var(--line-strong)}
  .pipe-stat .ps-label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px;font-weight:600}
  .pipe-stat .ps-val{font-family:var(--font-mono);font-weight:500;font-size:24px;color:var(--green);letter-spacing:0;font-variant-numeric:tabular-nums}
  .pipe-stat .ps-val .ps-unit{font-size:12px;color:var(--ink-dim);font-family:var(--font-mono);font-weight:400}

  .pipe-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}
  .pipe-filters .doc-pill{font-size:12px;padding:6px 12px}
  .pipe-search{
    display:flex;align-items:center;gap:8px;
    background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:6px 14px;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .pipe-search:focus-within{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .pipe-search input{background:transparent;border:0;outline:0;color:var(--ink);font-size:13px;padding:4px 0;width:140px}
  .pipe-search input::placeholder{color:var(--ink-dim)}
  .pipe-add-btn{margin-left:auto}

  /* Kanban — neutral columns; the won stage carries the one green accent */
  .kanban{display:flex;gap:14px;overflow-x:auto;padding:4px 0 20px;min-height:500px}
  .kanban::-webkit-scrollbar{height:8px}
  .kanban-col{
    flex:0 0 260px;display:flex;flex-direction:column;border-radius:var(--r-card);
    background:var(--surface-alt);border:1px solid var(--line);overflow:hidden;
  }
  .kanban-col-header{
    padding:14px 16px;border-bottom:1px solid var(--line);
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    position:relative;overflow:hidden;
  }
  .kanban-col-header .kch-name{font-weight:600;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);position:relative;z-index:1}
  .kanban-col-header .kch-count{
    font-size:12px;padding:0;border-radius:var(--r-pill);
    background:transparent;color:var(--ink-dim);font-weight:500;position:relative;z-index:1;
    font-variant-numeric:tabular-nums;
  }
  .kanban-col-header .kch-value{
    font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);position:relative;z-index:1;
    font-variant-numeric:tabular-nums;
  }
  .kanban-col[data-stage="closed_won"] .kanban-col-header{background:var(--green-soft);border-bottom-color:rgba(15,107,52,0.14)}
  .kanban-col[data-stage="closed_won"] .kanban-col-header .kch-name{color:var(--green-ink)}
  .kanban-col-body{
    flex:1;padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;
    min-height:80px;transition:background-color .15s var(--ease);
  }
  .kanban-col-body.drag-over{background:var(--green-soft)}

  .deal-card{
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-ctl);padding:14px 16px;
    cursor:grab;box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease), opacity .18s var(--ease);
    position:relative;user-select:none;
  }
  .deal-card:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow-2)}
  .deal-card:active{cursor:grabbing;opacity:.8}
  .deal-card.dragging{opacity:.4;transform:scale(0.97)}
  .deal-card .dc-company{font-weight:600;font-size:14px;color:var(--ink);margin-bottom:4px;letter-spacing:-0.01em;padding-right:48px}
  .deal-card .dc-value{font-family:var(--font-mono);font-weight:500;font-size:13px;color:var(--green);margin-bottom:6px}
  .deal-card .dc-tier{
    display:inline-block;padding:3px 8px;border-radius:var(--r-pill);font-size:10px;font-weight:500;
    margin-bottom:6px;background:var(--surface-alt);color:var(--ink-dim);border:1px solid var(--line);
  }
  .deal-card .dc-contact{font-size:12px;color:var(--ink-dim);margin-bottom:4px}
  .deal-card .dc-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--ink-dim);margin-top:6px}

  /* Next-action chip — labeled replacement for the old urgency dot. Click = menu. */
  .dc-next{
    display:flex;align-items:center;gap:7px;width:100%;margin-top:8px;padding:6px 9px;
    background:var(--surface-alt);border:1px solid var(--line);border-radius:calc(var(--r-ctl) - 2px);
    font-family:inherit;font-size:11.5px;color:var(--ink);cursor:pointer;text-align:left;
    transition:border-color .18s var(--ease), background-color .18s var(--ease);
  }
  .dc-next:hover{border-color:var(--line-strong);background:var(--surface)}
  .dc-next:focus-visible{outline:2px solid var(--green);outline-offset:2px}
  .dc-next-icon{flex:none;display:inline-flex;color:var(--ink-dim)}
  .dc-next-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
  .dc-next-due{flex:none;font-family:var(--font-mono);font-size:10px;font-variant-numeric:tabular-nums;color:var(--ink-dim)}
  .dc-next.overdue{background:var(--error-soft);border-color:rgba(180,35,24,0.22)}
  .dc-next.overdue .dc-next-due,.dc-next.overdue .dc-next-icon{color:var(--error)}
  .dc-next.today{background:var(--green-soft);border-color:rgba(15,107,52,0.25)}
  .dc-next.today .dc-next-due,.dc-next.today .dc-next-icon{color:var(--green-ink)}
  .dc-next.none{border-style:dashed;background:none;color:var(--ink-dim);justify-content:center;font-weight:500}
  .dc-next.none .dc-next-label{flex:none}
  .dc-next.none:hover{border-color:var(--green);color:var(--green-ink);background:var(--green-soft)}
  .dc-next.none:hover .dc-next-icon{color:var(--green-ink)}

  /* Deal score badge */
  .dc-score{
    position:absolute;top:10px;right:12px;
    font-weight:600;font-size:11px;
    padding:3px 8px;border-radius:var(--r-pill);
    background:var(--surface-alt);color:var(--ink-dim);
    border:1px solid var(--line);
    display:flex;align-items:center;gap:5px;
    line-height:1;
  }
  .dc-score.strong{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.25)}
  .dc-score.solid{background:var(--surface-alt);color:var(--ink-dim);border-color:var(--line-strong)}
  .dc-score.watch{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.25)}
  .dc-score.risk{background:var(--error-soft);color:var(--error);border-color:rgba(180,35,24,0.22)}
  .dc-score-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
  .dc-score-pending{opacity:.5}
  .dc-nba{
    font-size:11px;color:var(--ink-dim);margin-top:6px;
    padding-top:6px;border-top:1px dashed var(--line);
    line-height:1.35;display:flex;gap:6px;align-items:flex-start;
  }
  .dc-nba::before{content:"→";color:var(--green);font-weight:600;flex-shrink:0}

  /* Add deal modal */
  .deal-modal-overlay{
    position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;
    background:rgba(17,18,20,0.4);
    animation:docOverIn .2s var(--ease) both;
  }
  .deal-modal{
    width:480px;max-width:90vw;
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:32px;
    animation:modeIn .25s var(--ease) both;
    box-shadow:var(--shadow-2);
  }
  .deal-modal h3{font-weight:650;font-size:19px;margin:0 0 20px;color:var(--ink);letter-spacing:-0.01em}
  .deal-modal .dm-fields{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
  .deal-modal .dm-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .deal-modal .dd-field label{display:block;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:5px;font-weight:600}
  .deal-modal .dd-field input,
  .deal-modal .dd-field select,
  .deal-modal .dd-field textarea{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:10px 13px;color:var(--ink);font-size:14px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .deal-modal .dd-field input:focus,
  .deal-modal .dd-field select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .deal-modal .dm-actions{display:flex;gap:10px;justify-content:flex-end}

  /* ============ Deal Room ============ */
  .dr-back{
    display:inline-flex;align-items:center;gap:8px;
    font-size:14px;color:var(--ink-dim);cursor:pointer;
    padding:8px 14px;border-radius:var(--r-ctl);border:1px solid var(--line);
    background:var(--surface);transition:color .18s var(--ease), border-color .18s var(--ease), background-color .18s var(--ease);margin-bottom:20px;
    font-weight:500;
  }
  .dr-back:hover{color:var(--ink);border-color:var(--line-strong);background:var(--surface-alt)}
  .dr-crumb{display:flex;align-items:center;gap:10px;margin-bottom:20px}
  .dr-crumb .dr-back{margin-bottom:0}
  .dr-crumb-sep{color:var(--ink-faint);font-size:14px}
  .dr-crumb-here{font-size:14px;font-weight:600;color:var(--ink)}

  .dr-header{
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:24px 28px;
    box-shadow:var(--shadow-1);
    margin-bottom:20px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;
  }
  .dr-company{font-weight:700;font-size:24px;color:var(--ink);letter-spacing:-0.01em;margin:0}
  .dr-value{font-family:var(--font-mono);font-weight:500;font-size:22px;color:var(--green);font-variant-numeric:tabular-nums}
  .dr-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r-pill);font-size:12px;font-weight:500}
  .dr-days{font-size:13px;color:var(--ink-dim)}
  .dr-days b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}
  /* Stage stepper (header v2) — monochrome + green, no stage-color rainbow (DESIGN.md). */
  .dr-stepper{display:flex;align-items:center;flex-wrap:wrap;margin:14px 0 4px}
  .dr-step{display:flex;align-items:center;gap:7px;background:none;border:0;padding:6px 10px;cursor:pointer;font-family:inherit;font-size:12.5px;color:var(--ink-faint)}
  .dr-step + .dr-step::before{content:"";width:20px;height:1px;background:var(--line-strong);margin-right:8px}
  .dr-step-dot{width:9px;height:9px;border-radius:50%;background:var(--surface);border:1.5px solid var(--line-strong);flex:none}
  .dr-step.done{color:var(--ink-dim)}
  .dr-step.done .dr-step-dot{background:var(--green);border-color:var(--green)}
  .dr-step.current{color:var(--ink);font-weight:600}
  .dr-step.current .dr-step-dot{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
  .dr-step:hover{color:var(--ink)}
  .dr-step:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:var(--r-ctl)}
  .dr-stepper-end{display:flex;gap:8px;margin-left:auto}
  .dr-terminal{display:inline-flex;align-items:center;gap:10px;margin:14px 0 4px;padding:7px 16px;border-radius:var(--r-pill);font-size:13px;font-weight:600}
  .dr-terminal.won{background:var(--green-soft);color:var(--green-ink);border:1px solid rgba(15,107,52,0.25)}
  .dr-terminal.lost{background:var(--error-soft);color:var(--error);border:1px solid rgba(180,35,24,0.25)}
  .dr-set-value{background:none;border:1px dashed var(--line-strong);border-radius:var(--r-ctl);color:var(--ink-dim);font-family:inherit;font-size:13px;padding:5px 12px;cursor:pointer}
  .dr-set-value:hover{border-color:var(--green);color:var(--green-ink);background:var(--green-soft)}
  .dr-kebab{background:none;border:1px solid var(--line-strong);border-radius:var(--r-ctl);color:var(--ink-dim);font-size:16px;line-height:1;padding:6px 10px;cursor:pointer}
  .dr-kebab:hover{color:var(--ink);background:var(--surface-alt)}
  /* Body-appended dropdown — immune to .card{overflow:hidden} and stacking contexts. */
  .dr-menu{position:fixed;z-index:var(--z-dropdown);min-width:180px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);box-shadow:var(--shadow-2);padding:6px}
  .dr-menu-item{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 12px;border-radius:calc(var(--r-ctl) - 3px);font-family:inherit;font-size:13.5px;color:var(--ink);cursor:pointer}
  .dr-menu-item:hover{background:var(--surface-alt)}
  .dr-menu-item.danger{color:var(--error)}
  .dr-menu-item.danger:hover{background:var(--error-soft)}
  /* Quick task (header) — an ephemeral add button, nothing persists in the header.
     Opens the action picker in task mode → centered task modal. */
  .dr-quicktask{
    display:inline-flex;align-items:center;gap:8px;margin:12px 0 4px;padding:7px 14px;
    background:none;border:1px dashed var(--line-strong);border-radius:var(--r-ctl);
    font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-dim);cursor:pointer;
    transition:border-color .18s var(--ease), background-color .18s var(--ease), color .18s var(--ease);
  }
  .dr-quicktask:hover{border-color:var(--green);color:var(--green-ink);background:var(--green-soft)}
  .dr-quicktask:focus-visible{outline:2px solid var(--green);outline-offset:2px}
  .dr-qt-icon{display:inline-flex;flex:none}
  .dr-qt-count{font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink-faint);padding-left:2px}
  .dr-quicktask:hover .dr-qt-count{color:var(--green-ink)}

  /* Next-action menu — body-appended popover (like .dr-menu). One flat action
     list in an internal scroller; the Custom row is a fixed footer so it is
     always visible without scrolling. */
  .na-menu{position:fixed;z-index:var(--z-dropdown);width:320px;max-height:400px;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-2);padding:8px}
  .na-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
  .na-menu-sec{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;font-weight:600;color:var(--ink-dim);padding:8px 10px 4px}
  .na-row{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:8px 10px;border-radius:var(--r-ctl);font-family:inherit;font-size:13px;color:var(--ink);cursor:pointer;text-align:left;flex:none}
  .na-row:hover{background:var(--surface-alt)}
  .na-row:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
  .na-row-icon{flex:none;display:inline-flex;color:var(--ink-dim)}
  .na-row:hover .na-row-icon{color:var(--green)}
  .na-row-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .na-row-due{flex:none;font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink-faint)}
  .na-row.ai{background:var(--green-soft)}
  .na-row.ai .na-row-icon{color:var(--green)}
  .na-row.ai .na-row-label{font-weight:500;color:var(--green-ink);white-space:normal}
  .na-row.ai:hover{background:var(--green-soft);border-color:var(--green)}
  .na-row.custom{border-top:1px solid var(--line);border-radius:0 0 calc(var(--r-card) - 6px) calc(var(--r-card) - 6px);margin-top:6px;padding-top:10px}
  .na-row.custom .na-row-label{color:var(--ink-dim)}
  .na-row.custom:hover .na-row-label{color:var(--ink)}
  .na-current{flex:none;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:2px 2px 10px;margin-bottom:6px}
  .na-current-text{font-size:13px;font-weight:600;color:var(--ink);padding:0 10px;line-height:1.4}
  .na-current-actions{display:flex;gap:8px;align-items:center;padding:8px 10px 0}
  .na-current-date{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:4px 8px;font-family:inherit;font-size:12px;color:var(--ink);outline:0}
  .na-current-date:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .na-current-date.overdue{border-color:var(--error);color:var(--error)}
  .na-mini{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:4px 10px;font-family:inherit;font-size:12px;font-weight:500;color:var(--green-ink);cursor:pointer}
  .na-mini:hover{background:var(--green-soft);border-color:var(--green)}
  .na-mini.danger{color:var(--error)}
  .na-mini.danger:hover{background:var(--error-soft);border-color:var(--error)}
  .na-custom{display:flex;flex-direction:column;gap:8px;padding:2px}
  .na-custom .na-custom-text{width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:8px 11px;font-family:inherit;font-size:13px;color:var(--ink);outline:0;transition:border-color .18s var(--ease), box-shadow .18s var(--ease)}
  .na-custom .na-custom-text:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .na-custom .na-custom-text::placeholder{color:var(--ink-dim)}
  .na-custom-row{display:flex;gap:8px;align-items:center}
  .na-custom .na-custom-date{flex:1;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:7px 10px;font-family:inherit;font-size:12.5px;color:var(--ink);outline:0}
  .na-custom .na-custom-date:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .na-custom .cta{padding:7px 14px;font-size:12.5px}

  /* ── Task status pills (Notion-style lanes) ─────────────────────────────
     One pill component everywhere a status shows: task rows, lane headers,
     the modal's status picker. Colors are data meaning (DESIGN.md). */
  .dt-pill{
    display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);
    font-family:inherit;font-size:11px;font-weight:600;letter-spacing:0.02em;white-space:nowrap;
    border:1px solid var(--line);background:var(--surface-alt);color:var(--ink-dim);cursor:pointer;
  }
  .dt-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
  .dt-pill.ts-ongoing{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.25)}
  .dt-pill.ts-waiting{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.25)}
  .dt-pill.ts-done{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.25)}
  span.dt-pill{cursor:default}

  /* Tasks tab */
  .dt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .dt-head .cta{padding:7px 14px;font-size:13px}
  .dt-tabs{display:flex;gap:2px;margin-top:12px;border-bottom:1px solid var(--line);overflow-x:auto}
  .dt-tab{
    display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:none;border:0;
    border-bottom:2px solid transparent;font-family:inherit;font-size:12.5px;font-weight:500;
    color:var(--ink-dim);cursor:pointer;white-space:nowrap;
    transition:color .18s var(--ease), border-color .18s var(--ease);
  }
  .dt-tab:hover{color:var(--ink)}
  .dt-tab.active{color:var(--ink);font-weight:600;border-bottom-color:var(--green)}
  .dt-tab-n{font-family:var(--font-mono);font-size:10px;font-variant-numeric:tabular-nums;color:var(--ink-faint);background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 7px}
  .dt-tab.active .dt-tab-n{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.2)}
  .dt-body{margin-top:14px}
  .dt-lane{margin-bottom:18px}
  .dt-lane:last-child{margin-bottom:0}
  .dt-lane-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .dt-lane-count{font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink-faint)}
  .dt-row{
    display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:6px;
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .dt-row:hover{border-color:var(--line-strong);box-shadow:var(--shadow-1)}
  .dt-row.done .dt-title{text-decoration:line-through;opacity:.55}
  .dt-check{flex:none;width:15px;height:15px;accent-color:var(--green);cursor:pointer}
  .dt-main{flex:1;min-width:0;cursor:pointer}
  .dt-title{font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dt-desc{font-size:12px;color:var(--ink-dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dt-src{flex:none;font-size:10.5px;color:var(--ink-faint);border:1px dashed var(--line-strong);border-radius:var(--r-pill);padding:1px 8px}
  .dt-who{flex:none;font-size:11.5px;color:var(--ink-dim);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dt-due{flex:none;font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink-dim);white-space:nowrap}
  .dt-due.overdue{color:var(--error)}

  /* Up Next tile — task-first rows + people filter chips. The container is a
     flex column with its own gap, so rows and the chip bar carry no margins. */
  .un-filters{display:flex;gap:6px;flex-wrap:wrap}
  .un-chip{
    padding:4px 11px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);
    font-family:inherit;font-size:11.5px;font-weight:500;color:var(--ink-dim);cursor:pointer;
    transition:border-color .18s var(--ease), background-color .18s var(--ease), color .18s var(--ease);
  }
  .un-chip:hover{border-color:var(--line-strong);color:var(--ink)}
  .un-chip.active{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.25);font-weight:600}
  .un-row{
    display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;
    border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);
    transition:border-color .18s var(--ease);
  }
  .un-row:hover{border-color:var(--line-strong)}
  .un-main{flex:1;min-width:0}
  .un-title{font-size:12.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .un-sub{font-size:11px;color:var(--ink-dim);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .un-date{flex:none;font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--ink-dim);white-space:nowrap}

  /* Task modal */
  .task-modal .tm-deal{font-size:12.5px;color:var(--ink-dim);margin:-14px 0 16px}
  .tm-status{display:flex;gap:6px;flex-wrap:wrap}
  .tm-status-pill{
    display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);
    font-family:inherit;font-size:12px;font-weight:600;border:1px solid var(--line);
    background:var(--surface);color:var(--ink-dim);cursor:pointer;
    transition:border-color .18s var(--ease), background-color .18s var(--ease), color .18s var(--ease);
  }
  .tm-status-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5}
  .tm-status-pill:hover{border-color:var(--line-strong)}
  .tm-status-pill.selected::before{opacity:1}
  .tm-status-pill.selected{background:var(--surface-alt);color:var(--ink);border-color:var(--line-strong)}
  .tm-status-pill.ts-ongoing.selected{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.35)}
  .tm-status-pill.ts-waiting.selected{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.35)}
  .tm-status-pill.ts-done.selected{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.35)}
  .tm-actions-gap{flex:1}
  .task-modal .tm-delete{color:var(--error);border-color:rgba(180,35,24,0.3)}
  .task-modal .tm-delete:hover{background:var(--error-soft)}
  .task-modal textarea{resize:vertical;min-height:64px}
  .dr-saved{font-size:11px;font-weight:600;color:var(--green-ink);opacity:0;transition:opacity .2s var(--ease)}
  .dr-saved.show{opacity:1}
  /* Timeline (S4) */
  /* ── Electrification simulator ──────────────────────────────────────────
     Shared by the company profile's Simulations tab and the meeting form.
     Colours come from the DESIGN.md tokens, not from the source brief's own
     palette: --green/--warn/--error already carry "pass / tight / fails" meaning
     everywhere else in this app, and a second palette for the same semantics is
     how a design system starts to rot. */
  .sim-panel{display:block}
  .sim-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
  .sim-cur{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .sim-cur label{font-size:12px;color:var(--ink-dim)}
  .sim-cur select{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:6px 10px;font-family:inherit;font-size:13px;color:var(--ink);outline:0}
  .sim-cur select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .sim-fx{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}

  .sim-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:16px}
  .sim-cat{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 14px;opacity:.55;transition:opacity .18s var(--ease),border-color .18s var(--ease)}
  /* A category with no vehicles is dimmed rather than hidden — a rep needs to see
     what they have NOT filled in as much as what they have. */
  .sim-cat.on{opacity:1;border-color:var(--line-strong)}
  .sim-cat-name{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px}
  .sim-cat label,.sim-site label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink-dim);margin-top:6px}
  .sim-cat input,.sim-site input{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:7px 10px;font-family:var(--font-mono);font-size:13px;color:var(--ink);outline:0;width:100%;
    font-variant-numeric:tabular-nums}
  .sim-cat input:focus,.sim-site input:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}

  .sim-site{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px}
  .sim-note{margin-top:8px;line-height:1.55}
  .sim-adv{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
  .sim-adv summary{cursor:pointer;font-size:12.5px;color:var(--ink-dim);font-weight:500}

  .sim-results{margin-top:20px}
  .sim-kpis .co-kpi.sim-good{background:var(--green-soft);border-color:rgba(15,107,52,0.18)}
  .sim-kpis .co-kpi.sim-good .v{color:var(--green-ink)}

  .sim-table-wrap{overflow-x:auto;margin-top:8px}
  .sim-table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
  .sim-table th,.sim-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
  .sim-table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);font-weight:600}
  .sim-table tbody td:first-child{color:var(--ink-dim)}
  .sim-table tbody td{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink)}
  .sim-table tbody td:first-child{font-family:inherit}
  .sim-sub{font-family:inherit;font-size:11px;color:var(--ink-faint);margin-top:2px}

  .sim-badge{display:inline-block;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;
    letter-spacing:.04em;padding:2px 8px;border-radius:var(--r-pill);background:var(--line);color:var(--ink-dim);white-space:nowrap}
  .sim-badge.ok{background:var(--green-soft);color:var(--green-ink)}
  .sim-badge.warn{background:var(--warn-soft);color:var(--warn)}
  .sim-badge.bad{background:var(--error-soft);color:var(--error)}

  .sim-range{margin-top:8px;display:flex;flex-direction:column;gap:10px}
  .sim-range-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .sim-range-name{flex:0 0 168px;font-size:13px;color:var(--ink)}
  .sim-range-name small{color:var(--ink-faint)}
  .sim-range-bar{flex:1;min-width:120px;height:8px;border-radius:4px;background:var(--line);overflow:hidden}
  .sim-range-bar>span{display:block;height:100%;background:var(--green);border-radius:4px}
  .sim-range-pct{flex:0 0 52px;text-align:right;font-family:var(--font-mono);font-size:12.5px;
    font-variant-numeric:tabular-nums;color:var(--ink-dim)}
  @media (max-width:640px){
    .sim-range-name{flex:1 1 100%}
    .sim-range-pct{flex:0 0 auto}
  }
  .tl-composer{padding:14px 16px}
  .tl-modes{display:flex;gap:6px;margin-bottom:10px}
  .tl-mode{background:none;border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink-dim);cursor:pointer}
  .tl-mode.active{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.25)}
  /* An explicit `display` beats the `hidden` attribute's UA default, so both
     compose rows rendered at once no matter which mode was active — which is why
     the Note and Task rows appeared stacked and misaligned. */
  .tl-compose-row[hidden]{display:none}
  .tl-compose-row{display:flex;gap:8px;align-items:center}
  /* Template pickers share one width so the fields below them line up across all
     three modes; the commit button shares one width for the same reason. */
  .tl-compose-row .tl-tpl{
    flex:0 0 172px;background:var(--surface-alt);border:1px solid var(--line-strong);
    border-radius:var(--r-ctl);padding:9px 10px;font-family:inherit;font-size:12.5px;
    color:var(--ink-dim);outline:0;cursor:pointer}
  .tl-compose-row .tl-tpl:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .tl-compose-row .tl-go{flex:0 0 96px;justify-content:center}
  .tl-compose-row .tl-hint{flex:1;min-width:0;font-size:12.5px;color:var(--ink-faint)}
  @media (max-width:720px){
    .tl-compose-row{flex-wrap:wrap}
    .tl-compose-row .tl-tpl{flex:1 1 100%}
    .tl-compose-row .tl-go{flex:1 1 100%}
  }
  .tl-compose-row input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:9px 12px;font-family:inherit;font-size:13.5px;color:var(--ink);outline:0;transition:border-color .18s var(--ease), box-shadow .18s var(--ease)}
  .tl-compose-row input:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .tl-compose-row input[type="date"]{flex:0 0 150px}
  .tl-item{display:flex;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line)}
  .tl-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--line-strong);margin-top:6px}
  .tl-item.meeting .tl-dot{background:var(--info)}
  .tl-item.stage_change .tl-dot,.tl-item.task_done .tl-dot{background:var(--green)}
  .tl-item.intelligence .tl-dot{background:var(--warn)}
  .tl-body{flex:1;min-width:0}
  .tl-title{font-size:13.5px;color:var(--ink);line-height:1.45;overflow-wrap:anywhere}
  .tl-meta{font-size:11.5px;color:var(--ink-dim);margin-top:2px}
  .tl-link{background:none;border:0;padding:0;font-family:inherit;font-size:inherit;color:var(--green);cursor:pointer}
  .tl-link:hover{color:var(--green-hover);text-decoration:underline}
  .tl-pinned{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px 14px;margin-bottom:10px}
  .tl-more{width:100%;justify-content:center;margin-top:10px}
  .rail-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:wrap}
  .rail-row:last-of-type{border-bottom:0}
  .rail-main{color:var(--ink);font-weight:600;overflow-wrap:anywhere}
  .rail-sub{color:var(--ink-dim);font-size:12px}
  .qa-stack{display:flex;flex-direction:column;gap:10px}
  .qa-stack > .cta{width:100%;justify-content:center}
  .qa-row{display:flex;gap:10px}
  .qa-row .cta{flex:1;justify-content:center}
  /* Intelligence signals (Phase 5). Score is a pill and the implication a
     green-soft tint block — DESIGN.md bans side-stripe borders. */
  /* Five controls now (prompt, depth, Run, Edit, New) — wrap rather than crush
     the prompt picker on a narrow drawer. */
  .intel-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .intel-toolbar #intelPromptSel{flex:1 1 220px}
  .intel-toolbar select{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:9px 12px;font-family:inherit;font-size:13.5px;color:var(--ink);outline:0}
  .intel-toolbar select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  /* Depth is a short fixed choice; without this the shared flex:1 above gives it the
     same width as the prompt picker, which has far longer labels. */
  .intel-toolbar #intelDepthSel{flex:0 0 auto;width:auto;min-width:104px}
  .intel-runs{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 16px}
  .intel-runs summary{cursor:pointer;font-size:13px;color:var(--ink-dim);font-weight:500}
  .intel-run{padding:12px 0;border-top:1px solid var(--line)}
  .intel-run:first-of-type{border-top:0;padding-top:10px}
  .intel-run-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
  .intel-run-name{font-size:13.5px;font-weight:600;color:var(--ink)}
  .intel-run-status{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;
    padding:2px 7px;border-radius:var(--r-pill);background:var(--line);color:var(--ink-dim)}
  .intel-run-status.ok{background:var(--green-soft);color:var(--green)}
  .intel-run-status.warn{background:var(--warn-soft);color:var(--warn)}
  .intel-run-status.err{background:var(--error-soft);color:var(--error)}
  .intel-run-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);margin-top:3px}
  .intel-run-answer{font-size:13.5px;line-height:1.6;color:var(--ink);margin-top:8px}
  .intel-run-answer p{margin:0 0 6px}
  .intel-run-err{font-size:12.5px;color:var(--error);margin-top:6px}
  .sig-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1);padding:16px 18px;margin-bottom:12px}
  .sig-card.pinned{border-color:rgba(15,107,52,0.35)}
  .sig-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
  .sig-score{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;border-radius:var(--r-pill);padding:2px 10px}
  .sig-score.hi{background:var(--green-soft);color:var(--green-ink)}
  .sig-score.mid{background:var(--info-soft);color:var(--info)}
  .sig-score.lo{background:var(--surface-alt);color:var(--ink-dim);border:1px solid var(--line)}
  .sig-cat{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;font-weight:600;color:var(--ink-dim)}
  .sig-conf{font-size:11px;border-radius:var(--r-pill);padding:1px 8px;border:1px solid var(--line);color:var(--ink-dim)}
  .sig-conf.confirmed{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.2)}
  .sig-conf.inferred{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.2)}
  .sig-age{margin-left:auto;font-size:11.5px;color:var(--ink-faint)}
  .sig-headline{font-size:15px;font-weight:600;color:var(--ink);line-height:1.4}
  .sig-summary{font-size:13px;color:var(--ink-dim);margin-top:4px;line-height:1.5}
  .sig-imp{background:var(--green-soft);border:1px solid rgba(15,107,52,0.16);border-radius:var(--r-ctl);padding:10px 12px;margin-top:10px;font-size:13px;color:var(--green-ink);line-height:1.5}
  .sig-imp-label{display:block;font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;font-weight:600;margin-bottom:3px}
  .sig-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
  .sig-srcs{display:flex;gap:6px;flex-wrap:wrap}
  .sig-src-chip{font-size:11px;border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:2px 10px;color:var(--ink-dim);text-decoration:none}
  .sig-src-chip:hover{background:var(--surface-alt);color:var(--ink)}
  .sig-actions{margin-left:auto;display:flex;gap:12px;font-size:12.5px}
  .sig-done{font-size:12px;color:var(--green-ink)}
  .intel-archive summary,.intel-legacy summary{cursor:pointer;font-size:13px;color:var(--ink-dim);padding:6px 0}
  .dr-owner{font-size:13px;color:var(--ink-dim)}

  .dr-tabs{
    display:inline-flex;gap:2px;padding:0;
    border:0;border-bottom:1px solid var(--line);border-radius:0;
    background:transparent;margin-bottom:24px;
    flex-wrap:wrap;
  }
  .dr-tab{
    background:transparent;border:0;border-bottom:2px solid transparent;color:var(--ink-dim);
    font-size:13.5px;font-weight:500;
    padding:10px 14px;border-radius:0;cursor:pointer;
    display:inline-flex;align-items:center;gap:8px;
    transition:color .18s var(--ease), border-color .18s var(--ease);
    margin-bottom:-1px;
  }
  .dr-tab:hover{color:var(--ink)}
  .dr-tab.active{color:var(--ink);border-bottom-color:var(--green);font-weight:600}
  .dr-tab .g{font-size:15px;opacity:.9}
  .dr-tab.active .g{color:var(--green);opacity:1}

  .dr-pane{display:none}
  .dr-pane.active{display:block}

  .dr-overview-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}
  .dr-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .dr-grid2 .dd-field label, #drPaneTasks .dd-field label{display:block;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:5px;font-weight:600}
  .dr-grid2 .dd-field input,
  .dr-grid2 .dd-field select,
  .dr-grid2 .dd-field textarea,
  #drPaneTasks .dd-field input,
  #drPaneTasks .dd-field select{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:10px 13px;color:var(--ink);font-size:14px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .dr-grid2 .dd-field input:focus,
  .dr-grid2 .dd-field select:focus,
  .dr-grid2 .dd-field textarea:focus,
  #drPaneTasks .dd-field input:focus,
  #drPaneTasks .dd-field select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  #drPaneTasks .te-title, #drPaneTasks .te-due, #drPaneTasks .te-assignee{
    background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:8px 10px;color:var(--ink);font-size:14px;font-family:inherit;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  #drPaneTasks .te-title:focus, #drPaneTasks .te-due:focus, #drPaneTasks .te-assignee:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}


  /* Competitive Landscape panel */
  .comp-landscape-card{position:relative;overflow:hidden}
  .comp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:6px}
  .comp-vendor{
    position:relative;display:flex;align-items:center;justify-content:space-between;
    padding:9px 12px;border-radius:var(--r-ctl);
    background:var(--surface-alt);border:1px solid var(--line);
    cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease);
  }
  .comp-vendor:hover{background:var(--surface);border-color:var(--line-strong)}
  .comp-vendor .cv-name{font-size:12px;font-weight:600;color:var(--ink)}
  .comp-vendor .cv-meta{font-size:10px;color:var(--ink-dim);font-family:var(--font-mono);margin-top:2px}
  .comp-vendor .cv-cap{display:flex;gap:3px;flex-wrap:wrap}
  .cv-cap span{
    font-size:9px;padding:2px 6px;border-radius:4px;font-weight:600;letter-spacing:0.04em;
    background:var(--surface-alt);color:var(--ink-dim);border:1px solid var(--line);
  }
  .cv-cap .ac{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.2)}
  .cv-cap .dc{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.2)}
  .cv-cap .v2g{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.2)}
  .cv-cap .pv{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.2)}
  .comp-detail{
    margin-top:14px;padding:16px;border-radius:var(--r-card);
    background:var(--surface-alt);
    border:1px solid var(--line-strong);
    animation:compFadeIn 0.2s var(--ease);
  }
  @keyframes compFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
  .comp-detail .cd-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .comp-detail .cd-name{font-weight:650;font-size:16px;color:var(--ink)}
  .comp-detail .cd-vs{font-size:10px;color:var(--error);letter-spacing:0.06em;text-transform:uppercase;font-weight:600}
  .comp-detail .cd-prods{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;margin-bottom:12px}
  .comp-detail .cd-prod{
    display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;
    padding:7px 10px;background:var(--surface);border-radius:var(--r-ctl);font-size:11.5px;
  }
  .comp-detail .cd-prod-name{font-weight:600;color:var(--ink)}
  .comp-detail .cd-prod-spec{font-family:var(--font-mono);color:var(--ink-dim);font-size:11px}
  .comp-detail .cd-prod-price{font-family:var(--font-mono);color:var(--green);font-size:11px}
  .comp-detail .cd-edge{
    margin-top:10px;padding:10px 12px;border-radius:var(--r-ctl);
    background:var(--green-soft);border:1px solid rgba(15,107,52,0.16);
    font-size:12px;color:var(--green-ink);line-height:1.5;
  }
  .comp-detail .cd-edge strong{color:var(--green)}
  .comp-detail .cd-actions{display:flex;gap:8px;margin-top:10px}
  .comp-detail .cd-close{margin-left:auto;background:none;border:none;color:var(--ink-dim);cursor:pointer;font-size:14px}

  /* Contacts table */
  .dr-contacts-table{width:100%;border-collapse:separate;border-spacing:0}
  .dr-contacts-table th{
    text-align:left;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--ink-dim);padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600;
  }
  .dr-contacts-table td{
    padding:12px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink-dim);
    vertical-align:middle;
  }
  .dr-contacts-table tr:hover td{background:var(--surface-alt)}

  .role-badge{
    display:inline-flex;padding:3px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:500;
    border:1px solid;
  }
  .role-badge.decision-maker{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.2)}
  .role-badge.economic-buyer{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.2)}
  .role-badge.champion{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.2)}
  .role-badge.influencer{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.2)}
  .role-badge.blocker{background:var(--error-soft);color:var(--error);border-color:rgba(180,35,24,0.2)}
  .role-badge.technical{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.2)}
  .role-badge.end-user{background:var(--surface-alt);color:var(--ink-dim);border-color:var(--line-strong)}

  /* Meeting modal */
  .dr-meeting-modal{
    position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;
    background:rgba(17,18,20,0.4);
    animation:docOverIn .2s var(--ease) both;
    overflow-y:auto;padding:20px;
  }
  .dr-meeting-form{
    width:720px;max-width:95vw;
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:32px;
    animation:modeIn .25s var(--ease) both;
    box-shadow:var(--shadow-2);
    margin:auto;
  }
  .dr-meeting-form h3{font-weight:650;font-size:19px;margin:0 0 20px;color:var(--ink)}
  .dr-meeting-form .dm-fields{display:flex;flex-direction:column;gap:0;margin-bottom:18px}
  .dm-form-section{border:1px solid var(--line);border-radius:var(--r-card);margin-bottom:12px;overflow:hidden;transition:border-color .18s var(--ease)}
  .dm-form-section .dm-sec-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;user-select:none;background:var(--surface-alt);transition:background-color .15s var(--ease)}
  .dm-form-section .dm-sec-header:hover{background:var(--green-soft)}
  .dm-form-section .dm-sec-title{font-weight:600;font-size:14px;color:var(--ink)}
  .dm-form-section .dm-sec-chevron{color:var(--ink-faint);font-size:12px;transition:transform .25s var(--ease)}
  .dm-form-section.collapsed .dm-sec-chevron{transform:rotate(-90deg)}
  .dm-form-section .dm-sec-body{padding:0 18px 16px;display:flex;flex-direction:column;gap:12px}
  .dm-form-section.collapsed .dm-sec-body{display:none}
  .dm-paste-section{border-color:rgba(15,107,52,0.25)}
  .dm-paste-section .dm-sec-header{background:var(--green-soft)}
  .dm-draft-hint{background:var(--green-soft);color:var(--green-ink);border:1px solid rgba(15,107,52,0.2);border-radius:var(--r-ctl);padding:10px 14px;font-size:13px}
  .dr-meeting-form .dm-actions{position:sticky;bottom:-1px;background:var(--surface);padding:12px 0 2px;border-top:1px solid var(--line);margin-top:2px}
  .dr-meeting-form .dm-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .dr-meeting-form .dm-row-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
  @media (max-width: 700px){ .dr-meeting-form .dm-row-4{grid-template-columns:1fr 1fr} }
  .dr-meeting-form .dd-field label{display:block;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:5px;font-weight:600}
  .dr-meeting-form .dd-field input,
  .dr-meeting-form .dd-field select,
  .dr-meeting-form .dd-field textarea{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:9px 13px;color:var(--ink);font-size:13px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .dr-meeting-form .dd-field input:focus,
  .dr-meeting-form .dd-field select:focus,
  .dr-meeting-form .dd-field textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .dr-meeting-form .dd-field textarea{resize:vertical;min-height:60px;line-height:1.5}
  .dr-meeting-form .dm-actions{display:flex;gap:10px;justify-content:flex-end}

  .dm-format-toggle{display:flex;gap:0;border:1px solid var(--line-strong);border-radius:var(--r-ctl);overflow:hidden}
  .dm-format-toggle .fmt-opt{padding:8px 14px;font-size:12px;font-weight:500;cursor:pointer;background:transparent;color:var(--ink-dim);border:none;transition:background-color .15s var(--ease), color .15s var(--ease);border-right:1px solid var(--line)}
  .dm-format-toggle .fmt-opt:last-child{border-right:none}
  .dm-format-toggle .fmt-opt.active{background:var(--green-soft);color:var(--green-ink)}
  .dm-format-toggle .fmt-opt:hover:not(.active){background:var(--surface-alt)}

  .dm-attendee-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:8px}
  .dm-attendee-row input{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:8px 12px;color:var(--ink);font-size:13px;outline:0;transition:border-color .18s var(--ease), box-shadow .18s var(--ease)}
  .dm-attendee-row input:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .dm-att-remove{width:32px;height:32px;border-radius:var(--r-ctl);border:1px solid rgba(180,35,24,0.3);background:var(--error-soft);color:var(--error);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background-color .15s var(--ease), border-color .15s var(--ease)}
  .dm-att-remove:hover{border-color:rgba(180,35,24,0.5)}

  .dm-agenda-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
  .dm-agenda-chip{padding:4px 12px;border-radius:var(--r-pill);font-size:11px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink-dim);transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease)}
  .dm-agenda-chip:hover{border-color:var(--line-strong);color:var(--ink);background:var(--surface-alt)}

  .dm-obj-tags-select{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .dm-obj-tag-opt{padding:4px 12px;border-radius:var(--r-pill);font-size:11px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink-dim);transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease)}
  .dm-obj-tag-opt.active{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.3)}
  .dm-obj-tag-opt:hover:not(.active){background:var(--surface-alt);border-color:var(--line-strong)}

  .dm-comp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .dm-comp-chip{padding:4px 12px;border-radius:var(--r-pill);font-size:11px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink-dim);transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease)}
  .dm-comp-chip.active{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.3)}
  .dm-comp-chip:hover:not(.active){background:var(--surface-alt)}

  .dm-sentiment-select{display:flex;gap:8px}
  .dm-sent-opt{flex:1;padding:8px 6px;border-radius:var(--r-ctl);border:1px solid var(--line);background:transparent;cursor:pointer;text-align:center;font-size:12px;font-weight:500;transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease)}
  .dm-sent-opt:hover{border-color:var(--line-strong);background:var(--surface-alt)}
  .dm-sent-opt.active.hot{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.3)}
  .dm-sent-opt.active.warm{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.3)}
  .dm-sent-opt.active.neutral{background:var(--surface-alt);color:var(--ink-dim);border-color:var(--line-strong)}
  .dm-sent-opt.active.cool{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.3)}
  .dm-sent-opt.active.cold{background:var(--error-soft);color:var(--error);border-color:rgba(180,35,24,0.3)}

  .dm-ai-action-row{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
  .dm-ai-btn{padding:8px 16px;border-radius:var(--r-ctl);border:1px solid rgba(15,107,52,0.25);background:var(--green-soft);color:var(--green-ink);cursor:pointer;font-size:12px;font-weight:500;transition:background-color .15s var(--ease), border-color .15s var(--ease)}
  .dm-ai-btn:hover{border-color:rgba(15,107,52,0.45)}
  .dm-ai-btn:disabled{opacity:.5;cursor:not-allowed}
  .dm-ai-result{margin-top:10px;padding:14px 18px;border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);font-size:13px;color:var(--ink-dim);line-height:1.6;white-space:pre-wrap}

  .dm-action-table{width:100%}
  .dm-action-table-row{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:8px;align-items:end;margin-bottom:8px}
  .dm-action-table-row input,.dm-action-table-row select{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:8px 12px;color:var(--ink);font-size:13px;outline:0;transition:border-color .18s var(--ease), box-shadow .18s var(--ease)}
  .dm-action-table-row input:focus,.dm-action-table-row select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}

  /* Activity timeline */
  .dr-activity{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);margin-bottom:8px;font-size:13px;transition:border-color .15s var(--ease), background-color .15s var(--ease)}
  .dr-activity:hover{border-color:var(--line-strong);background:var(--surface)}
  .dr-activity .da-icon{font-size:16px;min-width:22px;text-align:center;margin-top:1px}
  .dr-activity .da-time{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);white-space:nowrap}
  .dr-activity .da-text{color:var(--ink-dim);line-height:1.4;flex:1}

  /* Doc status badges */
  .doc-status-badge{display:inline-flex;padding:3px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:500;border:1px solid}
  .doc-status-badge.draft{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.2)}
  .doc-status-badge.review{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.2)}
  .doc-status-badge.approved{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.2)}
  .doc-status-badge.sent{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.2)}
  .doc-status-badge.signed{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.35);font-weight:700}

  /* Contact modal */
  .dr-contact-modal{
    position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;
    background:rgba(17,18,20,0.4);
    animation:docOverIn .2s var(--ease) both;
    overflow-y:auto;padding:20px;
  }
  .dr-contact-form{
    width:480px;max-width:90vw;
    margin:auto;
    background:var(--surface);
    border:1px solid var(--line);border-radius:var(--r-card);padding:32px;
    animation:modeIn .25s var(--ease) both;
    box-shadow:var(--shadow-2);
  }
  .dr-contact-form h3{font-weight:650;font-size:18px;margin:0 0 18px;color:var(--ink)}
  .dr-contact-form .dm-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
  .dr-contact-form .dm-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .dr-contact-form .dd-field label{display:block;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:5px;font-weight:600}
  .dr-contact-form .dd-field input,
  .dr-contact-form .dd-field select,
  .dr-contact-form .dd-field textarea{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:10px 13px;color:var(--ink);font-size:14px;outline:0;
    transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .dr-contact-form .dd-field input:focus,
  .dr-contact-form .dd-field select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .dr-contact-form .dm-actions{display:flex;gap:10px;justify-content:flex-end}

  /* Intel card */
  .dr-intel-card{
    padding:18px 22px;border-radius:var(--r-card);
    background:var(--surface);border:1px solid var(--line);margin-bottom:14px;
    box-shadow:var(--shadow-1);
    transition:border-color .18s var(--ease);
  }
  .dr-intel-card:hover{border-color:var(--line-strong)}
  .dr-intel-card .dic-ts{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);margin-bottom:10px}
  .dr-intel-card .dic-row{display:flex;gap:14px;font-size:13px;color:var(--ink-dim);padding:6px 0;border-bottom:1px dashed var(--line)}
  .dr-intel-card .dic-row:last-child{border:0}
  .dr-intel-card .dic-key{font-weight:600;color:var(--ink);min-width:120px}

  /* Notes pane */
  .dr-notes-area{
    width:100%;min-height:300px;resize:vertical;
    background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-card);
    padding:18px 22px;color:var(--ink);font-size:15px;
    line-height:1.65;outline:0;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  }
  .dr-notes-area:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .dr-notes-saved{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);margin-top:8px}
  .dr-notes-preview{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
    padding:18px 22px;min-height:300px;font-size:15px;line-height:1.65;color:var(--ink);
  }
  .dr-notes-preview h1,.dr-notes-preview h2,.dr-notes-preview h3{color:var(--ink)}
  .dr-notes-preview strong{color:var(--ink)}

  @media (max-width:1200px){
    .pipe-stats{grid-template-columns:repeat(3,1fr)}
    .dr-grid2{grid-template-columns:1fr}
  }

  /* ===================== AI Brief (Dashboard) ===================== */
  @keyframes skel{0%{background-position:200% 0}100%{background-position:-200% 0}}

  /* Meeting Notes — Extract Actions button feedback */
  .dm-extract-preview{
    margin-top:10px;padding:12px 14px;border-radius:var(--r-ctl);
    background:var(--green-soft);border:1px solid rgba(15,107,52,0.18);
    font-size:12.5px;color:var(--green-ink);line-height:1.5;
  }
  .dm-extract-preview strong{color:var(--green-ink);font-weight:600}
  .dm-extract-row{padding:4px 0;border-bottom:1px dashed rgba(15,107,52,0.12)}
  .dm-extract-row:last-child{border:0}

  /* ===================== Floating AI chat (Ask Claude) ===================== */
  .claude-fab{
    position:fixed;bottom:28px;right:28px;z-index:var(--z-sticky);
    width:54px;height:54px;border-radius:50%;
    background:var(--green);color:#fff;
    border:0;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    font-size:24px;font-weight:700;
    box-shadow:var(--shadow-2);
    transition:background-color .18s var(--ease), transform .18s var(--ease), box-shadow .18s var(--ease);
  }
  .claude-fab:hover{transform:scale(1.06);background:var(--green-hover)}
  .claude-fab.open{background:var(--ink);transform:rotate(45deg)}
  .claude-fab.open:hover{transform:rotate(45deg) scale(1.04)}
  .claude-fab-badge{
    position:absolute;top:-2px;right:-2px;
    width:14px;height:14px;border-radius:50%;
    background:var(--error);border:2px solid var(--bg);
    display:none;
  }
  .claude-fab.has-context .claude-fab-badge{display:block}

  .claude-panel{
    position:fixed;bottom:96px;right:28px;z-index:var(--z-dropdown);
    width:420px;max-height:calc(100vh - 160px);
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--r-card);
    box-shadow:var(--shadow-2);
    display:flex;flex-direction:column;
    opacity:0;transform:translateY(12px) scale(0.96);
    pointer-events:none;
    transition:opacity .2s var(--ease), transform .2s var(--ease);
  }
  .claude-panel.open{opacity:1;transform:none;pointer-events:auto}
  .claude-panel-head{
    padding:16px 18px 12px;
    border-bottom:1px solid var(--line);
    display:flex;align-items:center;justify-content:space-between;
  }
  .claude-panel-title{
    font-weight:650;font-size:16px;
    color:var(--ink);display:flex;align-items:center;gap:8px;
  }
  .claude-panel-title .cpill{
    font-size:10px;font-weight:600;
    letter-spacing:0.06em;text-transform:uppercase;
    padding:3px 7px;border-radius:4px;
    background:var(--green-soft);color:var(--green-ink);
  }
  .claude-panel-ctx{
    font-size:11px;color:var(--ink-dim);margin-top:2px;
    max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .claude-panel-clear{
    font-size:11px;color:var(--ink-dim);background:0;border:0;cursor:pointer;
    padding:4px 8px;border-radius:6px;
  }
  .claude-panel-clear:hover{color:var(--error);background:var(--error-soft)}
  .claude-panel-msgs{
    flex:1;overflow-y:auto;padding:14px 16px;
    display:flex;flex-direction:column;gap:12px;
    min-height:200px;max-height:420px;
  }
  .claude-msg{
    max-width:90%;font-size:13.5px;line-height:1.55;
    padding:10px 14px;border-radius:var(--r-ctl);
    word-wrap:break-word;
  }
  .claude-msg.user{
    align-self:flex-end;
    background:var(--green);color:#fff;
    border-bottom-right-radius:4px;
  }
  .claude-msg.assistant{
    align-self:flex-start;
    background:var(--surface-alt);color:var(--ink);
    border:1px solid var(--line);
    border-bottom-left-radius:4px;
  }
  .claude-msg.assistant strong{font-weight:600;color:var(--ink)}
  .claude-msg.assistant ul,.claude-msg.assistant ol{padding-left:16px;margin:6px 0}
  .claude-msg.assistant li{margin-bottom:3px}
  .claude-msg.assistant code{
    background:rgba(17,18,20,0.06);padding:1px 5px;border-radius:3px;font-size:12px;
    font-family:var(--font-mono);
  }
  .claude-welcome{text-align:center;padding:30px 20px;color:var(--ink-dim);font-size:13px;line-height:1.6}
  .claude-welcome-title{font-size:17px;font-weight:650;color:var(--ink);margin-bottom:6px}
  .claude-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:12px}
  .claude-chip{
    padding:6px 10px;border-radius:var(--r-ctl);font-size:11.5px;
    background:var(--surface);border:1px solid var(--line);color:var(--ink-dim);
    cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);
  }
  .claude-chip:hover{border-color:var(--green);color:var(--green-ink);background:var(--green-soft)}
  .claude-typing{display:flex;gap:4px;padding:8px 14px;align-self:flex-start}
  .claude-typing span{
    width:5px;height:5px;border-radius:50%;background:var(--ink-faint);
    animation:blink 1s infinite var(--ease);
  }
  .claude-typing span:nth-child(2){animation-delay:.15s}
  .claude-typing span:nth-child(3){animation-delay:.3s}
  .claude-panel-input{
    padding:10px 12px;border-top:1px solid var(--line);
    display:flex;gap:8px;align-items:flex-end;
  }
  .claude-panel-input textarea{
    flex:1;resize:none;border:0;outline:0;
    font-size:13.5px;
    color:var(--ink);background:transparent;
    padding:8px 0;max-height:100px;line-height:1.4;
  }
  .claude-panel-input textarea::placeholder{color:var(--ink-dim)}
  .claude-send{
    width:34px;height:34px;border-radius:var(--r-ctl);border:0;
    background:var(--green);color:#fff;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    font-size:16px;flex-shrink:0;transition:background-color .15s var(--ease);
  }
  .claude-send:hover{background:var(--green-hover)}
  .claude-send:disabled{opacity:.4;cursor:not-allowed}

  /* ===================== Dashboard hierarchy (Phase 3) ===================== */
  .dash-section-label{
    font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--ink-dim);margin:4px 0 10px;display:flex;align-items:center;gap:8px;
  }
  .dash-section-label .dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
  .dash-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
  .dash-row>*{margin-bottom:0}
  .dash-today{margin-bottom:24px}
  .dash-today .card{padding:24px;border-color:var(--line-strong)}
  .dash-today .card .label{color:var(--green-ink)}
  .dash-quiet .card{background:var(--surface-alt);box-shadow:none}
  @media (max-width:900px){
    .dash-row{grid-template-columns:1fr}
  }

  /* Jargon tooltips (Phase 3) — the FCR-ticker .tip pattern, generalized to any term */
  .jargon{position:relative;cursor:help;border-bottom:1px dotted var(--ink-faint)}
  .jargon .tip{
    position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
    background:var(--ink);border:0;border-radius:var(--r-ctl);
    padding:8px 12px;font-size:11px;font-weight:500;line-height:1.45;color:#fff;
    width:max-content;max-width:280px;white-space:normal;text-align:left;
    letter-spacing:0;text-transform:none;
    pointer-events:none;opacity:0;transition:opacity .15s;z-index:var(--z-tooltip);
    box-shadow:var(--shadow-2);
  }
  .jargon:hover .tip,.jargon:focus-visible .tip{opacity:1}

  /* ===================== Reduced motion ===================== */
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{
      transition-duration:1ms !important;
      animation-duration:1ms !important;
      animation-iteration-count:1 !important;
    }
    .sk-line,.shimmer-bubble{animation:none;background:rgba(17,18,20,0.06)}
  }

  /* Phone-width degradation for components declared later in this sheet (kanban, deal
     room, simulators). Lives at the end so it wins the cascade at equal specificity;
     the layout-shell 760px block near the top handles the sidebar/grids. */
  @media (max-width:760px){
    /* Kanban: columns stack vertically full-width (drag/drop targets stay intact). */
    .kanban{flex-direction:column;overflow-x:visible;min-height:0}
    .kanban-col{flex:1 1 auto;width:100%}
    /* Hub + Deal Room tab bars: horizontal scroll, no wrap, no scrollbar chrome. */
    .hub-tabs,.dr-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
    .hub-tabs::-webkit-scrollbar,.dr-tabs::-webkit-scrollbar{display:none}
    .hub-tab,.dr-tab{flex:0 0 auto;white-space:nowrap}
    /* Deal Room content + Financial Simulator sliders: single column. */
    .dr-overview-grid,.dr-grid2,.fin-ctrls{grid-template-columns:1fr}
    /* Frame Agreement sites table: keep columns usable; wrapper already scrolls. */
    .frame-sites-table{min-width:820px}
  }

  /* ============ Login gate — "the Swedish power day" (see DESIGN.md) ============
     One Committed/drenched brand surface; sits above the app's whole z-scale. */
  #loginOverlay{position:fixed;inset:0;z-index:700;display:grid;grid-template-columns:1fr 420px;background:var(--bg)}
  .login-field{position:relative;background:#082114;color:#E8F2EC;display:flex;flex-direction:column;justify-content:space-between;padding:34px 40px;overflow:hidden}
  .login-brand{font-weight:700;font-size:20px;letter-spacing:-0.01em;color:#fff}
  .login-brand small{display:block;font-weight:500;font-size:12.5px;color:#7EB99B;margin-top:2px}
  .login-chart{margin:auto 0;width:100%;max-width:640px;align-self:center}
  .login-chart svg{width:100%;height:auto;display:block}
  .login-curve{fill:none;stroke:#7EB99B;stroke-width:1.5}
  .login-area{fill:rgba(126,185,155,.12)}
  .login-now-line{stroke:rgba(232,242,236,.45);stroke-width:1;stroke-dasharray:2 3}
  .login-now-dot{fill:#fff}
  .login-ticks{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:rgba(232,242,236,.55);margin-top:6px}
  .login-thesis{font-size:16px;font-weight:600;color:#fff;margin:20px 0 4px}
  .login-caption{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:rgba(232,242,236,.55)}
  .login-panel{display:flex;align-items:center;justify-content:center;background:var(--bg);padding:28px}
  .login-form{width:340px;max-width:100%;padding:34px 30px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-1)}
  .login-form h2{font-size:22px;font-weight:700;margin:0 0 4px}
  .login-sub{font-size:13px;color:var(--ink-dim);margin:0 0 14px}
  .login-form label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-dim);margin:12px 0 5px}
  .login-form input{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);font-size:15px;outline:0}
  .login-form input:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .login-err{color:var(--error);font-size:12.5px;min-height:16px;margin:8px 2px 0}
  .login-cta{width:100%;margin-top:12px;padding:13px;font-size:15px}
  .login-note{font-size:12px;color:var(--ink-dim);margin:14px 0 0;text-align:center}
  @media (prefers-reduced-motion: no-preference){
    .login-curve{stroke-dasharray:1600;stroke-dashoffset:1600;animation:loginDraw .8s cubic-bezier(0.22,1,0.36,1) .1s forwards}
    .login-area,.login-now-line,.login-now-dot{opacity:0;animation:loginFade .4s ease-out .75s forwards}
  }
  @keyframes loginDraw{to{stroke-dashoffset:0}}
  @keyframes loginFade{to{opacity:1}}
  @media (max-width:760px){
    #loginOverlay{grid-template-columns:1fr;grid-template-rows:172px 1fr}
    .login-field{padding:18px 22px 14px}
    .login-brand{font-size:16px}
    .login-thesis,.login-caption{display:none}
    .login-chart{margin:8px 0 0}
    .login-panel{align-items:flex-start;padding-top:26px}
  }

  /* ==================== Companies (Vainu import directory — docs/05-companies-and-import.md) ==================== */
  .co-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
  .co-search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);padding:8px 12px;flex:1;min-width:220px;max-width:380px}
  .co-search input{border:none;outline:none;background:transparent;font:inherit;color:var(--ink);width:100%}
  .co-count{font-size:12.5px;color:var(--ink-faint)}
  .co-status{font-size:13px;color:var(--ink-dim);margin:8px 0}
  .co-status.err{color:var(--error)}
  .co-progress{height:6px;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden;margin:10px 0}
  .co-progress-fill{height:100%;background:var(--green);border-radius:var(--r-pill);transition:width .2s ease-out;width:0}
  .co-table{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-1)}
  .co-row{display:grid;grid-template-columns:minmax(180px,2.2fr) 1fr 1fr .8fr 1fr .9fr;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink)}
  .co-row:last-child{border-bottom:none}
  .co-row.co-click{cursor:pointer}
  .co-row.co-click:hover{background:var(--surface-alt)}
  .co-head-row{background:var(--surface-alt);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;user-select:none}
  .co-head-row .co-sortable{cursor:pointer}
  .co-head-row .co-sortable:hover{color:var(--ink-dim)}
  .co-name{font-weight:600}
  .co-sub{display:block;font-size:11.5px;color:var(--ink-faint);font-weight:400;margin-top:1px}
  .co-num{font-family:var(--font-mono);font-size:12.5px}
  .co-pill{display:inline-block;padding:2px 9px;border-radius:var(--r-pill);font-size:11.5px;font-weight:600}
  .co-pill.ev{background:var(--green-soft);color:var(--green-ink)}
  .co-pill.dim{background:var(--surface-alt);color:var(--ink-faint);border:1px solid var(--line)}
  .co-empty{padding:38px 20px;text-align:center;color:var(--ink-dim);font-size:13.5px}
  .co-import{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-2);width:min(560px,94vw);max-height:88vh;overflow-y:auto;padding:24px 26px}
  .co-import h3{font-size:19px;margin:0 0 4px}
  .co-import .field{margin-top:14px}
  .co-import label{display:block;font-size:12px;color:var(--ink-dim);margin-bottom:5px}
  .co-import input[type=text],.co-import input[type=number],.co-import select,.co-import textarea{
    width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);
    padding:9px 12px;font-family:inherit;font-size:13.5px;color:var(--ink);outline:0}
  .co-import input:focus,.co-import select:focus,.co-import textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .co-import textarea{resize:vertical;min-height:64px}
  .co-import-row{display:flex;gap:12px}
  .co-import-row>*{flex:1;min-width:0}
  .co-import-check{display:flex;gap:9px;align-items:flex-start;margin-top:14px}
  .co-import-check input{margin-top:3px;flex:0 0 auto}
  .co-import-note{font-size:12px;color:var(--ink-dim);line-height:1.5;margin-top:4px}
  .co-import-warn{font-size:12px;line-height:1.5;margin-top:10px;padding:9px 11px;border-radius:var(--r-ctl);
    background:var(--warn-soft);border:1px solid var(--line-strong);color:var(--ink)}
  .co-import-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
  .co-import-alt{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
  .co-map{height:220px;border-radius:var(--r-ctl);overflow:hidden;border:1px solid var(--line);margin-top:8px;background:var(--surface-2,#f4f5f7)}
  .co-map-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:12.5px;color:var(--ink-faint);text-align:center;padding:0 18px}
  .co-detail{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-2);width:min(880px,94vw);max-height:88vh;overflow-y:auto;padding:26px 28px}
  .co-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
  .co-detail h3{font-size:20px;margin:0}
  .co-meta{font-size:12.5px;color:var(--ink-faint);margin:3px 0 0}
  .co-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
  .co-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin:14px 0 4px}
  .co-kpi{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:10px 12px}
  .co-kpi .k{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}
  .co-kpi .v{font-size:16px;font-weight:600;color:var(--ink);margin-top:3px;font-family:var(--font-mono)}
  .co-kpi .v small{font-size:11px;color:var(--ink-faint);font-weight:400;font-family:var(--font-sans)}
  .co-section{margin:18px 0 0}
  .co-section>.label{margin-bottom:8px}
  .co-bucket-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
  .co-bucket-bar-row{display:grid;grid-template-columns:minmax(110px,1fr) 2fr auto;align-items:center}
  .co-bar{display:block;height:8px;border-radius:var(--r-pill);background:var(--surface-alt);border:1px solid var(--line);overflow:hidden}
  .co-bar i{display:block;height:100%;background:var(--green);border-radius:inherit}
  .co-cap{max-width:600px}
  .co-takeaway{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:10px 14px;font-size:13px;line-height:1.5;color:var(--ink)}
  .co-spark{display:block}
  .co-spark polyline{fill:none;stroke:var(--ink-faint);stroke-width:1.5}
  .co-fin-table td.co-spark-cell{padding:2px 6px}
  .co-delta{font-size:9px;margin-left:4px}
  .co-delta.up{color:var(--green)}
  .co-delta.down{color:var(--error)}
  .co-fin-bs-toggle td{cursor:pointer;user-select:none}
  .co-fin-bs-toggle td:hover{color:var(--ink)}
  .dr-card-gap{margin-top:14px}
  .comp-mention-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
  .comp-mention-chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:12px;font-weight:600;padding:5px 12px;border-radius:var(--r-pill);cursor:pointer;transition:background-color .15s var(--ease),color .15s var(--ease)}
  .comp-mention-chip:hover{background:var(--green-soft);color:var(--green-ink)}
  .co-bucket-row:last-child{border-bottom:none}
  .co-contact-list{max-height:320px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-ctl)}
  .co-contact{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:wrap}
  .co-contact:last-child{border-bottom:none}
  .co-contact .c-id{flex:1;min-width:150px}
  .co-contact .c-name{font-weight:600}
  .co-contact .c-title{color:var(--ink-dim);font-size:12px}
  .co-contact .c-mail{color:var(--ink-faint);font-size:12px;word-break:break-all}
  .co-dm-flag{color:var(--green-ink);background:var(--green-soft);border-radius:var(--r-pill);padding:1px 8px;font-size:10.5px;font-weight:700;letter-spacing:.03em;white-space:nowrap}
  .co-tech-list{display:flex;flex-wrap:wrap;gap:6px}
  .co-fin-table{width:100%;border-collapse:collapse;font-size:12.5px}
  .co-fin-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);text-align:right;padding:5px 8px;border-bottom:1px solid var(--line-strong);white-space:nowrap}
  .co-fin-table th:first-child{text-align:left}
  .co-fin-table td{padding:5px 8px;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12px;text-align:right;white-space:nowrap}
  .co-fin-table td:first-child{font-family:var(--font-sans);text-align:left}
  .co-fin-sep td{font-family:var(--font-sans);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);text-align:left;padding-top:12px}
  .co-fin-scroll{overflow-x:auto}
  .co-tab-pane{margin-top:16px}
  .co-detail .dr-tabs{margin-top:6px}
  .co-snip{font-size:12.5px;color:var(--ink-dim);border-left:2px solid var(--line-strong);padding:2px 0 2px 10px;margin:8px 0}
  .co-raw{margin-top:18px}
  .co-raw pre{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px;font-size:11px;line-height:1.5;overflow-x:auto;max-height:340px;font-family:var(--font-mono)}
  .co-raw summary{cursor:pointer;font-size:12.5px;color:var(--ink-dim);font-weight:600}
  .co-link-chip{display:flex;align-items:center;gap:10px;background:var(--green-soft);border:1px solid var(--line);border-radius:var(--r-ctl);padding:9px 14px;margin-bottom:18px;font-size:13px}
  .co-link-chip .cta{margin-left:auto}
  .co-link-chip .ni{width:18px;height:18px;flex:none;color:var(--green-ink)}
  .co-mini{padding:4px 10px;font-size:11.5px}
  .co-gap{margin-top:8px}
  .co-subnav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}
  /* Deal-room overview summary band */
  @media (max-width:760px){
    .co-row{grid-template-columns:1.6fr 1fr .9fr}
    .co-hide-m{display:none}
  }

/* Indeterminate progress bar. Was injected twice from JS template strings —
   a duplicated <style> tag per render, which no token change could reach. */
@keyframes barProg{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* Deal Room · Solar tab. Reuses the company-profile map and KPI idioms; only
   the two-column layout, the size table and the plusskunde warning are new. */
.sol-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:18px}
@media (max-width:900px){.sol-grid{grid-template-columns:1fr}}
.sol-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px}
.sol-table th{text-align:right;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;padding:6px 10px;border-bottom:1px solid var(--line)}
.sol-table th:first-child,.sol-table td:first-child{text-align:left}
.sol-table td{text-align:right;padding:7px 10px;border-bottom:1px solid var(--line);font-family:var(--font-mono)}
.sol-table tr:last-child td{border-bottom:none}
.sol-table tr.sol-max td{font-weight:700;color:var(--ink)}
.sol-warn{margin-top:10px;padding:9px 12px;border:1px solid rgba(154,91,0,.35);background:var(--warn-soft);color:var(--warn);border-radius:var(--r-ctl);font-size:12.5px}

/* ── Deal Room · Meetings console ──────────────────────────────────────────
   Two states. The SHELF: one quiet stat line, compact history rows, and the
   two ways a meeting starts. The CONSOLE: prep on top (Know / Say / Ask),
   live transcript + notes below. Signature moves, both information-bearing:
   the partial transcript turn sits in --ink-dim and "dries" to --ink when the
   turn finalizes, and asked questions stamp the meeting clock. */

/* recording state (console bar) */
.rec-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink-faint);margin-right:7px;vertical-align:1px}
.rec-live{color:var(--error);border-color:var(--error)}
.rec-live .rec-dot{background:var(--error);animation:recPulse 1.2s ease-in-out infinite}
@keyframes recPulse{0%,100%{opacity:1}50%{opacity:0.25}}

/* shelf */
.mtg-shelf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.mtg-shelf-label{margin:0}
.mtg-statline{font-size:12.5px;color:var(--ink-dim);margin-top:4px}
.mtg-shelf-actions{display:flex;gap:8px;align-items:center}
.mtg-chev{width:14px;height:14px;margin-left:4px;vertical-align:-2px}
.mtg-shelf-status{font-size:12.5px;color:var(--ink-dim);font-family:var(--font-mono);margin:0 0 12px}
.mtg-lang{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-dim)}
.mtg-lang select{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);padding:5px 8px;font-size:12px;color:var(--ink);outline:0}
.mtg-lang select:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
.mtg-pending{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--warn);background:var(--warn-soft);border:1px solid rgba(154,91,0,0.18);border-radius:var(--r-ctl);padding:8px 12px;margin:0 0 12px}
.mtg-pending span{flex:1;min-width:200px}
.mtg-search{width:100%;max-width:320px;margin-bottom:12px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);font-size:13px;background:var(--surface)}
.mtg-search:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft);outline:none}
.mtg-rows{display:flex;flex-direction:column;gap:8px}
.mtg-none{color:var(--ink-dim);font-size:13px;padding:16px 0}
.mtg-row{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);cursor:pointer;text-align:left;transition:border-color .18s cubic-bezier(0.22,1,0.36,1),background-color .18s cubic-bezier(0.22,1,0.36,1)}
.mtg-row:hover{border-color:var(--line-strong);background:var(--surface-alt)}
.mtg-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.mtg-row-date{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--ink-dim);flex:none;width:80px}
.mtg-row-type{font-size:12.5px;font-weight:600;flex:none}
.mtg-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ink-faint)}
.mtg-dot[data-sent="hot"]{background:#0F6B34}
.mtg-dot[data-sent="warm"]{background:#175CD3}
.mtg-dot[data-sent="neutral"]{background:#50596B}
.mtg-dot[data-sent="cool"]{background:#9A5B00}
.mtg-dot[data-sent="cold"]{background:var(--error)}
.mtg-row-note{flex:1;min-width:0;font-size:12.5px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtg-row-actions{flex:none;font-size:11px;font-weight:600;color:var(--green-ink);background:var(--green-soft);border-radius:var(--r-pill);padding:2px 9px}
.mtg-row-actions.overdue{color:var(--warn);background:var(--warn-soft)}
.mtg-row-tx{flex:none;font-size:11px;font-weight:600;color:var(--ink-dim);background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 8px}
.mtg-row-kebab{flex:none;border:0;background:none;color:var(--ink-dim);font-size:16px;line-height:1;cursor:pointer;padding:3px 7px;border-radius:var(--r-ctl)}
.mtg-row-kebab:hover{background:var(--surface-alt);color:var(--ink)}

/* type menu */
.mtg-type-menu{position:fixed;z-index:var(--z-dropdown);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-2);padding:6px;width:300px;display:flex;flex-direction:column;overflow-y:auto}
.mtg-type-item{display:flex;flex-direction:column;gap:2px;text-align:left;border:0;background:none;padding:9px 11px;border-radius:var(--r-ctl);cursor:pointer;transition:background-color .15s cubic-bezier(0.22,1,0.36,1)}
.mtg-type-item:hover,.mtg-type-item:focus-visible{background:var(--green-soft);outline:none}
.mtg-type-name{font-size:13.5px;font-weight:600;color:var(--ink)}
.mtg-type-item:hover .mtg-type-name{color:var(--green-ink)}
.mtg-type-blurb{font-size:12px;color:var(--ink-dim)}

/* console */
.mtg-console{display:flex;flex-direction:column;gap:14px}
.mtg-bar{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1);padding:12px 16px;flex-wrap:wrap}
.mtg-bar-lead{display:flex;align-items:center;gap:10px;flex:1;min-width:180px}
.mtg-type-pill{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--green-ink);background:var(--green-soft);border-radius:var(--r-pill);padding:3px 10px;flex:none;white-space:nowrap}
.mtg-bar-co{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtg-clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;color:var(--ink-dim)}
.mtg-rec-status{font-size:12px;color:var(--ink-dim);font-family:var(--font-mono);min-width:76px}

/* prep — Know / Say / Ask */
.mtg-prep-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.mtg-prep-title{margin:0}
.mtg-ask-count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-dim);margin-left:auto}
.mtg-mini{padding:4px 10px;font-size:11.5px}
.mtg-prep-note{font-size:12.5px;color:var(--warn);background:var(--warn-soft);border-radius:var(--r-ctl);padding:8px 12px;margin-bottom:10px}
.mtg-opening{font-size:13.5px;color:var(--green-ink);background:var(--green-soft);border-radius:var(--r-ctl);padding:10px 14px;margin-bottom:14px}
.mtg-prep-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:22px}
.mtg-prep-k{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px}
.mtg-plist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:13px;line-height:1.5;color:var(--ink)}
.mtg-plist b{font-weight:600}
.mtg-prep-skel{display:flex;flex-direction:column;gap:10px;padding:4px 0}
.mtg-qs{display:flex;flex-direction:column;gap:6px}
.mtg-q{display:flex;align-items:flex-start;gap:9px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-ctl);padding:8px 11px;cursor:pointer;font-size:12.5px;line-height:1.45;color:var(--ink);transition:border-color .18s cubic-bezier(0.22,1,0.36,1),background-color .18s cubic-bezier(0.22,1,0.36,1)}
.mtg-q:hover{border-color:var(--line-strong)}
.mtg-q:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.mtg-q-mark{flex:none;width:14px;height:14px;border:1.5px solid var(--line-strong);border-radius:4px;margin-top:1px;position:relative;transition:background-color .18s cubic-bezier(0.22,1,0.36,1),border-color .18s cubic-bezier(0.22,1,0.36,1)}
.mtg-q.asked{background:var(--green-soft);border-color:rgba(15,107,52,0.25)}
.mtg-q.asked .mtg-q-text{color:var(--green-ink)}
.mtg-q.asked .mtg-q-mark{border-color:var(--green);background:var(--green)}
.mtg-q.asked .mtg-q-mark::after{content:'';position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.mtg-q-text{flex:1}
.mtg-q-at{flex:none;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--green-ink);padding-top:2px}

/* live area */
.mtg-live-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px}
.mtg-pane-card{display:flex;flex-direction:column;min-height:280px}
.mtg-turns{flex:1;overflow-y:auto;max-height:360px;display:flex;flex-direction:column;gap:7px;font-size:13px;line-height:1.5}
.mtg-turns-empty{color:var(--ink-dim);font-size:12.5px;padding:16px 0}
.mtg-turn{display:flex;gap:10px}
.mtg-turn-t{flex:none;width:46px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--ink-faint);padding-top:2px}
.mtg-turn-s{flex:none;width:18px;height:18px;border-radius:50%;background:var(--surface-alt);border:1px solid var(--line);font-size:10px;font-weight:600;color:var(--ink-dim);display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.mtg-turn-x{flex:1;color:var(--ink)}
.mtg-prep-more{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-dim)}
.mtg-turn.partial .mtg-turn-x{color:var(--ink-dim)}
.mtg-notes{flex:1;min-height:230px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:10px 12px;font-size:13px;line-height:1.55;font-family:inherit;color:var(--ink);resize:vertical;background:var(--surface)}
.mtg-notes:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft);outline:none}

@media (max-width:960px){
  .mtg-prep-grid{grid-template-columns:1fr}
  .mtg-live-grid{grid-template-columns:1fr}
}

/* ── Email composer (Resend) ───────────────────────────────────────────────
   One modal for every "send this" moment. From is server-fixed; the note line
   says where replies land so the rep is never surprised. */
.em-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(17,18,20,0.4);display:flex;align-items:center;justify-content:center;padding:30px}
.em-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-2);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:14px}
.em-title{font-size:18px;font-weight:600}
.em-fields{display:flex;flex-direction:column;gap:12px}
.em-fields .dd-field label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:5px;font-weight:600}
.em-fields .dd-field input,.em-fields .dd-field textarea{width:100%;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);font-size:13.5px;font-family:inherit;background:var(--surface);color:var(--ink)}
.em-fields .dd-field input:focus,.em-fields .dd-field textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft);outline:none}
.em-fields textarea{line-height:1.55;resize:vertical}
.em-opt{text-transform:none;letter-spacing:0;color:var(--ink-faint);font-weight:400}
.em-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.em-note{font-size:11.5px;color:var(--ink-dim);margin-right:auto}
.em-row-btn{padding:4px 10px;font-size:11px;margin-left:4px}

/* ── Dashboard: Today band + list rows ─────────────────────────────────────
   Meetings lead the Today row; .dash-item is the one row style shared by the
   meetings and triage cards (the older tiles keep their inline styles until
   their own refactor). Today's meetings get the single green accent. */
.dash-today{grid-template-columns:1fr 1fr 1fr}
@media (max-width:1000px){.dash-today{grid-template-columns:1fr}}
.dash-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.dash-item{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:10px 12px;border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);cursor:pointer;transition:border-color .18s cubic-bezier(0.22,1,0.36,1),background-color .18s cubic-bezier(0.22,1,0.36,1)}
.dash-item:hover{border-color:var(--line-strong)}
.dash-item:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.dash-item .di-when{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-dim);flex:none;min-width:44px}
.dash-item .di-co{font-weight:600;color:var(--ink);font-size:13px}
.dash-item .di-sub{color:var(--ink-dim);font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-item .di-go{font-size:11px;font-weight:600;color:var(--green-ink);background:var(--green-soft);border-radius:var(--r-pill);padding:2px 9px;flex:none}
.dash-item.is-today{background:var(--green-soft);border-color:rgba(15,107,52,0.25)}
.dash-item.is-today .di-when{color:var(--green-ink);font-weight:700}

/* Company profile · web research archive (Source tab) */
.co-snap{border:1px solid var(--line);border-radius:var(--r-ctl);margin-bottom:8px;background:var(--surface)}
.co-snap summary{cursor:pointer;padding:9px 12px;font-size:12.5px;color:var(--ink);list-style-position:inside}
.co-snap summary:hover{background:var(--surface-alt)}
.co-snap[open] summary{border-bottom:1px solid var(--line)}
.co-snap-date{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);margin-right:4px}
.co-snap-pre{padding:12px;font-size:11.5px;line-height:1.5;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow-y:auto;color:var(--ink-dim);margin:0}
.co-snap > .co-gap{padding:8px 12px 0}

/* Intelligence prompt editor · plain-language compose bar */
.ip-compose{background:var(--green-soft);border-radius:var(--r-ctl);padding:12px 14px}
.ip-compose-row{display:flex;gap:8px;align-items:stretch}
.ip-compose-row textarea{flex:1;resize:vertical;min-height:44px}

/* ── Dashboard rework 2026-08-21: merged Tasks card, tools grid ──
   2026-09-14: Needs attention + Tasks are overview rows — a name line and a
   tag line. Detail lives in the tag tooltips, not in the row. */
.dtag{display:inline-flex;align-items:center;max-width:100%;padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600;line-height:1.5;letter-spacing:0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--line);background:var(--surface);color:var(--ink-dim)}
.dtag.is-red{background:var(--error-soft);color:var(--error);border-color:rgba(180,35,24,0.2)}
.dtag.is-amber{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.22)}
.dtag-link{cursor:pointer}
.dtag-link:hover{color:var(--green-ink);border-color:rgba(15,107,52,0.3)}
.dtag-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.prio-row{display:flex;flex-direction:column;padding:10px 12px;border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);cursor:pointer;transition:border-color .18s cubic-bezier(0.22,1,0.36,1)}
.prio-row:hover{border-color:var(--line-strong)}
.prio-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.prio-top{display:flex;align-items:baseline;gap:10px}
.prio-co{font-weight:600;color:var(--ink);font-size:13px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prio-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-faint);flex:none}
.card-more{display:inline-block;margin-top:10px;font-size:12px;font-weight:600;color:var(--green-ink);text-decoration:none}
.card-more:hover{text-decoration:underline}
.dtask-row{display:flex;flex-direction:column;padding:10px 12px;border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);cursor:pointer;transition:border-color .18s cubic-bezier(0.22,1,0.36,1)}
.dtask-row:hover{border-color:var(--line-strong)}
.dtask-row:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.dtask-row .dt-title{font-weight:600;color:var(--ink);font-size:12.5px;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.tool-tile{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);text-decoration:none;transition:border-color .18s cubic-bezier(0.22,1,0.36,1),background-color .18s cubic-bezier(0.22,1,0.36,1)}
.tool-tile:hover{border-color:var(--line-strong);background:var(--green-soft)}
.tool-tile .ni{width:18px;height:18px;color:var(--green-ink);margin-bottom:4px}
.tool-tile .tt-name{font-weight:600;color:var(--ink);font-size:12.5px}
.tool-tile .tt-sub{color:var(--ink-dim);font-size:11.5px}

/* ── Tasks page: Notion-style board + task center page ── */
.tasks-toolbar{display:flex;align-items:center;gap:12px;margin:4px 0 16px}
.tasks-filters{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.tkb-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
@media (max-width:980px){.tkb-board{grid-template-columns:1fr}}
.tkb-col{background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-card);padding:12px;min-height:180px;transition:border-color .18s cubic-bezier(0.22,1,0.36,1),background-color .18s cubic-bezier(0.22,1,0.36,1)}
.tkb-col.drag-over{border-color:var(--green);background:var(--green-soft)}
.tkb-col-head{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:10px}
.tkb-dot{width:8px;height:8px;border-radius:50%;flex:none}
.tkb-dot-not_started{background:var(--ink-faint)}
.tkb-dot-ongoing{background:var(--info)}
.tkb-dot-done{background:var(--green)}
.tkb-count{font-family:var(--font-mono);font-weight:500;color:var(--ink-faint)}
.tkb-col-body{display:flex;flex-direction:column;gap:8px}
.tkb-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);padding:11px 13px;cursor:pointer;box-shadow:0 1px 2px rgba(17,18,20,0.04);transition:border-color .18s cubic-bezier(0.22,1,0.36,1),box-shadow .18s cubic-bezier(0.22,1,0.36,1),transform .18s cubic-bezier(0.22,1,0.36,1)}
.tkb-card:hover{border-color:var(--line-strong);box-shadow:0 3px 10px rgba(17,18,20,0.07);transform:translateY(-1px)}
.tkb-card:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.tkb-card.dragging{opacity:.45}
.tkb-card.is-done .tkb-title{text-decoration:line-through;opacity:.55}
.tkb-title{font-weight:600;color:var(--ink);font-size:13px;line-height:1.35}
.tkb-desc{color:var(--ink-dim);font-size:12px;line-height:1.4;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tkb-meta{display:flex;align-items:center;gap:8px;margin-top:8px;min-width:0}
.tkb-deal{color:var(--green-ink);font-size:11.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkb-gap{flex:1}
.tkb-wait{font-size:10px;font-weight:700;letter-spacing:0.04em;color:var(--warn);background:var(--warn-soft);border-radius:var(--r-pill);padding:2px 8px;flex:none}
.tkb-due{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--ink-faint);flex:none}
.tkb-due.overdue{color:var(--error);font-weight:700}
.tkb-ava{width:20px;height:20px;border-radius:50%;background:var(--green-soft);color:var(--green-ink);font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.tkb-empty{text-align:center;padding:22px 10px;color:var(--ink-faint);border:1px dashed var(--line);border-radius:var(--r-ctl);font-size:12px}
.tkb-morenote{text-align:center;font-size:11px;color:var(--ink-faint);padding:4px 0}

/* Task center page — the one place a task is worked */
.tkd-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(17,18,20,0.45);display:flex;align-items:center;justify-content:center;padding:28px}
.tkd-page{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-2);width:100%;max-width:860px;max-height:88vh;overflow-y:auto;padding:26px 32px 22px;display:flex;flex-direction:column;gap:14px}
.tkd-top{display:flex;align-items:center;gap:10px}
.tkd-status{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.tkd-pill{border:1px solid var(--line);background:var(--surface-alt);color:var(--ink-dim);border-radius:var(--r-pill);padding:5px 13px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s,background-color .15s,color .15s}
.tkd-pill:hover{border-color:var(--line-strong)}
.tkd-pill.selected.ts-notstarted{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}
.tkd-pill.selected.ts-ongoing{background:var(--info-soft);color:var(--info);border-color:rgba(23,92,211,0.35)}
.tkd-pill.selected.ts-waiting{background:var(--warn-soft);color:var(--warn);border-color:rgba(154,91,0,0.35)}
.tkd-pill.selected.ts-done{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.3)}
.tkd-saved{font-size:11.5px;color:var(--green-ink);opacity:0;transition:opacity .25s;flex:none}
.tkd-saved.on{opacity:1}
.tkd-x{border:none;background:none;color:var(--ink-faint);font-size:26px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:var(--r-ctl);flex:none}
.tkd-x:hover{color:var(--ink);background:var(--surface-alt)}
.tkd-title{border:none;background:none;font-family:inherit;font-size:26px;font-weight:650;color:var(--ink);width:100%;padding:2px 0;letter-spacing:-0.01em}
.tkd-title:focus{outline:none}
.tkd-title::placeholder{color:var(--ink-faint)}
.tkd-props{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media (max-width:700px){.tkd-props{grid-template-columns:1fr}}
.tkd-prop label{display:block;font-size:10.5px;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:5px;font-weight:700}
.tkd-prop select,.tkd-prop input{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);padding:8px 11px;font-family:inherit;font-size:13px;box-sizing:border-box}
.tkd-prop select:focus,.tkd-prop input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
.tkd-deal-row{display:flex;gap:8px;align-items:center}
.tkd-deal-row select{flex:1;min-width:0}
.tkd-godeal{flex:none;padding:7px 12px;font-size:12px;white-space:nowrap}
.tkd-ro{font-size:13px;color:var(--ink-dim);display:inline-block;padding:8px 0}
.tkd-notes-label{font-size:10.5px;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-dim);font-weight:700}
.tkd-notes{min-height:240px;resize:vertical;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);padding:14px 16px;font-family:inherit;font-size:13.5px;line-height:1.6}
.tkd-notes:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
.tkd-foot{display:flex;align-items:center;gap:10px}
.tkd-foot-gap{flex:1}
.tkd-del{color:var(--error)}

/* ── Communications page + emails on deal/company ── */
.cm-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:14px;align-items:start}
@media (max-width:980px){.cm-grid{grid-template-columns:1fr}}
.cm-compose .dd-field{margin-bottom:10px}
.cm-contacts{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.cm-contacts:empty{margin:0}
.cm-chip{display:inline-flex;align-items:center;gap:6px;background:var(--green-soft);color:var(--green-ink);border:1px solid rgba(15,107,52,0.22);border-radius:var(--r-pill);padding:4px 11px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.cm-chip .cm-role{padding:1px 7px;font-size:10px;font-weight:600;background:var(--surface);margin-right:-4px;white-space:nowrap}
.cm-chip:hover{background:var(--surface-alt)}
.cm-actions{display:flex;gap:10px;margin-top:4px;justify-content:flex-end}
.cm-note{font-size:12px;color:var(--ink-faint);margin-top:10px}
.cm-mail{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:var(--r-ctl);background:var(--surface-alt);border:1px solid var(--line);cursor:pointer}
.cm-mail:hover{border-color:var(--line-strong)}
.cm-mail .cmm-top{display:flex;gap:10px;align-items:baseline}
.cm-mail .cmm-co{font-weight:600;color:var(--ink);font-size:12.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-mail .cmm-when{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint);flex:none}
.cm-mail .cmm-sub{color:var(--ink-dim);font-size:12px;line-height:1.4}

/* Communications compose + New-task modal share the stacked field look of the
   deal modal — .dd-field is styled per-context, so these contexts opt in here. */
.cm-compose .dd-field label, .em-panel .dd-field label{display:block;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:5px;font-weight:600}
.cm-compose .dd-field input, .cm-compose .dd-field select, .cm-compose .dd-field textarea,
.em-panel .dd-field input, .em-panel .dd-field select, .em-panel .dd-field textarea{
  width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);
  color:var(--ink);padding:9px 12px;font-family:inherit;font-size:13px;box-sizing:border-box
}
.cm-compose .dd-field textarea, .em-panel .dd-field textarea{resize:vertical;min-height:120px;line-height:1.5}
.cm-compose .dd-field input:focus, .cm-compose .dd-field select:focus, .cm-compose .dd-field textarea:focus,
.em-panel .dd-field input:focus, .em-panel .dd-field select:focus, .em-panel .dd-field textarea:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)
}
.cm-compose .dd-field .em-opt, .em-panel .dd-field .em-opt{text-transform:none;letter-spacing:0;color:var(--ink-faint);font-weight:500}

/* ── Dashboard quick actions + task page: company combo, type, inline calendar ── */
.dash-quickbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.qa-btn{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 16px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .18s cubic-bezier(0.22,1,0.36,1),background-color .18s cubic-bezier(0.22,1,0.36,1)}
.qa-btn:hover{border-color:var(--line-strong);background:var(--surface-alt)}
.qa-btn .ni{width:15px;height:15px;color:var(--green-ink)}
.qa-btn.qa-primary{background:var(--green);border-color:var(--green);color:#fff}
.qa-btn.qa-primary .ni{color:#fff}
.qa-btn.qa-primary:hover{background:var(--green-hover);border-color:var(--green-hover)}

.tkd-combo{position:relative}
.tkd-combo input{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--ink);padding:8px 11px;font-family:inherit;font-size:13px;box-sizing:border-box}
.tkd-combo input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
.tkd-combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--z-dropdown);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);box-shadow:var(--shadow-2);overflow:hidden;max-height:280px;overflow-y:auto}
.tkd-combo-item{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:9px 12px;cursor:pointer;font-family:inherit}
.tkd-combo-item:last-child{border-bottom:none}
.tkd-combo-item:hover{background:var(--green-soft)}
.tkd-combo-item .tci-name{font-size:13px;font-weight:600;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkd-combo-item .tci-hint{font-size:11px;color:var(--ink-faint);flex:none}
.tkd-combo-none{padding:10px 12px;font-size:12.5px;color:var(--ink-faint)}

.tkd-duewrap{display:flex;gap:22px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tkd-due-side{display:flex;flex-direction:column;gap:8px;min-width:150px}
.tkd-due-side label{font-size:10.5px;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-dim);font-weight:700}
.tkd-quick{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.tkd-qd{background:none;border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink-dim);cursor:pointer}
.tkd-qd:hover{border-color:var(--green);color:var(--green-ink);background:var(--green-soft)}
.tkd-due-now{font-size:12.5px;color:var(--green-ink);font-weight:600}
.tkd-cal{width:252px;flex:none;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-ctl);padding:10px 12px}
.tkc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.tkc-month{font-size:12.5px;font-weight:700;color:var(--ink)}
.tkc-nav{background:none;border:none;color:var(--ink-dim);font-size:17px;cursor:pointer;padding:2px 8px;border-radius:var(--r-ctl);line-height:1}
.tkc-nav:hover{background:var(--surface);color:var(--ink)}
.tkc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.tkc-w{font-size:9.5px;font-weight:700;color:var(--ink-faint);text-align:center;padding:3px 0;letter-spacing:0.04em}
.tkc-day{background:none;border:none;border-radius:6px;font-family:var(--font-mono);font-size:11.5px;color:var(--ink);padding:5px 0;text-align:center;cursor:pointer}
.tkc-day:hover{background:var(--surface)}
.tkc-day.is-blank{cursor:default}
.tkc-day.is-today{box-shadow:inset 0 0 0 1px var(--green);color:var(--green-ink);font-weight:700}
.tkc-day.is-sel{background:var(--green);color:#fff;font-weight:700}
.tkc-day.is-sel:hover{background:var(--green-hover)}

/* Inbound email rows — direction badge + expandable received body */
.cmm-dir{font-size:9.5px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;border-radius:var(--r-pill);padding:2px 8px;flex:none}
.cmm-dir.is-out{background:var(--surface);color:var(--ink-faint);border:1px solid var(--line)}
.cmm-dir.is-in{background:var(--green-soft);color:var(--green-ink);border:1px solid rgba(15,107,52,0.22)}
.cm-mail-th summary{cursor:pointer;list-style:none}
.cm-mail-th summary::-webkit-details-marker{display:none}
.cm-mail-th summary .cmm-top{display:flex;gap:10px;align-items:baseline}
.cm-mail-th .cmm-body{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-dim);line-height:1.55;white-space:pre-wrap;word-break:break-word}

/* ── Email conversations (threads + the thread view) ── */
.nav-item .nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 6px;border-radius:var(--r-pill);background:var(--green);color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono)}
.em-thread .cmm-sub .emt-subj{font-weight:600;color:var(--ink)}
.em-thread .cmm-snip{font-size:12px;color:var(--ink-faint);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-thread.is-unread{border-color:rgba(15,107,52,0.35);background:var(--green-soft)}
.em-thread.is-unread .cmm-co::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:7px;vertical-align:middle}
.emt-count{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-dim);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 7px;flex:none}
.em-thread-panel{max-width:720px;gap:0;padding:0}
.emt-head{display:flex;align-items:flex-start;gap:12px;padding:20px 24px 14px;border-bottom:1px solid var(--line)}
.emt-head-main{flex:1;min-width:0}
.emt-head .em-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emt-meta{font-size:12px;color:var(--ink-dim);margin-top:3px}
.emt-close{padding:4px 10px;flex:none}
.emt-list{display:flex;flex-direction:column;gap:12px;padding:16px 24px;overflow-y:auto;max-height:58vh;background:var(--surface-alt)}
.emt-msg{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 14px;max-width:92%}
.emt-msg.is-out{align-self:flex-end;border-color:rgba(15,107,52,0.22)}
.emt-msg.is-in{align-self:flex-start}
.emt-msg.is-unread{border-color:rgba(15,107,52,0.45)}
.emt-msg-top{display:flex;gap:10px;align-items:baseline}
.emt-from{font-weight:600;font-size:12.5px;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emt-addr{font-size:11px;color:var(--ink-faint);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emt-body{margin-top:9px;font-size:13px;color:var(--ink-dim);line-height:1.55;white-space:pre-wrap;word-break:break-word}
.em-thread-panel .em-actions{padding:14px 24px 20px;border-top:1px solid var(--line)}

/* ── Communications: Inbox / New email tabs + the two-pane inbox ── */
.cm-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:18px}
.cm-tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;padding:9px 2px 10px;margin-bottom:-1px;font-family:inherit;font-size:14px;font-weight:500;color:var(--ink-dim);cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.cm-tab:hover{color:var(--ink)}
.cm-tab.active{color:var(--ink);border-bottom-color:var(--green);font-weight:600}
.cm-tab:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:var(--r-ctl)}
.cm-tab-count{min-width:18px;height:18px;padding:0 6px;border-radius:var(--r-pill);background:var(--green);color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono)}
.nav-badge[hidden],.cm-tab-count[hidden]{display:none}   /* the display rule above would otherwise beat the hidden attribute */
.cm-pane{display:none}
.cm-pane.active{display:block}
.cm-compose{max-width:760px}
.cm-inbox{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:14px;align-items:stretch;min-height:62vh}
@media (max-width:980px){.cm-inbox{grid-template-columns:1fr}}
.cm-list-col{display:flex;flex-direction:column;padding:12px;min-height:0}
.cm-list-tools{display:flex;flex-direction:column;gap:8px;padding:0 0 10px;border-bottom:1px solid var(--line);margin-bottom:8px}
.cm-list-tools input{width:100%;padding:8px 11px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);font-size:13px;font-family:inherit;background:var(--surface);color:var(--ink)}
.cm-list-tools input:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft);outline:none}
.cm-filters{display:flex;gap:6px}
.cm-filter{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink-dim);border-radius:var(--r-pill);padding:3px 10px;font-size:11.5px;font-weight:600;font-family:inherit;cursor:pointer}
.cm-filter.active{background:var(--green-soft);color:var(--green-ink);border-color:rgba(15,107,52,0.22)}
.cm-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:66vh;min-height:0}
.cm-item{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:var(--r-ctl);cursor:pointer;border:1px solid transparent}
.cm-item:hover{background:var(--surface-alt)}
.cm-item.is-selected{background:var(--green-soft);border-color:rgba(15,107,52,0.22)}
.cm-item .cmi-top{display:flex;gap:8px;align-items:baseline}
.cm-item .cmi-who{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ink);font-weight:500}
.cm-item.is-unread .cmi-who{font-weight:700}
.cm-item.is-unread .cmi-who::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:7px;vertical-align:middle}
.cm-item .cmi-when{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint);flex:none}
.cm-item .cmi-subj{font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-item.is-unread .cmi-subj{font-weight:600}
.cm-item .cmi-snip{font-size:12px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-item .cmi-co{font-size:11px;color:var(--ink-dim)}
.cm-item .cmi-count{font-family:var(--font-mono);font-size:10px;color:var(--ink-dim);border:1px solid var(--line);border-radius:var(--r-pill);padding:0 6px;flex:none}
.cm-reader{display:flex;flex-direction:column;padding:0;min-height:0}
.cm-reader-empty{margin:auto;text-align:center;color:var(--ink-faint);font-size:13px;padding:40px 20px}
.cmr-head{display:flex;align-items:flex-start;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--line)}
.cmr-head-main{flex:1;min-width:0}
.cmr-subject{font-size:17px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmr-meta{font-size:12px;color:var(--ink-dim);margin-top:3px}
.cmr-actions{display:flex;gap:8px;flex:none}
.cmr-msgs{display:flex;flex-direction:column;gap:12px;padding:16px 22px;overflow-y:auto;flex:1;min-height:0;max-height:48vh;background:var(--surface-alt)}
.cmr-reply{padding:14px 22px 18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.cmr-reply-to{font-size:11.5px;color:var(--ink-dim)}
.cmr-reply textarea{width:100%;min-height:96px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);font-size:13.5px;font-family:inherit;line-height:1.55;resize:vertical;background:var(--surface);color:var(--ink)}
.cmr-reply textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft);outline:none}
.cmr-reply .cm-actions{margin-top:0}
.emt-quote{margin-top:8px}
.emt-quote summary{cursor:pointer;font-size:11.5px;color:var(--ink-faint);list-style:none}
.emt-quote summary::-webkit-details-marker{display:none}
.emt-quote summary::before{content:"\2022\2022\2022";letter-spacing:2px;margin-right:6px}
.emt-quote > div{margin-top:6px;padding-left:10px;border-left:2px solid var(--line-strong);color:var(--ink-faint);white-space:pre-wrap}

  /* ── Frame agreement (rebuilt 2026-09-07): input-gated form, computed result ── */
  .fr-sites-label{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;font-weight:600}
  .fr-model-field input{max-width:140px}
  .fr-gate{font-size:13px;color:var(--warn);margin:10px 0 0;line-height:1.5}
  .fr-gate.ok{color:var(--green-ink)}
  .frame-sites-table tr.fr-row-incomplete input:not(:placeholder-shown),
  .frame-sites-table tr.fr-row-incomplete input:placeholder-shown{border-color:var(--warn)}
  .fr-summary{margin-bottom:22px}
  .frame-result-stats{grid-template-columns:repeat(3,1fr)}
  .frame-stat .fs-val.fr-val-text{font-size:20px}
  .fr-basis{font-size:12.5px;color:var(--ink-dim);margin:-8px 0 18px}
  .fr-table-card{overflow-x:auto;padding:0}
  .fr-cell-name{font-weight:600;color:var(--ink)}
  .fr-cell-sub{font-size:12px;color:var(--ink-dim);font-weight:400;margin-top:2px;max-width:320px}
  .fr-cell-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
  .fr-cell-rev{color:var(--green)}
  .fr-section{padding:22px 24px;display:grid;gap:12px}
  .fr-section-title{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-dim);font-weight:600}
  .fr-section-accent{color:var(--green-ink)}
  .fr-kv{display:grid;grid-template-columns:150px 1fr;gap:12px;font-size:14px;line-height:1.55}
  .fr-kv-label{color:var(--ink-dim);font-weight:500}
  .fr-kv-text{color:var(--ink)}
  .fr-steps{margin:0;padding-left:20px;font-size:14px;line-height:1.6;color:var(--ink)}
  .fr-verify{background:var(--warn-soft);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;margin-bottom:18px}
  .fr-verify-title{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--warn);font-weight:600}
  .fr-verify-sub{font-size:13px;color:var(--ink-dim);margin:4px 0 8px}
  .fr-verify-item{font-size:13px;color:var(--ink);margin:4px 0}
  .fr-assumptions{font-size:12.5px;color:var(--ink-dim);line-height:1.5;margin:6px 0 18px}
  @media (max-width:760px){ .frame-result-stats{grid-template-columns:1fr 1fr} .fr-kv{grid-template-columns:1fr} }
  .fr-model-field[hidden]{display:none}

  /* ── Document editor (Library → Document, 2026-09-08) ── */
  .de-list-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;flex-wrap:wrap}
  .de-list-hint{font-size:13.5px;color:var(--ink-dim);max-width:60ch}
  .de-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
  .de-back{white-space:nowrap}
  .de-title{flex:1 1 260px;min-width:200px;font-size:18px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:8px 12px}
  .de-title:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .de-select{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:8px 10px;font-size:13px;color:var(--ink);max-width:220px}
  .de-deal{max-width:260px}
  .de-meta{font-family:var(--font-mono);font-size:12px;color:var(--warn);white-space:nowrap}
  .de-meta.ok{color:var(--green-ink)}
  .de-toolbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--r-card);padding:8px 10px;margin-bottom:16px}
  .de-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .de-right{margin-left:auto}
  .de-format select,.de-format button{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:6px 10px;font-size:13px;color:var(--ink);cursor:pointer;font-family:var(--font-sans)}
  .de-format button:hover{background:var(--green-soft);border-color:var(--green)}
  .de-format button:focus-visible,.de-format select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
  .de-canvas{padding:8px 0 40px}
  .de-page{min-height:70vh;outline:0;cursor:text}
  .de-page:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
  .de-page:empty:before{content:attr(data-placeholder);color:var(--ink-faint);pointer-events:none}
  .de-page table{border-collapse:collapse;width:100%;margin:12px 0 18px;font-size:14px}
  .de-page th,.de-page td{border:1px solid var(--line-strong);padding:8px 10px;vertical-align:top;text-align:left}
  .de-page th{background:var(--surface-alt);font-weight:600}
  .de-page a{color:var(--green);text-decoration:underline}
  .de-modal{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(17,18,20,.4);display:flex;align-items:center;justify-content:center;padding:24px}
  .de-modal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-2);padding:24px 26px;width:min(720px,100%);max-height:90vh;overflow:auto}
  .de-modal-title{font-size:18px;font-weight:600;color:var(--ink);margin-bottom:4px}
  .de-modal-sub{font-size:13px;color:var(--ink-dim);margin-bottom:16px;max-width:60ch}
  .de-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
  body.de-printing .sidebar,body.de-printing .fcr-ticker,body.de-printing .de-bar,body.de-printing .de-toolbar,body.de-printing .claude-fab,body.de-printing .claude-panel,body.de-printing .toast{display:none!important}
  @media print{
    body.de-printing .main{padding:0;max-width:100%}
    body.de-printing .de-page{border:0;box-shadow:none;padding:0;min-height:0;max-width:100%}
    body.de-printing .de-page h2,body.de-printing .de-page h3{page-break-after:avoid}
    body.de-printing .de-page table,body.de-printing .de-page blockquote{page-break-inside:avoid}
  }
  @media (max-width:760px){ .de-toolbar{position:static} .de-title{flex-basis:100%} }
