/* ==========================================================
   Filardo Financial — Wealth Office Styles
   Extracted: Batch 0 Refactor | Feb 2026
   ========================================================== */

    :root{
      --bg:var(--wo-bg);
      --bg-start:var(--wo-bg);
      --panel:var(--wo-panel);
      --panel2:var(--wo-panel);
      --card:var(--wo-card);
      --muted:var(--wo-text-secondary);
      /* Bloomberg-esque orange for primary text */
      --text:var(--wo-text-primary);
      --line:var(--wo-border);
      --border: var(--line);
      --accent:var(--wo-accent);
      --good:var(--wo-positive);
      --warn:var(--wo-warning);
      --bad:var(--wo-negative);
      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
      --sans: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
      --accent-rgb: var(--wo-accent-rgb);
      --good-rgb: 16,185,129;
      --warn-rgb: 245,158,11;
      --bad-rgb: 239,68,68;
      --overlay-rgb: 255,255,255;
      --bg-rgb: 11,11,12;
      --line-rgb: 42,47,54;
    }
*{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0;
      background:linear-gradient(180deg, var(--bg-start) 0%, var(--bg) 25%, var(--bg) 100%);
      color:var(--text);
      font-family:var(--sans);
         font-size:15px;
      line-height:1.55;
    }
    a{color:var(--accent); text-decoration:none}
    a:hover{text-decoration:underline}
    .app{
      display:grid;
      grid-template-columns: 300px 1fr;
      height:100vh;
      width:100%;
    }
    .sidebar{
      background:linear-gradient(180deg,var(--panel) 0%, var(--bg) 100%);
      border-right:1px solid var(--line);
      padding:0;
      display:flex;
      flex-direction:column;
      gap:0;
      min-width:280px;
      min-height:0;
      overflow:hidden;
    }
    .brand{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:10px 10px 8px;
      border:1px solid var(--line);
      border-radius:14px;
      background:rgba(255,255,255,0.03);
    }
    .brand h1{
      margin:0;
      font-size:14px;
      letter-spacing:0.02em;
      font-weight:800;
    }
    .pill{
      font-family:var(--mono);
      font-size:11px;
      color:var(--muted);
      border:1px solid var(--line);
      padding:4px 8px;
      border-radius:999px;
      background:rgba(0,0,0,0.25);
    }
    .nav{
      display:flex;
      flex-direction:column;
      gap:6px;
      padding:0 2px;
    }
    .navbtn{
      display:flex;
      align-items:center;
      gap:10px;
      padding:10px 10px;
      border-radius:12px;
      border:1px solid transparent;
      background:transparent;
      color:var(--text);
      cursor:pointer;
      text-align:left;
      font-weight:650;
      letter-spacing:0.01em;
    }
    .navbtn:hover{
      background:rgba(255,255,255,0.04);
      border-color:rgba(255,255,255,0.05);
    }
    .navbtn.active{
      background:rgba(125,211,252,0.10);
      border-color:rgba(125,211,252,0.22);
      box-shadow:0 0 0 1px rgba(125,211,252,0.06) inset;
    }
    .navicon{
      width:18px; height:18px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      color:var(--muted);
      font-family:var(--mono);
      font-size:11px;
      border:1px solid var(--line);
      border-radius:6px;
      background:rgba(0,0,0,0.25);
      flex:0 0 auto;
    }
    .sidepanel{
      margin-top:auto;
      display:flex;
      flex-direction:column;
      gap:8px;
      border:1px solid var(--line);
      border-radius:14px;
      padding:10px;
      background:rgba(255,255,255,0.03);
    }
    .sidepanel .row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      font-size:12px;
      color:var(--muted);
    }
    .btn{
      border:1px solid var(--line);
      background:rgba(255,255,255,0.03);
      color:var(--text);
      padding:9px 10px;
      border-radius:12px;
      cursor:pointer;
      font-weight:700;
      letter-spacing:0.01em;
    }
    .btn:hover{background:rgba(255,255,255,0.05)}
    :root:not(.rl-theme) :where(a,button,.btn,input,select,textarea,[tabindex]):focus-visible{
      outline:2px solid rgba(125,211,252,0.85);
      outline-offset:2px;
      box-shadow:0 0 0 3px rgba(125,211,252,0.18);
    }
    :root:not(.rl-theme) :where(button,.btn):focus-visible{
      border-color: rgba(125,211,252,0.55);
    }

    .btn.primary{
      border-color:rgba(125,211,252,0.4);
      background:rgba(125,211,252,0.12);
    }
    .btn.danger{
      border-color:rgba(252,165,165,0.40);
      background:rgba(252,165,165,0.10);
    }
    .btn.small{padding:7px 9px; font-size:12px; border-radius:10px}
    .main{
      background:radial-gradient(1200px 900px at 35% 10%, rgba(125,211,252,0.08) 0%, rgba(0,0,0,0) 55%),
                 radial-gradient(1000px 800px at 80% 40%, rgba(134,239,172,0.06) 0%, rgba(0,0,0,0) 60%),
                 linear-gradient(180deg, var(--wo-bg) 0%, var(--wo-bg) 100%);
      overflow:auto;
      min-width:0;
    }
    .topbar{
      position:sticky;
      top:0;
      z-index:10;
      backdrop-filter: blur(10px);
      background:rgba(11,11,12,0.72);
      border-bottom:1px solid rgba(42,47,54,0.9);
      padding:14px 18px;
      display:grid;
      grid-template-columns:minmax(260px, 1fr) minmax(520px, 1.45fr) auto;
      align-items:start;
      gap:14px;
    }
    .top-left{
      display:flex;
      align-items:flex-start;
      gap:10px;
      min-width:0;
    }
    .title{
      font-weight:900;
      letter-spacing:-0.01em;
      margin:0;
      font-size:14px;
      color:var(--wo-text-primary);
    }
    .subtitle{
      font-family:var(--mono);
      font-size:11px;
      color:var(--muted);
    }
    .searchwrap{
      min-width:0;
      display:grid;
      grid-template-columns:minmax(280px,1fr) auto auto auto;
      gap:10px;
      align-items:center;
    }
    .search{
      width:100%;
      display:flex;
      gap:8px;
      align-items:center;
      border:1px solid var(--line);
      border-radius:14px;
      padding:8px 10px;
      background:rgba(255,255,255,0.03);
    }
    .search input{
      width:100%;
      border:none;
      outline:none;
      background:transparent;
      color:var(--text);
      font-size:13px;
      font-family:var(--sans);
    }
    .k{
      font-family:var(--mono);
      font-size:11px;
      color:var(--muted);
      border:1px solid var(--line);
      padding:3px 6px;
      border-radius:8px;
      background:rgba(0,0,0,0.25);
    }
    .content{
      padding:16px;
      max-width:1200px;
      margin:0 auto;
    }
    .grid{
      display:grid;
      grid-template-columns: repeat(12, 1fr);
      gap:12px;
    }
    .grid2{
      display:grid;
      grid-template-columns: repeat(2, 1fr);
      gap:12px;
    }
    @media (max-width: 980px){.grid2{grid-template-columns:1fr}}
    .flex{display:flex;align-items:center}
    .stack{display:flex;flex-direction:column;gap:8px}
    .card{
      border:1px solid var(--line);
      border-radius:18px;
      background:rgba(255,255,255,0.03);
      padding:14px;
      box-shadow: 0 10px 40px rgba(0,0,0,0.25);
    }
    .card h2{
      margin:0 0 6px;
      font-size:14px;
      font-weight:900;
      letter-spacing:-0.01em;
    }
    .card p{margin:6px 0; color:rgba(238,242,246,0.90); font-size:13px; line-height:1.4}
    .muted{color:var(--muted)}
    .small{font-size:12px}
    .hr{height:1px; background:var(--line); margin:12px 0}
    .row{
      display:flex;
      gap:10px;
      align-items:center;
      flex-wrap:wrap;
    }
    .field{
      display:flex;
      flex-direction:column;
      gap:6px;
      flex:1;
      min-width:160px;
    }
    label{
      font-size:11px;
      color:var(--muted);
      font-family:var(--mono);
    }
    input[type="text"], input[type="number"], input[type="date"], select, textarea{
      width:100%;
      border:1px solid var(--line);
      background:rgba(0,0,0,0.25);
      color:var(--text);
      padding:9px 10px;
      border-radius:12px;
      outline:none;
      font-size:13px;
      font-family:var(--sans);
    }
    textarea{min-height:90px; resize:vertical}
    table{
      width:100%;
      border-collapse:separate;
      border-spacing:0;
      overflow:hidden;
      border-radius:14px;
      border:1px solid var(--line);
      background:rgba(0,0,0,0.20);
    }
    th, td{
      padding:10px 10px;
      border-bottom:1px solid rgba(42,47,54,0.85);
      font-size:12px;
      vertical-align:top;
    }
    th{
      text-align:left;
      font-family:var(--mono);
      color:var(--muted);
      font-weight:800;
      font-size:11px;
      background:rgba(255,255,255,0.02);
    }
    tr:last-child td{border-bottom:none}
    .tag{
      display:inline-flex;
      gap:6px;
      align-items:center;
      font-family:var(--mono);
      font-size:11px;
      color:var(--muted);
      border:1px solid var(--line);
      padding:3px 8px;
      border-radius:999px;
      background:rgba(0,0,0,0.25);
      margin-right:6px;
    }
    .ok{border-color:rgba(134,239,172,0.35); background:rgba(134,239,172,0.10); color:rgba(16,185,129,0.12)}
    .warn{border-color:rgba(253,230,138,0.35); background:rgba(253,230,138,0.10); color:rgba(245,158,11,0.12)}
    .bad{border-color:rgba(252,165,165,0.35); background:rgba(252,165,165,0.10); color:rgba(239,68,68,0.12)}
    .split{
      display:grid;
      grid-template-columns: 320px 1fr;
      gap:12px;
    }
    .list{
      display:flex;
      flex-direction:column;
      gap:8px;
      max-height:64vh;
      overflow:auto;
      padding-right:4px;
    }
    .listitem{
      border:1px solid var(--line);
      border-radius:14px;
      padding:10px;
      background:rgba(255,255,255,0.02);
      cursor:pointer;
    }
    .listitem:hover{background:rgba(255,255,255,0.04)}
    .listitem.active{
      border-color:rgba(125,211,252,0.35);
      background:rgba(125,211,252,0.10);
    }
    .li-top{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
    }
    .li-title{
      font-weight:900;
      font-size:12px;
      letter-spacing:-0.01em;
    }
    .li-sub{
      margin-top:4px;
      font-family:var(--mono);
      color:var(--muted);
      font-size:10px;
    }
    .checkbox{
      display:flex;
      align-items:center;
      gap:8px;
      font-size:12px;
      color:rgba(238,242,246,0.92);
    }
    .checkbox input{transform:scale(1.12)}
    .notice{
      border:1px solid rgba(125,211,252,0.28);
      background:rgba(125,211,252,0.08);
      border-radius:16px;
      padding:10px;
      color:rgba(238,242,246,0.95);
      font-size:12px;
      line-height:1.35;
    }
    .notice strong{color:rgba(59,130,246,0.10)}
    .code{
      font-family:var(--mono);
      font-size:11px;
      border:1px solid var(--line);
      background:rgba(0,0,0,0.28);
      padding:10px;
      border-radius:14px;
      overflow:auto;
      white-space:pre-wrap;
      word-break:break-word;
    }
    .actions{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      align-items:center;
    }
    .righttools{
      display:flex;
      gap:8px;
      align-items:center;
      flex-wrap:wrap;
    }
    .statusdot{
      width:8px;height:8px;border-radius:999px;
      background:var(--muted);
      box-shadow:0 0 0 3px rgba(0,0,0,0.18);
    }
    .statusdot.t{background:var(--accent)}
    .statusdot.c{background:var(--good)}
    .statusdot.w{background:var(--warn)}
    .statusdot.b{background:var(--bad)}
    .kbd{
      font-family:var(--mono);
      font-size:11px;
      color:var(--muted);
    }

    /* Print Mode */
    body.print-mode .sidebar,
    body.print-mode .topbar,
    body.print-mode .righttools,
    body.print-mode .sidepanel{
      display:none !important;
    }
    body.print-mode .app{
      grid-template-columns: 1fr;
    }
    body.print-mode .main{
      background:var(--wo-card);
      color:var(--wo-text-primary);
    }
    body.print-mode .card, body.print-mode table{
      background:var(--wo-card);
      border-color:var(--wo-border);
      box-shadow:none;
    }
    body.print-mode a{color:var(--wo-text-primary)}
    body.print-mode .muted{color:var(--wo-text-secondary)}

    /* Theme Toggle Switch */
    .theme-switch{display:flex;align-items:center;gap:8px}
    .switch-label{position:relative;display:inline-block;width:44px;height:24px}
    .switch-label input{opacity:0;width:0;height:0}
    .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(var(--overlay-rgb),0.1);border:1px solid var(--line);transition:.3s;border-radius:24px}
    .slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background:var(--text);transition:.3s;border-radius:50%}
    input:checked+.slider{background:rgba(var(--accent-rgb),0.3);border-color:rgba(var(--accent-rgb),0.5)}
    input:checked+.slider:before{transform:translateX(20px)}
    .switch-text{font-size:12px;color:var(--muted);font-family:var(--mono)}

    @media (max-width: 980px){
      .app{grid-template-columns:1fr}
      .sidebar{display:none}
      .split{grid-template-columns:1fr}
      .top-left{min-width:auto}
    }
  



/* ============================================================
   Batch 13 — Density + Keyboard-first + Calm Tech (2026-01-20)
   - Density tokens (compact/comfortable)
   - Toast notifications (non-blocking)
   - Keyboard roving selection helpers
============================================================ */
html[data-density="comfortable"]{
  --wo-font-base: 15.75px;
  --wo-card-pad: 16px;
  --wo-table-font: 12.5px;
  --wo-list-pad: 10px;
}
html[data-density="compact"]{
  --wo-font-base: 14.25px;
  --wo-card-pad: 12px;
  --wo-table-font: 11.75px;
  --wo-list-pad: 8px;
}
html[data-density="compact"] .card{ padding: var(--wo-card-pad); }
html[data-density="compact"] .navbtn{ padding: 8px 9px; }
html[data-density="compact"] input[type="text"],
html[data-density="compact"] input[type="number"],
html[data-density="compact"] input[type="date"],
html[data-density="compact"] select,
html[data-density="compact"] textarea{ padding:8px 9px; font-size:13px; }
html[data-density="compact"] th, 
html[data-density="compact"] td{ padding:9px 10px; font-size: var(--wo-table-font); }

.kbdhint{ font-family: var(--mono); font-size: 11px; color: var(--muted); }

/* Toast host (calm technology — throttled, non-blocking) */
.toast-host{
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
  max-width: min(420px, calc(100vw - 28px));
}
.toast{
  pointer-events: auto;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(20,22,28,0.96);
  border-radius: 14px;
  padding: 10px 12px;
  box-shadow: 0 18px 44px rgba(0,0,0,0.45);
}
.toast .t-title{ font-weight: 900; font-size: 12px; margin:0 0 4px; }
.toast .t-msg{ font-size: 12px; color: rgba(238,242,246,0.90); line-height: 1.35; margin:0; }
.toast.info{ border-color: rgba(var(--accent-rgb),0.28); }
.toast.warn{ border-color: rgba(var(--warn-rgb),0.35); }
.toast.bad{ border-color: rgba(var(--bad-rgb),0.38); }
.toast .t-row{ display:flex; gap:10px; align-items:flex-start; justify-content:space-between; }
.toast .t-x{
  border:1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.04);
  color: var(--text);
  border-radius: 10px;
  padding: 4px 8px;
  cursor:pointer;
  font-family: var(--mono);
  font-size: 11px;
}
.toast .t-x:hover{ background: rgba(255,255,255,0.07); }

.kbd-selected{
  outline: 2px solid rgba(var(--accent-rgb),0.65);
  outline-offset: 2px;
}


