/* ════════════════════════════════════════════════════════════════════════
   BX — Core Stylesheet
   Extracted from index.html <style> block 2026-05-15 (Step 10)
   ════════════════════════════════════════════════════════════════════════ */

:root {
  --gold:#FFC000; --gold2:#EFBC2A; --gold3:#d4a000;
  --dark2:#1e1e1e; --border:#2e2e2e; --border2:#3a3a3a;
  --bg:#141414; --bg2:#1a1a1a; --bg3:#222; --bg4:#2a2a2a;
  --card:#1e1e1e; --text:#f0ece4; --text2:#b8b0a4; --text3:#6e6860;
  --green:#70AD47; --danger:#C00000; --warn:#f59e0b; --success:#70AD47;
  --sidebar:220px; --topbar:52px;
  --r:6px; --r2:10px;
  font-family: 'Segoe UI', system-ui, Arial, sans-serif;
}
/* THEMES */
body.theme-warm{--bg:#f0ece4;--bg2:#e8e4dc;--bg3:#dedad0;--bg4:#d0ccc4;--card:#fff;--dark2:#fff;--border:#d0ccc4;--border2:#bbb8b0;--text:#1a1a1a;--text2:#4a4640;--text3:#7a7670;}
body.theme-white{--bg:#f7f9fc;--bg2:#fff;--bg3:#eef1f5;--bg4:#e4e8ed;--card:#fff;--dark2:#fff;--border:#dde2ea;--border2:#c8d0da;--text:#1a2332;--text2:#3d4f63;--text3:#6b7c93;}
body.theme-warm .topbar,body.theme-white .topbar{background:#fff;border-bottom:2px solid var(--gold);box-shadow:0 2px 8px rgba(0,0,0,.06);}
body.theme-warm .sidebar,body.theme-white .sidebar{background:var(--bg2);border-right:1px solid var(--border);}
body.theme-warm .sec,body.theme-white .sec{background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.06);border:1px solid var(--border);}
body.theme-warm .mc,body.theme-white .mc{background:#fff;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.05);}
body.theme-warm .modal,body.theme-white .modal{background:#fff;border:1px solid var(--border);box-shadow:0 8px 40px rgba(0,0,0,.14);}
body.theme-warm .ni.on,body.theme-white .ni.on{background:rgba(255,192,0,.12);color:var(--text);font-weight:700;}
body.theme-warm .ni:hover,body.theme-white .ni:hover{background:rgba(0,0,0,.04);}
body.theme-warm .tbl thead tr,body.theme-white .tbl thead tr{background:var(--bg3);}
body.theme-warm .tbl tr:hover td,body.theme-white .tbl tr:hover td{background:var(--bg2);}
body.theme-warm .btn.bg,body.theme-white .btn.bg{background:var(--bg3);border-color:var(--border2);}

*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);min-height:100vh;overflow:hidden;}
a{color:var(--gold);}

/* LAYOUT */
.topbar{height:var(--topbar);background:#111;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:14px;position:fixed;top:0;left:0;right:0;z-index:200;}
.sidebar{width:var(--sidebar);background:#111;border-right:1px solid var(--border);position:fixed;top:var(--topbar);bottom:0;left:0;overflow-y:auto;scrollbar-gutter:stable;z-index:100;}
.main{margin-left:var(--sidebar);margin-top:var(--topbar);height:calc(100vh - var(--topbar));overflow-y:auto;background:var(--bg);}
.panel{display:none;padding:20px;min-height:100%;animation:fadeIn .15s ease;}
.panel.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* v300 section navigation cleanup */
.bx-section-tabs,
.bx-section-subtabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 16px;
}

.bx-section-tabs button {
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text2);
  border-radius: 6px;
  padding: 7px 11px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  min-height: 32px;
}

.bx-section-tabs button.on {
  border-color: var(--gold);
  background: rgba(255, 192, 0, .12);
  color: var(--gold);
}

@media (max-width: 600px) {
  .bx-section-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bx-section-tabs button {
    width: 100%;
    padding-inline: 8px;
  }
}

/* TOPBAR */
.topbar-logo{height:40px;width:auto;cursor:pointer;}
.topbar-proj{display:flex;align-items:center;gap:8px;padding:5px 12px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);cursor:pointer;font-size:13px;position:relative;}
.topbar-proj:hover{border-color:var(--gold);}
.topbar-proj-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);flex-shrink:0;}
.proj-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:280px;background:var(--card);border:1px solid var(--gold3);border-radius:var(--r2);box-shadow:0 8px 24px rgba(0,0,0,.5);z-index:300;will-change:transform,opacity;}
.proj-menu.open{display:block;animation:bxDropIn .14s cubic-bezier(0.2,0,0,1) both;}
@keyframes bxDropIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.proj-menu-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);font-size:13px;display:flex;align-items:center;gap:10px;}
.proj-menu-item:last-child{border:none;}
.proj-menu-item:hover{background:var(--bg3);}
.proj-menu-item.active{background:rgba(255,192,0,.08);border-left:3px solid var(--gold);}
.proj-menu-item-name{font-weight:600;}
.proj-menu-item-meta{font-size:11px;color:var(--text3);}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px;}
.theme-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border2);background:var(--bg3);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.theme-btn:hover{border-color:var(--gold);}
.save-status{font-size:11px;color:var(--text3);}

/* SIDEBAR */
.sidebar-arrange{padding:8px;border-bottom:1px solid var(--border);}
.arrange-btn{width:100%;padding:6px 10px;background:transparent;border:1px solid var(--border2);border-radius:var(--r);color:var(--text3);cursor:pointer;font-size:11px;display:flex;align-items:center;gap:6px;font-family:inherit;transition:all .15s;}
.arrange-btn:hover,.arrange-btn.on{border-color:var(--gold);color:var(--gold);}
.arrange-btn.on{background:var(--gold);color:#000;font-weight:700;}
.nav-group{padding:6px 8px 2px;}
.nav-group-label{font-size:10px;font-weight:700;text-transform:none;letter-spacing:.03em;color:var(--text3);padding:4px 8px 2px;min-height:15px;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;cursor:default;}
.ni{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r);cursor:pointer;font-size:13px;color:var(--text2);transition:background .1s,color .1s;margin-bottom:1px;user-select:none;}
.ni:hover{background:var(--bg3);color:var(--text);}
.ni.on{background:rgba(255,192,0,.1);color:var(--gold);font-weight:600;}
.ni svg{width:15px;height:15px;flex-shrink:0;opacity:.7;}
.ni.on svg{opacity:1;}
.ni-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ni-badge{font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;background:var(--gold);color:#000;min-width:18px;text-align:center;}
.dh{width:14px;height:14px;flex-shrink:0;cursor:grab;color:var(--border2);display:none;align-items:center;justify-content:center;font-size:14px;}
.dh:hover{color:var(--gold);}
.arrange-on .ni{border:1px dashed transparent;transition:none;}
.arrange-on .dh{display:flex;}
.arrange-on .ni:hover{border-color:var(--border2);}
.ni.drag-above{border-top:2px solid var(--gold)!important;}
.ni.drag-below{border-bottom:2px solid var(--gold)!important;}
.ni-divider{height:1px;background:var(--border);margin:6px 8px;}

@media (min-width:861px) {
  .sidebar{overflow-y:auto!important;}
  .nav-group{padding:3px 8px 1px!important;}
  .nav-group-label{font-size:10px!important;line-height:1.05!important;padding:2px 8px 1px!important;}
  .ni{min-height:27px!important;padding:4px 10px!important;font-size:12.5px!important;line-height:1.15!important;margin-bottom:1px!important;gap:8px!important;}
  .ni svg{width:15px!important;height:15px!important;}
  .ni-divider{margin:3px 8px!important;}
}
@media (min-width:861px) and (max-height:760px) {
  .nav-group{padding-top:2px!important;}
  .nav-group-label{font-size:9.5px!important;padding-top:1px!important;}
  .ni{min-height:25px!important;padding-top:3px!important;padding-bottom:3px!important;}
  .ni-divider{margin:2px 8px!important;}
}

/* BUTTONS */
.btn{padding:7px 14px;border-radius:var(--r);font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;transition:all .12s;border:1px solid transparent;}
.btn-gold{background:var(--gold);color:#000;border-color:var(--gold);}
.btn-gold:hover{background:var(--gold2);}
.btn-ghost{background:transparent;border-color:var(--border2);color:var(--text2);}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}
.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger);}
.btn-sm{padding:4px 10px;font-size:12px;}
/* Press physics: every button gives physical tap feedback */
.btn:active{transform:scale(0.96);opacity:.88;transition:all .06s;}
/* Nav item press */
.ni:active{transform:scale(0.97);opacity:.8;transition:transform .06s,opacity .06s;}

/* PANELS */
/* Panel header: actions float right; title+sub are absolutely centered
   across the full panel width so they're always visually centered
   regardless of how many action buttons exist on the right. */
.ph{position:relative;display:flex;align-items:center;justify-content:flex-end;min-height:48px;margin-bottom:18px;padding:4px 0;}
.ph>div:first-child{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:0 8px;}
.ph-title{font-size:22px;font-weight:800;color:var(--text);}
.ph-sub{font-size:13px;color:var(--text3);margin-top:2px;}
.ph-actions{position:relative;z-index:1;display:flex;gap:8px;flex-shrink:0;align-items:center;}
.sec{background:var(--card);border-radius:var(--r2);border:1px solid var(--border);margin-bottom:16px;overflow:hidden;}
.sec-hdr{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.sec-title{font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--text3);}
.sec-body{padding:16px;}

/* METRICS ROW */
.metrics{display:grid;gap:12px;margin-bottom:16px;}
.metrics-4{grid-template-columns:repeat(4,1fr);}
.metrics-5{grid-template-columns:repeat(5,1fr);}
.mc{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:14px 16px;}
.mc-label{font-size:11px;color:var(--text3);font-weight:600;text-transform:none;letter-spacing:.04em;margin-bottom:4px;}
.mc-val{font-size:20px;font-weight:800;font-family:'Courier New',monospace;}
.mc-sub{font-size:11px;color:var(--text3);margin-top:3px;}

/* TABLE */
.tbl{width:100%;border-collapse:collapse;font-size:13px;}
.tbl th{padding:8px 12px;text-align:left;font-size:10px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--text3);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:4;background:var(--card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.tbl td{padding:9px 12px;border-bottom:1px solid rgba(58,58,58,.3);color:var(--text);}
.tbl tbody tr:hover td{background:var(--bg3);}
.tbl .nr{text-align:right;font-family:'Courier New',monospace;}
.tbl-empty{display:block;width:100%;box-sizing:border-box;padding:40px 24px;text-align:center;color:var(--text3);}

/* CHIP */
.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;}
.chip-green{background:rgba(112,173,71,.15);color:#70AD47;}
.chip-red{background:rgba(192,0,0,.15);color:#C00000;}
.chip-gold{background:rgba(255,192,0,.15);color:var(--gold);}
.chip-gray{background:rgba(160,160,160,.15);color:var(--text3);}
.chip-blue{background:rgba(31,55,100,.3);color:#7fa8d0;}

/* FORMS */
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.fgrid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px;}
.fg{display:flex;flex-direction:column;gap:4px;}
.fl{font-size:12px;color:var(--text2);font-weight:600;}
.req{color:var(--danger);}
.finp,.fsel,.ftxt{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);padding:7px 10px;color:var(--text);font-size:13px;font-family:inherit;width:100%;transition:border-color .15s;outline:none;}
.finp:focus,.fsel:focus,.ftxt:focus{border-color:var(--gold);}
.ftxt{resize:vertical;}
.fcalc{background:var(--bg3);border-radius:var(--r);padding:10px 14px;margin-bottom:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-left:3px solid var(--gold);}
.fcalc-item label{font-size:10px;color:var(--text3);font-weight:700;text-transform:none;display:block;margin-bottom:2px;}
.fcalc-item .fval{font-size:15px;font-weight:800;color:var(--gold);font-family:'Courier New',monospace;}

/* MODAL */
.mbg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:500;align-items:center;justify-content:center;padding:20px;}
.mbg.open{display:flex;animation:bxBgIn .15s ease both;}
.mbg.open .modal{animation:bxModalIn .2s cubic-bezier(0.2,0,0,1) both;}
@keyframes bxBgIn{from{opacity:0}to{opacity:1}}
@keyframes bxModalIn{from{opacity:0;transform:translateY(18px) scale(0.97)}to{opacity:1;transform:none}}
.modal{background:var(--card);border:1px solid var(--border2);border-radius:var(--r2);padding:24px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 16px 48px rgba(0,0,0,.6);}
.modal-lg{max-width:760px;}
.modal-title{font-size:18px;font-weight:800;margin-bottom:4px;}
.modal-sub{font-size:13px;color:var(--text3);margin-bottom:18px;}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
.modal-section{font-size:11px;font-weight:700;color:var(--gold);text-transform:none;letter-spacing:.04em;padding:10px 0 6px;border-top:1px solid var(--border);margin-top:4px;}
.modal-section:first-of-type{border-top:none;margin-top:0;}

/* PROJ SELECTOR BAR */
.proj-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--r2);margin-bottom:16px;}
.proj-bar-label{font-size:11px;font-weight:700;color:var(--gold);text-transform:none;letter-spacing:.02em;white-space:nowrap;}
.proj-bar select{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);padding:5px 10px;color:var(--text);font-size:12px;font-family:inherit;outline:none;min-width:200px;}
.proj-bar select:focus{border-color:var(--gold);}

/* PROGRESS BAR */
.pbar-wrap{height:4px;background:var(--border2);border-radius:2px;overflow:hidden;}
.pbar-fill{height:4px;border-radius:2px;transition:width .4s;}

/* PORTFOLIO CARDS */
.port-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:20px;}
.proj-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:16px;cursor:pointer;transition:border-color .15s;}
.proj-card:hover{border-color:var(--gold2);}
.proj-card.active{border-color:var(--gold);background:rgba(255,192,0,.04);}
.proj-card-add{border-style:dashed;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;min-height:160px;color:var(--text3);}
.proj-card-add:hover{border-color:var(--gold);color:var(--gold);}
.proj-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.proj-card-addr{font-size:15px;font-weight:700;}
.proj-card-meta{font-size:11px;color:var(--text3);margin-top:2px;}
.proj-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:10px;}
.proj-stat-l{font-size:10px;color:var(--text3);}
.proj-stat-v{font-size:13px;font-weight:700;font-family:'Courier New',monospace;}
.proj-card-actions{display:flex;gap:6px;padding-top:8px;border-top:1px solid var(--border);}
.proj-card-actions .btn{flex:1;font-size:11px;padding:4px 6px;text-align:center;}

/* PHASE LIST */
.phase-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(58,58,58,.3);}
.phase-row:last-child{border-bottom:none;}
.phase-name{flex:1;font-size:13px;}
.phase-val{width:100px;text-align:right;font-family:'Courier New',monospace;font-size:12px;}
.phase-inp{width:110px;background:var(--bg3);border:1px solid var(--border2);border-radius:4px;padding:3px 8px;color:var(--text);font-size:12px;font-family:'Courier New',monospace;text-align:right;}
.phase-inp:focus{border-color:var(--gold);outline:none;}
.phase-rag{width:70px;text-align:center;}

/* GANTT */
.gantt-wrap{overflow-x:auto;}
.g-hdr{display:flex;border-bottom:2px solid var(--gold3);padding-bottom:6px;margin-bottom:4px;}
.g-name-col{width:200px;flex-shrink:0;font-size:11px;color:var(--text3);}
.g-wk{width:32px;flex-shrink:0;font-size:9px;color:var(--text3);text-align:center;}
.g-wk.sep{border-right:1px solid var(--border2);}
.g-row{display:flex;align-items:center;margin-bottom:2px;}
.g-task{width:180px;flex-shrink:0;font-size:11px;color:var(--text);padding:3px 0;border-right:1px solid var(--border);}
.g-cell{width:32px;flex-shrink:0;height:22px;border-radius:2px;}
.g-cell.plan{background:rgba(255,192,0,.5);}
.g-cell.actual{background:var(--gold);}
.g-cell.delay{background:var(--danger);}
.g-cell.sep{border-right:1px solid var(--border2);}

/* ACTIVITIES */
.act-phase{margin-bottom:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;}
.act-phase-hdr{padding:10px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;}
.act-phase-hdr:hover{background:var(--bg3);}
.act-phase-name{font-size:13px;font-weight:700;}
.act-phase-prog{flex:1;}
.act-task{display:flex;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid rgba(58,58,58,.2);font-size:12px;}
.act-task:hover{background:var(--bg3);}
.act-cb{width:18px;height:18px;border:2px solid var(--border2);border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;}
.act-cb.done{background:var(--green);border-color:var(--green);}
.act-cb.na{background:var(--bg4);border-color:var(--border2);}
.act-name{flex:1;color:var(--text);}
.act-name.done{text-decoration:line-through;color:var(--text3);}
.act-name.na{color:var(--text3);font-style:italic;}

