/* ═══════════════════════════════════════════════════════════
   Construction Bid Analysis System — Styles
   Design system matched to Receipt Vault UI
   ═══════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* ── Dark theme (default) ── */
:root{
  --blue:#14b8a6;--blue-hover:#0d9488;--dark:#e8e8e8;--dark-bg:#141414;
  --gray-50:#1a1a1a;--gray-100:#1e1e1e;--gray-200:#2e2e2e;--gray-300:#3a3a3a;
  --gray-400:#666666;--gray-500:#888888;--gray-600:#aaaaaa;--gray-700:#cccccc;--gray-800:#e0e0e0;
  --green:#10b981;--yellow:#f59e0b;--red:#ef4444;
  --card-bg:rgba(28,28,28,.65);--surface:#242424;--text:#e8e8e8;--text-secondary:#999999;
  --border-color:rgba(46,46,46,.6);--primary:#14b8a6;--primary-hover:#0d9488;
  --sidebar-bg:#1a1a1a;--sidebar-border:#2e2e2e;--sidebar-hover:rgba(255,255,255,.06);
  --topbar-bg:rgba(20,20,20,.8);
  --radius:10px;--radius-sm:8px;--radius-md:8px;
  --shadow:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 12px rgba(0,0,0,.3);
  --font:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-mono:'JetBrains Mono','SF Mono',Consolas,monospace;
}
/* ── Light theme ── */
:root.light{
  --dark-bg:#f5f5f5;--dark:#1a1a1a;
  --gray-50:#fafafa;--gray-100:#f0f0f0;--gray-200:#e5e5e5;--gray-300:#d4d4d4;
  --gray-400:#a3a3a3;--gray-500:#737373;--gray-600:#525252;--gray-700:#404040;--gray-800:#262626;
  --card-bg:rgba(255,255,255,.75);--surface:#ffffff;--text:#1a1a1a;--text-secondary:#525252;
  --border-color:rgba(0,0,0,.1);
  --sidebar-bg:#ffffff;--sidebar-border:#e5e5e5;--sidebar-hover:rgba(0,0,0,.04);
  --topbar-bg:rgba(255,255,255,.85);
  --shadow:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 12px rgba(0,0,0,.08);
}
html{font-size:14px;scroll-behavior:smooth}
body{font-family:var(--font);background:var(--dark-bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* ── Scrollbar (receipt vault style) ── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#555}

/* ── Selection ── */
::selection{background:rgba(20,184,166,.3);color:#fff}
::placeholder{color:var(--gray-400);opacity:1}

/* ── Sidebar ── */
.app-sidebar{
  position:fixed;left:0;top:0;z-index:40;height:100vh;width:14rem;
  background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);
  display:none;flex-direction:column;transition:width .3s ease;
  overflow:hidden;
}
@media(min-width:768px){.app-sidebar{display:flex}}
.app-sidebar.collapsed{width:4rem}
.app-sidebar.mobile-open{display:flex;z-index:50}
.sidebar-logo{
  display:flex;align-items:center;height:3.5rem;padding:0 1rem;
  border-bottom:1px solid var(--sidebar-border);flex-shrink:0;
}
.sidebar-logo-full{font-size:.875rem;font-weight:700;color:var(--text);letter-spacing:-.3px}
.sidebar-logo-collapsed{font-size:.875rem;font-weight:700;color:var(--text);display:none;margin:0 auto}
.app-sidebar.collapsed .sidebar-logo-full{display:none}
.app-sidebar.collapsed .sidebar-logo-collapsed{display:block}
.sidebar-nav{flex:1;padding:.5rem;padding-top:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.nav-btn{
  display:flex;align-items:center;gap:.75rem;width:100%;
  padding:.5rem .75rem;border:none;border-radius:6px;
  background:transparent;color:var(--text-secondary);
  font-size:.85rem;font-weight:500;cursor:pointer;
  transition:all .15s;font-family:var(--font);text-align:left;white-space:nowrap;
}
.nav-btn:hover:not(:disabled){background:var(--sidebar-hover);color:var(--text)}
.nav-btn.active{background:rgba(20,184,166,.1);color:var(--primary);font-weight:600}
.nav-btn:disabled{opacity:0.35;cursor:not-allowed}
.nav-icon{width:1rem;height:1rem;flex-shrink:0}
.nav-label{overflow:hidden;text-overflow:ellipsis}
.app-sidebar.collapsed .nav-label{display:none}
.app-sidebar.collapsed .nav-btn{justify-content:center;padding:.5rem}
.sidebar-collapse-btn{
  display:flex;align-items:center;justify-content:center;
  border:none;border-top:1px solid var(--sidebar-border);
  padding:.75rem;background:transparent;color:var(--text-secondary);
  cursor:pointer;transition:color .15s;
}
.sidebar-collapse-btn:hover{color:var(--text)}
.collapse-icon{width:1rem;height:1rem;transition:transform .3s}
.app-sidebar.collapsed .collapse-icon{transform:rotate(180deg)}

/* ── App Content (shifts with sidebar) ── */
.app-content{
  transition:margin-left .3s ease;
  min-height:100vh;display:flex;flex-direction:column;
}
@media(min-width:768px){.app-content{margin-left:14rem}}
@media(min-width:768px){.app-content.sidebar-collapsed{margin-left:4rem}}

/* ── Topbar ── */
.app-topbar{
  position:sticky;top:0;z-index:30;
  display:flex;align-items:center;gap:1rem;height:3.5rem;
  padding:0 1rem;
  background:var(--topbar-bg);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border-color);
}
@media(min-width:768px){.app-topbar{padding:0 1.5rem}}
.mobile-menu-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}
@media(min-width:768px){.mobile-menu-btn{display:none}}
.topbar-search{flex:1;max-width:28rem;position:relative}
.search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-secondary)}
.topbar-search-input{
  width:100%;padding:.375rem .75rem .375rem 2.25rem;
  border:1px solid var(--border-color);border-radius:6px;
  background:var(--sidebar-hover);color:var(--text);
  font-size:.85rem;font-family:var(--font);
  transition:border .15s,box-shadow .15s;
}
.topbar-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(20,184,166,.12)}
.topbar-search-input::placeholder{color:var(--text-secondary)}
.topbar-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.topbar-btn{
  display:flex;align-items:center;justify-content:center;
  width:2rem;height:2rem;border:none;border-radius:6px;
  background:transparent;color:var(--text-secondary);cursor:pointer;
  transition:background .15s,color .15s;
}
.topbar-btn:hover{background:var(--sidebar-hover);color:var(--text)}
.icon-sun,.icon-moon{display:none}
.topbar-avatar{
  width:1.75rem;height:1.75rem;border-radius:50%;
  background:rgba(20,184,166,.2);color:var(--primary);
  display:flex;align-items:center;justify-content:center;
  font-size:.65rem;font-weight:600;
}

/* ── Page Content ── */
.page-content{flex:1;padding:1rem 1.5rem;max-width:1200px;width:100%;margin:0 auto}
@media(max-width:767px){.page-content{padding:1rem}}

/* Legacy container override */
.container{max-width:1200px;margin:0 auto;padding:0}

/* Legacy header hide (no longer used but keep for safety) */
.app-header{display:none}
.header-inner{display:none}
.header-sub{display:none}

/* ── Form Sections (collapsible) — Glass card style ── */
.form-section{
  background:var(--card-bg);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid var(--border-color);border-radius:var(--radius);
  margin-bottom:12px;overflow:hidden;
  transition:border-color .15s
}
.form-section:hover{border-color:rgba(46,46,46,.8)}
.section-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;user-select:none;transition:background .15s}
.section-header:hover{background:rgba(255,255,255,.03)}
.section-header h2{font-size:.95rem;font-weight:600;color:var(--text)}
.toggle-arrow{font-size:.85rem;color:var(--gray-400);transition:transform .2s}
.toggle-arrow.open{transform:rotate(0)}
.section-body{padding:0 20px 20px}
.section-body.collapsed{display:none}

/* ── Form Grid ── */
.form-row{display:grid;gap:16px;margin-bottom:12px}
.form-row.cols-2{grid-template-columns:1fr 1fr}
.form-row.cols-3{grid-template-columns:1fr 1fr 1fr}
.form-row.cols-4{grid-template-columns:1fr 1fr 1fr 1fr}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:.78rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}
.req{color:var(--red)}

/* ── Inputs — Modern dark inputs matching receipt vault ── */
input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="url"],input[type="date"],select,textarea{
  width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);
  font-family:var(--font);font-size:.875rem;color:var(--text);
  background:rgba(36,36,36,.5);transition:border .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(20,184,166,.12)}
select{cursor:pointer}
textarea{resize:vertical}
.input-prefix{display:flex;align-items:center;border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;background:rgba(36,36,36,.5)}
.input-prefix span{padding:8px 10px;background:var(--gray-100);color:var(--text-secondary);font-size:.8rem;font-weight:600;white-space:nowrap;border-right:1px solid var(--border-color)}
.input-prefix input{border:none;border-radius:0;flex:1;min-width:0;background:transparent}
.input-prefix input:focus{box-shadow:inset 0 0 0 2px rgba(20,184,166,.12)}
.pct{font-size:.8rem;color:var(--text-secondary);margin-left:4px}

/* ── Radio & Checkbox ── */
.radio-group{display:flex;flex-wrap:wrap;gap:8px 16px}
.radio-label,.cb-label{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;color:var(--text-secondary);transition:color .15s}
.radio-label:hover,.cb-label:hover{color:var(--text)}
.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
input[type="radio"],input[type="checkbox"]{accent-color:var(--primary)}

/* ── Scope Groups ── */
.scope-group{margin-bottom:16px}
.scope-group h4{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-color)}

/* ── Mode Toggle ── */
.mode-toggle{display:flex;gap:8px}
.mode-btn{padding:8px 24px;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font-weight:600;font-size:.85rem;color:var(--text-secondary);transition:all .15s}
.mode-btn.active{border-color:var(--primary);background:rgba(20,184,166,.1);color:var(--primary)}
.mode-btn:hover:not(.active){border-color:var(--gray-300);background:rgba(255,255,255,.03);color:var(--text)}

/* ── Multiplier Sliders ── */
.multiplier-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.multiplier-row label{width:120px;flex-shrink:0;font-size:.85rem;font-weight:600;color:var(--gray-600)}
.multiplier-row input[type="range"]{flex:1;height:6px;-webkit-appearance:none;appearance:none;background:var(--gray-200);border-radius:3px;outline:none}
.multiplier-row input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;border:2px solid #141414;box-shadow:var(--shadow)}
.multiplier-row input[type="number"]{width:70px;text-align:center}

/* ── Dynamic Cards (Subs, Custom Costs) ── */
.sub-quote-card,.custom-cost-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:16px;margin-bottom:10px;background:rgba(36,36,36,.4);position:relative}
.sub-quote-card .form-row{margin-bottom:8px}
.card-remove{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--red);cursor:pointer;font-size:1.1rem;padding:4px 8px;border-radius:4px}
.card-remove:hover{background:rgba(220,38,38,.1)}

/* ── File Upload — Receipt vault dropzone style ── */
.upload-area{border:2px dashed var(--gray-300);border-radius:var(--radius);padding:48px 32px;text-align:center;cursor:pointer;transition:border .2s,background .2s;background:transparent}
.upload-area:hover,.upload-area.drag-over{border-color:var(--primary);background:rgba(20,184,166,.04)}
.upload-icon{font-size:2rem;margin-bottom:8px;opacity:.6}
.upload-link{color:var(--primary);text-decoration:underline;cursor:pointer;font-weight:600}
.upload-hint{font-size:.75rem;color:var(--gray-400);margin-top:4px}
.file-list{margin-top:8px}
.file-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:4px;background:var(--surface);transition:border-color .15s}
.file-item:hover{border-color:var(--gray-300)}
.file-item .file-name{flex:1;font-size:.85rem;font-weight:500;color:var(--text)}
.file-item .file-size{font-size:.75rem;color:var(--text-secondary)}
.file-item .file-type{font-size:.65rem;padding:2px 8px;border-radius:4px;background:rgba(20,184,166,.1);color:var(--primary);font-weight:600;text-transform:uppercase}
.file-item .file-remove{background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:1rem;padding:2px 6px}
.file-item .file-remove:hover{color:var(--red)}

/* SOV Banner */
.sov-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-sm);margin-top:8px;font-size:.85rem;font-weight:500;color:var(--yellow)}

/* ── Buttons — Clean, modern ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 20px;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}
.btn-primary{background:var(--primary);color:#111}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}
.btn-secondary{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--gray-200);color:var(--text)}
.btn-outline{background:none;border:1px dashed var(--gray-300);color:var(--text-secondary)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-success{background:var(--green);color:#fff}.btn-success:hover{background:#047857}
.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#B91C1C}
.btn-sm{padding:4px 12px;font-size:.78rem}
.btn-lg{padding:12px 32px;font-size:.95rem}
.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:12px;margin-bottom:24px}
.form-divider{border:none;border-top:1px solid var(--border-color);margin:16px 0}

/* ── Progress Pipeline ── */
.progress-pipeline{display:flex;align-items:center;justify-content:center;gap:0;padding:48px 20px 16px}
.pipe-step{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:80px;position:relative}
.pipe-icon{font-size:1.5rem;color:var(--gray-300);transition:color .4s ease,transform .4s ease,text-shadow .4s ease;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--gray-200);background:var(--surface);transition:color .4s ease,transform .4s ease,border-color .4s ease,background .4s ease,box-shadow .4s ease}
.pipe-label{font-size:.75rem;color:var(--gray-400);font-weight:500;transition:color .4s ease,font-weight .2s ease}
.pipe-connector{width:40px;height:2px;background:var(--gray-200);margin-bottom:24px;position:relative;overflow:hidden;transition:background .5s ease}
.pipe-connector::after{content:'';position:absolute;top:0;left:0;height:100%;width:0;background:var(--primary);transition:width .6s ease}
.pipe-step.completed + .pipe-connector::after{width:100%}
.pipe-step.active .pipe-icon{color:var(--primary);border-color:var(--primary);box-shadow:0 0 0 4px rgba(20,184,166,.15),0 0 12px rgba(20,184,166,.1);animation:stepPulse 2s ease-in-out infinite;transform:scale(1.08)}
.pipe-step.completed .pipe-icon{color:#fff;border-color:var(--primary);background:var(--primary);transform:scale(1);animation:stepComplete .4s ease forwards}
.pipe-step.active .pipe-label{color:var(--primary);font-weight:600}
.pipe-step.completed .pipe-label{color:var(--text);font-weight:600}
@keyframes stepPulse{0%,100%{box-shadow:0 0 0 4px rgba(20,184,166,.15),0 0 12px rgba(20,184,166,.1)}50%{box-shadow:0 0 0 8px rgba(20,184,166,.08),0 0 20px rgba(20,184,166,.15)}}
@keyframes stepComplete{0%{transform:scale(1.15)}60%{transform:scale(.95)}100%{transform:scale(1)}}
@keyframes statusFade{0%{opacity:0;transform:translateY(4px)}100%{opacity:1;transform:translateY(0)}}
.progress-status{text-align:center;color:var(--text-secondary);font-size:.85rem;margin-top:12px;min-height:1.4em}

/* ── Error Card ── */
.error-card{background:var(--card-bg);border-left:4px solid var(--red);border:1px solid var(--border-color);border-left:4px solid var(--red);border-radius:var(--radius);padding:32px;text-align:center;max-width:500px;margin:48px auto}
.error-icon{font-size:2.5rem;color:var(--red);margin-bottom:8px}
.error-card h3{margin-bottom:8px;color:var(--text)}
.error-card p{color:var(--text-secondary);margin-bottom:16px}

/* ── Results Header ── */
.results-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:16px 20px;background:var(--card-bg);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius)}
.results-header .rh-title{font-size:1.15rem;font-weight:700;color:var(--text)}
.results-header .rh-meta{display:flex;gap:8px;flex-wrap:wrap}
.rh-badge{font-size:.7rem;padding:3px 10px;border-radius:20px;background:rgba(255,255,255,.06);color:var(--text-secondary);font-weight:600}
.rh-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ── Result Cards — Glass card style ── */
.result-card{background:var(--card-bg);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;transition:border-color .15s}
.result-card:hover{border-color:rgba(46,46,46,.8)}
.rc-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-color)}
.rc-header h3{font-size:.95rem;font-weight:600;color:var(--text)}
.rc-body{padding:20px}