/* ---------- Clients (internal filing cabinet) ---------- */
.clients-layout{display:grid;grid-template-columns:360px 1fr;gap:12px}
@media (max-width: 980px){.clients-layout{grid-template-columns:1fr}}
.client-tree{display:flex;flex-direction:column;gap:8px}
.folder{border:1px solid var(--border);background:rgba(255,255,255,.03);border-radius:14px;padding:10px}
.folder-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.folder-title{display:flex;align-items:center;gap:10px;font-weight:900}
.folder-title .ico{width:28px;height:28px;border-radius:10px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;border:1px solid var(--border)}
.folder-title .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.folder .count{font-size:12px;color:var(--muted)}
.folder-body{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.client-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid transparent;cursor:pointer}
.client-item:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.client-item.active{background:rgba(80,140,255,.12);border-color:rgba(80,140,255,.35)}
.client-item .left{display:flex;flex-direction:column;gap:2px;min-width:0}
.client-item .nm{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.client-item .sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.client-item .right{display:flex;flex-direction:column;gap:2px;align-items:flex-end}
.client-item .aum{font-weight:900}
.client-item .fee{font-size:12px;color:var(--muted)}
.clients-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.clients-toolbar .left{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.clients-toolbar .right{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.client-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.client-title{display:flex;flex-direction:column;gap:4px}
.client-title h2{margin:0;font-size:18px}
.client-title .meta{font-size:12px;color:var(--muted)}
.tabrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.tabrow .tabbtn{padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.03);cursor:pointer;font-weight:800;font-size:12px}
.tabrow .tabbtn.active{background:rgba(255,255,255,.08)}
.kvgrid{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:10px}
@media (max-width: 980px){.kvgrid{grid-template-columns:1fr}}
.kv{border:1px solid var(--border);border-radius:14px;padding:10px;background:rgba(255,255,255,.03)}
.kv .k{font-size:12px;color:var(--muted)}
.kv .v{font-weight:900;margin-top:2px}
.note-list{display:flex;flex-direction:column;gap:8px}
.note{border:1px solid var(--border);border-radius:14px;padding:10px;background:rgba(255,255,255,.03)}
.note .ts{font-size:12px;color:var(--muted);margin-bottom:6px}
.note .txt{white-space:pre-wrap}
.acc-table td{vertical-align:top}
.acc-table .accnm{font-weight:900}
.acc-mini{font-size:12px;color:var(--muted)}

/* Document Folders (PaperPort-style) */
.doc-folders{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.doc-folder{border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.02);overflow:hidden}
.doc-folder-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;cursor:pointer;gap:8px}
.doc-folder-head:hover{background:rgba(255,255,255,.03)}
.doc-folder-head .folder-icon{font-size:16px}
.doc-folder-head .folder-name{flex:1;font-weight:700;font-size:13px}
.doc-folder-head .folder-count{font-size:11px;color:var(--muted);background:rgba(255,255,255,.06);padding:2px 8px;border-radius:99px}
.doc-folder-body{padding:6px 10px 10px;border-top:1px solid rgba(255,255,255,.06);display:none}
.doc-folder.open .doc-folder-body{display:block}
.doc-file{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:12px}
.doc-file:hover{background:rgba(255,255,255,.04)}
.doc-file .file-icon{font-size:14px;opacity:0.7}
.doc-file .file-name{flex:1}
.doc-file .file-date{font-size:10px;color:var(--muted)}
.doc-file .file-actions{display:flex;gap:4px}

/* Client Register Table */
.client-register{width:100%;border-collapse:separate;border-spacing:0;margin-top:12px}
.client-register th{text-align:left;padding:8px 10px;font-size:11px;font-weight:800;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.1);cursor:pointer;user-select:none}
.client-register th:hover{background:rgba(255,255,255,.02)}
.client-register th .sort-arrow{margin-left:4px;opacity:0.4}
.client-register th.sorted .sort-arrow{opacity:1}
.client-register td{padding:8px 10px;font-size:12px;border-bottom:1px solid rgba(255,255,255,.05)}
.client-register tr:hover td{background:rgba(255,255,255,.02)}
.client-register .client-name{font-weight:700}
.client-register .flag-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}
.client-register .flag-red{background:var(--wo-negative)}
.client-register .flag-yellow{background:var(--wo-warning)}
.client-register .flag-green{background:var(--wo-positive)}

/* Standing Instructions Panel */
.instructions-panel{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;background:rgba(255,255,255,.02);margin-top:10px}
.instructions-panel h4{margin:0 0 8px;font-size:13px;font-weight:800}
.instruction-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.instruction-item:last-child{border-bottom:none}
.instruction-item .type{font-size:10px;padding:2px 6px;border-radius:4px;background:rgba(125,211,252,.15);color:var(--accent);font-weight:700}
.instruction-item .text{flex:1;font-size:12px}
.instruction-item .freq{font-size:10px;color:var(--muted)}

/* Strategies Used Tags */
.strategy-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.strategy-tag{font-size:11px;padding:4px 10px;border-radius:99px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);cursor:default}
.strategy-tag.active{border-color:rgba(134,239,172,.4);background:rgba(134,239,172,.12);color:var(--good)}
.strategy-tag.inactive{opacity:0.5}

/* RMD Controls */
.rmd-panel{border:1px solid rgba(253,230,138,.25);border-radius:12px;padding:12px;background:rgba(253,230,138,.05);margin-top:10px}
.rmd-panel h4{margin:0 0 8px;font-size:13px;font-weight:800;color:var(--warn)}
.rmd-row{display:flex;align-items:center;gap:12px;padding:4px 0}
.rmd-row label{font-size:12px;min-width:120px}
.rmd-row input,.rmd-row select{font-size:12px;padding:4px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.2);color:var(--text)}

/* ---------- Command Palette ---------- */
.cmdpal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:flex-start;justify-content:center;padding:72px 16px;z-index:9999}
.cmdpal.open{display:flex}
.cmdcard{width:min(760px, 100%);border-radius:18px;border:1px solid var(--border);background:rgba(20,22,28,.98);box-shadow:0 30px 60px rgba(0,0,0,.55);padding:12px}
.cmdtop{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px}
.cmdtitle{font-weight:900}
.cmdhint{font-size:12px;color:var(--muted)}
.cmdinput{width:100%;padding:12px 12px;border-radius:14px;border:1px solid var(--border);background:rgba(255,255,255,.03);color:var(--text);outline:none;font-size:14px}
.cmdresults{margin-top:10px;max-height:360px;overflow:auto;border-radius:14px;border:1px solid var(--border);background:rgba(255,255,255,.02)}
.cmdrow{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.06)}
.cmdrow:last-child{border-bottom:none}
.cmdrow:hover{background:rgba(255,255,255,.04)}
.cmdrow.active{background:rgba(80,140,255,.16)}
.cmdrow .l{display:flex;flex-direction:column;gap:2px;min-width:0}
.cmdrow .t{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdrow .d{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdrow .r{font-size:12px;color:var(--muted);white-space:nowrap}
.cmdfoot{margin-top:8px;font-size:12px;color:var(--muted);padding:0 4px}



.tm-wrap{ display:flex; flex-wrap:wrap; gap:8px; width:100%; }
.tm-box{ background: rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:10px; min-width:140px; }
.tm-label{ font-weight:800; font-size:12px; letter-spacing:.02em; opacity:.9; }
.tm-val{ font-size:12px; opacity:.8; margin-top:4px; }
details.glossItem{ border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:10px; background: rgba(255,255,255,.02); }
details.glossItem summary{ cursor:pointer; list-style:none; display:flex; align-items:center; gap:10px; }
details.glossItem summary::-webkit-details-marker{ display:none; }
.glossBody{ margin-top:10px; }



    /* ============================================================
       Batch 1 — Design system polish (2026-01-18)
       - Typography + spacing standardization
       - Quick Actions bar (icons)
       - Table readability (zebra, hover, sticky headers)
       - Print/PDF brand header
    ============================================================ */

    :root{
      --wo-font-base: 15.75px;
      --wo-line-base: 1.58;
      --wo-card-pad: 16px;
      --wo-table-font: 12.5px;
      --wo-table-line: 1.45;

      /* Spacing scale (Chunk 7) */
      --wo-s1: 4px;
      --wo-s2: 8px;
      --wo-s3: 12px;
      --wo-s4: 16px;
      --wo-s5: 20px;
      --wo-s6: 24px;
    }

    body{ font-size: var(--wo-font-base); line-height: var(--wo-line-base); }
    .content{ font-size: var(--wo-font-base); line-height: 1.6; }

    .card{ padding: var(--wo-card-pad); }
    .card h2{ font-size: 15px; margin-bottom: 8px; }
    .card p{ font-size: 0.96em; line-height: 1.6; }

    input[type="text"], input[type="number"], input[type="date"], select, textarea{
      font-size: 13.75px;
      padding: 10px 11px;
    }

    /* Quick actions: reuse .btn but add icon alignment */
    .qabar{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-left:auto; }
    .btn-ico{ width:14px; height:14px; display:inline-block; vertical-align:middle; margin-right:6px; opacity:0.95; }

    /* Tables: readability + interaction */
    th, td{ padding: 11px 12px; font-size: var(--wo-table-font); line-height: var(--wo-table-line); }
    thead th{ position: sticky; top: 0; z-index: 2; background: rgba(var(--overlay-rgb),0.035); backdrop-filter: blur(6px); }
    table tbody tr:nth-child(odd) td{ background: rgba(var(--overlay-rgb),0.018); }
    table tbody tr:hover td{ background: rgba(var(--accent-rgb),0.08); }

/* ==========================
   Chunk 7 — Accounts UI
========================== */

.acc-add{
  margin-top: var(--wo-s4);
  padding: var(--wo-s4);
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(0,0,0,0.14);
}

.acc-type-meta{
  margin-top: var(--wo-s3);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: var(--wo-s3);
  background: rgba(0,0,0,0.20);
}

.acc-type-meta .meta-title{ font-weight: 800; }
.acc-type-meta .meta-desc{ margin-top: var(--wo-s2); color: var(--muted); }
.acc-type-meta .meta-hint{ margin-top: var(--wo-s2); font-size: 12px; color: var(--muted); }

.holdings-editor{
  margin-top: var(--wo-s4);
}

.holdings-editor input[type="text"],
.holdings-editor input[type="number"]{
  padding: var(--wo-s2) var(--wo-s3);
  border-radius: 10px;
  font-size: 12.5px;
}

.holdings-editor .holdings-actions{
  display:flex;
  gap: var(--wo-s2);
  justify-content:flex-end;
  flex-wrap:wrap;
  margin-top: var(--wo-s3);
}


    /* Empty state pattern */
    .empty-state{
      border:1px dashed rgba(var(--overlay-rgb),0.18);
      background: rgba(0,0,0,0.18);
      border-radius: 16px;
      padding: 14px;
      display:flex;
      flex-direction:column;
      gap:8px;
    }
    .empty-title{ font-weight: 900; letter-spacing: -0.01em; }
    .empty-sub{ color: var(--muted); font-size: 0.92em; line-height: 1.45; }

    /* Print brand zone (prepared for white-label) */
    .print-brand{ display:none; }
    body.print-mode .print-brand{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding: 14px 16px; border-bottom:1px solid var(--wo-border); }
    body.print-mode .print-brand .pb-firm{ font-weight: 900; font-size: 14px; color:var(--wo-text-primary); }
    body.print-mode .print-brand .pb-sub{ font-size: 11px; color:var(--wo-text-secondary); margin-top:2px; }
    body.print-mode .print-brand .pb-meta{ font-size: 11px; color:var(--wo-text-secondary); text-align:right; }

/* ============================================================
   Batch 2 — Clients UI + Profile + Notes/Tasks shells (2026-01-18)
   - Client list: search + tier/risk filters; register mode; safe sorting
   - Client profile: household/goals/risk/accounts/planning widgets placeholders
   - Notes + Tasks UI shells
============================================================ */

.segrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.segchip{font-size:10px;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:var(--muted)}

.segbar{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.segpill{font-size:11px;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03)}

.client-quick{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

.client-filters{display:grid;grid-template-columns:1fr 140px 170px;gap:8px}
@media (max-width: 980px){.client-filters{grid-template-columns:1fr}}

.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width: 980px){.profile-grid{grid-template-columns:1fr}}

.member-list{display:flex;flex-direction:column;gap:8px}
.member{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03)}
.member.me{border-color:rgba(var(--accent-rgb),0.45);background:rgba(var(--accent-rgb),0.09)}
.member .mn{font-weight:900}
.member .ms{font-size:11px;color:var(--muted)}

.si-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width: 980px){.si-grid{grid-template-columns:1fr}}
.si{border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:10px;background:rgba(0,0,0,.12)}
.si .k{font-size:11px;color:var(--muted);font-weight:800}
.si .v{font-size:12px;margin-top:6px}

.goals{display:flex;flex-direction:column;gap:10px}
.goal{border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:10px;background:rgba(255,255,255,.02)}
.goal .gt{font-weight:900}
.goal .gm{font-size:11px;color:var(--muted);margin-top:2px}
.goal .gn{font-size:12px;margin-top:6px}

.riskbox{border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:10px;background:rgba(255,255,255,.02)}
.riskrow{display:flex;justify-content:space-between;gap:12px;padding:4px 0}
.riskrow .k{font-size:11px;color:var(--muted);font-weight:800}
.riskrow .v{font-size:12px}

.allocbars{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.allocbars .bar{position:relative;height:16px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.18);overflow:hidden}
.allocbars .bar span{display:block;height:100%;background:rgba(var(--accent-rgb),0.55)}
.allocbars .bar em{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--wo-card);opacity:0.9;font-style:normal}

.accmini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width: 980px){.accmini-grid{grid-template-columns:1fr}}
.accmini{border:1px solid rgba(255,255,255,.10);border-radius:12px;padding:10px;background:rgba(0,0,0,.14)}
.accmini .a1{font-weight:900}
.accmini .a2{font-size:12px;color:var(--muted);margin-top:4px}

.widget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width: 980px){.widget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.widget{border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.02);padding:12px;text-align:left;font-weight:900;cursor:pointer}
.widget:hover{background:rgba(var(--accent-rgb),0.10);border-color:rgba(var(--accent-rgb),0.35)}

.edit-drawer{border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:10px;background:rgba(0,0,0,.12)}
.edit-drawer summary{cursor:pointer;font-weight:900;list-style:none}
.edit-drawer summary::-webkit-details-marker{display:none}

.task-status{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);display:inline-block}
.task-status.open{border-color:rgba(253,230,138,.35);background:rgba(253,230,138,.10);color:var(--warn)}
.task-status.done{border-color:rgba(134,239,172,.35);background:rgba(134,239,172,.10);color:var(--good)}
.task-status.blocked{border-color:rgba(252,165,165,.35);background:rgba(252,165,165,.10);color:var(--bad)}

  

/* ============================================================
   Batch 3 — Documents Vault + Disclosure Tracking (2026-01-18)
============================================================ */

.dv-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dv-sub{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.4}
.dv-actions{display:flex;gap:8px;flex-wrap:wrap}

.dv-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin-top:12px}
@media (max-width: 980px){.dv-layout{grid-template-columns:1fr}}

.dv-left,.dv-right{display:flex;flex-direction:column;gap:12px}

.dv-drop{border:1px dashed rgba(var(--overlay-rgb),0.22);border-radius:16px;padding:12px;background:rgba(0,0,0,0.18)}
.dv-drop .ttl{font-weight:900}
.dv-drop .meta{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.45}

.dv-filter{display:grid;grid-template-columns:1fr 180px;gap:8px}
@media (max-width: 980px){.dv-filter{grid-template-columns:1fr}}

.dv-table{width:100%;border-collapse:collapse}
.dv-table tbody tr{cursor:pointer}
.dv-name{font-weight:900}
.dv-mini{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35}

.dv-preview{border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:12px;background:rgba(0,0,0,.14)}
.dv-preview .ph{font-weight:900}
.dv-preview .pm{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}

.badge{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);display:inline-block}
.badge.ok{border-color:rgba(134,239,172,.35);background:rgba(134,239,172,.10);color:var(--good)}
.badge.warn{border-color:rgba(253,230,138,.35);background:rgba(253,230,138,.10);color:var(--warn)}
.badge.bad{border-color:rgba(252,165,165,.35);background:rgba(252,165,165,.10);color:var(--bad)}

.disc-proof{margin-top:10px;border-radius:12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.02);padding:10px;font-size:12px;color:var(--muted);line-height:1.45}

/* ============================================================
   Batch 4 — Audit Trail + Compliance Calendar (2026-01-18)
============================================================ */

.audit-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin-top:12px}
@media (max-width: 980px){.audit-layout{grid-template-columns:1fr}}

.audit-filters{display:grid;grid-template-columns:1.2fr 200px 220px 160px 160px;gap:8px;align-items:end}
@media (max-width: 980px){.audit-filters{grid-template-columns:1fr}}

.audit-table{width:100%;border-collapse:collapse}
.audit-table tbody tr{cursor:pointer}
.audit-table tbody tr.active{background:rgba(var(--accent-rgb),0.10)}

.audit-mini{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35}

.audit-detail{border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:12px;background:rgba(0,0,0,.14)}
.audit-detail .ph{font-weight:900}
.audit-detail .pm{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}

.cal-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cal-filters{display:grid;grid-template-columns:1.2fr 220px 200px;gap:8px;align-items:end}
@media (max-width: 980px){.cal-filters{grid-template-columns:1fr}}

.cal-list{display:flex;flex-direction:column;gap:10px}
.cal-item{border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:10px;background:rgba(255,255,255,.02);cursor:pointer}
.cal-item:hover{background:rgba(var(--accent-rgb),0.08);border-color:rgba(var(--accent-rgb),0.28)}
.cal-item.active{background:rgba(var(--accent-rgb),0.10);border-color:rgba(var(--accent-rgb),0.35)}
.cal-item .t1{display:flex;justify-content:space-between;gap:10px;align-items:center}
.cal-item .t1 strong{font-weight:900}
.cal-item .t2{font-size:11px;color:var(--muted);margin-top:4px}

