  :root {
    --ink:#1B1D31; --body:#3F4256; --sec:#6B7280; --muted:#8A8FA3; --faint:#A6AAB8;
    --line:#E6E8EC; --line2:#EDEEF2; --line3:#F1F2F5; --hair:#F4F5F7; --chipbg:#FBFBFC; --edge:#DFE2E8;
    --orange:#F05323; --orange-dk:#C93F16; --orange-pale:#FFFBF9; --orange-tint:#FDECE6; --orange-lt:#F8C5B0;
    --green:#1F7A48; --red:#C93F16; --teal:#0ABFB3; --teal-pale:#E0F8F7;
    --shadow-card:0 2px 12px rgba(27,29,49,.05);
    --shadow-pop:0 12px 40px rgba(27,29,49,.16), 0 4px 12px rgba(27,29,49,.07);
    --shadow-modal:0 24px 60px rgba(27,29,49,.13);
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html, body { height:100%; }
  body { background:#fff; color:var(--ink); font-family:Geist,system-ui,-apple-system,'Segoe UI',sans-serif; height:100vh; overflow:hidden; font-size:14px; }
  .mono { font-family:'Geist Mono',ui-monospace,Consolas,monospace; }
  button { font-family:inherit; }
  button:focus-visible, input:focus-visible, textarea:focus-visible { outline:2px solid var(--orange); outline-offset:1px; }
  ::-webkit-scrollbar { width:10px; height:10px; }
  ::-webkit-scrollbar-thumb { background:#D6D9E0; border-radius:99px; border:3px solid transparent; background-clip:content-box; }

  /* ── Login ──────────────────────────────────────────────────────────── */
  #loginScreen { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100vh; gap:26px; background:var(--ink); }
  .login-mark { display:flex; align-items:center; gap:11px; }
  .login-mark .logo-bars span { height:3px; }
  .login-word { font-size:24px; font-weight:600; letter-spacing:-.02em; color:#fff; }
  .login-word .pro { font-family:'Geist Mono',monospace; font-size:10px; font-weight:500; letter-spacing:.1em; color:#fff; background:var(--orange); border-radius:6px; padding:2px 7px; vertical-align:4px; margin-left:8px; }
  .login-sub { font-size:13px; color:rgba(255,255,255,.55); margin-top:-16px; }
  .login-box { background:#fff; border-radius:16px; padding:28px 30px; width:360px; display:flex; flex-direction:column; gap:13px; box-shadow:var(--shadow-modal); }
  .login-box label { font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; }
  .login-box select, .login-box input { background:var(--chipbg); border:1px solid var(--line); border-radius:10px; color:var(--ink); font-size:14.5px; padding:11px 13px; outline:none; width:100%; font-family:inherit; }
  .login-box select:focus, .login-box input:focus { border-color:var(--orange); }
  .login-btn { background:var(--orange); color:#fff; border:none; border-radius:10px; font-size:14.5px; font-weight:600; padding:12px; cursor:pointer; transition:background .15s; }
  .login-btn:hover { background:var(--orange-dk); }
  .login-error { color:var(--red); font-size:12.5px; text-align:center; display:none; }
  .login-foot { font-size:11.5px; color:rgba(255,255,255,.4); }
  .login-foot a { color:rgba(255,255,255,.6); }

  /* ── Shell ──────────────────────────────────────────────────────────── */
  #app { display:none; height:100vh; overflow:hidden; }
  .side { width:232px; flex:none; background:var(--ink); display:flex; flex-direction:column; min-height:0; }
  .side-logo { display:flex; align-items:center; gap:9px; padding:18px 16px 14px; }
  .logo-bars { display:flex; flex-direction:column; gap:3px; }
  .logo-bars span { height:2.5px; border-radius:2px; background:#fff; }
  .logo-bars span:first-child { width:20px; background:var(--orange); }
  .logo-bars span:nth-child(2) { width:14px; }
  .logo-bars span:nth-child(3) { width:20px; }
  .logo-word { font-size:17px; font-weight:600; letter-spacing:-.02em; color:#fff; }
  .ws-card { margin:0 12px 14px; display:flex; align-items:center; gap:9px; padding:8px 10px; border-radius:9px; background:rgba(255,255,255,.07); cursor:pointer; border:none; width:calc(100% - 24px); text-align:left; }
  .ws-card:hover { background:rgba(255,255,255,.12); }
  .ws-tile { width:24px; height:24px; flex:none; border-radius:7px; background:var(--orange); color:#fff; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; }
  .ws-info { display:flex; flex-direction:column; flex:1; min-width:0; }
  .ws-org { font-size:10px; letter-spacing:.07em; text-transform:uppercase; color:rgba(255,255,255,.5); font-weight:500; }
  .ws-name { font-size:12.5px; font-weight:500; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .side-nav { flex:1; min-height:0; overflow-y:auto; padding:0 10px 12px; display:flex; flex-direction:column; gap:14px; }
  .nav-group { display:flex; flex-direction:column; gap:2px; }
  .nav-glabel { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.42); font-weight:600; padding:4px 8px; }
  .nav-item { display:flex; align-items:center; gap:11px; padding:8px; border-radius:8px; color:rgba(255,255,255,.72); font-size:13px; cursor:pointer; border:none; background:transparent; width:100%; text-align:left; }
  .nav-item:hover { background:rgba(255,255,255,.09); color:#fff; }
  .nav-item.on { background:rgba(255,255,255,.11); color:#fff; font-weight:500; }
  .nav-item svg { flex:none; }
  .nav-pro { font-family:'Geist Mono',monospace; font-size:8.5px; font-weight:500; letter-spacing:.08em; color:#fff; background:var(--orange); border-radius:5px; padding:1px 5px; margin-left:auto; }
  .side-user { padding:10px 14px; border-top:1px solid rgba(255,255,255,.09); display:flex; align-items:center; gap:10px; cursor:pointer; }
  .side-user:hover { background:rgba(255,255,255,.06); }
  .side-avatar { width:28px; height:28px; flex:none; border-radius:99px; background:var(--teal); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; }
  .side-uinfo { display:flex; flex-direction:column; line-height:1.25; min-width:0; }
  .side-uname { font-size:13px; font-weight:500; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .side-urole { font-size:10.5px; color:rgba(255,255,255,.5); }

  .main { flex:1; min-width:0; display:flex; flex-direction:column; background:#fff; transition:margin-right .22s ease; }
  @media (min-width:1100px) { #app.sql-open .main { margin-right:480px; } }
  .topbar { height:56px; flex:none; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 22px; border-bottom:1px solid var(--line2); }
  .crumb { display:flex; align-items:center; gap:8px; min-width:0; }
  .crumb-app { font-size:13.5px; color:var(--sec); display:flex; align-items:center; gap:6px; }
  .pro-badge { font-family:'Geist Mono',monospace; font-size:9px; font-weight:500; letter-spacing:.08em; color:#fff; background:var(--orange); border-radius:5px; padding:1.5px 6px; }
  .crumb-sep { font-size:13.5px; color:#C7CBD4; }
  .crumb-title { font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:300px; }
  .top-right { display:flex; align-items:center; gap:6px; flex:none; }
  .top-btn { display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 11px; border-radius:9px; font-size:12.5px; font-weight:500; color:var(--sec); background:transparent; border:none; cursor:pointer; }
  .top-btn:hover { background:var(--hair); color:var(--ink); }
  .top-btn .cnt { font-family:'Geist Mono',monospace; font-size:10.5px; background:var(--hair); border-radius:6px; padding:1px 6px; color:var(--sec); }
  .top-btn.sql-on { background:var(--ink); color:#fff; }
  .top-btn.sql-on:hover { background:var(--ink); color:#fff; }
  .top-pill { display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 12px; border:1px solid var(--line); border-radius:99px; font-size:12.5px; font-weight:500; color:var(--body); background:#fff; cursor:pointer; }
  .top-pill:hover { border-color:#C7CBD4; }
  .crumb { flex:1 1 auto; min-width:0; overflow:hidden; }
  .crumb-app { white-space:nowrap; flex:none; }
  .top-right { flex:none; }
  #app.vw-home .top-right, #app.vw-signal .top-right, #app.vw-insights .top-right,
  #app.vw-home .crumb-app, #app.vw-signal .crumb-app, #app.vw-insights .crumb-app,
  #app.vw-home .crumb-sep, #app.vw-signal .crumb-sep, #app.vw-insights .crumb-sep { display:none; }
  #app.vw-home .crumb-title, #app.vw-signal .crumb-title, #app.vw-insights .crumb-title { font-size:15px; }
  /* The chat-history rail belongs to RetailGPT — its toggle has nothing to say
     on Home or Signal, so it goes with the rest of the chat chrome. */
  #app.vw-home .rail-toggle, #app.vw-signal .rail-toggle, #app.vw-insights .rail-toggle { display:none; }
  @media (max-width:1250px) { .top-btn .btn-lbl, .top-pill .btn-lbl { display:none; } .top-btn, .top-pill { padding:0 9px; } }

  /* ── History rail (redesign pattern: hover to peek, click to pin) ───── */
  .rail-toggle { width:28px; height:28px; flex:none; margin-right:2px; border:none; border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--sec); background:transparent; cursor:pointer; }
  .rail-toggle:hover { background:var(--hair); color:var(--ink); }
  .rail-toggle.pinned { background:var(--ink); color:#fff; }
  /* Anchored to the sidebar's right edge; expands out from it (width animation),
     never slides across from the screen edge. Children keep a fixed width so
     content doesn't reflow while the panel grows. */
  #histPanel {
    position:fixed; top:56px; left:232px; bottom:0; width:0; z-index:60;
    background:#fff; overflow:hidden; transition:width .18s ease;
    display:flex; flex-direction:column;
  }
  @media (max-width:900px) { #histPanel { left:0; } }
  #histPanel.open { width:290px; border-right:1px solid var(--line2); box-shadow:12px 0 32px rgba(27,29,49,.08); }
  #histPanel > * { width:290px; flex-shrink:0; }
  #histPanel .hist-list { flex:1 1 auto; min-height:0; }
  .hist-head { padding:14px 14px 10px; display:flex; flex-direction:column; gap:10px; flex:none; }
  .hist-new { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:9px; border:none; border-radius:10px; background:var(--ink); color:#fff; font-size:13px; font-weight:600; cursor:pointer; }
  .hist-new:hover { background:var(--orange); }
  .hist-search { width:100%; background:var(--chipbg); border:1px solid var(--line); border-radius:10px; font-size:13px; padding:9px 12px; outline:none; color:var(--ink); font-family:inherit; }
  .hist-search:focus { border-color:var(--orange); }
  .hist-tabs { display:flex; background:var(--hair); border:1px solid var(--line2); border-radius:10px; padding:3px; gap:2px; margin:0 14px 8px; flex:none; }
  .hist-tabs button { flex:1; border:none; background:transparent; border-radius:8px; font-size:12.5px; font-weight:500; color:var(--sec); padding:6px 0; cursor:pointer; }
  .hist-tabs button.on { background:#fff; color:var(--ink); font-weight:600; box-shadow:0 1px 3px rgba(27,29,49,.08); }
  .hist-list { flex:1; min-height:0; overflow-y:auto; padding:2px 8px 12px; }
  .hist-group { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; padding:10px 8px 4px; }
  .hist-row { display:flex; align-items:center; gap:8px; width:100%; border:none; background:transparent; border-radius:9px; padding:8px 8px 8px 10px; cursor:pointer; text-align:left; }
  .hist-row:hover { background:var(--hair); }
  .hist-row.on { background:var(--orange-pale); }
  .hist-row .t { flex:1; min-width:0; font-size:13px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .hist-row .ts { font-family:'Geist Mono',monospace; font-size:10px; color:var(--faint); flex:none; }
  .hist-star { width:22px; height:22px; flex:none; border:none; border-radius:6px; background:transparent; color:#D6D9E0; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .hist-star:hover { background:var(--line2); color:var(--muted); }
  .hist-star.on { color:var(--orange); }
  .hist-empty { padding:22px 16px; font-size:12.5px; color:var(--faint); text-align:center; }

  /* ── Chat ───────────────────────────────────────────────────────────── */
  .chat-scroll { flex:1; min-height:0; overflow-y:auto; display:flex; flex-direction:column; align-items:center; }
  .chat-col { width:100%; max-width:800px; padding:26px 32px 10px; display:flex; flex-direction:column; gap:26px; }
  .empty { display:flex; flex-direction:column; gap:28px; padding-top:24px; }
  .empty-kicker { display:flex; align-items:center; gap:8px; font-size:12px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:500; }
  .kdot { width:6px; height:6px; border-radius:99px; background:var(--orange); }
  .empty h1 { font-size:32px; line-height:1.16; font-weight:600; letter-spacing:-.02em; text-wrap:balance; }
  .empty-sub { font-size:15px; color:var(--sec); max-width:560px; text-wrap:pretty; }
  .sugg-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .sugg { display:flex; flex-direction:column; gap:8px; padding:16px; text-align:left; border:1px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; transition:all .15s; }
  .sugg:hover { border-color:#C7CBD4; box-shadow:0 6px 20px rgba(27,29,49,.07); transform:translateY(-1px); }
  .sugg-kind { font-family:'Geist Mono',monospace; font-size:10px; font-weight:500; letter-spacing:.08em; color:var(--orange); text-transform:uppercase; }
  .sugg-q { font-size:14px; font-weight:500; line-height:1.35; color:var(--ink); }
  .sugg-meta { font-size:12px; color:var(--muted); }

  .turn { display:flex; flex-direction:column; gap:16px; animation:riseIn .28s ease both; }
  @keyframes riseIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
  .u-row { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
  .u-bubble { max-width:74%; padding:12px 16px; border-radius:14px 14px 4px 14px; background:var(--ink); color:#fff; font-size:14.5px; line-height:1.5; white-space:pre-wrap; }
  .u-bubble .alias-hl { background:rgba(240,83,35,.32); border-radius:5px; padding:0 4px; font-weight:500; }
  .stamp { font-size:12px; color:var(--muted); }

  .a-block { display:flex; flex-direction:column; gap:15px; min-width:0; }
  .a-status { display:flex; align-items:center; gap:11px; font-size:14px; color:var(--sec); }
  .pulse-dots { display:inline-flex; gap:4px; }
  .pulse-dots span { width:6px; height:6px; border-radius:99px; background:var(--orange); animation:dotPulse 1.1s ease-in-out infinite; }
  .pulse-dots span:nth-child(2) { animation-delay:.15s; } .pulse-dots span:nth-child(3) { animation-delay:.3s; }
  @keyframes dotPulse { 0%,100% { opacity:.25; transform:translateY(0); } 50% { opacity:1; transform:translateY(-2px); } }
  @media (prefers-reduced-motion:reduce) { * { animation:none !important; transition:none !important; } }

  .a-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .kv-chip { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border:1px solid var(--line); border-radius:99px; background:var(--chipbg); font-size:12px; color:#4B4F63; }
  .kv-chip .k { color:var(--muted); } .kv-chip .v { font-weight:500; }
  .tag { font-family:'Geist Mono',monospace; font-size:9px; letter-spacing:.06em; border-radius:6px; padding:1px 5px; }
  .tag-dyn { background:var(--teal-pale); color:#06756E; }
  .tag-stat { background:var(--hair); color:var(--sec); border:1px solid var(--line); }
  .tag-adhoc { background:var(--hair); color:var(--sec); border:1px dashed #D6D9E0; }

  .a-md { font-size:14.5px; line-height:1.7; color:var(--body); max-width:700px; }
  .a-md h1,.a-md h2,.a-md h3 { color:var(--ink); margin:14px 0 6px; letter-spacing:-.01em; }
  .a-md h1 { font-size:19px; } .a-md h2 { font-size:16px; } .a-md h3 { font-size:14.5px; }
  .a-md p { margin:0 0 10px; } .a-md p:last-child { margin:0; }
  .a-md strong { color:var(--ink); }
  .a-md ul,.a-md ol { padding-left:20px; margin:6px 0 10px; }
  .a-md li { margin:4px 0; } .a-md li::marker { color:var(--orange); }
  .a-md table { border-collapse:collapse; width:100%; margin:12px 0; font-size:13px; font-variant-numeric:tabular-nums; }
  .a-md th { background:var(--chipbg); color:var(--muted); font-weight:600; font-size:11px; letter-spacing:.05em; text-transform:uppercase; padding:9px 10px; text-align:left; border-bottom:1px solid var(--line); }
  .a-md td { padding:9px 10px; border-bottom:1px solid var(--hair); color:var(--body); }
  .a-md code { font-family:'Geist Mono',monospace; background:var(--hair); border-radius:4px; padding:1px 5px; font-size:.88em; color:var(--orange-dk); }
  .a-md .tblwrap { overflow-x:auto; }
  .a-err { color:var(--red); font-size:13.5px; border:1px solid #F5C6C6; background:#FEF6F6; border-radius:10px; padding:10px 14px; }

  .chart-card { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
  .chart-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; border-bottom:1px solid var(--line); background:var(--chipbg); }
  .chart-kicker { font-family:'Geist Mono',monospace; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--orange); font-weight:500; }
  .chart-body { padding:12px 14px; overflow-x:auto; }

  /* Exec summary — Engine treatment */
  .exec-panel { border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; }
  /* Column layout: headline gets the full width; the period/filter caption wraps under it
     (a nowrap side-by-side crushed long headlines into one-word lines) */
  .exec-header { display:flex; flex-direction:column; gap:6px; padding:18px 20px 4px; }
  .exec-headline { font-size:19px; font-weight:600; line-height:1.3; letter-spacing:-.012em; text-wrap:pretty; }
  .exec-period { font-family:'Geist Mono',monospace; font-size:11px; color:var(--muted); line-height:1.6; overflow-wrap:anywhere; }
  .exec-section { padding:12px 20px; }
  .exec-section + .exec-section { border-top:1px solid var(--line3); }
  .exec-sec-label { font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:10px; }
  .exec-summary-text { font-size:14px; line-height:1.65; color:var(--body); }
  .exec-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
  .exec-kpi { background:#fff; padding:12px 14px; display:flex; flex-direction:column; gap:4px; }
  .exec-kpi-label { font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:500; }
  .exec-kpi-value { font-family:'Geist Mono',monospace; font-size:19px; font-weight:500; letter-spacing:-.02em; }
  .exec-kpi-value.pos { color:var(--green); } .exec-kpi-value.neg { color:var(--red); }
  .exec-kpi-sub { font-size:11px; color:var(--muted); }
  .exec-takeaway { display:grid; grid-template-columns:22px 1fr; gap:12px; align-items:start; margin-bottom:9px; }
  .exec-tk-num { width:22px; height:22px; border-radius:6px; background:var(--hair); color:#4B4F63; font-family:'Geist Mono',monospace; font-size:11px; display:flex; align-items:center; justify-content:center; margin-top:1px; }
  .exec-tk-text { font-size:13.5px; line-height:1.55; color:var(--body); }
  .exec-tk-text p { margin:0; }
  .exec-table { border-collapse:collapse; width:100%; font-size:13px; font-variant-numeric:tabular-nums; }
  .exec-table th { font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); }
  .exec-table td { padding:9px 10px; border-bottom:1px solid var(--hair); }
  .exec-table td.num { font-family:'Geist Mono',monospace; text-align:right; }
  .impact-chip { display:inline-flex; padding:2px 9px; border-radius:99px; font-size:11px; font-weight:500; border:1px solid var(--line); background:var(--chipbg); color:var(--body); }
  .impact-chip.impact-Primary { border-color:var(--orange-lt); background:var(--orange-pale); color:var(--orange-dk); }
  .exec-mover { display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px solid var(--line3); font-size:13px; }
  .exec-mover:last-child { border-bottom:none; }
  .exec-mover-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .exec-mover-chg { font-family:'Geist Mono',monospace; font-size:12.5px; font-weight:500; }
  .exec-mover-chg.pos { color:var(--green); } .exec-mover-chg.neg { color:var(--red); }
  .exec-mover-tag { font-size:10.5px; color:var(--muted); background:var(--hair); border-radius:6px; padding:1px 6px; white-space:nowrap; }
  .exec-movers { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .exec-transitions { margin-top:12px; }
  .exec-transition { border:1px solid var(--line); border-radius:10px; padding:10px 13px; margin-bottom:8px; }
  .exec-transition-label { font-size:10px; letter-spacing:.08em; color:var(--muted); font-weight:600; margin-bottom:5px; }
  .exec-transition-flow { font-size:12.5px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
  .exec-transition-flow .pos { color:var(--green); } .exec-transition-flow .neg { color:var(--red); }
  .exec-transition-arrow { color:var(--muted); }
  .exec-map-grid { display:grid; grid-template-columns:repeat(11,26px); grid-auto-rows:26px; gap:3px; }
  .exec-map-tile { display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:600; color:var(--sec); background:#eef0f3; border-radius:4px; }
  .exec-map-tile.cat-strong { background:#157f3d; color:#fff; }
  .exec-map-tile.cat-modest { background:#a7d9bc; color:#14532d; }
  .exec-map-tile.cat-dragger { background:#d64545; color:#fff; }
  .exec-map-tile.cat-mixed { background:#f0c36d; color:#5c4708; }
  .exec-map-legend { display:flex; flex-wrap:wrap; gap:12px; margin-top:10px; font-size:11px; color:var(--sec); }
  .exec-map-key { display:inline-flex; align-items:center; gap:5px; }
  .exec-map-swatch { width:10px; height:10px; border-radius:3px; display:inline-block; }
  .exec-map-caption { font-size:12px; color:var(--muted); margin-top:8px; }
  .exec-assump { font-size:12.5px; color:var(--sec); line-height:1.6; }
  .exec-nbq { display:flex; align-items:center; gap:14px; padding:14px 20px; background:var(--orange-pale); border-top:1px solid var(--line3); cursor:pointer; }
  .exec-nbq:hover { background:var(--orange-tint); }
  .exec-nbq-label { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--orange); font-weight:600; }
  .exec-nbq-q { font-size:13.5px; font-weight:500; margin-top:2px; }
  .btn-mini { display:inline-flex; align-items:center; gap:6px; padding:5px 11px; border:1px solid var(--line); border-radius:8px; font-size:12px; font-weight:500; color:var(--body); background:#fff; cursor:pointer; white-space:nowrap; }
  .btn-mini:hover { border-color:var(--ink); color:var(--ink); }

  /* Reasoning chain */
  .steps-toggle { align-self:flex-start; display:inline-flex; align-items:center; gap:7px; padding:5px 11px; border:1px solid var(--line); border-radius:99px; background:#fff; font-size:12px; font-weight:500; color:var(--sec); cursor:pointer; }
  .steps-toggle:hover { border-color:var(--ink); color:var(--ink); }
  .steps-card { border:1px solid var(--line); border-radius:12px; background:var(--chipbg); padding:12px 16px; font-size:12.5px; }
  .step-row { display:grid; grid-template-columns:20px 1fr; gap:10px; padding:7px 0; border-bottom:1px solid var(--line3); }
  .step-row:last-child { border-bottom:none; }
  .step-n { width:20px; height:20px; border-radius:6px; background:#fff; border:1px solid var(--line); color:var(--sec); font-family:'Geist Mono',monospace; font-size:10px; display:flex; align-items:center; justify-content:center; }
  .step-label { font-weight:600; color:var(--ink); }
  .step-detail { font-family:'Geist Mono',monospace; font-size:11px; color:var(--muted); margin-top:2px; word-break:break-all; }
  .step-result { font-size:11.5px; color:var(--sec); margin-top:2px; }

  .a-actions { display:flex; align-items:center; gap:2px; }
  .icon-btn { width:24px; height:24px; border:none; background:transparent; border-radius:6px; display:flex; align-items:center; justify-content:center; color:var(--muted); cursor:pointer; }
  .icon-btn:hover { background:var(--hair); color:var(--ink); }
  .follow-label { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:500; }

  /* ── Composer ───────────────────────────────────────────────────────── */
  .composer-wrap { width:100%; max-width:800px; padding:8px 32px 14px; position:relative; margin:0 auto; }
  .composer { position:relative; display:flex; flex-direction:column; gap:10px; padding:14px 14px 12px 16px; border:1px solid var(--edge); border-radius:14px; background:#fff; box-shadow:var(--shadow-card); transition:border-color .15s; }
  .composer:focus-within { border-color:#C7CBD4; }
  /* contenteditable since v1.83 — recognised words carry their treatment in the box.
     textContent stays the exact string that ships, so SMS/email round-trips are unaffected. */
  #chatInput { display:block; width:100%; min-height:44px; max-height:150px; overflow-y:auto; border:none; outline:none; font-size:14.5px; line-height:1.55; color:var(--ink); background:transparent; font-family:inherit; padding-right:132px; white-space:pre-wrap; word-break:break-word; }
  #chatInput:empty::before { content:attr(data-ph); color:var(--faint); pointer-events:none; }

  /* ── Composer tokens ──────────────────────────────────────────────────────
     Colour says WHICH SLICE of the business (item / store / time — the same three
     the filter chips already teach). Mono type says IT IS A NUMBER. Two orthogonal
     channels, so measures needed no fourth colour. Only a scope gets a sigil,
     because only a scope actually changes the answer. */
  .tok { border-radius:4px; }
  .tok-scope { background:var(--orange-tint); color:var(--orange-dk); font-weight:500; padding:1px 5px; box-shadow:inset 0 0 0 1px rgba(240,83,35,.18); }
  .tok-scope.k-stores { background:#ECEFFF; color:#2B48C8; box-shadow:inset 0 0 0 1px rgba(75,110,255,.20); }
  .tok-scope.k-time { background:var(--teal-pale); color:#08877F; box-shadow:inset 0 0 0 1px rgba(10,191,179,.24); }
  .tok-attr { padding:1px 2px; border-bottom:1.5px solid rgba(240,83,35,.45); }
  .tok-attr.k-stores { border-bottom-color:rgba(75,110,255,.45); }
  .tok-attr.k-time { border-bottom-color:rgba(10,191,179,.45); }
  .tok-measure { font-family:'Geist Mono',ui-monospace,Consolas,monospace; font-size:.92em; background:var(--hair); padding:1px 5px; border-bottom:1px dotted var(--sec); cursor:help; }
  .tok-measure:hover { background:var(--line3); }

  /* ── Measure definition card ────────────────────────────────────────────── */
  .mdef-pop { position:fixed; z-index:80; width:320px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-pop); display:none; overflow:hidden; }
  .mdef-h { padding:12px 15px 10px; border-bottom:1px solid var(--line2); }
  .mdef-n { font-size:14px; font-weight:600; letter-spacing:-.01em; color:var(--ink); }
  .mdef-c { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); margin-top:3px; }
  .mdef-b { padding:12px 15px; display:flex; flex-direction:column; gap:10px; }
  .mdef-d { font-size:12.5px; color:var(--body); line-height:1.55; }
  .mdef-row { display:flex; gap:7px; flex-wrap:wrap; }
  .mdef-tag { font-family:'Geist Mono',monospace; font-size:10px; letter-spacing:.03em; padding:2px 7px; border-radius:99px; border:1px solid var(--line); background:var(--chipbg); color:var(--sec); }
  .mdef-tag.warn { background:var(--orange-tint); border-color:rgba(240,83,35,.25); color:var(--orange-dk); }
  .mdef-swap { border-top:1px solid var(--line2); background:var(--chipbg); padding:10px 15px; }
  .mdef-swap .t { font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint); margin-bottom:7px; }
  .mdef-swap .opts { display:flex; flex-wrap:wrap; gap:6px; }
  .mdef-btn { font-family:'Geist Mono',monospace; font-size:11px; background:#fff; border:1px solid var(--line); border-radius:6px; padding:3px 8px; color:var(--body); cursor:pointer; }
  .mdef-btn:hover { border-color:var(--orange); color:var(--orange-dk); background:var(--orange-pale); }
  .composer-row { display:flex; align-items:flex-end; gap:6px; }
  .scope-chips { flex:1; display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-width:0; }
  .g-chip { display:inline-flex; align-items:center; gap:6px; padding:4px 6px 4px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:12px; color:#4B4F63; cursor:pointer; }
  .g-chip:hover { border-color:#C7CBD4; }
  .g-chip .v { font-weight:500; color:var(--ink); }
  .g-chip .cnt { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .g-chip.adhoc { border-style:dashed; }
  .g-chip .x { width:16px; height:16px; border:none; border-radius:99px; background:transparent; color:var(--faint); font-size:12px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
  .g-chip .x:hover { background:var(--orange-tint); color:var(--orange-dk); }
  .add-filter { display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:12px; color:#4B4F63; cursor:pointer; }
  .add-filter:hover { border-color:#C7CBD4; }
  /* Groups menu — the saved filter sets, pinned from the composer where the
     chips they produce already live. */
  .grp-btn { display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:12px; font-weight:500; color:#4B4F63; cursor:pointer; flex:none; font-family:inherit; }
  .grp-btn:hover { border-color:#C7CBD4; }
  .grp-btn.on { border-color:var(--orange-lt); background:var(--orange-pale); color:var(--orange-dk); }
  .grp-btn .cnt { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .grp-btn.on .cnt { color:var(--orange-dk); }
  .grp-btn .car { font-size:8px; color:var(--faint); }
  .grp-pop { position:absolute; bottom:calc(100% - 2px); right:12px; z-index:41; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-pop); min-width:320px; max-height:min(60vh,420px); overflow-y:auto; display:none; }
  .grp-pop.open { display:block; }
  .grp-sec { padding:8px 13px 3px; font-size:10px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--faint); }
  .grp-item { display:flex; align-items:center; gap:9px; width:100%; padding:8px 13px; border:none; background:transparent; cursor:pointer; text-align:left; font-size:13px; font-family:inherit; }
  .grp-item:hover { background:var(--orange-tint); }
  .grp-item .tick { width:16px; flex:none; color:var(--orange); font-size:12px; }
  .grp-item.off .tick { color:transparent; }
  .grp-item .gname { font-weight:500; color:var(--ink); }
  .grp-item.off .gname { font-weight:400; color:var(--body); }
  .grp-item .gmeta { font-size:11px; color:var(--muted); }
  .grp-empty { padding:14px 13px; font-size:12px; color:var(--faint); }
  .send-btn { width:34px; height:34px; flex:none; border:none; border-radius:9px; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; font-size:15px; cursor:pointer; transition:background .15s; }
  .send-btn:hover { background:var(--orange); }
  .send-btn:disabled { opacity:.4; cursor:default; }
  .disclaimer { display:flex; justify-content:center; gap:10px; padding-top:8px; font-size:11.5px; color:var(--sec); }
  .disclaimer a { color:var(--faint); text-decoration:none; }
  .disclaimer a:hover { color:var(--orange); }
  .kind-dot { width:6px; height:6px; border-radius:99px; flex:none; }

  .ac-pop { position:absolute; bottom:calc(100% - 2px); left:48px; z-index:40; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-pop); min-width:400px; max-width:560px; max-height:340px; overflow-y:auto; overflow-x:hidden; display:none; }
  .ac-title { font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); padding:9px 13px 4px; }
  .ac-item { display:flex; align-items:center; gap:9px; padding:8px 13px; cursor:pointer; font-size:13px; }
  /* HOVER and SELECTED are different states and used to share one colour:
     --orange-pale is #FFFBF9, which is white with an apology. Brad, 2026-09-18:
     "the highlighted metric is a light color and I'm not sure what is selected."
     Hover is now a visible tint; the selected row is the brand orange with white
     text, the same fill as the primary button — so keyboard position is
     unmistakable, and mousing over a different row cannot be confused for it. */
  .ac-item:hover { background:var(--orange-tint); }
  .ac-item.sel { background:var(--orange); }
  .ac-item.sel .nm, .ac-item.sel .nm.mono { color:#fff; }
  .ac-item.sel .meta { color:rgba(255,255,255,.82); }
  .ac-item.sel .ac-src, .ac-item.sel .ac-src.cust { background:rgba(255,255,255,.22); color:#fff; }
  /* the dot encodes items/stores/time and would vanish into the fill */
  .ac-item.sel .kind-dot { box-shadow:0 0 0 2px rgba(255,255,255,.92); }
  /* The NAME is what you are choosing between, so it never wraps and never yields to
     the provenance beside it. It used to have no flex rules at all, which was fine while
     .meta was a 31-character schema; the wide-table migration made .meta a 90-character
     fully-qualified table and flexbox duly squeezed "Store Specific Rtl Amt" into three
     lines. .meta now shrinks ~200x faster and ellipsizes instead. */
  .ac-item .nm { font-weight:500; color:var(--ink); flex:0 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .ac-item .nm.mono { font-family:'Geist Mono',monospace; font-size:12.5px; font-weight:400; }
  .ac-item .meta { font-size:11.5px; color:var(--muted); margin-left:auto; font-family:'Geist Mono',monospace; padding-left:10px; white-space:nowrap; flex:0 200 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
  /* provenance — engine-standard vs the customer's own. Helps you CHOOSE; it is
     deliberately absent from the inserted token, where it no longer matters. */
  .ac-item .ac-src { font-family:'Geist Mono',monospace; font-size:10px; letter-spacing:.04em; padding:1px 5px; border-radius:4px; background:var(--hair); color:var(--sec); }
  /* FROM QUESTION: scope the model read out of the words, pinned like any other but
     never disguised as something the user chose. */
  .tag-derived { background:var(--accent-bg); color:var(--accent); border:1px solid var(--accent); }
  .ac-item .ac-src.cust { background:var(--orange-tint); color:var(--orange-dk); }
  .ac-title .tip { margin-left:auto; color:var(--faint); letter-spacing:.04em; text-transform:none; font-size:10px; font-weight:400; }
  .ac-title { display:flex; align-items:baseline; gap:8px; }

  /* Measure strip — one concise line across the top of the menu for whichever
     measure the cursor or the keyboard is on. Sticky because the list scrolls
     under it; muted because it explains the choice rather than being one. */
  .ac-strip { position:sticky; top:0; z-index:2; display:flex; align-items:baseline; gap:9px;
              padding:9px 13px; background:var(--chipbg); border-bottom:1px solid var(--hair); }
  .ac-strip[hidden] { display:none; }
  .ac-strip .s-n { font-family:'Geist Mono',monospace; font-size:12px; font-weight:500; color:var(--ink); white-space:nowrap; }
  /* one line, always — a strip that wraps to three stops being a strip */
  .ac-strip .s-d { font-size:11.5px; color:var(--sec); line-height:1.35;
                   overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; flex:1; }
  .ac-strip .s-g { font-family:'Geist Mono',monospace; font-size:10px; color:var(--faint);
                   margin-left:auto; padding-left:10px; white-space:nowrap; }

  /* ── Overlay (pickers) ──────────────────────────────────────────────── */
  #overlayBackdrop { position:fixed; inset:0; background:rgba(27,29,49,.4); z-index:100; display:none; align-items:center; justify-content:center; padding:24px; }
  #overlayBackdrop.open { display:flex; }
  .overlay { background:#fff; border-radius:18px; box-shadow:var(--shadow-modal); width:min(880px,100%); max-height:min(680px,calc(100vh - 48px)); display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--edge); }
  .overlay-head { display:flex; align-items:center; gap:14px; padding:14px 18px; border-bottom:1px solid var(--line2); flex-shrink:0; }
  .overlay-title { font-size:15px; font-weight:600; }
  .seg { display:flex; background:var(--hair); border:1px solid var(--line2); border-radius:99px; padding:3px; gap:2px; }
  .seg button { border:none; background:transparent; border-radius:99px; font-size:12.5px; font-weight:500; color:var(--sec); padding:5px 14px; cursor:pointer; }
  .seg button.on { background:#fff; color:var(--ink); font-weight:600; box-shadow:0 1px 3px rgba(27,29,49,.08); }
  .overlay-close { margin-left:auto; background:none; border:none; color:var(--muted); font-size:19px; cursor:pointer; width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; }
  .overlay-close:hover { background:var(--hair); color:var(--ink); }
  .overlay-body { flex:1; overflow-y:auto; min-height:320px; }
  .overlay-foot { display:flex; align-items:center; gap:10px; padding:12px 18px; border-top:1px solid var(--line2); background:var(--chipbg); flex-shrink:0; }
  .foot-note { font-size:11.5px; color:var(--muted); margin-right:auto; max-width:460px; }
  .btn-secondary { background:#fff; color:var(--body); border:1px solid var(--line); border-radius:9px; padding:8px 15px; font-size:13px; font-weight:500; cursor:pointer; }
  .btn-secondary:hover { border-color:var(--ink); color:var(--ink); }
  .btn-primary { background:var(--orange); color:#fff; border:none; border-radius:9px; padding:8px 17px; font-size:13px; font-weight:600; cursor:pointer; transition:background .15s; }
  .btn-primary:hover { background:var(--orange-dk); }

  .classic { font-size:12px; }
  .classic-tabs { display:flex; align-items:stretch; padding:0 14px; border-bottom:1px solid var(--line2); }
  .classic-tab { display:flex; align-items:center; gap:7px; padding:10px 13px 11px; margin-bottom:-1px; border:none; border-bottom:2px solid transparent; background:transparent; font-size:12.5px; font-weight:500; color:var(--sec); cursor:pointer; white-space:nowrap; }
  .classic-tab:hover { color:var(--ink); }
  .classic-tab.on { border-bottom-color:var(--orange); color:var(--ink); font-weight:600; }
  .classic-tab .n { font-family:'Geist Mono',monospace; font-size:10px; background:var(--ink); color:#fff; border-radius:6px; padding:1px 5px; }
  .criteria-echo { padding:9px 16px; background:var(--orange-pale); border-bottom:1px solid var(--orange-lt); font-size:11.5px; color:var(--body); line-height:1.6; }
  .criteria-echo b { color:var(--orange-dk); font-weight:600; }
  .classic-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px 10px; padding:14px 16px; }
  @media (max-width:720px) { .classic-grid { grid-template-columns:1fr 1fr; } .sugg-grid { grid-template-columns:1fr; } .side { display:none; } }
  .classic-note { padding:0 16px 12px; font-size:11.5px; color:var(--muted); }
  .dd { position:relative; }
  .dd-btn { width:100%; display:flex; align-items:center; gap:6px; background:#fff; border:1px solid var(--line); border-radius:8px; padding:7px 9px; font-size:12px; color:var(--sec); cursor:pointer; text-align:left; }
  .dd-btn:hover { border-color:#C7CBD4; }
  .dd-btn .lbl { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
  .dd-btn.has { border-color:var(--orange-lt); background:var(--orange-pale); }
  .dd-btn.has .lbl { color:var(--orange-dk); font-weight:500; }
  .dd-btn .car { color:var(--faint); font-size:9px; flex-shrink:0; }
  .dd-panel { position:absolute; top:calc(100% + 4px); left:0; z-index:30; min-width:250px; max-width:330px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-pop); display:none; overflow:hidden; }
  .dd.open .dd-panel { display:block; }
  .dd-search { width:100%; border:none; border-bottom:1px solid var(--line2); padding:9px 13px; font-size:12.5px; outline:none; background:var(--chipbg); color:var(--ink); font-family:inherit; }
  .dd-list { max-height:210px; overflow-y:auto; padding:4px 0; }
  .dd-opt { display:flex; align-items:center; gap:8px; padding:6px 13px; font-size:12.5px; color:var(--body); cursor:pointer; }
  .dd-opt:hover { background:var(--orange-tint); }
  .dd-opt input { accent-color:var(--orange); cursor:pointer; }
  .dd-opt .m { font-family:'Geist Mono',monospace; font-size:11.5px; color:var(--sec); }
  /* NOT per value — the Classic equivalent of flipping a Modern chip to exclude. */
  /* visible but quiet — hiding it until hover made the capability undiscoverable */
  .dd-opt .dd-not { margin-left:auto; border:1px solid transparent; border-radius:6px; background:transparent; font-family:'Geist Mono',monospace; font-size:9.5px; font-weight:600; letter-spacing:.05em; color:var(--faint); padding:1px 5px; cursor:pointer; opacity:.45; }
  .dd-opt:hover .dd-not { opacity:1; }
  .dd-opt .dd-not:hover { border-color:var(--ink); color:var(--ink); }
  .dd-opt .dd-not.on { opacity:1; background:var(--ink); border-color:var(--ink); color:#fff; }
  .dd-opt.excl > span { text-decoration:line-through; color:var(--muted); }
  .dd-actions { display:flex; gap:10px; padding:7px 13px; border-top:1px solid var(--line2); background:var(--chipbg); }
  .dd-actions button { background:none; border:none; color:var(--orange); font-size:11.5px; font-weight:500; cursor:pointer; padding:0; }
  .dd-actions .hint { margin-left:auto; font-size:10px; color:var(--faint); align-self:center; }
  /* Clear all wipes the whole attribute, so it does not wear the same colour as
     Select all and it sits after the hint, away from the checkbox it used to
     hide under. */
  .dd-actions .dd-clear { margin-left:14px; color:var(--faint); }
  .dd-actions .dd-clear:hover { color:var(--red, #d64545); text-decoration:underline; }
  .time-pane { padding:16px; display:flex; flex-direction:column; gap:6px; max-width:470px; }
  .time-opt { display:flex; align-items:center; gap:10px; padding:10px 13px; border:1px solid var(--line); border-radius:10px; cursor:pointer; font-size:13px; color:var(--body); background:#fff; text-align:left; }
  .time-opt:hover { border-color:#C7CBD4; }
  .time-opt.on { border-color:var(--orange); background:var(--orange-pale); color:var(--ink); font-weight:500; }
  .time-opt .sub { margin-left:auto; font-size:11.5px; color:var(--muted); font-family:'Geist Mono',monospace; }
  .tpl-pane { padding:14px 16px; display:flex; flex-direction:column; gap:8px; }
  .tpl-row { display:flex; align-items:center; gap:11px; padding:11px 14px; border:1px solid var(--line); border-radius:11px; background:#fff; }
  .tpl-row:hover { border-color:#C7CBD4; box-shadow:0 3px 12px rgba(27,29,49,.05); }
  .tpl-name { font-weight:600; font-size:13px; color:var(--ink); display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
  .tpl-def { font-size:11.5px; color:var(--muted); margin-top:2px; max-width:430px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .tpl-cnt { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); font-weight:400; }
  .tpl-actions { margin-left:auto; display:flex; gap:6px; align-items:center; }
  .tpl-btn { background:#fff; border:1px solid var(--line); border-radius:8px; font-size:12px; font-weight:500; color:var(--body); padding:5px 11px; cursor:pointer; white-space:nowrap; }
  .tpl-btn:hover { border-color:var(--ink); color:var(--ink); }
  .tpl-btn.applied { background:var(--ink); border-color:var(--ink); color:#fff; }
  .tpl-btn.del:hover { border-color:var(--red); color:var(--red); background:var(--orange-tint); }
  .kind-mark { width:26px; height:26px; flex:none; border-radius:8px; display:flex; align-items:center; justify-content:center; font-family:'Geist Mono',monospace; font-size:9px; font-weight:500; color:#fff; }
  .save-bar { display:flex; align-items:center; gap:8px; padding:11px 16px; border-top:1px dashed var(--line); background:#fff; flex-wrap:wrap; }
  .save-bar input[type=text], .modern-savebar input[type=text] { background:var(--chipbg); border:1px solid var(--line); border-radius:9px; font-size:12.5px; padding:8px 11px; outline:none; width:210px; color:var(--ink); font-family:inherit; }
  .save-bar input[type=text]:focus, .modern-savebar input[type=text]:focus { border-color:var(--orange); }
  .mode-toggle { display:flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
  .mode-toggle button { border:none; background:#fff; font-size:11.5px; font-weight:500; color:var(--sec); padding:7px 11px; cursor:pointer; }
  .mode-toggle button.on { background:var(--orange-pale); color:var(--orange-dk); font-weight:600; }
  .modern { display:flex; min-height:380px; }
  .modern-rail { width:132px; flex-shrink:0; border-right:1px solid var(--line2); padding:14px 10px; display:flex; flex-direction:column; gap:4px; background:var(--chipbg); }
  .rail-btn { display:flex; align-items:center; gap:8px; border:none; background:transparent; border-radius:8px; font-size:12.5px; font-weight:500; color:var(--sec); padding:8px 10px; cursor:pointer; text-align:left; }
  .rail-btn:hover { background:#fff; color:var(--ink); }
  .rail-btn.on { background:#fff; color:var(--ink); font-weight:600; box-shadow:0 1px 3px rgba(27,29,49,.07); }
  .rail-btn .kind-dot { width:7px; height:7px; }
  .modern-main { flex:1; display:flex; flex-direction:column; min-width:0; }
  .modern-search-wrap { padding:14px 16px 8px; }
  .modern-search { width:100%; background:var(--chipbg); border:1px solid var(--line); border-radius:11px; font-size:14px; padding:11px 14px; outline:none; color:var(--ink); font-family:inherit; }
  .modern-search:focus { border-color:var(--orange); background:#fff; }
  .modern-results { flex:1; overflow-y:auto; padding:4px 16px 12px; }
  .res-group-title { font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); margin:10px 0 5px; }
  .res-item { display:flex; align-items:center; gap:9px; width:100%; border:none; background:transparent; border-radius:8px; padding:7px 10px; font-size:13px; color:var(--body); cursor:pointer; text-align:left; }
  .res-item:hover { background:var(--orange-pale); }
  .res-item .attr-tag { font-family:'Geist Mono',monospace; font-size:10px; color:var(--muted); background:var(--hair); border-radius:6px; padding:2px 6px; flex-shrink:0; }
  .res-item .plus { margin-left:auto; color:var(--orange); font-weight:600; font-size:12px; opacity:0; }
  .res-item:hover .plus { opacity:1; }
  .res-item.added { opacity:.4; pointer-events:none; }
  .res-empty { padding:24px 12px; text-align:center; color:var(--faint); font-size:13px; }
  .modern-selected { border-top:1px solid var(--line2); padding:11px 16px 13px; background:#fff; display:flex; flex-direction:column; gap:8px; }
  .sel-title { font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
  .sel-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .val-chip { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--orange-lt); background:var(--orange-pale); color:var(--orange-dk); border-radius:99px; padding:4px 7px 4px 11px; font-size:12px; font-weight:500; cursor:pointer; }
  .val-chip.excl { border-color:var(--ink); background:var(--hair); color:var(--ink); text-decoration:line-through; }
  .val-chip .vx { border:none; background:transparent; color:inherit; opacity:.55; cursor:pointer; font-size:12px; padding:0 2px; }
  .val-chip .vx:hover { opacity:1; }
  .sel-logic { font-size:11.5px; color:var(--muted); }
  .modern-savebar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  /* Active scope tray — the live chat filters, at the top of the pane where they
     are the first thing seen and can be edited before anything new is added. */
  .modern-active { border-bottom:1px solid var(--line2); background:var(--orange-pale); padding:12px 16px 13px; display:flex; flex-direction:column; gap:7px; }
  .modern-active .active-head { display:flex; align-items:center; gap:8px; }
  .modern-active .sel-title { color:var(--orange-dk); }
  .active-reset { border:1px solid var(--orange-lt); background:#fff; color:var(--orange-dk); border-radius:8px; font-size:11px; font-weight:600; padding:4px 9px; cursor:pointer; font-family:inherit; }
  .active-reset:hover { background:var(--orange-pale); }
  .active-reset[hidden] { display:none; }
  .modern-active .val-chip { background:#fff; }
  .val-chip .src-tag { font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.04em; text-transform:uppercase; opacity:.62; }
  .sel-note { font-size:11px; color:var(--orange-dk); opacity:.85; }
  .sel-note:empty { display:none; }

  /* SQL drawer */
  #sqlDrawer { position:fixed; top:0; right:0; bottom:0; width:min(480px,92vw); z-index:90; background:#fff; border-left:1px solid var(--edge); box-shadow:-12px 0 40px rgba(27,29,49,.12); display:flex; flex-direction:column; transform:translateX(102%); transition:transform .22s ease; }
  #sqlDrawer.open { transform:translateX(0); }
  #app.sql-open .proto-note { display:none; }
  .sqld-head { flex:none; display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--line2); }
  .sqld-mark { width:28px; height:28px; flex:none; border-radius:8px; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Geist Mono',monospace; font-size:9.5px; }
  .sqld-title { display:flex; flex-direction:column; gap:1px; min-width:0; }
  .sqld-title .t { font-size:13.5px; font-weight:600; }
  .sqld-title .s { font-size:11.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:300px; }
  .sqld-body { flex:1; min-height:0; overflow:auto; padding:14px 16px; display:flex; flex-direction:column; gap:14px; }
  .sqld-sec-label { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; }
  .sqld-body pre { font-family:'Geist Mono',monospace; font-size:11.5px; line-height:1.7; color:var(--body); white-space:pre-wrap; word-break:break-word; }
  .sqld-body .cm { color:var(--faint); } .sqld-body .al { color:var(--orange-dk); font-weight:500; }
  .sqld-empty { font-size:12.5px; color:var(--faint); }
  /* one block per question: the ask, then the statements that ran for it */
  .sqld-turn { border:1px solid var(--line2); border-radius:11px; padding:11px 12px; display:flex; flex-direction:column; gap:8px; }
  .sqld-q { display:flex; align-items:baseline; gap:8px; }
  .sqld-q .n { flex:none; font-family:'Geist Mono',monospace; font-size:10px; color:#fff; background:var(--ink); border-radius:6px; padding:1px 5px; }
  .sqld-q .qt { flex:1; min-width:0; font-size:12.5px; font-weight:600; color:var(--ink); }
  .sqld-q .when { flex:none; font-family:'Geist Mono',monospace; font-size:10px; color:var(--faint); }
  .sqld-turn pre { background:var(--chipbg); border-radius:8px; padding:9px 11px; margin:0; }
  .sqld-nosql { font-size:12px; color:var(--muted); background:var(--chipbg); border-radius:8px; padding:8px 11px; }
  .sqld-scope { font-size:11.5px; line-height:1.6; color:var(--muted); background:var(--orange-pale); border-radius:8px; padding:7px 11px; }
  .sqld-scope b { color:var(--ink); }
  .sqld-scope .m { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--body); }
  .sqld-body .ok { color:var(--green); }
  .sqld-body .warn { color:#9A6A00; }
  .sqld-body .bad { color:var(--red); font-weight:600; }
  .sqld-more { font-size:12px; }
  .sqld-more summary { cursor:pointer; color:var(--muted); font-size:11.5px; list-style:none; }
  .sqld-more summary::-webkit-details-marker { display:none; }
  .sqld-more summary:before { content:'▸ '; }
  .sqld-more[open] summary:before { content:'▾ '; }
  .sqld-more summary:hover { color:var(--orange-dk); }
  .sqld-more > *:not(summary) { margin-top:7px; }
  .sqld-foot { flex:none; display:flex; align-items:center; gap:10px; padding:10px 16px; border-top:1px solid var(--line2); background:var(--chipbg); font-size:12px; color:var(--muted); }
  .sqld-copy { margin-left:auto; background:none; border:none; color:var(--orange); font-size:12.5px; font-weight:500; cursor:pointer; }
  .sqld-copy:hover { color:var(--orange-dk); }

  /* ── Views (Home / Signal / Chat) ───────────────────────────────────── */
  .view { flex:1; min-height:0; display:none; flex-direction:column; }
  .view.on { display:flex; }
  .view-scroll { flex:1; min-height:0; overflow-y:auto; }
  .home-col { max-width:900px; margin:0 auto; padding:26px 32px 40px; display:flex; flex-direction:column; gap:22px; }
  .home-greet { font-size:26px; font-weight:600; letter-spacing:-.018em; }
  .home-sub { font-size:13px; color:var(--muted); margin-top:4px; }
  .kpi-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
  .kpi-tile { background:#fff; padding:14px 16px; display:flex; flex-direction:column; gap:4px; }
  .kpi-lbl { font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); font-weight:600; }
  .kpi-val { font-family:'Geist Mono',monospace; font-size:22px; font-weight:500; letter-spacing:-.02em; }
  .kpi-dl { font-size:12px; font-weight:500; }
  .home-sec-head { display:flex; align-items:baseline; gap:10px; }
  .home-sec-title { font-size:15px; font-weight:600; }
  .home-sec-count { font-family:'Geist Mono',monospace; font-size:11px; color:var(--muted); }
  .home-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  @media (max-width:900px) { .home-cards { grid-template-columns:1fr; } }
  .sig-card { border:1px solid var(--line); border-radius:12px; background:#fff; padding:13px 15px; display:flex; flex-direction:column; gap:8px; border-left-width:3px; }
  .sig-card.sev-high { border-left-color:var(--red); }
  .sig-card.sev-medium { border-left-color:#E8A13C; }
  .sig-card.sev-low { border-left-color:var(--teal); }
  .sig-card.sev-info { border-left-color:#C7CBD4; }
  .sig-title { font-size:13.5px; font-weight:600; line-height:1.4; }
  .sig-body { font-size:12.5px; color:var(--body); line-height:1.55; }
  .sig-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:11px; color:var(--muted); }
  .sig-actions { display:flex; gap:6px; margin-top:auto; flex-wrap:wrap; }
  .sig-status { font-family:'Geist Mono',monospace; font-size:9px; letter-spacing:.06em; text-transform:uppercase; border-radius:6px; padding:2px 6px; background:var(--hair); color:var(--sec); }
  .sig-status.st-resolved { background:var(--teal-pale); color:#06756E; }
  .sig-status.st-in_progress { background:var(--orange-pale); color:var(--orange-dk); border:1px solid var(--orange-lt); }
  .board { display:grid; grid-template-columns:repeat(4,minmax(230px,1fr)); gap:12px; padding:22px 26px 30px; align-items:start; min-width:980px; }
  .board-wrap { overflow-x:auto; flex:1; min-height:0; overflow-y:auto; }
  .lane { background:var(--chipbg); border:1px solid var(--line2); border-radius:14px; padding:10px; display:flex; flex-direction:column; gap:8px; }
  .lane-head { display:flex; align-items:center; gap:8px; padding:4px 6px; }
  .lane-title { font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--sec); }
  .lane-count { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); background:#fff; border:1px solid var(--line); border-radius:8px; padding:1px 6px; }
  .lane .sig-card { box-shadow:0 1px 3px rgba(27,29,49,.05); }
  .sig-select { background:#fff; border:1px solid var(--line); border-radius:7px; font-size:11px; padding:3px 6px; color:var(--body); font-family:inherit; max-width:130px; }
  .nav-badge { margin-left:auto; font-family:'Geist Mono',monospace; font-size:9.5px; background:var(--orange); color:#fff; border-radius:8px; padding:1px 6px; }

  /* ── Home v2: channels rail + feed + right rail ─────────────────────── */
  .home-grid { display:grid; grid-template-columns:225px minmax(0,1fr) 285px; gap:20px; padding:20px 24px 40px; max-width:1560px; margin:0 auto; width:100%; align-items:start; }
  @media (max-width:1350px) { .home-grid { grid-template-columns:210px minmax(0,1fr); } .home-right { display:none; } }
  @media (max-width:980px) { .home-grid { grid-template-columns:minmax(0,1fr); } .home-chan { display:none; } }
  .home-chan { position:sticky; top:0; display:flex; flex-direction:column; gap:2px; }
  .chan-label { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; padding:6px 8px; }
  .chan-row { display:flex; align-items:center; gap:8px; width:100%; border:none; background:transparent; border-radius:9px; padding:7px 8px; cursor:pointer; text-align:left; font-size:12.5px; color:var(--body); }
  .chan-row:hover { background:var(--hair); }
  .chan-row.on { background:var(--orange-pale); color:var(--orange-dk); font-weight:600; }
  .chan-ico { width:18px; flex:none; text-align:center; }
  .chan-name { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .chan-custom { font-family:'Geist Mono',monospace; font-size:8px; letter-spacing:.08em; color:var(--electric,#4B6EFF); border:1px solid #C8D2FF; border-radius:5px; padding:1px 4px; }
  .chan-del { width:15px; height:15px; flex:none; border-radius:99px; color:var(--faint); font-size:11px; line-height:14px; text-align:center; visibility:hidden; }
  .chan-row:hover .chan-del { visibility:visible; }
  .chan-del:hover { background:var(--orange-tint); color:var(--orange-dk); }
  .chan-count { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .chan-follow { width:18px; height:18px; flex:none; border-radius:99px; border:1px solid var(--line); background:#fff; color:var(--faint); font-size:11px; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .chan-follow.on { background:var(--teal-pale); border-color:var(--teal); color:#06756E; }
  /* v2.84.2 From / Only mine / Hidden */
  .from-row .cav, .from-row .fc-av { flex:none; }
  .from-row.muted .chan-name { color:var(--muted); text-decoration:line-through; }
  .from-muted { font-size:10.5px; color:var(--muted); }
  .from-mute { visibility:hidden; font-size:11px; color:var(--orange-dk); font-weight:600; margin-left:2px; }
  .from-row:hover .from-mute, .from-row:focus-visible .from-mute, .from-row.muted .from-mute { visibility:visible; }
  .home-mine { margin:10px 8px 0; font-size:12.5px; }
  .fc-rp-note { font-size:11px; color:var(--muted); padding:6px 8px 2px; line-height:1.45; }
  .hidden-pop { width:300px; }
  .hid-row { display:flex; align-items:center; gap:10px; padding:6px 8px; font-size:12.5px; color:var(--ink); }
  .hid-row span { flex:1; min-width:0; overflow-wrap:anywhere; }
  .hid-row a { color:var(--orange-dk); font-weight:600; cursor:pointer; white-space:nowrap; }
  .chan-note { font-size:11px; color:var(--muted); line-height:1.55; padding:10px 8px; }
  .chan-note a { color:var(--orange); cursor:pointer; text-decoration:none; }

  .feed-head { display:flex; flex-direction:column; gap:3px; margin-bottom:12px; }
  .feed-title { font-size:19px; font-weight:600; letter-spacing:-.015em; }
  .feed-sub { font-size:12px; color:var(--muted); }
  .ret-pills { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
  .ret-pill { border:1px solid var(--line); border-radius:99px; background:#fff; font-size:12px; font-weight:500; color:var(--body); padding:5px 13px; cursor:pointer; }
  .ret-pill.on { background:var(--ink); border-color:var(--ink); color:#fff; }
  .brief-label { font-family:'Geist Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--orange); font-weight:500; margin-bottom:8px; }
  .brief-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
  @media (max-width:1100px) { .brief-row { grid-template-columns:1fr; } }
  .brief-tile { background:var(--ink); border-radius:12px; padding:14px 15px; color:#fff; display:flex; flex-direction:column; gap:6px; cursor:pointer; }
  .brief-tile:hover { background:#262944; }
  .brief-dollar { font-family:'Geist Mono',monospace; font-size:21px; font-weight:500; letter-spacing:-.02em; }
  .brief-title { font-size:12px; line-height:1.45; color:rgba(255,255,255,.85); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
  .brief-ret { font-family:'Geist Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.5); }

  .feed { display:flex; flex-direction:column; gap:12px; }
  .feed-card { border:1px solid var(--line); border-radius:13px; background:#fff; padding:14px 16px; display:flex; flex-direction:column; gap:9px; border-left-width:3px; }
  .feed-card.pinned { border-color:var(--orange-lt); }
  .feed .feed-card.evergreen { border-color:var(--orange-lt); border-left-color:var(--orange); background:linear-gradient(180deg,var(--orange-pale) 0,#fff 46px); }
  .feed-card.sev-high { border-left-color:var(--red); }
  .feed-card.sev-medium { border-left-color:#E8A13C; }
  .feed-card.sev-low { border-left-color:var(--teal); }
  .feed-card.sev-info { border-left-color:#C7CBD4; }
  .fc-top { display:flex; align-items:center; gap:8px; }
  .fc-chan { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; color:var(--sec); background:var(--hair); border-radius:99px; padding:3px 9px; }
  .fc-time { font-size:11px; color:var(--faint); }
  .fc-pinner { margin-left:auto; font-size:11.5px; font-weight:600; color:var(--orange); white-space:nowrap; }
  .fc-title { font-size:15px; font-weight:600; line-height:1.4; letter-spacing:-.008em; }
  .fc-body { font-size:12.5px; color:var(--body); line-height:1.55; }
  .fc-foryou { background:var(--orange-pale); border:1px solid var(--orange-lt); border-radius:9px; padding:8px 11px; font-size:12px; color:var(--body); line-height:1.5; }
  .fc-foryou b { color:var(--orange-dk); }
  .fc-metrics { display:flex; align-items:flex-end; gap:20px; }
  .fcm { display:flex; flex-direction:column; gap:1px; }
  .fcm .v { font-family:'Geist Mono',monospace; font-size:19px; font-weight:500; letter-spacing:-.02em; }
  .fcm .v.bad { color:var(--red); }
  .fcm .l { font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:600; }
  .fc-spark { margin-left:auto; flex:none; }
  .fc-chips { display:flex; gap:6px; flex-wrap:wrap; }
  .fc-chip { font-size:11px; font-weight:500; border:1px solid var(--line); background:var(--chipbg); border-radius:99px; padding:2px 9px; color:var(--sec); }
  .fc-chip.risk { border-color:#F5C6C6; background:#FEF6F6; color:var(--red); }
  .fc-chip.pin { border-color:var(--orange-lt); background:var(--orange-pale); color:var(--orange-dk); }
  .fc-actions { display:flex; align-items:center; gap:2px; border-top:1px solid var(--line3); padding-top:8px; }
  .fc-act { border:none; background:transparent; border-radius:8px; font-size:12px; font-weight:500; color:var(--sec); padding:5px 10px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
  .fc-act:hover { background:var(--hair); color:var(--ink); }
  .fc-act.lit { color:var(--orange); }
  .fc-comments { display:none; flex-direction:column; gap:7px; border-top:1px dashed var(--line2); padding-top:9px; }
  .fc-comments.open { display:flex; }
  .fc-comment { font-size:12px; color:var(--body); background:var(--chipbg); border-radius:9px; padding:7px 10px; line-height:1.5; }
  .fc-comment b { color:var(--ink); }
  .fc-cinput { display:flex; gap:6px; }
  .fc-cinput input { flex:1; background:var(--chipbg); border:1px solid var(--line); border-radius:9px; font-size:12px; padding:7px 10px; outline:none; font-family:inherit; }
  .fc-cinput input:focus { border-color:var(--orange); }

  .home-right { position:sticky; top:0; display:flex; flex-direction:column; gap:12px; }
  .rr-card { border:1px solid var(--line); border-radius:12px; background:#fff; padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
  .rr-title { font-size:12px; font-weight:600; display:flex; align-items:center; gap:7px; }
  .rr-badge { font-family:'Geist Mono',monospace; font-size:9.5px; background:var(--orange); color:#fff; border-radius:8px; padding:1px 6px; }
  .rr-item { font-size:12px; color:var(--body); line-height:1.5; cursor:pointer; border-radius:8px; padding:4px 6px; }
  .rr-item:hover { background:var(--hair); }
  .rr-item b { color:var(--ink); }
  .rr-meta { font-size:10.5px; color:var(--faint); }
  .rr-empty { font-size:11.5px; color:var(--faint); }

  .board-toolbar { display:flex; align-items:center; gap:8px; padding:16px 26px 0; flex-wrap:wrap; }
  /* ── Signal detail drawer ───────────────────────────────────────────── */
  #sigDrawer { position:fixed; top:0; right:0; bottom:0; width:min(500px,94vw); z-index:92; background:#fff; border-left:1px solid var(--edge); box-shadow:-12px 0 40px rgba(27,29,49,.14); display:flex; flex-direction:column; transform:translateX(103%); transition:transform .22s ease; }
  #sigDrawer.open { transform:none; }
  .sgd-head { flex:none; display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--line2); flex-wrap:wrap; }
  .sgd-stepper { display:flex; align-items:flex-start; padding:14px 18px 4px; }
  .step { flex:1; display:flex; flex-direction:column; align-items:center; gap:5px; position:relative; cursor:pointer; border:none; background:none; padding:0; }
  .step:not(:last-child):after { content:''; position:absolute; top:7px; left:calc(50% + 12px); right:calc(-50% + 12px); height:2px; background:var(--line); }
  .step.done:not(:last-child):after { background:var(--orange); }
  .step-dot { width:15px; height:15px; border-radius:99px; border:2.5px solid var(--line); background:#fff; z-index:1; transition:all .15s; }
  .step.done .step-dot { background:var(--orange); border-color:var(--orange); }
  .step.current .step-dot { border-color:var(--orange); box-shadow:0 0 0 3px var(--orange-tint); }
  .step-lbl { font-size:10px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
  .step.current .step-lbl, .step.done .step-lbl { color:var(--orange-dk); }
  .step:hover .step-dot { border-color:var(--orange); }
  /* the assignee row wraps: the note and due date sit under the name rather
     than running off the edge of a 500px drawer */
  .sgd-quick { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:8px 18px 10px; border-bottom:1px solid var(--line2); }
  .sgd-tabs { display:flex; gap:0; padding:0 18px; border-bottom:1px solid var(--line2); flex:none; }
  .sgd-tab { border:none; border-bottom:2px solid transparent; background:none; font-size:12.5px; font-weight:500; color:var(--sec); padding:9px 12px 10px; margin-bottom:-1px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
  .sgd-tab:hover { color:var(--ink); }
  .sgd-tab.on { border-bottom-color:var(--orange); color:var(--ink); font-weight:600; }
  .sgd-tab .n { font-family:'Geist Mono',monospace; font-size:9.5px; background:var(--hair); border-radius:6px; padding:1px 5px; color:var(--sec); }
  .sgd-body { flex:1; min-height:0; overflow-y:auto; padding:16px 18px; display:flex; flex-direction:column; gap:14px; }
  .sgd-sec-label { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; }
  .sgd-title { font-size:16px; font-weight:600; line-height:1.35; letter-spacing:-.01em; }
  .sgd-sub { font-size:11.5px; color:var(--muted); }
  .sev-pill { font-family:'Geist Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; border-radius:99px; padding:2px 8px; font-weight:500; }
  .sev-pill.high { background:#FEF6F6; color:var(--red); border:1px solid #F5C6C6; }
  .sev-pill.medium { background:#FEF7EC; color:#B97509; border:1px solid #F5DFA6; }
  .sev-pill.low, .sev-pill.info { background:var(--hair); color:var(--sec); border:1px solid var(--line); }
  .sgd-metrics { display:flex; align-items:flex-end; gap:22px; border:1px solid var(--line); border-radius:12px; padding:12px 14px; flex-wrap:wrap; }
  .calc-note { border:1px dashed var(--line); border-radius:10px; padding:9px 12px; font-size:12px; color:var(--body); line-height:1.55; background:var(--chipbg); }
  .calc-note summary { cursor:pointer; font-weight:600; color:var(--sec); font-size:11.5px; list-style:none; }
  .calc-note summary::before { content:'ℹ '; }
  .sgd-timeline { display:flex; flex-direction:column; gap:0; }
  .tl-row { display:grid; grid-template-columns:14px 1fr; gap:10px; position:relative; padding-bottom:12px; }
  .tl-row:not(:last-child):before { content:''; position:absolute; left:5px; top:12px; bottom:0; width:2px; background:var(--line2); }
  .tl-dot { width:10px; height:10px; border-radius:99px; background:#fff; border:2.5px solid var(--faint); margin-top:3px; }
  .tl-dot.hot { border-color:var(--orange); }
  .tl-text { font-size:12px; color:var(--body); line-height:1.5; }
  .tl-text .rr-meta { display:block; }
  .sgd-actions-row { display:flex; gap:7px; flex-wrap:wrap; }
  /* report / benchmark / item detail inside the signal drawer */
  .rep-note { font-size:11.5px; color:var(--muted); margin-bottom:8px; }
  .rep-sheet { border:1px solid var(--line2); border-radius:9px; padding:8px 10px; margin-bottom:7px; }
  .rep-sheet summary { cursor:pointer; display:flex; align-items:center; gap:8px; font-size:12.5px; list-style:none; }
  .rep-sheet summary::-webkit-details-marker { display:none; }
  .rep-sheet summary:before { content:'▸ '; color:var(--faint); }
  .rep-sheet[open] summary:before { content:'▾ '; color:var(--orange); }
  .rep-sheet .rep-n { margin-left:auto; font-family:'Geist Mono',monospace; font-size:10px; color:var(--muted); }
  .rep-purpose { font-size:11px; color:var(--muted); margin:5px 0 6px; }
  .rep-more { font-size:10.5px; color:var(--faint); margin-top:5px; font-family:'Geist Mono',monospace; }
  /* a preview scrolls sideways rather than wrapping every cell in a 500px drawer */
  .rep-sheet .tbl-scroll { overflow-x:auto; }
  .rep-sheet table { min-width:max-content; }
  .rep-sheet table td, .rep-sheet table th { white-space:nowrap; }
  /* ── drawer viz: at-a-glance tiles, bar chart, trend ── */
  .viz-glance { display:grid; grid-template-columns:repeat(auto-fit,minmax(86px,1fr)); gap:8px; margin:2px 0 4px; }
  .viz-tile { border:1px solid var(--line); border-radius:11px; background:#fff; padding:10px 11px; display:flex; flex-direction:column; gap:2px; min-width:0; }
  .viz-tile .v { font-size:19px; font-weight:650; color:var(--ink); letter-spacing:-.015em; }
  .viz-tile .l { font-size:10.5px; color:var(--sec); font-weight:600; }
  .viz-tile .s { font-size:10px; color:var(--muted); line-height:1.35; }
  .viz-tile .d { font-size:10px; font-weight:650; }
  .viz-tile .d.good { color:#067E76; }
  .viz-tile .d.bad { color:var(--red); }
  .viz-card { border:1px solid var(--line); border-radius:11px; background:#fff; padding:12px 13px 10px; margin-top:8px; }
  .viz-title { font-size:12.5px; font-weight:650; color:var(--ink); }
  .viz-sub { font-size:11px; color:var(--muted); line-height:1.45; margin:2px 0 9px; }
  .viz-src { font-size:10px; color:var(--faint); margin-top:8px; font-family:'Geist Mono',monospace; }
  .viz-legend { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:7px; }
  .viz-legend span { display:inline-flex; align-items:center; gap:6px; font-size:10.5px; color:var(--sec); font-weight:600; }
  .viz-legend i { width:14px; height:0; border-top:2.5px solid; border-radius:2px; }
  .viz-bar-row { display:grid; grid-template-columns:minmax(90px,40%) 1fr; align-items:center; gap:9px; margin:4px 0; }
  .viz-bar-name { font-size:10.5px; color:var(--sec); text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .viz-bar-track { position:relative; height:16px; }
  .viz-baseline { position:absolute; top:-4px; bottom:-4px; width:1px; background:var(--line); }
  .viz-bar { position:absolute; top:0; height:16px; cursor:default; }
  .viz-bar.pos { background:#2a78d6; border-radius:0 4px 4px 0; }
  .viz-bar.neg { background:#e34948; border-radius:4px 0 0 4px; }
  .viz-bar:hover { filter:brightness(1.14); }
  .viz-bar-val { position:absolute; top:50%; transform:translateY(-50%); font-size:10px; font-weight:600; color:var(--sec); font-family:'Geist Mono',monospace; white-space:nowrap; }
  .viz-bar-val.in { color:#fff; z-index:1; }
  .viz-line-wrap { position:relative; }
  .viz-tip { position:fixed; z-index:300; pointer-events:none; background:#22252B; color:#F4F6FA; border-radius:8px; padding:7px 10px; font-size:11px; line-height:1.55; box-shadow:0 4px 14px rgba(20,24,40,.28); display:none; max-width:250px; }
  .viz-tip b { font-size:12px; }
  .viz-tip .k { display:inline-block; width:12px; border-top:2.5px solid; border-radius:2px; margin-right:6px; vertical-align:middle; }
  /* feed card: fact strip + solid stat tile */
  .fc-facts { display:flex; gap:20px; flex-wrap:wrap; padding:2px 0 1px; }
  .fc-fact { display:flex; flex-direction:column; }
  .fc-fact b { font-size:15px; font-weight:650; color:var(--ink); letter-spacing:-.01em; }
  .fc-fact span { font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-top:1px; }
  .fc-stat.tile { background:linear-gradient(155deg,#2E44B0,#1B2B7A); border:none; min-width:110px; padding:13px 16px; border-radius:13px; }
  .fc-stat.tile .sv { color:#fff; font-size:23px; }
  .fc-stat.tile .sc { color:rgba(255,255,255,.72); }
  .fc-stat.tile.green { background:linear-gradient(155deg,#0E7A62,#0A5847); }
  .bm-tiers { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
  .bm-tier { display:inline-flex; gap:6px; align-items:baseline; border:1px solid var(--line2); border-radius:99px; padding:3px 10px; font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--sec); }
  .bm-tier b { font-family:'Geist',sans-serif; font-size:10.5px; color:var(--ink); }
  .bm-read { font-size:12px; color:var(--body); line-height:1.55; margin-top:5px; }
  .sgd-foot { flex:none; display:flex; align-items:center; gap:8px; padding:9px 16px; border-top:1px solid var(--line2); background:var(--chipbg); font-size:11px; color:var(--muted); font-family:'Geist Mono',monospace; }
  /* Ask thread, docked in the drawer under the ticket it is about. Collapsed it
     is one input; it grows as the conversation does, capped so the signal above
     never scrolls out of reach. */
  .sgd-ask { flex:none; display:flex; flex-direction:column; border-top:1px solid var(--line2); background:#fff; }
  .sgd-ask-thread { display:none; flex-direction:column; gap:10px; padding:12px 18px 4px; max-height:42vh; overflow-y:auto; }
  .sgd-ask.has-turns .sgd-ask-thread { display:flex; }
  .sgd-ask-q { align-self:flex-end; max-width:88%; background:var(--ink); color:#fff; border-radius:12px 12px 4px 12px; padding:7px 11px; font-size:12.5px; line-height:1.5; }
  .sgd-ask-a { font-size:12.5px; line-height:1.62; color:var(--body); }
  .sgd-ask-a > :first-child { margin-top:0; }
  .sgd-ask-a > :last-child { margin-bottom:0; }
  .sgd-ask-a table { width:100%; border-collapse:collapse; font-size:11.5px; margin:8px 0; }
  .sgd-ask-a th, .sgd-ask-a td { border-bottom:1px solid var(--line2); padding:4px 6px; text-align:left; }
  .sgd-ask-status { display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--muted); }
  .sgd-ask-err { font-size:12px; color:var(--orange-dk); background:var(--orange-pale); border-radius:9px; padding:7px 10px; }
  .sgd-ask-more { align-self:flex-start; border:1px solid var(--line); background:#fff; border-radius:8px; font-size:11px; font-weight:500; color:var(--body); padding:4px 9px; cursor:pointer; font-family:inherit; }
  .sgd-ask-more:hover { border-color:var(--orange-lt); color:var(--orange-dk); }
  .sgd-ask-quick { display:flex; flex-wrap:wrap; gap:6px; padding:10px 18px 0; }
  .sgd-ask-quick:empty { display:none; }
  .sgd-ask-chip { border:1px solid var(--line); background:var(--chipbg); border-radius:99px; font-size:11.5px; color:var(--body); padding:4px 10px; cursor:pointer; font-family:inherit; }
  .sgd-ask-chip:hover { border-color:var(--orange-lt); background:var(--orange-pale); color:var(--orange-dk); }
  .sgd-ask-row { display:flex; align-items:flex-end; gap:8px; padding:10px 18px 12px; }
  .sgd-ask-row textarea { flex:1; min-height:36px; max-height:120px; resize:none; border:1px solid var(--line); border-radius:10px; background:var(--chipbg); font-family:inherit; font-size:12.5px; line-height:1.5; color:var(--ink); padding:9px 11px; outline:none; }
  .sgd-ask-row textarea:focus { border-color:var(--orange-lt); background:#fff; }
  .sgd-ask-send { flex:none; width:32px; height:32px; border:none; border-radius:99px; background:var(--orange); color:#fff; font-size:14px; cursor:pointer; }
  .sgd-ask-send:disabled { background:var(--line); cursor:default; }
  #app.sig-open .main { transition:margin-right .22s ease; }
  @media (min-width:1150px) { #app.sig-open .main { margin-right:500px; } }
  .hist-mini { display:grid; grid-template-columns:1fr auto auto; gap:4px 12px; font-size:11.5px; color:var(--body); }
  .hist-mini .mono { color:var(--sec); }
  .feed-tabs { display:flex; gap:2px; background:var(--hair); border:1px solid var(--line2); border-radius:99px; padding:3px; margin-left:auto; }
  .feed-tabs button { border:none; background:transparent; border-radius:99px; font-size:11.5px; font-weight:500; color:var(--sec); padding:4px 11px; cursor:pointer; }
  .feed-tabs button.on { background:#fff; color:var(--ink); font-weight:600; box-shadow:0 1px 3px rgba(27,29,49,.08); }
  .load-more { align-self:center; margin-top:4px; }
  .lane-dollars { font-family:'Geist Mono',monospace; font-size:10px; color:var(--red); font-weight:500; }

  /* Data-table card (drawer store table & friends) */
  .tbl-card { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
  .tbl-scroll { overflow-x:auto; }
  .tbl { min-width:420px; }
  .tbl-head, .tbl-row { display:grid; grid-template-columns:1.5fr 1fr 1fr .9fr; padding:0 12px; }
  .tbl-head { background:var(--chipbg); border-bottom:1px solid var(--line); }
  .tbl-head > div { padding:9px 8px; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; }
  .tbl-row { border-bottom:1px solid var(--hair); }
  .tbl-row:last-child { border-bottom:none; }
  .tbl-row > div { padding:9px 8px; font-size:12.5px; display:flex; align-items:center; }
  .tbl .num { font-family:'Geist Mono',monospace; font-size:12px; justify-content:flex-end; }
  .tbl .r { justify-content:flex-end; text-align:right; }
  .pos { color:var(--green); } .neg { color:var(--red); }
  /* Docked signal drawer: collapse Home to the feed column so nothing crushes */
  #app.sig-open .home-grid { grid-template-columns:minmax(0,1fr); }
  #app.sig-open .home-chan, #app.sig-open .home-right { display:none; }
  #app.sig-open .brief-row { grid-template-columns:1fr 1fr; }
  #app.sig-open .board { grid-template-columns:repeat(4,minmax(200px,1fr)); min-width:840px; }

  /* ── Parity pass: stat tiles, triage, AI panel ─────────────────────── */
  .fc-unread { width:8px; height:8px; border-radius:99px; background:#4B6EFF; flex:none; align-self:center; }
  .feed-card.unread .fc-title { font-weight:650; }
  .fc-bodyrow { display:flex; gap:14px; align-items:center; }
  .fc-bodyrow .fc-body { flex:1; min-width:0; }
  .fc-stat { flex:none; background:#EEF1FF; border:1px solid #DEE4FF; border-radius:14px; padding:10px 16px; text-align:center; min-width:92px; }
  .fc-stat.teal { background:#E9FAF8; border-color:#BDEEE9; }
  .fc-stat .si { font-size:15px; display:block; }
  .fc-stat .sv { font-size:19px; font-weight:700; letter-spacing:-.02em; display:block; font-family:'Geist Mono',monospace; color:#3D56D6; }
  .fc-stat.teal .sv { color:#067E76; }
  .fc-stat .sc { font-size:10px; color:var(--muted); display:block; margin-top:1px; }
  .fc-chip.growth { background:#E7FAF8; color:#067E76; border-color:#9FE7E0; font-weight:600; }
  .fc-chip.topic { background:#F4F0FF; color:#6B4EE6; border-color:#DCD2FA; }
  .fc-chip.overdue { background:#FEF6F6; color:var(--red); border-color:#F5C6C6; font-weight:600; }
  /* ── Customer data sources (hub + provenance chips) ── */
  .fc-chip.src { background:#EFF6FE; color:#2563B8; border-color:#C9DFF7; }
  .fc-chip.focus { background:#FFF8EC; color:#8A6100; border-color:#EEDCA8; font-style:italic; }
  .src-row { display:flex; align-items:center; gap:8px; width:100%; border:none; background:transparent; border-radius:9px; padding:7px 8px; cursor:pointer; text-align:left; }
  .src-row:hover { background:var(--chipbg); }
  .src-ico { font-size:14px; width:18px; text-align:center; flex:none; }
  .src-info { flex:1; min-width:0; display:flex; flex-direction:column; }
  .src-name { font-size:12.5px; color:var(--body); font-weight:550; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .src-meta { font-size:10.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .src-dot { width:8px; height:8px; border-radius:99px; background:#0ABFB3; flex:none; }
  .src-dot.warn { background:#E8A13C; }
  .srch-intro { font-size:12.5px; color:var(--sec); line-height:1.55; }
  .srcm-card { border:1px solid var(--line); border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; gap:10px; background:#fff; }
  .srcm-head { display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--ink); }
  .srcm-type { font-size:10px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--sec); background:var(--chipbg); border:1px solid var(--line); border-radius:6px; padding:2px 7px; flex:none; }
  .srcm-meta { font-size:11.5px; color:var(--muted); }
  .srcm-warn { font-size:11.5px; color:#8A5B00; background:#FFF8EC; border:1px solid #EEDCA8; border-radius:8px; padding:6px 10px; }
  .srcm-card label { font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .srcm-card textarea, .srcm-card input { background:var(--chipbg); border:1px solid var(--line); border-radius:9px; font-size:12.5px; padding:8px 10px; outline:none; color:var(--ink); font-family:inherit; width:100%; resize:vertical; }
  .srcm-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
  .srcm-endpoint { display:flex; flex-direction:column; gap:6px; }
  .srcm-curl { background:#22252B; color:#D6E4F0; font-size:11px; line-height:1.5; border-radius:9px; padding:10px 12px; overflow-x:auto; white-space:pre; margin:0; font-family:ui-monospace,Consolas,monospace; }
  .src-preview { display:none; }
  .src-preview.open { display:flex; flex-direction:column; gap:6px; }
  .src-preview .feed-card { pointer-events:none; background:var(--chipbg); }
  .src-preview .fc-actions, .src-preview .fc-comments { display:none; }
  .src-prevlabel { font-size:11px; color:var(--muted); font-style:italic; }
  .srcw-tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .srcw-tile { display:flex; flex-direction:column; gap:4px; align-items:flex-start; border:1px solid var(--line); background:var(--chipbg); border-radius:11px; padding:12px; cursor:pointer; text-align:left; font-size:11.5px; color:var(--sec); line-height:1.4; }
  .srcw-tile:hover { border-color:var(--orange); }
  .srcw-tile .ic { font-size:18px; }
  .srcw-tile b { font-size:12.5px; color:var(--ink); }
  .srcw-drop { border:1.5px dashed var(--line); border-radius:11px; padding:22px; text-align:center; font-size:12.5px; color:var(--sec); cursor:pointer; }
  .srcw-drop.over { border-color:var(--orange); background:var(--orange-pale); }
  .srcw-drop a { color:var(--orange); }
  .srcw-schema { display:flex; gap:6px; flex-wrap:wrap; }
  .srcw-note { font-size:12px; color:var(--muted); font-style:italic; }
  .feed-card.growth, .sig-card.growth { border-left-color:#0ABFB3; }
  .fc-act.dim { margin-left:auto; color:var(--muted); }
  .board-jump { align-self:flex-end; margin-left:10px; white-space:nowrap; }
  .nav-sec { font-family:'Geist Mono',monospace; font-size:9px; letter-spacing:.14em; color:rgba(255,255,255,.38); padding:4px 14px 2px; }
  #boardAI { padding:0 18px; }
  .ai-panel { margin:0 0 12px; border:1px solid #DEE4FF; background:linear-gradient(180deg,#F6F8FF,#FBFCFF); border-radius:14px; padding:11px 16px; font-size:12.5px; color:var(--body); line-height:1.55; }
  .ai-panel b { color:#4B6EFF; }
  .ai-ask { border:none; background:none; color:#4B6EFF; font-weight:600; font-size:12px; cursor:pointer; padding:0; }
  #disPop { position:fixed; display:none; z-index:120; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 34px rgba(27,29,49,.16); padding:6px; min-width:210px; }
  #disPop .mp-title { font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding:6px 10px 4px; font-weight:600; }
  #disPop .mp-item { padding:7px 10px; border-radius:8px; font-size:12.5px; cursor:pointer; }
  #disPop .mp-item:hover { background:var(--hair); }
  .dis-banner { border:1px solid #F5C6C6; background:#FEF6F6; color:var(--red); border-radius:10px; padding:9px 12px; font-size:12px; }
  .res-card { border:1px solid #BDEEE9; background:#F2FBFA; border-radius:12px; padding:11px 14px; }
  .res-steps { list-style:none; margin:0; padding:0; font-size:12.5px; color:var(--body); display:flex; flex-direction:column; gap:3px; }
  .res-step { display:flex; gap:8px; align-items:center; font-size:12.5px; padding:3px 0; cursor:pointer; }
  .sgd-note-row { flex-basis:100%; min-width:0; display:flex; gap:8px; align-items:center; margin-top:4px; }
  .sgd-note-row input:not([type=date]) { flex:1; min-width:0; border:1px solid var(--line); border-radius:8px; padding:6px 9px; font-size:12px; font-family:inherit; outline:none; }
  .sgd-due { display:flex; gap:5px; align-items:center; font-size:11px; color:var(--muted); white-space:nowrap; }
  .sgd-due input { border:1px solid var(--line); border-radius:8px; padding:5px 7px; font-size:11.5px; font-family:inherit; }

  /* ── Signal board v3: KPI strip + hero + opportunity map + swim lanes ── */
  .board-scroll { flex:1; min-height:0; overflow-y:auto; padding:16px 26px 44px; display:flex; flex-direction:column; gap:16px; }
  .board-scroll > * { flex:0 0 auto; }
  .board-scroll .kpi-strip { display:flex; gap:10px; align-items:stretch; flex-wrap:wrap; overflow:visible; background:none; border:none; }
  .kc { flex:1; min-width:170px; background:#fff; border:1px solid var(--line); border-left:3px solid var(--c,#ccc); border-radius:12px; padding:10px 14px; cursor:pointer; transition:box-shadow .15s, transform .15s; }
  .kc:hover { box-shadow:0 4px 14px rgba(27,29,49,.08); }
  .kc.on { background:var(--chipbg); border-color:var(--c); box-shadow:inset 0 0 0 1px var(--c); }
  .kc-hd { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
  .kc-lbl { font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--sec); }
  .kc-cnt { font-family:'Geist Mono',monospace; font-size:10px; color:var(--muted); white-space:nowrap; }
  .kc-val { font-family:'Geist Mono',monospace; font-size:21px; font-weight:600; letter-spacing:-.02em; color:var(--c); margin-top:3px; }
  .kc-sub { font-size:10.5px; color:var(--muted); margin-top:1px; }
  .kc-back { align-self:center; border:1px solid var(--line); background:#fff; border-radius:99px; padding:7px 13px; font-size:12px; font-weight:500; color:var(--body); cursor:pointer; white-space:nowrap; }
  .hero-row { display:grid; grid-template-columns:minmax(300px,1.35fr) minmax(260px,1fr) minmax(240px,1fr); gap:14px; align-items:stretch; }
  @media (max-width:1150px) { .hero-row { grid-template-columns:1fr 1fr; } .tm-panel { grid-column:1 / -1; min-height:400px; } }
  .hero-panel, .hd-panel, .tm-panel { background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; display:flex; flex-direction:column; min-height:476px; }
  .hc-top { display:flex; align-items:center; gap:10px; }
  .hc-lbl { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--sec); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .hero-dots { display:flex; gap:5px; }
  .h-dot { width:7px; height:7px; border-radius:99px; border:none; background:var(--line); cursor:pointer; padding:0; }
  .h-dot.on { background:var(--orange); }
  .hc-chart { position:relative; flex:1; min-height:0; display:flex; align-items:center; }
  .hc-val { position:absolute; top:0; right:2px; font-family:'Geist Mono',monospace; font-size:13px; color:var(--muted); }
  .hc-chart svg { width:100%; height:100%; }
  .hd-panel { gap:9px; }
  .hd-name { font-size:14.5px; font-weight:600; line-height:1.3; letter-spacing:-.01em; }
  .hd-ret { font-size:11px; color:var(--muted); margin-top:1px; }
  .cat-tag { font-family:'Geist Mono',monospace; font-size:9px; letter-spacing:.07em; text-transform:uppercase; border-radius:99px; padding:2px 8px; font-weight:500; }
  .hd-mets { display:flex; gap:18px; }
  .hm-v { font-family:'Geist Mono',monospace; font-size:16px; font-weight:600; letter-spacing:-.01em; }
  .hm-l { font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin-top:1px; }
  .hd-insight { flex:1; min-height:0; overflow-y:auto; background:linear-gradient(180deg,#F6F8FF,#FBFCFF); border:1px solid #DEE4FF; border-radius:10px; padding:9px 11px; font-size:11.5px; color:var(--body); line-height:1.55; }
  .hd-insight b { color:#4B6EFF; }
  .hd-acts { display:flex; gap:6px; flex-wrap:wrap; margin-top:auto; }
  .tm-hd { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
  .tm-ttl { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--sec); }
  .tm-flbl { margin-left:auto; font-family:'Geist Mono',monospace; font-size:9.5px; color:var(--muted); }
  .tm-flbl.filtered { color:var(--orange); font-weight:600; }
  .tm-wrap { flex:1; min-height:150px; position:relative; }
  .tm-wrap canvas { position:absolute; inset:0; width:100%; height:100%; cursor:pointer; }
  .tm-tip { position:absolute; display:none; background:#1B1D31; color:#fff; border-radius:8px; padding:7px 10px; font-size:11px; line-height:1.45; pointer-events:none; z-index:5; max-width:190px; }
  .lanes { display:flex; flex-direction:column; gap:16px; }
  .lane3 { display:flex; flex-direction:column; gap:9px; }
  .lane3-hdr { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
  .lane3-ttl { font-size:14px; font-weight:600; letter-spacing:-.01em; }
  .lane3-sub { font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; font-weight:500; }
  .lane3-total { margin-left:auto; font-family:'Geist Mono',monospace; font-size:12.5px; font-weight:600; }
  .lane3-cnt { font-family:'Geist Mono',monospace; font-size:10px; color:var(--muted); background:#fff; border:1px solid var(--line); border-radius:8px; padding:1px 7px; }
  .lane3-del { border:none; background:none; color:var(--muted); cursor:pointer; font-size:13px; padding:2px 5px; }
  .lane3-del:hover { color:var(--red); }
  .lane3-cards { display:grid; grid-auto-flow:column; grid-auto-columns:288px; gap:11px; overflow-x:auto; padding:2px 2px 8px; scrollbar-width:thin; }
  .lane3-empty { font-size:12px; color:var(--muted); padding:6px 2px; }
  .lcard { background:#fff; border:1px solid var(--line); border-radius:13px; padding:0 0 11px; display:flex; flex-direction:column; gap:7px; cursor:pointer; transition:box-shadow .15s; overflow:hidden; }
  .lcard:hover { box-shadow:0 5px 16px rgba(27,29,49,.09); }
  .lc-chart { position:relative; background:var(--chipbg); border-bottom:1px solid var(--line2); padding:9px 12px 5px; height:66px; }
  .lc-chart .sev-pill { position:absolute; top:8px; left:10px; }
  .lc-val { position:absolute; top:8px; right:11px; font-family:'Geist Mono',monospace; font-size:13px; font-weight:600; }
  .lc-title { font-size:12.8px; font-weight:600; line-height:1.35; padding:2px 12px 0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .lc-type { font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); padding:0 12px; display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
  .lc-st { font-family:'Geist Mono',monospace; font-size:9px; border-radius:99px; padding:1px 7px; background:var(--hair); color:var(--sec); border:1px solid var(--line); text-transform:uppercase; }
  .lc-narr { font-size:11.5px; color:var(--body); line-height:1.5; padding:0 12px; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
  .lc-foot { display:flex; align-items:center; gap:6px; padding:0 12px; }
  .lc-exp { font-family:'Geist Mono',monospace; font-size:11.5px; font-weight:600; }
  .lc-btns { margin-left:auto; display:flex; gap:2px; }
  .lc-btns button { border:none; background:none; font-size:11px; color:var(--sec); cursor:pointer; padding:3px 5px; border-radius:7px; font-weight:500; }
  .lc-btns button:hover { background:var(--hair); color:var(--ink); }
  .lc-btns button.lit { color:var(--orange); }

  /* ── Board v4: workflows / measurement / results ───────────────────── */
  .board-nav { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
  .pv-wrap { position:relative; }
  .pv-menu { position:absolute; top:38px; left:0; z-index:60; display:none; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 14px 40px rgba(27,29,49,.16); min-width:320px; padding:8px; }
  .pv-menu.open { display:block; }
  .pv-head { font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; padding:6px 10px 4px; }
  .pv-item { display:block; width:100%; text-align:left; border:none; background:none; border-radius:10px; padding:8px 10px; cursor:pointer; }
  .pv-item:hover { background:var(--hair); }
  .pv-name { font-size:13px; font-weight:600; color:var(--ink); display:flex; gap:7px; align-items:center; }
  .pv-soon { font-family:'Geist Mono',monospace; font-size:8.5px; letter-spacing:.08em; background:var(--hair); border:1px solid var(--line); border-radius:99px; padding:1px 7px; color:var(--muted); }
  .pv-desc { font-size:11px; color:var(--muted); line-height:1.45; margin-top:2px; }
  .pv-anchor { font-size:10px; color:var(--sec); margin-top:2px; }
  .pb-strip { display:flex; gap:10px; align-items:center; flex-wrap:wrap; width:100%; }
  .pb-name { font-size:15px; font-weight:600; letter-spacing:-.01em; }
  .pb-sub { font-size:11px; color:var(--muted); }
  .pb-stage { background:#fff; border:1px solid var(--line); border-radius:12px; padding:7px 13px; text-align:center; min-width:86px; }
  .pb-stage.none { opacity:.45; }
  .pb-n { font-family:'Geist Mono',monospace; font-size:16px; font-weight:600; display:block; }
  .pb-l { font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .tm-bar { display:flex; gap:7px; align-items:center; font-family:'Geist Mono',monospace; font-size:11px; color:var(--sec); background:var(--chipbg); border:1px solid var(--line2); border-radius:99px; padding:5px 8px 5px 13px; }
  .tm-bar button { border:1px solid var(--line); background:#fff; border-radius:99px; font-size:11px; padding:3px 10px; cursor:pointer; font-weight:500; color:var(--body); }
  .lane3-pin { border:1px solid var(--line); background:#fff; border-radius:99px; font-size:10.5px; padding:3px 10px; cursor:pointer; color:var(--sec); font-weight:500; }
  .lane3-pin.on { background:#E9FAF8; border-color:#9FE7E0; color:#067E76; }
  .lane3-cfg { border:none; background:none; color:var(--muted); cursor:pointer; font-size:13px; padding:2px 4px; }
  .lane3-cfg:hover { color:var(--ink); }
  .lane3-meas { font-family:'Geist Mono',monospace; font-size:9px; background:#F4F0FF; color:#6B4EE6; border:1px solid #DCD2FA; border-radius:99px; padding:2px 8px; }
  .team-pulse { display:flex; gap:12px; align-items:center; background:#1B1D31; color:#fff; border-radius:14px; padding:11px 16px; }
  .tp-ttl { font-size:12.5px; font-weight:600; }
  .tp-sub { font-size:10.5px; color:rgba(255,255,255,.55); }
  .tp-stat { display:flex; gap:7px; align-items:baseline; background:rgba(255,255,255,.07); border-radius:10px; padding:6px 12px; }
  .tp-n { font-family:'Geist Mono',monospace; font-size:15px; font-weight:600; }
  .tp-l { font-size:10px; color:rgba(255,255,255,.6); }
  .tp-stat.overdue .tp-n { color:#FF9A7B; }
  .wf-steps { display:flex; flex-direction:column; gap:8px; }
  .wf-step { display:grid; grid-template-columns:52px 1fr; gap:12px; border:1px solid var(--line); border-radius:11px; padding:9px 12px; }
  .wf-off { font-family:'Geist Mono',monospace; font-size:12px; font-weight:600; color:var(--orange); }
  .wf-nm { font-size:12.5px; font-weight:600; }
  .wf-prod { font-size:11px; color:var(--muted); margin-top:2px; }
  .meas-card { border:1px solid var(--line); border-radius:12px; padding:11px 14px; }
  /* Lane config: derived category + the methodology behind the chosen types */
  /* Kickoff: the standard schedule, with per-launch adjustment kept secondary */
  .wf-sku-bar { display:flex; align-items:center; gap:9px; }
  .wf-sku-bar input { flex:1; }
  .wf-sku-count { flex:none; font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .wf-sched-hd { display:flex; align-items:center; gap:8px; margin-top:4px; }
  .wf-adj-btn { border:1px solid var(--line); background:#fff; border-radius:8px; font-family:inherit; font-size:11px; color:var(--sec); padding:3px 9px; cursor:pointer; }
  .wf-adj-btn:hover { border-color:var(--orange-lt); color:var(--orange-dk); }
  .wf-adj-btn.on { border-color:var(--orange); background:var(--orange-pale); color:var(--orange-dk); }
  .wf-adjust { display:flex; flex-direction:column; gap:6px; border:1px solid var(--orange-lt); background:var(--orange-pale); border-radius:10px; padding:10px 12px; }
  .wf-adj-row { display:flex; align-items:center; gap:9px; font-size:12px; }
  .wf-adj-row .nm { flex:1; min-width:0; color:var(--ink); }
  .wf-adj-row input { width:64px; border:1px solid var(--line); border-radius:7px; padding:4px 7px; font-family:'Geist Mono',monospace; font-size:11.5px; text-align:right; }
  .wf-adj-row .std { font-size:10.5px; color:var(--muted); font-family:'Geist Mono',monospace; width:74px; }
  .wf-adj-row .date { font-size:10.5px; color:var(--orange-dk); width:64px; text-align:right; }
  .wf-adj-note { font-size:11px; color:var(--orange-dk); }
  /* Team board: lens switch + one section per owner */
  .tbd-lens-sw { display:inline-flex; gap:4px; margin-left:10px; }
  .tbd-lens-sw button { border:1px solid var(--line); background:#fff; border-radius:7px; font-family:inherit; font-size:11px; color:var(--sec); padding:2px 8px; cursor:pointer; }
  .tbd-lens-sw button.on { border-color:var(--orange); background:var(--orange-pale); color:var(--orange-dk); font-weight:600; }
  .tbd-grp { margin-bottom:8px; }
  .tbd-grp-hd { display:flex; align-items:center; gap:10px; width:100%; padding:9px 10px; border:1px solid var(--line2); border-radius:10px; background:#fff; font-family:inherit; font-size:12.5px; color:var(--ink); text-align:left; cursor:pointer; }
  .tbd-grp-hd:hover { border-color:var(--orange-lt); }
  .tbd-grp.open .tbd-grp-hd { border-bottom-left-radius:0; border-bottom-right-radius:0; border-color:var(--line); }
  .tbd-grp-hd .car { color:var(--faint); font-size:10px; }
  .tbd-grp.open .tbd-grp-hd .car { color:var(--orange); }
  .tbd-grp-hd .money { color:var(--sec); }
  .tbd-grp.open table { border:1px solid var(--line); border-top:none; border-radius:0 0 10px 10px; }
  .tbd-grp-hd .n { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .tbd-grp-hd .n.late { color:var(--orange-dk); }
  .tbd-none { color:var(--faint); }
  .tbd-queue-note { margin:10px 2px 4px; font-size:11.5px; color:var(--muted); }
  .tbd-queue-note a { color:var(--orange); cursor:pointer; }
  /* Portfolio timeline: one marker per launch on each activity row. The marker
     carries the launch's number so the row can be read rather than clicked. */
  .pf-mark { position:absolute; top:50%; min-width:18px; height:18px; transform:translate(-50%,-50%); padding:0 4px;
             border-radius:99px; border:1px dashed var(--line); background:#fff; color:var(--muted);
             font-family:'Geist Mono',monospace; font-size:9.5px; font-weight:600; line-height:16px; cursor:pointer; }
  .pf-mark.open  { background:var(--orange); border:1px solid var(--orange); color:#fff; }
  .pf-mark.clean { background:var(--ink); border:1px solid var(--ink); color:#fff; }
  .pf-mark.wide { min-width:52px; }
  .pf-mark:hover { z-index:3; outline:2px solid var(--orange-lt); }
  .pf-mark.start { transform:translate(0,-50%); } .pf-mark.end { transform:translate(-100%,-50%); }
  .pf-key { display:flex; flex-wrap:wrap; gap:6px; padding:9px 2px 2px; }
  .pf-key-i { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:99px;
              background:#fff; font-family:inherit; font-size:11px; color:var(--body); padding:3px 9px 3px 3px; cursor:pointer; }
  .pf-key-i:hover { border-color:var(--orange-lt); color:var(--orange-dk); }
  .pf-key-i .n { width:17px; height:17px; flex:none; border-radius:99px; background:var(--ink); color:#fff;
                 font-family:'Geist Mono',monospace; font-size:9.5px; line-height:17px; text-align:center; }
  .pf-key-i .d { font-family:'Geist Mono',monospace; font-size:9.5px; color:var(--faint); }
  .pf-key-i .x { font-family:'Geist Mono',monospace; font-size:9.5px; color:#fff; background:var(--orange); border-radius:99px; padding:0 5px; }
  /* while scoped, the key becomes the switcher: back to all, or straight to another launch */
  .pf-key-i.all { border-color:var(--orange); background:var(--orange-pale); color:var(--orange-dk); font-weight:600; }
  .pf-key-i.all .n { background:var(--orange); }
  /* Workflow library: one tile per standard workflow, all the same size */
  /* one row per workflow — a list reads down, and every row is the same shape */
  .wf-tiles { display:flex; flex-direction:column; gap:8px; }
  /* fixed height: a list of workflows should scan evenly, so a longer description
     clamps rather than making its row taller than the rest */
  .wf-tile { display:grid; grid-template-columns:1fr 190px; align-items:center; gap:14px; height:70px; text-align:left; font-family:inherit; border:1px solid var(--line); border-radius:11px; background:#fff; padding:11px 14px; cursor:pointer; overflow:hidden; }
  .wf-tile:hover { border-color:var(--orange-lt); box-shadow:0 3px 14px rgba(27,29,49,.07); }
  .wf-tile.soon { background:var(--chipbg); }
  .wf-tile-hd { display:flex; align-items:center; gap:7px; font-size:13.5px; color:var(--ink); }
  .wf-tile-desc { grid-column:1; font-size:11.5px; line-height:1.5; color:var(--sec); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .wf-tile-foot { grid-column:2; grid-row:1 / span 2; display:flex; flex-direction:column; align-items:flex-end; gap:2px; font-size:10.5px; color:var(--muted); font-family:'Geist Mono',monospace; }
  .wf-tile-foot .anch { color:var(--faint); }
  .wf-back { align-self:flex-start; border:none; background:none; font-family:inherit; font-size:12px; color:var(--orange); cursor:pointer; padding:0; }
  .wf-back:hover { color:var(--orange-dk); }
  .wf-detail-hd { display:flex; align-items:center; gap:8px; font-size:15px; }
  .wf-facts { display:flex; gap:14px; flex-wrap:wrap; font-size:11.5px; color:var(--sec); }
  .wf-watch { font-size:11px; color:var(--muted); margin-top:2px; }
  .lc-derived { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--body); background:var(--chipbg); border:1px solid var(--line2); border-radius:9px; padding:8px 11px; margin-bottom:2px; }
  .lc-derived .dot { width:9px; height:9px; border-radius:99px; flex:none; }
  .lc-derived .why { color:var(--muted); font-size:11px; }
  .lc-method { display:flex; flex-direction:column; gap:7px; }
  .lc-rule { border:1px solid var(--line2); border-radius:9px; padding:8px 11px; font-size:12px; color:var(--body); }
  .lc-rule b { color:var(--ink); }
  .lc-rule .cond { font-family:'Geist Mono',monospace; font-size:11px; color:var(--sec); display:block; margin-top:3px; }
  .lc-rule .cnt { color:var(--muted); }
  .lc-method .rr-empty { font-size:12px; color:var(--faint); }
  .meas-unit { font-family:'Geist Mono',monospace; font-size:9.5px; background:var(--hair); border:1px solid var(--line); border-radius:99px; padding:1px 8px; color:var(--sec); }
  /* Results time strip: a month of closed outcomes per bar, with the selected
     span brought forward and the rest left visible so the choice has context. */
  .rs-time { border:1px solid var(--line2); border-radius:12px; padding:11px 14px 9px; display:flex; flex-direction:column; gap:8px; }
  .rs-time-hd { display:flex; align-items:baseline; gap:10px; font-size:12px; color:var(--sec); }
  .rs-time-hd b { font-size:14px; color:var(--ink); }
  .rs-time-hd .n { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .rs-range { display:flex; align-items:center; gap:11px; }
  .rs-range input[type=range] { flex:1; accent-color:var(--orange); }
  .rs-range .lbl { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); white-space:nowrap; }
  .rs-range .rs-span { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--orange-dk); white-space:nowrap; min-width:66px; text-align:right; }
  /* Results: filters in a rail with their counts, table on the right */
  .rs-split { display:grid; grid-template-columns:212px 1fr; gap:16px; align-items:start; }
  @media (max-width:1000px) { .rs-split { grid-template-columns:1fr; } }
  .rs-rail { display:flex; flex-direction:column; gap:14px; border-right:1px solid var(--line2); padding-right:14px; }
  .rs-rail-sec { font-size:10px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--faint); margin-bottom:5px; }
  .rs-rail-i { display:flex; align-items:center; gap:8px; width:100%; border:none; background:none; border-radius:8px;
               font-family:inherit; font-size:12.5px; color:var(--body); padding:6px 8px; cursor:pointer; text-align:left; }
  .rs-rail-i:hover { background:var(--chipbg); }
  .rs-rail-i.on { background:var(--orange-pale); color:var(--orange-dk); font-weight:600; }
  .rs-rail-i .n { margin-left:auto; font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .rs-rail-i.on .n { color:var(--orange-dk); }
  .rs-av { width:22px; height:22px; flex:none; border-radius:99px; color:#fff; font-size:9.5px; font-weight:700;
           display:flex; align-items:center; justify-content:center; }
  .rs-main { min-width:0; }
  .rs-main-hd { display:flex; align-items:flex-start; gap:10px; margin-bottom:8px; }
  .rs-title { font-size:15px; font-weight:600; color:var(--ink); }
  .rs-chips { display:flex; flex-wrap:wrap; gap:6px; }
  .rs-chip { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); background:#fff; border-radius:99px;
             font-family:inherit; font-size:12px; color:var(--body); padding:4px 11px; cursor:pointer; }
  .rs-chip:hover { border-color:var(--orange-lt); }
  .rs-chip.on { border-color:var(--orange); background:var(--orange-pale); color:var(--orange-dk); font-weight:600; }
  .rs-chip .n { font-family:'Geist Mono',monospace; font-size:10.5px; color:var(--muted); }
  .rs-chip.on .n { color:var(--orange-dk); }
  .rslt-tbl tr.rs-total td { border-top:2px solid var(--line); font-weight:600; color:var(--ink); padding-top:9px; }
  .rslt-tbl { width:100%; border-collapse:collapse; font-size:12px; }
  .rslt-tbl th { text-align:left; font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); padding:6px 8px; border-bottom:1px solid var(--line); }
  .rslt-tbl td { padding:7px 8px; border-bottom:1px solid var(--line2); }
  .rslt-tbl tr.mrow { cursor:pointer; }
  .rslt-tbl tr.mrow:hover td { background:var(--chipbg); }
  .rslt-tbl .num { font-family:'Geist Mono',monospace; text-align:right; }
  .rslt-note { font-size:10.5px; color:var(--muted); line-height:1.5; margin-top:10px; }
  .modal.wide { max-width:760px; width:min(760px,94vw); }
  .sku-grid { flex:none; display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; min-height:110px; max-height:200px; overflow-y:auto; border:1px solid var(--line); border-radius:10px; padding:8px 10px; }
  .sku-grid label { font-size:11.5px; display:flex; gap:7px; align-items:center; }

  /* ── Topic (exception) boards ──────────────────────────────────────── */
  .tb-strip { display:flex; gap:12px; align-items:center; flex-wrap:wrap; width:100%; }
  .tb-name { font-size:15px; font-weight:600; letter-spacing:-.01em; }
  .tb-sub { font-size:11px; color:var(--muted); }
  .tb-admin { font-size:11px; color:var(--sec); background:var(--chipbg); border:1px solid var(--line2); border-radius:99px; padding:4px 11px; }
  .xbadge { font-family:'Geist Mono',monospace; font-size:8.5px; letter-spacing:.08em; text-transform:uppercase; border-radius:99px; padding:2px 8px; font-weight:500; }
  .xbadge.std { background:#F4F0FF; color:#6B4EE6; border:1px solid #DCD2FA; }
  .xbadge.copy { background:var(--hair); color:var(--sec); border:1px solid var(--line); }
  .xbadge.prompt { background:#EEF1FF; color:#3D56D6; border:1px solid #DEE4FF; }
  .xchip { font-family:'Geist Mono',monospace; font-size:9.5px; color:var(--sec); background:#fff; border:1px solid var(--line); border-radius:99px; padding:2px 9px; }
  .xchip.scope { color:var(--orange); border-color:#F5C6A8; background:#FEF7F2; }
  .lane3-hdr .xrow { display:flex; gap:6px; align-items:center; flex-wrap:wrap; flex-basis:100%; margin-top:3px; }
  .cfg-row { display:flex; gap:9px; align-items:center; margin-bottom:7px; }
  .cfg-row label { font-size:12px; color:var(--body); flex:1; }
  .cfg-row input[type=number], .cfg-row input[type=text] { width:110px; border:1px solid var(--line); border-radius:8px; padding:5px 9px; font-size:12px; font-family:'Geist Mono',monospace; }
  .cfg-locked { border:1px dashed var(--line); border-radius:10px; padding:9px 12px; font-size:11.5px; color:var(--sec); background:var(--chipbg); line-height:1.5; }
  .cfg-note { font-size:11px; color:var(--muted); line-height:1.5; }
  .cfg-radio { display:flex; gap:7px; align-items:center; font-size:12px; margin-bottom:4px; }
  .digest-frame { border:1px solid var(--line); border-radius:12px; overflow:hidden; max-height:400px; overflow-y:auto; background:#f0f2f7; }
  .ex-evidence { border:1px solid var(--line); border-radius:12px; overflow:hidden; }
  .ex-tabs { display:flex; gap:2px; padding:6px; background:var(--chipbg); border-bottom:1px solid var(--line2); }
  .ex-tabs button { border:none; background:none; border-radius:8px; font-size:11.5px; padding:4px 10px; cursor:pointer; color:var(--sec); font-weight:500; }
  .ex-tabs button.on { background:#fff; color:var(--ink); font-weight:600; box-shadow:0 1px 3px rgba(27,29,49,.08); }

  /* ── Team Board ────────────────────────────────────────────────────── */
  .modal.full { max-width:1180px; width:min(1180px,96vw); }
  .tbd-grid { display:grid; grid-template-columns:210px 1fr; gap:14px; min-height:420px; }
  .tbd-rail { display:flex; flex-direction:column; gap:14px; }
  .tbd-sec { font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:5px; }
  .tbd-f { display:flex; align-items:center; gap:8px; width:100%; border:1px solid transparent; background:none; border-radius:9px; padding:5px 9px; cursor:pointer; font-size:12.5px; color:var(--body); text-align:left; }
  .tbd-f:hover { background:var(--hair); }
  .tbd-f.on { background:var(--chipbg); border-color:var(--line); font-weight:600; }
  .tbd-f .n { margin-left:auto; font-family:'Geist Mono',monospace; font-size:11px; color:var(--muted); }
  .tbd-f.overdue .n { color:var(--red); font-weight:600; }
  .tbd-tbl { width:100%; border-collapse:collapse; font-size:12px; }
  .tbd-tbl th { text-align:left; font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); padding:6px 8px; border-bottom:1px solid var(--line); cursor:pointer; white-space:nowrap; }
  .tbd-tbl td { padding:7px 8px; border-bottom:1px solid var(--line2); }
  .tbd-tbl tr.trow { cursor:pointer; }
  .tbd-tbl tr.trow:hover td { background:var(--chipbg); }
  .tbd-st { font-family:'Geist Mono',monospace; font-size:9px; border-radius:99px; padding:1px 8px; text-transform:uppercase; white-space:nowrap; }
  .tbd-st.new { background:var(--hair); color:var(--sec); }
  .tbd-st.assigned { background:#EEF1FF; color:#3D56D6; }
  .tbd-st.in_progress { background:#FEF7EC; color:#B97509; }
  .tbd-st.resolved { background:#E9FAF8; color:#067E76; }
  .tbd-late { color:var(--red); font-weight:600; }
  .tbd-lens { font-size:11px; color:var(--muted); }

  /* ── Workflow instance monitor ─────────────────────────────────────── */
  .wm-here { border:1px solid #DEE4FF; background:linear-gradient(180deg,#F6F8FF,#FBFCFF); border-radius:12px; padding:10px 14px; font-size:12.5px; color:var(--body); line-height:1.55; }
  .wm-here b { color:#4B6EFF; }
  .wm-gantt { position:relative; height:76px; border:1px solid var(--line); border-radius:12px; background:var(--chipbg); margin:2px 0 4px; }
  .wm-axis { position:absolute; left:0; right:0; top:38px; height:2px; background:var(--line); }
  .wm-node { position:absolute; top:26px; transform:translateX(-50%); text-align:center; }
  .wm-dot { width:13px; height:13px; border-radius:99px; border:2.5px solid var(--line); background:#fff; margin:0 auto; }
  .wm-node.done .wm-dot { background:var(--orange); border-color:var(--orange); }
  .wm-node.running .wm-dot { background:#fff; border-color:var(--orange); }
  .wm-lbl { font-family:'Geist Mono',monospace; font-size:9px; color:var(--muted); margin-top:5px; white-space:nowrap; }
  .wm-launch { position:absolute; top:6px; bottom:6px; width:2px; background:#1B1D31; }
  .wm-launch::after { content:'LAUNCH'; position:absolute; top:-2px; left:5px; font-family:'Geist Mono',monospace; font-size:8px; letter-spacing:.08em; color:#1B1D31; }
  .wm-today { position:absolute; top:6px; bottom:6px; width:2px; background:#E8A13C; }
  .wm-today::after { content:'TODAY'; position:absolute; bottom:-2px; left:5px; font-family:'Geist Mono',monospace; font-size:8px; letter-spacing:.08em; color:#B97509; }
  .wm-today.rightmost::after { left:auto; right:5px; }
  /* ── Workflow timeline: one row per activity, positioned against the launch date ── */
  .tl { border:1px solid var(--line); border-radius:12px; background:var(--chipbg); padding:10px 14px 8px; }
  .tl-hd { display:flex; align-items:baseline; gap:8px; margin-bottom:2px; }
  .tl-hd b { font-size:12.5px; }
  .tl-hd span { font-size:11px; color:var(--sec); }
  .tl-grid { position:relative; }
  .tl-axis { position:relative; height:16px; margin-left:var(--tl-gut); }
  .tl-tick { position:absolute; transform:translateX(-50%); font-family:'Geist Mono',monospace; font-size:8.5px; letter-spacing:.06em; color:var(--muted); white-space:nowrap; }
  .tl-tick.launch { color:#1B1D31; font-weight:700; }
  .tl-rows { position:relative; }
  .tl-vline { position:absolute; top:0; bottom:0; width:2px; z-index:0; }
  .tl-vline.launch { background:#1B1D31; }
  .tl-vline.today  { background:#E8A13C; }
  .tl-row { position:relative; display:grid; grid-template-columns:var(--tl-gut) 1fr; align-items:center; min-height:30px; z-index:1; }
  .tl-row + .tl-row { border-top:1px dashed var(--line); }
  .tl-nm { padding-right:10px; font-size:11.5px; line-height:1.25; }
  .tl-nm i { display:block; font-style:normal; font-family:'Geist Mono',monospace; font-size:9px; color:var(--muted); }
  .tl-track { position:relative; height:30px; }
  .tl-node { position:absolute; top:50%; transform:translate(-50%,-50%); display:flex; align-items:center; gap:5px;
             padding:2px 7px; border-radius:99px; border:1.5px dashed var(--line); background:#fff;
             font-family:'Geist Mono',monospace; font-size:9px; color:var(--muted); white-space:nowrap; }
  .tl-node.done    { border:1.5px solid var(--orange); color:#8A4B10; background:#FFF3E8; }
  .tl-node.running { border:1.5px solid #E8A13C; color:#B97509; background:#FFF8EC; }
  .tl-node.start { transform:translate(0,-50%); }
  .tl-node.end   { transform:translate(-100%,-50%); }
  .tl-node .d { width:7px; height:7px; border-radius:99px; background:var(--line); flex:none; }
  .tl-node.done .d { background:var(--orange); }
  .tl-node.running .d { background:#E8A13C; }
  .tl-legend { display:flex; gap:14px; margin-top:7px; margin-left:var(--tl-gut); font-size:10px; color:var(--muted); }
  .tl-legend i { display:inline-block; width:9px; height:9px; border-radius:99px; margin-right:5px; vertical-align:-1px; }
  .wf-scope { display:flex; gap:8px; flex-wrap:wrap; }
  .wf-scope-opt { display:flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:99px;
                  padding:5px 12px; font-size:12px; cursor:pointer; background:#fff; }
  .wf-scope-opt:has(input:checked) { border-color:var(--orange); background:#FFF3E8; color:#8A4B10; font-weight:600; }
  .wf-scope-n { font-family:'Geist Mono',monospace; font-size:10px; color:var(--muted); }
  .wf-scope-bar { display:flex; gap:6px; align-items:center; margin:6px 0; }
  .wf-scope-note { font-size:11.5px; color:var(--sec); min-height:16px; }
  .wf-scope-note.warn { color:#B45309; }
  @media (max-width:820px){ .tl-row { grid-template-columns:1fr; } .tl-axis,.tl-legend { margin-left:0; } }

  .wm-row { display:grid; grid-template-columns:16px 54px 1fr auto; gap:10px; align-items:start; border:1px solid var(--line); border-radius:11px; padding:9px 12px; }
  .wm-sdot { width:9px; height:9px; border-radius:99px; background:var(--line); margin-top:4px; }
  .wm-row.done .wm-sdot { background:var(--orange); }
  .wm-row.running .wm-sdot { background:#E8A13C; }
  .wm-off { font-family:'Geist Mono',monospace; font-size:11.5px; font-weight:600; color:var(--orange); }
  .wm-nm { font-size:12.5px; font-weight:600; }
  .wm-sum { font-size:11.5px; color:var(--muted); margin-top:2px; line-height:1.5; }
  .wm-pill { font-family:'Geist Mono',monospace; font-size:8.5px; letter-spacing:.07em; text-transform:uppercase; border-radius:99px; padding:2px 8px; }
  .wm-pill.done { background:#FEF2EC; color:var(--orange); border:1px solid #F5C6A8; }
  .wm-pill.pending { background:var(--hair); color:var(--muted); border:1px solid var(--line); }
  .wm-deliv { border:1px solid var(--line); border-radius:11px; overflow:hidden; margin-top:7px; }
  .wm-deliv-hd { background:var(--chipbg); border-bottom:1px solid var(--line2); padding:7px 11px; font-size:11.5px; }

  .mention { color:#4B6EFF; font-weight:600; }
  #mentionPop { position:fixed; z-index:300; background:#fff; border:1px solid var(--line); border-radius:11px; box-shadow:var(--shadow-pop); min-width:220px; overflow:hidden; display:none; }
  #mentionPop .mp-title { font-size:10px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); padding:8px 12px 3px; }
  #mentionPop .mp-item { display:flex; align-items:center; gap:9px; padding:7px 12px; cursor:pointer; font-size:12.5px; }
  #mentionPop .mp-item:hover { background:var(--orange-tint); }
  #mentionPop .mp-item.sel { background:var(--orange); color:#fff; }
  #mentionPop .mp-item.sel .kind-dot { box-shadow:0 0 0 2px rgba(255,255,255,.92); }
  #mentionPop .mp-ava { width:22px; height:22px; flex:none; border-radius:99px; background:var(--teal); color:var(--ink); display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:700; }
  #mentionPop .mp-role { margin-left:auto; font-size:10.5px; color:var(--muted); }

  #toast { position:fixed; bottom:96px; left:50%; transform:translateX(-50%) translateY(8px); background:var(--ink); color:#fff; font-size:13px; font-weight:500; padding:9px 18px; border-radius:99px; box-shadow:var(--shadow-pop); opacity:0; pointer-events:none; transition:all .25s; z-index:200; }
  #toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
  .drv-parts { font-size:10.5px; color:var(--muted); margin-top:2px; }
  #toast { display:flex; align-items:center; gap:12px; }
  #toast.show { pointer-events:auto; }
  #toast #toastAct { border:none; background:transparent; color:var(--orange-lt); font-family:inherit; font-size:12.5px; font-weight:600; cursor:pointer; padding:0; display:none; }
  #toast.has-act #toastAct { display:inline; }
  #toast #toastAct:hover { color:#fff; text-decoration:underline; }
  /* History rows: delete on hover, select mode for clearing several at once. */
  .hist-sel-btn { margin-left:auto; border:none; background:transparent; font-family:inherit; font-size:11.5px; font-weight:500; color:var(--muted); cursor:pointer; padding:0 4px; }
  .hist-sel-btn:hover { color:var(--orange-dk); }
  .hist-sel-btn.on { color:var(--orange); }
  .hist-selbar { display:none; align-items:center; gap:8px; padding:8px 14px; border-bottom:1px solid var(--line2); background:var(--orange-pale); font-size:11.5px; color:var(--orange-dk); }
  .hist-selbar.open { display:flex; }
  .hist-selbar button { border:1px solid var(--orange-lt); background:#fff; border-radius:7px; font-family:inherit; font-size:11.5px; font-weight:500; padding:3px 9px; cursor:pointer; }
  .hist-selbar-x { color:var(--body); }
  .hist-selbar-del { color:#fff !important; background:var(--orange) !important; border-color:var(--orange) !important; }
  .hist-selbar-del:disabled { background:var(--line) !important; border-color:var(--line) !important; color:var(--muted) !important; cursor:default; }
  .hist-check { flex:none; width:14px; height:14px; margin:0 2px 0 0; accent-color:var(--orange); cursor:pointer; }
  .hist-del { flex:none; width:19px; height:19px; border:none; border-radius:6px; background:transparent; color:var(--faint); font-size:13px; line-height:1; cursor:pointer; opacity:0; display:flex; align-items:center; justify-content:center; }
  .hist-row:hover .hist-del { opacity:1; }
  .hist-del:hover { background:var(--orange-tint); color:var(--orange-dk); }

  /* ── Persona chip + popover ─────────────────────────────────────────── */
  .persona-chip { position:absolute; top:10px; right:12px; z-index:5; display:inline-flex; align-items:center; gap:7px; padding:4px 10px 4px 8px; border:1px solid var(--line); border-radius:99px; background:#fff; font-size:12px; font-weight:500; color:var(--body); cursor:pointer; flex:none; }
  .persona-chip:hover { border-color:#C7CBD4; }
  .persona-chip.on { border-color:var(--orange-lt); background:var(--orange-pale); color:var(--orange-dk); }
  .persona-chip .car { font-size:8px; color:var(--faint); }
  .persona-pop { position:absolute; bottom:calc(100% - 2px); right:12px; left:auto; z-index:41; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-pop); min-width:280px; overflow:hidden; display:none; }
  .persona-pop.open { display:block; }
  .pp-item { display:flex; align-items:center; gap:10px; width:100%; padding:9px 13px; border:none; background:transparent; cursor:pointer; text-align:left; font-size:13px; }
  .pp-item:hover { background:var(--orange-pale); }
  .pp-item.on { background:var(--orange-pale); }
  .pp-emoji { width:26px; height:26px; flex:none; border-radius:8px; background:var(--hair); display:flex; align-items:center; justify-content:center; font-size:14px; }
  .pp-name { font-weight:600; color:var(--ink); }
  .pp-role { font-size:11px; color:var(--muted); }
  .pp-manage { display:block; width:100%; padding:9px 13px; border:none; border-top:1px solid var(--line2); background:var(--chipbg); font-size:12px; font-weight:500; color:var(--orange); cursor:pointer; text-align:left; }
  .pp-manage:hover { color:var(--orange-dk); }

  /* ── Agents modal ───────────────────────────────────────────────────── */
  .agents-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:16px; }
  .agent-card { border:1px solid var(--line); border-radius:12px; background:#fff; padding:14px; display:flex; flex-direction:column; gap:8px; }
  .agent-card:hover { border-color:#C7CBD4; box-shadow:0 4px 14px rgba(27,29,49,.06); }
  .agent-card.active { border-color:var(--orange); background:var(--orange-pale); }
  .agent-head { display:flex; align-items:center; gap:10px; }
  .agent-emoji { width:34px; height:34px; flex:none; border-radius:10px; background:var(--hair); display:flex; align-items:center; justify-content:center; font-size:17px; }
  .agent-name { font-size:14px; font-weight:600; }
  .agent-role { font-size:11.5px; color:var(--muted); }
  .agent-tags { display:flex; gap:6px; flex-wrap:wrap; }
  .agent-tag { font-size:10.5px; color:var(--sec); background:var(--hair); border-radius:6px; padding:2px 7px; }
  .agent-details { font-size:12.5px; line-height:1.6; color:var(--body); border-top:1px solid var(--line3); padding-top:8px; display:none; }
  .agent-card.expanded .agent-details { display:block; }
  .agent-details h1,.agent-details h2,.agent-details h3 { font-size:12.5px; margin:8px 0 3px; }
  .agent-details ul { padding-left:16px; }
  .agent-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:auto; }
  .builder { padding:16px 18px; display:flex; flex-direction:column; gap:10px; max-width:560px; }
  .builder label { font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }
  .builder input[type=text], .builder select, .builder textarea { background:var(--chipbg); border:1px solid var(--line); border-radius:9px; font-size:13px; padding:9px 11px; outline:none; color:var(--ink); font-family:inherit; width:100%; }
  .builder input:focus, .builder textarea:focus, .builder select:focus { border-color:var(--orange); }
  .builder textarea { min-height:100px; resize:vertical; }
  .doc-chip { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:8px; padding:4px 9px; font-size:12px; color:var(--body); background:var(--chipbg); }
  .doc-chip button { border:none; background:none; color:var(--faint); cursor:pointer; }
  .doc-chip button:hover { color:var(--red); }

  /* ── Small modal (phone / schedule builder) ─────────────────────────── */
  .modal-backdrop { position:fixed; inset:0; background:rgba(27,29,49,.4); z-index:120; display:none; align-items:center; justify-content:center; padding:24px; }
  .modal-backdrop.open { display:flex; }
  .modal { background:#fff; border-radius:16px; box-shadow:var(--shadow-modal); border:1px solid var(--edge); width:min(480px,100%); max-height:calc(100vh - 48px); overflow:hidden; display:flex; flex-direction:column; }
  .modal-head { flex:none; display:flex; align-items:center; gap:10px; padding:14px 18px; border-bottom:1px solid var(--line2); }
  .modal-title { font-size:14.5px; font-weight:600; }
  .modal-body { padding:16px 18px; display:flex; flex-direction:column; gap:11px; font-size:13px; flex:1; min-height:0; overflow-y:auto; }
  .modal-foot { flex:none; display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:12px 18px; border-top:1px solid var(--line2); background:var(--chipbg); }
  .modal-body label { font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }
  .modal-body input[type=text], .modal-body input[type=tel], .modal-body textarea, .modal-body select { background:var(--chipbg); border:1px solid var(--line); border-radius:9px; font-size:13.5px; padding:9px 11px; outline:none; color:var(--ink); font-family:inherit; width:100%; }
  .modal-body input:focus, .modal-body textarea:focus { border-color:var(--orange); }
  .consent-row { display:flex; gap:9px; align-items:flex-start; font-size:12px; color:var(--sec); line-height:1.5; }
  .consent-row input { accent-color:var(--orange); margin-top:2px; }
  .chan-toggle { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:9px; padding:6px 12px; font-size:12.5px; font-weight:500; color:var(--sec); cursor:pointer; background:#fff; }
  .chan-toggle.selected { border-color:var(--orange); background:var(--orange-pale); color:var(--orange-dk); }
  .cron-preset { border:1px solid var(--line); border-radius:9px; padding:6px 11px; font-size:12px; cursor:pointer; background:#fff; color:var(--body); }
  .cron-preset.on { border-color:var(--orange); background:var(--orange-pale); color:var(--orange-dk); font-weight:600; }

  /* ── Schedules list ─────────────────────────────────────────────────── */
  .sched-row { display:flex; align-items:center; gap:11px; padding:12px 14px; border:1px solid var(--line); border-radius:11px; background:#fff; }
  .sched-row.off { opacity:.55; }
  .sched-info { min-width:0; flex:1; }
  .sched-label { font-size:13px; font-weight:600; }
  .sched-meta { font-size:11.5px; color:var(--muted); margin-top:2px; }
  .switch { position:relative; width:34px; height:19px; flex:none; cursor:pointer; }
  .switch input { opacity:0; width:0; height:0; }
  .switch .sl { position:absolute; inset:0; background:#D6D9E0; border-radius:99px; transition:.15s; }
  .switch .sl:before { content:''; position:absolute; width:15px; height:15px; left:2px; top:2px; background:#fff; border-radius:99px; transition:.15s; }
  .switch input:checked + .sl { background:var(--teal); }
  .switch input:checked + .sl:before { transform:translateX(15px); }

  /* ── Inbox drawer ───────────────────────────────────────────────────── */
  #inboxDrawer { position:fixed; top:0; right:0; bottom:0; width:min(420px,92vw); z-index:88; background:#fff; border-left:1px solid var(--edge); box-shadow:-12px 0 40px rgba(27,29,49,.12); display:flex; flex-direction:column; transform:translateX(102%); transition:transform .22s ease; }
  #inboxDrawer.open { transform:none; }
  .inbox-badge { min-width:16px; height:16px; padding:0 5px; border-radius:99px; background:var(--orange); color:#fff; font-family:'Geist Mono',monospace; font-size:10px; font-weight:500; display:inline-flex; align-items:center; justify-content:center; }
  .inbox-badge.zero { background:var(--hair); color:var(--muted); }
  .inbox-item { border:1px solid var(--line); border-radius:11px; padding:12px 14px; background:#fff; display:flex; flex-direction:column; gap:7px; }
  .inbox-sum { font-size:13px; font-weight:500; line-height:1.45; }
  .inbox-meta { display:flex; gap:8px; align-items:center; font-size:11px; color:var(--muted); flex-wrap:wrap; }
  .inbox-comment { font-size:12px; color:var(--body); background:var(--chipbg); border-radius:8px; padding:6px 9px; }
  .inbox-actions { display:flex; gap:6px; align-items:center; }
  .inbox-actions input { flex:1; background:var(--chipbg); border:1px solid var(--line); border-radius:8px; font-size:12px; padding:6px 9px; outline:none; font-family:inherit; }

  /* ── Approval card ──────────────────────────────────────────────────── */
  .approval-card { border:1px solid var(--orange-lt); border-radius:12px; background:var(--orange-pale); padding:14px 16px; display:flex; flex-direction:column; gap:9px; }
  .approval-kicker { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--orange-dk); font-weight:600; }
  .approval-desc { font-size:13.5px; color:var(--body); line-height:1.55; }
  .approval-draft { background:#fff; border:1px solid var(--line); border-radius:9px; padding:10px 12px; font-size:12.5px; color:var(--body); white-space:pre-wrap; max-height:180px; overflow-y:auto; }
  .approval-actions { display:flex; gap:8px; flex-wrap:wrap; }
  .btn-approve { background:var(--green); color:#fff; border:none; border-radius:9px; padding:7px 14px; font-size:12.5px; font-weight:600; cursor:pointer; }
  .btn-approve:hover { filter:brightness(1.08); }

  /* ── Workbook cards (Excel → card) ──────────────────────────────────────
     The card's own markup ships from the server with its own <style>; these
     rules are only the frame it sits in inside the drawer. */
  .ec-card { border:1px solid var(--line); border-radius:12px; padding:16px 18px; background:#fff; }
  .ec-card + * { margin-top:14px; }
  .ec-pending { border:1px dashed var(--edge); border-radius:12px; padding:14px 16px;
                color:var(--sec); font-size:13px; background:var(--chipbg); }

  /* ── Excel Reports: run a report with a prompt ────────────────────────────
     Layout from the design team's "Excel reports grid redesign" (v2.51): header and meta strip,
     scope and contents on the left, composer over run history on the right, each run carrying its
     AI outputs on a rail. Colours are ours, not the mock's slate/Tailwind set — the brand question
     it raised is the design team's to settle, and until then this page matches the rest of the app. */
  .rep-wrap { display:flex; flex:1; min-height:0; overflow-y:auto; }
  .rx-page { width:100%; max-width:1320px; margin:0 auto; padding:18px 24px 60px; }
  .rx-label { font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
  .rx-link { background:none; border:none; color:var(--orange-dk); font-size:12px; font-weight:600; cursor:pointer; padding:2px 4px; }
  .rx-link:hover { text-decoration:underline; }

  /* list */
  .rx-listhead h2 { font-size:19px; font-weight:600; color:var(--ink); letter-spacing:-.01em; }
  .rx-listhead p { font-size:13px; color:var(--sec); margin-top:3px; max-width:720px; }
  .rx-table { margin-top:16px; border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
  .rx-tr { display:grid; grid-template-columns:minmax(0,1fr) 120px 150px 60px; gap:14px; align-items:center; width:100%; text-align:left; padding:12px 16px; background:none; border:none; border-top:1px solid var(--line2); font:inherit; font-size:13px; color:var(--ink); cursor:pointer; }
  .rx-tr:first-child { border-top:none; }
  .rx-tr.th { cursor:default; font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); padding:9px 16px; background:var(--chipbg); }
  .rx-tr:not(.th):hover { background:var(--orange-pale); }
  .rx-tr .nm b { display:block; font-weight:600; }
  .rx-tr .nm i { display:block; font-style:normal; font-size:12px; color:var(--sec); margin-top:2px; }
  .rx-tr .mut { color:var(--sec); font-size:12.5px; }
  .rx-src { font-style:normal; font-size:11px; font-weight:600; padding:2px 8px; border-radius:99px; background:var(--hair); color:var(--sec); }
  .rx-src.live { background:var(--teal-pale); color:#08877F; }

  /* header + meta */
  .rx-head { display:flex; align-items:center; gap:10px; }
  .rx-back { width:30px; height:30px; border:1px solid var(--line); border-radius:8px; background:#fff; font-size:16px; line-height:1; color:var(--sec); cursor:pointer; }
  .rx-back:hover { border-color:var(--orange-lt); color:var(--orange-dk); }
  .rx-crumb { display:flex; align-items:baseline; gap:8px; font-size:13px; color:var(--sec); min-width:0; }
  .rx-crumb a { cursor:pointer; color:var(--sec); }
  .rx-crumb a:hover { color:var(--orange-dk); }
  .rx-crumb b { font-size:17px; font-weight:600; color:var(--ink); letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rx-meta { display:flex; flex-wrap:wrap; gap:6px 0; margin:10px 0 16px; font-size:12.5px; color:var(--sec); }
  .rx-meta span { padding:0 12px; border-left:1px solid var(--line); }
  .rx-meta span:first-child { padding-left:0; border-left:none; }
  .rx-meta b { color:var(--ink); font-weight:600; }
  .rx-off { color:var(--orange-dk); }


  /* scope */
  .rx-chip { display:inline-flex; align-items:center; gap:4px; max-width:100%; font-size:12px; color:var(--orange-dk); background:var(--orange-tint); border-radius:7px; padding:3px 4px 3px 8px; box-shadow:inset 0 0 0 1px rgba(240,83,35,.18); }
  .rx-chip.k-stores { background:#ECEFFF; color:#2B48C8; box-shadow:inset 0 0 0 1px rgba(75,110,255,.20); }
  .rx-chip.k-time { background:var(--teal-pale); color:#08877F; box-shadow:inset 0 0 0 1px rgba(10,191,179,.24); }
  .rx-chip em { font-style:normal; opacity:.7; }
  .rx-chip b { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rx-chip button { border:none; background:none; color:inherit; opacity:.6; cursor:pointer; font-size:14px; line-height:1; padding:0 3px; }
  .rx-chip button:hover { opacity:1; }
  [contenteditable][data-ph]:empty:before { content:attr(data-ph); color:var(--faint); pointer-events:none; }


  /* composer — the autocomplete opens downward here; in chat it opens up from the bottom of the screen */
  .rx-comp { border:1px solid var(--orange-lt); border-radius:12px; background:#fff; padding:12px 12px 10px; box-shadow:0 0 0 3px var(--orange-pale), var(--shadow-card); }
  .rx-compbox { position:relative; }
  .rx-prompt { min-height:58px; max-height:180px; overflow-y:auto; font-size:13.5px; line-height:1.55; color:var(--ink); outline:none; padding:2px 2px 4px; }
  .ac-pop.rx-ac { top:calc(100% + 4px); bottom:auto; left:0; }
  .rx-ex { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 2px; }
  .rx-ex button { font-size:11.5px; background:var(--chipbg); border:1px solid var(--line2); border-radius:99px; padding:2px 9px; color:var(--sec); cursor:pointer; }
  .rx-ex button:hover { border-color:var(--orange-lt); color:var(--orange-dk); }
  .rx-comprow { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; flex-wrap:wrap; }
  .rx-fmts { display:flex; gap:6px; flex-wrap:wrap; }
  .rx-fmt { font-size:11.5px; font-weight:600; letter-spacing:.03em; border:1px solid var(--edge); background:#fff; color:var(--sec); border-radius:99px; padding:4px 11px; cursor:pointer; }
  .rx-fmt:disabled { opacity:.45; cursor:default; }
  .rx-fmt.lock { cursor:default; }
  .rx-fmt.on.f-xlsx { background:#E4F4EA; border-color:#BFE3CC; color:var(--green); }
  .rx-fmt.on.f-xsum { background:#E4F4EA; border-color:#8CCBA5; color:var(--green); }
  .rx-fmt.on.f-pptx { background:var(--orange-tint); border-color:var(--orange-lt); color:var(--orange-dk); }
  .rx-fmt.on.f-pdf  { background:#FBEAEA; border-color:#F0C4C4; color:#A12B2B; }
  .rx-fmt.on.f-html { background:#ECEFFF; border-color:#C9D2FF; color:#2B48C8; }
  .rx-runsplit { position:relative; display:flex; }
  .rx-runbtn { background:var(--orange); color:#fff; border:none; border-radius:8px; padding:7px 16px; font-size:13px; font-weight:600; cursor:pointer; }
  .rx-runsplit .rx-runbtn:first-child { border-radius:8px 0 0 8px; }
  .rx-runsplit .rx-runbtn.car { border-radius:0 8px 8px 0; padding:7px 9px; border-left:1px solid rgba(255,255,255,.35); }
  .rx-runbtn:hover { background:var(--orange-dk); }
  .rx-runbtn:disabled { opacity:.45; cursor:default; background:var(--orange); }
  .rep-menu { position:absolute; right:0; top:calc(100% + 6px); background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-pop); padding:6px; min-width:240px; z-index:20; }
  .rep-menu button { display:block; width:100%; text-align:left; background:none; border:none; padding:8px 10px; border-radius:7px; font-size:13px; color:var(--ink); cursor:pointer; }
  .rep-menu button:hover { background:var(--hair); }
  .rep-menu small { display:block; color:var(--muted); font-size:11.5px; margin-top:1px; }
  .rep-email { display:flex; gap:8px; margin-top:10px; align-items:center; }
  .rep-email input { flex:1; border:1px solid var(--line); border-radius:8px; padding:7px 10px; font:inherit; font-size:13px; }
  .rep-email input:focus, .rx-askbox textarea:focus { outline:none; border-color:var(--orange-lt); box-shadow:0 0 0 3px var(--orange-tint); }
  .rep-warn { font-size:12.5px; color:var(--orange-dk); background:var(--orange-pale); border:1px solid var(--orange-tint); border-radius:8px; padding:8px 11px; margin-top:10px; }

  /* history */
  .rx-hist { border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; box-shadow:var(--shadow-card); }
  .rx-empty { padding:26px 16px; text-align:center; font-size:13px; color:var(--muted); }
  .rx-empty b { display:block; color:var(--ink); font-size:13.5px; margin-bottom:2px; }
  .rx-run { border-top:1px solid var(--line2); }
  .rx-run:first-child { border-top:none; }
  .rx-runh { display:flex; align-items:center; gap:10px; padding:11px 14px; cursor:pointer; }
  .rx-runh:hover { background:var(--chipbg); }
  .rx-chev { width:10px; color:var(--muted); font-size:13px; text-align:center; }
  .rx-st { width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:0 0 auto; color:#fff; font-size:11px; font-weight:700; }
  .rx-st.ok { background:var(--green); }
  .rx-st.bad { background:var(--red); }
  .rx-st.run { background:#F6A419; box-shadow:0 0 0 0 rgba(246,164,25,.5); animation:rx-pulse 1.6s infinite; width:12px; height:12px; margin:0 4px; }
  @keyframes rx-pulse { 0% { box-shadow:0 0 0 0 rgba(246,164,25,.5); } 70% { box-shadow:0 0 0 8px rgba(246,164,25,0); } 100% { box-shadow:0 0 0 0 rgba(246,164,25,0); } }
  .rx-when { flex:1; min-width:0; }
  .rx-when b { display:block; font-size:13px; font-weight:600; color:var(--ink); }
  .rx-when span { display:block; font-size:11.5px; color:var(--sec); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rx-when .bad { color:var(--red); }
  .rx-rt { display:flex; align-items:center; gap:6px; flex:0 0 auto; }
  .rx-pill { font-size:11px; font-weight:600; border-radius:99px; padding:2px 8px; background:var(--hair); color:var(--sec); white-space:nowrap; }
  .rx-pill.run { background:#FEF3D6; color:#9A5B00; }
  .rx-pill.bad { background:#FBEAEA; color:var(--red); }
  .rx-ai { font-size:11px; font-weight:700; color:var(--orange-dk); background:var(--orange-pale); border:1px solid var(--orange-tint); border-radius:99px; padding:1px 7px; }
  .rx-file { display:inline-flex; align-items:center; font-size:11.5px; font-weight:600; border-radius:7px; padding:3px 8px; text-decoration:none; border:1px solid transparent; background:var(--hair); color:var(--sec); cursor:pointer; white-space:nowrap; }
  .rx-file.f-xlsx { background:#E4F4EA; border-color:#BFE3CC; color:var(--green); }
  .rx-file.f-xsum { background:#E4F4EA; border-color:#8CCBA5; color:var(--green); }
  .rx-file.f-pptx { background:var(--orange-tint); border-color:var(--orange-lt); color:var(--orange-dk); }
  .rx-file.f-pdf  { background:#FBEAEA; border-color:#F0C4C4; color:#A12B2B; }
  .rx-file.f-html { background:#ECEFFF; border-color:#C9D2FF; color:#2B48C8; }
  .rx-file.rx-view { background:#fff; border-color:var(--line); color:var(--ink); }
  .rx-file:hover { filter:brightness(.97); }
  .rx-file.dashed { background:none; border:1px dashed var(--edge); color:var(--muted); cursor:default; }
  .rx-file.dashed.bad { border-color:#F0C4C4; color:var(--red); }
  .rx-runprompt { margin:-4px 14px 10px 54px; font-size:12px; color:var(--sec); font-style:italic; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rx-runscope { display:flex; flex-wrap:wrap; gap:5px; margin:-4px 14px 10px 54px; }
  .rx-runscope span { font-size:11px; color:var(--body); background:var(--hair); border-radius:6px; padding:2px 7px; }
  .rx-rail { margin:0 14px 14px 30px; padding-left:18px; border-left:2px solid var(--orange-tint); display:flex; flex-direction:column; gap:12px; }
  .rx-entry { display:flex; gap:8px; }
  .rx-spark { color:var(--orange); font-size:12px; line-height:1.5; margin-left:-24px; background:#fff; padding:1px 0; width:10px; text-align:center; }
  .rx-ebody { flex:1; min-width:0; margin-left:8px; }
  .rx-etop { display:flex; gap:10px; align-items:baseline; }
  .rx-eprompt { flex:1; font-size:12.5px; color:var(--body); line-height:1.45; }
  .rx-eprompt.none { color:var(--muted); font-style:italic; }
  .rx-etop time { font-size:11px; color:var(--muted); white-space:nowrap; }
  .rx-files { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
  .rx-prog { margin-top:7px; font-size:12px; color:var(--sec); }
  .rx-prog .t { margin-left:6px; }
  .rx-prog .t b { color:var(--ink); font-weight:600; }
  .rx-said { font-size:11.5px; color:var(--body); font-style:italic; margin-top:4px; }
  .rx-bar { height:3px; background:var(--line3); border-radius:3px; overflow:hidden; margin-top:6px; position:relative; }
  .rx-bar span { position:absolute; left:0; top:0; bottom:0; background:var(--orange); border-radius:3px; transition:width .6s ease; }
  .rx-fail { font-size:12px; color:var(--red); margin-top:6px; }
  .rx-new { align-self:flex-start; font-size:12px; font-weight:600; color:var(--orange-dk); background:#fff; border:1px dashed var(--orange-lt); border-radius:8px; padding:5px 11px; cursor:pointer; }
  .rx-new.solid { border-style:solid; }
  .rx-new:hover { background:var(--orange-pale); }
  .rx-askbox { border:1px solid var(--orange-lt); border-radius:10px; padding:10px; background:#fff; }
  .rx-askbox textarea { width:100%; border:1px solid var(--line); border-radius:8px; padding:7px 9px; font:inherit; font-size:12.5px; min-height:46px; resize:vertical; }
  .rx-askrow { display:flex; align-items:center; gap:8px; margin-top:8px; flex-wrap:wrap; }
  .rx-askrow .sp { flex:1; }
  .rx-more { display:block; width:100%; text-align:left; border:none; border-top:1px solid var(--line2); background:none; padding:10px 14px; font-size:12.5px; font-weight:600; color:var(--orange-dk); cursor:pointer; }
  .rx-back:focus-visible, .rx-tr:focus-visible, .rx-fmt:focus-visible, .rx-runbtn:focus-visible, .rx-file:focus-visible, .rx-new:focus-visible, .rx-link:focus-visible, .rx-recipe:focus-visible, .rx-rhead:focus-visible, .rx-sh > button:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }

  .rh-act { font-size:12px; font-weight:600; border:1px solid var(--line); background:#fff; border-radius:7px; padding:5px 10px; color:var(--ink); cursor:pointer; text-decoration:none; }
  .rh-act:hover { border-color:var(--orange-lt); color:var(--orange-dk); }
  .rep-modal { position:fixed; inset:0; background:rgba(27,29,49,.42); z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; }
  .rep-modal .box { background:#fff; border-radius:14px; width:min(900px,100%); height:min(86vh,100%); display:flex; flex-direction:column; box-shadow:var(--shadow-modal); overflow:hidden; }
  .rep-modal .bh { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid var(--line); gap:10px; }
  .rep-modal .bh b { font-size:14px; }
  .rep-modal iframe { flex:1; border:0; width:100%; background:#fff; }
  /* v2.52 — one column: what's in the report, the composer (chips inside it), run history */
  .rx-page.rx-one { max-width:980px; }
  .rx-one > * + * { margin-top:12px; }
  .rx-one > .rx-meta { margin-top:10px; }
  .rx-one > #repHistLabel { margin-top:22px; display:block; }
  .rx-one > .rx-hist { margin-top:8px; }
  .rx-car { display:inline-block; width:12px; color:var(--muted); font-size:11px; }

  .rx-recipe { display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px; width:100%; text-align:left; border:1px solid var(--line); border-radius:12px; background:#fff; padding:11px 14px; font:inherit; font-size:13px; color:var(--sec); cursor:pointer; box-shadow:var(--shadow-card); }
  .rx-recipe:hover { border-color:var(--orange-lt); }
  .rx-recipe b, .rx-rhead b { color:var(--ink); font-weight:600; }
  .rx-builtin { color:var(--body); }
  .rx-recipe.open { display:block; padding:0; cursor:default; }
  .rx-recipe.open:hover { border-color:var(--line); }
  .rx-rhead { display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px; width:100%; text-align:left; border:none; background:none; padding:11px 14px; font:inherit; font-size:13px; color:var(--sec); cursor:pointer; border-bottom:1px solid var(--line2); }
  .rx-rbody { padding:12px 14px 12px; display:flex; flex-direction:column; gap:14px; }
  .rx-rsec .rx-label { display:block; margin-bottom:6px; }
  .rx-sh { border:1px solid var(--line2); border-radius:9px; margin-bottom:6px; overflow:hidden; }
  .rx-sh > button { display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none; border:none; padding:8px 10px; font:inherit; font-size:13px; cursor:pointer; }
  .rx-sh > button:hover { background:var(--chipbg); }
  .rx-sh b { color:var(--ink); font-weight:600; }
  .rx-sh i { margin-left:auto; font-style:normal; font-family:'Geist Mono',monospace; font-size:11px; color:var(--muted); }
  .rx-shape { font-style:normal; font-size:11px; font-weight:600; border-radius:99px; padding:1px 8px; background:var(--hair); color:var(--sec); }
  .rx-shape.s-long, .rx-shape.s-wide { background:var(--teal-pale); color:#08877F; }
  .rx-shape.s-rolled { background:#FEF3D6; color:#9A5B00; }
  .rx-shnote { font-size:12px; color:var(--sec); padding:0 10px 6px 32px; }
  .rx-cols { border-top:1px solid var(--line3); padding:4px 10px 8px 32px; }
  .rx-col { display:grid; grid-template-columns:minmax(120px,200px) 86px minmax(0,1fr); gap:10px; align-items:baseline; padding:4px 0; font-size:12.5px; border-top:1px solid var(--line3); }
  .rx-col:first-child { border-top:none; }
  .rx-col b { font-weight:600; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .rx-col span { color:var(--sec); }
  .rx-role { font-style:normal; font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; justify-self:start; border-radius:5px; padding:1px 6px; background:var(--hair); color:var(--sec); }
  .rx-role.r-measure { background:var(--hair); color:var(--ink); font-family:'Geist Mono',monospace; text-transform:none; letter-spacing:0; }
  .rx-role.r-dimension { background:var(--orange-tint); color:var(--orange-dk); }
  .rx-role.r-time { background:var(--teal-pale); color:#08877F; }
  .rx-rgrid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px; }
  .rx-ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
  .rx-ul li { font-size:12.5px; line-height:1.4; }
  .rx-ul b { display:block; color:var(--ink); font-weight:600; }
  .rx-ul span { color:var(--sec); }
  .rx-ul span + span:before { content:' · '; }
  .rx-rfoot { font-size:11.5px; color:var(--muted); border-top:1px solid var(--line3); padding-top:8px; }

  .rx-chiprow { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:6px 0 2px; min-height:28px; }
  .rx-chip.locked { padding-right:8px; opacity:.92; box-shadow:inset 0 0 0 1px rgba(27,29,49,.08); background:var(--hair); color:var(--body); }
  .rx-chip.locked .lk { font-style:normal; font-size:10px; margin-right:2px; filter:grayscale(1); opacity:.6; }
  .rx-sep { width:1px; height:18px; background:var(--line); margin:0 2px; }
  .rx-plus { font-size:12px; }
  .rx-chiprow .rx-addbox { position:relative; display:inline-flex; flex:1 1 260px; gap:8px; align-items:center; margin:0; }
  .rx-chiprow .rx-scopein { flex:1; min-height:28px; padding:4px 9px; font-size:12.5px; line-height:1.4; color:var(--ink); border:1px solid var(--orange-lt); border-radius:8px; outline:none; box-shadow:0 0 0 3px var(--orange-tint); }
  @media (max-width: 760px) {
    .rx-page { padding:14px 16px 40px; }
    .rx-crumb a, .rx-crumb > span { display:none; }
    .rx-tr { grid-template-columns:minmax(0,1fr) auto; }
    .rx-tr > span:nth-child(3), .rx-tr > span:nth-child(4) { display:none; }
    .rx-runprompt, .rx-runscope { margin-left:14px; }
    .rx-rail { margin-left:14px; }
  }
  @media (prefers-reduced-motion: reduce) { .rx-bar span { transition:none; } .rx-st.run { animation:none; } }

  /* ── Report cues (v2.60): saved questions of a report, above the composer ── */
  .rx-cues { display:flex; flex-direction:column; gap:6px; }
  .rx-cues > .rx-label { margin:4px 2px 0; }
  .rx-cue-empty { font-size:12.5px; color:var(--sec); border:1px dashed var(--edge); border-radius:10px; padding:10px 12px; }
  .rx-cue { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:8px; border:1px solid var(--line); border-radius:10px; background:#fff; padding:6px 8px 6px 12px; }
  .rx-cue.editing { border-color:var(--orange-lt); box-shadow:0 0 0 3px var(--orange-pale); }
  .rx-cue-main { flex:1; min-width:0; text-align:left; background:none; border:none; padding:3px 0; font:inherit; cursor:pointer; }
  .rx-cue-main b { font-size:13px; font-weight:600; color:var(--ink); }
  .rx-cue-main span { display:block; font-size:11.5px; color:var(--sec); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rx-cue-main:hover b { color:var(--orange-dk); }
  .rx-cue-by { font-style:normal; font-size:11px; color:#2B48C8; margin-left:6px; }
  .rx-cue-rename { font:inherit; font-size:13px; font-weight:600; border:1px solid var(--orange-lt); border-radius:6px; padding:2px 6px; width:min(340px, 100%); }
  .rx-cue-acts { position:relative; display:flex; align-items:center; gap:6px; flex:0 0 auto; }
  .rx-cue-board { font-size:11px; font-weight:600; border-radius:99px; padding:2px 8px; background:var(--hair); color:var(--sec); white-space:nowrap; }
  .rx-cue-board.b-mine { background:var(--orange-tint); color:var(--orange-dk); }
  .rx-cue-board.b-team { background:#ECEFFF; color:#2B48C8; }
  .rx-cue-btn { width:28px; height:28px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--sec); cursor:pointer; font-size:13px; line-height:1; }
  .rx-cue-btn:hover:not(:disabled) { border-color:var(--orange-lt); color:var(--orange-dk); }
  .rx-cue-btn:disabled { opacity:.4; cursor:default; }
  .rx-cue-menu { min-width:280px; }
  .rx-menu-sep { height:1px; background:var(--line2); margin:4px 2px; }
  .rx-sched { flex:1 1 100%; display:flex; flex-wrap:wrap; align-items:center; gap:8px; border-top:1px solid var(--line3); padding:8px 0 4px; }
  .rx-sched select, .rx-sched input { font:inherit; font-size:12.5px; border:1px solid var(--line); border-radius:7px; padding:5px 8px; background:#fff; color:var(--ink); }
  .rx-sched input[type=email] { flex:1 1 200px; }
  .rx-sched .sp { flex:1; }
  .rx-editbar { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--sec); background:var(--orange-pale); border:1px solid var(--orange-tint); border-radius:8px; padding:5px 10px; margin-bottom:8px; }
  .rx-editbar b { color:var(--ink); }
  .rx-editbar .sp { flex:1; }
  .rx-cuetag { font-size:10.5px; font-weight:600; color:#08877F; background:var(--teal-pale); border-radius:99px; padding:1px 7px; white-space:nowrap; border:none; }
  .rx-cuetag.save { background:#fff; color:var(--orange-dk); border:1px dashed var(--orange-lt); cursor:pointer; }
  .cue-frame { width:100%; height:520px; flex-shrink:0; border:1px solid var(--line); border-radius:10px; background:#fff; }
  .rx-cue-btn:focus-visible, .rx-cue-main:focus-visible, .rx-cuetag.save:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
  @media (max-width: 760px) { .rx-cue { padding:6px 8px; } .rx-cue-acts { width:100%; justify-content:flex-end; } .cue-frame { height:420px; } }

  /* v2.62 — the report panel, tightened: recipe chips on top, then one-line accordions */
  .rx-reciperow { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
  .rx-reciperow .rx-label { margin-right:4px; }
  .rx-rbody { gap:8px; }
  .rx-acc { border:1px solid var(--line2); border-radius:9px; overflow:hidden; }
  .rx-acc-h { display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none; border:none; padding:9px 12px; font:inherit; font-size:13px; cursor:pointer; min-width:0; }
  .rx-acc-h:hover { background:var(--chipbg); }
  .rx-acc-h b { color:var(--ink); font-weight:600; flex:0 0 auto; }
  .rx-acc-h em { font-style:normal; font-size:11px; font-weight:600; color:var(--sec); background:var(--hair); border-radius:99px; padding:1px 7px; flex:0 0 auto; }
  .rx-acc-sum { flex:1; min-width:0; font-size:12.5px; color:var(--sec); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rx-acc-b { border-top:1px solid var(--line3); padding:8px 12px 10px; display:flex; flex-direction:column; gap:6px; }
  .rx-acc-b .rx-sh { margin-bottom:0; }
  .rx-grp { display:flex; align-items:flex-start; gap:10px; }
  .rx-grp-l { flex:0 0 52px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); padding-top:4px; }
  .rx-grp-c { flex:1; display:flex; flex-wrap:wrap; gap:5px; }
  .rx-fchip { display:inline-flex; align-items:center; gap:5px; font-size:12px; border-radius:7px; padding:3px 8px; background:var(--orange-tint); color:var(--orange-dk); cursor:default; }
  .rx-fchip.k-stores { background:#ECEFFF; color:#2B48C8; }
  .rx-fchip.k-time { background:var(--teal-pale); color:#08877F; }
  .rx-fchip i { font-style:normal; font-size:10.5px; opacity:.7; font-family:'Geist Mono',monospace; }
  .rx-acc-note { font-size:11.5px; color:var(--muted); margin-top:2px; }
  .rx-not { display:flex; gap:10px; font-size:12.5px; align-items:baseline; }
  .rx-not b { color:var(--ink); font-weight:600; flex:0 0 auto; }
  .rx-not span { color:var(--sec); }
  .rx-acc-h:focus-visible { outline:2px solid var(--orange); outline-offset:-2px; }
  @media (max-width: 760px) { .rx-acc-sum { display:none; } .rx-grp { flex-direction:column; gap:4px; } }

  /* ═════════ v2.69 — Library + My Apps ═════════ */
  .nav-pins { display:flex; flex-direction:column; gap:1px; }
  .nav-pins:empty { display:none; }
  .nav-item.nav-sub { padding:5px 8px 5px 34px; font-size:12.5px; color:rgba(255,255,255,.62); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; position:relative; }
  .nav-item.nav-sub .nav-dot { position:absolute; left:20px; top:50%; width:5px; height:5px; margin-top:-2.5px; border-radius:2px; background:var(--teal); }
  .nav-item.nav-sub.on { color:#fff; }

  .lib-page { max-width:1440px; }
  .lib-head { display:flex; align-items:flex-start; gap:18px; justify-content:space-between; flex-wrap:wrap; }
  .lib-actions { display:flex; align-items:center; gap:8px; padding-top:4px; }
  .lib-q { height:34px; width:240px; border:1px solid var(--line); border-radius:9px; padding:0 12px; font:inherit; font-size:13px; background:var(--chipbg); outline:none; }
  .lib-q:focus { border-color:var(--orange); background:#fff; }
  .lib-q.wide { width:100%; margin:6px 0 10px; }
  .lib-btn { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; border:1px solid var(--edge); border-radius:8px; background:#fff; font:inherit; font-size:12.5px; font-weight:500; color:var(--body); cursor:pointer; text-decoration:none; white-space:nowrap; }
  .lib-btn:hover { border-color:#C7CBD4; color:var(--ink); }
  .rx-runbtn:disabled { opacity:.5; cursor:default; }
  .lib-body { display:grid; grid-template-columns:232px minmax(0,1fr); gap:18px; margin-top:16px; align-items:start; }
  .lib-body.with-detail { grid-template-columns:232px minmax(0,1fr) 380px; }
  @media (max-width:1180px) { .lib-body.with-detail { grid-template-columns:200px minmax(0,1fr); } .lib-detail { grid-column:1 / -1; } }
  .lib-side { border:1px solid var(--line); border-radius:12px; padding:8px; background:var(--chipbg); position:sticky; top:0; }
  .lt-label { font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; padding:8px 8px 5px; }
  .lt-label.tpl { margin-top:8px; border-top:1px solid var(--line); padding-top:12px; }
  .lt-space, .lt-folder { display:flex; align-items:center; gap:8px; width:100%; border:none; background:none; font:inherit; font-size:13px; color:var(--body); padding:6px 8px; border-radius:7px; cursor:pointer; text-align:left; }
  .lt-space { font-weight:600; color:var(--ink); }
  .lt-space:hover, .lt-folder:hover { background:#fff; }
  .lt-space.on, .lt-folder.on { background:#fff; box-shadow:0 0 0 1px var(--line); color:var(--orange-dk); }
  .lt-folder { font-size:12.5px; padding-top:4px; padding-bottom:4px; }
  .lt-fic { font-size:9px; color:var(--faint); width:8px; }
  .lt-sic { width:20px; height:20px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; font-size:11px; color:#fff; flex:none; }
  .lt-sic.s-mine { background:#8B5CF6; } .lt-sic.s-team { background:var(--orange); } .lt-sic.s-engine { background:var(--ink); } .lt-sic.s-templates { background:#2B48C8; }
  .lt-nm { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lt-n { font-size:11px; color:var(--muted); font-family:'Geist Mono',monospace; }
  .lt-foot { font-size:11.5px; color:var(--sec); line-height:1.45; padding:12px 8px 6px; border-top:1px solid var(--line); margin-top:10px; }
  .lib-main { position:relative; min-width:0; border-radius:12px; }
  .lib-main.drag { outline:2px dashed var(--orange); outline-offset:6px; }
  .lib-dropzone { display:none; position:absolute; inset:0; background:rgba(255,251,249,.92); border-radius:12px; align-items:center; justify-content:center; font-size:15px; font-weight:600; color:var(--orange-dk); pointer-events:none; }
  .lib-main.drag .lib-dropzone { display:flex; }
  .lib-crumb { display:flex; align-items:baseline; gap:8px; font-size:13px; color:var(--sec); }
  .lib-crumb a { cursor:pointer; } .lib-crumb a:hover { color:var(--orange-dk); }
  .lib-crumb b { font-size:16px; font-weight:600; color:var(--ink); }
  .lib-note { font-size:12.5px; color:var(--sec); margin:4px 0 10px; max-width:760px; }
  .lib-types { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 12px; }
  .rx-fmt.lt-on { background:var(--ink); border-color:var(--ink); color:#fff; }
  .lf-table { border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
  .lf-tr { display:grid; grid-template-columns:minmax(0,1fr) 128px 70px 140px 150px; gap:12px; align-items:center; width:100%; text-align:left; padding:10px 14px; background:none; border:none; border-top:1px solid var(--line2); font:inherit; font-size:13px; color:var(--ink); cursor:pointer; }
  .lf-tr:first-child { border-top:none; }
  .lf-tr.th { cursor:default; font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); padding:8px 14px; background:var(--chipbg); }
  .lf-tr:not(.th):hover { background:var(--orange-pale); }
  .lf-tr.on { background:var(--orange-pale); box-shadow:inset 3px 0 0 var(--orange); }
  .lf-tr .nm { display:flex; align-items:center; gap:11px; min-width:0; }
  .lf-tr .nmt { min-width:0; display:block; }
  .lf-tr .nmt b { font-weight:600; }
  .lf-tr .nmt i { display:block; font-style:normal; font-size:12px; color:var(--sec); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lf-tr .mut { color:var(--sec); font-size:12.5px; }
  .lf-tr.folder .nm b { font-weight:500; }
  .lf-ico { flex:none; width:36px; height:28px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; font-family:'Geist Mono',monospace; font-size:8.5px; font-weight:600; letter-spacing:.04em; color:#fff; background:#94A3B8; }
  .lf-ico.x-xlsx, .lf-ico.x-xlsm { background:#1F7A48; } .lf-ico.x-csv { background:#0E9F95; } .lf-ico.x-pdf { background:#C0392B; }
  .lf-ico.x-docx, .lf-ico.x-doc { background:#2B5FC8; } .lf-ico.x-pptx, .lf-ico.x-potx { background:#D9541E; }
  .lf-ico.x-png, .lf-ico.x-jpg, .lf-ico.x-jpeg, .lf-ico.x-gif, .lf-ico.x-webp { background:#8B5CF6; }
  .lf-ico.fold { background:var(--hair); color:var(--muted); font-size:13px; }
  .lf-def { font-style:normal; font-size:10.5px; font-weight:600; color:#2B48C8; background:#ECEFFF; border-radius:99px; padding:1px 7px; margin-left:7px; }
  .lf-def.big { font-size:12px; padding:5px 10px; }
  .lf-apps { font-style:normal; font-size:10.5px; font-weight:600; color:#0B7F77; background:var(--teal-pale); border-radius:99px; padding:1px 7px; margin-left:7px; }
  .lf-ver { font-style:normal; font-family:'Geist Mono',monospace; font-size:11px; color:var(--sec); background:var(--hair); border-radius:5px; padding:1px 6px; }
  .lf-ver.multi { color:var(--orange-dk); background:var(--orange-tint); }
  .lf-acts { display:flex; gap:4px; justify-content:flex-end; opacity:.35; transition:opacity .12s; }
  .lf-tr:hover .lf-acts, .lf-tr.on .lf-acts { opacity:1; }
  .lf-act { height:26px; min-width:26px; padding:0 7px; border:1px solid var(--edge); background:#fff; border-radius:6px; font:inherit; font-size:12px; color:var(--body); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
  .lf-act:hover { border-color:var(--orange-lt); color:var(--orange-dk); }
  .lf-act.app { color:#0B7F77; border-color:#B9EAE6; font-weight:600; }
  .lf-empty { padding:28px; text-align:center; color:var(--sec); font-size:13px; }

  .lib-detail { border:1px solid var(--line); border-radius:12px; background:#fff; padding:14px 16px 18px; position:sticky; top:0; max-height:calc(100vh - 120px); overflow-y:auto; }
  .ld-pad { padding:12px; }
  .ld-head { display:flex; align-items:flex-start; gap:10px; }
  .ld-title { display:flex; gap:10px; flex:1; min-width:0; }
  .ld-title b { display:block; font-size:14px; font-weight:600; line-height:1.3; word-break:break-word; }
  .ld-title span { display:block; font-size:12px; color:var(--sec); margin-top:2px; }
  .ld-x { border:none; background:none; color:var(--muted); font-size:14px; cursor:pointer; padding:2px 4px; }
  .ld-x:hover { color:var(--ink); }
  .ld-desc { font-size:12.5px; color:var(--body); margin:10px 0 0; line-height:1.45; }
  .ld-acts { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0 4px; }
  .ld-tplnote { font-size:12px; color:#2B48C8; background:#F3F5FF; border-radius:8px; padding:8px 10px; margin-top:8px; }
  .ld-sec { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; margin:16px 0 7px; }
  .ld-sec small { text-transform:none; letter-spacing:0; font-weight:400; color:var(--faint); margin-left:4px; font-size:11px; }
  .ld-img img { width:100%; border-radius:8px; border:1px solid var(--line); display:block; }
  .ld-sheet { border:1px solid var(--line2); border-radius:9px; padding:9px 10px; margin-bottom:8px; }
  .ld-sh { font-weight:600; font-size:12.5px; margin-bottom:6px; }
  .ld-sh span { font-weight:400; color:var(--sec); }
  .ld-cg { display:flex; flex-wrap:wrap; gap:4px; align-items:center; margin:4px 0; }
  .ld-cgl { font-size:10.5px; color:var(--muted); width:72px; flex:none; }
  .ld-grid { overflow-x:auto; margin-top:8px; border:1px solid var(--line2); border-radius:6px; }
  .ld-grid table { border-collapse:collapse; font-size:11px; white-space:nowrap; }
  .ld-grid th, .ld-grid td { padding:3px 7px; border-bottom:1px solid var(--line3); text-align:left; }
  .ld-grid th { background:var(--chipbg); font-weight:600; color:var(--body); }
  .ld-text { font-size:12px; line-height:1.5; color:var(--body); white-space:pre-wrap; background:var(--chipbg); border:1px solid var(--line2); border-radius:8px; padding:10px; max-height:260px; overflow-y:auto; }
  .ld-app { display:flex; align-items:center; gap:8px; width:100%; border:1px solid var(--line); background:#fff; border-radius:8px; padding:7px 10px; font:inherit; font-size:12.5px; cursor:pointer; margin-bottom:5px; text-align:left; }
  .ld-app:hover { border-color:#B9EAE6; background:#F5FDFC; }
  .ld-app span { color:var(--teal); } .ld-app b { flex:1; font-weight:600; }
  .ld-app em { font-style:normal; font-size:11px; color:var(--sec); } .ld-app em.bad, .ap-cfoot em.bad { color:var(--red); font-weight:600; }
  .ld-none { font-size:12.5px; color:var(--sec); } .ld-none a { color:var(--orange-dk); cursor:pointer; }
  .ld-ver { display:flex; align-items:center; gap:8px; padding:5px 0; border-bottom:1px solid var(--line3); font-size:12px; }
  .ld-ver span { flex:1; color:var(--sec); }
  .ld-ver span i { display:block; font-style:normal; color:var(--body); }
  .ld-ver a { color:var(--muted); text-decoration:none; } .ld-ver a:hover { color:var(--orange-dk); }
  .ld-ver button, .ap-ver button { border:1px solid var(--edge); background:#fff; border-radius:6px; font:inherit; font-size:11px; padding:2px 7px; cursor:pointer; color:var(--body); }
  .ld-ev { display:flex; gap:9px; font-size:12px; padding:5px 0; color:var(--body); line-height:1.4; }
  .ld-ev i { display:block; font-style:normal; color:var(--muted); font-size:11px; }
  .ld-evi { width:20px; height:20px; flex:none; border-radius:6px; background:var(--hair); display:inline-flex; align-items:center; justify-content:center; font-size:11px; color:var(--sec); }
  .ld-ev.k-app .ld-evi { background:var(--teal-pale); color:#0B7F77; } .ld-ev.k-cards .ld-evi { background:var(--orange-tint); color:var(--orange-dk); }
  .ld-ev.k-profiled .ld-evi { background:#ECEFFF; color:#2B48C8; }

  .lib-modal { position:fixed; inset:0; background:rgba(27,29,49,.32); z-index:200; display:flex; align-items:flex-start; justify-content:center; padding-top:12vh; }
  .lib-mbox { width:560px; max-width:calc(100vw - 32px); background:#fff; border-radius:14px; box-shadow:var(--shadow-modal); padding:16px 18px 18px; }
  .lib-mhead { display:flex; align-items:center; justify-content:space-between; font-size:15px; margin-bottom:12px; }
  .lib-mrow { display:grid; grid-template-columns:auto 1fr auto 1.4fr; gap:8px; align-items:center; margin-bottom:12px; font-size:12px; color:var(--sec); }
  .lib-mrow select { height:32px; border:1px solid var(--line); border-radius:8px; font:inherit; font-size:13px; padding:0 8px; background:#fff; min-width:0; }
  .lib-drop { display:flex; flex-direction:column; align-items:center; gap:6px; border:2px dashed var(--edge); border-radius:12px; padding:26px 18px; text-align:center; cursor:pointer; background:var(--chipbg); }
  .lib-drop:hover, .lib-drop.on { border-color:var(--orange); background:var(--orange-pale); }
  .lib-drop input { display:none; }
  .lib-drop b { font-size:14px; } .lib-drop span { font-size:12px; color:var(--sec); max-width:420px; }
  .lib-drop .lib-dropic { font-size:22px; color:var(--orange); }
  .lib-results { margin-top:12px; display:flex; flex-direction:column; gap:6px; }
  .lib-res { display:flex; gap:10px; align-items:center; font-size:12.5px; }
  .lib-res i { display:block; font-style:normal; color:var(--sec); font-size:12px; }

  /* My Apps */
  .ap-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:14px; margin-top:4px; }
  .ap-card { border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden; cursor:pointer; display:flex; flex-direction:column; text-align:left; font:inherit; padding:0; box-shadow:var(--shadow-card); transition:border-color .12s, transform .12s; }
  .ap-card:hover { border-color:var(--orange-lt); transform:translateY(-1px); }
  .ap-card.new { align-items:center; justify-content:center; gap:6px; padding:30px 20px; border-style:dashed; box-shadow:none; background:var(--chipbg); color:var(--sec); min-height:220px; }
  .ap-card.new span { font-size:26px; color:var(--orange); } .ap-card.new b { color:var(--ink); font-size:14px; } .ap-card.new i { font-style:normal; font-size:12px; text-align:center; max-width:220px; }
  .ap-thumb { display:grid; grid-template-columns:repeat(4, 1fr); gap:5px; padding:12px; background:linear-gradient(135deg, #FBFBFC, #F4F5F7); border-bottom:1px solid var(--line2); height:96px; align-content:start; overflow:hidden; }
  .ap-thumb span { border-radius:4px; background:#fff; border:1px solid var(--line); height:20px; }
  .ap-thumb .th-kpi { box-shadow:inset 0 -3px 0 var(--orange-lt); }
  .ap-thumb .th-bar { grid-column:span 2; height:44px; background:linear-gradient(to top, var(--orange-tint) 0 40%, #fff 40%); }
  .ap-thumb .th-line { grid-column:span 2; height:44px; background:linear-gradient(160deg, #fff 45%, var(--teal-pale) 45% 55%, #fff 55%); }
  .ap-thumb .th-table { grid-column:1 / -1; height:26px; background:repeating-linear-gradient(to bottom, #fff 0 5px, var(--line3) 5px 6px); }
  .ap-cbody { padding:12px 14px 12px; display:flex; flex-direction:column; gap:6px; flex:1; }
  .ap-ctop { display:flex; align-items:center; gap:8px; } .ap-ctop b { flex:1; font-size:14.5px; font-weight:600; }
  .ap-cbody p { font-size:12.5px; color:var(--sec); line-height:1.4; }
  .ap-pin { border:none; background:none; cursor:pointer; font-size:13px; opacity:.28; filter:grayscale(1); padding:2px; }
  .ap-pin.on { opacity:1; filter:none; }
  .ap-pin.big { border:1px solid var(--edge); border-radius:8px; height:32px; padding:0 11px; font:inherit; font-size:12.5px; opacity:1; filter:none; background:#fff; color:var(--body); }
  .ap-pin.big.on { background:var(--orange-tint); border-color:var(--orange-lt); color:var(--orange-dk); }
  .ap-ckpi { display:flex; align-items:baseline; gap:8px; } .ap-ckpi span { font-size:12px; color:var(--sec); } .ap-ckpi b { font-size:18px; font-weight:600; letter-spacing:-.01em; }
  .ap-delta { font-size:11.5px; font-weight:600; border-radius:99px; padding:1px 7px; white-space:nowrap; }
  .ap-delta.up { color:var(--green); background:#E4F4EA; } .ap-delta.dn { color:var(--red); background:#FBEAEA; }
  .ap-cmeta { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--body); margin-top:auto; padding-top:6px; }
  .ap-cmeta .lf-ico { width:30px; height:22px; font-size:7.5px; }
  .ap-cfoot { display:flex; justify-content:space-between; gap:8px; font-size:11.5px; color:var(--muted); border-top:1px solid var(--line3); padding-top:8px; }
  .ap-cfoot em { font-style:normal; }

  .ap-steps { display:flex; gap:22px; margin:14px 0 14px; font-size:12.5px; color:var(--muted); }
  .ap-steps span { display:flex; align-items:center; gap:7px; } .ap-steps i { font-style:normal; width:20px; height:20px; border-radius:50%; border:1px solid var(--edge); display:inline-flex; align-items:center; justify-content:center; font-size:11px; }
  .ap-steps .on { color:var(--ink); font-weight:600; } .ap-steps .on i { background:var(--orange); border-color:var(--orange); color:#fff; }
  .ap-steps .done i { background:var(--ink); border-color:var(--ink); color:#fff; }
  .ap-wbox { border:1px solid var(--line); border-radius:14px; background:#fff; padding:18px 20px 20px; max-width:980px; box-shadow:var(--shadow-card); }
  .ap-wtitle { font-size:16px; font-weight:600; letter-spacing:-.01em; } .ap-wtitle.sm { font-size:14px; margin-top:18px; }
  .ap-wsub { font-size:12.5px; color:var(--sec); margin-top:3px; line-height:1.45; }
  .ap-pickh { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; margin:12px 0 6px; }
  .ap-pick { display:flex; align-items:center; gap:11px; width:100%; border:1px solid var(--line); background:#fff; border-radius:10px; padding:9px 12px; font:inherit; font-size:13px; text-align:left; cursor:pointer; margin-bottom:6px; }
  .ap-pick:hover { border-color:var(--orange-lt); background:var(--orange-pale); }
  .ap-pick > span:nth-child(2) { flex:1; min-width:0; } .ap-pick b { font-weight:600; } .ap-pick i { display:block; font-style:normal; font-size:12px; color:var(--sec); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .ap-go { color:var(--orange-dk); font-size:12.5px; font-weight:600; }
  .ap-wfoot { font-size:12.5px; color:var(--sec); margin-top:10px; } .ap-wfoot a { color:var(--orange-dk); cursor:pointer; }
  .ap-building { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--sec); padding:16px 4px; }
  .ap-spin { width:16px; height:16px; border:2px solid var(--orange-tint); border-top-color:var(--orange); border-radius:50%; animation:apspin .8s linear infinite; }
  @keyframes apspin { to { transform:rotate(360deg); } }
  .ap-found { display:flex; gap:12px; align-items:flex-start; margin-bottom:6px; }
  .ap-found > div:nth-child(2) { flex:1; }
  .ap-sheet { height:32px; border:1px solid var(--line); border-radius:8px; font:inherit; padding:0 8px; }
  .ap-mg { margin-top:14px; }
  .ap-mgh { font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:6px; }
  .ap-mgh span { font-weight:400; color:var(--muted); margin-left:8px; font-size:12px; }
  .ap-mgc { display:flex; flex-wrap:wrap; gap:7px; }
  .ap-mchip { position:relative; display:inline-flex; flex-direction:column; padding:6px 26px 6px 10px; border-radius:9px; border:1px solid var(--line); background:#fff; cursor:pointer; min-width:120px; }
  .ap-mchip b { font-size:12.5px; font-weight:600; } .ap-mchip i { font-style:normal; font-size:11px; color:var(--sec); }
  .ap-mchip::after { content:"\25BE"; position:absolute; right:9px; top:50%; transform:translateY(-50%); font-size:10px; color:var(--muted); pointer-events:none; }
  .ap-mchip select { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
  .ap-mchip.m { border-color:#F8C5B0; background:var(--orange-pale); } .ap-mchip.d { border-color:#C9D2FF; background:#F6F7FF; }
  .ap-mchip.t { border-color:#B9EAE6; background:#F2FCFB; } .ap-mchip.x { opacity:.6; }
  .ap-wprompt { width:100%; min-height:74px; border:1px solid var(--line); border-radius:10px; padding:10px 12px; font:inherit; font-size:13.5px; margin-top:8px; resize:vertical; outline:none; }
  .ap-wprompt:focus { border-color:var(--orange); }
  .ap-wrow { display:flex; align-items:center; gap:12px; margin-top:14px; flex-wrap:wrap; }
  .ap-wrow .sp, .rx-head .sp { flex:1; }
  .ap-vis { display:inline-flex; border:1px solid var(--edge); border-radius:9px; overflow:hidden; }
  .ap-vis button { border:none; background:#fff; font:inherit; font-size:12.5px; padding:7px 12px; cursor:pointer; color:var(--sec); }
  .ap-vis button + button { border-left:1px solid var(--edge); }
  .ap-vis button.on { background:var(--ink); color:#fff; }
  .ap-vis.sm button { padding:6px 10px; font-size:12px; }
  .ap-noai { font-size:12px; color:var(--sec); }

  .ap-one .rx-head { flex-wrap:wrap; }
  .ap-flink { color:var(--orange-dk); cursor:pointer; font-weight:600; }
  .ap-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; align-items:start; }
  @media (max-width:1100px) { .ap-layout { grid-template-columns:minmax(0,1fr); } }
  .ap-canvas { border:1px solid var(--line); border-radius:14px; background:#FAFAFB; padding:16px; min-height:300px; }
  .ap-propbar { display:flex; align-items:center; gap:10px; background:#ECEFFF; border:1px solid #C9D2FF; border-radius:10px; padding:8px 10px 8px 12px; margin-bottom:12px; font-size:12.5px; color:#1E3A8A; flex-wrap:wrap; }
  .ap-propbar span { flex:1; min-width:200px; color:#3B4A8A; }
  .ap-ctitle h3 { font-size:18px; font-weight:600; letter-spacing:-.01em; } .ap-ctitle p { font-size:12.5px; color:var(--sec); margin-top:2px; }
  .ap-slicers { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:12px 0 4px; }
  .ap-slicer { position:relative; }
  .ap-slicer > button { display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 10px; border:1px solid var(--edge); background:#fff; border-radius:8px; font:inherit; font-size:12.5px; cursor:pointer; }
  .ap-slicer > button span { color:var(--sec); } .ap-slicer > button b { font-weight:600; max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .ap-slicer > button i { font-style:normal; color:var(--muted); font-size:10px; }
  .ap-slicer.on > button { border-color:var(--orange-lt); background:var(--orange-pale); }
  .ap-spop { position:absolute; top:36px; left:0; z-index:30; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-pop); padding:6px; min-width:220px; max-height:300px; overflow-y:auto; }
  .ap-spop label { display:flex; gap:8px; align-items:center; padding:5px 8px; font-size:12.5px; border-radius:6px; cursor:pointer; }
  .ap-spop label:hover { background:var(--orange-pale); }
  .ap-sclear { border:none; background:none; color:var(--orange-dk); font:inherit; font-size:12px; cursor:pointer; padding:5px 8px; }
  .ap-rows { margin-left:auto; font-size:11.5px; color:var(--muted); font-family:'Geist Mono',monospace; }
  .ap-wgrid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; margin-top:12px; }
  @media (max-width:900px) { .ap-wgrid { grid-template-columns:repeat(2, minmax(0,1fr)); } }
  .ap-w { position:relative; background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; min-width:0; cursor:pointer; transition:box-shadow .12s, border-color .12s; }
  .ap-w:hover { border-color:#D5D8E0; }
  .ap-w.sel { border-color:var(--orange); box-shadow:0 0 0 3px var(--orange-tint); }
  .ap-w.warn { border-color:#F0C4C4; background:#FFFBFB; }
  .ap-w.t-line, .ap-w.t-bar { grid-column:span 2; }
  .ap-w.t-table { grid-column:1 / -1; }
  .ap-tools { position:absolute; top:7px; right:7px; display:none; gap:3px; z-index:2; }
  .ap-w:hover .ap-tools, .ap-w.sel .ap-tools { display:flex; }
  .ap-tools button { width:22px; height:22px; border:1px solid var(--edge); background:#fff; border-radius:6px; font-size:11px; cursor:pointer; color:var(--sec); }
  .ap-tools button:hover { color:var(--orange-dk); border-color:var(--orange-lt); }
  .ap-wt { font-size:12.5px; font-weight:600; color:var(--body); padding-right:70px; display:flex; align-items:baseline; gap:8px; }
  .ap-per { font-size:11px; font-weight:400; color:var(--muted); }
  .ap-w.t-kpi .ap-per { display:block; margin-top:4px; }
  .ap-kv { font-size:26px; font-weight:600; letter-spacing:-.02em; margin-top:6px; color:var(--ink); }
  .ap-kc { display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--muted); margin:3px 0 4px; min-height:18px; }
  .ap-w .fc-spark { display:block; margin-top:4px; width:100%; }
  .ap-chart { width:100%; margin-top:6px; }
  .ap-tbl { overflow-x:auto; margin-top:8px; }
  .ap-tbl table { width:100%; border-collapse:collapse; font-size:12.5px; }
  .ap-tbl th { text-align:left; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; padding:6px 8px; border-bottom:1px solid var(--line); white-space:nowrap; }
  .ap-tbl td { padding:6px 8px; border-bottom:1px solid var(--line3); }
  .ap-tbl .n { text-align:right; font-variant-numeric:tabular-nums; }
  .ap-tbl tr:hover td { background:var(--orange-pale); }
  .ap-tfoot { font-size:11.5px; color:var(--muted); margin-top:6px; }
  .ap-attn { font-size:12.5px; color:var(--body); margin-top:8px; display:flex; flex-direction:column; gap:6px; }
  .ap-attn b { color:var(--red); }
  .ap-build { border:1px solid var(--line); border-radius:14px; background:#fff; padding:6px 14px 16px; position:sticky; top:0; max-height:calc(100vh - 110px); overflow-y:auto; }
  .ap-sec { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; margin:14px 0 7px; }
  .ap-sec small { text-transform:none; letter-spacing:0; font-weight:400; color:var(--faint); margin-left:4px; font-size:11px; }
  .ap-ask { position:relative; }
  .ap-ask textarea { width:100%; min-height:76px; border:1px solid var(--line); border-radius:10px; padding:9px 11px; font:inherit; font-size:13px; resize:vertical; outline:none; }
  .ap-ask textarea:focus { border-color:var(--orange); }
  .ap-askrow { display:flex; align-items:center; gap:8px; margin-top:6px; font-size:11.5px; color:var(--muted); }
  .ap-askrow span { flex:1; }
  .ac-pop.ap-ac { bottom:auto; top:calc(100% - 34px); left:0; min-width:0; width:100%; }
  .ap-ac .ac-k { font-size:9.5px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; border-radius:4px; padding:1px 5px; background:#ECEFFF; color:#2B48C8; }
  .ap-ac .ac-k.m { background:var(--orange-tint); color:var(--orange-dk); }
  .ap-ac .ac-item { width:100%; border:none; background:none; font:inherit; text-align:left; }
  .ap-hint { font-size:12px; color:var(--sec); line-height:1.4; margin-bottom:8px; }
  .ap-hint a { color:var(--orange-dk); cursor:pointer; font-weight:600; }
  .ap-fg { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:9px; align-items:center; }
  .ap-fg > span { width:100%; font-size:11px; color:var(--muted); }
  .ap-chip { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--line); background:#fff; border-radius:99px; padding:3px 9px; font:inherit; font-size:12px; color:var(--body); cursor:pointer; white-space:nowrap; }
  span.ap-chip { cursor:default; font-size:11px; padding:1px 7px; }
  .ap-chip i { font-style:normal; font-size:10.5px; color:var(--muted); font-family:'Geist Mono',monospace; }
  .ap-chip.m { border-color:#F8C5B0; } .ap-chip.d { border-color:#C9D2FF; } .ap-chip.t { border-color:#B9EAE6; }
  button.ap-chip.m:hover { background:var(--orange-pale); } button.ap-chip.d:hover { background:#F6F7FF; }
  .ap-chip.used.m { background:var(--orange); border-color:var(--orange); color:#fff; } .ap-chip.used.m i { color:rgba(255,255,255,.8); }
  .ap-chip.used.d { background:#2B48C8; border-color:#2B48C8; color:#fff; }
  .ap-add { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
  .ap-add button { border:1px dashed var(--edge); background:var(--chipbg); border-radius:8px; padding:7px; font:inherit; font-size:12.5px; cursor:pointer; color:var(--body); }
  .ap-add button:hover:not(:disabled) { border-color:var(--orange); color:var(--orange-dk); background:var(--orange-pale); }
  .ap-ver { display:flex; align-items:flex-start; gap:8px; padding:6px 0; border-bottom:1px solid var(--line3); font-size:12px; }
  .ap-ver span { flex:1; color:var(--body); line-height:1.35; } .ap-ver span i { display:block; font-style:normal; color:var(--muted); font-size:11px; }
  .ap-del { margin-top:16px; border:none; background:none; color:var(--muted); font:inherit; font-size:12px; cursor:pointer; padding:0; }
  .ap-del:hover { color:var(--red); }

  /* Excel Reports: the PPTX template, from the Library */
  .rx-tplwrap { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--orange-lt); background:var(--orange-pale); border-radius:99px; padding:2px 4px 2px 10px; }
  .rx-tplwrap.hide { display:none; }
  .rx-tpll { font-size:10.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--orange-dk); }
  .rx-tpl { border:none; background:transparent; font:inherit; font-size:12px; color:var(--ink); font-weight:500; max-width:230px; cursor:pointer; outline:none; }
  .rx-tplmng { font-size:11.5px; color:var(--sec); cursor:pointer; padding:0 6px; }
  .rx-tplmng:hover { color:var(--orange-dk); }
  .rx-tplnote { font-size:11.5px; color:var(--sec); margin-left:8px; }
  .rx-ftpl { font-style:normal; font-weight:500; opacity:.8; margin-left:5px; font-size:10.5px; }
  .lib-body.with-detail .lf-tr { grid-template-columns:minmax(0,1fr) 46px 118px; }
  .lib-body.with-detail .lf-tr > span:nth-child(2), .lib-body.with-detail .lf-tr > span:nth-child(4) { display:none; }
  .lf-tr .nmt b { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lf-tr .nmt { overflow:hidden; }
  .lf-tr .nmt .nml { display:flex; align-items:center; min-width:0; }
  button.ap-chip.used.m:hover { background:var(--orange-dk); } button.ap-chip.used.d:hover { background:#1E3A8A; }
  .ld-title .lf-ico { display:inline-flex; color:#fff; font-size:8.5px; margin-top:0; }
  .ap-krow { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:12px; margin-top:12px; }
  .ap-krow:empty { display:none; }
  .ap-wgrid { align-items:start; }

  /* v2.70 — Library spreadsheets as Excel Reports */
  .rx-gl { font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); font-weight:600; margin:22px 0 -8px; display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }
  .rx-gl span { text-transform:none; letter-spacing:0; font-weight:400; color:var(--sec); font-size:12px; }
  .rx-gl a, .rx-libl { color:var(--orange-dk); cursor:pointer; }
  .rx-src.lib { background:#ECEFFF; color:#2B48C8; }
  .ap-w.wide { grid-column:1 / -1; }

  /* v2.73 — the Excel Reports composer in the chat composer's shape */
  .rx-comp { border:none; padding:0; background:none; box-shadow:none; }
  .rx-composer { padding:14px 14px 12px 16px; }
  .rx-composer .rx-prompt { min-height:44px; max-height:150px; font-size:14.5px; padding:0; }
  .rx-crow { align-items:center; flex-wrap:wrap; gap:8px; }
  .rx-crow .scope-chips { min-width:160px; }
  .rx-crow .rx-fmts { flex-wrap:wrap; justify-content:flex-end; }
  .rx-composer .rx-ac { left:0; }
  .rep-fbd { position:fixed; inset:0; background:rgba(27,29,49,.4); z-index:100; display:none; align-items:center; justify-content:center; padding:24px; }
  .rep-fbd.open { display:flex; }
  .rep-fov .overlay-body { min-height:360px; }
  .rep-fsub { font-size:12px; color:var(--muted); }
  .rep-fnote { font-size:11.5px; color:var(--muted); margin-right:auto; }

/* ═════════ Home v2.78 — the Signals MVP feed ═════════ */
  .home-head { gap:8px; margin-bottom:14px; }
  .home-head-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
  .home-head-row .sp { flex:1; }
  .home-head .feed-tabs { margin-left:0; }
  .home-head .feed-sub b { color:var(--ink); font-weight:600; }
  .home-head .feed-sub a { color:var(--orange-dk); cursor:pointer; }
  .btn-manage-ins { border:1px solid #131B2F; color:#131B2F; background:#fff; border-radius:8px; font:inherit; font-size:13px; font-weight:600; padding:7px 14px; cursor:pointer; }
  .btn-manage-ins:hover { background:#131B2F; color:#fff; }
  .btn-manage-ins:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
  .pin-lab { font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.12em; color:var(--orange-dk); display:flex; align-items:center; gap:8px; margin:2px 0 8px; }
  .pin-lab::after { content:""; flex:1; height:1px; background:var(--orange-lt); }
  #pinStrip { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
  #pinStrip:empty { display:none; }
  #pinStrip .feed-card { border-color:var(--orange-lt); background:var(--orange-pale); }
  .home-tags { display:flex; flex-wrap:wrap; gap:4px; }
  .home-tag { border:1px solid var(--line2); background:var(--chipbg); border-radius:6px; font:inherit; font-size:12px; color:var(--body); padding:2px 7px; cursor:pointer; }
  .home-tag small { color:var(--muted); }
  .home-tag.on { background:var(--orange-tint); border-color:var(--orange-lt); color:var(--ink); }

  .feed-card.hc { position:relative; gap:7px; border-left-width:1px; }
  .feed-card.hc.sev-high { border-left:3px solid var(--red); }
  .feed-card.hc.sev-medium { border-left:3px solid #D97706; }
  .feed-card.hc .fc-title { font-size:16px; font-weight:600; line-height:1.32; letter-spacing:-.01em; cursor:pointer; padding-right:120px; text-wrap:balance; }
  .feed-card.hc .fc-unread { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--orange); margin-right:8px; vertical-align:3px; }
  .fc-badge { position:absolute; top:14px; right:16px; font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.08em; padding:3px 7px; border-radius:6px; background:var(--hair); color:var(--sec); max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:help; }
  .fc-badge.sig { background:var(--orange-tint); color:var(--orange-dk); }
  .fc-meta { display:flex; align-items:center; gap:6px; flex-wrap:wrap; color:var(--sec); font-size:12px; }
  .fc-meta b { color:var(--body); font-weight:500; }
  .fc-sep { color:var(--faint); }
  .fc-av { width:20px; height:20px; border-radius:50%; color:#fff; font-size:9.5px; font-weight:600; display:inline-flex; align-items:center; justify-content:center; flex:none; }
  .fc-cdot { width:8px; height:8px; border-radius:50%; display:inline-block; }
  .feed-card.hc .fc-body { font-size:13.5px; color:var(--body); }
  /* v2.83 what a card covers: one plain scope line on the face, the rest in a hover/tap pop-out (CSM 10-12, Brad: never a block) */
  .fc-scope { display:flex; align-items:baseline; gap:4px 10px; flex-wrap:wrap; font-size:12px; color:var(--sec); }
  .fc-scope-t { min-width:0; overflow-wrap:anywhere; }
  .fc-info { border:none; background:none; font:inherit; font-size:12px; font-weight:500; color:var(--teal); padding:1px 5px; border-radius:5px; cursor:pointer; white-space:nowrap; }
  .fc-info:hover, .fc-info:focus-visible, .fc-info[aria-expanded="true"] { background:var(--teal-pale); outline:none; }
  .prov-pop { position:fixed; z-index:420; width:360px; max-width:calc(100vw - 24px); background:#fff; border:1px solid var(--line); border-radius:10px;
              box-shadow:var(--shadow-pop); padding:12px 14px; display:flex; flex-direction:column; gap:6px; font-size:12.5px; color:var(--body); }
  .prov-pop .pp-h { font-weight:650; color:var(--ink); font-size:13px; }
  .prov-pop .pp-r { display:grid; grid-template-columns:88px minmax(0,1fr); gap:8px; }
  .prov-pop .pp-k { color:var(--sec); }
  .prov-pop .pp-v { color:var(--ink); overflow-wrap:anywhere; }
  .prov-pop .pp-v.none { color:var(--muted); font-style:italic; }
  .prov-pop .pp-f { font-size:11.5px; color:var(--muted); border-top:1px solid var(--line2); padding-top:6px; }
  .fc-src-dl { align-self:flex-start; display:inline-flex; align-items:center; gap:6px; background:var(--orange); color:#fff; border:none; border-radius:7px;
               font:inherit; font-size:12.5px; font-weight:600; padding:6px 12px; cursor:pointer; text-decoration:none; }
  .fc-src-dl:hover { background:var(--orange-dk); }
  .fc-held { color:#9A6A00; background:#FBF1D9; border-radius:5px; padding:1px 6px; font-weight:500; }
  .fc-det { display:none; flex-direction:column; gap:10px; border-top:1px dashed var(--line2); padding-top:10px; }
  .feed-card.open .fc-det { display:flex; }
  .fc-snap { font-family:'Geist Mono',monospace; font-size:11px; color:var(--muted); }
  .fc-open { align-self:flex-start; border:none; background:none; color:var(--orange-dk); font:inherit; font-size:12.5px; font-weight:600; padding:0; cursor:pointer; }
  .fc-talk { display:flex; align-items:center; gap:8px; border:1px solid var(--line2); background:var(--chipbg); border-radius:10px; padding:6px 10px; font-size:12.5px; color:var(--sec); cursor:pointer; min-width:0; }
  .fc-talk:hover { border-color:var(--edge); }
  .fc-avs { display:inline-flex; } .fc-avs .fc-av { margin-left:-5px; border:2px solid #fff; width:22px; height:22px; } .fc-avs .fc-av:first-child { margin-left:0; }
  .fc-talk-n { font-weight:600; color:var(--ink); white-space:nowrap; }
  .fc-talk-last { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .fc-talk-last b { color:var(--body); font-weight:500; }
  .fc-talk-t { color:var(--muted); white-space:nowrap; font-size:11.5px; }
  .feed-card.hc .fc-actions { gap:2px; flex-wrap:wrap; }
  .fc-tags { color:var(--muted); font-size:12px; padding:0 6px; }
  .fc-sp { flex:1; }
  .fc-act.ico { padding:5px 7px; font-size:13px; }
  .feed-card.hc .fc-act.dim { margin-left:0; }
  .feed-card.hc .fc-comments { gap:9px; }
  .feed-card.hc .fc-comment { display:flex; gap:8px; font-size:13px; color:var(--body); }
  .fc-cinput { display:flex; gap:6px; }
  .fc-cinput input { flex:1; min-width:0; }
  .fc-mention { border:1px solid var(--line); background:#fff; border-radius:8px; font:inherit; font-size:12px; color:var(--orange-dk); padding:0 10px; cursor:pointer; white-space:nowrap; }
  .fc-mlist { display:flex; flex-wrap:wrap; gap:4px; }
  .fc-mlist:empty { display:none; }
  .fc-mlist button { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line); background:#fff; border-radius:999px; font:inherit; font-size:12px; padding:3px 10px 3px 3px; cursor:pointer; }
  .fc-mlist button small { color:var(--muted); }
  .fc-reason-pop { position:fixed; z-index:400; width:240px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-pop); padding:8px; display:flex; flex-direction:column; gap:2px; }
  .fc-rp-h { font-size:11.5px; color:var(--muted); padding:2px 6px 6px; }
  .fc-reason-pop button, .fc-reason-pop a { text-align:left; border:none; background:none; font:inherit; font-size:13px; color:var(--ink); padding:6px 8px; border-radius:7px; cursor:pointer; text-decoration:none; }
  .fc-reason-pop button:hover, .fc-reason-pop a:hover { background:var(--hair); }
  .fc-reason-pop input { margin-top:4px; border:1px solid var(--line); border-radius:7px; padding:6px 8px; font:inherit; font-size:12.5px; }
  .feed-card.flash { box-shadow:0 0 0 3px var(--orange-lt); transition:box-shadow .3s; }

/* ═════════ Manage Insights v2.79 ═════════ */
  .ins-page { width:100%; max-width:1320px; margin:0 auto; padding:20px 28px 60px; display:flex; flex-direction:column; gap:12px; }
  .ins-crumb { color:var(--sec); font-size:13px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .ins-crumb a { color:var(--sec); cursor:pointer; } .ins-crumb a:hover { color:var(--ink); }
  .ins-crumb b { color:var(--ink); font-weight:600; }
  .ins-head, .ins-ehead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .ins-head h2, .ins-ehead h2 { font-size:21px; margin:0; font-weight:600; letter-spacing:-.015em; }
  .ins-head .sp, .ins-ehead .sp { flex:1; }
  .ins-sub { color:var(--sec); font-size:13px; max-width:80ch; }
  .ins-search { height:34px; width:250px; border:1px solid var(--line); border-radius:9px; padding:0 12px; font:inherit; font-size:13px; background:var(--chipbg); outline:none; }
  .ins-search:focus { border-color:var(--edge); background:#fff; }
  .ins-tog { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--body); cursor:pointer; user-select:none; position:relative; }
  .ins-tog input { position:absolute; opacity:0; width:0; height:0; }
  .ins-sw { width:32px; height:18px; border-radius:99px; background:var(--edge); position:relative; flex:none; transition:background .15s; }
  .ins-sw::after { content:""; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#fff; transition:left .15s; }
  .ins-tog input:checked + .ins-sw { background:var(--orange); }
  .ins-tog input:checked + .ins-sw::after { left:16px; }
  .ins-tog input:focus-visible + .ins-sw { outline:2px solid var(--orange); outline-offset:2px; }
  .ins-tog input:disabled + .ins-sw { opacity:.5; }
  .ins-chip { display:inline-flex; align-items:center; padding:2px 9px; border-radius:99px; font-size:11.5px; font-weight:500; background:var(--hair); color:var(--body); white-space:nowrap; }
  .ins-chip.ok { background:#E6F4EC; color:#1F7A48; } .ins-chip.bad { background:var(--orange-tint); color:var(--red); }
  .ins-chip.warn { background:#FBF1DC; color:#B7791F; } .ins-chip.navy { background:#131B2F; color:#fff; }
  .ins-tablewrap { overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:#fff; }
  .ins-table { width:100%; border-collapse:collapse; font-size:13px; min-width:960px; }
  .ins-table th { text-align:left; font-weight:500; color:var(--sec); font-size:11.5px; padding:9px 9px; border-bottom:1px solid var(--line); white-space:nowrap; background:var(--chipbg); }
  .ins-th { border:none; background:none; font:inherit; color:inherit; cursor:pointer; padding:0; display:inline-flex; align-items:center; gap:4px; }
  .ins-th i { width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid var(--faint); }
  .ins-th.on { color:var(--orange-dk); } .ins-th b { background:var(--orange); color:#fff; border-radius:99px; font-size:10px; padding:0 5px; }
  .ins-table td { padding:11px 9px; border-bottom:1px solid var(--hair); vertical-align:middle; }
  .ins-table tbody tr { cursor:pointer; } .ins-table tbody tr:hover td { background:var(--orange-pale); }
  /* v2.87.2: delete from the list */
  .ins-table .ins-ck { width:34px; padding-left:12px; padding-right:0; } .ins-ck input { cursor:pointer; width:15px; height:15px; }
  .ins-ck input:disabled { cursor:not-allowed; opacity:.35; }
  .ins-table tbody tr.sel td { background:var(--orange-pale); }
  .ins-qchip { border:0; cursor:pointer; font-family:inherit; } .ins-qchip:hover { filter:brightness(.95); }
  .ins-qchip.on { box-shadow:0 0 0 1.5px #131B2F inset; }
  .ins-bulk { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:9px 12px; margin:0 0 10px; border:1px solid var(--line); border-radius:10px; background:#fff; font-size:13px; }
  .ins-bulk.confirm { border-color:var(--red); background:var(--orange-tint); }
  .ins-bulk .sp { flex:1; }
  .ins-name b { font-weight:600; display:block; } .ins-name small { color:var(--muted); font-size:11.5px; display:block; max-width:230px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ins-days { display:inline-flex; gap:2px; font-family:'Geist Mono',monospace; font-size:10px; }
  .ins-days span { width:18px; height:18px; border-radius:4px; display:inline-flex; align-items:center; justify-content:center; background:var(--hair); color:var(--faint); }
  .ins-days span.on { background:#131B2F; color:#fff; }
  .ins-run { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
  .ins-dot { width:8px; height:8px; border-radius:50%; background:var(--faint); flex:none; display:inline-block; }
  .ins-dot.ok { background:#1F7A48; } .ins-dot.bad { background:var(--red); } .ins-dot.warn { background:#D97706; }
  .ins-dot.run { background:var(--orange); animation:insPulse 1.2s ease-in-out infinite; }
  @keyframes insPulse { 50% { opacity:.3; } }
  @media (prefers-reduced-motion: reduce) { .ins-dot.run { animation:none; } }
  .ins-why { color:var(--red); font-size:11.5px; max-width:220px; margin-top:2px; white-space:normal; }
  .ins-next { color:var(--body); white-space:nowrap; }
  .ins-cdot { width:8px; height:8px; border-radius:50%; display:inline-block; }
  .ins-muted { color:var(--muted); }
  .ins-empty { text-align:center; color:var(--sec); padding:30px !important; } .ins-empty a { color:var(--orange-dk); cursor:pointer; }
  .ins-colpop { position:fixed; z-index:400; width:240px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-pop); padding:8px; display:flex; flex-direction:column; gap:2px; max-height:340px; overflow:auto; }
  .ins-colpop label { display:flex; align-items:center; gap:8px; font-size:13px; padding:5px 6px; border-radius:6px; cursor:pointer; }
  .ins-colpop label:hover { background:var(--hair); } .ins-colpop small { margin-left:auto; color:var(--muted); }
  .ins-colpop-foot { border-top:1px solid var(--hair); padding:6px 6px 0; margin-top:4px; font-size:12px; } .ins-colpop-foot a { color:var(--orange-dk); cursor:pointer; }
  .ins-danger { color:var(--red) !important; } .ins-danger-fill { background:var(--red); margin:0 8px; }
  .ins-alert { border-radius:10px; padding:10px 14px; font-size:13px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
  .ins-alert.bad { background:var(--orange-tint); color:var(--ink); border:1px solid var(--orange-lt); }
  .ins-alert.warn { background:#FBF1DC; border:1px solid #F0D9A8; }
  .ins-alert a, .ins-dirtybar a { color:var(--orange-dk); cursor:pointer; font-weight:600; }
  .ins-dirtybar { background:#FBF1DC; border:1px solid #F0D9A8; border-radius:10px; padding:9px 14px; font-size:13px; }
  .ins-egrid { display:grid; grid-template-columns:170px minmax(0,1fr); gap:28px; align-items:start; }
  @media (max-width:900px) { .ins-egrid { grid-template-columns:minmax(0,1fr); } .ins-otp { display:none; } }
  .ins-otp { position:sticky; top:0; display:flex; flex-direction:column; gap:2px; }
  .ins-otp a { display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:7px; font-size:13px; color:var(--body); cursor:pointer; }
  .ins-otp a:hover { background:var(--hair); }
  .ins-otp .ck { width:15px; height:15px; border-radius:50%; border:1.5px solid var(--edge); display:inline-flex; align-items:center; justify-content:center; font-size:9px; color:#fff; flex:none; }
  .ins-otp .ck.done { background:#1F7A48; border-color:#1F7A48; }
  .ins-ebody { display:flex; flex-direction:column; gap:30px; max-width:820px; min-width:0; }
  .ins-sec { display:flex; flex-direction:column; gap:12px; scroll-margin-top:12px; }
  .ins-sec h3 { font-size:15.5px; margin:0; font-weight:600; } .ins-sec h3 small { color:var(--muted); font-weight:400; font-size:12.5px; margin-left:8px; }
  .ins-field { display:grid; grid-template-columns:160px minmax(0,1fr); gap:10px; align-items:start; font-size:13px; }
  @media (max-width:700px) { .ins-field { grid-template-columns:minmax(0,1fr); } }
  .ins-field > label { color:var(--sec); padding-top:8px; }
  .ins-field input:not([type=checkbox]), .ins-field select, .ins-sec textarea { border:1px solid var(--edge); border-radius:8px; padding:8px 11px; font:inherit; font-size:13px; background:#fff; color:var(--ink); min-width:0; }
  .ins-field select { max-width:340px; } .ins-field input[type=time] { width:140px; } .ins-field input#insTitle { max-width:460px; width:100%; }
  .ins-field input#insEmail { max-width:340px; width:100%; }
  .ins-sec textarea { width:100%; resize:vertical; line-height:1.5; }
  .ins-help { color:var(--muted); font-size:12px; margin-top:5px; line-height:1.45; max-width:72ch; }
  .ins-tags { display:flex; flex-wrap:wrap; gap:6px; align-items:center; border:1px solid var(--edge); border-radius:8px; padding:5px 7px; background:#fff; }
  .ins-tags input { border:none !important; outline:none; padding:3px 4px !important; flex:1; min-width:110px; }
  .ins-tag { display:inline-flex; align-items:center; gap:4px; background:var(--hair); border-radius:6px; padding:2px 4px 2px 8px; font-size:12.5px; }
  .ins-tag button { border:none; background:none; cursor:pointer; color:var(--muted); font-size:14px; line-height:1; padding:0 3px; }
  .ins-daypick { display:flex; gap:4px; align-items:center; flex-wrap:wrap; }
  .ins-daypick button { width:36px; height:30px; border-radius:7px; border:1px solid var(--edge); background:#fff; font:inherit; font-size:12px; color:var(--sec); cursor:pointer; }
  .ins-daypick button.on { background:#131B2F; border-color:#131B2F; color:#fff; }
  .ins-quick { display:inline-flex; gap:10px; margin-left:10px; } .ins-quick a { font-size:12px; color:var(--orange-dk); cursor:pointer; }
  .ins-tree { border:1px solid var(--line); border-radius:10px; overflow:hidden; font-size:13px; max-height:420px; overflow-y:auto; }
  .ins-tree .ins-th, .ins-tree .ins-tr { display:grid; grid-template-columns:minmax(0,1.8fr) .9fr .9fr .8fr; gap:10px; padding:8px 12px; align-items:center; }
  .ins-tree .ins-th { background:var(--hair); color:var(--sec); font-size:11.5px; position:sticky; top:0; cursor:default; }
  .ins-tree .ins-tr { border-top:1px solid var(--hair); cursor:pointer; }
  .ins-tree .ins-tr:hover { background:var(--orange-pale); }
  .ins-tree .ins-tr.g { background:var(--chipbg); color:var(--sec); font-weight:600; font-size:12px; cursor:default; }
  .ins-tree .ins-tr.sel { background:var(--orange-tint); }
  .ins-tree .ind { padding-left:14px; min-width:0; } .ins-tree .ind small { display:block; color:var(--muted); font-size:11.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ins-fmts { display:flex; gap:18px; flex-wrap:wrap; padding-top:7px; } .ins-fmts label { display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
  .ins-prev-empty { border:1px dashed var(--edge); border-radius:10px; padding:14px; color:var(--sec); font-size:13px; background:var(--chipbg); }
  .ins-prev-run { display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-size:13px; color:var(--body); }
  .ins-prev-meta { font-family:'Geist Mono',monospace; font-size:11px; color:var(--muted); margin-bottom:6px; }
  .ins-frame { height:620px; }
  .ins-page [hidden], .feed-card [hidden] { display:none !important; }

/* ═════════ Card designer v2.79 ═════════ */
  .ins-design-box { border:1px dashed var(--edge); border-radius:10px; padding:12px 14px; background:var(--chipbg); font-size:13px; color:var(--body); display:flex; flex-direction:column; gap:8px; }
  .ins-design-box.on { border-style:solid; border-color:#BFE3CD; background:#F2FAF5; }
  .ins-design-acts { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .ins-design-acts a { color:var(--orange-dk); cursor:pointer; font-size:12.5px; }
  .dsn-pick { display:flex; flex-direction:column; gap:6px; margin-top:4px; }
  .dsn-pb { display:flex; gap:10px; align-items:flex-start; border:1px solid var(--line); border-radius:9px; padding:9px 11px; background:#fff; cursor:pointer; }
  .dsn-pb span { display:flex; flex-direction:column; } .dsn-pb small { color:var(--muted); font-size:12px; }
  .dsn-pb:has(input:checked) { border-color:var(--orange-lt); background:var(--orange-pale); }
  .dsn .ins-ehead .ins-muted { font-size:13px; }
  .dsn-grid { display:grid; grid-template-columns:340px minmax(0,1fr); gap:20px; align-items:start; }
  @media (max-width:1000px) { .dsn-grid { grid-template-columns:minmax(0,1fr); } }
  .dsn-chat { position:sticky; top:0; display:flex; flex-direction:column; gap:8px; border:1px solid var(--line); border-radius:12px; padding:12px; background:#fff; max-height:calc(100vh - 210px); }
  .dsn-msgs { display:flex; flex-direction:column; gap:8px; overflow-y:auto; min-height:120px; }
  .dsn-msg { font-size:13px; line-height:1.45; padding:8px 10px; border-radius:10px; background:var(--hair); color:var(--body); white-space:pre-wrap; }
  .dsn-msg.user { background:var(--orange-tint); color:var(--ink); align-self:flex-end; max-width:92%; }
  .dsn-msg.system { background:#E6F4EC; color:#1F7A48; }
  .dsn-who { font-size:11px; color:var(--muted); margin-bottom:2px; }
  .dsn-compose { display:flex; flex-direction:column; gap:6px; border-top:1px solid var(--hair); padding-top:8px; }
  .dsn-compose textarea { border:1px solid var(--edge); border-radius:8px; padding:8px 10px; font:inherit; font-size:13px; resize:vertical; }
  .dsn-compose button { align-self:flex-end; }
  .dsn-main { min-width:0; display:flex; flex-direction:column; gap:10px; }
  .dsn-tabs { margin-left:0; align-self:flex-start; }
  .dsn-pane { min-width:0; }
  .dsn-pane h4 { margin:14px 0 6px; font-size:13.5px; }
  .dsn-frame { height:calc(100vh - 250px); min-height:520px; }
  .dsn-chal { border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:8px; font-size:13px; display:flex; flex-direction:column; gap:5px; }
  .dsn-chal.high { border-color:var(--orange-lt); background:var(--orange-pale); }
  .dsn-chal a { color:var(--orange-dk); cursor:pointer; font-size:12.5px; font-weight:600; align-self:flex-start; }
  .dsn-tbl { border-collapse:collapse; width:100%; font-size:12.5px; }
  .dsn-tbl th { text-align:left; color:var(--muted); font-weight:500; font-size:11.5px; border-bottom:1px solid var(--line); padding:5px 8px; }
  .dsn-tbl td { border-bottom:1px solid var(--hair); padding:6px 8px; vertical-align:top; }
  .dsn-tbl tr.cur td { background:var(--orange-pale); } .dsn-tbl a { color:var(--orange-dk); cursor:pointer; }
  .dsn-errs { margin:4px 0; padding-left:18px; font-size:12.5px; color:var(--red); } .dsn-errs.warn { color:#B7791F; }
  .dsn-mermaid { border:1px solid var(--line); border-radius:10px; padding:12px; background:#fff; overflow-x:auto; }
  .dsn-mermaid pre { font-size:11.5px; margin:0; white-space:pre-wrap; color:var(--sec); }
  .dsn-mermaid svg { max-width:100%; height:auto; }
  .dsn-dl { display:grid; grid-template-columns:150px minmax(0,1fr); gap:6px 14px; font-size:13px; margin-top:12px; }
  .dsn-dl dt { color:var(--sec); } .dsn-dl dd { margin:0; }
  .dsn-try { border:1px solid var(--line); border-radius:10px; padding:12px 14px; background:#fff; font-size:13px; display:flex; flex-direction:column; gap:8px; }
  .dsn-try select { border:1px solid var(--edge); border-radius:8px; padding:6px 10px; font:inherit; font-size:13px; max-width:340px; }
  .dsn-try label { display:inline-flex; gap:6px; align-items:center; }
  .ins-missing { outline:2px solid var(--red) !important; outline-offset:2px; border-radius:8px; }

/* ═════════ Preview tabs v2.81 ═════════ */
  .pv { border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden; box-shadow:0 2px 12px rgba(27,29,49,.05); }
  .pv-tabs { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); background:var(--chipbg); border-bottom:1px solid var(--line); }
  .pv-tab { display:flex; align-items:center; gap:10px; padding:11px 14px; border:none; border-right:1px solid var(--line2); background:transparent; font:inherit; text-align:left; cursor:pointer; position:relative; min-width:0; }
  .pv-tab:last-child { border-right:none; }
  .pv-tab:hover { background:#fff; }
  .pv-tab.on { background:#fff; }
  .pv-tab.on::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:var(--orange); }
  .pv-tab:focus-visible { outline:2px solid var(--orange); outline-offset:-2px; }
  .pv-tl { display:flex; flex-direction:column; min-width:0; }
  .pv-tl b { font-size:13px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pv-tl small { font-size:11.5px; color:var(--muted); display:inline-flex; align-items:center; gap:5px; white-space:nowrap; font-variant-numeric:tabular-nums; }
  .pv-ico { width:30px; height:30px; flex:none; border-radius:8px; background:var(--hair); color:var(--sec); display:inline-flex; align-items:center; justify-content:center; font-size:15px; }
  .pv-tab.on .pv-ico { background:var(--orange-tint); color:var(--orange-dk); }
  .pv-ico.big { width:56px; height:56px; border-radius:14px; font-size:26px; background:var(--orange-tint); color:var(--orange-dk); }
  .pv-ico.big.bad { background:var(--orange-tint); color:var(--red); font-weight:700; }
  .pv-dot { width:7px; height:7px; border-radius:50%; display:inline-block; background:var(--faint); }
  .pv-dot.ok { background:#1F7A48; } .pv-dot.warn { background:#D97706; } .pv-dot.bad { background:var(--red); }
  .pv-dot.run { background:var(--orange); animation:insPulse 1.2s ease-in-out infinite; }
  .pv-body { padding:16px 18px 18px; min-height:220px; }
  .pv-empty, .pv-building { display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; padding:34px 16px; }
  .pv-etitle, .pv-btitle { font-size:15.5px; font-weight:600; color:var(--ink); }
  .pv-etext { color:var(--sec); font-size:13px; max-width:56ch; line-height:1.5; }
  .pv-bar { width:min(420px, 100%); height:8px; border-radius:99px; background:var(--hair); overflow:hidden; }
  .pv-bar-fill { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--orange), #F7895F); transition:width 1s linear; }
  @media (prefers-reduced-motion: reduce) { .pv-bar-fill { transition:none; } .pv-dot.run { animation:none; } }
  .pv-bmeta { font-size:12.5px; color:var(--sec); font-variant-numeric:tabular-nums; }
  .pv-bdetail { font-size:12px; color:var(--muted); max-width:60ch; }
  .pv-built { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:12.5px; color:var(--sec); margin-bottom:12px; }
  .pv-built .sp { flex:1; }
  .pv-act { color:var(--orange-dk); font-weight:600; cursor:pointer; text-decoration:none; font-size:12.5px; }
  .pv-foot { border-top:1px solid var(--line2); padding:10px 18px; font-size:12.5px; color:var(--sec); background:var(--chipbg); }
  .pv-foot a { color:var(--orange-dk); font-weight:600; cursor:pointer; }
  .pv-stage { display:flex; align-items:center; gap:10px; justify-content:center; background:#F3F4F7; border-radius:12px; padding:16px 10px; }
  .pv-stage img { max-width:100%; max-height:520px; border-radius:6px; box-shadow:0 6px 24px rgba(27,29,49,.18); background:#fff; min-width:0; }
  .pv-stage.doc img { max-height:640px; }
  .pv-nav { width:36px; height:36px; flex:none; border-radius:50%; border:1px solid var(--line); background:#fff; font-size:20px; line-height:1; cursor:pointer; color:var(--ink); }
  .pv-nav:disabled { opacity:.35; cursor:default; }
  .pv-count { text-align:center; font-size:12px; color:var(--muted); margin:8px 0; font-variant-numeric:tabular-nums; }
  .pv-strip { display:flex; gap:8px; overflow-x:auto; padding:4px 2px 8px; }
  .pv-thumb { flex:none; border:2px solid transparent; border-radius:8px; padding:0; background:#fff; cursor:pointer; position:relative; }
  .pv-thumb img { width:120px; display:block; border-radius:6px; border:1px solid var(--line); }
  .pv-stage.doc ~ .pv-strip .pv-thumb img { width:80px; }
  .pv-thumb span { position:absolute; left:4px; bottom:4px; font-size:10px; background:rgba(19,27,47,.75); color:#fff; border-radius:4px; padding:0 5px; }
  .pv-thumb.on { border-color:var(--orange); }
  .pv-sheettabs { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:10px; }
  .pv-sheettabs button { border:1px solid var(--line); background:var(--chipbg); border-radius:8px 8px 0 0; font:inherit; font-size:12px; padding:5px 12px; cursor:pointer; color:var(--sec); }
  .pv-sheettabs button.on { background:#1F7A48; border-color:#1F7A48; color:#fff; }
  .pv-grid { overflow:auto; max-height:520px; border:1px solid var(--line); border-radius:8px; }
  .pv-grid table { border-collapse:collapse; font-size:12.5px; font-variant-numeric:tabular-nums; min-width:100%; }
  .pv-grid th { position:sticky; top:0; background:#F2F7F4; text-align:left; font-weight:600; padding:6px 10px; border-bottom:1px solid var(--line); white-space:nowrap; }
  .pv-grid td { padding:5px 10px; border-bottom:1px solid var(--hair); white-space:nowrap; }
  .pv-grid .n { text-align:right; }
  .pv-feed { background:#F3F4F7; border-radius:12px; padding:18px; display:flex; flex-direction:column; gap:10px; }
  .pv-feed-cap { font-size:12px; color:var(--sec); }
  .pv-cardmock { max-width:760px; width:100%; margin:0 auto; }
  .pv-cardmock .fc-actions button, .pv-cardmock .fc-open, .pv-cardmock .fc-src-dl { pointer-events:none; }

/* ═════════ Design an insight — the front door v2.82 ═════════ */
  .dst-hero { display:flex; gap:16px; align-items:flex-start; background:linear-gradient(135deg, #131B2F, #26304D); color:#fff; border-radius:14px; padding:20px 22px; }
  .dst-hero h2 { margin:0 0 4px; font-size:21px; font-weight:600; letter-spacing:-.015em; }
  .dst-hero p { margin:0; color:rgba(255,255,255,.78); font-size:13.5px; line-height:1.5; max-width:78ch; }
  .dst-step-ico { width:44px; height:44px; flex:none; border-radius:12px; background:var(--orange); color:#fff; display:flex; align-items:center; justify-content:center; font-size:20px; }
  .dst-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:22px; align-items:start; }
  @media (max-width:1000px) { .dst-grid { grid-template-columns:minmax(0,1fr); } }
  .dst-main { display:flex; flex-direction:column; gap:14px; min-width:0; }
  .dst-sec { display:flex; gap:14px; border:1px solid var(--line); border-radius:12px; background:#fff; padding:16px 18px; }
  .dst-n { width:26px; height:26px; flex:none; border-radius:50%; background:var(--orange-tint); color:var(--orange-dk); font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center; }
  .dst-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:10px; }
  .dst-body h3 { margin:2px 0 0; font-size:15px; font-weight:600; } .dst-body h3 small { color:var(--muted); font-weight:400; font-size:12px; margin-left:6px; }
  .dst-srcs { display:flex; flex-direction:column; gap:4px; max-height:300px; overflow-y:auto; padding-right:4px; }
  .dst-group { font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.12em; color:var(--muted); text-transform:uppercase; margin:6px 0 2px; }
  .dst-src { display:flex; gap:10px; align-items:center; text-align:left; border:1px solid var(--line2); border-radius:9px; background:#fff; padding:8px 11px; font:inherit; cursor:pointer; }
  .dst-src:hover { border-color:var(--edge); background:var(--chipbg); }
  .dst-src.on { border-color:var(--orange); background:var(--orange-pale); }
  .dst-radio { width:14px; height:14px; flex:none; border-radius:50%; border:2px solid var(--edge); }
  .dst-src.on .dst-radio { border-color:var(--orange); box-shadow:inset 0 0 0 3px #fff; background:var(--orange); }
  .dst-src-t { display:flex; flex-direction:column; min-width:0; } .dst-src-t b { font-size:13px; font-weight:600; }
  .dst-src-t small { color:var(--muted); font-size:11.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dst-body textarea, .dst-input { border:1px solid var(--edge); border-radius:8px; padding:9px 11px; font:inherit; font-size:13.5px; width:100%; resize:vertical; }
  .dst-input { max-width:460px; }
  .dst-pbs { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:8px; }
  .dst-pbl { grid-column:1/-1; font-size:12px; color:var(--sec); }
  .dst-pb { display:flex; flex-direction:column; gap:3px; text-align:left; border:1px solid var(--line); border-radius:10px; background:#fff; padding:10px 12px; font:inherit; cursor:pointer; }
  .dst-pb b { font-size:13px; } .dst-pb small { color:var(--muted); font-size:11.5px; line-height:1.4; }
  .dst-pb.on { border-color:var(--orange); background:var(--orange-pale); box-shadow:0 0 0 1px var(--orange) inset; }
  .dst-go { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:4px 0 10px; }
  .dst-start { padding:11px 20px; font-size:14px; }
  .dst-start:disabled { opacity:.45; cursor:default; }
  .dst-side { display:flex; flex-direction:column; gap:12px; position:sticky; top:0; }
  .dst-card { border:1px solid var(--line); border-radius:12px; background:#fff; padding:14px 16px; font-size:13px; }
  .dst-card.rec { border-color:var(--orange-lt); background:var(--orange-pale); }
  .dst-card ul { margin:8px 0; padding-left:18px; color:var(--body); line-height:1.5; } .dst-card li { margin:2px 0; }
  .dst-card a { color:var(--orange-dk); font-weight:600; cursor:pointer; font-size:12.5px; }
  /* v2.84.2 Design an insight in three steps (Shawn's Designer review, 2026-10-12): the step bar, source tiles that
     reveal the list and its profile, then the question; step 3 Publish & schedule */
  .dst, .dsn { gap:14px; }
  .dst-sub { margin-top:3px; font-size:13px; }
  .dst-quick { color:var(--orange-dk); font-weight:600; font-size:13px; cursor:pointer; margin-right:6px; }
  .dsn-steps { flex-shrink:0; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
  .dsn-step { display:flex; gap:12px; align-items:center; text-align:left; border:none; border-right:1px solid var(--line2); background:#fff; padding:13px 16px; font:inherit; cursor:pointer; position:relative; }
  .dsn-step:last-child { border-right:none; }
  .dsn-step:disabled { cursor:default; }
  .dsn-step:not(:disabled):hover { background:var(--chipbg); }
  .dsn-step.on::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--orange); }
  .dsn-step-n { width:28px; height:28px; flex:none; border-radius:50%; border:1px solid var(--edge); color:var(--sec); font-weight:600; font-size:13px; display:flex; align-items:center; justify-content:center; }
  .dsn-step.on .dsn-step-n { background:var(--orange); border-color:var(--orange); color:#fff; }   /* v2.88.2 one colour for where you are */
  .dsn-step.done .dsn-step-n { background:#E6F4EC; border-color:#BFE3CD; color:#1F7A48; }
  .dsn-step-t { display:flex; flex-direction:column; min-width:0; }
  .dsn-step-t b { font-size:13.5px; font-weight:600; color:var(--ink); }
  .dsn-step-t small { font-size:11.5px; color:var(--muted); line-height:1.35; }
  .dsn-step:disabled .dsn-step-t b { color:var(--sec); }
  .dst-card h3 { margin:0 0 10px; font-size:15px; font-weight:600; } .dst-card h3 small { color:var(--muted); font-weight:400; font-size:12px; margin-left:6px; }
  .dst-tiles { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; }
  .dst-foot { position:sticky; bottom:0; z-index:5; display:flex; align-items:center; gap:14px; padding:12px 16px; margin-top:4px;
              background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 -6px 18px rgba(27,29,49,.06); }
  .dst-foot-t { flex:1; min-width:0; font-size:13px; color:var(--sec); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dst-foot-t b { color:var(--ink); }
  .dst-tablewrap { max-height:340px; overflow-y:auto; }
  .dst-tablewrap thead th { position:sticky; top:0; z-index:1; }
  .dst-badge.k-sql, .dst-badge.k-dataset { background:var(--orange); }
  .dst-tile { display:flex; flex-direction:column; gap:6px; text-align:left; border:1px solid var(--line); border-radius:11px; background:#fff; padding:13px 14px; font:inherit; cursor:pointer; }
  .dst-tile:hover { border-color:var(--edge); background:var(--chipbg); }
  .dst-tile.on { border:2px solid #131B2F; padding:12px 13px; }
  .dst-tile b { font-size:13.5px; } .dst-tile b small { color:var(--muted); font-weight:400; font-size:12px; margin-left:4px; }
  .dst-tile > span:last-child { font-size:12px; color:var(--sec); line-height:1.4; }
  .dst-badge { width:38px; height:28px; border-radius:7px; background:#131B2F; color:#fff; font:600 10.5px/28px 'Geist Mono',monospace; text-align:center; letter-spacing:.04em; }
 .dst-badge.k-upload { background:var(--teal); font-size:15px; }
  .dst-lower { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:14px; align-items:start; }
  .dst-right { display:flex; flex-direction:column; gap:14px; }
  .dst-pick { padding:0; overflow:hidden; }
  .dst-pick-h { display:flex; align-items:center; gap:12px; padding:14px 16px 10px; } .dst-pick-h h3 { margin:0; flex:1; }
  .dst-pick-h .ins-search { max-width:240px; }
  .dst-table { width:100%; border-collapse:collapse; font-size:13px; }
  .dst-table th { text-align:left; font-size:11.5px; font-weight:500; color:var(--sec); background:var(--chipbg); padding:7px 12px; border-top:1px solid var(--line2); border-bottom:1px solid var(--line2); }
  .dst-table td { padding:9px 12px; border-bottom:1px solid var(--line3); vertical-align:top; }
  .dst-table td small { display:block; color:var(--muted); font-size:11.5px; margin-top:1px; }
  .dst-table td:first-child { width:28px; padding-right:0; padding-top:12px; }
  .dst-row { cursor:pointer; } .dst-row:hover { background:var(--chipbg); } .dst-row:focus-visible { outline:2px solid var(--orange); outline-offset:-2px; }
  .dst-row.on { background:#EEF4FF; }
  .dst-table .dst-radio { display:inline-block; box-sizing:border-box; }
  .dst .btn-primary:disabled, .dsn .btn-primary:disabled { opacity:.45; cursor:default; }
  .dst-row.on .dst-radio { border-color:#131B2F; background:#131B2F; box-shadow:inset 0 0 0 3px #fff; }
  .dst-drop { display:flex; flex-direction:column; align-items:center; gap:6px; margin:16px; padding:34px 20px; border:2px dashed var(--edge); border-radius:12px; text-align:center; cursor:pointer; color:var(--sec); font-size:12.5px; }
  .dst-drop b { color:var(--ink); font-size:14px; } .dst-drop input { display:none; }
  .dst-drop.over { border-color:var(--orange); background:var(--orange-pale); } .dst-drop.busy { opacity:.6; pointer-events:none; }
  .dst-dl { display:grid; grid-template-columns:84px minmax(0,1fr); gap:6px 10px; margin:0; font-size:13px; }
  .dst-dl dt { color:var(--sec); } .dst-dl dd { margin:0; color:var(--ink); overflow-wrap:anywhere; }
  .dst-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
  .dst-chip { font-size:11.5px; padding:3px 8px; border-radius:6px; background:var(--chipbg); border:1px solid var(--line2); color:var(--body); }
  .dst-chip.m { background:#EEF4FF; border-color:#D6E2FB; } .dst-chip.more { color:var(--muted); }
  .dst-ok { margin-top:12px; padding:9px 11px; border-radius:9px; background:#E6F4EC; border:1px solid #BFE3CD; color:#1F7A48; font-size:12.5px; }
  .dst-next p { margin:0 0 8px; line-height:1.5; color:var(--body); }
  .dst-ask textarea { border:1px solid var(--edge); border-radius:8px; padding:9px 11px; font:inherit; font-size:13.5px; width:100%; resize:vertical; margin-bottom:10px; }
  .dst-name { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--sec); margin-top:12px; }
  /* v2.85 "Make this a signal", and a signal insight's panel in step 3 */
  .dst-sig { display:block; margin:-2px 0 10px; padding:8px 11px; border:1px solid var(--edge); border-left:3px solid #D97706; border-radius:8px; font-size:12.5px; line-height:1.45; }
  .dst-sig b { color:var(--ink, inherit); }
  .dsn-signal .dsn-field select, .dsn-signal .dsn-field input { font:inherit; padding:4px 6px; border:1px solid var(--edge); border-radius:6px; }
  .dsn-sig-runs { width:100%; border-collapse:collapse; margin-top:8px; font-size:12px; }
  .dsn-sig-runs th, .dsn-sig-runs td { text-align:left; padding:4px 6px; border-top:1px solid var(--edge); }
  .dsn-sig-runs th { color:var(--sec); font-weight:600; }
  @media (max-width:1250px) { .dst-tiles { grid-template-columns:repeat(3, minmax(0,1fr)); } }
  @media (max-width:1100px) { .dst-tiles { grid-template-columns:repeat(2, minmax(0,1fr)); } .dst-lower { grid-template-columns:minmax(0,1fr); } }
  @media (max-width:700px) { .dsn-steps { grid-template-columns:minmax(0,1fr); } .dsn-step { border-right:none; border-bottom:1px solid var(--line2); } }
  .dsn-pub { flex-shrink:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; align-items:start; }
  .dsn-pub .dst-card:first-child { grid-row:span 2; }
  .dsn-out { display:flex; align-items:baseline; gap:8px; padding:7px 0; border-bottom:1px solid var(--line3); font-size:13px; }
  .dsn-out:last-child { border-bottom:none; } .dsn-out .ins-muted { font-size:12px; }
  .dsn-field { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:6px 0 10px; font-size:13px; color:var(--sec); }
  .dsn-field select, .dsn-field input[type=time] { border:1px solid var(--edge); border-radius:8px; padding:6px 9px; font:inherit; color:var(--ink); }
  .dsn-field label { color:var(--ink); display:inline-flex; gap:6px; align-items:center; }
  .dsn-days { display:inline-flex; gap:4px; }
  .dsn-days button { width:28px; height:28px; border-radius:7px; border:1px solid var(--edge); background:#fff; font:inherit; font-size:12px; cursor:pointer; color:var(--sec); }
  .dsn-days button.on { background:#131B2F; border-color:#131B2F; color:#fff; }
  .dsn-pub-go { grid-column:1/-1; display:flex; align-items:center; gap:12px; padding:4px 0 10px; }
  @media (max-width:900px) { .dsn-pub { grid-template-columns:minmax(0,1fr); } .dsn-pub .dst-card:first-child { grid-row:auto; } }
  /* v2.87 the designer after the 10-13 review and Case's v5: the step bar says what was picked and the next step is the
     way forward; one source explorer (folders, search, a type filter); the outputs as tabs in the preview with the Home
     card first; the ready-to-publish list */
  .dsn-step-t small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .dst-badge.sm { width:auto; min-width:34px; height:20px; padding:0 5px; border-radius:4px; font-size:9.5px; line-height:20px; flex:none; display:inline-block; }
  .dsx { padding:0; overflow:visible; }
  .dsx-h { padding:14px 16px 0; } .dsx-h h3 { margin:0 0 10px; }
  .dsx-grid { display:grid; grid-template-columns:220px minmax(0,1fr); border-top:1px solid var(--line2); }
  .dsx-tree { border-right:1px solid var(--line2); padding:8px 6px; display:flex; flex-direction:column; gap:1px; max-height:520px; overflow-y:auto; }
  .dsx-tl { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); padding:4px 8px 6px; }
  .dsx-node { display:flex; align-items:center; gap:6px; min-height:30px; padding-right:8px; border-radius:6px; cursor:pointer; font-size:13px; color:var(--body); border:1px solid transparent; }
  .dsx-node:hover { background:var(--chipbg); } .dsx-node:focus-visible { outline:2px solid var(--orange); outline-offset:-2px; }
  .dsx-node.on { background:#F3F5F9; border-color:var(--line2); color:var(--ink); font-weight:600; }
  .dsx-chev { width:14px; flex:none; text-align:center; font-size:10px; color:var(--muted); transition:transform .15s; }
  .dsx-chev.none { visibility:hidden; } .dsx-chev.shut { transform:rotate(-90deg); }
  .dsx-ico { flex:none; display:inline-flex; color:var(--sec); }
  .dsx-nl { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dsx-nc { font-size:11.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .dsx-up { margin-top:8px; text-align:left; border:1px dashed var(--edge); background:#fff; border-radius:8px; padding:7px 10px; font:inherit; font-size:12.5px; color:var(--sec); cursor:pointer; }
  .dsx-up:hover { border-color:var(--orange); color:var(--orange-dk); } .dsx-up span { font-weight:700; margin-right:4px; }
  .dsx-main { min-width:0; display:flex; flex-direction:column; }
  .dsx-main .dst-drop { margin:12px 12px 0; padding:22px 16px; }
  .dsx-bar { display:flex; gap:8px; align-items:center; padding:12px; }
  .dsx-q { flex:1; max-width:none !important; }
  .dsx-type { position:relative; }
  .dsx-typebtn { height:34px; padding:0 12px; border:1px solid var(--edge); border-radius:8px; background:#fff; font:inherit; font-size:13px; font-weight:600; color:var(--body); cursor:pointer; white-space:nowrap; }
  .dsx-typebtn.on { border-color:var(--orange); background:var(--orange-pale); color:var(--orange-dk); }
  .dsx-menu { position:absolute; right:0; top:40px; z-index:20; width:260px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 10px 30px rgba(27,29,49,.14); padding:6px; }
  .dsx-menu label { display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:6px; font-size:13px; cursor:pointer; }
  .dsx-menu label:hover { background:var(--chipbg); } .dsx-menu label > span:nth-of-type(2) { flex:1; }
  .dsx-menu label.off { opacity:.55; } .dsx-menu small { color:var(--muted); }
  .dsx-menu-a { display:flex; justify-content:space-between; padding:6px 8px 2px; border-top:1px solid var(--line3); margin-top:4px; font-size:12.5px; }
  .dsx-menu-a a { cursor:pointer; color:var(--orange-dk); font-weight:600; }
  .dsx-crumbs { padding:0 12px 8px; font-size:12.5px; color:var(--sec); } .dsx-crumbs a { cursor:pointer; color:var(--sec); } .dsx-crumbs a:hover { color:var(--orange-dk); }
  .dsx-table td:first-child { width:auto; padding-right:12px; padding-top:9px; }
  .dsx-table td { vertical-align:middle; }
  .dsx-name { display:flex; align-items:center; gap:10px; min-width:0; } .dsx-name > span:last-child { min-width:0; }
  .dsx-folder { cursor:pointer; background:#FAFBFC; } .dsx-folder:hover { background:var(--chipbg); } .dsx-folder td { color:var(--sec); }
  .dsx-folder b { color:var(--ink); font-weight:500; }
  .dst-row.off { opacity:.5; cursor:not-allowed; } .dst-row.off:hover { background:none; }
  .dsx-sel { margin:12px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; font-size:13px; }
  .dsx-sel-l { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
  .dsx-sel-h { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; }
  .dsx-sel-h b { font-size:14px; } .dsx-sel-line { color:var(--sec); font-size:12.5px; flex:1 1 280px; }
  .dsx-sel .dst-ok { margin-top:0; padding:3px 9px; } .dsx-sel .dst-chips { margin-top:10px; }
  .dst-pbl small { color:var(--muted); font-weight:400; margin-left:6px; }
  /* v2.91 Data → Question → Preview → Publish (Brad 10-15, Option B): the question gets its own screen, the file a full profile */
  .dsn-steps.four { grid-template-columns:repeat(4, minmax(0,1fr)); }
  .dst-askcard { padding:0; }
  .dst-from { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:12px 18px; border-bottom:1px solid var(--line); }
  .dst-from-l { font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
  .dst-from b { font-size:14px; color:var(--ink); } .dst-from-m { font-size:12.5px; color:var(--sec); }
  .dst-ask { padding:18px; display:flex; flex-direction:column; gap:12px; }
  .dst-ask-h { margin:0; font-size:19px; font-weight:600; color:var(--ink); letter-spacing:-.01em; }
  .dst-ask textarea#dstPrompt { min-height:96px; font-size:15px; line-height:1.5; border:1.5px solid var(--edge); border-radius:11px; padding:12px 14px; margin:0; }
  .dst-ask textarea#dstPrompt:focus { border-color:var(--orange); outline:none; box-shadow:0 0 0 3px var(--orange-tint); }
  .dst-tries { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
  .dst-tries-l { font-size:12.5px; color:var(--muted); min-width:72px; }
  .dst-try { font:inherit; font-size:13px; color:var(--body); background:var(--chipbg); border:1px solid var(--line); border-radius:99px; padding:6px 12px; cursor:pointer; text-align:left; }
  .dst-try:hover { border-color:var(--orange); color:var(--ink); }
  .dst-try small { color:var(--muted); font-size:11.5px; margin-left:6px; }
  .dst-try.tpl { border-style:dashed; } .dst-try.tpl.on { border-style:solid; border-color:var(--orange); background:var(--orange-pale); color:var(--ink); }
  .dst-layout { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--ink); background:var(--orange-pale); border:1px solid var(--orange-tint); border-radius:99px; padding:4px 6px 4px 11px; }
  .dst-layout button { font:inherit; border:0; background:none; color:var(--sec); cursor:pointer; font-size:13px; line-height:1; padding:2px 5px; }
  .dst-hint { font-size:12px; color:var(--muted); line-height:1.5; }
  .dst-ask .dst-name { margin-top:0; }
  .dst-askfoot { display:flex; flex-wrap:wrap; align-items:center; gap:10px 12px; padding-top:4px; }
  .dst-std { color:var(--orange-dk); font-weight:600; font-size:13px; cursor:pointer; }
  .dst-from .sp, .dst-askfoot .sp { flex:1; }
  .dsx-more { margin-top:10px; font:inherit; font-size:12.5px; font-weight:600; color:var(--orange-dk); background:none; border:0; padding:0; cursor:pointer; }
  .dpf { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 18px; margin-top:12px; }
  .dpf-sec { min-width:0; } .dpf-sec h4 { margin:0 0 6px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .dpf-sec h4 small { font-weight:500; margin-left:4px; }
  .dpf > .dpf-sec:nth-child(4), .dpf > .dpf-sec:nth-child(5), .dpf > .dpf-sec:nth-child(6), .dpf > .dst-hint { grid-column:1/-1; }
  .dpf-kv { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:4px 12px; margin:0; font-size:12.5px; }
  .dpf-kv dt { color:var(--muted); } .dpf-kv dd { margin:0; color:var(--body); overflow-wrap:anywhere; }
  .dpf-t { width:100%; border-collapse:collapse; font-size:12.5px; }
  .dpf-t th { text-align:left; font-size:11px; font-weight:600; color:var(--muted); padding:5px 8px; border-bottom:1px solid var(--line); white-space:nowrap; }
  .dpf-t td { padding:6px 8px; border-bottom:1px solid var(--line3); vertical-align:top; }
  .dpf-t td small { display:block; color:var(--muted); font-size:11.5px; }
  .dpf-t tr.on td { background:var(--orange-pale); }
  .dpf-ex { color:var(--sec); }
  .dpf-warn { margin:0; padding-left:18px; font-size:12.5px; color:var(--body); } .dpf-warn li { margin:2px 0; }
  @media (max-width:900px) { .dsn-steps.four { grid-template-columns:repeat(2, minmax(0,1fr)); } .dpf { grid-template-columns:minmax(0,1fr); } }
  @media (max-width:700px) { .dsn-steps.four { grid-template-columns:minmax(0,1fr); } }
  .dsn-q, .dsn-asof { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline; font-size:13px; color:var(--body); }
  .dsn-q a { color:var(--orange-dk); font-weight:600; cursor:pointer; font-size:12.5px; }
  .dsn-asof { margin-top:-6px; padding:7px 11px; border-radius:8px; background:#F5F7FA; border:1px solid var(--line2); font-size:12.5px; color:var(--sec); }
  .dsn-asof b { color:var(--ink); }
  .dsn-outs { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
  .dsn-outb { display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 12px; border:1px solid var(--line); border-radius:8px; background:#fff; font:inherit; font-size:13px; font-weight:600; color:var(--body); cursor:pointer; }
  .dsn-outb.on { border-color:#131B2F; box-shadow:inset 0 0 0 1px #131B2F; color:var(--ink); }
  .dsn-outb.off { opacity:.5; cursor:not-allowed; } .dsn-outb small { font-weight:400; color:var(--muted); }
  .dsn-outdot { width:8px; height:8px; border-radius:50%; border:1.5px solid var(--edge); } .dsn-outdot.in { background:#1F7A48; border-color:#1F7A48; }
  .dsn-home { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; align-items:start; }
  @media (max-width:1250px) { .dsn-home { grid-template-columns:minmax(0,1fr); } }
  .dsn-hc { border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:#fff; box-shadow:0 1px 2px rgba(27,29,49,.05); }
  .dsn-hc-t { font-size:15.5px; font-weight:600; color:var(--ink); line-height:1.35; }
  .dsn-hc-b { margin-top:6px; font-size:13px; color:var(--body); line-height:1.5; }
  .dsn-hc-k { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; margin-top:12px; }
  .dsn-hc-k div { border:1px solid var(--line2); border-radius:8px; padding:7px 9px; } .dsn-hc-k b { display:block; font-size:15px; font-variant-numeric:tabular-nums; }
  .dsn-hc-k span { font-size:11.5px; color:var(--muted); }
  .dsn-hc-d { margin-top:12px; padding-top:10px; border-top:1px dashed var(--line); font-size:13px; }
  .dsn-hc-dl { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .dsn-hc-d ul { margin:6px 0 0; padding-left:18px; line-height:1.5; } .dsn-hc-d li::marker { color:var(--orange); }
  .dsn-chg { margin-left:6px; font-size:11.5px; font-weight:600; color:var(--orange-dk); cursor:pointer; text-transform:none; letter-spacing:0; white-space:nowrap; }
  .dsn-hp h4 { margin:0 0 6px; font-size:13.5px; } .dsn-hp h4 small { font-weight:400; color:var(--muted); font-size:12px; margin-left:4px; }
  .dsn-hp textarea { width:100%; box-sizing:border-box; border:1px solid var(--edge); border-radius:8px; padding:8px 10px; font:inherit; font-size:13px; resize:vertical; margin-bottom:12px; }
  .dsn-hp-a { display:flex; align-items:center; gap:14px; margin:-4px 0 10px; font-size:12.5px; } .dsn-hp-a a { cursor:pointer; color:var(--sec); }
  .dsn-hp-ok { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; padding:9px 11px; border-radius:9px; border:1px solid #F0D9A8; background:#FBF1DC; font-size:13px; }
  .dsn-hp-ok.ok { border-color:#BFE3CD; background:#E6F4EC; color:#1F7A48; }
  .dsn-hp-ok label { display:inline-flex; gap:7px; align-items:center; font-weight:600; color:var(--ink); cursor:pointer; }
  .dsn-inc { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; margin:0 0 8px; font-size:13px; }
  .dsn-inc label { display:inline-flex; gap:6px; align-items:center; font-weight:600; } .dsn-inc a { color:var(--orange-dk); font-weight:600; }
  .dsn-parts { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:10px; font-size:12.5px; }
  .dsn-part { border:1px solid var(--line); background:#fff; border-radius:999px; padding:3px 10px; font:inherit; font-size:12px; cursor:pointer; color:var(--body); }
  .dsn-part:hover { border-color:var(--orange); color:var(--orange-dk); }
  .dsn-ready { display:flex; flex-direction:column; gap:7px; }
  .dsn-rdy { display:flex; gap:9px; align-items:center; font-size:13px; color:#B4531B; } .dsn-rdy.ok { color:var(--ink); }
  .dsn-rdy a { cursor:pointer; color:var(--orange-dk); font-weight:600; }
  .dsn-rdy-d { width:20px; height:20px; flex:none; border-radius:50%; border:1.5px dashed #F0B37E; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
  .dsn-rdy.ok .dsn-rdy-d { border:none; background:#1F7A48; color:#fff; }
  .dsn-rdy-outs { margin-top:6px; padding-top:8px; border-top:1px solid var(--line3); font-size:12.5px; color:var(--sec); } .dsn-rdy-outs a { cursor:pointer; color:var(--orange-dk); font-weight:600; }
  .dsn-presets { display:inline-flex; gap:4px; margin-left:6px; }
  .dsn-presets button { height:28px; padding:0 10px; border-radius:7px; border:1px solid var(--edge); background:#fff; font:inherit; font-size:12px; cursor:pointer; color:var(--sec); }
  .dsn-presets button.on { border-color:#131B2F; color:var(--ink); font-weight:600; }
  .fc-hdet { margin:2px 0 10px; padding-left:18px; font-size:13px; line-height:1.5; color:var(--body); } .fc-hdet li::marker { color:var(--orange); }
  @media (max-width:900px) { .dsx-grid { grid-template-columns:minmax(0,1fr); } .dsx-tree { border-right:none; border-bottom:1px solid var(--line2); max-height:200px; } }
  .dst-tag { font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.12em; color:var(--orange-dk); margin-bottom:4px; }
  .ins-quickbar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:space-between; border:1px solid #F0D9A8; background:#FBF1DC; border-radius:10px; padding:10px 14px; font-size:13px; color:var(--body); }
  .ins-quickbar span { flex:1; min-width:260px; }
  .ins-alert.ok-note { background:#E6F4EC; border:1px solid #BFE3CD; }
  .ins-quick-new { font-size:13px; }

/* v2.88 the designer, simpler (Brad 2026-10-14) */
.dsn-outb { user-select:none; } .dsn-outb:focus-visible { outline:2px solid var(--orange); }
.dsn-outck { width:15px; height:15px; margin:0; cursor:pointer; accent-color:#1F7A48; }
.dsn-outck.always { display:inline-flex; align-items:center; justify-content:center; border-radius:3px; background:#1F7A48; color:#fff; font-size:10px; font-weight:700; cursor:default; }
.dsn-outb:not(.in) { color:var(--sec); }
.dsn-inc { justify-content:space-between; padding:8px 12px; border-radius:9px; background:var(--chipbg); border:1px solid var(--line); margin:8px 0 10px; font-weight:400; }
.dsn-inc.in { background:#E6F4EC; border-color:#BFE3CD; color:#1F5A3A; }
.dsn-inc span { display:inline-flex; flex-wrap:wrap; gap:4px 12px; align-items:center; } .dsn-inc a { cursor:pointer; }
.dsn-home { display:block; max-width:640px; }
.dsn-hp-a { margin:10px 0 0; } .dsn-hp-a a { color:var(--orange-dk) !important; font-weight:600; }
.dsn-hp { margin-top:10px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#fff; display:flex; flex-direction:column; gap:8px; }
.dsn-hp label { display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:600; color:var(--sec); }
.dsn-hp textarea { margin-bottom:0; }
.dsn-trust { margin-top:12px; font-size:12.5px; color:#1F5A3A; } .dsn-trust summary { cursor:pointer; list-style:none; }
.dsn-trust summary u, .dsn-chals summary u { color:var(--orange-dk); text-decoration:none; font-weight:600; margin-left:6px; }
.dsn-trust[open] { color:var(--body); } .dsn-trust[open] > summary { margin-bottom:8px; color:#1F5A3A; }
.dsn-chals summary { cursor:pointer; list-style:none; } .dsn-chals .dsn-chal { margin-top:8px; }
.dsn-what-q { font-size:13px; color:var(--sec); margin:-2px 0 10px; }
.dsn-what-o { display:flex; flex-wrap:wrap; gap:8px; align-items:center; } .dsn-what-o a { cursor:pointer; color:var(--orange-dk); font-weight:600; font-size:12.5px; margin-left:4px; }
.dsn-what-c { border:1px solid #BFE3CD; background:#E6F4EC; color:#1F5A3A; border-radius:99px; padding:4px 12px; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
.dsn-what-c:hover { border-color:#1F7A48; }
.dsn-field.need select { border-color:var(--red); box-shadow:0 0 0 2px var(--orange-tint); }
.dsn-need { color:var(--red); font-size:12.5px; font-weight:600; margin-left:8px; }
.dsn-chals .dsn-who { display:block; }
  /* v2.99 an alert's settings on its Home card (TR3's "Parameter Selections") */
  .fc-set:empty { display:none; }
  .as-box { border:1px solid var(--line); border-radius:10px; background:var(--bg2, #FAFAF8); padding:12px 14px; margin:8px 0 2px; display:flex; flex-direction:column; gap:8px; font-size:13px; }
  .as-h { font-weight:650; color:var(--ink); }
  .as-note { color:#9A6A00; background:#FBF1D9; border-radius:6px; padding:6px 10px; }
  .as-row { display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px; align-items:center; }
  .as-k { color:var(--sec); }
  .as-v { color:var(--ink); display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
  .as-v input[type=number], .as-v input[type=email], .as-v select { font:inherit; font-size:13px; padding:3px 6px; border:1px solid var(--line); border-radius:6px; background:#fff; }
  .as-scope summary { cursor:pointer; color:var(--ink); }
  .as-scope-l { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:2px 12px; margin-top:6px; max-height:180px; overflow:auto; }
  .as-pv { border-top:1px dashed var(--line2); padding-top:8px; color:var(--body); }
  .as-keys { font-size:12px; color:var(--sec); margin-top:3px; }
  .as-err { color:#B42318; }
  .as-go { display:flex; gap:8px; }
  @media (max-width:640px) { .as-row { grid-template-columns:1fr; gap:2px; } }

  /* ── Category board: reset scorecard ── */
  .rs-card { border:1px solid var(--line); border-radius:14px; background:#fff; padding:16px 18px; display:flex; flex-direction:column; gap:12px; }
  .rs-top { display:flex; gap:24px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; }
  .rs-kicker { font-family:'Geist Mono',monospace; font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
  .rs-name { font-size:18px; font-weight:600; color:var(--ink); margin:2px 0 4px; }
  .rs-sub { font-size:12.5px; color:var(--sec); line-height:1.5; max-width:760px; }
  .rs-set { min-width:250px; }
  .rs-set-lbl { font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; }
  .rs-dots { display:grid; grid-template-columns:repeat(19, 11px); gap:3px; }
  .rs-dots i, .rs-set-leg i { display:inline-block; width:11px; height:11px; border-radius:3px; }
  .rs-set-leg { display:flex; gap:12px; font-size:11.5px; color:var(--sec); margin-top:7px; }
  .rs-set-leg span { display:inline-flex; align-items:center; gap:5px; }
  .rs-dots i.ok, .rs-set-leg i.ok { background:#0E9F6E; }
  .rs-dots i.warn, .rs-set-leg i.warn { background:#E1A21B; }
  .rs-dots i.bad, .rs-set-leg i.bad { background:#D93838; }
  .rs-hd { font-size:13px; font-weight:600; color:var(--ink); border-top:1px solid var(--line2); padding-top:12px; }
  .rs-hd span { font-weight:400; color:var(--sec); margin-left:8px; font-size:12px; }
  .rs-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(215px, 1fr)); gap:10px; }
  .rs-hyp { text-align:left; border:1px solid var(--line); border-left-width:4px; border-radius:10px; background:#fff; padding:10px 12px; cursor:pointer; font-family:inherit; display:flex; flex-direction:column; gap:4px; transition:box-shadow .15s; }
  .rs-hyp:hover { box-shadow:0 4px 14px rgba(27,29,49,.08); }
  .rs-hyp.ok { border-left-color:#0E9F6E; } .rs-hyp.warn { border-left-color:#E1A21B; }
  .rs-hyp.bad { border-left-color:#D93838; } .rs-hyp.early { border-left-color:var(--faint); }
  .rs-hyp-top { display:flex; justify-content:space-between; align-items:center; }
  .rs-verdict { font-family:'Geist Mono',monospace; font-size:9.5px; letter-spacing:.07em; text-transform:uppercase; border-radius:99px; padding:2px 8px; }
  .rs-verdict.ok { background:#ECF8F3; color:#0B7A55; } .rs-verdict.warn { background:#FEF7EC; color:#B97509; }
  .rs-verdict.bad { background:#FEF6F6; color:#C22F2F; } .rs-verdict.early { background:var(--hair); color:var(--sec); }
  .rs-id { font-family:'Geist Mono',monospace; font-size:10px; color:var(--faint); }
  .rs-hyp-t { font-size:13px; font-weight:600; color:var(--ink); line-height:1.3; }
  .rs-hyp-n { display:flex; align-items:baseline; gap:8px; }
  .rs-hyp-n b { font-size:17px; font-weight:600; color:var(--ink); }
  .rs-hyp-n span { font-size:11.5px; color:var(--muted); }
  .rs-hyp-d { font-size:11.5px; color:var(--sec); line-height:1.4; }
  .rs-stage { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:var(--ink); margin-top:8px; padding-bottom:6px; border-bottom:1px solid var(--line2); }
  .rs-stage-dot { width:9px; height:9px; border-radius:99px; }
  .rs-stage-q { font-weight:400; color:var(--sec); font-size:12.5px; margin-left:4px; }
  .lane3.rs-flash { animation:rsFlash 1.6s ease-out; border-radius:10px; }
  @keyframes rsFlash { 0% { box-shadow:0 0 0 3px rgba(46,107,216,.45); } 100% { box-shadow:0 0 0 3px rgba(46,107,216,0); } }
  .rs-method { font-size:11.5px; color:var(--muted); font-style:italic; }
  /* v3.05 an alert's action list on its card: which items, fix or watch, what is wrong, what to do */
  .fc-todo { display:flex; flex-direction:column; gap:8px; margin:8px 0 4px; }
  .fc-todo.quiet { color:var(--sec); font-size:13px; }
  .fc-todo-r { display:grid; grid-template-columns:52px minmax(0,1fr); gap:10px; align-items:start; }
  .fc-todo-k { font:600 10.5px/1 'Geist Mono',ui-monospace,monospace; letter-spacing:.04em; text-transform:uppercase; text-align:center; border-radius:5px; padding:4px 0; margin-top:2px; }
  .fc-todo-k.fix { background:#FDECE6; color:#C93F16; }
  .fc-todo-k.watch { background:#EEF1F5; color:#4B5268; }
  .fc-todo-t { font-size:13.5px; color:var(--ink); }
  .fc-todo-c { font-size:12.5px; color:var(--body); }
  .fc-todo-a { font-size:12.5px; color:var(--ink); font-weight:500; }
  .fc-todo-age { font-size:11px; font-weight:500; color:var(--sec); margin-left:4px; }
  .fc-todo-age.new { color:#C93F16; } .fc-todo-age.back { color:#9A6A00; }
  .fc-todo-more { font-size:12px; color:var(--sec); padding-left:62px; }
  .fc-dl-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
  .fc-src-raw { font-size:12.5px; color:var(--sec); text-decoration:underline; }