/* KPI GRID */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;}
.kpi-section{grid-column:1/-1;padding:7px 12px;background:var(--dark2);border-left:4px solid var(--gold);border-radius:0 var(--r) var(--r) 0;font-size:11px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.05em;}
.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;}
.kpi-label{font-size:10px;color:var(--text3);font-weight:600;text-transform:none;letter-spacing:0;margin-bottom:4px;}
.kpi-val{font-size:16px;font-weight:800;font-family:'Courier New',monospace;}
.kpi-val.good{color:var(--green);}
.kpi-val.bad{color:var(--danger);}
.kpi-val.gold{color:var(--gold);}

/* CHART GRID */
.chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;}
.chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:16px;}
.chart-title{font-size:13px;font-weight:700;margin-bottom:4px;}
.chart-desc{font-size:11px;color:var(--text3);margin-bottom:10px;}
.chart-canvas{position:relative;height:220px;}

/* EMPTY STATE */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--text3);}
.empty-icon{font-size:48px;margin-bottom:16px;opacity:.3;}
.empty-title{font-size:18px;font-weight:700;color:var(--gold);margin-bottom:8px;}
.empty-text{font-size:14px;line-height:1.6;max-width:360px;margin-bottom:20px;}

/* DASHBOARD */
.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;}
.dash-tabs{display:flex;gap:3px;padding:3px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--r2);width:fit-content;margin-bottom:18px;}
.dash-tab{padding:7px 20px;border:none;background:transparent;color:var(--text2);cursor:pointer;border-radius:var(--r);font-size:13px;font-family:inherit;font-weight:500;transition:all .15s;}
.dash-tab.on{background:var(--gold);color:#000;font-weight:700;}
.dash-tab:not(.on):hover{background:var(--bg3);color:var(--text);}
#p-dashboard *{letter-spacing:0 !important;}
.dash-region{margin-bottom:28px;}
.dash-region:last-child{margin-bottom:0;}
.dash-region-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;}
.dash-region-title{font-size:15px;font-weight:700;color:var(--text);}
.dash-region-sub{font-size:12px;line-height:1.4;color:var(--text3);margin-top:3px;}
.dash-command-grid{display:grid;grid-template-columns:minmax(350px,1.05fr) minmax(320px,1fr);gap:14px;align-items:start;}
.dash-command-grid > div:empty,.dash-detail-stack > div:empty{display:none;}
.dash-command-grid #bx-health-score-card,
.dash-command-grid #bx-daily-digest-card{border-radius:8px;margin:0;height:100%;}
.dash-summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px;}
.dash-summary-metrics .mc{border-radius:8px;min-height:94px;}
.dash-detail-title{font-size:12px;font-weight:700;color:var(--text2);margin:19px 0 10px;}
.dash-detail-stack{display:grid;gap:12px;}
.dash-detail-stack > div > div{margin-bottom:0 !important;}
.dash-progress-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0;}
.dash-progress-metrics .mc{border-radius:8px;min-height:84px;}
.dash-detail-stack #bx-profit-tracker-panel,
.dash-detail-stack #bx-insights-panel,
.dash-detail-stack #loan-metrics-section > div,
.dash-detail-stack #eac-panel > div,
.dash-detail-stack #dash-milestones > div{border-radius:8px !important;}
.dash-activity-grid{display:grid;grid-template-columns:minmax(430px,1.55fr) minmax(285px,1fr);gap:14px;}
.dash-activity-grid .sec{border-radius:8px;}
#p-dashboard:has(#bx-welcome-card) #dash-empty{display:none !important;}

/* SETTINGS */
.stab-bar{display:flex;gap:2px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:0;}
.stab{padding:8px 16px;border:none;background:transparent;color:var(--text3);cursor:pointer;font-size:13px;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;}
.stab.on{color:var(--gold);border-bottom-color:var(--gold);}
.stab-content{display:none;}
.stab-content.on{display:block;}
.setting-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:16px;margin-bottom:12px;}
.setting-card-title{font-size:13px;font-weight:700;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(58,58,58,.3);}
.toggle-row:last-child{border:none;}
.toggle-label{font-size:13px;}
.toggle-sub{font-size:11px;color:var(--text3);margin-top:1px;}
.toggle{width:38px;height:22px;background:var(--border2);border-radius:11px;cursor:pointer;position:relative;transition:background .2s;}
.toggle.on{background:var(--gold);}
.toggle::after{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;}
.toggle.on::after{transform:translateX(16px);}
.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.theme-btn-card{padding:12px;border:2px solid var(--border);border-radius:var(--r);cursor:pointer;text-align:center;transition:all .15s;}
.theme-btn-card.on{border-color:var(--gold);}
.theme-btn-card:hover{border-color:var(--gold2);}
.theme-swatch{height:36px;border-radius:4px;margin-bottom:6px;}
.theme-name{font-size:12px;font-weight:600;}