.cal-badge{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);display:inline-block}
.cal-badge.open{border-color:rgba(253,230,138,.35);background:rgba(253,230,138,.10);color:var(--warn)}
.cal-badge.done{border-color:rgba(134,239,172,.35);background:rgba(134,239,172,.10);color:var(--good)}
.cal-badge.overdue{border-color:rgba(252,165,165,.35);background:rgba(252,165,165,.10);color:var(--bad)}

/* ============================================================
   Firebase Auth + Connection Status + New Modules (2026-01-19)
============================================================ */

/* Auth modal */
.auth-modal{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.auth-modal.open{opacity:1;pointer-events:auto}
.auth-card{width:min(400px,90vw);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.auth-card h2{margin:0 0 16px;font-size:18px}
.auth-error{color:var(--bad);font-size:12px;margin-top:8px}
.auth-success{color:var(--good);font-size:12px;margin-top:8px}

/* Connection status */
.conn-status{display:flex;align-items:center;gap:6px;font-size:10px;font-family:var(--mono);padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,0.15);margin-bottom:8px}
.conn-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.conn-dot.online{background:var(--good)}
.conn-dot.offline{background:var(--bad)}
.conn-dot.loading{background:var(--warn);animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}

/* User menu */
.user-menu{position:relative}
.user-btn{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,0.03);cursor:pointer;font-size:12px;color:var(--text)}
.user-btn:hover{background:rgba(255,255,255,0.06)}
.user-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--wo-text-primary)}
.user-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;min-width:180px;display:none;z-index:50}
.user-dropdown.open{display:block}
.user-dropdown-item{padding:8px 12px;border-radius:8px;cursor:pointer;font-size:12px}
.user-dropdown-item:hover{background:rgba(255,255,255,0.05)}

/* Timestamp bar */
.ts-bar{display:flex;gap:16px;align-items:center;padding:8px 12px;background:rgba(0,0,0,0.25);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;font-size:11px;flex-wrap:wrap}
.ts-bar .ts-item{display:flex;align-items:center;gap:6px}
.ts-bar .ts-label{color:var(--muted);font-family:var(--mono)}
.ts-bar .ts-value{font-weight:700;color:var(--accent)}
.ts-bar .ts-stale{color:var(--bad)}

/* Exception cards */
.exc-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(0,0,0,0.15);margin-bottom:8px}
.exc-card.critical{border-color:rgba(252,165,165,0.40);background:rgba(252,165,165,0.08)}
.exc-card.warning{border-color:rgba(253,230,138,0.40);background:rgba(253,230,138,0.08)}
.exc-card.info{border-color:rgba(125,211,252,0.40);background:rgba(125,211,252,0.08)}
.exc-title{font-weight:900;font-size:13px;margin-bottom:4px}
.exc-detail{font-size:11px;color:var(--muted)}

/* Household styling */
.hh-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.hh-name{font-size:20px;font-weight:900;margin-bottom:4px}
.hh-meta{font-size:12px;color:var(--muted)}
.hh-stats{display:flex;gap:12px;flex-wrap:wrap}
.hh-stat{text-align:center;padding:12px 16px;background:rgba(0,0,0,0.25);border:1px solid var(--line);border-radius:12px;min-width:90px}
.hh-stat-value{font-size:16px;font-weight:900;margin-bottom:2px}
.hh-stat-label{font-size:10px;color:var(--muted);font-family:var(--mono)}
.member-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(0,0,0,0.12);margin-bottom:8px}
.member-name{font-weight:900}
.member-role{font-size:11px;color:var(--muted)}

/* Notes */
.note-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(0,0,0,0.12);margin-bottom:8px}
.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;flex-wrap:wrap;gap:8px}
.note-date{font-size:10px;color:var(--muted);font-family:var(--mono)}
.note-author{font-size:10px;color:var(--accent);margin-left:8px}
.note-content{font-size:13px;line-height:1.5}
.note-tags{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}

/* Audit preview */
.audit-preview{max-height:400px;overflow-y:auto}
.audit-preview-item{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,0.05);font-size:11px}
.audit-preview-item:hover{background:rgba(125,211,252,0.04)}
.audit-preview-time{color:var(--muted);font-family:var(--mono)}
.audit-preview-title{font-weight:700;margin-left:8px}

/* ============================================================
   Compliance Center + Regulatory Workflows (2026-01-19)
============================================================ */

/* Compliance checklist items */
.comp-checklist{display:flex;flex-direction:column;gap:8px}
.comp-item{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(0,0,0,0.12);display:flex;align-items:flex-start;gap:12px}
.comp-item.complete{border-color:rgba(134,239,172,0.35);background:rgba(134,239,172,0.08)}
.comp-item.overdue{border-color:rgba(252,165,165,0.35);background:rgba(252,165,165,0.08)}
.comp-item.pending{border-color:rgba(253,230,138,0.35);background:rgba(253,230,138,0.08)}
.comp-checkbox{width:20px;height:20px;border:2px solid var(--line);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.comp-checkbox.checked{background:var(--good);border-color:var(--good)}
.comp-checkbox.checked::after{content:"✓";color:var(--wo-text-primary);font-size:12px;font-weight:900}
.comp-content{flex:1}
.comp-title{font-weight:700;font-size:13px;margin-bottom:4px}
.comp-meta{font-size:11px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}
.comp-actions{display:flex;gap:6px;margin-top:8px}

/* Delivery tracking */
.delivery-row{display:grid;grid-template-columns:1fr 120px 120px 100px 80px;gap:8px;padding:10px;border-bottom:1px solid rgba(255,255,255,0.05);align-items:center;font-size:12px}
.delivery-row:hover{background:rgba(125,211,252,0.04)}
.delivery-header{font-weight:700;color:var(--muted);font-size:11px;background:rgba(0,0,0,0.15)}
@media(max-width:900px){.delivery-row{grid-template-columns:1fr 1fr;gap:6px}}

/* Required docs tracker */
.doc-req-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(0,0,0,0.12);margin-bottom:8px}
.doc-req-card.missing{border-color:rgba(252,165,165,0.35);background:rgba(252,165,165,0.08)}
.doc-req-card.expiring{border-color:rgba(253,230,138,0.35);background:rgba(253,230,138,0.08)}
.doc-req-card.valid{border-color:rgba(134,239,172,0.35);background:rgba(134,239,172,0.08)}
.doc-req-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.doc-req-title{font-weight:700}
.doc-req-status{font-size:10px;padding:3px 8px;border-radius:999px}
.doc-req-meta{font-size:11px;color:var(--muted)}

/* Attestation panel */
.attest-panel{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(0,0,0,0.15);margin-bottom:12px}
.attest-panel.attested{border-color:rgba(134,239,172,0.35);background:rgba(134,239,172,0.08)}
.attest-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.attest-title{font-weight:900;font-size:14px}
.attest-content{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:12px}
.attest-footer{display:flex;align-items:center;gap:12px;padding-top:10px;border-top:1px solid var(--line)}
.attest-stamp{font-size:10px;color:var(--good);font-family:var(--mono)}

/* Compliance stats */
.comp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}
.comp-stat{text-align:center;padding:16px;background:rgba(0,0,0,0.25);border:1px solid var(--line);border-radius:12px}
.comp-stat-value{font-size:24px;font-weight:900;margin-bottom:4px}
.comp-stat-label{font-size:10px;color:var(--muted);font-family:var(--mono)}
.comp-stat.good .comp-stat-value{color:var(--good)}
.comp-stat.warn .comp-stat-value{color:var(--warn)}
.comp-stat.bad .comp-stat-value{color:var(--bad)}

/* Regulatory export */
.export-section{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(0,0,0,0.12);margin-bottom:12px}
.export-section h3{margin:0 0 8px;font-size:14px}
.export-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* ============================================================
   Quiz Funnels + Almanac + Life Events (Batch 10)
============================================================ */

/* Quiz funnel cards */
.quiz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.quiz-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:rgba(0,0,0,0.12);cursor:pointer;transition:all 0.2s}
.quiz-card:hover{border-color:var(--accent);background:rgba(125,211,252,0.08)}
.quiz-card.completed{border-color:rgba(134,239,172,0.4);background:rgba(134,239,172,0.08)}
.quiz-title{font-weight:700;font-size:13px;margin-bottom:4px}
.quiz-cat{font-size:10px;color:var(--muted);margin-bottom:6px}
.quiz-desc{font-size:11px;color:var(--muted);line-height:1.4}
.quiz-status{margin-top:8px;font-size:10px}

/* Quiz funnel modal/flow */
.quiz-flow{max-width:600px;margin:0 auto}
.quiz-question{font-size:16px;font-weight:700;margin-bottom:16px;line-height:1.4}
.quiz-options{display:flex;flex-direction:column;gap:10px}
.quiz-option{padding:14px 18px;border:2px solid var(--line);border-radius:10px;cursor:pointer;transition:all 0.2s;font-size:14px}
.quiz-option:hover{border-color:var(--accent);background:rgba(125,211,252,0.1)}
.quiz-option.selected{border-color:var(--good);background:rgba(134,239,172,0.15)}
.quiz-result{padding:20px;border:2px solid var(--accent);border-radius:14px;background:rgba(125,211,252,0.08);margin-top:16px}
.quiz-result h3{margin:0 0 10px;color:var(--accent)}
.quiz-actions{display:flex;gap:10px;margin-top:16px}

/* Almanac / Dictionary */
.almanac-search{display:flex;gap:10px;margin-bottom:16px}
.almanac-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.almanac-level{padding:4px 10px;border-radius:999px;font-size:10px;cursor:pointer;border:1px solid var(--line);background:transparent}
.almanac-level.active{background:var(--accent);color:var(--wo-text-primary);border-color:var(--accent)}
.term-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:rgba(0,0,0,0.12);margin-bottom:10px}
.term-card.expanded{background:rgba(125,211,252,0.05);border-color:rgba(125,211,252,0.3)}
.term-header{display:flex;justify-content:space-between;align-items:flex-start;cursor:pointer}
.term-name{font-weight:900;font-size:14px}
.term-level{font-size:9px;padding:2px 6px;border-radius:4px;background:rgba(125,211,252,0.2);color:var(--accent)}
.term-cat{font-size:10px;color:var(--muted);margin-top:2px}
.term-def{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.5}
.term-details{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:none}
.term-card.expanded .term-details{display:block}
.term-math{font-family:var(--mono);font-size:12px;background:rgba(0,0,0,0.3);padding:10px;border-radius:8px;margin:8px 0;overflow-x:auto}
.term-example{font-size:11px;color:var(--good);margin-top:6px;font-style:italic}

/* Life Events */
.event-timeline{position:relative;padding-left:24px}
.event-timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--line)}
.event-item{position:relative;padding:12px;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,0.12);margin-bottom:12px;margin-left:16px}
.event-item::before{content:'';position:absolute;left:-24px;top:16px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--panel)}
.event-item.urgent::before{background:var(--bad)}
.event-item.completed::before{background:var(--good)}
.event-name{font-weight:700;font-size:13px}
.event-timing{font-size:10px;color:var(--muted);margin-top:2px}
.event-actions-list{margin-top:8px;font-size:11px}
.event-forms{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}

/* Accounts & Trusts */
.account-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.account-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:rgba(0,0,0,0.12)}
.account-card.tax-adv{border-left:3px solid var(--good)}
.account-card.taxable{border-left:3px solid var(--warn)}
.account-card.trust{border-left:3px solid var(--accent)}
.account-name{font-weight:900;font-size:14px;display:flex;align-items:center;gap:8px}
.account-type{font-size:9px;padding:2px 6px;border-radius:4px;background:rgba(134,239,172,0.2);color:var(--good)}
.account-limits{font-size:11px;margin-top:8px}
.account-limits .limit-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid rgba(255,255,255,0.05)}
.account-rules{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.5}

/* Strategies */
.strategy-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(0,0,0,0.12);margin-bottom:12px}
.strategy-card.high-impact{border-color:rgba(134,239,172,0.4)}
.strategy-header{display:flex;justify-content:space-between;align-items:flex-start}
.strategy-name{font-weight:900;font-size:15px}
.strategy-impact{font-size:10px;padding:3px 8px;border-radius:6px;background:rgba(134,239,172,0.2);color:var(--good)}
.strategy-desc{font-size:12px;color:var(--muted);margin:10px 0;line-height:1.5}
.strategy-eligibility{font-size:11px;padding:10px;background:rgba(0,0,0,0.2);border-radius:8px;margin:10px 0}
.strategy-steps{margin-top:10px}
.strategy-step{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:12px}
.strategy-step-num{width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--wo-text-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;flex-shrink:0}


/* Strategy Playbooks (Chunk 8) */
.playbook-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(0,0,0,0.12);margin-bottom:12px}
.playbook-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.playbook-name{font-weight:900;font-size:15px}
.playbook-impact{font-size:10px;padding:3px 8px;border-radius:999px;background:rgba(125,211,252,0.16);color:var(--accent);border:1px solid rgba(125,211,252,0.25)}
.playbook-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media (max-width: 920px){.playbook-grid{grid-template-columns:1fr}}
.pb-sec{border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:12px;background:rgba(0,0,0,0.18)}
.pb-h{font-size:10px;letter-spacing:.08em;color:var(--muted);font-family:var(--mono);text-transform:uppercase;margin-bottom:8px}
.pb-sec ul{margin:0;padding-left:18px;color:var(--muted);font-size:12px;line-height:1.55}
.pb-sec li{margin:6px 0}
.pb-disclosure{margin-top:12px;font-size:11px;color:var(--muted);padding:10px 12px;border-radius:12px;background:rgba(253,230,138,0.08);border:1px solid rgba(253,230,138,0.18)}


.pb-actions{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pb-actions .btn{padding:8px 10px}
.pb-actions .pb-pill{font-size:10px;border:1px solid rgba(255,255,255,0.12);padding:4px 8px;border-radius:999px;color:var(--muted);background:rgba(0,0,0,0.16)}

.intg-checklist{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.intg-step{border:1px solid rgba(255,255,255,0.08);background:rgba(0,0,0,0.18);border-radius:12px;padding:12px}
.intg-step h4{margin:0 0 6px;font-size:12px}
.intg-step ul{margin:0;padding-left:18px}
.intg-step li{margin:6px 0;color:var(--muted);font-size:12px;line-height:1.55}
@media (max-width: 920px){.intg-checklist{grid-template-columns:1fr}}


/* Admin Portal */
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.admin-stat{text-align:center;padding:20px;background:rgba(0,0,0,0.25);border:1px solid var(--line);border-radius:12px}
.admin-stat-value{font-size:28px;font-weight:900;color:var(--accent)}
.admin-stat-label{font-size:10px;color:var(--muted);margin-top:4px}
.admin-section{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(0,0,0,0.12);margin-bottom:12px}
.admin-section h3{margin:0 0 12px;font-size:14px}
.admin-user-row{display:grid;grid-template-columns:1fr 110px 170px 210px;gap:8px;padding:10px;border-bottom:1px solid rgba(255,255,255,0.05);align-items:center;font-size:12px}
.admin-user-row:hover{background:rgba(125,211,252,0.04)}


/* Admin modals + import preview */
.admin-modal{position:fixed;inset:0;z-index:220;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s}
.admin-modal.open{opacity:1;pointer-events:auto}
.admin-modal-card{width:min(720px,92vw);max-height:86vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.admin-modal-card h3{margin:0 0 12px;font-size:15px}
.admin-table{width:100%;border-collapse:collapse}
.admin-table th,.admin-table td{padding:10px 10px;border-bottom:1px solid rgba(255,255,255,0.06);font-size:12px;text-align:left;vertical-align:top}
.admin-table th{font-size:10px;letter-spacing:.08em;color:var(--muted);font-family:var(--mono);text-transform:uppercase}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.03);font-size:11px}
.admin-chip.bad{border-color:rgba(252,165,165,.35);background:rgba(252,165,165,.10);color:var(--bad)}
.admin-chip.warn{border-color:rgba(253,230,138,.35);background:rgba(253,230,138,.10);color:var(--warn)}
.admin-chip.ok{border-color:rgba(134,239,172,.35);background:rgba(134,239,172,.10);color:var(--good)}
.admin-import-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:12px}
@media (max-width: 980px){.admin-import-grid{grid-template-columns:1fr}}
.admin-map{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(0,0,0,0.16)}
.admin-map .row{justify-content:space-between}
.admin-preview{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(0,0,0,0.16);overflow:auto;max-height:360px}
.admin-preview table{min-width:720px}
.admin-validation{margin-top:10px;font-size:11px;color:var(--muted)}
.admin-validation .err{color:var(--bad)}
.admin-validation .ok{color:var(--good)}

/* Session timeout warning */
.session-warning{position:fixed;bottom:20px;right:20px;padding:16px 20px;background:rgba(253,230,138,0.95);color:var(--wo-text-primary);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.3);z-index:9999;display:none}
.session-warning.show{display:block}

