/* SiteCortex — styles.css */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Barlow:wght@300;400;500;600;700&display=swap');
/* Theme-slate variables are the root default */
:root{
  --bg:#f0f2f5;--surface:#ffffff;--surface2:#f7f8fa;--border:#e2e6ed;
  --accent:#0052cc;--accent2:#0066ff;--crit:#dc2626;--ok:#059669;--warn:#d97706;
  --text:#0f1923;--muted:#4a5568;--dim:#a0aec0;
  --font:'Barlow',sans-serif;--mono:'IBM Plex Mono',monospace;
  --fs:14px;--fs-sm:12px;--fs-xs:11px;--fs-mono:11px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg);color:var(--text);font-family:var(--font);height:100vh;overflow:hidden;display:flex;flex-direction:column;user-select:none;transition:background-color .2s,color .2s,border-color .2s;}

/* TOP BAR */
.topbar{height:46px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 14px;gap:12px;flex-shrink:0;}
/* SiteCortex brand logo (design handoff). Mark recolors per theme via --sc-* tokens. Default = Slate Pro. */
:root{--sc-hat:#16335C;--sc-gear:#414B59;--sc-gold:#CF8A3A;--sc-surface:#ffffff;--sc-site:#16335C;--sc-cortex:#414B59;}
.logo{display:inline-flex;align-items:center;font-family:'Poppins','Montserrat','Segoe UI',sans-serif;font-weight:600;font-size:18px;letter-spacing:-.02em;line-height:1;white-space:nowrap;}
.logo .brand-mark{width:30px;height:30px;flex-shrink:0;display:block;margin-right:8px;}
.logo b{font-weight:600;}
.logo .site{color:var(--sc-site);}
.logo .cortex{color:var(--sc-cortex);}
.proj-pill{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:3px 9px;font-size:11px;color:var(--muted);font-family:var(--mono);white-space:nowrap;}
.proj-pill strong{color:var(--text);}
.topbar-right{margin-left:auto;display:flex;gap:8px;align-items:center;}
.stat-chip{display:flex;align-items:center;gap:4px;font-size:11px;font-family:var(--mono);white-space:nowrap;}
.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.sb-label{color:var(--muted);}
.sb-val{color:var(--text);}
.topbar-btn{padding:7px 14px;border-radius:6px;font-size:12px;font-family:var(--font);font-weight:500;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;transition:all .15s;white-space:nowrap;}
.topbar-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.1);}
.topbar-btn:active{transform:translateY(0);box-shadow:none;}
.topbar-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;}
.topbar-btn.primary:hover{filter:brightness(1.12);}
.ai-tag{background:rgba(240,192,64,.1);border:1px solid rgba(240,192,64,.3);border-radius:3px;padding:2px 7px;font-size:9px;font-family:var(--mono);color:var(--accent);white-space:nowrap;}
.tool-divider{width:1px;height:20px;background:var(--border);}

/* MODE TOGGLE */
.mode-btn{padding:4px 10px;border-radius:3px;font-size:10px;font-family:var(--mono);cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all .12s;}
.mode-btn:hover{color:var(--text);}
.mode-btn.active{background:var(--surface2);border-color:var(--accent2);color:var(--accent2);}
.mode-btn.active.zone-mode{border-color:var(--warn);color:var(--warn);}

.main{display:flex;flex:1;overflow:hidden;}

/* SIDEBAR */
.sidebar{width:205px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;}
.sidebar-hdr{padding:9px 10px 7px;font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.badge{background:var(--surface2);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:10px;color:var(--text);}
.search-wrap{padding:6px 8px;border-bottom:1px solid var(--border);position:relative;}
.search-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:7px 8px 7px 26px;font-size:13px;font-family:var(--font);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;min-height:34px;}
.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb,0,82,204),.12);}
.search-input::placeholder{color:var(--dim);}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:13px;pointer-events:none;}
.search-clear{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--muted);cursor:pointer;font-size:16px;display:none;line-height:1;}
.search-clear.visible{display:block;}
.drawing-list{flex:1;overflow-y:auto;padding:4px;}
.drawing-list::-webkit-scrollbar{width:8px;}
.drawing-list::-webkit-scrollbar-track{background:transparent;}
.drawing-list::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.drawing-list::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.drw-item{padding:7px 10px;border-radius:5px;cursor:pointer;margin-bottom:2px;border:1px solid transparent;transition:all .15s;}
.drw-item:hover{background:var(--surface2);}
.drw-item.active{background:var(--surface2);border-color:var(--accent);}
.drw-item.hidden{display:none;}
.drw-disc{display:inline-block;padding:1px 5px;border-radius:3px;font-size:9px;font-family:var(--mono);font-weight:500;margin-bottom:3px;}
.disc-Civil{background:rgba(61,220,151,.1);color:var(--ok);}
.disc-Interior{background:rgba(180,130,255,.1);color:#b482ff;}
.disc-Plumbing{background:rgba(74,158,255,.1);color:var(--accent2);}
.disc-Mechanical{background:rgba(255,140,66,.1);color:var(--warn);}
.disc-Electrical{background:rgba(240,192,64,.1);color:var(--accent);}
.drw-id{font-family:var(--mono);font-size:9px;color:var(--muted);}
.drw-name{font-size:11px;color:var(--text);line-height:1.3;margin-top:1px;}
.drw-match{background:rgba(240,192,64,.2);color:var(--accent);border-radius:2px;padding:0 2px;}
.no-results{padding:12px;text-align:center;color:var(--muted);font-size:11px;display:none;}
.no-results.visible{display:block;}

/* CENTER */
.center{flex:1;display:flex;flex-direction:column;background:#060810;overflow:hidden;position:relative;}
.viewer-toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:6px 12px;display:flex;align-items:center;gap:8px;flex-shrink:0;min-height:40px;}
.sheet-info{font-size:12px;color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px;}
.sheet-sub{font-size:10px;color:var(--muted);font-family:var(--mono);white-space:nowrap;}
.zoom-controls{margin-left:auto;display:flex;align-items:center;gap:5px;flex-shrink:0;}
.zoom-btn{width:24px;height:24px;border-radius:4px;background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.zoom-btn:hover{border-color:var(--accent);color:var(--accent);}
.zoom-pct{font-size:11px;font-family:var(--mono);color:var(--muted);min-width:42px;text-align:center;}
.zoom-hint{font-size:10px;color:var(--dim);font-family:var(--mono);white-space:nowrap;}

/* CANVAS VIEWPORT */
.canvas-viewport{flex:1;overflow:hidden;position:relative;}
.canvas-viewport.mode-pan{cursor:grab;}
.canvas-viewport.mode-pan.panning{cursor:grabbing;}
.canvas-viewport.mode-zone{cursor:crosshair;}

.canvas-world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform;}
#pdfCanvas{display:block;}

/* ZONE OVERLAY SVG - sits on top of canvas, same transform */
#zoneOverlay{position:absolute;top:0;left:0;transform-origin:0 0;pointer-events:none;overflow:visible;}
#zoneOverlay.interactive{pointer-events:all;}

.zone-rect{fill:rgba(255,140,66,.12);stroke:var(--warn);stroke-width:2;rx:4;cursor:pointer;transition:fill .15s;}
.zone-rect:hover{fill:rgba(255,140,66,.25);}
.zone-rect.selected{fill:rgba(240,192,64,.2);stroke:var(--accent);stroke-width:2.5;}
.zone-rect.crit{fill:rgba(255,77,109,.12);stroke:var(--crit);}
.zone-rect.done{fill:rgba(61,220,151,.08);stroke:var(--ok);stroke-dasharray:6,3;}
.zone-label{font-family:var(--mono);font-size:11px;fill:var(--warn);pointer-events:none;font-weight:500;}
.zone-label.crit{fill:var(--crit);}
.zone-label.done{fill:var(--ok);}

/* Drawing rect (drag to create zone) */
.drawing-rect{fill:rgba(255,140,66,.15);stroke:var(--warn);stroke-width:1.5;stroke-dasharray:5,3;pointer-events:none;}

/* UPLOAD SCREEN */
.upload-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:20px;}
.upload-screen h2{font-size:18px;color:var(--text);font-weight:600;}
.upload-screen p{font-size:12px;color:var(--muted);max-width:380px;text-align:center;line-height:1.6;}
.upload-drop{border:2px dashed var(--border);border-radius:12px;padding:40px 60px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:12px;}
.upload-drop:hover,.upload-drop.dragover{border-color:var(--accent);background:rgba(240,192,64,.05);}
.upload-icon{font-size:40px;opacity:.4;}
.upload-drop strong{font-size:14px;color:var(--accent);}
.upload-drop span{font-size:11px;color:var(--muted);}
.upload-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:500px;}
.upload-card{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:9px;text-align:center;}
.wc-id{font-size:10px;color:var(--text);font-weight:600;font-family:var(--mono);}
.wc-name{font-size:9px;color:var(--muted);margin-top:2px;line-height:1.3;}

/* PAGE NAV */
.page-nav{display:flex;align-items:center;gap:6px;margin-left:8px;}
.page-btn{width:22px;height:22px;border-radius:3px;background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;}
.page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}
.page-btn:disabled{opacity:.3;cursor:default;}
.page-info{font-size:10px;font-family:var(--mono);color:var(--muted);white-space:nowrap;}

/* RENDERING OVERLAY */
.render-overlay{position:absolute;inset:0;background:rgba(6,8,16,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:20;}
.render-overlay.hidden{display:none;}
.spinner{width:28px;height:28px;border:2px solid var(--dim);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.render-msg{font-size:11px;color:var(--muted);font-family:var(--mono);}

/* RIGHT PANEL */
.panel-right{width:285px;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;}
.panel-hdr{padding:9px 12px 7px;font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.filter-bar{padding:5px 6px;border-bottom:1px solid var(--border);display:flex;gap:3px;}
.flt{padding:3px 7px;border-radius:3px;font-size:10px;font-family:var(--mono);cursor:pointer;border:1px solid transparent;background:transparent;color:var(--muted);transition:all .1s;}
.flt:hover{color:var(--text);}
.flt.active{background:var(--surface2);border-color:var(--border);color:var(--text);}
.act-list{flex:1;overflow-y:auto;padding:5px;}
.act-list::-webkit-scrollbar{width:8px;}
.act-list::-webkit-scrollbar-track{background:transparent;}
.act-list::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.act-list::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.act-card{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-bottom:4px;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease;border-left:3px solid var(--dim);border-bottom:1px solid rgba(160,174,192,.5);}
.act-card:hover{background:var(--surface);border-left-width:4px;box-shadow:0 1px 6px rgba(0,0,0,.08);}
.act-card.status-active{border-left-color:var(--warn);}
.act-card.status-notstart{border-left-color:var(--accent2);}
.act-card.status-complete{border-left-color:var(--ok);opacity:.6;}
.act-card.crit{border-left-color:var(--crit)!important;}
.act-card.selected{border-color:var(--accent)!important;opacity:1;background:#1e2840;}
.act-card.zone-highlight{box-shadow:0 0 0 2px var(--warn);border-color:var(--warn)!important;}
.act-top{display:flex;align-items:center;gap:4px;margin-bottom:3px;flex-wrap:wrap;}
.act-code{font-family:var(--mono);font-size:11px;color:var(--muted);}
.tag{padding:3px 8px;border-radius:10px;font-size:11px;font-family:var(--mono);font-weight:600;}
.tag-crit{background:rgba(255,77,109,.15);color:var(--crit);}
.tag-active{background:rgba(255,140,66,.12);color:var(--warn);}
.tag-done{background:rgba(61,220,151,.1);color:var(--ok);}
.tag-float{background:rgba(74,158,255,.1);color:var(--accent2);}
.tag-zone{background:rgba(255,140,66,.1);color:var(--warn);cursor:pointer;}
.act-name{font-size:13px;font-weight:500;color:var(--text);line-height:1.5;margin-bottom:3px;}
.act-highlight{background:rgba(240,192,64,.25);border-radius:2px;padding:0 2px;color:var(--accent);}
.act-dates{font-size:11px;font-family:var(--mono);color:var(--muted);}
.act-wbs{font-size:9px;color:var(--dim);margin-top:2px;font-family:var(--mono);background:rgba(255,255,255,.03);border-radius:2px;padding:1px 4px;display:inline-block;}
.empty-panel{padding:20px 12px;text-align:center;color:var(--muted);font-size:11px;line-height:1.6;}

/* ZONE PANEL (bottom of right panel) */
.zone-panel{border-top:1px solid var(--border);flex-shrink:0;max-height:200px;overflow-y:auto;background:var(--surface);}
.zone-panel::-webkit-scrollbar{width:8px;}
.zone-panel::-webkit-scrollbar-track{background:transparent;}
.zone-panel::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.zone-panel::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.zone-hdr{padding:7px 12px;font-size:9px;font-family:var(--mono);color:var(--warn);letter-spacing:1px;border-bottom:1px solid var(--border);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;}
.zone-hdr-right{display:flex;gap:6px;align-items:center;}
.zone-count{background:rgba(255,140,66,.15);border:1px solid rgba(255,140,66,.3);border-radius:3px;padding:1px 5px;font-size:9px;color:var(--warn);}
.zone-body{padding:6px 8px;}
.zone-item{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:6px 8px;margin-bottom:4px;cursor:pointer;transition:border-color .12s;display:flex;align-items:flex-start;gap:7px;}
.zone-item:hover{border-color:var(--warn);}
.zone-item.active{border-color:var(--accent);}
.zone-color{width:8px;height:8px;border-radius:2px;margin-top:2px;flex-shrink:0;}
.zone-text{flex:1;min-width:0;}
.zone-name{font-size:11px;color:var(--text);font-weight:500;}
.zone-meta{font-size:9px;color:var(--muted);font-family:var(--mono);margin-top:1px;}
.zone-del{color:var(--dim);cursor:pointer;font-size:14px;flex-shrink:0;line-height:1;padding:2px;}
.zone-del:hover{color:var(--crit);}
.zone-tip{padding:10px 12px;font-size:10px;color:var(--dim);font-family:var(--mono);text-align:center;line-height:1.5;}

/* DETAIL PANEL */
.detail-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;max-height:190px;overflow-y:auto;}
.detail-panel::-webkit-scrollbar{width:8px;}
.detail-panel::-webkit-scrollbar-track{background:transparent;}
.detail-panel::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.detail-panel::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.detail-hdr{padding:6px 12px;font-size:9px;font-family:var(--mono);color:var(--accent);letter-spacing:1px;border-bottom:1px solid var(--border);text-transform:uppercase;}
.detail-body{padding:8px 12px;}
.detail-name{font-size:12px;font-weight:600;color:var(--text);margin-bottom:5px;line-height:1.4;}
.detail-row{display:flex;gap:8px;margin-bottom:3px;}
.detail-label{font-size:10px;font-family:var(--mono);color:var(--muted);width:70px;flex-shrink:0;}
.detail-val{font-size:10px;color:var(--text);}
.logic-section{margin-top:5px;}
.logic-title{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:2px;}
.logic-item{font-size:10px;color:var(--muted);padding:2px 6px;background:rgba(255,255,255,.02);border-radius:3px;margin-bottom:2px;}
.logic-item.pred{border-left:2px solid var(--accent2);}
.logic-item.succ{border-left:2px solid var(--ok);}

/* STATUSBAR */
.statusbar{background:var(--surface);border-top:1px solid var(--border);padding:4px 14px;display:flex;gap:14px;align-items:center;flex-shrink:0;}
.sb-stat{font-size:10px;font-family:var(--mono);display:flex;align-items:center;gap:4px;}

/* ZONE DIALOG */
.overlay-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:100;display:flex;align-items:center;justify-content:center;}
.zone-dialog{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;width:340px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.zone-dialog h3{font-size:14px;font-weight:600;margin-bottom:14px;color:var(--text);}
.dlg-label{font-size:11px;color:var(--muted);margin-bottom:5px;font-family:var(--mono);}
.dlg-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:13px;font-family:var(--font);color:var(--text);outline:none;margin-bottom:12px;min-height:34px;transition:border-color .15s,box-shadow .15s;}
.dlg-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb,0,82,204),.12);}
.dlg-acts{max-height:160px;overflow-y:auto;border:1px solid var(--border);border-radius:4px;margin-bottom:14px;}
.dlg-acts::-webkit-scrollbar{width:3px;}
.dlg-acts::-webkit-scrollbar-thumb{background:var(--dim);}
.dlg-act-item{padding:6px 10px;display:flex;align-items:center;gap:8px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s;}
.dlg-act-item:last-child{border-bottom:none;}
.dlg-act-item:hover{background:var(--surface2);}
.dlg-act-item input[type=checkbox]{accent-color:var(--accent);cursor:pointer;}
.dlg-act-label{font-size:11px;color:var(--text);flex:1;}
.dlg-act-code{font-size:9px;color:var(--muted);font-family:var(--mono);}
.dlg-btns{display:flex;gap:8px;justify-content:flex-end;}
.dlg-btn{padding:7px 16px;border-radius:6px;font-size:12px;font-family:var(--font);font-weight:500;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;transition:all .15s;}
.dlg-btn.confirm{background:var(--accent);color:#000;border-color:var(--accent);}
.dlg-btn.confirm:hover{background:#ffd700;}
.dlg-note{font-size:10px;color:var(--muted);margin-bottom:12px;line-height:1.5;}
.dlg-tab{padding:4px 10px;border-radius:3px;font-size:10px;font-family:var(--mono);cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all .1s;}
.dlg-tab:hover{color:var(--text);}
.dlg-tab.active{background:var(--surface2);border-color:var(--accent);color:var(--accent);}
.dlg-wbs-group{margin-bottom:6px;}
.dlg-wbs-hdr{padding:5px 10px;background:rgba(255,255,255,.03);font-size:10px;font-family:var(--mono);color:var(--muted);display:flex;align-items:center;justify-content:space-between;cursor:pointer;border-bottom:1px solid var(--border);}
.dlg-wbs-hdr:hover{background:rgba(255,255,255,.06);}
.dlg-wbs-hdr .add-all{font-size:9px;color:var(--accent);padding:1px 5px;border:1px solid rgba(240,192,64,.3);border-radius:2px;}
.dlg-wbs-hdr .add-all:hover{background:rgba(240,192,64,.1);}

/* ===== TAB SYSTEM ===== */
.app-tabs{display:flex;background:var(--surface);border-bottom:2px solid var(--border);flex-shrink:0;padding:0 14px;gap:2px;}
.app-tab{padding:10px 18px;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap;}
.app-tab:hover{color:var(--text);}
.app-tab.active{color:var(--accent);border-bottom-color:var(--accent);}
.tab-pane{display:none;flex:1;overflow:hidden;}
.tab-pane.active{display:flex;}

/* ===== LOGIC ANALYZER ===== */
.la-wrap{display:flex;flex:1;overflow:hidden;background:var(--bg);}
.la-left{width:280px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;}
.la-hdr{padding:10px 12px 8px;font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.la-search-wrap{padding:8px;border-bottom:1px solid var(--border);position:relative;}
.la-search{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:7px 8px 7px 26px;font-size:13px;font-family:var(--font);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;min-height:34px;}
.la-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb,0,82,204),.12);}
.la-search::placeholder{color:var(--dim);}
.la-search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:13px;pointer-events:none;}
.la-dir-btns{display:flex;gap:4px;padding:6px 8px;border-bottom:1px solid var(--border);}
.la-dir-btn{flex:1;padding:5px;border-radius:4px;font-size:10px;font-family:var(--mono);cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all .12s;text-align:center;}
.la-dir-btn:hover{color:var(--text);}
.la-dir-btn.active{background:var(--surface2);border-color:var(--accent2);color:var(--accent2);}
.la-dir-btn.fwd.active{border-color:var(--ok);color:var(--ok);}
.la-dir-btn.bwd.active{border-color:var(--accent2);color:var(--accent2);}
.la-dir-btn.both.active{border-color:var(--accent);color:var(--accent);}
.la-act-list{flex:1;overflow-y:auto;padding:5px;}
.la-act-list::-webkit-scrollbar{width:8px;}
.la-act-list::-webkit-scrollbar-track{background:transparent;}
.la-act-list::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.la-act-list::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.la-act-item{padding:8px 10px;border-radius:5px;cursor:pointer;margin-bottom:2px;border:1px solid transparent;border-bottom:1px solid rgba(160,174,192,.35);transition:background-color .15s ease,border-left .15s ease;line-height:1.5;border-left:2px solid transparent;}
.la-act-item:nth-child(even){background:rgba(0,0,0,.018);}
.la-act-item:hover{background:var(--surface2);border-left:2px solid var(--accent);border-radius:0 5px 5px 0;}
.la-act-item.active{background:var(--surface2);border-color:var(--accent);}
.la-act-code{font-family:var(--mono);font-size:11px;color:var(--muted);}
.la-act-name{font-size:13px;color:var(--text);line-height:1.5;margin-top:2px;}
.la-act-meta{font-size:11px;color:var(--dim);font-family:var(--mono);margin-top:2px;}
.la-no-results{padding:16px;text-align:center;color:var(--muted);font-size:11px;}

/* ===== LOGIC CANVAS ===== */
.la-canvas-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.la-toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:6px 14px;display:flex;align-items:center;gap:10px;flex-shrink:0;}
.la-toolbar-title{font-size:12px;font-weight:600;color:var(--text);}
.la-toolbar-sub{font-size:10px;color:var(--muted);font-family:var(--mono);}
.la-legend{display:flex;gap:12px;margin-left:auto;align-items:center;}
.la-legend-item{display:flex;align-items:center;gap:4px;font-size:10px;font-family:var(--mono);color:var(--muted);}
.la-legend-dot{width:10px;height:10px;border-radius:2px;}
.la-svg-viewport{flex:1;overflow:hidden;position:relative;background:var(--bg);}
.la-svg-viewport.panning{}
#logicSvg{position:absolute;top:0;left:0;transform-origin:0 0;overflow:visible;will-change:transform;}

/* NODE STYLES */
.logic-node{cursor:pointer;}
.node-body{rx:6;transition:all .15s;}
.node-body.status-active{fill:#1a2035;stroke:var(--warn);stroke-width:2;}
.node-body.status-notstart{fill:#111827;stroke:var(--accent2);stroke-width:1.5;}
.node-body.status-complete{fill:#0f1a14;stroke:var(--ok);stroke-width:1.5;opacity:.8;}
.node-body.critical{fill:#1f0f15;stroke:var(--crit);stroke-width:2.5;}
.node-body.selected{stroke:var(--accent);stroke-width:3;}
.node-code{font-family:IBM Plex Mono,monospace;font-size:10px;fill:var(--muted);}
.node-name{font-family:Barlow,sans-serif;font-size:11px;font-weight:500;fill:var(--text);}
.node-dates{font-family:IBM Plex Mono,monospace;font-size:9px;fill:var(--muted);}
.node-float{font-family:IBM Plex Mono,monospace;font-size:9px;}
.node-float.crit{fill:var(--crit);}
.node-float.ok{fill:var(--ok);}
.node-float.warn{fill:var(--warn);}

/* EDGE STYLES */
.logic-edge{fill:none;stroke-width:1.5;marker-end:url(#arrowFS);}
.edge-FS{stroke:rgba(74,158,255,.5);}
.edge-SS{stroke:rgba(61,220,151,.5);stroke-dasharray:5,3;}
.edge-FF{stroke:rgba(240,192,64,.4);stroke-dasharray:3,3;}
.edge-crit{stroke:rgba(255,77,109,.7);stroke-width:2.5;}
.edge-label{font-family:IBM Plex Mono,monospace;font-size:9px;fill:var(--muted);}

/* EMPTY STATE */
.la-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:14px;color:var(--muted);}
.la-empty h3{font-size:16px;color:var(--text);}
.la-empty p{font-size:12px;max-width:340px;text-align:center;line-height:1.6;}
.la-tip{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;gap:10px;align-items:flex-start;max-width:380px;}
.la-tip-icon{font-size:18px;flex-shrink:0;}
.la-tip-text{font-size:11px;color:var(--muted);line-height:1.5;}


/* ===== ACTIVITY LOCATE HIGHLIGHT ===== */
.locate-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:3px;font-size:10px;font-family:var(--mono);cursor:pointer;border:1px solid rgba(240,192,64,.4);background:rgba(240,192,64,.08);color:var(--accent);transition:all .15s;white-space:nowrap;}
.locate-btn:hover{background:rgba(240,192,64,.18);border-color:var(--accent);}
.locate-btn.searching{opacity:.6;pointer-events:none;}

/* Highlight pulse on drawing */
.locate-highlight{position:absolute;pointer-events:none;z-index:30;transform-origin:0 0;}
.locate-rect{fill:rgba(240,192,64,.18);stroke:var(--accent);stroke-width:2.5;rx:6;animation:locatePulse 1.2s ease-in-out 3;}
@keyframes locatePulse{0%,100%{fill:rgba(240,192,64,.12);stroke-width:2;}50%{fill:rgba(240,192,64,.32);stroke-width:3.5;}}
.locate-label-bg{fill:var(--accent);}
.locate-label-text{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;fill:#000;}

/* Toast confirm bar */
.locate-toast{position:fixed;bottom:52px;left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--accent);border-radius:8px;padding:10px 16px;display:flex;align-items:center;gap:12px;z-index:200;box-shadow:0 8px 32px rgba(0,0,0,.5);min-width:360px;animation:toastIn .25s ease;}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(10px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}
.locate-toast.hidden{display:none;}
.toast-icon{font-size:18px;flex-shrink:0;}
.toast-text{flex:1;font-size:12px;color:var(--text);}
.toast-text strong{color:var(--accent);}
.toast-text small{display:block;font-size:10px;color:var(--muted);font-family:var(--mono);margin-top:2px;}
.toast-btn{padding:5px 12px;border-radius:4px;font-size:11px;font-family:var(--font);font-weight:500;cursor:pointer;border:none;transition:all .12s;}
.toast-keep{background:var(--accent);color:#000;}
.toast-keep:hover{background:#ffd700;}
.toast-dismiss{background:var(--surface2);color:var(--muted);border:1px solid var(--border);}
.toast-dismiss:hover{color:var(--text);}
.conf-badge{font-size:9px;font-family:var(--mono);padding:1px 5px;border-radius:2px;margin-left:6px;}
.conf-high{background:rgba(61,220,151,.15);color:var(--ok);}
.conf-med{background:rgba(240,192,64,.15);color:var(--accent);}
.conf-low{background:rgba(255,77,109,.12);color:var(--crit);}


/* ===== ZONE MOVE / RESIZE / RENAME ===== */
.zone-group.dragging { cursor: grabbing !important; }
.zone-group.selected-zone { cursor: grab; }

/* Resize handles */
.zone-handle {
  fill: #fff;
  stroke: var(--accent);
  stroke-width: 1.5;
  cursor: nwse-resize;
  rx: 2;
}
.zone-handle.n, .zone-handle.s { cursor: ns-resize; }
.zone-handle.e, .zone-handle.w { cursor: ew-resize; }
.zone-handle.ne, .zone-handle.sw { cursor: nesw-resize; }

/* Color picker popover */
.zone-color-picker {
  position: absolute;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  z-index: 150;
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  min-width: 180px;
}
.zone-color-picker.hidden { display: none; }
.zcp-title { font-size: 10px; font-family: var(--mono); color: var(--muted); letter-spacing: 1px; text-transform: uppercase; }
.zcp-swatches { display: flex; gap: 6px; flex-wrap: wrap; }
.zcp-swatch {
  width: 22px; height: 22px; border-radius: 4px; cursor: pointer;
  border: 2px solid transparent; transition: all .12s;
}
.zcp-swatch:hover, .zcp-swatch.active { border-color: #fff; transform: scale(1.15); }
.zcp-rename { font-size: 10px; font-family: var(--mono); color: var(--muted); letter-spacing: 1px; text-transform: uppercase; margin-top: 4px; }
.zcp-input {
  width: 100%; background: var(--surface2); border: 1px solid var(--border);
  border-radius: 4px; padding: 5px 8px; font-size: 11px;
  font-family: var(--font); color: var(--text); outline: none;
}
.zcp-input:focus { border-color: var(--accent); }
.zcp-btns { display: flex; gap: 6px; }
.zcp-btn { flex: 1; padding: 4px; border-radius: 3px; font-size: 10px; font-family: var(--font); cursor: pointer; border: 1px solid var(--border); background: var(--surface2); color: var(--text); }
.zcp-btn.apply { background: var(--accent); color: #000; border-color: var(--accent); }

/* Zone context toolbar (appears above selected zone) */
.zone-ctx-bar {
  position: absolute;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 4px 6px;
  display: flex;
  gap: 4px;
  align-items: center;
  z-index: 100;
  box-shadow: 0 4px 16px rgba(0,0,0,.4);
  pointer-events: all;
}
.zone-ctx-bar.hidden { display: none; }
.ctx-btn {
  padding: 3px 8px; border-radius: 3px; font-size: 10px; font-family: var(--mono);
  cursor: pointer; border: 1px solid var(--border); background: transparent;
  color: var(--muted); transition: all .12s; white-space: nowrap;
}
.ctx-btn:hover { color: var(--text); background: var(--surface2); }
.ctx-btn.danger:hover { color: var(--crit); border-color: var(--crit); }
.ctx-divider { width: 1px; height: 14px; background: var(--border); }


/* ===== WBS EXPLORER ===== */
.la-sub-tabs{display:flex;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border);flex-shrink:0;}
.la-sub-tab{padding:4px 12px;border-radius:4px;font-size:10px;font-family:var(--mono);cursor:pointer;border:1px solid transparent;color:var(--muted);transition:all .12s;}
.la-sub-tab:hover{color:var(--text);}
.la-sub-tab.active{background:var(--surface2);border-color:var(--accent);color:var(--accent);}

.wbs-tree{flex:1;overflow-y:auto;padding:4px;}
.wbs-tree::-webkit-scrollbar{width:8px;}
.wbs-tree::-webkit-scrollbar-track{background:transparent;}
.wbs-tree::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.wbs-tree::-webkit-scrollbar-thumb:hover{background:var(--muted);}

.wbs-node{margin-bottom:2px;}
.wbs-row{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:5px;cursor:pointer;border:1px solid transparent;transition:all .12s;}
.wbs-row:hover{background:var(--surface2);}
.wbs-row.active{background:var(--surface2);border-color:var(--accent);}
.wbs-arrow{font-size:9px;color:var(--dim);width:10px;flex-shrink:0;transition:transform .15s;}
.wbs-arrow.open{transform:rotate(90deg);}
.wbs-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0;}
.wbs-name{font-size:11px;color:var(--text);flex:1;line-height:1.3;}
.wbs-badge{font-size:9px;font-family:var(--mono);padding:1px 5px;border-radius:2px;flex-shrink:0;}
.wbs-badge.crit{background:rgba(255,77,109,.15);color:var(--crit);}
.wbs-badge.active-wbs{background:rgba(255,140,66,.12);color:var(--warn);}
.wbs-badge.done{background:rgba(61,220,151,.1);color:var(--ok);}
.wbs-badge.ns{background:rgba(74,158,255,.1);color:var(--accent2);}
.wbs-badge.mixed{background:rgba(255,255,255,.06);color:var(--muted);}

.wbs-children{padding-left:16px;border-left:1px solid var(--border);margin-left:14px;}

.wbs-act-row{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:4px;cursor:pointer;border:1px solid transparent;transition:all .1s;margin-bottom:1px;}
.wbs-act-row:hover{background:var(--surface2);}
.wbs-act-row.active{background:var(--surface2);border-color:var(--accent2);}
.wbs-act-code{font-family:var(--mono);font-size:9px;color:var(--muted);min-width:52px;}
.wbs-act-name{font-size:10px;color:var(--text);flex:1;line-height:1.3;}
.wbs-act-tf{font-family:var(--mono);font-size:9px;flex-shrink:0;}

/* WBS canvas info panel */
.wbs-info-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:8px 14px;display:flex;align-items:center;gap:12px;flex-shrink:0;}
.wbs-info-name{font-size:13px;font-weight:600;color:var(--text);}
.wbs-info-stats{display:flex;gap:10px;margin-left:auto;}
.wbs-info-stat{font-size:10px;font-family:var(--mono);display:flex;align-items:center;gap:4px;}
.ext-links-panel{position:absolute;right:14px;top:54px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;min-width:220px;z-index:50;box-shadow:0 4px 20px rgba(0,0,0,.4);}
.ext-links-panel.hidden{display:none;}
.ext-hdr{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;}
.ext-link-item{font-size:10px;color:var(--text);padding:3px 0;border-bottom:1px solid var(--border);display:flex;gap:6px;align-items:center;}
.ext-link-item:last-child{border-bottom:none;}
.ext-link-dir{font-size:9px;font-family:var(--mono);padding:1px 4px;border-radius:2px;}
.ext-in{background:rgba(74,158,255,.1);color:var(--accent2);}
.ext-out{background:rgba(61,220,151,.1);color:var(--ok);}


/* ===== SETTINGS ===== */
.settings-wrap{display:flex;flex:1;overflow:hidden;background:var(--bg);}
.settings-sidebar{width:180px;background:var(--surface);border-right:1px solid var(--border);padding:16px 8px;flex-shrink:0;}
.settings-nav-item{padding:8px 12px;border-radius:6px;cursor:pointer;font-size:12px;color:var(--muted);transition:all .12s;margin-bottom:2px;border:1px solid transparent;}
.settings-nav-item:hover{background:var(--surface2);color:var(--text);}
.settings-nav-item.active{background:var(--surface2);border-color:var(--accent);color:var(--accent);}
.settings-content{flex:1;overflow-y:auto;padding:32px 40px;}
.settings-content::-webkit-scrollbar{width:8px;}
.settings-content::-webkit-scrollbar-track{background:transparent;}
.settings-content::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.settings-content::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.settings-section{display:none;}
.settings-section.active{display:block;}
.settings-section-title{font-size:18px;font-weight:600;color:var(--text);margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid var(--border);}
.setting-group{margin-bottom:28px;max-width:560px;}
.setting-label{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;}
.setting-desc{font-size:11px;color:var(--muted);margin-bottom:12px;line-height:1.5;}
.settings-select,.settings-input{width:100%;max-width:360px;padding:8px 11px;background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:7px;font-size:13px;font-family:var(--font);box-sizing:border-box;}
.settings-select:focus,.settings-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent);}
.proj-loc-grid{display:flex;flex-direction:column;gap:8px;max-width:360px;}

/* ════════ Job-site weather gadget ════════ */
.cf-wx-chip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.cf-wx-chip .cf-wx-ic{font-size:14px;line-height:1;}
.cf-wx-chip .cf-wx-t{font-weight:700;font-variant-numeric:tabular-nums;}
.cf-wx-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.cf-wx-dot.cf-wx-warn{background:var(--warn);} .cf-wx-dot.cf-wx-crit{background:var(--crit);}
.cf-wx-panel{position:absolute;z-index:9999;width:340px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 44px rgba(0,0,0,.4);padding:14px;font-family:var(--font);color:var(--text);}
.cf-wx-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:11px;gap:10px;}
.cf-wx-site{font-weight:700;font-size:14px;line-height:1.2;}
.cf-wx-sub{font-size:10px;color:var(--muted);font-family:var(--mono);margin-top:2px;}
.cf-wx-utog{display:flex;gap:3px;font-size:11px;font-family:var(--mono);flex-shrink:0;}
.cf-wx-utog span{padding:2px 7px;border-radius:5px;cursor:pointer;color:var(--muted);border:1px solid var(--border);}
.cf-wx-utog span.on{background:var(--accent);color:#fff;border-color:var(--accent);}
.cf-wx-cur{display:flex;align-items:center;gap:13px;margin-bottom:11px;}
.cf-wx-bigic{font-size:40px;line-height:1;}
.cf-wx-bigt{font-size:30px;font-weight:800;line-height:1;}
.cf-wx-cond{font-size:13px;color:var(--text);margin-top:3px;}
.cf-wx-feels{font-size:11px;color:var(--muted);font-family:var(--mono);margin-top:4px;}
.cf-wx-impacts{display:flex;flex-direction:column;gap:5px;margin-bottom:11px;}
.cf-wx-imp{font-size:11px;padding:6px 9px;border-radius:7px;line-height:1.4;display:flex;gap:7px;align-items:flex-start;}
.cf-wx-imp span{flex-shrink:0;}
.cf-wx-imp.cf-wx-warn{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn);}
.cf-wx-imp.cf-wx-crit{background:color-mix(in srgb,var(--crit) 15%,transparent);color:var(--crit);}
.cf-wx-imp.cf-wx-ok{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok);}
.cf-wx-days{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;border-top:1px solid var(--border);padding-top:11px;}
.cf-wx-day{text-align:center;font-size:10px;}
.cf-wx-dl{font-weight:700;color:var(--muted);font-family:var(--mono);}
.cf-wx-di{font-size:21px;margin:3px 0;line-height:1;}
.cf-wx-dt{font-weight:700;}
.cf-wx-dlo{color:var(--muted);}
.cf-wx-drain{color:var(--accent2);font-family:var(--mono);margin-top:2px;font-size:9px;}
.cf-wx-drain.hi{color:var(--accent);font-weight:700;}
.cf-wx-ft{font-size:9px;color:var(--muted);text-align:center;margin-top:9px;font-family:var(--mono);}

/* Theme toggle */
.theme-toggle-row{display:flex;gap:16px;}
.theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;padding:12px;border-radius:8px;border:2px solid var(--border);transition:all .15s;min-width:100px;}
.theme-option:hover{border-color:var(--muted);}
.theme-option.active{border-color:var(--accent);}
.theme-option span{font-size:12px;color:var(--text);}
.theme-preview{width:80px;height:50px;border-radius:6px;border:1px solid var(--border);}
.dark-preview{background:linear-gradient(135deg,#0e1117 50%,#151b26 50%);}
.light-preview{background:linear-gradient(135deg,#f5f5f0 50%,#ffffff 50%);}

/* Accent swatches */
.accent-swatches{display:flex;gap:10px;flex-wrap:wrap;}
.accent-swatch{width:28px;height:28px;border-radius:6px;cursor:pointer;border:3px solid transparent;transition:all .12s;}
.accent-swatch:hover{transform:scale(1.15);}
.accent-swatch.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent);}

/* Font size */
.font-size-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.font-size-label{color:var(--muted);font-weight:600;}
.font-size-value{font-size:11px;font-family:var(--mono);color:var(--accent);min-width:36px;}
.settings-slider{flex:1;accent-color:var(--accent);cursor:pointer;}
.font-size-preview{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:12px 16px;font-size:13px;color:var(--text);line-height:1.6;}

/* Density */
.density-options{display:flex;gap:8px;}
.density-btn{padding:6px 20px;border-radius:4px;font-size:11px;font-family:var(--font);cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--muted);transition:all .12s;}
.density-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(240,192,64,.08);}

/* Toggle */
.toggle-row{margin-bottom:8px;}
.toggle-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text);cursor:pointer;}
.toggle-label input{accent-color:var(--accent);width:14px;height:14px;cursor:pointer;}

/* About */
.about-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:24px;max-width:480px;transition:background-color .2s,border-color .2s;}
.about-logo{font-size:22px;font-weight:700;color:var(--accent);margin-bottom:4px;}
.about-version{font-size:11px;font-family:var(--mono);color:var(--muted);margin-bottom:12px;}
.about-desc{font-size:12px;color:var(--text);line-height:1.6;margin-bottom:16px;}
.about-divider{height:1px;background:var(--border);margin:14px 0;}
.about-row{display:flex;justify-content:space-between;margin-bottom:6px;font-size:12px;}
.about-label{color:var(--muted);}
.about-val{color:var(--text);font-family:var(--mono);}
.about-note{font-size:10px;color:var(--warn);line-height:1.5;background:rgba(255,140,66,.06);border:1px solid rgba(255,140,66,.2);border-radius:4px;padding:8px 10px;}

