:root {
  --ink: #18201d;
  --muted: #63716e;
  --line: #d7e0e3;
  --canvas: #f6f7f2;
  --white: #ffffff;
  --navy: #163a5f;
  --navy-2: #214b72;
  --blue: #f28c28;
  --blue-soft: #fff1e3;
  --green: #16856b;
  --green-soft: #e3f4ee;
  --amber: #d56d16;
  --amber-soft: #fff0df;
  --red: #c84737;
  --red-soft: #fbe9e6;
  --shadow: 0 8px 26px rgba(22, 58, 95, .08);
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--canvas); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; }
/* Signed-out homepage */
.signed-out-home[hidden],.app-shell[hidden] { display: none !important; }.signed-out-home { min-height: 100vh; color: #15223a; background: #f8fafc; }.home-nav { height: 76px; display: flex; align-items: center; gap: 42px; padding: 0 clamp(22px,5vw,74px); border-bottom: 1px solid #e3e9f1; background: rgba(255,255,255,.94); position: sticky; top: 0; z-index: 40; backdrop-filter: blur(12px); }.home-brand { display: inline-flex; gap: 10px; align-items: center; color: #172239; text-decoration: none; }.home-brand > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; color: #172239; background: #f4a826; font-weight: 900; letter-spacing: -.04em; }.home-brand strong { font-size: 17px; }.home-nav nav { display: flex; gap: 30px; margin: 0 auto; }.home-nav nav a { color: #516078; text-decoration: none; font-size: 14px; font-weight: 650; }.home-nav > div { display: flex; gap: 9px; }.home-signin,.home-primary,.home-secondary { min-height: 42px; padding: 0 17px; border-radius: 7px; font-weight: 750; cursor: pointer; }.home-signin { border: 0; color: #33445e; background: transparent; }.home-primary { border: 1px solid #1a58c5; color: #fff; background: #1f64d4; box-shadow: 0 7px 18px rgba(31,100,212,.18); }.home-primary:hover { background: #1756bd; }.home-secondary { border: 1px solid #cdd6e2; color: #263b58; background: #fff; }.home-primary.large,.home-secondary.large { min-height: 49px; padding: 0 21px; }.home-main { overflow: hidden; }.home-hero { min-height: 680px; display: grid; grid-template-columns: minmax(380px,.86fr) minmax(500px,1.14fr); gap: clamp(35px,6vw,90px); align-items: center; padding: 70px clamp(22px,5vw,74px) 76px; background: radial-gradient(circle at 77% 21%,#e6efff 0,rgba(230,239,255,0) 34%),linear-gradient(180deg,#fff,#f6f9fd); }.home-eyebrow { display: flex; gap: 8px; align-items: center; margin-bottom: 17px; color: #386397; font-size: 12px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }.home-eyebrow > span { width: 25px; height: 2px; background: #f0a326; }.hero-copy h1 { max-width: 640px; margin-bottom: 24px; font-size: clamp(46px,5.7vw,78px); line-height: .98; letter-spacing: -.055em; }.hero-copy h1 em { color: #1e63cf; font-style: normal; }.hero-lead { max-width: 610px; margin-bottom: 26px; color: #5a687d; font-size: 18px; line-height: 1.65; }.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }.hero-assurances { display: flex; gap: 18px; margin-top: 22px; color: #66748a; font-size: 12px; flex-wrap: wrap; }.hero-assurances span::first-letter { color: #16825e; }.product-window { overflow: hidden; border: 1px solid #cad5e3; border-radius: 14px; background: #fff; box-shadow: 0 32px 80px rgba(27,53,88,.17),0 6px 20px rgba(27,53,88,.08); transform: perspective(1200px) rotateY(-2deg) rotateX(1deg); }.window-bar { height: 50px; display: flex; gap: 8px; align-items: center; padding: 0 14px; color: #687990; background: #14233a; font-size: 12px; }.window-bar .mini-brand { width: 27px; height: 27px; display: grid; place-items: center; margin-right: 4px; border-radius: 6px; color: #172239; background: #f4a826; font-weight: 900; }.window-bar > span { margin-right: auto; color: #d8e2ee; font-weight: 700; }.window-bar > i { width: 7px; height: 7px; border-radius: 50%; background: #3b4d66; }.window-body { min-height: 455px; display: grid; grid-template-columns: 54px 1fr; }.window-body > aside { display: grid; align-content: start; gap: 10px; padding: 18px 9px; color: #8291a6; background: #1c2e48; }.window-body > aside b { width: 35px; height: 34px; display: grid; place-items: center; border-radius: 6px; font-size: 15px; }.window-body > aside b.selected { color: #fff; background: #304a6c; }.preview-content { padding: 22px; background: #f5f8fc; }.preview-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }.preview-head small,.preview-head strong,.preview-head span { display: block; }.preview-head small { color: #2267dc; font-size: 9px; font-weight: 850; letter-spacing: .08em; }.preview-head strong { margin: 5px 0; font-size: 17px; }.preview-head span { color: #718096; font-size: 11px; }.preview-head button { min-height: 32px; padding: 0 10px; border: 0; border-radius: 5px; color: #fff; background: #2267dc; font-size: 10px; font-weight: 700; }.preview-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin: 17px 0; }.preview-stats div { padding: 11px; border: 1px solid #e0e7f0; border-radius: 7px; background: #fff; }.preview-stats span,.preview-stats b { display: block; }.preview-stats span { color: #718096; font-size: 9px; }.preview-stats b { margin-top: 3px; font-size: 18px; }.preview-card { overflow: hidden; border: 1px solid #dce3ed; border-radius: 8px; background: #fff; }.preview-card header { display: flex; justify-content: space-between; padding: 12px 13px; border-bottom: 1px solid #e4e9f0; font-size: 11px; }.preview-card header span { color: #718096; }.preview-card > div { display: grid; grid-template-columns: 28px 1fr auto; gap: 9px; align-items: center; padding: 9px 12px; border-bottom: 1px solid #edf0f4; }.preview-card > div:last-child { border: 0; }.trade-dot { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 5px; font-size: 9px; font-style: normal; font-weight: 850; }.trade-dot.plumbing { color:#155cae;background:#eaf2ff}.trade-dot.hvac {color:#087061;background:#e4f6f1}.trade-dot.electrical{color:#8b5c00;background:#fff2d7}.trade-dot.fire{color:#a23d3d;background:#ffeded}.preview-card p { margin: 0; }.preview-card p b,.preview-card p span { display: block; }.preview-card p b { font-size: 11px; }.preview-card p span { margin-top: 2px; color: #7b8798; font-size: 9px; }.preview-card em { padding: 4px 6px; border-radius: 10px; font-size: 8px; font-style: normal; font-weight: 800; }.preview-card em.good { color:#087054;background:#e8f6ef}.preview-card em.watch{color:#94600c;background:#fff3df}.preview-card em.action{color:#ac3f3f;background:#fff0ef}.preview-launch { width: 100%; min-height: 39px; margin-top: 14px; border: 1px solid #cfdaea; border-radius: 7px; color: #1d5fbf; background: #fff; font-size: 12px; font-weight: 750; cursor: pointer; }.role-section { padding: 90px clamp(22px,7vw,105px) 100px; background: #fff; }.section-intro { max-width: 720px; margin: 0 auto 43px; text-align: center; }.section-intro .home-eyebrow { justify-content: center; }.section-intro h2,.home-cta h2 { margin-bottom: 13px; font-size: clamp(30px,4vw,45px); line-height: 1.08; letter-spacing: -.04em; }.section-intro > p:last-child { color: #68758a; font-size: 16px; line-height: 1.6; }.role-cards { max-width: 1120px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 0 auto; }.role-card { position: relative; overflow: hidden; padding: 34px; border: 1px solid #dce4ef; border-radius: 12px; }.role-card.gc-card { background: #f5f8fd; }.role-card.sub-card { background: #fffaf0; border-color: #efe0bd; }.role-number { position: absolute; top: 20px; right: 24px; color: rgba(37,65,99,.1); font-size: 60px; font-weight: 900; }.role-icon { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: #234b78; font-size: 20px; }.sub-card .role-icon { color: #352407; background: #f2a62d; }.role-card h3 { margin: 24px 0 10px; font-size: 23px; }.role-card > p { max-width: 470px; color: #647186; font-size: 15px; line-height: 1.6; }.role-card ul { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; padding: 19px 0; margin: 19px 0; border-top: 1px solid #dfe6ef; border-bottom: 1px solid #dfe6ef; list-style: none; }.role-card li { font-size: 13px; }.role-card li::before { content: '✓'; margin-right: 7px; color: #16825e; font-weight: 800; }.role-card button { padding: 0; border: 0; color: #1f5daa; background: transparent; font-weight: 800; cursor: pointer; }.workflow-section { padding: 90px clamp(22px,7vw,105px); color: #fff; background: #14233a; }.workflow-section .section-intro h2 { color: #fff; }.home-eyebrow.light { color: #aebfd5; }.workflow-steps { max-width: 1120px; display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 0 auto; background: #31445e; }.workflow-steps article { min-height: 190px; display: flex; gap: 17px; padding: 28px; background: #1b2e48; }.workflow-steps article > b { width: 35px; height: 35px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #58708f; border-radius: 50%; color: #f4aa2d; }.workflow-steps h3 { margin: 5px 0 10px; color: #fff; }.workflow-steps p { margin: 0; color: #aebbd0; line-height: 1.6; }.home-cta { display: flex; justify-content: space-between; align-items: center; gap: 35px; padding: 70px clamp(22px,7vw,105px); background: #eef4fc; }.home-cta h2 { max-width: 690px; margin: 0; }.home-footer { min-height: 100px; display: flex; align-items: center; gap: 30px; padding: 25px clamp(22px,5vw,74px); color: #6b788b; background: #fff; }.home-footer > p { margin: 0 auto 0 0; }.home-footer > div { display: flex; gap: 22px; align-items: center; }.home-footer a,.home-footer button { border: 0; color: #56647a; background: transparent; font-size: 13px; text-decoration: none; cursor: pointer; }.auth-dialog { width: min(450px,calc(100% - 28px)); }.auth-options { display: flex; justify-content: space-between; align-items: center; }.auth-options label { display: flex; grid-template-columns: auto 1fr; align-items: center; }.auth-options button,.auth-switch button { padding: 0; border: 0; color: #2267dc; background: transparent; font-size: 12px; cursor: pointer; }.auth-submit { width: 100%; min-height: 46px; }.auth-demo-note { padding: 10px; margin: 0; border-radius: 6px; color: #65738a; background: #f1f4f8; font-size: 11px; line-height: 1.5; text-align: center; }.auth-switch { margin: 0; color: #6d798b; font-size: 12px; text-align: center; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, [role="button"], [role="link"] { touch-action: manipulation; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; color: #dce5f2; background: var(--navy); padding: 22px 14px 16px; z-index: 20; }
.brand { display: flex; gap: 11px; align-items: center; padding: 0 8px 24px; border-bottom: 1px solid rgba(255,255,255,.09); }
.brand-mark { width: 36px; height: 36px; border-radius: 9px; display: grid; place-items: center; background: #f4a826; color: #172239; font-weight: 900; letter-spacing: -.04em; }
.brand strong, .brand span { display: block; }
.brand strong { color: #fff; font-size: 16px; }
.brand span { margin-top: 2px; color: #8596ad; font-size: 12px; }
.main-nav { padding-top: 22px; }
.nav-item { width: 100%; min-height: 43px; display: flex; align-items: center; gap: 12px; padding: 0 12px; margin: 3px 0; border: 0; border-radius: 8px; color: #aebbcf; background: transparent; text-align: left; text-decoration: none; font: inherit; cursor: pointer; transition: .18s ease; }
.nav-item[hidden] { display: none; }
.gc-simple-only[hidden], .gc-detailed-only[hidden], #tradeFilterLabel[hidden], #gcStateFilterLabel[hidden], #contractorMoreFilters[hidden], #contractorColumnQualification[hidden], #contractorColumnBidHistory[hidden], #contractorRows td[hidden], #manufacturerFilters[hidden], #manufacturerFields[hidden], #representedManufacturerField[hidden] { display: none !important; }
.manufacturer-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; padding:0 0 18px; }
.manufacturer-filters label { display:grid; gap:6px; flex:1 1 175px; font-size:14px; }
.manufacturer-filters select { width:100%; min-width:0; padding:10px 12px; border:1px solid var(--line,#d9dee5); border-radius:6px; background:var(--surface,#fff); color:inherit; font:inherit; }
.manufacturer-fields { display:grid; gap:16px; padding:18px 0; border-block:1px solid var(--line,#d9dee5); }
.manufacturer-fields small { display:block; font-size:13px; font-weight:400; color:var(--muted,#64748b); line-height:1.5; margin-top:4px; }
.manufacturer-checklist { max-height:190px; overflow:auto; padding:8px; border:1px solid var(--line,#d9dee5); border-radius:6px; margin-top:6px; }
.manufacturer-checklist label { display:flex !important; align-items:center; gap:8px; padding:6px; font-size:14px; font-weight:400; }
.manufacturer-checklist input { width:16px !important; height:16px; flex:none; }
.manufacturer-state-picker summary { cursor:pointer; padding:10px 0; font-size:14px; }
.manufacturer-type-label { display:block; color:var(--muted,#64748b); font-size:13px; font-weight:400; margin-top:5px; }
.add-sub-layout.gc-simple-form { grid-template-columns:minmax(0,720px); justify-content:center; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-item.active { color: #fff; background: #243956; box-shadow: inset 3px 0 #f4a826; }
.nav-item > span { width: 18px; color: #91a5c1; font-size: 18px; text-align: center; }
.nav-item b { margin-left: auto; min-width: 23px; padding: 2px 6px; border-radius: 20px; color: #b9c7d8; background: rgba(255,255,255,.08); font-size: 11px; text-align: center; }
.nav-item b.unread { color: #172239; background: #f4a826; }
.nav-subitem { min-height:36px; padding-left:35px; margin-top:-2px; font-size:12px; }.nav-subitem > span { width:12px; font-size:13px; }.nav-subitem b { min-width:auto; padding:2px 6px; font-size:9px; text-transform:uppercase; }
.sidebar-footer { margin-top: auto; }
.account-card { display: grid; grid-template-columns: 34px minmax(0, 1fr) 34px; gap: 8px; align-items: center; min-width: 0; padding: 15px 8px 2px; margin-top: 10px; border-top: 1px solid rgba(255,255,255,.09); }
.avatar { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #375479; font-size: 12px; font-weight: 700; }
.account-card > div { min-width: 0; }
.account-card strong, .account-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-card strong { color: #fff; font-size: 13px; }.account-card span { margin-top: 3px; color: #8494aa; font-size: 11px; }
.account-card button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; margin: 0; border: 0; border-radius: 4px; color: #aec0cf; background: transparent; font-size: 18px; cursor: pointer; }
.account-card button:hover { color: #fff; background: rgba(255,255,255,.09); }
.account-card button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
main { min-width: 0; }
.topbar { height: 72px; display: flex; align-items: center; padding: 0 32px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.93); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(10px); }
.crumb { display: flex; align-items: center; gap: 9px; }.crumb span { color: var(--muted); }.crumb span::after { content: '/'; margin-left: 9px; color: #b4bdca; }.crumb strong { font-size: 15px; }
.top-actions { display: flex; gap: 10px; align-items: center; margin-left: auto; }
.primary, .outline, .filter-btn, .text-btn, .icon-btn { min-height: 39px; border-radius: 7px; cursor: pointer; font-weight: 650; }
.primary { padding: 0 16px; border: 1px solid #1a58c5; color: #fff; background: var(--blue); box-shadow: 0 4px 12px rgba(34,103,220,.18); }
.primary:hover { background: #1757c4; }
.outline, .filter-btn { padding: 0 13px; border: 1px solid var(--line); background: #fff; }
.outline:hover, .filter-btn:hover { border-color: #b8c3d2; background: #fafcff; }
.text-btn { padding: 0; border: 0; color: var(--blue); background: transparent; }
.icon-btn { width: 40px; position: relative; border: 1px solid var(--line); background: #fff; font-size: 19px; }.icon-btn i { position: absolute; top: 8px; right: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 22px; }
.sidebar-scrim { display:none; }
.workspace { max-width: 1500px; margin: 0 auto; padding: 30px 32px 46px; }
.view { display: none; animation: appear .2s ease; }.view.active { display: block; }
@keyframes appear { from { opacity: .25; transform: translateY(4px); } to { opacity: 1; transform: none; } }
h1,h2,h3,p { margin-top: 0; } h1 { margin-bottom: 8px; font-size: clamp(27px, 3vw, 34px); line-height: 1.12; letter-spacing: -.035em; } h2 { margin-bottom: 5px; font-size: 18px; letter-spacing: -.015em; } h3 { font-size: 17px; }
.eyebrow { margin-bottom: 7px; color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.welcome-row, .page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 25px; }
.welcome-row #dashboardGreeting { margin: 5px 0 4px; font-size: clamp(27px, 3vw, 34px); line-height: 1.12; letter-spacing: -.035em; }
.summary-heading-link { border-radius: 4px; }
.summary-heading-link:hover { box-shadow: none; transform: none; }
.welcome-row > div > p:last-child, .page-heading > div > p:last-child { margin-bottom: 0; color: var(--muted); font-size: 16px; }
.weather-note { min-width: 225px; display: flex; gap: 10px; align-items: center; padding: 13px 15px; border: 1px solid #f1d7a7; border-radius: 9px; background: #fffbf2; }.weather-note > span { color: #ef991d; }.weather-note strong,.weather-note small { display: block; }.weather-note small { margin-top: 3px; color: var(--muted); }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-bottom: 18px; }
.stat-card { min-height: 128px; display: flex; gap: 15px; align-items: flex-start; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.dashboard-link { cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease; }
.dashboard-link:hover { border-color: #b6c9e7; box-shadow: 0 10px 30px rgba(29,48,77,.11); transform: translateY(-1px); }
.dashboard-link:focus-visible { outline: 3px solid rgba(34,103,220,.25); outline-offset: 2px; }
.attention-item.dashboard-link:hover, .activity-feed > .dashboard-link:hover { background: #f8fbff; box-shadow: none; transform: none; }
.stat-icon { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; font-size: 18px; font-weight: 800; }.stat-icon.blue { color: var(--blue); background: var(--blue-soft); }.stat-icon.amber { color: var(--amber); background: var(--amber-soft); }.stat-icon.green { color: var(--green); background: var(--green-soft); }.stat-icon.red { color: var(--red); background: var(--red-soft); }
.stat-card span,.stat-card strong,.stat-card small { display: block; }.stat-card span { color: var(--muted); font-size: 13px; }.stat-card strong { margin: 3px 0 5px; font-size: 29px; letter-spacing: -.04em; }.stat-card small { color: #7f8a9a; }.stat-card em { color: var(--green); font-style: normal; font-weight: 700; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, .8fr); gap: 18px; margin-bottom: 18px; }
.panel { border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.panel-head { min-height: 77px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 20px; border-bottom: 1px solid var(--line); }.panel-head h2 { margin-bottom: 4px; }.panel-head p { margin: 0; color: var(--muted); font-size: 13px; }
.deadline-row { width: 100%; display: grid; grid-template-columns: 48px minmax(210px,1fr) 145px 60px; gap: 14px; align-items: center; padding: 15px 20px; border: 0; border-bottom: 1px solid #edf0f5; background: #fff; text-align: left; cursor: pointer; }.deadline-row:hover { background: #fafcff; }.deadline-row:last-child { border-bottom: 0; }
.date-box { width: 45px; padding: 6px 0; border: 1px solid #d8e0eb; border-radius: 7px; text-align: center; }.date-box b,.date-box span { display: block; }.date-box b { font-size: 18px; line-height: 1; }.date-box span { margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 800; }
.deadline-main strong,.deadline-main span { display: block; }.deadline-main span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.bid-progress span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; }.bid-progress div,.coverage > span { height: 5px; display: block; overflow: hidden; border-radius: 8px; background: #e6ebf2; }.bid-progress i,.coverage i { height: 100%; display: block; background: var(--blue); }
.days { justify-self: end; color: var(--muted); font-size: 12px; font-weight: 700; }.days.urgent { color: var(--red); }
.attention-item { display: grid; grid-template-columns: 39px 1fr auto; gap: 11px; align-items: center; padding: 14px 18px; border-bottom: 1px solid #edf0f5; }.attention-item strong,.attention-item span { display: block; }.attention-item > div span { margin-top: 4px; color: var(--muted); font-size: 11px; }
.company-logo { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; font-size: 11px; font-weight: 850; }.company-logo.navy { color: #dcecff; background: #25466f; }.company-logo.teal { color: #dbfff7; background: #26796e; }.company-logo.orange { color: #fff1db; background: #a85d15; }.company-logo.redish { color: #ffe8e7; background: #a44848; }.company-logo.purple { color: #f1eaff; background: #66509a; }.company-logo.large { width: 45px; height: 45px; font-size: 13px; }
.company-logo.trade-mark svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.company-logo img { width:100%; height:100%; display:block; border-radius:inherit; object-fit:contain; background:#fff; }
.company-logo-upload { display:grid; grid-template-columns:46px 1fr auto; gap:11px; align-items:center; padding:10px; border:1px solid var(--line); background:#f8f9f6; }
.company-logo-upload .company-logo { width:46px; height:46px; }
.company-logo-upload label { gap:3px; margin:0; }
.company-logo-upload label small { color:var(--muted); font-size:10px; font-weight:400; }
.company-logo-upload input[type="file"] { min-height:34px; padding:5px; font-size:11px; }
.company-logo-upload .text-btn { white-space:nowrap; }
.bid-invite-contact { grid-template-columns:auto 1fr; align-items:center; gap:8px !important; color:var(--ink); font-size:12px; font-weight:600; }
.bid-invite-contact input { width:16px !important; min-height:16px !important; margin:0; }
.additional-contacts { border:1px solid var(--line); background:#fff; }
.additional-contacts-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px; background:#f7f8f5; }
.additional-contacts-head strong,.additional-contacts-head small { display:block; }
.additional-contacts-head strong { font-size:12px; }
.additional-contacts-head small { margin-top:2px; color:var(--muted); font-size:10px; }
.additional-contacts-head button { min-height:30px; padding:0 9px; border:1px solid var(--line); color:var(--blue); background:#fff; font-size:11px; font-weight:700; cursor:pointer; }
.additional-contact-card { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:10px; border-top:1px solid var(--line); }
.additional-contact-card label { gap:3px !important; font-size:11px; }
.additional-contact-card .contact-invite-setting { grid-column:1 / -1; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:8px; }
.additional-contact-card .contact-invite-setting > span { display:flex; align-items:center; gap:7px; }
.additional-contact-card .contact-invite-setting input { width:15px !important; min-height:15px !important; margin:0; }
.additional-contact-card .remove-contact { border:0; color:#9b352f; background:transparent; font-size:11px; cursor:pointer; }
.additional-contact-card .remove-location { border:0; color:#9b352f; background:transparent; font-size:11px; cursor:pointer; }
.primary-contact-title { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.company-details-dialog { width:min(760px,calc(100vw - 28px)); max-height:calc(100dvh - 28px); padding:24px; overflow:auto; }
.company-details-dialog .dialog-head { gap:16px; }
.company-details-dialog .dialog-head > div { min-width:0; overflow-wrap:anywhere; }
.company-details-body { display:grid; gap:18px; max-height:65vh; padding:4px 2px 8px; overflow:auto; }
.company-details-body section { padding:14px; border:1px solid var(--line); background:#fff; }
.company-details-body h3 { margin:0 0 11px; font-size:16px; }
.company-details-body dl { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0; }
.company-details-body dl div { min-width:0; }
.company-details-body .manufacturer-brand-list { grid-column:1/-1; }
.manufacturer-research { margin-top:16px; padding-top:14px; border-top:1px solid var(--line); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.manufacturer-research h4 { margin:0 0 7px; }
.manufacturer-research h5 { margin:12px 0 4px; font-size:13px; }
.manufacturer-research p { margin:7px 0; }
.manufacturer-source-links { margin:9px 0; padding-left:19px; }
.manufacturer-source-links li { margin:5px 0; }
.manufacturer-research details { margin-top:12px; }
.manufacturer-research summary { cursor:pointer; font-weight:600; }
.manufacturer-territory-scroll { overflow:auto; margin-top:10px; max-height:320px; }
.manufacturer-territory-scroll table { width:100%; min-width:430px; border-collapse:collapse; font-size:12px; }
.manufacturer-territory-scroll th,.manufacturer-territory-scroll td { padding:7px; border-bottom:1px solid var(--line); white-space:normal; vertical-align:top; text-align:left; }
.company-details-body dt { color:var(--muted); font-size:12px; font-weight:600; }
.company-details-body dd { margin:4px 0 0; overflow-wrap:anywhere; font-size:14px; line-height:1.5; }
.company-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.company-detail-item { padding:11px; border:1px solid var(--line); background:var(--br-panel,#fafaf7); }
.company-detail-item strong,.company-detail-item span { display:block; overflow-wrap:anywhere; }
.company-detail-item strong { font-size:14px; }
.company-detail-item strong em { display:inline-flex; margin-left:7px; padding:2px 6px; color:var(--blue); background:var(--blue-soft); font-size:10px; font-style:normal; font-weight:600; }
.company-detail-item span { margin-top:4px; color:var(--muted); font-size:13px; line-height:1.5; }
.company-details-empty { margin:0; color:var(--muted); font-size:12px; }
.company-name-button { padding:0; border:0; border-radius:2px; color:inherit; background:transparent; font:inherit; text-align:left; cursor:pointer; }
.company-name-button:hover { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.company-name-button:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
@media (max-width:560px) {
  .company-details-body dl,.company-detail-grid { grid-template-columns:minmax(0,1fr); }
}
#contractorRows tr[data-private-gc="true"] { cursor:pointer; }
#contractorRows .contractor-phone { white-space:nowrap; font-variant-numeric:tabular-nums; }
#contractorRows .contractor-email { overflow-wrap:anywhere; }
#contractors-view .gc-roster-table { overflow-x:auto; }
#contractors-view .gc-roster-table table { table-layout:fixed; min-width:1100px; }
#contractors-view .gc-roster-table th:first-child,
#contractors-view .gc-roster-table th:last-child { width:44px; }
#contractors-view .gc-roster-table td { overflow-wrap:anywhere; }
#contractors-view .gc-roster-table .company-cell > div { min-width:0; }
#contractors-view .gc-roster-table .company-logo { flex-shrink:0; }
#contractors-view .gc-roster-table .company-name-button { max-width:100%; overflow-wrap:anywhere; }
#contractors-view .gc-roster-table .contractor-phone { white-space:normal; }
#contractors-view .gc-roster-table td a { white-space:nowrap; }
.record-section-label { display:flex; align-items:end; justify-content:space-between; gap:12px; padding-top:5px; border-top:1px solid var(--line); }
.record-section-label strong { font-size:12px; }
.record-section-label small { color:var(--muted); font-size:10px; }
.location-card { grid-template-columns:1fr 1.35fr; }
.location-card label:nth-child(5) { grid-column:1 / 2; }
.recipient-option.contact-recipient { grid-template-columns:auto 36px 1fr; }
.recipient-option.contact-recipient .company-logo { align-self:start; }
.recipient-option.contact-recipient small,.recipient-option.contact-recipient em { display:block; margin-top:3px; color:var(--muted); font-size:11px; font-style:normal; font-weight:500; }
.risk,.status { display: inline-flex; align-items: center; min-height: 25px; padding: 0 9px; border-radius: 20px; font-size: 11px; font-weight: 750; white-space: nowrap; }.risk.medium,.status.review { color: #8a5900; background: var(--amber-soft); }.risk.caution,.status.expiring { color: #b03d35; background: var(--red-soft); }.risk.new,.status.planning { color: #1a5fbb; background: var(--blue-soft); }.status.qualified,.status.bidding { color: #0b7150; background: var(--green-soft); }.status.missing { color: #657083; background: #eef1f5; }.status.leveling { color: #694aad; background: #f1ecff; }
.quick-rule { display: flex; gap: 10px; padding: 14px 17px; margin: 14px; border-radius: 8px; color: #34506f; background: #eef5ff; }.quick-rule > span { font-size: 20px; }.quick-rule strong { font-size: 12px; }.quick-rule p { margin: 4px 0 0; font-size: 11px; line-height: 1.45; }
.activity-feed { display: grid; grid-template-columns: repeat(3, 1fr); }.activity-feed > div { display: flex; gap: 10px; padding: 17px 20px; border-right: 1px solid var(--line); }.activity-feed > div:last-child { border: 0; }.activity-feed p { margin: 0; line-height: 1.4; }.activity-feed small { display: block; margin-top: 5px; color: var(--muted); }.activity-dot { width: 8px; height: 8px; flex: 0 0 auto; margin-top: 6px; border-radius: 50%; }.activity-dot.green { background: var(--green); }.activity-dot.blue { background: var(--blue); }.activity-dot.amber { background: #d98a16; }
.toolbar,.directory-filters { display: flex; gap: 10px; align-items: end; padding: 14px; margin-bottom: 15px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.search-box { min-height: 41px; display: flex; gap: 8px; align-items: center; padding: 0 12px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }.search-box:focus-within { border-color: #8eafe7; box-shadow: 0 0 0 3px #e8f1ff; }.search-box input { width: 230px; border: 0; outline: 0; background: transparent; }.search-box.wide { flex: 1; }.search-box.wide input { width: 100%; }.directory-filters label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; font-weight: 700; }.directory-filters select, .form-grid input, dialog input, dialog select, dialog textarea, .settings-card input, .decision-controls select { min-height: 41px; padding: 0 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: #fff; outline: 0; }
.gc-state-filter-label { position:relative; display:grid; gap:5px; min-width:190px; color:var(--muted); font-size:11px; font-weight:700; }
.gc-state-filter summary { box-sizing:border-box; min-height:41px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 11px; border:1px solid var(--line); border-radius:7px; color:var(--ink); background:#fff; cursor:pointer; list-style:none; font-size:14px; font-weight:600; }
.gc-state-filter summary::-webkit-details-marker { display:none; }
.gc-state-filter summary::after { content:'⌄'; color:var(--muted); font-size:15px; }
.gc-state-filter[open] summary { border-color:#8eafe7; box-shadow:0 0 0 3px #e8f1ff; }
.gc-state-filter-menu { position:absolute; z-index:40; top:100%; right:0; width:240px; margin-top:6px; padding:9px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 12px 30px rgba(20,31,43,.16); }
.gc-state-options { max-height:280px; overflow:auto; display:grid; grid-template-columns:1fr 1fr; gap:2px 8px; }
.gc-state-options label { display:flex; align-items:center; gap:7px; min-height:32px; padding:4px 6px; border-radius:5px; color:var(--ink); font-size:13px; font-weight:500; cursor:pointer; }
.gc-state-options label:hover { background:var(--soft); }
.gc-state-options input { margin:0; }
.gc-state-clear { width:100%; margin-top:8px; padding:8px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); font-weight:700; cursor:pointer; }
.contractor-advanced-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:-6px 0 12px; padding:14px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.contractor-advanced-filters[hidden], .contractor-filter-chips[hidden] { display:none; }
.contractor-advanced-filters label { display:grid; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }
.contractor-advanced-filters select { min-width:0; min-height:41px; padding:0 11px; border:1px solid var(--line); border-radius:7px; color:var(--ink); background:#fff; }
.contractor-filter-chips { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-3px 0 12px; }
.contractor-filter-chip { display:inline-flex; align-items:center; gap:7px; min-height:32px; padding:4px 9px; border:1px solid #d7c5ad; border-radius:999px; color:#59442d; background:#fffaf2; font-size:13px; }
.contractor-filter-chip button { padding:0; border:0; color:#7a6247; background:transparent; font-size:17px; line-height:1; cursor:pointer; }
.contractor-clear-filters { min-height:32px; padding:4px 10px; border:0; color:#8a4f0b; background:transparent; font-weight:700; cursor:pointer; }
.project-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }.project-card { position: relative; overflow: hidden; padding: 19px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }.project-accent { position: absolute; top: 0; left: 0; bottom: 0; width: 4px; }.project-accent.blue { background: var(--blue); }.project-accent.amber { background: #dc8b1d; }.project-accent.teal { background: #228575; }.project-accent.purple { background: #7657af; }.project-top { display: flex; justify-content: space-between; }.project-top button,.kebab { border: 0; background: transparent; cursor: pointer; }.project-card h3 { margin: 18px 0 6px; }.project-card > p { color: var(--muted); }.project-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 14px 0; margin: 17px 0 12px; border-top: 1px solid var(--line); }.project-meta span,.project-meta strong { display: block; }.project-meta span { color: var(--muted); font-size: 11px; }.project-meta strong { margin-top: 4px; font-size: 13px; }.coverage { display: grid; grid-template-columns: 1fr 38px; gap: 10px; align-items: center; }.coverage b { color: var(--muted); font-size: 11px; }.project-card footer { display: flex; align-items: center; justify-content: space-between; margin-top: 18px; color: var(--muted); font-size: 12px; }
.contractor-row-menu { position: fixed; z-index: 1000; width: 178px; padding: 5px; border: 1px solid var(--line); border-radius: 7px; background: #fff; box-shadow: 0 10px 28px rgba(20, 31, 36, .18); }
.contractor-row-menu[hidden] { display: none; }
.contractor-row-menu button { width: 100%; padding: 10px 12px; border: 0; border-radius: 5px; background: transparent; color: var(--ink); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.contractor-row-menu button:hover, .contractor-row-menu button:focus-visible { background: #edf3f9; outline: none; }
.back-link { padding: 0; margin-bottom: 18px; border: 0; color: var(--blue); background: transparent; font-size: 13px; font-weight: 700; cursor: pointer; }.project-workspace-head { display: flex; justify-content: space-between; gap: 20px; align-items: center; }.project-identity { display: flex; gap: 14px; align-items: center; }.project-code { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: linear-gradient(145deg,#204a7b,#142c4c); font-weight: 850; }.project-title-line { display: flex; gap: 10px; align-items: center; }.project-title-line h1 { margin: 0; }.project-identity p { margin: 5px 0 0; color: var(--muted); }.project-head-actions { display: flex; gap: 9px; }.project-command-bar { display: grid; grid-template-columns: 1.45fr .7fr 1fr 1fr auto; gap: 0; margin: 21px 0 0; border: 1px solid var(--line); border-radius: 9px 9px 0 0; background: #fff; }.project-command-bar > div { padding: 13px 17px; border-right: 1px solid var(--line); }.project-command-bar span,.project-command-bar strong { display: block; }.project-command-bar span { color: var(--muted); font-size: 12px; }.project-command-bar strong { margin-top: 4px; font-size: 14px; }.project-command-bar .deadline-alert { color: var(--red); }.project-command-bar > button { width: 50px; }.project-tabs { display: flex; gap: 26px; padding: 0 17px; margin-bottom: 17px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 9px 9px; background: #fff; overflow-x: auto; }.project-tabs button { min-height: 49px; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; font-size: 13px; font-weight: 650; white-space: nowrap; cursor: pointer; }.project-tabs button.active { color: var(--blue); border-color: var(--blue); }.project-tabs button span { display: inline-flex; min-width: 19px; justify-content: center; padding: 2px 5px; margin-left: 4px; border-radius: 10px; background: #edf1f6; font-size: 10px; }.project-tab-panel { display: none; }.project-tab-panel.active { display: block; animation: appear .18s ease; }.project-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; margin-bottom: 16px; }.project-kpis article { padding: 17px; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }.project-kpis span,.project-kpis strong,.project-kpis small { display: block; }.project-kpis span { color: var(--muted); font-size: 12px; }.project-kpis strong { margin: 3px 0 6px; font-size: 25px; }.project-kpis small { color: var(--muted); font-size: 12px; }.mini-meter,.lane-meter { height: 5px; overflow: hidden; margin: 8px 0; border-radius: 8px; background: #e5ebf2; }.mini-meter i,.lane-meter i { height: 100%; display: block; background: var(--blue); }.project-work-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.75fr); gap: 16px; margin-bottom: 16px; }.package-lane { width: 100%; display: grid; grid-template-columns: 34px minmax(180px,1fr) minmax(80px,.6fr) 92px; gap: 12px; align-items: center; padding: 13px 18px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }.package-lane:hover { background: #fafcff; }.package-lane:last-child { border: 0; }.package-lane strong,.package-lane small { display: block; }.package-lane small { margin-top: 3px; color: var(--muted); font-size: 12px; }.trade-symbol { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 7px; font-size: 12px; font-weight: 850; }.trade-symbol.plumbing { color: #155cae; background: #eaf2ff; }.trade-symbol.hvac { color: #087061; background: #e4f6f1; }.trade-symbol.electrical { color: #8b5c00; background: #fff2d7; }.trade-symbol.fire { color: #a23d3d; background: #ffeded; }.trade-symbol.general { color: #6646a2; background: #f1ecff; }.coverage-state { display: inline-flex; width: fit-content; min-height: 25px; align-items: center; padding: 0 8px; border-radius: 15px; font-size: 11px; font-weight: 750; }.coverage-state.covered { color: var(--green); background: var(--green-soft); }.coverage-state.watch { color: var(--amber); background: var(--amber-soft); }.coverage-state.action { color: var(--red); background: var(--red-soft); }.project-side-stack { display: grid; gap: 14px; }.next-actions label { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: start; padding: 12px 15px; border-bottom: 1px solid var(--line); font-size: 13px; }.next-actions label:last-child { border: 0; }.next-actions label span { color: var(--muted); font-size: 11px; }.project-note { display: flex; gap: 11px; padding: 15px; border-color: #f0d3a4; background: #fffbf4; }.project-note > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #d78718; font-weight: 800; }.project-note p { margin: 5px 0 6px; color: #6e5b3d; font-size: 12px; line-height: 1.5; }.activity-table > div { display: grid; grid-template-columns: 35px 1fr auto; gap: 11px; align-items: center; padding: 13px 18px; border-bottom: 1px solid var(--line); }.activity-table > div:last-child { border: 0; }.activity-symbol { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 7px; font-size: 11px; font-weight: 800; }.activity-symbol.bid { color: var(--green); background: var(--green-soft); }.activity-symbol.doc { color: var(--blue); background: var(--blue-soft); }.activity-symbol.msg { color: var(--amber); background: var(--amber-soft); }.activity-table p { margin: 0; }.activity-table small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }.activity-table button { border: 0; color: var(--blue); background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }.section-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 17px 19px; border-bottom: 1px solid var(--line); }.section-toolbar h2 { margin-bottom: 4px; }.section-toolbar p { margin: 0; color: var(--muted); font-size: 12px; }.project-package-table { overflow-x: auto; }.project-package-table table { min-width: 800px; }.trade-name { display: flex; gap: 9px; align-items: center; }.message-count { border: 0; color: var(--blue); background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }.document-folders { display: grid; grid-template-columns: repeat(4,1fr); gap: 11px; padding: 17px; }.document-folders button { display: grid; grid-template-columns: 35px 1fr; column-gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: left; cursor: pointer; }.document-folders button:hover { border-color: #abc2e7; background: #fafcff; }.document-folders button > span { grid-row: 1 / 3; color: var(--blue); font-size: 22px; }.document-folders strong,.document-folders small { display: block; }.document-folders small { margin-top: 4px; color: var(--muted); font-size: 11px; }.document-log { padding: 0 17px 17px; }.document-log > div { display: grid; grid-template-columns: 39px 1fr auto 25px; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-bottom: 0; }.document-log > div:first-child { border-radius: 7px 7px 0 0; }.document-log > div:last-child { border-bottom: 1px solid var(--line); border-radius: 0 0 7px 7px; }.document-log > div > span { color: #a44040; font-size: 11px; font-weight: 800; }.document-log p { margin: 0; }.document-log small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }.document-log b { color: var(--muted); font-size: 11px; }.document-log button { border: 0; background: transparent; }.trade-message-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 18px; }.trade-message-grid > button { display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center; padding: 17px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: left; cursor: pointer; }.trade-message-grid > button:hover { border-color: #a5bee4; background: #fafcff; }.trade-message-grid strong,.trade-message-grid small { display: block; }.trade-message-grid small { margin-top: 4px; color: var(--muted); font-size: 12px; }.trade-message-grid i { color: var(--blue); font-size: 12px; font-style: normal; font-weight: 700; }.team-list > div { display: grid; grid-template-columns: 38px 1fr auto; gap: 11px; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--line); }.team-list > div:last-child { border: 0; }.team-list p { margin: 0; }.team-list small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }.team-list b { color: var(--muted); font-size: 12px; }.blue-avatar { background: #2e69af; }.amber-avatar { background: #9e681f; }
.map-note { display: flex; gap: 11px; align-items: center; padding: 12px 16px; margin-bottom: 14px; border: 1px solid #cadcf7; border-radius: 8px; background: #f1f6fe; }.map-note > span { color: var(--blue); font-size: 21px; }.map-note p { margin: 0; }.map-note small { color: var(--muted); }.map-note button { margin-left: auto; border: 0; color: var(--blue); background: transparent; font-weight: 700; cursor: pointer; }
.roster-context { display: flex; gap: 18px; align-items: center; padding: 13px 16px; margin-bottom: 14px; border: 1px solid #b9cdec; border-radius: 9px; background: #edf4ff; }.roster-context[hidden] { display: none; }.roster-context > button:first-child { min-height:38px; padding:0 14px; border:1px solid #a95e0c; border-radius:5px; color:#fff; background:#b9670e; box-shadow:0 5px 12px rgba(145,81,12,.18); font-weight:750; cursor:pointer; }.roster-context > button:first-child:hover { background:#985008; }.roster-context > button:first-child:focus-visible { outline:3px solid rgba(185,103,14,.25); outline-offset:2px; }.roster-context p { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; margin: 0 auto 0 0; color: var(--muted); font-size: 13px; }.roster-context p strong { color: var(--ink); }.roster-context .primary { white-space: nowrap; }
.roster-bulk-actions { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 12px; border:1px solid #e4c3bf; border-bottom:0; background:#fff5f3; }.roster-bulk-actions[hidden] { display:none; }.roster-bulk-actions strong { color:#7d2822; font-size:13px; }.danger-action { min-height:38px; padding:0 14px; border:1px solid #9d3028; border-radius:5px; color:#fff; background:#b53a31; font-weight:800; cursor:pointer; }.danger-action:hover { background:#962b24; }.danger-action:disabled { cursor:not-allowed; opacity:.55; }.confirm-icon.danger { color:#fff; background:#b53a31; }
.table-wrap { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: var(--shadow); } table { width: 100%; border-collapse: collapse; } th { height: 42px; color: var(--muted); background: #f7f9fc; font-size: 11px; text-align: left; text-transform: uppercase; letter-spacing: .04em; } th,td { padding: 11px 13px; border-bottom: 1px solid var(--line); } td { font-size: 13px; }.company-cell { display: flex; gap: 10px; align-items: center; }.company-cell strong,.company-cell small { display: block; }.company-cell small { margin-top: 4px; color: var(--muted); }.table-footer { display: flex; justify-content: space-between; align-items: center; padding: 12px 15px; color: var(--muted); font-size: 12px; }.table-footer button { min-width: 29px; min-height: 28px; margin-left: 4px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.qual-summary { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 16px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.qual-summary div { padding: 16px 18px; border-right: 1px solid var(--line); }.qual-summary div:last-child { border: 0; }.qual-summary span,.qual-summary strong { display: block; }.qual-summary span { color: var(--muted); font-size: 12px; }.qual-summary strong { margin-top: 3px; font-size: 22px; }
.qual-layout { display: grid; grid-template-columns: 320px minmax(0, 1fr); min-height: 615px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; box-shadow: var(--shadow); }.queue-panel { border-right: 1px solid var(--line); }.queue-head { display: flex; align-items: center; justify-content: space-between; padding: 17px; }.queue-head h2 { margin: 0; }.queue-head span { color: var(--muted); font-size: 12px; }.queue-tabs { display: grid; grid-template-columns: 1fr 1fr; padding: 0 15px 12px; }.queue-tabs button { min-height: 35px; border: 1px solid var(--line); background: #fff; font-size: 12px; }.queue-tabs button:first-child { border-radius: 6px 0 0 6px; }.queue-tabs button:last-child { border-radius: 0 6px 6px 0; }.queue-tabs button.active { color: var(--blue); background: var(--blue-soft); }.queue-item { width: 100%; display: grid; grid-template-columns: 38px 1fr auto; gap: 10px; align-items: center; padding: 14px 16px; border: 0; border-top: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }.queue-item:hover,.queue-item.active { background: #f5f8fc; }.queue-item.active { box-shadow: inset 3px 0 var(--blue); }.queue-item strong,.queue-item small { display: block; }.queue-item small { margin-top: 4px; color: var(--muted); font-size: 10px; }.queue-item i { color: #a2acba; font-size: 20px; font-style: normal; }
.review-head { min-height: 79px; display: flex; gap: 11px; align-items: center; padding: 15px 20px; }.review-head h2 { margin-bottom: 4px; }.review-head p { margin: 0; color: var(--muted); font-size: 12px; }.review-head .status { margin-left: auto; }.review-head > button { border: 0; background: transparent; }.review-tabs { display: flex; gap: 23px; padding: 0 20px; border-bottom: 1px solid var(--line); overflow-x: auto; }.review-tabs button { min-height: 44px; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; white-space: nowrap; }.review-tabs button.active { color: var(--blue); border-color: var(--blue); font-weight: 700; }.review-body { padding: 20px; background: #fafbfd; }.readiness-card { display: flex; gap: 20px; align-items: center; padding: 17px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }.readiness-score { width: 108px; flex: 0 0 auto; padding-right: 18px; border-right: 1px solid var(--line); text-align: center; }.readiness-score strong,.readiness-score span { display: block; }.readiness-score strong { color: var(--blue); font-size: 26px; }.readiness-score span { color: var(--muted); font-size: 10px; }.readiness-card > div:last-child { flex: 1; }.readiness-card h3 { margin-bottom: 5px; }.readiness-card p { margin-bottom: 12px; color: var(--muted); font-size: 12px; }.meter { height: 6px; overflow: hidden; border-radius: 10px; background: #e8edf4; }.meter i { height: 100%; display: block; background: var(--blue); }.risk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin: 13px 0; }.risk-card { display: flex; gap: 11px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }.risk-icon { width: 28px; height: 28px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; font-weight: 800; }.risk-icon.good { color: var(--green); background: var(--green-soft); }.risk-icon.warning { color: var(--amber); background: var(--amber-soft); }.risk-icon.neutral { color: var(--muted); background: #eef1f5; }.risk-card small,.risk-card strong { display: block; }.risk-card small { color: var(--muted); }.risk-card strong { margin-top: 3px; }.risk-card p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }.decision-block { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 16px; border: 1px solid #cbdcf5; border-radius: 8px; background: #f4f8ff; }.decision-block h3 { margin-bottom: 4px; }.decision-block p { margin: 0; color: var(--muted); font-size: 11px; }.decision-controls { display: flex; gap: 8px; }.audit-note { display: flex; gap: 10px; padding: 13px; margin-top: 12px; color: #4f5e73; }.audit-note p { margin: 0; }
.message-scope-bar { display: flex; gap: 18px; align-items: end; padding: 13px 15px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.message-scope-bar label { min-width: 250px; display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 750; }.message-scope-bar select { min-height: 39px; padding: 0 11px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: #fff; }.trade-filter { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }.trade-filter > span { margin-right: 3px; color: var(--muted); font-size: 12px; font-weight: 750; }.trade-filter button { min-height: 34px; padding: 0 10px; border: 1px solid var(--line); border-radius: 18px; color: #526176; background: #fff; font-size: 12px; font-weight: 700; cursor: pointer; }.trade-filter button.active { border-color: #9bb9e8; color: #174f9f; background: var(--blue-soft); }
.messages-layout { height: 680px; display: grid; grid-template-columns: 375px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }.threads { border-right: 1px solid var(--line); overflow-y: auto; }.threads .search-box { margin: 13px; }.thread-section-label { display: flex; justify-content: space-between; padding: 6px 15px 10px; color: var(--muted); font-size: 12px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }.thread-section-label b { min-width: 20px; text-align: center; }.thread { width: 100%; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 10px; padding: 15px; border: 0; border-top: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }.thread.active { background: #f2f6fc; box-shadow: inset 3px 0 var(--blue); }.thread strong { display: block; }.thread p { overflow: hidden; margin: 5px 0; color: var(--muted); font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }.thread small { color: #8993a3; font-size: 12px; }.thread > b { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--blue); font-size: 11px; }.thread-title,.conversation-title { display: flex; gap: 7px; align-items: center; justify-content: space-between; }.trade-tag { display: inline-flex; align-items: center; min-height: 22px; padding: 0 7px; border-radius: 4px; font-size: 11px; font-weight: 800; white-space: nowrap; }.trade-tag.fire { color: #a23d3d; background: #ffeded; }.trade-tag.plumbing { color: #155cae; background: #eaf2ff; }.trade-tag.electrical { color: #8b5c00; background: #fff2d7; }.trade-tag.hvac { color: #087061; background: #e4f6f1; }.thread-empty { display: none; padding: 35px 20px; color: var(--muted); text-align: center; }.thread-empty strong,.thread-empty span { display: block; }.thread-empty strong { color: var(--ink); }.thread-empty span { margin-top: 5px; font-size: 12px; }
.conversation { min-width: 0; display: grid; grid-template-rows: auto auto 1fr auto; }.conversation header { display: flex; align-items: center; justify-content: space-between; padding: 13px 17px; border-bottom: 1px solid var(--line); }.conversation header > div { display: flex; gap: 10px; align-items: center; }.conversation header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }.conversation-title { justify-content: flex-start; }.trade-context { min-height: 36px; display: flex; gap: 7px; align-items: center; padding: 0 18px; border-bottom: 1px solid #dce8f7; color: #58708e; background: #f2f7fd; font-size: 10px; }.trade-context strong { color: #25486f; }.trade-context i { width: 3px; height: 3px; border-radius: 50%; background: #8ca3bd; }.chat-body { overflow-y: auto; padding: 22px 28px; background: #f8fafc; }.day-label { margin-bottom: 18px; color: var(--muted); font-size: 11px; text-align: center; }.bubble { max-width: 66%; padding: 11px 13px 7px; margin-bottom: 13px; border-radius: 10px; }.bubble p { margin-bottom: 5px; line-height: 1.5; }.bubble span { display: block; color: #7e8998; font-size: 9px; text-align: right; }.bubble.incoming { border: 1px solid var(--line); border-bottom-left-radius: 2px; background: #fff; }.bubble.outgoing { margin-left: auto; border-bottom-right-radius: 2px; color: #fff; background: #265ea9; }.bubble.outgoing span { color: #c8d9ef; }.file-message { max-width: 72%; display: flex; gap: 10px; align-items: center; padding: 12px; margin-bottom: 13px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.file-message > span { padding: 7px; border-radius: 5px; color: #a53f3f; background: #ffeded; font-size: 10px; font-weight: 800; }.file-message strong,.file-message small { display: block; }.file-message small { margin-top: 3px; color: var(--muted); font-size: 9px; }.file-message button { margin-left: auto; border: 0; color: var(--blue); background: transparent; font-size: 11px; }.conversation footer { padding: 9px 16px 13px; border-top: 1px solid var(--line); }.composer-scope { display: flex; gap: 5px; align-items: center; padding-bottom: 7px; color: var(--muted); font-size: 9px; }.composer-scope strong { color: #34516f; }.conversation footer textarea { width: 100%; min-height: 52px; padding: 10px; border: 0; resize: none; outline: 0; }.conversation footer > div:last-child { display: flex; align-items: center; }.conversation footer > div:last-child > button:first-child { border: 0; background: transparent; }.conversation footer > div:last-child span { margin-left: 8px; color: var(--muted); font-size: 10px; }.conversation footer .primary { margin-left: auto; }
.settings-grid { display: grid; grid-template-columns: 220px minmax(0, 700px); gap: 18px; }.settings-grid > aside { display: grid; align-content: start; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.settings-grid > aside button { min-height: 45px; padding: 0 14px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; }.settings-grid > aside button.active { color: var(--blue); background: var(--blue-soft); font-weight: 700; }.settings-card { padding: 22px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.settings-card > p { color: var(--muted); }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.form-grid label, dialog label, .settings-card label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }.form-grid label.full { grid-column: 1 / -1; }.settings-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 18px; margin-top: 20px; border-top: 1px solid var(--line); }
dialog { width: min(520px, calc(100% - 28px)); padding: 0; border: 0; border-radius: 12px; color: var(--ink); box-shadow: 0 24px 80px rgba(13,29,50,.25); } dialog::backdrop { background: rgba(11,22,38,.55); backdrop-filter: blur(2px); } dialog form { display: grid; gap: 15px; padding: 22px; }.dialog-head { display: flex; justify-content: space-between; align-items: flex-start; }.dialog-head h2 { font-size: 23px; }.dialog-head button { border: 0; background: transparent; font-size: 25px; }.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 15px; border-top: 1px solid var(--line); } dialog textarea { min-height: 90px; padding: 10px; resize: vertical; }
.invite-dialog { width: min(620px, calc(100% - 28px)); }.recipient-field { position: relative; display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }.recipient-trigger { min-height: 43px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border: 1px solid #cfd8e5; border-radius: 7px; color: var(--ink); background: #fff; text-align: left; cursor: pointer; }.recipient-trigger.has-selection span { color: var(--blue); font-weight: 750; }.recipient-picker { overflow: hidden; border: 1px solid #c9d4e3; border-radius: 9px; background: #fff; box-shadow: 0 12px 30px rgba(25,47,77,.14); }.recipient-picker[hidden] { display: none; }.recipient-search { display: flex; gap: 8px; align-items: center; padding: 10px 12px; border-bottom: 1px solid var(--line); }.recipient-search span { color: #7b899d; font-size: 17px; }.recipient-search input { min-height: 34px; padding: 0; border: 0; outline: 0; }.recipient-tools,.recipient-footer { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 12px; background: #f6f8fb; }.recipient-tools { border-bottom: 1px solid var(--line); }.recipient-tools label { display: flex; grid-template-columns: auto 1fr; gap: 7px; align-items: center; color: var(--ink); }.recipient-tools > span { color: var(--blue); font-size: 12px; }.recipient-list { max-height: 250px; overflow-y: auto; }.recipient-option { display: grid; grid-template-columns: auto 36px 1fr auto; gap: 10px; align-items: center; padding: 11px 12px; border-bottom: 1px solid #edf0f4; color: var(--ink); cursor: pointer; }.recipient-option:hover { background: #f7faff; }.recipient-option[hidden] { display: none; }.recipient-option input { width: 16px; height: 16px; }.recipient-option .company-logo { width: 34px; height: 34px; }.recipient-option strong,.recipient-option small { display: block; }.recipient-option small { margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 500; }.recipient-option > em { color: #65748a; font-size: 12px; font-style: normal; font-weight: 600; }.recipient-empty { padding: 22px; color: var(--muted); text-align: center; }.recipient-footer { border-top: 1px solid var(--line); }.recipient-footer span { color: var(--ink); }.recipient-footer button { min-height: 32px; padding: 0 14px; border: 0; border-radius: 6px; color: #fff; background: var(--blue); font-weight: 750; cursor: pointer; }
.bid-invite-email-dialog { width:min(820px,calc(100% - 24px)); max-height:calc(100vh - 28px); padding:0; overflow:auto; }
.bid-invite-email-dialog .dialog-head p:last-child { margin:4px 0 0; color:var(--muted); font-size:12px; }
.bid-email-canvas { padding:24px; background:#e6e9e4; }
.bid-email-message { max-width:650px; margin:auto; border:1px solid #d7dcd5; color:#17231e; background:#fff; }
.bid-email-brand { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 20px; border-top:5px solid #26382c; }
.bid-email-brand > div { display:flex; align-items:center; gap:9px; }
.bid-email-brand img { width:38px; height:38px; object-fit:contain; }
.bid-email-brand strong { font-size:17px; }
.bid-email-brand > span { color:#69736c; font-size:11px; }
.bid-email-intro { padding:22px 20px 16px; border-top:1px solid #d7dcd5; }
.bid-email-eyebrow { margin:0 0 7px; color:#b7650c; font-size:11px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
.bid-email-intro h1 { margin:0; font-size:24px; }
.bid-email-intro h1 em { color:#b7650c; font-style:normal; }
.bid-email-location { margin:8px 0 0; color:#17231e; font-size:13px; font-weight:750; }
.bid-email-intro > p:last-child { margin:17px 0 0; font-size:13px; line-height:1.5; }
.bid-email-decision { margin:0 20px 18px; padding:16px; border-left:4px solid #b7650c; background:#f3f5f1; }
.bid-email-decision > div:first-child { display:flex; justify-content:space-between; gap:16px; }
.bid-email-decision h3 { margin:0; font-size:16px; }
.bid-email-decision > div:first-child > span { font-size:11px; text-align:right; }
.bid-email-decision > div:first-child strong { display:block; margin-top:3px; color:#b7650c; font-size:14px; }
.bid-email-decision > p { margin:3px 0 12px; color:#69736c; font-size:11px; }
.bid-email-intent-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.bid-email-intent-actions button { min-height:40px; border:0; color:#fff; font-weight:700; cursor:pointer; }
.bid-email-intent-actions button[data-bid-email-intent="bidding"] { background:#23845b; }
.bid-email-intent-actions button[data-bid-email-intent="review"] { background:#c47616; }
.bid-email-intent-actions button[data-bid-email-intent="pass"] { background:#b94a48; }
.bid-email-intent-actions button.selected { box-shadow:inset 0 0 0 2px #b7650c; }
#bidEmailDocuments { display:block; margin-top:18px; padding:12px 16px; color:#fff; background:#1769c2; font-size:13px; font-weight:750; text-align:center; text-decoration:none; }
#bidEmailDocuments { display:block; margin-top:10px; padding:12px; border:1px solid #1769c2; color:#fff; background:#1769c2; font-size:13px; font-weight:750; text-align:center; text-decoration:none; }
#bidEmailIntentResult { display:block; min-height:16px; margin-top:8px; color:#177451; font-size:11px; font-weight:700; }
.bid-email-snapshot { padding:0 20px 20px; }
.bid-email-snapshot > h3 { margin:0; padding-bottom:9px; border-bottom:1px solid #d7dcd5; font-size:16px; }
.bid-email-facts { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid #d7dcd5; }
.bid-email-facts p { margin:0; padding:12px 4px; }
.bid-email-facts p:nth-child(even) { padding-left:16px; border-left:1px solid #d7dcd5; }
.bid-email-facts span,.bid-email-project-info > span { display:block; margin-bottom:4px; color:#69736c; font-size:10px; letter-spacing:.05em; text-transform:uppercase; }
.bid-email-facts strong { font-size:12px; }
.bid-email-project-info { padding:14px 4px 3px; }
.bid-email-project-info > strong { display:block; margin-bottom:4px; font-size:11px; letter-spacing:.05em; }
.bid-email-project-heading { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:7px; }
.bid-email-project-heading > strong { font-size:11px; letter-spacing:.05em; }
.bid-email-project-heading > span { color:#69736c; font-size:10px; text-align:right; }
.bid-email-project-heading b { display:block; margin-top:3px; color:#b7650c; font-size:13px; }
.bid-email-project-info p { margin:6px 0; font-size:12px; line-height:1.5; }
.bid-email-project-info small { color:#17231e; font-weight:750; }
.bid-email-team { margin:14px 4px 0; padding-top:12px; border-top:1px solid #d7dcd5; }
.bid-email-team strong { display:block; font-size:11px; }
.bid-email-team p { margin:5px 0 0; color:#69736c; font-size:11px; line-height:1.5; white-space:pre-line; }
.bid-email-sender { display:grid; grid-template-columns:38px 1fr auto; gap:10px; align-items:center; padding:15px 20px; border-top:1px solid #d7dcd5; background:#f3f5f1; }
.bid-email-sender > span { width:38px; height:38px; display:grid; place-items:center; color:#fff; background:#26382c; font-size:12px; font-weight:750; }
.bid-email-sender strong,.bid-email-sender small { display:block; }
.bid-email-sender strong { font-size:12px; }.bid-email-sender small { margin-top:3px; color:#69736c; font-size:10px; }
.bid-email-sender a { color:#b7650c; font-size:11px; font-weight:700; text-decoration:none; }
.add-sub-dialog { width: min(1100px, calc(100% - 28px)); }.add-sub-dialog .dialog-head p:last-child { margin: 5px 0 0; color: var(--muted); font-size: 13px; }.add-sub-layout { display: grid; grid-template-columns: minmax(0,380px) minmax(0,1fr); gap: 18px; }.company-fields { min-width:0; display: grid; align-content: start; gap: 11px; }.company-fields input,.company-fields select { width:100%; min-width:0; min-height:38px; padding-left:9px; padding-right:9px; }.company-fields .form-grid { gap:10px; }.coverage-picker { min-width:0; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }.coverage-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border-bottom: 1px solid var(--line); background: #fff; }.coverage-head span,.coverage-head strong { display: block; }.coverage-head span { color: var(--muted); font-size: 12px; }.coverage-head strong { margin-top: 3px; font-size: 14px; }.coverage-head > div:last-child { display: flex; gap: 6px; }.coverage-head button { min-height: 30px; padding: 0 9px; border: 1px solid var(--line); border-radius: 5px; color: var(--blue); background: #fff; font-size: 12px; cursor: pointer; }.ma-map-shell { position: relative; min-height: 272px; display: grid; place-items: center; padding: 14px 18px 28px; background: radial-gradient(circle at 70% 45%,#e9f1fd,transparent 48%); }.ma-map-shell object { width: 100%; max-width: 500px; height: 245px; }.ma-map-shell > span { position: absolute; left: 0; right: 0; bottom: 8px; color: var(--muted); font-size: 11px; text-align: center; }.county-list { display: flex; gap: 6px; flex-wrap: wrap; padding: 10px 12px; border-top: 1px solid var(--line); background: #fff; }.county-list button { min-height: 28px; padding: 0 8px; border: 1px solid #bdc9d8; border-radius: 14px; color: #40536c; background: #fff; font-size: 11px; cursor: pointer; }.county-list button.selected { border-color: #1f64d4; color: #fff; background: #1f64d4; }.coverage-summary { padding: 11px 14px; border-top: 1px solid var(--line); background: #fff; }.coverage-summary span { color: var(--blue); font-size: 12px; font-weight: 800; }.coverage-summary p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.form-grid.three-fields { grid-template-columns:minmax(0,1.35fr) minmax(70px,.65fr) minmax(90px,.8fr); }.coverage-state-select { padding:10px 14px; border-bottom:1px solid var(--line); background:#fff; }.coverage-state-select select { margin-top:5px; }.us-map { width:100%; height:245px; }.us-map svg { width:100%; height:100%; }.us-map path { fill:#cfdbe9; stroke:#f8fbff; stroke-width:1.2; cursor:pointer; transition:fill .14s ease; }.us-map path:hover,.us-map path:focus { fill:#8fa9c8; outline:none; }.state-county-map { width:100%; height:235px; }.state-county-map path { fill:#dce7f4; stroke:#fff; stroke-width:1; cursor:pointer; }.state-county-map path:hover,.state-county-map path.selected { fill:#1f64d4; }.map-loading { color:var(--muted); font-size:13px; }
.form-grid.contact-fields { grid-template-columns:1fr 1fr; }
.us-map svg,.state-county-map { cursor:zoom-in; }
#subUnionLocalField[hidden], #subTradeField[hidden], #professionalServiceField[hidden] { display:none; }
.other-union-info { margin-top:3px; }.other-union-info[hidden] { display:none; }.other-union-info input { width:100%; min-height:38px; }
.union-trade-warning { margin:0; padding:11px 14px; border:1px solid #c83c3c; border-radius:3px; color:#a42020; background:#fff1f1; font-size:13px; font-weight:750; line-height:1.45; }.union-trade-warning[hidden] { display:none; }
.selected-proposal-total-row td { padding-top:15px; padding-bottom:15px; border-top:2px solid #344038; background:#f5f6f2; font-weight:800; }
.selected-proposal-total-row td:first-child { text-align:right; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-size:12px; }
#selectedProposalTotal { color:#0b5f49; font-size:17px; white-space:nowrap; }
.proposal-total-warning { display:flex; gap:10px; align-items:flex-start; margin:14px 18px 18px; padding:12px 14px; border:1px solid #dfb36d; border-radius:6px; color:#6f4811; background:#fff8e9; }
.proposal-total-warning > span { width:22px; height:22px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; color:#fff; background:#b86409; font-size:13px; font-weight:900; }
.proposal-total-warning p { margin:0; font-size:13px; line-height:1.45; }
.proposal-total-warning strong { display:block; margin-bottom:2px; color:#7b4100; }
.sub-required-label::after { content:' *'; color:#c62828; font-weight:900; }
.address-autocomplete { position:relative; }.address-suggestions { position:absolute; z-index:20; top:100%; left:0; right:0; overflow:auto; max-height:220px; border:1px solid #aebdd0; border-radius:7px; background:#fff; box-shadow:0 12px 28px rgba(22,43,72,.18); }.address-suggestions[hidden] { display:none; }.address-suggestions button { width:100%; padding:10px 12px; border:0; border-bottom:1px solid var(--line); color:var(--ink); background:#fff; text-align:left; cursor:pointer; }.address-suggestions button:last-child { border-bottom:0; }.address-suggestions button:hover,.address-suggestions button:focus { background:#edf4ff; outline:0; }.address-suggestions strong,.address-suggestions small { display:block; }.address-suggestions small { margin-top:3px; color:var(--muted); font-size:11px; }
.add-sub-dialog .company-fields { gap:8px; }
.add-sub-dialog .company-fields > label { gap:4px; }
.add-sub-dialog .company-fields .form-grid { gap:8px; }
@media (max-width:560px) { .form-grid.three-fields,.form-grid.contact-fields { grid-template-columns:1fr; } }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 50; max-width: 340px; padding: 13px 17px; border-radius: 8px; color: #fff; background: #17385f; box-shadow: 0 12px 35px rgba(15,34,58,.28); opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s ease; }.toast.show { opacity: 1; transform: none; }
dialog .toast { top:24px; left:50%; right:auto; bottom:auto; z-index:9999; transform:translate(-50%,-12px); }.toast.show { opacity:1; } dialog .toast.show { transform:translate(-50%,0); }
.comparison-panel { overflow: hidden; }
.comparison-toolbar > div:last-child { display: flex; gap: 8px; }
.comparison-workspace { display: grid; grid-template-columns: 270px minmax(0,1fr); min-height: 560px; border-top: 1px solid var(--line); }
.comparison-trades { padding: 14px 0; border-right: 1px solid var(--line); background: #f7f9fc; }
.comparison-trades-head { display: flex; justify-content: space-between; gap: 8px; padding: 0 15px 12px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.comparison-trades-head strong { color: #31577f; }
.comparison-trades > button { width: 100%; display: grid; grid-template-columns: 36px minmax(0,1fr) 25px; gap: 9px; align-items: center; padding: 12px 14px; border: 0; border-top: 1px solid #e5eaf1; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.comparison-trades > button:hover { background: #fff; }
.comparison-trades > button.active { color: #123d76; background: #fff; box-shadow: inset 3px 0 var(--blue); }
.comparison-trades > button div { min-width: 0; }
.comparison-trades > button strong,.comparison-trades > button small { display: block; }
.comparison-trades > button small { overflow: hidden; margin-top: 4px; color: var(--muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.comparison-trades > button > b { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 12px; color: #31577f; background: #e7eef8; font-size: 11px; }
.comparison-main { min-width: 0; padding: 18px; background: #fff; }
.comparison-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.comparison-heading > div { display: flex; align-items: center; gap: 11px; }
.comparison-heading h3 { margin: 0; font-size: 17px; }
.comparison-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.comparison-heading label { display: grid; gap: 4px; color: var(--muted); font-size: 10px; font-weight: 700; }
.comparison-heading select { min-height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: #fff; }
.comparison-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
.comparison-table { width: 100%; min-width: 820px; border-collapse: separate; border-spacing: 0; }
.comparison-table th,.comparison-table td { min-width: 185px; padding: 13px 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.comparison-table th:first-child { position: sticky; left: 0; z-index: 2; min-width: 140px; width: 140px; color: #56667b; background: #f7f9fc; font-size: 11px; }
.comparison-table thead th { padding: 14px; background: #fff; }
.comparison-table thead th:first-child { z-index: 3; }
.comparison-table tr:last-child th,.comparison-table tr:last-child td { border-bottom: 0; }
.comparison-table th:last-child,.comparison-table td:last-child { border-right: 0; }
.bidder-head { min-height: 54px; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 9px; align-items: center; }
.bidder-head .company-logo { width: 36px; height: 36px; }
.bidder-head strong,.bidder-head small { display: block; }
.bidder-head strong { line-height: 1.25; }
.bidder-head small { margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 500; }
.bidder-head em { grid-column: 1/-1; width: max-content; padding: 4px 7px; border-radius: 10px; color: #5e6d80; background: #eef1f5; font-size: 10px; font-style: normal; }
.bidder-head em.low { color: #16724b; background: var(--green-soft); }
.comparison-table tbody td { color: #273a52; font-size: 12px; }
.comparison-table .money-row td { color: #10284b; font-size: 17px; font-weight: 800; }
.comparison-table .total-row td { color: #0c5e40; background: #f1faf5; font-size: 16px; font-weight: 850; }
.comparison-table .total-row th { background: #e9f6ef; }
.comparison-table .text-row td { line-height: 1.45; }
.comparison-actions-row button { width: 100%; }
@media (max-width: 1120px) { .stats-grid { grid-template-columns: 1fr 1fr; }.dashboard-grid,.project-work-grid { grid-template-columns: 1fr; }.project-kpis { grid-template-columns: 1fr 1fr; }.document-folders { grid-template-columns: 1fr 1fr; }.activity-feed { grid-template-columns: 1fr; }.activity-feed > div { border-right: 0; border-bottom: 1px solid var(--line); }.directory-filters { flex-wrap: wrap; }.search-box.wide { flex: 1 0 100%; }.table-wrap { overflow-x: auto; } table { min-width: 850px; }.qual-layout { grid-template-columns: 275px 1fr; } }
@media (max-width: 1120px) { .contractor-advanced-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .contractor-advanced-filters { grid-template-columns:1fr; } }
@media (max-width: 960px) { .home-nav nav { display: none; }.home-nav { gap: 18px; }.home-nav > div { margin-left: auto; }.home-hero { grid-template-columns: 1fr; padding-top: 58px; }.hero-copy { text-align: center; }.hero-copy h1,.hero-lead { margin-left: auto; margin-right: auto; }.home-eyebrow,.hero-actions,.hero-assurances { justify-content: center; }.product-window { max-width: 700px; width: 100%; margin: 10px auto 0; transform: none; } }
@media (max-width: 820px) { .app-shell { grid-template-columns: 1fr; }.sidebar { position: fixed; left: -260px; width: 248px; transition: .2s ease; box-shadow: 10px 0 40px rgba(0,0,0,.2); }.sidebar.open { left: 0; }.mobile-menu { display: block; margin-right: 10px; }.topbar { padding: 0 16px; }.workspace { padding: 22px 16px 38px; }.project-grid { grid-template-columns: 1fr; }.qual-summary { grid-template-columns: 1fr 1fr; }.qual-summary div:nth-child(2) { border-right: 0; }.qual-summary div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.qual-layout,.messages-layout { grid-template-columns: 1fr; height: auto; }.queue-panel,.threads { max-height: 370px; border-right: 0; border-bottom: 1px solid var(--line); }.conversation { min-height: 600px; }.message-scope-bar { align-items: stretch; flex-direction: column; }.message-scope-bar label { min-width: 0; }.risk-grid { grid-template-columns: 1fr; }.decision-block { align-items: stretch; flex-direction: column; }.settings-grid { grid-template-columns: 1fr; }.settings-grid > aside { grid-template-columns: 1fr 1fr; }.weather-note { display: none; } }
@media (max-width: 900px) { .comparison-workspace { grid-template-columns: 1fr; }.comparison-trades { display: flex; overflow-x: auto; padding: 8px; border-right: 0; border-bottom: 1px solid var(--line); }.comparison-trades-head { display: none; }.comparison-trades > button { min-width: 210px; border: 1px solid var(--line); }.comparison-main { padding: 13px; } }
@media (max-width: 560px) { .top-actions .icon-btn { display: none; }.top-actions .primary { padding: 0 10px; }.crumb span { display: none; }.stats-grid,.project-kpis { grid-template-columns: 1fr; }.welcome-row,.page-heading,.project-workspace-head { flex-direction: column; }.project-workspace-head { align-items: stretch; }.project-title-line { align-items: flex-start; flex-direction: column; }.project-head-actions { display: grid; grid-template-columns: 1fr 1fr; }.page-heading > button { width: 100%; }.project-command-bar { grid-template-columns: 1fr 1fr; }.project-command-bar > div { border-bottom: 1px solid var(--line); }.project-command-bar > button { display: none; }.package-lane { grid-template-columns: 34px 1fr auto; }.package-lane .lane-meter { display: none; }.document-folders,.trade-message-grid { grid-template-columns: 1fr; }.document-log > div { grid-template-columns: 34px 1fr 25px; }.document-log b { display: none; }.deadline-row { grid-template-columns: 45px 1fr 52px; }.bid-progress { display: none; }.activity-panel { display: none; }.toolbar { flex-wrap: wrap; }.toolbar .search-box { width: 100%; }.toolbar .search-box input { width: 100%; }.qual-summary { grid-template-columns: 1fr; }.qual-summary div { border-right: 0; border-bottom: 1px solid var(--line); }.review-head { flex-wrap: wrap; }.review-head .status { margin-left: 0; }.readiness-card { align-items: stretch; flex-direction: column; }.readiness-score { width: auto; padding: 0 0 12px; border: 0; border-bottom: 1px solid var(--line); }.decision-controls { flex-direction: column; }.messages-layout { margin: 0 -8px; }.conversation { min-height: 540px; }.bubble { max-width: 88%; }.file-message { max-width: 95%; }.form-grid { grid-template-columns: 1fr; }.form-grid label.full { grid-column: auto; } }
@media (max-width: 620px) { .home-nav { height: 68px; padding: 0 16px; }.home-nav .home-primary { display: none; }.home-brand strong { font-size: 15px; }.home-hero { min-height: 0; padding: 48px 17px 55px; }.hero-copy h1 { font-size: 46px; }.hero-lead { font-size: 16px; }.hero-actions { display: grid; }.hero-assurances { display: grid; gap: 8px; }.product-window { border-radius: 10px; }.window-body { grid-template-columns: 42px 1fr; }.window-body > aside { padding: 15px 4px; }.window-body > aside b { width: 33px; }.preview-content { padding: 14px; }.preview-stats { grid-template-columns: 1fr 1fr 1fr; }.preview-head button { display: none; }.role-section,.workflow-section { padding: 64px 17px; }.role-cards,.workflow-steps { grid-template-columns: 1fr; }.role-card { padding: 25px; }.role-card ul { grid-template-columns: 1fr; }.home-cta { align-items: stretch; flex-direction: column; padding: 55px 20px; text-align: center; }.home-cta .home-eyebrow { justify-content: center; }.home-footer { align-items: flex-start; flex-direction: column; }.home-footer > p { margin: 0; }.home-footer > div { flex-wrap: wrap; } }

.hero-positioning { max-width: 610px; margin: -8px 0 10px; color: #20251f; font-size: 20px; font-weight: 800; line-height: 1.4; }
@media (max-width: 960px) { .hero-positioning { margin-left: auto; margin-right: auto; } }
@media (max-width: 620px) { .hero-positioning { font-size: 18px; } }
@media (max-width: 620px) { .roster-context { align-items: stretch; flex-direction: column; gap: 10px; }.roster-context p { margin: 0; }.roster-context > button:first-child { align-self: flex-start; }.roster-context .primary { width: 100%; } }
@media (max-width: 620px) { .comparison-toolbar,.comparison-heading { align-items: stretch; flex-direction: column; }.comparison-toolbar > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }.comparison-heading label { width: 100%; }.comparison-heading select { width: 100%; } }
@media (max-width: 820px) { .add-sub-layout { grid-template-columns: 1fr; }.ma-map-shell { min-height: 230px; padding: 10px 12px 26px; }.ma-map-shell object { height: 205px; }.add-sub-dialog { max-height: calc(100vh - 24px); overflow-y: auto; } }
@media (max-width: 620px) { .bid-email-canvas { padding:8px; }.bid-email-brand,.bid-email-intro,.bid-email-snapshot,.bid-email-sender { padding-left:14px; padding-right:14px; }.bid-email-decision { margin-left:14px; margin-right:14px; }.bid-email-intro h1 { font-size:20px; }.bid-email-intent-actions,.bid-email-facts { grid-template-columns:1fr; }.bid-email-facts p:nth-child(even) { padding-left:4px; border-left:0; border-top:1px solid #d7dcd5; }.bid-email-sender { grid-template-columns:38px 1fr; }.bid-email-sender > a { grid-column:2; } }
.trade-symbol svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.project-icon { width: 52px; height: 52px; display: grid; place-items: center; flex: 0 0 52px; color: #173d6d; }
.project-icon svg { width: 46px; height: 46px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.trade-dialog { width: min(620px, calc(100% - 28px)); }
.trade-dialog select[size] { min-height: 290px; padding: 5px; }
.trade-dialog select[size] option { padding: 8px 10px; border-radius: 5px; }
.trade-dialog select[size] optgroup { padding: 7px 4px 3px; color: #52657c; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.trade-catalog-count { margin: -6px 0 0; color: var(--muted); font-size: 12px; }
.county-list button { transition: .15s ease; }
.county-list button.map-hover { border-color: #143f78; color: #fff; background: #143f78; box-shadow: 0 2px 7px rgba(20,63,120,.22); }
.opportunity-summary { overflow: hidden; margin-bottom: 28px; }
.opportunity-header { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; border-bottom: 1px solid var(--line); background: linear-gradient(110deg,#fff 55%,#f8fbff); }
.opportunity-header h2 { margin: 3px 0 0; font-size: 23px; }
.opportunity-header > div:last-child { display: flex; gap: 8px; }
.overview-section { padding: 21px 24px; border-bottom: 1px solid var(--line); }
.overview-section:last-child { border-bottom: 0; }
.overview-section-title { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 14px; }
.overview-section-title span { color: #17385f; font-size: 16px; font-weight: 800; }
.overview-section-title small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.client-summary { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 14px 16px; border: 1px solid #e0e7f0; border-radius: 9px; background: #fbfcfe; }
.client-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 8px; color: #142844; background: var(--yellow); font-weight: 900; }
.client-summary strong,.client-summary p { display: block; }.client-summary p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.project-location-map { position: relative; overflow: hidden; border: 1px solid #cfd9e6; border-radius: 10px; background: #e7edf5; }
.project-location-map iframe { width: 100%; height: 310px; display: block; border: 0; }
.map-location-label { position: absolute; left: 16px; bottom: 15px; max-width: calc(100% - 32px); display: flex; gap: 9px; align-items: center; padding: 9px 13px; border: 1px solid rgba(255,255,255,.8); border-radius: 8px; background: rgba(255,255,255,.94); box-shadow: 0 4px 18px rgba(20,44,75,.18); backdrop-filter: blur(5px); }
.map-location-label > span { color: #d94832; }.map-location-label small,.map-location-label strong { display: block; }.map-location-label small { margin-bottom: 2px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }.map-location-label strong { font-size: 12px; }
.detail-list { display: grid; gap: 0; }
.detail-list > div { min-height: 43px; display: grid; grid-template-columns: minmax(150px,25%) minmax(0,1fr) 28px; gap: 16px; align-items: start; padding: 11px 8px; border-bottom: 1px solid #edf1f5; }
.detail-list > div:last-child { border-bottom: 0; }.detail-list span { color: #607087; font-size: 12px; font-weight: 700; }.detail-list strong { color: #1d314c; font-size: 13px; font-weight: 650; line-height: 1.5; }
.detail-list button { border: 0; color: #59708d; background: transparent; font-size: 17px; cursor: pointer; }.detail-list button:hover { color: var(--blue); }
.date-list { grid-template-columns: 1fr 1fr; column-gap: 28px; }.date-list > div { grid-template-columns: 140px 1fr; }
.description-row { min-height: 90px !important; }.related-section { background: #fbfcfe; }
.coverage-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 0 2px 14px; }.coverage-heading h2 { margin: 3px 0 0; font-size: 22px; }.coverage-heading > p { max-width: 490px; margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
@media (max-width: 720px) { .opportunity-header,.coverage-heading { align-items: stretch; flex-direction: column; }.opportunity-header > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }.overview-section { padding: 18px 15px; }.client-summary { grid-template-columns: 40px 1fr; }.client-summary .text-btn { grid-column: 2; justify-self: start; }.project-location-map iframe { height: 250px; }.date-list { grid-template-columns: 1fr; }.detail-list > div,.date-list > div { grid-template-columns: 115px minmax(0,1fr) 24px; gap: 10px; }.date-list > div { grid-template-columns: 115px 1fr; }.coverage-heading > p { text-align: left; } }

/* BuildingRoster field-command visual system */
:root { --ink:#20251f; --muted:#687064; --line:#d8d9d1; --canvas:#eef0ea; --navy:#20241f; --navy-2:#30362f; --blue:#a85c12; --blue-soft:#fff0d8; --green:#217153; --green-soft:#e4f2e9; --amber:#a85c12; --amber-soft:#fff0d8; --red:#b84736; --red-soft:#fbe9e4; --shadow:0 3px 0 rgba(32,37,31,.08); }
body { color:var(--ink); background:var(--canvas); font-family:"Aptos","Segoe UI",Arial,sans-serif; font-size:16px; }
.app-shell { grid-template-columns:224px minmax(0,1fr); }
.sidebar { padding:18px 12px 14px; color:#e8eadf; background:#20241f; border-right:5px solid #e5a928; }
.brand { padding:0 7px 20px; border-color:rgba(255,255,255,.12); }.brand-mark,.home-brand > span { border-radius:3px; color:#20241f; background:#e5a928; }.brand strong { letter-spacing:.02em; }.brand span { color:#9ea899; }
.nav-item { min-height:46px; margin:2px 0; border-radius:2px; color:#b9c0b4; font-size:14px; }.nav-item:hover { background:#2b302a; }.nav-item.active { color:#20241f; background:#e5a928; box-shadow:none; font-weight:400; }.nav-item.active > span { color:#20241f; }.nav-item b.unread { color:#fff; background:#9a4c12; }
.topbar { height:66px; border-bottom:2px solid #d1d3ca; background:rgba(250,250,247,.96); }.workspace { max-width:1540px; padding:28px 34px 52px; }
h1 { font-size:clamp(28px,3vw,38px); letter-spacing:-.025em; }.eyebrow { color:#92520f; letter-spacing:.13em; }.panel,.stat-card,.project-card,.settings-card,.settings-grid > aside,.table-wrap { border-color:#d2d4cb; border-radius:4px; box-shadow:var(--shadow); }
.primary,.outline,.filter-btn,.text-btn,.icon-btn { min-height:42px; border-radius:3px; }.primary { border-color:#7f440c; color:#fff; background:#9a5310; box-shadow:none; }.primary:hover { background:#7f440c; }.outline,.filter-btn,.icon-btn { border-color:#c6c9bf; background:#fafaf7; }.text-btn,.message-count { color:#8b4b10; }.search-box,input,select,textarea { border-radius:3px !important; }
.status,.risk,.coverage-state { border-radius:2px; text-transform:uppercase; letter-spacing:.04em; }.status.bidding,.status.qualified,.coverage-state.covered { color:#175f45; background:#dceee4; }
.stats-grid { gap:10px; }.stat-card { border-top:4px solid #383f37; background:#fafaf7; }.stat-icon { border-radius:2px; }.dashboard-grid,.project-work-grid { gap:12px; }.panel-head,.section-toolbar { background:#fafaf7; }.panel-head { min-height:72px; }
table thead { color:#f6f3e8; background:#343a32; } table th { font-size:12px; letter-spacing:.055em; } table tbody tr:hover { background:#fff8e9; }
.project-card { overflow:hidden; background:#fafaf7; }.project-accent { width:9px; }.project-tabs { gap:4px; padding:7px; border:1px solid #cfd2c7; border-radius:4px; background:#363c34; }.project-tabs button { min-height:42px; border:0 !important; border-radius:2px !important; color:#cfd5ca; }.project-tabs button:hover { color:#fff; background:#454c43; }.project-tabs button.active { color:#20241f; background:#e5a928; box-shadow:none; }.project-tabs button span { color:inherit; background:rgba(255,255,255,.16); }
.project-command-bar { overflow:hidden; border:1px solid #cfd2c7; border-radius:4px; background:#fafaf7; }.project-command-bar > div { border-right-color:#d8dad1; }.project-workspace-head { padding:7px 0 4px; }.project-icon { color:#89500f; }.project-title-line .status { border-left:3px solid #217153; }
.package-lane { border-bottom-color:#e0e1da; }.package-lane:hover { background:#fff7e6; }.lane-meter i,.mini-meter i,.coverage i,.bid-progress i { background:#bf7119; }
.comparison-trades { background:#f0f1eb; }.comparison-trades > button.active { color:#4d2a08; background:#fff8e8; box-shadow:inset 5px 0 #d99c25; }.comparison-heading { padding-bottom:13px; border-bottom:2px solid #e0e1d9; }.comparison-table th:first-child { background:#f0f1eb; }.comparison-table .total-row td { color:#175f45; background:#edf7f0; }.comparison-table .total-row th { background:#dfeee4; }
dialog { border-radius:4px; border:3px solid #2f352e; }.toast { border-radius:3px; background:#2d332c; }

.job-snapshot { overflow:hidden; margin-bottom:28px; border-top:6px solid #e5a928; }
.snapshot-head { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; border-bottom:1px solid var(--line); background:#fafaf7; }.snapshot-head h2 { margin:2px 0 3px; font-size:26px; }.snapshot-head p:last-child { margin:0; color:var(--muted); font-size:13px; }.snapshot-head > div:last-child { display:flex; gap:8px; }
.snapshot-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr); }.snapshot-core { min-width:0; padding:25px 27px 28px; border-right:1px solid var(--line); }.snapshot-context { padding:18px; background:#f1f2ec; }
.snapshot-label { color:#98540f; font-size:12px; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }.job-brief { padding:3px 0 23px; }.job-brief h3 { margin:7px 0 9px; font-size:24px; }.job-brief p { max-width:820px; margin:0; color:#555f53; font-size:15px; line-height:1.65; }
.fact-board { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #cfd2c7; border-left:5px solid #343a32; background:#fafaf7; }.fact-board > div { min-height:82px; padding:15px; border-right:1px solid var(--line); }.fact-board > div:nth-child(3) { border-right:0; }.fact-board > div.wide { grid-column:1/-1; min-height:68px; border-top:1px solid var(--line); border-right:0; }.fact-board span,.fact-board strong { display:block; }.fact-board span { margin-bottom:7px; color:var(--muted); font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }.fact-board strong { font-size:14px; line-height:1.45; }
.milestone-board { margin-top:25px; }.snapshot-section-head { margin-bottom:14px; }.snapshot-section-head span,.snapshot-section-head small { display:block; }.snapshot-section-head span { font-size:18px; font-weight:850; }.snapshot-section-head small { margin-top:3px; color:var(--muted); font-size:12px; }
.milestone-track { display:grid; grid-template-columns:repeat(4,1fr); position:relative; }.milestone-track::before { content:""; position:absolute; top:9px; left:8px; right:8px; height:2px; background:#c8cbc1; }.milestone-track > div { position:relative; padding:27px 13px 0 0; }.milestone-track i { position:absolute; top:3px; left:0; z-index:1; width:14px; height:14px; border:3px solid #aeb4a8; border-radius:50%; background:#fafaf7; }.milestone-track .complete i { border-color:#3c765d; background:#3c765d; }.milestone-track .current i { width:18px; height:18px; top:1px; border-color:#d8941f; background:#e5a928; box-shadow:0 0 0 4px #fff3d2; }.milestone-track span,.milestone-track strong { display:block; }.milestone-track span { margin-bottom:6px; color:#697064; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.045em; }.milestone-track strong { padding-right:5px; font-size:12px; line-height:1.45; }
.snapshot-context > section { margin-bottom:12px; border:1px solid #cbd0c4; background:#fafaf7; }.snapshot-context > section:last-child { margin-bottom:0; }.context-card-head { min-height:43px; display:flex; align-items:center; justify-content:space-between; padding:0 13px; border-bottom:1px solid var(--line); }.context-card-head > span { font-size:12px; font-weight:850; letter-spacing:.075em; text-transform:uppercase; }.context-card-head .text-btn { min-height:30px; font-size:12px; }.location-card .project-location-map { border:0; border-radius:0; }.location-card .project-location-map iframe { height:210px; }.location-card > p { display:flex; gap:8px; align-items:flex-start; padding:12px 13px; margin:0; border-top:1px solid var(--line); font-size:13px; line-height:1.45; }.location-card > p span { color:#b64c35; }.client-row { display:grid; grid-template-columns:42px 1fr; gap:11px; align-items:center; padding:14px; }.client-row .client-mark { border-radius:2px; }.client-row strong,.client-row p { display:block; }.client-row p { margin:4px 0 0; color:var(--muted); font-size:12px; }.project-network > div:not(.context-card-head) { display:grid; grid-template-columns:88px 1fr; gap:10px; padding:10px 13px; border-bottom:1px solid #e3e4de; }.project-network > div:last-child { border-bottom:0; }.project-network span { color:var(--muted); font-size:12px; }.project-network strong { font-size:12px; line-height:1.4; }
.coverage-heading { padding:14px 16px; border-left:5px solid #343a32; background:#fafaf7; }
.signed-out-home { color:#20251f; background:#f3f1e8; }.home-nav { border-bottom:3px solid #20241f; background:rgba(250,250,247,.97); }.home-primary { border-color:#7f440c; border-radius:3px; background:#9a5310; box-shadow:none; }.home-secondary,.home-signin { border-radius:3px; }.home-hero { background:linear-gradient(110deg,#f7f4e9 0 58%,#e8e4d4 58%); }.hero-copy h1 em { color:#98540f; }.product-window { border:4px solid #2b302a; border-radius:4px; box-shadow:14px 14px 0 #d6a338; transform:none; }.window-bar { background:#252a24; }.preview-content { background:#eceee8; }.role-card { border-radius:4px; }.workflow-section { background:#252a24; }.workflow-steps { background:#555d52; }.workflow-steps article { background:#30362f; }.home-cta { background:#f2e3bb; }
@media (max-width:1080px) { .snapshot-layout { grid-template-columns:1fr; }.snapshot-core { border-right:0; border-bottom:1px solid var(--line); }.snapshot-context { display:grid; grid-template-columns:1.2fr .8fr; gap:12px; }.snapshot-context > section { margin:0; }.project-network { grid-column:1/-1; } }
@media (max-width:720px) { .app-shell { grid-template-columns:1fr; }.snapshot-head { align-items:stretch; flex-direction:column; }.snapshot-head > div:last-child { display:grid; grid-template-columns:1fr 1fr; }.snapshot-core { padding:20px 16px; }.fact-board { grid-template-columns:1fr; }.fact-board > div,.fact-board > div:nth-child(3) { border-right:0; border-bottom:1px solid var(--line); }.fact-board > div.wide { grid-column:auto; }.milestone-track { grid-template-columns:1fr; gap:0; }.milestone-track::before { top:5px; bottom:8px; left:7px; right:auto; width:2px; height:auto; }.milestone-track > div { min-height:67px; padding:0 0 18px 34px; }.milestone-track i,.milestone-track .current i { top:0; }.snapshot-context { grid-template-columns:1fr; }.project-network { grid-column:auto; }.home-hero { background:#f7f4e9; } }

.proposal-upload-dialog { width:min(780px,calc(100% - 28px)); max-height:calc(100vh - 30px); overflow:auto; }.proposal-upload-dialog .dialog-head p:last-child { margin:5px 0 0; color:var(--muted); font-size:13px; }.proposal-drop { min-height:155px; display:flex !important; align-items:center; justify-content:center; gap:5px !important; padding:20px; border:2px dashed #b9bdb2; background:#f7f7f2; text-align:center; cursor:pointer; }.proposal-drop.dragover { border-color:#a85c12; background:#fff5df; }.proposal-drop input { position:absolute; width:1px; height:1px; opacity:0; }.proposal-drop .upload-mark { width:42px; height:42px; display:grid; place-items:center; margin-bottom:4px; border-radius:50%; color:#fff; background:#343a32; font-size:23px; }.proposal-drop strong { color:var(--ink); font-size:16px; }.proposal-drop small { font-weight:500; }.proposal-drop b { margin-top:7px; color:#98540f; font-size:12px; }.ai-safety-note { display:flex; gap:12px; align-items:center; padding:13px; border-left:4px solid #d89a25; background:#fff5df; }.ai-safety-note > span { width:36px; height:36px; display:grid; place-items:center; color:#fff; background:#343a32; font-weight:900; }.ai-safety-note p,.ai-safety-note small { margin:0; }.ai-safety-note strong,.ai-safety-note small { display:block; }.ai-safety-note small { margin-top:3px; color:#60695d; line-height:1.4; }.proposal-error { padding:11px 13px; margin:0; color:#942f26; background:#fbe9e4; border-left:4px solid #b84736; }.analysis-summary { display:flex; justify-content:space-between; gap:15px; padding:14px; border:1px solid #cfd2c7; background:#f2f3ed; }.analysis-summary span,.analysis-summary strong { display:block; }.analysis-summary span { color:#98540f; font-size:11px; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }.analysis-summary strong { margin-top:4px; }.analysis-summary > b { align-self:start; padding:5px 7px; color:#235d45; background:#dceee4; font-size:11px; }.analysis-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }.analysis-section { margin-top:12px; border:1px solid #d1d4ca; }.analysis-section > div:first-child { display:flex; justify-content:space-between; padding:10px 12px; background:#343a32; color:#fff; }.analysis-section h3 { margin:0; font-size:13px; }.analysis-section > div:first-child span { color:#d8ddcf; font-size:11px; }.analysis-section > div:not(:first-child) { padding:10px 12px; border-top:1px solid #e0e2da; font-size:13px; }.analysis-item { display:grid; grid-template-columns:1fr auto; gap:12px; }.analysis-item small { display:block; margin-top:3px; color:var(--muted); }.analysis-item b { color:#76501b; }.analysis-section textarea { width:100%; min-height:92px; border:0 !important; }.scope-flag { border-left:5px solid #d89a25; background:#fff7e5; }.scope-flag.high { border-left-color:#b84736; background:#fbe9e4; }.scope-flag strong,.scope-flag small { display:block; }.scope-flag small { margin-top:3px; color:#62695f; }.comparison-table .scope-flags-row td { min-width:220px; vertical-align:top; }.matrix-flags { display:grid; gap:5px; }.matrix-flag { padding:6px 8px; border-left:3px solid #d89a25; background:#fff5df; font-size:11px; line-height:1.35; }.matrix-flag.high { border-left-color:#b84736; background:#fbe9e4; }.source-badge { display:block; margin-top:5px; color:#7b6546; font-size:10px; }.proposal-file-badge { display:inline-block; margin-top:5px; color:#8b4b10; font-size:10px; font-weight:750; }.primary[disabled] { opacity:.65; cursor:wait; }
@media (max-width:650px) { .analysis-grid { grid-template-columns:1fr; } }

/* GC workspace profile */
.gc-settings-grid { grid-template-columns:230px minmax(0,980px); align-items:start; }.settings-content { min-width:0; }.settings-panel { display:none; }.settings-panel.active { display:block; }.settings-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding-bottom:18px; margin-bottom:20px; border-bottom:2px solid #dddcd3; }.settings-card-head > div:first-child { position:relative; padding-left:50px; }.settings-card-head h2 { margin:0 0 5px; font-size:21px; }.settings-card-head p { margin:0; color:var(--muted); font-size:13px; }.settings-step { position:absolute; left:0; top:0; width:36px; height:36px; display:grid; place-items:center; color:#20251f; background:#e5a928; font-size:12px; font-weight:900; }.profile-complete { padding:7px 9px; color:#185f45; background:#e0efe6; font-size:11px; font-weight:800; text-transform:uppercase; }.company-identity { display:grid; grid-template-columns:58px 1fr auto; gap:14px; align-items:center; padding:15px; margin-bottom:20px; border:1px solid #d4d6ce; background:#f5f5f0; }.company-mark { width:56px; height:56px; display:grid; place-items:center; color:#20241f; background:#e5a928; font-size:19px; font-weight:900; }.company-identity strong,.company-identity small { display:block; }.company-identity small { margin-top:5px; color:var(--muted); }.gc-form select,.radius-field select,.permission-list select,.settings-card textarea { width:100%; min-height:41px; padding:0 11px; border:1px solid var(--line); background:#fff; }.settings-card textarea { min-height:110px; padding:10px; }.team-roster { display:grid; gap:8px; }.team-member { display:grid; grid-template-columns:44px 1fr auto auto; gap:13px; align-items:center; padding:14px; border:1px solid #d6d8d0; background:#fafaf7; }.team-member strong,.team-member small,.team-member em { display:block; }.team-member small { margin:3px 0 5px; color:var(--muted); }.team-member em { color:#8b4b10; font-size:11px; font-style:normal; font-weight:700; }.member-status { padding:5px 7px; font-size:10px; font-weight:850; text-transform:uppercase; }.member-status.active { color:#185f45; background:#dceee4; }.office-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.office-grid article { padding:18px; border:1px solid #d4d6cd; background:#fafaf7; }.office-label { display:inline-block; padding:4px 6px; color:#20241f; background:#e5a928; font-size:10px; font-weight:900; letter-spacing:.06em; }.office-label.secondary { background:#dfe2da; }.office-grid h3 { margin:14px 0 8px; }.office-grid p { line-height:1.55; }.office-grid small { color:var(--muted); }.office-grid article > div { display:flex; gap:10px; align-items:center; margin-top:18px; }.service-summary { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:15px; border:1px solid #d1d4ca; background:#f4f5ef; }.service-summary div { padding:13px 15px; border-right:1px solid #d1d4ca; }.service-summary div:last-child { border:0; }.service-summary span,.service-summary strong { display:block; }.service-summary span { color:var(--muted); font-size:11px; text-transform:uppercase; }.service-summary strong { margin-top:5px; }.service-layout { display:grid; grid-template-columns:minmax(340px,1.05fr) minmax(280px,.95fr); gap:16px; }.service-map-card { min-height:300px; display:grid; place-items:center; padding:16px; border:1px solid #d4d7ce; background:radial-gradient(circle at 60% 42%,#fff3d1,#f4f5ef 62%); }.service-map-card object { width:100%; height:245px; }.service-map-card small { color:var(--muted); }.radius-field { display:grid; gap:6px; margin-bottom:13px; color:var(--muted); font-size:12px; font-weight:750; }.gc-county-list { display:flex; gap:6px; flex-wrap:wrap; }.gc-county-list button { min-height:30px; padding:0 9px; border:1px solid #c7cbbf; color:#465044; background:#fff; cursor:pointer; }.gc-county-list button.selected { border-color:#7c470e; color:#fff; background:#9a5310; }.service-legend { display:flex; gap:14px; margin-top:16px; color:var(--muted); font-size:11px; }.service-legend span { display:flex; gap:6px; align-items:center; }.service-legend i { width:11px; height:11px; border:1px solid #7c470e; background:#9a5310; }.service-legend span:last-child i { border-color:#c7cbbf; background:#fff; }.permission-list { display:grid; margin-top:18px; border:1px solid #d4d6cd; }.permission-list label { min-height:74px; display:grid; grid-template-columns:1fr 160px; align-items:center; padding:12px 15px; border-bottom:1px solid #ddd; }.permission-list label:last-child { border:0; }.permission-list strong,.permission-list small { display:block; }.permission-list small { margin-top:4px; color:var(--muted); }.settings-grid > aside button.active { color:#20241f; background:#e5a928; box-shadow:inset 5px 0 #8b4b10; }
@media (max-width:900px) { .gc-settings-grid { grid-template-columns:1fr; }.settings-grid > aside { grid-template-columns:repeat(2,1fr); }.service-layout,.office-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .settings-card-head { flex-direction:column; }.company-identity { grid-template-columns:50px 1fr; }.company-identity button { grid-column:1/-1; }.team-member { grid-template-columns:40px 1fr; }.team-member .member-status,.team-member button { grid-column:2; justify-self:start; }.service-summary { grid-template-columns:1fr; }.service-summary div { border-right:0; border-bottom:1px solid #d1d4ca; }.service-layout { grid-template-columns:1fr; }.service-map-card { min-height:240px; }.service-map-card object { height:200px; } }

/* BuildingRoster login */
.home-login { min-width:108px; color:#20241f; background:#e5a928; border-color:#20241f; box-shadow:none; }
.home-login:hover { color:#fff; background:#20241f; }
.auth-dialog { width:100vw; max-width:none; height:100vh; max-height:none; padding:0; border:0; border-radius:0; background:transparent; }
.auth-dialog::backdrop { background:#1f241f; }
.auth-dialog[open] { display:grid; place-items:center; background:radial-gradient(circle at 50% 35%,rgba(229,169,40,.13),transparent 31%),linear-gradient(135deg,#171b17,#292f28); }
.auth-dialog[open]::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.13; background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px); background-size:42px 42px; }
.login-card { position:relative; z-index:1; width:min(480px,calc(100vw - 32px)); display:grid; gap:18px; padding:42px 44px 38px; border-top:7px solid #e5a928; background:#fafaf7; box-shadow:16px 16px 0 rgba(229,169,40,.22),0 30px 75px rgba(0,0,0,.38); }
.auth-close { position:absolute; top:13px; right:14px; width:36px; height:36px; border:0; color:#545b52; background:transparent; font-size:25px; cursor:pointer; }
.login-brand { display:flex; align-items:center; gap:12px; margin-bottom:5px; }
.login-brand span { width:48px; height:48px; display:grid; place-items:center; color:#20241f; background:#e5a928; font-weight:900; }
.login-brand strong { color:#161b2d; font-size:22px; letter-spacing:-.02em; }
.login-heading p { margin:0 0 7px; color:#94500f; font-size:11px; font-weight:900; letter-spacing:.14em; }
.login-heading h2 { margin:0; color:#1c221d; font-size:28px; letter-spacing:-.03em; }
.login-card > label { display:grid; gap:7px; color:#424a41; font-size:13px; font-weight:800; }
.login-card > label > input,.password-field { width:100%; min-height:54px; border:1px solid #bfc5bb !important; background:#fff; }
.login-card > label > input { padding:0 15px; font-size:16px; font-weight:400; }
.login-card > label > input:focus,.password-field:focus-within { outline:3px solid rgba(229,169,40,.28); border-color:#9a5310 !important; }
.password-field { display:grid; grid-template-columns:1fr auto; align-items:center; }
.password-field input { min-width:0; height:52px; padding:0 15px; border:0 !important; outline:0; background:transparent; font-size:16px; font-weight:400; }
.password-field button { height:36px; padding:0 13px; margin-right:8px; border:0; color:#81460e; background:#fff4d6; font-weight:800; cursor:pointer; }
.auth-options { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.auth-options label { display:flex; align-items:center; gap:7px; color:#586057; font-size:13px; }
.auth-options button { padding:0; border:0; color:#8b4b10; background:transparent; font-size:13px; font-weight:750; cursor:pointer; }
.auth-submit { width:100%; min-height:54px; border:2px solid #20241f; border-radius:2px; color:#20241f; background:#e5a928; font-size:16px; font-weight:900; cursor:pointer; }
.auth-submit:hover { color:#fff; background:#20241f; }
.auth-message { padding:11px 12px; margin:0; border-left:4px solid #b42318; color:#8f241b; background:#fff0ee; font-size:13px; font-weight:750; line-height:1.45; }
.auth-message.success { border-left-color:#26734d; color:#1d5d3d; background:#eaf7ef; }
.create-account-btn { width:100%; min-height:54px; display:grid; place-items:center; border:2px solid #20241f; color:#20241f; background:#fff; font-size:16px; font-weight:900; text-decoration:none; }
.create-account-btn:hover { color:#20241f; background:#f5dfaa; }
.update-profile-btn { width:100%; min-height:48px; display:grid; place-items:center; border:1px solid #9d651f; color:#81460e; background:#fff8e7; font-size:14px; font-weight:850; text-align:center; text-decoration:none; }
.update-profile-btn:hover { color:#fff; background:#81460e; }
.auth-demo-note { padding:10px 12px; margin:0; color:#687067; background:#eff0ea; font-size:11px; line-height:1.5; text-align:center; }
.auth-switch { margin:0; color:#687067; font-size:13px; text-align:center; }
.auth-switch a { color:#8b4b10; font-weight:800; }
@media (max-width:560px) { .login-card { padding:36px 22px 28px; box-shadow:8px 8px 0 rgba(229,169,40,.22); }.login-heading h2 { font-size:24px; }.auth-options { align-items:flex-start; flex-direction:column; } }

/* Blueprint identity — BuildingRoster */
h1, h2, h3, .brand strong, .home-brand strong, .deadline-main strong,
.attention-item strong, .project-card h3, .project-title-line h1,
.login-brand strong, .login-heading h2 {
  font-family: "Roboto Slab", Georgia, serif;
}
.eyebrow, .home-eyebrow, .date-box, .window-bar, .office-label,
.status, .risk, .member-status, .settings-step {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}

.signed-out-home { color: var(--ink); background: var(--canvas); }
.home-nav { border-color: var(--line); background: rgba(255,255,255,.96); }
.home-brand { color: var(--ink); }
.home-brand > span, .brand-mark, .window-bar .mini-brand {
  color: #fff;
  background: var(--blue);
  border-radius: 4px;
}
.home-nav nav a { color: #526763; }
.home-primary, .primary {
  border-color: #dc7513;
  color: #fff;
  background: var(--blue);
  box-shadow: 0 5px 14px rgba(242,140,40,.22);
}
.home-primary:hover, .primary:hover { background: #d97516; }
.home-secondary { border-color: #bfcdd2; color: var(--navy); }
.home-hero {
  background:
    radial-gradient(circle at 80% 20%, rgba(242,140,40,.11), transparent 30%),
    linear-gradient(180deg,#fff,var(--canvas));
}
.home-eyebrow, .hero-copy h1 em, .auth-options button, .auth-switch button,
.text-btn, .back-link { color: var(--blue); }
.home-eyebrow > span { background: var(--blue); }
.product-window { border-color: #b9c9d2; box-shadow: 0 32px 80px rgba(22,58,95,.18); }
.window-bar, .workflow-section { background: var(--navy); }
.window-body > aside, .workflow-steps article { background: #1d486f; }
.window-body > aside b.selected { background: var(--blue); color: #fff; }
.preview-content { background: var(--canvas); }
.preview-head small, .preview-launch, .role-card button { color: var(--blue); }
.preview-head button { background: var(--blue); }
.role-card.gc-card { background: #f1f6f8; }
.role-card.sub-card { background: #fff8f0; border-color: #f0cfaa; }
.role-icon { background: var(--navy); }
.sub-card .role-icon { background: var(--blue); color: #fff; }
.workflow-steps { background: #5f7f9c; }
.workflow-steps article > b { color: #ffb666; border-color: #87a1b7; }
.home-cta { background: #eaf1f5; }

.sidebar {
  background-color: var(--navy);
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 24px 24px;
  border-right: 3px solid var(--blue);
}
.brand-mark { box-shadow: 0 0 0 1px rgba(255,255,255,.35); }
.brand span, .account-card span { color: #aec0cf; }
.nav-item { color: #d9e3ea; }
.nav-item > span { color: #b8d0e2; }
.nav-item:hover { background: rgba(255,255,255,.09); }
.nav-item.active {
  color: #fff;
  background: var(--blue);
  box-shadow: none;
  font-weight: 400;
}
.nav-item.active > span { color: #fff; }
.nav-item b.unread { color: #fff; background: var(--blue); }
.sidebar-footer { color:#e8eadf; background:transparent; }
.sidebar-footer > .nav-item { color:#e8eadf; }
.sidebar-footer > .nav-item > span { color:#e5a928; }
.sidebar-footer > .nav-item:hover { color:#fff; background:rgba(255,255,255,.09); }
.sidebar-footer .account-card { color:#e8eadf; background:var(--navy); }
.sidebar-footer .account-card .avatar { color:#fff; background:#a85c12; }
.sidebar-footer .account-card strong { color:#fff; }
.sidebar-footer .account-card span { color:#c8cdbf; }
.sidebar-footer .account-card button { color:#e5a928; }
.topbar { border-color: var(--line); }
.workspace { background: var(--canvas); }
.eyebrow { color: #d96e10; }
.weather-note { border-color: #f1c99f; background: #fff9f2; }
.weather-note > span { color: var(--blue); }
.panel, .stat-card { border-color: var(--line); border-radius: 7px; }
.stat-card { border-top: 3px solid var(--navy); }
.stat-icon.blue, .stat-icon.amber { color: #c9630f; background: var(--blue-soft); }
.dashboard-link:hover { border-color: #8cabc0; box-shadow: 0 10px 30px rgba(22,58,95,.12); }
.dashboard-link:focus-visible { outline-color: rgba(242,140,40,.42); }
.attention-item.dashboard-link:hover, .activity-feed > .dashboard-link:hover,
.deadline-row:hover { background: #f3f7f8; }
.bid-progress i, .coverage i { background: var(--blue); }
.company-logo.navy { color: #e9f4ff; background: var(--navy); }
.company-logo.orange { color: #fff; background: #cb6c18; }
.status.planning, .risk.new { color: #174f7d; background: #e5f0f7; }
.status.bid-review { color:#694aad; background:#f1ecff; }
.status.awarded { color:#175f45; background:#dceee4; }
.status.in-progress { color:#8a5900; background:#fff1cf; }
.status.on-hold { color:#8b4b10; background:#f8e5d2; }
.status.completed { color:#42514a; background:#e6ebe8; }
.status.canceled { color:#9b342d; background:#f7e3df; }
.quick-rule { color: var(--navy); background: #eaf2f8; }

.home-login, .auth-submit {
  color: #fff;
  background: var(--blue);
  border-color: var(--blue);
}
.home-login:hover, .auth-submit:hover { color: #fff; background: #d97516; }
.auth-dialog::backdrop { background: var(--navy); }
.auth-dialog[open] {
  background: var(--navy);
}
.login-card { border-top-color: var(--blue); background: var(--canvas); box-shadow: 16px 16px 0 rgba(242,140,40,.22),0 30px 75px rgba(0,0,0,.38); }
.login-brand span { color: #fff; background: var(--blue); }
.login-heading p, .auth-options button, .auth-switch a { color: #bd5a0a; }
.login-card > label > input:focus, .password-field:focus-within { outline-color: rgba(242,140,40,.28); border-color: var(--blue) !important; }
.password-field button { color: #a95008; background: var(--blue-soft); }
.create-account-btn { border-color: var(--navy); color: var(--navy); }
.create-account-btn:hover { color: #fff; background: var(--navy); }
.update-profile-btn { border-color: var(--blue); color: #a95008; background: #fff7ee; }
.update-profile-btn:hover { color: #fff; background: var(--blue); }

.settings-grid > aside button.active { color:#fff; background:var(--blue); box-shadow:inset 5px 0 #b95c0c; }
.settings-step, .company-mark, .office-label { color:#fff; background:var(--blue); }
.gc-county-list button.selected, .service-legend i { border-color:var(--navy); color:#fff; background:var(--navy); }

/* Coverage maps: restore the original gray-blue palette. */
.us-map path,
.state-county-map path { fill:#cfdbe9; stroke:#f8fbff; }
.us-map path:hover,
.us-map path:focus,
.state-county-map path:hover { fill:#8fa9c8; }
.us-map path.selected { fill:#617f9f; }
.us-map path.selected:hover,
.us-map path.selected:focus { fill:#4f6f91; }
.state-county-map path.selected { fill:#617f9f; }
.county-list button { border-color:#aebfd2; color:#40536c; background:#e9f0f7; }
.county-list button:hover,
.county-list button:focus,
.county-list button.map-hover { border-color:#8fa9c8; color:#30455e; background:#d5e1ed; box-shadow:none; }
.county-list button.selected { border-color:#617f9f; color:#fff; background:#617f9f; }
.service-map-card { background:radial-gradient(circle at 60% 42%,#fff1e3,#edf3f5 62%); }
.trade-picker-field { display:grid; gap:7px; margin:11px 0; }
.trade-picker-field label { margin:0; }
.project-dialog { width:min(1040px,calc(100% - 28px)); max-height:calc(100vh - 28px); overflow-y:auto; }
.project-dialog .dialog-head,.add-sub-dialog .dialog-head { position:sticky; top:0; z-index:12; margin:-4px -4px 0; padding:4px; background:#fff; box-shadow:0 1px 0 var(--line); }
.project-dialog .dialog-head > button,.add-sub-dialog .dialog-head > button { position:sticky; top:4px; }
.unsaved-dialog { width:min(460px,calc(100% - 28px)); }
.unsaved-dialog p { margin:0; color:var(--muted); }
.unsaved-actions { display:grid; grid-template-columns:1fr 1fr 1.15fr; }
.word-toolbar { position:relative; display:flex; align-items:center; gap:3px; flex-wrap:wrap; padding:6px; background:#e4e5e3; border:1px solid #b9bcb8; }
.word-toolbar select { min-height:31px; height:31px; padding:0 6px; border:1px solid #9ea39d; border-radius:3px; background:#fff; }
.word-toolbar #scopeFont { width:140px; }
.word-toolbar .font-size-select { width:58px; }
.word-toolbar > button { width:34px; min-height:31px; padding:0; border:0; background:transparent; font-size:17px; }
.word-toolbar > button:hover,.color-trigger:hover { background:#d1d3d0; }
.color-menu { position:relative; }
.color-trigger { min-width:44px; height:34px; display:grid; grid-template-columns:24px 10px; grid-template-rows:23px 4px; align-items:center; justify-items:center; padding:2px 3px; border:0; background:transparent; }
.color-trigger span { grid-column:1; font-size:18px; font-weight:600; }
.highlight-trigger span { transform:rotate(-35deg); font-size:17px; }
.color-trigger > i { grid-column:1; width:20px; height:4px; background:#fff200; }
.text-color-trigger > i { background:#d41717; }
.color-trigger > b { grid-column:2; grid-row:1/3; font-size:11px; }
.color-palette { position:absolute; top:38px; left:0; z-index:30; width:218px; padding:8px; border:1px solid #767a75; border-radius:4px; background:#dedfdd; box-shadow:0 8px 22px rgba(0,0,0,.22); }
.color-palette[hidden] { display:none; }
.color-palette > strong { display:block; margin:0 0 7px; color:#343934; font-size:12px; }
.swatch-grid { display:grid; grid-template-columns:repeat(5,34px); gap:4px; }
.swatch-grid button { width:34px; height:34px; padding:0; border:2px solid #fff; outline:1px solid #8b8f89; background:var(--swatch); }
.swatch-grid button:hover { outline:2px solid #b66a00; }
.color-palette .no-color { width:100%; min-height:34px; margin-top:8px; border:0; border-top:1px solid #aaa; color:#444; background:transparent; text-align:left; }
.milestone-fields { display:grid; gap:12px; padding:15px; border:1px solid var(--line); background:#f7f8f4; }
.project-network-fields { display:grid; gap:12px; padding:15px; border:1px solid var(--line); background:#f7f8f4; }
.milestone-fields-head strong,.milestone-fields-head small { display:block; }
.milestone-fields-head strong { color:var(--ink); font-size:14px; }
.milestone-fields-head small { margin-top:3px; color:var(--muted); font-size:12px; }

/* Compact command sheet: keep the overview dense and eliminate unused vertical space. */
.job-snapshot { margin-bottom:14px; }
.snapshot-head { min-height:68px; padding:13px 18px; }
.snapshot-head h2 { margin:1px 0 2px; font-size:23px; }
.snapshot-core { padding:17px 20px 18px; }
.job-brief { padding:0 0 14px; }
.job-brief h3 { margin:5px 0 6px; font-size:22px; }
.job-brief p { font-size:14px; line-height:1.5; }
.fact-board > div { padding:11px 13px; }
.milestone-board { margin-top:16px; }
.snapshot-section-head { margin-bottom:9px; }
.milestone-track > div { padding-top:24px; }
.milestone-track span { margin-bottom:3px; }
.snapshot-context { padding:10px; }
.snapshot-context > section { margin-bottom:8px; }
.context-card-head { min-height:36px; padding:0 10px; }
.location-card .project-location-map iframe { height:138px; }
.location-card > p { padding:8px 10px; font-size:12px; }
.client-row { grid-template-columns:34px 1fr; gap:8px; padding:9px 10px; }
.client-row .client-mark { width:32px; height:32px; }
.client-row p { margin-top:2px; }
.project-network > div:not(.context-card-head) { grid-template-columns:82px 1fr; padding:7px 10px; }
.coverage-heading { margin-bottom:10px; padding:10px 13px; }
.coverage-heading h2 { font-size:20px; }
.trade-checklist { max-height:250px; overflow:auto; border:1px solid var(--line); background:#fff; }
.trade-checklist section { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.trade-checklist section > strong { position:sticky; top:0; z-index:1; grid-column:1/-1; display:block; padding:5px 9px; color:#70400c; background:#f4efe3; border-bottom:1px solid #ddd8cc; font-size:12px; line-height:1.2; letter-spacing:.035em; }
.trade-checklist section + section { border-top:1px solid var(--line); }
.trade-checklist section > label { min-height:28px; display:flex; gap:7px; align-items:center; padding:3px 9px; margin:0; border-bottom:1px solid #ecece7; font-size:13px; line-height:1.2; cursor:pointer; }
.trade-checklist section > label:hover { background:#fff9ea; }
.trade-checklist input[type="checkbox"] { width:15px; height:15px; margin:0; flex:0 0 15px; accent-color:var(--blue); }
.trade-picker-field > small { color:var(--muted); font-size:12px; font-weight:700; }
.sub-trade-picker { margin:0; }
.sub-trade-picker > span { color:var(--muted); font-size:12px; font-weight:750; }
.sub-trade-picker .trade-checklist { max-height:190px; }
.sub-trade-picker .trade-checklist section { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sub-trade-picker .trade-checklist section > label { min-height:28px; gap:7px; padding:3px 9px; font-size:11px; }
.sub-trades-empty { grid-column:1/-1; margin:0; padding:14px; color:var(--muted); font-size:12px; text-align:center; }
.union-local-picker { display:grid; gap:7px; }
.union-local-picker[hidden] { display:none; }
.union-local-picker > span { color:var(--muted); font-size:12px; font-weight:750; }
.union-checklist { max-height:190px; overflow:auto; border:1px solid var(--line); background:#fff; }
.union-checklist section { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.union-checklist section > strong { position:sticky; top:0; z-index:1; grid-column:1/-1; padding:5px 9px; color:#70400c; background:#f4efe3; border-bottom:1px solid #ddd8cc; font-size:12px; line-height:1.2; letter-spacing:.035em; }
.union-checklist section > label { min-height:28px; display:flex; gap:7px; align-items:center; padding:3px 9px; margin:0; border-bottom:1px solid #ecece7; font-size:11px; line-height:1.2; cursor:pointer; }
.union-checklist section > label:hover { background:#fff9ea; }
.union-checklist input[type="checkbox"] { width:15px; height:15px; margin:0; flex:0 0 15px; accent-color:var(--blue); }
.union-local-picker > small { color:var(--muted); font-size:12px; font-weight:700; }
.union-local-picker .union-checklist { max-height:300px; }
.union-checklist .union-record { display:flex; align-items:center; gap:7px; min-height:28px; padding:3px 9px; border-bottom:1px solid #ecece7; min-width:0; }
.union-checklist .union-record > label { display:flex; align-items:center; gap:7px; flex:1; min-width:0; margin:0; font-size:11px; font-weight:700; line-height:1.2; cursor:pointer; }
.union-checklist .union-record > label > span { min-width:0; overflow-wrap:anywhere; }
.union-checklist .union-record input { margin:0; }
.union-checklist .union-record a { font-size:11px; line-height:1.2; padding:0; flex-shrink:0; }
.union-checklist .union-record:hover { background:#fff9ea; }
.union-checklist .union-record small { display:block; color:var(--muted); font-size:11px; font-weight:400; }

.union-local-picker .union-all-states { display:flex; align-items:center; gap:7px; font-size:12px; margin:0; }
.union-all-states input { width:16px; height:16px; margin:0; }
.union-directory-note { margin:0; color:var(--muted); font-size:13px; line-height:1.4; }
.coverage-summary .union-jurisdiction-warning { margin-top:12px; padding:10px 12px; border-left:4px solid #b42318; background:#fff1f0; color:#b42318; font-size:0.875rem; line-height:1.5; overflow-wrap:anywhere; }
.coverage-summary .union-jurisdiction-warning strong { display:block; color:inherit; }
.coverage-summary .union-jurisdiction-warning p { margin:5px 0 0; color:inherit; font-size:inherit; line-height:inherit; }
.union-jurisdiction-warning[hidden] { display:none; }
.required-label b { color:#c62828; font-size:14px; }
.project-dialog .field-invalid { border-color:#d62f24 !important; box-shadow:0 0 0 1px #d62f24; }
.form-error-summary { padding:11px 13px; margin:0; border-left:4px solid #d62f24; color:#a82119; background:#fff0ee; font-size:13px; font-weight:750; }
.rich-field { display:grid; gap:6px; }
.rich-toolbar { min-height:39px; display:flex; align-items:center; gap:5px; padding:5px 7px; border:1px solid var(--line); border-bottom:0; background:#f4f5f1; }
.rich-toolbar select { width:155px; min-height:29px; padding:0 7px; border:1px solid #c8ccc2; background:#fff; }
.rich-toolbar button { width:31px; height:29px; padding:0; border:1px solid #c8ccc2; background:#fff; cursor:pointer; }
.rich-toolbar > label { width:34px; height:29px; position:relative; display:grid; place-items:center; border:1px solid #c8ccc2; color:var(--ink); background:#fff; cursor:pointer; }
.rich-toolbar input[type="color"] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.rich-editor { min-height:130px; padding:11px 13px; overflow:auto; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:14px; line-height:1.55; outline:none; }
.rich-editor:focus { border-color:var(--blue); box-shadow:0 0 0 2px rgba(242,140,40,.15); }
.rich-editor:empty::before { content:attr(data-placeholder); color:#7b8178; pointer-events:none; }
.search-box input::placeholder,input::placeholder,textarea::placeholder { color:#aeb4ad; opacity:.62; font-weight:400; }
.rich-editor:empty::before { color:#aeb4ad; opacity:.62; font-weight:400; }
select:invalid,select:has(option[value=""]:checked) { color:rgba(174,180,173,.62); font-weight:400; }
select option { color:var(--ink); font-weight:400; }
select option[disabled][value=""] { color:rgba(174,180,173,.62); }
/* Share the status palette with each card's accent, including live status edits. */
.status.planning, .project-card:has(> .project-top > .status.planning) { --project-status-color:#174f7d; --project-status-background:#e5f0f7; }
.status.bidding, .project-card:has(> .project-top > .status.bidding) { --project-status-color:#8a4b00; --project-status-background:#ffe2a1; }
.status.bid-review, .status.leveling, .project-card:has(> .project-top > .status:is(.bid-review,.leveling)) { --project-status-color:#694aad; --project-status-background:#f1ecff; }
.status.awarded, .project-card:has(> .project-top > .status.awarded) { --project-status-color:#175f45; --project-status-background:#dceee4; }
.status.in-progress, .project-card:has(> .project-top > .status.in-progress) { --project-status-color:#8a5900; --project-status-background:#fff1cf; }
.status.on-hold, .project-card:has(> .project-top > .status.on-hold) { --project-status-color:#8b4b10; --project-status-background:#f8e5d2; }
.status.completed, .project-card:has(> .project-top > .status.completed) { --project-status-color:#42514a; --project-status-background:#e6ebe8; }
.status.canceled, .project-card:has(> .project-top > .status.canceled) { --project-status-color:#9b342d; --project-status-background:#f7e3df; }
.status:is(.planning,.bidding,.bid-review,.leveling,.awarded,.in-progress,.on-hold,.completed,.canceled) { color:var(--project-status-color); background:var(--project-status-background); }
.project-card > .project-accent { background:var(--project-status-color,#42514a); }
.project-card footer .zero-invites { color:#c3362d; font-weight:750; }
.project-actions-menu { width:190px; }
.project-actions-menu button + button { border-top:1px solid #edf0eb; }
.project-actions-menu .danger-text { color:#b43b32; }
.rich-editor:empty::before { color:#aeb4ad; opacity:.62; font-weight:400; }
.rich-toolbar.word-toolbar { gap:3px; padding:6px; border:1px solid #b9bcb8; background:#e4e5e3; }
.rich-toolbar.word-toolbar > button { width:34px; height:31px; min-height:31px; padding:0; border:0; background:transparent; }
.rich-toolbar.word-toolbar .color-trigger { min-width:44px; width:44px; height:34px; border:0; background:transparent; }
.rich-toolbar.word-toolbar .swatch-grid button { width:34px; height:34px; padding:0; border:2px solid #fff; background:var(--swatch); }
.rich-toolbar.word-toolbar .color-palette .no-color { width:100%; height:34px; margin-top:8px; border:0; border-top:1px solid #aaa; background:transparent; }
.invite-message-field > span { color:var(--muted); font-size:12px; font-weight:700; }
.invite-rich-toolbar { flex-wrap:wrap; border-radius:7px 7px 0 0; }
.invite-rich-toolbar select { width:auto; min-width:90px; }
.invite-rich-toolbar .font-size-select { min-width:64px; }
.invite-rich-toolbar button { font-family:Arial,sans-serif; font-weight:700; }
.invite-rich-toolbar .invite-color { width:34px; height:29px; position:relative; display:grid; place-items:center; border:1px solid #c8ccc2; background:#fff; cursor:pointer; }
.invite-rich-toolbar .invite-color span { border-bottom:3px solid #15201a; font-weight:700; }
.invite-rich-toolbar .invite-color input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.invite-message-editor { min-height:150px; border-radius:0 0 7px 7px; }
.invite-message-editor p { margin:.35em 0; }
.shared-rich-field { width:100%; min-width:0; }
.shared-word-toolbar { flex-wrap:wrap; border-radius:7px 7px 0 0; }
.shared-word-toolbar select { width:auto; min-width:90px; }
.shared-word-toolbar .font-size-select { min-width:64px; }
.shared-word-toolbar .color-trigger { min-width:44px; width:44px; height:34px; border:0; background:transparent; }
.shared-word-toolbar .swatch-grid button { width:34px; height:34px; padding:0; border:2px solid #fff; background:var(--swatch); }
.shared-word-toolbar .color-palette .no-color { width:100%; height:34px; margin-top:8px; border:0; border-top:1px solid #aaa; background:transparent; }
.shared-rich-editor { min-height:110px; border-radius:0 0 7px 7px; white-space:pre-wrap; }
.composer .shared-rich-field,.thread-panel footer .shared-rich-field { flex:1; }
.split-actions { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; }
.danger-btn { min-height:40px; padding:0 15px; border:1px solid #b52c24; color:#a82119; background:#fff; font-weight:800; cursor:pointer; }
.danger-btn:hover,.danger-btn.solid { color:#fff; background:#b52c24; }
.danger-btn.solid:hover { background:#941f19; }
.danger-text { color:#b52c24; }
.confirm-dialog p { margin:0; color:var(--muted); line-height:1.55; }
.confirm-dialog p strong { color:var(--ink); }
.empty-trade-scopes { padding:30px !important; color:var(--muted); text-align:center; }
.scope-status-select { min-width:154px; min-height:32px; padding:5px 28px 5px 9px; border:1px solid transparent; border-radius:999px; color:#70400c; background:#fff1cf; font-size:11px; font-weight:400; cursor:pointer; }
.scope-status-select.invited-to-bid { color:#28547d; background:#e7f0f9; }
.scope-status-select.pricing-in-progress { color:#70400c; background:#fff1cf; }
.scope-status-select.bids-received { color:#28547d; background:#e4eef9; }
.scope-status-select.under-review { color:#654d8f; background:#eee8f8; }
.scope-status-select.bidder-selected { color:#175f45; background:#dceee4; }
.scope-status-select.scope-closed { color:#4f5963; background:#e8ecef; }
.scope-status-select.no-bid-required { color:#5d6268; background:#f0f1f2; }
.scope-status-select:focus { border-color:#2f69ab; outline:2px solid rgba(47,105,171,.18); }
.trade-scope-open { padding:0; border:0; color:inherit; background:transparent; text-align:left; cursor:pointer; }
.trade-scope-open:hover strong { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.trade-scope-open:focus-visible { border-radius:7px; outline:2px solid var(--blue); outline-offset:3px; }
.trade-bidder-dialog { width:min(720px,calc(100% - 28px)); }
.trade-bidder-dialog .dialog-head p:last-child { margin:5px 0 0; color:var(--muted); font-size:13px; }
.trade-bidder-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.trade-bidder-summary article { padding:14px; border:1px solid var(--line); border-radius:7px; background:#f7f9fc; }
.trade-bidder-summary span,.trade-bidder-summary strong { display:block; }
.trade-bidder-summary span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.trade-bidder-summary strong { margin-top:4px; font-size:22px; }
.trade-bidder-list-section { overflow:hidden; border:1px solid var(--line); border-radius:8px; }
.trade-bidder-list-section > div:first-child { display:flex; justify-content:space-between; align-items:center; padding:12px 14px; border-bottom:1px solid var(--line); background:#f7f9fc; }
.trade-bidder-list-section h3 { margin:0; font-size:14px; }
.trade-bidder-list-section > div:first-child span { color:var(--muted); font-size:12px; }
.trade-bidder-list { max-height:300px; overflow:auto; }
.trade-bidder-list article { display:grid; grid-template-columns:36px 1fr auto; gap:10px; align-items:center; padding:12px 14px; border-bottom:1px solid var(--line); }
.trade-bidder-list article:last-child { border-bottom:0; }
.trade-bidder-list article strong,.trade-bidder-list article small { display:block; }
.trade-bidder-list article small { margin-top:3px; color:var(--muted); font-size:11px; }
.trade-bidder-list article em { font-style:normal; }
.trade-bidder-empty { display:grid; gap:5px; padding:28px 18px; color:var(--muted); text-align:center; }
.trade-bidder-empty strong { color:var(--ink); }

@media (max-width:560px) {
  .login-card { box-shadow: 8px 8px 0 rgba(242,140,40,.22); }
  .trade-checklist section { grid-template-columns:1fr; }
  .union-checklist section { grid-template-columns:1fr; }
}
@media (min-width:561px) and (max-width:820px) { .trade-checklist section { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Complete phone and tablet behavior */
@media (max-width:820px) {
  html, body { max-width:100%; overflow-x:hidden; }
  body.mobile-nav-open { overflow:hidden; }
  .sidebar { top:0; bottom:0; height:100dvh; z-index:60; overflow-y:auto; pointer-events:none; visibility:hidden; }
  .sidebar.open { pointer-events:auto; visibility:visible; }
  .sidebar-scrim:not([hidden]) { position:fixed; inset:0; z-index:55; display:block; width:100%; height:100%; padding:0; border:0; background:rgba(8,24,39,.58); }
  .topbar { height:64px; }
  .workspace, .view, .panel, .project-card { min-width:0; }
  dialog:not(.auth-dialog) { width:calc(100% - 20px); max-width:none; max-height:calc(100dvh - 20px); margin:auto; overflow-y:auto; }
  dialog:not(.auth-dialog) form { padding:18px; }
  .project-dialog { width:calc(100% - 12px); max-height:calc(100dvh - 12px); }
  .project-dialog .form-grid { grid-template-columns:1fr; }
  .project-dialog .form-grid label.full { grid-column:auto; }
  .rich-toolbar { flex-wrap:wrap; }
  .rich-toolbar select { width:100%; }
  .split-actions { display:flex; flex-wrap:wrap; }
  .split-actions::before { display:none; }
  .split-actions .danger-btn { margin-right:auto; }
  .directory-filters { align-items:stretch; }
  .directory-filters label { flex:1 1 170px; }
  .directory-filters select { width:100%; }
  .project-tabs { scrollbar-width:thin; }
  .table-wrap, .comparison-table-wrap { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
}

@media (max-width:560px) {
  body { font-size:14px; }
  .topbar { padding:0 12px; }
  .mobile-menu { width:42px; min-height:42px; margin-right:4px; border:1px solid var(--line); background:#fff; }
  .crumb strong { max-width:105px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .top-actions { gap:6px; }
  .top-actions .primary { min-height:42px; font-size:13px; white-space:nowrap; }
  .workspace { padding:18px 12px 32px; }
  .welcome-row, .page-heading { gap:14px; margin-bottom:18px; }
  h1 { font-size:27px; }
  .stat-card { min-height:104px; padding:16px; }
  .panel-head { min-height:0; align-items:flex-start; padding:14px; }
  .panel-head .text-btn { white-space:nowrap; }
  .deadline-row { gap:10px; padding:13px 12px; }
  .attention-item { grid-template-columns:39px minmax(0,1fr); padding:13px 12px; }
  .attention-item > .risk, .attention-item > .status { grid-column:2; justify-self:start; }
  .project-card { padding:17px 15px 15px 19px; }
  .project-card footer { align-items:stretch; flex-direction:column; gap:10px; }
  .project-card footer .outline { width:100%; min-height:42px; }
  .project-meta { grid-template-columns:1fr; gap:11px; }
  .project-identity { align-items:flex-start; }
  .project-icon, .project-code { flex:0 0 auto; }
  .project-head-actions { grid-template-columns:1fr; }
  .project-command-bar { grid-template-columns:1fr; }
  .project-command-bar > div { border-right:0; }
  .package-lane { grid-template-columns:34px minmax(0,1fr); padding:12px; }
  .package-lane > :nth-child(n+3) { grid-column:2; justify-self:start; }
  .snapshot-head > div:last-child, .opportunity-header > div:last-child { grid-template-columns:1fr; }
  .detail-list > div, .date-list > div { grid-template-columns:1fr; }
  .detail-list > div > button { justify-self:start; }
  .settings-grid > aside { grid-template-columns:1fr; }
  .settings-card { padding:16px; }
  .permission-list label { grid-template-columns:1fr; gap:10px; }
  .permission-list select { width:100%; }
  .analysis-summary, .ai-safety-note { align-items:flex-start; flex-direction:column; }
  dialog:not(.auth-dialog) form { gap:13px; padding:15px; }
  .dialog-head h2 { font-size:21px; }
  .dialog-head button { width:44px; min-height:44px; flex:0 0 auto; }
  .dialog-actions { display:grid; grid-template-columns:1fr; }
  .dialog-actions > button { width:100%; min-height:44px; }
  .split-actions { display:grid; grid-template-columns:1fr; }
  .split-actions .danger-btn { margin:0; }
  .trade-checklist { max-height:38dvh; }
  .trade-checklist section > label { min-height:38px; }
  .recipient-option { grid-template-columns:auto 34px minmax(0,1fr); }
  .recipient-option > em { grid-column:3; }
  .home-hero { padding-top:38px; }
  .hero-copy h1 { font-size:clamp(36px,11vw,46px); overflow-wrap:anywhere; }
  .product-window { width:100%; }
  .window-body { display:block; min-height:0; }
  .window-body > aside { display:none; }
  .preview-content { min-width:0; }
  .preview-card > div { grid-template-columns:28px minmax(0,1fr); }
  .preview-card em { grid-column:2; justify-self:start; }
  .home-primary.large, .home-secondary.large { width:100%; }
}
.selected-bidder{display:flex;flex-direction:column;gap:5px;min-width:150px}.selected-bidder strong{font-size:.82rem}.qualification-label{width:max-content;border-radius:2px;padding:4px 7px;background:#e3f3eb;color:#08724d;font:700 .66rem var(--mono);text-transform:uppercase}.qualification-label.in-review,.qualification-label.pending-review,.qualification-label.qualification-pending{background:#fff0d3;color:#9b5a00}.qualification-label.expiring-soon{background:#fde7e3;color:#b53025}.comparison-actions-row td{vertical-align:top}.comparison-actions-row td button+button{margin-top:7px}.selected-bidder-button{border:1px solid #0b7858;background:#e3f3eb;color:#075f47;border-radius:3px;padding:9px 12px;font-weight:800;cursor:pointer}
.selected-proposal-value{white-space:nowrap;font-size:.84rem;color:#17251d}

/* Smart Sheet Sets: trade-specific views of one master drawing file */
.smart-planroom{overflow:hidden}.smart-planroom .section-toolbar{padding:20px 22px}.smart-planroom .section-toolbar .eyebrow{margin-bottom:5px;color:#bf5b08;font-size:11px;letter-spacing:.13em}.smart-planroom .section-toolbar h2{font-size:22px}.smart-planroom .section-toolbar p:last-child{font-size:13px}.sheet-set-summary{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;gap:14px;align-items:center;margin:18px 20px 0;padding:16px;border:1px solid #cbd9e8;border-left:4px solid #1f5f9f;border-radius:8px;background:linear-gradient(90deg,#f6faff,#fff)}.master-set-mark{width:48px;height:52px;display:grid;place-items:center;border-radius:6px;color:#fff;background:#b23b35;font-size:11px;font-weight:850}.summary-label{display:block;color:#6d7e91;font-size:10px;font-weight:850;letter-spacing:.1em}.sheet-set-summary h3{margin:4px 0;font-size:15px}.sheet-set-summary p{margin:0;color:var(--muted);font-size:12px}.index-complete{min-width:94px;text-align:right}.index-complete strong,.index-complete span{display:block}.index-complete strong{color:#13745f;font-size:16px}.index-complete span{margin-top:3px;color:var(--muted);font-size:10px}.planroom-metrics{display:grid;grid-template-columns:repeat(4,1fr);margin:14px 20px 0;border:1px solid var(--line);border-radius:8px;background:#fff}.planroom-metrics div{padding:12px 16px;border-right:1px solid var(--line)}.planroom-metrics div:last-child{border:0}.planroom-metrics strong,.planroom-metrics span{display:block}.planroom-metrics strong{font-size:19px}.planroom-metrics span{margin-top:2px;color:var(--muted);font-size:11px}.sheet-workspace{display:grid;grid-template-columns:245px minmax(0,1fr);margin:16px 20px 20px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.sheet-trade-nav{padding:11px;border-right:1px solid var(--line);background:#f6f8fa}.sheet-trade-nav>div{padding:5px 7px 10px}.sheet-trade-nav>div span,.sheet-trade-nav>div small{display:block}.sheet-trade-nav>div span{color:#617286;font-size:10px;font-weight:850;letter-spacing:.1em}.sheet-trade-nav>div small{margin-top:4px;color:var(--muted);font-size:10px}.sheet-trade-nav button{width:100%;display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:center;padding:9px;border:0;border-radius:7px;color:#283746;background:transparent;text-align:left;cursor:pointer}.sheet-trade-nav button:hover{background:#edf2f7}.sheet-trade-nav button.active{background:#fff;box-shadow:0 1px 5px rgba(30,53,78,.12)}.sheet-trade-nav button>b{width:31px;height:31px;display:grid;place-items:center;border-radius:6px;color:#496071;background:#e4e9ee;font-size:10px}.sheet-trade-nav button>b.hvac{color:#087061;background:#e4f6f1}.sheet-trade-nav button>b.plumbing{color:#155cae;background:#eaf2ff}.sheet-trade-nav button>b.electrical{color:#8b5c00;background:#fff2d7}.sheet-trade-nav button>b.structural{color:#a23d3d;background:#ffeded}.sheet-trade-nav button>b.architectural{color:#6646a2;background:#f1ecff}.sheet-trade-nav button strong,.sheet-trade-nav button small{display:block}.sheet-trade-nav button strong{font-size:12px}.sheet-trade-nav button small{margin-top:3px;color:var(--muted);font-size:9px}.sheet-index{min-width:0;background:#fff}.sheet-index>header{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:16px 17px 12px}.sheet-index h3{margin:4px 0;font-size:17px}.sheet-index header p{margin:0;color:var(--muted);font-size:11px}.sheet-index-actions{display:flex;gap:7px}.sheet-index-actions button{white-space:nowrap}.sheet-status-key{display:flex;gap:17px;padding:0 17px 11px;color:var(--muted);font-size:10px}.sheet-status-key span{display:flex;gap:5px;align-items:center}.sheet-status-key i{width:7px;height:7px;border-radius:50%}.sheet-status-key i.recommended{background:#20826b}.sheet-status-key i.related{background:#2b66a5}.sheet-status-key i.review{background:#d68a16}.sheet-rows{border-top:1px solid var(--line)}.sheet-open{width:100%;display:grid;grid-template-columns:52px 1fr auto 14px;gap:10px;align-items:center;padding:10px 16px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.sheet-open:hover{background:#fafcff}.sheet-rows>.sheet-row[hidden]{display:none}.sheet-open>span{font-size:12px;font-weight:850}.sheet-rows strong,.sheet-rows small{display:block}.sheet-rows strong{font-size:12px}.sheet-rows small{margin-top:3px;color:var(--muted);font-size:10px}.sheet-open>i{color:#7c8c9c;font-style:normal}.sheet-tag{padding:4px 7px;border-radius:12px;font-size:9px}.sheet-tag.recommended{color:#08715f;background:#e6f5f0}.sheet-tag.related{color:#245e9b;background:#eaf2fc}.sheet-tag.review{color:#965d08;background:#fff2dc}.show-all-sheets{margin:12px 16px;padding:0;border:0;color:var(--blue);background:transparent;font-size:11px;font-weight:750;cursor:pointer}.document-history{border-top:1px solid var(--line)}.document-history>div:first-child{padding:18px 20px 10px}.document-history h3{margin:0 0 3px;font-size:15px}.document-history p{margin:0;color:var(--muted);font-size:11px}
.planroom-header-actions { display:flex; gap:9px; flex-wrap:wrap; }
.project-file-manager { margin:0 20px 22px; container-type:inline-size; }
.file-manager-toolbar { display:flex; justify-content:space-between; gap:16px; align-items:center; flex-wrap:wrap; margin:16px 0; min-height:42px; }
#planroomSelectionHint { color:var(--muted); font-size:.875rem; }
.file-manager-toolbar input[type="search"] { width:min(310px,100%); min-width:180px; margin-left:auto; padding:10px 12px; border:1px solid var(--line); border-radius:5px; font-size:.875rem; }
.file-selection-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.875rem; }
.file-selection-actions[hidden], #planroomSelectionHint[hidden], .project-file-menu[hidden], #planroomMoveField[hidden] { display:none; }
.file-selection-actions .outline, .danger-outline { min-height:36px; padding:0 12px; border-radius:5px; font-size:.875rem; font-weight:750; cursor:pointer; }
.danger-outline { border:1px solid #d8a7a7; color:#a13d3d; background:#fff; }
.danger-outline:hover { border-color:#b95b5b; background:#fff5f5; }
.file-clear-selection { border:0; padding:7px; background:transparent; color:var(--muted); cursor:pointer; font-size:.875rem; text-decoration:underline; }
.project-file-table { border:1px solid var(--line); border-radius:8px; }
.project-file-row { display:grid; grid-template-columns:44px minmax(180px,1fr) 124px minmax(210px,.55fr) 96px 48px; align-items:center; min-height:64px; border-bottom:1px solid var(--line); column-gap:12px; }
#projectFileRows>.project-file-row:last-child { border-bottom:0; }
.project-file-row>span { min-width:0; padding:14px 0; font-size:.875rem; }
.project-file-head { min-height:44px; border-radius:8px 8px 0 0; color:var(--muted); background:#f6f8fa; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.project-file-head>span { font-size:.75rem; }
.project-file-item { cursor:pointer; }
.project-file-item:hover { background:#faf7f0; }
.project-file-row.is-selected { background:#fff6e5; }
.project-file-selection { display:flex; justify-content:center; align-items:center; }
.project-file-selection input { width:18px; height:18px; min-height:18px; margin:0; padding:0; accent-color:#a95e0c; cursor:pointer; }
.project-file-name { padding-left:calc(var(--folder-depth,0) * 22px)!important; }
.project-file-open { display:flex; align-items:center; gap:10px; width:100%; min-width:0; padding:0; border:0; background:transparent; color:inherit; text-align:left; font:inherit; font-weight:750; cursor:pointer; }
.project-file-label { min-width:0; overflow-wrap:anywhere; line-height:1.45; }
.project-file-icon { width:34px; height:36px; flex:0 0 34px; display:grid; place-items:center; border-radius:5px; color:#87520b; background:#fff0d2; font-size:.625rem; font-weight:900; }
.project-file-icon.pdf { color:#a13d34; background:#ffe8e5; }
.project-file-icon.file { color:#245e9b; background:#e7f0fb; }
.folder-chevron { flex:0 0 12px; color:#6b7280; font-size:20px; font-style:normal; }
.file-date { white-space:nowrap; font-variant-numeric:tabular-nums; }
.project-file-row .file-modifier { overflow-wrap:anywhere; line-height:1.5; font-size:.8125rem; padding-right:12px; }
.project-file-row .file-size { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; padding-right:8px; }
.nested-file-row { background:#fbfcfe; }
.folder-empty-row { padding:16px 22px 16px 104px; color:var(--muted); border-bottom:1px solid var(--line); font-size:.875rem; }
.file-manager-empty { padding:28px; text-align:center; color:var(--muted); font-size:.875rem; }
.project-file-more { width:36px; height:36px; padding:5px; border:0; border-radius:5px; background:transparent; cursor:pointer; }
.project-file-more:hover { background:#eee9df; }
.project-file-open:focus-visible, .project-file-more:focus-visible, .project-file-selection input:focus-visible { outline:2px solid #a95e0c; outline-offset:3px; }
.project-file-menu-wrap { position:relative; display:grid; place-items:center; }
.project-file-menu { position:absolute; z-index:30; top:35px; right:7px; width:165px; padding:5px; border:1px solid #d8dde4; border-radius:7px; background:#fff; box-shadow:0 10px 28px rgba(32,43,55,.18); }
#projectFileRows>.project-file-row:last-child .project-file-menu { top:auto; bottom:35px; }
.project-file-menu button { width:100%; padding:10px; border:0; border-radius:4px; background:transparent; text-align:left; font-size:.875rem; font-weight:700; cursor:pointer; }
.project-file-menu button:hover, .project-file-menu button:focus-visible { background:#f3f6f9; }
.project-file-menu button.danger { color:#a13d3d; }
.project-file-menu button.danger:hover { background:#fff1f1; }
.planroom-manage-dialog { width:min(520px,calc(100% - 28px)); }
.planroom-manage-dialog p { line-height:1.55; }
.planroom-manage-items { max-height:180px; overflow:auto; padding-left:22px; font-size:.875rem; overflow-wrap:anywhere; }
.planroom-manage-items li { margin:8px 0; }
.planroom-delete-confirm.primary { background:#ae3730; border-color:#ae3730; color:white; }
.planroom-manage-dialog button:disabled { opacity:.6; cursor:wait; }
.smart-views-heading { display:flex; justify-content:space-between; gap:15px; align-items:center; padding:20px; border-top:1px solid var(--line); background:#fffaf1; }
.smart-views-heading h3 { margin:3px 0; font-size:17px; }
.smart-views-heading p { margin:0; color:var(--muted); font-size:12px; }
@container (max-width:960px) {
  .project-file-row { grid-template-columns:40px minmax(160px,1fr) 112px 80px 40px; column-gap:10px; }
  .project-file-row .file-modifier { display:none; }
}
@container (max-width:640px) {
  .project-file-row { grid-template-columns:32px minmax(0,1fr) 72px 36px; column-gap:6px; }
  .project-file-row .file-date { display:none; }
  .project-file-name { padding-left:calc(min(var(--folder-depth,0),3) * 12px)!important; }
  .project-file-open { gap:6px; }
  .project-file-icon { width:28px; flex-basis:28px; }
  .project-file-row>span { font-size:.8125rem; }
  .file-manager-toolbar input[type="search"] { width:100%; margin:0; }
}
@media(max-width:620px) {
  .planroom-file-header,.smart-views-heading { align-items:stretch; flex-direction:column; }
  .project-file-manager { margin-left:12px; margin-right:12px; }
}
.upload-destination{display:grid;gap:6px;margin:14px 0;font-size:12px;font-weight:800}.upload-destination select,.upload-destination input{min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit}
@media(max-width:900px){.sheet-set-summary{grid-template-columns:48px 1fr}.sheet-set-summary .index-complete,.sheet-set-summary>button{grid-column:2;justify-self:start;text-align:left}.sheet-workspace{grid-template-columns:1fr}.sheet-trade-nav{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.sheet-trade-nav>div{min-width:150px}.sheet-trade-nav button{min-width:185px}.planroom-metrics{grid-template-columns:repeat(2,1fr)}.planroom-metrics div:nth-child(2){border-right:0}.planroom-metrics div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:620px){.smart-planroom .section-toolbar,.sheet-index>header{align-items:flex-start;flex-direction:column}.sheet-set-summary,.planroom-metrics,.sheet-workspace{margin-left:12px;margin-right:12px}.sheet-index-actions{width:100%;flex-wrap:wrap}.sheet-open{grid-template-columns:45px 1fr 13px}.sheet-tag{grid-column:2;width:fit-content}.sheet-open>i{grid-column:3;grid-row:1/3}.sheet-status-key{flex-wrap:wrap}}
.drawing-upload-dialog{width:min(700px,calc(100% - 28px))}.drawing-upload-fields{margin-top:14px}.drawing-upload-fields label.full{grid-column:1/-1}.drawing-upload-fields input[readonly]{color:#596775;background:#f3f5f6}.drawing-upload-progress{padding:13px;margin-top:14px;border:1px solid #cbd9e8;background:#f6faff}.drawing-upload-progress>div{display:flex;justify-content:space-between;margin-bottom:8px;color:#3d5063;font-size:12px;font-weight:750}.drawing-upload-progress progress{width:100%;height:9px;accent-color:#1f6fc2}

.smartview-toolbar{display:flex;align-items:flex-end;gap:14px;margin:18px 20px 0}.smartview-toolbar label{display:grid;gap:6px;flex:1;min-width:0;font-size:12px;font-weight:700}.smartview-toolbar select{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit}.smartview-toolbar button{flex-shrink:0}.smartview-error{margin:12px 20px}.file-selection-actions #showPlanroomSelection[hidden]{display:none}#deleteSmartViewName{overflow-wrap:anywhere;font-weight:700}.smartview-toolbar select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media(max-width:620px){.smartview-toolbar{align-items:stretch;flex-direction:column}.smartview-toolbar button{align-self:flex-start}}
.smartview-sources { margin:16px 20px; border:1px solid var(--line); background:#fff; }
.smartview-sources[hidden], #deleteSmartView[hidden] { display:none; }
.smartview-sources summary { padding:12px 16px; font-size:14px; font-weight:750; cursor:pointer; }
.smartview-source-file { display:flex; align-items:center; gap:12px; padding:12px 16px; border-top:1px solid var(--line); }
.smartview-source-file>div { flex:1; min-width:0; }
.smartview-source-file strong { display:block; font-size:14px; overflow-wrap:anywhere; }
.smartview-source-file small { display:block; margin-top:4px; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.smartview-source-file small.smartview-source-error { color:#b42318; }
.smartview-source-file a,.smartview-source-file button { flex-shrink:0; font-size:14px; text-decoration:none; }
.sheet-rows small.sheet-source-file { color:var(--blue); font-size:13px; overflow-wrap:anywhere; }
@media(max-width:620px) { .smartview-sources { margin:12px; } .smartview-source-file { flex-wrap:wrap; } .smartview-source-file>div { flex-basis:100%; } }
.team-access-banner {display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:22px;border:1px solid #d8d9d1;border-top:3px solid #a85c12;background:#fff;}
.team-access-banner p {margin:6px 0 0;color:#687064;}.team-access-banner a {padding:12px 16px;background:#a85c12;color:#fff;text-decoration:none;font-weight:700;border-radius:4px;}
.auth-recovery {border:0;background:none;color:#a85c12;text-decoration:underline;padding:8px;cursor:pointer;font:inherit;}
@media(max-width:700px){.team-access-banner {flex-direction:column;align-items:stretch;}}

/* Keep complete sheet identifiers readable beside multi-line descriptions. */
.sheet-open { grid-template-columns:minmax(96px,120px) minmax(0,1fr) auto 14px; }
.sheet-open>span { font-size:14px; overflow-wrap:anywhere; }
.sheet-rows strong { font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.sheet-rows #sheetViewEmpty[hidden] { display:none; }
@media(max-width:620px) { .sheet-open { grid-template-columns:90px minmax(0,1fr) 13px; } }

.sheet-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; border-bottom:1px solid var(--line); }
.sheet-row .sheet-open { border-bottom:0; }
.sheet-download { align-self:center; margin:8px 14px 8px 0; padding:7px 10px; border:1px solid var(--line); color:var(--blue); background:#fff; font-size:13px; font-weight:700; cursor:pointer; }
.sheet-download:hover { background:var(--blue-soft); }
.sheet-download:focus-visible,.sheet-open:focus-visible { outline:2px solid var(--blue); outline-offset:-2px; }
#smartViewDownloadMeter { width:100%; height:12px; accent-color:var(--blue); }
#saveSmartViewPdf { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
#saveSmartViewPdf[hidden],#smartViewDownloadError[hidden],#smartViewDownloadMeter[hidden] { display:none; }
@media(max-width:760px) { .sheet-row { grid-template-columns:minmax(0,1fr); } .sheet-download { justify-self:end; margin:0 14px 10px; } }