/* ============================================================
   CLIENT PORTAL + ROLE-BASED UI (Batch C)
============================================================ */

/* Client portal header */
.client-portal-header{background:linear-gradient(135deg,rgba(125,211,252,0.15),rgba(134,239,172,0.1));border:1px solid rgba(125,211,252,0.3);border-radius:16px;padding:24px;margin-bottom:16px}
.client-portal-header h1{margin:0 0 8px;font-size:24px;color:var(--accent)}
.client-portal-header .welcome{font-size:14px;color:var(--muted)}
.client-portal-header .last-login{font-size:11px;color:var(--muted);margin-top:8px}

/* Client portal cards */
.portal-card{border:1px solid var(--line);border-radius:14px;padding:20px;background:rgba(0,0,0,0.12);margin-bottom:12px}
.portal-card h3{margin:0 0 12px;font-size:15px;display:flex;align-items:center;gap:8px}
.portal-card-icon{width:32px;height:32px;border-radius:8px;background:rgba(125,211,252,0.2);display:flex;align-items:center;justify-content:center;color:var(--accent);font-weight:700}

/* Holdings summary (read-only) */
.holdings-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.holding-item{padding:14px;background:rgba(0,0,0,0.2);border-radius:10px;border:1px solid var(--line)}
.holding-symbol{font-weight:900;font-size:14px;color:var(--accent)}
.holding-shares{font-size:12px;color:var(--muted)}
.holding-value{font-size:16px;font-weight:700;margin-top:4px}
.holding-change{font-size:11px}
.holding-change.up{color:var(--good)}
.holding-change.down{color:var(--bad)}

/* Task acknowledgment */
.task-ack{display:flex;align-items:center;gap:10px;padding:12px;background:rgba(253,230,138,0.1);border:1px solid rgba(253,230,138,0.3);border-radius:10px;margin-bottom:8px}
.task-ack.completed{background:rgba(134,239,172,0.1);border-color:rgba(134,239,172,0.3)}
.task-ack-check{width:24px;height:24px;border:2px solid var(--line);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.task-ack.completed .task-ack-check{background:var(--good);border-color:var(--good);color:var(--wo-text-primary)}
.task-ack-content{flex:1}
.task-ack-title{font-weight:700;font-size:13px}
.task-ack-due{font-size:11px;color:var(--muted)}

/* Document download list */
.doc-download-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
.doc-download-item:hover{background:rgba(125,211,252,0.05)}
.doc-download-info{display:flex;align-items:center;gap:10px}
.doc-download-icon{width:36px;height:36px;border-radius:8px;background:rgba(125,211,252,0.2);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:14px}
.doc-download-name{font-weight:600;font-size:13px}
.doc-download-meta{font-size:10px;color:var(--muted)}

/* Nav accordion groups */
.nav-group{margin-bottom:4px}
.nav-group-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;cursor:pointer;border-radius:6px}
.nav-group-header:hover{background:rgba(125,211,252,0.05)}
.nav-group-header .chevron{transition:transform 0.2s}
.nav-group.collapsed .chevron{transform:rotate(-90deg)}
.nav-group.collapsed .nav-group-items{display:none}
.nav-group-items{padding-left:0}

/* Role badge */
.role-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:9px;font-weight:700;text-transform:uppercase}
.role-badge.admin{background:rgba(248,113,113,0.2);color:var(--wo-negative)}
.role-badge.advisor{background:rgba(125,211,252,0.2);color:var(--accent)}
.role-badge.assistant{background:rgba(253,230,138,0.2);color:var(--wo-warning)}
.role-badge.client{background:rgba(134,239,172,0.2);color:var(--good)}

/* Portal tabs */
.portal-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:8px}
.portal-tab{padding:8px 16px;border-radius:8px 8px 0 0;cursor:pointer;font-size:12px;font-weight:600;color:var(--muted);background:transparent;border:none}
.portal-tab:hover{color:var(--fg);background:rgba(125,211,252,0.05)}
.portal-tab.active{color:var(--accent);background:rgba(125,211,252,0.1);border-bottom:2px solid var(--accent)}

/* Disclosure acknowledgment */
.disclosure-ack{padding:16px;border:2px solid rgba(253,230,138,0.4);border-radius:12px;background:rgba(253,230,138,0.08);margin-bottom:12px}
.disclosure-ack.acknowledged{border-color:rgba(134,239,172,0.4);background:rgba(134,239,172,0.08)}
.disclosure-title{font-weight:700;font-size:14px;margin-bottom:8px}
.disclosure-content{font-size:12px;color:var(--muted);margin-bottom:12px;max-height:100px;overflow-y:auto}
.disclosure-footer{display:flex;align-items:center;justify-content:space-between}

/* Permission denied overlay */
.permission-denied{text-align:center;padding:60px 40px}
.permission-denied-icon{font-size:48px;color:var(--bad);margin-bottom:16px}
.permission-denied h2{margin:0 0 8px;color:var(--bad)}
.permission-denied p{color:var(--muted);margin-bottom:16px}


  

    /* --- Exposure Ticker --- */
    .exposure-ticker{width:100%; overflow:hidden; border-radius:10px; border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.12); padding:8px 10px;}
    .exposure-track{display:inline-flex; gap:18px; white-space:nowrap; will-change:transform; animation: exposureScroll 22s linear infinite;}
    .exposure-item{display:inline-flex; align-items:center; gap:8px; padding:4px 8px; border-radius:999px; border:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.10);}
    .exposure-item .sym{font-weight:700; letter-spacing:.3px;}
    .exposure-item .pnl{font-variant-numeric: tabular-nums;}
    .exposure-item.ok{box-shadow: inset 0 0 0 1px rgba(0,255,120,.16);}
    .exposure-item.bad{box-shadow: inset 0 0 0 1px rgba(255,80,80,.18);}
    @keyframes exposureScroll{0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }



  /* Workspace Layouts (dev helper) */
  .ws-toolbar{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:10px 0;}
  .ws-toolbar .chip{padding:6px 10px; border:1px solid rgba(255,255,255,.18); border-radius:999px; font-size:12px; opacity:.9;}
  .ws-grid{display:grid; grid-template-columns:repeat(12, 1fr); gap:12px;}
  .ws-widget{border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:12px; background:rgba(0,0,0,.12);}
  .ws-widget h3{margin:0 0 8px 0; font-size:14px;}
  .ws-widget .ws-head{display:flex; align-items:center; justify-content:space-between; gap:10px;}
  .ws-pop{font-size:11px; padding:6px 10px; border-radius:10px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:inherit; cursor:pointer;}
  .ws-pop:hover{background:rgba(255,255,255,.10);}
  .ws-mini-table{width:100%; border-collapse:collapse;}
  .ws-mini-table td,.ws-mini-table th{padding:6px 8px; border-bottom:1px solid rgba(255,255,255,.08); font-size:12px;}
  .ws-muted{opacity:.75;}


/* RBAC: clients should not see shortcut hints */
html.rbac-client .search .k{ visibility:hidden; }
html.rbac-client .kbdhint{ visibility:hidden; }

/* ===== Onboarding Tour + Guardrails (Checkpoint: Onboarding) ===== */
.tour-fab{
  position:fixed; right:18px; bottom:18px; z-index:9998;
  width:44px; height:44px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(20,24,33,.92); color:var(--wo-card);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 28px rgba(0,0,0,.28);
  cursor:pointer;
}
.tour-fab:hover{ transform: translateY(-1px); }
.tour-overlay{
  position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,.35);
  backdrop-filter: blur(2px);
}
.tour-pop{
  position:fixed; z-index:10000;
  width:min(420px, calc(100vw - 28px));
  background:rgba(18,22,30,.98);
  color:var(--wo-card);
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  box-shadow:0 18px 42px rgba(0,0,0,.36);
  padding:14px 14px 12px 14px;
}
.tour-pop h4{ margin:0 0 6px 0; font-size:14px; letter-spacing:.2px; }
.tour-pop p{ margin:0 0 10px 0; font-size:12px; line-height:1.35; opacity:.92; }
.tour-pop .row{ display:flex; gap:8px; justify-content:flex-end; align-items:center; }
.tour-pop .btn{
  border-radius:12px; padding:8px 10px; font-size:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06); color:var(--wo-card);
}
.tour-pop .btn.primary{ background:rgba(89,123,255,.95); border-color:rgba(89,123,255,.55); }
.tour-pop .btn.ghost{ background:transparent; }
.tour-spot{
  position:fixed; z-index:9999;
  border-radius:14px;
  box-shadow:0 0 0 9999px rgba(0,0,0,.35);
  outline: 2px solid rgba(89,123,255,.95);
  pointer-events:none;
}
.guard-confirm{
  position:fixed; inset:0; z-index:10001;
  background:rgba(0,0,0,.42); backdrop-filter: blur(2px);
  display:flex; align-items:center; justify-content:center;
}
.guard-card{
  width:min(460px, calc(100vw - 28px));
  background:rgba(18,22,30,.98);
  color:var(--wo-card);
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  box-shadow:0 18px 42px rgba(0,0,0,.36);
  padding:14px;
}
.guard-card h3{ margin:0 0 6px 0; font-size:14px; }
.guard-card p{ margin:0 0 12px 0; font-size:12px; line-height:1.35; opacity:.92; }
.guard-card .row{ display:flex; justify-content:flex-end; gap:10px; }
.guard-card button{
  border-radius:12px; padding:8px 10px; font-size:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06); color:var(--wo-card);
}
.guard-card button.danger{ background:rgba(220,62,62,.92); border-color:rgba(220,62,62,.55); }
.undo-toast{
  position:fixed; left:50%; bottom:18px; transform:translateX(-50%);
  z-index:10002;
  display:flex; align-items:center; gap:10px;
  background:rgba(18,22,30,.98); color:var(--wo-card);
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  box-shadow:0 18px 42px rgba(0,0,0,.36);
  padding:10px 12px;
}
.undo-toast .msg{ font-size:12px; opacity:.92; }
.undo-toast button{
  border-radius:12px; padding:7px 9px; font-size:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06); color:var(--wo-card);
}
.undo-toast button.primary{ background:rgba(89,123,255,.95); border-color:rgba(89,123,255,.55); }


/* Liquidity Thermometer */
.thermo-wrap{display:flex;gap:18px;align-items:center;justify-content:flex-start}
.thermo-bar{width:22px;height:140px;border:1px solid rgba(255,255,255,.18);border-radius:999px;position:relative;background:rgba(255,255,255,.05);overflow:hidden}
.thermo-fill{position:absolute;left:0;right:0;bottom:0;background:rgba(255,255,255,.25)}
.thermo-legend{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
.dot{display:inline-block;width:8px;height:8px;border-radius:999px;margin-right:6px;background:rgba(255,255,255,.25)}
.dot.ok{background:rgba(120,255,180,.35)}
.dot.info{background:rgba(140,190,255,.35)}
.dot.warn{background:rgba(255,200,120,.35)}


/* ---------- Virtualized Mega Table (Book of Business) ---------- */
.vgrid{
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:rgba(255,255,255,0.02);
}
.vgrid-head{
  display:flex;
  align-items:center;
  gap:0;
  user-select:none;
  background:rgba(255,255,255,0.03);
  border-bottom:1px solid var(--line);
}
.vgrid-hcell{
  padding:10px 10px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--muted);
  border-right:1px solid rgba(255,255,255,0.03);
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}
.vgrid-hcell:last-child{border-right:none}
.vgrid-hcell .sort{
  font-size:11px;
  opacity:.75;
}
.vgrid-scroll{
  position:relative;
  height:600px;
  overflow:auto;
  contain:strict;
  will-change:scroll-position;
}
.vgrid-spacer{ width:1px; opacity:0; }
.vgrid-viewport{
  position:absolute;
  top:0; left:0; right:0;
}
.vgrid-row{
  display:flex;
  align-items:stretch;
  border-bottom:1px solid rgba(255,255,255,0.03);
}
.vgrid-row:last-child{border-bottom:none}
.vgrid-cell{
  padding:9px 10px;
  font-size:13px;
  border-right:1px solid rgba(255,255,255,0.03);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  display:flex;
  align-items:center;
}
.vgrid-cell:last-child{border-right:none}
.vgrid-row:hover{
  background:rgba(255,255,255,0.02);
}
.vgrid-row.group{
  background:rgba(255,255,255,0.02);
}
.vgrid-row.group .vgrid-cell{
  font-weight:900;
  color:var(--fg);
}
.vgrid-badge{
  font-size:11px;
  padding:2px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  opacity:.85;
}
.vgrid-mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:12px; }
/* ---------- Feature Navigator (advisor help) ---------- */
.navmap-card{
  width:min(860px, 100%);
}
.navmap-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.navmap-list{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:14px}
.navmap-item{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,0.03);cursor:pointer}
.navmap-item:last-child{border-bottom:none}
.navmap-item:hover{background:rgba(255,255,255,0.03)}
.navmap-path{font-size:12px;color:var(--muted);margin-top:4px}


/* ===========================
   Cockpit Layout Mode (Prompt 28)
   Off by default; toggle in Admin
   =========================== */