/* ===== TOOLS PANEL ===== */
.tools-list{flex:1;overflow-y:auto;padding:6px;}
.tools-list::-webkit-scrollbar{width:3px;}
.tools-list::-webkit-scrollbar-thumb{background:var(--dim);}
.tool-card{background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:10px 12px;margin-bottom:6px;cursor:pointer;transition:all .15s;}
.tool-card:hover{border-color:var(--accent2);}
.tool-card.active{border-color:var(--accent);background:#1a2035;}
.tool-icon{font-size:16px;margin-bottom:4px;}
.tool-name{font-size:12px;font-weight:600;color:var(--text);margin-bottom:2px;}
.tool-desc{font-size:10px;color:var(--muted);line-height:1.4;}
.tool-run-btn{margin-top:8px;padding:4px 12px;border-radius:3px;font-size:10px;font-family:var(--mono);background:var(--accent);color:#000;border:none;cursor:pointer;font-weight:500;}
.tool-run-btn:hover{background:#ffd700;}

/* ===== LIGHT MODE baseline — applied to site and slate themes ===== */
body.light-mode .topbar{background:#fff;border-bottom:2px solid #d0d4e0;box-shadow:0 1px 4px rgba(0,0,0,.06);}
body.light-mode .app-tabs{background:#fff;border-bottom:2px solid #d0d4e0;}
body.light-mode .app-tab{color:#5a6278;}
body.light-mode .app-tab.active{color:var(--accent);border-bottom-color:var(--accent);}
body.light-mode .logo{color:var(--accent);}
body.light-mode .logo span{color:#1c2033;}
body.light-mode .proj-pill{background:#eef0f5;border-color:#d0d4e0;color:#5a6278;}
body.light-mode .proj-pill strong{color:#1c2033;}
body.light-mode .topbar-btn{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .topbar-btn:hover{border-color:var(--accent);color:var(--accent);}
body.light-mode .topbar-btn.primary{background:var(--accent);color:#000;}
body.light-mode .sidebar{background:#fff;border-right:1px solid #d0d4e0;}
body.light-mode .sidebar-hdr{color:#5a6278;border-bottom-color:#d0d4e0;}
body.light-mode .search-input{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .search-input::placeholder{color:#b0b8cc;}
body.light-mode .drw-item:hover{background:#eef0f5;}
body.light-mode .drw-item.active{background:#eef0f5;border-color:var(--accent);}
body.light-mode .drw-name{color:#1c2033;}
body.light-mode .center{background:#e8eaf0;}
body.light-mode .viewer-toolbar{background:#fff;border-bottom:1px solid #d0d4e0;}
body.light-mode .sheet-info{color:#1c2033;}
body.light-mode .zoom-btn{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .panel-right{background:#fff;border-left:1px solid #d0d4e0;}
body.light-mode .panel-hdr{color:#5a6278;border-bottom-color:#d0d4e0;}
body.light-mode .filter-bar{border-bottom-color:#d0d4e0;}
body.light-mode .flt{color:#5a6278;}
body.light-mode .flt.active{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .act-card{background:#eef0f5;border-color:#d0d4e0;}
body.light-mode .act-card:hover{border-top-color:#d0d4e0;border-right-color:var(--accent2);border-bottom-color:#d0d4e0;}
body.light-mode .act-card.selected{background:#e4e8f8;border-color:var(--accent)!important;}
body.light-mode .act-name{color:#1c2033;}
body.light-mode .act-dates{color:#5a6278;}
body.light-mode .detail-panel{background:#fff;border-top:1px solid #d0d4e0;}
body.light-mode .detail-hdr{color:var(--accent);border-bottom-color:#d0d4e0;}
body.light-mode .detail-name{color:#1c2033;}
body.light-mode .detail-val{color:#1c2033;}
body.light-mode .detail-label{color:#5a6278;}
body.light-mode .logic-item{background:rgba(0,0,0,.03);}
body.light-mode .zone-panel{background:#fff;border-top:1px solid #d0d4e0;}
body.light-mode .zone-hdr{border-bottom-color:#d0d4e0;}
body.light-mode .zone-item{background:#eef0f5;border-color:#d0d4e0;}
body.light-mode .statusbar{background:#fff;border-top:1px solid #d0d4e0;}
body.light-mode .la-wrap{background:#f2f3f7;}
body.light-mode .la-left{background:#fff;border-right:1px solid #d0d4e0;}
body.light-mode .la-hdr{color:#5a6278;border-bottom-color:#d0d4e0;}
body.light-mode .la-search{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .la-dir-btns{border-bottom-color:#d0d4e0;}
body.light-mode .la-dir-btn{color:#5a6278;border-color:#d0d4e0;}
body.light-mode .la-act-item:hover{background:#eef0f5;}
body.light-mode .la-act-item.active{background:#eef0f5;border-color:var(--accent);}
body.light-mode .la-act-name{color:#1c2033;}
body.light-mode .la-act-meta{color:#5a6278;}
body.light-mode .la-canvas-wrap{background:#f2f3f7;}
body.light-mode .la-toolbar{background:#fff;border-bottom:1px solid #d0d4e0;}
body.light-mode .la-toolbar-title{color:#1c2033;}
body.light-mode .la-svg-viewport{background:#e8eaf0;}
body.light-mode #logicSvg{background:#e8eaf0;}
body.light-mode .node-body.status-notstart{fill:#dce8f8;stroke:var(--accent2);stroke-width:1.5;}
body.light-mode .node-body.status-active{fill:#fff0e0;stroke:var(--warn);stroke-width:2;}
body.light-mode .node-body.status-complete{fill:#dcf5e8;stroke:var(--ok);stroke-width:1.5;}
body.light-mode .node-body.critical{fill:#fde0e6;stroke:var(--crit);stroke-width:2.5;}
body.light-mode .node-body.selected{stroke:var(--accent);stroke-width:3;}
body.light-mode .node-name{fill:#1c2033;}
body.light-mode .node-code{fill:#5a6278;}
body.light-mode .node-dates{fill:#5a6278;}
body.light-mode .la-empty h3{color:#1c2033;}
body.light-mode .la-tip{background:#eef0f5;border-color:#d0d4e0;}
body.light-mode .tool-card{background:#eef0f5;border-color:#d0d4e0;}
body.light-mode .tool-card:hover{border-color:var(--accent2);}
body.light-mode .tool-card.active{background:#dde2f0;border-color:var(--accent);}
body.light-mode .tool-name{color:#1c2033;}
body.light-mode .tool-desc{color:#5a6278;}
body.light-mode .wbs-name{color:#1c2033;}
body.light-mode .wbs-act-name{color:#1c2033;}
body.light-mode .wbs-row:hover{background:#eef0f5;}
body.light-mode .wbs-row.active{background:#eef0f5;border-color:var(--accent);}
body.light-mode .settings-wrap{background:#f2f3f7;}
body.light-mode .settings-sidebar{background:#fff;border-right:1px solid #d0d4e0;}
body.light-mode .settings-nav-item{color:#5a6278;}
body.light-mode .settings-nav-item:hover{background:#eef0f5;color:#1c2033;}
body.light-mode .settings-nav-item.active{background:#eef0f5;border-color:var(--accent);color:var(--accent);}
body.light-mode .settings-content{background:#f2f3f7;}
body.light-mode .settings-section-title{color:#1c2033;border-bottom-color:#d0d4e0;}
body.light-mode .setting-label{color:#1c2033;}
body.light-mode .setting-desc{color:#5a6278;}
body.light-mode .theme-option{border-color:#d0d4e0;}
body.light-mode .theme-option span{color:#1c2033;}
body.light-mode .font-size-preview{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .density-btn{background:#eef0f5;border-color:#d0d4e0;color:#5a6278;}
body.light-mode .density-btn.active{border-color:var(--accent);color:var(--accent);}
body.light-mode .toggle-label{color:#1c2033;}
body.light-mode .about-card{background:#eef0f5;border-color:#d0d4e0;}
body.light-mode .about-logo{color:var(--accent);}
body.light-mode .about-version{color:#5a6278;}
body.light-mode .about-desc{color:#1c2033;}
body.light-mode .about-label{color:#5a6278;}
body.light-mode .about-val{color:#1c2033;}
body.light-mode .locate-toast{background:#fff;border-color:var(--accent);}
body.light-mode .toast-text{color:#1c2033;}
body.light-mode .toast-dismiss{background:#eef0f5;color:#5a6278;border-color:#d0d4e0;}
body.light-mode .zone-dialog{background:#fff;border-color:#d0d4e0;}
body.light-mode .zone-dialog h3{color:#1c2033;}
body.light-mode .dlg-input{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .dlg-act-item{border-bottom-color:#d0d4e0;}
body.light-mode .dlg-act-item:hover{background:#eef0f5;}
body.light-mode .dlg-act-label{color:#1c2033;}
body.light-mode .dlg-btn{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .zone-color-picker{background:#fff;border-color:#d0d4e0;}
body.light-mode .zcp-title,.zcp-rename{color:#5a6278;}
body.light-mode .zcp-input{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .zone-ctx-bar{background:#fff;border-color:#d0d4e0;}
body.light-mode .ctx-btn{color:#5a6278;}
body.light-mode .ctx-btn:hover{background:#eef0f5;color:#1c2033;}
body.light-mode .la-sub-tab{color:#5a6278;border-color:transparent;}
body.light-mode .la-sub-tab.active{background:#eef0f5;border-color:var(--accent);color:var(--accent);}
body.light-mode .ext-links-panel{background:#fff;border-color:#d0d4e0;}
body.light-mode .ext-hdr{color:#5a6278;}
body.light-mode .ext-link-item{color:#1c2033;border-bottom-color:#d0d4e0;}

/* ===== TOOLS RESULT PANELS ===== */
.tool-result{padding:10px 14px;background:var(--surface);border-top:1px solid var(--border);}
.tool-result-title{font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;}

/* Float chart */
.float-bars{display:flex;flex-direction:column;gap:4px;}
.float-bar-row{display:flex;align-items:center;gap:8px;}
.float-bar-label{font-size:9px;font-family:var(--mono);color:var(--muted);width:60px;flex-shrink:0;text-align:right;}
.float-bar-track{flex:1;height:14px;background:var(--surface2);border-radius:3px;overflow:hidden;}
.float-bar-fill{height:100%;border-radius:3px;transition:width .4s;}
.float-bar-count{font-size:9px;font-family:var(--mono);color:var(--muted);width:24px;}

/* Gap list */
.gap-item{padding:5px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;align-items:flex-start;font-size:10px;}
.gap-item:last-child{border-bottom:none;}
.gap-code{font-family:var(--mono);color:var(--muted);flex-shrink:0;width:56px;}
.gap-name{flex:1;color:var(--text);}
.gap-tag{font-size:8px;padding:1px 4px;border-radius:2px;flex-shrink:0;}
.gap-no-pred{background:rgba(74,158,255,.1);color:var(--accent2);}
.gap-no-succ{background:rgba(255,140,66,.1);color:var(--warn);}
.gap-both{background:rgba(255,77,109,.1);color:var(--crit);}


/* ===== PINNED TOOLS SUB-BAR ===== */
.pinned-tools-bar{
  background:var(--surface);border-bottom:1px solid var(--border);
  padding:5px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;
}
.pinned-bar-label{font-size:10px;font-family:var(--mono);color:var(--muted);white-space:nowrap;}
.pinned-tool-btn{
  padding:4px 12px;border-radius:4px;font-size:11px;font-family:var(--font);font-weight:500;
  border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;
  transition:all .12s;white-space:nowrap;
}
.pinned-tool-btn:hover{border-color:var(--accent);color:var(--accent);}
.pinned-tool-btn.active{background:rgba(240,192,64,.1);border-color:var(--accent);color:var(--accent);}

/* ===== TOOLS PANEL PILLS ===== */
.tools-header{
  padding:8px 10px 6px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
}
.tools-header-label{font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;}
.tools-visibility-btn{
  padding:3px 8px;border-radius:3px;font-size:9px;font-family:var(--mono);
  background:transparent;border:1px solid var(--border);color:var(--muted);cursor:pointer;
}
.tools-visibility-btn:hover{color:var(--text);border-color:var(--muted);}
.tools-visibility-dropdown{
  background:var(--surface2);border:1px solid var(--border);border-radius:6px;
  padding:6px;margin:4px 8px;position:absolute;z-index:50;
  box-shadow:0 4px 16px rgba(0,0,0,.4);min-width:180px;
}
.tools-visibility-dropdown.hidden{display:none;}
.tools-vis-row{
  display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:4px;
  font-size:11px;color:var(--text);cursor:pointer;transition:background .1s;
}
.tools-vis-row:hover{background:var(--surface);}
.tools-vis-row input{accent-color:var(--accent);cursor:pointer;}

.tools-pills{
  padding:6px 8px;border-bottom:1px solid var(--border);
  display:flex;flex-direction:column;gap:3px;flex-shrink:0;overflow-y:auto;max-height:280px;
}
.tools-pills::-webkit-scrollbar{width:8px;}
.tools-pills::-webkit-scrollbar-track{background:transparent;}
.tools-pills::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.tools-pills::-webkit-scrollbar-thumb:hover{background:var(--muted);}

.tool-pill{
  display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:5px;
  cursor:pointer;border:1px solid transparent;transition:all .12s;
  background:var(--surface2);
}
.tool-pill:hover{border-color:var(--accent2);background:var(--surface2);}
.tool-pill.active{border-color:var(--accent);background:rgba(240,192,64,.06);}
.tool-pill.pinned{border-color:rgba(240,192,64,.3);}
.tool-pill.dragging{opacity:.5;}
.tool-pill.drag-over{border-color:var(--accent2);background:rgba(74,158,255,.08);}
.tp-icon{font-size:14px;flex-shrink:0;}
.tp-name{font-size:11px;font-weight:500;color:var(--text);flex:1;line-height:1.3;}
.tp-pin{font-size:11px;color:var(--dim);cursor:pointer;flex-shrink:0;transition:color .12s;}
.tp-pin:hover,.tp-pin.active{color:var(--accent);}

.tools-active-panel{
  flex:1;overflow-y:auto;padding:0;
}
.tools-active-panel::-webkit-scrollbar{width:8px;}
.tools-active-panel::-webkit-scrollbar-track{background:transparent;}
.tools-active-panel::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.tools-active-panel::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.tools-empty-hint{padding:24px 16px;font-size:11px;color:var(--muted);text-align:center;line-height:1.6;}

/* ===== BREADCRUMB ===== */
.tool-breadcrumb{
  display:flex;align-items:center;gap:6px;padding:6px 10px;
  background:var(--surface2);border-bottom:1px solid var(--border);
  font-size:10px;font-family:var(--mono);flex-shrink:0;
}
.bc-back{color:var(--accent2);cursor:pointer;font-weight:500;}
.bc-back:hover{text-decoration:underline;}
.bc-sep{color:var(--dim);}
.bc-tool{color:var(--text);}
.bc-current{color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ===== HEALTH SCORE DOM ===== */
.hs-header{display:flex;align-items:center;gap:16px;padding:14px 14px 10px;border-bottom:1px solid var(--border);flex-shrink:0;}
.hs-circle{width:70px;height:70px;border-radius:50%;border:3px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;}
.hs-score{font-size:26px;font-weight:700;font-family:var(--font);line-height:1;}
.hs-label{font-size:9px;font-family:var(--mono);font-weight:600;}
.hs-sub{font-size:8px;font-family:var(--mono);color:var(--muted);}
.hs-title-block{flex:1;min-width:0;}
.hs-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px;}
.hs-desc{font-size:10px;color:var(--muted);line-height:1.4;}
.hs-section-title{font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;padding:8px 14px 4px;border-bottom:1px solid var(--border);}

.hs-factor-row{border-left:3px solid;margin:4px 8px;border-radius:5px;background:var(--surface2);overflow:hidden;}
.hs-factor-top{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;transition:background .12s;}
.hs-factor-top:hover{background:rgba(255,255,255,.04);}
.hs-arrow{font-size:9px;color:var(--muted);flex-shrink:0;width:10px;}
.hs-factor-info{flex:1;min-width:0;}
.hs-factor-name{font-size:11px;font-weight:600;color:var(--text);}
.hs-factor-detail{font-size:9px;color:var(--muted);font-family:var(--mono);margin-top:1px;}
.hs-factor-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.hs-factor-bar{width:80px;height:10px;background:var(--surface);border-radius:3px;overflow:hidden;}
.hs-factor-fill{height:100%;border-radius:3px;transition:width .4s;}
.hs-factor-score{font-size:10px;font-family:var(--mono);font-weight:600;min-width:32px;text-align:right;}

.hs-act-list{padding:4px 8px 8px 20px;}
.hs-act-list.hidden{display:none;}
.hs-wbs-group{margin-bottom:4px;}
.hs-wbs-hdr{font-size:10px;font-family:var(--mono);color:var(--muted);padding:4px 6px;background:rgba(255,255,255,.02);border-radius:3px;margin-bottom:2px;}
.hs-wbs-count{opacity:.6;}
.hs-act-row{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:4px;cursor:pointer;transition:background .1s;border-bottom:1px solid rgba(255,255,255,.03);}
.hs-act-row:hover{background:rgba(255,255,255,.05);}
.hs-act-code{font-family:var(--mono);font-size:9px;color:var(--muted);flex-shrink:0;min-width:52px;}
.hs-act-name{flex:1;font-size:10px;color:var(--text);line-height:1.3;word-break:break-word;}
.hs-act-tf{font-family:var(--mono);font-size:9px;font-weight:600;flex-shrink:0;}

.hs-actions{padding:6px 8px 10px;}
.hs-action-item{display:flex;gap:8px;padding:6px 8px;border-radius:4px;margin-bottom:3px;background:rgba(255,255,255,.02);font-size:10px;line-height:1.4;}
.hs-action-icon{flex-shrink:0;}
.hs-action-text{color:var(--muted);}

/* Light mode health score */
body.light-mode .hs-factor-row{background:#eef0f5;}
body.light-mode .hs-factor-top:hover{background:rgba(0,0,0,.03);}
body.light-mode .hs-wbs-hdr{background:rgba(0,0,0,.03);}
body.light-mode .hs-act-row:hover{background:rgba(0,0,0,.04);}
body.light-mode .hs-act-name{color:#1c2033;}
body.light-mode .tool-pill{background:#eef0f5;}
body.light-mode .tool-pill:hover{border-color:var(--accent2);}
body.light-mode .tool-pill.active{background:rgba(240,192,64,.08);}
body.light-mode .tools-header{border-bottom-color:#d0d4e0;}
body.light-mode .tools-pills{border-bottom-color:#d0d4e0;}
body.light-mode .pinned-tools-bar{background:#fff;border-bottom-color:#d0d4e0;}
body.light-mode .pinned-tool-btn{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .tools-active-panel{background:#f2f3f7;}
body.light-mode .hs-header{border-bottom-color:#d0d4e0;}
body.light-mode .hs-section-title{border-bottom-color:#d0d4e0;color:#5a6278;}
body.light-mode .hs-action-item{background:rgba(0,0,0,.03);}
body.light-mode .tool-breadcrumb{background:#eef0f5;border-bottom-color:#d0d4e0;}


/* ===== VIEW TOGGLE BUTTONS ===== */
.la-view-btn{
  padding:3px 9px;border-radius:4px;font-size:10px;font-family:var(--mono);
  background:transparent;border:1px solid var(--border);color:var(--muted);
  cursor:pointer;transition:all .12s;white-space:nowrap;
}
.la-view-btn:hover{color:var(--text);border-color:var(--muted);}
.la-view-btn.active{background:var(--surface2);border-color:var(--accent);color:var(--accent);}

/* ===== TIMESCALE HEADER ===== */
.timescale-header{
  flex-shrink:0;overflow:hidden;background:var(--surface);
  border-bottom:1px solid var(--border);position:relative;height:36px;
}
.timescale-inner{position:absolute;top:0;left:0;height:36px;pointer-events:none;}
.today-line{
  position:absolute;top:0;bottom:0;width:2px;
  background:var(--accent);opacity:.7;pointer-events:none;
}
.today-line::after{
  content:'TODAY';position:absolute;top:2px;left:4px;
  font-size:8px;font-family:var(--mono);color:var(--accent);white-space:nowrap;
}

/* ===== ANNOTATION SIDEBAR ===== */
.la-canvas-wrap{position:relative;}
.annot-sidebar{
  position:absolute;right:10px;top:50px;width:200px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:8px;z-index:60;box-shadow:0 8px 32px rgba(0,0,0,.4);
  display:flex;flex-direction:column;
  resize:none;user-select:none;
}
.annot-sidebar-handle{
  position:absolute;left:-16px;top:50%;transform:translateY(-50%);
  width:14px;height:40px;background:var(--surface2);border:1px solid var(--border);
  border-radius:4px 0 0 4px;display:flex;align-items:center;justify-content:center;
  cursor:grab;color:var(--muted);font-size:10px;letter-spacing:-2px;
}
.annot-sidebar-handle:active{cursor:grabbing;}
.annot-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px 6px;border-bottom:1px solid var(--border);
}
.annot-title{font-size:11px;font-weight:600;color:var(--text);}
.annot-close{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;}
.annot-close:hover{color:var(--crit);}
.annot-tools{display:flex;gap:4px;padding:6px 8px;border-bottom:1px solid var(--border);}
.annot-tool-btn{
  flex:1;padding:4px 2px;border-radius:3px;font-size:9px;font-family:var(--mono);
  background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;
  transition:all .12s;text-align:center;white-space:nowrap;
}
.annot-tool-btn:hover{color:var(--text);}
.annot-tool-btn.active{background:rgba(240,192,64,.1);border-color:var(--accent);color:var(--accent);}
.annot-color-row{display:flex;gap:5px;padding:6px 8px;border-bottom:1px solid var(--border);}
.annot-color{
  width:20px;height:20px;border-radius:4px;cursor:pointer;
  border:2px solid transparent;transition:all .12s;
}
.annot-color:hover{transform:scale(1.15);}
.annot-color.active{border-color:#fff;box-shadow:0 0 0 1px var(--muted);}
.annot-list-hdr{
  padding:5px 10px;font-size:9px;font-family:var(--mono);color:var(--muted);
  letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:6px;
}
.annot-list{flex:1;overflow-y:auto;padding:4px;max-height:200px;}
.annot-list::-webkit-scrollbar{width:8px;}
.annot-list::-webkit-scrollbar-track{background:transparent;}
.annot-list::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.annot-list::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.annot-item{
  background:var(--surface2);border-radius:4px;padding:5px 8px;margin-bottom:3px;
  font-size:10px;display:flex;gap:6px;align-items:flex-start;
  border-left:3px solid var(--accent);
}
.annot-item-text{flex:1;color:var(--text);word-break:break-word;line-height:1.4;}
.annot-item-del{color:var(--dim);cursor:pointer;font-size:13px;flex-shrink:0;}
.annot-item-del:hover{color:var(--crit);}
.annot-footer{padding:6px 8px;border-top:1px solid var(--border);display:flex;gap:4px;flex-direction:column;}
.annot-export-btn{
  padding:5px;border-radius:4px;font-size:10px;font-family:var(--mono);
  background:rgba(74,158,255,.08);border:1px solid rgba(74,158,255,.3);color:var(--accent2);
  cursor:pointer;text-align:center;transition:all .12s;
}
.annot-export-btn:hover{background:rgba(74,158,255,.15);}

/* SVG annotation overlays */
.annot-note-foreign{overflow:visible;}
.annot-textbox{
  background:rgba(240,192,64,.15);border:1px solid var(--accent);border-radius:4px;
  padding:5px 7px;font-size:11px;font-family:var(--font);color:var(--text);
  min-width:120px;min-height:40px;resize:both;outline:none;cursor:move;
  white-space:pre-wrap;word-break:break-word;
}
.annot-highlight-rect{opacity:.25;pointer-events:none;}
.la-svg-viewport.annot-mode-text{cursor:text;}
.la-svg-viewport.annot-mode-highlight{cursor:cell;}
.la-svg-viewport.annot-mode-arrow{cursor:crosshair;}

/* Light mode */
body.light-mode .annot-sidebar{background:#fff;border-color:#d0d4e0;}
body.light-mode .annot-header{border-bottom-color:#d0d4e0;}
body.light-mode .annot-title{color:#1c2033;}
body.light-mode .annot-tools{border-bottom-color:#d0d4e0;}
body.light-mode .annot-tool-btn{background:#eef0f5;border-color:#d0d4e0;color:#5a6278;}
body.light-mode .annot-color-row{border-bottom-color:#d0d4e0;}
body.light-mode .annot-list-hdr{border-bottom-color:#d0d4e0;color:#5a6278;}
body.light-mode .annot-item{background:#eef0f5;}
body.light-mode .annot-item-text{color:#1c2033;}
body.light-mode .annot-footer{border-top-color:#d0d4e0;}
body.light-mode .annot-sidebar-handle{background:#eef0f5;border-color:#d0d4e0;}
body.light-mode .timescale-header{background:#fff;border-bottom-color:#d0d4e0;}
body.light-mode .la-view-btn{color:#5a6278;border-color:#d0d4e0;}
body.light-mode .la-view-btn.active{background:#eef0f5;border-color:var(--accent);color:var(--accent);}


/* Print button */
#btnPrint{font-size:14px;padding:2px 8px;}
#btnPrint:hover{border-color:var(--accent);color:var(--accent);}
/* Note placement cursor hint */
.la-svg-viewport.annot-mode-text,
.la-svg-viewport.annot-mode-highlight{cursor:crosshair;}
.la-svg-viewport.annot-mode-text::after,
.la-svg-viewport.annot-mode-highlight::after{
  content:'Click on diagram to place';
  position:fixed;bottom:60px;left:50%;transform:translateX(-50%);
  background:var(--accent);color:#000;padding:4px 12px;border-radius:4px;
  font-size:11px;font-family:var(--mono);pointer-events:none;z-index:999;
  opacity:.9;
}


/* ===== SCHEDULE TAB ===== */
.sched-wrap{display:flex;flex:1;overflow:hidden;background:var(--bg);}
.sched-left{width:210px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;}
.sched-left::-webkit-scrollbar{width:8px;}
.sched-left::-webkit-scrollbar-track{background:transparent;}
.sched-left::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.sched-left::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.sched-left-hdr{padding:9px 10px 7px;font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.sched-upload-zone{margin:6px;padding:10px 6px;border:1px dashed var(--border);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;transition:all .15s;text-align:center;}
.sched-upload-zone:hover{border-color:var(--accent);background:rgba(240,192,64,.04);}
.sched-upload-icon{font-size:18px;}
.sched-upload-label{font-size:11px;font-weight:500;color:var(--accent);}
.sched-upload-sub{font-size:9px;color:var(--muted);font-family:var(--mono);}
.sched-upload-status{margin:0 8px;padding:3px 6px;font-size:10px;font-family:var(--mono);color:var(--ok);display:none;}
.sched-upload-status.visible{display:block;}
.sched-divider{height:1px;background:var(--border);margin:6px 0;}
.sched-filter-hdr{padding:6px 10px 3px;font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;}
.sched-filter-label{font-size:9px;font-family:var(--mono);color:var(--dim);letter-spacing:1px;text-transform:uppercase;padding:4px 0 2px;}
.sched-search-wrap{padding:4px 8px;position:relative;}
.sched-check-row{padding:3px 4px;font-size:11px;color:var(--text);}
.sched-check-row label{display:flex;align-items:center;gap:5px;cursor:pointer;}
.sched-check-row input{accent-color:var(--accent);cursor:pointer;}
.sched-wbs-filter{padding:4px 6px;display:flex;flex-direction:column;gap:2px;}
.sched-wbs-btn{padding:4px 6px;border-radius:3px;font-size:10px;text-align:left;background:transparent;border:1px solid transparent;color:var(--muted);cursor:pointer;transition:all .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sched-wbs-btn:hover{background:var(--surface2);color:var(--text);}
.sched-wbs-btn.active{background:var(--surface2);border-color:var(--accent);color:var(--accent);}
.sched-center{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;min-height:0;}
.sched-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:rgba(0,0,0,.55);z-index:50;}
.sched-loading-label{font-size:11px;font-family:var(--mono);color:#ccc;letter-spacing:.5px;}
.sched-toolbar{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 88%,var(--accent) 12%),var(--surface));border-bottom:1px solid color-mix(in srgb,var(--border) 55%,var(--accent) 45%);padding:8px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--accent) 15%,transparent);}
.sched-toolbar-title{font-size:12.5px;font-weight:700;color:var(--text);letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex-shrink:1;}
.sched-toolbar-actions{flex-shrink:0;}
/* ===== SCHEDULE VIEWER TOOLBAR — visible + glow, theme-aware ===== */
.sched-toolbar .topbar-btn{
  background:var(--surface2)!important;
  border:1px solid color-mix(in srgb,var(--border) 55%,var(--accent) 45%)!important;
  color:var(--text)!important;
  font-weight:600;
  box-shadow:0 1px 2px rgba(0,0,0,.14);
  transition:all .16s ease;
}
.sched-toolbar .topbar-btn:hover{
  border-color:var(--accent)!important;
  color:var(--accent)!important;
  transform:translateY(-1px);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent),0 0 14px color-mix(in srgb,var(--accent) 42%,transparent);
}
/* The Update + New schedule pair sits right after the title */
.sched-toolbar-primary{display:flex;align-items:center;gap:7px;flex-shrink:0;}
.sched-toolbar-primary .topbar-btn{font-size:11px;padding:6px 13px;}
/* Update Schedule = primary filled, always softly glowing */
.sched-toolbar .sched-primary-btn{
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 90%,#fff 10%),var(--accent))!important;
  border:1px solid color-mix(in srgb,var(--accent) 70%,#fff 30%)!important;
  color:#fff!important;
  font-weight:700;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 38%,transparent),0 0 14px color-mix(in srgb,var(--accent) 48%,transparent);
  animation:schedGlowPulse 3s ease-in-out infinite;
}
.sched-toolbar .sched-primary-btn:hover{
  filter:brightness(1.08);
  color:#fff!important;
  border-color:#fff!important;
  transform:translateY(-1px);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 60%,transparent),0 0 22px color-mix(in srgb,var(--accent) 65%,transparent);
}
/* New Schedule = outlined accent, paired glow (confirm dialog guards the clear) */
.sched-toolbar .sched-new-btn{
  background:color-mix(in srgb,var(--accent) 10%,var(--surface2))!important;
  border:1px solid var(--accent)!important;
  color:var(--accent)!important;
  font-weight:700;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent),0 0 9px color-mix(in srgb,var(--accent) 28%,transparent);
}
.sched-toolbar .sched-new-btn:hover{
  background:var(--accent)!important;
  color:#fff!important;
  border-color:var(--accent)!important;
  transform:translateY(-1px);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent),0 0 18px color-mix(in srgb,var(--accent) 58%,transparent);
}
@keyframes schedGlowPulse{
  0%,100%{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent),0 0 9px color-mix(in srgb,var(--accent) 34%,transparent);}
  50%{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 52%,transparent),0 0 20px color-mix(in srgb,var(--accent) 60%,transparent);}
}
@media (prefers-reduced-motion:reduce){.sched-toolbar .sched-primary-btn{animation:none;}}
/* Excel = green to match its icon; PDF stays red (.cmp-btn-pdf) even under toolbar overrides */
.sched-toolbar .sched-xls-btn{border-color:color-mix(in srgb,#16a34a 45%,var(--border))!important;color:#16a34a!important;}
.sched-toolbar .sched-xls-btn:hover{border-color:#16a34a!important;color:#16a34a!important;box-shadow:0 0 0 1px rgba(22,163,74,.45),0 0 14px rgba(22,163,74,.4);}
.sched-toolbar .cmp-btn-pdf{border-color:color-mix(in srgb,var(--crit) 50%,var(--border))!important;color:var(--crit)!important;}
.sched-toolbar .cmp-btn-pdf:hover{border-color:var(--crit)!important;color:var(--crit)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--crit) 45%,transparent),0 0 14px color-mix(in srgb,var(--crit) 40%,transparent);}
/* ===== VERSION TOOLBAR ===== */
.version-toolbar{background:var(--surface2);border-bottom:1px solid var(--border);padding:4px 12px;display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:nowrap;}
.version-toolbar-left{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;flex:1;overflow:hidden;}
.version-toolbar-label{font-size:10px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;flex-shrink:0;}
.version-select{background:var(--surface)!important;border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-size:12px;font-weight:500;color:var(--text)!important;font-family:var(--font);cursor:pointer;min-width:120px;max-width:200px;outline:none;min-height:28px;transition:border-color .15s,box-shadow .15s;}
.version-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb,0,82,204),.12);}
.version-select option{background:var(--surface)!important;color:var(--text)!important;padding:6px 8px;}
/* Per-theme option text — native selects need explicit values since OS chrome overrides */
body.theme-site .version-select,.theme-site .version-select option{background:#fdfcfa!important;color:#2a2620!important;}
body.theme-slate .version-select,.theme-slate .version-select option{background:#ffffff!important;color:#16202e!important;}
body.theme-blueprint .version-select{background:#111c2d!important;color:#dce6f5!important;}
body.theme-blueprint .version-select option{background:#111c2d!important;color:#dce6f5!important;}
.version-vs{font-size:10px;font-family:var(--mono);color:var(--dim);}
.version-compare-btn{padding:5px 14px;border-radius:4px;font-size:11px;font-weight:600;background:var(--accent);color:#000;border:none;cursor:pointer;}
.version-compare-btn:hover{opacity:.85;}
.version-clear-btn{padding:5px 10px;border-radius:4px;font-size:11px;background:transparent;border:1px solid var(--border);color:var(--muted);cursor:pointer;}
.version-clear-btn:hover{border-color:var(--crit);color:var(--crit);}
.version-upload-btn{padding:5px 10px;border-radius:4px;font-size:11px;background:transparent;border:1px solid var(--border);color:var(--muted);cursor:pointer;font-weight:500;transition:all .15s;}
.version-upload-btn:hover{border-color:var(--accent);color:var(--accent);}
.version-upload-btn-current{border-color:var(--accent)!important;color:var(--accent)!important;font-weight:600;}
.version-upload-btn-current:hover{background:var(--accent)!important;color:#000!important;}
.version-summary{font-size:10px;font-family:var(--mono);color:var(--muted);}
/* ===== VERSION MANAGER PANEL ===== */
.version-manager-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:300;}
.version-manager-panel{position:fixed;top:0;right:0;bottom:0;width:400px;background:var(--surface);border-left:1px solid var(--border);z-index:301;display:flex;flex-direction:column;box-shadow:-8px 0 32px rgba(0,0,0,.3);}
.vmgr-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--surface2);flex-shrink:0;}
.vmgr-title{font-size:14px;font-weight:700;color:var(--text);}
.vmgr-body{flex:1;overflow-y:auto;padding:12px;}
.sched-trace-search-wrap{display:flex;align-items:center;background:var(--input-bg);border:1px solid var(--border);border-radius:5px;padding:0 8px;height:26px;gap:4px;min-width:200px;}
.sched-trace-search-wrap .search-icon{color:var(--muted);font-size:12px;flex-shrink:0;}
.sched-trace-search-wrap .search-input{background:transparent;border:none;outline:none;color:var(--text);font-size:11px;font-family:var(--font);width:100%;padding:0;}
.sched-trace-clear{color:var(--muted);cursor:pointer;font-size:14px;flex-shrink:0;line-height:1;padding:0 2px;}
.sched-trace-clear:hover{color:var(--text);}
.sched-toolbar-search-anchor{position:relative;flex-shrink:0;}
.sched-trace-results{position:absolute;top:calc(100% + 4px);left:0;width:340px;background:var(--surface);border:1px solid var(--border);border-radius:5px;z-index:200;max-height:280px;overflow-y:auto;box-shadow:0 4px 16px rgba(0,0,0,.35);}
.sched-trace-result-item{padding:7px 10px;cursor:pointer;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px;}
.sched-trace-result-item:last-child{border-bottom:none;}
.sched-trace-result-item:hover{background:rgba(74,158,255,.1);}
.sched-trace-result-code{font-size:9px;font-family:var(--mono);color:var(--accent);}
.sched-trace-result-name{font-size:11px;color:var(--text);}
.sched-trace-result-meta{font-size:9px;color:var(--muted);}
.sched-gantt-wrap{flex:1;display:flex;overflow:hidden;min-height:0;}
.sched-gantt-left{width:640px;flex-shrink:0;overflow-y:hidden;overflow-x:hidden;border-right:1px solid var(--border);display:flex;flex-direction:column;}
.sched-gantt-left-hdr{height:36px;background:var(--surface);border-bottom:2px solid var(--border);
  display:grid;grid-template-columns:90px 1fr 60px 70px 95px 95px;
  align-items:center;padding:0 8px;flex-shrink:0;overflow-x:auto;scrollbar-width:none;
  min-width:620px;box-sizing:border-box;}
.sched-gantt-left-hdr::-webkit-scrollbar{display:none;}
.sched-gantt-left-hdr span{font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;}
.sched-gantt-rows{flex:1;overflow-y:auto;overflow-x:auto;}
.sched-gantt-rows::-webkit-scrollbar{width:4px;height:4px;}
.sched-gantt-rows::-webkit-scrollbar-thumb{background:var(--dim);}
.sched-row{min-height:36px;display:grid;grid-template-columns:90px 1fr 60px 70px 95px 95px;
  align-items:center;padding:0 10px;border-bottom:1px solid rgba(var(--border-rgb,160,174,192),.6);
  cursor:pointer;transition:background-color .15s ease,border-left .15s ease;min-width:620px;box-sizing:border-box;border-left:2px solid transparent;}
.sched-row:hover{background:var(--surface2);border-left:2px solid var(--accent);border-radius:0 6px 6px 0;}
.sched-row.selected{background:rgba(0,82,204,.07);outline:1px solid var(--accent);}
.sched-row-code{font-family:var(--mono);font-size:11px;color:var(--muted);min-width:0;overflow:hidden;white-space:nowrap;}
.sched-row-name{font-size:13px;color:var(--text);min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.5;word-break:break-word;}
.sched-row-dur{font-size:11px;font-family:var(--mono);color:var(--muted);text-align:center;border-left:1px solid rgba(255,255,255,.12);padding-left:6px;}
.sched-row-tf{font-size:11px;font-family:var(--mono);text-align:center;border-left:1px solid rgba(255,255,255,.12);padding-left:6px;}
.sched-row-date{font-size:11px;font-family:var(--mono);color:var(--muted);text-align:right;border-left:1px solid rgba(255,255,255,.12);padding-left:6px;white-space:nowrap;}
.sched-row-finish{color:var(--text);}
.sched-row-mile .sched-row-name{font-style:italic;color:var(--accent2);}
.sched-row-mile .sched-row-code{color:var(--accent2);}
/* Light mode column dividers */
body.light-mode .sched-row-tf,body.light-mode .sched-row-dur,body.light-mode .sched-row-date{border-left-color:rgba(0,0,0,.1);}
/* WBS level headers — colors set via inline style in JS (WBS_LEVEL_STYLE) */
.sched-row.sched-wbs-row{min-height:34px;font-size:13px;font-weight:700;letter-spacing:0.3px;
  margin-top:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);border-left:2px solid transparent;}
.sched-row.sched-wbs-row:hover{border-left:2px solid var(--accent);border-radius:0 6px 6px 0;}
.sched-wbs-arrow{font-size:9px;margin-right:6px;flex-shrink:0;}
.sched-wbs-count{font-size:11px;font-family:var(--mono);margin-left:4px;flex-shrink:0;}
.sched-gantt-right{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;}
.sched-bars-wrap{flex:1;overflow-x:auto;overflow-y:hidden;position:relative;min-height:0;}
.sched-bars-wrap::-webkit-scrollbar{width:6px;height:6px;}
.sched-bars-wrap::-webkit-scrollbar-thumb{background:var(--dim);border-radius:3px;}
#schedBarsCanvas{display:block;}
.sched-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);opacity:.6;pointer-events:none;}
.sched-right{width:260px;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;}
.sched-logic-panel{width:320px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease;}
.slp-header{padding:12px 14px 10px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-shrink:0;background:var(--surface2);}
.slp-title-wrap{flex:1;min-width:0;}
.slp-activity-code{font-family:var(--mono);font-size:10px;color:var(--accent);font-weight:600;margin-bottom:3px;}
.slp-activity-name{font-size:13px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:4px;word-break:break-word;}
.slp-activity-meta{font-size:10px;color:var(--muted);font-family:var(--mono);line-height:1.5;}
.slp-close{background:transparent;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px;flex-shrink:0;line-height:1;}
.slp-close:hover{color:var(--crit);}
.slp-dir-row{display:flex;padding:8px 10px;gap:4px;border-bottom:1px solid var(--border);flex-shrink:0;}
.slp-dir-btn{flex:1;padding:5px 4px;font-size:10px;font-family:var(--mono);background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:4px;cursor:pointer;transition:all .12s;white-space:nowrap;}
.slp-dir-btn.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700;}
.slp-stats{display:flex;gap:0;border-bottom:1px solid var(--border);flex-shrink:0;}
.slp-stat{flex:1;padding:8px 10px;text-align:center;border-right:1px solid var(--border);}
.slp-stat:last-child{border-right:none;}
.slp-stat-num{font-size:18px;font-weight:700;font-family:var(--mono);color:var(--text);display:block;}
.slp-stat-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;display:block;margin-top:1px;}
.slp-section-label{padding:8px 14px 4px;font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px;flex-shrink:0;}
.slp-count{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:0 6px;font-size:9px;color:var(--muted);}
.slp-chain{overflow-y:auto;flex:1;padding:4px;min-height:0;}
.slp-chain::-webkit-scrollbar{width:8px;}
.slp-chain::-webkit-scrollbar-track{background:transparent;}
.slp-chain::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.slp-chain::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.slp-item{padding:8px 10px;border-radius:5px;margin-bottom:3px;border:1px solid var(--border);background:var(--surface2);cursor:pointer;transition:all .1s;border-left:4px solid transparent;position:relative;}
.slp-item:hover{background:var(--surface);border-color:var(--accent2);}
.slp-item.crit{border-left-color:var(--crit);}
.slp-item.warn{border-left-color:var(--warn);}
.slp-item.ok{border-left-color:var(--ok);}
.slp-item.ns{border-left-color:var(--accent2);}
.slp-item-top{display:flex;align-items:baseline;gap:6px;margin-bottom:3px;}
.slp-item-code{font-family:var(--mono);font-size:9px;color:var(--muted);flex-shrink:0;min-width:54px;}
.slp-item-name{font-size:11px;font-weight:500;color:var(--text);flex:1;line-height:1.3;word-break:break-word;}
.slp-item-tf{font-family:var(--mono);font-size:10px;font-weight:700;flex-shrink:0;}
.slp-item-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.slp-item-wbs{font-size:9px;color:var(--dim);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.slp-item-dates{font-size:9px;color:var(--muted);font-family:var(--mono);flex-shrink:0;}
.slp-item-rel{position:absolute;top:4px;right:6px;font-size:8px;font-family:var(--mono);color:var(--dim);background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:0 3px;}
.slp-footer{padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0;}
.slp-action-btn{width:100%;padding:9px;border-radius:5px;font-size:11px;font-weight:600;background:var(--accent2);color:#fff;border:none;cursor:pointer;transition:opacity .12s;}
.slp-action-btn:hover{opacity:.85;}
.sched-detail-hdr{padding:9px 12px 7px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;color:var(--text);}
.sched-detail-body{flex:1;overflow-y:auto;padding:10px 12px;}
.sched-detail-body::-webkit-scrollbar{width:8px;}
.sched-detail-body::-webkit-scrollbar-track{background:transparent;}
.sched-detail-body::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.sched-detail-body::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.sched-detail-actions{padding:8px 10px;border-top:1px solid var(--border);display:flex;gap:6px;flex-wrap:wrap;}
.sched-detail-row{display:flex;gap:8px;margin-bottom:6px;font-size:11px;}
.sched-detail-label{color:var(--muted);font-family:var(--mono);font-size:10px;width:70px;flex-shrink:0;}
.sched-detail-val{color:var(--text);}
.sched-detail-section{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:10px 0 4px;border-top:1px solid var(--border);padding-top:8px;}
/* light mode */
body.light-mode .sched-left{background:#fff;border-right-color:#d0d4e0;}
body.light-mode .sched-check-row{color:#1c2033;}
body.light-mode .sched-toolbar{background:#fff;border-bottom-color:#d0d4e0;}
body.light-mode .sched-toolbar-title{color:#1c2033;}
body.light-mode .sched-gantt-left{border-right-color:#d0d4e0;}
body.light-mode .sched-gantt-left-hdr{background:#fff;border-bottom-color:#d0d4e0;}
body.light-mode .sched-row:hover{background:#eef0f5;}
body.light-mode .sched-row-name{color:#1c2033;}
body.light-mode .sched-right{background:#fff;border-left-color:#d0d4e0;}
body.light-mode .sched-logic-panel{background:#fff;border-left-color:#d0d4e0;}
body.light-mode .slp-header{background:#f5f7fa;}
body.light-mode .slp-item{background:#f5f7fa;}
body.light-mode .slp-item:hover{background:#eef0f5;}
body.light-mode .slp-item-rel{background:#fff;}
.sched-row:nth-child(even){background:rgba(0,0,0,.018);}
body.theme-blueprint .sched-row:nth-child(even){background:rgba(220,230,245,.018);}
.sched-gantt-wrap.gantt-hidden .sched-gantt-right{display:none;}
.sched-gantt-wrap.gantt-hidden .sched-gantt-left{flex:1;width:auto!important;border-right:none;}
/* Table zoom & font-size controls */
.sched-tablezoom-group{display:flex;gap:2px;align-items:center;}
.sched-tablezoom-group .topbar-btn{padding:4px 7px;font-size:11px;min-width:0;}
.sched-font-select{font-family:var(--mono);font-size:11px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:4px 6px;cursor:pointer;height:28px;}
body.light-mode .sched-font-select{background:#fff;color:#1c2033;border-color:#c8ccd8;}
body.theme-blueprint .sched-font-select{background:#111c2d;color:#cdd8f0;border-color:#243650;}
/* Font-size classes applied to schedule left panel */
.sched-font-sm .sched-row{min-height:28px;}
.sched-font-sm .sched-row-name{font-size:11px;}
.sched-font-sm .sched-row-code,.sched-font-sm .sched-row-dur,.sched-font-sm .sched-row-tf,.sched-font-sm .sched-row-date{font-size:10px;}
.sched-font-lg .sched-row{min-height:44px;}
.sched-font-lg .sched-row-name{font-size:15px;}
.sched-font-lg .sched-row-code,.sched-font-lg .sched-row-dur,.sched-font-lg .sched-row-tf,.sched-font-lg .sched-row-date{font-size:12px;}
.la-back-btn{padding:4px 10px;border-radius:4px;font-size:11px;font-family:var(--font);border:1px solid rgba(74,158,255,.4);background:rgba(74,158,255,.12);color:var(--accent);cursor:pointer;margin-right:8px;flex-shrink:0;transition:background .15s;}
.la-back-btn:hover{background:rgba(74,158,255,.25);}
.la-back-btn.hidden{display:none;}
.sched-empty{padding:48px 24px;text-align:center;color:var(--muted);font-size:12px;line-height:1.7;}
.sched-col-hdr-cell{font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-align:center;}
.sched-row-extra{font-size:9px;font-family:var(--mono);color:var(--muted);flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sched-row-cal{width:72px;text-align:right;}
.sched-row-cstr{width:100px;text-align:right;}
.sched-row-lag{width:50px;text-align:center;color:var(--accent2);border-left:1px solid rgba(255,255,255,.12);padding-left:4px;}
body.light-mode .sched-row-lag{border-left-color:rgba(0,0,0,.1);}
.sched-col-menu-label{font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;padding:3px 8px 6px;margin-bottom:2px;border-bottom:1px solid var(--border);}
.sched-col-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:100;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:6px;box-shadow:0 4px 16px rgba(0,0,0,.4);min-width:150px;}
.sched-col-menu.hidden{display:none;}
.sched-col-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:4px;font-size:11px;color:var(--text);cursor:pointer;transition:background .1s;}
.sched-col-row:hover{background:var(--surface);}
.sched-col-row input{accent-color:var(--accent);cursor:pointer;}
#projPillName:focus{outline:1px solid var(--accent);border-radius:2px;padding:0 2px;}
.proj-pill{cursor:pointer;}
body.light-mode .sched-detail-val{color:#1c2033;}


/* Note header only shows on group hover, not while editing */
.annot-note-group { cursor: default; }
.annot-textbox {
  cursor: text;
  border-radius: 0 0 6px 6px; /* flat top since header is above */
}


/* ===== DASHBOARD ===== */
.dash-wrap{flex:1;overflow-y:auto;padding:20px 24px;background:var(--bg);display:flex;flex-direction:column;gap:16px;}
.dash-wrap::-webkit-scrollbar{width:4px;}
.dash-wrap::-webkit-scrollbar-thumb{background:var(--dim);}

.dash-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);text-align:center;padding:32px;}
.dash-empty-icon{font-size:48px;opacity:.25;}
.dash-empty-title{font-size:18px;font-weight:600;color:var(--text);}
.dash-empty-sub{font-size:12px;color:var(--muted);max-width:380px;line-height:1.6;}

/* Dashboard upload zone */
.dash-upload-zone{
  border:2px dashed var(--border);border-radius:12px;
  padding:28px 48px;cursor:pointer;transition:all .2s;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  min-width:300px;max-width:420px;
}
.dash-upload-zone:hover,.dash-dragover{
  border-color:var(--accent);background:rgba(var(--accent-rgb,0,82,204),.05);
}
.dash-upload-zone.dash-uploading{pointer-events:none;opacity:.7;}
.dash-upload-content{display:flex;flex-direction:column;align-items:center;gap:4px;}
.dash-upload-spinner{display:flex;align-items:center;gap:10px;}

/* Theme overrides for upload zone */
body.theme-site .dash-upload-zone:hover,body.theme-site .dash-dragover{
  border-color:var(--accent);background:rgba(217,119,6,.05);
}
body.theme-blueprint .dash-upload-zone{border-color:var(--border);}
body.theme-blueprint .dash-upload-zone:hover,body.theme-blueprint .dash-dragover{
  border-color:var(--accent);background:rgba(45,199,232,.05);
}

.dash-content{display:flex;flex-direction:column;gap:16px;}
.dash-header-actions{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-shrink:0;padding:2px 0 4px;
}
.dash-last-updated{
  font-size:11px;font-family:var(--mono);color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.dash-row{display:flex;gap:16px;align-items:stretch;}
.dash-kpi-row{flex-wrap:nowrap;}
.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;min-width:0;}
.dash-sixty{flex:6;}
.dash-forty{flex:4;}

/* KPI cards */
.kpi-card{flex:1;position:relative;overflow:hidden;padding-top:19px;}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--kpi-color,var(--border));border-radius:8px 8px 0 0;}
.kpi-label{font-size:12px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;}
.kpi-value{font-size:38px;font-weight:700;line-height:1;margin-bottom:6px;font-family:var(--font);}
.kpi-sub{font-size:11px;color:var(--muted);line-height:1.4;word-break:break-word;}

/* Milestone panel */
.dash-section-title{font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:12px;}
.mile-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}
.mile-item:last-child{border-bottom:none;}
.mile-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.mile-body{flex:1;min-width:0;}
.mile-name{font-size:11px;color:var(--text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mile-meta{display:flex;justify-content:space-between;align-items:center;margin-top:3px;}
.mile-date{font-size:9px;font-family:var(--mono);color:var(--muted);}
.mile-tf{font-size:9px;font-family:var(--mono);}
.mile-progress{height:3px;background:var(--surface2);border-radius:2px;margin-top:4px;overflow:hidden;}
.mile-progress-fill{height:100%;border-radius:2px;}
.mile-days{font-size:24px;font-weight:700;flex-shrink:0;min-width:48px;text-align:right;line-height:1;}
.mile-days-label{font-size:9px;font-weight:400;color:var(--muted);text-align:center;margin-top:2px;}

/* Health ring */
.health-ring-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;}
.health-factors{width:100%;}
.health-factor-row{display:flex;align-items:center;gap:8px;margin-bottom:9px;}
.health-factor-name{flex:1;color:var(--muted);font-size:10px;white-space:nowrap;}
.health-factor-bar-wrap{width:80px;height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;flex-shrink:0;}
.health-factor-bar-fill{height:100%;border-radius:3px;}
.health-factor-score{font-size:10px;font-family:var(--mono);color:var(--text);min-width:36px;text-align:right;flex-shrink:0;}

/* Look-ahead table */
.la-tbl{width:100%;border-collapse:collapse;font-size:11px;}
.la-tbl th{font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;padding:4px 8px 6px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;}
.la-tbl td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text);vertical-align:middle;}
.la-tbl tr:last-child td{border-bottom:none;}
.la-tbl tr:hover td{background:rgba(255,255,255,.02);}

/* Risk list */
.risk-item{
  display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin-bottom:8px;
  background:var(--surface2);border-radius:6px;border-left:4px solid var(--border);
  transition:background .15s,box-shadow .15s;
}
.risk-item:last-child{margin-bottom:0;}
.risk-item:hover{background:color-mix(in srgb, var(--accent2) 6%, var(--surface2));box-shadow:0 1px 6px rgba(0,0,0,.08);}
.risk-tf{font-size:22px;font-weight:700;font-family:var(--mono);flex-shrink:0;min-width:54px;line-height:1;text-align:right;}
.risk-info{flex:1;min-width:0;}
.risk-code{font-size:9px;font-family:var(--mono);color:var(--muted);margin-bottom:2px;}
.risk-name{font-size:11px;color:var(--text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.risk-wbs{font-size:9px;color:var(--dim);margin-top:2px;font-family:var(--mono);}

/* Phase 3 — expanded dashboard */
.dash-fifty{flex:5;}
.dash-card{transition:box-shadow .2s;}
.dash-card:hover{box-shadow:0 0 0 1px rgba(74,158,255,.25),0 4px 20px rgba(74,158,255,.07);}

/* Turnover package cards */
.turn-cards-row{display:flex;gap:12px;overflow-x:auto;padding-right:16px;padding-bottom:4px;}
.turn-cards-row::-webkit-scrollbar{height:3px;}
.turn-cards-row::-webkit-scrollbar-thumb{background:var(--dim);}
.turn-card{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:12px;min-width:156px;max-width:196px;flex-shrink:0;display:flex;flex-direction:column;gap:6px;cursor:default;}
.turn-name{font-size:11px;font-weight:600;color:var(--text);line-height:1.3;word-break:break-word;}
.turn-days{font-size:26px;font-weight:700;line-height:1;}
.turn-progress{height:4px;background:var(--dim);border-radius:2px;overflow:hidden;}
.turn-prog-fill{height:100%;border-radius:2px;}
.turn-counts{font-size:9px;font-family:var(--mono);color:var(--muted);}
.turn-status{font-size:9px;font-family:var(--mono);padding:2px 6px;border-radius:3px;display:inline-block;}

/* Attention required */
.attn-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);}
.attn-item:last-child{border-bottom:none;}
.attn-icon{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:3px;}
.attn-body{flex:1;min-width:0;}
.attn-text{font-size:11px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.attn-sub{font-size:9px;font-family:var(--mono);color:var(--muted);margin-top:2px;}

/* Float health bar chart */
.float-chart{display:flex;gap:6px;align-items:flex-end;height:80px;margin-top:8px;}
.float-bar-col{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;}
.float-bar-track{flex:1;width:100%;background:var(--surface2);border-radius:3px;position:relative;overflow:hidden;min-height:4px;}
.float-bar-fill{position:absolute;bottom:0;left:0;right:0;border-radius:3px;}
.float-bar-lbl{font-size:8px;font-family:var(--mono);color:var(--muted);white-space:nowrap;text-align:center;}
.float-bar-count{font-size:9px;font-family:var(--mono);color:var(--text);}

/* Look-ahead tabs */
.dash-tabs{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap;}
.dash-tab{font-size:10px;font-family:var(--mono);padding:4px 10px;border-radius:4px;cursor:pointer;color:var(--muted);background:transparent;border:1px solid var(--border);transition:all .15s;line-height:1.4;}
.dash-tab:hover{color:var(--text);border-color:var(--accent2);}
.dash-tab.active{background:var(--accent2);color:#000;border-color:var(--accent2);}
.dash-badge{font-size:8px;background:rgba(255,255,255,.08);border-radius:3px;padding:1px 4px;margin-left:4px;vertical-align:middle;}

/* WBS progress breakdown */
.wbs-prog-list{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.wbs-prog-row{display:grid;grid-template-columns:140px 1fr 38px;gap:8px;align-items:center;}
.wbs-prog-name{font-size:10px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wbs-prog-bar-wrap{height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;display:flex;}
.wbs-prog-bar{height:100%;}
.wbs-prog-pct{font-size:9px;font-family:var(--mono);color:var(--muted);text-align:right;}
.wbs-prog-sub{font-size:8px;font-family:var(--mono);color:var(--dim);grid-column:2;margin-top:-6px;}

/* Light mode overrides */
body.light-mode .dash-wrap{background:transparent;}
body.light-mode .dash-card{background-color:var(--surface);border-color:var(--border);}
body.light-mode .la-tbl td{color:var(--text);}
body.light-mode .la-tbl tr:hover td{background:rgba(0,0,0,.02);}
body.light-mode .mile-progress{background:var(--surface2);}
body.light-mode .health-factor-bar-wrap{background:var(--surface2);}

/* ══════════════════════════════════════════════════════════════════
   THEME SELECTOR — High-Fidelity Mini App Preview Cards
   ══════════════════════════════════════════════════════════════════ */
.theme-grid{display:flex;flex-direction:row;gap:20px;margin-top:8px;flex-wrap:wrap;}
.theme-card{border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;
  transition:transform .18s,box-shadow .18s,border-color .18s;background:var(--surface);
  box-shadow:0 1px 4px rgba(0,0,0,.1);width:300px;flex-shrink:0;}
.theme-card:hover{transform:scale(1.03);box-shadow:0 8px 24px rgba(0,0,0,.15);}
.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent),0 4px 16px rgba(0,0,0,.1);}

/* Theme badges */
.theme-badge{display:inline-block;font-size:9px;font-family:var(--mono);font-weight:700;
  letter-spacing:.5px;padding:2px 6px;border-radius:4px;vertical-align:middle;margin-left:5px;}
.theme-badge-default{background:rgba(217,119,6,.15);color:#d97706;border:1px solid rgba(217,119,6,.3);}
.theme-badge-night{background:rgba(45,199,232,.12);color:#2dc7e8;border:1px solid rgba(45,199,232,.3);}

/* Mini preview structure */
.tp-wrap{height:160px;display:flex;flex-direction:column;overflow:hidden;border-radius:8px 8px 0 0;}
.tp-topbar{height:26px;display:flex;align-items:center;padding:0 8px;gap:5px;flex-shrink:0;}
.tp-logo{font-size:9px;font-weight:700;letter-spacing:-.3px;}
.tp-tabstrip{display:flex;gap:2px;margin-left:8px;align-items:flex-end;}
.tp-tabnub{width:22px;height:8px;border-radius:2px 2px 0 0;opacity:.28;}
.tp-tabnub.hi{opacity:1;}
.tp-spacer{flex:1;}
.tp-body{flex:1;display:flex;overflow:hidden;}
.tp-sidebar{width:38px;flex-shrink:0;padding:5px 4px;display:flex;flex-direction:column;gap:4px;border-right:1px solid rgba(0,0,0,.06);}
.tp-sitem{height:7px;border-radius:2px;background:rgba(128,128,128,.14);}
.tp-sitem.hi{background:rgba(128,128,128,.35);}
.tp-main{flex:1;padding:5px 5px 4px;display:flex;flex-direction:column;gap:4px;}
.tp-kpis{display:flex;gap:3px;flex-shrink:0;}
.tp-kpi{flex:1;height:22px;border-radius:3px;position:relative;}
.tp-kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:3px 3px 0 0;}
.tp-gantt{flex:1;border-radius:3px;padding:4px 5px;display:flex;flex-direction:column;justify-content:center;gap:3px;}
.tp-gbar{height:5px;border-radius:2px;}
/* Card label area */
.theme-card-footer{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-top:1px solid var(--border);}
.theme-card-labels{display:flex;flex-direction:column;gap:3px;}
.theme-card-name{font-size:14px;font-weight:700;color:var(--text);}
.theme-card-tag{font-size:12px;color:var(--muted);line-height:1.4;}
.theme-active-dot{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#fff;flex-shrink:0;opacity:0;transition:opacity .2s;}
.theme-card.active .theme-active-dot{opacity:1;}
/* hide legacy elements (.theme-active-badge removed — the 9-theme cards use it live) */
.theme-toggle-row,.theme-option,.theme-preview,.dark-preview,.light-preview,.theme-swatch,.theme-sw-bar,.theme-sw-body,.theme-sw-accent{display:none!important;}

/* ══════════════════════════════════════════════════════════════════
   THEME CARD — per-card active border colors (theme's own accent)
   ══════════════════════════════════════════════════════════════════ */
.theme-card[data-theme="slate"].active{border-color:#0a5dc2;box-shadow:0 0 0 3px #0a5dc2,0 4px 16px rgba(10,93,194,.15);}
.theme-card[data-theme="site"].active{border-color:#d97706;box-shadow:0 0 0 3px #d97706,0 4px 16px rgba(217,119,6,.15);}
.theme-card[data-theme="blueprint"].active{border-color:#2dc7e8;box-shadow:0 0 0 3px #2dc7e8,0 4px 16px rgba(45,199,232,.2);}

/* ══════════════════════════════════════════════════════════════════
   THEME 1 — SLATE PRO
   Light surfaces, dark navy topbar/statusbar, cobalt blue accent.
   Inspired by modern SaaS — clean, boardroom-ready.
   Uses body.light-mode baseline for sidebar/panel overrides.
   ══════════════════════════════════════════════════════════════════ */
body.theme-slate{
  --bg:#f1f3f6;--surface:#ffffff;--surface2:#f6f8fa;--border:#dfe3ea;
  --text:#16202e;--muted:#57657a;--dim:#aab4c4;
  --accent:#0a5dc2;--accent2:#0a5dc2;--crit:#d92638;--warn:#e08700;--ok:#0e8a4f;
  --font:'Barlow',sans-serif;--mono:'IBM Plex Mono',monospace;
}
body.theme-slate .topbar{background:#16202e;border-bottom:1px solid #1e2d42;box-shadow:0 2px 8px rgba(0,0,0,.2);}
body.theme-slate .logo{color:#0a5dc2;}
body.theme-slate .logo span{color:#fff;}
body.theme-slate .proj-pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:#8aabcf;}
body.theme-slate .proj-pill strong{color:#fff;}
body.theme-slate .topbar-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff;}
body.theme-slate .topbar-btn:hover{background:rgba(255,255,255,.15);border-color:#0a5dc2;}
body.theme-slate .topbar-btn.primary{background:#0a5dc2;border-color:#0a5dc2;color:#fff;}
body.theme-slate .topbar-btn.primary:hover{filter:brightness(1.15);}
body.theme-slate .mode-btn{border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.55);}
body.theme-slate .mode-btn.active{background:rgba(10,93,194,.25);border-color:#0a5dc2;color:#80aaee;}
body.theme-slate .tool-divider{background:rgba(255,255,255,.12);}
body.theme-slate .ai-tag{background:rgba(10,93,194,.15);border-color:rgba(10,93,194,.35);color:#5588ee;}
body.theme-slate .app-tabs{background:#fff;border-bottom:2px solid #dfe3ea;}
body.theme-slate .app-tab{color:#57657a;}
body.theme-slate .app-tab:hover{color:#16202e;}
body.theme-slate .app-tab.active{color:#0a5dc2;border-bottom-color:#0a5dc2;font-weight:600;}
body.theme-slate .statusbar{background:#16202e;border-top-color:#1e2d42;}
body.theme-slate .sb-label{color:#4d6880;}
body.theme-slate .sb-val{color:#b8d0ee;}
body.theme-slate .center{background:#d8dce6;}
body.theme-slate .dash-card{box-shadow:0 1px 5px rgba(22,32,46,.08);}
body.theme-slate .dash-card:hover{box-shadow:0 0 0 1px rgba(10,93,194,.2),0 4px 16px rgba(10,93,194,.1);}
body.theme-slate .dash-tab.active{background:#0a5dc2;color:#fff;}
body.theme-slate .sched-row:hover{background:#e6eef8;border-left-color:#0a5dc2;}
body.theme-slate .sched-row.selected{background:rgba(10,93,194,.07);outline:1px solid rgba(10,93,194,.3);}
body.theme-slate .sched-wbs-btn.active{border-color:#0a5dc2;color:#0a5dc2;}
body.theme-slate .sched-today-line{background:#0a5dc2;}
body.theme-slate .settings-nav-item.active{background:#e6eef8;border-color:#0a5dc2;color:#0a5dc2;}
body.theme-slate .flt.active{background:#e6eef8;border-color:#0a5dc2;color:#0a5dc2;}
body.theme-slate .la-sub-tab.active{background:#e6eef8;border-color:#0a5dc2;color:#0a5dc2;}
body.theme-slate #logicSvg,body.theme-slate .la-svg-viewport{background:#f1f3f6;}
body.theme-slate .node-body.status-notstart{fill:#dce8f8;stroke:#0a5dc2;stroke-width:1.5;}
body.theme-slate .node-body.status-active{fill:#fef3c7;stroke:#e08700;stroke-width:2;}
body.theme-slate .node-body.status-complete{fill:#d1fae5;stroke:#0e8a4f;stroke-width:1.5;}
body.theme-slate .node-body.critical{fill:#fee2e2;stroke:#d92638;stroke-width:2.5;}
body.theme-slate .node-name{fill:#16202e;}
body.theme-slate .node-code{fill:#57657a;}
body.theme-slate .node-dates{fill:#57657a;}

/* ══════════════════════════════════════════════════════════════════
   THEME 2 — SITE COMMANDER
   Warm off-white surfaces, charcoal topbar, amber accent, forest green accent2.
   Industrial feel for site offices and field tablets.
   Uses body.light-mode baseline; theme rules override where needed.
   ══════════════════════════════════════════════════════════════════ */
body.theme-site{
  --bg:#f6f4f0;--surface:#fdfcfa;--surface2:#f0ede7;--border:#ddd8cf;
  --text:#2a2620;--muted:#6b6457;--dim:#b3aa9b;
  --accent:#d97706;--accent2:#1d6f42;--crit:#c81e1e;--warn:#d97706;--ok:#1d6f42;
  --font:'Barlow',sans-serif;--mono:'IBM Plex Mono',monospace;
}
body.theme-site .topbar{background:#2a2620;border-bottom:1px solid #3a3530;box-shadow:0 2px 8px rgba(0,0,0,.2);}
body.theme-site .logo{color:#d97706;}
body.theme-site .logo span{color:#fff;}
body.theme-site .proj-pill{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1);color:#9a8f7f;}
body.theme-site .proj-pill strong{color:#fff;}
body.theme-site .topbar-btn{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1);color:#fff;}
body.theme-site .topbar-btn:hover{background:rgba(255,255,255,.14);border-color:#d97706;}
body.theme-site .topbar-btn.primary{background:#d97706;border-color:#d97706;color:#fff;}
body.theme-site .topbar-btn.primary:hover{filter:brightness(1.1);}
body.theme-site .mode-btn{border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.5);}
body.theme-site .mode-btn.active{background:rgba(217,119,6,.25);border-color:#d97706;color:#fbbf24;}
body.theme-site .tool-divider{background:rgba(255,255,255,.1);}
body.theme-site .ai-tag{background:rgba(217,119,6,.15);border-color:rgba(217,119,6,.35);color:#d97706;}
body.theme-site .app-tabs{background:#fdfcfa;border-bottom:2px solid #ddd8cf;}
body.theme-site .app-tab{color:#6b6457;}
body.theme-site .app-tab:hover{color:#2a2620;}
body.theme-site .app-tab.active{color:#d97706;border-bottom-color:#d97706;font-weight:600;}
body.theme-site .statusbar{background:#2a2620;border-top-color:#3a3530;}
body.theme-site .sb-label{color:#7a6c58;}
body.theme-site .sb-val{color:#d4c4aa;}
/* Warm surface overrides on top of light-mode */
body.theme-site .sidebar{background:#fdfcfa;border-right-color:#ddd8cf;}
body.theme-site .center{background:#e8e4de;}
body.theme-site .viewer-toolbar{background:#fdfcfa;border-bottom-color:#ddd8cf;}
body.theme-site .panel-right{background:#fdfcfa;border-left-color:#ddd8cf;}
body.theme-site .act-card{background:#f0ede7;border-color:#ddd8cf;}
body.theme-site .act-card:hover{background:#fdfcfa;border-left-color:#d97706;}
body.theme-site .act-card.selected{background:#fef3dc;border-color:#d97706!important;}
body.theme-site .search-input{background:#f0ede7;border-color:#ddd8cf;color:#2a2620;}
body.theme-site .detail-panel{background:#fdfcfa;border-top-color:#ddd8cf;}
body.theme-site .zone-panel{background:#fdfcfa;border-top-color:#ddd8cf;}
body.theme-site .la-left{background:#fdfcfa;border-right-color:#ddd8cf;}
body.theme-site .la-search{background:#f0ede7;border-color:#ddd8cf;color:#2a2620;}
body.theme-site .la-act-item:hover{background:#f0ede7;}
body.theme-site .la-act-item.active{background:#f0ede7;border-color:#d97706;}
body.theme-site .settings-sidebar{background:#fdfcfa;border-right-color:#ddd8cf;}
body.theme-site .tool-pill{background:#f0ede7;}
body.theme-site .tool-pill.active{background:rgba(217,119,6,.08);border-color:#d97706;}
body.theme-site .pinned-tools-bar{background:#fdfcfa;border-bottom-color:#ddd8cf;}
body.theme-site .pinned-tool-btn{background:#f0ede7;border-color:#ddd8cf;color:#2a2620;}
body.theme-site .dash-card{box-shadow:0 1px 4px rgba(42,38,32,.06);}
body.theme-site .dash-card:hover{box-shadow:0 0 0 1px rgba(217,119,6,.2),0 4px 12px rgba(217,119,6,.08);}
body.theme-site .kpi-card{padding-left:16px;}
body.theme-site .kpi-card::before{top:0;bottom:0;left:0;right:auto;height:auto;width:4px;border-radius:8px 0 0 8px;}
body.theme-site .dash-tab.active{background:#d97706;color:#fff;}
body.theme-site .dash-tab:hover{border-color:#d97706;}
body.theme-site .sched-row:hover{background:#ede9e2;border-left-color:#d97706;}
body.theme-site .sched-row.selected{background:rgba(217,119,6,.07);outline:1px solid rgba(217,119,6,.3);}
body.theme-site .sched-wbs-btn.active{border-color:#d97706;color:#d97706;}
body.theme-site .sched-today-line{background:#d97706;}
body.theme-site .settings-nav-item.active{background:#fef3dc;border-color:#d97706;color:#a85600;}
body.theme-site .density-btn.active{background:#d97706;border-color:#d97706;color:#fff;}
body.theme-site .flt.active{background:#fef3dc;border-color:#d97706;color:#a85600;}
body.theme-site .la-sub-tab.active{background:#fef3dc;border-color:#d97706;color:#a85600;}
body.theme-site .wbs-row.active{background:#fef3dc;border-color:#d97706;}
body.theme-site #logicSvg,body.theme-site .la-svg-viewport{background:#f0ede7;}
body.theme-site .node-body.status-notstart{fill:#fdfcfa;stroke:#d97706;stroke-width:1.5;}
body.theme-site .node-body.status-active{fill:#fef8ee;stroke:#d97706;stroke-width:2;}
body.theme-site .node-body.status-complete{fill:#f0f9f0;stroke:#1d6f42;stroke-width:1.5;}
body.theme-site .node-body.critical{fill:#fff0f0;stroke:#c81e1e;stroke-width:2.5;}
body.theme-site .node-name{fill:#2a2620;}
body.theme-site .node-code{fill:#6b6457;}
body.theme-site .node-dates{fill:#6b6457;}

/* ══════════════════════════════════════════════════════════════════
   THEME 3 — BLUEPRINT
   Deep dark navy, cyan accent. Premium dark — like a technical drawing.
   No light-mode class. Dark base CSS applies directly.
   ══════════════════════════════════════════════════════════════════ */
body.theme-blueprint{
  --bg:#0a121f;--surface:#111c2d;--surface2:#16243a;--border:#243650;
  --text:#dce6f5;--muted:#7d92b3;--dim:#3a4d6b;
  --accent:#2dc7e8;--accent2:#5eb3f5;--crit:#ff5470;--warn:#ffb054;--ok:#2de8a0;
  --font:'Barlow',sans-serif;--mono:'IBM Plex Mono',monospace;
}
body.theme-blueprint .topbar{background:#0a121f;border-bottom:1px solid #243650;box-shadow:none;}
body.theme-blueprint .logo{color:#2dc7e8;}
body.theme-blueprint .logo span{color:#dce6f5;}
body.theme-blueprint .proj-pill{background:rgba(45,199,232,.08);border-color:rgba(45,199,232,.2);color:#7d92b3;}
body.theme-blueprint .proj-pill strong{color:#dce6f5;}
body.theme-blueprint .topbar-btn{background:rgba(45,199,232,.08);border-color:rgba(45,199,232,.2);color:#dce6f5;}
body.theme-blueprint .topbar-btn:hover{background:rgba(45,199,232,.15);border-color:#2dc7e8;}
body.theme-blueprint .topbar-btn.primary{background:#2dc7e8;border-color:#2dc7e8;color:#0a121f;font-weight:700;}
body.theme-blueprint .topbar-btn.primary:hover{filter:brightness(1.1);}
body.theme-blueprint .mode-btn{border-color:#243650;color:#7d92b3;}
body.theme-blueprint .mode-btn:hover{color:#dce6f5;}
body.theme-blueprint .mode-btn.active{background:rgba(45,199,232,.15);border-color:#2dc7e8;color:#2dc7e8;}
body.theme-blueprint .tool-divider{background:#243650;}
body.theme-blueprint .ai-tag{background:rgba(45,199,232,.1);border-color:rgba(45,199,232,.3);color:#2dc7e8;}
body.theme-blueprint .app-tabs{background:#111c2d;border-bottom:2px solid #243650;}
body.theme-blueprint .app-tab{color:#7d92b3;}
body.theme-blueprint .app-tab:hover{color:#dce6f5;}
body.theme-blueprint .app-tab.active{color:#2dc7e8;border-bottom-color:#2dc7e8;font-weight:600;}
body.theme-blueprint .statusbar{background:#0a121f;border-top-color:#243650;}
body.theme-blueprint .sb-label{color:#3a4d6b;}
body.theme-blueprint .sb-val{color:#7d92b3;}
body.theme-blueprint .sidebar{background:#111c2d;border-right-color:#243650;}
body.theme-blueprint .sidebar-hdr{border-bottom-color:#243650;color:#7d92b3;}
body.theme-blueprint .search-input{background:#16243a;border-color:#243650;color:#dce6f5;}
body.theme-blueprint .search-input::placeholder{color:#3a4d6b;}
body.theme-blueprint .drw-item:hover{background:#16243a;}
body.theme-blueprint .drw-item.active{background:#16243a;border-color:#2dc7e8;}
body.theme-blueprint .center{background:#060c16;}
body.theme-blueprint .viewer-toolbar{background:#111c2d;border-bottom-color:#243650;}
body.theme-blueprint .zoom-btn{background:#16243a;border-color:#243650;color:#dce6f5;}
body.theme-blueprint .zoom-btn:hover{border-color:#2dc7e8;color:#2dc7e8;}
body.theme-blueprint .panel-right{background:#111c2d;border-left-color:#243650;}
body.theme-blueprint .panel-hdr{border-bottom-color:#243650;color:#7d92b3;}
body.theme-blueprint .filter-bar{border-bottom-color:#243650;}
body.theme-blueprint .flt{color:#7d92b3;}
body.theme-blueprint .flt.active{background:#16243a;border-color:rgba(45,199,232,.35);color:#2dc7e8;}
body.theme-blueprint .act-card{background:#16243a;border-color:#243650;}
body.theme-blueprint .act-card:hover{box-shadow:0 0 0 1px rgba(45,199,232,.2);border-left-color:#2dc7e8;}
body.theme-blueprint .act-card.selected{background:#0e2040;border-color:#2dc7e8!important;}
body.theme-blueprint .detail-panel{background:#111c2d;border-top-color:#243650;}
body.theme-blueprint .detail-hdr{border-bottom-color:#243650;color:#2dc7e8;}
body.theme-blueprint .zone-panel{background:#111c2d;border-top-color:#243650;}
body.theme-blueprint .zone-hdr{border-bottom-color:#243650;color:#ffb054;}
body.theme-blueprint .zone-item{background:#16243a;border-color:#243650;}
body.theme-blueprint .zone-item:hover{border-color:#ffb054;}
body.theme-blueprint .zone-item.active{border-color:#2dc7e8;}
body.theme-blueprint .la-wrap{background:#0a121f;}
body.theme-blueprint .la-left{background:#111c2d;border-right-color:#243650;}
body.theme-blueprint .la-hdr{border-bottom-color:#243650;color:#7d92b3;}
body.theme-blueprint .la-search{background:#16243a;border-color:#243650;color:#dce6f5;}
body.theme-blueprint .la-search::placeholder{color:#3a4d6b;}
body.theme-blueprint .la-dir-btns{border-bottom-color:#243650;}
body.theme-blueprint .la-dir-btn{border-color:#243650;color:#7d92b3;}
body.theme-blueprint .la-dir-btn:hover{color:#dce6f5;}
body.theme-blueprint .la-dir-btn.fwd.active{border-color:#2de8a0;color:#2de8a0;}
body.theme-blueprint .la-dir-btn.bwd.active{border-color:#5eb3f5;color:#5eb3f5;}
body.theme-blueprint .la-dir-btn.both.active{border-color:#2dc7e8;color:#2dc7e8;}
body.theme-blueprint .la-act-item:hover{background:#16243a;}
body.theme-blueprint .la-act-item.active{background:#16243a;border-color:#2dc7e8;}
body.theme-blueprint .la-act-name{color:#dce6f5;}
body.theme-blueprint .la-act-meta{color:#7d92b3;}
body.theme-blueprint .la-toolbar{background:#111c2d;border-bottom-color:#243650;}
body.theme-blueprint .la-toolbar-title{color:#dce6f5;}
body.theme-blueprint .la-svg-viewport{background:radial-gradient(circle,rgba(45,199,232,.05) 1px,transparent 1px) 0 0/24px 24px,#0a121f;}
body.theme-blueprint #logicSvg{background:transparent;}
body.theme-blueprint .la-sub-tabs{border-bottom-color:#243650;}
body.theme-blueprint .la-sub-tab{color:#7d92b3;}
body.theme-blueprint .la-sub-tab.active{background:#16243a;border-color:#2dc7e8;color:#2dc7e8;}
body.theme-blueprint .node-body.status-notstart{fill:#111c2d;stroke:#2dc7e8;stroke-width:1.5;}
body.theme-blueprint .node-body.status-active{fill:#1a1e08;stroke:#ffb054;stroke-width:2;}
body.theme-blueprint .node-body.status-complete{fill:#041810;stroke:#2de8a0;stroke-width:1.5;}
body.theme-blueprint .node-body.critical{fill:#1a0410;stroke:#ff5470;stroke-width:2.5;}
body.theme-blueprint .node-body.selected{stroke:#2dc7e8;stroke-width:3;}
body.theme-blueprint .node-name{fill:#dce6f5;}
body.theme-blueprint .node-code{fill:#7d92b3;}
body.theme-blueprint .node-dates{fill:#7d92b3;}
body.theme-blueprint .dash-wrap{background:transparent;}
body.theme-blueprint .dash-card{background-color:#111c2d;border-color:#243650;}
body.theme-blueprint .dash-card:hover{box-shadow:0 0 0 1px rgba(45,199,232,.15),0 4px 20px rgba(45,199,232,.06);}
body.theme-blueprint .kpi-value{color:#2dc7e8;}
body.theme-blueprint .dash-tab{border-color:#243650;color:#7d92b3;}
body.theme-blueprint .dash-tab:hover{border-color:#2dc7e8;color:#dce6f5;}
body.theme-blueprint .dash-tab.active{background:#2dc7e8;color:#0a121f;border-color:#2dc7e8;}
body.theme-blueprint .la-tbl th{border-bottom-color:#243650;}
body.theme-blueprint .la-tbl td{border-bottom-color:rgba(220,230,245,.03);}
body.theme-blueprint .la-tbl tr:hover td{background:rgba(45,199,232,.04);}
body.theme-blueprint .sched-wrap{background:#0a121f;}
body.theme-blueprint .sched-left{background:#111c2d;border-right-color:#243650;}
body.theme-blueprint .sched-toolbar{background:#111c2d;border-bottom-color:#243650;}
body.theme-blueprint .sched-toolbar-title{color:#dce6f5;}
body.theme-blueprint .sched-gantt-left-hdr{background:#111c2d;border-bottom-color:#243650;}
body.theme-blueprint .sched-row:hover{background:#16243a;border-left-color:#2dc7e8;}
body.theme-blueprint .sched-row.selected{background:rgba(45,199,232,.08);outline:1px solid rgba(45,199,232,.35);}
body.theme-blueprint .sched-right{background:#111c2d;border-left-color:#243650;}
body.theme-blueprint .sched-logic-panel{background:#111c2d;border-left-color:#243650;}
body.theme-blueprint .slp-header{background:#0a1828;}
body.theme-blueprint .slp-item{background:#0a1828;}
body.theme-blueprint .slp-item:hover{background:#101e30;}
body.theme-blueprint .slp-item-rel{background:#111c2d;}
body.theme-blueprint .sched-detail-hdr{border-bottom-color:#243650;}
body.theme-blueprint .timescale-header{background:#111c2d;border-bottom-color:#243650;}
body.theme-blueprint .sched-today-line{background:#2dc7e8;}
body.theme-blueprint .today-line{background:#2dc7e8;}
body.theme-blueprint .today-line::after{color:#2dc7e8;}
body.theme-blueprint .settings-wrap{background:#0a121f;}
body.theme-blueprint .settings-sidebar{background:#111c2d;border-right-color:#243650;}
body.theme-blueprint .settings-nav-item{color:#7d92b3;}
body.theme-blueprint .settings-nav-item:hover{background:#16243a;color:#dce6f5;}
body.theme-blueprint .settings-nav-item.active{background:#16243a;border-color:#2dc7e8;color:#2dc7e8;}
body.theme-blueprint .settings-content{background:#0a121f;}
body.theme-blueprint .settings-section-title{color:#dce6f5;border-bottom-color:#243650;}
body.theme-blueprint .setting-label{color:#dce6f5;}
body.theme-blueprint .setting-desc{color:#7d92b3;}
body.theme-blueprint .font-size-preview{background:#16243a;border-color:#243650;color:#dce6f5;}
body.theme-blueprint .density-btn{border-color:#243650;background:#16243a;color:#7d92b3;}
body.theme-blueprint .density-btn.active{background:#2dc7e8;border-color:#2dc7e8;color:#0a121f;}
body.theme-blueprint .toggle-label{color:#dce6f5;}
body.theme-blueprint .about-card{background:#16243a;border-color:#243650;}
body.theme-blueprint .about-logo{color:#2dc7e8;}
body.theme-blueprint .about-version{color:#7d92b3;}
body.theme-blueprint .about-desc{color:#dce6f5;}
body.theme-blueprint .about-label{color:#7d92b3;}
body.theme-blueprint .about-val{color:#dce6f5;}
body.theme-blueprint .tool-pill{background:#16243a;border-color:#243650;}
body.theme-blueprint .tool-pill:hover{border-color:rgba(45,199,232,.3);}
body.theme-blueprint .tool-pill.active{background:rgba(45,199,232,.1);border-color:#2dc7e8;}
body.theme-blueprint .pinned-tools-bar{background:#111c2d;border-bottom-color:#243650;}
body.theme-blueprint .pinned-tool-btn{background:#16243a;border-color:#243650;color:#dce6f5;}
body.theme-blueprint .pinned-tool-btn:hover{border-color:#2dc7e8;color:#2dc7e8;}
body.theme-blueprint .zone-color-picker{background:#111c2d;border-color:#243650;}
body.theme-blueprint .zone-ctx-bar{background:#111c2d;border-color:#243650;}
body.theme-blueprint .ctx-btn{color:#7d92b3;border-color:#243650;}
body.theme-blueprint .ctx-btn:hover{background:#16243a;color:#dce6f5;}
body.theme-blueprint .zone-dialog{background:#111c2d;border-color:#243650;}
body.theme-blueprint .zone-dialog h3{color:#dce6f5;}
body.theme-blueprint .dlg-input{background:#16243a;border-color:#243650;color:#dce6f5;}
body.theme-blueprint .dlg-act-item{border-bottom-color:#243650;}
body.theme-blueprint .dlg-act-item:hover{background:#16243a;}
body.theme-blueprint .dlg-act-label{color:#dce6f5;}
body.theme-blueprint .dlg-btn{background:#16243a;border-color:#243650;color:#dce6f5;}
body.theme-blueprint .dlg-btn.confirm{background:#2dc7e8;color:#0a121f;border-color:#2dc7e8;}
body.theme-blueprint .annot-sidebar{background:#111c2d;border-color:#243650;}
body.theme-blueprint .annot-header{border-bottom-color:#243650;}
body.theme-blueprint .annot-title{color:#dce6f5;}
body.theme-blueprint .annot-tool-btn{background:#16243a;border-color:#243650;color:#7d92b3;}
body.theme-blueprint .annot-tool-btn.active{background:rgba(45,199,232,.1);border-color:#2dc7e8;color:#2dc7e8;}
body.theme-blueprint .annot-item{background:#16243a;}
body.theme-blueprint .annot-footer{border-top-color:#243650;}
body.theme-blueprint .locate-toast{background:#111c2d;border-color:#2dc7e8;}
body.theme-blueprint .toast-text{color:#dce6f5;}
body.theme-blueprint .toast-dismiss{background:#16243a;color:#7d92b3;border-color:#243650;}
body.theme-blueprint ::-webkit-scrollbar{width:8px;height:8px;}
body.theme-blueprint ::-webkit-scrollbar-track{background:transparent;}
body.theme-blueprint ::-webkit-scrollbar-thumb{background:#2dc7e8;border-radius:4px;opacity:.6;}
body.theme-blueprint ::-webkit-scrollbar-thumb:hover{background:#5eb3f5;}


/* ── Critical Path Tab ────────────────────────────────────────────────────── */
.cp-wrap{display:flex;height:100%;overflow:hidden;}

/* Left panel */
.cp-left{width:260px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;}
.cp-left-hdr{padding:10px 12px;font-size:11px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border);flex-shrink:0;}
.cp-section-label{font-size:9px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;padding:8px 12px 4px;}
.cp-target-box{margin:8px;padding:10px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;min-height:60px;}
.cp-target-empty{font-size:11px;color:var(--muted);line-height:1.5;}
.cp-target-card{font-size:11px;color:var(--text);}
.cp-clear-btn{margin-top:6px;font-size:10px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:3px;padding:2px 8px;cursor:pointer;}
.cp-clear-btn:hover{border-color:var(--accent);color:var(--accent);}
.cp-dir-row{display:flex;gap:4px;padding:4px 12px;}
.cp-dir-btn{flex:1;padding:5px;font-size:10px;font-family:var(--mono);background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:3px;cursor:pointer;transition:all .12s;}
.cp-dir-btn.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600;}
.cp-search-wrap{padding:6px 8px;}
.cp-search{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:6px 10px;font-size:11px;color:var(--text);outline:none;box-sizing:border-box;}
.cp-search:focus{border-color:var(--accent);}
.cp-act-list{flex:1;overflow-y:auto;padding:4px;}
.cp-act-item{padding:7px 10px;border-radius:4px;cursor:pointer;border:1px solid transparent;margin-bottom:2px;transition:all .1s;}
.cp-act-item:hover{background:var(--surface2);border-color:var(--border);}
.cp-act-item.selected{background:rgba(0,82,204,.08);border-color:var(--accent);}
.cp-act-code{font-family:var(--mono);font-size:9px;color:var(--muted);display:block;}
.cp-act-name{font-size:11px;color:var(--text);line-height:1.3;display:block;}
.cp-act-wbs{font-size:9px;color:var(--dim);display:block;}
.cp-act-tf{font-size:10px;font-family:var(--mono);font-weight:600;float:right;}

/* Main canvas area */
.cp-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;background:var(--bg);}
.cp-toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:7px 12px;display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;}
.cp-toolbar-title{font-size:12px;font-weight:600;color:var(--text);}
.cp-toolbar-sub{font-size:10px;color:var(--muted);font-family:var(--mono);}
.cp-btn{padding:4px 10px;border-radius:4px;font-size:10px;font-family:var(--mono);background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;}
.cp-btn:hover{border-color:var(--accent);color:var(--accent);}
.cp-legend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.cp-leg-item{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted);}
.cp-leg-dot{width:8px;height:8px;border-radius:50%;}

/* Empty state */
.cp-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px;}
.cp-empty-icon{font-size:48px;color:var(--dim);}
.cp-empty-title{font-size:16px;font-weight:600;color:var(--text);}
.cp-empty-sub{font-size:12px;color:var(--muted);text-align:center;max-width:400px;line-height:1.6;}

/* SVG viewport */
.cp-viewport{flex:1;overflow:hidden;position:relative;cursor:grab;}
/* Critical Path HTML trace view — reuses .trace-columns, .trace-col, .trace-card */
/* The trace view scrolls BOTH ways: the columns row is wider than the viewport (many "LEVEL N BACK"
   columns), so the view owns the horizontal + vertical scrollbars; the columns block stays its natural
   size (overflow:visible) so it overflows the view and triggers the view's scrollbars. */
.cp-trace-view{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;background:var(--bg);}
.cp-trace-view .trace-columns{flex:0 0 auto;overflow:visible;padding:16px 20px;align-items:flex-start;}
.cp-trace-view .trace-col-body{overflow-y:visible;max-height:none;}
.cp-trace-view .trace-col-hdr{background:var(--bg);position:sticky;top:0;z-index:2;}
/* Clearly visible scrollbars so the user can drag left/right (and up/down). */
.cp-trace-view::-webkit-scrollbar{height:12px;width:12px;}
.cp-trace-view::-webkit-scrollbar-track{background:color-mix(in srgb,var(--muted) 12%,transparent);border-radius:7px;}
.cp-trace-view::-webkit-scrollbar-thumb{background:var(--dim);border-radius:7px;border:2px solid transparent;background-clip:padding-box;}
.cp-trace-view::-webkit-scrollbar-thumb:hover{background:var(--muted);}
.cp-trace-view{scrollbar-width:thin;}
.cp-viewport:active{cursor:grabbing;}
.cp-viewport svg{transform-origin:0 0;display:block;}

/* Right panel */
.cp-right{width:260px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;}
.cp-right-hdr{padding:10px 12px;font-size:11px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border);flex-shrink:0;}
.cp-stats{padding:10px 12px;border-bottom:1px solid var(--border);}
.cp-stat-row{display:flex;justify-content:space-between;margin-bottom:5px;font-size:11px;}
.cp-stat-label{color:var(--muted);}
.cp-stat-val{color:var(--text);font-family:var(--mono);font-weight:600;}
.cp-chain-list{flex:1;overflow-y:auto;padding:4px 8px;}
.cp-chain-item{display:flex;align-items:flex-start;gap:8px;padding:5px 4px;border-bottom:1px solid var(--border);}
.cp-chain-num{font-size:9px;color:var(--dim);font-family:var(--mono);min-width:18px;flex-shrink:0;padding-top:2px;}
.cp-chain-code{font-size:9px;color:var(--muted);font-family:var(--mono);display:block;}
.cp-chain-name{font-size:10px;color:var(--text);display:block;line-height:1.3;}
.cp-chain-tf{font-size:9px;font-family:var(--mono);font-weight:600;margin-left:auto;flex-shrink:0;}

/* ── Theme overrides — Critical Path ─────────────────────────────────────── */
/* Site: amber accent on dark button text is fine; slightly warmer selected */
body.theme-site .cp-act-item.selected{background:rgba(201,106,0,.08);}

/* Blueprint: cyan accent selected highlight */
body.theme-blueprint .cp-act-item.selected{background:rgba(0,180,216,.08);}
body.theme-blueprint .cp-empty-icon{color:var(--dim);}


/* ── What-If Mode ─────────────────────────────────────────────────────────── */
.cp-whatif-panel{padding:0 12px 12px;flex-shrink:0;}
.cp-whatif-input-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.cp-whatif-days{width:70px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:13px;font-family:var(--mono);color:var(--text);text-align:center;outline:none;transition:border-color .15s;}
.cp-whatif-days:focus{border-color:var(--accent);}
.cp-whatif-days-label{font-size:11px;color:var(--muted);}
.cp-whatif-hint{font-size:10px;color:var(--muted);line-height:1.5;margin-bottom:10px;}
.cp-whatif-run-btn{width:100%;padding:8px;border-radius:5px;font-size:12px;font-weight:700;background:var(--accent);color:#000;border:none;cursor:pointer;margin-bottom:6px;transition:opacity .15s;}
.cp-whatif-run-btn:hover{opacity:.88;}
.cp-whatif-run-btn:disabled{opacity:.4;cursor:default;}
.cp-whatif-reset-btn{width:100%;padding:7px;border-radius:5px;font-size:11px;background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:all .12s;}
.cp-whatif-reset-btn:hover{border-color:var(--accent);color:var(--accent);}

/* What-If summary bar (inside cp-trace-view, above trace columns) */
.cp-whatif-summary{padding:10px 14px;background:var(--surface2);border-bottom:1px solid var(--border);font-size:12px;display:none;flex-shrink:0;position:sticky;top:0;z-index:5;}
.cp-wi-col-hdr{font-size:10px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
@supports (background:color-mix(in srgb,red 6%,white)){
  .cp-whatif-summary{background:color-mix(in srgb,var(--accent) 6%,var(--surface));}
}

/* What-If badge on cards */
.cp-whatif-badge{margin-top:6px;padding:4px 8px;border-radius:4px;font-size:10px;font-family:var(--mono);line-height:1.3;}
.cp-whatif-badge.delayed{background:rgba(220,38,38,.12);color:var(--crit);}
.cp-whatif-badge.accelerated{background:rgba(5,150,105,.12);color:var(--ok);}
@supports (background:color-mix(in srgb,red 12%,white)){
  .cp-whatif-badge.delayed{background:color-mix(in srgb,var(--crit) 12%,var(--surface));}
  .cp-whatif-badge.accelerated{background:color-mix(in srgb,var(--ok) 12%,var(--surface));}
}

/* Dir-row wraps to 2 lines so the 4th button gets its own row */
.cp-dir-row{flex-wrap:wrap;}
#cpDirWhatIf{flex:0 0 100%;margin-top:2px;}

/* Blueprint dark-mode adjustments */
body.theme-blueprint .cp-whatif-badge.delayed{background:rgba(255,84,112,.15);}
body.theme-blueprint .cp-whatif-badge.accelerated{background:rgba(45,232,160,.12);}

/* Light-mode adjustments */
body.light-mode .cp-whatif-days{background:#eef0f5;border-color:#d0d4e0;color:#1c2033;}
body.light-mode .cp-whatif-reset-btn{background:#eef0f5;border-color:#d0d4e0;color:#5a6278;}
body.light-mode .cp-whatif-summary{background:#eef0f5;border-color:#d0d4e0;}

/* ══════════════════════════════════════════════════════════════════
   DRILL-DOWN PANEL
   ══════════════════════════════════════════════════════════════════ */
.drill-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;opacity:0;pointer-events:none;transition:opacity .2s;}
.drill-overlay.open{opacity:1;pointer-events:all;}

.drill-panel{position:fixed;top:0;right:0;bottom:0;width:480px;background:var(--surface);
  border-left:1px solid var(--border);z-index:201;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);
  box-shadow:-8px 0 32px rgba(0,0,0,.3);}
.drill-panel.open{transform:translateX(0);}

.drill-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;
  align-items:center;justify-content:space-between;flex-shrink:0;background:var(--surface2);}
.drill-title-wrap{display:flex;align-items:center;gap:12px;}
.drill-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;font-size:20px;flex-shrink:0;}
.drill-title{font-size:15px;font-weight:700;color:var(--text);}
.drill-sub{font-size:11px;color:var(--muted);font-family:var(--mono);margin-top:2px;}
.drill-close{background:transparent;border:none;color:var(--muted);font-size:20px;cursor:pointer;
  padding:4px 8px;border-radius:4px;transition:color .1s,background .1s;}
.drill-close:hover{color:var(--crit);background:rgba(255,0,0,.08);}

.drill-summary{padding:12px 20px;border-bottom:1px solid var(--border);display:flex;
  gap:16px;flex-wrap:wrap;flex-shrink:0;background:var(--surface);}
.drill-summary-stat{display:flex;flex-direction:column;gap:2px;}
.drill-summary-num{font-size:20px;font-weight:700;font-family:var(--mono);color:var(--text);}
.drill-summary-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;}

.drill-search-wrap{padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;}
.drill-search{width:100%;background:var(--surface2);border:1px solid var(--border);
  border-radius:4px;padding:7px 10px;font-size:12px;color:var(--text);
  outline:none;box-sizing:border-box;font-family:inherit;}
.drill-search:focus{border-color:var(--accent);}

.drill-list{flex:1;overflow-y:auto;padding:8px;}
.drill-list::-webkit-scrollbar{width:8px;}
.drill-list::-webkit-scrollbar-track{background:transparent;}
.drill-list::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}
.drill-list::-webkit-scrollbar-thumb:hover{background:var(--muted);}

.drill-item{padding:10px 12px;border-radius:6px;margin-bottom:4px;border:1px solid var(--border);
  background:var(--surface2);cursor:pointer;transition:all .1s;border-left:4px solid transparent;}
.drill-item:hover{background:var(--surface);border-color:var(--accent2);}
.drill-item.status-active{border-left-color:var(--warn);}
.drill-item.status-complete{border-left-color:var(--ok);}
.drill-item.status-notstart{border-left-color:var(--accent2);}
.drill-item.status-critical{border-left-color:var(--crit);}

.drill-item-top{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;}
.drill-item-code{font-family:var(--mono);font-size:10px;color:var(--muted);flex-shrink:0;}
.drill-item-name{font-size:12px;font-weight:500;color:var(--text);flex:1;line-height:1.3;}
.drill-item-tf{font-family:var(--mono);font-size:11px;font-weight:700;flex-shrink:0;}
.drill-item-bottom{display:flex;gap:12px;}
.drill-item-wbs{font-size:10px;color:var(--dim);}
.drill-item-dates{font-size:10px;color:var(--muted);font-family:var(--mono);}
.drill-item-note{font-size:10px;color:var(--warn);font-family:var(--mono);margin-top:4px;line-height:1.4;word-break:break-word;}

.drill-footer{padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0;}
.drill-action-btn{width:100%;padding:9px;border-radius:5px;font-size:12px;font-weight:600;
  background:var(--accent);color:#000;border:none;cursor:pointer;transition:opacity .12s;}
.drill-action-btn:hover{opacity:.88;}

/* Clickable card visual hints */
.kpi-card{cursor:pointer;transition:transform .15s,box-shadow .2s;position:relative;}
.kpi-card:hover{transform:scale(1.02);}
.kpi-card::after{content:'↗';position:absolute;top:8px;right:8px;font-size:9px;
  color:var(--dim);opacity:0;transition:opacity .15s;font-family:var(--mono);}
.kpi-card:hover::after{opacity:1;}
.turn-card{cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.turn-card:hover{border-color:var(--accent)!important;}
.turn-card::after{content:'↗';float:right;font-size:9px;color:var(--dim);font-family:var(--mono);}
.mile-item{cursor:pointer;transition:background .1s;}
.mile-item:hover{background:var(--surface2);}
.attn-item{transition:background .1s;}
.wbs-prog-list > div{cursor:pointer;border-radius:4px;padding:2px 4px;transition:background .1s;}
.wbs-prog-list > div:hover{background:var(--surface2);}

/* ── Drill panel — SLATE ───────────────────────────────────────── */
body.theme-slate .drill-panel{box-shadow:-8px 0 32px rgba(0,0,0,.15);}
body.theme-slate .drill-action-btn{background:#0052cc;color:#fff;}
body.theme-slate .drill-search:focus{border-color:#0052cc;}

/* ── Drill panel — SITE ────────────────────────────────────────── */
body.theme-site .drill-action-btn{background:#c96a00;color:#fff;}
body.theme-site .drill-search:focus{border-color:#c96a00;}

/* ── Drill panel — BLUEPRINT ───────────────────────────────────── */
body.theme-blueprint .drill-panel{border-left-color:#1e3352;box-shadow:-8px 0 32px rgba(0,0,0,.5);}
body.theme-blueprint .drill-header{background:#122238;}
body.theme-blueprint .drill-item{background:#122238;border-color:#1e3352;}
body.theme-blueprint .drill-item:hover{background:#0d1b2e;border-color:#00b4d8;}
body.theme-blueprint .drill-search{background:#122238;border-color:#1e3352;color:#e8f0ff;}
body.theme-blueprint .drill-search:focus{border-color:#00b4d8;}
body.theme-blueprint .drill-action-btn{background:#00b4d8;color:#060d1a;}

/* ===== VERSION SYSTEM THEME OVERRIDES ===== */
body.theme-slate .version-toolbar{background:#0f1923;border-bottom-color:#1a2d48;}
body.theme-slate .version-select{background:#ffffff!important;border-color:rgba(255,255,255,.2);color:#16202e!important;}
body.theme-slate .version-compare-btn{color:#fff;}
body.theme-slate .version-upload-btn{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.7);}
body.theme-slate .version-upload-btn:hover{background:rgba(255,255,255,.15);color:#fff;}
body.theme-slate .version-manager-panel{background:#0f1923;border-color:#1a2d48;}
body.theme-slate .vmgr-header{background:#0a1220;border-color:#1a2d48;}
body.theme-site .version-toolbar{background:#1c1a17;border-bottom-color:#2a2520;}
body.theme-site .version-select{background:#fdfcfa!important;border-color:rgba(255,255,255,.15);color:#2a2620!important;}
body.theme-site .version-compare-btn{color:#fff;}
body.theme-site .version-upload-btn{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.7);}
body.theme-site .version-upload-btn:hover{background:rgba(255,255,255,.12);color:#fff;}
body.theme-site .version-manager-panel{background:#1c1a17;border-color:#2d2a25;}
body.theme-site .vmgr-header{background:#141210;border-color:#2d2a25;}
body.theme-blueprint .version-select{background:#111c2d!important;border-color:#243650;color:#dce6f5!important;}
body.theme-blueprint .version-compare-btn{color:#060d1a;}
body.theme-blueprint .version-upload-btn{color:#00b4d8;}
body.theme-blueprint .version-upload-btn:hover{background:rgba(0,180,216,.15);color:#00b4d8;}
body.theme-blueprint .version-manager-panel{background:#0d1b2e;border-color:#1e3352;}
body.theme-blueprint .vmgr-header{background:#060d1a;border-color:#1e3352;}

/* ===== SCHEDULE COMPARISON PANEL ===== */
.comparison-panel{background:var(--surface);border-bottom:2px solid var(--accent);flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.comparison-panel.comp-collapsed{flex:0 0 auto;}
.comp-tabs{display:flex;align-items:center;padding:0 8px;background:var(--surface2);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto;gap:2px;}
.comp-tab{padding:7px 12px;font-size:11px;font-family:var(--font);background:transparent;border:none;border-bottom:3px solid transparent;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .12s;}
.comp-tab:hover{color:var(--text);}
.comp-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.comp-back-btn{margin-left:auto;padding:4px 11px;font-size:10px;font-family:var(--mono);background:rgba(var(--accent-rgb,0,82,204),.08);border:1px solid var(--accent);border-radius:3px;color:var(--accent);cursor:pointer;white-space:nowrap;flex-shrink:0;font-weight:600;}
.comp-back-btn:hover{background:rgba(var(--accent-rgb,0,82,204),.16);}
.comp-collapse-btn{padding:4px 10px;font-size:10px;font-family:var(--mono);background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--muted);cursor:pointer;white-space:nowrap;flex-shrink:0;}
.comp-collapse-btn:hover{color:var(--text);border-color:var(--muted);}
.comp-body{flex:1;min-height:0;overflow-y:auto;overflow-x:auto;padding:12px 16px;}
.comp-body::-webkit-scrollbar{width:4px;height:4px;}
.comp-body::-webkit-scrollbar-thumb{background:var(--dim);border-radius:2px;}

/* Comparison content components */
.comp-stat-cards{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.comp-stat-card{flex:1;min-width:90px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:9px 12px;text-align:center;}
.comp-stat-num{font-size:20px;font-weight:700;font-family:var(--mono);line-height:1.1;}
.comp-stat-label{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-top:3px;}
.comp-section-hdr{font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;margin-top:2px;display:flex;align-items:center;gap:6px;}
.comp-section-count{background:var(--surface2);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-size:9px;color:var(--text);}
.comp-health-grid{display:grid;grid-template-columns:1fr 36px 1fr;gap:10px;align-items:center;margin-bottom:14px;}
.comp-health-col{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;}
.comp-health-col-label{font-size:9px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.comp-health-stat-row{display:flex;justify-content:space-between;margin-bottom:4px;font-size:11px;}
.comp-health-arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;}
.comp-tbl{width:100%;border-collapse:collapse;font-size:11px;}
.comp-tbl th{text-align:left;padding:5px 8px;font-size:9px;font-family:var(--mono);color:var(--muted);border-bottom:1px solid var(--border);letter-spacing:.8px;text-transform:uppercase;white-space:nowrap;cursor:pointer;user-select:none;}
.comp-tbl th:hover{color:var(--text);}
.comp-tbl td{padding:5px 8px;border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;}
.comp-tbl tbody tr:last-child td{border-bottom:none;}
.comp-tbl tbody tr:hover td{background:var(--surface2);}
.comp-empty-note{color:var(--muted);font-size:11px;padding:8px 0;}
.comp-bar-wrap{display:flex;height:6px;border-radius:3px;overflow:hidden;min-width:80px;background:var(--border);}
.comp-bar-seg{height:100%;}
.comp-search-wrap{margin-bottom:8px;}
.comp-search{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:6px 10px;font-size:11px;font-family:var(--font);color:var(--text);outline:none;box-sizing:border-box;}
.comp-search:focus{border-color:var(--accent);}
.comp-filter-bar{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap;}
.comp-flt{padding:3px 9px;border-radius:3px;font-size:10px;font-family:var(--mono);cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all .1s;}
.comp-flt:hover{color:var(--text);}
.comp-flt.active{background:var(--surface2);border-color:var(--accent);color:var(--accent);}
.comp-act-count{font-size:10px;font-family:var(--mono);color:var(--muted);margin-bottom:6px;}

/* Comparison panel — slate accent overrides (uses CSS vars, minimal needed) */
body.theme-slate .comp-tab.active{color:#0052cc;border-bottom-color:#0052cc;}
body.theme-slate .comp-flt.active{background:#e8f0fe;border-color:#0052cc;color:#0052cc;}

/* Comparison panel — site accent overrides */
body.theme-site .comp-tab.active{color:#c96a00;border-bottom-color:#c96a00;}
body.theme-site .comp-flt.active{background:#fdefd8;border-color:#c96a00;color:#a85600;}

/* Comparison panel — blueprint dark overrides */
body.theme-blueprint .comparison-panel{border-bottom-color:#00b4d8;}
body.theme-blueprint .comp-tabs{background:#091525;border-bottom-color:#1e3352;}
body.theme-blueprint .comp-tab{color:#6b8cba;}
body.theme-blueprint .comp-tab:hover{color:#e8f0ff;}
body.theme-blueprint .comp-tab.active{color:#00b4d8;border-bottom-color:#00b4d8;}
body.theme-blueprint .comp-collapse-btn{border-color:#1e3352;color:#6b8cba;}
body.theme-blueprint .comp-body{background:#0d1b2e;}
body.theme-blueprint .comp-stat-card{background:#122238;border-color:#1e3352;}
body.theme-blueprint .comp-health-col{background:#122238;border-color:#1e3352;}
body.theme-blueprint .comp-tbl td{color:#e8f0ff;}
body.theme-blueprint .comp-tbl th{border-bottom-color:#1e3352;}
body.theme-blueprint .comp-tbl tbody tr:hover td{background:#122238;}
body.theme-blueprint .comp-section-count{background:#122238;border-color:#1e3352;color:#e8f0ff;}
body.theme-blueprint .comp-search{background:#122238;border-color:#1e3352;color:#e8f0ff;}
body.theme-blueprint .comp-search:focus{border-color:#00b4d8;}
body.theme-blueprint .comp-flt{color:#6b8cba;border-color:#1e3352;}
body.theme-blueprint .comp-flt:hover{color:#e8f0ff;}
body.theme-blueprint .comp-flt.active{background:#122238;border-color:#00b4d8;color:#00b4d8;}
body.theme-blueprint .comp-bar-wrap{background:#1e3352;}

/* ══════════════════════════════════════════════════════════════════
   TOPBAR CHIPS (version + data date)
   ══════════════════════════════════════════════════════════════════ */
.topbar-chip{
  display:flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:6px;padding:3px 10px;font-size:11px;font-family:var(--mono);
  color:rgba(255,255,255,.75);white-space:nowrap;flex-shrink:0;
}
.topbar-chip .chip-icon{font-size:12px;opacity:.8;}
.topbar-chip strong{color:#fff;font-weight:600;}
.topbar-fmt-chip{padding:3px 8px;font-size:10px;font-weight:700;letter-spacing:.5px;background:rgba(255,255,255,.1);}
body.light-mode .topbar-chip,.theme-slate .topbar-chip,.theme-site .topbar-chip{
  background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.7);
}
.proj-pill{cursor:pointer;}

/* ══════════════════════════════════════════════════════════════════
   SCHEDULE SEARCH DROPDOWN (redesigned)
   ══════════════════════════════════════════════════════════════════ */
.sched-trace-search-wrap{
  display:flex;align-items:center;background:var(--surface2);
  border:1px solid var(--border);border-radius:6px;padding:0 10px;
  height:34px;gap:6px;min-width:260px;max-width:260px;
  transition:border-color .15s,box-shadow .15s;
}
.sched-trace-search-wrap:focus-within{
  border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb,0,82,204),.1);
}
.sched-trace-search-wrap .search-icon{color:var(--muted);font-size:13px;flex-shrink:0;}
.sched-trace-search-wrap .search-input{
  background:transparent;border:none;outline:none;
  color:var(--text);font-size:13px;font-family:var(--font);width:100%;padding:0;min-height:unset;
}
.sched-toolbar-search-anchor{position:relative;flex-shrink:0;}
.sched-trace-results{
  position:absolute;top:calc(100% + 6px);left:0;
  min-width:260px;max-width:420px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);
  max-height:320px;overflow-y:auto;z-index:200;
  display:none;
}
.sched-trace-results::-webkit-scrollbar{width:6px;}
.sched-trace-results::-webkit-scrollbar-thumb{background:var(--dim);border-radius:3px;}
.sched-trace-result-item{
  padding:9px 14px;cursor:pointer;border-bottom:1px solid var(--border);
  transition:background .1s;
}
.sched-trace-result-item:last-child{border-bottom:none;}
.sched-trace-result-item:hover{background:var(--surface2);}
.sched-trace-result-code{
  font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:600;
}
.sched-trace-result-name{font-size:13px;color:var(--text);line-height:1.4;margin-bottom:2px;}
.sched-trace-result-meta{font-size:11px;color:var(--muted);font-family:var(--mono);}

/* Flash highlight on search select */
@keyframes schedRowFlash{
  0%{background:rgba(var(--accent-rgb,0,82,204),.18);}
  80%{background:rgba(var(--accent-rgb,0,82,204),.1);}
  100%{background:transparent;}
}
.sched-row-flash{animation:schedRowFlash 2s ease-out forwards !important;}

/* ══════════════════════════════════════════════════════════════════
   HTML TRACE VIEW — Logic Analyzer
   ══════════════════════════════════════════════════════════════════ */
.trace-view{
  flex:1;overflow:hidden;position:relative;background:var(--bg);
  display:flex;flex-direction:column;
}
.trace-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100%;gap:14px;color:var(--muted);padding:40px;
}
.trace-empty h3{font-size:17px;font-weight:600;color:var(--text);}
.trace-empty p{font-size:13px;max-width:400px;text-align:center;line-height:1.6;}

/* Breadcrumb */
.trace-breadcrumb{
  display:flex;align-items:center;gap:6px;padding:8px 16px 4px;
  flex-shrink:0;flex-wrap:wrap;border-bottom:1px solid rgba(var(--border-rgb,160,174,192),.4);
  background:var(--bg);
}
.trace-bc-label{font-size:11px;font-family:var(--mono);color:var(--muted);flex-shrink:0;}
.trace-bc-item{
  padding:2px 10px;border-radius:4px;font-size:11px;font-family:var(--mono);
  background:var(--surface2);border:1px solid var(--border);color:var(--accent);
  cursor:pointer;transition:all .12s;
}
.trace-bc-item:hover{background:var(--surface);border-color:var(--accent);}
.trace-bc-sep{font-size:11px;color:var(--dim);}

/* Column layout */
.trace-columns{
  display:flex;flex-direction:row;gap:16px;padding:16px 20px;
  overflow-x:auto;overflow-y:hidden;flex:1;align-items:flex-start;
}
.trace-columns::-webkit-scrollbar{height:8px;}
.trace-columns::-webkit-scrollbar-track{background:transparent;}
.trace-columns::-webkit-scrollbar-thumb{background:var(--dim);border-radius:4px;}

.trace-col{
  min-width:280px;max-width:280px;display:flex;flex-direction:column;
  gap:0;flex-shrink:0;max-height:100%;
}
.trace-col-target{min-width:300px;max-width:300px;}

.trace-col-hdr{
  font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;
  letter-spacing:.8px;padding:6px 4px 8px;position:sticky;top:0;
  background:var(--bg);display:flex;justify-content:space-between;align-items:center;
  flex-shrink:0;border-bottom:2px solid var(--border);margin-bottom:8px;
}
.trace-col-target .trace-col-hdr{color:var(--accent);}
.trace-col-count{
  font-size:11px;font-family:var(--mono);background:var(--surface2);
  border:1px solid var(--border);border-radius:10px;padding:1px 8px;
  color:var(--text);font-weight:400;letter-spacing:0;text-transform:none;
}

.trace-col-body{
  overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-bottom:20px;
}
.trace-col-body::-webkit-scrollbar{width:6px;}
.trace-col-body::-webkit-scrollbar-track{background:transparent;}
.trace-col-body::-webkit-scrollbar-thumb{background:var(--dim);border-radius:3px;}

/* Activity cards in trace */
.trace-card{
  background:var(--surface);border:1px solid var(--border);
  border-left:4px solid var(--dim);border-radius:8px;
  padding:10px 12px;cursor:pointer;
  transition:all .15s ease;flex-shrink:0;
}
.trace-card:hover{
  border-color:var(--accent2);transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(0,0,0,.1);
}
.trace-card-target{
  background:var(--surface);border-width:2px;
  box-shadow:0 0 0 2px var(--accent),0 4px 16px rgba(0,0,0,.08);
}
.trace-card-target:hover{transform:none;box-shadow:0 0 0 2px var(--accent),0 6px 20px rgba(0,0,0,.12);}
.trace-card-highlight{border-color:var(--accent2)!important;box-shadow:0 2px 8px rgba(0,0,0,.08);}
.trace-card-dim{opacity:.35;}

.trace-target-label{
  font-size:9px;font-family:var(--mono);font-weight:700;color:var(--accent);
  letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;
}
.trace-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.trace-card-code{font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:500;}
.trace-rel-badge{
  font-size:10px;font-family:var(--mono);padding:1px 6px;border-radius:4px;
  background:var(--surface2);border:1px solid var(--border);color:var(--muted);
}
.trace-card-name{
  font-size:13px;font-weight:600;color:var(--text);line-height:1.4;
  margin-bottom:5px;word-break:break-word;
}
.trace-card-dates{font-size:11px;font-family:var(--mono);color:var(--muted);margin-bottom:6px;}
.trace-card-bottom{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.trace-card-tf{font-size:11px;font-family:var(--mono);font-weight:700;flex-shrink:0;}
.trace-card-status{font-size:10px;font-family:var(--mono);padding:1px 6px;border-radius:8px;
  background:var(--surface2);flex-shrink:0;}
.trace-card-wbs{font-size:10px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ══════════════════════════════════════════════════════════════════
   TRACE VIEW — THEME OVERRIDES
   ══════════════════════════════════════════════════════════════════ */
/* Site Commander */
body.theme-site .trace-card{background:var(--surface);border-color:var(--border);}
body.theme-site .trace-card:hover{border-color:var(--accent);}
body.theme-site .trace-card-target{box-shadow:0 0 0 2px var(--accent),0 4px 16px rgba(217,119,6,.1);}

/* Slate Pro */
body.theme-slate .trace-card{background:var(--surface);}
body.theme-slate .trace-card:hover{border-color:var(--accent);}
body.theme-slate .trace-card-target{box-shadow:0 0 0 2px var(--accent),0 4px 16px rgba(10,93,194,.12);}

/* Blueprint */
body.theme-blueprint .trace-view{background:var(--bg);}
body.theme-blueprint .trace-col-hdr{background:var(--bg);}
body.theme-blueprint .trace-card{background:var(--surface);border-color:var(--border);}
body.theme-blueprint .trace-card:hover{
  border-color:var(--accent);
  box-shadow:0 0 0 1px rgba(45,199,232,.2),0 4px 12px rgba(45,199,232,.08);
}
body.theme-blueprint .trace-card-target{
  background:var(--surface);
  box-shadow:0 0 0 2px var(--accent),0 4px 20px rgba(45,199,232,.15);
}
body.theme-blueprint .trace-rel-badge{background:var(--surface2);border-color:var(--border);}
body.theme-blueprint .trace-bc-item{background:var(--surface2);border-color:var(--border);}
body.theme-blueprint .sched-trace-results{background:var(--surface);border-color:var(--border);}
body.theme-blueprint .sched-trace-result-item:hover{background:var(--surface2);}

/* ══════════════════════════════════════════════════════════════════
   SCHEDULE ROW FLASH + DATA-ACTID SUPPORT
   ══════════════════════════════════════════════════════════════════ */
body.theme-blueprint .sched-trace-search-wrap{
  background:var(--surface2);border-color:var(--border);
}
body.theme-blueprint .sched-trace-search-wrap .search-input{color:var(--text);}

/* ══════════════════════════════════════════════════════════════════
   COMPARISON — WBS HIERARCHY TABLE
   ══════════════════════════════════════════════════════════════════ */
.comp-wbs-hdr-row{
  background:var(--surface2);user-select:none;
  transition:background .1s;
}
.comp-wbs-hdr-row:hover{background:var(--surface);}
.comp-wbs-hdr-row td{border-bottom:2px solid var(--border) !important;padding:7px 10px;}
body.theme-blueprint .comp-wbs-hdr-row{background:var(--surface2);}
body.theme-blueprint .comp-wbs-hdr-row:hover{background:var(--surface);}

.comp-act-row{transition:background .08s;}
.comp-act-row:hover td{background:var(--surface2);}
.comp-act-row td{border-bottom:1px solid rgba(160,174,192,.25);}


/* ── Executive Summary & View Toggle ──────────────────────────────────────── */

.dash-header-actions{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:8px 0 4px;margin-bottom:4px;
}
.dash-last-updated{font-size:10px;color:var(--muted);font-family:var(--mono);margin-right:auto;}

.dash-view-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden;flex-shrink:0;}
.dash-view-btn{
  padding:5px 16px;font-size:11px;font-weight:500;font-family:var(--font);
  background:var(--surface);color:var(--muted);border:none;cursor:pointer;
  transition:background .15s,color .15s;letter-spacing:.2px;
}
.dash-view-btn:first-child{border-right:1px solid var(--border);}
.dash-view-btn.active{background:var(--accent);color:#fff;}
.dash-view-btn:not(.active):hover{background:var(--surface2);color:var(--text);}

body.theme-slate .dash-view-btn{background:var(--surface);}
body.theme-slate .dash-view-btn.active{background:var(--accent);}
body.theme-blueprint .dash-view-btn{background:var(--surface);}
body.theme-blueprint .dash-view-btn.active{background:var(--accent);}

.dash-exec-view{
  flex-direction:column;gap:12px;padding:4px 0 16px;
}
.dash-ops-view{}

/* Exec hero */
.exec-hero{
  background:var(--surface);border:1px solid var(--border);border-radius:8px;
  padding:16px 20px;text-align:center;
}
.exec-hero-status{font-size:22px;font-weight:800;letter-spacing:1px;font-family:var(--mono);line-height:1.2;}
.exec-hero-detail{font-size:10px;color:var(--muted);font-family:var(--mono);margin-top:5px;letter-spacing:.3px;}

body.theme-slate .exec-hero{background:var(--surface);border-color:var(--border);}
body.theme-blueprint .exec-hero{background:var(--surface);border-color:var(--accent);}

/* Exec generic section */
.exec-section{
  background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px;
}
.exec-section-label{
  font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;
  font-family:var(--mono);color:var(--muted);margin-bottom:10px;
}

/* Briefing */
.exec-briefing{}
.exec-auto-banner{
  font-size:10px;color:var(--warn);font-family:var(--mono);
  margin-bottom:6px;letter-spacing:.2px;
}
.exec-briefing-text{
  width:100%;box-sizing:border-box;min-height:72px;
  background:var(--surface2);border:1px solid var(--border);border-radius:5px;
  color:var(--text);font-family:var(--font);font-size:12px;line-height:1.6;
  padding:10px;resize:vertical;
}
.exec-briefing-text:focus{outline:none;border-color:var(--accent);}

.narr-add-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 13px;font-size:11px;font-weight:500;font-family:var(--font);
  background:transparent;border:1px solid var(--border);border-radius:5px;
  color:var(--muted);cursor:pointer;transition:background .15s,border-color .15s,color .15s;
}
.narr-add-btn:hover{background:var(--surface2);border-color:var(--accent);color:var(--accent);}

body.theme-slate .exec-briefing-text{background:var(--surface2);border-color:var(--border);}
body.theme-blueprint .exec-briefing-text{background:var(--surface2);border-color:var(--accent);}

/* Stats row */
.exec-stats-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:0;
}
.exec-stat-card{
  background:var(--surface2);border-radius:8px;padding:12px 14px;
  transition:opacity .35s ease-out,transform .35s ease-out;
}
.exec-stat-label{
  font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:6px;
  font-family:var(--mono);
}
.exec-stat-num{
  font-size:24px;font-weight:700;font-family:var(--mono);line-height:1.1;color:var(--text);
}
.exec-stat-delta{
  font-size:10px;font-family:var(--mono);margin-top:5px;
}

/* Key milestones */
.exec-milestones{}
.exec-milestone-list{display:flex;flex-direction:column;gap:0;}
.exec-milestone-row{
  display:flex;align-items:center;gap:8px;padding:7px 6px;
  border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;
}
.exec-milestone-row:last-child{border-bottom:none;}
.exec-milestone-row:hover{background:var(--surface2);}
.exec-milestone-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
}
.exec-milestone-name{flex:1;font-size:11px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.exec-milestone-date{font-size:10px;font-family:var(--mono);color:var(--muted);flex-shrink:0;margin-left:4px;}
.exec-milestone-tf{font-size:10px;font-family:var(--mono);font-weight:600;flex-shrink:0;width:46px;text-align:right;}
.exec-jump-btn{flex-shrink:0;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:4px;font-size:11px;cursor:pointer;padding:1px 5px;line-height:1.4;transition:color .15s,border-color .15s;}
.exec-jump-btn:hover{color:var(--accent);border-color:var(--accent);}

/* Pin button in ops milestones */
.exec-pin-btn{
  background:transparent;border:none;font-size:13px;color:var(--dim);cursor:pointer;
  padding:0 3px;line-height:1;transition:color .15s;flex-shrink:0;
}
.exec-pin-btn:hover{color:var(--warn);}
.exec-pin-btn.pinned{color:#f5a623;}
.exec-pin-btn.pinned:hover{color:var(--warn);}

/* Key risks */
.exec-risks{}
.exec-risk-list{display:flex;flex-direction:column;gap:0;}
.exec-risk-row{
  display:flex;align-items:flex-start;gap:8px;padding:7px 6px;
  border-bottom:1px solid var(--border);transition:background .1s;
}
.exec-risk-row[data-risk-idx]{cursor:pointer;}
.exec-risk-row[data-risk-idx]:hover{background:var(--surface2);}
.exec-risk-row:last-child{border-bottom:none;}
.exec-risk-marker{
  flex-shrink:0;font-size:9px;color:var(--crit);margin-top:3px;
}
.exec-risk-text{font-size:11px;color:var(--text);line-height:1.55;}

/* Timeline */
.exec-timeline{}
#execTimelineBar{min-height:52px;padding:4px 0;}
.ops-phase-strip{padding:10px 16px 8px;margin-bottom:0;}

/* Export row */
.exec-export-row{
  display:flex;justify-content:flex-end;padding:4px 0 0;
}

body.theme-slate .exec-section{background:var(--surface);border-color:var(--border);}
body.theme-slate .exec-milestone-row:hover{background:var(--surface2);}
body.theme-slate .exec-risk-row:hover{background:var(--surface2);}

body.theme-blueprint .exec-section{background-color:var(--surface);border-color:var(--accent);}
body.theme-blueprint .exec-section-label{color:var(--accent);}
body.theme-blueprint .exec-milestone-row:hover{background:var(--surface2);}
body.theme-blueprint .exec-risk-row:hover{background:var(--surface2);}
body.theme-blueprint .exec-briefing-text:focus{border-color:var(--accent2);}

/* ── Charts & Views menu ──────────────────────────────────────────────────── */
.exec-charts-menu{
  position:absolute;top:calc(100% + 6px);right:0;
  min-width:220px;background:var(--surface);border:1px solid var(--border);
  border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.12);
  z-index:200;padding:6px 0;
}
.exec-charts-menu-hdr{
  font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--muted);
  text-transform:uppercase;padding:6px 14px 4px;
}
.exec-charts-menu-item{
  display:flex;align-items:center;gap:8px;
  padding:7px 14px;font-size:12px;color:var(--text);
  cursor:pointer;transition:background .12s;
}
.exec-charts-menu-item:hover{background:var(--surface2);}
.exec-charts-menu-item input[type=checkbox]{
  accent-color:var(--accent2);width:14px;height:14px;cursor:pointer;
}

/* ── Chart canvas wrapper ────────────────────────────────────────────────── */
.exec-chart-canvas-wrap{
  position:relative;width:100%;border-radius:6px;overflow:hidden;
}

/* ── Chart legend ────────────────────────────────────────────────────────── */
.exec-chart-legend{
  display:flex;align-items:center;gap:12px;
  font-size:10px;color:var(--muted);margin-bottom:8px;
}
.exec-legend-dot{
  display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;margin-right:3px;
}

/* ── Milestone card overrides (color-throughout) ─────────────────────────── */
.exec-milestone-list .exec-milestone-row{
  border-bottom:none;
  margin-bottom:4px;
  padding:7px 10px;
}
.exec-milestone-list .exec-milestone-row:last-child{margin-bottom:0;}

/* ── Risk alert card overrides ───────────────────────────────────────────── */
.exec-risk-card{
  border-bottom:none !important;
  border-radius:6px;
  margin-bottom:6px;
  background:color-mix(in srgb, var(--crit) 6%, var(--surface));
  padding:9px 12px;
}
.exec-risk-card:last-child{margin-bottom:0;}
.exec-risk-card .exec-risk-marker{color:var(--warn);font-size:12px;}

/* ── CX Readiness cards ──────────────────────────────────────────────────── */
.exec-cx-readiness{padding-bottom:2px;}
.exec-cx-row{
  display:flex;flex-direction:row;gap:10px;overflow-x:auto;
  padding-bottom:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;
}
.exec-cx-card{
  flex:0 0 180px;background:var(--surface2);border:1px solid var(--border);
  border-radius:8px;padding:12px 14px;transition:box-shadow .15s,border-color .15s;
  min-width:160px;
}
.exec-cx-card:hover{box-shadow:0 2px 10px rgba(0,0,0,0.10);border-color:var(--accent2);}
.exec-cx-name{font-size:12px;font-weight:600;color:var(--text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.exec-cx-badge{font-size:10px;color:var(--muted);margin-bottom:8px;}
.exec-cx-progress{height:5px;background:var(--border);border-radius:3px;overflow:hidden;margin-bottom:6px;}
.exec-cx-prog-fill{height:100%;border-radius:3px;transition:width .4s;}
.exec-cx-counts{font-size:10px;color:var(--muted);margin-bottom:4px;}
.exec-cx-next{font-size:10px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ── Optional sections container ────────────────────────────────────────── */
#execOptionalSections:empty{display:none;}

/* ── Work area progress cards ───────────────────────────────────────────── */
.exec-workarea-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
.exec-workarea-card{
  background:var(--surface);border:1px solid var(--border);border-radius:8px;
  padding:12px 14px;cursor:pointer;
  transition:opacity .35s ease-out,transform .35s ease-out,border-color .15s,box-shadow .15s;
}
.exec-workarea-card:hover{border-color:var(--accent2);box-shadow:0 2px 10px rgba(0,0,0,.10);}
.exec-workarea-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;}
.exec-workarea-name{font-size:13px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%;}
.exec-workarea-badge{font-size:9px;font-family:var(--mono);white-space:nowrap;flex-shrink:0;}
.exec-workarea-bar-track{height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;}
.exec-workarea-bar-fill{height:100%;border-radius:4px;transition:width .6s ease-out;}
.exec-workarea-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:6px;}
.exec-workarea-pct{font-size:11px;font-weight:600;color:var(--text);font-family:var(--mono);}
.exec-workarea-acts{font-size:10px;color:var(--muted);font-family:var(--mono);}

/* ── Shared staggered fade-up entrance (first render only) ─────────────────── */
.exec-card-enter{opacity:0;transform:translateY(8px);}

/* ── Schedule health trend: empty state & trend summary line ───────────────── */
.exec-trend-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:26px 12px;text-align:center;}
.exec-trend-empty-msg{font-size:12px;color:var(--muted);max-width:320px;line-height:1.5;}
.exec-trend-summary{font-size:11px;font-weight:600;font-family:var(--mono);margin-bottom:8px;}

/* Theme overrides for new elements */
body.theme-slate .exec-charts-menu{background:var(--surface);border-color:var(--border);}
body.theme-slate .exec-cx-card{background:var(--surface2);border-color:var(--border);}
body.theme-slate .exec-risk-card{background:color-mix(in srgb, var(--crit) 5%, var(--surface));}

body.theme-blueprint .exec-charts-menu{background:var(--surface);border-color:var(--accent);}
body.theme-blueprint .exec-section-label{color:var(--accent);}
body.theme-blueprint .exec-cx-card{background:var(--surface2);border-color:var(--accent);}
body.theme-blueprint .exec-cx-card:hover{border-color:var(--accent2);}
body.theme-blueprint .exec-risk-card{background:color-mix(in srgb, var(--crit) 5%, var(--surface));}



/* === MOTION LAYER + EXECUTIVE DASHBOARD (ported from claude.ai design 2026-06-17) === */

/* Tab pane cross-fade: replays each time a tab is opened */
@keyframes cfPaneEnter{
  from{opacity:0;transform:translateY(6px);}
  to{opacity:1;transform:translateY(0);}
}
/* pane-level animation retired — the redesign layer animates pane CHILDREN instead
   (.tab-pane.cf-pane-enter > *), avoiding a doubled fade/slide */

/* Topbar status counters tick subtly when they change */
.statusbar .sb-val,#statActive,#statNS,#statDone{transition:color .25s ease;}

/* Schedule rows: staggered reveal as the grid renders.
   --cf-i is set inline per row in JS; capped so late rows don't lag. */
@keyframes cfRowIn{
  from{opacity:0;transform:translateX(-7px);}
  to{opacity:1;transform:translateX(0);}
}
.sched-row.cf-row-in{animation:cfRowIn .4s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--cf-i,0) * 22ms);}

/* Today line: soft pulsing marker so "now" reads as alive */
@keyframes cfTodayPulse{
  0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);}
  50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 0%,transparent);}
}
.sched-today-line::before,.today-line::before{
  content:'';position:absolute;top:-4px;left:-3px;width:8px;height:8px;border-radius:50%;
  background:var(--accent);animation:cfTodayPulse 2.2s ease-out infinite;
}

/* Critical path "current through a wire" — applied to crit rows/items on demand */
@keyframes cfCurrent{
  0%{filter:brightness(1);} 45%{filter:brightness(1.22);} 100%{filter:brightness(1);}
}
.cf-current{animation:cfCurrent .9s ease-in-out;}

/* Logic / SLP cards & risk items: gentle entrance with stagger */
@keyframes cfPopIn{
  from{opacity:0;transform:translateY(8px) scale(.985);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
.cf-pop-in{animation:cfPopIn .42s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--cf-i,0) * 45ms);}

/* Float-tightening flash: at-risk bar/row briefly flares to critical color */
@keyframes cfFloatTighten{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--crit) 0%,transparent);}
  30%{box-shadow:0 0 0 4px color-mix(in srgb,var(--crit) 32%,transparent);}
  100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--crit) 0%,transparent);}
}
.cf-at-risk-flash{animation:cfFloatTighten 1s ease-in-out;}

/* Buttons / interactive chips: crisper press feedback (kept tiny & pro) */
.topbar-btn,.app-tab,.la-view-btn,.tool-pill,.pinned-tool-btn{transition:all .15s ease;}
.topbar-btn:active,.la-view-btn:active,.pinned-tool-btn:active{transform:scale(.96);}

/* Respect user setting — disable all of the above */
@media (prefers-reduced-motion: reduce){
  .tab-pane.cf-pane-enter,.sched-row.cf-row-in,.cf-pop-in,.cf-current,.cf-at-risk-flash{animation:none!important;}
  .sched-today-line::before,.today-line::before{animation:none!important;}
}

/* ── DCMA 14-Point Strip ────────────────────────────────────────────────── */
.exec-dcma-strip{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px 14px;margin-bottom:10px;}
.dcma-badge{padding:2px 8px;border-radius:4px;font-size:9px;font-family:var(--mono);font-weight:700;color:#fff;}
.dcma-bar-seg{transition:opacity .15s, transform .15s;}
.dcma-bar-seg:hover{opacity:.75;transform:scaleY(1.8);}
.dcma-check-row:hover{background:var(--surface2);}

/* ── Quick Actions Menu ─────────────────────────────────────────────────── */
.qa-toggle-row{display:flex;align-items:center;gap:10px;padding:7px 16px;cursor:pointer;font-size:12px;color:var(--text);}
.qa-toggle-row:hover{background:var(--surface2);}
.qa-toggle-row.off{color:var(--dim);}
.qa-check{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0;transition:all .15s;}
.qa-check.on{background:var(--accent);border-color:var(--accent);}
.qa-sep{border-top:1px solid var(--border);margin:4px 0;}
.qa-show-all{padding:8px 16px;font-size:11px;color:var(--accent);font-weight:600;cursor:pointer;}
.qa-show-all:hover{background:var(--surface2);}

/* ── Executive Dashboard Layout ─────────────────────────────────────────── */
.ed-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px;margin-bottom:12px;}
.ed-card-hdr{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.ed-section-lbl{font-size:10px;font-family:var(--mono);letter-spacing:.8px;color:var(--muted);text-transform:uppercase;font-weight:700;}
.ed-dim{font-size:10px;font-family:var(--mono);color:var(--dim);margin-left:auto;}
.ed-link{font-size:12px;color:var(--accent);font-weight:600;cursor:pointer;margin-left:auto;}
.ed-link:hover{text-decoration:underline;}
.ed-mono{font-family:var(--mono);font-size:11px;}
.ed-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block;}
.ed-tag{padding:4px 12px;border-radius:6px;font-size:10px;font-weight:700;}

/* Timeline */
.ed-timeline{padding:14px 24px 16px;}
.ed-tl-wrap{position:relative;height:108px;}
.ed-tl-track{position:absolute;left:0;right:0;top:22px;height:6px;background:var(--surface2);border-radius:3px;}
.ed-tl-progress{position:absolute;left:0;top:22px;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--ok));transform-origin:left;animation:cfGrow .9s cubic-bezier(.2,.8,.2,1) .3s both;}
.ed-tl-today{position:absolute;top:4px;display:flex;flex-direction:column;align-items:center;transform:translateX(-50%);z-index:3;}
.ed-tl-today-label{font-size:8px;font-family:var(--mono);font-weight:700;color:var(--accent);letter-spacing:.6px;margin-bottom:2px;}
.ed-tl-today-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--accent);}
.ed-tl-today-line{width:2px;height:8px;background:var(--accent);}
.ed-tl-mile{position:absolute;top:16px;display:flex;flex-direction:column;align-items:center;transform:translateX(-50%);cursor:pointer;z-index:2;animation:cfNodePop .4s cubic-bezier(.2,.8,.2,1) both;}
.ed-tl-diamond{width:12px;height:12px;transform:rotate(45deg);border:2px solid var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.15);}
.ed-tl-mile-label{display:flex;flex-direction:column;align-items:center;}
.ed-tl-mile-label.lvl1{margin-top:24px;}
.ed-tl-mile-label.lvl2{margin-top:48px;}
.ed-tl-mile-name{font-size:9px;font-family:var(--mono);color:var(--muted);white-space:nowrap;margin-top:5px;text-align:center;max-width:92px;overflow:hidden;text-overflow:ellipsis;}
.ed-tl-mile-days{font-size:10px;font-family:var(--mono);font-weight:700;text-align:center;}

/* Health strip */
.ed-health-strip{padding:14px 24px 14px;}

/* KPI cards */
.ed-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px;}
.ed-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;cursor:pointer;transition:box-shadow .15s,transform .15s;position:relative;overflow:hidden;}
.ed-kpi-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08);transform:translateY(-1px);}
.ed-kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.ed-kpi-label{font-size:10px;font-family:var(--mono);letter-spacing:.6px;color:var(--muted);text-transform:uppercase;}
.ed-kpi-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;transition:transform .2s cubic-bezier(.2,.8,.3,1);}
.ed-kpi-val{font-size:34px;font-weight:800;font-family:var(--mono);line-height:1;letter-spacing:-1px;}
.ed-kpi-sub{font-size:11px;color:var(--muted);margin-top:5px;}
.ed-kpi-sub2{font-size:10px;color:var(--dim);margin-top:2px;}
.ed-kpi-link{font-size:10px;color:var(--accent);font-weight:600;margin-top:6px;}

/* Grid rows */
.ed-grid-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;align-items:stretch;}

/* Executive Overview */
.ed-ring-wrap{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;}
.ed-ring-center{position:absolute;top:0;left:0;right:0;height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;}
.ed-ring-num{font-size:34px;font-weight:800;font-family:var(--mono);line-height:1;}
.ed-ring-sub{font-size:9px;font-family:var(--mono);color:var(--dim);margin-top:2px;}
.ed-ring-label{font-size:11px;font-weight:700;}
.ed-ring-wrap{position:relative;}
.ed-ring-wrap svg{display:block;}
.ed-ring-anim{animation:cfRingDraw .9s cubic-bezier(.2,.8,.2,1) .4s both;}
.ed-dcma-list{display:flex;flex-direction:column;gap:4px;}
.ed-dcma-row{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text);padding:2px 4px;border-radius:4px;cursor:pointer;}
.ed-dcma-row:hover{background:var(--surface2);}
.ed-dcma-check{width:16px;height:16px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0;}
.ed-dcma-check.pass{background:rgba(5,150,105,.08);border:1.5px solid var(--ok);color:var(--ok);}
.ed-dcma-check.fail{background:rgba(220,38,38,.08);border:1.5px solid var(--crit);color:var(--crit);}
.ed-dcma-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ed-dcma-metric{margin-left:auto;font-size:10px;font-family:var(--mono);font-weight:700;flex-shrink:0;}

/* Milestone table */
.ed-mile-table{width:100%;border-collapse:collapse;}
.ed-mile-table th{text-align:left;padding:5px 6px 8px;font-size:9px;font-family:var(--mono);letter-spacing:.6px;color:var(--dim);font-weight:600;border-bottom:1px solid var(--border);}
.ed-mile-table td{padding:9px 6px;font-size:12px;color:var(--text);border-bottom:1px solid var(--surface2);word-break:break-word;vertical-align:top;}
.ed-mile-row{cursor:pointer;transition:background .12s;}
.ed-mile-row:hover{background:var(--surface2);}
.ed-status-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;}

/* Critical Path */
.ed-cp-chain{display:flex;align-items:flex-start;justify-content:center;gap:0;padding:8px 0;flex-wrap:wrap;row-gap:12px;}
.ed-cp-node{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;flex:0 0 auto;}
.ed-cp-node:hover .ed-cp-circle{transform:scale(1.1);}
.ed-cp-circle{width:44px;height:44px;border-radius:50%;background:rgba(0,82,204,.06);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:700;color:var(--accent);transition:transform .15s,box-shadow .15s;line-height:1;}
.ed-cp-name{font-size:9px;font-weight:600;color:var(--text);text-align:center;line-height:1.25;max-width:104px;word-break:break-word;}
.ed-cp-dates{font-size:7.5px;font-family:var(--mono);color:var(--dim);text-align:center;}
.ed-cp-arrow{font-size:13px;color:var(--dim);margin:0 4px;margin-top:20px;}
.ed-cp-arrow.ed-cp-gap{font-size:9px;font-family:var(--mono);font-weight:700;color:var(--muted);white-space:nowrap;background:color-mix(in srgb,var(--muted) 12%,transparent);padding:2px 6px;border-radius:9px;margin-top:14px;}
.ed-cp-sub{font-size:10.5px;color:var(--muted);margin:2px 0 2px;line-height:1.4;}
.ed-cp-sub strong{color:var(--crit);font-weight:700;}

/* ════════ Workload Overview — workstream roadmap ════════ */
.ed-ws-card{padding:16px 20px 16px;}
.ed-ws-chart{margin-top:6px;}
.ed-ws-hdr-row,.ed-ws-row{display:grid;grid-template-columns:168px 1fr;align-items:center;column-gap:8px;}
.ed-ws-hdr-row{height:20px;margin-bottom:8px;}
.ed-ws-months{position:relative;height:16px;}
.ed-ws-month{position:absolute;top:0;transform:translateX(-1px);font-size:9px;font-weight:700;font-family:var(--mono);color:var(--muted);letter-spacing:.5px;white-space:nowrap;}
.ed-ws-yr{color:var(--accent);margin-left:2px;}
.ed-ws-rows{display:flex;flex-direction:column;gap:7px;}
.ed-ws-row{height:24px;}
.ed-ws-label{font-size:11px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:7px;padding-right:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ed-ws-ic{width:19px;height:19px;border-radius:5px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;background:color-mix(in srgb,var(--c,var(--accent)) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--accent)) 42%,transparent);}
.ed-ws-track{position:relative;height:100%;}
/* Annotation callouts pinned over the roadmap */
.ed-ws-callout-row{display:grid;grid-template-columns:168px 1fr;column-gap:8px;margin:2px 0 6px;}
.ed-ws-callband{position:relative;height:88px;}
.ed-ws-callout{position:absolute;top:0;max-width:188px;min-width:92px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--c,var(--accent));border-radius:7px;padding:5px 10px 6px;box-shadow:0 4px 13px rgba(0,0,0,.15);z-index:4;animation:cfWsCalloutIn .45s ease both;}
@keyframes cfWsCalloutIn{from{opacity:0;}to{opacity:1;}}
.ed-ws-lane1{top:46px;}
.ed-ws-co-ttl{font-size:10.5px;font-weight:800;letter-spacing:.2px;color:var(--text);line-height:1.18;}
.ed-ws-co-sub{font-size:9px;font-family:var(--mono);color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ed-ws-co-tail{position:absolute;left:50%;bottom:-5px;width:9px;height:9px;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:translateX(-50%) rotate(45deg);}
.ed-ws-co-l .ed-ws-co-tail{left:16px;}
.ed-ws-co-r .ed-ws-co-tail{left:auto;right:16px;}
.ed-ws-co-light{--c:#3b7fc4;}
.ed-ws-co-peak{--c:#2a5f9e;}
.ed-ws-co-sustained{--c:#e87d2a;}
.ed-ws-co-finish{--c:#6f4fb0;}
.ed-ws-grid-line{position:absolute;top:-2px;bottom:-2px;width:1px;background:var(--border);opacity:.45;}
.ed-ws-bar{position:absolute;top:50%;transform:translateY(-50%);height:13px;border-radius:7px;box-shadow:0 1px 3px rgba(0,0,0,.18);cursor:default;transition:filter .15s,transform .15s;animation:cfGrow .6s cubic-bezier(.2,.8,.2,1) both;transform-origin:left center;}
.ed-ws-bar:hover{filter:brightness(1.1) saturate(1.1);}
.ed-ws-takeaways{margin-top:15px;border-top:1px solid var(--border);padding-top:13px;}
.ed-ws-take-hdr{font-size:10px;font-weight:700;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin-bottom:11px;}
.ed-ws-take-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;}
.ed-ws-take{display:flex;gap:10px;align-items:flex-start;}
.ed-ws-take-ic{font-size:18px;line-height:1.1;flex-shrink:0;}
.ed-ws-take-title{font-size:12px;font-weight:700;margin-bottom:3px;}
.ed-ws-take-txt{font-size:11px;color:var(--muted);line-height:1.45;}
@keyframes cfDrivePulse{0%{box-shadow:0 0 0 0 rgba(220,38,38,.45);}70%{box-shadow:0 0 0 9px rgba(220,38,38,0);}100%{box-shadow:0 0 0 0 rgba(220,38,38,0);}}
.ed-cp-circle.ed-cp-driving{animation:cfDrivePulse 2.2s ease-out infinite;}
.ed-cp-circle.ed-cp-code{font-size:13px;font-weight:800;font-family:var(--mono);letter-spacing:.3px;}
.ed-cp-circle.ed-cp-step{font-size:19px;font-weight:800;font-family:var(--mono);}
.ed-kpi-card:hover .ed-kpi-icon{transform:scale(1.14) rotate(-6deg);}
.ed-mile-ic{display:inline-block;margin-right:6px;font-size:12px;vertical-align:-1px;line-height:1;}

/* Float Distribution */
.ed-float-chart{display:flex;align-items:flex-end;gap:10px;height:120px;padding-top:8px;}
.ed-float-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;}
.ed-float-num{font-size:10px;font-family:var(--mono);font-weight:700;}
.ed-float-bar{width:100%;border-radius:4px 4px 0 0;min-height:4px;transform-origin:bottom;animation:cfBarGrow .5s ease .5s both;}
.ed-float-lbl{font-size:8px;font-family:var(--mono);color:var(--dim);text-align:center;line-height:1.2;}

/* Work Area rows */
.ed-wa-list{display:flex;flex-direction:column;}
.ed-wa-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--surface2);}
.ed-wa-row:last-child{border-bottom:none;}
.ed-wa-name{font-size:12px;font-weight:600;color:var(--text);line-height:1.3;flex:1;min-width:0;padding-right:8px;word-break:break-word;}
.ed-wa-pct{font-size:13px;font-family:var(--mono);font-weight:700;}
.ed-wa-bar-track{flex:1;height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;}
.ed-wa-bar-fill{height:100%;border-radius:3px;transform-origin:left;animation:cfGrow .7s ease .4s both;}
.ed-wa-acts{font-size:9px;font-family:var(--mono);color:var(--dim);flex-shrink:0;}
.ed-wa-crit{font-size:10px;font-family:var(--mono);color:var(--crit);font-weight:700;flex-shrink:0;background:rgba(220,38,38,.06);padding:2px 6px;border-radius:4px;}

/* ── Schedule Comparison tab ─────────────────────────────────────────────── */
.cmp-wrap{display:flex;flex-direction:column;flex:1;overflow:hidden;background:var(--bg);}
.cmp-toolbar{display:flex;align-items:center;gap:9px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;}
.cmp-svg{width:1em;height:1em;display:block;flex-shrink:0;}
.cmp-slot{display:flex;align-items:center;gap:11px;flex:1 1 232px;min-width:188px;background:var(--surface2);border:1px solid var(--border);border-radius:13px;padding:7px 13px;}
.cmp-slot-ic{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cmp-slot-ic .cmp-svg{width:19px;height:19px;}
.cmp-ic-base{background:rgba(99,102,241,.15);color:#6366f1;}
.cmp-ic-cur{background:rgba(16,163,74,.15);color:#16a34a;}
.cmp-slot-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1;}
.cmp-slot-lbl{font-size:9px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;line-height:1.25;}
.cmp-lbl-base{color:#6366f1;}.cmp-lbl-cur{color:#16a34a;}
.cmp-slot-sel{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:transparent;border:none;outline:none;font-size:13.5px;font-weight:600;color:var(--text);cursor:pointer;width:100%;max-width:100%;padding:1px 19px 1px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%2390959e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right center;}
.cmp-slot-sel option{color:#1c2433;background:#fff;}
.cmp-vs2{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:rgba(124,58,237,.13);color:#7c3aed;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;justify-content:center;}
.cmp-vs2-mute{background:var(--surface2);color:var(--dim);font-weight:700;}
.cmp-up2{display:inline-flex;align-items:center;gap:7px;border-radius:10px;border:1px solid;padding:9px 14px;font-size:12.5px;font-weight:600;cursor:pointer;flex-shrink:0;white-space:nowrap;transition:background .12s,border-color .12s;}
.cmp-up2 .cmp-svg{width:15px;height:15px;}
.cmp-up2-base{color:#3b82f6;border-color:rgba(59,130,246,.4);background:rgba(59,130,246,.08);}
.cmp-up2-base:hover{background:rgba(59,130,246,.17);border-color:#3b82f6;}
.cmp-up2-cur{color:#16a34a;border-color:rgba(16,163,74,.4);background:rgba(16,163,74,.08);}
.cmp-up2-cur:hover{background:rgba(16,163,74,.17);border-color:#16a34a;}
.cmp-del-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:rgba(239,68,68,.10);border:1px solid rgba(239,68,68,.34);border-radius:10px;color:#ef4444;cursor:pointer;flex-shrink:0;transition:background .12s,border-color .12s,transform .1s;}
.cmp-del-btn .cmp-svg{width:17px;height:17px;}
.cmp-del-btn:hover{background:#ef4444;color:#fff;border-color:#ef4444;transform:translateY(-1px);}
.cmp-del-btn:active{transform:translateY(0);}
.cmp-compare-btn2{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:11px;padding:10px 18px;font-size:13.5px;font-weight:700;color:#fff;cursor:pointer;flex-shrink:0;white-space:nowrap;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 13px rgba(99,102,241,.34);transition:filter .12s,box-shadow .12s,transform .1s;}
.cmp-compare-btn2 .cmp-svg{width:16px;height:16px;}
.cmp-compare-btn2 .cmp-chev{width:15px;height:15px;opacity:.9;}
.cmp-compare-btn2:hover{filter:brightness(1.07);box-shadow:0 6px 18px rgba(99,102,241,.45);transform:translateY(-1px);}
.cmp-compare-btn2:active{transform:translateY(0);}
.cmp-versions-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--muted);font-size:12px;padding:9px 13px;cursor:pointer;flex-shrink:0;margin-left:auto;}
.cmp-versions-btn:hover{border-color:var(--accent);color:var(--accent);}
.cmp-results{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.cmp-empty{margin:auto;max-width:420px;text-align:center;color:var(--muted);font-size:13px;line-height:1.6;padding:40px 20px;}
.cmp-empty-sub{font-size:11px;color:var(--dim);}
/* header band */
.cmp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--surface2);flex-wrap:wrap;flex-shrink:0;}
.cmp-head-vs{display:flex;align-items:center;gap:16px;}
.cmp-head-side{display:flex;flex-direction:column;gap:1px;}
.cmp-head-tag{font-size:8px;font-weight:800;letter-spacing:1px;color:var(--muted);font-family:var(--mono);}
.cmp-tag-cur{color:var(--accent);}
.cmp-head-name{font-size:13px;font-weight:700;color:var(--text);}
.cmp-head-dd{font-size:9px;font-family:var(--mono);color:var(--dim);}
.cmp-head-arrow{font-size:18px;color:var(--dim);}
.cmp-head-actions{display:flex;gap:8px;align-items:center;}
.cmp-btn{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:11px;padding:6px 10px;cursor:pointer;white-space:nowrap;}
.cmp-btn:hover{border-color:var(--accent);color:var(--accent);}
/* body split: rail + content */
.cmp-body{flex:1;display:flex;overflow:hidden;}
.cmp-rail{width:236px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);background:var(--surface);padding:6px;}
.cmp-rail-grp{font-size:8px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--dim);padding:11px 8px 4px;font-family:var(--mono);}
.cmp-rail-item{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;text-align:left;background:transparent;border:none;border-radius:6px;padding:6px 9px;font-size:11.5px;color:var(--text);cursor:pointer;}
.cmp-rail-item:hover{background:var(--surface2);}
.cmp-rail-item.active{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font-weight:700;}
.cmp-rail-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cmp-rail-cnt{font-size:10px;font-family:var(--mono);color:var(--muted);background:var(--surface2);border-radius:9px;padding:0 7px;min-width:22px;text-align:center;flex-shrink:0;}
.cmp-rail-item.active .cmp-rail-cnt{background:var(--accent);color:#fff;}
.cmp-summary-item{font-weight:700;margin-bottom:2px;}
.cmp-zero{opacity:.45;}
.cmp-zero .cmp-rail-cnt{background:transparent;}
.cmp-content{flex:1;display:flex;flex-direction:column;overflow:hidden;}
/* table */
.cmp-tbl-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0;}
.cmp-search{flex:0 0 280px;max-width:42%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:12px;color:var(--text);outline:none;}
.cmp-search:focus{border-color:var(--accent);}
.cmp-tbl-count{font-size:11px;font-family:var(--mono);color:var(--muted);}
.cmp-btn-sm{margin-left:auto;font-size:11px;padding:5px 9px;}
.cmp-tbl{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.cmp-tbody{flex:1;overflow:auto;position:relative;}
.cmp-thead{display:grid;position:sticky;top:0;z-index:3;background:var(--surface2);border-bottom:2px solid var(--border);}
.cmp-th{padding:7px 9px;font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);font-family:var(--mono);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;}
.cmp-th.r{text-align:right;}
.cmp-th:hover{color:var(--accent);}
.cmp-sort{font-size:9px;}
.cmp-sizer{position:relative;}
.cmp-tr{position:absolute;left:0;right:0;height:30px;display:grid;align-items:center;border-bottom:1px solid var(--border);}
.cmp-tr:hover{background:var(--surface2);}
.cmp-td{padding:0 9px;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:30px;}
.cmp-td.r{text-align:right;font-family:var(--mono);}
.cmp-td:first-child{font-family:var(--mono);font-size:11px;color:var(--muted);}
.cmp-old{color:var(--dim);}
.cmp-pos{color:var(--ok);font-weight:600;}
.cmp-neg{color:var(--crit);font-weight:600;}
/* summary */
.cmp-sum-wrap{flex:1;overflow:auto;padding:16px 20px;}
.cmp-sum-headline{font-size:15px;font-weight:700;color:var(--text);margin-bottom:14px;}
.cmp-sum-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px;}
.cmp-kpi{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;}
.cmp-kpi-n{font-size:22px;font-weight:800;font-family:var(--mono);color:var(--text);line-height:1;}
.cmp-kpi-l{font-size:10px;color:var(--muted);margin-top:5px;text-transform:uppercase;letter-spacing:.5px;}
.cmp-sum-grp{margin-bottom:14px;}
.cmp-sum-grp-ttl{font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--dim);font-family:var(--mono);margin-bottom:7px;}
.cmp-sum-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;}
.cmp-sum-card{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:9px 12px;cursor:pointer;text-align:left;}
.cmp-sum-card:hover{border-color:var(--accent);}
.cmp-sum-card-n{font-size:18px;font-weight:800;font-family:var(--mono);color:var(--text);min-width:42px;}
.cmp-sum-card-l{font-size:11.5px;color:var(--muted);line-height:1.25;}
.cmp-sum-card.cmp-zero{opacity:.5;}
.cmp-sum-note{font-size:10.5px;color:var(--dim);line-height:1.6;margin-top:6px;border-top:1px solid var(--border);padding-top:10px;}
.cmp-warn{color:var(--warn);font-weight:600;}
.cmp-td.cmp-warn,.cmp-td.cmp-pos,.cmp-td.cmp-neg{font-weight:600;}
/* Schedule Health: A/B assess switch + severity badge tints */
.hlth-switch{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden;margin-left:6px;}
.hlth-sw{background:var(--surface);border:none;color:var(--muted);font-size:11px;font-weight:600;padding:5px 12px;cursor:pointer;}
.hlth-sw+.hlth-sw{border-left:1px solid var(--border);}
.hlth-sw.active{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);}
.hlth-sw:disabled{opacity:.4;cursor:not-allowed;}
.cmp-rail-cnt.cmp-neg{background:rgba(220,38,38,.14);color:var(--crit);}
.cmp-rail-cnt.cmp-warn{background:rgba(217,119,6,.14);color:var(--warn);}
/* ── Design pass: export controls (Excel/PDF), colored groups, KPI accents ── */
.cmp-head-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.cmp-exp-lbl{font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--dim);font-family:var(--mono);}
.cmp-exp-grp{margin-left:auto;display:flex;align-items:center;gap:6px;}
.cmp-exp-grp .cmp-btn-sm{margin-left:0;}
.cmp-btn-pdf{border-color:color-mix(in srgb,var(--crit) 40%,var(--border));color:var(--crit);}
.cmp-btn-pdf:hover{border-color:var(--crit);background:rgba(220,38,38,.07);color:var(--crit);}
.cmp-grp-ic{display:inline-block;margin-right:6px;font-size:11px;color:var(--gc,var(--muted));}
.cmp-rail-grp{border-left:3px solid var(--gc,var(--border));padding-left:7px;}
.cmp-sum-grp-ttl{display:flex;align-items:center;}
.cmp-sum-grp-ttl .cmp-grp-ic{color:inherit;font-size:12px;}
.cmp-sum-card{border-left:3px solid var(--gc,var(--border));}
.cmp-kpi{border-top:3px solid var(--border);}
.cmp-kpi.kpi-pos{border-top-color:var(--ok);}
.cmp-kpi.kpi-neg{border-top-color:var(--crit);}
.cmp-kpi.kpi-med{border-top-color:var(--warn);}
.cmp-kpi-n.cmp-warn{color:var(--warn);}

/* ── Schedule Health — dashboard summary (score ring + tiles + group cards) ── */
.hsum-wrap{flex:1;overflow:auto;padding:16px 20px;}
.hsum-hero{display:flex;gap:24px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 24px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.hsum-gauge{position:relative;flex-shrink:0;width:120px;height:120px;}
.hsum-ring{width:120px;height:120px;display:block;}
.hsum-ring-track{fill:none;stroke:var(--surface2);stroke-width:9;}
.hsum-ring-prog{fill:none;stroke-width:9;stroke-linecap:round;transform:rotate(-90deg);transform-origin:60px 60px;stroke-dasharray:var(--circ);stroke-dashoffset:var(--target);animation:hsumRing 1.2s cubic-bezier(.2,.8,.2,1) both;}
@keyframes hsumRing{from{stroke-dashoffset:var(--circ);}}
.hsum-ring-num{fill:var(--text);font-family:var(--mono);font-weight:800;font-size:31px;text-anchor:middle;}
.hsum-ring-sub{fill:var(--dim);font-family:var(--mono);font-size:10px;text-anchor:middle;}
.hsum-grade{position:absolute;top:-1px;right:-1px;width:31px;height:31px;border-radius:50%;color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 9px rgba(0,0,0,.28);}
.hsum-hero-main{flex:1;min-width:0;}
.hsum-hero-top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.hsum-title{font-size:21px;font-weight:800;color:var(--text);letter-spacing:-.3px;}
.hsum-word{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;}
.hsum-verdict{font-size:13px;color:var(--muted);margin:5px 0 2px;line-height:1.45;}
.hsum-sub{font-size:11px;font-family:var(--mono);color:var(--dim);margin-bottom:11px;}
.hsum-segs{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--surface2);}
.hsum-seg{height:100%;animation:hsumGrow .9s ease both;transform-origin:left;}
@keyframes hsumGrow{from{transform:scaleX(0);}}
.hsum-seg-legend{display:flex;gap:18px;margin-top:7px;font-size:10px;color:var(--muted);font-family:var(--mono);flex-wrap:wrap;}
.hsum-seg-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:-1px;}
.hsum-clean{font-size:13px;color:var(--ok);font-weight:700;}
.hsum-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;}
.hsum-tile{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:13px 15px;cursor:pointer;text-align:left;transition:transform .14s,border-color .14s,box-shadow .14s;}
.hsum-tile:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 6px 16px rgba(0,0,0,.1);}
.hsum-tile-ic{font-size:15px;line-height:1;}
.hsum-tile-n{font-size:29px;font-weight:800;font-family:var(--mono);line-height:1.05;}
.hsum-tile-l{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;}
.hsum-grp-hd{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--dim);font-family:var(--mono);margin:2px 0 9px;}
.hsum-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:12px;margin-bottom:6px;}
.hsum-grp{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--gc);border-radius:11px;padding:14px 16px;cursor:pointer;text-align:left;transition:transform .14s,box-shadow .14s;}
.hsum-grp:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.13);}
.hsum-grp-top{display:flex;align-items:center;gap:8px;margin-bottom:9px;}
.hsum-grp-ic{font-size:15px;color:var(--gc);}
.hsum-grp-name{font-size:12px;font-weight:700;color:var(--text);}
.hsum-grp-n{font-size:27px;font-weight:800;font-family:var(--mono);color:var(--gc);line-height:1;}
.hsum-grp-sub{font-size:10px;color:var(--muted);margin-top:4px;font-family:var(--mono);}
.hsum-grp-bar{height:4px;background:var(--surface2);border-radius:2px;margin-top:10px;overflow:hidden;}
.hsum-grp-bar span{display:block;height:100%;background:var(--gc);border-radius:2px;animation:hsumGrow .9s ease .2s both;transform-origin:left;}
@media (prefers-reduced-motion:reduce){.hsum-ring-prog,.hsum-seg,.hsum-grp-bar span{animation:none!important;}}

/* ── Schedule Health — rich dashboard (stat strip + category cards + top issues) ── */
.hd-ico{width:1em;height:1em;flex-shrink:0;}
.hd-wrap{flex:1;overflow:auto;padding:14px 16px;}
.hd-top{display:flex;align-items:center;gap:24px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 20px;margin-bottom:14px;flex-wrap:wrap;}
.hd-head{flex-shrink:0;}
.hd-head-n{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.4px;}
.hd-head-n span{font-size:15px;font-weight:600;color:var(--muted);}
.hd-head-sub{font-size:13px;color:var(--muted);margin-top:1px;}
.hd-head-dd{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dim);font-family:var(--mono);margin-top:7px;}
.hd-head-dd .hd-ico{width:13px;height:13px;}
.hd-kpis{flex:1;display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;min-width:0;}
.hd-kpi{display:flex;align-items:center;gap:9px;background:transparent;border:none;border-left:1px solid var(--border);padding:3px 6px 3px 15px;cursor:pointer;}
.hd-kpi:first-child{border-left:none;}
.hd-kpi-ic .hd-ico{width:22px;height:22px;}
.hd-kpi-tx{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05;}
.hd-kpi-n{font-size:21px;font-weight:800;font-family:var(--mono);}
.hd-kpi-l{font-size:8px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);max-width:86px;margin-top:2px;}
.hd-grid{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:14px;align-items:start;}
.hd-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));gap:14px;align-content:start;}
.hd-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;}
.hd-card-hd{display:flex;align-items:center;gap:8px;padding-bottom:11px;margin-bottom:12px;border-bottom:1px solid var(--border);}
.hd-card-ic .hd-ico{width:17px;height:17px;}
.hd-card-ttl{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;}
.hd-stats{display:flex;gap:8px;flex-wrap:wrap;flex:1;}
.hd-stat{flex:1;min-width:78px;background:transparent;border:none;padding:3px 5px;cursor:pointer;text-align:left;border-radius:7px;transition:background .12s;}
.hd-stat:hover{background:var(--surface2);}
.hd-stat-n{font-size:23px;font-weight:800;font-family:var(--mono);line-height:1.1;}
.hd-stat-l{font-size:10px;color:var(--muted);line-height:1.25;margin:2px 0 6px;min-height:25px;}
.hd-spark{width:100%;height:14px;display:block;}
.hd-stat-inv .hd-ico{width:16px;height:16px;}
.hd-card-link{align-self:stretch;display:flex;align-items:center;justify-content:space-between;background:transparent;border:none;border-top:1px solid var(--border);margin-top:12px;padding:11px 0 1px;font-size:11.5px;font-weight:600;cursor:pointer;}
.hd-card-link .hd-ico{width:15px;height:15px;}
.hd-card-link:hover{filter:brightness(1.1);}
.hd-issues{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;align-self:start;}
.hd-iss-hd{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--text);padding-bottom:11px;margin-bottom:6px;border-bottom:1px solid var(--border);}
.hd-iss-hd-ic{display:flex;}.hd-iss-hd-ic .hd-ico{width:15px;height:15px;}
.hd-iss-count{margin-left:auto;font-size:10px;font-weight:700;font-family:var(--mono);color:var(--muted);background:var(--surface2);border-radius:9px;padding:2px 9px;letter-spacing:0;text-transform:none;}
.hd-iss{display:flex;align-items:center;gap:11px;width:100%;background:transparent;border:none;border-radius:9px;padding:9px 8px;cursor:pointer;text-align:left;transition:background .12s;}
.hd-iss:hover{background:var(--surface2);}
.hd-iss-ic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hd-iss-ic .hd-ico{width:17px;height:17px;}
.hd-iss-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.hd-iss-ttl{font-size:12.5px;font-weight:700;color:var(--text);}
.hd-iss-desc{font-size:10.5px;color:var(--muted);line-height:1.35;}
.hd-iss-badge{font-size:11px;font-weight:800;font-family:var(--mono);border-radius:9px;padding:2px 9px;flex-shrink:0;}
.hd-iss-chev{color:var(--dim);display:flex;flex-shrink:0;}.hd-iss-chev .hd-ico{width:16px;height:16px;}
.hd-iss-all{width:100%;margin-top:8px;background:transparent;border:1px solid var(--border);border-radius:8px;padding:9px;font-size:11.5px;font-weight:600;color:var(--accent);cursor:pointer;}
.hd-iss-all:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent);}
.hd-iss-clean{display:flex;align-items:center;gap:11px;padding:16px 4px;color:var(--muted);font-size:12.5px;font-weight:600;}
.hd-iss-clean .hd-ico{width:26px;height:26px;color:var(--ok);}
.hd-iss-clean span{font-size:10.5px;color:var(--dim);font-weight:400;}
@media (max-width:1080px){.hd-grid{grid-template-columns:1fr;}}
/* compact health-score badge in the top strip */
.hd-score{display:flex;align-items:center;gap:11px;padding-right:18px;margin-right:2px;border-right:1px solid var(--border);flex-shrink:0;}
.hd-score-ring{width:58px;height:58px;flex-shrink:0;}
.hd-score-track{fill:none;stroke:var(--surface2);stroke-width:6;}
.hd-score-prog{fill:none;stroke-width:6;stroke-linecap:round;transform:rotate(-90deg);transform-origin:30px 30px;stroke-dasharray:var(--circ);stroke-dashoffset:var(--target);animation:hsumRing 1.1s cubic-bezier(.2,.8,.2,1) both;}
.hd-score-num{font-family:var(--mono);font-weight:800;font-size:21px;text-anchor:middle;}
.hd-score-side{display:flex;flex-direction:column;line-height:1.15;}
.hd-score-grade{font-size:19px;font-weight:800;font-family:var(--mono);}
.hd-score-lbl{font-size:8.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-top:1px;}
.hd-score-word{font-size:11px;font-weight:700;}
@media (prefers-reduced-motion:reduce){.hd-score-prog{animation:none!important;}}
.sched-tb-sep{display:inline-block;width:1px;height:18px;background:var(--border);margin:0 3px;flex-shrink:0;}

/* Narrative */
.ed-narrative .ed-narr-text{font-size:13px;color:var(--text);line-height:1.8;}

/* Footer */
.ed-footer{display:flex;justify-content:space-between;padding:8px 0;font-size:11px;color:var(--dim);}

/* Animations */
@media (prefers-reduced-motion: reduce){
  .ed-tl-progress,.ed-wa-bar-fill,.ed-float-bar,.ed-ring-anim{animation:none !important;}
}

/* ── Executive Dashboard animation keyframes ────────────────────────────── */
@keyframes cfFadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes cfGrow{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@keyframes cfBarGrow{from{transform:scaleY(0);}to{transform:scaleY(1);}}
@keyframes cfNodePop{from{opacity:0;transform:scale(.6);}to{opacity:1;transform:scale(1);}}
@keyframes cfRingDraw{from{stroke-dashoffset:var(--ring-len,364);}to{stroke-dashoffset:var(--ring-off,76);}}

/* (Old dashboard header button styles removed — replaced by the .dh-btn design at end of file.) */

/* ── 6-Week Look-Ahead grid ─────────────────────────────────────────────── */
.ed-la-hd{font-size:9px;font-family:var(--mono);letter-spacing:.5px;color:var(--dim);padding:0 4px 8px;font-weight:600;}
.ed-la-wk{font-size:8px;font-family:var(--mono);color:var(--dim);text-align:center;padding:0 2px 8px;line-height:1.4;border-left:1px solid var(--surface2);}
.ed-la-grid{display:grid;gap:0;width:100%;}
.ed-la-right{display:flex;align-items:center;gap:10px;margin-left:auto;}
.ed-la-seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.ed-la-seg-btn{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.5px;padding:3px 9px;background:transparent;color:var(--muted);border:none;cursor:pointer;transition:background .15s,color .15s;}
.ed-la-seg-btn:not(:last-child){border-right:1px solid var(--border);}
.ed-la-seg-btn:hover{color:var(--text);background:var(--surface2);}
.ed-la-seg-btn.on{background:var(--accent);color:#fff;}
.ed-la-name{font-size:11px;color:var(--text);font-weight:500;padding:8px 10px 8px 4px;border-top:1px solid var(--surface2);white-space:normal;line-height:1.32;word-break:break-word;display:flex;align-items:center;}
.ed-la-cell{padding:8px 3px;border-top:1px solid var(--surface2);border-left:1px solid var(--surface2);display:flex;align-items:center;}
.ed-la-bar{width:100%;height:10px;border-radius:3px;background:var(--accent);opacity:.85;transform-origin:left;}

/* ── Narrative multi-section ─────────────────────────────────────────────── */
.ed-narr-h{font-size:14px;font-weight:700;color:var(--text);margin:14px 0 4px;}
.ed-narr-h:first-child{margin-top:0;}
.ed-narr-text{font-size:13px;color:var(--text);line-height:1.8;}
.ed-narr-ol{margin:6px 0 0;padding-left:20px;}
.ed-narr-ol li{font-size:13px;color:var(--text);line-height:1.7;margin-bottom:4px;}

/* Project Timeline (tlx) - clean strip + dated ruler */
.ed-tlx{padding:13px 20px 10px;}
.tlx-next{font-size:12px;color:var(--text);margin:4px 0 12px;display:flex;align-items:center;gap:7px;line-height:1.4;}
.tlx-next-ic{font-size:12px;flex-shrink:0;}
.tlx-strip{position:relative;height:128px;}
.tlx-ruler{position:absolute;left:0;right:0;top:0;height:26px;}
.tlx-tick{position:absolute;top:0;transform:translateX(-50%);text-align:center;white-space:nowrap;}
.tlx-tick::after{content:'';position:absolute;left:50%;top:26px;width:1px;height:18px;background:var(--border);opacity:.55;transform:translateX(-50%);}
.tlx-yr{font-size:10px;font-weight:800;font-family:var(--mono);color:var(--accent);letter-spacing:.4px;line-height:1.05;}
.tlx-mo{font-size:9px;font-family:var(--mono);color:var(--dim);}
.tlx-track{position:absolute;left:0;right:0;top:40px;height:6px;background:var(--surface2);border-radius:3px;}
.tlx-prog{position:absolute;left:0;top:40px;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--ok));box-shadow:0 0 8px color-mix(in srgb,var(--accent) 45%,transparent);transform-origin:left;animation:cfGrow .9s cubic-bezier(.2,.8,.2,1) .3s both;}
.tlx-today{position:absolute;top:23px;transform:translateX(-50%);z-index:7;display:flex;flex-direction:column;align-items:center;}
.tlx-today-lbl{font-size:8px;font-weight:800;font-family:var(--mono);color:#fff;background:var(--accent);padding:1px 6px;border-radius:4px;letter-spacing:.5px;animation:tlxPulse 2.2s ease-out infinite;}
.tlx-today-line{width:2px;height:12px;background:var(--accent);opacity:.55;}
.tlx-dd{position:absolute;top:25px;transform:translateX(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;}
.tlx-dd-lbl{font-size:7.5px;font-weight:700;font-family:var(--mono);color:#1a1305;background:var(--warn);padding:0 4px;border-radius:3px;letter-spacing:.3px;white-space:nowrap;}
.tlx-dd-line{width:2px;height:15px;background:var(--warn);opacity:.85;margin-top:1px;}
.tlx-mile{position:absolute;top:34px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:3;}
.tlx-dia{width:13px;height:13px;background:var(--mc);box-shadow:0 1px 3px rgba(0,0,0,.18);animation:tlxGlow 2.6s ease-in-out infinite;}
.tlx-dia.sh-diamond{border-radius:2px;transform:rotate(45deg);}
.tlx-dia.sh-circle{border-radius:50%;}
.tlx-dia.sh-pent{clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);}
.tlx-mile:hover .tlx-dia{filter:brightness(1.2) saturate(1.2);}
.tlx-mlbl{font-size:9px;font-family:var(--mono);color:var(--muted);white-space:normal;text-align:center;max-width:104px;line-height:1.25;overflow-wrap:anywhere;margin-top:6px;}
.tlx-mday{font-size:10px;font-family:var(--mono);font-weight:700;line-height:1.15;}
@keyframes tlxGlow{0%,100%{box-shadow:0 0 0 2px color-mix(in srgb,var(--mc) 16%,transparent),0 0 4px color-mix(in srgb,var(--mc) 35%,transparent);}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--mc) 0%,transparent),0 0 11px color-mix(in srgb,var(--mc) 72%,transparent);}}
@keyframes tlxPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);}70%{box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 0%,transparent);}100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent);}}

/* ════════ Dashboard header: project title + action buttons (theme-aware) ════════ */
.dash-header-actions{display:flex;align-items:center;gap:9px;padding:10px 2px 12px;flex-wrap:wrap;}
.dash-proj{display:flex;flex-direction:column;gap:2px;min-width:0;padding-right:6px;}
.dash-proj-name{font-size:18px;font-weight:800;letter-spacing:-.2px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44vw;
  color:var(--accent);background:linear-gradient(90deg,var(--accent),var(--accent2) 60%,var(--accent));background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:dashTitleGlow 3.6s ease-in-out infinite, dashTitleShift 9s linear infinite;}
.dash-proj-date{font-size:12.5px;font-weight:600;font-family:var(--mono);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw;
  color:var(--accent2);background:linear-gradient(90deg,var(--accent2),var(--accent) 75%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
@keyframes dashTitleGlow{0%,100%{filter:drop-shadow(0 0 1px color-mix(in srgb,var(--accent) 16%,transparent));}50%{filter:drop-shadow(0 0 9px color-mix(in srgb,var(--accent) 48%,transparent));}}
@keyframes dashTitleShift{0%{background-position:0% 50%;}100%{background-position:220% 50%;}}
@media (prefers-reduced-motion: reduce){.dash-proj-name{animation:none;}}
.dash-proj-title-row{display:flex;align-items:center;gap:9px;min-width:0;}
.dash-proj-badge{flex-shrink:0;font-size:9.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;font-family:var(--mono);line-height:1.3;padding:2px 8px;border-radius:5px;
  color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);}
.dash-empty-cta{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:11px 22px;border:none;border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 32%,transparent);transition:filter .12s,transform .1s,box-shadow .12s;}
.dash-empty-cta .dh-ic{font-size:15px;line-height:1;}
.dash-empty-cta:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 42%,transparent);}
.dash-empty-cta:active{transform:translateY(0);}

.dash-view-toggle{display:flex;gap:9px;border:0!important;overflow:visible;flex-shrink:0;border-radius:0;margin-left:auto;}
.dh-btn{display:inline-flex!important;align-items:center;gap:7px;height:38px;padding:0 15px!important;border-radius:10px!important;
  font-size:12px!important;font-weight:600!important;font-family:var(--font)!important;cursor:pointer;white-space:nowrap;flex-shrink:0;
  border:1.5px solid color-mix(in srgb, var(--dh,var(--accent)) 42%, var(--border))!important;
  background:color-mix(in srgb, var(--dh,var(--accent)) 7%, var(--surface))!important;
  color:var(--text)!important;transition:all .15s!important;box-shadow:none!important;}
.dh-btn:hover{border-color:var(--dh,var(--accent))!important;background:color-mix(in srgb, var(--dh,var(--accent)) 14%, var(--surface))!important;box-shadow:0 3px 13px color-mix(in srgb,var(--dh,var(--accent)) 24%,transparent)!important;transform:translateY(-1px);color:var(--text)!important;filter:none!important;}
.dh-btn:active{transform:translateY(0);}
.dh-btn .dh-ic{font-size:15px;line-height:1;display:inline-flex;}
.dash-view-btn.active{background:var(--dh,var(--accent))!important;border-color:var(--dh,var(--accent))!important;color:#fff!important;box-shadow:0 2px 11px color-mix(in srgb,var(--dh,var(--accent)) 38%,transparent)!important;}
body.theme-slate .dash-view-btn.active,body.theme-blueprint .dash-view-btn.active{background:var(--dh,var(--accent))!important;color:#fff!important;}
body.theme-slate .dash-view-btn,body.theme-blueprint .dash-view-btn{background:color-mix(in srgb, var(--dh,var(--accent)) 7%, var(--surface))!important;}

/* ════════ Float Distribution — full-width histogram + category cards ════════ */
.edfd-card{padding:16px 20px 14px;}
.edfd-body{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start;}
.edfd-chart{flex:1 1 470px;min-width:340px;display:flex;flex-direction:column;}
.edfd-cats{position:relative;height:30px;margin-left:32px;}
.edfd-cats span{position:absolute;transform:translateX(-50%);font-size:8px;font-weight:800;font-family:var(--mono);text-align:center;white-space:nowrap;display:flex;flex-direction:column;align-items:center;line-height:1.2;letter-spacing:.2px;}
.edfd-cats small{font-size:7px;font-weight:500;color:var(--muted);letter-spacing:0;}
.edfd-plot{position:relative;height:165px;margin-left:32px;border-bottom:1px solid var(--border);}
.edfd-yaxis{position:absolute;left:-32px;top:0;bottom:0;width:28px;display:flex;flex-direction:column;justify-content:space-between;text-align:right;padding-right:5px;}
.edfd-yaxis span{font-size:8px;font-family:var(--mono);color:var(--dim);line-height:1;}
.edfd-grid{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;}
.edfd-grid i{height:1px;background:var(--surface2);}
.edfd-bars{position:absolute;inset:0;display:flex;align-items:flex-end;gap:1px;z-index:2;}
.edfd-bar{flex:1;border-radius:2px 2px 0 0;min-height:0;transition:opacity .15s;}
.edfd-bar:hover{opacity:.65;}
.edfd-vline{position:absolute;top:-2px;bottom:0;border-left:1.5px dashed;opacity:.65;z-index:3;}
.edfd-xaxis{position:relative;height:14px;margin-left:32px;margin-top:4px;}
.edfd-xaxis span{position:absolute;transform:translateX(-50%);font-size:8px;font-family:var(--mono);color:var(--muted);}
.edfd-xttl{text-align:center;font-size:9px;font-family:var(--mono);color:var(--dim);margin-top:7px;margin-left:32px;}
.edfd-side{flex:1 1 290px;min-width:250px;display:flex;flex-direction:column;gap:12px;}
.edfd-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.edfd-stat{border:1px solid color-mix(in srgb,var(--c) 32%,var(--border));border-radius:11px;padding:11px 13px;cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s,transform .12s;}
.edfd-stat:hover{border-color:var(--c);box-shadow:0 3px 12px color-mix(in srgb,var(--c) 22%,transparent);transform:translateY(-1px);}
.edfd-stat:focus-visible{outline:2px solid var(--c);outline-offset:2px;}
.edfd-stat::after{content:'↗';position:absolute;top:9px;right:11px;font-size:9px;color:var(--c);opacity:0;transition:opacity .15s;font-family:var(--mono);}
.edfd-stat:hover::after{opacity:.8;}
.edfd-stat-top{display:flex;align-items:center;gap:7px;}
.edfd-stat-ic{font-size:14px;color:var(--c);line-height:1;}
.edfd-stat-n{font-size:23px;font-weight:800;font-family:var(--mono);color:var(--c);line-height:1;letter-spacing:-.5px;}
.edfd-stat-p{margin-left:auto;font-size:10px;font-weight:700;font-family:var(--mono);color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent);padding:2px 7px;border-radius:6px;}
.edfd-stat-l{font-size:10px;color:var(--muted);margin-top:7px;font-family:var(--mono);}
.edfd-summary{display:flex;gap:10px;align-items:flex-start;background:color-mix(in srgb,var(--c) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 26%,var(--border));border-radius:11px;padding:12px 14px;}
.edfd-sum-ic{font-size:17px;flex-shrink:0;line-height:1.2;}
.edfd-sum-t{display:block;font-size:12px;font-weight:700;color:var(--text);}
.edfd-sum-d{display:block;font-size:11px;color:var(--muted);margin-top:2px;line-height:1.4;}


/* ===================================================================== */
/* SCHEDULE TABLE REDESIGN (full-width WBS data table, replaces the Gantt) */
/* ===================================================================== */

/* Gantt removed -> table fills the center; left pane goes full width. */
.sched-gantt-right{ display:none !important; }
.sched-gantt-left{ flex:1 1 auto !important; width:auto !important; min-width:0; }
.sched-gantt-rows{ overflow:auto; background:var(--st-surface,#fff) !important; scrollbar-gutter:stable; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }

/* Base (shared) schedule-table variables — light, screenshot style. On the
   .sched-gantt-wrap CLASS (not #id) so the palette classes below can override. */
.sched-gantt-wrap{
  --st-surface:#ffffff; --st-row-bg:#ffffff; --st-row-bg2:#f5f7fb; --st-border:#dde1ec;
  --st-text:#1f2433; --st-muted:#6b7280; --st-head-fg:#cdd0ee;
  --st-head-bg:#2b2a4d; --st-accent:#4f46e5; --st-font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --st-group-bg:#d4d0f2; --st-group-fg:#332c66; --st-group-bd:#bcb6e8;
}
.sch-pal-indigo  { --st-head-bg:#2b2a4d; --st-accent:#4f46e5; --st-head-fg:#cdd0ee; --st-group-bg:#d4d0f2; --st-group-fg:#332c66; --st-group-bd:#bcb6e8; }
.sch-pal-slate   { --st-head-bg:#1e293b; --st-accent:#3b6ea5; --st-head-fg:#c4cedd; --st-group-bg:#d2dbe9; --st-group-fg:#233246; --st-group-bd:#bccadd; }
.sch-pal-emerald { --st-head-bg:#06402f; --st-accent:#059669; --st-head-fg:#bfe6d6; --st-group-bg:#c7e8d8; --st-group-fg:#0a4433; --st-group-bd:#a9d8c2; }
.sch-pal-graphite{ --st-head-bg:#1f2430; --st-accent:#4b5563; --st-head-fg:#c7ccd6; --st-group-bg:#d5dae3; --st-group-fg:#262b36; --st-group-bd:#c1c8d4; }

/* Column header strip */
.sched-gantt-left-hdr.st-head{ background:var(--st-head-bg) !important; border-bottom:none; height:44px; padding:0; align-items:stretch; overflow:hidden; scrollbar-gutter:stable; flex-shrink:0; }
.st-head .st-th{ display:flex; align-items:center; padding:0 12px; font-size:10px; font-weight:700; letter-spacing:.6px; font-family:var(--mono); color:var(--st-head-fg); text-transform:uppercase; border-right:1px solid rgba(255,255,255,.07); white-space:nowrap; box-sizing:border-box; }
.st-head .st-th:first-child{ padding-left:16px; }
.st-head .st-th:last-child{ border-right:none; }

/* Activity rows */
.st-row{ display:grid; align-items:stretch; height:42px; background:var(--st-row-bg); border-bottom:1px solid var(--st-border); cursor:pointer; color:var(--st-text); transition:background .12s; box-sizing:border-box; }
.st-row:nth-child(even){ background:var(--st-row-bg2); }
.st-row:hover{ background:color-mix(in srgb, var(--st-accent) 8%, var(--st-row-bg)); }
.st-row.selected{ background:color-mix(in srgb, var(--st-accent) 13%, var(--st-row-bg)); box-shadow:inset 3px 0 0 var(--st-accent); }
.st-c{ display:flex; align-items:center; padding:0 12px; font-size:12px; font-family:var(--st-font); min-width:0; box-sizing:border-box; border-right:1px solid color-mix(in srgb, var(--st-border) 60%, transparent); }
.st-c:last-child{ border-right:none; }
.st-c-act{ flex-direction:column; align-items:flex-start; gap:1px; justify-content:center; }
.st-act-code{ font-family:var(--mono); font-size:10px; color:var(--st-muted); white-space:nowrap; }
.st-act-name{ font-size:13px; font-family:var(--st-font); color:var(--st-text); font-weight:500; letter-spacing:.1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; line-height:1.25; }
.st-mile .st-act-name{ font-style:italic; color:var(--st-accent); }

/* Status badge */
.st-c-status{ justify-content:flex-start; }
.st-badge{ display:inline-flex; align-items:center; gap:5px; font-family:var(--st-font); font-size:11px; font-weight:600; padding:3px 10px; border-radius:20px; white-space:nowrap; line-height:1.4; }
.st-bd-ic{ font-size:9px; line-height:1; }
.st-bd-ok  { background:rgba(14,138,79,.13);  color:#0e7a46; }
.st-bd-risk{ background:rgba(217,119,6,.15);  color:#b45309; }
.st-bd-crit{ background:rgba(217,38,56,.13);  color:#d92638; }
.st-bd-done{ background:rgba(37,99,235,.12);  color:#2563eb; }

/* Float chip */
.st-c-float{ justify-content:center; }
.st-flcell{ min-width:46px; text-align:center; font-family:var(--mono); font-size:12px; font-weight:700; padding:4px 9px; border-radius:6px; }
.st-fl-ok  { background:rgba(14,138,79,.14); color:#0e7a46; }
.st-fl-risk{ background:rgba(217,119,6,.16); color:#b45309; }
.st-fl-crit{ background:rgba(217,38,56,.14); color:#d92638; }
.st-fl-none{ color:var(--st-muted); }

.st-c-dur { justify-content:center; font-family:var(--mono); font-size:11.5px; color:var(--st-muted); }
.st-c-date{ justify-content:center; font-family:var(--mono); font-size:11.5px; color:var(--st-text); white-space:nowrap; }

/* % complete */
.st-c-pct{ gap:8px; }
.st-pct-track{ flex:1; height:6px; background:color-mix(in srgb, var(--st-text) 11%, transparent); border-radius:4px; overflow:hidden; min-width:26px; }
.st-pct-fill{ display:block; height:100%; border-radius:4px; background:var(--st-accent); }
.st-pf-done{ background:#0e8a4f; }
.st-pf-zero{ background:transparent; }
.st-pct-num{ font-family:var(--mono); font-size:11px; color:var(--st-muted); min-width:30px; text-align:right; }

/* Owner */
.st-c-owner{ gap:8px; cursor:pointer; }
.st-ava{ width:24px; height:24px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:10px; font-weight:700; font-family:var(--mono); letter-spacing:.3px; }
.st-ava.sm{ width:22px; height:22px; }
.st-owner-name{ font-size:12px; font-family:var(--st-font); color:var(--st-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.st-c-owner:hover .st-owner-name{ color:var(--st-accent); }

/* Notes */
.st-c-notes{ justify-content:center; cursor:pointer; }
.st-note-ic{ opacity:.45; font-size:13px; filter:grayscale(.3); }
.st-c-notes:hover .st-note-ic{ opacity:.9; }

/* WBS group rows */
.st-group{ display:flex; align-items:center; gap:8px; height:36px; padding-right:14px; background:var(--st-group-bg); color:var(--st-group-fg); border-bottom:1px solid var(--st-group-bd); cursor:pointer; font-weight:700; }
.st-group-l0{ font-size:13px; }
.st-group-l1{ font-size:12px; background:color-mix(in srgb, var(--st-group-bg) 78%, var(--st-surface)); }
.st-group-l2{ font-size:11.5px; background:color-mix(in srgb, var(--st-group-bg) 58%, var(--st-surface)); }
.st-group:hover{ filter:brightness(.97); }
.st-g-arrow{ font-size:9px; opacity:.6; width:10px; flex-shrink:0; }
.st-g-ic{ font-size:12px; opacity:.85; flex-shrink:0; }
.st-g-name{ flex:1; min-width:0; font-family:var(--st-font); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.st-g-count{ font-family:var(--mono); font-size:10px; background:rgba(0,0,0,.06); padding:1px 8px; border-radius:10px; opacity:.9; flex-shrink:0; }
.st-g-float{ font-family:var(--mono); font-size:10px; font-weight:800; padding:1px 6px; border-radius:5px; flex-shrink:0; }
.st-gf-ok{ color:#0e7a46; } .st-gf-risk{ color:#b45309; } .st-gf-crit{ color:#d92638; }

/* Owner reassign popover */
.st-owner-menu{ position:fixed; z-index:9999; background:#fff; border:1px solid #e6e8f0; border-radius:11px; box-shadow:0 14px 34px rgba(20,24,40,.2); padding:6px; width:224px; font-family:var(--font); }
.st-om-hdr{ font-size:10px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:#6b7280; padding:6px 8px 5px; }
.st-om-item{ display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:7px; cursor:pointer; font-size:12px; color:#1f2433; }
.st-om-item:hover{ background:#f1f2fb; }
.st-om-item.active{ background:#e9e9fb; font-weight:600; }
.st-om-note{ font-size:9px; color:#9aa1ad; padding:6px 8px 3px; border-top:1px solid #eef0f4; margin-top:4px; }

/* Palette menu (reuses .sched-col-menu container) */
.st-pal-row{ display:flex; align-items:center; gap:9px; padding:6px 10px; cursor:pointer; font-size:12px; border-radius:6px; color:var(--text); }
.st-pal-row:hover{ background:var(--surface2); }
.st-pal-row.active{ font-weight:700; }
.st-pal-dot{ width:13px; height:13px; border-radius:4px; flex-shrink:0; }
.st-pal-swatch{ display:inline-block; width:11px; height:11px; border-radius:3px; background:#4f46e5; vertical-align:middle; margin-right:5px; }
.st-pal-swatch[data-pal="slate"]{ background:#334155; }
.st-pal-swatch[data-pal="emerald"]{ background:#047857; }
.st-pal-swatch[data-pal="graphite"]{ background:#374151; }

/* Keep the schedule table readable on the dark app theme too */
body.theme-blueprint .sched-gantt-rows{ background:var(--st-surface); }

/* Virtualized drill items: single-line text keeps row heights fixed */
.drill-item-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.drill-item-wbs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%;}
.drill-item-dates{white-space:nowrap;}
.drill-item-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal;}

/* Configurable schedule columns: draggable headers, new optional cells, menu */
.st-th-col{ cursor:grab; user-select:none; -webkit-user-select:none; }
.st-th-col:active{ cursor:grabbing; }
.st-th-dragging{ opacity:.45; }
.st-th-over{ box-shadow:inset 3px 0 0 #ffffff; }
.st-th-act{ cursor:default; }
.st-c-lag{ justify-content:center; font-family:var(--mono); font-size:11.5px; color:var(--st-muted); }
.st-c-cal{ justify-content:flex-start; font-family:var(--st-font); font-size:11px; color:var(--st-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.st-c-cstr{ justify-content:flex-start; font-family:var(--st-font); font-size:11px; color:var(--st-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sched-col-menu{ max-height:62vh; overflow:auto; }
.sched-col-reset{ margin-top:4px; padding:7px 12px; font-size:11px; font-weight:600; color:var(--accent); cursor:pointer; border-top:1px solid var(--border); }
.sched-col-reset:hover{ background:var(--surface2); }

/* Schedule filter chips */
.sched-chips{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:7px 12px; background:var(--surface); border-bottom:1px solid var(--border); flex-shrink:0; }
.sched-chips-lbl{ font-size:10px; font-family:var(--mono); color:var(--muted); text-transform:uppercase; letter-spacing:.5px; margin-right:2px; }
.sched-chip{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; padding:3px 7px 3px 10px; border-radius:20px; background:color-mix(in srgb,var(--accent) 13%,transparent); color:var(--accent); cursor:pointer; }
.sched-chip:hover{ background:color-mix(in srgb,var(--accent) 22%,transparent); }
.sched-chip-x{ font-size:13px; line-height:1; opacity:.7; }
.sched-chip-clear{ font-size:11px; color:var(--muted); cursor:pointer; margin-left:4px; text-decoration:underline; }
.sched-chip-clear:hover{ color:var(--crit); }

/* ── What-If Analysis tab ── */
.wf-wrap{flex:1;overflow:auto;padding:16px;}
.wf-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:14px;}
.wf-head-ic{width:40px;height:40px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);}
.wf-head-ic svg{width:21px;height:21px;}
.wf-head-ttl{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.3px;}
.wf-head-sub{font-size:12.5px;color:var(--muted);margin-top:2px;max-width:780px;line-height:1.5;}
.wf-controls{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:14px;}
.wf-drivers{display:flex;flex-direction:column;gap:9px;}
.wf-driver{display:flex;align-items:center;gap:10px;}
.wf-driver-n{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;font-family:var(--mono);background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent);}
.wf-pick{flex:1;min-width:0;background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;padding:9px 12px;outline:none;}
.wf-pick:focus{border-color:var(--accent);}
.wf-shift{display:flex;gap:6px;flex-shrink:0;}
.wf-days{width:78px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;padding:9px 10px;outline:none;}
.wf-dir{background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12.5px;padding:9px 10px;outline:none;cursor:pointer;}
.wf-actions{display:flex;gap:9px;margin-top:13px;}
.wf-run{display:inline-flex;align-items:center;gap:7px;border:none;border-radius:9px;padding:10px 20px;font-size:13.5px;font-weight:700;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 4px 13px color-mix(in srgb,var(--accent) 32%,transparent);transition:filter .12s,transform .1s,box-shadow .12s;}
.wf-run:hover{filter:brightness(1.07);transform:translateY(-1px);}
.wf-run:active{transform:translateY(0);}
.wf-reset{background:transparent;border:1px solid var(--border);border-radius:9px;color:var(--muted);font-size:12.5px;padding:10px 16px;cursor:pointer;}
.wf-reset:hover{border-color:var(--accent);color:var(--accent);}
.wf-empty{display:flex;align-items:center;gap:13px;justify-content:flex-start;text-align:left;color:var(--muted);font-size:13px;line-height:1.55;padding:34px 24px;border:1px dashed var(--border);border-radius:12px;}
.wf-empty svg{width:30px;height:30px;flex-shrink:0;color:var(--dim);}
.wf-empty b{color:var(--text);}
.wf-empty-eg{font-size:11.5px;color:var(--dim);}
.wf-empty-warn{border-color:color-mix(in srgb,var(--warn) 45%,transparent);}
.wf-rwrap{display:flex;flex-direction:column;gap:13px;}
.wf-warnline{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--warn);}
.wf-warnline svg{width:15px;height:15px;}
.wf-narr{display:flex;align-items:flex-start;gap:11px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:12px;padding:13px 16px;font-size:13.5px;line-height:1.55;color:var(--text);}
.wf-narr svg{width:19px;height:19px;flex-shrink:0;margin-top:1px;color:var(--accent);}
.wf-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.wf-kpi{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:11px 14px;}
.wf-kpi-n{font-size:19px;font-weight:800;font-family:var(--mono);color:var(--text);}
.wf-kpi-d{font-size:13px;font-weight:700;}
.wf-kpi-l{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-top:3px;}
.wf-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 16px;}
.wf-card-hd{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text);padding-bottom:10px;margin-bottom:4px;border-bottom:1px solid var(--border);}
.wf-card-hd svg{width:16px;height:16px;flex-shrink:0;}
.wf-card-cnt{margin-left:auto;font-size:10px;font-weight:700;font-family:var(--mono);color:var(--muted);background:var(--surface2);border-radius:9px;padding:2px 9px;letter-spacing:0;text-transform:none;}
.wf-driver-tag{font-size:11px;font-weight:800;font-family:var(--mono);border-radius:7px;padding:1px 7px;letter-spacing:0;}
.wf-list{display:flex;flex-direction:column;}
.wf-li{display:flex;align-items:center;gap:11px;padding:8px 4px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);}
.wf-li:last-child{border-bottom:none;}
.wf-li-ic{width:28px;height:28px;border-radius:7px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface2);}
.wf-li-ic svg{width:15px;height:15px;}
.wf-li-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.wf-li-name{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wf-li-sub{font-size:10.5px;color:var(--muted);font-family:var(--mono);}
.wf-li-delta{font-size:13px;font-weight:800;font-family:var(--mono);flex-shrink:0;}
.wf-none{font-size:12px;color:var(--muted);padding:8px 4px;}
.wf-note{font-size:10.5px;color:var(--dim);line-height:1.5;border-top:1px solid var(--border);padding-top:10px;}
.wf-better{color:var(--ok);}
.wf-worse{color:var(--crit);}
.wf-flat{color:var(--dim);}
.wf-li-ic.wf-better{background:color-mix(in srgb,var(--ok) 16%,transparent);}
.wf-li-ic.wf-worse{background:color-mix(in srgb,var(--crit) 16%,transparent);}
.wf-driver-tag.wf-better{background:color-mix(in srgb,var(--ok) 16%,transparent);}
.wf-driver-tag.wf-worse{background:color-mix(in srgb,var(--crit) 16%,transparent);}
/* ── What-If: browsable schedule picker + driver tray ── */
.wf-pickwrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:14px;overflow:hidden;}
.wf-pick-hd{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border);}
.wf-pick-ttl{font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text);}
.wf-pick-cnt{font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted);font-family:var(--mono);font-size:10.5px;margin-left:6px;}
.wf-pick-tools{margin-left:auto;display:flex;gap:8px;align-items:center;}
.wf-mile-toggle{background:var(--surface2);border:1px solid var(--border);border-radius:7px;color:var(--muted);font-size:11px;padding:6px 11px;cursor:pointer;}
.wf-mile-toggle.on{background:color-mix(in srgb,var(--accent2) 16%,transparent);border-color:var(--accent2);color:var(--accent2);}
.wf-search{background:var(--surface2);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:12.5px;padding:7px 11px;outline:none;width:240px;max-width:42vw;}
.wf-search:focus{border-color:var(--accent);}
.wf-sched-head,.wf-row{display:grid;grid-template-columns:38px 132px minmax(0,1fr) 104px 104px 58px;align-items:center;gap:8px;padding:0 14px;}
.wf-sched-head{height:30px;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface2);}
.wf-sched-head span:last-child{text-align:right;}
.wf-sched{max-height:340px;overflow-y:auto;}
.wf-row{height:32px;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);cursor:pointer;font-size:12px;}
.wf-row:hover{background:var(--surface2);}
.wf-row.sel{background:color-mix(in srgb,var(--accent) 12%,transparent);}
.wf-row-pick{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:800;font-family:var(--mono);color:var(--muted);background:var(--surface2);border:1px solid var(--border);}
.wf-row.sel .wf-row-pick{background:var(--accent);color:#fff;border-color:var(--accent);}
.wf-row-id{font-family:var(--mono);font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wf-row-name{display:flex;align-items:center;gap:6px;min-width:0;color:var(--text);}
.wf-row-name>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wf-row-mile{flex-shrink:0;color:var(--accent2);display:flex;}.wf-row-mile svg{width:13px;height:13px;}
.wf-row-d{font-family:var(--mono);font-size:10.5px;color:var(--muted);white-space:nowrap;}
.wf-row-tf{font-family:var(--mono);font-size:11px;color:var(--muted);text-align:right;}
.wf-row-more{padding:10px 14px;font-size:11px;color:var(--dim);font-style:italic;}
.wf-tray{display:flex;flex-wrap:wrap;gap:9px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:14px;}
.wf-slot{display:flex;align-items:center;gap:9px;flex:1 1 300px;min-width:255px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:7px 10px;}
.wf-slot.empty{opacity:.75;border-style:dashed;}
.wf-slot-n{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;font-family:var(--mono);background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--accent);}
.wf-slot-name{flex:1;min-width:0;font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wf-slot-ph{flex:1;min-width:0;font-size:11.5px;color:var(--dim);}
.wf-slot-days{width:60px;background:var(--surface);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:12.5px;padding:6px 8px;outline:none;flex-shrink:0;}
.wf-slot-dir{background:var(--surface);border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:11.5px;padding:6px 8px;outline:none;cursor:pointer;flex-shrink:0;}
.wf-slot-x{background:transparent;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;flex-shrink:0;padding:0 4px;}
.wf-slot-x:hover{color:var(--crit);}
.wf-max-note{flex-basis:100%;font-size:11px;color:var(--warn);}
.wf-tray-actions{display:flex;gap:9px;margin-left:auto;flex-shrink:0;align-items:center;}
.wf-pdf{background:transparent;border:1px solid var(--border);border-radius:9px;color:var(--muted);font-size:12.5px;padding:10px 14px;cursor:pointer;}
.wf-pdf:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}
.wf-pdf:disabled{opacity:.45;cursor:not-allowed;}
/* ── What-If: WBS tree picker (overrides the flat-list styles above) ── */
.wf-sched-head{display:flex;align-items:center;height:30px;padding:0 14px;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface2);}
.wf-sh-name{flex:1;}
.wf-wbs,.wf-row{display:flex;align-items:center;gap:9px;min-height:32px;height:auto;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);cursor:pointer;font-size:12px;padding-right:14px;}
.wf-wbs{font-weight:700;background:color-mix(in srgb,var(--surface2) 55%,transparent);}
.wf-wbs:hover,.wf-row:hover{background:var(--surface2);}
.wf-row.sel{background:color-mix(in srgb,var(--accent) 13%,transparent);}
.wf-wbs-caret{width:14px;flex-shrink:0;color:var(--muted);font-size:10px;text-align:center;}
.wf-wbs-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);}
.wf-wbs-cnt{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:1px 9px;margin-right:10px;}
.wf-row-pick{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:800;font-family:var(--mono);color:var(--muted);background:var(--surface2);border:1px solid var(--border);}
.wf-row.sel .wf-row-pick{background:var(--accent);color:#fff;border-color:var(--accent);}
.wf-row-id{font-family:var(--mono);font-size:10px;color:var(--muted);white-space:nowrap;flex-shrink:0;width:118px;overflow:hidden;text-overflow:ellipsis;}
.wf-row-name{flex:1;min-width:0;display:flex;align-items:center;gap:6px;color:var(--text);}
.wf-row-name>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wf-row-mile{flex-shrink:0;color:var(--accent2);display:flex;}.wf-row-mile svg{width:13px;height:13px;}
.wf-cl{display:flex;align-items:center;flex-shrink:0;margin-left:auto;}
.wf-cd{width:96px;text-align:right;font-family:var(--mono);font-size:10px;color:var(--muted);}
.wf-ctf{width:52px;text-align:right;font-family:var(--mono);font-size:11px;color:var(--muted);}
.wf-xpand{background:var(--surface2);border:1px solid var(--border);border-radius:7px;color:var(--muted);font-size:11px;padding:6px 10px;cursor:pointer;}
.wf-xpand:hover{border-color:var(--accent);color:var(--accent);}
/* ── What-If: color + liveliness (theme-aware; --wc set per WBS group) ── */
.wf-pick-hd{background:color-mix(in srgb,var(--accent) 6%,var(--surface));}
.wf-pick-ttl{color:var(--accent);}
.wf-sched-head{background:color-mix(in srgb,var(--accent) 7%,var(--surface2));}
.wf-sh-name{color:var(--accent);}
.wf-wbs{border-left:3px solid var(--wc);}
.wf-wbs-ic{display:flex;flex-shrink:0;color:var(--wc);}
.wf-wbs-ic svg{width:15px;height:15px;}
.wf-wbs-cnt{color:var(--wc);background:color-mix(in srgb,var(--wc) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--wc) 32%,transparent);}
.wf-row{border-left:3px solid color-mix(in srgb,var(--wc) 28%,transparent);}
.wf-row-pick{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--accent) 30%,transparent);}
.wf-row.sel .wf-row-pick{background:var(--accent);color:#fff;border-color:var(--accent);}
.wf-mrow{background:color-mix(in srgb,var(--accent2) 7%,transparent);}
.wf-mrow .wf-row-name>span:last-child{color:var(--accent2);font-weight:600;}
.wf-slot-n{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;}
.wf-slot.lead{border-left:3px solid var(--ok);}
.wf-slot.delay{border-left:3px solid var(--crit);}
/* ── Dashboard: Top Issues section (theme-aware; --sc = severity color per row) ── */
#edTopIssues .ti-flag{display:flex;color:var(--crit);}
#edTopIssues .ti-flag svg{width:15px;height:15px;}
.ti-total{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:3px 11px;}
.ti-grid{display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;overflow-y:hidden;padding-bottom:8px;scroll-snap-type:x proximity;scrollbar-width:thin;}
.ti-grid::-webkit-scrollbar{height:8px;}
.ti-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px;}
.ti-grid::-webkit-scrollbar-thumb:hover{background:var(--dim);}
.ti-item{flex:0 0 312px;scroll-snap-align:start;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-left:3px solid var(--sc);border-radius:10px;background:var(--surface);cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s,background .15s;}
.ti-item:hover{background:color-mix(in srgb,var(--sc) 5%,var(--surface));box-shadow:0 6px 16px color-mix(in srgb,var(--sc) 18%,transparent);transform:translateY(-2px);border-color:color-mix(in srgb,var(--sc) 45%,var(--border));}
.ti-item:focus-visible{outline:2px solid var(--sc);outline-offset:2px;}
.ti-ic{width:38px;height:38px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--sc);background:color-mix(in srgb,var(--sc) 14%,transparent);border:1px solid color-mix(in srgb,var(--sc) 32%,transparent);}
.ti-ic svg{width:20px;height:20px;}
.ti-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ti-ttl{font-size:13.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ti-desc{font-size:11px;color:var(--muted);line-height:1.35;}
.ti-rt{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.ti-cnt{font-family:var(--mono);font-size:15px;font-weight:800;color:color-mix(in srgb,var(--sc) 68%,var(--text));background:color-mix(in srgb,var(--sc) 14%,transparent);border-radius:8px;padding:3px 10px;min-width:34px;text-align:center;}
.ti-chev{font-size:20px;color:var(--dim);line-height:1;transition:transform .15s,color .15s;}
.ti-item:hover .ti-chev{color:var(--sc);transform:translateX(3px);}
.ti-grid:not(.ti-show-all) .ti-extra{display:none;}
.ti-foot{margin-top:12px;display:flex;justify-content:center;}
.ti-viewall{background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--accent);font-weight:700;font-size:12px;padding:9px 18px;cursor:pointer;transition:background .15s,border-color .15s;font-family:var(--font);}
.ti-viewall:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface2));border-color:var(--accent);}
.ti-viewall:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.ti-empty{display:flex;align-items:center;gap:12px;color:var(--ok);padding:8px 4px;}
.ti-empty svg{width:26px;height:26px;flex-shrink:0;color:var(--ok);}
.ti-empty b{display:block;color:var(--text);font-size:13px;}
.ti-empty span{font-size:11px;color:var(--muted);}
/* ── What-If: full downstream chain (moved + float-shielded toggle) ── */
.wf-held{margin-top:8px;border-top:1px solid var(--border);padding-top:6px;}
.wf-held-btn{display:flex;align-items:center;gap:7px;width:100%;background:none;border:none;cursor:pointer;color:var(--muted);font-size:11.5px;font-family:var(--font);font-weight:600;padding:5px 2px;text-align:left;}
.wf-held-btn:hover{color:var(--accent);}
.wf-held-car{font-size:9px;flex-shrink:0;}
.wf-held-list{margin-top:3px;}
.wf-li-held{opacity:.6;}
.wf-li-held .wf-li-delta{font-style:italic;color:var(--muted);}
/* ── Collaboration (collab.js): top-bar bell + user switcher, My Work tab, discussion slide-over ── */
.cb-ava{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#fff;font-weight:700;font-size:11px;font-family:var(--font);flex-shrink:0;line-height:1;}
.cb-ava.xs{width:20px;height:20px;font-size:9px;}.cb-ava.sm{width:26px;height:26px;font-size:10px;}.cb-ava.lg{width:44px;height:44px;font-size:15px;}
.cb-topwrap{position:relative;display:flex;align-items:center;gap:6px;margin-right:8px;}
.cb-bell{position:relative;background:transparent;border:1px solid var(--border);border-radius:8px;width:34px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);}
.cb-bell:hover{color:var(--accent);border-color:var(--accent);}
.cb-bell svg{width:17px;height:17px;}
.cb-bell-badge{position:absolute;top:-6px;right:-6px;background:var(--crit);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 3px;}
.cb-userbtn{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);border-radius:8px;padding:3px 8px 3px 4px;cursor:pointer;color:var(--text);font-family:var(--font);}
.cb-userbtn:hover{border-color:var(--accent);}
.cb-userbtn-nm{font-size:12px;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cb-caret{font-size:9px;color:var(--muted);}
.cb-menu{position:absolute;top:calc(100% + 7px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.16);z-index:300;min-width:308px;max-height:430px;overflow-y:auto;}
.cb-menu-h{display:flex;align-items:center;padding:9px 12px;border-bottom:1px solid var(--border);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);}
.cb-menu-act{margin-left:auto;color:var(--accent);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:600;font-size:11px;}
.cb-mu{display:flex;align-items:center;gap:9px;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text);}
.cb-mu:hover{background:var(--surface2);}
.cb-mu.on{background:color-mix(in srgb,var(--accent) 8%,transparent);}
.cb-mu-nm{flex:1;}.cb-mu-ck{display:flex;}.cb-mu-ck svg{width:15px;height:15px;color:var(--accent);}
.cb-nf{display:flex;gap:9px;padding:9px 12px;cursor:pointer;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);}
.cb-nf:hover{background:var(--surface2);}
.cb-nf.unread{background:color-mix(in srgb,var(--accent) 5%,transparent);}
.cb-nf-main{flex:1;min-width:0;}
.cb-nf-tx{font-size:12.5px;color:var(--text);}
.cb-nf-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cb-nf-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);align-self:center;flex-shrink:0;}
.cb-nf-empty{padding:26px 12px;text-align:center;color:var(--muted);font-size:12px;display:flex;flex-direction:column;align-items:center;gap:8px;}
.cb-nf-empty svg{width:24px;height:24px;color:var(--dim);}
/* discussion slide-over */
.cb-ov{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s;z-index:400;}
.cb-ov.open{opacity:1;pointer-events:auto;}
.cb-panel{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:92vw;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;z-index:401;}
.cb-panel.open{transform:none;}
.cb-ph{display:flex;align-items:flex-start;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--border);}
.cb-ph-main{flex:1;min-width:0;}
.cb-ph-code{font-family:var(--mono);font-size:12px;color:var(--accent);font-weight:700;}
.cb-ph-name{font-size:15px;font-weight:600;color:var(--text);margin-top:2px;}
.cb-x{background:transparent;border:none;font-size:22px;line-height:1;color:var(--muted);cursor:pointer;}
.cb-x:hover{color:var(--text);}
.cb-assign{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted);}
.cb-assign-lbl{flex-shrink:0;}
#cbPAssign{display:flex;align-items:center;gap:7px;}
.cb-asel{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;padding:4px 8px;font-family:var(--font);cursor:pointer;}
.cb-alert{display:flex;align-items:center;gap:8px;margin:12px 18px 0;padding:8px 11px;border-radius:8px;font-size:12px;}
.cb-alert svg{width:16px;height:16px;flex-shrink:0;}
.cb-alert.crit{background:color-mix(in srgb,var(--crit) 10%,transparent);color:var(--crit);}
.cb-alert.warn{background:color-mix(in srgb,var(--warn) 13%,transparent);color:var(--warn);}
.cb-thread{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:12px;}
.cb-msg{display:flex;gap:9px;align-items:flex-start;}
.cb-msg.me{flex-direction:row-reverse;}
.cb-bub{max-width:78%;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:7px 11px;}
.cb-msg.me .cb-bub{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,var(--border));}
.cb-bub-h{display:flex;gap:8px;align-items:baseline;margin-bottom:2px;}
.cb-bub-nm{font-size:12px;font-weight:700;color:var(--text);}
.cb-bub-tm{font-size:10px;color:var(--dim);}
.cb-bub-tx{font-size:13px;color:var(--text);line-height:1.45;white-space:pre-wrap;word-break:break-word;}
.cb-sys{align-self:center;font-size:11px;color:var(--muted);background:var(--surface2);border-radius:20px;padding:3px 12px;text-align:center;}
.cb-empty{margin:auto;text-align:center;color:var(--muted);font-size:12px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;}
.cb-empty svg{width:26px;height:26px;color:var(--dim);}
.cb-composer{display:flex;gap:8px;align-items:flex-end;padding:12px 16px;border-top:1px solid var(--border);}
.cb-composer textarea{flex:1;resize:none;max-height:120px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:13px;color:var(--text);font-family:var(--font);outline:none;line-height:1.4;}
.cb-composer textarea:focus{border-color:var(--accent);}
.cb-send{width:38px;height:38px;flex-shrink:0;border:none;border-radius:10px;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.cb-send:hover{background:var(--accent2);}
.cb-send svg{width:18px;height:18px;}
/* My Work tab */
.cb-mywork{padding:18px 22px;}
.cb-mw-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.cb-mw-head .cb-ava{margin-left:auto;}
.cb-mw-ttl{font-size:20px;font-weight:700;color:var(--text);}
.cb-mw-sub{font-size:12.5px;color:var(--muted);margin-top:3px;}
.cb-sec-h{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin:6px 0 10px;}
.cb-sec-h svg{width:16px;height:16px;}
.cb-sec-n{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:1px 9px;font-family:var(--mono);font-size:11px;}
.cb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:10px;}
.cb-card{border:1px solid var(--border);border-radius:10px;padding:11px 13px;background:var(--surface);cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s;}
.cb-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.10);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));}
.cb-card-top{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.cb-card-code{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);}
.cb-pill{font-size:10px;font-weight:700;border-radius:10px;padding:1px 8px;}
.cb-pill.crit{background:color-mix(in srgb,var(--crit) 12%,transparent);color:var(--crit);}
.cb-pill.warn{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn);}
.cb-unread{margin-left:auto;background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.cb-card-name{font-size:13px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;}
.cb-card-sub{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);}
.cb-card-sub svg{width:13px;height:13px;flex-shrink:0;}
.cb-card-sub span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cb-find{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--text);font-family:var(--font);outline:none;margin-bottom:10px;}
.cb-find:focus{border-color:var(--accent);}
.cb-none{color:var(--muted);font-size:12px;padding:6px 2px;}
.cb-tab-empty{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:13px;padding:40px 22px;}
.cb-tab-empty svg{width:30px;height:30px;color:var(--dim);flex-shrink:0;}
/* What-If/collab: keyboard focus rings (a11y) */
.cb-bell:focus-visible,.cb-userbtn:focus-visible,.cb-send:focus-visible,.cb-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.cb-x:focus-visible{outline:2px solid var(--muted);outline-offset:-2px;}
/* ── Top-bar chrome colors that adapt to dark-chrome vs light themes (fix faded text on theme change) ── */
:root{ --tb-text:#1c2433; --tb-muted:#5f6b80; --tb-bd:var(--border); --tb-hover:var(--surface2); }
body.light-mode{ --tb-text:#1c2033; --tb-muted:#5a6278; --tb-bd:#d0d4e0; --tb-hover:#eef0f5; }
body.theme-slate{ --tb-text:#ffffff; --tb-muted:#9fb6d4; --tb-bd:rgba(255,255,255,.16); --tb-hover:rgba(255,255,255,.08); }
body.theme-site{ --tb-text:#ffffff; --tb-muted:#c2b4a0; --tb-bd:rgba(255,255,255,.14); --tb-hover:rgba(255,255,255,.08); }
body.theme-blueprint{ --tb-text:#dce6f5; --tb-muted:#8ba3c4; --tb-bd:rgba(45,199,232,.24); --tb-hover:rgba(45,199,232,.10); }
.cb-bell{color:var(--tb-muted);border-color:var(--tb-bd);}
.cb-bell:hover{color:var(--accent);border-color:var(--accent);background:var(--tb-hover);}
.cb-userbtn{color:var(--tb-text);border-color:var(--tb-bd);background:var(--tb-hover);border-radius:20px;padding:3px 9px 3px 4px;}
.cb-userbtn:hover{border-color:var(--accent);}
.cb-caret{color:var(--tb-muted);}
.stat-chip .sb-label,.topbar-chip .chip-label{color:var(--tb-muted);}
.stat-chip .sb-val,#topbarDataDate{color:var(--tb-text);}
/* ── Job-site location autocomplete dropdown ── */
.cf-ac-wrap{position:relative;max-width:360px;}
.cf-ac-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.18);max-height:264px;overflow-y:auto;}
.cf-ac-item{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);}
.cf-ac-item:last-child{border-bottom:none;}
.cf-ac-item:hover,.cf-ac-item.on{background:color-mix(in srgb,var(--accent) 10%,var(--surface));}
.cf-ac-name{flex:1;min-width:0;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cf-ac-co{font-size:11px;color:var(--muted);flex-shrink:0;}
.cf-ac-empty{padding:11px 12px;font-size:12px;color:var(--muted);}

/* ── Top-bar pills redesign (bell + user + settings), accent carets ── */
.cb-topwrap{gap:8px;}
.cb-bell{width:42px;height:38px;border-radius:12px;}
.cb-bell svg{width:18px;height:18px;}
.cb-userbtn{height:38px;border-radius:22px;padding:3px 12px 3px 3px;gap:8px;}
.cb-userbtn .cb-ava{width:31px;height:31px;font-size:11px;}
.cb-caret{color:var(--accent);font-size:10px;}
.cb-settingsbtn{display:flex;align-items:center;gap:8px;height:38px;border-radius:22px;padding:0 16px;background:var(--tb-hover);border:1px solid var(--tb-bd);color:var(--tb-text);cursor:pointer;font-family:var(--font);font-size:13.5px;font-weight:600;}
.cb-settingsbtn:hover{border-color:var(--accent);}
.cb-settingsbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.cb-set-ic{display:flex;color:var(--accent);}
.cb-set-ic svg{width:18px;height:18px;}
.cb-set-tx{color:var(--tb-text);}
/* Merged Charts & Views menu now holds two groups (chart sections + show/hide) — widen + scroll */
.exec-charts-menu{min-width:262px;max-height:min(72vh,580px);overflow-y:auto;}
/* ── Tab bar redesign: bigger, icon-driven, per-tab color (--tc), theme-aware ── */
.app-tabs{padding:0 14px;gap:4px;overflow-x:auto;}
.app-tabs::-webkit-scrollbar{height:0;}
.app-tab{display:inline-flex;align-items:center;gap:9px;padding:11px 17px;font-size:13px;font-weight:600;border-radius:9px 9px 0 0;}
.app-tab .at-ic{display:flex;flex-shrink:0;color:var(--tc,var(--muted));}
.app-tab .at-ic svg{width:18px;height:18px;}
.app-tab:hover{background:color-mix(in srgb,var(--tc,var(--accent)) 8%,transparent);}
body .app-tabs .app-tab.active{color:var(--tc,var(--accent));border-bottom-color:var(--tc,var(--accent));background:color-mix(in srgb,var(--tc,var(--accent)) 13%,transparent);font-weight:700;}
body .app-tabs .app-tab.active .at-ic{color:var(--tc,var(--accent));}

/* ── Tasks pill (top bar, between the avatar and Settings) ── */
.cb-tasksbtn{display:flex;align-items:center;gap:8px;height:38px;border-radius:22px;padding:0 16px;background:var(--tb-hover);border:1px solid var(--tb-bd);color:var(--tb-text);cursor:pointer;font-family:var(--font);font-size:13.5px;font-weight:600;}
.cb-tasksbtn:hover{border-color:#8b5cf6;}
.cb-tasksbtn:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px;}
.cb-task-ic{display:flex;color:#8b5cf6;}
.cb-task-ic svg{width:18px;height:18px;}
.cb-task-tx{color:var(--tb-text);}
/* Force the active tab to use its own --tc color across all themes (beats theme active-color rules) */
body .app-tabs .app-tab.active{color:var(--tc,var(--accent))!important;border-bottom-color:var(--tc,var(--accent))!important;background:color-mix(in srgb,var(--tc,var(--accent)) 13%,transparent)!important;}
body .app-tabs .app-tab.active .at-ic{color:var(--tc,var(--accent))!important;}
/* Don't transition the tab text color (var()-based color transitions repaint unreliably) — animate only bg/border */
.app-tab{transition:background-color .15s ease, border-color .15s ease;}
/* ════ Reports tab ════ */
.reports-wrap{display:flex;flex:1;min-height:0;overflow:hidden;}
.reports-rail{width:290px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);overflow-y:auto;padding:14px;}
.reports-rail-h{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:2px 2px 11px;}
.rep-card{display:flex;gap:11px;align-items:flex-start;padding:11px 12px;border:1px solid var(--border);border-radius:11px;margin-bottom:9px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;}
.rep-card:hover{background:var(--surface2);}
.rep-card.on{border-color:var(--rc,var(--accent));background:color-mix(in srgb,var(--rc,var(--accent)) 7%,var(--surface));box-shadow:0 2px 10px color-mix(in srgb,var(--rc,var(--accent)) 14%,transparent);}
.rep-ic{width:36px;height:36px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--rc,#2563eb);background:color-mix(in srgb,var(--rc,#2563eb) 14%,transparent);border:1px solid color-mix(in srgb,var(--rc,#2563eb) 30%,transparent);}
.rep-ic svg{width:19px;height:19px;}
.rep-tx{min-width:0;display:flex;flex-direction:column;gap:2px;}
.rep-nm{font-size:13px;font-weight:600;color:var(--text);}
.rep-ds{font-size:11px;color:var(--muted);line-height:1.4;}
.rep-soon{font-size:11px;color:var(--dim);line-height:1.5;padding:11px 4px 2px;border-top:1px solid var(--border);margin-top:8px;}
.reports-main{flex:1;display:flex;flex-direction:column;min-width:0;}
.reports-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;}
.reports-bar-t{font-size:13px;font-weight:600;color:var(--text);}
.reports-export{margin-left:auto;display:flex;align-items:center;gap:7px;height:34px;padding:0 16px;border-radius:8px;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);font-weight:600;font-size:12.5px;cursor:pointer;font-family:var(--font);}
.reports-export:hover{background:var(--accent);color:#fff;}
.reports-canvas{flex:1;overflow:auto;background:#9aa1ad;padding:24px;display:flex;justify-content:center;align-items:flex-start;}
.reports-page{background:#fff;width:792px;flex:none;flex-shrink:0;min-height:1000px;box-shadow:0 12px 44px rgba(0,0,0,.34);padding:34px 32px;font-family:'Barlow','Segoe UI',sans-serif;font-size:12.5px;color:#1c2433;}
.reports-empty{margin:auto;text-align:center;color:#8a93a6;font-size:14px;padding:80px 20px;line-height:1.6;}
/* the printed "paper" internals — scoped so generic tags don't leak into the app */
.reports-page .rpt-hd{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid #2563eb;padding-bottom:11px;margin-bottom:16px;}
.reports-page .brand{font-size:25px;font-weight:600;letter-spacing:-.5px;color:#16335C;display:inline-flex;align-items:center;font-family:'Poppins','Montserrat','Barlow',sans-serif;}
.reports-page .brand svg{margin-right:9px;}
.reports-page .rpt-ttl{font-size:14px;font-weight:600;color:#48506a;margin-top:3px;}
.reports-page .rpt-meta{font-size:11px;font-family:'IBM Plex Mono',monospace;color:#6b7488;line-height:1.7;text-align:right;}
.reports-page .kpis{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:17px;}
.reports-page .kpi{flex:1;min-width:108px;border:1px solid #e2e6ee;border-top:3px solid #9aa3b2;border-radius:6px;padding:8px 11px;}
.reports-page .kpi.high{border-top-color:#c01c1c;}
.reports-page .kpi.med{border-top-color:#b9762a;}
.reports-page .kpi.pos{border-top-color:#0a7d3c;}
.reports-page .kpi-n{font-size:21px;font-weight:700;font-family:'IBM Plex Mono',monospace;color:#1c2433;line-height:1.1;}
.reports-page .kpi.high .kpi-n{color:#c01c1c;}
.reports-page .kpi.med .kpi-n{color:#b9762a;}
.reports-page .kpi.pos .kpi-n{color:#0a7d3c;}
.reports-page .kpi-l{font-size:9px;color:#6b7488;text-transform:uppercase;letter-spacing:.4px;margin-top:4px;font-weight:700;}
.reports-page section{margin-bottom:15px;}
.reports-page .sec-hd{display:flex;justify-content:space-between;align-items:center;background:var(--sc,#2a5f9e);color:#fff;padding:6px 12px;border-radius:5px 5px 0 0;}
.reports-page .sec-ttl{font-size:13px;font-weight:600;}
.reports-page .sec-cnt{font-size:11px;font-family:'IBM Plex Mono',monospace;background:rgba(255,255,255,.28);padding:1px 9px;border-radius:9px;}
.reports-page .sec-empty{padding:9px 12px;font-size:11px;color:#8a93a6;font-style:italic;border:1px solid #edeff4;border-top:none;}
.reports-page table{width:100%;border-collapse:collapse;font-size:11px;}
.reports-page table.fx{table-layout:fixed;}
.reports-page th{background:#f1f3f8;color:#48506a;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.3px;font-weight:700;padding:5px 8px;border-bottom:1.5px solid #d6dbe6;}
.reports-page th.r,.reports-page td.r{text-align:right;font-family:'IBM Plex Mono',monospace;}
.reports-page td{padding:4px 8px;border-bottom:1px solid #edeff4;vertical-align:top;overflow-wrap:break-word;word-break:break-word;color:#1c2433;}
.reports-page tbody tr:nth-child(even){background:#f8f9fc;}
.reports-page td.idc{font-family:'IBM Plex Mono',monospace;color:#48506a;white-space:nowrap;}
.reports-page .c-pos{color:#0a7d3c;font-weight:600;}
.reports-page .c-neg{color:#c01c1c;font-weight:700;}
.reports-page .c-warn{color:#b9762a;font-weight:600;}
.reports-page .c-old{color:#959db0;}
.reports-page .rpt-ft{margin-top:17px;border-top:1px solid #e2e6ee;padding-top:9px;font-size:9px;color:#9aa3b2;line-height:1.5;}
.reports-page .more td{font-style:italic;color:#8a93a6;background:#fff !important;text-align:center;}
/* ===== Schedule Viewer — sidebar redesign (date filter, bigger filter text, WBS rail) ===== */
.sched-left{width:244px;}
.sched-left-hdr{padding:13px 14px 11px;font-size:11px;font-weight:700;letter-spacing:1.5px;}
.sched-left-hdr .badge{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--accent);color:#fff;border-radius:11px;padding:2px 11px;letter-spacing:0;line-height:1.6;}
.sched-filter-hdr{padding:12px 14px 6px;font-size:12px;font-weight:700;letter-spacing:1.2px;color:var(--muted);}
.sched-filter-note{padding:3px 14px 9px;font-size:11px;line-height:1.55;color:var(--muted);}
.sched-filter-note b{color:var(--text);font-weight:700;}
.sched-filter-label{padding:12px 14px 6px;font-size:12px;font-weight:700;letter-spacing:1.2px;color:var(--muted);}
.sched-datefilter{padding:2px 12px 4px;position:relative;}
.sched-date-btn{width:100%;display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:9px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .12s,color .12s;}
.sched-date-btn:hover{border-color:var(--accent);}
.sched-date-btn.on{border-color:var(--accent);color:var(--accent);}
.sched-date-btn .sdf-ic{font-size:14px;line-height:1;}
.sched-date-btn .sdf-label{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sched-date-btn .sdf-caret{font-size:10px;opacity:.7;}
.sched-date-menu{position:absolute;top:100%;left:12px;right:12px;z-index:60;margin-top:5px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.34);padding:6px;}
.sched-date-menu.hidden{display:none;}
.sdf-opt{padding:8px 10px;border-radius:7px;font-size:12px;color:var(--text);cursor:pointer;}
.sdf-opt:hover{background:var(--surface2);}
.sdf-opt.active{background:var(--surface2);color:var(--accent);font-weight:700;}
.sdf-custom-hd{padding:9px 10px 4px;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--border);margin-top:5px;}
.sdf-custom{padding:2px 10px 6px;display:flex;flex-direction:column;gap:7px;}
.sdf-custom label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);font-weight:600;}
.sdf-custom input[type=date]{flex:1;max-width:150px;padding:5px 7px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:11px;}
.sdf-apply{margin-top:3px;padding:7px;border-radius:7px;border:none;background:var(--accent);color:#fff;font-size:11px;font-weight:700;cursor:pointer;}
.sdf-apply:hover{filter:brightness(1.08);}
.sched-wbs-filter{padding:4px 10px 14px;gap:3px;}
.sched-wbs-btn{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;border:1px solid transparent;transition:background .12s,color .12s;}
.sched-wbs-btn .swb-bar{width:3px;align-self:stretch;min-height:15px;border-radius:2px;background:var(--dim);flex-shrink:0;}
.sched-wbs-btn .swb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sched-wbs-btn .swb-chev{font-size:15px;opacity:.4;flex-shrink:0;font-weight:700;}
.sched-wbs-btn .swb-check{flex-shrink:0;width:17px;height:17px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;background:transparent;border:1.5px solid var(--dim);color:transparent;line-height:1;}
.sched-wbs-btn:hover{background:var(--surface2);color:var(--text);}
.sched-wbs-btn:hover .swb-bar{background:var(--accent);}
.sched-wbs-btn:hover .swb-chev{opacity:.85;}
.sched-wbs-btn.active{background:var(--surface2);color:var(--accent);font-weight:700;}
.sched-wbs-btn.active .swb-bar{background:var(--accent);}
.sched-wbs-btn.active .swb-chev{opacity:.9;color:var(--accent);}
.sched-wbs-btn.swb-all{font-weight:700;color:var(--text);}
.sched-wbs-btn.swb-all.active{color:var(--accent);}
.sched-wbs-btn.swb-all.active .swb-check{background:var(--accent);border-color:var(--accent);color:#fff;}

/* ===== Scheduler AI (assistant chat) ===== */
.asst-wrap{display:flex;flex-direction:column;flex:1;min-height:0;background:radial-gradient(1200px 420px at 12% -12%,rgba(6,182,212,.10),transparent 60%),radial-gradient(1000px 400px at 100% -5%,rgba(139,92,246,.10),transparent 55%);}
.asst-hero{display:flex;align-items:center;gap:14px;padding:14px 22px;border-bottom:1px solid var(--border);flex-shrink:0;}
.asst-hero-tx{flex:1;min-width:0;}
.asst-hero-t{font-size:16px;font-weight:800;letter-spacing:-.2px;color:var(--text);display:flex;align-items:center;gap:8px;}
.asst-badge{font-size:8.5px;font-weight:800;letter-spacing:1px;color:#06b6d4;border:1px solid rgba(6,182,212,.55);border-radius:6px;padding:1px 6px;}
.asst-hero-s{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:7px;margin-top:2px;}
.asst-live{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:asstLive 2s infinite;flex-shrink:0;}
@keyframes asstLive{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.asst-reset{font-size:11px;font-weight:600;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:7px 12px;cursor:pointer;flex-shrink:0;}
.asst-reset:hover{color:var(--text);border-color:#06b6d4;}
.asst-orb{position:relative;width:46px;height:46px;flex-shrink:0;}
.asst-orb-core{position:absolute;inset:5px;border-radius:50%;background:conic-gradient(from 0deg,#06b6d4,#3b82f6,#8b5cf6,#06b6d4);box-shadow:0 0 18px rgba(59,130,246,.55);animation:asstPulse 3.4s ease-in-out infinite;}
.asst-orb-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent,rgba(6,182,212,.85),transparent 42%);animation:asstSpin 4s linear infinite;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));}
@keyframes asstPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.06);filter:brightness(1.16)}}
@keyframes asstSpin{to{transform:rotate(360deg)}}
.asst-feed{flex:1;min-height:0;overflow-y:auto;padding:22px 22px 10px;display:flex;flex-direction:column;gap:14px;}
.asst-msg{display:flex;gap:10px;max-width:780px;animation:asstIn .34s cubic-bezier(.2,.8,.2,1);}
.asst-msg.bot{align-self:flex-start;}
.asst-msg.user{align-self:flex-end;flex-direction:row-reverse;}
@keyframes asstIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.asst-ava{position:relative;width:30px;height:30px;flex-shrink:0;margin-top:2px;}
.asst-ava-core{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#06b6d4,#3b82f6,#8b5cf6,#06b6d4);box-shadow:0 0 10px rgba(59,130,246,.5);animation:asstPulse 3.4s ease-in-out infinite;}
.asst-bubble{background:var(--surface);border:1px solid var(--border);border-radius:4px 16px 16px 16px;padding:11px 15px;font-size:13.5px;line-height:1.6;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.06);}
.asst-msg.user .asst-bubble{background:linear-gradient(135deg,#06b6d4,#3b82f6);border:none;color:#fff;border-radius:16px 4px 16px 16px;font-weight:500;}
.asst-bubble p{margin:0 0 8px;}
.asst-bubble p:last-child{margin-bottom:0;}
.asst-bubble b{font-weight:700;}
.asst-bubble i{opacity:.85;}
.asst-bubble .cr{color:#ef4444;font-weight:700;}.asst-bubble .wn{color:#d97706;font-weight:700;}.asst-bubble .ok{color:#16a34a;font-weight:700;}
.asst-msg.user .asst-bubble .cr,.asst-msg.user .asst-bubble .wn,.asst-msg.user .asst-bubble .ok{color:#fff;}
.asst-code{font-family:var(--mono);font-size:11px;background:rgba(127,127,127,.16);padding:1px 6px;border-radius:5px;}
.asst-typing{display:flex;gap:5px;align-items:center;padding:15px 16px;}
.asst-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:asstBlink 1.2s infinite;}
.asst-typing span:nth-child(2){animation-delay:.18s;}
.asst-typing span:nth-child(3){animation-delay:.36s;}
@keyframes asstBlink{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
.asst-list{display:flex;flex-direction:column;gap:1px;margin:8px 0 2px;border-radius:9px;overflow:hidden;border:1px solid var(--border);}
.asst-row{display:flex;align-items:center;gap:10px;padding:7px 11px;background:var(--surface2);font-size:12px;}
.asst-row-id{font-family:var(--mono);font-size:10.5px;color:var(--muted);flex-shrink:0;min-width:44px;}
.asst-row-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.asst-row-fin{font-family:var(--mono);font-size:11px;color:var(--muted);flex-shrink:0;}
.asst-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:rgba(127,127,127,.16);color:var(--muted);flex-shrink:0;white-space:nowrap;}
.asst-tag.neg{background:rgba(239,68,68,.18);color:#ef4444;}
.asst-tag.warn{background:rgba(217,119,6,.18);color:#d97706;}
.asst-tag.ok{background:rgba(22,163,74,.18);color:#16a34a;}
.asst-more{font-size:11px;color:var(--muted);font-style:italic;padding:5px 2px 0;}
.asst-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(94px,1fr));gap:8px;margin:9px 0;}
.asst-card>div{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:12.5px;font-weight:600;}
.asst-k{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;margin-bottom:2px;}
.asst-mini{display:flex;gap:20px;margin:9px 0;font-size:12.5px;}
.asst-mini b{font-size:18px;font-family:var(--mono);}
.asst-help{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;}
.asst-help span{font-size:11.5px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:5px 9px;}
.asst-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px;}
.asst-chip{font-size:12px;font-weight:600;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:7px 13px;cursor:pointer;transition:transform .12s,border-color .12s,background .12s;}
.asst-chip:hover{transform:translateY(-1px);border-color:#06b6d4;background:rgba(6,182,212,.10);}
.asst-composer{display:flex;gap:10px;align-items:center;padding:14px 22px 18px;border-top:1px solid var(--border);flex-shrink:0;background:var(--surface);}
.asst-input{flex:1;font-size:14px;padding:13px 17px;border-radius:24px;border:1px solid var(--border);background:var(--surface2);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;}
.asst-input:focus{border-color:#06b6d4;box-shadow:0 0 0 3px rgba(6,182,212,.16);}
.asst-send{width:46px;height:46px;flex-shrink:0;border:none;border-radius:50%;background:linear-gradient(135deg,#06b6d4,#3b82f6);color:#fff;cursor:pointer;display:grid;place-items:center;transition:transform .12s;box-shadow:0 4px 14px rgba(59,130,246,.4);}
.asst-send:hover{transform:scale(1.07);}
.asst-send svg{width:20px;height:20px;}
/* ===== Scheduler AI — per-project privacy mode (chip, menu, banner, off-state) ===== */
.asst-priv-wrap{position:relative;flex-shrink:0;}
.asst-priv{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:6px 11px;border-radius:9px;border:1.5px solid #16a34a;color:#16a34a;background:transparent;cursor:pointer;transition:background .12s;}
.asst-priv:hover{background:rgba(22,163,74,.08);}
.asst-priv-ic{display:inline-flex;}
.asst-priv-ic svg{width:15px;height:15px;}
.asst-priv-cv{font-size:9px;opacity:.7;}
.asst-priv-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:80;width:306px;background:var(--surface);border:1px solid var(--border);border-radius:13px;box-shadow:0 18px 44px rgba(0,0,0,.36);padding:7px;}
.asst-priv-menu.hidden{display:none;}
.asst-priv-h{font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;padding:7px 9px 9px;}
.asst-priv-h b{color:var(--text);}
.asst-priv-opt{display:flex;gap:11px;padding:9px;border-radius:10px;cursor:pointer;align-items:flex-start;}
.asst-priv-opt:hover{background:var(--surface2);}
.asst-priv-opt.on{background:rgba(6,182,212,.10);}
.asst-priv-oic{flex-shrink:0;margin-top:1px;}
.asst-priv-oic svg{width:18px;height:18px;}
.asst-priv-otx{display:flex;flex-direction:column;gap:2px;min-width:0;}
.asst-priv-ot{font-size:12.5px;font-weight:700;color:var(--text);}
.asst-priv-tag{font-size:8px;font-weight:700;font-style:normal;text-transform:uppercase;letter-spacing:.4px;color:#06b6d4;border:1px solid rgba(6,182,212,.5);border-radius:5px;padding:1px 5px;margin-left:3px;vertical-align:middle;}
.asst-priv-ck{color:#16a34a;}
.asst-priv-od{font-size:11px;color:var(--muted);line-height:1.45;}
.asst-privacy{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--muted);padding:9px 22px;border-bottom:1px solid var(--border);border-left:3px solid var(--apc,#16a34a);background:var(--surface);flex-shrink:0;line-height:1.45;}
.asst-privacy b{color:var(--text);font-weight:700;}
.asst-privacy-ic{display:inline-flex;flex-shrink:0;}
.asst-privacy-ic svg{width:15px;height:15px;}
.asst-offcard{display:flex;gap:15px;align-items:flex-start;max-width:560px;margin:34px auto 0;padding:22px 24px;border:1px dashed var(--border);border-radius:14px;color:var(--muted);font-size:13px;line-height:1.6;background:var(--surface);}
.asst-offcard svg{width:30px;height:30px;flex-shrink:0;color:#9ca3af;}
.asst-offcard b{color:var(--text);}
.asst-input:disabled{opacity:.55;cursor:not-allowed;}
.asst-send.off{opacity:.4;pointer-events:none;}
/* SiteCortex logo colorways per app theme (--sc-surface = that theme's topbar bg, shown through the ridge gaps).
   Light topbar (default/light) = Slate Pro. Dark topbars get a light mark: Slate→Blueprint, Site→warm-night, Blueprint→Blueprint. */
body.theme-slate{--sc-hat:#EAF2F8;--sc-gear:#5B7A93;--sc-gold:#3FB8D4;--sc-surface:#16202e;--sc-site:#F2F8FC;--sc-cortex:#8FB3C8;}
body.theme-site{--sc-hat:#F3ECE1;--sc-gear:#B49E86;--sc-gold:#E0863A;--sc-surface:#2a2620;--sc-site:#F3ECE1;--sc-cortex:#CDBBA6;}
body.theme-blueprint{--sc-hat:#EAF2F8;--sc-gear:#5B7A93;--sc-gold:#3FB8D4;--sc-surface:#0a121f;--sc-site:#F2F8FC;--sc-cortex:#8FB3C8;}
/* ===== DASHBOARD — clearer section "boards" on light themes; dark themes use the redesign layer ===== */
body.light-mode .dash-card,
body.light-mode .ed-card,
body.light-mode .ed-kpi-card,
body.light-mode .exec-section{
  border:1px solid color-mix(in srgb,var(--border) 72%,var(--text) 28%);
  box-shadow:0 1px 2px rgba(16,24,40,.05),0 3px 10px rgba(16,24,40,.06);
}
body.light-mode .dash-card:hover,
body.light-mode .ed-kpi-card:hover{
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent),0 6px 18px rgba(16,24,40,.11);
}
/* ===== AUTH GATE (Phase 1: login / signup) ===== */
.auth-gate{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; background:var(--bg); padding:20px; }
body.authed .auth-gate{ display:none !important; }
.auth-card{ width:100%; max-width:390px; background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:30px 28px; box-shadow:0 12px 44px rgba(16,24,40,.14); }
.auth-brand{ display:flex; align-items:center; justify-content:center; gap:9px; }
.auth-logo{ width:30px; height:30px; display:block; }
.auth-wordmark{ font-family:'Poppins','Montserrat','Segoe UI',sans-serif; font-weight:600; font-size:21px; letter-spacing:-.02em; color:var(--sc-site,#16335C); }
.auth-wordmark span{ color:var(--sc-cortex,#414B59); }
.auth-sub{ text-align:center; color:var(--muted); font-size:12px; margin-top:7px; margin-bottom:20px; }
.auth-checking{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:28px 0; color:var(--muted); font-size:13px; }
.auth-tabs{ display:flex; gap:5px; background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:4px; margin-bottom:18px; }
.auth-tab{ flex:1; padding:8px; border:none; border-radius:7px; background:transparent; color:var(--muted); font-size:13px; font-weight:600; cursor:pointer; font-family:var(--font); transition:all .15s; }
.auth-tab.active{ background:var(--surface); color:var(--accent); box-shadow:0 1px 4px rgba(16,24,40,.1); }
.auth-title{ font-size:16px; font-weight:700; color:var(--text); margin:0 0 14px; }
.auth-form{ display:flex; flex-direction:column; gap:13px; }
.auth-row{ display:flex; flex-direction:column; gap:5px; }
.auth-row label{ font-size:10.5px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; }
.auth-row input{ height:42px; border:1px solid var(--border); border-radius:9px; padding:0 13px; font-size:14px; font-family:var(--font); background:var(--surface2); color:var(--text); outline:none; transition:border-color .15s, box-shadow .15s; box-sizing:border-box; }
.auth-row input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent); }
.auth-submit{ height:44px; border:none; border-radius:9px; background:var(--accent); color:#fff; font-size:14px; font-weight:700; cursor:pointer; margin-top:2px; font-family:var(--font); transition:filter .15s, transform .1s; }
.auth-submit:hover{ filter:brightness(1.08); }
.auth-submit:active{ transform:translateY(1px); }
.auth-submit:disabled{ opacity:.6; cursor:default; filter:none; }
.auth-forgot{ background:none; border:none; color:var(--accent); font-size:12px; cursor:pointer; padding:3px; font-family:var(--font); align-self:center; }
.auth-forgot:hover{ text-decoration:underline; }
.auth-msg{ font-size:12.5px; padding:9px 11px; border-radius:8px; line-height:1.4; }
.auth-msg-err{ background:rgba(220,38,38,.1); color:#b91c1c; border:1px solid rgba(220,38,38,.25); }
.auth-msg-ok{ background:rgba(5,150,105,.1); color:#047857; border:1px solid rgba(5,150,105,.25); }
.auth-foot{ text-align:center; font-size:11px; color:var(--muted); margin-top:18px; }
/* real account section injected into the topbar user menu */
.cb-menu-sep{ height:1px; background:var(--border); margin:6px 0; }
.auth-acct{ padding:6px 12px; font-size:11px; color:var(--muted); line-height:1.5; }
.auth-acct b{ color:var(--text); font-size:12px; }
.auth-signout{ padding:9px 12px; font-size:13px; font-weight:600; color:var(--crit,#dc2626); cursor:pointer; border-radius:6px; }
.auth-signout:hover{ background:color-mix(in srgb, var(--crit,#dc2626) 10%, transparent); }
/* ===== PROJECTS HOME (Phase 2: cloud projects) ===== */
.proj-home{ position:fixed; inset:0; z-index:9500; display:flex; flex-direction:column; background:var(--bg); }
.proj-home-bar{ height:56px; flex-shrink:0; display:flex; align-items:center; justify-content:space-between; padding:0 22px; border-bottom:1px solid var(--border); background:var(--surface); }
.proj-home-brand{ display:flex; align-items:center; gap:8px; }
.proj-home-logo{ width:26px; height:26px; display:block; }
.proj-home-acct{ display:flex; align-items:center; gap:12px; }
.proj-home-user{ font-size:13px; color:var(--muted); }
.proj-signout{ background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:6px 12px; font-size:12px; font-weight:600; cursor:pointer; font-family:var(--font); }
.proj-signout:hover{ border-color:var(--crit,#dc2626); color:var(--crit,#dc2626); }
.proj-home-body{ flex:1; overflow-y:auto; max-width:820px; width:100%; margin:0 auto; padding:34px 24px 60px; }
.proj-home-h1{ font-size:24px; font-weight:700; color:var(--text); margin:0 0 5px; }
.proj-home-sub{ font-size:14px; color:var(--muted); margin:0 0 22px; }
.proj-new{ display:flex; gap:10px; margin-bottom:26px; flex-wrap:wrap; }
.proj-new input{ flex:1; min-width:220px; height:44px; border:1px solid var(--border); border-radius:10px; padding:0 14px; font-size:14px; font-family:var(--font); background:var(--surface); color:var(--text); outline:none; transition:border-color .15s, box-shadow .15s; }
.proj-new input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
.proj-new-btn{ height:44px; padding:0 18px; border:none; border-radius:10px; background:var(--accent); color:#fff; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; font-family:var(--font); transition:filter .15s; }
.proj-new-btn:hover{ filter:brightness(1.08); }
.proj-new-btn:disabled{ opacity:.6; cursor:default; }
.proj-list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:14px; }
.proj-card{ display:flex; align-items:center; justify-content:space-between; gap:8px; background:var(--surface); border:1px solid color-mix(in srgb, var(--border) 65%, var(--text) 20%); border-radius:12px; padding:4px 8px 4px 4px; box-shadow:0 1px 3px rgba(16,24,40,.05); transition:box-shadow .15s, transform .1s, border-color .15s; }
.proj-card:hover{ box-shadow:0 4px 16px rgba(16,24,40,.1); border-color:var(--accent); }
.proj-card-main{ display:flex; align-items:center; gap:11px; padding:14px 8px; cursor:pointer; flex:1; min-width:0; }
.proj-card-ic{ width:40px; height:40px; flex-shrink:0; border-radius:10px; display:flex; align-items:center; justify-content:center; background:color-mix(in srgb, var(--accent) 14%, var(--surface2)); color:var(--accent); }
.proj-card-name{ font-size:15px; font-weight:600; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.proj-card-btns{ display:flex; gap:2px; flex-shrink:0; }
.proj-mini{ width:30px; height:30px; display:flex; align-items:center; justify-content:center; background:transparent; border:none; border-radius:7px; color:var(--muted); cursor:pointer; }
.proj-mini:hover{ background:var(--surface2); color:var(--text); }
.proj-mini-del:hover{ color:var(--crit,#dc2626); background:color-mix(in srgb, var(--crit,#dc2626) 10%, transparent); }
.proj-loading{ grid-column:1/-1; display:flex; justify-content:center; padding:40px; }
.proj-empty{ grid-column:1/-1; text-align:center; padding:44px 20px; color:var(--text); font-size:15px; border:1px dashed var(--border); border-radius:12px; }
.proj-empty-sub{ font-size:13px; color:var(--muted); }
/* topbar project switcher */
.cf-proj-switch{ display:inline-flex; align-items:center; gap:6px; background:color-mix(in srgb, var(--accent) 12%, var(--surface2)); border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border)); color:var(--accent); border-radius:7px; padding:5px 10px; font-size:12px; font-weight:600; cursor:pointer; font-family:var(--font); white-space:nowrap; max-width:230px; }
.cf-proj-switch:hover{ background:color-mix(in srgb, var(--accent) 20%, var(--surface2)); }
.cf-proj-switch #cfProjName{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:150px; }
/* Opening-project overlay (Phase 2 step 2) */
.proj-opening{ position:fixed; inset:0; z-index:9600; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--bg); }
/* Cloud save/load status toast (Phase 2) */
.cf-cloud-toast{ position:fixed; bottom:18px; left:50%; transform:translateX(-50%) translateY(20px); background:#1f2433; color:#fff; padding:9px 16px; border-radius:9px; font-size:13px; font-weight:600; z-index:10000; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; box-shadow:0 6px 20px rgba(0,0,0,.25); }
.cf-cloud-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.cf-cloud-toast.ok{ background:#047857; }
.cf-cloud-toast.err{ background:#b91c1c; }
/* ================================================================
   SITECORTEX REDESIGN LAYER (2026-07-02)
   9 themes + ambient background + card system + motion.
   Print/PDF paths (.reports-page, popup exports) and the schedule
   table palette (--st-*) are deliberately NOT touched here.
   ================================================================ */

/* ---- token defaults (legacy default theme keeps working) ---- */
:root{ --glow:rgba(0,82,204,.13); --accent-rgb:0,82,204; --input-bg:#ffffff;
       --shadow:0 2px 4px rgba(22,32,46,.05),0 10px 24px rgba(22,32,46,.08); }
body.theme-slate{ --glow:rgba(10,93,194,.14); --accent-rgb:10,93,194; --input-bg:#ffffff; }
body.theme-site{ --glow:rgba(217,119,6,.14); --accent-rgb:217,119,6; --input-bg:#fdfcfa; }
body.theme-blueprint{ --bg1:#0a121f; --bg2:#060b14; --glow:rgba(45,199,232,.20); --accent-rgb:45,199,232; --input-bg:#0e1a2c;
       --shadow:0 2px 4px rgba(0,0,0,.3),0 14px 32px rgba(0,0,0,.42); }

/* ---- LIGHT THEMES (also get .light-mode from setTheme) ---- */
body.theme-daylight{
  --bg:#eef1f6; --bg1:#eef1f6; --bg2:#e3e9f2; --surface:#ffffff; --surface2:#f2f5fa; --border:#c9d2e0;
  --text:#16202e; --muted:#5c6b80; --dim:#93a1b5;
  --accent:#0a5dc2; --accent2:#cf8a3a; --crit:#dc2626; --warn:#d97706; --ok:#0f8a4d;
  --glow:rgba(10,93,194,.14); --accent-rgb:10,93,194; --input-bg:#ffffff;
  --shadow:0 2px 4px rgba(22,32,46,.05),0 10px 24px rgba(22,32,46,.08);
  --tb-text:#1c2033; --tb-muted:#5c6b80; --tb-bd:#c9d2e0; --tb-hover:#eef1f6;
  --sc-hat:#16335C; --sc-gear:#414B59; --sc-gold:#CF8A3A; --sc-surface:#ffffff; --sc-site:#16335C; --sc-cortex:#414B59;
}
body.theme-jobsite{
  --bg:#f7f3ea; --bg1:#f7f3ea; --bg2:#f0e9db; --surface:#fffdf8; --surface2:#f5efe3; --border:#d8cdb8;
  --text:#2a2620; --muted:#6d6353; --dim:#a3987f;
  --accent:#d97706; --accent2:#16335C; --crit:#dc2626; --warn:#b45309; --ok:#0f8a4d;
  --glow:rgba(217,119,6,.15); --accent-rgb:217,119,6; --input-bg:#fffdf8;
  --shadow:0 2px 4px rgba(42,38,32,.05),0 10px 24px rgba(42,38,32,.09);
  --tb-text:#2a2620; --tb-muted:#6d6353; --tb-bd:#d8cdb8; --tb-hover:#f5efe3;
  --sc-hat:#16335C; --sc-gear:#5a5142; --sc-gold:#D97706; --sc-surface:#fffdf8; --sc-site:#16335C; --sc-cortex:#6d6353;
}
body.theme-concrete{
  --bg:#eceff1; --bg1:#eceff1; --bg2:#dfe4e8; --surface:#f8fafb; --surface2:#e8ecef; --border:#b9c2c9;
  --text:#22282e; --muted:#5b6670; --dim:#98a3ac;
  --accent:#37474f; --accent2:#f0b400; --crit:#dc2626; --warn:#d97706; --ok:#0f8a4d;
  --glow:rgba(240,180,0,.16); --accent-rgb:55,71,79; --input-bg:#f8fafb;
  --shadow:0 2px 4px rgba(34,40,46,.06),0 10px 22px rgba(34,40,46,.09);
  --tb-text:#22282e; --tb-muted:#5b6670; --tb-bd:#b9c2c9; --tb-hover:#e8ecef;
  --sc-hat:#22282e; --sc-gear:#78868f; --sc-gold:#f0b400; --sc-surface:#f8fafb; --sc-site:#22282e; --sc-cortex:#5b6670;
}
body.theme-sage{
  --bg:#eef2ea; --bg1:#eef2ea; --bg2:#e2e9dc; --surface:#fbfdf9; --surface2:#eef3e9; --border:#c3cfba;
  --text:#25301f; --muted:#5f6e54; --dim:#96a48a;
  --accent:#3e7040; --accent2:#c98f2e; --crit:#c9412e; --warn:#c98f2e; --ok:#2f8a4c;
  --glow:rgba(62,112,64,.15); --accent-rgb:62,112,64; --input-bg:#fbfdf9;
  --shadow:0 2px 4px rgba(37,48,31,.05),0 10px 22px rgba(37,48,31,.08);
  --tb-text:#25301f; --tb-muted:#5f6e54; --tb-bd:#c3cfba; --tb-hover:#eef3e9;
  --sc-hat:#25401f; --sc-gear:#6c7d61; --sc-gold:#c98f2e; --sc-surface:#fbfdf9; --sc-site:#25401f; --sc-cortex:#5f6e54;
}
/* ---- DARK THEMES ---- */
body.theme-dusk{
  --bg:#18212e; --bg1:#1b2534; --bg2:#141c28; --surface:#212e42; --surface2:#283751; --border:#33445e;
  --text:#e9eef6; --muted:#93a5be; --dim:#5c6d85;
  --accent:#5b9bf0; --accent2:#e8a355; --crit:#f0616d; --warn:#f0a13c; --ok:#34c37e;
  --glow:rgba(91,155,240,.22); --accent-rgb:91,155,240; --input-bg:#1c2635;
  --shadow:0 2px 4px rgba(0,0,0,.2),0 12px 30px rgba(0,0,0,.35);
  --tb-text:#e9eef6; --tb-muted:#93a5be; --tb-bd:rgba(255,255,255,.14); --tb-hover:rgba(255,255,255,.07);
  --sc-hat:#EAF2F8; --sc-gear:#5B7A93; --sc-gold:#e8a355; --sc-surface:#212e42; --sc-site:#F2F8FC; --sc-cortex:#8FB3C8;
}
body.theme-aurora{
  --bg:#151226; --bg1:#151226; --bg2:#0d0b1a; --surface:#1d1935; --surface2:#262047; --border:#332b58;
  --text:#eeeafb; --muted:#a396cc; --dim:#645a8f;
  --accent:#9d7bff; --accent2:#3fd6c0; --crit:#f56a8b; --warn:#f0b13c; --ok:#3fd6a0;
  --glow:rgba(157,123,255,.24); --accent-rgb:157,123,255; --input-bg:#191540;
  --shadow:0 2px 4px rgba(0,0,0,.3),0 14px 32px rgba(0,0,0,.45);
  --tb-text:#eeeafb; --tb-muted:#a396cc; --tb-bd:rgba(255,255,255,.13); --tb-hover:rgba(255,255,255,.06);
  --sc-hat:#F0EBFF; --sc-gear:#7a6ab0; --sc-gold:#3fd6c0; --sc-surface:#1d1935; --sc-site:#F5F1FF; --sc-cortex:#b5a6e0;
}
body.theme-onyx{
  --bg:#0c0c0e; --bg1:#0c0c0e; --bg2:#050506; --surface:#151517; --surface2:#1e1e22; --border:#2c2c30;
  --text:#f2f0ea; --muted:#a29e93; --dim:#5f5c54;
  --accent:#d4a94e; --accent2:#8a8f98; --crit:#e46a6a; --warn:#e0a63c; --ok:#4fc98a;
  --glow:rgba(212,169,78,.20); --accent-rgb:212,169,78; --input-bg:#1a1a1e;
  --shadow:0 2px 4px rgba(0,0,0,.4),0 14px 32px rgba(0,0,0,.5);
  --tb-text:#f2f0ea; --tb-muted:#a29e93; --tb-bd:rgba(255,255,255,.12); --tb-hover:rgba(255,255,255,.06);
  --sc-hat:#f2f0ea; --sc-gear:#6b675d; --sc-gold:#d4a94e; --sc-surface:#151517; --sc-site:#f7f5ef; --sc-cortex:#c9c4b7;
}
body.theme-copper{
  --bg:#1d1512; --bg1:#1d1512; --bg2:#120d0b; --surface:#271c17; --surface2:#32241d; --border:#463227;
  --text:#f5e9e0; --muted:#c0a08c; --dim:#7a6353;
  --accent:#e0763a; --accent2:#4fb8a0; --crit:#ef6a5a; --warn:#e0a63c; --ok:#4fc98a;
  --glow:rgba(224,118,58,.22); --accent-rgb:224,118,58; --input-bg:#2d211a;
  --shadow:0 2px 4px rgba(0,0,0,.35),0 14px 32px rgba(0,0,0,.45);
  --tb-text:#f5e9e0; --tb-muted:#c0a08c; --tb-bd:rgba(255,255,255,.12); --tb-hover:rgba(255,255,255,.06);
  --sc-hat:#f5e9e0; --sc-gear:#8a6a52; --sc-gold:#e0763a; --sc-surface:#271c17; --sc-site:#faf0e8; --sc-cortex:#d8b8a0;
}

/* ---- ambient background: gradient body + constellation canvas ---- */
body{ background:radial-gradient(1100px 480px at 12% -4%, var(--glow), transparent 60%),
       linear-gradient(168deg, var(--bg1, var(--bg)), var(--bg2, var(--bg))); }
#bgnet{ position:fixed; inset:0; z-index:0; pointer-events:none; }
/* chrome bars ABOVE panes so topbar dropdown menus (z300, inside .topbar's stacking
   context) still paint over tab content; overlays (drill 200/cb 401/auth 9999) are
   body-level fixed and unaffected */
.tab-pane{ position:relative; z-index:1; }
.statusbar,.pinned-tools-bar{ position:relative; z-index:2; }
.app-tabs{ position:relative; z-index:5; }
.topbar{ position:relative; z-index:6; }
/* panes go transparent so the canvas shows behind opaque cards */
.dash-wrap,.sched-wrap,.cmp-wrap,.settings-wrap,.la-wrap{ background:transparent; }
body.light-mode .dash-wrap,body.light-mode .settings-wrap,body.light-mode .la-wrap{ background:transparent; }
body.theme-blueprint .dash-wrap,body.theme-blueprint .sched-wrap,body.theme-blueprint .cmp-wrap,
body.theme-blueprint .settings-wrap,body.theme-blueprint .la-wrap{ background:transparent; }

/* ---- baseline for the NEW dark themes (dusk/aurora/onyx/copper) ---- */
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) ::-webkit-scrollbar{ width:9px; height:9px; }
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) ::-webkit-scrollbar-thumb{ background:var(--border); border-radius:5px; }
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) ::-webkit-scrollbar-thumb:hover{ background:var(--dim); }
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) ::-webkit-scrollbar-track{ background:transparent; }
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) .topbar{ box-shadow:0 2px 12px rgba(0,0,0,.25); }
/* new light themes: keep chrome buttons variable-driven (jobsite/sage tints) */
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) .topbar-btn{
  background:var(--surface2); border-color:var(--border); color:var(--text);
}
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) .topbar-btn:hover{
  border-color:var(--accent); color:var(--accent);
}

/* ---- card system: radius, depth, gradient hover line, lift ---- */
.dash-card,.ed-card,.ed-kpi-card,.exec-section,
.hd-kpi,.cb-card,.wf-card,.proj-card,.asst-card,.asst-offcard,
.wf-pickwrap,.wf-rwrap{
  border-radius:14px;
  box-shadow:var(--shadow);
  background-image:linear-gradient(90deg,var(--accent),var(--accent2));
  background-repeat:no-repeat;
  background-size:100% 0;
  background-position:top left;
}
.dash-card,.ed-card,.ed-kpi-card,.hd-kpi,.cb-card,.wf-card,.proj-card{
  transition:transform .18s cubic-bezier(.22,1,.36,1), box-shadow .22s ease,
             background-size .18s ease, background-color .35s, border-color .35s;
}
.dash-card:hover,.ed-card:hover,.ed-kpi-card:hover,.hd-kpi:hover,
.cb-card:hover,.wf-card:hover,.proj-card:hover{
  transform:translateY(-2px);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent), 0 8px 22px var(--glow), var(--shadow);
  background-size:100% 3px;
}
/* dropdown/menu polish */
.sched-col-menu,.cb-menu,.exec-charts-menu,.sched-date-menu,.asst-priv-menu,.sched-trace-results{
  border-radius:12px; box-shadow:var(--shadow);
}
.topbar-btn{ border-radius:8px; }
/* focus rings now follow the theme accent (uses --accent-rgb defined per theme) */

/* ---- motion ---- */
.tab-pane.cf-pane-enter > *{ animation:cfPaneEnter .38s cubic-bezier(.22,1,.36,1); }
@media (prefers-reduced-motion:reduce){
  .tab-pane.cf-pane-enter > *{ animation:none; }
  .dash-card,.ed-card,.ed-kpi-card,.hd-kpi,.hd-iss,.cb-card,.wf-card,.proj-card{ transition:none; }
  .dash-card:hover,.ed-card:hover,.ed-kpi-card:hover,.hd-kpi:hover,.hd-iss:hover,
  .cb-card:hover,.wf-card:hover,.proj-card:hover{ transform:none; }
  #bgnet{ display:none; }
}

/* ---- Settings: compact 9-theme grid ---- */
.theme-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); gap:14px; }
.theme-card.thx{ border:2px solid var(--border); border-radius:12px; background:var(--surface); width:auto; min-width:0; }
.theme-card.thx:hover{ transform:translateY(-2px); box-shadow:0 6px 18px var(--glow); }
.theme-card.thx.active{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent); }
.thx-prev{ height:86px; border-radius:10px 10px 0 0; position:relative; overflow:hidden; }
.thx-top{ position:absolute; top:8px; left:8px; right:8px; height:14px; border-radius:5px; border:1px solid; display:flex; align-items:center; gap:4px; padding:0 5px; }
.thx-top i{ width:14px; height:5px; border-radius:2px; display:block; }
.thx-card1{ position:absolute; top:30px; left:8px; width:56%; height:40px; border-radius:7px; border:1px solid; }
.thx-card2{ position:absolute; top:30px; right:8px; width:33%; height:40px; border-radius:7px; border:1px solid; }
.thx-acc{ position:absolute; left:14px; top:38px; width:26px; height:6px; border-radius:3px; display:block; }
.thx-bar{ position:absolute; left:14px; top:50px; width:44px; height:5px; border-radius:3px; opacity:.55; display:block; }
.thx-foot{ padding:9px 11px 10px; display:flex; flex-direction:column; gap:2px; }
.thx-name{ font-size:12.5px; font-weight:700; color:var(--text); display:flex; align-items:center; gap:6px; }
.thx-tag{ font-size:10.5px; color:var(--muted); }
.thx-badge{ font-family:var(--mono); font-size:8px; font-weight:700; letter-spacing:1px; border-radius:4px; padding:2px 5px; }
.thx-badge.lt{ color:#8a6d1d; background:rgba(240,180,0,.15); }
.thx-badge.dk{ color:#7fa6d8; background:rgba(91,155,240,.15); }
.theme-active-badge{ margin-left:auto; color:var(--accent); font-weight:700; }
/* ---- review fixes (adversarial pass, 2026-07-02) ---- */
/* filled accent buttons: dark text on light-accent DARK themes (onyx gold etc.) */
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) .sched-toolbar .sched-primary-btn{ color:var(--bg2)!important; }
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) .cb-send,
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) .cb-unread{ color:var(--bg2); }
/* jobsite: dash look-ahead active tab was black-on-navy */
body.theme-jobsite .dash-tab.active{ color:#fff; }
/* warm/green light themes: replace cool-gray hardcoded panes with theme tokens */
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) .settings-content{ background:var(--bg2); }
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) .settings-sidebar{ background:var(--surface); border-color:var(--border); }
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) .la-left{ background:var(--surface); }
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) .la-canvas-wrap{ background:var(--bg2); }
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) .la-svg-viewport,
body:is(.theme-daylight,.theme-jobsite,.theme-concrete,.theme-sage) #logicSvg{ background:var(--bg2); }
/* topbar chip: token-driven instead of white-alpha (was built for dark topbars) */
.topbar-chip{ background:var(--tb-hover); border-color:var(--tb-bd); color:var(--tb-muted); }
.topbar-chip strong{ color:var(--tb-text); }
body.light-mode .topbar-chip{ background:var(--tb-hover); border-color:var(--tb-bd); color:var(--tb-muted); }
/* --border-rgb consumed but never defined */
:root{ --border-rgb:226,230,237; }
body.theme-daylight{ --border-rgb:201,210,224; }
body.theme-jobsite{ --border-rgb:216,205,184; }
body.theme-concrete{ --border-rgb:185,194,201; }
body.theme-sage{ --border-rgb:195,207,186; }
body.theme-dusk{ --border-rgb:51,68,94; }
body.theme-blueprint{ --border-rgb:36,54,80; }
body.theme-aurora{ --border-rgb:51,43,88; }
body.theme-onyx{ --border-rgb:44,44,48; }
body.theme-copper{ --border-rgb:70,50,39; }
/* theme-picker badges readable on opposite-brightness surfaces */
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper,.theme-blueprint) .thx-badge.lt{ color:#f0c040; }
body.light-mode .thx-badge.dk{ color:#3a6ea8; }
/* ═══════════ PHASE 3 — MEMBERS, INVITES, ROLES ═══════════ */
.proj-badge{ font-family:var(--mono); font-size:8.5px; font-weight:700; letter-spacing:.8px; border-radius:5px; padding:2px 7px; margin-left:8px; vertical-align:2px; }
.proj-badge-viewer{ color:var(--muted); background:color-mix(in srgb,var(--muted) 14%,transparent); }
.proj-badge-editor{ color:var(--accent); background:color-mix(in srgb,var(--accent) 13%,transparent); }
.pmx-overlay{ position:fixed; inset:0; z-index:9700; background:rgba(10,14,22,.45); display:none; align-items:center; justify-content:center; padding:20px; }
.pmx-overlay.show{ display:flex; }
.pmx-panel{ width:100%; max-width:560px; max-height:86vh; overflow-y:auto; background:var(--surface); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow); }
.pmx-head{ display:flex; align-items:flex-start; justify-content:space-between; padding:18px 20px 12px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--surface); z-index:2; }
.pmx-title{ font-size:16px; font-weight:700; color:var(--text); }
.pmx-sub{ font-size:12px; color:var(--muted); margin-top:2px; }
.pmx-x{ border:none; background:transparent; color:var(--muted); font-size:22px; cursor:pointer; line-height:1; padding:2px 6px; border-radius:6px; }
.pmx-x:hover{ color:var(--crit); background:color-mix(in srgb,var(--crit) 10%,transparent); }
.pmx-body{ padding:14px 20px 20px; }
.pmx-sec{ font-family:var(--mono); font-size:10px; font-weight:700; letter-spacing:1.5px; color:var(--muted); text-transform:uppercase; margin:16px 0 8px; }
.pmx-invite{ display:flex; gap:8px; flex-wrap:wrap; }
.pmx-invite input{ flex:1 1 180px; height:38px; border:1px solid var(--border); border-radius:8px; padding:0 12px; font-size:13px; font-family:var(--font); background:var(--input-bg,var(--surface2)); color:var(--text); outline:none; }
.pmx-invite input:focus{ border-color:var(--accent); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.14); }
.pmx-invite select{ height:38px; border:1px solid var(--border); border-radius:8px; padding:0 8px; font-size:12.5px; font-family:var(--font); background:var(--input-bg,var(--surface2)); color:var(--text); }
.pmx-btn{ height:38px; padding:0 15px; border:none; border-radius:8px; background:var(--accent); color:#fff; font-size:13px; font-weight:700; cursor:pointer; font-family:var(--font); }
.pmx-btn:hover{ filter:brightness(1.08); }
.pmx-btn:disabled{ opacity:.6; }
body:is(.theme-dusk,.theme-aurora,.theme-onyx,.theme-copper) .pmx-btn{ color:var(--bg2); }
.pmx-linkbox{ margin-top:12px; background:color-mix(in srgb,var(--ok) 8%,var(--surface2)); border:1px solid color-mix(in srgb,var(--ok) 35%,var(--border)); border-radius:10px; padding:12px; }
.pmx-link-lbl{ font-size:12px; color:var(--text); margin-bottom:8px; }
.pmx-link-row{ display:flex; gap:8px; }
.pmx-link-row input{ flex:1; height:34px; border:1px solid var(--border); border-radius:7px; padding:0 10px; font-size:11.5px; font-family:var(--mono); background:var(--surface); color:var(--text); }
.pmx-list{ display:flex; flex-direction:column; }
.pmx-row{ display:flex; align-items:center; gap:10px; padding:9px 2px; border-bottom:1px solid var(--surface2); font-size:13px; }
.pmx-row:last-child{ border-bottom:none; }
.pmx-who{ flex:1; color:var(--text); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pmx-em{ color:var(--muted); font-size:11.5px; }
.pmx-role{ font-family:var(--mono); font-size:9.5px; font-weight:700; letter-spacing:1px; color:var(--accent); background:color-mix(in srgb,var(--accent) 12%,transparent); border-radius:5px; padding:3px 8px; flex-shrink:0; }
.pmx-acts{ display:flex; gap:6px; flex-shrink:0; }
.pmx-mini{ border:1px solid var(--border); background:var(--surface2); color:var(--text); border-radius:6px; padding:4px 10px; font-size:11.5px; font-weight:600; cursor:pointer; font-family:var(--font); }
.pmx-mini:hover{ border-color:var(--accent); color:var(--accent); }
.pmx-rm{ border:none; background:transparent; color:var(--muted); font-size:11.5px; font-weight:600; cursor:pointer; font-family:var(--font); padding:4px 8px; border-radius:6px; flex-shrink:0; }
.pmx-rm:hover{ color:var(--crit); background:color-mix(in srgb,var(--crit) 10%,transparent); }
.pmx-empty{ font-size:12px; color:var(--muted); padding:8px 2px; }
/* viewer role: read-only — hide anything that changes the schedule */
body.cf-role-viewer .sched-toolbar-primary{ display:none!important; }
body.cf-role-viewer .sched-upload-zone{ display:none!important; }
body.cf-role-viewer .sched-upload-status{ display:none!important; }
#cfProjSwitch .cf-role-chip{ display:none; font-family:var(--mono); font-size:8.5px; font-weight:700; letter-spacing:.8px; background:color-mix(in srgb,var(--warn) 16%,transparent); color:var(--warn); border-radius:4px; padding:2px 6px; margin-left:2px; }
body.cf-role-viewer #cfProjSwitch .cf-role-chip{ display:inline; }
/* viewer role: Comparison + Health tabs are read-only too (uploads, deletes, version manager) */
body.cf-role-viewer .cmp-del-btn,
body.cf-role-viewer .cmp-up2,
body.cf-role-viewer .cmp-versions-btn{ display:none!important; }
body.cf-role-viewer .proj-pill{ pointer-events:none; }
/* role-conditional empty-state copy (Comparison + Health) */
.cf-when-view{ display:none; }
body.cf-role-viewer .cf-when-edit{ display:none; }
body.cf-role-viewer .cf-when-view{ display:inline; }
/* auth gate: legal links */
.auth-legal{ text-align:center; font-size:11px; color:var(--dim); margin-top:8px; }
.auth-legal a{ color:var(--muted); text-decoration:underline; }
.auth-legal a:hover{ color:var(--accent); }