/* ── Bid Summary Cards — Receipt vault card pattern ── */
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.summary-card{padding:16px;border-radius:var(--radius);border:1px solid var(--border-color);background:var(--card-bg);backdrop-filter:blur(12px);text-align:left;transition:border-color .15s}
.summary-card:hover{border-color:rgba(46,46,46,.8)}
.summary-card.highlight{border-color:rgba(20,184,166,.3);background:rgba(20,184,166,.04)}
.sc-label{font-size:.72rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.sc-value{font-size:1.4rem;font-weight:700;color:var(--text);font-family:var(--font-mono);margin:4px 0}
.sc-sub{font-size:.72rem;color:var(--gray-500)}
.risk-badge{display:inline-block;padding:3px 12px;border-radius:4px;font-size:.8rem;font-weight:700;color:#fff}
.risk-LOW{background:var(--green)}.risk-MEDIUM{background:var(--yellow)}.risk-HIGH{background:var(--red)}

/* ── Cost Breakdown Bars ── */
.cost-bars{display:flex;flex-direction:column;gap:8px}
.cost-bar-row{display:flex;align-items:center;gap:12px}
.cost-bar-label{width:120px;flex-shrink:0;font-size:.8rem;font-weight:500;color:var(--gray-600);text-align:right}
.cost-bar-track{flex:1;height:24px;background:var(--gray-100);border-radius:4px;overflow:hidden;position:relative}
.cost-bar-fill{height:100%;border-radius:4px;transition:width .5s;display:flex;align-items:center;justify-content:flex-end;padding-right:6px;font-size:.7rem;color:#fff;font-weight:600;min-width:2px}
.cost-bar-fill.materials{background:#3B82F6}.cost-bar-fill.labor{background:#10B981}
.cost-bar-fill.subs{background:#F59E0B}.cost-bar-fill.additional{background:#8B5CF6}
.cost-bar-fill.overhead{background:#6366F1}.cost-bar-fill.contingency{background:#EC4899}
.cost-bar-fill.insurance{background:#14B8A6}.cost-bar-fill.bonds{background:#F97316}
.cost-bar-fill.tax{background:#EF4444}.cost-bar-fill.profit{background:#059669}
.cost-bar-amount{width:100px;font-size:.8rem;font-weight:600;text-align:right}
.cost-total{display:flex;justify-content:space-between;padding:12px 0;border-top:2px solid var(--border-color);margin-top:12px;font-size:1rem;font-weight:700;color:var(--text)}

/* ── Data Tables — Receipt vault table pattern ── */
.data-table{width:100%;border-collapse:collapse;font-size:.82rem}
.data-table thead{background:rgba(255,255,255,.04)}
.data-table th{padding:10px 12px;text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}
.data-table td{padding:9px 12px;border-bottom:1px solid rgba(46,46,46,.4);color:var(--text)}
.data-table tbody tr:hover{background:rgba(255,255,255,.03)}
.data-table tfoot{font-weight:700;border-top:2px solid var(--border-color)}
.data-table tfoot td{padding:10px 12px}
.text-right{text-align:right}
.text-center{text-align:center}
.text-muted{color:var(--text-secondary)}
.text-sm{font-size:.75rem}

/* Source badges — Opacity-based for dark theme */
.source-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:.65rem;font-weight:600;text-transform:uppercase}
.source-badge.ai,.source-ai{background:rgba(37,99,235,.12);color:#60a5fa}
.source-badge.sub,.source-sub{background:rgba(245,158,11,.12);color:var(--yellow)}
.source-badge.manual,.source-manual{background:rgba(16,185,129,.12);color:var(--green)}
.source-badge.confirmed,.source-confirmed{background:rgba(16,185,129,.12);color:var(--green)}
.source-badge.self{background:rgba(37,99,235,.12);color:#60a5fa}
.source-badge.tbd{background:var(--surface);color:var(--text-secondary)}

/* Pricing source badges (material takeoff) */
.pricing-source{font-size:.75rem;padding:.15rem .5rem;border-radius:20px;white-space:nowrap;display:inline-block;font-weight:600}
.source-db-verified{background:rgba(5,150,105,.12);color:#34d399}
.source-database{background:rgba(37,99,235,.12);color:#60a5fa}
.source-ai{background:rgba(217,119,6,.12);color:var(--yellow)}
.source-none{background:rgba(239,68,68,.12);color:#f87171}

/* Regional index card */
.summary-card.regional-high{border-left:3px solid #dc2626}
.summary-card.regional-low{border-left:3px solid #059669}
.summary-card.regional-avg{border-left:3px solid #2563eb}
.sc-sublabel{font-size:.7rem;color:var(--gray-500);margin-top:.25rem}

/* Status badges */
.status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600}
.status-self{background:rgba(37,99,235,.12);color:#60a5fa}
.status-sub{background:rgba(245,158,11,.12);color:var(--yellow)}

/* Confidence bar */
.confidence-bar{display:flex;align-items:center;gap:6px}
.conf-track{width:50px;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}
.conf-fill{height:100%;border-radius:3px}
.conf-high{background:var(--green)}.conf-med{background:var(--yellow)}.conf-low{background:var(--red)}

/* ── SOV Editor ── */
.sov-table{width:100%;border-collapse:collapse;font-size:.8rem}
.sov-table th{padding:8px 10px;background:rgba(255,255,255,.04);color:var(--text-secondary);text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border-color)}
.sov-table td{padding:6px 10px;border-bottom:1px solid rgba(46,46,46,.4);color:var(--text)}
.sov-table td[contenteditable="true"]{background:rgba(255,255,240,.04);cursor:text}
.sov-table td[contenteditable="true"]:focus{outline:2px solid var(--primary);outline-offset:-2px;background:rgba(20,184,166,.04)}
.sov-section-row{background:rgba(255,255,255,.04);font-weight:700}
.sov-subtotal-row{font-weight:600;background:rgba(255,255,255,.02)}
.sov-total-row{font-weight:700;background:rgba(255,255,255,.06);color:var(--text);font-size:.9rem}
.sov-markup-row{font-style:italic;color:var(--gray-600)}
.sov-actions{display:flex;gap:8px;margin-bottom:12px}

/* ── SOV Comparison ── */
.variance-positive{color:var(--green)}.variance-negative{color:var(--red)}

/* ── Risk Assessment ── */
.risk-score-bar{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.risk-score-track{flex:1;height:12px;background:var(--gray-200);border-radius:6px;overflow:hidden}
.risk-score-fill{height:100%;border-radius:6px;transition:width .5s}
.risk-score-badge{font-size:1.5rem;font-weight:700;min-width:48px;text-align:center}
.risk-categories{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.risk-cat-card{border-radius:var(--radius-sm);border:1px solid var(--gray-200);overflow:hidden}
.risk-cat-header{padding:10px 14px;font-weight:600;font-size:.85rem;border-left:4px solid;display:flex;justify-content:space-between;align-items:center}
.risk-cat-header .cat-count{font-size:.7rem;padding:2px 8px;border-radius:10px;background:var(--gray-100)}
.risk-cat-body{padding:10px 14px;font-size:.8rem}
.risk-cat-body li{margin-bottom:4px;color:var(--gray-700)}
.risk-sev-red{border-color:var(--red)}.risk-sev-yellow{border-color:var(--yellow)}
.risk-sev-blue{border-color:var(--blue)}.risk-sev-green{border-color:var(--green)}
.risk-recs{margin-top:16px;padding:12px 16px;background:var(--gray-50);border-radius:var(--radius-sm)}
.risk-recs h4{font-size:.85rem;margin-bottom:8px}
.risk-recs li{font-size:.8rem;margin-bottom:4px;color:var(--gray-700)}

/* ── Client Q&A ── */
.qa-section{margin-bottom:12px}
.qa-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--gray-50);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--gray-200)}
.qa-header:hover{background:var(--gray-100)}
.qa-header h4{font-size:.85rem;font-weight:600}
.qa-badge{font-size:.7rem;padding:2px 10px;border-radius:10px;background:var(--blue);color:#fff;font-weight:600}
.qa-body{padding:12px 16px;display:none}
.qa-body.open{display:block}
.qa-item{padding:8px 0;border-bottom:1px solid var(--gray-100)}
.qa-item:last-child{border:none}
.qa-question{font-size:.85rem;color:var(--dark)}
.qa-impact{font-size:.75rem;color:var(--gray-500);margin-top:2px}
.qa-priority{display:inline-block;font-size:.65rem;padding:1px 6px;border-radius:3px;font-weight:700;margin-right:6px}
.pri-must{background:rgba(239,68,68,.12);color:#f87171}.pri-recommended{background:rgba(245,158,11,.12);color:var(--yellow)}
.pri-nice{background:var(--surface);color:var(--text-secondary)}

/* ── API Usage ── */
.api-toggle{cursor:pointer;user-select:none}
.api-detail{display:none}.api-detail.open{display:block}
.api-summary{display:flex;gap:20px;font-size:.8rem;color:var(--gray-500)}

/* ── Additional Costs Summary ── */
.add-cost-table{width:100%;font-size:.85rem}
.add-cost-table td{padding:6px 0;border-bottom:1px solid var(--gray-100)}
.add-cost-table .ac-total{font-weight:700;border-top:2px solid var(--dark)}

/* ── Result Card Header/Body (collapsible) ── */
.result-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border-color);cursor:pointer;user-select:none;transition:background .15s}
.result-card-header:hover{background:rgba(255,255,255,.03)}
.result-card-header h3{font-size:.95rem;font-weight:600;color:var(--text)}
.result-card-header:not(.plan-data-toggle)::after{content:'\25BE';font-size:.7rem;color:var(--gray-400);transition:transform .2s ease;flex-shrink:0;margin-left:8px}
.result-card-header.rc-collapsed{border-bottom-color:transparent}
.result-card-header.rc-collapsed:not(.plan-data-toggle)::after{transform:rotate(-90deg)}
.result-card-body{padding:20px}
.result-card-body.collapsed{display:none}

/* Expand/Collapse All toggle */
.rc-toggle-all{font-size:.78rem;color:var(--gray-500);background:none;border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:3px 10px;cursor:pointer;font-weight:500;transition:all .15s}
.rc-toggle-all:hover{background:var(--gray-50);color:var(--dark);border-color:var(--gray-300)}

/* ── Results Header Inner ── */
.results-header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.results-header-left h2{font-size:1.2rem;font-weight:700;margin-bottom:4px}
.results-header-right{display:flex;gap:8px;flex-wrap:wrap}
.results-meta{display:flex;gap:8px;flex-wrap:wrap}
.meta-badge{font-size:.7rem;padding:3px 10px;border-radius:4px;background:var(--gray-100);color:var(--gray-600);font-weight:600}

/* ── Risk Badges (results) ── */
.badge-high{background:var(--red)}.badge-med{background:var(--yellow)}.badge-low{background:var(--green)}

/* ── Delta Colors (SOV comparison) ── */
.delta-over{color:var(--red);font-weight:600}
.delta-under{color:var(--green);font-weight:600}

/* ── Cost Bar Fill Colors (new class names) ── */
.cost-bar-fill.bar-materials{background:#3B82F6}.cost-bar-fill.bar-labor{background:#10B981}
.cost-bar-fill.bar-subs{background:#F59E0B}.cost-bar-fill.bar-additional{background:#8B5CF6}
.cost-bar-fill.bar-overhead{background:#6366F1}.cost-bar-fill.bar-contingency{background:#EC4899}
.cost-bar-fill.bar-insurance{background:#14B8A6}.cost-bar-fill.bar-bonds{background:#F97316}
.cost-bar-fill.bar-tax{background:#EF4444}.cost-bar-fill.bar-profit{background:#059669}

/* ── Info Note ── */
.info-note{margin-top:8px;padding:8px 12px;background:rgba(37,99,235,.06);border:1px solid rgba(37,99,235,.2);border-radius:var(--radius-sm);font-size:.8rem;color:#60a5fa}

/* ── SOV Editor Extras ── */
.sov-editor-actions{display:flex;gap:8px}
.sov-editor-wrap{overflow-x:auto}
.sov-editor-table{width:100%;border-collapse:collapse;font-size:.8rem}
.sov-editor-table th{padding:8px 10px;background:rgba(255,255,255,.04);color:var(--text-secondary);text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border-color)}
.sov-editor-table td{padding:6px 10px;border-bottom:1px solid rgba(46,46,46,.4);color:var(--text)}
.sov-cell[contenteditable="true"]{background:rgba(255,255,240,.04);cursor:text;min-width:60px}
.sov-cell[contenteditable="true"]:focus{outline:2px solid var(--primary);outline-offset:-2px;background:rgba(20,184,166,.04)}
.sov-item-row:hover{background:var(--gray-50)}
.sov-grand-total-row{font-weight:700;background:rgba(255,255,255,.06);color:var(--text);font-size:.9rem}
.sov-grand-total-row td{padding:10px}
.sov-exclusions,.sov-qualifications{margin-top:16px;font-size:.8rem}
.sov-exclusions h4,.sov-qualifications h4{font-size:.85rem;font-weight:600;margin-bottom:6px}
.sov-exclusions ul,.sov-qualifications ul{padding-left:20px;color:var(--gray-700)}
.sov-exclusions li,.sov-qualifications li{margin-bottom:4px}

/* ── Confidence Bar (with fill child) ── */
.confidence-bar{display:inline-flex;align-items:center;gap:6px;min-width:80px}
.confidence-bar .conf-fill{width:50px;height:6px;border-radius:3px;display:inline-block}
.confidence-bar span{font-size:.7rem;font-weight:600}
.conf-high .conf-fill{background:var(--green)}.conf-med .conf-fill{background:var(--yellow)}.conf-low .conf-fill{background:var(--red)}

/* ── Status Badges ── */
.status-tbd{background:var(--gray-100);color:var(--gray-500)}
.sub-row{background:rgba(245,158,11,.04)}

/* ── Risk Score Section ── */
.risk-score-section{margin-bottom:20px}
.risk-score-bar{height:12px;background:var(--gray-200);border-radius:6px;overflow:hidden;margin-bottom:8px}
.risk-score-fill{height:100%;border-radius:6px;transition:width .5s}
.risk-score-fill.score-high{background:var(--red)}.risk-score-fill.score-med{background:var(--yellow)}.risk-score-fill.score-low{background:var(--green)}
.risk-score-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--gray-400)}
.risk-score-value{font-weight:700}
.risk-score-value.score-high{color:var(--red)}.risk-score-value.score-med{color:var(--yellow)}.risk-score-value.score-low{color:var(--green)}

/* ── Risk Category Cards ── */
.risk-category-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:14px;border-left:4px solid var(--gray-300)}
.risk-category-card h4{font-size:.85rem;font-weight:600;margin-bottom:6px}
.risk-category-card ul{padding-left:18px;font-size:.8rem;color:var(--gray-700)}
.risk-category-card li{margin-bottom:4px}
.risk-category-card p{margin-bottom:4px}
.risk-cat-high{border-left-color:var(--red)}.risk-cat-med{border-left-color:var(--yellow)}.risk-cat-low{border-left-color:var(--green)}

/* ── Q&A Cards ── */
.qa-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);margin-bottom:8px;overflow:hidden}
.qa-card-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;background:var(--gray-50)}
.qa-card-header:hover{background:var(--gray-100)}
.qa-cat{font-weight:600;font-size:.85rem;flex:1}
.qa-count{font-size:.7rem;padding:2px 10px;border-radius:10px;background:var(--blue);color:#fff;font-weight:600}
.qa-card-body{padding:12px 16px}
.qa-card-body.collapsed{display:none}
.qa-card.qa-open .qa-card-body.collapsed{display:block}
.qa-card.qa-open .toggle-arrow{transform:rotate(0)}
.qa-item{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid var(--gray-100)}
.qa-item:last-child{border:none}
.qa-num{font-weight:600;font-size:.85rem;color:var(--gray-400);min-width:24px}
.qa-content{flex:1}
.qa-question{font-size:.85rem;color:var(--dark);margin-bottom:4px}
.priority-badge{display:inline-block;font-size:.65rem;padding:2px 8px;border-radius:3px;font-weight:700;margin-left:6px}
.pri-must{background:rgba(239,68,68,.12);color:#f87171}
.pri-rec{background:rgba(245,158,11,.12);color:var(--yellow)}

/* ── Q&A Interactive (Answer Inputs, Progress, Filters) ── */
.qa-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 20px;border-bottom:1px solid var(--gray-100)}
.qa-progress-wrap{display:flex;align-items:center;gap:10px}
.qa-progress-bar{width:140px;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}
.qa-progress-fill{height:100%;border-radius:4px;background:var(--green);transition:width .3s}
.qa-progress-text{font-size:.75rem;font-weight:600;color:var(--gray-600)}
.qa-filters{display:flex;gap:4px}
.qa-filter-btn{padding:3px 10px;font-size:.72rem;border:1px solid var(--border-color);border-radius:4px;background:transparent;cursor:pointer;font-weight:600;color:var(--text-secondary);transition:all .15s}
.qa-filter-btn.active{border-color:var(--blue);background:var(--blue);color:#fff}
.qa-filter-btn:hover:not(.active){border-color:var(--gray-300);background:var(--gray-50)}
.qa-item.answered .qa-num{color:var(--green)}
.qa-item.na-marked .qa-num{color:var(--gray-300);text-decoration:line-through}
.qa-item.na-marked .qa-question{color:var(--gray-400);text-decoration:line-through}
.qa-answer-row{display:flex;gap:8px;align-items:flex-start;margin-top:6px}
.qa-answer-input{flex:1;padding:6px 10px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font);font-size:.82rem;resize:vertical;min-height:32px;transition:border .15s}
.qa-answer-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.qa-answer-input.has-value{border-color:var(--green);background:rgba(16,185,129,.04)}
.qa-na-btn{padding:4px 10px;font-size:.72rem;border:1px solid var(--border-color);border-radius:4px;background:transparent;cursor:pointer;color:var(--text-secondary);font-weight:600;white-space:nowrap;transition:all .15s}
.qa-na-btn.active{border-color:var(--gray-400);background:var(--gray-100);color:var(--gray-600)}
.qa-na-btn:hover:not(.active){border-color:var(--gray-300)}
.qa-item.hidden-by-filter{display:none}

/* ── Smart Q&A Tab Bar ── */
.qa-tab-bar{display:flex;border-bottom:2px solid var(--gray-200);padding:0 20px;gap:0}
.qa-tab{padding:10px 18px;font-size:.82rem;font-weight:600;color:var(--gray-500);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}
.qa-tab:hover{color:var(--dark);background:var(--gray-50)}
.qa-tab.active{color:var(--blue);border-bottom-color:var(--blue)}
.qa-tab-count{font-size:.7rem;padding:1px 8px;border-radius:10px;background:var(--gray-100);color:var(--gray-500);font-weight:600}
.qa-tab.active .qa-tab-count{background:var(--blue);color:#fff}
.qa-tab-content{padding:0}

/* ── Contractor Action Cards ── */
.ca-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 20px;border-bottom:1px solid var(--gray-100)}
.ca-progress-wrap{display:flex;align-items:center;gap:10px}
.ca-progress-bar{width:140px;height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}
.ca-progress-fill{height:100%;border-radius:4px;background:var(--green);transition:width .3s}
.ca-progress-text{font-size:.75rem;font-weight:600;color:var(--gray-600)}
.ca-filters{display:flex;gap:4px}
.ca-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);margin:0 20px 8px;overflow:hidden}
.ca-card-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;background:var(--gray-50)}
.ca-card-header:hover{background:var(--gray-100)}
.ca-cat-icon{font-size:1rem}
.ca-cat-label{font-weight:600;font-size:.85rem;flex:1}
.ca-card-body{padding:12px 16px}
.ca-card-body.collapsed{display:none}
.ca-card.ca-open .ca-card-body.collapsed{display:block}
.ca-card.ca-open .toggle-arrow{transform:rotate(0)}
.ca-item{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid var(--gray-100)}
.ca-item:last-child{border:none}
.ca-item.resolved .ca-num{color:var(--green)}
.ca-item.resolved{border-left:3px solid var(--green);padding-left:8px}
.ca-item.na-marked .ca-num{color:var(--gray-300);text-decoration:line-through}
.ca-item.na-marked .ca-action-text{color:var(--gray-400);text-decoration:line-through}
.ca-item.hidden-by-filter{display:none}
.ca-action-text{font-size:.85rem;color:var(--dark);margin-bottom:4px}
.ca-context{font-size:.75rem;color:var(--gray-500);margin-top:2px}
.ca-impact{font-size:.75rem;color:#92400E;margin-top:2px;font-weight:500}
.ca-est-line{font-size:.72rem;color:var(--gray-500);margin-top:2px}
.ca-resolve-row{display:flex;gap:8px;align-items:flex-start;margin-top:6px}
.ca-resolve-input{flex:1;padding:6px 10px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font);font-size:.82rem;resize:vertical;min-height:32px;transition:border .15s}
.ca-resolve-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.ca-resolve-input.has-value{border-color:var(--green);background:rgba(16,185,129,.04)}

/* ── Client Q&A Email Toolbar ── */
.qa-email-toolbar{display:flex;gap:8px;padding:8px 20px;border-bottom:1px solid var(--gray-100);background:var(--gray-50);flex-wrap:wrap;align-items:center}
.qa-email-toolbar .qa-filters{margin-right:auto}
.qa-email-btn{padding:4px 12px;font-size:.75rem;border:1px solid var(--border-color);border-radius:4px;background:transparent;cursor:pointer;color:var(--text-secondary);font-weight:600;transition:all .15s;display:flex;align-items:center;gap:4px}
.qa-email-btn:hover{border-color:var(--primary);color:var(--primary);background:rgba(20,184,166,.04)}
.qa-cost-impact{font-size:.72rem;color:#92400E;font-weight:600;margin-top:2px}
.qa-suggested{font-size:.72rem;color:var(--gray-500);margin-top:4px;font-style:italic}
.qa-suggested button{font-size:.7rem;padding:2px 8px;border:1px solid var(--blue);border-radius:3px;background:#F0F7FF;color:var(--blue);cursor:pointer;font-weight:600;margin-left:4px}
.qa-suggested button:hover{background:var(--blue);color:#fff}

/* ── Pricing Fill-In Table ── */
.pricing-wrap{padding:12px 20px}
.pricing-hint{font-size:.78rem;color:var(--gray-500);margin-bottom:12px}
.pricing-table-wrap{overflow-x:auto}
.pricing-table{width:100%;border-collapse:collapse;font-size:.8rem}
.pricing-table th{padding:8px 10px;background:rgba(255,255,255,.04);color:var(--text-secondary);text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}
.pricing-table td{padding:6px 10px;border-bottom:1px solid var(--gray-100)}
.pricing-table tbody tr:nth-child(even){background:var(--gray-50)}
.pricing-table tbody tr:hover{background:var(--gray-100)}
.pricing-table tbody tr.pricing-row-changed{background:#FAFFF8}
.pricing-input{width:100px;padding:4px 8px;border:1px solid var(--gray-200);border-radius:4px;font-size:.82rem;text-align:right;font-family:var(--font)}
.pricing-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.pricing-input.has-value{border-color:var(--green);background:rgba(16,185,129,.04)}
.pricing-source-select{padding:3px 6px;border:1px solid var(--gray-200);border-radius:4px;font-size:.75rem;font-family:var(--font)}
.pricing-delta{font-weight:600;font-size:.8rem}
.pricing-delta.delta-over{color:var(--red)}
.pricing-delta.delta-under{color:var(--green)}
.pricing-summary{font-weight:700;background:var(--gray-50);border-top:2px solid var(--dark)}
.pricing-summary td{padding:10px}
.pricing-recalc-bar{display:flex;justify-content:flex-end;padding:12px 0;gap:8px}

/* ── Toast Notification ── */
.qa-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark);color:#fff;padding:10px 24px;border-radius:8px;font-size:.85rem;font-weight:500;opacity:0;transition:all .3s ease;z-index:10000;pointer-events:none;box-shadow:var(--shadow-md)}
.qa-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── Smart Q&A Empty State ── */
.qa-empty{padding:32px 20px;text-align:center;color:var(--gray-400);font-size:.85rem}

@media(max-width:768px){
  .qa-tab-bar{padding:0 10px;gap:0;overflow-x:auto}
  .qa-tab{padding:8px 12px;font-size:.75rem;white-space:nowrap}
  .ca-card{margin:0 10px 8px}
  .qa-email-toolbar{flex-direction:column;align-items:stretch}
  .qa-email-toolbar .qa-filters{margin-right:0}
  .pricing-input{width:80px}
}

/* ── Inline Value Editors ── */
.inline-editors{margin-top:16px;padding:16px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm)}
.inline-editors h4{font-size:.85rem;font-weight:600;margin-bottom:10px;color:var(--gray-700)}
.ie-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.ie-label{width:120px;font-size:.8rem;font-weight:500;color:var(--gray-600);text-align:right;flex-shrink:0}
.ie-input{width:80px;padding:4px 8px;border:1px solid var(--gray-200);border-radius:4px;font-size:.82rem;text-align:center;font-family:var(--font)}
.ie-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.ie-input.changed{border-color:var(--yellow);background:rgba(245,158,11,.04)}
.ie-unit{font-size:.75rem;color:var(--gray-400)}
.ie-original{font-size:.72rem;color:var(--gray-400);margin-left:4px}
.ie-actions{display:flex;gap:8px;margin-top:12px}

/* ── Refinement Action Banner ── */
.refinement-banner{padding:16px 20px;background:rgba(20,184,166,.04);border:1px solid rgba(20,184,166,.15);border-radius:var(--radius);margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.refinement-banner-text{font-size:.85rem;font-weight:500;color:var(--text)}
.refinement-banner-text strong{color:var(--primary)}
.refinement-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn-refine{background:var(--blue);color:#fff;padding:8px 20px;font-size:.85rem}
.btn-refine:hover{background:var(--blue-hover)}
.btn-recalc{background:transparent;border:1px solid var(--primary);color:var(--primary);padding:8px 16px;font-size:.85rem}
.btn-recalc:hover{background:rgba(20,184,166,.06)}

/* ── Change Report ── */
.change-report{margin-bottom:16px}
.change-report-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.2);border-radius:var(--radius) var(--radius) 0 0}
.change-report-header h3{font-size:.95rem;font-weight:600;color:var(--yellow)}
.change-report-body{padding:20px;background:var(--card-bg);border:1px solid var(--border-color);border-top:none;border-radius:0 0 var(--radius) var(--radius)}
.change-item{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--gray-100)}
.change-item:last-child{border:none}
.change-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}
.change-icon.up{background:rgba(239,68,68,.12);color:#f87171}
.change-icon.down{background:rgba(16,185,129,.12);color:var(--green)}
.change-icon.info{background:rgba(37,99,235,.12);color:#60a5fa}
.change-detail{flex:1}
.change-label{font-size:.85rem;font-weight:500;color:var(--dark)}
.change-delta{font-size:.8rem;font-weight:600;margin-top:2px}
.change-delta.positive{color:var(--red)}
.change-delta.negative{color:var(--green)}
.change-summary{margin-top:12px;padding:12px;background:var(--gray-50);border-radius:var(--radius-sm);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
.change-summary-item{text-align:center}
.change-summary-label{font-size:.72rem;color:var(--gray-500);font-weight:600;text-transform:uppercase}
.change-summary-value{font-size:1rem;font-weight:700;color:var(--dark)}

/* ── Version Selector ── */
.version-selector{display:flex;align-items:center;gap:8px;margin-left:12px}
.version-btn{padding:3px 10px;font-size:.72rem;border:1px solid var(--border-color);border-radius:4px;background:transparent;cursor:pointer;font-weight:600;color:var(--text-secondary);transition:all .15s}
.version-btn.active{border-color:var(--blue);background:var(--blue);color:#fff}
.version-btn:hover:not(.active){border-color:var(--gray-300)}

/* ── Finalize Badge ── */
.finalized-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:4px;background:rgba(16,185,129,.12);color:var(--green);font-size:.75rem;font-weight:700}
.finalized-banner{padding:12px 20px;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2);border-radius:var(--radius);margin-bottom:16px;text-align:center;font-weight:600;color:var(--green)}

/* ── Refinement Progress ── */
.refine-progress{margin-bottom:16px}
.refine-progress-text{text-align:center;font-size:.85rem;color:var(--gray-600);margin-bottom:8px}
.refine-progress-bar{height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}
.refine-progress-fill{height:100%;background:var(--blue);border-radius:3px;animation:refineSlide 2s ease-in-out infinite}
@keyframes refineSlide{0%{width:10%}50%{width:80%}100%{width:10%}}

/* ── Sub Card & Custom Cost Card ── */
.sub-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:16px;margin-bottom:10px;background:var(--gray-50)}
.sub-card .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.sub-card .card-header span{font-weight:600;font-size:.85rem}
.custom-cost-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:8px;background:var(--gray-50)}

/* ── File Badge ── */
.file-badge{font-size:.6rem;padding:2px 8px;border-radius:4px;background:var(--gray-100);color:var(--gray-600);font-weight:700;text-transform:uppercase;flex-shrink:0}

/* ── 3D Building Viewer ── */
.viewer-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.viewer-views{display:flex;gap:4px}
.viewer-view-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.viewer-layers{display:flex;gap:8px;flex-wrap:wrap}
.viewer-layer-toggle{font-size:.78rem}
.viewer-color-select{padding:4px 8px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.78rem;background:var(--surface);color:var(--text);cursor:pointer}
.viewer-actions{display:flex;gap:4px}
.viewer-container{position:relative;width:100%;height:500px;background:#0D1117;border-radius:0 0 var(--radius) var(--radius);overflow:hidden}
.viewer-container.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;border-radius:0}
#viewer-canvas{width:100%;height:100%;display:block;cursor:grab}
#viewer-canvas:active{cursor:grabbing}
.viewer-info{position:absolute;bottom:12px;left:12px;background:rgba(0,0,0,.7);color:#fff;padding:6px 12px;border-radius:var(--radius-sm);font-size:.75rem;pointer-events:none;opacity:0;transition:opacity .2s}
.viewer-info.visible{opacity:1}
.viewer-legend{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.75);color:#fff;padding:10px 14px;border-radius:var(--radius-sm);font-size:.72rem;max-width:180px}
.viewer-legend-title{font-weight:700;margin-bottom:6px;font-size:.8rem}
.legend-item{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.legend-swatch{width:12px;height:12px;border-radius:2px;flex-shrink:0}
.legend-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer-tooltip{position:absolute;background:rgba(0,0,0,.85);color:#fff;padding:6px 10px;border-radius:4px;font-size:.75rem;pointer-events:none;white-space:nowrap;z-index:10}

/* ── Responsive ── */
@media(max-width:768px){
  .form-row.cols-2,.form-row.cols-3,.form-row.cols-4{grid-template-columns:1fr}
  .summary-grid{grid-template-columns:1fr 1fr}
  .risk-categories{grid-template-columns:1fr}
  .multiplier-row{flex-wrap:wrap}
  .multiplier-row label{width:100%}
  .results-header{flex-direction:column;align-items:flex-start}
  .rh-actions{width:100%}
  .progress-pipeline{flex-wrap:wrap;gap:8px}
  .pipe-connector{display:none}
  .viewer-container{height:350px}
  .viewer-controls{flex-direction:column;align-items:flex-start}
  .viewer-legend{max-width:140px;font-size:.65rem}
  .qa-toolbar{flex-direction:column;align-items:flex-start}
  .refinement-banner{flex-direction:column;align-items:flex-start}
  .ie-row{flex-wrap:wrap}.ie-label{width:100%;text-align:left}
  .change-summary{flex-direction:column}
}
@media(max-width:480px){
  .summary-grid{grid-template-columns:1fr}
  html{font-size:13px}
}

/* ═══════════════════════════════════════════════════════════
   Bid Lifecycle Management — Additional Styles
   ═══════════════════════════════════════════════════════════ */

/* ── Main Nav — now sidebar-based (see sidebar styles above) ── */
.main-nav{display:none} /* legacy: hidden, replaced by .sidebar-nav */

/* ── Bid Action Bar ── */
.bid-action-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.75rem;padding:1rem 1.5rem;background:var(--card-bg);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius);margin-bottom:1.5rem}
.action-bar-left{display:flex;align-items:center;gap:0.5rem}
.action-bar-center{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.action-bar-right{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.bid-id-badge{font-family:'SF Mono',Consolas,monospace;font-size:0.8rem;font-weight:600;padding:0.25rem 0.5rem;background:var(--gray-100);border-radius:4px;color:var(--dark)}
.bid-status-badge{font-size:0.75rem;font-weight:700;padding:0.2rem 0.6rem;border-radius:20px;text-transform:uppercase}
.status-draft{background:var(--surface);color:var(--text-secondary)}
.status-refined{background:rgba(37,99,235,.12);color:#60a5fa}
.status-submitted{background:rgba(16,185,129,.12);color:var(--green)}
.status-revision{background:rgba(245,158,11,.12);color:var(--yellow)}
.status-won{background:rgba(16,185,129,.12);color:var(--green);border:1px solid rgba(16,185,129,.3)}
.status-lost{background:rgba(239,68,68,.12);color:#f87171}
.status-expired{background:var(--surface);color:var(--text-secondary)}
.bid-version{font-size:0.8rem;color:var(--gray-500);font-weight:500}
.bid-lock-icon{font-size:0.85rem}
.bid-validity-tag{font-size:0.72rem;padding:2px 8px;border-radius:4px;font-weight:600}
.bid-validity-tag.valid{background:#D1FAE5;color:#065F46}
.bid-validity-tag.warning{background:#FEF3C7;color:#92400E}
.bid-validity-tag.expired{background:#FEE2E2;color:#991B1B}

.btn-success-sm{background:var(--green);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;padding:0.4rem 0.75rem;font-size:0.8rem;font-family:var(--font);font-weight:600;transition:background .15s}
.btn-success-sm:hover{background:#047857}
.btn-danger-outline{background:transparent;color:var(--red);border:1px solid var(--red);border-radius:var(--radius-sm);cursor:pointer;padding:0.4rem 0.75rem;font-size:0.8rem;font-family:var(--font);font-weight:600;transition:all .15s}
.btn-danger-outline:hover{background:rgba(239,68,68,.08)}
.btn-text{background:none;border:none;cursor:pointer;font-family:var(--font);font-size:0.85rem;color:var(--gray-500);font-weight:500;padding:0.4rem 0.75rem;transition:color .15s}
.btn-text:hover{color:var(--dark)}
.btn-text.btn-danger{color:var(--red)}
.btn-text.btn-danger:hover{color:#991B1B}
.status-msg{font-size:0.8rem;color:var(--gray-500);font-style:italic}

/* ── Dropdown ── */
.dropdown{position:relative;display:inline-block}
.dropdown-toggle::after{content:''}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#1e1e1e;border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:0 4px 16px rgba(0,0,0,.4);z-index:100;min-width:200px;margin-top:0.25rem}
.dropdown-menu.show{display:block}
.dropdown-item{display:block;width:100%;padding:0.6rem 1rem;background:none;border:none;text-align:left;font-size:0.85rem;cursor:pointer;color:var(--text);font-family:var(--font);transition:background .1s}
.dropdown-item:hover{background:rgba(255,255,255,.05)}

/* ── Version History Panel ── */
.version-history-panel{position:fixed;right:0;top:0;width:420px;height:100vh;background:#1a1a1a;border-left:1px solid var(--border-color);box-shadow:-4px 0 20px rgba(0,0,0,.4);z-index:200;display:flex;flex-direction:column;transition:transform 0.3s ease}
.version-history-panel.hidden{transform:translateX(100%)}
.version-panel-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}
.version-panel-header h3{font-size:1rem;font-weight:700;color:var(--text)}
.version-panel-body{flex:1;overflow-y:auto;padding:1rem 1.5rem}
.version-entry{padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:0.75rem;transition:border-color 0.15s;background:var(--surface)}
.version-entry:hover{border-color:rgba(20,184,166,.3)}
.version-entry.current{border-color:var(--primary);background:rgba(20,184,166,.06)}
.version-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem}
.version-entry-title{font-weight:700;font-size:0.9rem}
.version-entry-badge{font-size:0.7rem;padding:2px 8px;border-radius:10px;font-weight:600}
.version-entry-stats{font-size:0.82rem;color:var(--gray-600);margin-bottom:0.35rem}
.version-entry-time{font-size:0.75rem;color:var(--gray-400);margin-bottom:0.35rem}
.version-entry-reason{font-size:0.8rem;color:var(--gray-600);font-style:italic;margin-bottom:0.5rem}
.version-entry-changes{font-size:0.8rem;color:var(--gray-600);margin-bottom:0.5rem}
.version-entry-actions{display:flex;gap:0.5rem}

/* ── Notes Panel ── */
.bid-notes-panel{position:fixed;right:0;top:0;width:380px;height:100vh;background:#1a1a1a;border-left:1px solid var(--border-color);box-shadow:-4px 0 20px rgba(0,0,0,.4);z-index:200;display:flex;flex-direction:column;transition:transform 0.3s ease}
.bid-notes-panel.hidden{transform:translateX(100%)}
.notes-panel-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}
.notes-panel-header h3{font-size:1rem;font-weight:700;color:var(--text)}
.notes-hint{font-size:0.75rem;color:var(--gray-400);display:block;margin-top:0.25rem}
.notes-panel-body{flex:1;overflow-y:auto;padding:1rem 1.5rem;display:flex;flex-direction:column}
.note-card{padding:0.75rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);margin-bottom:0.5rem}
.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.35rem}
.note-type-badge{font-size:0.7rem;font-weight:600;padding:0.1rem 0.4rem;border-radius:4px;text-transform:uppercase}
.note-type-general{background:var(--surface);color:var(--text-secondary)}
.note-type-pricing{background:rgba(37,99,235,.12);color:#60a5fa}
.note-type-client{background:rgba(245,158,11,.12);color:var(--yellow)}
.note-type-risk{background:rgba(239,68,68,.12);color:#f87171}
.note-type-reminder{background:rgba(16,185,129,.12);color:var(--green)}
.note-time{font-size:0.7rem;color:var(--gray-400)}
.note-text{font-size:0.85rem;color:var(--dark);line-height:1.4}
.note-version{font-size:0.7rem;color:var(--gray-400);margin-top:0.2rem}
.note-delete{background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:0.8rem;padding:2px 4px}
.note-delete:hover{color:var(--red)}
.notes-add{margin-top:auto;border-top:1px solid var(--gray-200);padding-top:0.75rem}
.notes-add textarea{width:100%;padding:0.5rem;border:1px solid var(--gray-300);border-radius:6px;font-family:var(--font);font-size:0.85rem;resize:vertical}
.notes-add-actions{display:flex;gap:0.5rem;margin-top:0.5rem;align-items:center}
.notes-add-actions select{flex:1;padding:0.4rem;border:1px solid var(--gray-300);border-radius:6px;font-size:0.8rem;font-family:var(--font)}

/* ── Modal Overlay ── */
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.65);backdrop-filter:blur(4px);z-index:300;display:flex;align-items:center;justify-content:center}
.modal-overlay.hidden{display:none}
.modal-content{background:#1e1e1e;border:1px solid var(--border-color);border-radius:var(--radius);padding:1.5rem;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;color:var(--text)}
.modal-title{font-size:1.1rem;font-weight:700;margin-bottom:1rem;color:var(--text)}
.modal-actions{display:flex;justify-content:flex-end;gap:0.75rem;margin-top:1.25rem}
.modal-group{margin-bottom:1rem}
.modal-group label{display:block;font-size:0.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:0.35rem}
.modal-group input[type="text"],.modal-group input[type="number"],.modal-group textarea,.modal-group select{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font);font-size:0.875rem;background:rgba(36,36,36,.5);color:var(--text)}
.modal-group textarea{resize:vertical;min-height:60px}
.modal-checkbox-list{display:flex;flex-direction:column;gap:0.5rem}
.modal-checkbox-list label{display:flex;align-items:center;gap:0.5rem;font-size:0.85rem;cursor:pointer;color:var(--text-secondary)}
.modal-radio-list{display:flex;flex-direction:column;gap:0.5rem}
.modal-radio-list label{display:flex;align-items:center;gap:0.5rem;font-size:0.85rem;cursor:pointer;color:var(--text-secondary)}

/* ── Schedule Preview Modal ── */
.schedule-preview-summary{margin-bottom:1rem}
.schedule-preview-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--gray-100)}
.schedule-preview-row:last-child{border-bottom:none}
.sps-label{font-size:.8rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px}
.sps-value{font-size:.9rem;font-weight:500;color:var(--dark)}
.schedule-preview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.sps-stat{text-align:center;padding:10px 4px;background:var(--gray-50);border-radius:var(--radius-sm);border:1px solid var(--gray-200)}
.sps-stat-value{font-size:1.3rem;font-weight:700;color:var(--blue)}
.sps-stat-label{font-size:.7rem;color:var(--gray-500);font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin-top:2px}
.modal-group input[type="date"]{width:100%;padding:8px 12px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font);font-size:0.875rem}

/* ── Dashboard ── */
.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:0.75rem}
.dashboard-header h2{font-size:1.25rem;font-weight:700;color:var(--text)}
.dashboard-actions{display:flex;gap:0.75rem;align-items:center;flex-wrap:wrap}
.search-input{padding:0.5rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:0.875rem;min-width:200px;font-family:var(--font);background:rgba(36,36,36,.5);color:var(--text)}
.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(20,184,166,.12)}
.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}
.stat-card{background:var(--card-bg);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius);padding:16px;text-align:left;transition:border-color .15s}
.stat-card:hover{border-color:rgba(46,46,46,.8)}
.stat-card .stat-value{font-size:1.4rem;font-weight:700;color:var(--text);font-family:var(--font-mono)}
.stat-card .stat-label{font-size:0.72rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.3px;margin-top:0.25rem}
.dashboard-table-wrap{background:var(--card-bg);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden}
.dashboard-table-wrap .data-table td{font-size:0.82rem}
.dash-actions{display:flex;gap:4px}
.dash-actions button{padding:3px 8px;font-size:0.72rem;border:1px solid var(--border-color);border-radius:4px;background:transparent;cursor:pointer;font-weight:600;color:var(--text-secondary);font-family:var(--font);transition:all .15s}
.dash-actions button:hover{border-color:var(--blue);color:var(--blue)}
.dash-actions button.dash-delete{color:var(--red)}
.dash-actions button.dash-delete:hover{border-color:var(--red);color:var(--red);background:#FEE2E2}
.dashboard-empty{text-align:center;padding:3rem;color:var(--gray-400)}
.dashboard-empty p{font-size:0.95rem;margin-bottom:0.5rem}

/* ── Audit Trail ── */
.audit-trail{padding:1rem 1.5rem}
.audit-entry{display:flex;gap:1rem;margin-bottom:0.75rem;padding-bottom:0.75rem;border-bottom:1px solid var(--gray-100)}
.audit-entry:last-child{border-bottom:none}
.audit-dot{width:10px;height:10px;border-radius:50%;margin-top:0.4rem;flex-shrink:0}
.audit-dot.created{background:var(--blue)}
.audit-dot.edited{background:var(--yellow)}
.audit-dot.refined{background:#8B5CF6}
.audit-dot.submitted{background:var(--green)}
.audit-dot.won{background:var(--green)}
.audit-dot.lost{background:var(--red)}
.audit-dot.unlocked{background:var(--yellow)}
.audit-dot.note{background:#6366F1}
.audit-dot.exported{background:var(--gray-400)}
.audit-dot.cloned{background:#14B8A6}
.audit-time{font-size:0.75rem;color:var(--gray-400);white-space:nowrap;min-width:100px}
.audit-detail{font-size:0.85rem;color:var(--dark)}
.audit-meta{font-size:0.75rem;color:var(--gray-500);margin-top:0.15rem}

/* ── Compare Versions ── */
.compare-table{width:100%;border-collapse:collapse;font-size:0.85rem;margin:1rem 0}
.compare-table th{padding:8px 12px;text-align:left;background:var(--gray-100);font-weight:600;font-size:0.78rem;color:var(--gray-600)}
.compare-table td{padding:8px 12px;border-bottom:1px solid var(--gray-100)}
.compare-table .delta-positive{color:var(--red);font-weight:600}
.compare-table .delta-negative{color:var(--green);font-weight:600}
.compare-table .delta-neutral{color:var(--gray-400)}
.compare-changes{margin-top:1rem}
.compare-changes h4{font-size:0.9rem;font-weight:600;margin-bottom:0.5rem}
.compare-change-item{padding:0.4rem 0;font-size:0.85rem;color:var(--gray-700)}

/* ── Locked state overlay ── */
.bid-locked .inline-editors{opacity:0.5;pointer-events:none;position:relative}
.bid-locked .inline-editors::after{content:'Locked';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,0.6);color:#fff;padding:4px 16px;border-radius:4px;font-size:0.85rem;font-weight:600}
.bid-locked .qa-answer-input{pointer-events:none;opacity:0.5}
.bid-locked .qa-na-btn{pointer-events:none;opacity:0.5}

/* ── Responsive additions ── */
@media(max-width:768px){
  .bid-action-bar{flex-direction:column;align-items:flex-start}
  .version-history-panel,.bid-notes-panel{width:100%}
  .dashboard-stats{grid-template-columns:repeat(2,1fr)}
  .dashboard-actions{flex-direction:column;width:100%}
  .search-input{width:100%}
  /* .main-nav no longer used */
}
@media(max-width:480px){
  .dashboard-stats{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════
   Plan Data Extraction — Styles
   ═══════════════════════════════════════════════════════════ */

.plan-data-toggle{cursor:pointer;user-select:none}
.plan-data-toggle:hover{background:var(--gray-50)}

.plan-source-badge{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:4px;margin-left:.5rem}
.badge-plans{background:#d1fae5;color:#065f46}
.badge-estimated{background:#e2e8f0;color:#475569}

.plan-subsection{padding:.75rem 0;border-bottom:1px solid #f1f5f9}
.plan-subsection:last-child{border-bottom:none}
.plan-subsection h4{font-size:.9rem;font-weight:700;color:#1f2933;margin-bottom:.5rem}

.plan-data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.35rem}
.plan-data-item{display:flex;gap:.5rem;font-size:.85rem;padding:.2rem 0}
.plan-data-label{color:#6b7280;font-weight:500;min-width:120px;flex-shrink:0}
.plan-data-value{color:#1f2933;font-weight:400}

.sheets-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.sheet-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.35rem .6rem;font-size:.8rem}
.conf-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:.25rem;vertical-align:middle}
.conf-dot.high{background:#059669}
.conf-dot.medium{background:#d97706}
.conf-dot.low{background:#dc2626}

.qty-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}
.qty-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem .5rem;text-align:center}
.qty-chip-value{font-size:1.25rem;font-weight:700;color:#2563eb}
.qty-chip-label{font-size:.75rem;color:#6b7280;margin-top:.15rem}

.equip-item{font-size:.85rem;padding:.25rem 0;color:#1f2933}

.special-group{font-size:.85rem;margin-bottom:.5rem}
.special-item{padding-left:1rem;color:#4b5563}

/* ── Data Source Indicator ── */
.viewer-data-source{padding:.5rem 1.5rem;border-top:1px solid #e2e8f0;font-size:.8rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.source-badge-tag{font-weight:600;padding:.2rem .5rem;border-radius:4px}
.source-plans{background:#d1fae5;color:#065f46}
.source-hybrid{background:#fef3c7;color:#92400e}
.source-estimated{background:#e2e8f0;color:#475569}
.source-notes{color:#6b7280;font-style:italic}

/* ── Plan Data Responsive ── */
@media(max-width:768px){
  .plan-data-grid{grid-template-columns:1fr}
  .qty-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
  .sheets-grid{flex-direction:column}
}

/* ═══════════════════════════════════════════════════════════
   Trade RFQ Email Drafts
   ═══════════════════════════════════════════════════════════ */

/* Header */
.rfq-subtitle{font-size:.85rem;color:var(--gray-500);font-weight:400}
.rfq-header-actions{display:flex;gap:.5rem;align-items:center}

/* Email Cards */
.rfq-email-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;margin-bottom:.75rem;overflow:hidden}
.rfq-email-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;cursor:pointer;transition:background .15s}
.rfq-email-header:hover{background:var(--gray-50)}
.rfq-email-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.rfq-email-title h4{margin:0;font-size:.95rem}
.rfq-email-actions{display:flex;align-items:center;gap:.5rem}
.rfq-estimate{font-weight:700;font-size:.95rem;color:var(--dark)}

.rfq-email-body{padding:0 1rem 1rem}
.rfq-email-body.collapsed{display:none}

/* CSI Badge */
.csi-badge{font-size:.75rem;color:var(--gray-500);background:var(--gray-100);padding:.1rem .4rem;border-radius:4px;font-weight:500}

/* Email Preview */
.rfq-email-preview{background:var(--surface);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem;overflow:hidden}
.rfq-email-subject{padding:.6rem 1rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200);font-size:.9rem}
.rfq-email-content{padding:1rem;font-size:.85rem;line-height:1.7;color:var(--text-secondary);max-height:500px;overflow-y:auto;white-space:pre-wrap;font-family:var(--font)}

/* Scope Quick View */
.rfq-scope-quick{margin-bottom:.75rem}
.rfq-scope-detail.collapsed{display:none}
.rfq-scope-list{padding-left:1.5rem;font-size:.8rem;color:#4b5563;line-height:1.5}
.rfq-mini-label{font-size:.75rem;font-weight:700;color:#374151;margin:.5rem 0 .25rem;text-transform:uppercase}

/* Shared Labels */
.rfq-section-label{font-size:.8rem;font-weight:700;text-transform:uppercase;color:var(--gray-700);margin-top:1rem;margin-bottom:.4rem;letter-spacing:.03em}
.rfq-disc-badge{font-size:.7rem;background:#fef3c7;color:#92400e;padding:.15rem .5rem;border-radius:10px;font-weight:600}

/* Discrepancies */
.rfq-discrepancy{padding:.5rem .75rem;border-radius:6px;margin-bottom:.4rem;border-left:3px solid;font-size:.85rem}
.rfq-discrepancy.severity-high{background:rgba(239,68,68,.06);border-left-color:var(--red)}
.rfq-discrepancy.severity-medium{background:rgba(245,158,11,.06);border-left-color:var(--yellow)}
.rfq-discrepancy.severity-low{background:rgba(16,185,129,.06);border-left-color:var(--green)}

/* Estimate Box */
.rfq-estimate-box{margin-top:.75rem;padding:.6rem .75rem;background:var(--gray-50);border-radius:6px;border:1px solid var(--gray-200);font-size:.85rem}
.rfq-est-label{color:var(--gray-500)}
.rfq-est-conf{color:var(--gray-500);font-size:.8rem}
.rfq-est-basis{color:var(--gray-500);font-size:.8rem;margin-top:.2rem;font-style:italic}

/* Attachment Options */
.rfq-attachments{margin-top:.75rem}
.rfq-attach-options{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}
.rfq-section-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding:.5rem;background:var(--gray-50);border-radius:6px}

/* Quantities Table */
.rfq-qty-table{font-size:.8rem;margin:.5rem 0}

/* Sub Quote Entry */
.rfq-sub-entry{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--gray-200)}
.rfq-sub-row{display:flex;gap:1rem;margin-bottom:.5rem}
.rfq-sub-row .form-group{flex:1;margin-bottom:0}
.rfq-sub-row .form-group label{font-size:.8rem}
.rfq-sub-row input,.rfq-sub-row textarea{font-size:.85rem;padding:.5rem .6rem}
.rfq-sub-actions{display:flex;justify-content:flex-end;margin-top:.5rem}

/* Saved Quote */
.rfq-saved-quote{padding:.75rem;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.2);border-radius:6px}
.rfq-saved-header{font-weight:700;font-size:.9rem;color:var(--green);margin-bottom:.3rem}
.rfq-saved-details{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem}
.rfq-saved-notes{font-size:.8rem;color:var(--gray-500);font-style:italic;width:100%;margin-top:.2rem}
.rfq-var-ok{color:var(--green)}
.rfq-var-alert{color:var(--red);font-weight:600}

/* Progress */
.rfq-progress-card{text-align:center;padding:2rem}
.rfq-progress-card h4{margin-bottom:.5rem}
.rfq-progress-card p{color:var(--gray-500);font-size:.9rem;margin-bottom:1rem}

/* Error */
.rfq-error-card{text-align:center;padding:2rem;background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.2);border-radius:8px}
.rfq-error-card h4{color:var(--red);margin-bottom:.5rem}
.rfq-error-card p{color:var(--text-secondary);margin-bottom:1rem;font-size:.9rem}

/* Priority Badges */
.priority-high{background:var(--red);color:#fff;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}
.priority-medium{background:var(--yellow);color:#fff;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}
.priority-low{background:var(--green);color:#fff;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}

/* ── RFQ Responsive ── */
@media(max-width:768px){
  .rfq-email-header{flex-direction:column;align-items:flex-start;gap:.5rem}
  .rfq-email-actions{width:100%;justify-content:space-between}
  .rfq-sub-row{flex-direction:column;gap:.5rem}
  .rfq-attach-options{flex-direction:column}
}

/* ═══════════════════════════════════════════════════════════
   RFQ Editable Draft Cards (Copy / Mail / Markdown Export)
   ═══════════════════════════════════════════════════════════ */

.rfq-description{font-size:.9rem;color:#6b7280;margin-bottom:1rem;padding:0 .25rem}

/* Divider between legacy cards and draft cards */
.rfq-drafts-divider{display:flex;align-items:center;gap:.75rem;margin:1.5rem 0 1rem;padding:0 .25rem}
.rfq-drafts-divider span{font-size:.8rem;font-weight:700;text-transform:uppercase;color:var(--gray-500);letter-spacing:.03em;white-space:nowrap}
.rfq-drafts-divider::before,.rfq-drafts-divider::after{content:'';flex:1;height:1px;background:var(--gray-200)}

/* Draft Card */
.rfq-draft-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1rem;overflow:hidden}

/* Draft Card Header */
.rfq-draft-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:rgba(255,255,255,.03);border-bottom:1px solid var(--border-color)}
.rfq-draft-card-title{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.rfq-draft-card-title h4{font-size:1rem;font-weight:700;margin:0}
.rfq-draft-csi{font-size:.75rem;font-weight:600;padding:.15rem .5rem;background:rgba(37,99,235,.12);color:#60a5fa;border-radius:4px}
.rfq-draft-estimate{font-size:.8rem;color:#6b7280}
.rfq-draft-card-actions{display:flex;gap:.25rem}

/* Action Buttons */
.btn-rfq-action{background:none;border:1px solid #e2e8f0;border-radius:6px;padding:.35rem .65rem;font-size:.8rem;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn-rfq-action:hover{background:#eff6ff;border-color:#93c5fd}

/* Status Badges */
.rfq-draft-status-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:10px;white-space:nowrap}
.rfq-draft-status-badge.status-draft{background:var(--surface);color:var(--text-secondary)}
.rfq-draft-status-badge.status-copied{background:rgba(37,99,235,.12);color:#60a5fa}
.rfq-draft-status-badge.status-mailed{background:rgba(217,119,6,.12);color:var(--yellow)}
.rfq-draft-status-badge.status-sent_to_assistant{background:rgba(5,150,105,.12);color:var(--green)}

/* Recipient Bar */
.rfq-draft-recipient-bar{display:flex;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}
.rfq-draft-recipient-field{display:flex;align-items:center;gap:.35rem;flex:1;min-width:180px}
.rfq-draft-recipient-field label{font-size:.8rem;font-weight:600;color:#6b7280;white-space:nowrap}
.rfq-draft-recipient-field input{flex:1;padding:.35rem .5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem;min-width:120px}
.rfq-draft-recipient-field input:focus{border-color:#2563eb;outline:none}

/* Subject Bar */
.rfq-draft-subject-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;border-bottom:1px solid #f1f5f9}
.rfq-draft-subject-bar label{font-size:.8rem;font-weight:600;color:#6b7280}
.rfq-draft-subject-bar input{flex:1;padding:.35rem .5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem;font-weight:500}
.rfq-draft-subject-bar input:focus{border-color:#2563eb;outline:none}

/* Body Editor */
.rfq-draft-body-container{padding:1rem 1.25rem}
.rfq-draft-body-container.collapsed{display:none}
.rfq-draft-body-editor{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:8px;font-family:'SF Mono','Monaco','Menlo',monospace;font-size:.85rem;line-height:1.5;resize:vertical;min-height:200px;box-sizing:border-box}
.rfq-draft-body-editor:focus{border-color:#2563eb;outline:none}

/* ── RFQ Draft Cards Responsive ── */
@media(max-width:768px){
  .rfq-draft-card-header{flex-direction:column;gap:.5rem;align-items:flex-start}
  .rfq-draft-recipient-bar{flex-direction:column}
  .rfq-draft-card-actions{width:100%;justify-content:flex-end}
}

/* ═══════════════════════════════════════════════════════════
   CONFIDENCE DASHBOARD (Upgrade 7)
   ═══════════════════════════════════════════════════════════ */
.confidence-dashboard{background:var(--card-bg);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}
.confidence-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem}
.confidence-header h3{font-size:1.1rem;font-weight:700;margin:0}
.overall-confidence{display:flex;align-items:center;gap:.75rem}
.overall-score{font-size:2rem;font-weight:800;color:var(--blue)}
.overall-label{font-size:.85rem;color:var(--gray-500);max-width:250px}
.confidence-sections{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.confidence-section{padding:.75rem;background:var(--gray-50);border-radius:8px}
.confidence-section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
.confidence-icon{font-size:1.1rem}
.confidence-name{flex:1;font-weight:600;font-size:.85rem}
.confidence-pct{font-weight:700;font-size:.9rem}
.confidence-pct.high{color:var(--green)}
.confidence-pct.medium{color:var(--yellow)}
.confidence-pct.low{color:var(--red)}
.confidence-bar-track{height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden;margin-bottom:.3rem}
.confidence-bar-fill{height:100%;border-radius:3px;transition:width .5s}
.confidence-bar-fill.high{background:var(--green)}
.confidence-bar-fill.medium{background:var(--yellow)}
.confidence-bar-fill.low{background:var(--red)}
.confidence-detail{font-size:.75rem;color:var(--gray-500)}
.confidence-actions{margin-top:1rem;padding:1rem;background:rgba(245,158,11,.06);border-radius:8px;border-left:4px solid var(--yellow)}
.confidence-actions h4{font-size:.9rem;font-weight:700;margin-bottom:.5rem;color:var(--yellow)}
.confidence-actions ul{padding-left:1.25rem;font-size:.85rem;margin:0}
.confidence-actions li{margin-bottom:.3rem;color:var(--text-secondary)}

/* ═══════════════════════════════════════════════════════════
   ASSUMPTIONS LOG (Upgrade 8)
   ═══════════════════════════════════════════════════════════ */
.assumptions-count{font-size:.8rem;padding:.2rem .6rem;background:var(--yellow);color:#fff;border-radius:12px;font-weight:600}
.assumption-severity{display:inline-block;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}
.assumption-severity.critical{background:#fef2f2;color:#dc2626}
.assumption-severity.high{background:rgba(234,88,12,.12);color:#fb923c}
.assumption-severity.medium{background:rgba(217,119,6,.12);color:var(--yellow)}

/* ═══════════════════════════════════════════════════════════
   COORDINATION ISSUES (Upgrade 9)
   ═══════════════════════════════════════════════════════════ */
.coord-issue-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-bottom:.75rem}
.coord-issue-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}
.coord-severity{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}
.coord-severity.critical{background:var(--red);color:#fff}
.coord-severity.high{background:#ea580c;color:#fff}
.coord-severity.medium{background:var(--yellow);color:#fff}
.coord-trades{display:flex;gap:.3rem;flex-wrap:wrap}
.coord-trade-tag{padding:.1rem .4rem;background:var(--gray-100);border-radius:4px;font-size:.7rem;color:var(--gray-600);font-weight:500}
.coord-body{font-size:.85rem;color:var(--gray-600);margin-bottom:.5rem}
.coord-recommendation{font-size:.8rem;color:var(--gray-500);padding:.5rem;background:var(--gray-50);border-radius:6px;border-left:3px solid var(--blue)}
.coord-cost{font-size:.8rem;color:var(--gray-500);margin-top:.4rem}

/* ═══════════════════════════════════════════════════════════
   VALUE ENGINEERING (Upgrade 10)
   ═══════════════════════════════════════════════════════════ */
.ve-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-bottom:.75rem}
.ve-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}
.ve-title{font-weight:600;font-size:.9rem;color:var(--dark)}
.ve-savings{font-weight:700;font-size:.95rem;color:var(--green)}
.ve-costs{display:flex;gap:1.5rem;margin-bottom:.5rem;font-size:.85rem;color:var(--gray-500)}
.ve-costs span{display:flex;align-items:center;gap:.25rem}
.ve-tradeoff{font-size:.8rem;color:var(--gray-500);padding:.5rem;background:#f0fdf4;border-radius:6px;border-left:3px solid var(--green)}
.ve-csi{font-size:.7rem;color:var(--gray-400);margin-top:.4rem}
.ve-total-savings{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--gray-50);border-radius:8px;margin-top:.5rem;font-weight:600}
.ve-total-savings .ve-total-amount{font-size:1.1rem;color:var(--green);font-weight:700}

@media(max-width:768px){
  .confidence-sections{grid-template-columns:1fr}
  .confidence-header{flex-direction:column;align-items:flex-start}
}

/* ═══════════════════════════════════════════════════════════
   ENHANCED RISK ASSESSMENT (Upgrade 2)
   ═══════════════════════════════════════════════════════════ */
.risk-header-stats{display:flex;gap:.75rem;align-items:center;margin-left:auto}
.risk-stat{font-size:.85rem;color:var(--gray-600);font-weight:500}
.risk-exposure{color:var(--danger);font-weight:600}
.risk-cat-count{font-size:.8rem;color:var(--gray-500);font-weight:400}

.risk-item{padding:.6rem .75rem;margin-bottom:.5rem;border-radius:6px;background:rgba(255,255,255,.5);border-left:3px solid var(--gray-300)}
.risk-item-high{border-left-color:var(--danger);background:rgba(239,68,68,.04)}
.risk-item-medium{border-left-color:var(--warning);background:rgba(245,158,11,.04)}
.risk-item-low{border-left-color:var(--green);background:rgba(34,197,94,.04)}

.risk-item-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}
.risk-severity-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:4px;letter-spacing:.5px}
.risk-sev-high{background:rgba(239,68,68,.12);color:#dc2626}
.risk-sev-medium{background:rgba(245,158,11,.12);color:#d97706}
.risk-sev-low{background:rgba(34,197,94,.12);color:#16a34a}
.risk-probability{font-size:.75rem;color:var(--gray-500)}

.risk-item-text{font-size:.85rem;line-height:1.5;color:var(--gray-700);margin-bottom:.3rem}
.risk-cost-impact{font-size:.8rem;color:var(--danger);font-weight:500;margin-bottom:.2rem}
.risk-mitigation{font-size:.8rem;color:var(--info);font-style:italic;margin-bottom:.2rem}
.risk-meta{font-size:.75rem;color:var(--gray-500)}

/* Risk recommendations */
.risk-rec-item{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;margin-bottom:.4rem;border-radius:6px;background:var(--gray-50)}
.risk-rec-item p{flex:1;min-width:200px;font-size:.85rem;margin:0}
.risk-rec-cost{font-size:.8rem;color:var(--gray-600);font-weight:500}
.risk-rec-reduction{font-size:.8rem;color:var(--green);font-weight:500}

/* Contingency recommendation */
.risk-contingency-rec{margin-top:1rem;padding:1rem;border-radius:8px;background:linear-gradient(135deg,rgba(99,102,241,.04),rgba(139,92,246,.04));border:1px solid rgba(99,102,241,.15)}
.risk-contingency-rec h4{margin-bottom:.75rem;color:var(--primary)}
.contingency-breakdown{display:flex;flex-direction:column;gap:.25rem}
.contingency-row{display:flex;justify-content:space-between;padding:.3rem .5rem;font-size:.85rem;color:var(--gray-600)}
.contingency-total{font-weight:700;color:var(--gray-800);border-top:2px solid var(--primary);margin-top:.25rem;padding-top:.5rem;font-size:.95rem}
.contingency-reasoning{font-size:.8rem;color:var(--gray-500);font-style:italic;margin-top:.5rem;line-height:1.4}

/* ═══════════════════════════════════════════════════════════
   CSI DIVISION COVERAGE (CSI Add-on, Change 6)
   ═══════════════════════════════════════════════════════════ */
.csi-coverage{margin-bottom:1.5rem}
.csi-coverage-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem 1.5rem}
.csi-coverage-card .result-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.csi-coverage-card h3{font-size:1.1rem;font-weight:700;margin:0}
.csi-div-total{font-size:.8rem;color:var(--gray-500);font-weight:500}
.csi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.4rem}
.csi-div-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.45rem .75rem;border-radius:6px;font-size:.85rem;border-left:4px solid}
.csi-covered{background:rgba(5,150,105,.05);border-left-color:#059669}
.csi-partial{background:rgba(217,119,6,.05);border-left-color:#d97706}
.csi-risk{background:rgba(239,68,68,.05);border-left-color:#dc2626}
.csi-div-code{font-weight:700;color:var(--gray-800);min-width:45px}
.csi-div-name{font-weight:600;color:var(--gray-700);flex:1;min-width:110px}
.csi-div-stats{font-size:.75rem;color:var(--gray-500)}
.csi-div-cost{font-weight:700;color:var(--gray-800);font-size:.85rem;margin-left:auto}
@media(max-width:768px){.csi-grid{grid-template-columns:1fr}}

/* ═══════════════════════════════════════════════════════════
   SUB QUOTE ENTRY PANEL
   ═══════════════════════════════════════════════════════════ */
.sub-quote-actions{display:flex;gap:.5rem;margin-left:auto}
.row-selected{background:#eff6ff !important}
.variance-over{color:var(--red);font-weight:600}
.variance-under{color:var(--green);font-weight:600}
.variance-ok{color:var(--gray-500)}
.scope-notes-cell{max-width:200px;font-size:.8rem;color:var(--gray-500)}
.sq-actions-cell{white-space:nowrap}
.sq-selected-btn{color:var(--green) !important;font-weight:700}
.sq-remove-btn{color:var(--red) !important}
.sq-selected-label{font-size:.75rem;color:var(--green);font-weight:600}
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:capitalize}
.status-received{background:rgba(37,99,235,.12);color:#60a5fa}
.status-accepted{background:rgba(16,185,129,.12);color:var(--green)}
.status-rejected{background:rgba(239,68,68,.12);color:var(--red)}
.status-negotiating{background:rgba(245,158,11,.12);color:var(--yellow)}

/* Sub quote summary bar */
.sub-summary-bar{display:flex;gap:1.5rem;align-items:center;padding:1rem 1.5rem;background:var(--gray-50);border-top:1px solid var(--gray-200);flex-wrap:wrap}
.sub-summary-item{font-size:.9rem}
.sub-summary-label{color:var(--gray-500);margin-right:.25rem}
.sub-summary-item.savings strong{color:var(--green)}
.sub-summary-item.increase strong{color:var(--red)}
.adjusted-total{font-size:1.1rem;color:var(--blue)}

/* Sub quote modal body */
.sq-modal-body .form-row{margin-bottom:12px}
.sq-modal-body .form-group label{font-size:.8rem;font-weight:600;color:var(--gray-600)}

/* Modal footer */
.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--gray-200)}
/* Modal header */
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200)}
.modal-header h3{font-size:1.1rem;font-weight:700;margin:0}
/* Modal body */
.modal-body{padding:1.5rem}

/* ═══════════════════════════════════════════════════════════
   VERSION HISTORY & COMPARISON
   ═══════════════════════════════════════════════════════════ */
.version-list{display:flex;flex-direction:column;gap:.5rem}
.version-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-sm)}
.version-item.current{border-color:var(--primary);background:rgba(20,184,166,.06)}
.version-badge{background:var(--dark);color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .5rem;border-radius:4px;white-space:nowrap}
.version-item.current .version-badge{background:var(--blue)}
.version-total{font-weight:700;font-size:1.1rem}
.version-meta{font-size:.8rem;color:var(--gray-500)}
.version-change{font-size:.85rem;margin-left:.5rem}
.version-change.up{color:var(--red)}
.version-change.down{color:var(--green)}
.version-info{flex:1}

/* Comparison */
.comparison-header{display:flex;justify-content:space-between;align-items:center;margin:1.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-200)}
.comparison-header h4{margin:0}
.comparison-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}
.comparison-metric{padding:.75rem;border-radius:var(--radius-sm);border:1px solid var(--gray-200);text-align:center}
.comparison-metric.metric-up{background:rgba(239,68,68,.06);border-color:rgba(239,68,68,.2)}
.comparison-metric.metric-down{background:rgba(16,185,129,.06);border-color:rgba(16,185,129,.2)}
.metric-label{font-size:.75rem;color:var(--gray-500);margin-bottom:.25rem}
.metric-old,.metric-new{font-weight:600;font-size:.9rem}
.metric-arrow{color:var(--gray-400);font-size:.8rem;margin:.2rem 0}

/* Diff table */
.comparison-table .diff-added{background:rgba(16,185,129,.06) !important}
.comparison-table .diff-removed{background:rgba(239,68,68,.06) !important;text-decoration:line-through}
.comparison-table .diff-changed{background:rgba(245,158,11,.06) !important}

@media(max-width:768px){
  .sub-summary-bar{flex-direction:column;gap:.5rem;align-items:flex-start}
  .comparison-grid{grid-template-columns:1fr 1fr}
  .version-item{flex-wrap:wrap}
}

/* ═══════════════════════════════════════════════════════════
   GOOGLE DRIVE FOLDER LINKS
   ═══════════════════════════════════════════════════════════ */
.drive-links-panel{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);margin-bottom:16px;padding:16px 20px;overflow:hidden}
.drive-links-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.drive-links-header h4{font-size:.9rem;font-weight:700;color:var(--dark);margin:0}
.drive-root-link{font-size:.8rem;color:var(--blue);text-decoration:none;font-weight:600}
.drive-root-link:hover{text-decoration:underline}
.drive-links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.drive-link-chip{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-50);text-decoration:none;color:var(--dark);font-size:.82rem;font-weight:500;transition:all .15s;cursor:pointer}
.drive-link-chip:hover{border-color:var(--blue);background:rgba(37,99,235,.04);color:var(--blue)}
.drive-chip-icon{font-size:1.1rem;flex-shrink:0}
.drive-chip-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drive-btn{background:#1a73e8 !important;color:#fff !important;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}
.drive-btn:hover{background:#1557b0 !important}
@media(max-width:768px){
  .drive-links-grid{grid-template-columns:repeat(2,1fr)}
  .drive-links-header{flex-direction:column;align-items:flex-start;gap:4px}
}

/* ═══════════════════════════════════════════════════════════
   SPRINT: TOAST NOTIFICATION SYSTEM
   ═══════════════════════════════════════════════════════════ */
.toast{
  position:fixed;bottom:2rem;right:2rem;padding:.75rem 1.5rem;
  background:var(--dark);color:#fff;border-radius:var(--radius-sm);
  font-size:.9rem;font-weight:500;z-index:9999;
  opacity:0;transform:translateY(10px);
  transition:opacity .3s,transform .3s;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
  max-width:400px
}
.toast.visible{opacity:1;transform:translateY(0)}
.toast.error{background:var(--red)}
.toast.success{background:var(--green)}
.toast.info{background:var(--blue)}

/* ═══════════════════════════════════════════════════════════
   SPRINT: SUBCONTRACTOR PORTAL INTEGRATION
   ═══════════════════════════════════════════════════════════ */

/* Share with Subs button accent */
.btn-portal{background:#059669 !important;border-color:#059669 !important}
.btn-portal:hover{background:#047857 !important}

/* Portal link modal */
.portal-link-box{display:flex;gap:.5rem;align-items:center;margin:12px 0}
.portal-link-input{flex:1;padding:.6rem .75rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font);background:var(--gray-50);color:var(--dark);cursor:text}
.portal-link-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.portal-actions-row{display:flex;gap:.75rem;margin:12px 0;flex-wrap:wrap}
.portal-spinner{width:36px;height:36px;border:3px solid var(--gray-200);border-top-color:var(--blue);border-radius:50%;animation:portal-spin .7s linear infinite;margin:0 auto}
@keyframes portal-spin{to{transform:rotate(360deg)}}

/* Portal publish bar & LIVE badge */
.portal-publish-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;margin-bottom:.5rem}
.portal-badge{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.badge-live{background:#059669;color:#fff;font-size:.7rem;font-weight:700;padding:.2rem .5rem;border-radius:4px;letter-spacing:.5px;animation:badge-pulse 2s ease-in-out infinite}
@keyframes badge-pulse{0%,100%{opacity:1}50%{opacity:.7}}
.portal-link{color:var(--blue);font-size:.82rem;text-decoration:none;word-break:break-all;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
.portal-link:hover{text-decoration:underline}
.text-danger{color:#dc2626 !important}

/* Received portal quotes section */
.pq-stats{font-size:.8rem;color:var(--gray-500);font-weight:500}
.pq-trade-group{margin-bottom:1.25rem}
.pq-trade-header{font-size:.9rem;font-weight:700;color:var(--dark);padding:.5rem 0;border-bottom:1px solid var(--gray-200);margin-bottom:.5rem}
.pq-trade-count{font-weight:400;color:var(--gray-400)}
.pq-quote-card{padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:.5rem;background:var(--surface);transition:border-color .15s}
.pq-quote-card:hover{border-color:var(--blue)}
.pq-quote-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.pq-quote-company{font-weight:700;font-size:.95rem;color:var(--dark)}
.pq-quote-amount{font-weight:700;font-size:1.05rem;color:var(--green)}
.pq-quote-details{display:flex;gap:1rem;font-size:.82rem;color:var(--gray-600);flex-wrap:wrap}
.pq-quote-details a{color:var(--blue);text-decoration:none}
.pq-quote-details a:hover{text-decoration:underline}
.pq-quote-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--gray-400);margin-top:.4rem;flex-wrap:wrap}
.pq-quote-scope{margin-top:.4rem;font-size:.8rem;color:var(--gray-500)}
.pq-scope-label{font-weight:600}
.pq-quote-exclusions{margin-top:.4rem;font-size:.8rem;color:var(--gray-600);background:var(--gray-50);padding:.4rem .6rem;border-radius:4px}
.pq-quote-actions{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--gray-100)}

@media(max-width:768px){
  .portal-link-box{flex-direction:column}
  .portal-link-input{width:100%}
  .portal-actions-row{flex-direction:column}
  .pq-quote-top{flex-direction:column;align-items:flex-start;gap:.25rem}
  .pq-quote-details{flex-direction:column;gap:.25rem}
}

/* ═══════════════════════════════════════════════════════════
   SPRINT: INTERNAL REVIEW / APPROVAL PANEL
   ═══════════════════════════════════════════════════════════ */
.review-panel{
  background:var(--card-bg);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius);
  padding:1.5rem;margin-bottom:1.5rem
}

/* Status pipeline */
.status-pipeline{display:flex;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:.25rem}
.pipeline-stage{display:flex;align-items:center;gap:.5rem;font-size:.85rem;white-space:nowrap}
.pipeline-dot{
  width:12px;height:12px;border-radius:50%;
  border:2px solid var(--gray-300);background:var(--surface);flex-shrink:0
}
.pipeline-stage.completed .pipeline-dot{background:var(--green);border-color:var(--green)}
.pipeline-stage.current .pipeline-dot{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.2)}
.pipeline-stage.completed span{color:var(--green)}
.pipeline-stage.current span{color:var(--blue);font-weight:700}
.pipeline-stage.pending span{color:var(--gray-400)}
.pipeline-connector{flex:0 0 auto;width:32px;height:2px;background:var(--gray-300)}
.pipeline-connector.completed{background:var(--green)}

.review-escalation-notice{
  margin-top:.5rem;padding:.5rem 1rem;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.2);
  border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;color:var(--yellow);text-align:center
}

/* Review body grid */
.review-body-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1rem}

/* Review checklist */
.review-checklist h4,.review-notes h4{font-size:.9rem;font-weight:700;margin-bottom:.75rem;color:var(--dark)}
.review-check-item{
  display:flex;align-items:flex-start;gap:.5rem;padding:.4rem 0;
  font-size:.85rem;cursor:pointer;color:var(--gray-700)
}
.review-check-item.required{font-weight:500}
.review-check-item input[type="checkbox"]{margin-top:2px;flex-shrink:0}
.review-progress{font-size:.8rem;color:var(--gray-500);margin-top:.75rem;font-weight:500}

/* Review notes */
.review-note-input{display:flex;gap:.5rem;margin-bottom:1rem;align-items:flex-start}
.review-note-input textarea{flex:1;padding:.5rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font);font-size:.85rem;resize:vertical}
.review-note-list{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto}
.review-note{
  padding:.75rem;background:var(--gray-50);border-radius:var(--radius-sm);
  border-left:3px solid var(--blue)
}
.review-note-header{display:flex;justify-content:space-between;margin-bottom:.25rem}
.review-note-header strong{font-size:.8rem;color:var(--dark)}
.review-note-time{font-size:.72rem;color:var(--gray-400)}
.review-note-text{font-size:.85rem;color:var(--gray-700)}

/* Review actions */
#review-actions{display:flex;gap:.75rem;margin-top:.5rem}

/* Review final status */
.review-final-status{display:inline-block;padding:.4rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700}

/* ═══════════════════════════════════════════════════════════
   SPRINT: RFQ STATUS TRACKER
   ═══════════════════════════════════════════════════════════ */
.rfq-tracker{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--gray-200)}
.rfq-tracker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}
.rfq-tracker-header h4{font-size:.9rem;font-weight:700;margin:0}
.rfq-tracker-stats{font-size:.8rem;color:var(--gray-500);font-weight:500}
.rfq-tracker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}
.rfq-tracker-item{
  padding:.75rem;border-radius:var(--radius-sm);border:1px solid var(--gray-200);font-size:.85rem
}
.rfq-status-draft{background:var(--surface)}
.rfq-status-sent{background:rgba(37,99,235,.06);border-color:rgba(37,99,235,.2)}
.rfq-status-responded{background:rgba(16,185,129,.06);border-color:rgba(16,185,129,.2)}
.rfq-tracker-trade{font-weight:700;margin-bottom:.25rem}
.rfq-tracker-company{color:var(--gray-500);font-size:.8rem}
.rfq-tracker-status{font-size:.75rem;font-weight:600;text-transform:uppercase;margin-top:.25rem}
.rfq-status-draft .rfq-tracker-status{color:var(--gray-400)}
.rfq-status-sent .rfq-tracker-status{color:var(--blue)}
.rfq-status-responded .rfq-tracker-status{color:var(--green)}
.rfq-tracker-date{font-size:.75rem;color:var(--gray-400);margin-top:.15rem}
.rfq-tracker-amount{font-weight:700;color:var(--green);margin-top:.25rem}

/* RFQ Send button styling */
.send-rfq-draft{background:var(--green) !important;color:#fff !important;border-color:var(--green) !important}
.send-rfq-draft:hover{background:#047857 !important}

/* RFQ Sent status badge */
.rfq-draft-status-badge.status-sent{background:rgba(16,185,129,.12);color:var(--green)}

/* ═══════════════════════════════════════════════════════════
   SPRINT: ENHANCED DASHBOARD — Additional Statuses
   ═══════════════════════════════════════════════════════════ */
.status-review-requested,.status-review_requested{background:rgba(37,99,235,.12);color:#60a5fa}
.status-pm-review,.status-pm_review{background:rgba(99,102,241,.12);color:#818cf8}
.status-mgmt-review,.status-mgmt_review{background:rgba(245,158,11,.12);color:var(--yellow)}
.status-approved{background:rgba(16,185,129,.12);color:var(--green)}

/* ═══════════════════════════════════════════════════════════
   SPRINT: RESPONSIVE
   ═══════════════════════════════════════════════════════════ */
@media(max-width:768px){
  .review-body-grid{grid-template-columns:1fr}
  .status-pipeline{flex-direction:column;align-items:flex-start;gap:.5rem}
  .pipeline-connector{width:2px;height:16px;margin:0 0 0 5px}
  .rfq-tracker-grid{grid-template-columns:1fr}
  .toast{right:1rem;left:1rem;max-width:none}
}

/* ═══════════════════════════════════════════════════════════
   CODES & STANDARDS — COMPLIANCE SYSTEM
   ═══════════════════════════════════════════════════════════ */

/* Field hints (auto-suggest under dropdowns) */
.field-hint{display:block;margin-top:4px;font-size:.78rem;color:var(--blue);font-style:italic;min-height:1.1em}

/* Compliance confidence badge */
.compliance-conf-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:700;margin-left:.5rem;vertical-align:middle}
.conf-high{background:#d1fae5;color:#065f46}
.conf-med{background:#fef3c7;color:#92400e}
.conf-low{background:#fef2f2;color:#991b1b}

/* Jurisdiction info grid */
.compliance-jurisdiction{margin-bottom:1.25rem}
.compliance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-top:.75rem}
.compliance-item{padding:.6rem .75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm)}
.compliance-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500);font-weight:600;margin-bottom:2px}
.compliance-value{font-size:.88rem;font-weight:600;color:var(--dark)}

/* Local amendments & special requirements */
.compliance-note{font-size:.85rem;color:var(--text-secondary);padding:.5rem .75rem;background:rgba(245,158,11,.06);border-left:3px solid var(--yellow);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-top:.5rem}

/* Summary stats bar */
.compliance-stats{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0;padding:.75rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm)}
.compliance-stat{font-size:.85rem;font-weight:500;color:var(--gray-700)}
.compliance-stat strong{font-weight:700}
.stat-critical strong{color:#dc2626}
.stat-high strong{color:#ea580c}

/* Triggered requirements table */
.compliance-triggers-table{width:100%;border-collapse:collapse;font-size:.82rem;margin:1rem 0}
.compliance-triggers-table th{text-align:left;padding:.5rem .6rem;background:var(--gray-50);border-bottom:2px solid var(--gray-200);font-weight:700;color:var(--gray-600);font-size:.75rem;text-transform:uppercase;letter-spacing:.3px}
.compliance-triggers-table td{padding:.5rem .6rem;border-bottom:1px solid var(--gray-100);vertical-align:top}
.compliance-triggers-table tr:hover{background:var(--gray-50)}

/* Priority badges */
.prio-badge{display:inline-block;padding:1px 8px;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.prio-critical{background:rgba(239,68,68,.12);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.prio-high{background:rgba(234,88,12,.12);color:#fb923c;border:1px solid rgba(234,88,12,.3)}
.prio-medium{background:rgba(202,138,4,.12);color:#fbbf24;border:1px solid rgba(202,138,4,.3)}
.prio-low{background:rgba(22,163,74,.12);color:#4ade80;border:1px solid rgba(22,163,74,.3)}

/* Sprinkler analysis */
.compliance-sprinkler{padding:.75rem 1rem;background:rgba(37,99,235,.06);border:1px solid rgba(37,99,235,.2);border-radius:var(--radius-sm);font-size:.88rem;margin:1rem 0;color:var(--text)}
.compliance-sprinkler strong{color:#60a5fa}

/* Occupancy analysis */
.compliance-occupancy{padding:.6rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.85rem;margin:.75rem 0}

/* Low-confidence warning */
.compliance-warning{padding:.75rem 1rem;background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);font-size:.85rem;color:#f87171;font-weight:500;margin-top:1rem}

@media(max-width:768px){
  .compliance-grid{grid-template-columns:1fr 1fr}
  .compliance-stats{flex-direction:column;gap:.5rem}
  .compliance-triggers-table{font-size:.75rem}
  .compliance-triggers-table th,.compliance-triggers-table td{padding:.4rem}
}
/* === Reset === */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* === Base === */
html { scroll-behavior: smooth; }

body {
  font-family: var(--font);
  line-height: 1.6;
  background: #141414;
  color: var(--text);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.section {
  padding: 1.5rem 0;
}

.hidden { display: none !important; }

/* === Header === */
.site-header {
  background: #141414;
  border-bottom: 1px solid var(--border-color);
  color: var(--text);
  padding: 2.5rem 0;
  text-align: center;
}

.header-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.header-nav {
  text-align: left;
  margin-bottom: 1rem;
}

.back-link {
  color: #60a5fa;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
}

.back-link:hover { text-decoration: underline; }

.site-header h1 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.header-subtitle {
  font-size: 1.05rem;
  opacity: 0.8;
}

/* === Buttons === */
.btn-primary {
  background: var(--primary);
  color: #141414;
  border: none;
  border-radius: 8px;
  padding: 0.75rem 2rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, transform 0.1s;
}

.btn-primary:hover:not(:disabled) {
  background: var(--primary-hover);
  transform: translateY(-1px);
}

.btn-primary:disabled {
  background: var(--gray-300);
  color: var(--gray-500);
  cursor: not-allowed;
}

.btn-secondary {
  background: transparent;
  color: var(--primary);
  border: 2px solid var(--primary);
  border-radius: 8px;
  padding: 0.625rem 1.5rem;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
}

.btn-secondary:hover { background: rgba(20,184,166,.06); }

.btn-text {
  background: none;
  border: none;
  color: var(--primary);
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0.5rem;
  text-decoration: none;
}

.btn-text:hover { text-decoration: underline; }

/* === Mode Selector === */
.mode-selector {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
}

.mode-selector-label {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--text);
  margin-bottom: 0.75rem;
}

.mode-toggle {
  display: flex;
  gap: 0.75rem;
}

.mode-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1rem 1.5rem;
  background: var(--surface);
  border: 2px solid var(--border-color);
  border-radius: 10px;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
}

.mode-btn:hover {
  border-color: rgba(20,184,166,.4);
  background: rgba(20,184,166,.04);
  color: var(--primary);
}

.mode-btn.active {
  border-color: var(--primary);
  background: rgba(20,184,166,.08);
  color: var(--primary);
  box-shadow: 0 2px 8px rgba(20, 184, 166, 0.15);
}

.mode-icon {
  width: 24px;
  height: 24px;
  fill: currentColor;
  flex-shrink: 0;
}

/* === Form Cards === */
.form-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  margin-bottom: 1rem;
  overflow: hidden;
}

.form-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  cursor: pointer;
  transition: background 0.15s;
  user-select: none;
}

.form-card-header:hover {
  background: var(--surface);
}

.form-card-header h2 {
  font-size: 1.1rem;
  font-weight: 700;
}

.header-hint {
  font-size: 0.85rem;
  font-weight: 400;
  color: #6b7280;
}

.toggle-arrow {
  font-size: 0.75rem;
  color: #6b7280;
  transition: transform 0.2s;
}

.form-card-header.collapsed .toggle-arrow {
  transform: rotate(-90deg);
}

.form-card-body {
  padding: 0 1.5rem 1.5rem;
  transition: max-height 0.3s ease, opacity 0.2s ease;
}

.form-card-body.collapsed {
  display: none;
}

/* === Form Elements === */
.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.form-grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.25rem;
}

.form-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.form-group {
  margin-bottom: 0.75rem;
}

.form-group label {
  display: block;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 0.4rem;
  color: var(--text-secondary);
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-size: 1rem;
  font-family: inherit;
  transition: border-color 0.2s, box-shadow 0.2s;
  background: var(--surface);
  color: var(--text);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.15);
}

.required { color: #dc2626; }
.optional { color: #9ca3af; font-weight: 400; font-size: 0.85rem; }

/* === Drop Zone (Document Upload) === */
.drop-zone {
  border: 2px dashed var(--gray-300);
  border-radius: 12px;
  padding: 2.5rem 2rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  background: var(--surface);
}

.drop-zone:hover,
.drop-zone.dragover {
  border-color: var(--primary);
  background: rgba(20,184,166,.04);
}

.upload-icon {
  width: 44px;
  height: 44px;
  fill: #9ca3af;
  margin-bottom: 0.75rem;
}

.drop-zone:hover .upload-icon,
.drop-zone.dragover .upload-icon {
  fill: #2563eb;
}

.drop-zone-text {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 0.25rem;
}

.drop-zone-subtext {
  font-size: 0.85rem;
  color: var(--text-secondary);
}

/* === File List === */
.file-list {
  margin-top: 1rem;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  overflow: hidden;
}

.file-list-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.65rem 1rem;
  background: var(--surface);
  border-bottom: 1px solid var(--border-color);
}

.file-list-title {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--text);
}

.file-list ul {
  list-style: none;
  padding: 0;
}

.file-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 1rem;
  border-bottom: 1px solid var(--border-color);
  font-size: 0.9rem;
  color: var(--text);
}

.file-list li:last-child {
  border-bottom: none;
}

.file-item-info {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.file-item-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  fill: #6b7280;
}

.file-item-name {
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.file-item-size {
  color: #9ca3af;
  font-size: 0.8rem;
  flex-shrink: 0;
  margin-left: 0.5rem;
}

.file-item-remove {
  background: none;
  border: none;
  color: #dc2626;
  cursor: pointer;
  font-size: 1.15rem;
  padding: 0 0.25rem;
  line-height: 1;
  opacity: 0.6;
  transition: opacity 0.15s;
}

.file-item-remove:hover {
  opacity: 1;
}

/* Input with prefix ($) */
.input-prefix {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.input-prefix:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.15);
}

.input-prefix .prefix {
  padding: 0.75rem 0.75rem;
  background: var(--gray-100);
  color: var(--text-secondary);
  font-weight: 600;
  font-size: 0.9rem;
  border-right: 1px solid var(--border-color);
}

.input-prefix input {
  border: none;
  border-radius: 0;
  padding: 0.75rem;
}

.input-prefix input:focus {
  box-shadow: none;
}

/* Range slider + number combo */
.range-group {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.range-input {
  flex: 1;
  accent-color: var(--primary);
  cursor: pointer;
}

.range-value {
  width: 60px !important;
  text-align: center;
  padding: 0.5rem !important;
}

.range-suffix {
  font-weight: 600;
  color: var(--text-secondary);
}

/* Checkbox */
.checkbox-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-weight: 400 !important;
  font-size: 0.95rem !important;
  color: var(--text);
}

.checkbox-label input[type="checkbox"] {
  width: auto;
  accent-color: var(--primary);
}

/* Form Actions */
.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  padding: 1.5rem 0 0.5rem;
}

/* === Progress === */
.progress-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 2rem;
  text-align: center;
}

.progress-card h3 {
  font-size: 1.15rem;
  margin-bottom: 0.5rem;
}

.progress-status {
  color: var(--text-secondary);
  font-size: 0.9rem;
  margin-bottom: 1.25rem;
}

.progress-bar-track {
  height: 12px;
  background: var(--gray-200);
  border-radius: 6px;
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--primary), #5eead4, var(--primary));
  background-size: 200% 100%;
  border-radius: 6px;
  transition: width 0.4s ease;
  animation: progress-shimmer 1.5s ease infinite;
}

@keyframes progress-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

/* === Error === */
.error-card {
  background: var(--card-bg);
  border: 1px solid rgba(239,68,68,.2);
  border-left: 4px solid var(--red);
  border-radius: 12px;
  padding: 2rem;
  text-align: center;
}

.error-card h3 { color: var(--red); margin-bottom: 0.5rem; }
.error-card p { color: var(--text-secondary); margin-bottom: 1.25rem; }

/* === Results Header === */
.results-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}

.results-header h2 {
  font-size: 1.5rem;
  font-weight: 700;
}

.results-meta {
  font-size: 0.85rem;
  color: var(--text-secondary);
}

.results-header-right {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

/* === Bid Summary === */
.bid-summary {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.summary-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.25rem;
  text-align: center;
}

.summary-card.highlight {
  background: rgba(20,184,166,.06);
  border-color: rgba(20,184,166,.3);
}

.summary-value {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text);
}

.summary-value.large {
  font-size: 2.25rem;
  color: var(--primary);
}

.summary-label {
  font-size: 0.85rem;
  color: var(--text-secondary);
  font-weight: 500;
  margin-top: 0.25rem;
}

/* Risk level badges */
.badge {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  text-transform: uppercase;
}

.badge-low { background: rgba(16,185,129,.12); color: var(--green); }
.badge-medium { background: rgba(245,158,11,.12); color: var(--yellow); }
.badge-high { background: rgba(239,68,68,.12); color: var(--red); }

/* === Cost Breakdown Bars === */
.breakdown-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.breakdown-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.cost-bar-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.cost-bar-label {
  width: 110px;
  font-size: 0.85rem;
  font-weight: 600;
  text-align: right;
}

.cost-bar-track {
  flex: 1;
  height: 28px;
  background: var(--gray-100);
  border-radius: 6px;
  overflow: hidden;
}

.cost-bar-fill {
  height: 100%;
  border-radius: 6px;
  transition: width 0.5s ease;
  display: flex;
  align-items: center;
  padding-left: 0.75rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #fff;
}

.cost-bar-fill.materials { background: #2563eb; }
.cost-bar-fill.labor { background: #059669; }
.cost-bar-fill.overhead { background: #d97706; }
.cost-bar-fill.contingency { background: #f59e0b; }
.cost-bar-fill.profit { background: #8b5cf6; }

.cost-bar-amount {
  width: 120px;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: left;
}

/* === Data Tables === */
.table-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.table-section-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--border-color);
}

.table-section-header h3 {
  font-size: 1.1rem;
  font-weight: 700;
}

.table-container {
  overflow-x: auto;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.data-table thead {
  background: var(--surface);
  color: var(--text);
}

.data-table th {
  padding: 0.75rem 1rem;
  text-align: left;
  font-weight: 600;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.data-table td {
  padding: 0.65rem 1rem;
  border-bottom: 1px solid var(--border-color);
  color: var(--text);
}

.data-table tbody tr:nth-child(even) {
  background: rgba(255,255,255,.02);
}

.data-table tbody tr:hover {
  background: rgba(255,255,255,.04);
}

.data-table tfoot {
  font-weight: 700;
  background: var(--surface);
}

.data-table tfoot td {
  padding: 0.75rem 1rem;
  border-top: 2px solid var(--border-color);
}

/* Confidence indicator */
.confidence {
  display: inline-block;
  width: 50px;
  height: 8px;
  background: var(--gray-200);
  border-radius: 4px;
  overflow: hidden;
  vertical-align: middle;
  margin-right: 0.4rem;
}

.confidence-fill {
  height: 100%;
  border-radius: 4px;
}

.confidence-fill.high { background: #059669; }
.confidence-fill.medium { background: #d97706; }
.confidence-fill.low { background: #dc2626; }

/* === Risk Assessment === */
.risk-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.risk-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.risk-header h3 {
  font-size: 1.1rem;
  font-weight: 700;
}

.risk-score-display {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.risk-score-bar {
  width: 120px;
  height: 10px;
  background: #e2e8f0;
  border-radius: 5px;
  overflow: hidden;
}

.risk-score-fill {
  height: 100%;
  border-radius: 5px;
  transition: width 0.5s ease;
}

.risk-category {
  margin-bottom: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border-left: 4px solid;
}

.risk-category.severity-high {
  background: rgba(239,68,68,.06);
  border-left-color: #dc2626;
}

.risk-category.severity-medium {
  background: rgba(245,158,11,.06);
  border-left-color: #d97706;
}

.risk-category.severity-low {
  background: rgba(16,185,129,.06);
  border-left-color: #059669;
}

.risk-category.severity-info {
  background: rgba(37,99,235,.06);
  border-left-color: #2563eb;
}

.risk-category-title {
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
}

.risk-category ul {
  padding-left: 1.25rem;
  font-size: 0.9rem;
  color: var(--text-secondary);
}

.risk-category li {
  margin-bottom: 0.2rem;
}

.risk-recommendations {
  margin-top: 1rem;
  padding: 1rem;
  background: rgba(37,99,235,.06);
  border-radius: 8px;
  border-left: 4px solid #2563eb;
}

.risk-recommendations h4 {
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: #2563eb;
}

.risk-recommendations ul {
  padding-left: 1.25rem;
  font-size: 0.9rem;
}

.risk-recommendations li {
  margin-bottom: 0.2rem;
}

/* === Client Q&A === */
.qa-section {
  margin-bottom: 1.5rem;
}

.qa-section > h3 {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.qa-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  margin-bottom: 0.75rem;
  overflow: hidden;
}

.qa-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.25rem;
  cursor: pointer;
  transition: background 0.15s;
}

.qa-card-header:hover {
  background: rgba(255,255,255,.03);
}

.qa-card-header h4 {
  font-size: 0.95rem;
  font-weight: 700;
}

.qa-card-count {
  font-size: 0.8rem;
  color: var(--text-secondary);
}

.qa-card-body {
  padding: 0 1.25rem 1rem;
}

.qa-card-body.collapsed {
  display: none;
}

.qa-card-body ol {
  padding-left: 1.5rem;
  font-size: 0.9rem;
}

.qa-card-body li {
  margin-bottom: 0.35rem;
  color: var(--text-secondary);
}

/* === Responsive === */
@media (max-width: 768px) {
  .site-header h1 { font-size: 1.5rem; }

  .form-grid-2,
  .form-grid-3 {
    grid-template-columns: 1fr;
  }

  .form-grid-4 {
    grid-template-columns: 1fr 1fr;
  }

  .form-actions {
    flex-direction: column;
  }

  .form-actions .btn-primary,
  .form-actions .btn-secondary {
    width: 100%;
  }

  .bid-summary {
    grid-template-columns: repeat(2, 1fr);
  }

  .results-header {
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
  }

  .results-header-right {
    flex-wrap: wrap;
  }

  .cost-bar-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
  }

  .cost-bar-label {
    text-align: left;
    width: auto;
  }

  .cost-bar-track {
    width: 100%;
  }

  .range-group {
    flex-wrap: wrap;
  }
}
/* === Analysis Depth Toggle === */
.analysis-depth-toggle {
  margin-top: 16px;
  padding: 16px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border-color);
  border-radius: 10px;
}
.depth-label {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--text);
  margin-bottom: 10px;
}
.depth-options {
  display: flex;
  gap: 10px;
}
.depth-option {
  flex: 1;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: var(--card-bg);
  border: 2px solid var(--border-color);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.depth-option:hover {
  border-color: #93c5fd;
  background: #f0f7ff;
}
.depth-option.active {
  border-color: #2563eb;
  background: linear-gradient(135deg, #eff6ff, #dbeafe);
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.12);
}
.depth-icon {
  font-size: 1.4rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.depth-text strong {
  display: block;
  font-size: 0.95rem;
  color: var(--text);
  margin-bottom: 2px;
}
.depth-text small {
  display: block;
  font-size: 0.8rem;
  color: #64748b;
  line-height: 1.3;
}
.depth-hint {
  margin-top: 8px;
  font-size: 0.8rem;
  color: #64748b;
  line-height: 1.4;
}
@media (max-width: 600px) {
  .depth-options { flex-direction: column; }
}

/* ═══════════════════════════════════════════════════════════
   Subcontractor Database
   ═══════════════════════════════════════════════════════════ */

/* Trade chips in table rows */
.sub-trade-chips{display:flex;flex-wrap:wrap;gap:3px}
.sub-trade-chip{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.68rem;font-weight:600;background:var(--gray-100);color:var(--gray-700);white-space:nowrap}

/* Star ratings */
.sub-stars{display:flex;gap:1px;font-size:.95rem}
.sub-star{color:var(--gray-300)}
.sub-star.filled{color:#F59E0B}

/* Variance color coding */
.sub-variance{font-weight:600;font-size:.8rem}
.sub-variance.var-high{color:var(--red)}
.sub-variance.var-warn{color:var(--yellow)}
.sub-variance.var-good{color:var(--green)}
.sub-variance.var-neutral{color:var(--gray-400)}

/* Status badges */
.sub-status-badge{display:inline-block;padding:2px 10px;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:capitalize}
.sub-status-active{background:rgba(37,99,235,.12);color:#60a5fa}
.sub-status-preferred{background:rgba(16,185,129,.12);color:var(--green)}
.sub-status-blocked{background:rgba(239,68,68,.12);color:#f87171}
.sub-status-inactive{background:var(--surface);color:var(--text-secondary)}
.sub-status-submitted{background:rgba(245,158,11,.12);color:var(--yellow)}
.sub-status-accepted{background:rgba(16,185,129,.12);color:var(--green)}
.sub-status-rejected{background:rgba(239,68,68,.12);color:#f87171}

/* Profile modal - large width */
.modal-lg{max-width:700px}

/* Close button in modal header */
.modal-close{background:none;border:none;font-size:1.5rem;color:var(--gray-400);cursor:pointer;padding:0 4px;line-height:1}
.modal-close:hover{color:var(--dark)}

/* Profile sections */
.sub-profile-section{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-100)}
.sub-profile-section:last-child{border-bottom:none;margin-bottom:0}
.sub-profile-section h4{font-size:.9rem;font-weight:700;color:var(--dark);margin-bottom:.75rem}

/* Profile info grid */
.sub-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.sub-profile-grid>div{display:flex;flex-direction:column;gap:2px}
.sub-profile-label{font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px}
.sub-profile-value{font-size:.88rem;color:var(--dark)}

/* Profile editable rows */
.sub-profile-edit-row{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}
.sub-profile-edit-row>label{width:90px;flex-shrink:0;font-size:.8rem;font-weight:600;color:var(--gray-600)}
.sub-profile-edit-row select,.sub-profile-edit-row input,.sub-profile-edit-row textarea{flex:1;padding:6px 10px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font);font-size:.85rem}
.sub-profile-edit-row textarea{resize:vertical;min-height:60px}

/* Star selector in profile */
.sub-star-selector{display:flex;gap:2px}
.sub-star-btn{font-size:1.3rem;cursor:pointer;color:var(--gray-300);transition:color .15s}
.sub-star-btn.filled{color:#F59E0B}
.sub-star-btn:hover{color:#FBBF24}

/* Quote history table in profile */
.sub-quote-history{margin-top:.5rem}

/* Responsive */
@media(max-width:768px){
  .sub-profile-grid{grid-template-columns:1fr}
  .sub-profile-edit-row{flex-direction:column;align-items:flex-start;gap:.25rem}
  .sub-profile-edit-row>label{width:auto}
  .modal-lg{max-width:95%}
}

/* ═══════════════════════════════════════════════════════════
   Quote Intelligence / Insights Panel
   ═══════════════════════════════════════════════════════════ */

/* Data quality banner */
.insights-quality-banner{background:var(--card-bg);border:1px solid var(--gray-200);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem}
.insights-quality-inner{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem;color:var(--gray-600)}
.insights-quality-stat strong{color:var(--dark);font-weight:700}
.insights-quality-sep{color:var(--gray-300)}
.insights-quality-warn{margin-top:.5rem;font-size:.8rem;color:var(--yellow);background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-sm);padding:.5rem .75rem}

/* Panel sections */
.insights-panel{background:var(--card-bg);border:1px solid var(--gray-200);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem}
.insights-panel-title{font-size:.95rem;font-weight:600;color:var(--dark);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-100)}
.insights-empty{color:var(--gray-400);font-size:.85rem;text-align:center;padding:1.5rem 0}

/* Market rate cards grid */
.insights-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}
.insights-rate-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:1rem;background:var(--gray-50);transition:border-color .15s}
.insights-rate-card:hover{border-color:var(--blue)}
.insights-rate-card.insufficient{opacity:.7;border-style:dashed}
.insights-rate-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}
.insights-rate-trade{font-weight:600;font-size:.85rem;color:var(--dark)}
.insights-rate-location{font-size:.75rem;color:var(--gray-500)}
.insights-rate-avg{font-size:1.4rem;font-weight:700;color:var(--dark);margin-bottom:.15rem}
.insights-rate-range{font-size:.75rem;color:var(--gray-500);margin-bottom:.5rem}
.insights-rate-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}
.insights-dp{color:var(--gray-400)}

/* Trend indicators */
.insights-trend{font-weight:600;font-size:.75rem}
.insights-trend.trend-up{color:var(--red)}
.insights-trend.trend-down{color:var(--green)}
.insights-trend.trend-stable{color:var(--gray-500)}
.insights-trend.trend-na{color:var(--gray-400);font-weight:400}

/* Insufficient data label */
.insights-insufficient{color:var(--yellow);font-size:.8rem;padding:.5rem 0}

/* AI Accuracy table */
.insights-accuracy-table .insufficient-row{color:var(--gray-400);font-style:italic}
.insights-insufficient-cell{text-align:center;color:var(--yellow)}
.insights-highlight-row{background:rgba(245,158,11,.06)}

/* Badges */
.badge-warn{background:#FEF3C7;color:#92400E;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}
.badge-info{background:#DBEAFE;color:#1E40AF;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}
.badge-ok{background:#D1FAE5;color:#065F46;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}
.confidence-badge{padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase}
.confidence-high{background:#D1FAE5;color:#065F46}
.confidence-medium{background:#FEF3C7;color:#92400E}
.confidence-low{background:#FEE2E2;color:#991B1B}

/* Sub reliability */
.insights-sub-heading{font-size:.85rem;font-weight:600;color:var(--gray-600);margin-bottom:.75rem}
.insights-declining-list{display:flex;flex-direction:column;gap:.5rem}
.insights-declining-card{display:flex;justify-content:space-between;align-items:center;background:rgba(245,158,11,.06);border:1px solid #FDE68A;border-radius:var(--radius-sm);padding:.6rem 1rem;font-size:.8rem}
.insights-declining-card strong{color:var(--dark)}
.insights-declining-card span{color:var(--gray-500);font-size:.75rem}

/* Coverage gaps */
.insights-gaps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}
.insights-gap-card{display:flex;flex-direction:column;gap:.15rem;background:#FEF2F2;border:1px solid #FECACA;border-radius:var(--radius-sm);padding:.75rem 1rem}
.insights-gap-trade{font-weight:600;font-size:.85rem;color:var(--dark)}
.insights-gap-location{font-size:.75rem;color:var(--gray-500)}
.insights-gap-count{font-size:.7rem;font-weight:600;color:var(--red)}

/* Responsive */
@media(max-width:768px){
  .insights-cards-grid{grid-template-columns:1fr}
  .insights-gaps-grid{grid-template-columns:1fr}
  .insights-declining-card{flex-direction:column;align-items:flex-start;gap:.25rem}
}

/* ═══════════════════════════════════════════════════════════
   WIN/LOSS TRACKING & RECORD ACTUALS
   ═══════════════════════════════════════════════════════════ */

/* Won modal — selected sub quotes list */
.won-sub-quotes-list{border:1px solid var(--gray-200);border-radius:var(--radius-sm);max-height:160px;overflow-y:auto;margin-top:.25rem}
.won-sub-quote-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;border-bottom:1px solid var(--gray-100);font-size:.8rem}
.won-sub-quote-item:last-child{border-bottom:none}
.won-sq-trade{font-weight:600;color:var(--dark);flex:1}
.won-sq-sub{color:var(--gray-500);flex:1;text-align:center}
.won-sq-amt{font-weight:600;color:var(--green);flex-shrink:0}

/* Record Actuals modal */
.actuals-trade-grid{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem;max-height:200px;overflow-y:auto}
.actuals-trade-row{display:flex;align-items:center;gap:.75rem}
.actuals-trade-label{width:140px;flex-shrink:0;font-size:.8rem;font-weight:500;color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.input-prefix-sm{font-size:.8rem}
.input-prefix-sm span{padding:4px 8px;font-size:.7rem}
.input-prefix-sm input{padding:4px 8px;font-size:.8rem}
.status-msg-actuals{color:var(--green);font-weight:600}

/* Estimate vs Actual section */
.estimate-actual-summary{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}
.ea-stat{display:flex;flex-direction:column;align-items:center;background:var(--card-bg);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:.75rem 1.25rem;min-width:100px}
.ea-stat-value{font-size:1.25rem;font-weight:700;color:var(--dark)}
.ea-stat-label{font-size:.7rem;color:var(--gray-500);margin-top:.15rem;text-transform:uppercase;letter-spacing:.3px}
.ea-over{color:var(--red)}
.ea-under{color:var(--green)}
.estimate-actual-table .delta-over{color:var(--red);font-weight:600}
.estimate-actual-table .delta-under{color:var(--green);font-weight:600}
.estimate-actual-table .delta-ok{color:var(--gray-500);font-weight:600}

/* Calibration preview */
.calibration-summary{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}
.insights-empty-state{text-align:center;padding:2rem 1rem}

/* ═══════════════════════════════════════════════════════════
   SPRINT: INVITE SUBS MODAL & TRACKER
   ═══════════════════════════════════════════════════════════ */

/* Extra-large modal for invite workflow */
.modal-xl{max-width:900px;width:95%}

/* Invite modal layout */
.invite-modal{display:flex;flex-direction:column;height:75vh;max-height:75vh}
.invite-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--gray-200);flex-shrink:0}
.invite-modal-header h3{font-size:1.1rem;font-weight:700;margin:0}
.invite-modal-body{display:flex;flex:1;min-height:0;overflow:hidden}

/* Left panel — trades */
.invite-trades-panel{width:200px;flex-shrink:0;border-right:1px solid var(--gray-200);overflow-y:auto;background:var(--gray-50)}
.invite-panel-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);padding:.75rem 1rem .5rem}
.invite-trade-list{display:flex;flex-direction:column}
.invite-trade-item{padding:.65rem 1rem;cursor:pointer;transition:background .1s;border-left:3px solid transparent}
.invite-trade-item:hover{background:var(--gray-100)}
.invite-trade-item.active{background:#EFF6FF;border-left-color:var(--blue)}
.invite-trade-name{font-size:.85rem;font-weight:600;color:var(--dark)}
.invite-trade-count{font-size:.7rem;color:var(--gray-400);margin-top:2px}

/* Right panel — sub list */
.invite-subs-panel{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.invite-subs-toolbar{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--gray-100);flex-shrink:0}
.invite-search-input{flex:1;padding:.45rem .75rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font)}
.invite-search-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.invite-subs-list{flex:1;overflow-y:auto;padding:.5rem}

/* Inline add sub form */
.invite-add-sub-form{padding:.75rem 1rem;border-bottom:1px solid var(--gray-100);background:#FEFCE8;flex-shrink:0}
.invite-add-sub-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.5rem}
.invite-add-sub-grid input{padding:.4rem .6rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.8rem;font-family:var(--font)}
.invite-add-sub-grid input:focus{outline:none;border-color:var(--blue)}
.invite-add-sub-actions{display:flex;gap:.5rem;justify-content:flex-end}

/* Sub table inside invite modal */
.invite-subs-table{width:100%;border-collapse:collapse;font-size:.82rem}
.invite-subs-table thead th{text-align:left;padding:.5rem .6rem;font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--gray-400);letter-spacing:.3px;border-bottom:1px solid var(--gray-200);white-space:nowrap}
.invite-subs-table tbody td{padding:.55rem .6rem;border-bottom:1px solid var(--gray-100);vertical-align:middle}
.invite-sub-row:hover{background:var(--gray-50)}
.invite-sub-company{font-weight:600;color:var(--dark)}
.invite-sub-email{font-size:.75rem;color:var(--gray-400)}
.invite-stars{color:#F59E0B;font-size:.9rem;letter-spacing:1px}
.invite-sub-cb{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}

/* Loading / empty states */
.invite-loading{padding:2rem;text-align:center;color:var(--gray-400);font-size:.85rem}
.invite-empty{padding:2rem;text-align:center;color:var(--gray-400);font-size:.85rem}

/* Footer */
.invite-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-top:1px solid var(--gray-200);background:var(--gray-50);flex-shrink:0;border-radius:0 0 var(--radius) var(--radius)}
.invite-summary{font-size:.85rem;color:var(--gray-600);font-weight:500}

/* ── Invitation Tracker ── */
.invite-tracker{margin-top:1rem;padding:1rem;background:var(--card-bg);border:1px solid var(--gray-200);border-radius:var(--radius)}
.invite-tracker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}
.invite-tracker-header h4{font-size:.9rem;font-weight:700;margin:0}
.invite-tracker-stats{display:flex;align-items:center;gap:.25rem;font-size:.8rem}
.inv-stat{font-weight:600;color:var(--gray-600)}
.inv-stat-sep{color:var(--gray-300)}

.invite-tracker-table{width:100%;border-collapse:collapse;font-size:.82rem}
.invite-tracker-table thead th{text-align:left;padding:.5rem .6rem;font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--gray-400);letter-spacing:.3px;border-bottom:1px solid var(--gray-200);white-space:nowrap}
.invite-tracker-table tbody td{padding:.55rem .6rem;border-bottom:1px solid var(--gray-100);vertical-align:middle}
.inv-company{font-weight:600;color:var(--dark)}

/* Status badges for invitations */
.inv-status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600;white-space:nowrap}
.inv-status-sent{background:var(--gray-100);color:var(--gray-500)}
.inv-status-viewed{background:#DBEAFE;color:#1E40AF}
.inv-status-quoting{background:#FEF3C7;color:#92400E}
.inv-status-quoted{background:#D1FAE5;color:#065F46}

/* Responsive for invite modal */
@media(max-width:768px){
  .modal-xl{max-width:98%}
  .invite-modal{height:85vh}
  .invite-modal-body{flex-direction:column}
  .invite-trades-panel{width:100%;border-right:none;border-bottom:1px solid var(--gray-200);max-height:120px}
  .invite-trade-list{flex-direction:row;overflow-x:auto}
  .invite-trade-item{border-left:none;border-bottom:3px solid transparent;white-space:nowrap}
  .invite-trade-item.active{border-bottom-color:var(--blue);border-left:none}
  .invite-add-sub-grid{grid-template-columns:1fr}
  .invite-tracker-table{font-size:.75rem}
}

/* ══════════════════════════════════════════════════════════════
   GC COMMAND CENTER DASHBOARD
   ══════════════════════════════════════════════════════════════ */

/* Dashboard header + tabs */
.dash-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.dash-header h2 {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0;
  white-space: nowrap;
}
.dash-header-actions {
  margin-left: auto;
  display: flex;
  gap: 0.5rem;
  order: 3;
}
.dash-tabs {
  display: flex;
  gap: 4px;
  background: #f1f5f9;
  padding: 4px;
  border-radius: 10px;
}
.dash-tab {
  padding: 8px 16px;
  border: none;
  background: transparent;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s;
}
.dash-tab:hover {
  color: #475569;
  background: rgba(255,255,255,0.5);
}
.dash-tab.active {
  background: var(--card-bg);
  color: var(--text);
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Tab panels */
.dash-panel {
  animation: dashFadeIn 0.15s ease;
}
@keyframes dashFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* KPI cards grid */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.kpi-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1.25rem;
  border-left: 4px solid var(--kpi-accent, #3b82f6);
}
.kpi-value {
  font-size: 1.8rem;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.2;
}
.kpi-label {
  font-size: 0.78rem;
  color: #64748b;
  font-weight: 500;
  margin-top: 0.25rem;
}
.kpi-subtext {
  font-size: 0.72rem;
  color: #94a3b8;
  margin-top: 0.5rem;
}

/* Overview two-column layout */
.dash-two-col {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

/* Dashboard section cards */
.dash-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1.25rem;
}
.dash-card-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: #1e293b;
  margin-bottom: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.dash-card-title a {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--blue);
  text-decoration: none;
}
.dash-card-title a:hover { text-decoration: underline; }

/* Activity feed */
.activity-feed {
  max-height: 500px;
  overflow-y: auto;
}
.activity-item {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid #f1f5f9;
  align-items: flex-start;
}
.activity-item:last-child { border-bottom: none; }
.activity-icon {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-top: 6px;
  flex-shrink: 0;
}
.activity-icon.act-bid { background: #3b82f6; }
.activity-icon.act-sub { background: #22c55e; }
.activity-icon.act-price { background: #eab308; }
.activity-icon.act-expire { background: #ef4444; }
.activity-icon.act-review { background: #a855f7; }
.activity-content { flex: 1; min-width: 0; }
.activity-msg {
  font-size: 0.82rem;
  color: #334155;
  line-height: 1.4;
}
.activity-msg a {
  color: var(--blue);
  text-decoration: none;
  font-weight: 500;
}
.activity-msg a:hover { text-decoration: underline; }
.activity-time {
  font-size: 0.72rem;
  color: #94a3b8;
  white-space: nowrap;
  margin-top: 2px;
}

/* Status breakdown bar */
.status-bar-wrap {
  margin-top: 0.75rem;
}
.status-bar {
  display: flex;
  height: 28px;
  border-radius: 6px;
  overflow: hidden;
  background: #f1f5f9;
}
.status-bar-seg {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
  transition: opacity 0.15s;
  min-width: 2px;
}
.status-bar-seg:hover { opacity: 0.85; }
.status-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.75rem;
  font-size: 0.72rem;
  color: #64748b;
}
.status-legend-item {
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}
.status-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  flex-shrink: 0;
}

/* Deadline list */
.deadline-list {
  margin-top: 1rem;
}
.deadline-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.82rem;
}
.deadline-item:last-child { border-bottom: none; }
.deadline-days {
  font-weight: 700;
  font-size: 0.75rem;
  padding: 3px 8px;
  border-radius: 6px;
  white-space: nowrap;
}
.deadline-red { background: #FEE2E2; color: #991B1B; }
.deadline-yellow { background: #FEF3C7; color: #92400E; }
.deadline-green { background: #D1FAE5; color: #065F46; }
.deadline-name { font-weight: 600; color: #1e293b; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.deadline-client { color: #64748b; flex-shrink: 0; }
.deadline-date { color: #94a3b8; font-size: 0.75rem; flex-shrink: 0; }

/* Pipeline toolbar */
.pipeline-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  align-items: center;
}
.pipeline-toolbar input[type="text"],
.pipeline-toolbar input[type="date"] {
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 0.82rem;
  background: var(--card-bg);
}
.pipeline-toolbar input[type="text"]:focus,
.pipeline-toolbar input[type="date"]:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.1);
}
.pipeline-toolbar select {
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 0.82rem;
  background: var(--card-bg);
  cursor: pointer;
}
.pipeline-toolbar .pipe-search {
  min-width: 200px;
  flex: 1;
}
.pipeline-toolbar .pipe-spacer { flex: 1; }
.view-toggle {
  display: flex;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  overflow: hidden;
}
.view-toggle button {
  padding: 0.45rem 0.75rem;
  border: none;
  background: var(--card-bg);
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
}
.view-toggle button.active {
  background: var(--blue);
  color: #fff;
}
.view-toggle button:not(:last-child) {
  border-right: 1px solid var(--border-color);
}

/* Pipeline table */
.pipeline-table-wrap {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  overflow-x: auto;
}
.pipeline-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}
.pipeline-table thead th {
  text-align: left;
  padding: 0.6rem 0.75rem;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  color: #64748b;
  letter-spacing: 0.3px;
  border-bottom: 2px solid var(--border-color);
  white-space: nowrap;
  background: rgba(255,255,255,.03);
}
.pipeline-table thead th.text-right { text-align: right; }
.pipeline-table tbody td {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}
.pipeline-table tbody tr:hover { background: rgba(255,255,255,.03); }
.pipeline-table td.text-right { text-align: right; }

/* Confidence mini bar */
.confidence-mini {
  display: flex;
  align-items: center;
  gap: 6px;
}
.confidence-bar-mini {
  width: 50px;
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
}
.confidence-bar-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--blue);
}

/* Pipeline card view */
.bid-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}
.bid-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1.25rem;
  transition: box-shadow 0.15s;
}
.bid-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.bid-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 0.75rem;
}
.bid-card-name {
  font-weight: 700;
  font-size: 0.95rem;
  color: #1e293b;
  margin-bottom: 0.25rem;
}
.bid-card-meta {
  font-size: 0.78rem;
  color: #64748b;
}
.bid-card-numbers {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: 0.75rem 0;
}
.bid-card-total {
  font-size: 1.2rem;
  font-weight: 700;
  color: #1e293b;
}
.bid-card-sqft {
  font-size: 0.85rem;
  color: #64748b;
}
.bid-card-confidence {
  margin: 0.5rem 0;
}
.bid-card-conf-bar {
  width: 100%;
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 0.25rem;
}
.bid-card-conf-fill {
  height: 100%;
  background: var(--blue);
  border-radius: 3px;
}
.bid-card-conf-text {
  font-size: 0.72rem;
  color: #94a3b8;
}
.bid-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #f1f5f9;
}
.bid-card-footer-meta {
  font-size: 0.72rem;
  color: #94a3b8;
}
.bid-card-actions {
  display: flex;
  gap: 4px;
}
.bid-card-actions button {
  padding: 4px 10px;
  font-size: 0.72rem;
  border: 1px solid var(--border-color);
  border-radius: 5px;
  background: var(--card-bg);
  color: var(--text-secondary);
  cursor: pointer;
  font-weight: 500;
}
.bid-card-actions button:hover {
  border-color: var(--blue);
  color: var(--blue);
}

/* Pagination */
.pipeline-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1rem;
  font-size: 0.82rem;
  color: #64748b;
}
.pagination-info { font-weight: 500; }
.pagination-btns {
  display: flex;
  gap: 4px;
}
.pagination-btns button {
  padding: 5px 10px;
  border: 1px solid var(--border-color);
  border-radius: 5px;
  background: var(--card-bg);
  font-size: 0.78rem;
  cursor: pointer;
  color: var(--text-secondary);
}
.pagination-btns button.active {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.pagination-btns button:hover:not(.active) {
  border-color: var(--blue);
  color: var(--blue);
}
.pagination-btns button:disabled {
  opacity: 0.4;
  cursor: default;
}

/* Pipeline actions dropdown */
.pipe-actions {
  display: flex;
  gap: 4px;
}
.pipe-actions button {
  padding: 3px 8px;
  font-size: 0.72rem;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: var(--card-bg);
  cursor: pointer;
  color: var(--text-secondary);
  font-weight: 500;
}
.pipe-actions button:hover {
  border-color: var(--blue);
  color: var(--blue);
}
.pipe-actions button.pipe-delete {
  color: var(--red);
}
.pipe-actions button.pipe-delete:hover {
  border-color: var(--red);
  background: #FEE2E2;
}
.pipe-more-wrap {
  position: relative;
  display: inline-block;
}
.pipe-more-menu {
  display: none;
  position: absolute;
  right: 0;
  top: 100%;
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  z-index: 100;
  min-width: 140px;
  padding: 4px 0;
}
.pipe-more-menu.show { display: block; }
.pipe-more-menu button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 6px 12px;
  border: none;
  background: none;
  font-size: 0.78rem;
  color: #475569;
  cursor: pointer;
}
.pipe-more-menu button:hover { background: rgba(255,255,255,.03); }

/* Feature placeholder */
.feature-placeholder {
  text-align: center;
  padding: 3rem 2rem;
  background: rgba(255,255,255,.03);
  border: 2px dashed var(--border-color);
  border-radius: 12px;
  color: #64748b;
}
.feature-placeholder h3 {
  color: #475569;
  margin-bottom: 0.75rem;
  font-size: 1.1rem;
}
.feature-placeholder p {
  font-size: 0.88rem;
  max-width: 500px;
  margin: 0 auto 1rem;
  line-height: 1.6;
}
.feature-placeholder ul {
  text-align: left;
  display: inline-block;
  margin: 0.75rem 0;
  padding-left: 1.5rem;
  font-size: 0.82rem;
  line-height: 1.8;
}
.feature-placeholder .fp-note {
  font-size: 0.75rem;
  color: #94a3b8;
  margin-top: 1rem;
}

/* CSS-only bar chart */
.css-bar-chart {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: 160px;
  padding: 0 0.5rem;
}
.chart-bar {
  flex: 1;
  min-width: 24px;
  border-radius: 4px 4px 0 0;
  transition: height 0.3s ease;
  position: relative;
  cursor: pointer;
}
.chart-bar:hover { opacity: 0.85; }
.chart-bar-label {
  position: absolute;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.65rem;
  color: #64748b;
  white-space: nowrap;
}
.chart-bar-value {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.65rem;
  font-weight: 600;
  color: #475569;
}
.chart-y-axis {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 160px;
  font-size: 0.65rem;
  color: #94a3b8;
  padding-right: 8px;
  text-align: right;
}
.chart-wrap {
  display: flex;
  gap: 0;
  margin-bottom: 2rem;
}
.chart-bars-area {
  flex: 1;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: 160px;
  border-left: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  padding: 0 8px;
}
.chart-legend {
  display: flex;
  gap: 1rem;
  margin-top: 1.5rem;
  font-size: 0.72rem;
  color: #64748b;
  flex-wrap: wrap;
}
.chart-legend-item {
  display: flex;
  align-items: center;
  gap: 4px;
}
.chart-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

/* Stacked bar segments */
.chart-stack {
  flex: 1;
  min-width: 24px;
  display: flex;
  flex-direction: column-reverse;
  position: relative;
  cursor: pointer;
}
.chart-stack-seg {
  border-radius: 0;
}
.chart-stack-seg:last-child {
  border-radius: 4px 4px 0 0;
}
.chart-stack-label {
  position: absolute;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.65rem;
  color: #64748b;
  white-space: nowrap;
}

/* Analytics metrics cards */
.analytics-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.analytics-metric-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1.25rem;
  text-align: center;
}
.analytics-metric-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1e293b;
}
.analytics-metric-label {
  font-size: 0.78rem;
  color: #64748b;
  margin-top: 0.25rem;
}
.analytics-metric-sub {
  font-size: 0.72rem;
  color: #94a3b8;
  margin-top: 0.25rem;
}

/* Analytics outcome table */
.outcome-table-wrap {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  overflow: hidden;
}
.outcome-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}
.outcome-table thead th {
  text-align: left;
  padding: 0.6rem 1rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  color: #64748b;
  border-bottom: 2px solid var(--border-color);
  background: rgba(255,255,255,.03);
}
.outcome-table tbody td {
  padding: 0.6rem 1rem;
  border-bottom: 1px solid #f1f5f9;
}
.outcome-table tbody tr:last-child td { border-bottom: none; }
.outcome-table .metric-label { font-weight: 600; color: #1e293b; }

/* Mini sparkline */
.mini-sparkline {
  display: inline-flex;
  align-items: flex-end;
  gap: 2px;
  height: 24px;
  vertical-align: middle;
}
.spark-bar {
  width: 4px;
  border-radius: 1px;
  min-height: 2px;
}

/* Trend arrows */
.trend-up { color: #ef4444; font-size: 0.75rem; font-weight: 600; }
.trend-down { color: #22c55e; font-size: 0.75rem; font-weight: 600; }
.trend-flat { color: #94a3b8; font-size: 0.75rem; font-weight: 600; }
.trend-good { color: #22c55e; }
.trend-bad { color: #ef4444; }

/* Risk badges (for pipeline) */
.risk-badge-low { background: #D1FAE5; color: #065F46; padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; font-weight: 600; }
.risk-badge-medium { background: #FEF3C7; color: #92400E; padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; font-weight: 600; }
.risk-badge-high { background: #FEE2E2; color: #991B1B; padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; font-weight: 600; }

/* Building type badge */
.type-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 0.7rem;
  font-weight: 600;
  background: #E0E7FF;
  color: #3730A3;
}

/* Dashboard empty state */
.dash-empty {
  text-align: center;
  padding: 3rem;
  color: #94a3b8;
}
.dash-empty p { font-size: 0.95rem; margin-bottom: 0.5rem; }

/* Pricing market cards */
.market-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.market-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1rem;
}
.market-card-name {
  font-size: 0.78rem;
  font-weight: 600;
  color: #64748b;
  margin-bottom: 0.5rem;
}
.market-card-value {
  font-size: 1.3rem;
  font-weight: 700;
  color: #1e293b;
}
.market-card-change {
  font-size: 0.78rem;
  font-weight: 600;
  margin-top: 0.25rem;
}
.market-card-updated {
  font-size: 0.65rem;
  color: #94a3b8;
  margin-top: 0.5rem;
}

/* Price alerts */
.price-alert-list {
  margin-bottom: 1.5rem;
}
.price-alert-item {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  margin-bottom: 0.5rem;
  align-items: center;
  background: var(--card-bg);
}
.price-alert-icon { font-size: 1.1rem; flex-shrink: 0; }
.price-alert-text { flex: 1; font-size: 0.82rem; color: #334155; }
.price-alert-count {
  font-size: 0.72rem;
  color: #64748b;
  white-space: nowrap;
}

/* Subs trade coverage */
.trade-coverage { margin-top: 1rem; }
.trade-coverage-project {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
}
.trade-coverage-name {
  font-weight: 700;
  font-size: 0.9rem;
  color: #1e293b;
  margin-bottom: 0.75rem;
}
.trade-coverage-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.4rem 0;
  font-size: 0.82rem;
  border-bottom: 1px solid #f1f5f9;
}
.trade-coverage-row:last-child { border-bottom: none; }
.trade-coverage-icon { flex-shrink: 0; }
.trade-coverage-trade { font-weight: 600; color: #475569; min-width: 120px; }
.trade-coverage-detail { color: #64748b; flex: 1; }

/* ── Command Center Responsive ── */
@media(max-width:1024px) {
  .dash-two-col { grid-template-columns: 1fr; }
  .kpi-grid { grid-template-columns: repeat(3, 1fr); }
}
@media(max-width:768px) {
  .dash-header { flex-direction: column; align-items: stretch; }
  .dash-tabs { overflow-x: auto; flex-shrink: 0; }
  .dash-header-actions { order: 0; align-self: flex-end; }
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .bid-cards-grid { grid-template-columns: 1fr; }
  .pipeline-toolbar { flex-direction: column; }
  .pipeline-toolbar .pipe-search { min-width: unset; width: 100%; }
  .pipeline-table-wrap { font-size: 0.75rem; }
  .analytics-metrics { grid-template-columns: repeat(2, 1fr); }
  .market-cards { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width:480px) {
  .kpi-grid { grid-template-columns: 1fr; }
  .analytics-metrics { grid-template-columns: 1fr; }
  .market-cards { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   Material Takeoff Enhancements — Source Badges, Citations,
   Inline Edit, Custom Materials, Pricing Intelligence
   ═══════════════════════════════════════════════════════════ */

/* ── Enhanced Source Badges (Pill Style) ── */
.mt-source-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:.7rem;font-weight:700;white-space:nowrap;letter-spacing:.3px;text-transform:uppercase}
.mt-source-badge .badge-icon{font-size:.65rem}
.badge-fred-adjusted{background:#dcfce7;color:#166534}
.badge-verified{background:#dbeafe;color:#1e40af}
.badge-baseline{background:#fef9c3;color:#854d0e}
.badge-stale{background:#ffedd5;color:#9a3412}
.badge-ai-est{background:#f1f5f9;color:#475569}
.badge-gc-override{background:#f3e8ff;color:#7e22ce}
.badge-no-data{background:#fee2e2;color:#991b1b}

/* ── Row Action Icons ── */
.mt-row-actions{display:flex;gap:4px;align-items:center}
.mt-action-btn{background:none;border:none;cursor:pointer;padding:3px 5px;border-radius:4px;font-size:.85rem;line-height:1;transition:background .15s,transform .1s;color:var(--gray-500)}
.mt-action-btn:hover{background:var(--gray-100);transform:scale(1.15)}
.mt-action-btn.active{background:var(--blue);background:rgba(37,99,235,.1);color:var(--blue)}

/* ── Citation Detail Panel ── */
.mt-citation-row{display:none}
.mt-citation-row.open{display:table-row}
.mt-citation-cell{padding:12px 20px !important;background:rgba(255,255,255,.03);border-left:3px solid var(--blue)}
.mt-citation-panel{font-size:.78rem;color:var(--gray-700)}
.mt-citation-panel .citation-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.mt-citation-panel .citation-title{font-weight:700;font-size:.82rem;color:var(--dark)}
.mt-citation-panel .citation-trend{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:8px;font-size:.72rem;font-weight:600}
.citation-trend.up{background:#dcfce7;color:#166534}
.citation-trend.down{background:#fee2e2;color:#991b1b}
.citation-trend.flat{background:#f1f5f9;color:#475569}
.mt-citation-tree{font-family:'SF Mono',SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:.72rem;line-height:1.8;padding:8px 12px;background:var(--surface);border:1px solid var(--gray-200);border-radius:var(--radius-sm)}
.mt-citation-tree .tree-line{color:var(--gray-400)}
.mt-citation-tree .tree-label{color:var(--gray-500);font-weight:600}
.mt-citation-tree .tree-value{color:var(--dark);font-weight:700}
.mt-citation-tree .tree-source{color:var(--gray-400);font-style:italic}
.mt-citation-confidence{display:flex;align-items:center;gap:8px;margin-top:8px}
.mt-citation-confidence .conf-gauge{width:80px;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}
.mt-citation-confidence .conf-gauge-fill{height:100%;border-radius:3px;transition:width .3s}

/* ── Inline Edit Mode ── */
.mt-row-editing{background:rgba(245,158,11,.06) !important}
.mt-row-editing td{background:rgba(245,158,11,.06) !important}
.mt-edit-input{width:80px;padding:4px 6px;border:1.5px solid var(--blue);border-radius:4px;font-size:.78rem;font-family:var(--font);text-align:right;background:var(--surface);outline:none;transition:border-color .15s}
.mt-edit-input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.15)}
.mt-edit-input.input-wide{width:140px;text-align:left}
.mt-edit-select{padding:4px 6px;border:1.5px solid var(--gray-200);border-radius:4px;font-size:.75rem;font-family:var(--font);background:var(--surface)}
.mt-edit-notes{width:100%;padding:4px 8px;border:1px solid var(--gray-200);border-radius:4px;font-size:.75rem;font-family:var(--font);resize:none;min-height:28px}
.mt-edit-actions{display:flex;gap:6px;margin-top:6px}
.mt-edit-actions .btn-save{background:var(--green);color:#fff;border:none;padding:4px 14px;border-radius:4px;font-size:.75rem;font-weight:600;cursor:pointer}
.mt-edit-actions .btn-save:hover{background:#047857}
.mt-edit-actions .btn-cancel{background:var(--gray-200);color:var(--gray-700);border:none;padding:4px 14px;border-radius:4px;font-size:.75rem;font-weight:600;cursor:pointer}
.mt-edit-actions .btn-cancel:hover{background:var(--gray-300)}

/* ── Add Material Button ── */
.mt-add-material-bar{padding:12px 0;display:flex;gap:8px;align-items:center}
.mt-add-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s}
.mt-add-btn:hover{background:var(--blue-hover)}

/* ── Slide-Out Panel (Custom Material / Price History) ── */
.slideout-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:400;opacity:0;pointer-events:none;transition:opacity .25s}
.slideout-overlay.open{opacity:1;pointer-events:all}
.slideout-panel{position:fixed;top:0;right:-480px;width:480px;max-width:95vw;height:100vh;background:#1a1a1a;z-index:401;box-shadow:-4px 0 20px rgba(0,0,0,.15);display:flex;flex-direction:column;transition:right .3s cubic-bezier(.4,0,.2,1)}
.slideout-panel.open{right:0}
.slideout-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--gray-200);flex-shrink:0}
.slideout-header h3{font-size:1.05rem;font-weight:700;margin:0}
.slideout-close{background:none;border:none;font-size:1.4rem;color:var(--gray-400);cursor:pointer;padding:0 4px;line-height:1}
.slideout-close:hover{color:var(--dark)}
.slideout-body{flex:1;overflow-y:auto;padding:20px}
.slideout-footer{padding:12px 20px;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0;background:var(--gray-50)}

/* ── Slideout Form ── */
.slideout-form .sf-group{margin-bottom:14px}
.slideout-form .sf-group label{display:block;font-size:.8rem;font-weight:600;color:var(--gray-600);margin-bottom:4px}
.slideout-form .sf-group input,.slideout-form .sf-group select,.slideout-form .sf-group textarea{width:100%;padding:8px 12px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font);font-size:.85rem;transition:border .15s}
.slideout-form .sf-group input:focus,.slideout-form .sf-group select:focus,.slideout-form .sf-group textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(37,99,235,.15)}
.slideout-form .sf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.slideout-form .sf-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.slideout-form .sf-toggle{display:flex;align-items:center;gap:10px;padding:10px 0}
.slideout-form .sf-toggle input[type="checkbox"]{width:18px;height:18px;accent-color:var(--blue)}
.slideout-form .sf-toggle label{font-size:.82rem;color:var(--gray-700);margin-bottom:0}
.sf-required::after{content:' *';color:var(--red)}
.sf-autocomplete-wrap{position:relative}
.sf-autocomplete-list{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--gray-200);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);max-height:180px;overflow-y:auto;z-index:10;box-shadow:var(--shadow-md);display:none}
.sf-autocomplete-list.show{display:block}
.sf-autocomplete-item{padding:6px 12px;font-size:.8rem;cursor:pointer;color:var(--gray-700)}
.sf-autocomplete-item:hover,.sf-autocomplete-item.active{background:var(--blue);color:#fff}

/* ── Pricing Intelligence Panel ── */
.pricing-intel{background:var(--card-bg);border:1px solid var(--gray-200);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}
.pricing-intel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;user-select:none;transition:background .15s}
.pricing-intel-header:hover{background:var(--gray-50)}
.pricing-intel-header h3{font-size:1rem;font-weight:700;color:var(--dark);display:flex;align-items:center;gap:8px}
.pricing-intel-body{padding:0 20px 20px}
.pi-meta-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;font-size:.8rem;color:var(--gray-600)}
.pi-meta-item{display:flex;align-items:center;gap:6px}
.pi-meta-icon{font-size:.9rem}
.pi-coverage-bar{width:100px;height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden;display:inline-block;vertical-align:middle;margin-left:6px}
.pi-coverage-fill{height:100%;border-radius:3px;background:var(--green)}
.pi-movers{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:16px}
.pi-mover-card{padding:10px 14px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-50);font-size:.78rem}
.pi-mover-name{font-weight:700;color:var(--dark);margin-bottom:2px}
.pi-mover-change{font-weight:700;font-size:.85rem}
.pi-mover-change.up{color:#dc2626}
.pi-mover-change.down{color:#059669}
.pi-mover-period{color:var(--gray-400);font-size:.7rem;margin-top:2px}
.pi-confidence-meter{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pi-gauge{width:160px;height:10px;background:var(--gray-200);border-radius:5px;overflow:hidden}
.pi-gauge-fill{height:100%;border-radius:5px;transition:width .5s}
.pi-gauge-label{font-size:.8rem;font-weight:700}
.pi-stale-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(245,158,11,.06);border:1px solid #fde68a;border-radius:var(--radius-sm);font-size:.8rem;color:#92400e;margin-bottom:12px}
.pi-stale-banner .banner-icon{font-size:1rem}
.pi-actions{display:flex;gap:8px}

/* ── Price History Modal ── */
.ph-modal{max-width:640px;width:95%}
.ph-current{display:flex;align-items:baseline;gap:10px;margin-bottom:16px}
.ph-current-name{font-size:1rem;font-weight:700;color:var(--dark)}
.ph-current-price{font-size:1.1rem;font-weight:700;color:var(--blue)}
.ph-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.ph-stat{text-align:center;padding:8px;background:var(--gray-50);border-radius:var(--radius-sm)}
.ph-stat-label{font-size:.65rem;text-transform:uppercase;font-weight:600;color:var(--gray-500);letter-spacing:.5px}
.ph-stat-value{font-size:.9rem;font-weight:700;color:var(--dark);margin-top:2px}
.ph-chart-wrap{height:200px;margin-bottom:16px;position:relative;background:var(--gray-50);border-radius:var(--radius-sm);overflow:hidden;padding:12px}
.ph-chart-svg{width:100%;height:100%}
.ph-chart-area{fill:rgba(37,99,235,.08);stroke:none}
.ph-chart-line{fill:none;stroke:var(--blue);stroke-width:2}
.ph-chart-dot{fill:var(--blue);cursor:pointer}
.ph-chart-dot:hover{r:5;fill:var(--blue-hover)}
.ph-chart-tooltip{position:absolute;background:var(--dark);color:#fff;padding:4px 8px;border-radius:4px;font-size:.7rem;pointer-events:none;white-space:nowrap;z-index:10;display:none}
.ph-chart-gridline{stroke:var(--gray-200);stroke-width:1;stroke-dasharray:3,3}
.ph-chart-label{font-size:.6rem;fill:var(--gray-400);text-anchor:middle}
.ph-table-wrap{max-height:200px;overflow-y:auto;margin-bottom:12px}
.ph-table{width:100%;border-collapse:collapse;font-size:.75rem}
.ph-table th{position:sticky;top:0;background:var(--gray-100);padding:6px 8px;text-align:left;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.3px;color:var(--gray-500)}
.ph-table td{padding:5px 8px;border-bottom:1px solid var(--gray-100);color:var(--gray-700)}
.ph-use-avg-btn{background:var(--blue);color:#fff;border:none;padding:6px 16px;border-radius:4px;font-size:.78rem;font-weight:600;cursor:pointer}
.ph-use-avg-btn:hover{background:var(--blue-hover)}

/* ── Sub Quote Comparison View ── */
.sq-compare{margin-top:12px}
.sq-compare-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:12px}
.sq-compare-card{padding:12px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--card-bg)}
.sq-compare-card-title{font-size:.72rem;text-transform:uppercase;font-weight:600;color:var(--gray-500);letter-spacing:.5px;margin-bottom:6px}
.sq-compare-card-value{font-size:1.1rem;font-weight:700;color:var(--dark)}
.sq-compare-card-sub{font-size:.72rem;color:var(--gray-400);margin-top:4px}
.sq-variance{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:700;margin-left:6px}
.sq-variance.green{background:#dcfce7;color:#166534}
.sq-variance.yellow{background:#fef9c3;color:#854d0e}
.sq-variance.red{background:#fee2e2;color:#991b1b}
.sq-market-assessment{padding:10px 14px;background:var(--gray-50);border-left:3px solid var(--blue);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.8rem;color:var(--gray-700);font-style:italic;margin-top:8px}

/* ── Material Takeoff Table — extra columns ── */
.data-table .col-actions{width:90px;text-align:center}
.data-table .col-source-badge{width:110px}

/* ── Responsive: Citation panels collapse on mobile ── */
@media(max-width:768px){
  .mt-citation-tree{font-size:.65rem;line-height:1.6}
  .mt-citation-panel .citation-header{flex-direction:column;align-items:flex-start;gap:4px}
  .slideout-panel{width:100vw;max-width:100vw}
  .sq-compare-grid{grid-template-columns:1fr}
  .ph-stats{grid-template-columns:repeat(2,1fr)}
  .pi-movers{grid-template-columns:1fr}
}
@media(max-width:480px){
  .mt-row-actions{flex-wrap:wrap}
  .mt-edit-input{width:60px}
  .ph-stats{grid-template-columns:1fr 1fr}
}

/* ══════════════════════════════════════════════════════════════ */
/* RFI TRACKING & RESOLUTION SYSTEM                              */
/* ══════════════════════════════════════════════════════════════ */

/* Stats bar */
.rfi-stats-bar{display:flex;gap:1rem;margin-bottom:1.25rem}
.rfi-stat{flex:1;background:var(--surface);border:1px solid var(--border-color);border-radius:8px;padding:.75rem 1rem;text-align:center}
.rfi-stat-val{font-size:1.4rem;font-weight:700;color:var(--text);display:block}
.rfi-stat-val.rfi-open{color:#dc2626}
.rfi-stat-label{font-size:.72rem;color:#64748b}

/* Toolbar */
.rfi-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.rfi-filter-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.rfi-filters{display:flex;gap:4px}
.rfi-sort{display:flex;align-items:center;gap:4px}
.rfi-sort-select{padding:4px 8px;border:1px solid var(--border-color);border-radius:6px;font-size:.78rem;background:var(--surface);color:var(--text)}

/* RFI Card */
.rfi-card{border:1px solid var(--border-color);border-radius:10px;margin-bottom:.75rem;background:var(--card-bg);overflow:hidden}
.rfi-card.rfi-overdue{border-left:4px solid #dc2626}
.rfi-card.rfi-status-void{opacity:.5}
.rfi-card-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;flex-wrap:wrap}
.rfi-card-header:hover{background:var(--surface)}
.rfi-card-body{display:none;padding:0 1rem 1rem}
.rfi-card.rfi-expanded .rfi-card-body{display:block}
.rfi-card.rfi-expanded .toggle-arrow{transform:rotate(180deg)}

.rfi-number{font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--text);background:var(--surface);padding:.15rem .5rem;border-radius:4px}
.rfi-subject{flex:1;font-weight:600;color:var(--text);font-size:.9rem}

/* Priority badges */
.rfi-pri-badge{font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:4px;text-transform:uppercase}
.rfi-pri-critical{background:#fee2e2;color:#991b1b}
.rfi-pri-high{background:#fef3c7;color:#92400e}
.rfi-pri-medium{background:#dbeafe;color:#1d4ed8}
.rfi-pri-low{background:#f1f5f9;color:#64748b}

/* Status badges */
.rfi-status-badge{font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:4px;text-transform:uppercase}
.rfi-status-draft{background:#f1f5f9;color:#475569}
.rfi-status-submitted{background:#dbeafe;color:#1d4ed8}
.rfi-status-responded{background:#d1fae5;color:#065f46}
.rfi-status-closed{background:#e2e8f0;color:#64748b}
.rfi-status-void{background:#f3f4f6;color:#9ca3af;text-decoration:line-through}

.rfi-overdue-badge{font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:4px;background:#dc2626;color:#fff;animation:rfi-pulse 1.5s infinite}
@keyframes rfi-pulse{0%,100%{opacity:1}50%{opacity:.7}}

.rfi-due{font-size:.75rem;font-weight:500;margin-left:auto}
.due-overdue{color:#dc2626;font-weight:700}
.due-urgent{color:#f59e0b}
.due-soon{color:#3b82f6}
.due-ok{color:#64748b}

/* Reference tags */
.rfi-refs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}
.rfi-ref-tag{font-size:.72rem;padding:.2rem .5rem;border-radius:4px;background:#f1f5f9;color:#475569}
.sheet-ref{border-left:3px solid #3b82f6}
.spec-ref{border-left:3px solid #8b5cf6}

.rfi-description{font-size:.88rem;color:var(--text);line-height:1.6;margin-bottom:.75rem}
.rfi-assumption{font-size:.82rem;color:#64748b;margin-bottom:.5rem;padding:.5rem;background:rgba(245,158,11,.06);border-radius:6px;border-left:3px solid #f59e0b}
.rfi-cost-impact{font-size:.82rem;font-weight:600;color:#dc2626;margin-bottom:.75rem}

/* Response section */
.rfi-response-section{margin-bottom:.75rem}
.rfi-response-box{border:1px solid var(--border-color);border-radius:8px;padding:.75rem;margin-bottom:.75rem}
.rfi-response-box.filled{background:rgba(16,185,129,.06);border-color:rgba(16,185,129,.2)}
.rfi-response-header{font-size:.78rem;font-weight:600;color:#475569;margin-bottom:.5rem}
.rfi-response-text{font-size:.88rem;color:var(--text);line-height:1.5}
.rfi-response-input{width:100%;min-height:60px;border:1px solid var(--border-color);border-radius:6px;padding:.5rem;font-size:.85rem;resize:vertical;font-family:inherit;background:var(--surface);color:var(--text)}
.rfi-response-meta{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}
.rfi-input-sm{flex:1;min-width:140px;padding:.4rem;border:1px solid #d1d5db;border-radius:6px;font-size:.82rem}

.rfi-bid-adjustment{font-size:.88rem;font-weight:700;margin-top:.5rem;padding:.3rem .6rem;border-radius:4px;display:inline-block}
.adj-increase{background:#fee2e2;color:#991b1b}
.adj-decrease{background:#d1fae5;color:#065f46}
.rfi-bid-impact{font-size:.82rem;color:#475569;margin-top:.25rem;font-style:italic}

/* Actions */
.rfi-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding-top:.75rem;border-top:1px solid #f1f5f9}
.rfi-assigned{margin-left:auto;font-size:.78rem;color:#64748b}

/* Suggested RFIs */
.rfi-suggested-section{margin-top:1.5rem;padding-top:1rem;border-top:2px dashed var(--border-color)}
.rfi-suggested-header{font-size:.85rem;font-weight:700;color:#64748b;margin-bottom:.75rem}
.rfi-suggested-count{font-weight:400;font-size:.78rem;margin-left:.5rem}
.rfi-suggested-card{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem;background:#fefce8;border:1px solid #fde68a;border-radius:8px;margin-bottom:.5rem}
.rfi-suggested-left{flex:1;min-width:0}
.rfi-suggested-subject{font-weight:600;font-size:.88rem;color:#1e293b;margin-left:.5rem}
.rfi-suggested-desc{font-size:.8rem;color:#64748b;margin-top:.25rem;line-height:1.4}
.rfi-suggested-impact{font-size:.78rem;font-weight:600;color:#dc2626;margin-top:.25rem}
.rfi-suggested-actions{display:flex;flex-direction:column;gap:.4rem;flex-shrink:0}

/* Promoted badge in Client Questions tab */
.qa-promoted-badge{display:inline-block;font-size:.72rem;font-weight:600;color:#7c3aed;background:#ede9fe;padding:.15rem .5rem;border-radius:4px;cursor:pointer;margin-left:.5rem}
.qa-promoted-badge:hover{background:#ddd6fe}

/* RFI adjustments in bid summary */
.rfi-adjustments-summary{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:1rem 1.25rem;margin-top:1rem}
.rfi-adjustments-summary h4{font-size:.9rem;color:#475569;margin:0 0 .75rem 0}
.rfi-adj-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;border-bottom:1px solid #f1f5f9}
.rfi-adj-id{font-family:monospace;font-size:.78rem;font-weight:600;color:#64748b;min-width:60px}
.rfi-adj-desc{flex:1;font-size:.85rem;color:#334155}
.rfi-adj-amount{font-weight:700;font-size:.88rem}
.rfi-adj-total{font-weight:700;font-size:.95rem;color:#1e293b;margin-top:.5rem;padding-top:.5rem;border-top:2px solid #e2e8f0;text-align:right}

/* Notes */
.rfi-notes-section{margin-top:.75rem}
.rfi-notes-toggle{background:none;border:none;font-size:.78rem;color:#64748b;cursor:pointer;padding:.25rem 0}
.rfi-notes-toggle:hover{color:#1e293b}
.rfi-notes-body{margin-top:.5rem}
.rfi-notes-body.hidden{display:none}
.rfi-notes-input{width:100%;min-height:50px;border:1px solid var(--border-color);border-radius:6px;padding:.5rem;font-size:.82rem;resize:vertical;font-family:inherit;margin-bottom:.5rem;background:var(--surface);color:var(--text)}

/* Modal for create/edit/import */
.rfi-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.65);z-index:1000;display:flex;align-items:center;justify-content:center}
.rfi-modal{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;max-width:600px;width:90%;max-height:85vh;overflow-y:auto;padding:1.5rem}
.rfi-modal h3{margin:0 0 1rem 0;font-size:1.1rem;color:var(--text)}
.rfi-modal label{display:block;font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:.25rem;margin-top:.75rem}
.rfi-modal input,.rfi-modal select,.rfi-modal textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:6px;font-size:.85rem;font-family:inherit;box-sizing:border-box;background:var(--surface);color:var(--text)}
.rfi-modal textarea{min-height:80px;resize:vertical}
.rfi-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}

/* Responsive RFI */
@media(max-width:768px){
  .rfi-stats-bar{flex-direction:column;gap:.5rem}
  .rfi-suggested-card{flex-direction:column}
  .rfi-card-header{font-size:.82rem}
  .rfi-modal{max-width:95%;padding:1rem}
  .rfi-response-meta{flex-direction:column}
  .rfi-input-sm{min-width:100%}
}
@media(max-width:480px){
  .rfi-toolbar{flex-direction:column}
  .rfi-filter-bar{flex-direction:column;align-items:flex-start}
}

/* ═══════════════════════════════════════════════════════════════════
   DARK THEME OVERRIDES — Receipt Vault UI Match
   Teal primary (#14b8a6), dark surfaces, Plus Jakarta Sans
   ═══════════════════════════════════════════════════════════════════ */

/* ── Global Surface & Text Overrides ── */
.form-section,
.result-card,
.results-header,
.error-card,
.summary-card,
.stat-card,
.dashboard-table-wrap,
.bid-action-bar,
.review-panel,
.confidence-dashboard,
.rfq-email-card,
.rfq-email-preview,
.rfq-draft-card,
.drive-links-panel,
.rfi-adjustments-summary,
.breakdown-card,
.table-card,
.risk-card,
.form-card,
.progress-card,
.mode-selector,
.coord-issue-card,
.ve-card,
.pq-quote-card,
.sq-compare-card,
.rfi-card,
.rfi-modal,
.rfi-stat {
  background: var(--card-bg) !important;
  border-color: var(--border-color) !important;
  color: var(--text);
}

/* ── Section Headers & Hover States ── */
.section-header:hover,
.form-card-header:hover,
.rfq-email-header:hover,
.qa-card-header:hover,
.ca-card-header:hover,
.rfi-card-header:hover,
.result-card-header:hover,
.plan-data-toggle:hover {
  background: var(--surface) !important;
}

.section-header h2,
.form-card-header h2,
.rc-header h3,
.result-card-header h3 {
  color: var(--text) !important;
}

/* ── Form Inputs ── */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="url"],
input[type="date"],
select,
textarea,
.form-group input,
.form-group select,
.form-group textarea,
.search-input,
.qa-answer-input,
.ca-resolve-input,
.pricing-input,
.ie-input,
.rfq-draft-body-editor,
.rfq-draft-recipient-field input,
.rfq-draft-subject-bar input,
.rfi-response-input,
.rfi-input-sm,
.rfi-notes-input,
.rfi-modal input,
.rfi-modal select,
.rfi-modal textarea,
.rfi-sort-select,
.review-note-input textarea,
.notes-add textarea,
.notes-add-actions select,
.modal-group input[type="text"],
.modal-group input[type="number"],
.modal-group textarea,
.modal-group select {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text) !important;
}

input:focus,
select:focus,
textarea:focus,
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(20,184,166,.15) !important;
}

.form-group label {
  color: var(--text-secondary) !important;
}

/* Input prefix ($ signs) */
.input-prefix {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.input-prefix span,
.input-prefix .prefix {
  background: var(--gray-100) !important;
  color: var(--text-secondary) !important;
  border-color: var(--border-color) !important;
}
.input-prefix:focus-within {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(20,184,166,.15) !important;
}

/* ── Radio, Checkbox, Labels ── */
.radio-label,
.cb-label,
.checkbox-label {
  color: var(--gray-700) !important;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--primary);
}

.range-input {
  accent-color: var(--primary) !important;
}

/* ── Buttons ── */
.btn-primary,
.btn-refine {
  background: var(--primary) !important;
  color: #141414 !important;
}
.btn-primary:hover,
.btn-refine:hover {
  background: var(--primary-hover) !important;
}
.btn-primary:disabled {
  background: var(--gray-300) !important;
  color: var(--gray-500) !important;
}

.btn-secondary,
.btn-recalc {
  background: var(--surface) !important;
  color: var(--primary) !important;
  border-color: var(--primary) !important;
}
.btn-secondary:hover,
.btn-recalc:hover {
  background: rgba(20,184,166,.08) !important;
}

.btn-outline {
  background: transparent !important;
  border-color: var(--border-color) !important;
  color: var(--text-secondary) !important;
}
.btn-outline:hover {
  border-color: var(--primary) !important;
  color: var(--primary) !important;
}

.btn-success,
.btn-success-sm,
.btn-portal {
  background: var(--green) !important;
  color: #fff !important;
}

.btn-danger-outline {
  background: transparent !important;
  color: var(--red) !important;
  border-color: var(--red) !important;
}

.btn-text {
  color: var(--text-secondary) !important;
}
.btn-text:hover {
  color: var(--text) !important;
}

/* ── Navigation — now sidebar, see layout rules above ── */

/* ── Mode Buttons (Commercial/Residential) ── */
.mode-btn {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-secondary) !important;
}
.mode-btn:hover:not(.active) {
  border-color: var(--gray-300) !important;
  background: var(--gray-100) !important;
  color: var(--text) !important;
}
.mode-btn.active {
  border-color: var(--primary) !important;
  background: var(--primary) !important;
  color: #141414 !important;
}

/* ── Tables ── */
.data-table thead,
.sov-table th,
.sov-editor-table th,
.pricing-table th {
  background: var(--surface) !important;
  color: var(--text) !important;
}

.data-table td,
.sov-table td,
.pricing-table td {
  border-color: var(--border-color) !important;
  color: var(--text) !important;
}

.data-table tbody tr:nth-child(even),
.pricing-table tbody tr:nth-child(even) {
  background: rgba(255,255,255,.02) !important;
}

.data-table tbody tr:hover,
.pricing-table tbody tr:hover {
  background: rgba(255,255,255,.04) !important;
}

.data-table tfoot {
  background: var(--surface) !important;
}
.data-table tfoot td {
  border-color: var(--border-color) !important;
}

.cost-total {
  border-color: var(--border-color) !important;
}

.sov-section-row {
  background: var(--gray-100) !important;
}
.sov-subtotal-row {
  background: var(--surface) !important;
}
.sov-total-row,
.sov-grand-total-row {
  background: var(--surface) !important;
  color: var(--text) !important;
}
.sov-markup-row {
  color: var(--text-secondary) !important;
}

/* Editable cells */
.sov-table td[contenteditable="true"],
.sov-cell[contenteditable="true"] {
  background: var(--surface) !important;
}
.sov-table td[contenteditable="true"]:focus,
.sov-cell[contenteditable="true"]:focus {
  outline-color: var(--primary) !important;
  background: var(--gray-100) !important;
}

/* ── Cards & Surfaces ── */
.sub-quote-card,
.sub-card,
.custom-cost-card,
.file-item {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text) !important;
}

.qa-card-header,
.ca-card-header,
.rfq-draft-card-header,
.file-list-header {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}

/* ── Upload Area ── */
.upload-area,
.drop-zone {
  border-color: var(--gray-300) !important;
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
}
.upload-area:hover,
.upload-area.drag-over,
.drop-zone:hover,
.drop-zone.dragover {
  border-color: var(--primary) !important;
  background: rgba(20,184,166,.04) !important;
}
.upload-link {
  color: var(--primary) !important;
}
.drop-zone-text {
  color: var(--text) !important;
}
.drop-zone-subtext {
  color: var(--text-secondary) !important;
}
.upload-icon {
  fill: var(--text-secondary) !important;
}
.drop-zone:hover .upload-icon,
.drop-zone.dragover .upload-icon {
  fill: var(--primary) !important;
}

/* ── File List ── */
.file-list {
  border-color: var(--border-color) !important;
}
.file-list li {
  border-color: var(--border-color) !important;
}

/* ── Progress Pipeline ── */
.pipe-step.active .pipe-icon {
  color: var(--primary) !important;
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 4px rgba(20,184,166,.15), 0 0 12px rgba(20,184,166,.1) !important;
}
.pipe-step.completed .pipe-icon {
  color: #fff !important;
  border-color: var(--primary) !important;
  background: var(--primary) !important;
}
.pipe-connector::after {
  background: var(--primary) !important;
}
.progress-bar {
  background: linear-gradient(90deg, var(--primary), #5eead4, var(--primary)) !important;
  background-size: 200% 100% !important;
}
.progress-bar-track {
  background: var(--gray-200) !important;
}

/* ── Summary Cards ── */
.summary-card.highlight {
  background: rgba(20,184,166,.06) !important;
  border-color: rgba(20,184,166,.3) !important;
}
.sc-label,
.summary-label {
  color: var(--text-secondary) !important;
}
.sc-value,
.summary-value {
  color: var(--text) !important;
}
.summary-value.large {
  color: var(--primary) !important;
}

/* ── Cost Bar Track ── */
.cost-bar-track {
  background: var(--gray-100) !important;
}
.cost-bar-label {
  color: var(--text-secondary) !important;
}
.cost-bar-amount {
  color: var(--text) !important;
}

/* ── Modals & Panels ── */
.modal-overlay {
  background: rgba(0,0,0,.65) !important;
}
.modal-content,
.rfi-modal {
  background: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  color: var(--text) !important;
}
.modal-header,
.modal-footer {
  border-color: var(--border-color) !important;
}
.modal-group label {
  color: var(--text-secondary) !important;
}

.version-history-panel,
.bid-notes-panel {
  background: var(--card-bg) !important;
  box-shadow: -4px 0 20px rgba(0,0,0,.4) !important;
}
.version-panel-header,
.notes-panel-header {
  border-color: var(--border-color) !important;
}
.version-entry {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.version-entry.current {
  border-color: var(--primary) !important;
  background: rgba(20,184,166,.06) !important;
}

/* Note cards */
.note-card {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.review-note {
  background: var(--surface) !important;
}

/* ── Dropdown ── */
.dropdown-menu {
  background: var(--card-bg) !important;
  border-color: var(--border-color) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.4) !important;
}
.dropdown-item {
  color: var(--text) !important;
}
.dropdown-item:hover {
  background: var(--surface) !important;
}

/* ── Dashboard ── */
.dashboard-stats .stat-card .stat-value {
  color: var(--text) !important;
}
.dashboard-empty {
  color: var(--text-secondary) !important;
}

/* ── Badges (keep light backgrounds for contrast) ── */
.rh-badge,
.meta-badge,
.bid-id-badge {
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
}

/* Status badges - dark-safe tints */
.status-draft { background: var(--gray-200) !important; color: var(--text-secondary) !important; }
.status-refined { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.status-submitted { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.status-revision { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }
.status-won { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.status-lost { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }
.status-review-requested,
.status-review_requested { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.status-approved { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.status-received { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.status-accepted { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.status-rejected { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }
.status-negotiating { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }

/* Source badges */
.source-badge.ai,
.source-ai { background: rgba(245,158,11,.12) !important; color: #f59e0b !important; }
.source-badge.sub,
.source-sub { background: rgba(245,158,11,.12) !important; color: #f59e0b !important; }
.source-badge.manual,
.source-manual,
.source-badge.confirmed,
.source-confirmed { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.source-db-verified { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.source-database { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.source-none { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }

/* Confidence badges */
.conf-high { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.conf-med { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }
.conf-low { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }

/* Risk level badges */
.badge-low { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.badge-medium { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }
.badge-high { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }

/* Priority badges */
.prio-critical { background: rgba(239,68,68,.12) !important; color: var(--red) !important; border-color: rgba(239,68,68,.25) !important; }
.prio-high { background: rgba(234,88,12,.12) !important; color: #ea580c !important; border-color: rgba(234,88,12,.25) !important; }
.prio-medium { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; border-color: rgba(245,158,11,.25) !important; }
.prio-low { background: rgba(16,185,129,.12) !important; color: var(--green) !important; border-color: rgba(16,185,129,.25) !important; }

/* Note type badges */
.note-type-general { background: var(--gray-200) !important; color: var(--text-secondary) !important; }
.note-type-pricing { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.note-type-client { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }
.note-type-risk { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }
.note-type-reminder { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }

/* ── Q&A & Contractor Actions ── */
.qa-filter-btn,
.qa-na-btn,
.qa-email-btn,
.version-btn,
.rc-toggle-all,
.btn-rfq-action,
.dash-actions button {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-secondary) !important;
}
.qa-filter-btn:hover:not(.active),
.qa-na-btn:hover:not(.active),
.qa-email-btn:hover,
.version-btn:hover:not(.active),
.rc-toggle-all:hover,
.btn-rfq-action:hover,
.dash-actions button:hover {
  background: var(--gray-100) !important;
  border-color: var(--primary) !important;
  color: var(--primary) !important;
}
.qa-filter-btn.active,
.version-btn.active {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #141414 !important;
}

.qa-badge,
.qa-count,
.qa-tab-count {
  background: var(--primary) !important;
  color: #141414 !important;
}

.qa-tab {
  color: var(--text-secondary) !important;
  border-bottom-color: transparent !important;
}
.qa-tab:hover {
  color: var(--text) !important;
  background: var(--surface) !important;
}
.qa-tab.active {
  color: var(--primary) !important;
  border-bottom-color: var(--primary) !important;
}
.qa-tab-bar {
  border-color: var(--border-color) !important;
}

.qa-toolbar,
.ca-toolbar,
.qa-email-toolbar {
  border-color: var(--border-color) !important;
  background: var(--surface) !important;
}

.qa-answer-input.has-value,
.ca-resolve-input.has-value,
.pricing-input.has-value {
  border-color: var(--green) !important;
  background: rgba(16,185,129,.06) !important;
}

/* ── Toast ── */
.toast,
.qa-toast {
  background: var(--card-bg) !important;
  color: var(--text) !important;
  border: 1px solid var(--border-color) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.4) !important;
}
.toast.success { border-left: 4px solid var(--green) !important; }
.toast.error { border-left: 4px solid var(--red) !important; }
.toast.info { border-left: 4px solid var(--primary) !important; }

/* ── Info Notes & Banners ── */
.info-note {
  background: rgba(20,184,166,.06) !important;
  border-color: rgba(20,184,166,.2) !important;
  color: var(--primary) !important;
}
.sov-banner {
  background: rgba(245,158,11,.06) !important;
  border-color: rgba(245,158,11,.2) !important;
  color: var(--yellow) !important;
}
.refinement-banner {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.refinement-banner-text {
  color: var(--text) !important;
}
.refinement-banner-text strong {
  color: var(--primary) !important;
}

/* ── Change Report ── */
.change-report-header {
  background: rgba(245,158,11,.08) !important;
  border-color: rgba(245,158,11,.2) !important;
}
.change-report-header h3 {
  color: var(--yellow) !important;
}
.change-report-body {
  background: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}
.change-summary {
  background: var(--surface) !important;
}
.change-icon.up { background: rgba(239,68,68,.12) !important; }
.change-icon.down { background: rgba(16,185,129,.12) !important; }
.change-icon.info { background: rgba(20,184,166,.12) !important; }

/* ── Risk Assessment ── */
.risk-score-track,
.risk-score-bar,
.confidence-bar-track {
  background: var(--gray-200) !important;
}
.risk-cat-card,
.risk-category-card,
.risk-item {
  border-color: var(--border-color) !important;
  color: var(--text) !important;
}
.risk-recs {
  background: var(--surface) !important;
}
.risk-contingency-rec {
  background: rgba(99,102,241,.06) !important;
  border-color: rgba(99,102,241,.2) !important;
}
.risk-item-high { background: rgba(239,68,68,.06) !important; }
.risk-item-medium { background: rgba(245,158,11,.06) !important; }
.risk-item-low { background: rgba(16,185,129,.06) !important; }

/* ── Confidence Dashboard ── */
.overall-score {
  color: var(--primary) !important;
}
.confidence-section {
  background: var(--surface) !important;
}
.confidence-actions {
  background: rgba(245,158,11,.06) !important;
  border-color: var(--yellow) !important;
}
.confidence-actions h4 {
  color: var(--yellow) !important;
}

/* ── Compliance ── */
.compliance-item {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.compliance-value {
  color: var(--text) !important;
}
.compliance-note {
  background: rgba(245,158,11,.06) !important;
  color: var(--yellow) !important;
}
.compliance-stats {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.compliance-sprinkler {
  background: rgba(20,184,166,.06) !important;
  border-color: rgba(20,184,166,.2) !important;
}
.compliance-sprinkler strong {
  color: var(--primary) !important;
}
.compliance-warning {
  background: rgba(239,68,68,.06) !important;
  border-color: rgba(239,68,68,.2) !important;
}
.compliance-occupancy {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.compliance-triggers-table th {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-secondary) !important;
}
.compliance-triggers-table td {
  border-color: var(--border-color) !important;
}
.compliance-triggers-table tr:hover {
  background: var(--surface) !important;
}

/* ── Drive Links ── */
.drive-link-chip {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text) !important;
}
.drive-link-chip:hover {
  border-color: var(--primary) !important;
  color: var(--primary) !important;
}
.drive-root-link {
  color: var(--primary) !important;
}

/* ── Pipeline ── */
.pipeline-dot {
  border-color: var(--gray-300) !important;
  background: var(--surface) !important;
}
.pipeline-stage.completed .pipeline-dot {
  background: var(--green) !important;
  border-color: var(--green) !important;
}
.pipeline-stage.current .pipeline-dot {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(20,184,166,.2) !important;
}
.pipeline-connector {
  background: var(--gray-300) !important;
}
.pipeline-connector.completed {
  background: var(--green) !important;
}

/* ── Version Items ── */
.version-item {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.version-item.current {
  border-color: var(--primary) !important;
  background: rgba(20,184,166,.06) !important;
}
.version-badge {
  background: var(--gray-200) !important;
  color: var(--text) !important;
}
.version-item.current .version-badge {
  background: var(--primary) !important;
  color: #141414 !important;
}

/* ── Comparison ── */
.comparison-metric {
  border-color: var(--border-color) !important;
}
.comparison-metric.metric-up {
  background: rgba(239,68,68,.06) !important;
  border-color: rgba(239,68,68,.2) !important;
}
.comparison-metric.metric-down {
  background: rgba(16,185,129,.06) !important;
  border-color: rgba(16,185,129,.2) !important;
}
.compare-table th {
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
}
.compare-table td {
  border-color: var(--border-color) !important;
}

/* ── Inline Editors ── */
.inline-editors {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.ie-input.changed {
  border-color: var(--yellow) !important;
  background: rgba(245,158,11,.06) !important;
}

/* ── Portal ── */
.portal-link-input {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text) !important;
}
.portal-link {
  color: var(--primary) !important;
}

/* ── Review Panel ── */
.review-escalation-notice {
  background: rgba(245,158,11,.08) !important;
  border-color: rgba(245,158,11,.2) !important;
  color: var(--yellow) !important;
}
.review-check-item {
  color: var(--text) !important;
}

/* ── RFQ ── */
.rfq-email-content {
  color: var(--text) !important;
}
.rfq-email-subject {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.rfq-estimate-box {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.rfq-scope-list {
  color: var(--text-secondary) !important;
}
.rfq-discrepancy.severity-high { background: rgba(239,68,68,.06) !important; }
.rfq-discrepancy.severity-medium { background: rgba(245,158,11,.06) !important; }
.rfq-discrepancy.severity-low { background: rgba(16,185,129,.06) !important; }
.rfq-section-checkboxes {
  background: var(--surface) !important;
}
.rfq-saved-quote {
  background: rgba(16,185,129,.06) !important;
  border-color: rgba(16,185,129,.2) !important;
}
.rfq-saved-header {
  color: var(--green) !important;
}

/* ── RFQ Draft ── */
.rfq-draft-card-header {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.rfq-draft-csi {
  background: rgba(20,184,166,.12) !important;
  color: var(--primary) !important;
}
.rfq-draft-recipient-bar {
  border-color: var(--border-color) !important;
}
.rfq-draft-subject-bar {
  border-color: var(--border-color) !important;
}
.rfq-draft-body-editor {
  font-family: var(--font-mono) !important;
}
.rfq-draft-status-badge.status-draft { background: var(--gray-200) !important; color: var(--text-secondary) !important; }
.rfq-draft-status-badge.status-copied { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.rfq-draft-status-badge.status-mailed { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }
.rfq-draft-status-badge.status-sent_to_assistant { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.rfq-draft-status-badge.status-sent { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }

/* ── RFQ Tracker ── */
.rfq-tracker {
  border-color: var(--border-color) !important;
}
.rfq-tracker-item {
  border-color: var(--border-color) !important;
}
.rfq-status-draft { background: var(--surface) !important; }
.rfq-status-sent { background: rgba(20,184,166,.06) !important; border-color: rgba(20,184,166,.2) !important; }
.rfq-status-responded { background: rgba(16,185,129,.06) !important; border-color: rgba(16,185,129,.2) !important; }

/* ── RFI ── */
.rfi-stat {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.rfi-stat-val { color: var(--text) !important; }
.rfi-stat-val.rfi-open { color: var(--red) !important; }
.rfi-stat-label { color: var(--text-secondary) !important; }
.rfi-number { background: var(--surface) !important; color: var(--text) !important; }
.rfi-subject { color: var(--text) !important; }
.rfi-description { color: var(--text) !important; }
.rfi-response-box { border-color: var(--border-color) !important; }
.rfi-response-box.filled { background: rgba(16,185,129,.06) !important; border-color: rgba(16,185,129,.2) !important; }
.rfi-assumption { background: rgba(245,158,11,.06) !important; border-left-color: var(--yellow) !important; color: var(--text-secondary) !important; }
.rfi-actions { border-color: var(--border-color) !important; }
.rfi-suggested-card { background: rgba(245,158,11,.06) !important; border-color: rgba(245,158,11,.2) !important; }
.rfi-suggested-subject { color: var(--text) !important; }
.rfi-ref-tag { background: var(--surface) !important; color: var(--text-secondary) !important; }
.rfi-pri-badge.rfi-pri-critical { background: rgba(239,68,68,.12) !important; }
.rfi-pri-badge.rfi-pri-high { background: rgba(245,158,11,.12) !important; }
.rfi-pri-badge.rfi-pri-medium { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.rfi-pri-badge.rfi-pri-low { background: var(--surface) !important; color: var(--text-secondary) !important; }
.rfi-status-badge.rfi-status-draft { background: var(--surface) !important; color: var(--text-secondary) !important; }
.rfi-status-badge.rfi-status-submitted { background: rgba(20,184,166,.12) !important; color: var(--primary) !important; }
.rfi-status-badge.rfi-status-responded { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.rfi-status-badge.rfi-status-closed { background: var(--gray-200) !important; color: var(--text-secondary) !important; }
.rfi-modal-overlay { background: rgba(0,0,0,.65) !important; }
.adj-increase { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }
.adj-decrease { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }

/* ── Sub Quote Comparison ── */
.sq-compare-card {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.sq-compare-card-value { color: var(--text) !important; }
.sq-market-assessment {
  background: var(--surface) !important;
  border-left-color: var(--primary) !important;
  color: var(--text-secondary) !important;
}
.sq-variance.green { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.sq-variance.yellow { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }
.sq-variance.red { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }

/* ── Sub Summary Bar ── */
.sub-summary-bar {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}

/* ── CSI Coverage ── */
.csi-coverage-card {
  background: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}
.csi-covered { background: rgba(16,185,129,.06) !important; }
.csi-partial { background: rgba(245,158,11,.06) !important; }
.csi-risk { background: rgba(239,68,68,.06) !important; }
.csi-div-code { color: var(--text) !important; }
.csi-div-name { color: var(--text-secondary) !important; }
.csi-div-cost { color: var(--text) !important; }

/* ── Plan Data ── */
.plan-subsection { border-color: var(--border-color) !important; }
.plan-subsection h4 { color: var(--text) !important; }
.plan-data-label { color: var(--text-secondary) !important; }
.plan-data-value { color: var(--text) !important; }
.sheet-chip { background: var(--surface) !important; border-color: var(--border-color) !important; color: var(--text) !important; }
.qty-chip { background: var(--surface) !important; border-color: var(--border-color) !important; }
.qty-chip-value { color: var(--primary) !important; }
.qty-chip-label { color: var(--text-secondary) !important; }
.badge-plans { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.badge-estimated { background: var(--gray-200) !important; color: var(--text-secondary) !important; }
.viewer-data-source { border-color: var(--border-color) !important; }
.source-plans { background: rgba(16,185,129,.12) !important; color: var(--green) !important; }
.source-hybrid { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }
.source-estimated { background: var(--gray-200) !important; color: var(--text-secondary) !important; }

/* ── Value Engineering ── */
.ve-title { color: var(--text) !important; }
.ve-tradeoff {
  background: rgba(16,185,129,.06) !important;
  border-left-color: var(--green) !important;
  color: var(--text-secondary) !important;
}
.ve-total-savings {
  background: var(--surface) !important;
}

/* ── Coord Issues ── */
.coord-recommendation {
  background: var(--surface) !important;
  border-left-color: var(--primary) !important;
  color: var(--text-secondary) !important;
}

/* ── Audit Trail ── */
.audit-entry { border-color: var(--border-color) !important; }
.audit-detail { color: var(--text) !important; }

/* ── Analysis Depth Toggle ── */
.depth-option {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text) !important;
}
.depth-option.active {
  border-color: var(--primary) !important;
  background: rgba(20,184,166,.06) !important;
}

/* ── Pricing Table ── */
.pricing-summary {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.pricing-table tbody tr.pricing-row-changed {
  background: rgba(16,185,129,.04) !important;
}

/* ── Schedule Preview Modal ── */
.sps-stat {
  background: var(--surface) !important;
  border-color: var(--border-color) !important;
}
.sps-stat-value {
  color: var(--primary) !important;
}

/* ── Bid Locked State ── */
.bid-locked .inline-editors::after {
  background: rgba(0,0,0,.6) !important;
}

/* ── Finalized Badge/Banner ── */
.finalized-badge {
  background: rgba(16,185,129,.12) !important;
  color: var(--green) !important;
}
.finalized-banner {
  background: rgba(16,185,129,.08) !important;
  border-color: rgba(16,185,129,.2) !important;
  color: var(--green) !important;
}

/* ── Scope Group Headers ── */
.scope-group h4 {
  color: var(--text-secondary) !important;
  border-color: var(--border-color) !important;
}

/* ── File Badge ── */
.file-badge {
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
}

/* ── Multiplier Sliders ── */
.multiplier-row input[type="range"] {
  background: var(--gray-200) !important;
}
.multiplier-row input[type="range"]::-webkit-slider-thumb {
  background: var(--primary) !important;
}

/* ── Links ── */
a { color: var(--primary); }
a:hover { color: var(--primary-hover); }
.back-link { color: var(--primary) !important; }

/* ── Portal Quotes ── */
.pq-quote-company { color: var(--text) !important; }
.pq-trade-header { color: var(--text) !important; border-color: var(--border-color) !important; }
.pq-quote-exclusions { background: var(--surface) !important; }
.pq-quote-actions { border-color: var(--border-color) !important; }

/* ── Second body block override (Gantt/Portal styles at line ~1467) ── */
body {
  background: var(--dark-bg) !important;
  color: var(--text) !important;
  font-family: var(--font) !important;
}

.site-header {
  background: var(--dark-bg) !important;
  border-bottom: 1px solid var(--border-color);
}

/* ── Scrollbar styling (matching receipt vault) ── */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: #3a3a3a;
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* ── Glass Card Effect ── */
.glass-card,
.result-card,
.form-section {
  background: rgba(28,28,28,.6);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(46,46,46,.5);
}

/* ── Price History Modal ── */
.ph-stat { background: var(--surface) !important; }
.ph-stat-value { color: var(--text) !important; }
.ph-current-name { color: var(--text) !important; }
.ph-current-price { color: var(--primary) !important; }
.ph-chart-wrap { background: var(--surface) !important; }
.ph-chart-area { fill: rgba(20,184,166,.08) !important; }
.ph-chart-line { stroke: var(--primary) !important; }
.ph-chart-dot { fill: var(--primary) !important; }
.ph-chart-tooltip { background: var(--card-bg) !important; }
.ph-table th { background: var(--surface) !important; color: var(--text-secondary) !important; }
.ph-table td { border-color: var(--border-color) !important; color: var(--text) !important; }
.ph-use-avg-btn { background: var(--primary) !important; }
.ph-use-avg-btn:hover { background: var(--primary-hover) !important; }

/* ── Price Intelligence ── */
.pi-stale-banner {
  background: rgba(245,158,11,.06) !important;
  border-color: rgba(245,158,11,.2) !important;
  color: var(--yellow) !important;
}

/* ── Material Takeoff Citation ── */
.mt-citation-panel { background: var(--card-bg) !important; border-color: var(--border-color) !important; }

/* ── Assumptions ── */
.assumption-severity.critical { background: rgba(239,68,68,.12) !important; color: var(--red) !important; }
.assumption-severity.high { background: rgba(234,88,12,.12) !important; color: #ea580c !important; }
.assumption-severity.medium { background: rgba(245,158,11,.12) !important; color: var(--yellow) !important; }

/* ── Text Color Utilities (dark theme safe) ── */
.text-muted { color: var(--text-secondary) !important; }

/* ── Placeholder colors ── */
::placeholder {
  color: var(--gray-400) !important;
  opacity: 1;
}

/* ── Selection color ── */
::selection {
  background: rgba(20,184,166,.3);
  color: #fff;
}

/* ── Focus ring color ── */
*:focus-visible {
  outline-color: var(--primary);
}

/* ── Header text emphasis ── */
.app-header h1 {
  color: var(--text);
  letter-spacing: -0.5px;
}

/* ── Portal Publish Bar ── */
.portal-publish-bar { border-color: var(--border-color) !important; }

/* ── Locked bid overlay ── */
.bid-locked .inline-editors { opacity: 0.4; }

/* ── Card remove button ── */
.card-remove:hover { background: rgba(239,68,68,.1) !important; }

/* ═══════════════════════════════════════════════════════════
   LIGHT THEME OVERRIDES
   Applied when <html class="light">
   ═══════════════════════════════════════════════════════════ */
:root.light .app-sidebar{background:var(--sidebar-bg);border-color:var(--sidebar-border)}
:root.light .app-topbar{background:var(--topbar-bg)}
:root.light .topbar-search-input{background:rgba(0,0,0,.04);border-color:var(--border-color);color:var(--text)}
:root.light .form-section{background:var(--card-bg);border-color:var(--border-color);backdrop-filter:blur(12px)}
:root.light .form-section:hover{border-color:rgba(0,0,0,.15)}
:root.light .section-header:hover{background:rgba(0,0,0,.02)}
:root.light input[type="text"],
:root.light input[type="email"],
:root.light input[type="tel"],
:root.light input[type="number"],
:root.light input[type="url"],
:root.light input[type="date"],
:root.light select,
:root.light textarea{background:rgba(255,255,255,.6);border-color:var(--border-color);color:var(--text)}
:root.light .input-prefix{background:rgba(255,255,255,.6);border-color:var(--border-color)}
:root.light .input-prefix span{background:var(--gray-100);color:var(--text-secondary);border-color:var(--border-color)}
:root.light .mode-btn{background:var(--surface);border-color:var(--border-color);color:var(--text-secondary)}
:root.light .mode-btn.active{border-color:var(--primary);background:rgba(20,184,166,.08);color:var(--primary)}
:root.light .sub-quote-card,
:root.light .custom-cost-card{background:rgba(255,255,255,.5);border-color:var(--border-color)}
:root.light .upload-area{border-color:var(--gray-300)}
:root.light .upload-area:hover,
:root.light .upload-area.drag-over{border-color:var(--primary);background:rgba(20,184,166,.04)}
:root.light .file-item{background:var(--surface);border-color:var(--border-color)}
:root.light .btn-primary{color:#fff}
:root.light .btn-secondary{background:var(--surface);border-color:var(--border-color);color:var(--text-secondary)}
:root.light .data-table thead{background:rgba(0,0,0,.03)}
:root.light .data-table th{color:var(--text-secondary);border-color:var(--border-color)}
:root.light .data-table td{border-color:var(--border-color);color:var(--text)}
:root.light .data-table tbody tr:hover{background:rgba(0,0,0,.02)}
:root.light .summary-card{background:var(--card-bg);border-color:var(--border-color)}
:root.light .bid-action-bar{background:var(--card-bg);border-color:var(--border-color)}
:root.light .modal-overlay{background:rgba(0,0,0,.4)}
:root.light .modal-content{background:var(--surface);border-color:var(--border-color);color:var(--text)}
:root.light .version-history-panel,
:root.light .bid-notes-panel{background:var(--surface);border-color:var(--border-color)}
:root.light ::selection{background:rgba(20,184,166,.2);color:#000}
:root.light ::-webkit-scrollbar-thumb{background:var(--gray-300)}
:root.light ::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}
:root.light .sov-banner{background:rgba(245,158,11,.06);border-color:rgba(245,158,11,.2)}
:root.light .nav-btn.active{background:rgba(20,184,166,.1);color:var(--primary)}
:root.light .nav-btn:hover:not(:disabled){background:rgba(0,0,0,.04);color:var(--text)}
:root.light .bid-id-badge{background:var(--gray-100);color:var(--text)}
:root.light .progress-pipeline .pipe-icon{color:var(--gray-400);border-color:var(--gray-300);background:var(--surface)}
:root.light .pipe-step.active .pipe-icon{color:var(--primary) !important;border-color:var(--primary) !important;box-shadow:0 0 0 4px rgba(20,184,166,.12),0 0 12px rgba(20,184,166,.08) !important}
:root.light .pipe-step.completed .pipe-icon{color:#fff !important;background:var(--primary) !important;border-color:var(--primary) !important}
:root.light .tab-bar{background:var(--card-bg);border-color:var(--border-color)}
:root.light .tab-btn{color:var(--text-secondary)}
:root.light .tab-btn.active{background:var(--surface);color:var(--primary)}
:root.light .insight-card{background:var(--card-bg);border-color:var(--border-color)}

/* ═══════════════════════════════════════════════════════════
   SUB LEAD SEARCH — Prospect List Panels
   ═══════════════════════════════════════════════════════════ */

.sub-prospect-panel{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);margin-bottom:1rem;overflow:hidden}

.sub-prospect-header{display:flex;justify-content:space-between;align-items:center;padding:0.75rem 1rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200);flex-wrap:wrap;gap:0.5rem}
.sub-prospect-header-left{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}
.sub-prospect-header-left h4{margin:0;font-size:0.95rem;font-weight:600;color:var(--dark)}
.sub-prospect-count{font-size:0.8rem;color:var(--gray-500);font-weight:500}
.sub-prospect-header-actions{display:flex;align-items:center;gap:0.4rem}

.sub-prospect-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0.75rem;padding:1rem}

.sub-prospect-card{display:flex;gap:0.75rem;padding:0.75rem;border:1px solid var(--gray-200);border-radius:var(--radius-sm);cursor:pointer;transition:all 0.15s;background:#fff}
.sub-prospect-card:hover{border-color:var(--blue);background:#f8faff}
.sub-prospect-card.selected{border-color:var(--blue);background:#EFF6FF;box-shadow:0 0 0 1px var(--blue)}
.sub-prospect-card-check{flex-shrink:0;padding-top:2px}
.sub-prospect-card-check input[type="checkbox"]{width:16px;height:16px;cursor:pointer;accent-color:var(--blue)}
.sub-prospect-card-body{flex:1;min-width:0}
.sub-prospect-card-top{margin-bottom:0.25rem}
.sub-prospect-company{font-weight:600;font-size:0.92rem;color:var(--dark);line-height:1.3}
.sub-prospect-contact-name{font-size:0.82rem;color:var(--gray-600)}

.sub-prospect-rating{font-size:0.8rem;color:#F59E0B;margin-bottom:0.25rem;display:inline-block}
.sub-prospect-rating-num{color:var(--dark);font-weight:600}
.sub-prospect-reviews{color:var(--gray-400);font-size:0.75rem}

.sub-prospect-contact-details{display:flex;flex-direction:column;gap:0.15rem;margin-top:0.35rem}
.sub-prospect-contact-item{font-size:0.8rem;color:var(--gray-600);display:flex;align-items:center;gap:0.35rem}
.sub-prospect-icon{font-size:0.75rem;width:1em;text-align:center;flex-shrink:0}
.sub-prospect-specialty{font-size:0.78rem;color:var(--blue);font-weight:500;margin-top:0.25rem}
.sub-prospect-license{font-size:0.75rem;color:var(--gray-400);margin-top:0.15rem}
.sub-prospect-distance{font-size:0.75rem;color:var(--gray-400)}

.sub-prospect-empty{text-align:center;padding:2rem 1rem;color:var(--gray-400)}
.sub-prospect-empty p{margin:0.25rem 0}
.sub-prospect-hint{font-size:0.82rem}

.sub-applied-list{padding:0.5rem 1rem}
.sub-applied-row{display:flex;align-items:center;justify-content:space-between;padding:0.5rem 0.75rem;border-bottom:1px solid var(--gray-100);gap:0.75rem;flex-wrap:wrap}
.sub-applied-row:last-child{border-bottom:none}
.sub-applied-primary{background:var(--gray-50);border-radius:var(--radius-sm);border-bottom:1px solid var(--gray-200)}
.sub-applied-info{font-size:0.88rem;color:var(--dark);flex:1;min-width:150px}
.sub-applied-info strong{font-weight:600}
.sub-applied-contact{color:var(--gray-500);font-weight:400}
.sub-applied-details{display:flex;gap:1rem;font-size:0.8rem;color:var(--gray-500)}
.sub-applied-badge{font-size:0.7rem;font-weight:700;padding:2px 8px;border-radius:10px;background:#D1FAE5;color:#065F46;white-space:nowrap}

.find-subs-btn{background:var(--blue) !important;color:#fff !important;border-color:var(--blue) !important;font-weight:600}
.find-subs-btn:hover{opacity:0.9}
.find-subs-btn:disabled{opacity:0.5;cursor:wait}

@media(max-width:768px){
  .sub-prospect-grid{grid-template-columns:1fr}
  .sub-prospect-header{flex-direction:column;align-items:flex-start}
  .sub-applied-row{flex-direction:column;align-items:flex-start}
}