.cockpit-overlay{
  position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  display:flex; flex-direction:column;
}
.cockpit-topbar{
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,0.08);
  background:rgba(10,10,10,0.55);
  display:flex; justify-content:space-between; align-items:center; gap:10px;
}
.cockpit-stage{
  position:relative;
  flex:1;
  overflow:hidden;
}
.cockpit-panel{
  position:absolute;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:14px;
  background:rgba(24,24,24,0.92);
  box-shadow: 0 10px 30px rgba(0,0,0,0.35);
  display:flex; flex-direction:column;
  min-width:220px; min-height:140px;
}
.cockpit-ph{
  padding:10px 10px;
  border-bottom:1px solid rgba(255,255,255,0.10);
  cursor:move;
  user-select:none;
  display:flex; justify-content:space-between; align-items:center; gap:10px;
}
.cockpit-ph .title{ font-weight:800; letter-spacing:0.2px; }
.cockpit-pb{ padding:10px; overflow:auto; }
.cockpit-actions{ display:flex; gap:8px; align-items:center; }
.cockpit-resize{
  position:absolute; right:6px; bottom:6px;
  width:14px; height:14px;
  cursor:nwse-resize;
  opacity:0.7;
}
.cockpit-resize:before{
  content:"";
  position:absolute; inset:0;
  border-right:2px solid rgba(255,255,255,0.35);
  border-bottom:2px solid rgba(255,255,255,0.35);
  border-radius:2px;
}


    /* v5.0 */
    .openbb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
    .quote-card{padding:12px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,0.02)}
    .quote-card .symbol{font-weight:800;font-size:16px}.quote-card .price{font-size:20px;font-weight:700}
    .quote-card .change-up{color:var(--good)}.quote-card .change-down{color:var(--bad)}
    .rate-bar{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
    .rate-bar .maturity{min-width:60px;font-weight:600;font-size:12px}
    .rate-bar .yield-bar{flex:1;height:12px;background:rgba(255,255,255,0.05);border-radius:6px;overflow:hidden}
    .rate-bar .yield-fill{height:100%;background:var(--accent);border-radius:6px}
    .rate-bar .yield-val{min-width:50px;text-align:right;font-size:12px;font-weight:700}
    .news-item{padding:10px 0;border-bottom:1px solid var(--line)}
    .sentiment-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700}
    .sentiment-badge.positive{background:rgba(74,222,128,0.15);color:var(--wo-positive)}
    .sentiment-badge.negative{background:rgba(248,113,113,0.15);color:var(--wo-negative)}
    .sentiment-badge.neutral{background:rgba(251,191,36,0.15);color:var(--wo-warning)}
    .note-card{padding:12px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,0.02);transition:border-color 0.15s}
    .note-card:hover{border-color:var(--accent)}
    .note-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}
    .note-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}

    /* v5.1 UI Overhaul */
    /* --- Sidebar search + favorites --- */
    .nav-search{padding:0 4px 8px;position:sticky;top:0;z-index:2;background:inherit}
    .nav-search input{width:100%;padding:7px 10px 7px 28px;border:1px solid var(--line);border-radius:8px;background:rgba(0,0,0,0.3);color:var(--text);font-size:12px;outline:none}
    .nav-search input:focus{border-color:var(--accent)}
    .nav-search::before{content:'/';position:absolute;left:14px;top:8px;color:var(--muted);font-size:11px;font-family:var(--mono);pointer-events:none}
    .nav-fav-strip{display:flex;flex-wrap:wrap;gap:3px;padding:0 4px 6px}
    .nav-fav-btn{font-size:9px;padding:3px 7px;border-radius:6px;border:1px solid var(--line);background:rgba(125,211,252,0.06);color:var(--accent);cursor:pointer;white-space:nowrap;font-weight:600}
    .nav-fav-btn:hover{background:rgba(125,211,252,0.12)}
    .navbtn .fav-star{opacity:0;margin-left:auto;font-size:10px;cursor:pointer;color:var(--muted)}
    .navbtn:hover .fav-star{opacity:0.6}
    .navbtn .fav-star.is-fav{opacity:1;color:var(--wo-warning)}
    .nav-group-header .group-count{font-size:9px;color:var(--muted);margin-left:4px;opacity:0.7}
    
    /* --- Sidebar collapse toggle --- */
    .sidebar-toggle{position:absolute;right:-12px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:20;transition:0.15s}
    .sidebar-toggle:hover{background:var(--accent);color:var(--wo-text-primary)}
    body.sidebar-collapsed .sidebar{width:56px!important;min-width:56px!important;max-width:56px!important;overflow:hidden!important}
    body.sidebar-collapsed .sidebar .brand,body.sidebar-collapsed .sidebar .sidepanel,body.sidebar-collapsed .sidebar .nav-search,body.sidebar-collapsed .sidebar .nav-fav-strip,body.sidebar-collapsed .sidebar .conn-status,body.sidebar-collapsed .sidebar .wo-nav-toggle-wrap{display:none!important}
    body.sidebar-collapsed .nav-group-header span:first-child,body.sidebar-collapsed .nav-group-header .group-count,body.sidebar-collapsed .nav-group-header .chevron{display:none!important}
    body.sidebar-collapsed .navbtn span:not(.navicon){display:none!important}
    body.sidebar-collapsed .navbtn .fav-star{display:none!important}
    body.sidebar-collapsed .navbtn{justify-content:center!important;padding:8px!important}
    body.sidebar-collapsed .nav-group-header{justify-content:center!important;padding:8px 6px!important}
    body.sidebar-collapsed .app{grid-template-columns:56px 1fr!important}
    
    /* --- Client portal: hide sidebar + topbar --- */
    body.client-portal-mode .sidebar{display:none!important}
    body.client-portal-mode .app{grid-template-columns:1fr!important}
    body.client-portal-mode .topbar .righttools,
    body.client-portal-mode .topbar .searchwrap,
    body.client-portal-mode .topbar .theme-switch,
    body.client-portal-mode .topbar .qabar,
    body.client-portal-mode #btnNavigator,
    body.client-portal-mode #btnCockpit,
    body.client-portal-mode #btnAbout{display:none!important}
    body.client-portal-mode .topbar{padding:8px 16px}
    body.client-portal-mode .topbar .title::after{content:' — Client Portal';font-weight:400;color:var(--muted);font-size:14px}
    
    /* --- Print/PDF mode --- */
    @media print{
      body,html{background:var(--wo-card)!important;color:var(--wo-text-primary)!important;font-size:12px!important}
      *{color-adjust:exact;-webkit-print-color-adjust:exact;print-color-adjust:exact}
      .sidebar,.topbar,.qabar,.righttools,.conn-status,.sidepanel,
      .navbtn,.nav-group,.btn:not(.noprint-keep),.theme-switch,
      #globalSearch,.sidebar-toggle{display:none!important}
      .app{display:block!important;grid-template-columns:1fr!important}
      .main{padding:0!important;overflow:visible!important}
      .card{break-inside:avoid;border:1px solid var(--wo-border)!important;box-shadow:none!important;background:var(--wo-card)!important;color:var(--wo-text-primary)!important;margin-bottom:12px}
      .card h2,.title{color:var(--wo-text-primary)!important}
      table{font-size:11px}
      th{background:var(--wo-card)!important;color:var(--wo-text-primary)!important}
      td{border-color:var(--wo-border)!important}
      .tag{border:1px solid var(--wo-text-muted)!important;background:var(--wo-card)!important;color:var(--wo-text-primary)!important}
      .muted{color:var(--wo-text-secondary)!important}
      a{color:var(--wo-text-primary)!important;text-decoration:underline}
      .print-header{display:block!important;text-align:center;padding:12px 0;border-bottom:2px solid var(--wo-text-primary);margin-bottom:16px}
      .print-header h1{font-size:18px;margin:0}
      .print-header .subtitle{font-size:11px;color:var(--wo-text-secondary)}
    }
    body.print-mode{background:var(--wo-card)!important;color:var(--wo-text-primary)!important}
    body.print-mode .sidebar{display:none!important}
    body.print-mode .app{grid-template-columns:1fr!important}
    body.print-mode .topbar{display:none!important}
    body.print-mode .main{padding:20px!important}
    body.print-mode .card{background:var(--wo-card)!important;color:var(--wo-text-primary)!important;border:1px solid var(--wo-border)!important;box-shadow:none!important}
    body.print-mode h2,body.print-mode .title{color:var(--wo-text-primary)!important}
    body.print-mode table{background:var(--wo-card)!important}
    body.print-mode th{background:var(--wo-card)!important;color:var(--wo-text-primary)!important}
    body.print-mode .muted{color:var(--wo-text-secondary)!important}
    body.print-mode .tag{background:var(--wo-card)!important;color:var(--wo-text-primary)!important;border-color:var(--wo-text-muted)!important}
    body.print-mode .print-header{display:block!important}
    
    /* --- Visual polish --- */
    .metric-card{padding:16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,0.02);text-align:center}
    .metric-card .metric-value{font-size:28px;font-weight:800;line-height:1.2}
    .metric-card .metric-label{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:0.5px}
    .metric-card.good .metric-value{color:var(--good)}
    .metric-card.warn .metric-value{color:var(--warn)}
    .metric-card.bad .metric-value{color:var(--bad)}
    .mini-chart{height:40px;display:flex;align-items:flex-end;gap:1px}
    .mini-chart .bar{flex:1;background:var(--accent);border-radius:2px 2px 0 0;min-width:3px;transition:height 0.3s}
    .progress-ring{display:inline-flex;align-items:center;justify-content:center;position:relative}
    .progress-ring svg{transform:rotate(-90deg)}
    .progress-ring .ring-text{position:absolute;font-size:11px;font-weight:700}
    .scenario-card{padding:14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,0.02);transition:border-color 0.15s}
    .scenario-card:hover{border-color:var(--accent)}
    .scenario-card h4{margin:0 0 6px;font-size:13px}
    .expandable-row{cursor:pointer}
    .expandable-row .expand-icon{transition:transform 0.2s;display:inline-block}
    .expandable-row.expanded .expand-icon{transform:rotate(90deg)}
    .expand-content{display:none;padding:8px 0 8px 16px;border-left:2px solid var(--line)}
    .expandable-row.expanded + .expand-content{display:block}
    .print-header{display:none}
    
    /* --- Compact navbtn for dense sidebar --- */
    .navbtn{font-size:12px;padding:7px 10px}

    /* v5.2 Navy Professional Theme */
    /* Print mode */
    body.print-mode{background:var(--wo-card)!important;color:var(--wo-text-primary)!important}
    body.print-mode .sidebar,body.print-mode .topbar{display:none!important}
    body.print-mode .app{grid-template-columns:1fr!important}
    body.print-mode .card{background:var(--wo-card)!important;color:var(--wo-text-primary)!important;border:1px solid var(--wo-border)!important;box-shadow:none!important}
    body.print-mode table{background:var(--wo-card)!important}
    body.print-mode th{background:var(--wo-card)!important;color:var(--wo-text-primary)!important}

/* [BATCH46 Navigator Scroll + Cockpit Scroll START] */
#navmapOverlay .navmap-panel,
.navmap-panel{
  max-height: min(70vh, 640px);
  overflow: auto;
  overscroll-behavior: contain;
}
#navmapOverlay{pointer-events:auto;}
#navmapOverlay .navmap-panel{pointer-events:auto;}
/* Cockpit stage should scroll when many panels */
#cockpitStage, .cockpit-stage{
  overflow:auto !important;
  overscroll-behavior: contain;
}
/* [BATCH46 Navigator Scroll + Cockpit Scroll END] */

/* ═══ MODAL SYSTEM (replaces browser prompt() dialogs) ═══ */
.wo-modal-overlay {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(0,0,0,0.65); backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  animation: woFadeIn 0.15s ease-out;
}
@keyframes woFadeIn { from { opacity:0 } to { opacity:1 } }
.wo-modal {
  background: var(--wo-bg); border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px; width: 90%; max-width: 480px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
  animation: woSlideUp 0.15s ease-out;
}
@keyframes woSlideUp { from { transform: translateY(20px); opacity:0 } to { transform: translateY(0); opacity:1 } }
.wo-modal-header {
  padding: 14px 20px; font-size: 15px; font-weight: 700; color: var(--wo-accent);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.wo-modal-body {
  padding: 16px 20px; display: flex; flex-direction: column; gap: 12px;
}
.wo-modal-body label {
  display: flex; flex-direction: column; gap: 4px;
  font-size: 12px; color: var(--wo-text-secondary); font-weight: 600;
}
.wo-modal-body .inp,
.wo-modal-body input,
.wo-modal-body select {
  padding: 8px 12px; background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12); border-radius: 6px;
  color: var(--wo-text-primary); font-size: 13px; font-family: inherit;
}
.wo-modal-body input:focus,
.wo-modal-body select:focus {
  outline: none; border-color: var(--wo-accent); box-shadow: 0 0 0 2px rgba(var(--wo-accent-rgb),0.2);
}
.wo-modal-actions {
  padding: 12px 20px; display: flex; gap: 10px; justify-content: flex-end;
  border-top: 1px solid rgba(255,255,255,0.06);
}

/* ═══ PLANNING DISCLAIMER BANNER ═══ */
.wo-disclaimer {
  background: rgba(var(--wo-accent-rgb),0.06); border: 1px solid rgba(var(--wo-accent-rgb),0.2);
  border-radius: 6px; padding: 8px 14px; margin-top: 12px;
  font-size: 11px; color: var(--wo-text-secondary); line-height: 1.5;
}
.wo-disclaimer strong { color: var(--wo-accent); }

/* ═══ SIDEBAR SECTION BADGES (collapsed groups) ═══ */
.nav-group-badge {
  font-size: 10px; background: rgba(255,255,255,0.08); color: var(--wo-text-secondary);
  padding: 1px 6px; border-radius: 8px; margin-left: auto;
}

/* ═══ EMPTY STATE ═══ */
.wo-empty-state {
  text-align: center; padding: 48px 24px; color: var(--wo-text-secondary);
}
.wo-empty-state .wo-empty-icon {
  font-size: 48px; margin-bottom: 12px; opacity: 0.5;
}
.wo-empty-state h3 { color: var(--wo-text-secondary); margin: 0 0 8px; font-size: 16px; }
.wo-empty-state p { font-size: 13px; margin: 0 0 16px; }
.wo-empty-state .btn { font-size: 13px; }


/* Boot usability guard */
#woBootSplash{will-change:opacity;}
html.wo-app-usable #woBootSplash, body.wo-app-usable #woBootSplash{pointer-events:none!important;opacity:0!important;}

/* Batch 8 — desktop-first spacing, empty states, table sanity */
:root{
  --wo-content-max: 1720px;
}
.main{
  min-width: 0;
}
.content{
  width: 100%;
  max-width: var(--wo-content-max);
  margin: 0 auto;
}
.card h2,
.card .h2{
  letter-spacing: -0.02em;
}
.card .muted.small,
.muted.small{
  line-height: 1.5;
}
.table-empty,
.wo-empty-state,
.card .muted:only-child{
  border-radius: 14px;
}
body.wo-compact-tables table th,
body.wo-compact-tables table td{
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}
body.wo-compact-tables .field label{
  margin-bottom: 4px;
}
@media (max-width: 1280px){
  .content{max-width: 100%;}
}
@media (max-width: 860px){
  .topbar .righttools{flex-wrap:wrap;justify-content:flex-end}
  .searchwrap{width:100%}
}

.wo-shell-sidebar{position:sticky;top:0;height:100vh;max-height:100vh}
.wo-brand-block{padding:16px 14px 10px;border-bottom:1px solid rgba(255,255,255,0.06);flex-shrink:0;border-radius:0;background:linear-gradient(180deg,rgba(255,255,255,0.03),rgba(255,255,255,0.015))}
.wo-sidebar-scroll{overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain;padding:0 8px 10px}
.workspace-tools{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.workspace-tools .btn{min-width:92px}
.topbar--official .theme-switch{justify-self:end}
.topbar--official .qabar{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.topbar--official .user-menu{justify-self:end}
.navmap-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.navmap-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 8px;border-radius:999px;background:rgba(148,163,184,0.12);border:1px solid rgba(148,163,184,0.18);font-size:10px;font-weight:800;color:var(--wo-text-primary)}
.navmap-item{width:100%;background:transparent;border:0;text-align:left;display:block}
.navmap-item-title{font-weight:900}
@media (max-width:1400px){
  .topbar{grid-template-columns:minmax(220px,1fr) minmax(340px,1fr) auto}
  .searchwrap{grid-template-columns:minmax(240px,1fr) auto auto;grid-auto-flow:row dense}
  .topbar--official .qabar{grid-column:1 / -1;justify-content:flex-start}
}
@media (max-width:1180px){
  .topbar{grid-template-columns:1fr;gap:12px}
  .searchwrap{grid-template-columns:minmax(240px,1fr) auto auto auto}
  .workspace-tools,.topbar--official .qabar,.topbar--official .theme-switch,.topbar--official .user-menu{justify-self:start}
}


@media (min-width:981px){
  body.sidebar-collapsed .wo-shell-sidebar{width:56px!important;min-width:56px!important;max-width:56px!important}
  body:not(.sidebar-collapsed) .wo-shell-sidebar{width:var(--wo-sidebar-w,320px)!important}
  .wo-nav-scrim{pointer-events:none!important;display:none!important}
}


/* chunk3 interaction safety */
#content.loading{pointer-events:auto!important;opacity:1!important}
body.sidebar-collapsed .sidebar, body.sidebar-collapsed .wo-shell-sidebar{width:64px!important;min-width:64px!important;max-width:64px!important;flex:0 0 64px!important}
body.sidebar-collapsed .app{grid-template-columns:64px minmax(0,1fr)!important}


/* WO shell cleanup batch */

.wo-shell-sidebar{position:sticky;top:0;height:100vh;max-height:100vh;overflow:hidden;display:flex;flex-direction:column}
.sidebar-toggle{position:absolute;right:-12px;top:16px!important;transform:none!important;width:24px;height:24px;z-index:60}
.wo-side-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:0 10px 8px;align-items:center}
.wo-side-search-row .nav-search{margin:0!important;padding:0!important;position:relative!important;top:auto!important;background:none!important}
.wo-side-search-row .wo-nav-toggle-wrap{margin:0!important;padding:0!important;border:none!important;background:transparent!important}
.wo-side-search-row .wo-nav-toggle-label{display:none!important}
.wo-side-search-row .wo-nav-toggle{display:inline-flex;gap:4px;padding:4px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line)}
.wo-side-search-row .wo-nav-toggle button{min-width:64px;padding:8px 10px;border-radius:8px}
body.sidebar-collapsed .wo-side-search-row, body.sidebar-collapsed .nav-fav-strip, body.sidebar-collapsed .brand{display:none!important}
.sidebar .wo-sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:24px}
.topbar--official{padding:10px 16px 8px!important;gap:10px;align-items:flex-start}
.topbar--official .title{font-size:20px!important;line-height:1.1}
.topbar--official .subtitle{font-size:11px!important;opacity:.75}
.searchwrap{display:flex!important;align-items:center!important;gap:10px;flex-wrap:nowrap!important;justify-content:flex-end}
.searchwrap .search{width:min(420px,38vw);display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:14px}
.searchwrap .search .k{font-size:11px;min-width:18px;text-align:center}
.searchwrap .search input{min-width:0;flex:1 1 auto}
.searchwrap .search .btn.small{padding:7px 12px;height:auto}
.theme-switch,#btnNavyTheme,.qabar{display:none!important}
.workspace-tools{display:flex!important;align-items:center;gap:8px;white-space:nowrap}
#woBc .wo-breadcrumbs{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-top:4px}
#woBc .wo-breadcrumbs a{color:var(--wo-info);text-decoration:none}
#woBc .wo-breadcrumbs a:hover{text-decoration:underline}
#woBc .wo-breadcrumbs .active{color:var(--wo-warning);font-weight:700}


