  @font-face{
    font-family:"Instrument Sans";font-style:normal;font-weight:400 700;
    font-display:swap;src:url("assets/fonts/InstrumentSans-Variable.woff2") format("woff2-variations"),url("assets/fonts/InstrumentSans-Variable.woff2") format("woff2");
  }
  @font-face{
    font-family:"JetBrains Mono";font-style:normal;font-weight:400 700;
    font-display:swap;src:url("assets/fonts/JetBrainsMono-Variable.woff2") format("woff2-variations"),url("assets/fonts/JetBrainsMono-Variable.woff2") format("woff2");
  }
  :root{
    --paper:#F7F5F2;
    --paper-2:#F2F0EC;
    --tint:#FAF9F7;
    --card:#FFFFFF;
    --ink:#111111;
    --body:#1F1D1B;
    --ink-soft:#57534E;
    --mid:#57534E;
    --muted:#6B6560;
    --faint:#8A857E;
    --light:#A8A29B;
    --rule:#E6E2DC;
    --rule-strong:#EDEAE4;
    --term:#111111;
    --accent:#DC4E13;
    --accent-hover:#C0430F;
    --accent-soft:#FCEDE6;
    --accent-text:#B8410E;
    --accent-tint:rgba(220,78,19,0.10);
    --green:#1F8A4C;
    --green-tint:#E7F5EB;
    --danger:#B3200E;
    --danger-tint:#FDEEEB;
    --danger-border:#F0C9C2;
    --bar-h:96px;
    --sidebar-w:248px;
    --serif:"Instrument Sans",system-ui,sans-serif;
    --sans:"Instrument Sans",system-ui,sans-serif;
    --mono:"JetBrains Mono",ui-monospace,monospace;
    /* dk-* tokens: declared globally (not just under .dk-wrap) so the drawer,
       which renders dk-* classes outside the kanban board container, resolves them too. */
    --dk-bg2:#F2F0EC;--dk-border:#E6E2DC;--dk-hair:#EDEAE4;--dk-ink:#111111;--dk-ink2:#6B6560;
    --dk-muted:#57534E;--dk-faint:#8A857E;--dk-surface:#FFFFFF;--dk-track:#DDD8D1;
    --dk-pill:#FBEDE6;--dk-avatar:#EFECE7;
    --dk-ink3:#57534E;--dk-orange:#DC4E13;
    --dk-green:#1F8A4C;--dk-green-bg:oklch(0.93 0.05 155);--dk-green-fg:oklch(0.42 0.09 155);
    --dk-amber:oklch(0.72 0.14 60);--dk-amber-bg:oklch(0.95 0.04 70);--dk-amber-fg:oklch(0.45 0.09 62);
  }
  *{box-sizing:border-box;}
  html,body{height:100%;}
  body{
    margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
    font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;overflow:hidden;
  }
  ::selection{background:var(--accent-tint);}
  button,input,select,textarea{font-family:inherit;}

  /* ============ LOGIN WALL: split layout (README, Login.dc.html) ============ */
  .login-wall{
    position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;
    background:var(--paper);
    transition:opacity .4s ease, visibility .4s ease;
  }
  .login-wall.hidden{opacity:0;visibility:hidden;pointer-events:none;}
  .login-split{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0.85fr);}
  .login-main{display:flex;flex-direction:column;padding:38px 44px;min-width:0;}
  .login-mark-row{display:flex;align-items:center;gap:10px;}
  .login-center{flex:1;display:flex;align-items:center;justify-content:center;}
  .login-box{width:100%;max-width:392px;display:flex;flex-direction:column;gap:22px;}
  .login-heading h1{margin:0;font-size:31px;font-weight:600;letter-spacing:-0.03em;line-height:1.12;color:var(--ink);}
  .login-heading .subtitle{font-size:14.5px;color:var(--mid);margin:9px 0 0;}
  .login-field{display:flex;flex-direction:column;gap:7px;}
  .login-field label{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);}
  .login-field:not(:last-child){margin-bottom:13px;}
  .login-field input{width:100%;padding:12px 14px;font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--card);border:1px solid var(--rule);border-radius:10px;outline:none;transition:border-color .16s ease, box-shadow .16s ease;box-sizing:border-box;}
  .login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(220,78,19,0.10);}
  .login-field input::placeholder{color:var(--light);}
  .login-btn{width:100%;height:44px;margin-top:8px;font-family:var(--mono);font-size:12px;color:#fff;background:var(--accent);border:none;border-radius:11px;cursor:pointer;transition:background .12s ease;}
  .login-btn:hover{background:var(--accent-hover);}
  .login-error{display:none;border:1px solid var(--danger-border);background:var(--danger-tint);border-radius:11px;padding:12px 14px;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:#8F3A11;}
  .login-error:not(:empty){display:flex;}
  .login-error:not(:empty):before{content:"ERROR";font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--accent-text);padding-top:2px;flex:none;}
  .login-footer{margin-top:20px;display:flex;align-items:center;gap:16px;font-family:var(--mono);font-size:10.5px;color:var(--light);}
  .login-footer-sp{flex:1;}
  .login-side{padding:14px 14px 14px 0;}
  .login-side-card{height:100%;border-radius:18px;background:var(--card);border:1px solid var(--rule);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:34px;box-sizing:border-box;}
  .login-side-logo{height:40px;display:block;}
  .login-side-note{font-size:14px;line-height:1.55;color:var(--mid);text-align:center;max-width:32ch;}

  /* ============ APP SHELL ============ */
  .app-shell{display:none;height:100%;flex-direction:column;background:var(--paper);padding:14px;gap:14px;box-sizing:border-box;}
  .app-shell.visible{display:flex;}

  /* ============ NAV: white floating card ============ */
  .topbar-wrap{flex:0 0 auto;}
  .topbar{
    height:66px;border-radius:16px;background:var(--card);color:var(--ink);
    border:1px solid var(--rule);
    display:flex;align-items:center;justify-content:space-between;gap:18px;
    padding:0 22px;
  }
  .topbar-left{display:flex;align-items:center;gap:10px;min-width:0;}
  .topbar-mark{width:22px;height:22px;border-radius:4px;background:var(--accent);display:grid;place-items:center;flex:0 0 auto;}
  .topbar-mark-inner{width:7px;height:7px;background:#FFFFFF;}
  .wordmark{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:-0.02em;color:var(--ink);text-decoration:none;flex:0 0 auto;white-space:nowrap;}
  /* thin minimal scrollbars everywhere */
  *{scrollbar-width:thin;scrollbar-color:rgba(107,101,96,.28) transparent;}
  ::-webkit-scrollbar{width:6px;height:6px;}
  ::-webkit-scrollbar-track{background:transparent;}
  ::-webkit-scrollbar-thumb{background:rgba(107,101,96,.28);border-radius:999px;border:none;}
  ::-webkit-scrollbar-thumb:hover{background:rgba(107,101,96,.45);}
  ::-webkit-scrollbar-corner{background:transparent;}
  .panel-tabs{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;}
  .panel-tabs::-webkit-scrollbar{display:none;}
  .panel-tab{font-family:var(--mono);font-size:14px;font-weight:400;letter-spacing:.02em;text-decoration:none;color:var(--muted);background:transparent;padding:8px 12px;border-radius:9px;white-space:nowrap;cursor:pointer;border:none;transition:background .16s ease,color .16s ease;}
  .panel-tab:hover{background:#F3F1ED;color:#111111;}
  .panel-tab.active{background:var(--accent);color:#FFFFFF;font-weight:500;padding:8px 14px;}
  .panel-tab.active:hover{background:var(--accent-hover);color:#FFFFFF;}
  .topbar-right{display:flex;align-items:center;gap:14px;flex:0 0 auto;}
  .panel-toggle-btn{appearance:none;border:1px solid var(--rule);background:transparent;border-radius:8px;width:30px;height:30px;display:grid;place-items:center;cursor:pointer;color:var(--muted);transition:background .16s ease,color .16s ease,border-color .16s ease;}
  .panel-toggle-btn:hover{background:#F3F1ED;color:#111111;}
  .panel-toggle-btn.active{background:var(--accent);border-color:var(--accent);color:#FFFFFF;}
  .panel-toggle-btn.hidden{display:none;}
  .topbar-context{font-family:var(--mono);font-size:12px;color:var(--faint);white-space:nowrap;}
  .topbar-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);flex:0 0 auto;}

  /* Layer dropdown: "· Data" suffix in the wordmark opens a menu of the 3 layers */
  .layer-dropdown{position:relative;flex:0 0 auto;display:flex;align-items:center;}
  .wordmark-layer{appearance:none;-webkit-appearance:none;font-family:var(--mono);font-weight:400;font-size:14px;color:var(--muted);background:transparent;border:none;padding:8px 12px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;transition:background .16s ease,color .16s ease;}
  .wordmark-layer:hover{background:#F3F1ED;color:#111111;}
  .wordmark-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block;overflow:hidden;color:transparent;font-size:0;line-height:0;flex:0 0 auto;margin:0 10px;}
  .layer-menu{position:absolute;top:calc(100% + 10px);left:0;min-width:150px;background:var(--card);border:1px solid var(--rule);border-radius:12px;box-shadow:0 18px 44px rgba(17,17,17,.13);padding:6px;display:none;flex-direction:column;gap:2px;z-index:50;}
  .layer-menu.open{display:flex;}
  .layer-menu-item{appearance:none;-webkit-appearance:none;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-align:left;padding:9px 12px;border-radius:8px;border:none;background:transparent;color:var(--mid);cursor:pointer;transition:background .14s ease,color .14s ease;}
  .layer-menu-item:hover{background:#F3F1ED;color:#111111;}
  .layer-menu-item.active{background:var(--accent-soft);color:var(--accent-text);font-weight:700;}
  /* avatar / settings dropdown */
  .avatar-dropdown{position:relative;flex:0 0 auto;}
  .avatar-btn{appearance:none;-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#F7F5F2;border:none;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.01em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:box-shadow .16s ease;}
  .avatar-btn:hover{box-shadow:0 0 0 3px rgba(17,17,17,.14);}
  .avatar-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:210px;background:var(--card);border:1px solid var(--rule);border-radius:12px;box-shadow:0 18px 44px rgba(17,17,17,.13);padding:8px;display:none;flex-direction:column;gap:2px;z-index:50;}
  .avatar-menu.open{display:flex;}
  .avatar-menu-email{font-family:var(--mono);font-size:10.5px;color:var(--faint);padding:8px 12px 10px;border-bottom:1px solid var(--rule);margin-bottom:4px;word-break:break-all;}
  .avatar-menu-item{appearance:none;-webkit-appearance:none;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-align:left;padding:9px 12px;border-radius:8px;border:none;background:transparent;color:var(--ink-soft);cursor:pointer;transition:background .14s ease,color .14s ease;}
  .avatar-menu-item:hover{background:#F3F1ED;color:#111111;}
  .avatar-menu-item#logoutBtn:hover{background:var(--danger-tint);color:var(--danger);}
  .avatar-menu-label{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--light);padding:10px 12px 4px;}
  .avatar-menu-company{display:flex;align-items:center;justify-content:space-between;gap:8px;}
  .avatar-menu-company.active{color:var(--ink);}
  .avatar-menu-company .amc-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:0;flex:none;}
  .avatar-menu-company.active .amc-dot{opacity:1;}
  .avatar-menu-sep{border-top:1px solid var(--rule);margin:4px 0;}

  /* settings drawer */
  .settings-section{margin-bottom:28px;}
  .settings-section:last-child{margin-bottom:0;}
  .settings-section h4{font-family:var(--serif);font-size:14px;font-weight:700;margin:0 0 14px;letter-spacing:-0.01em;color:var(--ink);}
  .status-pill{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 11px;}
  .status-pill .dot{width:6px;height:6px;border-radius:50%;}
  .status-pill.live{color:#1F8A4C;background:rgba(31,138,76,.1);border:1px solid rgba(31,138,76,.28);}
  .status-pill.live .dot{background:#1F8A4C;}
  .status-pill.offline{color:var(--muted);background:var(--paper-2);border:1px solid var(--rule-strong);}
  .status-pill.offline .dot{background:var(--faint);}
  .settings-save-note{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#1F8A4C;margin-left:10px;opacity:0;transition:opacity .2s ease;}
  .settings-save-note.visible{opacity:1;}
  .toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-top:1px solid var(--rule);}
  .toggle-row:first-child{border-top:none;}
  .toggle-row .tr-label{font-size:13.5px;color:var(--ink);}
  .toggle-row .tr-desc{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:3px;}
  .switch{position:relative;width:38px;height:22px;flex:0 0 auto;}
  .switch input{opacity:0;width:0;height:0;position:absolute;}
  .switch .track{position:absolute;inset:0;background:var(--rule-strong);border-radius:999px;cursor:pointer;transition:background .16s ease;}
  .switch .track:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .16s ease;box-shadow:0 1px 3px rgba(0,0,0,.25);}
  .switch input:checked + .track{background:var(--accent);}
  .switch input:checked + .track:before{transform:translateX(16px);}

  .shell{flex:1;display:flex;min-height:0;}
  .content{flex:1;min-width:0;overflow-y:auto;height:100%;}
  .content.chat-mode{overflow:hidden;}
  .panel{display:none;height:100%;}
  .panel.active{display:block;}
  #panel-chat.active{display:flex;flex-direction:column;height:100%;min-height:0;}
  .panel-head{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-bottom:14px;flex-wrap:wrap;}
  .panel-head h1{font-family:var(--serif);font-weight:700;font-size:26px;letter-spacing:-0.03em;margin:0;color:var(--ink);}
  .panel-head .sub{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.06em;margin-top:6px;}
  .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:400;}

  .no-data{font-family:var(--mono);font-size:13px;color:var(--faint);padding:28px 4px;}

  /* buttons */
  /* States & Overlays button matrix: quiet-bordered is the default .btn; .primary is
     the accent action; .dark is the secondary-dark action; .danger is destructive. */
  .btn{appearance:none;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--ink);background:var(--card);border:1px solid var(--rule);padding:10px 16px;border-radius:9px;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease;}
  .btn:hover{border-color:var(--ink);}
  .btn:active{background:#F3F1ED;border-color:var(--ink);}
  .btn:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px rgba(220,78,19,0.10);outline:none;}
  .btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);}
  .btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;}
  .btn.primary:active{background:#A63A0D;border-color:#A63A0D;}
  .btn.dark{background:var(--ink);color:#fff;border-color:var(--ink);}
  .btn.dark:hover{background:#2A2A2A;border-color:#2A2A2A;color:#fff;}
  .btn.danger{color:var(--danger);border-color:var(--danger-border);}
  .btn.danger:hover{border-color:var(--danger);}
  .btn:disabled{background:var(--rule-strong);color:var(--light);border-color:var(--rule-strong);opacity:1;cursor:default;pointer-events:none;}
  .btn.small{padding:7px 12px;font-size:12px;}
  /* .btn reused inside the dark cinema (ready-step actions) needs the dark-ramp treatment —
     accent primary, bordered-dark secondary — instead of the light card/ink defaults. */
  .bench-cinema .btn{font-family:var(--mono);color:#C6C1BA;background:#161514;border-color:#2E2C2A;}
  .bench-cinema .btn:hover{border-color:#6B6560;color:#F7F5F2;}
  .bench-cinema .btn.primary{background:#DC4E13;color:#FFFFFF;border-color:#DC4E13;}
  .bench-cinema .btn.primary:hover{background:#C0430F;border-color:#C0430F;color:#FFFFFF;}

  /* stat tiles */
  .stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:32px;}
  .stat-tile{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:20px 22px;}
  .stat-tile .st-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
  .stat-tile .st-val{font-family:var(--serif);font-size:30px;font-weight:700;letter-spacing:-0.02em;color:var(--ink);}

  .dash-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;align-items:start;}
  @media (max-width:1100px){.dash-grid{grid-template-columns:1fr;}}

  /* dashboard: top-insight ticker, broker scoreboard, needs-attention */
  .insight-ticker{display:flex;align-items:center;gap:14px;border-radius:14px;padding:16px 20px;margin-bottom:24px;cursor:pointer;border:1px solid var(--rule);background:var(--card);transition:border-color .14s ease;}
  .insight-ticker:hover{border-color:var(--accent-soft);}
  .insight-ticker .it-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
  .insight-ticker.alert{border-color:rgba(192,57,43,.3);background:rgba(192,57,43,.05);}
  .insight-ticker.alert .it-dot{background:#c0392b;}
  .insight-ticker.warn{border-color:var(--accent-soft);background:var(--accent-tint);}
  .insight-ticker.warn .it-dot{background:var(--accent);}
  .insight-ticker.info{background:var(--paper-2);}
  .insight-ticker.info .it-dot{background:var(--muted);}
  .it-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex:0 0 auto;}
  .it-text{font-size:13.5px;color:var(--ink);flex:1;min-width:0;}
  .it-text strong{font-weight:700;}
  .it-arrow{font-family:var(--mono);font-size:11px;color:var(--muted);flex:0 0 auto;}

  .dash-row3{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;align-items:start;}
  @media (max-width:1100px){.dash-row3{grid-template-columns:1fr;}}
  .scoreboard-table{width:100%;border-collapse:collapse;font-size:12.5px;}
  .scoreboard-table th{text-align:left;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--rule-strong);font-weight:400;}
  .scoreboard-table td{padding:9px 8px;border-bottom:1px solid var(--rule);color:var(--ink);}
  .scoreboard-table tr:last-child td{border-bottom:none;}
  .sb-dot{display:inline-block;width:8px;height:8px;border-radius:50%;}
  .sb-dot.green{background:#1F8A4C;}
  .sb-dot.amber{background:var(--accent);}
  .sb-dot.red{background:#c0392b;}
  .sb-outstanding{font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:999px;background:rgba(192,57,43,.08);color:#c0392b;border:1px solid rgba(192,57,43,.25);}
  .na-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--rule);cursor:pointer;}
  .na-row:first-child{border-top:none;}
  .na-row:hover .na-text{color:var(--accent);}
  .na-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:0 0 auto;}
  .na-text{font-size:13px;color:var(--ink-soft);transition:color .14s ease;}

  /* pipeline funnel */
  .pipeline-board{display:flex;gap:18px;overflow-x:auto;padding-bottom:10px;align-items:flex-start;}
  .pipeline-col{flex:0 0 270px;width:270px;background:var(--paper-2);border:1px solid var(--rule);border-radius:14px;padding:16px;box-sizing:border-box;}
  .pipeline-col-head{margin-bottom:14px;}
  .pipeline-col-title{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--ink);margin-bottom:4px;}
  .pipeline-col-meta{font-family:var(--mono);font-size:10.5px;color:var(--muted);}
  .pipeline-card{background:var(--card);border:1px solid var(--rule);border-radius:11px;padding:13px 14px;margin-bottom:10px;cursor:pointer;transition:border-color .14s ease,transform .14s ease;}
  .pipeline-card:hover{border-color:var(--accent-soft);transform:translateY(-1px);}
  .pipeline-card:last-child{margin-bottom:0;}
  .pc-name{font-family:var(--serif);font-weight:700;font-size:13.5px;color:var(--ink);margin-bottom:6px;}
  .pc-meta-row{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink-soft);margin-bottom:3px;}
  .pc-meta-row .k{color:var(--muted);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;}
  .pc-days{font-family:var(--mono);font-size:10px;color:var(--faint);margin-top:8px;}

  /* ============ Deals kanban (Data > Deals) — Claude Design board, local tokens only ============ */
  .dk-newbtn{font-family:var(--sans);}
  .dk-wrap{--dk-bg2:#F2F0EC;--dk-border:#E6E2DC;--dk-hair:#EDEAE4;--dk-ink:#111111;--dk-ink2:#6B6560;--dk-muted:#57534E;--dk-faint:#8A857E;--dk-surface:#FFFFFF;--dk-track:#DDD8D1;--dk-pill:#FBEDE6;--dk-avatar:#EFECE7;--dk-sans:'Instrument Sans',ui-sans-serif,'Helvetica Neue',Arial,var(--sans);color:var(--dk-ink);}
  .dk-head{display:flex;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-bottom:16px;}
  .dk-head h2{margin:0;font-size:22px;letter-spacing:-0.02em;font-weight:600;font-family:var(--dk-sans);}
  .dk-updated{font-family:var(--mono);font-size:11px;color:var(--dk-muted);margin-top:4px;}
  .dk-head-right{display:flex;align-items:center;gap:22px;margin-left:auto;flex-wrap:wrap;}
  .dk-stats{display:flex;gap:26px;flex-wrap:wrap;}
  .dk-stat-label{font-family:var(--mono);font-size:10px;letter-spacing:.09em;color:var(--dk-muted);}
  .dk-stat-val{font-size:20px;font-weight:600;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;font-family:var(--dk-sans);}
  .dk-stat-val.alert{color:#B8410E;}
  .dk-stat-label.alert{color:#B8410E;}
  .dk-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
  .dk-search{display:flex;align-items:center;gap:8px;background:var(--dk-surface);border:1px solid var(--dk-border);border-radius:10px;padding:0 12px;height:36px;min-width:220px;}
  .dk-search input{border:none;outline:none;background:transparent;font-family:var(--mono);font-size:12px;color:var(--dk-ink);width:100%;}
  .dk-chip{border:1px solid var(--dk-border);background:var(--dk-surface);color:var(--dk-ink2);border-radius:9px;height:36px;padding:0 12px;cursor:pointer;font-family:var(--mono);font-size:11px;white-space:nowrap;transition:border-color .12s;}
  .dk-chip:hover{border-color:var(--dk-ink);}
  .dk-chip.active{border-color:var(--dk-ink);background:var(--dk-ink);color:#F7F5F2;}
  .dk-sort-group{margin-left:auto;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:var(--dk-muted);}
  .dk-sort-btn{border:1px solid var(--dk-border);background:transparent;color:var(--dk-ink);border-radius:8px;height:28px;padding:0 10px;cursor:pointer;font-family:var(--mono);font-size:11px;transition:border-color .12s;}
  .dk-sort-btn:hover{border-color:var(--dk-ink);}
  .dk-sort-btn.active{border-color:var(--dk-ink);background:var(--dk-pill);}
  .dk-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start;}
  .dk-col{background:var(--dk-bg2);border:1px solid var(--dk-border);border-radius:14px;padding:12px 10px;display:flex;flex-direction:column;gap:9px;min-width:220px;box-sizing:border-box;}
  .dk-col-head{padding:4px 6px 8px;display:flex;flex-direction:column;gap:8px;}
  .dk-col-top{display:flex;align-items:center;gap:8px;}
  .dk-col-dot{width:7px;height:7px;border-radius:2px;flex:none;}
  .dk-col-title{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:-0.01em;color:var(--dk-ink);}
  .dk-col-count{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--dk-muted);font-variant-numeric:tabular-nums;}
  .dk-col-val-row{display:flex;align-items:baseline;justify-content:space-between;}
  .dk-col-val{font-size:15px;font-weight:600;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;font-family:var(--dk-sans);}
  .dk-col-share{font-family:var(--mono);font-size:10px;color:var(--dk-faint);}
  .dk-col-bar{height:3px;background:var(--dk-track);border-radius:2px;overflow:hidden;}
  .dk-col-bar i{display:block;height:100%;border-radius:2px;}
  .dk-card{background:var(--dk-surface);border:1px solid #E6E2DC;border-radius:11px;padding:12px 13px;cursor:pointer;transition:border-color .12s ease,transform .12s ease;display:flex;flex-direction:column;gap:7px;}
  .dk-card:hover{border-color:var(--dk-ink);transform:translateY(-1px);}
  .dk-card-top{display:flex;align-items:flex-start;gap:8px;}
  .dk-card-name{margin:0;font-size:14px;font-weight:600;line-height:1.3;letter-spacing:-0.01em;flex:1;font-family:var(--dk-sans);}
  .dk-card-type{font-family:var(--mono);font-size:9px;letter-spacing:.06em;padding:3px 6px;border-radius:5px;flex:none;text-transform:uppercase;}
  .dk-card-price-row{display:flex;align-items:baseline;gap:8px;}
  .dk-card-price{font-size:19px;font-weight:600;letter-spacing:-0.03em;font-variant-numeric:tabular-nums;font-family:var(--dk-sans);}
  .dk-card-psf{font-family:var(--mono);font-size:11px;color:var(--dk-muted);font-variant-numeric:tabular-nums;}
  .dk-card-meta{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--dk-ink2);padding-top:9px;border-top:1px solid var(--dk-hair);}
  .dk-card-meta .sep{color:#C6C1BA;}
  .dk-card-aging{margin-left:auto;font-variant-numeric:tabular-nums;}
  .dk-card-avatar{width:20px;height:20px;border-radius:50%;background:var(--dk-avatar);color:#5C564D;display:grid;place-items:center;font-size:9px;font-family:var(--mono);flex:none;}
  .dk-col-empty{font-family:var(--mono);font-size:11px;color:var(--dk-faint);padding:22px 8px;text-align:center;border:1px dashed var(--dk-track);border-radius:10px;}
  @media (max-width:900px){ .dk-board{grid-template-columns:repeat(2,minmax(0,1fr));} .dk-head-right{margin-left:0;} }

  /* deals drawer detail — reference-style stat grid / stage progress / broker block */
  .dk-drawer-stage{font-family:var(--mono);font-size:10px;letter-spacing:.09em;color:var(--dk-muted);}
  .dk-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--dk-border);border:1px solid var(--dk-border);border-radius:11px;overflow:hidden;margin:14px 0;}
  .dk-stat-cell{background:var(--dk-surface);padding:12px 13px;}
  .dk-stat-cell .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;color:var(--dk-muted);}
  .dk-stat-cell .val{font-size:16px;font-weight:600;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;margin-top:3px;font-family:var(--dk-sans);}
  .dk-progress-label{font-family:var(--mono);font-size:10px;letter-spacing:.09em;color:var(--dk-muted);margin-bottom:9px;}
  .dk-progress-row{display:flex;gap:4px;margin-bottom:9px;}
  .dk-progress-seg{flex:1;height:5px;border-radius:3px;background:#E6E2DC;}
  .dk-progress-days{font-family:var(--mono);font-size:11px;color:var(--dk-ink2);margin-bottom:18px;}
  .dk-broker-label{font-family:var(--mono);font-size:10px;letter-spacing:.09em;color:var(--dk-muted);margin-bottom:9px;}
  .dk-broker-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
  .dk-broker-avatar{width:32px;height:32px;border-radius:50%;background:var(--dk-avatar);color:var(--dk-ink);display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:500;flex:none;}
  .dk-broker-name{font-size:14px;font-weight:500;font-family:var(--dk-sans);}
  .dk-broker-sub{font-family:var(--mono);font-size:11px;color:var(--dk-muted);}
  .dk-actions-row{display:flex;gap:8px;margin-bottom:20px;}
  .dk-action-btn{flex:1;height:40px;border-radius:10px;border:none;background:var(--dk-ink);color:#F7F5F2;font-family:var(--mono);font-size:12px;cursor:pointer;transition:background .12s;}
  .dk-action-btn:hover{background:#2A2A2A;}
  .dk-action-btn.secondary{background:var(--dk-surface);border:1px solid var(--dk-border);color:var(--dk-ink);}
  .dk-action-btn.secondary:hover{border-color:var(--dk-ink);}
  .dk-action-btn:disabled{opacity:.5;cursor:default;pointer-events:none;}
  .dk-legacy-divider{border-top:1px solid var(--dk-hair);margin:2px 0 18px;}
  .panel-card{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:18px 20px;}
  .panel-card h3{font-family:var(--serif);font-size:16px;font-weight:700;margin:0 0 16px;letter-spacing:-0.01em;}
  .mx-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
  .mx-row:last-child{margin-bottom:0;}
  .mx-label{font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);width:130px;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mx-bar{flex:1;height:9px;border-radius:999px;background:var(--rule);overflow:hidden;}
  .mx-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#F0AB7A);border-radius:999px;}
  .mx-pct{font-family:var(--mono);font-size:11px;color:var(--muted);width:38px;text-align:right;flex:0 0 auto;}
  .brief-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--rule);cursor:pointer;}
  .brief-row:first-child{border-top:none;}
  .brief-row:hover .brief-name{color:var(--accent);}
  .brief-name{font-family:var(--serif);font-weight:700;font-size:14px;color:var(--ink);transition:color .14s ease;}
  .brief-date{font-family:var(--mono);font-size:11px;color:var(--faint);}

  /* csv table */
  .toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
  .search-input{font-family:var(--mono);font-size:12.5px;color:var(--ink);background:var(--card);border:1px solid var(--rule-strong);border-radius:9px;padding:9px 14px;min-width:220px;outline:none;}
  .search-input:focus{border-color:var(--accent);}
  .csv-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--rule);border-radius:14px;}
  table.csv{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px;}
  .csv th{text-align:left;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--rule-strong);white-space:nowrap;cursor:pointer;user-select:none;}
  .csv th.sorted{color:var(--accent);}
  .csv th.sorted::after{content:" \25B4";}
  .csv th.sorted[data-dir="desc"]::after{content:" \25BE";}
  .csv td{padding:11px 14px;border-bottom:1px solid var(--rule);color:var(--ink);white-space:nowrap;}
  .csv tr:last-child td{border-bottom:none;}
  .csv tbody tr{cursor:pointer;transition:background .12s ease;}
  .csv tbody tr:hover{background:var(--paper-2);}

  /* drawer */
  .drawer-overlay{position:fixed;inset:0;background:rgba(17,17,17,.32);z-index:200;display:none;}
  .drawer-overlay.open{display:block;}
  .drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,92vw);background:var(--card);border-left:1px solid var(--rule);z-index:201;transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column;box-shadow:-20px 0 50px rgba(17,17,17,.12);}
  .drawer.open{transform:translateX(0);}
  .drawer-head{padding:22px 26px;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;}
  .drawer-head h2{font-family:var(--serif);font-size:19px;font-weight:700;margin:0;letter-spacing:-0.02em;}
  .drawer-close{appearance:none;border:none;background:none;font-size:20px;color:var(--faint);cursor:pointer;line-height:1;padding:4px;}
  .drawer-close:hover{color:var(--ink);}
  .drawer-body{flex:1;overflow-y:auto;padding:22px 26px;}
  .drawer-photo{width:100%;height:170px;object-fit:cover;border-radius:12px;margin-bottom:18px;background:var(--paper-2);}
  .drawer-photo-placeholder{width:100%;height:170px;border-radius:12px;margin-bottom:18px;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--faint);}
  .field-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--rule);font-size:13.5px;}
  .field-row:first-child{border-top:none;}
  .field-row .fk{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
  .field-row .fv{color:var(--ink);text-align:right;}
  .drawer-actions{display:flex;gap:10px;padding:18px 26px;border-top:1px solid var(--rule);flex:0 0 auto;flex-wrap:wrap;}
  .form-field{margin-bottom:14px;}
  .form-field label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
  .form-field input,.form-field select,.form-field textarea{width:100%;padding:10px 12px;font-family:var(--sans);font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--rule-strong);border-radius:9px;outline:none;}
  .form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;}

  /* map */
  #mapView{height:100%;width:100%;border-radius:14px;overflow:hidden;border:1px solid var(--rule);}
  .map-wrap{height:calc(100vh - var(--bar-h) - 130px);min-height:400px;}
  .osd-marker{background:#DC4E13;color:#fff;border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);width:30px;height:30px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.35);}
  .osd-marker span{transform:rotate(45deg);font-size:11px;font-weight:700;}
  .osd-pop{display:flex;flex-direction:column;gap:2px;}
  .osd-pop strong{font-family:var(--serif);font-size:14px;color:var(--ink);}
  .osd-pop-addr{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);}
  .osd-pop-size{font-family:var(--mono);font-size:10.5px;color:var(--muted);}
  .osd-pop-img{display:block;width:100%;height:100px;object-fit:cover;border-radius:8px;margin-bottom:8px;}

  /* ============ AGENT BENCH ============ */
  .bench-hero-row{background:var(--dk-surface);border:1px solid var(--dk-border);border-radius:16px;overflow:hidden;}
  body.cinema-open .bench-hero{opacity:0;transition:opacity .18s ease-out;}
  .bench-hero{padding:48px 40px 40px;display:flex;flex-direction:column;align-items:center;gap:15px;}
  .bench-hero-title{margin:0;font-family:var(--sans);font-size:34px;font-weight:600;letter-spacing:-0.03em;text-align:center;line-height:1.15;color:var(--dk-ink);}
  .bench-hero-sub{margin:0;font-size:14.5px;color:var(--dk-ink2);text-align:center;max-width:44ch;line-height:1.55;}
  .bench-compose-trigger{appearance:none;width:100%;max-width:600px;margin-top:10px;background:var(--dk-bg2);border:1px solid var(--dk-border);border-radius:13px;padding:11px 11px 11px 20px;display:flex;align-items:center;gap:14px;cursor:text;text-align:left;transition:border-color .14s ease;}
  .bench-compose-trigger:hover{border-color:var(--dk-ink);}
  .bench-compose-placeholder{font-family:var(--mono);font-size:13px;color:var(--dk-faint);flex:1;}
  .bench-compose-cta{background:var(--dk-ink);color:var(--dk-bg2);border-radius:9px;height:38px;padding:0 18px;display:grid;place-items:center;font-family:var(--mono);font-size:12px;flex:none;}
  .bench-examples{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:660px;margin-top:2px;}
  .bench-example-chip{appearance:none;border:1px solid var(--dk-border);background:var(--dk-surface);border-radius:9px;height:36px;padding:0 14px;cursor:pointer;font-size:12.5px;color:var(--dk-ink3);display:flex;align-items:center;gap:8px;transition:border-color .14s ease,background .14s ease;}
  .bench-example-chip:hover{border-color:var(--dk-ink);background:var(--dk-bg2);}
  .bench-example-chip .glyph{font-family:var(--mono);font-size:11px;color:var(--dk-orange);}

  .agent-config-panel{position:fixed;top:14px;right:14px;bottom:14px;width:400px;max-width:calc(100vw - 28px);background:#FDFBF5;border:1px solid var(--dk-border);border-radius:16px;box-shadow:0 24px 60px rgba(20,18,15,0.18);padding:20px 22px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;z-index:45;transform:translateX(calc(100% + 28px));transition:transform .26s cubic-bezier(0.2,0.8,0.2,1);}
  .agent-config-panel.open{transform:translateX(0);}
  .acp-close{appearance:none;margin-left:auto;border:1px solid var(--dk-border);background:var(--dk-bg);border-radius:8px;width:28px;height:28px;cursor:pointer;font-size:14px;color:var(--dk-ink2);line-height:1;flex:none;}
  .acp-close:hover{border-color:var(--dk-ink);}
  .acp-head{display:flex;flex-direction:column;gap:6px;width:100%;}
  .acp-head-row{display:flex;align-items:center;gap:9px;width:100%;}
  .acp-icon{width:24px;height:24px;border-radius:7px;border:1px solid var(--dk-border);background:var(--dk-surface);display:grid;place-items:center;font-size:11px;color:var(--dk-ink2);flex:none;}
  .acp-head-row h3{margin:0;font-size:15px;font-weight:600;letter-spacing:-0.02em;color:var(--dk-ink);}
  .acp-sub{font-size:12.5px;color:var(--dk-ink2);}
  .acp-body{display:flex;flex-direction:column;gap:14px;}
  .acp-matrix{overflow-x:auto;}
  .iam-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:10px;}
  .iam-table th{text-align:center;padding:0 0 9px;color:var(--dk-muted);font-weight:400;letter-spacing:.06em;font-size:9px;border-bottom:1px solid var(--dk-hair);}
  .iam-table th:first-child{text-align:left;}
  .iam-table td{padding:9px 3px;border-bottom:1px solid #EDEAE4;text-align:center;}
  .iam-table td:first-child{text-align:left;color:var(--dk-ink);font-size:13px;font-family:var(--sans);font-weight:400;}
  .iam-chip{display:inline-flex;width:20px;height:20px;border-radius:6px;align-items:center;justify-content:center;font-size:10px;border:none;padding:0;cursor:pointer;font-family:inherit;transition:box-shadow .14s ease,transform .14s ease;}
  .iam-chip:hover{box-shadow:0 0 0 2px var(--dk-pill);transform:scale(1.08);}
  .iam-chip.check{border:1px solid #C6C1BA;color:var(--dk-ink);}
  .iam-chip.lock{color:#B4AFA8;}
  .acp-departments{display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--dk-hair);padding-top:14px;}
  .acp-dept-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;}
  .acp-dept-sub{font-family:var(--mono);font-size:10px;color:var(--dk-faint);}
  .acp-dept-list{display:flex;flex-direction:column;}
  .acp-dept-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid var(--dk-hair);}
  .acp-dept-row:first-child{border-top:none;}
  .acp-dept-name-btn{appearance:none;border:none;background:transparent;font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--dk-ink);cursor:text;padding:2px 0;text-align:left;}
  .acp-dept-name-btn:hover{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;}
  .acp-dept-name-input{font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--dk-ink);background:var(--dk-surface);border:1px solid var(--dk-ink);border-radius:6px;padding:3px 7px;outline:none;min-width:80px;}
  .acp-dept-count{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--dk-muted);white-space:nowrap;}
  .acp-dept-blocked-hint{margin-left:auto;font-family:var(--mono);font-size:10px;color:#c0392b;white-space:nowrap;}
  .acp-dept-remove{appearance:none;border:none;background:transparent;font-family:var(--mono);font-size:15px;line-height:1;color:var(--dk-faint);cursor:pointer;padding:2px 4px;flex:none;}
  .acp-dept-remove:hover{color:#c0392b;}
  .acp-dept-add-row{display:flex;gap:8px;padding-top:4px;}
  .acp-dept-new-input{flex:1;font-family:var(--mono);font-size:12px;color:var(--dk-ink);background:var(--dk-surface);border:1px solid var(--dk-border);border-radius:8px;padding:7px 10px;outline:none;min-width:0;}
  .acp-dept-new-input:focus{border-color:var(--dk-ink);}
  .acp-mesh-row{display:flex;gap:11px;align-items:flex-start;border-top:1px solid var(--dk-hair);padding-top:14px;}
  .acp-icon-round{border-radius:50%;}
  .acp-mesh-copy{flex:1;min-width:0;}
  .acp-mesh-head{display:flex;align-items:center;gap:10px;}
  .acp-mesh-head .tr-label{font-size:13.5px;font-weight:500;color:var(--dk-ink);}
  .acp-mesh-note{font-family:var(--mono);font-size:10.5px;color:var(--dk-muted);line-height:1.55;margin-top:6px;}

  .bench-section{background:var(--dk-surface);border:1px solid var(--dk-border);border-radius:16px;padding:20px 22px 22px;display:flex;flex-direction:column;gap:16px;}
  .bench-section-head{display:flex;align-items:baseline;gap:12px;}
  .bench-section-head h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-0.025em;color:var(--dk-ink);}
  .bench-section-tag{font-family:var(--mono);font-size:11px;color:var(--dk-muted);}
  .bench-new-btn{margin-left:auto;border:1px solid var(--dk-border);background:var(--dk-bg2);border-radius:9px;height:36px;padding:0 15px;cursor:pointer;font-family:var(--mono);font-size:11.5px;color:var(--dk-ink);}
  .bench-new-btn:hover{border-color:var(--dk-ink);}
  .bench-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;}
  .bench-col{display:flex;flex-direction:column;gap:14px;padding:2px 20px;min-height:280px;}
  .bench-col:first-child{padding-left:2px;}
  .bench-col:last-child{padding-right:2px;border-right:none;}
  .bench-col:not(:last-child){border-right:1px solid var(--dk-hair);}
  .bench-col-head{display:flex;align-items:flex-start;gap:10px;}
  .bench-col-glyph{width:24px;height:24px;border-radius:7px;border:1px solid var(--dk-border);background:var(--dk-bg2);display:grid;place-items:center;font-size:10px;color:var(--dk-ink2);flex:none;margin-top:2px;}
  .bench-col-title-row{display:flex;align-items:center;gap:9px;}
  .bench-col-title-row span.name{font-size:15px;font-weight:600;letter-spacing:-0.02em;color:var(--dk-ink);}
  .bench-col-count{font-family:var(--mono);font-size:10.5px;color:var(--dk-ink2);background:var(--dk-pill);border-radius:5px;padding:2px 7px;font-variant-numeric:tabular-nums;}
  .bench-col-sub{font-family:var(--mono);font-size:10.5px;color:var(--dk-muted);margin-top:4px;}
  .bench-cards{display:flex;flex-direction:column;gap:9px;}
  .bench-card{appearance:none;width:100%;display:flex;align-items:center;gap:12px;background:var(--dk-surface);border:1px solid var(--dk-border);border-radius:12px;padding:13px 14px;cursor:pointer;transition:border-color .15s ease;text-align:left;}
  .bench-card:hover{border-color:var(--dk-ink);}
  .bench-card.open{border-color:var(--dk-ink);}
  .bench-card.justAdded{border-color:var(--dk-orange);animation:benchSettle 1s ease-out;}
  @keyframes benchSettle{0%{box-shadow:0 0 0 0 rgba(220,78,19,0.34);}100%{box-shadow:0 0 0 14px rgba(220,78,19,0);}}
  .bench-mark{width:36px;height:36px;border-radius:10px;border:1px solid var(--dk-border);background:var(--dk-bg2);display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--dk-ink);flex:none;}
  .bench-card-body{flex:1;min-width:0;}
  .bench-card-body h3{margin:0;font-size:14px;font-weight:600;letter-spacing:-0.01em;color:var(--dk-ink);}
  .bench-card-body p{margin:5px 0 0;font-size:12.5px;line-height:1.45;color:var(--dk-ink2);}
  .bench-card-meta{display:flex;align-items:center;gap:7px;flex:none;}
  .bench-pill{font-family:var(--mono);font-size:9px;letter-spacing:.07em;padding:4px 8px;border-radius:6px;white-space:nowrap;}
  .bench-pill.running{background:var(--dk-green-bg);color:var(--dk-green-fg);}
  .bench-pill.watch{background:var(--dk-amber-bg);color:var(--dk-amber-fg);}
  .bench-pill.draft{background:var(--dk-pill);color:var(--dk-muted);}
  .bench-empty{border:1px dashed var(--dk-track);border-radius:11px;padding:26px 12px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--dk-faint);}
  .bench-col-foot{margin-top:auto;border:none;background:transparent;padding:4px 2px;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;color:var(--dk-ink3);}
  .bench-col-foot:hover{color:var(--dk-ink);}

  .bench-detail{display:none;position:fixed;top:14px;right:14px;bottom:14px;width:392px;background:var(--dk-surface);border:1px solid var(--dk-border);border-radius:16px;box-shadow:0 24px 60px rgba(20,18,15,0.18);padding:24px;flex-direction:column;gap:18px;overflow:auto;z-index:40;animation:fadein .18s ease-out;}
  .bench-detail.open{display:flex;}
  .bench-detail-head{display:flex;align-items:flex-start;gap:12px;}
  .bench-detail-mark{width:34px;height:34px;border-radius:10px;border:1px solid var(--dk-border);background:var(--dk-bg2);display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--dk-ink);flex:none;}
  .bench-detail-name{margin:0;font-size:19px;font-weight:600;letter-spacing:-0.025em;line-height:1.25;color:var(--dk-ink);cursor:pointer;}
  .bench-detail-name:hover{color:var(--dk-orange);}
  /* Click-to-rename input swapped in for .bench-detail-name — the detail
     card is the LIGHT cream surface (--dk-surface is #FFFFFF despite the
     dk- prefix), so this matches the title's own light-surface colors, not
     the dark bench-cinema palette used elsewhere in this file. */
  .bench-detail-name-input{display:none;margin:0;width:100%;font-family:inherit;font-size:19px;font-weight:600;letter-spacing:-0.025em;line-height:1.25;color:var(--dk-ink);background:transparent;border:none;border-bottom:1px solid var(--dk-border);padding:0 0 2px;appearance:none;}
  .bench-detail-name-input:focus{outline:none;border-bottom-color:var(--dk-orange);}
  .bench-detail-name-input.editing{display:block;}
  .bench-detail-name.editing{display:none;}
  .bench-detail-status{display:flex;align-items:center;gap:7px;margin-top:5px;}
  .bench-status-dot{width:6px;height:6px;border-radius:50%;}
  .bench-status-dot.running{background:var(--dk-green);}
  .bench-status-dot.watch{background:var(--dk-amber);}
  .bench-status-dot.draft{background:var(--dk-track);}
  .bench-detail-status span.line{font-family:var(--mono);font-size:10.5px;color:var(--dk-muted);}
  .bench-detail-close{border:1px solid var(--dk-border);background:var(--dk-bg2);border-radius:8px;width:28px;height:28px;cursor:pointer;font-size:14px;color:var(--dk-ink2);line-height:1;flex:none;}
  .bench-detail-close:hover{border-color:var(--dk-ink);}
  .bench-detail-brief{margin:0;font-size:13.5px;line-height:1.55;color:var(--dk-ink3);}
  .bench-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#E6E2DC;border:1px solid #E6E2DC;border-radius:11px;overflow:hidden;}
  .bench-stat{background:var(--dk-bg2);padding:11px 13px;}
  .bench-stat-full{grid-column:1/-1;}
  .bench-stat-label{font-family:var(--mono);font-size:9px;letter-spacing:.09em;color:var(--dk-muted);}
  .bench-stat-value{font-size:14px;font-weight:600;letter-spacing:-0.015em;margin-top:3px;color:var(--dk-ink);}
  .bench-log-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;color:var(--dk-muted);}
  .bench-log{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
  .bench-log-row{display:flex;gap:11px;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid var(--dk-hair);}
  .bench-log-when{font-family:var(--mono);font-size:10px;color:var(--dk-faint);width:46px;flex:none;padding-top:2px;}
  .bench-log-what{font-size:12.5px;line-height:1.5;color:var(--dk-ink3);}
  .bench-recommend{border-left:2px solid var(--dk-orange);padding:2px 0 2px 12px;margin-top:2px;}
  .bench-recommend.confirm{border-left-color:var(--dk-green);}
  .bench-recommend-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--dk-orange);}
  .bench-recommend.confirm .bench-recommend-label{color:var(--dk-green-fg);}
  .bench-recommend-text{font-size:13px;line-height:1.5;color:var(--dk-ink3);margin-top:4px;}

  .bench-detail-actions{margin-top:auto;display:flex;gap:8px;}
  .bench-detail-actions .btn.primary{flex:1;height:40px;border-radius:10px;}
  .bench-detail-actions .btn{height:40px;border-radius:10px;}
  .bench-upgrade-btn{width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--dk-border);background:var(--dk-bg2);cursor:pointer;font-size:16px;line-height:1;color:var(--dk-ink2);display:grid;place-items:center;}
  .bench-upgrade-btn:hover{border-color:var(--dk-orange);color:var(--dk-orange);}

  #benchEditStep{display:flex;flex-direction:column;gap:18px;}
  .bench-edit-snap-row{align-self:center;display:flex;align-items:center;gap:10px;}
  .bench-edit-snap-pill{display:flex;align-items:center;gap:10px;background:rgba(255,253,248,0.07);border:1px solid var(--dk-hair);border-radius:11px;padding:8px 14px 8px 9px;}
  .bench-edit-snap-pill .bench-mark{width:26px;height:26px;font-size:10px;background:var(--dk-pill);color:var(--dk-ink);}
  .bench-edit-snap-pill-name{font-size:13.5px;font-weight:500;color:var(--dk-ink);}
  .bench-edit-name-input{background:transparent;border:none;outline:none;border-bottom:1px dashed rgba(247,242,231,.35);padding:0 0 1px;width:16ch;font-family:inherit;cursor:text;}
  .bench-edit-name-input:hover{border-bottom-color:rgba(247,242,231,.6);}
  .bench-edit-name-input:focus{border-bottom-color:var(--accent);}
  .bench-edit-snap-pill .bench-pill.running{background:oklch(0.42 0.07 155);color:oklch(0.92 0.06 155);}
  .bench-edit-snap-pill .bench-pill.watch{background:oklch(0.42 0.08 70);color:oklch(0.92 0.05 70);}
  .bench-edit-snap-pill .bench-pill.draft{background:rgba(255,253,248,0.12);color:#DDD8D1;}
  .bench-edit-snap-pill-meta{font-family:var(--mono);font-size:11px;color:#C6C1BA;}

  .bench-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1080px;width:100%;margin:0 auto;align-items:start;}
  .bench-edit-col{display:flex;flex-direction:column;gap:14px;min-width:0;height:100%;}
  .bench-edit-prompt-card{display:flex;flex-direction:column;height:100%;}
  .bench-edit-textarea{flex:1;min-height:460px;}

  .bench-suggest{max-width:1080px;width:100%;margin:0 auto;background:#FAF9F7;border:1px solid #E6E2DC;border-radius:14px;padding:15px 17px;display:flex;flex-direction:column;gap:9px;}
  .bench-suggest-label{font-family:var(--mono);font-size:9px;letter-spacing:.09em;color:oklch(0.50 0.10 55);}
  .bench-suggest-text{font-size:13.5px;line-height:1.55;color:var(--dk-ink3);}
  .bench-suggest-actions{display:flex;gap:8px;}
  .bench-suggest-use-btn{border:1px solid #C6C1BA;background:var(--dk-surface);border-radius:8px;height:31px;padding:0 13px;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--dk-ink);}
  .bench-suggest-use-btn:hover{border-color:var(--dk-ink);}
  .bench-suggest-dismiss-btn{border:none;background:transparent;height:31px;padding:0 4px;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--dk-muted);}
  .bench-suggest-dismiss-btn:hover{color:var(--dk-ink3);}

  .bench-model-recommended-tag{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--dk-amber-fg);background:var(--dk-amber-bg);padding:2px 6px;border-radius:5px;margin-left:6px;}

  .bench-edit-save-btn{background:var(--dk-orange);color:#FFFFFF;}
  .bench-edit-delete-btn{border:none;background:transparent;cursor:pointer;font-family:var(--mono);font-size:10.5px;color:#c0392b;padding:0;margin-right:auto;}
  .bench-edit-delete-btn:hover{text-decoration:underline;}
  .bench-edit-prompt-card .bench-model-btn{margin-left:auto;}

  .bench-test-card{background:var(--dk-surface);border:1px solid var(--dk-hair);border-radius:16px;box-shadow:0 30px 70px rgba(10,8,6,0.42);display:flex;flex-direction:column;height:100%;min-height:460px;overflow:hidden;}
  .bench-test-head{padding:13px 18px;border-bottom:1px solid var(--dk-hair);display:flex;align-items:center;gap:10px;background:var(--dk-bg2);}
  .bench-test-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;color:var(--dk-muted);}
  .bench-test-note{font-family:var(--mono);font-size:10.5px;color:var(--dk-faint);}
  .bench-test-select-btn{margin-left:auto;border:1px solid var(--dk-border);background:var(--dk-surface);border-radius:8px;height:28px;padding:0 11px;cursor:default;font-family:var(--mono);font-size:10.5px;color:var(--dk-ink3);display:flex;align-items:center;gap:7px;}

  /* department control: single dropdown (button + checkbox panel), used in both the
     compose footer (styled as a bench-model-btn) and the edit snapshot row (dark
     translucent chip matching the pill it sits beside) */
  .bench-dept-dropdown{position:relative;flex:none;}
  /* the popover itself is ALWAYS a white card (README §2.1), even when its trigger
     lives on the dark cinema surface — only the trigger button matches its surface. */
  .bench-dept-dropdown-panel{display:none;position:fixed;min-width:190px;background:#FFFFFF;border:1px solid #E6E2DC;border-radius:12px;padding:8px;box-shadow:0 18px 44px rgba(17,17,17,.13);z-index:120;}
  .bench-dept-dropdown.open .bench-dept-dropdown-panel{display:block;}
  .bench-dept-dropdown-label{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#8A857E;padding:2px 6px 6px;}
  .bench-dept-dropdown-option{display:flex;align-items:center;gap:8px;padding:6px 6px;border-radius:6px;cursor:pointer;font-size:12.5px;color:#111111;}
  .bench-dept-dropdown-option:hover{background:#F3F1ED;}
  .bench-dept-dropdown-option input[type=checkbox]{accent-color:#DC4E13;}
  .bench-dept-dropdown-hint{font-family:var(--mono);font-size:9.5px;color:#B8410E;padding:6px 6px 0;opacity:0;transition:opacity .15s ease;}
  .bench-dept-dropdown-hint.show{opacity:1;}
  .bench-dept-dropdown-divider{height:1px;background:#E6E2DC;margin:6px 2px;}
  .bench-dept-dropdown-add{display:flex;align-items:center;gap:6px;padding:2px 2px 0;}
  .bench-dept-dropdown-add-input{flex:1;min-width:0;background:#FAF9F7;border:1px solid #E6E2DC;border-radius:6px;padding:6px 8px;font-family:var(--mono);font-size:11px;color:#111111;}
  .bench-dept-dropdown-add-input::placeholder{color:#A8A29B;}
  .bench-dept-dropdown-add-input:focus{outline:none;border-color:#DC4E13;box-shadow:0 0 0 3px rgba(220,78,19,0.10);}
  .bench-dept-dropdown-add-btn{flex:none;background:#F2F0EC;border:1px solid #E6E2DC;border-radius:6px;padding:6px 10px;font-family:var(--mono);font-size:10.5px;color:#111111;cursor:pointer;appearance:none;transition:border-color .14s ease;}
  .bench-dept-dropdown-add-btn:hover{border-color:#111111;}
  #benchEditDeptDropdown .bench-dept-dropdown-btn{display:flex;align-items:center;gap:8px;background:rgba(255,253,248,0.07);border:1px solid #2E2C2A;border-radius:11px;padding:8px 14px;font-family:var(--mono);font-size:11px;color:#C6C1BA;cursor:pointer;appearance:none;}
  #benchEditDeptDropdown .bench-dept-dropdown-btn:hover{border-color:#6B6560;}
  #benchEditDeptDropdown.open .bench-dept-dropdown-btn{border-color:#8A857E;}
  /* Compact variant for the bench-detail header (name/status on one side, ×
     close on the other) — same dropdown mechanism as the edit cinema's, just
     small enough to sit inline between them. The detail card is the light
     white surface, so this button takes the card's light palette. The popover
     panel above is always white regardless of which trigger opened it. */
  #benchDetailDeptDropdown{margin-top:2px;}
  #benchDetailDeptDropdown .bench-dept-dropdown-btn{display:flex;align-items:center;gap:6px;background:var(--dk-bg2);border:1px solid var(--dk-border);border-radius:999px;padding:5px 10px;font-family:var(--mono);font-size:10px;color:var(--dk-muted);cursor:pointer;appearance:none;white-space:nowrap;}
  #benchDetailDeptDropdown .bench-dept-dropdown-btn:hover{border-color:var(--dk-track);color:var(--dk-ink);}
  #benchDetailDeptDropdown.open .bench-dept-dropdown-btn{border-color:var(--dk-track);color:var(--dk-ink);}

  .bench-test-messages{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:13px;min-height:200px;}
  .bench-test-empty{margin:auto;text-align:center;font-family:var(--mono);font-size:10.5px;color:var(--dk-faint);padding:20px 10px;line-height:1.5;}

  .bench-test-task-row{display:flex;gap:10px;align-items:flex-start;}
  .bench-test-task-icon{width:22px;height:22px;border-radius:7px;background:var(--dk-amber-bg);color:var(--dk-amber-fg);display:grid;place-items:center;font-family:var(--mono);font-size:10px;flex:none;}
  .bench-test-task-text{font-size:13px;line-height:1.5;color:var(--dk-ink3);}
  .bench-test-thinking{font-family:var(--mono);font-size:10.5px;color:var(--dk-faint);padding-left:32px;}

  .bench-test-result{border:1px solid #E6E2DC;border-radius:12px;overflow:hidden;}
  .bench-test-result-stats{display:grid;grid-template-columns:1fr 1fr;background:#E6E2DC;gap:1px;}
  .bench-test-result-stat{padding:11px 13px;}
  .bench-test-result-stat.now{background:oklch(0.97 0.02 155);}
  .bench-test-result-stat.now .lbl{color:oklch(0.50 0.08 155);}
  .bench-test-result-stat.now .val{color:oklch(0.45 0.10 155);}
  .bench-test-result-stat.before{background:#F7EDE6;}
  .bench-test-result-stat.before .lbl{color:#8A857E;}
  .bench-test-result-stat.before .val{color:#6B6560;}
  .bench-test-result-stat .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.09em;}
  .bench-test-result-stat .val{font-size:19px;font-weight:600;letter-spacing:-0.02em;margin-top:3px;font-variant-numeric:tabular-nums;}
  .bench-test-result-body{background:var(--dk-surface);padding:12px 13px;display:flex;flex-direction:column;gap:9px;border-top:1px solid #E6E2DC;}
  .bench-test-result-row{display:flex;align-items:center;gap:10px;}
  .bench-test-result-score{font-family:var(--mono);font-size:11px;color:oklch(0.45 0.09 155);width:26px;flex:none;}
  .bench-test-result-desc{font-size:12.5px;color:var(--dk-ink);flex:1;min-width:0;}
  .bench-test-result-tag{font-family:var(--mono);font-size:10px;color:var(--dk-faint);flex:none;}
  .bench-test-result-footnote{border-top:1px solid var(--dk-hair);padding-top:11px;display:flex;gap:10px;}
  .bench-test-result-footnote-bar{width:2px;border-radius:2px;background:#1F8A4C;flex:none;}
  .bench-test-result-footnote-text{font-size:12.5px;color:var(--dk-ink3);line-height:1.5;}

  .bench-test-improve{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--dk-hair);padding-top:14px;}
  .bench-test-improve-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;color:var(--dk-muted);}
  .bench-test-improve-row{display:flex;gap:10px;align-items:flex-start;}
  .bench-test-improve-date{font-family:var(--mono);font-size:9px;letter-spacing:.06em;padding:3px 6px;border-radius:5px;background:var(--dk-green-bg);color:var(--dk-green-fg);flex:none;}
  .bench-test-improve-text{font-size:12.5px;line-height:1.5;color:var(--dk-ink3);flex:1;min-width:0;}
  .bench-test-improve-undo{border:1px solid var(--dk-border);background:var(--dk-surface);border-radius:7px;height:24px;padding:0 9px;cursor:pointer;font-family:var(--mono);font-size:10px;color:var(--dk-ink3);flex:none;}
  .bench-test-improve-undo:hover{border-color:var(--dk-ink);}

  .bench-test-input-row{margin-top:auto;border-top:1px solid var(--dk-hair);padding:11px 13px;display:flex;gap:9px;align-items:center;background:var(--dk-bg2);flex:none;}
  .bench-test-input{flex:1;min-width:0;border:1px solid var(--dk-border);background:var(--dk-surface);border-radius:9px;padding:8px 12px;font-family:var(--sans);font-size:12.5px;color:var(--dk-ink);outline:none;}
  .bench-test-input:focus{border-color:var(--dk-ink);}
  .bench-test-send-btn{border:none;background:var(--dk-orange);color:#FFFFFF;border-radius:9px;padding:0 16px;cursor:pointer;font-family:var(--mono);font-size:11.5px;flex:none;transition:background .14s ease;}
  .bench-test-send-btn:hover{background:#C0430F;}
  .bench-test-send-btn:disabled{opacity:.5;cursor:default;}

  @media (max-width:820px){
    .bench-edit-grid{grid-template-columns:1fr;}
    .bench-edit-textarea{min-height:220px;}
  }

  .matrix-chat-panel{display:none;position:fixed;top:14px;right:14px;bottom:14px;width:392px;background:var(--dk-surface);border:1px solid var(--dk-border);border-radius:16px;box-shadow:0 24px 60px rgba(20,18,15,0.18);padding:24px;flex-direction:column;gap:14px;overflow:hidden;z-index:40;animation:fadein .18s ease-out;}
  .matrix-chat-panel.open{display:flex;}
  .matrix-chat-head{display:flex;align-items:flex-start;gap:12px;flex:none;}
  .matrix-chat-messages{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:4px 2px;}
  .matrix-chat-empty{margin:auto;text-align:center;font-family:var(--mono);font-size:12.5px;color:var(--dk-faint);padding:20px 10px;line-height:1.5;}
  .matrix-chat-msg{display:flex;flex-direction:column;gap:4px;max-width:82%;}
  .matrix-chat-msg.human{align-self:flex-end;align-items:flex-end;}
  .matrix-chat-msg.bot{align-self:flex-start;align-items:flex-start;}
  .matrix-chat-bubble{font-size:13px;line-height:1.5;padding:9px 13px;border-radius:14px;white-space:pre-wrap;word-break:break-word;}
  .matrix-chat-msg.human .matrix-chat-bubble{background:var(--accent);color:#FBF3EA;border-bottom-right-radius:4px;}
  .matrix-chat-msg.bot .matrix-chat-bubble{background:var(--dk-bg2);color:var(--dk-ink);border:1px solid var(--dk-border);border-bottom-left-radius:4px;}
  .matrix-chat-msg.pending .matrix-chat-bubble{opacity:.6;}
  .matrix-chat-meta{font-family:var(--mono);font-size:10px;color:var(--dk-faint);padding:0 3px;}
  .matrix-chat-thinking{flex:none;font-family:var(--mono);font-size:10.5px;color:var(--dk-faint);padding:0 3px;}
  .matrix-chat-input-row{flex:none;border-top:1px solid var(--dk-hair);padding-top:12px;display:flex;gap:9px;align-items:center;}
  .matrix-chat-input{flex:1;min-width:0;border:1px solid var(--dk-border);background:var(--dk-surface);border-radius:9px;padding:9px 12px;font-family:var(--sans);font-size:13px;color:var(--dk-ink);outline:none;}
  .matrix-chat-input:focus{border-color:var(--dk-ink);}
  .matrix-chat-send-btn{border:none;background:var(--dk-ink);color:#F7F5F2;border-radius:9px;padding:0 16px;height:38px;cursor:pointer;font-family:var(--mono);font-size:11.5px;flex:none;}
  .matrix-chat-send-btn:disabled{opacity:.5;cursor:default;}
  @media (max-width:820px){
    .matrix-chat-panel{width:calc(100vw - 28px);}
  }

  /* The one dark surface (README §5): "focus mode" for creating/editing a single agent.
     Everything else in the shell is a white card on the light desk — this scope redefines
     the shared --dk-* tokens (also used, at their light values, by the bench board and the
     pipeline kanban) to the new dark ramp, for descendants of .bench-cinema only. */
  .bench-cinema{
    --dk-surface:#161514;--dk-bg2:#131211;--dk-border:#262422;--dk-hair:#2E2C2A;
    --dk-ink:#F7F5F2;--dk-ink2:#C6C1BA;--dk-ink3:#C6C1BA;--dk-muted:#8A857E;--dk-faint:#6B6560;
    --dk-track:#2E2C2A;--dk-pill:rgba(220,78,19,0.16);--dk-avatar:#262422;--dk-orange:#DC4E13;
    display:none;position:fixed;inset:0;z-index:60;place-items:center;padding:40px 24px;background:#0C0C0C;
  }
  .bench-cinema.open{display:grid;}
  .bench-cinema-scrim{position:absolute;inset:0;background:rgba(12,12,12,0.86);backdrop-filter:blur(10px) saturate(0.85);-webkit-backdrop-filter:blur(10px) saturate(0.85);animation:scrimin .22s ease-out;}
  .bench-cinema-inner{position:relative;width:100%;max-width:720px;display:flex;flex-direction:column;gap:18px;animation:riseup .28s cubic-bezier(0.2,0.8,0.2,1);}
  .bench-cinema-inner.wide{max-width:1080px;}
  .bench-compose-head{text-align:center;display:flex;flex-direction:column;gap:7px;}
  .bench-compose-head h2{margin:0;font-size:24px;font-weight:600;letter-spacing:-0.03em;color:#F7F2E7;}
  .bench-compose-head p{margin:0;font-family:var(--mono);font-size:11.5px;color:#C6C1BA;}
  .bench-compose-card{background:var(--dk-surface);border:1px solid var(--dk-hair);border-radius:16px;box-shadow:0 30px 70px rgba(10,8,6,0.42);overflow:hidden;}
  .bench-compose-textarea{width:100%;border:none;outline:none;resize:none;background:transparent;font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--dk-ink);padding:22px 24px 6px;min-height:132px;}
  .bench-scopes-row{padding:0 24px 14px;display:flex;align-items:center;gap:10px;min-height:26px;}
  .bench-scopes-tag{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--dk-faint);}
  .bench-scope-chip{font-family:var(--mono);font-size:10px;padding:3px 7px;border-radius:5px;background:var(--dk-pill);color:var(--dk-ink2);}
  .bench-compose-foot{border-top:1px solid var(--dk-hair);padding:11px 14px 11px 20px;display:flex;align-items:center;gap:10px;background:var(--dk-bg2);}
  .bench-name-input{border:none;outline:none;background:transparent;font-family:var(--mono);font-size:12px;color:var(--dk-ink);width:auto;flex:1 1 110px;min-width:106px;}
  .bench-compose-sep{width:1px;height:18px;background:#E6E2DC;flex:none;}
  .bench-model-btn{border:1px solid var(--dk-border);background:var(--dk-surface);border-radius:8px;height:30px;padding:0 11px;cursor:pointer;font-family:var(--mono);font-size:10.5px;color:var(--dk-ink3);display:flex;align-items:center;gap:7px;flex:none;white-space:nowrap;}
  .bench-model-btn:hover{border-color:var(--dk-ink);}
  /* Model/intelligence picker hidden for now (2026-08-09, Luis: no selection needed yet
     on the agent bench cinemas). Markup + app.js wiring kept intact — remove these two
     rules to bring it back. Same pattern as the composer's #ccModelSelect (e1c282d). */
  #benchModelBtn, #benchEditModelBtn{display:none;}
  .bench-model-dot{width:5px;height:5px;border-radius:50%;background:var(--dk-amber);}
  .bench-hint{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--dk-faint);min-width:0;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .bench-create-btn{border:none;border-radius:9px;height:32px;padding:0 15px;cursor:pointer;font-family:var(--mono);font-size:11.5px;flex:none;white-space:nowrap;}
  .bench-cinema-examples{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
  .bench-cinema-chip{border:1px solid var(--dk-hair);background:rgba(255,253,248,0.06);border-radius:20px;height:31px;padding:0 13px;cursor:pointer;font-size:12px;color:var(--dk-ink2);}
  .bench-cinema-chip:hover{border-color:var(--dk-pill);color:var(--dk-surface);}

  .bench-build-card{background:var(--dk-surface);border:1px solid var(--dk-hair);border-radius:16px;box-shadow:0 30px 70px rgba(10,8,6,0.42);overflow:hidden;}
  .bench-build-progress-track{height:3px;background:var(--dk-hair);overflow:hidden;}
  .bench-build-progress-bar{height:100%;background:var(--dk-orange);transition:width .5s cubic-bezier(0.4,0,0.2,1);}
  .bench-build-body{padding:24px 26px 22px;display:flex;flex-direction:column;gap:20px;}
  .bench-build-head{display:flex;align-items:flex-start;gap:13px;}
  .bench-build-mia{width:34px;height:34px;border-radius:10px;background:var(--dk-orange);color:#FFFFFF;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:700;flex:none;}
  .bench-build-title{font-size:16px;font-weight:600;letter-spacing:-0.02em;color:var(--dk-ink);}
  .bench-build-sub{font-family:var(--mono);font-size:11px;color:var(--dk-muted);margin-top:4px;}
  .bench-build-counter{font-family:var(--mono);font-size:10.5px;color:var(--dk-faint);flex:none;padding-top:3px;}
  .bench-steps{display:flex;flex-direction:column;gap:2px;}
  .bench-step-row{display:flex;gap:12px;padding:9px 2px;transition:opacity .3s ease;}
  .bench-step-icon-wrap{width:20px;height:20px;flex:none;display:grid;place-items:center;margin-top:1px;}
  .bench-step-icon-done{width:18px;height:18px;border-radius:50%;background:var(--dk-green);color:var(--dk-surface);display:grid;place-items:center;font-size:9.5px;}
  .bench-step-icon-working{width:16px;height:16px;border-radius:50%;border:2px solid var(--dk-hair);border-top-color:var(--dk-orange);display:block;animation:spin .7s linear infinite;}
  .bench-step-icon-pending{width:7px;height:7px;border-radius:50%;background:var(--dk-track);display:block;animation:breathe 2s ease-in-out infinite;}
  .bench-step-label{font-size:13.5px;letter-spacing:-0.01em;}
  .bench-step-detail{font-family:var(--mono);font-size:10.5px;color:var(--dk-muted);line-height:1.5;animation:fadein .22s ease-out;}
  .bench-step-progress{width:44px;height:3px;border-radius:2px;background:var(--dk-hair);overflow:hidden;flex:none;margin-top:7px;}
  .bench-step-progress span{display:block;width:30%;height:100%;border-radius:2px;background:var(--dk-orange);animation:sweep 1s linear infinite;}

  .bench-ready-card{background:var(--dk-surface);border:1px solid var(--dk-hair);border-radius:16px;box-shadow:0 30px 70px rgba(10,8,6,0.42);padding:26px;display:flex;flex-direction:column;gap:20px;animation:fadein .24s ease-out;}
  .bench-ready-head{display:flex;align-items:flex-start;gap:13px;}
  .bench-ready-check{width:34px;height:34px;border-radius:10px;background:var(--dk-green);color:var(--dk-surface);display:grid;place-items:center;font-size:15px;flex:none;animation:benchSettle .8s ease-out;}
  .bench-ready-title{font-size:19px;font-weight:600;letter-spacing:-0.025em;color:var(--dk-ink);}
  .bench-ready-note{font-family:var(--mono);font-size:11px;color:var(--dk-muted);margin-top:5px;}
  .bench-ready-rows{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#E6E2DC;border:1px solid #E6E2DC;border-radius:11px;overflow:hidden;}
  .bench-ready-row{background:var(--dk-bg2);padding:12px 14px;}
  .bench-ready-row-label{font-family:var(--mono);font-size:9px;letter-spacing:.09em;color:var(--dk-muted);}
  .bench-ready-row-value{font-size:13.5px;font-weight:500;margin-top:4px;line-height:1.4;color:var(--dk-ink);}
  .bench-ready-finding{border-left:2px solid var(--dk-green);padding:2px 0 2px 12px;}
  .bench-ready-finding-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--dk-green-fg);}
  .bench-ready-finding-text{font-size:13px;line-height:1.5;color:var(--dk-ink3);margin-top:4px;}
  .bench-ready-actions{display:flex;gap:8px;}
  .bench-ready-actions .btn.primary{flex:1;height:40px;border-radius:10px;}
  .bench-ready-actions .btn{height:40px;border-radius:10px;}

  @media (max-width:900px){
    .bench-columns{grid-template-columns:1fr;}
    .bench-col{border-right:none !important;border-bottom:1px solid var(--dk-hair);padding-bottom:20px;}
  }

  /* agents */
  .agent-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;}
  .agent-card{appearance:none;text-align:left;background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:20px 22px;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease;position:relative;}
  .agent-card:hover{border-color:var(--accent-soft);transform:translateY(-1px);}
  .agent-card .ac-name{display:block;font-family:var(--serif);font-size:17px;font-weight:700;color:var(--ink);margin-bottom:6px;}
  .agent-card .ac-desc{display:block;font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin-bottom:12px;line-height:1.5;}
  .agent-card .ac-status{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
  .agent-card .ac-status .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}
  .preview-chip{position:absolute;top:18px;right:18px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-soft);background:var(--accent-tint);border-radius:999px;padding:3px 9px;}

  .agent-subsection{margin-top:36px;}
  .subagents-title{font-family:var(--serif);font-size:15px;font-weight:700;letter-spacing:-0.01em;color:var(--ink);margin:0 0 14px;}
  .subagent-card{cursor:default;}
  .subagent-card:hover{border-color:var(--rule);transform:none;}
  .soon-chip{position:absolute;top:18px;right:18px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule-strong);background:var(--paper-2);border-radius:999px;padding:3px 9px;}

  .go-back{appearance:none;display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:none;border:none;cursor:pointer;padding:0 0 18px;}
  .go-back:hover{text-decoration:underline;}

  .brief-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--rule);cursor:pointer;transition:background .12s ease;}
  .brief-list-row:hover{background:var(--paper-2);}
  .brief-list-row:last-child{border-bottom:none;}
  .brief-meta{display:flex;flex-direction:column;gap:2px;}
  .brief-list-row .brief-name{font-size:14px;}

  .brief-content{white-space:pre-wrap;font-size:14.5px;line-height:1.7;color:var(--ink-soft);}
  .folder-title{font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:-0.02em;color:var(--ink);margin:0 0 4px;}

  /* feeds: fixed-width date gutter (right-aligned) + shared left margin for event text,
     grid-based so wrapped lines re-indent to the same margin instead of the raw start
     of a flex row. Shared by every agent activity feed (Underwriting, Email Triage,
     Pattern Detection, Deal Sourcing, Capital, Portfolio). */
  .feed{display:flex;flex-direction:column;gap:10px;font-family:var(--mono);font-size:12.5px;max-width:680px;}
  .feed-row{display:grid;grid-template-columns:78px 1fr;column-gap:14px;color:var(--ink-soft);animation:feedIn .35s ease;}
  .feed-t{color:var(--faint);text-align:right;white-space:nowrap;}
  .feed-row.done .feed-msg{color:var(--ink);}
  .feed-row.standing{color:var(--faint);}
  @keyframes feedIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

  /* Gmail-like inbox (Email Triage main column) — stacked rows so it holds up in a half-width panel */
  .inbox-row{display:flex;flex-direction:column;gap:3px;padding:12px 4px;border-top:1px solid var(--rule);min-width:0;}
  .inbox-row:first-child{border-top:none;}
  .inbox-row-top{display:flex;align-items:center;gap:8px;min-width:0;}
  .inbox-from{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--ink);flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .inbox-date{font-family:var(--mono);font-size:10px;color:var(--faint);flex:0 0 auto;white-space:nowrap;}
  .inbox-subject-line{font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
  .inbox-subject-line strong{color:var(--ink);font-weight:700;}
  .inbox-dir{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;flex:0 0 auto;padding:2px 8px;border-radius:999px;}
  .inbox-group-title{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--ink);margin:0 0 4px;}
  .inbox-group + .inbox-group{margin-top:20px;}
  .inbox-group-list{max-height:32vh;overflow-y:auto;}
  .inbox-row.new{background:var(--accent-tint);border-radius:8px;padding-left:8px;padding-right:8px;}
  .inbox-pulse{display:none;width:7px;height:7px;border-radius:50%;background:var(--accent);flex:0 0 auto;animation:inboxPulse 1s ease-in-out infinite;}
  .inbox-row.new .inbox-pulse{display:inline-block;}
  @keyframes inboxPulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.25;transform:scale(.8);}}
  .inbox-dir.in{background:var(--accent-tint);color:var(--accent);}
  .inbox-dir.out{background:var(--paper-2);color:var(--muted);}

  .spinner-line{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;color:var(--ink-soft);padding:20px 0;}
  .spinner-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.1s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

  /* chat: confined to the panel, never the page — composer stays pinned */
  .chat-thread{flex:1;min-height:0;display:flex;flex-direction:column;gap:3px;overflow-y:auto;padding:20px 22px 8px;}
  /* Flat row layout (not bubbles), ported 1:1 from the mock's rowStyle/
     avatarStyle/tagStyle literals — mark column on the left (same 9px-radius
     tile for both human and agent, differing only by fill color, per the
     mock's avatar() helper), name/tag/time head + body text to the right.
     Mock groups only consecutive *human* turns (grouped = same role && role
     !== "os"); agent replies always keep their head, since the tag is the
     audit trail for which capability answered. */
  .chat-msg-row{display:flex;gap:11px;padding:9px 10px 7px;border-radius:10px;transition:background .1s ease;}
  .chat-msg-row:hover{background:#FAF7F0;}
  .chat-msg-row.grouped{padding:3px 10px 7px;}
  .chat-msg-row.pending{opacity:.6;}
  .chat-msg-mark{flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:#EFECE7;color:#5C564D;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;font-size:10px;}
  .chat-msg-mark.agent{background:var(--accent);color:#FFFFFF;}
  .chat-msg-mark-time{flex:0 0 auto;width:30px;text-align:center;font-family:var(--mono);font-size:9px;color:#C6C1BA;padding-top:4px;}
  .chat-msg-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;min-width:0;}
  .chat-msg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .chat-msg-name{font-family:var(--sans);font-weight:600;font-size:13.5px;letter-spacing:-.01em;color:var(--ink);}
  .chat-msg-tag{font-family:var(--mono);font-size:9px;letter-spacing:.07em;padding:2.5px 7px;border-radius:5px;background:oklch(0.94 0.03 250);color:oklch(0.42 0.08 250);}
  .chat-msg-time{font-family:var(--mono);font-size:10.5px;color:#A8A29B;}
  .chat-msg-text{font-size:14px;line-height:1.55;color:#241F1A;white-space:pre-wrap;max-width:74ch;}
  .chat-msg-text a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;word-break:break-all;}
  .chat-msg-text a:hover{opacity:.85;}
  .chat-msg-thinking{color:var(--muted);font-style:italic;}
  /* local-only confirmation line for an @-mention add/invite — never a real
     Matrix message, so it's centered and quieter than either row type. */
  .chat-msg-system{align-self:center;max-width:90%;margin:4px auto;padding:2px 10px;font-family:var(--mono);font-size:10.5px;color:var(--faint);text-align:center;}
  .badge{font-family:var(--mono);font-size:10.5px;color:var(--accent);display:inline-flex;align-items:center;gap:6px;align-self:flex-start;border:1px solid var(--accent-soft);background:var(--accent-tint);border-radius:999px;padding:4px 10px;}
  .badge .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}
  .badge.live{color:#1F8A4C;border-color:rgba(31,138,76,.3);background:rgba(31,138,76,.08);}
  .badge.live .dot{background:#1F8A4C;}
  .badge.chip-pos{position:absolute;top:18px;right:18px;}

  /* deals status chip */
  .status-chip{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;display:inline-flex;align-items:center;white-space:nowrap;}

  /* insights / pattern detection */
  .insight-group{margin-bottom:24px;}
  .insight-group:last-child{margin-bottom:0;}
  .insight-group-title{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
  .insight-row{display:flex;gap:12px;padding:14px 16px;border-radius:12px;margin-bottom:8px;background:var(--card);border:1px solid var(--rule);}
  .insight-row:last-child{margin-bottom:0;}
  .insight-row .ir-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;margin-top:5px;}
  .insight-row.info .ir-dot{background:#4A90D9;}
  .insight-row.warn .ir-dot{background:#D9A441;}
  .insight-row.alert .ir-dot{background:#C0392B;}
  .insight-row .ir-body{flex:1;min-width:0;}
  .insight-row .ir-title{font-family:var(--serif);font-weight:700;font-size:14px;color:var(--ink);margin-bottom:3px;}
  .insight-row .ir-detail{font-size:13px;color:var(--ink-soft);line-height:1.5;}
  .insight-row .ir-source{font-family:var(--mono);font-size:10px;color:var(--faint);margin-top:6px;}

  /* Insights: 3-column Trello-style board (Alerts / Warnings / Info) */
  .insight-board{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;align-items:stretch;}
  @media (max-width:1000px){.insight-board{grid-template-columns:1fr;}.insight-col{height:auto;max-height:none;}}
  .insight-col{background:var(--paper-2);border:1px solid var(--rule);border-radius:14px;padding:14px;box-sizing:border-box;min-width:0;height:calc(100vh - var(--bar-h) - 110px);overflow-y:auto;}
  .insight-col-head{display:flex;align-items:center;gap:8px;padding:4px 6px 14px;}
  .insight-col-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;}
  .insight-col-title{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--ink);}
  .insight-col-count{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-left:auto;background:var(--card);border:1px solid var(--rule-strong);border-radius:999px;padding:2px 9px;}
  .insight-col .insight-row{margin-bottom:10px;}
  .insight-col .insight-row:last-child{margin-bottom:0;}
  .insight-col-empty{font-family:var(--mono);font-size:12px;color:var(--faint);padding:6px;}

  /* agent panels: two-column (feed + substance) + config, feed column is user-resizable */
  :root{--agent-feed-w:300px;}
  .agent-layout{display:flex;align-items:flex-start;gap:0;}
  .agent-feed-col{flex:0 0 var(--agent-feed-w);width:var(--agent-feed-w);min-width:0;box-sizing:border-box;}
  .agent-feed-col .panel-card{position:sticky;top:0;}
  .agent-feed-col .feed{max-width:none;}
  .agent-resize-handle{flex:0 0 18px;width:18px;align-self:stretch;cursor:col-resize;position:relative;touch-action:none;}
  .agent-resize-handle::after{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--rule);border-radius:2px;transition:background .14s ease;}
  .agent-resize-handle:hover::after,.agent-resize-handle.dragging::after{background:var(--accent-soft);}
  .agent-main-col{flex:1 1 auto;min-width:0;}
  @media (max-width:1100px){
    .agent-layout{flex-direction:column;}
    .agent-feed-col{width:100% !important;flex-basis:auto !important;margin-bottom:20px;}
    .agent-resize-handle{display:none;}
  }

  /* email history highlight (OM Parser -> Directory jump) */
  .email-row-highlight{background:var(--accent-tint) !important;box-shadow:0 0 0 1px var(--accent-soft) inset;border-radius:10px;}

  .chat-presets{display:flex;flex-wrap:nowrap;gap:7px;padding:8px 22px 10px;overflow-x:auto;scrollbar-width:none;}
  .chat-presets::-webkit-scrollbar{display:none;}
  .chat-presets:empty{padding:0;}
  .cp{appearance:none;flex:0 0 auto;font-family:var(--mono);font-size:11px;color:#57534E;background:#FBF8F1;border:1px solid #E6E2DC;border-radius:20px;height:30px;padding:0 13px;cursor:pointer;transition:border-color .12s ease,background .12s ease;white-space:nowrap;}
  .cp:hover{border-color:#111111;background:#F4EFE4;}
  /* Claude.ai-style composer: rounded card, input row on top, "+" at bottom-left,
     model pill + mic + waveform + send clustered bottom-right */
  /* @-mention popover: fixed-positioned off the composer's own rect (same
     escape-the-clipped-ancestor trick as .bench-dept-dropdown-panel), so it
     floats above the composer rather than being laid out in flow. */
  .chat-mention-popover{display:none;position:fixed;width:280px;max-height:280px;overflow-y:auto;background:#fff;border:1px solid var(--rule-strong);border-radius:12px;padding:6px;box-shadow:0 12px 32px rgba(17,17,17,.14);z-index:130;}
  .chat-mention-popover.open{display:block;}
  .cmp-section-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--faint);padding:6px 8px 4px;}
  .cmp-empty{font-family:var(--mono);font-size:10.5px;color:var(--faint);padding:6px 8px;}
  .cmp-option{display:flex;align-items:center;gap:8px;width:100%;text-align:left;appearance:none;background:none;border:none;border-radius:8px;padding:7px 8px;cursor:pointer;font-family:var(--sans);font-size:13px;color:var(--ink);}
  .cmp-option:hover,.cmp-option.highlighted{background:var(--accent-tint);color:var(--accent);}
  /* Base tile every .dm-avatar renders as (mention popover options, DM
     compose member rows): a small circular initials badge, distinct from
     .chat-row-mark.tile's rounded-square sidebar mark. */
  .dm-avatar{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#EDEAE4;color:#6B6560;font-family:var(--mono);font-size:9px;font-weight:500;display:flex;align-items:center;justify-content:center;}
  .cmp-option .dm-avatar{flex:0 0 auto;}
  .cmp-option-sub{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--faint);flex:0 0 auto;}
  .cmp-option.highlighted .cmp-option-sub{color:var(--accent);}
  /* Member picker in the DM compose drawer: reuses .cmp-section-label /
     .cmp-empty from the mention popover for the PEOPLE/AGENTS headers. */
  .dm-compose-list{max-height:340px;overflow:auto;border:1px solid var(--rule-strong);border-radius:10px;padding:4px;}
  .dm-compose-row{appearance:none;display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:8px;cursor:pointer;font-family:var(--sans);font-size:13px;color:var(--ink);}
  .dm-compose-row:hover{background:var(--accent-tint);}
  .dm-compose-row.checked{background:var(--accent-tint);color:var(--accent);}
  .dm-compose-row-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .dm-compose-row-check{flex:0 0 auto;width:16px;text-align:center;color:var(--accent);font-size:12px;}
  .cmp-confirm{padding:8px;}
  .cmp-confirm-text{font-family:var(--sans);font-size:12.5px;color:var(--ink);line-height:1.4;padding:0 2px 10px;}
  .cmp-confirm-actions{display:flex;gap:8px;}
  .cmp-confirm-btn{flex:1;appearance:none;border-radius:8px;padding:7px 0;font-family:var(--mono);font-size:11px;cursor:pointer;}
  .cmp-confirm-add{background:var(--accent);border:1px solid var(--accent);color:#fff;}
  .cmp-confirm-add:hover{opacity:.9;}
  .cmp-confirm-cancel{background:none;border:1px solid var(--rule-strong);color:var(--ink-soft);}
  .cmp-confirm-cancel:hover{border-color:var(--rule-strong);background:var(--paper-2);}
  .chat-composer-wrap{flex:0 0 auto;}
  /* Literal port of the mock's composerStyle: plain border that darkens +
     gains a soft ring on focus, rather than a permanent shadow. */
  .chat-composer{border:1px solid #E6E2DC;border-radius:14px;background:#FFFFFF;transition:border-color .12s ease,box-shadow .12s ease;}
  .chat-composer:focus-within{border-color:#111111;box-shadow:0 0 0 3px rgba(20,18,15,.06);}
  .cc-input-row{display:flex;align-items:center;}
  .cc-input{flex:1;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--ink);padding:14px 16px 0;border:none;outline:none;background:transparent;width:100%;min-width:0;}
  .cc-input::placeholder{color:#A8A29B;opacity:1;}
  .cc-bottom-row{display:flex;align-items:center;gap:8px;padding:6px 10px 10px 12px;}
  .cc-hint{font-family:var(--mono);font-size:10.5px;color:#A8A29B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .cc-plus-btn{appearance:none;flex:0 0 auto;width:28px;height:28px;border-radius:8px;border:1px solid #E6E2DC;background:#FFFFFF;color:#6B6560;font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .12s ease,color .12s ease;}
  .cc-plus-btn:hover{border-color:#111111;color:#111111;}
  .cc-right-cluster{margin-left:auto;display:flex;align-items:center;gap:7px;flex:0 0 auto;}
  .cc-icon-btn{appearance:none;flex:0 0 auto;width:28px;height:28px;border-radius:8px;border:1px solid #E6E2DC;background:#FFFFFF;color:#6B6560;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .12s ease,color .12s ease,background .12s ease;}
  .cc-icon-btn:hover{border-color:#111111;color:#111111;}
  .cc-icon-btn.recording{color:#c0392b;border-color:rgba(192,57,43,.4);background:rgba(192,57,43,.06);}
  /* Send is neutral/muted until there's a draft to send, then flips to the
     mock's warm orange — a real disabled/enabled cue, not decoration. */
  .cc-send{border:none;background:#E6E2DC;color:#A8A29B;border-radius:8px;width:30px;height:30px;font-size:14px;cursor:pointer;flex:0 0 auto;display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease;}
  .cc-send.has-draft{background:oklch(0.60 0.16 42);color:#FFFFFF;}
  .cc-send:disabled{cursor:default;}
  .cc-recording-pill{display:none;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;color:#c0392b;background:rgba(192,57,43,.06);border:1px solid rgba(192,57,43,.25);border-radius:999px;padding:6px 12px;margin:0 0 10px;width:fit-content;}
  .cc-recording-pill.visible{display:flex;}
  .cc-recording-dot{width:7px;height:7px;border-radius:50%;background:#c0392b;animation:recPulse 1s ease-in-out infinite;}
  @keyframes recPulse{0%,100%{opacity:1;}50%{opacity:.25;}}

  /* chat: Recents sidebar + interactive-mock model selector
     Sidebar reads as a distinct card (per #21), styled to match the
     mock's palette without introducing markup the HTML/JS don't have —
     applies directly to the existing elements (#chatNewBtn, #chatSearch,
     .chat-recents-head/.chat-recent-row) rather than invented wrappers. */
  .chat-layout{display:grid;grid-template-columns:252px minmax(0,1fr);gap:14px;flex:1;min-height:0;height:100%;width:100%;}
  .chat-sidebar{width:auto;display:flex;flex-direction:column;min-height:0;background:#F2F0EC;border:1px solid #E6E2DC;border-radius:14px;overflow:hidden;}
  .chat-new-btn-wrap{padding:12px 12px 10px;flex:0 0 auto;position:relative;}
  .chat-new-btn{appearance:none;width:100%;height:38px;border-radius:10px;border:none;background:var(--accent);color:#FFFFFF;font-family:var(--mono);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:background .12s ease;}
  .chat-new-btn:hover{background:#C0430F;}
  .chat-new-btn-plus{font-size:14px;line-height:1;}
  /* Popover menu anchored under "+ New chat": choose between starting a DM
     or the existing agent-creation cinema. Closed by default; JS toggles
     .open on click and closes on outside click. */
  .chat-new-menu{display:none;position:absolute;left:12px;right:12px;top:100%;margin-top:6px;background:var(--card);border:1px solid var(--rule-strong);border-radius:12px;box-shadow:0 10px 28px rgba(17,17,17,.16);padding:6px;z-index:40;}
  .chat-new-menu.open{display:block;}
  .chat-new-menu-item{appearance:none;width:100%;border:none;background:none;cursor:pointer;display:flex;align-items:center;gap:10px;text-align:left;padding:9px 8px;border-radius:9px;}
  .chat-new-menu-item:hover{background:var(--accent-tint);}
  .chat-new-menu-icon{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:#EDEAE4;color:#6B6560;display:flex;align-items:center;justify-content:center;font-size:13px;}
  .chat-new-menu-text{display:flex;flex-direction:column;gap:1px;min-width:0;}
  .chat-new-menu-label{font-family:var(--sans);font-size:13px;color:var(--ink);}
  .chat-new-menu-sub{font-family:var(--mono);font-size:9.5px;color:var(--faint);}
  .chat-search-wrap{padding:0 12px 10px;flex:0 0 auto;}
  .chat-search-pill{display:flex;align-items:center;gap:7px;background:#FFFFFF;border:1px solid #E6E2DC;border-radius:9px;height:32px;padding:0 10px;}
  .chat-search-icon{color:#A8A29B;font-size:12px;flex:0 0 auto;}
  .chat-search{appearance:none;border:none;outline:none;background:transparent;font-family:var(--mono);font-size:11px;color:var(--ink);width:100%;min-width:0;}
  .chat-search::placeholder{color:#A8A29B;}
  .chat-sidebar-scroll{flex:1;min-height:0;overflow:auto;padding:0 8px 12px;display:flex;flex-direction:column;gap:14px;}
  .chat-recents-group{display:flex;flex-direction:column;gap:1px;position:relative;}
  .chat-recents-head{display:flex;align-items:center;gap:8px;padding:4px 8px 6px;}
  .chat-recents-head.filtered-empty{display:none;}
  .chat-recents-title{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:#8A857E;}
  .chat-recents-count{font-family:var(--mono);font-size:9.5px;color:#B4AFA8;margin-left:auto;}
  /* "+" quick-add in the Direct messages header (see #chatDmAddPopover
     below) — subtle, matches .chat-recents-title's muted mono treatment
     until hovered, same accent-tint hover .cmp-option already uses. */
  .chat-dm-add-btn{appearance:none;border:none;background:none;padding:0;width:16px;height:16px;border-radius:5px;color:#8A857E;font-family:var(--mono);font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease;}
  .chat-dm-add-btn:hover,.chat-dm-add-btn:focus-visible{background:var(--accent-tint);color:var(--accent);outline:none;}
  .chat-dm-add-popover{display:none;position:absolute;top:26px;right:8px;width:230px;max-height:260px;overflow-y:auto;background:#fff;border:1px solid var(--rule-strong);border-radius:12px;padding:6px;box-shadow:0 12px 32px rgba(17,17,17,.14);z-index:140;}
  .chat-dm-add-popover.open{display:block;}
  .chat-dm-add-input{width:100%;box-sizing:border-box;border:1px solid var(--rule-strong);border-radius:8px;padding:6px 8px;margin-bottom:6px;font-family:var(--sans);font-size:12.5px;color:var(--ink);background:var(--paper-2);}
  .chat-dm-add-input:focus{outline:none;border-color:var(--accent);}
  .chat-recents{display:flex;flex-direction:column;gap:1px;}
  .chat-recent-row{appearance:none;display:flex;align-items:center;gap:9px;width:100%;border:none;cursor:pointer;text-align:left;background:transparent;border-radius:9px;padding:7px 9px;font-family:var(--mono);font-size:12px;color:#57534E;transition:background .1s ease;}
  .chat-recent-row.filtered-out{display:none;}
  .chat-recent-row:hover{background:#EDEAE4;}
  .chat-recent-row.active{background:#FBEDE6;color:#111111;font-weight:500;}
  .chat-recent-row.subdued{color:var(--faint);}
  .chat-recent-row.subdued:hover{color:#57534E;}
  .chat-recent-row .row-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;}
  .chat-sidebar-empty{font-family:var(--mono);font-size:10.5px;color:var(--faint);padding:7px 9px;}
  /* Mark tile per row: "#" glyph for channels, a flat initials tile for
     everything else — mirrors mk()'s markStyle in the shell-redesign
     mock. Deliberately its own class (not .dm-avatar, which stays
     circular for msg heads / mention popover elsewhere). */
  .chat-row-mark{flex:0 0 auto;}
  /* JetBrains Mono, not the app's usual Space Mono — see .ch-mark.channel
     for why (Space Mono's "#" is a solid blob at this size). */
  .chat-row-mark.channel{font-family:'JetBrains Mono',monospace;font-size:12px;color:#A8A29B;width:14px;text-align:center;}
  .chat-row-mark.tile{width:20px;height:20px;border-radius:6px;background:#EDEAE4;color:#6B6560;font-family:var(--mono);font-size:8.5px;font-weight:500;display:flex;align-items:center;justify-content:center;}
  .chat-recent-row.active .chat-row-mark.tile{background:var(--accent);color:#FFFFFF;}
  .chat-unread-badge{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-tint);border-radius:999px;padding:1px 7px;flex:0 0 auto;}
  .chat-dm-time{font-family:var(--mono);font-size:10px;color:#B4AFA8;flex:0 0 auto;}
  .chat-dm-time.fresh{color:oklch(0.55 0.13 40);}
  .chat-sidebar-footer{flex:0 0 auto;border-top:1px solid #E6E2DC;padding:11px 14px;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;color:#8A857E;}
  .csf-dot{width:6px;height:6px;border-radius:50%;background:#1F8A4C;flex:0 0 auto;}
  .csf-dot.offline{background:#B0392E;}
  #chatSyncFooter.chat-sync-fail{color:#c0392b;}
  /* chat: confined to the panel, never the page — composer stays pinned */
  .chat-app{max-width:none;flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;}

  /* chat: header (channels + DMs) */
  .channel-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 4px 14px;border-bottom:1px solid var(--rule);margin-bottom:14px;flex:0 0 auto;}
  .ch-left{min-width:0;}
  .ch-title-row{display:flex;align-items:center;gap:9px;min-width:0;position:relative;}
  /* Admin-only channel-settings trigger: title + a muted caret, wrapped in a
     plain reset button so the click target covers both. Non-admins never get
     this wrapper — see renderChatHeaderBar — so the title stays inert text. */
  .ch-title-btn{appearance:none;-webkit-appearance:none;background:none;border:none;padding:0;margin:0;display:flex;align-items:center;gap:6px;min-width:0;cursor:pointer;}
  .ch-title-caret{font-size:10px;line-height:1;color:var(--faint);flex:0 0 auto;}
  .ch-title-btn:hover .ch-title-caret{color:var(--muted);}
  /* Channel settings dropdown: same paper/rule look as .chat-mention-popover,
     anchored under the title row instead of fixed off the composer. */
  .channel-menu{display:none;position:absolute;top:calc(100% + 8px);left:0;min-width:190px;background:#fff;border:1px solid var(--rule-strong);border-radius:12px;padding:6px;box-shadow:0 12px 32px rgba(17,17,17,.14);z-index:60;}
  .channel-menu.open{display:block;}
  .channel-menu-item{appearance:none;-webkit-appearance:none;width:100%;text-align:left;background:none;border:none;border-radius:8px;padding:8px 8px;cursor:pointer;font-family:var(--sans);font-size:13px;color:var(--ink);}
  .channel-menu-item:hover{background:var(--accent-tint);color:var(--accent);}
  .ch-mark{flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;}
  /* Space Mono's "#" is too heavy at small sizes — its diagonal strokes
     merge under anti-aliasing into a solid blob instead of a hash. The mock
     sidesteps this by pinning its channel mark to JetBrains Mono specifically
     (markStyle in Chat.dc.html), so we do the same rather than swap the
     app's whole mono typeface. */
  .ch-mark.channel{font-family:'JetBrains Mono',monospace;color:var(--faint);font-size:16px;width:16px;}
  .ch-mark.dm{width:22px;height:22px;border-radius:7px;background:var(--accent);color:#FFFFFF;font-size:9px;}
  .channel-header-title{margin:0;font-family:var(--serif);font-weight:700;font-size:17px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .ch-subtitle{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:3px;}
  .ch-right{display:flex;align-items:center;gap:7px;flex:0 0 auto;position:relative;}

  /* chat: interactive roster — two chips (people / agents) that each open a
     "who's in this chat" dropdown, and rows in that dropdown open a detail
     card. Literal port of Chat.dc.html's chipStyle/roster/card blocks. */
  .ch-roster-chip{appearance:none;display:flex;align-items:center;gap:7px;height:30px;padding:0 10px;cursor:pointer;border-radius:8px;border:1px solid #E6E2DC;background:#FBF8F1;transition:border-color .12s ease,background .12s ease;}
  .ch-roster-chip:hover,.ch-roster-chip.open{border-color:#111111;}
  .ch-roster-chip.open{background:#F4EFE4;}
  .ch-roster-chip .ch-roster-count{font-family:var(--mono);font-size:10.5px;color:#57534E;white-space:nowrap;}
  .ch-roster-people-stack{display:flex;}
  .ch-roster-people-avatar{width:20px;height:20px;border-radius:50%;background:#EFECE7;color:#5C564D;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:8px;font-weight:500;border:1.5px solid #FFFFFF;flex:0 0 auto;}
  .ch-roster-people-avatar:not(:first-child){margin-left:-7px;}
  .ch-roster-agent-dot{width:5px;height:5px;border-radius:50%;background:#1F8A4C;flex:0 0 auto;}
  .ch-export-btn{height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--rule-strong);background:var(--card);font-family:var(--mono);font-size:11px;color:var(--ink);cursor:pointer;transition:border-color .16s ease,color .16s ease;}
  @keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

  .ch-roster-panel{position:absolute;top:38px;right:0;width:300px;background:#FFFFFF;border:1px solid #E6E2DC;border-radius:13px;box-shadow:0 18px 44px rgba(20,18,15,.16);padding:12px;z-index:30;display:flex;flex-direction:column;gap:3px;animation:fadein .14s ease-out;}
  .ch-roster-panel-head{display:flex;align-items:center;gap:8px;padding:2px 6px 8px;}
  .ch-roster-panel-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;color:#8A857E;}
  .ch-roster-close{margin-left:auto;appearance:none;border:none;background:transparent;cursor:pointer;color:#A8A29B;font-size:14px;line-height:1;padding:0;}
  .ch-roster-close:hover{color:#111111;}
  .ch-roster-empty{font-family:var(--mono);font-size:11px;color:var(--faint);padding:8px 6px;}
  .ch-roster-row{appearance:none;display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;cursor:pointer;border-radius:9px;padding:7px 6px;transition:background .1s ease;text-align:left;}
  .ch-roster-row:hover{background:#F4EFE4;}
  .ch-roster-row-avatar{width:24px;height:24px;border-radius:7px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9px;font-weight:600;background:#EFECE7;color:#5C564D;}
  .ch-roster-row-avatar.agent{background:var(--accent);color:#FFFFFF;}
  .ch-roster-row-body{flex:1;min-width:0;}
  .ch-roster-row-name{display:block;font-size:13px;font-weight:500;letter-spacing:-.01em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ch-roster-row-role{display:block;font-family:var(--mono);font-size:10px;color:#8A857E;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ch-roster-row-status{font-family:var(--mono);font-size:9.5px;flex:0 0 auto;}

  .ch-roster-card{position:absolute;top:38px;right:0;width:308px;background:#FFFFFF;border:1px solid #E6E2DC;border-radius:13px;box-shadow:0 18px 44px rgba(20,18,15,.16);padding:18px;z-index:31;display:flex;flex-direction:column;gap:14px;animation:fadein .14s ease-out;}
  .ch-roster-card-head{display:flex;align-items:flex-start;gap:11px;}
  .ch-roster-card-avatar{width:38px;height:38px;border-radius:11px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:600;background:#EFECE7;color:#5C564D;}
  .ch-roster-card-avatar.agent{background:var(--accent);color:#FFFFFF;}
  .ch-roster-card-id{flex:1;min-width:0;}
  .ch-roster-card-name{font-size:15px;font-weight:600;letter-spacing:-.015em;color:var(--ink);}
  .ch-roster-card-role{font-family:var(--mono);font-size:10.5px;color:#8A857E;margin-top:3px;}
  .ch-roster-card-rows{display:flex;flex-direction:column;gap:1px;background:#E6E2DC;border:1px solid #E6E2DC;border-radius:10px;overflow:hidden;}
  .ch-roster-card-row{background:#FBF8F1;padding:9px 12px;display:flex;align-items:center;gap:10px;}
  .ch-roster-card-row-label{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#8A857E;width:66px;flex:none;}
  .ch-roster-card-row-value{font-family:var(--mono);font-size:11px;color:#241F1A;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ch-roster-card-actions{display:flex;gap:7px;}
  .ch-roster-card-primary{flex:1;height:34px;border-radius:9px;border:none;background:#111111;color:#F7F5F2;font-family:var(--mono);font-size:11px;cursor:pointer;}
  .ch-roster-card-primary:hover{background:#2A2A2A;}
  .ch-roster-card-back{height:34px;border-radius:9px;border:1px solid #E6E2DC;background:#FFFFFF;color:#111111;font-family:var(--mono);font-size:11px;cursor:pointer;padding:0 12px;}
  .ch-roster-card-back:hover{border-color:#111111;}
  .ch-export-btn:hover{border-color:var(--accent);color:var(--accent);}

  /* chat: metric cards, ported from the mock's hasFacts block — a 1px-gap
     grid whose background shows through as hairline dividers between cells
     rather than individually bordered/rounded cards. */
  .chat-fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:1px;background:#E6E2DC;border:1px solid #E6E2DC;border-radius:10px;overflow:hidden;max-width:560px;margin-top:1px;}
  .chat-fact-card{background:#FBF8F1;padding:10px 12px;}
  .chat-fact-label{font-family:var(--mono);font-size:9px;letter-spacing:.09em;color:#8A857E;}
  .chat-fact-row{display:flex;align-items:baseline;gap:6px;margin-top:3px;}
  .chat-fact-value{font-size:16px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);}
  /* Delta color signals a real tone flag (m.facts[].tone === "warn"), not
     the arithmetic sign — the mock colors a +6 orange because it breached a
     threshold, while an unflagged -5 stays neutral gray. */
  .chat-fact-delta{font-family:var(--mono);font-size:10px;font-variant-numeric:tabular-nums;color:#8A857E;}
  .chat-fact-delta.warn{color:#B8410E;}

  /* chat: source chips + pattern-detection callout, shown under agent answers that cite data */
  .msg-sources{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px;}
  .msg-sources .ms-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);}
  .msg-source-chip{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft);border:1px solid var(--rule-strong);border-radius:6px;padding:3px 8px;background:var(--paper-2);}
  .msg-callout{display:flex;gap:9px;border-left:2px solid oklch(0.58 0.11 70);padding:2px 0 2px 11px;margin-top:10px;max-width:100%;}
  .msg-callout .mc-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:oklch(0.52 0.11 60);}
  .msg-callout .mc-body{font-size:13px;line-height:1.5;color:var(--ink-soft);margin-top:3px;}

  .cc-model-select{position:relative;flex:0 0 auto;}
  .cc-model-btn{appearance:none;font-family:var(--mono);font-size:10.5px;color:#57534E;background:#FBF8F1;border:1px solid #E6E2DC;border-radius:8px;height:28px;padding:0 10px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;transition:border-color .12s ease;}
  .cc-model-btn:hover{border-color:#111111;}
  .cc-model-btn .model-dot{width:5px;height:5px;border-radius:50%;background:oklch(0.72 0.14 60);flex:0 0 auto;}
  .cc-model-btn .caret{font-size:8px;color:#A8A29B;}
  .cc-model-menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:200px;background:var(--card);border:1px solid var(--rule-strong);border-radius:12px;box-shadow:0 14px 34px rgba(17,17,17,.16);padding:6px;display:none;flex-direction:column;gap:1px;z-index:60;}
  .cc-model-menu.open{display:flex;}
  .cc-model-menu-title{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:9px 10px 4px;}
  .cc-model-item,.cc-level-item{appearance:none;text-align:left;font-family:var(--sans);font-size:12.5px;color:var(--ink-soft);background:none;border:none;border-radius:8px;padding:8px 10px;cursor:pointer;transition:background .14s ease,color .14s ease;}
  .cc-model-item:hover,.cc-level-item:hover{background:var(--paper-2);color:var(--ink);}
  .cc-model-item.active,.cc-level-item.active{color:var(--accent);font-weight:600;}
  .cc-model-menu-sep{border-top:1px solid var(--rule);margin:4px 2px;}

  /* ============ RESPONSIVE: 1100px icon rail (README §7) ============
     [data-shell] holds a rail + main grid; [data-rail] is the collapsing aside;
     [data-rail-hide] marks anything (labels, search, group headers, footer line)
     that disappears at rail width, leaving only marks/avatars, centered. */
  @media (max-width:1100px){
    [data-shell]{grid-template-columns:64px minmax(0,1fr) !important;}
    [data-rail]{width:64px;}
    [data-rail] [data-rail-hide]{display:none !important;}
    [data-rail] .row-label,[data-rail] .chat-recent-row .rt{display:none !important;}
    [data-rail] .chat-new-btn{justify-content:center;}
    [data-rail] .chat-recent-row{justify-content:center;padding-left:0;padding-right:0;}
    .dash-grid{grid-template-columns:1fr;}
    .dash-row3{grid-template-columns:1fr;}
    .bench-edit-grid{grid-template-columns:1fr;}
    .login-split{grid-template-columns:1fr;}
    .login-side{display:none;}
  }

  /* mobile — below ~720px the shell is deliberately undesigned; keep only the
     pre-existing component-level stacking so nothing overlaps or clips. */
  @media (max-width:900px){
    .shell{flex-direction:column;}
    .topbar{padding:0 6px 0 14px;gap:8px;border-radius:14px;}
    .panel-tab{padding:7px 11px;font-size:11.5px;}
    .agent-grid{grid-template-columns:1fr;}
    .agent-layout{flex-direction:column;}
    .agent-feed-col{width:100% !important;flex-basis:auto !important;margin-bottom:20px;}
    .agent-resize-handle{display:none;}
    .map-wrap{height:60vh;}
    .form-grid{grid-template-columns:1fr;}
    .avatar-menu{right:-6px;}
  }
