:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--brand:#1b3a5c;--brand-accent:#2e86ab;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{box-sizing:border-box;flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--ds-zinc-50:#fafafa;--ds-zinc-100:#f4f4f5;--ds-zinc-200:#e4e4e7;--ds-zinc-300:#d4d4d8;--ds-zinc-400:#a1a1aa;--ds-zinc-500:#71717a;--ds-zinc-600:#52525b;--ds-zinc-700:#3f3f46;--ds-zinc-800:#27272a;--ds-zinc-900:#18181b;--ds-zinc-950:#09090b;--ds-bg:#fff;--ds-surface:var(--ds-zinc-50);--ds-border:var(--ds-zinc-200);--ds-border-strong:var(--ds-zinc-300);--ds-text:var(--ds-zinc-900);--ds-text-secondary:var(--ds-zinc-600);--ds-text-tertiary:var(--ds-zinc-500);--ds-pill-customer-bg:#eff6ff;--ds-pill-customer-fg:#1e3a8a;--ds-pill-lead-bg:#fffbeb;--ds-pill-lead-fg:#78350f;--ds-pill-vendor-bg:#fdf2f8;--ds-pill-vendor-fg:#831843;--ds-pill-partner-bg:#f5f3ff;--ds-pill-partner-fg:#4c1d95;--ds-success:#059669;--ds-warning:#d97706;--ds-danger:#dc2626;--ds-radius-sm:4px;--ds-radius-md:6px;--ds-radius-lg:8px;--ds-radius-pill:9999px;--ds-avatar-1:linear-gradient(135deg, #e1f5ee, #c0dd97);--ds-avatar-1-fg:#173404;--ds-avatar-2:linear-gradient(135deg, #faeeda, #f5c4b3);--ds-avatar-2-fg:#4a1b0c;--ds-avatar-3:linear-gradient(135deg, #eeedfe, #cecbf6);--ds-avatar-3-fg:#26215c;--ds-avatar-4:linear-gradient(135deg, #e1f5ee, #9fe1cb);--ds-avatar-4-fg:#04342c;--ds-avatar-5:linear-gradient(135deg, #e6f1fb, #a8c8e8);--ds-avatar-5-fg:#0c447c;--ds-avatar-6:linear-gradient(135deg, #fbeaf0, #f0b8cc);--ds-avatar-6-fg:#4b1528;--ds-shadow-sm:0 1px 2px #0000000a;--ds-shadow-md:0 4px 12px #0000000f;--ds-shadow-lg:0 12px 32px #00000014}@keyframes ds-pulse-slow{0%,to{opacity:1}50%{opacity:.4}}@keyframes ds-shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.ds-pulse-slow{animation:2s ease-in-out infinite ds-pulse-slow}.loading-screen,.auth-screen{background:var(--ds-surface);place-items:center;min-height:100svh;display:grid}.auth-panel{background:var(--ds-bg);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);width:min(420px,100vw - 32px);box-shadow:var(--ds-shadow-md);padding:28px}.auth-panel h1,.page h1{color:var(--ds-text);letter-spacing:0;margin:0;font-size:28px;line-height:1.1}.auth-panel label,.form-grid label{color:var(--ds-text-secondary);gap:6px;margin-top:14px;font-size:13px;font-weight:650;display:grid}input,select,textarea{box-sizing:border-box;border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-md);background:var(--ds-bg);width:100%;min-height:38px;color:var(--ds-text);font:inherit;padding:0 10px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}textarea{resize:vertical;min-height:78px;padding-top:9px}code{color:var(--ds-text)}.app-shell{background:var(--ds-surface);grid-template-columns:240px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{background:var(--ds-bg);border-right:1px solid var(--ds-border);box-sizing:border-box;flex-direction:column;justify-content:space-between;gap:24px;min-height:100svh;padding:24px 18px;display:flex}.brand{color:var(--brand);align-items:center;gap:10px;font-size:20px;font-weight:800;text-decoration:none;display:inline-flex}.brand small{color:var(--ds-text-tertiary);margin-top:1px;font-size:11px;font-weight:700;line-height:1;display:block}.brand-mark{border-radius:var(--ds-radius-md);background:var(--brand);color:#fff;place-items:center;width:34px;height:34px;font-size:17px;font-weight:900;display:inline-grid}.nav-list{gap:6px;margin-top:28px;display:grid}.nav-list a,.sidebar-footer button{border-radius:var(--ds-radius-md);min-height:36px;color:var(--ds-text-secondary);align-items:center;gap:9px;font-size:14px;font-weight:650;text-decoration:none;display:flex}.nav-list a{padding:0 10px}.nav-list a:hover{background:var(--ds-zinc-100);color:var(--ds-text)}.nav-list a.active{color:var(--brand);background:#eef6fb}.nav-list a svg,.sidebar-footer button svg{flex:none}.sidebar-footer{color:var(--ds-text-tertiary);gap:10px;font-size:12px;display:grid}.user-chip{border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:8px;display:grid}.user-chip span{border-radius:var(--ds-radius-md);background:var(--brand-accent);color:#fff;place-items:center;width:30px;height:30px;font-weight:900;display:inline-grid}.user-chip strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar-footer button,.secondary-button,.secondary-link-button,.mini-button{border:1px solid var(--ds-border-strong);background:var(--ds-bg);color:var(--ds-text);cursor:pointer;justify-content:center;padding:0 12px}.secondary-link-button{border-radius:var(--ds-radius-md);align-items:center;gap:8px;min-height:38px;font-size:13px;font-weight:750;text-decoration:none;display:inline-flex}.secondary-button.danger-action{color:#991b1b;border-color:#fecaca}.main-pane{min-width:0}.page{box-sizing:border-box;width:min(1160px,100vw - 288px);padding:32px}.page-header,.panel-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.eyebrow{color:var(--brand-accent);text-transform:uppercase;letter-spacing:0;margin:0 0 6px;font-size:12px;font-weight:800}.muted,.panel-header p,.hint-line{color:var(--ds-text-secondary);font-size:13px}.panel-header p{margin:4px 0 0}.primary-button,.secondary-button,.mini-button{border-radius:var(--ds-radius-md);min-height:38px;font:inherit;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:750;display:inline-flex}.primary-button{border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;padding:0 14px}.primary-link-button{border:1px solid var(--brand);border-radius:var(--ds-radius-md);background:var(--brand);color:#fff;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-size:13px;font-weight:750;text-decoration:none;display:inline-flex}.text-button{color:var(--brand-accent);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:12px;font-size:13px;font-weight:750}.primary-button:disabled,.secondary-button:disabled,.mini-button:disabled{opacity:.55;cursor:not-allowed}.summary-strip{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;display:grid}.summary-strip>div{background:var(--ds-bg);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);align-content:center;gap:6px;min-height:76px;padding:14px;display:grid}.summary-strip span{color:var(--ds-text-tertiary);text-transform:uppercase;font-size:11px;font-weight:750}.summary-strip strong{color:var(--ds-text);font-size:16px}.panel{background:var(--ds-bg);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);margin-bottom:16px;padding:18px}.panel h2{color:var(--ds-text);letter-spacing:0;margin:0;font-size:16px;font-weight:800;line-height:1.2}.method-grid{gap:8px;display:grid}.method-option{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);color:var(--ds-text);grid-template-columns:18px 180px 1fr;align-items:center;gap:10px;padding:10px;font-size:13px;display:grid}.method-option input{width:16px;min-height:16px}.method-option span{font-weight:750}.method-option small{color:var(--ds-text-secondary);font-size:12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.bucket-rate-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.toggle-row{grid-template-columns:18px 1fr;align-content:end;align-items:center}.toggle-row input{width:16px;min-height:16px}.hint-line{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);margin-top:14px;padding:10px 12px}.button-row{flex-wrap:wrap;gap:8px;display:flex}.compact-table,.editable-table{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);gap:0;display:grid;overflow:hidden}.table-row,.mapping-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);align-items:center;gap:12px;padding:8px 10px;font-size:13px;display:grid}.table-row:last-child,.mapping-row:last-child{border-bottom:0}.three-col{grid-template-columns:180px 120px 1fr}.history-row{grid-template-columns:150px 180px minmax(0,1fr)}.mapping-row{grid-template-columns:1fr 200px 1.5fr}.table-head{color:var(--ds-text-tertiary);background:var(--ds-surface);text-transform:uppercase;font-size:11px;font-weight:800}.error-banner,.success-banner,.warning-banner{border-radius:var(--ds-radius-lg);margin-bottom:16px;padding:12px 14px;font-size:13px}.error-banner{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.success-banner{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.warning-banner{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.dashboard-page{width:min(1280px,100vw - 288px)}.page-subtitle{max-width:680px;color:var(--ds-text-secondary);margin-top:8px;font-size:14px}.dashboard-summary{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.metric-card{min-width:0;position:relative}.metric-card .metric-icon{margin-bottom:2px}.metric-card small{color:var(--ds-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.metric-icon{border-radius:var(--ds-radius-md);width:32px;height:32px;color:var(--brand);background:#eef6fb;place-items:center;display:inline-grid}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.workflow-card{border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-bg);min-height:250px;color:var(--ds-text);flex-direction:column;justify-content:space-between;gap:18px;padding:20px;text-decoration:none;display:flex}.workflow-card:hover{border-color:var(--brand-accent);box-shadow:var(--ds-shadow-md)}.workflow-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-topline span,.roadmap-item em{border-radius:var(--ds-radius-pill);color:#166534;background:#f0fdf4;padding:4px 8px;font-size:11px;font-style:normal;font-weight:800}.workflow-card h2{color:var(--ds-text);margin:0;font-size:20px;font-weight:850}.workflow-card p{color:var(--ds-text-secondary);font-size:14px}.workflow-card>strong{color:var(--brand);align-items:center;gap:8px;font-size:13px;display:inline-flex}.roadmap-panel{grid-column:1/-1}.roadmap-list{gap:10px;display:grid}.roadmap-item{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.roadmap-item strong{color:var(--ds-text);font-size:13px;display:block}.roadmap-item span{color:var(--ds-text-secondary);margin-top:2px;font-size:12px;display:block}.company-settings-page{width:min(1320px,100vw - 288px)}.structure-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.structure-panel:last-child{grid-column:auto}.structure-form{grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:8px;margin-bottom:12px;display:grid}.service-line-form{grid-template-columns:repeat(5,minmax(120px,1fr)) auto}.structure-table{overflow-x:auto}.structure-row{grid-template-columns:minmax(150px,1.2fr) minmax(110px,.7fr) minmax(160px,1fr) 110px 96px;min-width:680px}.archived-row{opacity:.62}.estimate-page{width:min(1440px,100vw - 288px)}.estimate-summary{grid-template-columns:repeat(4,minmax(150px,1fr))}.estimate-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.estimate-main,.estimate-side{min-width:0}.estimate-side{position:sticky;top:20px}.estimate-detail-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.wide-field{min-width:0}.estimate-lines-panel{overflow:hidden}.estimate-lines{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);gap:0;display:grid;overflow-x:auto}.estimate-line{border-bottom:1px solid var(--ds-border);background:var(--ds-bg);grid-template-columns:150px 150px minmax(220px,1.4fr) 76px 70px 150px 92px 92px 140px 110px 186px;align-items:center;gap:8px;min-width:1240px;padding:8px;display:grid}.estimate-line:last-child{border-bottom:0}.estimate-line-head{min-height:34px;color:var(--ds-text-tertiary);background:var(--ds-surface);text-transform:uppercase;font-size:11px;font-weight:800}.estimate-line input,.estimate-line select{min-height:34px;font-size:12px}.production-cell{grid-template-columns:minmax(0,1fr) 64px;gap:6px;display:grid}.line-total{gap:2px;display:grid}.line-total strong{color:var(--ds-text);font-size:13px}.line-total span{color:var(--ds-text-tertiary);font-size:11px}.line-actions{grid-template-columns:46px 56px 68px;align-items:center;gap:6px;display:grid}.icon-check{color:var(--ds-text-secondary);grid-template-columns:14px 1fr;align-items:center;gap:4px;font-size:11px;font-weight:750;display:inline-grid}.icon-check input{width:14px;min-height:14px}.mini-button{gap:4px;min-height:30px;padding:0 8px;font-size:11px}.mini-button.danger{color:#991b1b;border-color:#fecaca}.profit-list{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.template-actions{gap:10px;display:grid}.template-actions label{color:var(--ds-text-secondary);gap:6px;font-size:13px;font-weight:650;display:grid}.template-hint{margin-top:0}.metric-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:8px;padding:10px 12px;font-size:13px;display:grid}.metric-row:last-child{border-bottom:0}.metric-row strong{color:var(--ds-text)}.metric-row em{color:var(--ds-text-tertiary);grid-column:2;font-size:12px;font-style:normal}.metric-row.strong{background:var(--ds-surface);font-weight:800}.estimate-recent-row{color:var(--ds-text-secondary);grid-template-columns:88px minmax(0,1fr) 70px 88px;text-decoration:none}.estimate-recent-row:hover{background:var(--ds-surface)}.status-badge{border-radius:var(--ds-radius-pill);background:var(--ds-zinc-100);width:fit-content;color:var(--ds-text-secondary);text-transform:capitalize;white-space:nowrap;align-items:center;padding:3px 8px;font-size:11px;font-weight:800;display:inline-flex}.status-draft{color:#3f3f46;background:#f4f4f5}.status-internal_review,.status-sent{color:#1d4ed8;background:#eff6ff}.status-approved,.status-converted{color:#166534;background:#f0fdf4}.status-lost,.status-void{color:#991b1b;background:#fef2f2}.status-unscheduled{color:#92400e;background:#fffbeb}.status-scheduled,.status-in_progress{color:#1d4ed8;background:#eff6ff}.status-complete,.status-closed{color:#166534;background:#f0fdf4}.status-cancelled{color:#991b1b;background:#fef2f2}.status-blocked,.status-not_ready{color:#92400e;background:#fffbeb}.status-ready,.status-invoiced,.status-won{color:#166534;background:#f0fdf4}.status-negotiation{color:#5b21b6;background:#f5f3ff}.status-qualifying,.status-site_visit,.status-estimating,.status-proposal_sent{color:#1d4ed8;background:#eff6ff}.estimate-detail-page{width:min(1440px,100vw - 288px)}.estimate-detail-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.detail-line-table{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow-x:auto}.detail-line-row{border-bottom:1px solid var(--ds-border);min-width:920px;color:var(--ds-text-secondary);grid-template-columns:150px minmax(240px,1fr) 100px 110px 110px 140px 110px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:grid}.detail-line-row:last-child{border-bottom:0}.detail-line-row strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.detail-line-head{color:var(--ds-text-tertiary);background:var(--ds-surface);text-transform:uppercase;font-size:11px;font-weight:800}.snapshot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.snapshot-grid>div{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);gap:5px;padding:12px;display:grid}.snapshot-grid span{color:var(--ds-text-tertiary);text-transform:uppercase;font-size:11px;font-weight:800}.snapshot-grid strong{color:var(--ds-text);font-size:13px}.workflow-steps{gap:8px;display:grid}.workflow-step{color:var(--ds-text-secondary);grid-template-columns:18px minmax(0,1fr);align-items:center;gap:10px;font-size:13px;display:grid}.workflow-step span{border:2px solid var(--ds-border-strong);border-radius:var(--ds-radius-pill);box-sizing:border-box;width:14px;height:14px}.workflow-step strong{color:inherit}.workflow-step.complete span,.workflow-step.active span{border-color:var(--brand-accent);background:var(--brand-accent)}.workflow-step.active{color:var(--brand)}.record-list{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.full-width-action{box-sizing:border-box;width:100%;margin-top:14px}.jobs-page,.customers-page,.property-detail-page,.schedule-page,.job-costing-page,.field-page,.pipeline-page,.billing-page{width:min(1280px,100vw - 288px)}.empty-state{border:1px dashed var(--ds-border-strong);border-radius:var(--ds-radius-lg);background:var(--ds-surface);min-height:220px;color:var(--ds-text-secondary);text-align:center;align-content:center;place-items:center;gap:10px;display:grid}.empty-state svg{color:var(--brand-accent)}.empty-state strong{color:var(--ds-text)}.empty-state p{max-width:380px;font-size:13px}.jobs-table{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow-x:auto}.job-row{border-bottom:1px solid var(--ds-border);min-width:1160px;color:var(--ds-text-secondary);grid-template-columns:130px minmax(150px,1fr) minmax(150px,1fr) 120px 110px 110px 130px 100px 150px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.job-row:last-child{border-bottom:0}.job-row strong{color:var(--ds-text)}.job-row>a,.property-row a{color:var(--brand);justify-content:flex-end;align-items:center;gap:6px;font-weight:800;text-decoration:none;display:inline-flex}.inline-link{color:var(--brand);font-weight:800;text-decoration:none}.property-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.property-main,.property-side{min-width:0}.property-side{position:sticky;top:20px}.property-table{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow-x:auto}.property-row{border-bottom:1px solid var(--ds-border);min-width:900px;color:var(--ds-text-secondary);grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) 130px 110px 110px 100px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.property-row:last-child{border-bottom:0}.property-row strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.customer-property-row{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) 130px minmax(180px,1fr) 90px 110px 100px;min-width:1050px}.property-row-head,.job-row-head{color:var(--ds-text-tertiary);background:var(--ds-surface);text-transform:uppercase;font-size:11px;font-weight:800}.ticket-list{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.ticket-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:minmax(220px,1fr) 140px 160px 120px 82px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.ticket-row:last-child{border-bottom:0}.ticket-row>div{gap:3px;min-width:0;display:grid}.ticket-row strong{color:var(--ds-text)}.ticket-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.schedule-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.schedule-main,.schedule-side{min-width:0}.schedule-side{position:sticky;top:20px}.compact-empty{min-height:180px}.schedule-ticket-list,.crew-load-list,.crew-assignment-list{gap:10px;display:grid}.schedule-ticket{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-bg);grid-template-columns:minmax(0,1fr) minmax(130px,150px);align-items:end;gap:12px;padding:12px;display:grid}.schedule-ticket>div{grid-column:1/-1}.schedule-ticket>button{grid-column:1/-1;justify-self:end;min-width:130px}.schedule-ticket-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.schedule-ticket-actions .secondary-link-button,.schedule-ticket-actions .primary-button{min-width:96px}.schedule-ticket>div,.crew-load-header>div{gap:4px;min-width:0;display:grid}.schedule-ticket strong,.crew-load-card strong,.crew-assignment-list strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.schedule-ticket span,.schedule-ticket small,.crew-load-card small,.crew-assignment-list span{min-width:0;color:var(--ds-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.schedule-ticket label{color:var(--ds-text-secondary);gap:6px;font-size:12px;font-weight:750;display:grid}.crew-load-card{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-bg);gap:10px;padding:12px;display:grid}.crew-load-header{grid-template-columns:12px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.crew-load-header>span{border-radius:var(--ds-radius-pill);width:12px;height:36px}.crew-assignment-list{border-top:1px solid var(--ds-border);padding-top:8px}.capacity-load-list{border-top:1px solid var(--ds-border);gap:6px;padding-top:8px;display:grid}.capacity-load-row{color:var(--ds-text-secondary);grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12px;display:grid}.capacity-load-row strong{color:var(--ds-text)}.capacity-load-row em{color:var(--ds-danger);font-style:normal;font-weight:800}.capacity-load-row.over-capacity strong{color:var(--ds-danger)}.capacity-warning{border:1px solid color-mix(in srgb, var(--ds-warning) 42%, var(--ds-border));border-radius:var(--ds-radius-md);background:color-mix(in srgb, var(--ds-warning) 10%, var(--ds-bg));color:var(--ds-text);grid-column:1/-1;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:750;display:flex}.capacity-warning.compact{padding:6px 8px}.capacity-warning svg{color:var(--ds-warning);flex:none}.crew-assignment-card{border-bottom:1px solid var(--ds-border);gap:8px;padding:8px 0;display:grid}.crew-assignment-card:last-child{border-bottom:0;padding-bottom:0}.crew-assignment-card>div:first-child{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px;min-width:0;font-size:12px;display:grid}.crew-assignment-card small{grid-column:2}.assignment-move-grid{grid-template-columns:minmax(0,1fr) 112px;gap:6px;display:grid}.assignment-move-grid select,.assignment-move-grid input,.assignment-move-grid button{min-height:32px;font-size:12px}.field-assignment-link{justify-self:start;min-height:32px}.job-costing-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.job-costing-main,.job-costing-side{min-width:0}.job-costing-side{position:sticky;top:20px}.compact-select{width:min(360px,100%)}.cost-bucket-table,.variance-list{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.cost-bucket-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:minmax(150px,1fr) 130px 130px 130px 110px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.cost-bucket-row:last-child,.variance-row:last-child{border-bottom:0}.cost-bucket-row strong{color:var(--ds-text)}.cost-bucket-head{color:var(--ds-text-tertiary);background:var(--ds-surface);text-transform:uppercase;font-size:11px;font-weight:800}.variance-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:130px 100px 130px minmax(0,1fr);align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.variance-row strong{color:var(--ds-danger)}.variance-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.invoice-readiness-panel{gap:14px;display:grid}.invoice-readiness-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.invoice-readiness-summary>div{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);gap:5px;padding:12px;display:grid}.invoice-readiness-summary span{color:var(--ds-text-tertiary);text-transform:uppercase;font-size:11px;font-weight:800}.invoice-readiness-summary strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.invoice-blocker-list,.invoice-event-list{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.invoice-event-list h3{border-bottom:1px solid var(--ds-border);background:var(--ds-surface);color:var(--ds-text);margin:0;padding:10px 12px;font-size:13px;font-weight:850}.invoice-blocker-row,.invoice-event-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:130px minmax(0,1fr) minmax(110px,160px);align-items:center;gap:12px;padding:10px 12px;font-size:12px;display:grid}.invoice-blocker-row:last-child,.invoice-event-row:last-child{border-bottom:0}.invoice-blocker-row strong,.invoice-event-row strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.invoice-blocker-row small,.invoice-event-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pipeline-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.pipeline-main,.pipeline-side{min-width:0}.pipeline-side{position:sticky;top:20px}.pipeline-board{grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;padding-bottom:4px;display:grid;overflow-x:auto}.pipeline-filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.pipeline-filter-bar button{border:1px solid var(--ds-border);border-radius:var(--ds-radius-pill);background:var(--ds-bg);min-height:32px;color:var(--ds-text-secondary);padding:0 11px;font-size:12px;font-weight:800}.pipeline-filter-bar button:hover,.pipeline-filter-bar button.active{border-color:var(--brand-accent);color:var(--brand);background:#eef6fb}.pipeline-column{border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);align-content:start;gap:10px;min-width:220px;padding:10px;display:grid}.pipeline-column-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.pipeline-column-header strong{color:var(--ds-text);font-size:13px}.pipeline-column-header span{border-radius:var(--ds-radius-pill);background:var(--ds-bg);min-width:24px;min-height:24px;color:var(--ds-text-secondary);place-items:center;font-size:12px;font-weight:850;display:inline-grid}.pipeline-card-list{gap:10px;display:grid}.opportunity-card{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-bg);gap:10px;padding:12px;display:grid}.opportunity-card-header,.opportunity-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.opportunity-card>strong{color:var(--ds-text);font-size:14px;line-height:1.25}.opportunity-card p,.opportunity-card small{color:var(--ds-text-secondary);font-size:12px}.opportunity-scope,.opportunity-next{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.opportunity-next{border-radius:var(--ds-radius-md);background:var(--ds-surface);padding:8px;font-weight:750}.inline-check{color:var(--ds-text-secondary);align-items:center;gap:8px;margin-top:0;font-size:12px;font-weight:800;display:inline-flex}.inline-check input{flex:none;width:16px;min-height:16px}.opportunity-milestones{flex-wrap:wrap;gap:6px;display:flex}.opportunity-milestones span{border:1px solid var(--ds-border);border-radius:var(--ds-radius-pill);background:var(--ds-surface);color:var(--ds-text-secondary);padding:3px 7px;font-size:11px;font-weight:750}.opportunity-activity-summary{border-left:3px solid var(--brand-accent);border-radius:var(--ds-radius-md);background:var(--ds-surface);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:5px;padding:8px;display:grid}.opportunity-activity-summary svg{margin-top:2px}.opportunity-loss{border-radius:var(--ds-radius-md);color:#991b1b;background:#fef2f2;padding:8px;font-weight:800}.opportunity-loss-input{min-width:120px;min-height:34px;font-size:12px}.opportunity-log-button{justify-content:center;min-height:32px;padding:0 9px;font-size:12px}.opportunity-activity-form{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);gap:8px;padding:10px;display:grid}.opportunity-activity-form textarea{min-height:68px}.opportunity-activity-form label span{color:var(--ds-text-secondary);font-size:11px;font-weight:800}.opportunity-activity-form .primary-button{min-height:34px;font-size:12px}.opportunity-money{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:8px;display:grid}.opportunity-money span{color:var(--ds-text);font-size:16px;font-weight:850}.opportunity-money small{white-space:nowrap}.opportunity-actions select{min-height:34px;font-size:12px}.opportunity-actions .secondary-link-button{min-height:34px;padding:0 9px;font-size:12px}.urgency-pill{border-radius:var(--ds-radius-pill);background:var(--ds-zinc-100);width:fit-content;color:var(--ds-text-secondary);white-space:nowrap;align-items:center;gap:4px;padding:3px 7px;font-size:11px;font-weight:800;display:inline-flex}.urgency-bad{color:#991b1b;background:#fef2f2}.urgency-warning{color:#92400e;background:#fffbeb}.urgency-good,.urgency-done{color:#166534;background:#f0fdf4}.billing-table{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow-x:auto}.billing-row{border-bottom:1px solid var(--ds-border);min-width:1120px;color:var(--ds-text-secondary);grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) 120px 120px minmax(180px,1.2fr) 180px 150px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.billing-row:last-child{border-bottom:0}.billing-row-head{color:var(--ds-text-tertiary);background:var(--ds-surface);text-transform:uppercase;font-size:11px;font-weight:800}.billing-row>div{gap:3px;min-width:0;display:grid}.billing-row strong{color:var(--ds-text)}.billing-row span,.billing-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.billing-row input{min-height:34px;font-size:12px}.billing-row .primary-button,.billing-row .secondary-link-button{min-height:34px;padding:0 10px;font-size:12px}.actual-form{gap:12px;display:grid}.actual-form label,.catalog-form label{color:var(--ds-text-secondary);gap:6px;font-size:12px;font-weight:750;display:grid}.actual-form-pair{grid-template-columns:1fr 90px;gap:10px;display:grid}.field-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:16px;display:grid}.field-main,.field-side{min-width:0}.field-side{position:sticky;top:20px}.field-ticket-context{grid-template-columns:minmax(240px,1.4fr) repeat(5,minmax(110px,1fr));align-items:stretch;gap:10px;display:grid}.field-ticket-context label,.field-entry-card label,.completion-card label{color:var(--ds-text-secondary);gap:6px;font-size:12px;font-weight:750;display:grid}.field-ticket-context>div{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);align-content:center;gap:5px;padding:10px 12px;display:grid}.field-ticket-context span{color:var(--ds-text-tertiary);text-transform:uppercase;font-size:11px;font-weight:800}.field-ticket-context strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.field-entry-list,.completion-list{gap:10px;display:grid}.field-entry-card,.completion-card{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-bg);gap:10px;padding:12px;display:grid}.field-entry-summary{grid-template-columns:104px minmax(0,1fr) 132px;align-items:center;gap:12px;display:grid}.clock-out-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.field-entry-summary>div{gap:3px;min-width:0;display:grid}.field-entry-summary strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.field-entry-summary small,.field-entry-summary>span:last-child{min-width:0;color:var(--ds-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.completion-card .hint-line{margin:0}.field-history-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-history-grid h3{color:var(--ds-text);margin:0 0 8px;font-size:13px;font-weight:850}.field-history-list{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.field-history-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:104px minmax(0,1fr);align-items:center;gap:8px 12px;padding:10px 12px;font-size:12px;display:grid}.field-history-row:last-child{border-bottom:0}.field-history-row strong{min-width:0;color:var(--ds-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.field-history-row small{text-overflow:ellipsis;white-space:nowrap;grid-column:2;min-width:0;overflow:hidden}.good-text{color:var(--ds-success)!important}.bad-text{color:var(--ds-danger)!important}.catalog-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.catalog-main,.catalog-side{min-width:0}.catalog-side{position:sticky;top:20px}.catalog-table{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.catalog-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:minmax(220px,1.2fr) 130px 120px 150px 120px 120px 140px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.catalog-row:last-child{border-bottom:0}.catalog-row>div:first-child{gap:3px;min-width:0;display:grid}.catalog-row strong{color:var(--ds-text)}.catalog-row small{min-width:0;color:var(--ds-text-tertiary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.catalog-readiness{flex-wrap:wrap;align-items:center;gap:5px;min-width:0;display:flex}.catalog-readiness small{flex-basis:100%}.readiness-pill{border:1px solid var(--ds-border);border-radius:var(--ds-radius-pill);background:var(--ds-surface);min-width:0;color:var(--ds-text-tertiary);align-items:center;padding:2px 7px;font-size:11px;font-weight:800;display:inline-flex}.readiness-pill.good{border-color:color-mix(in srgb, var(--ds-success), transparent 65%);background:color-mix(in srgb, var(--ds-success), transparent 92%);color:var(--ds-success)}.catalog-row-head{color:var(--ds-text-tertiary);background:var(--ds-surface);text-transform:uppercase;font-size:11px;font-weight:800}.catalog-form{gap:12px;display:grid}.row-actions{justify-content:flex-end}.learning-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.learning-main,.learning-side{min-width:0}.learning-side{position:sticky;top:20px}.learning-list,.learning-group-list{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.learning-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.learning-filter-grid label{color:var(--ds-text-secondary);gap:6px;font-size:12px;font-weight:750;display:grid}.learning-row{border-bottom:1px solid var(--ds-border);grid-template-columns:38px minmax(0,1fr) minmax(160px,230px);align-items:center;gap:12px;padding:12px;display:grid}.learning-row:last-child,.learning-group-row:last-child{border-bottom:0}.learning-row>div:nth-child(2){gap:4px;min-width:0;display:grid}.learning-row strong{color:var(--ds-text);font-size:13px}.learning-row span,.learning-row small{min-width:0;color:var(--ds-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.learning-row-meta{justify-items:end;gap:6px;min-width:0;display:grid}.learning-group-row{border-bottom:1px solid var(--ds-border);color:var(--ds-text-secondary);grid-template-columns:minmax(0,1fr) 50px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;display:grid}.learning-group-row strong{color:var(--ds-text);text-align:right}.proposal-page{width:min(980px,100%)}.proposal-sheet{border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-bg);box-shadow:var(--ds-shadow-sm);gap:28px;padding:42px;display:grid}.proposal-header{border-bottom:1px solid var(--ds-border);grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:start;gap:28px;padding-bottom:22px;display:grid}.proposal-brand{color:var(--brand);letter-spacing:0;font-size:13px;font-weight:850}.proposal-header h1{margin:8px 0;font-size:30px}.proposal-header p{color:var(--ds-text-secondary);margin:0}.proposal-header dl{gap:10px;margin:0;display:grid}.proposal-header dl div,.proposal-total div{justify-content:space-between;align-items:center;gap:16px;display:flex}.proposal-header dt,.proposal-total span{color:var(--ds-text-tertiary);text-transform:uppercase;font-size:12px;font-weight:800}.proposal-header dd{color:var(--ds-text);text-align:right;margin:0;font-weight:750}.proposal-section{gap:12px;display:grid}.proposal-context-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.proposal-context-block{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);gap:6px;padding:16px;display:grid}.proposal-context-block h2{color:var(--ds-text-tertiary);text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.proposal-context-block strong{font-size:16px}.proposal-context-block span{color:var(--ds-text-secondary);font-size:13px}.proposal-address{align-items:center;gap:6px;display:flex}.proposal-note{border-left:3px solid var(--brand-accent);background:var(--ds-surface);gap:8px;padding:14px 16px;display:grid}.proposal-note h2{margin:0;font-size:14px}.proposal-note p{color:var(--ds-text-secondary);margin:0;font-size:13px}.proposal-section-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.proposal-section h2{margin:0;font-size:18px}.proposal-section-heading p{color:var(--ds-text-secondary);margin:4px 0 0;font-size:13px}.proposal-section-heading>strong{white-space:nowrap;font-size:18px}.proposal-lines{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);display:grid;overflow:hidden}.proposal-line{border-bottom:1px solid var(--ds-border);grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:18px;padding:14px;display:grid}.proposal-line:last-child{border-bottom:0}.proposal-line div{gap:4px;min-width:0;display:grid}.proposal-line span{color:var(--ds-text-secondary);font-size:13px;line-height:1.4}.proposal-line>strong{text-align:right}.proposal-total{border-top:1px solid var(--ds-border);justify-self:end;gap:10px;width:min(320px,100%);padding-top:18px;display:grid}.proposal-total strong{font-size:20px}.proposal-grand-total{border-top:1px solid var(--ds-border);padding-top:10px}.proposal-total-note{color:var(--ds-text-secondary);margin:2px 0 0;font-size:12px;line-height:1.4}.proposal-acceptance{border-top:1px solid var(--ds-border);gap:18px;padding-top:22px;display:grid}.proposal-acceptance>div:first-child{color:var(--ds-text);align-items:center;gap:8px;display:flex}.proposal-signature-grid{grid-template-columns:minmax(0,1fr) 180px;gap:24px;display:grid}.proposal-signature-grid span{border-top:1px solid var(--ds-border-strong);color:var(--ds-text-tertiary);text-transform:uppercase;padding-top:18px;font-size:12px;font-weight:800}.proposal-terms{color:var(--ds-text-secondary);margin:0;font-size:12px}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--ds-border);min-height:auto}.page{width:100%;padding:20px}.summary-strip,.form-grid,.bucket-rate-grid,.dashboard-grid,.estimate-layout,.estimate-detail-grid,.estimate-detail-layout,.property-layout,.schedule-layout,.schedule-ticket,.job-costing-layout,.pipeline-layout,.field-layout,.billing-row,.field-ticket-context,.field-entry-summary,.clock-out-grid,.field-history-grid,.field-history-row,.invoice-readiness-summary,.invoice-blocker-row,.invoice-event-row,.cost-bucket-row,.catalog-layout,.catalog-row,.learning-layout,.learning-filter-grid,.learning-row,.proposal-header,.proposal-context-grid,.proposal-line,.proposal-signature-grid,.variance-row,.actual-form-pair,.opportunity-money,.ticket-row,.snapshot-grid{grid-template-columns:1fr}.dashboard-page,.estimate-page,.estimate-detail-page,.jobs-page,.customers-page,.property-detail-page,.schedule-page,.job-costing-page,.pipeline-page,.billing-page,.field-page{width:100%}.proposal-sheet{padding:24px}.proposal-header dd,.proposal-line>strong{text-align:left}.proposal-section-heading{align-items:start;display:grid}.estimate-side,.property-side,.schedule-side,.job-costing-side,.pipeline-side,.field-side,.catalog-side{position:static}.field-history-row small{grid-column:auto}.learning-row-meta{justify-items:start}.method-option,.mapping-row,.three-col,.history-row,.roadmap-item,.estimate-recent-row{grid-template-columns:1fr}}@media print{.sidebar,.no-print{display:none!important}.app-shell{background:#fff;display:block}.page{width:100%;padding:0}.proposal-sheet{box-shadow:none;border:0;padding:0}}