/* chunk17 shell coherence */
.wo-breadcrumbs-mount{margin-top:4px;min-height:18px}
.sidebar.wo-shell-ready{padding-top:10px}
.wo-side-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px 6px}
.wo-side-search-row .nav-search{margin:0!important}
.wo-side-search-row .wo-nav-toggle-wrap{margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.wo-nav-toggle-label{display:none!important}
.wo-nav-toggle{display:inline-flex;align-items:center;gap:4px;background:rgba(15,23,42,.7);border:1px solid rgba(148,163,184,.18);border-radius:12px;padding:4px}
.wo-nav-toggle button{height:32px;padding:0 12px;border-radius:9px;font-size:12px;font-weight:700}
.wo-shell-sidebar .brand{margin-bottom:2px}
.wo-shell-sidebar .nav-search input{height:38px;border-radius:10px}
.wo-shell-sidebar .nav,.wo-shell-sidebar #wo-consolidated-nav{padding-top:6px;overflow:auto; overscroll-behavior:contain;}
.topbar--official{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;padding:8px 14px 8px!important;gap:12px!important}
.topbar--official .top-left{min-width:0;display:flex;align-items:center}
.topbar--official .title{font-size:18px!important;line-height:1.05;margin:0}
.topbar--official .subtitle{font-size:11px!important;line-height:1.2;margin-top:2px}
.topbar--official .searchwrap{justify-self:end;min-width:0}
.topbar--official .search{height:38px;min-width:420px;max-width:520px;border-radius:12px;padding:0 8px 0 8px}
.topbar--official .search input{height:34px;font-size:13px}
.topbar--official .search .btn{height:30px;padding:0 12px}
.topbar--official .theme-switch,.topbar--official #btnNavyTheme,.topbar--official .qabar{display:none!important}
.topbar--official .righttools{display:flex;align-items:center;gap:6px;justify-self:end}
.topbar--official .righttools .btn,.topbar--official .user-btn{height:34px;padding:0 12px;border-radius:10px;font-size:12px}
.topbar--official .user-menu{justify-self:end}
.topbar--official .user-avatar{width:20px;height:20px;font-size:11px}
body.sidebar-collapsed .wo-side-search-row{grid-template-columns:1fr!important;padding:8px 8px 6px}
body.sidebar-collapsed .wo-side-search-row .wo-nav-toggle-wrap{display:none!important}
body.sidebar-collapsed .wo-shell-sidebar .nav-search input{padding-left:10px}
.sidebar-toggle{top:12px!important;right:-11px;width:22px;height:22px;box-shadow:0 3px 10px rgba(0,0,0,.28)}
@media (max-width: 1280px){.topbar--official{grid-template-columns:minmax(220px,1fr) auto;}.topbar--official .righttools{grid-column:2;}.topbar--official .user-menu{grid-column:2;justify-self:end;}.topbar--official .search{min-width:340px;max-width:420px;}}


/* chunk18 overrides */
#woBreadcrumbs, #wo-breadcrumb{display:none!important;}
.wo-shell-sidebar{overflow:hidden;}
.wo-shell-sidebar .wo-sidebar-scroll, .wo-shell-sidebar #nav, .wo-shell-sidebar #wo-consolidated-nav{overflow:auto; overscroll-behavior:contain;}
.sidebar-toggle{top:12px!important; right:-11px!important; z-index:120!important; cursor:pointer!important;}
body.sidebar-collapsed .wo-shell-sidebar, body.sidebar-collapsed .sidebar{width:64px!important;min-width:64px!important;max-width:64px!important;flex:0 0 64px!important;}
body:not(.sidebar-collapsed) .wo-shell-sidebar, body:not(.sidebar-collapsed) .sidebar{width:304px!important;min-width:304px!important;max-width:304px!important;flex:0 0 304px!important;}
body.sidebar-collapsed .app{grid-template-columns:64px minmax(0,1fr)!important;}
body:not(.sidebar-collapsed) .app{grid-template-columns:304px minmax(0,1fr)!important;}
.topbar--official{grid-template-columns:minmax(220px,1fr) auto auto!important;align-items:start!important;padding:8px 14px!important;gap:10px!important;}
.topbar--official .top-left{align-self:start;}
.topbar--official .title{font-size:28px!important;line-height:1.05!important;margin:0!important;}
.topbar--official .subtitle{font-size:13px!important;margin-top:3px!important;}
#woBc.wo-breadcrumbs-mount{display:block!important;margin-top:4px!important;min-height:18px!important;}

.cockpit-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cockpit-chip{border-radius:999px}
.cockpit-row{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.06)}
.cockpit-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.cockpit-stat{padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.02)}


/* cockpit + navigator restore from filardo-firebase 2 */
.cockpit-shell{display:grid !important;grid-template-columns:280px 1fr !important;gap:0;min-height:0;align-items:stretch}
.cockpit-shell.library-closed{grid-template-columns:0 1fr !important}
.cockpit-library{display:flex !important;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border-right:1px solid rgba(255,255,255,0.08);background:rgba(7,10,18,0.72)}
.cockpit-library.closed{display:none !important}
.cockpit-library-head{padding:12px 12px 10px;border-bottom:1px solid rgba(255,255,255,0.08);display:flex;flex-direction:column;gap:8px}
.cockpit-library-title{font-weight:800;font-size:12px;letter-spacing:.02em;text-transform:uppercase;color:var(--wo-text-primary)}
#cockpitLibrarySearch{width:100%;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.04);color:var(--wo-border);padding:0 10px;outline:none}
.cockpit-library-list{padding:10px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.cockpit-lib-section{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.cockpit-lib-section-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--wo-text-secondary);padding:2px 4px;position:sticky;top:0;z-index:2;background:rgba(10,18,30,.92);backdrop-filter:blur(6px)}
.cockpit-lib-section.active .cockpit-lib-section-title{color:var(--wo-warning)}
.cockpit-lib-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);color:var(--wo-border);text-align:left;cursor:pointer}
.cockpit-lib-item:hover{border-color:rgba(var(--wo-accent-rgb),0.45);background:rgba(var(--wo-accent-rgb),0.08)}
.cockpit-lib-item.active{border-color:rgba(16,185,129,0.45);background:rgba(16,185,129,0.10)}
.cockpit-lib-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.cockpit-lib-title{font-size:12px;font-weight:700;color:var(--wo-text-primary)}
.cockpit-lib-desc{font-size:10px;color:var(--wo-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cockpit-lib-act{font-size:11px;font-weight:700;color:var(--wo-accent);flex-shrink:0}
.cockpit-lib-item.inactive .cockpit-lib-act{color:var(--wo-info)}
.cockpit-lib-item.active .cockpit-lib-act{color:var(--wo-warning)}
.cockpit-lib-section.active .cockpit-lib-item{border-left:3px solid var(--wo-warning)}
.cockpit-lib-section.inactive .cockpit-lib-item{border-left:3px solid var(--wo-info)}
.cockpit-stage{min-height:0;position:relative;overflow:auto}
.cockpit-panel{min-width:240px;min-height:160px;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.cockpit-panel.expanded{left:2% !important;top:2% !important;width:96% !important;height:92% !important;z-index:12000 !important}
.cockpit-ph{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cockpit-actions{display:flex;gap:6px}
.cockpit-pb{padding:10px;overflow:auto}
.cockpit-chip{margin:0 6px 6px 0}
.cockpit-quote-row,.cockpit-list-row,.cockpit-note-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.navmap-item.recent .navmap-item-title:before{content:"↺ ";color:var(--wo-text-secondary)}
@media (max-width: 980px){
  .cockpit-shell,.cockpit-shell.library-open,.cockpit-shell.library-closed{grid-template-columns:1fr}
  .cockpit-library{display:none !important}
}


/* exact shell+cockpit+navigator override from firebase 2 */
.wo-shell-sidebar{position:sticky;top:0;height:100vh;max-height:100vh}
.wo-brand-block{padding:16px 14px 10px;border-bottom:1px solid rgba(255,255,255,0.06);flex-shrink:0;border-radius:0;background:linear-gradient(180deg,rgba(255,255,255,0.03),rgba(255,255,255,0.015))}
.wo-sidebar-scroll{overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain;padding:0 8px 10px}
.workspace-tools{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.workspace-tools .btn{min-width:92px}
.topbar--official .theme-switch{justify-self:end}
.topbar--official .qabar{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.topbar--official .user-menu{justify-self:end}
.navmap-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.navmap-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 8px;border-radius:999px;background:rgba(148,163,184,0.12);border:1px solid rgba(148,163,184,0.18);font-size:10px;font-weight:800;color:var(--wo-text-primary)}
.navmap-item{width:100%;background:transparent;border:0;text-align:left;display:block}
.navmap-item-title{font-weight:900}
@media (max-width:1400px){
  .topbar{grid-template-columns:minmax(220px,1fr) minmax(340px,1fr) auto}
  .searchwrap{grid-template-columns:minmax(240px,1fr) auto auto;grid-auto-flow:row dense}
  .topbar--official .qabar{grid-column:1 / -1;justify-content:flex-start}
}
@media (max-width:1180px){
  .topbar{grid-template-columns:1fr;gap:12px}
  .searchwrap{grid-template-columns:minmax(240px,1fr) auto auto auto}
  .workspace-tools,.topbar--official .qabar,.topbar--official .theme-switch,.topbar--official .user-menu{justify-self:start}
}
@media (min-width:981px){
  body.sidebar-collapsed .wo-shell-sidebar{width:56px!important;min-width:56px!important;max-width:56px!important}
  body:not(.sidebar-collapsed) .wo-shell-sidebar{width:var(--wo-sidebar-w,320px)!important}
  .wo-nav-scrim{pointer-events:none!important;display:none!important}
}
.topbar.topbar--official{padding:10px 14px !important;gap:10px !important;align-items:center !important;}
.topbar.topbar--official .title{font-size:22px !important;line-height:1.1 !important;}
.topbar.topbar--official .subtitle{font-size:12px !important;line-height:1.2 !important;opacity:.78 !important;}
.topbar.topbar--official .searchwrap{gap:8px !important;align-items:center !important;}
.topbar.topbar--official .search{min-height:38px !important;padding:0 10px !important;}
.topbar.topbar--official .btn.small{padding:7px 10px !important;font-size:11px !important;min-height:34px !important;}
.topbar.topbar--official .workspace-tools{gap:6px !important;}
.topbar.topbar--official .theme-switch .switch-text{display:none !important;}
.topbar.topbar--official #btnNavyTheme{margin-left:0 !important;}
@media (min-width: 981px){
  .topbar.topbar--official{grid-template-columns:minmax(180px,1fr) minmax(280px,1fr) auto !important;}
}
@media (min-width:981px){
  #woMenuOverlay,#woMenuPanel,#woNavScrim,.wo-nav-scrim{display:none!important;pointer-events:none!important;opacity:0!important;visibility:hidden!important}
}
#woBootSplash,#wo-boot-splash{pointer-events:none!important}
.topbar,.sidebar,#content,.main,.app{pointer-events:auto}
button,.btn,.navbtn,.navmap-item,[role=button]{pointer-events:auto!important}
.cockpit-chip{margin:0 6px 6px 0}
.cockpit-quote-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.05)}
.navmap-item.recent .navmap-item-title:before{content:"↺ ";color:var(--wo-text-secondary)}
@media (max-width: 980px){
  .cockpit-shell,.cockpit-shell.library-open,.cockpit-shell.library-closed{grid-template-columns:1fr}
  .cockpit-library{display:none}
}
.cockpit-shell{display:grid !important;grid-template-columns:280px 1fr !important;gap:0;min-height:0;align-items:stretch}
.cockpit-shell.library-closed{grid-template-columns:0 1fr !important}
.cockpit-library{display:flex !important;flex-direction:column;min-width:0;min-height:0;overflow:hidden}
.cockpit-library.closed{display:none !important}
.cockpit-stage{min-height:0;position:relative;overflow:auto}
.cockpit-panel{min-width:240px;min-height:160px;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.cockpit-panel.expanded{left:2% !important;top:2% !important;width:96% !important;height:92% !important;z-index:12000 !important}
.cockpit-ph{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cockpit-actions{display:flex;gap:6px}
.cockpit-pb{padding:10px;overflow:auto}
.cockpit-list-row,.cockpit-note-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.cockpit-note-row{display:block}
.cockpit-note-title{font-weight:700;margin-bottom:4px}
.cockpit-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cockpit-chart-shell{display:flex;flex-direction:column;gap:8px;height:100%}
.cockpit-bars{display:flex;align-items:flex-end;gap:8px;height:120px;padding:8px;border-radius:12px;background:rgba(255,255,255,.03)}
.cockpit-bars span{display:block;flex:1;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,var(--accent),rgba(var(--wo-accent-rgb),.28))}
.cockpit-lib-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.03);cursor:pointer}
.cockpit-lib-item.active{border-color:rgba(var(--wo-accent-rgb),.38);background:rgba(var(--wo-accent-rgb),.08)}
.cockpit-chip{margin:0 6px 6px 0}
.wo-megamenu-inner{display:grid;grid-template-columns:repeat(var(--wo-mm-cols,3),minmax(0,1fr));gap:16px}
.wo-mm-group{min-width:0}
.wo-mm-title{position:sticky;top:0;background:rgba(9,12,20,.98);padding-bottom:6px;margin-bottom:8px;z-index:1}
.wo-mm-items{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow:auto}

/* ── Batch 3: Data Provenance badge classes (canonical definitions) ── */
.wo-prov-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;letter-spacing:.04em;padding:1px 5px;border-radius:4px;vertical-align:middle;white-space:nowrap;user-select:none;line-height:1.4}
.prov-live{color:var(--wo-positive);background:rgba(16,185,129,.10)}
.prov-cached{color:var(--wo-text-secondary);background:rgba(148,163,184,.10)}
.prov-manual{color:var(--wo-accent);background:rgba(var(--wo-accent-rgb),.10)}
.prov-demo{color:var(--wo-warning);background:rgba(245,158,11,.13)}
.prov-estimated{color:var(--wo-info);background:rgba(139,92,246,.10)}
.wo-prov-demo-banner{width:100%;padding:8px 12px;border-radius:8px;margin-bottom:12px;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.32);color:var(--wo-warning);font-size:12px;font-weight:700}

/* ═══════════════════════════════════════════════════════════════
   BATCH 6 — Visual Unification Pass
   FIX 2: Three-way theme picker
   FIX 3: Topbar cleanup & Apple-calm layout
   FIX 4: Sidebar visual hierarchy
   FIX 5: Card + table + button system
   FIX 6: Light theme structural fixes
   ═══════════════════════════════════════════════════════════════ */

/* ── FIX 2: Theme Picker ─────────────────────────────────── */
.wo-theme-picker {
  display: flex;
  gap: 4px;
  align-items: center;
}
.wo-theme-picker button {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--wo-border);
  background: var(--wo-card);
  color: var(--wo-text-secondary);
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
  padding: 0;
  line-height: 1;
}
.wo-theme-picker button:hover {
  border-color: var(--wo-accent);
  color: var(--wo-accent);
}
.wo-theme-picker button.active {
  border-color: var(--wo-accent);
  color: var(--wo-accent);
  background: var(--wo-accent-muted);
}

/* ── FIX 3: Topbar — Apple-calm 52px rail ───────────────── */
.topbar,
.topbar.topbar--official {
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  background: var(--wo-panel) !important;
  border-bottom: 1px solid var(--wo-border) !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 16px !important;
  gap: 12px !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  /* override grid layout from earlier rules */
  grid-template-columns: unset !important;
}

.topbar .top-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
  flex: 0 0 auto;
}
.topbar .title {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--wo-text-primary) !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  margin: 0 !important;
}
.topbar .subtitle {
  font-size: 11px !important;
  color: var(--wo-text-muted) !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  display: block !important;
  margin: 0 !important;
}

/* Center: search fills remaining space */
.topbar .searchwrap {
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
}
.topbar .search {
  width: 100% !important;
  max-width: 480px !important;
  height: 32px !important;
  background: var(--wo-bg) !important;
  border: 1px solid var(--wo-border) !important;
  border-radius: var(--wo-radius-sm) !important;
  color: var(--wo-text-primary) !important;
  font-size: 13px !important;
  padding: 0 10px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.topbar .search input {
  width: 100% !important;
  height: 100% !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  color: var(--wo-text-primary) !important;
  font-size: 13px !important;
  font-family: var(--sans) !important;
}
.topbar .search input::placeholder {
  color: var(--wo-text-muted);
}
.topbar .search .k {
  color: var(--wo-text-muted);
  font-family: var(--mono);
  font-size: 11px;
  flex: 0 0 auto;
}

/* Right tools zone */
.topbar .righttools,
.topbar .workspace-tools {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
}

/* Hide old theme controls universally */
.theme-switch,
#btnNavyTheme,
.qabar,
#btnAbout,
#btnGoSearch {
  display: none !important;
}

/* ── FIX 4: Sidebar visual hierarchy ────────────────────── */
.sidebar,
.wo-shell-sidebar {
  background: var(--wo-panel) !important;
  border-right: 1px solid var(--wo-border) !important;
  width: 220px !important;
  min-width: 220px !important;
}
body.sidebar-collapsed .sidebar,
body.sidebar-collapsed .wo-shell-sidebar {
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
}
body.sidebar-collapsed .app {
  grid-template-columns: 52px minmax(0,1fr) !important;
}
body:not(.sidebar-collapsed) .app {
  grid-template-columns: 220px minmax(0,1fr) !important;
}

.nav-group-header {
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--wo-text-muted) !important;
  padding: 16px 12px 4px !important;
  cursor: pointer !important;
}