/* TOAST */
.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:999;display:flex;flex-direction:column;gap:8px;}
.toast{padding:10px 16px;border-radius:var(--r);font-size:13px;font-weight:500;box-shadow:0 4px 16px rgba(0,0,0,.4);animation:toastIn .2s ease;pointer-events:none;max-width:320px;}
.toast-ok{background:var(--green);color:#fff;}
.toast-err{background:var(--danger);color:#fff;}
.toast-info{background:var(--gold);color:#000;}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* BUDGET BAR */
.budget-bar{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:12px 16px;background:var(--dark2);border:1px solid var(--border);border-radius:var(--r2);margin-bottom:14px;}
.bb-label{font-size:10px;color:var(--text3);text-transform:none;font-weight:700;letter-spacing:.03em;margin-bottom:3px;}
.bb-val{font-size:17px;font-weight:800;font-family:'Courier New',monospace;}

/* DRAWS */
.draw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px;}
.draw-card{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:var(--r);padding:12px;cursor:pointer;transition:all .15s;}
.draw-card:hover{border-color:var(--gold);}

/* UTILITIES */
.gold{color:var(--gold);}
.red{color:var(--danger);}
.green{color:var(--green);}
.mono{font-family:'Courier New',monospace;}
.scrollable{overflow-y:auto;}

/* NATIVE INTERACTIONS (from bx-v14-native.js + bx-v15.js, batch 9) */
/* Cursor rules — v14 §10 */
.ni,.btn,button,.proj-card,[onclick],label[for],.tbl tbody tr,
.act-task,.insp-step,.milestone-dot,.tab,.stab,.da-tab{cursor:pointer;}
input,textarea,select,.finp,.ftxt,.fsel{cursor:text;}
input[type="checkbox"],input[type="radio"]{cursor:pointer;}
/* Smooth scroll — v14 §11 */
.panel,#main,.main{scroll-behavior:smooth;}
/* Shake animation — v15 §2 */
@keyframes bxShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}

/* AUDIT CONTROLLER (from bx-audit-fixes.js inline style block, batch 10) */
/* Panel / animation */
.panel,.panel.active{animation:none!important;}
/* Drag handles */
.bx-drag-handle{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text3);cursor:grab;flex-shrink:0;opacity:.45;}
.bx-drag-row:hover .bx-drag-handle{opacity:1;color:var(--gold);}
.bx-drag-row.dragging{opacity:.7;background:var(--bg3)!important;}
.bx-drag-over{border-bottom:2px solid var(--gold)!important;}
/* Warm/white theme text overrides */
body.theme-warm,body.theme-white{--text:#15171a;--text2:#34383e;--text3:#5b6470;--border:rgba(0,0,0,.14);--border2:rgba(0,0,0,.22);}
body.theme-warm .card,body.theme-warm .sntx-card,body.theme-warm .mc,body.theme-warm .sec,body.theme-white .card,body.theme-white .sntx-card,body.theme-white .mc,body.theme-white .sec{border-color:var(--border2)!important;}
/* Typography overrides */
.mc-label,.kpi-label,.bb-label,.sec-title,.modal-section,.nav-group-label{text-transform:none!important;letter-spacing:.02em!important;}
.mc-val,.kpi-val,.bb-val{font-size:var(--fs-kpi,20px)!important;}
.tbl td,.phase-val,.nr,.act-name,.insp-stage-name,.toggle-label,.finp,.fsel,.ftxt{font-size:var(--fs-base,13px)!important;}
.fl,.mc-sub,.insp-stage-meta,.toggle-sub{font-size:var(--fs-sm,12px)!important;}
.ni-label,.nav-group-label,.bx-drop-header{text-transform:none!important;letter-spacing:0!important;}
/* Topbar quick-action text buttons */
.bx-icon-btn.bx-quick-text{width:auto!important;min-width:34px;padding:0 9px!important;font-size:11px!important;font-weight:800!important;letter-spacing:0!important;font-family:var(--font)!important;}
/* Toggle row (gas permit checkbox) */
.bx-toggle-row{display:flex;align-items:center;gap:12px;margin:10px 0 14px;padding:12px 14px;border:1px solid var(--border2);border-radius:10px;background:var(--bg2);cursor:pointer;}
.bx-toggle-row.compact{margin:0 0 14px 0;}
.bx-toggle-row input{width:18px;height:18px;accent-color:var(--gold);flex-shrink:0;}
.bx-toggle-row b{display:block;font-size:13px;color:var(--text);font-weight:800;margin-bottom:2px;}
.bx-toggle-row small{display:block;font-size:11px;color:var(--text3);line-height:1.35;}
/* Money prefix wrap */
.bx-money-wrap{position:relative!important;width:100%!important;display:block!important;}
.bx-money-wrap .dollar-prefix,.dollar-prefix{left:16px!important;font-size:16px!important;color:var(--text2)!important;font-weight:800!important;z-index:3!important;}
.bx-money-wrap input,.bx-money-input-fixed,#permit-fee,#pmt-amount,#pmt-tax,#proj-budget,#proj-lot-cost,#proj-price,#proj-loan-amt,#co-amt,#punch-cost,#lien-amount,#bid-amount{padding-left:44px!important;}
/* Login overlay */
.bx-login-overlay{position:fixed;inset:0;z-index:120000;background:radial-gradient(circle at 50% 18%,rgba(255,192,0,.16),transparent 28%),linear-gradient(180deg,#050505 0%,#101010 100%);display:flex;align-items:center;justify-content:center;padding:28px;color:#f5f2ea;}
.bx-login-card{width:min(460px,92vw);min-height:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid rgba(255,255,255,.12);background:rgba(22,22,22,.72);backdrop-filter:blur(22px);border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.45);padding:40px 34px;position:relative;}
.bx-login-card.boot{width:min(380px,92vw);}
.bx-login-card.roles{width:min(400px,92vw);align-items:stretch;text-align:left;}
.bx-login-mark{width:64px;height:64px;border-radius:16px;background:var(--gold);color:#090909;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:950;margin-bottom:18px;letter-spacing:-.06em;align-self:center;}
.bx-login-title{font-size:22px;font-weight:800;letter-spacing:-.03em;margin-bottom:18px;}
.bx-login-sub{font-size:15px;color:#aaa49a;margin-bottom:24px;line-height:1.55;align-self:center;}
.bx-login-primary{height:46px;min-width:160px;border:none;border-radius:12px;background:var(--gold);color:#080808;font-size:15px;font-weight:850;cursor:pointer;font-family:var(--font);align-self:center;}
.bx-login-back{position:absolute;top:16px;left:16px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#c8c2b8;border-radius:999px;height:32px;padding:0 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--font);}
/* Role list — minimalist vertical */
.bx-role-list{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:4px;}
.bx-role-item{display:flex;align-items:center;gap:14px;min-height:52px;height:auto!important;padding:13px 16px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.04);color:#f5f2ea;cursor:pointer;font-family:var(--font);text-align:left;transition:border-color .14s,background .14s;}
.bx-role-item:hover{border-color:var(--gold);background:rgba(255,192,0,.07);}
.bx-role-icon{font-size:20px;flex-shrink:0;line-height:1;}
.bx-role-name{flex:1;font-size:14px;font-weight:700;letter-spacing:-.01em;}
.bx-role-arr{font-size:18px;color:rgba(255,255,255,.25);font-weight:300;line-height:1;}
/* Legacy grid — kept for compat, hidden by new list */
.bx-role-grid{display:none;}
.bx-role-card{display:none;}
/* Topbar overflow dropdown */
.bx-overflow-menu{position:fixed;background:linear-gradient(180deg,rgba(35,35,34,.98),rgba(18,18,19,.98));border:1px solid rgba(245,166,35,.22);border-radius:16px;padding:8px;min-width:238px;box-shadow:0 18px 54px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04) inset;z-index:90000;opacity:0;pointer-events:none;transform:translateY(-6px) scale(.985);transition:opacity .14s ease,transform .14s ease;backdrop-filter:blur(18px);will-change:transform,opacity;}
.bx-overflow-menu.open{opacity:1;pointer-events:auto;transform:translateY(0);}
.bx-over-head{display:flex;align-items:center;justify-content:space-between;padding:5px 7px 8px;color:rgba(245,242,234,.72);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;}
.bx-over-head small{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:18px;border-radius:999px;background:var(--gold,#f5a623);color:#121212;font-size:9px;font-weight:950;letter-spacing:0;}
.bx-over-item{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:8px 9px;border:1px solid transparent;background:transparent;color:#f7f3ea;font-size:13px;font-weight:650;border-radius:11px;cursor:pointer;font-family:var(--font);text-align:left;transition:background .12s,border-color .12s,transform .12s,color .12s;}
.bx-over-item:hover{background:rgba(245,166,35,.09);border-color:rgba(245,166,35,.18);transform:translateX(2px);}
.bx-over-icon{width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:rgba(245,166,35,.13);color:var(--gold,#f5a623);flex:0 0 28px;}
.bx-over-icon svg{flex-shrink:0;}
.bx-over-copy{display:flex;flex-direction:column;gap:1px;min-width:0;}
.bx-over-title{font-size:13px;line-height:1.2;color:#fff;font-weight:800;white-space:nowrap;}
.bx-over-sub{font-size:11px;line-height:1.2;color:rgba(245,242,234,.55);font-weight:600;white-space:nowrap;}
.bx-over-sep{height:1px;background:linear-gradient(90deg,transparent,rgba(245,166,35,.2),transparent);margin:6px 4px;}
#role-badge{height:30px!important;padding:0 11px!important;border-radius:999px!important;font-size:11px!important;font-weight:850!important;box-shadow:0 0 0 1px rgba(255,255,255,.04) inset!important;}
#bx-right-zone #role-badge{display:none!important;}
#bx-overflow-btn{width:34px!important;height:34px!important;border-radius:12px!important;background:rgba(245,166,35,.12)!important;border:1px solid rgba(245,166,35,.22)!important;color:var(--gold,#f5a623)!important;}
#bx-overflow-btn:hover{background:rgba(245,166,35,.2)!important;transform:translateY(-1px);}
#bx-search-btn,#bx-quick-diagnostics,#bx-backup-badge,#bx-quick-theme,#bx-quick-lang,#bx-quick-report{display:none!important;}
.bx-no-project-card{border:1px solid rgba(245,166,35,.2);background:linear-gradient(180deg,var(--bg2),var(--card));border-radius:12px;padding:22px 20px;margin:14px 0 18px;text-align:center;box-shadow:0 18px 44px rgba(0,0,0,.12);}
.bx-no-project-card .mark{width:44px;height:44px;border-radius:13px;background:var(--gold);color:#090909;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-weight:950;font-size:18px;letter-spacing:-.05em;}
.bx-no-project-card b{display:block;color:var(--text);font-size:18px;line-height:1.2;margin-bottom:6px;}
.bx-no-project-card span{display:block;color:var(--text3);font-size:13px;line-height:1.45;margin-bottom:14px;}
/* v145: hide render-function content that stacks below the no-project card */
.bx-no-project-card~*{display:none!important;}
.bx-login-role-icon{font-size:42px;margin-bottom:12px;}
.bx-pin-dots{display:flex;gap:12px;margin:2px 0 22px;}
.bx-pin-dots i{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.25);}
.bx-pin-dots i.on{background:var(--gold);border-color:var(--gold);}
.bx-pin-pad{display:grid;grid-template-columns:repeat(3,68px);gap:10px;}
.bx-pin-pad button{height:54px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;font-size:18px;font-weight:800;cursor:pointer;font-family:var(--font);}
.bx-pin-pad button:hover{background:rgba(255,255,255,.12);}
#bx-login-error{height:18px;margin-top:14px;color:var(--danger);font-size:12px;font-weight:700;}
/* Phases list grid */
#phases-list .phase-row{display:grid!important;grid-template-columns:minmax(260px,2fr) minmax(116px,.8fr) minmax(116px,.8fr) minmax(116px,.8fr) 72px minmax(150px,1fr) 76px!important;gap:12px!important;align-items:center!important;padding:12px 0!important;}
#phases-list .phase-name{font-size:15.5px!important;line-height:1.35!important;font-weight:750!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;color:var(--text)!important;}
#phases-list .phase-val{font-size:13.5px!important;white-space:nowrap!important;}
@media(max-width:900px){.bx-role-grid{grid-template-columns:1fr 1fr;}#phases-list .phase-row{grid-template-columns:minmax(190px,1.4fr) repeat(3,minmax(92px,.7fr)) 60px!important;}.phase-row .pbar-wrap,#phases-list .phase-rag{display:none!important;}}
/* Permit summary card */
.permit-summary-native{display:grid;grid-template-columns:1fr auto;gap:10px 16px;align-items:center;margin-bottom:14px;padding:14px 16px;border:1px solid var(--border2);border-radius:10px;background:linear-gradient(180deg,var(--bg2),var(--bg3));box-shadow:0 10px 28px rgba(0,0,0,.08);}
.permit-summary-label{font-size:11px;color:var(--text3);font-weight:700;text-transform:none;letter-spacing:0;}
.permit-summary-value{font-size:18px;font-weight:850;color:var(--text);letter-spacing:-.02em;margin-top:2px;}
.permit-summary-metrics{display:flex;gap:8px;align-items:center;justify-content:flex-end;font-size:12px;color:var(--text3);}
.permit-summary-metrics span{border:1px solid var(--border);background:var(--bg2);border-radius:999px;padding:4px 10px;white-space:nowrap;font-size:12px;color:var(--text2);}
.permit-summary-metrics b{color:var(--text);}
.permit-summary-bar{grid-column:1/-1;height:6px;background:var(--bg);border-radius:999px;overflow:hidden;border:1px solid var(--border);}
.permit-summary-bar i{display:block;height:100%;background:var(--gold);border-radius:inherit;}
.native-list .insp-stage{border-radius:10px;margin-bottom:8px;background:var(--bg2);border-color:var(--border2);}
/* Permit rows: horizontal padding so content isn't flush to edge */
.permit-stage{padding-left:12px !important;padding-right:12px !important;}
/* Gas permit toggle: same horizontal padding */
.bx-toggle-row{padding-left:14px !important;padding-right:14px !important;}
/* Native summary grid (phase budget) */
.native-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;}
.native-summary-grid>div{background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:12px 14px;}
.native-summary-grid span{display:block;font-size:11px;color:var(--text3);font-weight:700;margin-bottom:6px;text-transform:none;letter-spacing:0;}
.native-summary-grid b{display:block;font-size:18px;color:var(--text);font-weight:850;letter-spacing:-.02em;}
.native-summary-grid b.ok{color:var(--success,var(--green));}
.native-summary-grid b.danger{color:var(--danger);}
.native-budget-list .phase-row,.native-budget-list .phase-card,.native-budget-list>div{border-radius:10px!important;}
/* Project Control workflow hierarchy */
.pc-section{margin-bottom:20px;}
.pc-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px;}
.pc-section-title{font-size:14px;font-weight:850;color:var(--text);letter-spacing:0;}
.pc-section-sub{font-size:12px;color:var(--text3);line-height:1.5;margin-top:4px;letter-spacing:0;}
.pc-summary-metrics{margin-bottom:0;}
#phase-summary-zone .native-summary-grid{grid-template-columns:repeat(6,minmax(0,1fr)) !important;margin-bottom:0;}
#phase-allocation-notice-zone:empty{display:none;}
#phase-allocation-notice-zone #phase-est-warning{margin-bottom:10px !important;}
.pc-planning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.pc-work-surface .sec-body{padding:14px 16px;}
.pc-work-surface .sec-title{font-size:13px;font-weight:850;color:var(--text);letter-spacing:0;}
.pc-date-value{font-size:15px !important;}
.pc-change-log .empty.pc-empty{min-height:190px;padding:38px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.pc-change-log .empty.pc-empty .empty-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:rgba(240,165,0,.12);color:var(--gold);font-size:22px;font-weight:700;margin-bottom:10px;}
.pc-change-log .empty.pc-empty .empty-text{max-width:420px;line-height:1.55;}
.prod-log-grid{display:grid;grid-template-columns:minmax(290px,1fr) minmax(430px,1.6fr);gap:16px;}
.prod-log-empty{min-height:185px;padding:36px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.prod-log-empty .empty-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:rgba(240,165,0,.12);color:var(--gold);font-size:22px;font-weight:700;margin-bottom:10px;}
.prod-log-empty .empty-text{max-width:400px;line-height:1.55;}
/* Finance workflow hierarchy */
.fin-section{margin-bottom:20px;}
.fin-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px;}
.fin-section-title{font-size:14px;font-weight:850;color:var(--text);letter-spacing:0;}
.fin-section-sub{font-size:12px;color:var(--text3);line-height:1.5;margin-top:4px;letter-spacing:0;}
.fin-section .budget-bar{margin-bottom:0;}
.fin-filter-row{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
.fin-work-surface .sec-title{font-size:13px;font-weight:850;color:var(--text);letter-spacing:0;}
.fin-empty{min-height:185px;padding:42px 20px !important;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.fin-empty-title{font-size:18px;font-weight:750;color:var(--text);margin-bottom:8px;}
.fin-empty-text{max-width:420px;color:var(--text2);font-size:13px;line-height:1.55;}
.fin-risk-note{padding:12px 14px;background:rgba(192,0,0,.08);border:1px solid rgba(192,0,0,.28);border-radius:var(--r2);margin-bottom:14px;font-size:12px;line-height:1.55;color:var(--text2);}
.fin-risk-note strong{color:var(--danger);margin-right:8px;}
@media(max-width:1100px){#phase-summary-zone .native-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}}
@media(max-width:860px){
  .pc-section{margin-bottom:16px;}
  .fin-section{margin-bottom:16px;}
  .pc-planning-grid{grid-template-columns:1fr;}
  #phase-summary-zone .native-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .phase-timeline-head{flex-direction:column-reverse;gap:10px;}
}
@media(max-width:480px){
  #phase-summary-zone .native-summary-grid{grid-template-columns:1fr;}
  .pc-section-head{margin-bottom:8px;}
  .fin-section-head{margin-bottom:8px;}
  .pc-work-surface .sec-body{padding:12px;}
  .fin-empty{min-height:145px;padding:30px 14px !important;}
}
/* Portfolio command center */
#p-portfolio .port-grid{display:block!important;}
.bx-port-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;}
.bx-port-segments,.bx-port-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.bx-port-segments button,.bx-port-filters button{height:32px;padding:0 12px;border:1px solid var(--border2);border-radius:8px;background:var(--bg2);color:var(--text2);font-size:12px;font-weight:750;font-family:var(--font);cursor:pointer;}
.bx-port-segments button.on,.bx-port-filters button.on{background:var(--gold);border-color:var(--gold);color:#090909;}
.bx-port-filters b{font-size:10px;margin-left:4px;}
.bx-port-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;}
.bx-port-summary>div{background:var(--bg2);border:1px solid var(--border2);border-radius:8px;padding:12px 14px;}
.bx-port-summary span{display:block;font-size:11px;color:var(--text3);font-weight:750;margin-bottom:4px;}
.bx-port-summary b{font-size:20px;font-weight:900;color:var(--text);}
.bx-port-summary b.good{color:var(--success,var(--green));}
.bx-port-summary b.warn{color:var(--warn);}
.bx-port-summary b.danger{color:var(--danger);}
.bx-port-list{display:flex;flex-direction:column;gap:10px;}
.bx-port-row{display:grid;grid-template-columns:minmax(260px,1.35fr) minmax(340px,1.25fr) minmax(180px,.8fr) minmax(190px,.8fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--border2);border-radius:8px;background:var(--bg2);cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.06);}
.bx-port-row:hover{border-color:rgba(255,192,0,.45);}
.bx-port-row.active{border-color:var(--gold);box-shadow:0 0 0 1px rgba(255,192,0,.2),0 12px 30px rgba(0,0,0,.12);}
.bx-port-main{display:flex;align-items:center;gap:14px;min-width:0;}
.bx-port-health{width:48px;height:48px;position:relative;flex-shrink:0;display:grid;place-items:center;}
.bx-port-health svg{position:absolute;inset:0;transform:rotate(-90deg);}
.bx-port-health circle{fill:none;stroke:var(--border);stroke-width:5;pathLength:100;}
.bx-port-health circle+circle{stroke:var(--gold);stroke-linecap:round;}
.bx-port-row.good .bx-port-health circle+circle{stroke:var(--success,var(--green));}
.bx-port-row.warn .bx-port-health circle+circle{stroke:var(--warn);}
.bx-port-row.danger .bx-port-health circle+circle{stroke:var(--danger);}
.bx-port-health b{font-size:13px;font-weight:900;color:var(--text);}
.bx-port-id{min-width:0;}
.bx-port-title{font-size:16px;font-weight:900;color:var(--text);letter-spacing:0;white-space:normal;line-height:1.25;}
.bx-port-meta{font-size:12px;color:var(--text3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bx-port-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;}
.bx-port-chip{font-size:10.5px;font-weight:850;border-radius:999px;padding:3px 8px;border:1px solid var(--border);background:var(--bg);color:var(--text3);}
.bx-port-chip.good{color:var(--success,var(--green));border-color:rgba(112,173,71,.35);}
.bx-port-chip.warn{color:var(--warn);border-color:rgba(245,158,11,.35);}
.bx-port-chip.danger{color:var(--danger);border-color:rgba(192,0,0,.35);}
.bx-port-chip.muted{color:var(--text3);}
.bx-port-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.bx-port-metrics span,.bx-port-bars span,.bx-port-mode-grid span,.bx-port-next span{display:block;font-size:10.5px;color:var(--text3);font-weight:750;margin-bottom:4px;}
.bx-port-metrics b,.bx-port-mode-grid b,.bx-port-next b{display:block;font-size:13.5px;color:var(--text);font-weight:850;white-space:nowrap;}
.bx-port-metrics b.good,.bx-port-mode-grid b.good{color:var(--success,var(--green));}
.bx-port-metrics b.warn{color:var(--warn);}
.bx-port-metrics b.danger,.bx-port-mode-grid b.danger{color:var(--danger);}
.bx-port-metrics i,.bx-port-bars i{display:block;height:5px;background:var(--bg);border:1px solid var(--border);border-radius:999px;overflow:hidden;margin-top:6px;}
.bx-port-metrics em,.bx-port-bars em{display:block;height:100%;background:var(--gold);border-radius:inherit;}
.bx-port-metrics em.warn{background:var(--warn);}
.bx-port-metrics em.danger,.bx-port-bars em.danger{background:var(--danger);}
.bx-port-bars{display:flex;flex-direction:column;gap:8px;}
.bx-port-bars>div{display:grid;grid-template-columns:72px 1fr 38px;gap:8px;align-items:center;}
.bx-port-bars span{margin:0;}
.bx-port-bars b{font-size:12px;color:var(--text2);text-align:right;font-weight:850;}
.bx-port-mode-grid{display:grid;grid-template-columns:1fr;gap:7px;}
.bx-port-next{min-width:160px;}
.bx-port-next b{line-height:1.25;white-space:normal;}
.bx-port-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;min-width:156px;}
.bx-port-actions .btn{font-size:11px;padding:5px 8px;white-space:nowrap;}
.bx-port-empty{border:1px dashed var(--border2);border-radius:8px;padding:30px;text-align:center;background:var(--bg2);}
.bx-port-empty>div{font-size:18px;font-weight:900;color:var(--text);}
.bx-port-empty p{font-size:13px;color:var(--text3);line-height:1.55;max-width:520px;margin:8px auto 16px;}
@media(max-width:1200px){.bx-port-row{grid-template-columns:1fr;align-items:stretch;}.bx-port-actions{display:flex;min-width:0;}.bx-port-actions .btn{flex:1;}.bx-port-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.bx-port-controls{align-items:flex-start;flex-direction:column;}.bx-port-summary{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(max-width:720px){.bx-port-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}.bx-port-mode-grid{grid-template-columns:1fr;}.bx-port-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.bx-port-actions{display:grid;grid-template-columns:1fr 1fr;}}
/* Phase timeline (gantt) */
.phase-timeline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.phase-timeline-title{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.02em;}
.phase-timeline-sub{font-size:12px;color:var(--text3);margin-top:3px;}
.phase-timeline-legend{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--text3);white-space:nowrap;}
.phase-timeline-legend span{display:flex;align-items:center;gap:5px;}
.phase-timeline-legend i{width:16px;height:5px;border-radius:4px;display:inline-block;}
.phase-timeline-legend .planned{background:rgba(240,165,0,.28);}
.phase-timeline-legend .actual{background:var(--gold);}
.phase-timeline-legend .late{background:var(--danger);}
.phase-timeline-list{display:flex;flex-direction:column;gap:8px;}
.phase-timeline-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr 76px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);}
.phase-timeline-name{font-size:12.5px;color:var(--text2);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.phase-timeline-bars{position:relative;height:22px;background:var(--bg3);border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.phase-plan-bar,.phase-actual-bar{position:absolute;height:7px;border-radius:999px;top:4px;}
.phase-plan-bar{background:rgba(240,165,0,.28);}
.phase-actual-bar{top:12px;background:var(--gold);}
.phase-actual-bar.late{background:var(--danger);}
.phase-timeline-var{text-align:right;font-size:12px;color:var(--text3);font-family:var(--mono,monospace);}
.phase-timeline-var.late{color:var(--danger);font-weight:800;}
.phase-timeline-var.ok{color:var(--success,var(--green));font-weight:800;}
.permit-stage .insp-stage-num.pass{background:var(--success,var(--green));color:#fff;}

/* ─── V6 POLISH (migrated from bx-polish-v6.js, retired batch 11) ─── */

/* 1. Token normalization */
:root {
  --topbar: 48px !important;
  --font:   'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  --mono:   'JetBrains Mono', 'SF Mono', ui-monospace, monospace !important;
}

/* 2. Global font — one winner */
*, body, input, select, textarea, button {
  font-family: var(--font) !important;
}

/* 3. Topbar — exact height, no conflicts */
.topbar {
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
}

/* 4. Panel title — calmer, not aggressive */
.ph-hdr,
[class*="panel-header-title"],
[class*="ph-title"],
.ph-hdr-row > div > div:first-child {
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -.025em !important;
}

/* 5. KPI values — one size, one declaration */
.kpi-val {
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: -.03em !important;
  line-height: 1.1 !important;
  font-family: var(--mono) !important;
}
.kpi-lbl {
  font-size: 9.5px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
}
.kpi-delta {
  font-size: 11px !important;
}

/* 6. Panel padding — breathing room, not wasteful */
.panel {
  padding: 24px 28px !important;
}
@media (max-width: 860px) {
  .panel { padding: 16px !important; }
}

/* 7. Body base size */
html { font-size: 13px !important; }
body { font-size: 13px !important; }

/* 8. Table text — legible, not tiny */
td { font-size: 12.5px !important; }
th { font-size: 10px !important; }

/* 9. Sidebar nav items — comfortable touch targets */
.ni {
  font-size: 12.5px !important;
  padding: 6px 12px !important;
}

/* 10. Modal text */
.modal-title { font-size: 15px !important; }
.modal-sub   { font-size: 12px !important; }

/* 11. Button text */
button:not(.fs-btn), .btn {
  font-size: 12px !important;
  height: 30px !important;
}
.btn-sm { height: 26px !important; font-size: 11px !important; }
.btn-lg { height: 36px !important; font-size: 13px !important; }
/* Text-size selector buttons need auto height to contain multi-line content */
.fs-btn { height: auto !important; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; }

/* 12. Form inputs */
.finp, .fsel, .ftxt {
  font-size: 12.5px !important;
  height: 30px !important;
}
.ftxt { height: auto !important; }

/* 13. Draw card amounts */
.draw-card .amt {
  font-family: var(--mono) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

/* 14. Section dividers in panels */
.ph-hdr-row {
  margin-bottom: 18px !important;
}

/* ─── DESIGN CONTROLLER (migrated from bx-design-final.js, retired batch 12) ─── */

/* Mobile hamburger — inserted inside #bx-logo-zone, visible ≤860px only */
#bx-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  background: transparent;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 6px;
  cursor: pointer;
  padding: 5px;
  gap: 3px;
  margin-left: auto;
  flex-shrink: 0;
}
#bx-hamburger span {
  display: block;
  width: 16px;
  height: 2px;
  background: #9896A0;
  border-radius: 1px;
  transition: background .15s;
}
#bx-hamburger:hover span { background: #EEEDF0; }
@media (max-width: 860px) {
  #bx-hamburger { display: flex !important; }
}

/* Mobile overlay */
#bx-mob-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 299;
}

/* Sidebar slide-in on mobile */
@media (max-width: 860px) {
  .sidebar {
    transform: translateX(-100%);
    transition: transform .22s cubic-bezier(.2,0,0,1);
  }
  .sidebar.bx-open {
    transform: translateX(0) !important;
    z-index: 300 !important;
    box-shadow: 4px 0 32px rgba(0,0,0,.6);
  }
}

/* Brief severity bands */
.brief-danger {
  border-left-color: var(--danger, #C00000) !important;
  background: rgba(192,0,0,.07) !important;
}
.brief-warn {
  border-left-color: #F59E0B !important;
  background: rgba(245,158,11,.06) !important;
}
.brief-info {
  border-left-color: var(--gold, #F0A500) !important;
}

/* Toast container — #bx-toasts / .bx-toast (design-controller variant) */
#bx-toasts {
  position: fixed;
  bottom: 24px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 6px;
  pointer-events: none;
}
.bx-toast {
  pointer-events: auto;
  background: #1C1C1F;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 12.5px;
  color: #EEEDF0;
  box-shadow: 0 4px 16px rgba(0,0,0,.4);
  cursor: pointer;
  max-width: 280px;
  animation: bxToastIn .18s ease both;
}
.bx-toast.success { border-left: 3px solid var(--success, #3FB950); }
.bx-toast.error   { border-left: 3px solid var(--danger,  #F85149); }
.bx-toast.warn    { border-left: 3px solid #F59E0B; }
@keyframes bxToastIn {
  from { opacity: 0; transform: translateX(12px); }
  to   { opacity: 1; transform: none; }
}

/* Form validation */
.field-error {
  display: block;
  font-size: 11px;
  color: var(--danger, #F85149);
  margin-top: 3px;
}
input.invalid,
select.invalid,
textarea.invalid {
  border-color: var(--danger, #F85149) !important;
  outline: 1px solid var(--danger, #F85149) !important;
}

/* ─── POLISH FIXES (migrated from bx-polish-fixes.js, retired batch 13) ─── */

/* Money input auto-wrap — .bx-money-auto-wrap container + $ prefix */
.bx-money-auto-wrap,
.bx-money-wrap {
  position: relative !important;
  display: block !important;
  width: 100% !important;
}
.bx-money-auto-wrap > .dollar-prefix,
.bx-money-wrap > .dollar-prefix,
.dollar-prefix, .currency-prefix, .money-prefix, .prefix-dollar {
  position: absolute !important;
  left: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: inline-grid !important;
  place-items: center !important;
  min-width: 16px !important;
  height: 1em !important;
  line-height: 1 !important;
  pointer-events: none !important;
  z-index: 5 !important;
  color: var(--text2) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}
.bx-money-auto-wrap > input,
.bx-money-wrap > input,
.bx-money-field,
.has-dollar input,
.money-input,
input.bx-money-input-fixed {
  padding-left: 52px !important;
  padding-right: 34px !important;
  text-indent: 0 !important;
}
input[type="number"][id*="amount"],input[type="number"][id*="amt"],
input[type="number"][id*="cost"],input[type="number"][id*="price"],
input[type="number"][id*="budget"],input[type="number"][id*="fee"],
input[type="number"][id*="loan"],input[type="number"][id*="tax"],
input[type="number"][id*="paid"],input[type="number"][id*="balance"],
input[type="number"][id*="revenue"],input[type="number"][id*="profit"] {
  padding-left: 52px !important;
  padding-right: 34px !important;
}
input[type="number"][id*="percent"],input[type="number"][id*="pct"],
input[type="number"][id*="rate"],input[type="number"][id*="roi"],
input[type="number"][id*="sqft"],input[type="number"][id*="area"] {
  padding-left: 10px !important;
}

/* Phase budget grid layout */
.bx-phase-name {
  grid-template-columns: 32px minmax(0,1fr) !important;
  gap: 12px !important;
}
.bx-phase-name b     { font-size: 15.5px !important; line-height: 1.3 !important; }
.bx-phase-name small {
  font-size: 12.75px !important;
  line-height: 1.45 !important;
  color: var(--text2) !important;
  font-weight: 800 !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
.bx-phase-head,
.bx-phase-row {
  grid-template-columns: minmax(320px,1.5fr) repeat(4,minmax(112px,.62fr)) minmax(160px,.85fr) 92px !important;
}

/* Theme-warm / theme-white dark-background overrides */
body.theme-warm .main [style*="background:#0"],body.theme-warm .main [style*="background: #0"],
body.theme-warm .main [style*="background:#111"],body.theme-warm .main [style*="background: #111"],
body.theme-warm .main [style*="background:#1"],body.theme-warm .main [style*="background: #1"],
body.theme-white .main [style*="background:#0"],body.theme-white .main [style*="background: #0"],
body.theme-white .main [style*="background:#111"],body.theme-white .main [style*="background: #111"],
body.theme-white .main [style*="background:#1"],body.theme-white .main [style*="background: #1"] {
  background: var(--card) !important;
  color: var(--text) !important;
  border-color: var(--border2) !important;
}
body.theme-warm :is(.kpi-card,.metric-card,.chart-card,.setting-card,.project-card,.stat-card,.bb-card,.bx-prod-kpi,.bx-prod-section,.bx-prod-co-card,.bx-phase-row,.bx-phase-head),
body.theme-white :is(.kpi-card,.metric-card,.chart-card,.setting-card,.project-card,.stat-card,.bb-card,.bx-prod-kpi,.bx-prod-section,.bx-prod-co-card,.bx-phase-row,.bx-phase-head) {
  background: var(--bg2) !important;
  color: var(--text) !important;
  border-color: var(--border2) !important;
}
body.theme-warm :is(.kpi-card,.metric-card,.chart-card,.setting-card,.project-card,.stat-card,.bb-card,.bx-prod-kpi,.bx-prod-section,.bx-prod-co-card,.bx-phase-row,.bx-phase-head) :is(h1,h2,h3,h4,b,strong,.title,.kpi-val,.metric-value,.bb-val),
body.theme-white :is(.kpi-card,.metric-card,.chart-card,.setting-card,.project-card,.stat-card,.bb-card,.bx-prod-kpi,.bx-prod-section,.bx-prod-co-card,.bx-phase-row,.bx-phase-head) :is(h1,h2,h3,h4,b,strong,.title,.kpi-val,.metric-value,.bb-val) {
  color: var(--text) !important;
}
body.theme-warm :is(.kpi-card,.metric-card,.chart-card,.setting-card,.project-card,.stat-card,.bb-card,.bx-prod-kpi,.bx-prod-section,.bx-prod-co-card,.bx-phase-row,.bx-phase-head) :is(span,small,p,label,.muted,.sub,.desc,.kpi-label,.metric-label,.bb-label),
body.theme-white :is(.kpi-card,.metric-card,.chart-card,.setting-card,.project-card,.stat-card,.bb-card,.bx-prod-kpi,.bx-prod-section,.bx-prod-co-card,.bx-phase-row,.bx-phase-head) :is(span,small,p,label,.muted,.sub,.desc,.kpi-label,.metric-label,.bb-label) {
  color: var(--text2) !important;
}
body.theme-warm canvas,
body.theme-white canvas { filter: none !important; }

/* Responsive phase grid */
@media (max-width: 1200px) {
  .bx-phase-head { display: none !important; }
  .bx-phase-row  { grid-template-columns: 1fr 1fr !important; }
  .bx-phase-name    { grid-column: 1 / -1 !important; }
  .bx-phase-progress{ grid-column: 1 / -1 !important; }
}
@media (max-width: 680px) {
  .bx-phase-row      { grid-template-columns: 1fr !important; }
  .bx-phase-name b   { font-size: 15px !important; }
  .bx-phase-name small { font-size: 12.5px !important; }
}

/* ─── KPI MATRIX (migrated from bx-kpi-matrix.js, batch 14) ─── */
.bx-kpi-matrix { display: flex; flex-direction: column; gap: 12px; }
.bx-kpi-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(180px,.35fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--border2);
  border-radius: 12px;
  background: linear-gradient(180deg,var(--bg2),var(--bg3));
  padding: 14px 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}
.bx-kpi-hero span,
.bx-kpi-hero-meter span {
  display: block;
  font-size: 11px;
  color: var(--text3);
  font-weight: 850;
  margin-bottom: 4px;
}
.bx-kpi-hero b { display: block; font-size: 22px; color: var(--text); font-weight: 950; line-height: 1.1; }
.bx-kpi-hero small { display: block; font-size: 11px; color: var(--text2); margin-top: 4px; }
.bx-kpi-hero-meter b { font-size: 22px; color: var(--gold); }
.bx-kpi-meter {
  height: 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--bg);
  overflow: hidden;
}
.bx-kpi-meter i { display: block; height: 100%; background: var(--gold); border-radius: inherit; }
.bx-kpi-group {
  border: 1px solid var(--border2);
  border-radius: 12px;
  background: var(--bg2);
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(0,0,0,.06);
}
.bx-kpi-group h3 {
  margin: 0;
  padding: 9px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--bg3);
  font-size: 12px;
  font-weight: 950;
  color: var(--text);
  letter-spacing: 0;
  text-transform: none;
}
.bx-kpi-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(132px,1fr));
  gap: 1px;
  background: var(--border);
}
.bx-kpi-cell {
  min-height: 82px;
  background: var(--card, var(--bg2));
  padding: 11px 12px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 6px;
  border-left: 3px solid transparent;
}
.bx-kpi-cell span { font-size: 10.5px; line-height: 1.2; color: var(--text3); font-weight: 900; text-transform: none; letter-spacing: 0; }
.bx-kpi-cell b    { font-size: 19px; line-height: 1.1; color: var(--text); font-weight: 950; letter-spacing: 0; overflow-wrap: anywhere; }
.bx-kpi-cell small { font-size: 10.5px; line-height: 1.25; color: var(--text2); font-weight: 750; }
.bx-kpi-cell.good { border-left-color: var(--success,var(--green)); }
.bx-kpi-cell.good b { color: var(--success,var(--green)); }
.bx-kpi-cell.warn { border-left-color: var(--warn); }
.bx-kpi-cell.warn b { color: var(--warn); }
.bx-kpi-cell.bad  { border-left-color: var(--danger); }
.bx-kpi-cell.bad b { color: var(--danger); }
body.theme-warm .bx-kpi-cell,
body.theme-white .bx-kpi-cell { background: var(--card) !important; color: var(--text) !important; }
@media (max-width: 1280px) { .bx-kpi-grid { grid-template-columns: repeat(4, minmax(132px,1fr)); } }
@media (max-width: 840px) {
  .bx-kpi-hero { grid-template-columns: 1fr; }
  .bx-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bx-kpi-cell { min-height: 78px; }
  .bx-kpi-cell b { font-size: 17px; }
}
@media (max-width: 460px) { .bx-kpi-grid { grid-template-columns: 1fr; } }

/* ─── APP POLISH AUDIT (migrated from bx-app-polish-audit.js, batch 14) ─── */
@media (min-width: 1201px) {
  .bx-phase-head { grid-template-columns: minmax(460px,2fr) repeat(4,minmax(112px,.58fr)) minmax(150px,.76fr) 88px !important; }
  .bx-phase-row  { grid-template-columns: minmax(460px,2fr) repeat(4,minmax(112px,.58fr)) minmax(150px,.76fr) 88px !important; }
  .bx-phase-name { grid-template-columns: 32px minmax(170px,1fr) max-content !important; align-items: center !important; column-gap: 12px !important; }
  .bx-phase-name > span  { grid-column: 1 !important; grid-row: 1 !important; }
  .bx-phase-name b { grid-column: 2 !important; grid-row: 1 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; font-size: 15.5px !important; }
  .bx-phase-name small { grid-column: 3 !important; grid-row: 1 !important; margin: 0 !important; white-space: nowrap !important; font-size: 12.75px !important; line-height: 1 !important; color: var(--text2) !important; font-weight: 850 !important; }
}
@media (min-width: 900px) and (max-width: 1200px) {
  .bx-phase-name { grid-template-columns: 32px minmax(150px,1fr) max-content !important; }
  .bx-phase-name > span { grid-column: 1; }
  .bx-phase-name b { grid-column: 2; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
  .bx-phase-name small { grid-column: 3; white-space: nowrap !important; margin: 0 !important; }
}
@media (max-width: 899px) {
  .bx-phase-name small { grid-column: 2 !important; white-space: normal !important; margin-top: 3px !important; }
}
body.theme-warm {
  --bg: #ebe7df; --bg2: #f8f5ef; --bg3: #efe9df; --bg4: #e2dacd;
  --card: #fffdfa; --dark2: #fffdfa;
  --border: rgba(64,52,38,.16); --border2: rgba(64,52,38,.28);
  --text: #151413; --text2: #36312b; --text3: #746b60;
}
body.theme-white {
  --bg: #eef2f6; --bg2: #f8fafc; --bg3: #e7ecf3; --bg4: #dce4ee;
  --card: #ffffff; --dark2: #ffffff;
  --border: rgba(22,31,44,.12); --border2: rgba(22,31,44,.22);
  --text: #121820; --text2: #344154; --text3: #6b778a;
}
body.theme-warm .topbar,
body.theme-white .topbar {
  background: #101113 !important;
  color: #f7f2e8 !important;
  border-bottom: 1px solid rgba(255,192,0,.32) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.18) !important;
}
body.theme-warm .topbar *,
body.theme-white .topbar * { color: inherit; }
body.theme-warm .sidebar {
  background: linear-gradient(180deg,#fbf8f1,var(--bg2)) !important;
  border-right: 1px solid var(--border2) !important;
  box-shadow: 8px 0 28px rgba(64,52,38,.08) !important;
}
body.theme-white .sidebar {
  background: linear-gradient(180deg,#fff,var(--bg2)) !important;
  box-shadow: 8px 0 28px rgba(22,31,44,.07) !important;
}
body.theme-warm .main,
body.theme-white .main {
  background: radial-gradient(circle at 30% -10%,rgba(255,192,0,.08),transparent 32%),var(--bg) !important;
}
body.theme-warm :is(.sec,.mc,.modal,.bx-prod-section,.bx-prod-kpi,.bx-prod-co-card,.bx-kpi-group,.bx-kpi-hero,.bx-phase-row),
body.theme-white :is(.sec,.mc,.modal,.bx-prod-section,.bx-prod-kpi,.bx-prod-co-card,.bx-kpi-group,.bx-kpi-hero,.bx-phase-row) {
  border-color: var(--border2) !important;
  box-shadow: 0 10px 26px rgba(22,18,14,.07) !important;
}
body.theme-white :is(.sec,.mc,.modal,.bx-prod-section,.bx-prod-kpi,.bx-prod-co-card,.bx-kpi-group,.bx-kpi-hero,.bx-phase-row) {
  box-shadow: 0 10px 26px rgba(22,31,44,.06) !important;
}
body.theme-warm :is(.finp,.fsel,.ftxt,.bx-phase-inp),
body.theme-white :is(.finp,.fsel,.ftxt,.bx-phase-inp) {
  background: var(--card) !important;
  border-color: var(--border2) !important;
  color: var(--text) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55) !important;
}
body.theme-warm .dash-tab,
body.theme-white .dash-tab { color: var(--text2) !important; }
body.theme-warm .dash-tab.on,
body.theme-white .dash-tab.on { color: #080808 !important; background: var(--gold) !important; }
body.theme-warm .btn-ghost,
body.theme-white .btn-ghost {
  background: rgba(255,255,255,.58) !important;
  border-color: var(--border2) !important;
  color: var(--text2) !important;
}
body.theme-warm .ni.on,
body.theme-white .ni.on { background: rgba(255,192,0,.18) !important; border-left: 3px solid var(--gold) !important; }
body.theme-warm .tbl,
body.theme-white .tbl { background: var(--card) !important; border-color: var(--border2) !important; }
body.theme-warm .tbl th,
body.theme-white .tbl th { background: var(--bg3) !important; color: var(--text2) !important; }

/* ─── BUGCLASS STABILITY (migrated from bx-bugclass-ui-stability.js, batch 15) ─── */
#p-payments .budget-bar { display: grid !important; }
#p-payments .ph-actions  { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
body.theme-warm {
  --bg: #ece7df !important; --bg2: #fbf8f2 !important; --bg3: #f0eadf !important; --bg4: #e5dccc !important;
  --card: #fffdf8 !important; --text: #14110f !important; --text2: #332d26 !important; --text3: #5f564b !important;
  --border: rgba(45,36,26,.15) !important; --border2: rgba(45,36,26,.28) !important;
}
body.theme-white {
  --bg: #eef3f8 !important; --bg2: #fbfcfe !important; --bg3: #e8eef5 !important; --bg4: #dde6ef !important;
  --card: #ffffff !important; --text: #101820 !important; --text2: #2d3b4c !important; --text3: #59687a !important;
  --border: rgba(16,24,32,.12) !important; --border2: rgba(16,24,32,.24) !important;
}
body.theme-warm .topbar,
body.theme-white .topbar {
  background: var(--card) !important; color: var(--text) !important;
  border-bottom: 1px solid var(--border2) !important; box-shadow: 0 10px 24px rgba(28,22,15,.08) !important;
}
body.theme-warm .topbar *,
body.theme-white .topbar * { color: var(--text) !important; }
body.theme-warm .sidebar,
body.theme-white .sidebar {
  background: var(--bg2) !important; color: var(--text) !important; border-right: 1px solid var(--border2) !important;
}
body.theme-warm .main,
body.theme-white .main { background: var(--bg) !important; color: var(--text) !important; }
body.theme-warm :is(.sec,.mc,.modal,.tbl,.setting-card,.kpi-card,.metric-card,.bb-card,.bx-prod-section,.bx-prod-kpi,.bx-prod-co-card,.bx-kpi-group,.bx-kpi-hero,.bx-phase-row,.bx-phase-head),
body.theme-white :is(.sec,.mc,.modal,.tbl,.setting-card,.kpi-card,.metric-card,.bb-card,.bx-prod-section,.bx-prod-kpi,.bx-prod-co-card,.bx-kpi-group,.bx-kpi-hero,.bx-phase-row,.bx-phase-head) {
  background: var(--card) !important; color: var(--text) !important; border-color: var(--border2) !important;
}
body.theme-warm :is(.finp,.fsel,.ftxt,input,select,textarea),
body.theme-white :is(.finp,.fsel,.ftxt,input,select,textarea) {
  background: var(--card) !important; color: var(--text) !important; border-color: var(--border2) !important;
}
body.theme-warm [style*="background:#0"],body.theme-warm [style*="background: #0"],
body.theme-warm [style*="background:#111"],body.theme-warm [style*="background:#141414"],
body.theme-warm [style*="background:#161616"],body.theme-warm [style*="background:#1a"],
body.theme-warm [style*="background:#1e"],body.theme-warm [style*="background:#222"],
body.theme-white [style*="background:#0"],body.theme-white [style*="background: #0"],
body.theme-white [style*="background:#111"],body.theme-white [style*="background:#141414"],
body.theme-white [style*="background:#161616"],body.theme-white [style*="background:#1a"],
body.theme-white [style*="background:#1e"],body.theme-white [style*="background:#222"] {
  background: var(--card) !important; color: var(--text) !important; border-color: var(--border2) !important;
}
body.theme-warm :is(.ni,.ni-label,.nav-group-label,.ph-title,.ph-sub,.sec-title,.bb-label,.bb-val,.tbl th,.tbl td),
body.theme-white :is(.ni,.ni-label,.nav-group-label,.ph-title,.ph-sub,.sec-title,.bb-label,.bb-val,.tbl th,.tbl td) { color: inherit; }
body.theme-warm .btn-ghost,
body.theme-white .btn-ghost {
  background: var(--card) !important; color: var(--text2) !important; border-color: var(--border2) !important;
}

/* ─── DIAGNOSTICS & HELP (migrated from bx-diagnostics-help.js, batch 15) ─── */
.bx-icon-btn.has-issues { border-color: rgba(192,0,0,.5) !important; color: var(--danger,#C00000) !important; }
.bx-side-overlay { position: fixed; inset: 0; z-index: 100002; background: rgba(0,0,0,.42); display: flex; justify-content: flex-end; }
.bx-side-panel {
  width: min(440px,92vw); height: 100%; overflow: auto;
  background: var(--bg2); color: var(--text);
  border-left: 1px solid var(--border2); box-shadow: -18px 0 48px rgba(0,0,0,.28); padding: 22px;
}
.bx-side-close {
  float: right; border: 1px solid var(--border2); background: var(--bg3); color: var(--text2);
  border-radius: 8px; padding: 7px 10px; font-family: inherit; font-weight: 800; cursor: pointer;
}
/* Panel "?" help button — injected by _ensurePanelHelpButtons */
.bx-panel-help-btn {
  flex-shrink: 0;
  width: 26px; height: 26px;
  padding: 0;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  color: var(--text3);
  border: 1.5px solid var(--border2);
  background: transparent;
  cursor: pointer;
  transition: color .15s, border-color .15s, background .15s;
  display: flex; align-items: center; justify-content: center;
}
.bx-panel-help-btn:hover { color: var(--gold); border-color: var(--gold); background: rgba(255,192,0,.07); }

.bx-help-card { display: flex; flex-direction: column; gap: 14px; margin-top: 26px; }
.bx-help-title { font-size: 22px; line-height: 1.1; font-weight: 950; color: var(--text); letter-spacing: 0; }
.bx-help-card p,
.bx-diagnostics-panel p { font-size: 13px; line-height: 1.5; color: var(--text2); margin: 0; }
.bx-help-next { border: 1px solid var(--border2); border-radius: 10px; background: var(--card,var(--bg)); padding: 12px; }
.bx-help-next b { display: block; font-size: 11px; color: var(--text3); margin-bottom: 5px; }
.bx-help-next span { font-size: 13px; color: var(--text); line-height: 1.4; }
.bx-diag-kpis { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 14px 0; }
.bx-diag-kpis > div { border: 1px solid var(--border2); border-radius: 10px; background: var(--card,var(--bg)); padding: 10px; }
.bx-diag-kpis span { display: block; font-size: 10px; color: var(--text3); font-weight: 850; }
.bx-diag-kpis b { display: block; font-size: 20px; color: var(--text); margin-top: 4px; }
.bx-diag-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 12px 0 16px; }
.bx-log-list { display: flex; flex-direction: column; gap: 8px; }
.bx-log-row {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center;
  border: 1px solid var(--border2); border-left: 4px solid var(--warn); border-radius: 10px;
  background: var(--card,var(--bg)); padding: 10px;
}
.bx-log-row.high { border-left-color: var(--danger); }
.bx-log-row b { display: block; font-size: 12px; color: var(--text); line-height: 1.3; }
.bx-log-row span { display: block; font-size: 10.5px; color: var(--text3); line-height: 1.35; margin-top: 4px; }
.bx-log-empty { border: 1px dashed var(--border2); border-radius: 10px; padding: 18px; text-align: center; color: var(--text3); font-size: 13px; }
.bx-diag-copy {
  width: 100%; min-height: 180px; margin: 8px 0 14px;
  border: 1px solid var(--border2); border-radius: 10px; background: var(--bg); color: var(--text);
  font: 11px ui-monospace,SFMono-Regular,Menlo,monospace; padding: 10px;
}
.bx-login-diagnostics {
  position: absolute; top: 18px; right: 18px; z-index: 2;
  border: 1px solid rgba(255,255,255,.18); background: rgba(20,20,20,.88); color: #f0ece4;
  border-radius: 999px; padding: 8px 12px; font: 800 12px var(--font,system-ui); cursor: pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,.28);
}
.bx-login-diagnostics.has-issues { border-color: rgba(192,0,0,.7); color: #ffb3b3; }

/* ─── I18N QA GUARD (migrated from bx-i18n-qa-guard.js, batch 15) ─── */
.bx-login-lang {
  position: absolute; top: 18px; right: 106px; z-index: 3;
  border: 1px solid rgba(255,255,255,.18); background: rgba(20,20,20,.88); color: #f0ece4;
  border-radius: 999px; padding: 8px 12px; font: 800 12px var(--font,system-ui); cursor: pointer;
  box-shadow: 0 10px 26px rgba(0,0,0,.28);
}
body.theme-warm .bx-login-lang,
body.theme-white .bx-login-lang { background: rgba(255,255,255,.9); color: #151413; border-color: rgba(0,0,0,.18); }

/* ─── MODULE ACTION PARITY (migrated from bx-module-action-parity.js, batch 16) ─── */
.bx-record-actions { display: inline-flex; gap: 5px; align-items: center; justify-content: flex-end; white-space: nowrap; }
.bx-record-btn { border: 1px solid var(--border2); background: transparent; color: var(--text2); border-radius: 5px; padding: 3px 8px; font: 800 11px var(--font,system-ui); cursor: pointer; }
.bx-record-btn:hover { border-color: var(--gold); color: var(--gold); }
.bx-record-btn.danger:hover { border-color: var(--danger); color: var(--danger); }
.bx-precheck-progress { display: flex; flex-direction: column; gap: 2px; font-size: 11px; color: var(--text3); margin-right: 6px; }
.bx-precheck-progress b { font-size: 13px; line-height: 1; }
.bx-precheck-focus { border: 1px solid var(--gold3); background: rgba(255,192,0,.07); border-radius: 10px; margin-bottom: 12px; padding: 12px 14px; }
.bx-precheck-focus.complete { display: flex; gap: 8px; align-items: center; color: var(--success); }
.bx-precheck-focus-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 8px; }
.bx-precheck-focus-head b { font-size: 13px; color: var(--gold); }
.bx-precheck-focus-head span { font-size: 11px; color: var(--text3); }
.bx-precheck-focus-row, .bx-precheck-row { display: flex; gap: 10px; align-items: center; border-top: 1px solid var(--border); padding: 8px 0; }
.bx-precheck-focus-row:first-of-type { border-top: none; }
.bx-precheck-focus-row > div { flex: 1; min-width: 0; }
.bx-precheck-focus-row b { display: block; font-size: 12px; color: var(--text); }
.bx-precheck-focus-row span { display: block; font-size: 10.5px; color: var(--text3); margin-top: 2px; }
.bx-precheck-cat { margin-bottom: 12px; overflow: hidden; }
.bx-precheck-cat-head { cursor: pointer; }
.bx-precheck-cat-meta { display: flex; gap: 10px; align-items: center; font-size: 11px; color: var(--text3); }
.bx-precheck-cat-meta span { color: var(--gold); }
.bx-precheck-items { padding: 0 16px; }
.bx-precheck-row { align-items: flex-start; padding: 9px 0; }
.bx-precheck-row .act-cb { flex-shrink: 0; margin-top: 1px; }
.bx-precheck-row .act-cb span { font-size: 8px; color: var(--text3); font-weight: 900; line-height: 1; }
.bx-precheck-row-text { flex: 1; font-size: 12.5px; line-height: 1.45; color: var(--text); }
.bx-precheck-row.done .bx-precheck-row-text { text-decoration: line-through; color: var(--text3); }
.bx-precheck-row.na .bx-precheck-row-text { font-style: italic; color: var(--text3); }
.bx-precheck-row-text small { display: inline-block; margin-left: 6px; font-size: 10px; color: var(--text3); }


/* ── PHASE 1 STABILIZE (§30) ─────────────────────────────────────────────── */
#bx-phase1-freeze-banner{display:flex;align-items:center;gap:10px;padding:8px 18px;background:rgba(245,158,11,.12);border-bottom:1px solid rgba(245,158,11,.35);color:var(--text);font-size:12px;}
#bx-phase1-freeze-banner b{color:var(--warn);font-size:12px;}
#bx-phase1-freeze-banner span{flex:1;color:var(--text2);line-height:1.35;}
#bx-phase1-freeze-banner button{border:1px solid var(--border2);background:var(--bg2);color:var(--text2);border-radius:6px;padding:4px 9px;cursor:pointer;font:inherit;font-size:11px;}
.bx-phase1-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 12px;}
.bx-phase1-status-grid>div{border:1px solid var(--border2);background:var(--bg2);border-radius:8px;padding:9px 10px;}
.bx-phase1-status-grid span{display:block;font-size:10px;color:var(--text3);font-weight:850;text-transform:uppercase;}
.bx-phase1-status-grid b{display:block;font-size:17px;color:var(--text);margin-top:2px;}
.bx-phase1-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
.bx-phase1-checks>div{border:1px solid var(--border2);background:var(--bg2);border-radius:8px;padding:8px 10px;display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:8px;row-gap:2px;}
.bx-phase1-checks b{grid-row:1/3;font-size:10px;color:var(--text3);align-self:center;}
.bx-phase1-checks .pass b{color:var(--success);}
.bx-phase1-checks .fail b{color:var(--warn);}
.bx-phase1-checks span{font-size:12px;color:var(--text);font-weight:800;}
.bx-phase1-checks small{font-size:10.5px;color:var(--text3);line-height:1.3;}
.bx-phase1-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.bx-phase1-action-delete{border-color:rgba(192,0,0,.35)!important;}
.bx-phase1-action-save{font-weight:850!important;}
@media(max-width:800px){
  #bx-phase1-freeze-banner{align-items:stretch;flex-direction:column;}
  .bx-phase1-status-grid,.bx-phase1-checks{grid-template-columns:1fr;}
}

/* ── PHASE 2 CORE (§31) ──────────────────────────────────────────────────── */
.bx-p2-card{border:1px solid var(--border2);border-left:3px solid var(--gold);background:var(--bg2);border-radius:8px;padding:12px;margin-bottom:12px;}
.bx-p2-card>b{display:block;font-size:13px;color:var(--text);margin-bottom:8px;}
.bx-p2-card>div{font-size:12px;color:var(--text3);line-height:1.45;}
.bx-p2-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0;}
.bx-p2-grid>div{border:1px solid var(--border);background:var(--bg3);border-radius:8px;padding:8px 9px;}
.bx-p2-grid span{display:block;font-size:10px;color:var(--text3);font-weight:850;text-transform:uppercase;}
.bx-p2-grid b{display:block;font-size:18px;color:var(--gold);margin-top:2px;}
.bx-p2-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.bx-p2-empty{border:1px dashed var(--border2);border-radius:8px;padding:20px;text-align:center;color:var(--text3);}
.bx-p2-empty>div{font-size:28px;opacity:.65;margin-bottom:8px;}
.bx-p2-empty b{display:block;color:var(--text);font-size:14px;margin-bottom:4px;}
.bx-p2-empty span{display:block;font-size:12px;margin-bottom:10px;}
@media(max-width:760px){.bx-p2-grid{grid-template-columns:1fr 1fr;}}

/* ── FINAL CLEANUP (§32) ─────────────────────────────────────────────────── */
.bx-side-toggle{height:34px!important;width:34px!important;min-width:34px!important;flex:0 0 34px!important;border:1px solid var(--border2);border-radius:8px;background:var(--bg3);color:var(--text2);display:grid!important;place-items:center;cursor:pointer;font-weight:900;opacity:1!important;visibility:visible!important;}
.bx-side-toggle:hover{border-color:var(--gold);color:var(--gold);}
body.bx-sidebar-compact{--sidebar:64px;}
body.bx-sidebar-compact .sidebar{width:64px!important;overflow-x:hidden;}
body.bx-sidebar-compact .main{margin-left:64px!important;}
body.bx-sidebar-compact .nav-group{padding:8px 7px 2px;}
body.bx-sidebar-compact .nav-group-label,body.bx-sidebar-compact .ni-label,body.bx-sidebar-compact .dh{display:none!important;}
body.bx-sidebar-compact .ni{height:42px;justify-content:center;padding:8px;margin-bottom:4px;position:relative;}
body.bx-sidebar-compact .ni svg{width:18px;height:18px;margin:0;}
body.bx-sidebar-compact .ni-badge{position:absolute;right:3px;top:3px;min-width:15px;height:15px;padding:0 3px;font-size:9px;line-height:15px;}
body.bx-sidebar-compact .ni-divider{margin:8px 10px;}
body.bx-sidebar-compact .sidebar-arrange{display:none!important;}
.bx-money-auto-wrap>.dollar-prefix,.dollar-prefix,.currency-prefix,.money-prefix,.prefix-dollar{position:absolute!important;left:15px!important;top:50%!important;transform:translateY(-50%)!important;line-height:1!important;z-index:4!important;pointer-events:none!important;color:var(--text2)!important;font-weight:900!important;}
input[data-bx-money="1"]{padding-left:44px!important;text-align:right!important;font-variant-numeric:tabular-nums!important;}
.modal .modal-footer{position:sticky;bottom:-24px;background:linear-gradient(180deg,rgba(0,0,0,0),var(--card) 20%);z-index:12;}
body.theme-warm .modal .modal-footer,body.theme-white .modal .modal-footer{background:linear-gradient(180deg,rgba(255,255,255,0),var(--card) 20%);}
.bx-settings-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.bx-settings-control{border:1px solid var(--border2);border-radius:8px;background:var(--bg2);padding:12px;}
.bx-settings-control label{display:block;font-size:11px;color:var(--text3);font-weight:850;margin-bottom:7px;}
.bx-vendor-info{border:1px solid var(--border2);border-left:4px solid var(--gold);border-radius:8px;background:var(--bg2);padding:11px 13px;margin:0 0 12px;font-size:12px;color:var(--text2);line-height:1.45;}
.bx-vendor-info b{color:var(--text);}
@media(max-width:760px){
  body.bx-sidebar-compact{--sidebar:0px;}
  body.bx-sidebar-compact .sidebar{width:var(--sidebar)!important;}
  .bx-settings-control-grid{grid-template-columns:1fr;}
}

/* ── PROFESSIONAL CORE (§33) ─────────────────────────────────────────────── */
.bx-pro-command{border:1px solid var(--border2);border-left:4px solid var(--gold);border-radius:8px;background:var(--card);padding:12px 14px;margin:0 0 16px;display:flex;justify-content:space-between;gap:12px;align-items:center;}
.bx-pro-command>div:first-child b{display:block;font-size:13px;color:var(--text);}
.bx-pro-command>div:first-child span{display:block;font-size:12px;color:var(--text3);margin-top:3px;line-height:1.35;}
.bx-pro-command-grid{display:grid;grid-template-columns:repeat(5,minmax(88px,1fr));gap:8px;flex:1;max-width:760px;}
.bx-pro-command-grid button{border:1px solid var(--border2);border-radius:8px;background:var(--bg2);color:var(--text);padding:8px;cursor:pointer;text-align:left;font-family:var(--font,system-ui);}
.bx-pro-command-grid button:hover{border-color:var(--gold);}
.bx-pro-command-grid b{display:block;font-size:18px;color:var(--gold);}
.bx-pro-command-grid span{display:block;font-size:10.5px;color:var(--text3);margin-top:2px;}
.bx-pro-ready-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 12px;}
.bx-pro-ready-grid>div{border:1px solid var(--border2);border-radius:8px;background:var(--bg2);padding:9px 10px;}
.bx-pro-ready-grid span{display:block;font-size:10px;color:var(--text3);font-weight:850;}
.bx-pro-ready-grid b{display:block;font-size:18px;color:var(--text);margin-top:3px;}
.bx-pro-ready-grid small{display:block;font-size:10.5px;color:var(--text3);margin-top:1px;}
.bx-pro-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.bx-pro-note{font-size:11px;color:var(--text3);line-height:1.45;margin-top:10px;}
.bx-pro-search-results{display:flex;flex-direction:column;gap:8px;margin-top:14px;}
.bx-pro-search-row{border:1px solid var(--border2);border-radius:9px;background:var(--card);color:var(--text);padding:10px;text-align:left;cursor:pointer;font-family:var(--font,system-ui);}
.bx-pro-search-row:hover{border-color:var(--gold);}
.bx-pro-search-row span{display:block;font-size:10px;color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.bx-pro-search-row b{display:block;font-size:13px;margin-top:3px;}
.bx-pro-search-row small{display:block;font-size:11px;color:var(--text3);line-height:1.35;margin-top:3px;}
.bx-pro-empty{border:1px dashed var(--border2);border-radius:10px;padding:18px;color:var(--text3);font-size:13px;text-align:center;}
@media(max-width:900px){
  .bx-pro-command{align-items:stretch;flex-direction:column;}
  .bx-pro-command-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;}
  .bx-pro-ready-grid{grid-template-columns:1fr 1fr;}
}
/* ══════════════════════════════════════════════════════
   TOPBAR FINAL — BXTopbarFinal (§34)
   Source: bx-topbar-final.js retired batch 18, 2026-05-16
   ══════════════════════════════════════════════════════ */

/* ── BX Topbar Final ── */
    .topbar {
      height: 48px !important;
      min-height: 48px !important;
      max-height: 48px !important;
      background: #111113 !important;
      border-bottom: 1px solid rgba(255,255,255,.07) !important;
      display: flex !important;
      align-items: center !important;
      padding: 0 !important;
      position: fixed !important;
      top: 0; left: 0; right: 0;
      z-index: 500 !important;
      gap: 0 !important;
      overflow: visible !important;
    }

    /* Kill everything injected before us */
    .topbar > *:not(#bx-logo-zone):not(#bx-proj-zone):not(#bx-right-zone) {
      display: none !important;
    }
    .topbar-logo { display: none !important; }
    #bx-topbar-right { display: none !important; }
    #bx-sync-pill { display: none !important; }

    /* ── Logo zone ── */
    #bx-logo-zone {
      width: 220px;
      height: 48px;
      display: flex !important;
      align-items: center;
      gap: 10px;
      padding: 0 18px;
      border-right: 1px solid rgba(255,255,255,.07);
      flex-shrink: 0;
      cursor: pointer;
      text-decoration: none;
    }
    #bx-logo-zone:hover { background: rgba(255,255,255,.02); }

    .bx-amber-mark {
      width: 26px;
      height: 26px;
      background: #F0A500;
      border-radius: 7px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .bx-wordtext {
      font-size: 15px;
      font-weight: 800;
      letter-spacing: -.05em;
      color: #EEEDF0;
      font-family: 'Inter', -apple-system, sans-serif;
      line-height: 1;
    }
    .bx-betapill {
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: #55535C;
      background: #1E1E22;
      border: 1px solid rgba(255,255,255,.08);
      padding: 2px 6px;
      border-radius: 4px;
      line-height: 1.4;
    }

    /* ── Project zone ── */
    #bx-proj-zone {
      display: flex !important;
      align-items: center;
      padding: 0 14px;
      flex: 1;
      height: 48px;
      position: relative;
    }
    #bx-proj-btn {
      display: flex;
      align-items: center;
      gap: 8px;
      height: 32px;
      padding: 0 12px 0 10px;
      background: #1A1A1D;
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 8px;
      cursor: pointer;
      max-width: 280px;
      min-width: 160px;
      transition: border-color .12s, background .12s;
      font-family: 'Inter', -apple-system, sans-serif;
    }
    #bx-proj-btn:hover {
      border-color: rgba(255,255,255,.18);
      background: #1E1E22;
    }
    #bx-proj-btn.open {
      border-color: rgba(240,165,0,.35);
      background: #1E1E22;
    }
    .bx-proj-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: #3FB950;
      flex-shrink: 0;
    }
    .bx-proj-dot.inactive { background: #55535C; }
    #bx-proj-label {
      font-size: 12.5px;
      font-weight: 500;
      color: #EEEDF0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      flex: 1;
      text-align: left;
      font-family: 'Inter', -apple-system, sans-serif;
    }
    #bx-proj-label.empty {
      color: #55535C;
      font-style: italic;
      font-weight: 400;
    }
    .bx-proj-chevron {
      flex-shrink: 0;
      color: #55535C;
      transition: transform .15s;
    }
    #bx-proj-btn.open .bx-proj-chevron { transform: rotate(180deg); }

    /* Dropdown */
    #bx-proj-dropdown {
      display: none;
      position: absolute;
      top: calc(100% + 4px);
      left: 14px;
      min-width: 300px;
      background: #1C1C1F;
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 10px;
      box-shadow: 0 8px 32px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.04);
      z-index: 9999;
      overflow: hidden;
      animation: bxDropIn .12s cubic-bezier(.2,0,0,1) both;
    }
    #bx-proj-dropdown.visible { display: block !important; }
    @keyframes bxDropIn {
      from { opacity: 0; transform: translateY(-4px) scale(.98); }
      to   { opacity: 1; transform: none; }
    }

    /* Dropdown header */
    .bx-drop-header {
      padding: 8px 14px 6px;
      font-size: 10px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: .09em;
      color: #55535C;
      border-bottom: 1px solid rgba(255,255,255,.06);
    }

    /* Project row */
    .bx-proj-row {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 14px;
      cursor: pointer;
      border-bottom: 1px solid rgba(255,255,255,.04);
      transition: background .08s;
      font-family: 'Inter', -apple-system, sans-serif;
    }
    .bx-proj-row:last-child { border-bottom: none; }
    .bx-proj-row:hover { background: rgba(255,255,255,.04); }
    .bx-proj-row.active { background: rgba(240,165,0,.06); }

    .bx-proj-row-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      flex-shrink: 0;
    }
    .bx-proj-row-info { flex: 1; min-width: 0; }
    .bx-proj-row-name {
      font-size: 13px;
      font-weight: 500;
      color: #EEEDF0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .bx-proj-row.active .bx-proj-row-name { color: #F5B523; }
    .bx-proj-row-meta {
      font-size: 11px;
      color: #55535C;
      margin-top: 1px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .bx-proj-active-chip {
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .07em;
      text-transform: uppercase;
      color: #F5B523;
      background: rgba(240,165,0,.1);
      padding: 2px 6px;
      border-radius: 3px;
      flex-shrink: 0;
    }
    .bx-proj-row-add {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 14px;
      cursor: pointer;
      border-top: 1px solid rgba(255,255,255,.06);
      font-size: 12.5px;
      font-weight: 500;
      color: #9896A0;
      transition: color .08s;
      font-family: 'Inter', -apple-system, sans-serif;
    }
    .bx-proj-row-add:hover { color: #EEEDF0; background: rgba(255,255,255,.03); }

    /* ── Right zone ── */
    #bx-right-zone {
      display: flex !important;
      align-items: center;
      gap: 8px;
      padding: 0 14px;
      height: 48px;
      flex-shrink: 0;
      border-left: 1px solid rgba(255,255,255,.07);
    }

    /* Saved pill */
    #bx-saved-pill {
      display: flex;
      align-items: center;
      gap: 6px;
      height: 30px;
      padding: 0 11px;
      background: linear-gradient(180deg,rgba(82,210,115,.14),rgba(82,210,115,.06));
      border: 1px solid rgba(82,210,115,.26);
      border-radius: 999px;
      font-size: 11px;
      font-weight: 800;
      color: #9ff0b5;
      white-space: nowrap;
      font-family: 'Inter', -apple-system, sans-serif;
      box-shadow: 0 0 0 1px rgba(255,255,255,.03) inset;
    }
    #bx-saved-dot {
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: #3FB950;
      flex-shrink: 0;
    }

    /* Icon buttons */
    .bx-icon-btn {
      width: 30px !important;
      height: 30px !important;
      padding: 0 !important;
      background: transparent !important;
      border: 1px solid rgba(255,255,255,.08) !important;
      border-radius: 7px !important;
      color: #9896A0 !important;
      cursor: pointer !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      transition: background .1s, color .1s, border-color .1s !important;
      font-family: inherit !important;
    }
    .bx-icon-btn:hover {
      background: #1E1E22 !important;
      color: #EEEDF0 !important;
      border-color: rgba(255,255,255,.15) !important;
    }

/* ══════════════════════════════════════════════════════
   V7 PATCHES (§35)
   Source: bx-topbar-final.js v7 block
   ══════════════════════════════════════════════════════ */

/* ── 1. Jurisdiction section in project modal ── */
    .modal-section {
      font-size:10px;font-weight:700;text-transform:uppercase;
      letter-spacing:.09em;color:var(--text3);
      padding:14px 0 6px;margin-top:4px;
      border-top:1px solid var(--border);
    }
    .modal-section:first-of-type { border-top:none; margin-top:0; }

    /* ── 2. Inspection timeline ── */
    .insp-timeline { display:flex;flex-direction:column;gap:0; }
    .insp-stage {
      display:flex;align-items:center;gap:12px;
      padding:9px 12px;border-bottom:1px solid var(--border);
    }
    .insp-stage:last-child { border-bottom:none; }
    .insp-stage-num {
      width:22px;height:22px;border-radius:50%;
      background:var(--surface-4,#26262B);
      font-size:10px;font-weight:700;color:var(--text3);
      display:flex;align-items:center;justify-content:center;
      flex-shrink:0;
    }
    .insp-stage-num.pass { background:rgba(63,185,80,.15);color:#56D364; }
    .insp-stage-num.fail { background:rgba(248,81,73,.12);color:#FF7B72; }
    .insp-stage-name { flex:1;font-size:12.5px;color:var(--text); }
    .insp-stage-meta { font-size:11px;color:var(--text3); }
    .insp-log-btn {
      height:24px;padding:0 10px;font-size:11px;font-weight:600;
      background:transparent;border:1px solid var(--border2);
      border-radius:5px;color:var(--text3);cursor:pointer;
      font-family:var(--font);white-space:nowrap;
      transition:all .1s;
    }
    .insp-log-btn:hover { color:var(--gold);border-color:var(--bx-gold-border,rgba(240,165,0,.25)); }

    /* ── 3. Phase timeline (replaces Gantt) ── */
    .phase-timeline { display:flex;flex-direction:column;gap:0; }
    .pt-row {
      display:flex;align-items:center;gap:12px;
      padding:8px 0;border-bottom:1px solid var(--border);
    }
    .pt-row:last-child { border-bottom:none; }
    .pt-name { width:160px;flex-shrink:0;font-size:12px;color:var(--text2); }
    .pt-bars { flex:1;height:20px;position:relative;border-radius:3px;overflow:hidden;background:var(--surface-3,#1E1E22); }
    .pt-plan-bar { position:absolute;height:100%;background:rgba(240,165,0,.25);border-radius:3px; }
    .pt-act-bar  { position:absolute;height:100%;background:var(--gold,#F0A500);border-radius:3px;opacity:.85; }
    .pt-delay-bar{ position:absolute;height:100%;background:var(--danger,#F85149);border-radius:3px;opacity:.7; }
    .pt-variance { width:60px;text-align:right;font-size:11px;font-family:monospace; }
    .pt-variance.late { color:var(--danger); }
    .pt-variance.ok   { color:var(--green); }
    .pt-variance.na   { color:var(--text3); }

    /* ── 4. Chart maximize ── */
    .chart-card { position:relative;cursor:pointer; }
    .chart-card:hover .chart-expand-btn { opacity:1; }
    .chart-expand-btn {
      position:absolute;top:8px;right:8px;
      width:26px;height:26px;
      background:var(--surface-4,#26262B);
      border:1px solid var(--border2);border-radius:5px;
      display:flex;align-items:center;justify-content:center;
      cursor:pointer;opacity:0;transition:opacity .15s;z-index:2;
      color:var(--text2);
    }
    .chart-expand-btn:hover { background:var(--surface-5,#2E2E34);color:var(--text); }
    #bx-chart-modal {
      display:none;position:fixed;inset:0;
      background:rgba(0,0,0,.75);backdrop-filter:blur(12px);
      z-index:9100;align-items:center;justify-content:center;
    }
    #bx-chart-modal.open { display:flex; }
    #bx-chart-modal-inner {
      background:var(--bg2,#17171A);
      border:1px solid var(--border2);border-radius:14px;
      padding:20px;width:860px;max-width:94vw;
      box-shadow:0 24px 64px rgba(0,0,0,.7);
    }
    #bx-chart-modal-title {
      font-size:15px;font-weight:700;color:var(--text);
      margin-bottom:4px;
    }
    #bx-chart-modal-desc {
      font-size:12px;color:var(--text3);margin-bottom:16px;
    }
    #bx-chart-modal canvas { max-height:400px; }

    /* ── 5. Dashboard $/sqft + schedule KPI ── */
    .kpi-highlight {
      border-left:2px solid var(--gold,#F0A500) !important;
    }
    .dash-retro {
      background:var(--surface-2,#17171A);
      border:1px solid rgba(63,185,80,.2);
      border-left:2px solid var(--green,#3FB950);
      border-radius:10px;padding:16px 18px;margin-bottom:14px;
    }
    .dash-retro-title {
      font-size:10px;font-weight:700;text-transform:uppercase;
      letter-spacing:.08em;color:var(--green,#3FB950);margin-bottom:10px;
    }
    .dash-retro-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:12px; }
    .dash-retro-item .l { font-size:10px;color:var(--text3);font-weight:600; }
    .dash-retro-item .v { font-size:16px;font-weight:700;font-family:monospace;margin-top:3px; }

    /* ── 7. Checklist tip toggle ── */
    .checklist-tip-toggle {
      display:flex;align-items:center;gap:6px;
      font-size:12px;font-weight:600;color:var(--text3);
      cursor:pointer;padding:8px 0;user-select:none;
      transition:color .1s;
    }
    .checklist-tip-toggle:hover { color:var(--text2); }
    .checklist-tip-toggle .tip-arrow {
      transition:transform .15s;font-size:10px;
    }
    .checklist-tip-toggle.open .tip-arrow { transform:rotate(90deg); }
    .checklist-tip-body {
      font-size:12.5px;color:var(--text2);line-height:1.65;
      background:var(--surface-3,#1E1E22);
      border:1px solid var(--border);border-radius:8px;
      padding:12px 14px;margin-bottom:14px;
      display:none;
    }
    .checklist-tip-body.open { display:block; }

    /* ── 8. Portfolio cards — clean ── */
    .proj-card {
      background:var(--surface-2,#17171A) !important;
      border:1px solid var(--border) !important;
      border-radius:12px !important;
      padding:16px !important;
      cursor:pointer !important;
      transition:border-color .12s,background .12s !important;
      position:relative !important;
      overflow:hidden !important;
    }
    .proj-card:hover { border-color:var(--border2) !important; }
    .proj-card.active { border-color:rgba(240,165,0,.3) !important; }
    .proj-card-head {
      display:flex !important;
      align-items:flex-start !important;
      justify-content:space-between !important;
      margin-bottom:12px !important;
      gap:8px !important;
    }
    .proj-card-addr {
      font-size:13.5px !important;font-weight:700 !important;
      letter-spacing:-.01em !important;color:var(--text) !important;
      line-height:1.2 !important;
    }
    .proj-card-meta {
      font-size:11px !important;color:var(--text3) !important;margin-top:2px !important;
    }
    /* Progress bar in card */
    .pbar-wrap {
      height:3px !important;background:var(--surface-4,#26262B) !important;
      border-radius:2px !important;overflow:hidden !important;margin-bottom:12px !important;
    }
    .pbar-fill { height:100% !important;border-radius:2px !important;transition:width .4s !important; }
    /* Key metric row — just ROI */
    .proj-card-roi {
      display:flex;align-items:baseline;gap:6px;margin-bottom:12px;
    }
    .proj-card-roi .roi-val {
      font-size:22px;font-weight:700;font-family:monospace;letter-spacing:-.02em;
    }
    .proj-card-roi .roi-lbl {
      font-size:10px;font-weight:600;text-transform:uppercase;
      letter-spacing:.07em;color:var(--text3);
    }
    /* v145: actions always visible — opacity:0 hover-only was invisible on touch */
    .proj-card-actions {
      display:flex !important;gap:6px !important;
      padding-top:10px !important;
      border-top:1px solid var(--border) !important;
    }
    .proj-card-actions button {
      height:26px !important;padding:0 10px !important;
      font-size:11px !important;
    }
    /* Stats row — compact 2-col */
    .proj-card-stats {
      display:grid !important;grid-template-columns:1fr 1fr !important;
      gap:8px !important;margin-bottom:10px !important;
    }
    .proj-stat-l {
      font-size:9.5px !important;font-weight:600 !important;
      text-transform:uppercase !important;letter-spacing:.07em !important;
      color:var(--text3) !important;margin-bottom:2px !important;
    }
    .proj-stat-v {
      font-size:13px !important;font-weight:600 !important;
      font-family:monospace !important;
    }

    /* ── 8b. Phases table — compact ── */
    .phases-compact th {
      font-size:9.5px !important;padding:6px 10px !important;
    }
    .phases-compact td {
      padding:6px 10px !important;font-size:12px !important;
    }
    .phases-compact .phase-inp {
      width:80px !important;padding:3px 6px !important;
      font-size:12px !important;height:26px !important;
    }
    .phase-variance-cell {
      font-family:monospace;font-size:11px;font-weight:600;
    }
    .phase-variance-cell.over  { color:var(--danger); }
    .phase-variance-cell.under { color:var(--green); }
    .phase-variance-cell.zero  { color:var(--text3); }

/* ══════════════════════════════════════════════════════
   V8 PATCHES (§36)
   Source: bx-topbar-final.js v8 block
   ══════════════════════════════════════════════════════ */

/* ── Issue 1: Cash Flow monthly table ── */
    .cf-monthly-table { width:100%;border-collapse:collapse;margin-top:16px;font-size:12px; }
    .cf-monthly-table th {
      font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
      color:var(--text3);padding:7px 12px;border-bottom:1px solid var(--border2);text-align:right;
    }
    .cf-monthly-table th:first-child { text-align:left; }
    .cf-monthly-table td { padding:7px 12px;border-bottom:1px solid var(--border);text-align:right;font-family:monospace; }
    .cf-monthly-table td:first-child { text-align:left;font-family:var(--font);color:var(--text2); }
    .cf-monthly-table tr:last-child td { border-bottom:none; }
    .cf-monthly-table tbody tr:hover td { background:rgba(255,255,255,.02); }
    .cf-neg { color:var(--danger) !important; }
    .cf-pos { color:var(--green)  !important; }
    .cf-section-hdr { font-size:11px;font-weight:700;color:var(--text3);
      text-transform:uppercase;letter-spacing:.07em;margin:18px 0 8px; }

    /* ── Issue 2: Vendor fields ── */
    .vendor-coi-warn { 
      font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;
      background:rgba(248,81,73,.12);color:#FF7B72;border:1px solid rgba(248,81,73,.2);
    }
    .vendor-coi-ok {
      font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;
      background:rgba(63,185,80,.1);color:#56D364;border:1px solid rgba(63,185,80,.2);
    }

    /* ── Issue 3: Daily log week view ── */
    .log-week-strip {
      display:grid;grid-template-columns:repeat(7,1fr);gap:6px;
      margin-bottom:16px;
    }
    .log-day-cell {
      display:flex;flex-direction:column;align-items:center;gap:3px;
      padding:8px 4px;border-radius:8px;
      border:1px solid var(--border);cursor:pointer;transition:all .1s;
    }
    .log-day-cell:hover { border-color:var(--border2);background:var(--surface-3,#1E1E22); }
    .log-day-cell.logged { background:rgba(63,185,80,.08);border-color:rgba(63,185,80,.25); }
    .log-day-cell.today { border-color:rgba(240,165,0,.35);background:rgba(240,165,0,.05); }
    .log-day-name { font-size:9px;font-weight:700;text-transform:uppercase;
      letter-spacing:.06em;color:var(--text3); }
    .log-day-num { font-size:14px;font-weight:700;color:var(--text); }
    .log-day-dot { width:5px;height:5px;border-radius:50%;
      background:var(--green);display:none; }
    .log-day-cell.logged .log-day-dot { display:block; }

    /* ── Issue 9: Activities — today's focus ── */
    .act-focus-banner {
      background:rgba(240,165,0,.07);border:1px solid rgba(240,165,0,.2);
      border-radius:10px;padding:14px 16px;margin-bottom:16px;
    }
    .act-focus-title {
      font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
      color:var(--gold,#F0A500);margin-bottom:10px;
    }
    .act-focus-task {
      display:flex;align-items:center;gap:10px;
      padding:6px 0;border-bottom:1px solid rgba(240,165,0,.1);
      font-size:12.5px;
    }
    .act-focus-task:last-child { border-bottom:none; }
    .act-focus-phase { font-size:10px;color:var(--text3);margin-left:auto;
      flex-shrink:0;white-space:nowrap; }

    /* ── Issue 11: Sidebar secondary items ── */
    .ni.secondary { opacity:.6; }
    .ni.secondary:hover { opacity:1; }
.nav-group-label.collapsible { cursor:default;user-select:none;pointer-events:none; }
.nav-group-label.collapsible::after { content:'';display:none; }
    .nav-group.collapsed .ni { display:none !important; }
.nav-group.collapsed .nav-group-label.collapsible::after { content:'';display:none; }
.nav-group-label::after{content:''!important;display:none!important;}
.nav-group-label:hover{color:var(--text3)!important;background:transparent!important;}
.nav-group-label,.nav-group-label.ng{pointer-events:none!important;cursor:default!important;}

    /* ── Issue 12: Destructive confirm modal ── */
    #bx-confirm-modal {
      display:none;position:fixed;inset:0;
      background:rgba(0,0,0,.75);backdrop-filter:blur(12px);
      z-index:9999;align-items:center;justify-content:center;
    }
    #bx-confirm-modal.open { display:flex; }
    #bx-confirm-inner {
      background:var(--bg2,#17171A);
      border:1px solid rgba(248,81,73,.3);border-radius:14px;
      padding:24px;width:420px;max-width:92vw;
      box-shadow:0 24px 64px rgba(0,0,0,.7);
    }
    .bx-confirm-icon { font-size:28px;margin-bottom:12px; }
    .bx-confirm-title { font-size:16px;font-weight:800;letter-spacing:-.02em;
      color:var(--text);margin-bottom:6px; }
    .bx-confirm-desc { font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:6px; }
    .bx-confirm-consequences {
      background:rgba(248,81,73,.06);border:1px solid rgba(248,81,73,.15);
      border-radius:7px;padding:10px 12px;margin:12px 0;
      font-size:12px;color:var(--text2);line-height:1.7;
    }
    .bx-confirm-btns { display:flex;gap:8px;margin-top:16px; }
    .bx-confirm-cancel {
      flex:1;height:36px;background:transparent;
      border:1px solid var(--border2);border-radius:7px;
      color:var(--text2);font-size:13px;font-weight:600;
      cursor:pointer;font-family:var(--font);
    }
    .bx-confirm-cancel:hover { background:var(--surface-3,#1E1E22);color:var(--text); }
    .bx-confirm-delete {
      flex:1;height:36px;
      background:rgba(248,81,73,.12);border:1px solid rgba(248,81,73,.3);
      border-radius:7px;color:#FF7B72;font-size:13px;font-weight:700;
      cursor:pointer;font-family:var(--font);
      transition:background .1s,border-color .1s;
    }
    .bx-confirm-delete:hover {
      background:rgba(248,81,73,.2);border-color:rgba(248,81,73,.5);
    }

    /* ── Settings stable ── */
    #bx-settings-stable-cards { margin-bottom:0; }

/* ═══════════════════════════════════════════════════════════════════════
   PHASE 4 MOBILE PASS — 2026-05-16
   Goal: every panel usable at 375px with work gloves on.
   Three tiers: ≤860px (tablet/phone overlay), ≤480px (phone), ≤375px (narrow).
   ═══════════════════════════════════════════════════════════════════════ */

/* ── TIER 1: ≤860px — gloves-on touch targets ──────────────────────────
   The sidebar is already overlay-mode here (slide-in on hamburger).
   Main content is full-width. Focus: tap targets, not layout.         */
@media (max-width: 860px) {

  /* Main fills viewport width — sidebar is overlay */
  .main {
    margin-left: 0 !important;
  }

  /* ── TOUCH TARGETS: 44px minimum ── */
  /* Buttons */
  .btn, button:not(#bx-hamburger):not(.bx-side-toggle):not(.theme-btn):not(.bx-confirm-cancel):not(.bx-confirm-delete) {
    min-height: 44px !important;
    height: auto !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
  .btn-sm {
    min-height: 38px !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
  .btn-lg {
    min-height: 48px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  /* Form inputs and selects */
  .finp, .fsel, input[type="text"], input[type="number"], input[type="date"],
  input[type="email"], input[type="tel"], input[type="search"],
  select, textarea {
    min-height: 44px !important;
    height: 44px !important;
    font-size: 14px !important;
    padding: 10px 12px !important;
  }
  textarea, .ftxt {
    height: auto !important;
    min-height: 80px !important;
  }

  /* Nav items — fat-finger safe */
  .ni {
    min-height: 44px !important;
    padding: 10px 12px !important;
    font-size: 14px !important;
  }

  /* Hamburger — easier to hit */
  #bx-hamburger {
    width: 40px !important;
    height: 40px !important;
  }

  /* Topbar — reduce gap clutter */
  .topbar { gap: 8px !important; padding: 0 10px !important; }

  /* Project switcher — truncate name aggressively */
  #topbar-proj-name {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Tables — horizontal scroll, no overflow clipping */
  .tbl, table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    white-space: nowrap !important;
  }
  .tbl tbody tr td {
    white-space: nowrap !important;
  }
  /* Ensure table container doesn't clip */
  .sec-body, .bx-tbl-wrap, .table-wrap, [class*="tbl-wrap"] {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  /* Modals — bottom sheet on mobile */
  .mbg {
    padding: 0 !important;
    align-items: flex-end !important;
  }
  /* Override desktop animation with bottom-sheet slide-up */
  .mbg.open .modal { animation: bxSheetIn .22s cubic-bezier(0.2,0,0,1) both !important; }
  @keyframes bxSheetIn { from{transform:translateY(100%)} to{transform:translateY(0)} }
  .modal {
    max-width: 100% !important;
    width: 100% !important;
    border-radius: 16px 16px 0 0 !important;
    max-height: 88vh !important;
    overflow-y: auto !important;
    padding: 20px 16px 32px !important; /* extra bottom padding for home bar */
  }

  /* Metrics grid — max 3 columns so numbers aren't microscopic */
  .metrics, .metrics-4, [class*="metrics"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .mc { padding: 10px 12px !important; }
  .mc-val { font-size: 18px !important; }
  .mc-label { font-size: 10px !important; }

  /* Panel header — stack title then actions on medium screens */
  .ph {
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding-bottom: 12px !important;
  }
  /* Bring the title back into flow so it stacks above actions */
  .ph>div:first-child {
    position: static !important;
    display: block !important;
    width: 100% !important;
    text-align: left !important;
  }
  .ph-actions {
    width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }
  .ph-actions .btn {
    flex: 1 !important;
    min-width: 120px !important;
    text-align: center !important;
    justify-content: center !important;
  }

  /* Section headers */
  .sec-hdr {
    flex-wrap: wrap !important;
    gap: 6px !important;
  }

  /* Search overlay on mobile */
  #bx-search-overlay { padding-top: 0 !important; align-items: flex-end !important; }
  #bx-search-sheet {
    width: 100% !important;
    border-radius: 16px 16px 0 0 !important;
    max-height: 85vh !important;
  }
  #bx-search-input { font-size: 16px !important; } /* prevent iOS zoom */

  /* Search button in topbar */
  #bx-search-btn { padding: 8px !important; }

  /* Daily Log — form + history 2-col grid → stack at tablet/phone.
     The form has 7+ fields; even at 860px they squeeze to ~330px each. */
  .prod-log-grid,
  #p-dailylog > div[style*="grid-template-columns"] {
    display: flex !important;
    flex-direction: column !important;
  }
  /* History column: remove fixed max-height when stacked — let it scroll naturally */
  #p-dailylog .sec[style*="max-height"] {
    max-height: none !important;
    overflow-y: visible !important;
  }
}

/* ── TIER 2: ≤480px — phone layout ─────────────────────────────────── */
@media (max-width: 480px) {
  /* Panel padding — tighter on phone */
  .panel { padding: 12px !important; }

  /* Outdoor text — slightly larger base */
  html, body { font-size: 14px !important; }
  td { font-size: 13px !important; }
  th { font-size: 11px !important; }

  /* Topbar — project name even shorter */
  #topbar-proj-name {
    max-width: 80px !important;
  }
  .topbar-proj { padding: 5px 8px !important; font-size: 12px !important; }

  /* Metrics — 2 columns on phone */
  .metrics, .metrics-4, [class*="metrics"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Phase list — single column */
  #phases-list .phase-row {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
  }
  #phases-list .phase-rag,
  .phase-row .pbar-wrap { display: none !important; }

  /* KPI cards — 2 columns */
  .bx-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Port grid / project cards — single column */
  .bx-port-row,
  .port-grid {
    grid-template-columns: 1fr !important;
  }

  /* Dashboard reading order becomes one clear stream. */
  .dash-command-grid,
  .dash-activity-grid { grid-template-columns: 1fr !important; }
  .dash-region { margin-bottom: 22px; }
  .dash-region-head { align-items: flex-start; flex-direction: column; }
  #loan-metrics-section [style*="grid-template-columns"],
  #eac-panel [style*="grid-template-columns"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    row-gap: 14px !important;
  }

  /* Draw cards */
  .draw-card { padding: 12px !important; }
  .draw-card .amt { font-size: 16px !important; }

  /* Gantt — scroll, don't collapse */
  .bx-gantt-wrap, #gantt-wrap { overflow-x: auto !important; }

  /* Chart grid — single column */
  .chart-grid { grid-template-columns: 1fr !important; }

  /* Modal title */
  .modal-title { font-size: 16px !important; }

  /* Settings tabs - keep all five destinations visible on a phone */
  #p-settings .stab-bar {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    overflow: hidden !important;
    gap: 4px !important;
    padding-bottom: 6px !important;
  }
  #p-settings .stab.stab {
    min-height: 44px !important;
    min-width: 0 !important;
    padding: 10px 2px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
    border: 1px solid var(--border2) !important;
    border-radius: 8px !important;
    margin-bottom: 0 !important;
  }
  #p-settings .stab.on {
    background: rgba(255,192,0,.10) !important;
    border-color: var(--gold) !important;
  }
  #p-settings .setting-card,
  #p-settings .sntx-card {
    padding: 14px !important;
    border-radius: 8px !important;
  }
  #p-settings .setting-card [style*="grid-template-columns"],
  #p-settings .sntx-card [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }
  #p-settings input,
  #p-settings select,
  #p-settings textarea {
    width: 100% !important;
    font-size: 16px !important;
  }

  /* Vendor directory controls */
  .bx-vendor-trade-filter {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .bx-vendor-trade-filter select {
    flex: 1 !important;
    min-height: 44px !important;
  }

  /* Confirm dialog — full width */
  #bx-confirm-inner {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 14px 14px 0 0 !important;
  }
  #bx-confirm-modal { align-items: flex-end !important; }

  /* Pro command grid — 2 cols */
  .bx-pro-command-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Toast — full width at bottom */
  #bx-toasts {
    left: 12px !important;
    right: 12px !important;
    bottom: 16px !important;
  }
  .bx-toast { max-width: 100% !important; }

  /* Budget bar — 3 columns on phone (base is 5, overflows at 480px) */
  .budget-bar { grid-template-columns: repeat(3, 1fr) !important; }

  /* Payments table — 8 cols too wide; hide Phase (col 2) + Date (col 5) */
  #p-payments .tbl tr > *:nth-child(2),
  #p-payments .tbl tr > *:nth-child(5) { display: none !important; }

  /* Vendor table — inline min-width:140px on name cell blocks scroll; cancel it */
  #p-vendors .tbl td,
  #p-vendors .tbl th { min-width: 0 !important; }

  /* CO approve/reject — wrap meta text + buttons into two rows */
  #co-list > div > div:last-child { flex-wrap: wrap !important; gap: 6px !important; }
  #co-list > div > div:last-child > span { flex: 1 1 100% !important; }
  #co-list > div > div:last-child > button {
    margin-left: 0 !important;
    flex: 1 1 auto !important;
    min-height: 36px !important;
    font-size: 12px !important;
    padding: 4px 10px !important;
  }

  /* Punch list — 8 cols overflows at phone width.
     Hide: Assigned To (col 3), Due (col 5), Cost (col 6).
     Keeps: Location | Description | Priority | Status | Actions */
  #punch-list .tbl tr > *:nth-child(3),
  #punch-list .tbl tr > *:nth-child(5),
  #punch-list .tbl tr > *:nth-child(6) { display: none !important; }

  /* Lien waivers — 8 cols overflows at phone width.
     Hide: Type (col 2), Draw (col 3), Waiver Type (col 5), Received date (col 7).
     Keeps: Vendor | Amount | Status | Update dropdown | Actions */
  #p-lienlog .tbl tr > *:nth-child(2),
  #p-lienlog .tbl tr > *:nth-child(3),
  #p-lienlog .tbl tr > *:nth-child(5),
  #p-lienlog .tbl tr > *:nth-child(7) { display: none !important; }

  /* Vendors — 7 cols overflows at phone width.
     Hide: Type (col 3), W-9 (col 6), 1099 (col 7).
     Keeps: Name | Trade | Total Paid | Invoices */
  #p-vendors .tbl tr > *:nth-child(3),
  #p-vendors .tbl tr > *:nth-child(6),
  #p-vendors .tbl tr > *:nth-child(7) { display: none !important; }

  /* Dashboard Recent Invoices — 5 cols; hide Phase (col 2) when grid stacks.
     Keeps: Vendor | Invoice # | Total | Status */
  #p-dashboard .tbl tr > *:nth-child(2) { display: none !important; }
  .dash-summary-metrics { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .dash-command-grid { display:block; }
  #dash-health-zone { margin-bottom:12px; }
  #loan-metrics-section [style*="grid-template-columns"],
  #eac-panel [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }

  /* Phases column-header label row — 7 fixed-width cols that don't match the
     single-column phase-row at phone width. Hide it; labels are redundant
     when each phase stacks vertically with its own value labels. */
  #p-phases .sec > .sec-hdr > div[style*="grid-template-columns"] {
    display: none !important;
  }

  /* Phases bottom section (Budget by Category + Planned Spend Profile)
     — 1fr 1fr → single column on phone */
  #p-phases > div[style*="grid-template-columns"] {
    display: flex !important;
    flex-direction: column !important;
  }

  /* Closeout grid (1fr 1fr) → single column on phone */
  #closeout-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── TIER 3: ≤375px — narrow phone / outdoor jobsite ───────────────── */
@media (max-width: 375px) {
  /* Max font size for outdoor readability */
  html, body { font-size: 15px !important; }

  /* Panel padding — minimal */
  .panel { padding: 8px !important; }

  /* Topbar — hide project name entirely, show dot indicator only */
  #topbar-proj-name { display: none !important; }
  .topbar-proj svg { display: none !important; }
  .topbar { padding: 0 8px !important; gap: 6px !important; }

  /* Metrics — single column at 375px */
  .metrics, .metrics-4, [class*="metrics"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .mc-val { font-size: 20px !important; font-weight: 800 !important; }

  /* Section titles */
  .ph-title { font-size: 16px !important; }

  /* Nav items — extra height for gloves */
  .ni { min-height: 48px !important; font-size: 15px !important; }

  /* Buttons — even larger hit area */
  .btn, button:not(#bx-hamburger):not(.theme-btn) {
    min-height: 48px !important;
    font-size: 14px !important;
  }

  /* Form fields — large and readable */
  .finp, .fsel, input, select {
    min-height: 48px !important;
    height: 48px !important;
    font-size: 15px !important;
  }
  textarea, .ftxt { height: auto !important; min-height: 80px !important; }

  /* Star ratings — bigger tap targets on narrow phones */
  .bx-vendor-star {
    min-width: 30px !important;
    min-height: 48px !important;
    font-size: 21px !important;
  }

  /* Modal takes full screen height on very small phones */
  .modal {
    max-height: 95vh !important;
    padding: 16px 12px !important;
  }

  /* Budget bar — 2 columns at 375px (max space for each dollar figure) */
  .budget-bar { grid-template-columns: repeat(2, 1fr) !important; }

  /* Payments table — additionally hide Invoice# (col 4) at 375px; keeps Status/Vendor/Amt/Retain/Actions */
  #p-payments .tbl tr > *:nth-child(4) { display: none !important; }
}

/* ── ACTIVITIES: task rows on mobile ────────────────────────────────── */
@media (max-width: 860px) {
  /* Checkbox — bigger tap zone */
  .act-cb {
    width: 28px !important;
    height: 28px !important;
    border-radius: 6px !important;
  }

  /* Edit pencil icon — always visible on touch (mouseenter never fires) */
  .act-edit-icon {
    opacity: 0.55 !important;
    font-size: 16px !important;
    padding: 6px 8px !important;
  }
  .act-edit-icon:active {
    opacity: 1 !important;
    background: rgba(245,166,35,.12) !important;
  }

  /* Task row name — bigger on mobile */
  .v43-name { font-size: 14px !important; }

  /* Reset / owner label — bigger tap area */
  [data-owner-label] {
    padding: 6px 8px !important;
    font-size: 11px !important;
  }
}

/* ── SAFE TOUCH: tap highlight, focus rings for accessibility ───────── */
@media (hover: none) and (pointer: coarse) {
  /* Remove tap highlight flicker */
  * { -webkit-tap-highlight-color: rgba(245,166,35,.15); }

  /* Visible focus ring for keyboard nav (accessibility) */
  button:focus-visible,
  .btn:focus-visible,
  .ni:focus-visible,
  input:focus-visible,
  select:focus-visible {
    outline: 2px solid var(--gold, #F5A623) !important;
    outline-offset: 2px !important;
  }

  /* Remove hover effects that don't work on touch */
  .ni:hover { background: transparent !important; }
  .ni.on:hover { background: rgba(255,192,0,.1) !important; }
}

/* ── LIGHT/WARM THEME: black-cell & chip fixes (2026-05-17) ─────────────── */
/* Hard-coded dark table-hover background injected by bx-charts-bundle + bx-gantt */
body.theme-warm tbody tr:hover td,
body.theme-white tbody tr:hover td { background: var(--bg2) !important; color: var(--text) !important; }

/* chip-blue readable in light mode */
body.theme-warm .chip-blue,
body.theme-white .chip-blue { background: rgba(80,130,200,.15) !important; color: #2b5fa8 !important; }

/* bx-pro-command grid buttons readable in light mode */
body.theme-warm .bx-pro-command-grid button,
body.theme-white .bx-pro-command-grid button { background: var(--bg3) !important; color: var(--text) !important; border-color: var(--border2) !important; }

/* Catch remaining dark inline backgrounds (#2x–#5x) */
body.theme-warm .main [style*="background:#2"],body.theme-warm .main [style*="background: #2"],
body.theme-warm .main [style*="background:#3"],body.theme-warm .main [style*="background: #3"],
body.theme-warm .main [style*="background:#4"],body.theme-warm .main [style*="background: #4"],
body.theme-white .main [style*="background:#2"],body.theme-white .main [style*="background: #2"],
body.theme-white .main [style*="background:#3"],body.theme-white .main [style*="background: #3"],
body.theme-white .main [style*="background:#4"],body.theme-white .main [style*="background: #4"] {
  background: var(--card) !important; color: var(--text) !important;
}

/* insp-stage + permit-stage rows in light mode */
body.theme-warm .insp-stage,body.theme-warm .permit-stage,
body.theme-white .insp-stage,body.theme-white .permit-stage {
  background: var(--card) !important; color: var(--text) !important;
}

/* bx-prod-kpi / bx-prod-section / bx-prod-path-row in light mode */
body.theme-warm :is(.bx-prod-kpi,.bx-prod-section,.bx-prod-path-row,.bx-prod-co-card,.bx-prod-module),
body.theme-white :is(.bx-prod-kpi,.bx-prod-section,.bx-prod-path-row,.bx-prod-co-card,.bx-prod-module) {
  background: var(--bg2) !important; color: var(--text) !important; border-color: var(--border2) !important;
}
body.theme-warm :is(.bx-prod-kpi,.bx-prod-section) b,
body.theme-white :is(.bx-prod-kpi,.bx-prod-section) b { color: var(--text) !important; }
body.theme-warm :is(.bx-prod-kpi,.bx-prod-section).good b,
body.theme-white :is(.bx-prod-kpi,.bx-prod-section).good b { color: var(--success) !important; }
body.theme-warm :is(.bx-prod-kpi,.bx-prod-section).warn b,
body.theme-white :is(.bx-prod-kpi,.bx-prod-section).warn b { color: var(--warn) !important; }
body.theme-warm :is(.bx-prod-kpi,.bx-prod-section).bad b,
body.theme-white :is(.bx-prod-kpi,.bx-prod-section).bad b { color: var(--danger) !important; }

/* ── SIDEBAR TOGGLE: always visible next to topbar-right (2026-05-17) ────── */
#bx-sidebar-toggle { flex-shrink: 0; }

/* ── LIGHT THEME: topbar project selector (2026-05-17) ────────────────────
   #bx-proj-btn has hardcoded dark hex colors (#1A1A1D / rgba(255,255,255,.1))
   that look black in light mode. Override to use theme-aware vars. */
body.theme-warm #bx-proj-btn,
body.theme-white #bx-proj-btn {
  background: var(--bg2, #f5f5f7) !important;
  border-color: var(--border2, rgba(0,0,0,.18)) !important;
}
body.theme-warm #bx-proj-btn:hover,
body.theme-white #bx-proj-btn:hover {
  background: var(--bg3, #e8e8ec) !important;
  border-color: var(--border2, rgba(0,0,0,.25)) !important;
}
body.theme-warm #bx-proj-btn.open,
body.theme-white #bx-proj-btn.open {
  background: var(--bg3, #e8e8ec) !important;
  border-color: rgba(240,165,0,.5) !important;
}
body.theme-warm #bx-proj-label,
body.theme-white #bx-proj-label { color: var(--text, #15171a) !important; }
body.theme-warm .bx-proj-chevron,
body.theme-white .bx-proj-chevron { color: var(--text3, #5b6470) !important; }

/* ── LIGHT THEME: inspection stage rows — add horizontal padding ────────── */
body.theme-warm .native-list .insp-stage,
body.theme-white .native-list .insp-stage {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

/* ── NEW-ROW FLASH: green pulse on newly saved rows ─────────────────────── */
@keyframes bxRowFlash {
  0%   { background: rgba(16, 185, 90, 0.28); box-shadow: inset 0 0 0 1px rgba(16,185,90,0.4); }
  70%  { background: rgba(16, 185, 90, 0.10); box-shadow: inset 0 0 0 1px rgba(16,185,90,0.15); }
  100% { background: transparent; box-shadow: none; }
}
.bx-row-flash {
  animation: bxRowFlash 0.75s ease-out forwards !important;
}

/* ── V195 SURFACE STABILITY: overlays, floating tools, and compact copy ─── */
.mbg {
  z-index: 100100 !important;
}

body.bx-modal-open #v75-backup-reminder,
body.bx-modal-open #bx-ai-orb,
body.bx-modal-open #bx-ai-panel,
body.bx-modal-open #fab-btn,
body.bx-modal-open #fab-menu,
body.bx-modal-open #bx-overflow-menu {
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

#v75-backup-reminder {
  right: 84px !important;
  bottom: 18px !important;
  z-index: 800 !important;
}

#bx-ai-orb {
  right: 20px !important;
  bottom: 18px !important;
  display: none !important;
}

#fab-btn {
  right: 20px !important;
  bottom: 82px !important;
}

body:has(#v75-backup-reminder) #bx-toasts {
  bottom: 158px !important;
}

body:has(#p-settings.active) #fab-btn,
body:has(#p-settings.active) #fab-menu,
body:has(#p-settings.active) #bx-ai-orb,
body:has(#p-settings.active) #bx-ai-panel {
  display: none !important;
}

body:has(#p-dashboard.active) #fab-btn,
body:has(#p-dashboard.active) #fab-menu,
body:has(#p-portfolio.active) #fab-btn,
body:has(#p-portfolio.active) #fab-menu,
body[data-bx-panel="portfolio"] #fab-btn,
body[data-bx-panel="portfolio"] #fab-menu,
body:has(#p-changes.active) #fab-btn,
body:has(#p-changes.active) #fab-menu,
body:has(#p-vendors.active) #fab-btn,
body:has(#p-vendors.active) #fab-menu,
body:has(#p-payments.active) #fab-btn,
body:has(#p-payments.active) #fab-menu,
body[data-bx-panel="payments"] #fab-btn,
body[data-bx-panel="payments"] #fab-menu,
body:has(#p-cashflow.active) #fab-btn,
body:has(#p-cashflow.active) #fab-menu,
body[data-bx-panel="cashflow"] #fab-btn,
body[data-bx-panel="cashflow"] #fab-menu,
body:has(#p-lienlog.active) #fab-btn,
body:has(#p-lienlog.active) #fab-menu,
body[data-bx-panel="lienlog"] #fab-btn,
body[data-bx-panel="lienlog"] #fab-menu {
  display: none !important;
}

.bx-project-start-title,
.bx-project-start-copy {
  display: block;
  letter-spacing: 0;
}

.bx-project-start-title {
  color: var(--text);
  font-size: 12.5px;
  margin-bottom: 3px;
}

.bx-project-start-copy {
  color: var(--text3);
  font-size: 12px;
}

.bx-help-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  margin-left: 5px;
  border: 1px solid var(--border2);
  border-radius: 50%;
  color: var(--text3);
  font: 700 10px/1 var(--font);
  vertical-align: middle;
  cursor: help;
}

.bx-help-badge:hover,
.bx-help-badge:focus {
  border-color: var(--gold);
  color: var(--gold);
  outline: none;
}

.bx-help-badge:hover::after,
.bx-help-badge:focus::after {
  content: attr(data-tip);
  position: absolute;
  left: -4px;
  top: calc(100% + 7px);
  z-index: 4;
  width: min(250px, calc(100vw - 54px));
  padding: 8px 9px;
  border: 1px solid var(--border2);
  border-radius: 6px;
  background: var(--card);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .28);
  color: var(--text);
  font: 500 11px/1.45 var(--font);
  white-space: pre-line;
}

.show-advanced-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 4px;
  padding: 7px 12px;
  min-height: 36px;
  border: 1px solid var(--border2);
  border-radius: 6px;
  background: transparent;
  color: var(--text3);
  font: 600 12px var(--font);
  cursor: pointer;
}

.show-advanced-btn:hover,
.show-advanced-btn.open {
  border-color: var(--gold);
  color: var(--text);
}

.modal-advanced {
  display: none;
}

.modal-advanced.revealed {
  display: block;
}

.bx-no-project-mode .ph-actions {
  display: none !important;
}

.bx-no-project-mode .bx-panel-help-btn {
  display: none !important;
}

@media (max-width: 860px) {
  .ph-actions .bx-panel-help-btn {
    flex: 0 0 44px !important;
    min-width: 44px !important;
    padding: 0 !important;
  }

  #bx-logo-zone {
    width: auto !important;
    min-width: 0 !important;
    padding: 0 10px !important;
    gap: 7px !important;
  }

  .bx-betapill {
    display: none !important;
  }

  #bx-proj-zone {
    min-width: 0 !important;
    padding: 0 6px !important;
    flex: 1 1 auto !important;
  }

  #bx-proj-btn {
    min-width: 0 !important;
    max-width: none !important;
    width: 100% !important;
    padding: 0 8px !important;
  }

  #bx-right-zone {
    padding: 0 8px !important;
    gap: 6px !important;
    flex-shrink: 0 !important;
    border-left: 0 !important;
  }

  body #bx-ai-orb {
    right: 74px !important;
    bottom: calc(var(--bottom-tab, 72px) + 14px) !important;
  }
}

@media (max-width: 600px) {
  #v75-backup-reminder {
    left: 12px !important;
    right: 12px !important;
    bottom: 78px !important;
    width: auto !important;
    max-width: none !important;
  }

  #fab-btn {
    right: 12px !important;
    bottom: 18px !important;
  }
}

@media (max-width: 480px) {
  #p-changes #co-list > div > div:first-child {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
  }

  #p-changes #co-list > div > div:first-child > span:nth-child(1),
  #p-changes #co-list > div > div:first-child > span:nth-child(2) {
    grid-column: 1 / -1;
  }

  #p-changes #co-list > div > div:first-child > span:nth-child(2) {
    line-height: 1.35 !important;
  }

  #bx-logo-zone {
    padding: 0 8px !important;
    gap: 5px !important;
  }

  #bx-proj-zone {
    padding: 0 4px !important;
    flex: 0 0 auto !important;
  }

  #bx-proj-btn {
    width: 42px !important;
    justify-content: center !important;
    padding: 0 6px !important;
  }

  #bx-proj-label {
    display: none !important;
  }

  #bx-right-zone {
    padding: 0 6px !important;
    gap: 4px !important;
  }

  #bx-saved-pill {
    width: 30px !important;
    padding: 0 !important;
    justify-content: center !important;
  }

  #bx-saved-text {
    display: none !important;
  }

  #bx-saved-dot {
    width: 8px !important;
    height: 8px !important;
  }
}