.navbtn {
  height: 34px !important;
  padding: 0 12px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border-radius: var(--wo-radius-sm) !important;
  margin: 1px 8px !important;
  color: var(--wo-text-secondary) !important;
  background: transparent !important;
  border: none !important;
  transition: background 0.12s, color 0.12s !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: calc(100% - 16px) !important;
  cursor: pointer !important;
  text-align: left !important;
}
.navbtn:hover {
  background: rgba(var(--wo-accent-rgb), 0.06) !important;
  color: var(--wo-text-primary) !important;
  transform: none !important;
}
.navbtn.active {
  background: var(--wo-accent-muted) !important;
  color: var(--wo-accent) !important;
  font-weight: 600 !important;
  border: none !important;
  box-shadow: none !important;
}
.navbtn.active .navicon {
  background: var(--wo-accent-muted) !important;
  border-color: var(--wo-accent) !important;
  color: var(--wo-accent) !important;
}

/* ── FIX 5: Card + table + button system ─────────────────── */
.card {
  background: var(--wo-card) !important;
  border: 1px solid var(--wo-border) !important;
  border-radius: var(--wo-radius-md) !important;
  padding: 20px !important;
  box-shadow: var(--wo-shadow-sm) !important;
}

thead th {
  background: var(--wo-panel) !important;
  color: var(--wo-text-muted) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  padding: 8px 12px !important;
  border-bottom: 1px solid var(--wo-border) !important;
  text-shadow: none !important;
}
tbody td {
  padding: 10px 12px !important;
  font-size: 13px !important;
  color: var(--wo-text-primary) !important;
  border-bottom: 1px solid var(--wo-border) !important;
}
tbody tr:hover {
  background: rgba(255,255,255,0.025) !important;
}
tbody tr:hover td {
  background: transparent !important;
}

/* Buttons */
.btn {
  height: 32px !important;
  padding: 0 14px !important;
  font-size: 13px !important;
  border-radius: var(--wo-radius-sm) !important;
  background: var(--wo-card) !important;
  border: 1px solid var(--wo-border) !important;
  color: var(--wo-text-primary) !important;
  cursor: pointer !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: border-color 0.12s, color 0.12s, background 0.12s !important;
  transform: none !important;
  box-shadow: none !important;
  white-space: nowrap !important;
}
.btn:hover {
  border-color: var(--wo-accent) !important;
  color: var(--wo-accent) !important;
  background: var(--wo-card) !important;
  box-shadow: none !important;
  transform: none !important;
}
.btn.primary, .btn-primary {
  background: var(--wo-accent) !important;
  border-color: var(--wo-accent) !important;
  color: var(--wo-card) !important;
  font-weight: 600 !important;
}
.btn.primary:hover, .btn-primary:hover {
  background: var(--wo-accent-hover) !important;
  border-color: var(--wo-accent-hover) !important;
  color: var(--wo-card) !important;
}
.btn.small {
  height: 28px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
}

/* Remove "internal" pill from command palette */
.cmdrow .r {
  display: none !important;
}

/* ── FIX 6: Light theme structural overrides ─────────────── */
:root[data-theme="light"] .topbar,
:root[data-theme="light"] .topbar.topbar--official {
  background: var(--wo-panel) !important;
  border-bottom: 1px solid var(--wo-border) !important;
}
:root[data-theme="light"] .topbar .title {
  color: var(--wo-text-primary) !important;
}
:root[data-theme="light"] .sidebar,
:root[data-theme="light"] .wo-shell-sidebar {
  background: var(--wo-panel) !important;
  border-right: 1px solid var(--wo-border) !important;
}
:root[data-theme="light"] .card {
  background: var(--wo-card) !important;
  border: 1px solid var(--wo-border) !important;
  box-shadow: var(--wo-shadow-sm) !important;
}
:root[data-theme="light"] .main,
:root[data-theme="light"] #content {
  background: var(--wo-bg) !important;
}
:root[data-theme="light"] .navbtn.active {
  background: var(--wo-accent-muted) !important;
  color: var(--wo-accent) !important;
}
:root[data-theme="light"] tbody tr:hover {
  background: rgba(var(--wo-accent-rgb), 0.04) !important;
}
:root[data-theme="light"] .toast {
  background: var(--wo-card) !important;
  border-color: var(--wo-border) !important;
  color: var(--wo-text-primary) !important;
}
:root[data-theme="light"] .toast .t-msg {
  color: var(--wo-text-secondary) !important;
}
:root[data-theme="light"] .btn {
  background: var(--wo-card) !important;
  border-color: var(--wo-border) !important;
  color: var(--wo-text-primary) !important;
}
:root[data-theme="light"] .btn:hover {
  border-color: var(--wo-accent) !important;
  color: var(--wo-accent) !important;
}
:root[data-theme="light"] ::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.15);
}
:root[data-theme="light"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(0,0,0,0.25);
}

/* Light mode: suppress dark backgrounds on structural elements */
:root[data-theme="light"] .main {
  background: var(--wo-bg) !important;
  background-image: none !important;
}
:root[data-theme="light"] body {
  background: var(--wo-bg) !important;
  background-image: none !important;
}
:root[data-theme="light"] body::before {
  display: none !important; /* remove dark radial gradient overlay */
}


/* Merged from wo-b6.css (legacy final-authority overrides) */
/* ═══════════════════════════════════════════════════════════════
   wo-b6.css — Batch 6 Final Authority Overrides
   Loaded LAST — wins over wo-premium.css + wo-ui-upgrade.css.
   CSS and shell HTML only. No logic. Three-theme aware.
   ═══════════════════════════════════════════════════════════════ */

/* ── Topbar: enforce flex (beats old grid from earlier batches) ── */
.topbar,
.topbar.topbar--official {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  padding: 0 16px !important;
  gap: 12px !important;
  background: var(--wo-panel) !important;
  border-bottom: 1px solid var(--wo-border) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-left: none !important;
  box-shadow: 0 1px 0 var(--wo-border) !important;
}
.topbar .top-left { flex: 0 0 auto; display: flex; flex-direction: column; justify-content: center; gap: 0; min-width: 0; }
.topbar .title { font-size: 14px !important; font-weight: 700 !important; color: var(--wo-text-primary) !important; line-height: 1.2 !important; white-space: nowrap; margin: 0 !important; }
.topbar .subtitle { font-size: 11px !important; color: var(--wo-text-muted) !important; margin: 0 !important; line-height: 1.2 !important; white-space: nowrap; display: block !important; }
.topbar .searchwrap { flex: 1 1 auto !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 0 !important; min-width: 0 !important; }
.topbar .search { width: 100% !important; max-width: 480px !important; height: 32px !important; background: var(--wo-bg) !important; border: 1px solid var(--wo-border) !important; border-radius: var(--wo-radius-sm) !important; padding: 0 10px !important; display: flex !important; align-items: center !important; gap: 8px !important; box-shadow: none !important; backdrop-filter: none !important; }
.topbar .search input { width: 100% !important; background: transparent !important; border: none !important; outline: none !important; color: var(--wo-text-primary) !important; font-size: 13px !important; box-shadow: none !important; }
.topbar .search input::placeholder { color: var(--wo-text-muted); }
.topbar .righttools, .topbar .workspace-tools { flex: 0 0 auto !important; display: flex !important; align-items: center !important; gap: 6px !important; flex-wrap: nowrap !important; }
.theme-switch, #theme-toggle, #btnNavyTheme, .qabar, #btnAbout, #btnGoSearch { display: none !important; }

/* ── Theme picker ─────────────────────────────────────────── */
.wo-theme-picker { display: flex; gap: 4px; align-items: center; flex-shrink: 0; }
.wo-theme-picker button { width: 28px !important; height: 28px !important; border-radius: 50% !important; border: 1px solid var(--wo-border) !important; background: var(--wo-card) !important; color: var(--wo-text-secondary) !important; cursor: pointer !important; font-size: 14px !important; display: flex !important; align-items: center !important; justify-content: center !important; padding: 0 !important; line-height: 1 !important; transition: border-color 0.12s, color 0.12s !important; box-shadow: none !important; transform: none !important; }
.wo-theme-picker button:hover { border-color: var(--wo-accent) !important; color: var(--wo-accent) !important; transform: none !important; }
.wo-theme-picker button.active { border-color: var(--wo-accent) !important; color: var(--wo-accent) !important; background: var(--wo-accent-muted) !important; }

/* ── Sidebar ──────────────────────────────────────────────── */
.sidebar, .wo-shell-sidebar { background: var(--wo-panel) !important; background-image: none !important; border-right: 1px solid var(--wo-border) !important; box-shadow: none !important; }
body:not(.sidebar-collapsed) .app { grid-template-columns: 220px minmax(0,1fr) !important; }
body.sidebar-collapsed .app { grid-template-columns: 52px minmax(0,1fr) !important; }
body:not(.sidebar-collapsed) .sidebar, body:not(.sidebar-collapsed) .wo-shell-sidebar { width: 220px !important; min-width: 220px !important; max-width: 220px !important; flex: 0 0 220px !important; }
body.sidebar-collapsed .sidebar, body.sidebar-collapsed .wo-shell-sidebar { width: 52px !important; min-width: 52px !important; max-width: 52px !important; flex: 0 0 52px !important; }

/* ── Nav buttons ─────────────────────────────────────────── */
.navbtn { height: 34px !important; padding: 0 12px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: var(--wo-radius-sm) !important; margin: 1px 8px !important; color: var(--wo-text-secondary) !important; background: transparent !important; border: none !important; border-left: none !important; box-shadow: none !important; transform: none !important; transition: background 0.12s, color 0.12s !important; display: flex !important; align-items: center !important; gap: 10px !important; width: calc(100% - 16px) !important; cursor: pointer !important; text-align: left !important; }
.navbtn:hover { background: rgba(var(--wo-accent-rgb), 0.06) !important; color: var(--wo-text-primary) !important; border: none !important; box-shadow: none !important; transform: none !important; }
.navbtn.active { background: var(--wo-accent-muted) !important; color: var(--wo-accent) !important; font-weight: 600 !important; border: none !important; border-left: none !important; box-shadow: none !important; }
.navbtn.active .navicon { background: var(--wo-accent-muted) !important; border-color: var(--wo-accent) !important; color: var(--wo-accent) !important; box-shadow: none !important; }
.nav-group-header { font-size: 10px !important; font-weight: 700 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; color: var(--wo-text-muted) !important; padding: 16px 12px 4px !important; cursor: pointer !important; }

/* ── Buttons ─────────────────────────────────────────────── */
.btn { height: 32px !important; padding: 0 14px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: var(--wo-radius-sm) !important; background: var(--wo-card) !important; border: 1px solid var(--wo-border) !important; color: var(--wo-text-primary) !important; cursor: pointer !important; display: inline-flex !important; align-items: center !important; gap: 6px !important; transition: border-color 0.12s, color 0.12s !important; transform: none !important; box-shadow: none !important; white-space: nowrap !important; }
.btn:hover { border-color: var(--wo-accent) !important; color: var(--wo-accent) !important; background: var(--wo-card) !important; box-shadow: none !important; transform: none !important; }
.btn:active { transform: none !important; box-shadow: none !important; }
.btn.primary, .btn-primary { background: var(--wo-accent) !important; border-color: var(--wo-accent) !important; color: var(--wo-card) !important; font-weight: 600 !important; }
.btn.primary:hover, .btn-primary:hover { background: var(--wo-accent-hover) !important; border-color: var(--wo-accent-hover) !important; color: var(--wo-card) !important; transform: none !important; }
.btn.small { height: 28px !important; padding: 0 10px !important; font-size: 12px !important; }

/* ── Tables ──────────────────────────────────────────────── */
thead th { background: var(--wo-panel) !important; color: var(--wo-text-muted) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.05em !important; text-transform: uppercase !important; padding: 8px 12px !important; border-bottom: 1px solid var(--wo-border) !important; text-shadow: none !important; backdrop-filter: none !important; }
tbody td { padding: 10px 12px !important; font-size: 13px !important; color: var(--wo-text-primary) !important; border-bottom: 1px solid var(--wo-border) !important; }
:root[data-theme="bloomberg"] tbody tr:hover td, :root[data-theme="night"] tbody tr:hover td { background: rgba(255,255,255,0.025) !important; }
:root[data-theme="light"] tbody tr:hover td { background: rgba(var(--wo-accent-rgb), 0.04) !important; }

/* ── Focus ring ──────────────────────────────────────────── */
:where(a, button, .btn, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--wo-accent); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(var(--wo-accent-rgb), 0.15); }

/* ══════════════════════════════════════════════════════════
   LIGHT THEME — all structural overrides
   ══════════════════════════════════════════════════════════ */
:root[data-theme="light"] body { background: var(--wo-bg) !important; background-image: none !important; color: var(--wo-text-primary) !important; }
:root[data-theme="light"] body::before { display: none !important; }
:root[data-theme="light"] .main, :root[data-theme="light"] #content { background: var(--wo-bg) !important; background-image: none !important; }
:root[data-theme="light"] .topbar, :root[data-theme="light"] .topbar.topbar--official { background: var(--wo-panel) !important; border-bottom: 1px solid var(--wo-border) !important; box-shadow: 0 1px 0 var(--wo-border) !important; }
:root[data-theme="light"] .card, :root[data-theme="light"] .wo-card, :root[data-theme="light"] .metric-card, :root[data-theme="light"] .portal-card, :root[data-theme="light"] .account-card, :root[data-theme="light"] .strategy-card, :root[data-theme="light"] .quiz-card, :root[data-theme="light"] .term-card { background: var(--wo-card) !important; background-image: none !important; border: 1px solid var(--wo-border) !important; box-shadow: var(--wo-shadow-sm) !important; backdrop-filter: none !important; }
:root[data-theme="light"] .card::before { display: none !important; }
:root[data-theme="light"] .card:hover { box-shadow: var(--wo-shadow-md) !important; border-color: rgba(var(--wo-accent-rgb), 0.25) !important; transform: none !important; }
:root[data-theme="light"] .sidebar, :root[data-theme="light"] .wo-shell-sidebar { background: var(--wo-panel) !important; border-right: 1px solid var(--wo-border) !important; }
:root[data-theme="light"] input[type="text"], :root[data-theme="light"] input[type="number"], :root[data-theme="light"] input[type="date"], :root[data-theme="light"] input[type="email"], :root[data-theme="light"] input[type="password"], :root[data-theme="light"] select, :root[data-theme="light"] textarea { background: var(--wo-card) !important; border-color: var(--wo-border) !important; color: var(--wo-text-primary) !important; box-shadow: none !important; }
:root[data-theme="light"] input:focus, :root[data-theme="light"] select:focus, :root[data-theme="light"] textarea:focus { border-color: var(--wo-accent) !important; box-shadow: 0 0 0 2px rgba(var(--wo-accent-rgb), 0.15) !important; }
:root[data-theme="light"] .btn { background: var(--wo-card) !important; border-color: var(--wo-border) !important; color: var(--wo-text-primary) !important; box-shadow: none !important; }
:root[data-theme="light"] .btn:hover { border-color: var(--wo-accent) !important; color: var(--wo-accent) !important; background: var(--wo-card) !important; }
:root[data-theme="light"] .btn.primary, :root[data-theme="light"] .btn-primary { background: var(--wo-accent) !important; color: var(--wo-card) !important; border-color: var(--wo-accent) !important; }
:root[data-theme="light"] .toast { background: var(--wo-card) !important; border: 1px solid var(--wo-border) !important; box-shadow: var(--wo-shadow-md) !important; }
:root[data-theme="light"] .toast .t-title { color: var(--wo-text-primary); }
:root[data-theme="light"] .toast .t-msg { color: var(--wo-text-secondary); }
:root[data-theme="light"] .wo-modal { background: var(--wo-panel) !important; border: 1px solid var(--wo-border) !important; box-shadow: var(--wo-shadow-lg) !important; }
:root[data-theme="light"] .wo-modal-header { color: var(--wo-accent) !important; border-bottom-color: var(--wo-border) !important; }
:root[data-theme="light"] .brand, :root[data-theme="light"] .wo-brand-block { background: var(--wo-panel) !important; border-color: var(--wo-border) !important; box-shadow: none !important; }
:root[data-theme="light"] .pill { background: var(--wo-bg) !important; border-color: var(--wo-border) !important; color: var(--wo-text-secondary) !important; }
:root[data-theme="light"] .tag { background: var(--wo-bg) !important; border-color: var(--wo-border) !important; color: var(--wo-text-primary) !important; }
:root[data-theme="light"] .tag.ok { background: rgba(52,199,89,0.10) !important; border-color: rgba(52,199,89,0.30) !important; color: var(--wo-positive) !important; }
:root[data-theme="light"] .tag.warn { background: rgba(255,149,0,0.10) !important; border-color: rgba(255,149,0,0.30) !important; color: var(--wo-warning) !important; }
:root[data-theme="light"] .tag.bad { background: rgba(255,59,48,0.10) !important; border-color: rgba(255,59,48,0.30) !important; color: var(--wo-negative) !important; }
:root[data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); }
:root[data-theme="light"] ::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.25); }

/* ══════════════════════════════════════════════════════════
   NIGHT THEME — keep pure black, suppress gradients
   ══════════════════════════════════════════════════════════ */
:root[data-theme="night"] body { background: var(--wo-bg) !important; background-image: none !important; }
:root[data-theme="night"] body::before { display: none !important; }
:root[data-theme="night"] .main, :root[data-theme="night"] #content { background: var(--wo-bg) !important; background-image: none !important; }



/* Hub navigation */
.wo-hub-tabs-wrap {
  position: relative;
  background: var(--wo-panel);
  border-bottom: 1px solid var(--wo-border);
}
.wo-hub-tabs-wrap::after {
  content: '';
  position: absolute;
  right: 0; top: 0; bottom: 1px;
  width: 40px;
  background: linear-gradient(to right, transparent, var(--wo-panel));
  pointer-events: none;
  z-index: 1;
}
.wo-hub-tabs {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  gap: 2px;
  padding: 0 16px;
  scrollbar-width: none;
  -ms-overflow-style: none;
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--wo-panel);
  border-bottom: none;
}
.wo-hub-tabs::-webkit-scrollbar {
  display: none;
}
.wo-hub-tab {
  flex-shrink: 0;
  height: 38px;
  padding: 0 16px;
  font-size: 12px;
  font-weight: 600;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--wo-text-secondary);
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.12s, border-color 0.12s;
}
.wo-hub-tab:hover {
  color: var(--wo-text-primary);
  background: rgba(var(--wo-accent-rgb), 0.04);
}
.wo-hub-tab.active {
  color: var(--wo-accent);
  border-bottom-color: var(--wo-accent);
  background: transparent;
}
#woHubContent {
  padding: 0;
  min-height: 400px;
}
.nav-divider {
  height: 1px;
  background: var(--wo-border);
  margin: 6px 16px;
}


/* ===== April 10 fix pass: contrast, navigator overflow, shell spacing ===== */
:root[data-theme="bloomberg"] {
  --wo-bg: #0b1016;
  --wo-panel: #111824;
  --wo-card: #17202c;
  --wo-border: #2a3647;
  --wo-text-secondary: #a5b2c4;
  --wo-text-muted: #748196;
}
:root[data-theme="night"] {
  --wo-bg: #05070b;
  --wo-panel: #10141a;
  --wo-card: #171c24;
  --wo-border: #2d3642;
}
:root[data-theme="light"] {
  --wo-bg: #eef3f9;
  --wo-panel: #ffffff;
  --wo-card: #ffffff;
  --wo-border: #d7e0ea;
  --wo-text-primary: #102033;
  --wo-text-secondary: rgba(16,32,51,0.78);
  --wo-text-muted: rgba(16,32,51,0.58);
  --wo-accent-muted: rgba(0,122,255,0.10);
}
:root[data-theme="light"] body,
:root[data-theme="light"] .main,
:root[data-theme="light"] #content { background: var(--wo-bg) !important; }
:root[data-theme="light"] .sidebar,
:root[data-theme="light"] .wo-shell-sidebar,
:root[data-theme="light"] .brand,
:root[data-theme="light"] .sidepanel,
:root[data-theme="light"] .wo-nav-toggle,
:root[data-theme="light"] .wo-nav-toggle-wrap,
:root[data-theme="light"] .nav-search input,
:root[data-theme="light"] #activeClientPill,
:root[data-theme="light"] .pill,
:root[data-theme="light"] .conn-status,
:root[data-theme="light"] .user-btn,
:root[data-theme="light"] .search,
:root[data-theme="light"] .btn,
:root[data-theme="light"] .btn.small,
:root[data-theme="light"] .tag,
:root[data-theme="light"] .badge,
:root[data-theme="light"] .wo-megamenu,
:root[data-theme="light"] .wo-mm-item,
:root[data-theme="light"] .wo-hub-tabs-wrap,
:root[data-theme="light"] .wo-hub-tabs,
:root[data-theme="light"] .card,
:root[data-theme="light"] table,
:root[data-theme="light"] thead th,
:root[data-theme="light"] tbody td { background-image: none !important; }
:root[data-theme="light"] .navbtn { color: var(--wo-text-secondary) !important; }
:root[data-theme="light"] .navbtn:hover { color: var(--wo-text-primary) !important; background: rgba(0,122,255,0.06) !important; }
:root[data-theme="light"] .navicon { background: #f7f9fc !important; color: var(--wo-text-secondary) !important; border-color: var(--wo-border) !important; }
:root[data-theme="light"] .nav-search input,
:root[data-theme="light"] .search input,
:root[data-theme="light"] .search input::placeholder,
:root[data-theme="light"] .nav-search input::placeholder,
:root[data-theme="light"] .title,
:root[data-theme="light"] .subtitle,
:root[data-theme="light"] .muted,
:root[data-theme="light"] .user-btn,
:root[data-theme="light"] .wo-mm-title,
:root[data-theme="light"] .wo-mm-item,
:root[data-theme="light"] thead th,
:root[data-theme="light"] tbody td { color: var(--wo-text-primary) !important; }
:root[data-theme="light"] .subtitle,
:root[data-theme="light"] .muted,
:root[data-theme="light"] .wo-mm-title,
:root[data-theme="light"] thead th,
:root[data-theme="light"] .pill,
:root[data-theme="light"] .navbtn,
:root[data-theme="light"] .k { color: var(--wo-text-secondary) !important; }
:root[data-theme="light"] .wo-nav-toggle button { color: var(--wo-text-secondary) !important; background: #f5f7fb !important; }
:root[data-theme="light"] .wo-nav-toggle button.active,
:root[data-theme="light"] .wo-nav-toggle button[data-nav-mode].active { color: var(--wo-accent) !important; background: rgba(0,122,255,0.10) !important; }
:root[data-theme="light"] .btn.primary,
:root[data-theme="light"] .btn-primary { color: #ffffff !important; }
:root[data-theme="light"] .badge,
:root[data-theme="light"] .tag { border-color: var(--wo-border) !important; }
:root[data-theme="light"] .wo-megamenu { background: rgba(255,255,255,0.98) !important; border-color: var(--wo-border) !important; box-shadow: 0 18px 55px rgba(16,32,51,0.18) !important; }
:root[data-theme="light"] .wo-mm-item { border-color: var(--wo-border) !important; background: #f7f9fc !important; }
:root[data-theme="light"] .wo-mm-item:hover { background: rgba(0,122,255,0.08) !important; border-color: rgba(0,122,255,0.28) !important; }
:root[data-theme="light"] .wo-hub-tab { color: var(--wo-text-secondary) !important; }
:root[data-theme="light"] .wo-hub-tab:hover { color: var(--wo-text-primary) !important; }
.topbar, .topbar.topbar--official { height: 48px !important; min-height: 48px !important; max-height: 48px !important; }
.topbar .search { max-width: 520px !important; padding-left: 12px !important; }
.topbar .search .k { min-width: 12px !important; opacity: .72; }
.topbar .righttools, .topbar .workspace-tools { gap: 8px !important; min-width: 0 !important; }
.user-menu { margin-left: 2px !important; }
#userName { max-width: 110px; overflow: hidden; text-overflow: ellipsis; display: inline-block; vertical-align: middle; }
.nav-search { position: relative !important; }
.nav-search::before { left: 12px !important; top: 50% !important; transform: translateY(-50%) !important; }
.nav-search input { padding-left: 34px !important; }
.wo-hub-tabs-wrap { border-bottom: 1px solid var(--wo-border); }
#woHubContent { padding-top: 22px; min-height: 420px; }
.wo-hub-shell { padding-bottom: 12px; }
.wo-megamenu { max-height: calc(100vh - 96px) !important; overflow: auto !important; }
.wo-megamenu-inner { align-content: start; }
.wo-mm-items { max-height: none !important; overflow: visible !important; }
#woMegaMenu, #navmapModal { overscroll-behavior: contain; }
#wo-notif-bell, #wo-notif-panel { display: none !important; }
.cockpit-overlay .cockpit-pb .cockpit-list-row,
.cockpit-overlay .cockpit-pb .cockpit-note-row,
.cockpit-overlay .cockpit-pb .cockpit-quote-row { color: var(--wo-text-primary); }
.cockpit-overlay .cockpit-pb .muted { color: var(--wo-text-secondary) !important; }


/* ===== Apr 12 focused UX pass: hub breathing room + client readability ===== */
#woHubContent { padding-top: 34px !important; min-height: 460px !important; }
.wo-hub-shell { padding-bottom: 18px !important; }
.wo-hub-tabs-wrap { margin-bottom: 0 !important; }

.client-detail-sticky{display:flex;flex-direction:column;gap:18px}
.clients-layout{gap:16px}
.client-detail-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,540px);gap:18px;align-items:start}
.client-title{gap:8px}
.client-title h2{font-size:28px;line-height:1.08}
.client-title .meta{font-size:13px;line-height:1.45}
.client-detail-sticky .segbar{gap:8px;margin-top:10px}
.client-detail-sticky .segpill{padding:6px 10px;color:var(--wo-text-primary);background:rgba(255,255,255,.04)}
.client-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;justify-content:stretch}
.client-quick .btn{width:100%;min-height:38px;justify-content:center;color:var(--wo-text-primary)!important}
.client-detail-sticky .kvgrid{gap:12px;margin-top:14px}
.client-detail-sticky .kv{min-height:88px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(255,255,255,.04)}
.client-detail-sticky .kv .k{font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.client-detail-sticky .kv .v{font-size:clamp(16px,1.7vw,24px);line-height:1.15}
.client-detail-sticky .tabrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin-top:18px;padding-top:4px}
.client-detail-sticky .tabrow .tabbtn{min-height:46px;padding:10px 14px;border-color:rgba(255,255,255,.10);background:rgba(255,255,255,.04);color:var(--wo-text-primary)!important;text-align:center;line-height:1.25;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.client-detail-sticky .tabrow .tabbtn:hover{background:rgba(var(--wo-accent-rgb),.08);border-color:rgba(var(--wo-accent-rgb),.28)}
.client-detail-sticky .tabrow .tabbtn.active{background:rgba(var(--wo-accent-rgb),.12);border-color:rgba(var(--wo-accent-rgb),.42);color:var(--wo-accent)!important}
.client-detail-sticky .profile-grid{gap:16px;margin-top:16px}
.client-detail-sticky .goal,.client-detail-sticky .accmini,.client-detail-sticky .riskbox{background:rgba(255,255,255,.03)}

@media (max-width: 1280px){
  .client-detail-head{grid-template-columns:1fr}
}


/* apr12 surgical readability + bounded layout pass */

#woHubContent.wo-hub-content-shell,
.wo-hub-content-shell {
  padding-top: 30px !important;
}
#woHubContent.wo-hub-content-shell > .wo-hub-content-stage,
.wo-hub-content-shell > .wo-hub-content-stage,
#woHubContent > #content.wo-hub-content-stage {
  min-height: 240px;
  width: 100%;
}
#woHubContent,
.wo-hub-content {
  padding-top: 30px !important;
}
.wo-hub-shell {
  padding-bottom: 24px !important;
}
.wo-hub-tabs-wrap {
  margin-bottom: 4px !important;
}
.wo-hub-shell .card,
#woHubContent > .card,
.wo-hub-content > .card {
  margin-top: 0;
}
.client-detail-sticky {
  gap: 22px;
}
.client-detail-sticky .segbar {
  gap: 10px;
  margin-top: 14px;
  margin-bottom: 8px;
}
.client-detail-sticky .segpill {
  min-height: 34px;
  padding: 7px 12px;
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.05);
  color: var(--wo-text-primary);
  font-weight: 700;
  line-height: 1.2;
}
.client-quick {
  gap: 12px;
  margin-top: 8px;
}
.client-quick .btn {
  min-height: 42px;
  padding: 10px 14px;
  font-weight: 700;
}
.client-detail-sticky .kvgrid {
  gap: 14px;
  margin-top: 16px;
}
.client-detail-sticky .tabrow {
  gap: 12px;
  margin-top: 22px;
  padding-top: 10px;
}
.client-detail-sticky .tabrow .tabbtn {
  min-height: 48px;
  padding: 11px 15px;
  font-weight: 700;
}
#dashAUMChartShell {
  min-height: 280px;
  height: 320px;
}
#dashAUMChart {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
}
.wo-dash-aum-grid {
  align-items: start !important;
}
#woHubContent canvas,
.wo-hub-content canvas,
#content canvas {
  max-width: 100%;
}
@media (max-width: 1120px){
  .wo-dash-aum-grid {
    grid-template-columns: 1fr !important;
  }
  #dashAUMChartShell {
    height: 300px;
  }
}


/* apr12 rootfix: cockpit auto-fit + reporting bounded chart shells */
.cockpit-panel[data-auto-fit="1"]{height:auto}
.cockpit-panel .cockpit-pb{flex:1 1 auto;min-height:0}
#reportAUMChartShell,.wo-report-chart-shell{position:relative;display:block;width:100%;height:320px;min-height:280px;max-height:320px;overflow:hidden}
.wo-report-chart-shell-sm{height:240px;min-height:220px;max-height:240px}
#reportAUMChart,#reportValueChart,#reportGainersChart,.wo-report-chart-shell canvas{display:block;width:100% !important;height:100% !important;max-height:100% !important}


/* apr12 runtime root fix: authoritative cockpit + report bounds */
.cockpit-overlay{overflow:auto !important;align-items:stretch !important}
.cockpit-topbar{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;gap:10px !important;padding:8px 12px !important;position:sticky !important;top:0 !important;z-index:8 !important}
.cockpit-topbar .row:first-child{min-width:0 !important}
.cockpit-topbar .row:first-child .muted.small{display:block !important;margin-top:2px !important;font-size:11px !important;line-height:1.3 !important}
.cockpit-shell{min-height:calc(100vh - 44px) !important;height:auto !important;max-height:none !important;align-items:start !important}
#cockpitStage,.cockpit-stage{height:auto !important;min-height:960px !important;overflow:visible !important;padding:12px 12px 260px !important}
.cockpit-panel[data-auto-fit="1"]{height:auto !important;min-height:0 !important;max-width:min(42vw,560px) !important}
#cockpitStage .cockpit-panel[data-auto-fit="0"]{width:var(--wo-panel-width,auto) !important;height:var(--wo-panel-height,auto) !important;min-height:var(--wo-panel-height,160px) !important;max-width:none !important}
#cockpitStage .cockpit-panel[data-auto-fit="0"] .cockpit-pb{overflow:auto !important;flex:1 1 auto !important;min-height:0 !important}
.cockpit-panel .cockpit-pb,.cockpit-pb{height:auto !important;max-height:none !important;overflow:auto !important}
#reportAUMChartShell,.wo-report-chart-shell{position:relative;display:block;width:100%;height:320px !important;min-height:280px !important;max-height:320px !important;overflow:hidden !important}
.wo-report-chart-shell-sm{height:240px !important;min-height:220px !important;max-height:240px !important}
#reportAUMChart,#reportValueChart,#reportGainersChart,.wo-report-chart-shell canvas{display:block;width:100% !important;height:100% !important;max-height:100% !important}


/* apr13 cockpit manual controls + inline workspace */
#cockpitStage .cockpit-panel[data-auto-fit="0"]{width:var(--wo-panel-width,auto) !important;height:var(--wo-panel-height,auto) !important;min-height:var(--wo-panel-height,160px) !important;max-width:none !important}
#cockpitStage .cockpit-panel[data-auto-fit="1"]{max-width:min(40vw,540px) !important}
#cockpitStage .cockpit-panel.cockpit-inline-workspace{max-width:none !important}
#cockpitStage .cockpit-panel.cockpit-inline-workspace .cockpit-pb{overflow:auto !important}

/* apr13 authoritative cockpit manual sizing + visible resize handle */
#cockpitStage .cockpit-panel{contain:layout paint;}
#cockpitStage .cockpit-panel[data-auto-fit="1"]{height:auto !important;min-height:160px !important;max-width:min(38vw,520px) !important;}
#cockpitStage .cockpit-panel[data-auto-fit="0"]{width:var(--wo-panel-width,320px) !important;height:var(--wo-panel-height,220px) !important;min-height:var(--wo-panel-height,220px) !important;max-width:none !important;}
#cockpitStage .cockpit-panel[data-auto-fit="0"] .cockpit-pb{overflow:auto !important;flex:1 1 auto !important;min-height:0 !important;height:auto !important;max-height:none !important;}
#cockpitStage .cockpit-panel .cockpit-resize{
  position:absolute !important;
  right:8px !important;
  bottom:8px !important;
  width:22px !important;
  height:22px !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  z-index:6 !important;
  pointer-events:auto !important;
}
#cockpitStage .cockpit-panel .cockpit-resize:before{
  inset:4px !important;
  border-right:2px solid rgba(255,255,255,.55) !important;
  border-bottom:2px solid rgba(255,255,255,.55) !important;
}
#cockpitStage .cockpit-panel .cockpit-ph{position:relative;z-index:5;cursor:move;}
#cockpitStage .cockpit-panel.cockpit-inline-workspace{max-width:none !important;}
#cockpitStage .cockpit-panel.cockpit-inline-workspace .cockpit-pb{overflow:auto !important;}
