:root{--navy:#1c2b3a;--navy-soft:#2e4258;--navy-deep:#131f2b;--orange:#e17b45;--orange-deep:#c85f2c;--orange-soft:#fbe9e0;--bg:#f5f6f8;--surface:#ffffff;--border:#d2d7dd;--border-strong:#a8b1bc;--text:#1c2b3a;--text-muted:#6b7684;--radius:10px;--radius-sm:6px;--shadow-sm:0 1px 2px rgba(28,43,58,0.06),0 1px 1px rgba(28,43,58,0.04);--shadow-md:0 6px 16px rgba(28,43,58,0.1),0 2px 4px rgba(28,43,58,0.06);--sidebar-width:232px;--accent-teal:#2f8f8a;--accent-purple:#6d5fa8;--accent-green:#1e7b34;--accent-blue:#2f6fa8}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--text);background-color:var(--bg);background-image:radial-gradient(circle at 100% 0,rgba(225,123,69,.09),transparent 45%),radial-gradient(circle at 0 100%,rgba(28,43,58,.05),transparent 40%);background-attachment:fixed}.app-shell,body{min-height:100vh}.app-shell{display:flex}.sidebar{width:var(--sidebar-width);background:var(--navy);background-image:linear-gradient(180deg,var(--navy) 0,var(--navy-deep) 100%);color:#fff;flex-direction:column;padding:22px 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;border-top-right-radius:20px;border-bottom-right-radius:20px}.sidebar,.sidebar-logo{flex-shrink:0;display:flex}.sidebar-logo{text-decoration:none;padding:0 8px;margin-bottom:28px}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;font-weight:500;font-size:.92rem;text-decoration:none;color:rgba(255,255,255,.68);padding:10px 12px;border-radius:var(--radius-sm);border-left:3px solid transparent;transition:background .15s ease,color .15s ease}.sidebar-link:hover{background:rgba(255,255,255,.08);color:#fff}.sidebar-link-active,.sidebar-link-active:hover{background:rgba(225,123,69,.18);color:#fff;border-left-color:var(--orange)}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:10px}.sidebar-user{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px}.sidebar-settings-link{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:var(--radius-sm);color:rgba(255,255,255,.65);transition:background .15s ease,color .15s ease}.sidebar-settings-link:hover{background:rgba(255,255,255,.1);color:#fff}.sidebar-user-name{display:block;font-size:.88rem;font-weight:600;color:#fff}.sidebar-user-role{font-size:.75rem;color:rgba(255,255,255,.55);text-transform:capitalize}.sidebar-logout{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.18);background:transparent;color:rgba(255,255,255,.85);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.sidebar-logout:hover{background:rgba(255,255,255,.1);color:#fff}.mobile-nav-toggle{display:none;align-items:center;justify-content:center;position:fixed;top:14px;left:14px;width:40px;height:40px;border:none;border-radius:var(--radius-sm);background:var(--navy);color:#fff;cursor:pointer;z-index:210;box-shadow:var(--shadow-md)}.mobile-nav-backdrop{display:none}.content-area{flex:1 1;min-width:0}main{max-width:1320px;margin:0 auto;padding:26px 36px 48px}h1{font-size:1.5rem;margin:0}h2{font-size:1.1rem;margin:0 0 12px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-header-card{background:var(--surface);border:2px solid var(--border-strong);border-left:4px solid var(--navy);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:18px 24px;margin-bottom:16px}.page-header-card .page-header{margin-bottom:0}.page-header-card-meta{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.85rem}.card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px 24px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);border:2px solid var(--orange);background:var(--orange);color:var(--navy-deep);font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;box-shadow:0 2px 6px rgba(225,123,69,.35);transition:background .15s ease,box-shadow .15s ease,transform .05s ease}.btn:hover{background:var(--orange-deep);border-color:var(--orange-deep);box-shadow:0 3px 10px rgba(225,123,69,.45)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:none}.btn-secondary:hover{background:var(--orange-soft);border-color:var(--orange);color:var(--orange-deep)}input[type=date],input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{padding:8px 10px;font-size:.92rem;font-family:inherit;color:var(--text);border:2px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}input[type=email],input[type=password],input[type=text],textarea{width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--orange);outline-offset:1px}.project-list{list-style:none;padding:0;margin:0}.project-list li{padding:12px 10px;border-bottom:1px solid var(--border)}.project-list li:nth-child(2n){background:var(--bg)}.project-list li:last-child{border-bottom:none}.project-list .name{font-weight:600;font-size:.98rem}.project-list .meta{color:var(--text-muted);font-size:.88rem}.empty{color:var(--text-muted);padding:12px 14px;background:var(--bg);border-radius:var(--radius-sm)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px}.project-card{position:relative;background:var(--surface);border:2px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px;transition:box-shadow .15s ease,border-color .15s ease,transform .1s ease}.project-card-active{border-left-color:var(--accent-green)}.project-card-archived{border-left-color:var(--text-muted)}.project-card-link{display:block;text-decoration:none;color:inherit}.project-card-remove{position:absolute;top:10px;right:10px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:1.1rem;line-height:1;transition:background .15s ease,color .15s ease}.project-card-remove:hover{background:#fdecea;color:#b00020}.project-card-remove:disabled{opacity:.5;cursor:default}.project-card:hover{box-shadow:var(--shadow-md);border-top-color:var(--orange);border-right-color:var(--orange);border-bottom-color:var(--orange);transform:translateY(-2px)}.project-card .name{font-weight:600;font-size:1.05rem;margin-bottom:8px}.project-card-street{position:relative}.project-card-street:hover:after{content:attr(data-full-address);position:absolute;left:0;top:calc(100% + 6px);z-index:5;white-space:nowrap;font-size:.8rem;font-weight:500;color:#fff;background:var(--navy);border-radius:var(--radius-sm);padding:5px 9px;box-shadow:var(--shadow-md);pointer-events:none}.project-card .meta{color:var(--text-muted);font-size:.88rem}.project-card .address{margin-bottom:10px}.project-card-status-toggle{margin-top:12px}.project-card-status-toggle .btn{font-size:.75rem;padding:4px 10px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge-active{background:#e6f4ea;color:#1e7b34}.badge-archived{background:#eee;color:#666}.badge-neutral{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.job-result{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;gap:12px;transition:border-color .15s ease}.job-result:hover{border-color:var(--orange)}.job-result .info .name{font-weight:600}.job-result .info .meta{color:var(--text-muted);font-size:.88rem}.error{color:#b00020}.meta.pricing-bad,.meta.pricing-good{display:inline-flex;align-items:center;margin-top:2px;padding:3px 9px;border-radius:999px;font-weight:600}.meta.pricing-good{background:#e6f4ea;color:#15682c}.meta.pricing-bad{background:#fde3e3;color:#b00020}.tab-bar{display:flex;flex-wrap:wrap;gap:4px;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:6px;margin-bottom:16px}.tab-button{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.tab-button:hover{background:var(--bg);color:var(--text)}.tab-button-active,.tab-button-active:hover{background:var(--orange);color:#fff}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--navy);color:#fff;font-size:.7rem;font-weight:600}.tab-button-active .tab-badge{background:#fff;color:var(--orange)}.tab-panel{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.tab-panel section{margin:0}.tab-panel section+section{margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.stat-card{background:var(--bg);border:2px solid var(--border);border-top:3px solid var(--border-strong);border-radius:var(--radius-sm);padding:16px 18px}.cell-link{color:inherit;text-decoration:none}.cell-link:hover{color:var(--orange);text-decoration:underline}.stat-card-link{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s}.stat-card-link:hover{box-shadow:var(--shadow-md);border-left-color:var(--orange);border-right-color:var(--orange);border-bottom-color:var(--orange);transform:translateY(-2px)}.dashboard-grid .stat-card:first-child{border-top-color:var(--navy)}.dashboard-grid .stat-card:nth-child(2){border-top-color:var(--accent-teal)}.dashboard-grid .stat-card:nth-child(3){border-top-color:var(--accent-purple)}.dashboard-grid .stat-card:nth-child(4){border-top-color:var(--orange)}.stat-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:700;margin-bottom:6px}.stat-value{font-size:1.7rem;font-weight:700;color:var(--navy);line-height:1.1}.stat-sub{font-size:.82rem;color:var(--text-muted);margin-top:4px}.stat-value.stat-warn{color:var(--orange)}.dashboard-section-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:700;margin:0 0 10px}.flag-list{list-style:none;padding:0;margin:0}.flag-list li{padding:8px 0;border-bottom:1px solid var(--border)}.flag-list li:last-child{border-bottom:none}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.budget-table{width:100%;border-collapse:collapse;font-size:.9rem}.budget-table th{text-align:left;padding:10px;border-bottom:none;font-size:.75rem;text-transform:uppercase;letter-spacing:.02em;color:rgba(255,255,255,.85);background:var(--navy)}.budget-table thead tr:first-child th:first-child{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.budget-table thead tr:first-child th:last-child{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.budget-table th.sortable{padding:0}.budget-table th.sortable button{display:flex;align-items:center;gap:6px;width:100%;padding:10px;border:0;background:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;text-align:left}.budget-table th.sortable.num button{justify-content:flex-end}.budget-table th.sortable button:focus-visible .sort-arrow,.budget-table th.sortable button:hover .sort-arrow{opacity:1}.budget-table th.sortable .sort-arrow{font-size:.85em;opacity:.4;transition:opacity .12s ease}.budget-table th.sortable.sorted .sort-arrow{opacity:1}.budget-table td{padding:8px 10px;border-bottom:1px solid var(--border)}.budget-table .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.budget-group-row td{font-weight:700;background:var(--bg);border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}.budget-item-row td:first-child{padding-left:26px;color:var(--text-muted);font-weight:400}.budget-total-row td{font-weight:700;border-top:2px solid var(--navy);border-bottom:none}.budget-item-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:4px;border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;line-height:1;vertical-align:middle;transition:background .15s ease,color .15s ease}.budget-item-remove:hover{background:#fdecea;color:#b00020}.budget-item-remove:disabled{opacity:.5;cursor:default}.budget-cell-edit-trigger{background:none;border:1px solid transparent;border-radius:4px;padding:2px 6px;font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:inherit;cursor:text;width:100%;text-align:right}.budget-cell-edit-trigger:hover{border-color:var(--border-strong);background:var(--bg)}.budget-cell-edit-input{width:100px;padding:2px 6px;font-size:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.sequence-column{flex:0 0 200px;min-height:300px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);padding:10px}.sequence-column-header{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:10px;text-align:center}.sequence-card{background:var(--surface);border:2px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:10px 12px;margin-bottom:8px;cursor:-webkit-grab;cursor:grab;touch-action:none}.pie-chart-row{display:flex;align-items:center;gap:36px;flex-wrap:wrap}.pie-chart{position:relative;width:200px;height:200px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px var(--border-strong)}.pie-chart-hole{position:absolute;inset:30px;background:var(--surface);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:inset 0 0 0 1px var(--border)}.pie-chart-hole-label{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-weight:700}.pie-chart-hole-value{font-size:1.1rem;font-weight:700;color:var(--navy);margin-top:3px}.pie-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;min-width:220px;flex:1 1}.pie-legend li{display:flex;align-items:center;gap:10px;font-size:.88rem}.pie-legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.pie-legend-name{flex:1 1;font-weight:500}.pie-legend-value{color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.pie-legend-other-swatch{cursor:pointer}.pie-chart-hover-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.pie-other-wedge{fill:transparent;pointer-events:auto;cursor:pointer}.pie-other-popover{position:absolute;top:50%;left:100%;margin-left:14px;transform:translateY(-50%);z-index:20;min-width:200px;max-width:260px;background:var(--surface);border:2px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:10px 12px;display:none;pointer-events:none}.pie-other-popover-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:6px}.pie-other-popover ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pie-other-popover li{display:flex;justify-content:space-between;gap:10px;font-size:.82rem}.pie-chart-row:has(.pie-legend-other-swatch:hover) .pie-other-popover,.pie-chart-row:has(.pie-other-wedge:hover) .pie-other-popover{display:block}.ranked-match-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ranked-match-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg);border:2px solid var(--border-strong);border-radius:var(--radius-sm)}.ranked-match-name{font-weight:600;font-size:.9rem}.ranked-match-company{color:var(--text-muted);font-size:.78rem}.ranked-match-row .meta{font-size:.8rem}.contractor-card-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}.contractor-card{padding:12px 14px;background:var(--bg);border:2px solid var(--border-strong);border-radius:var(--radius-sm)}.contractor-card-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.contractor-card-name{font-weight:700}.contractor-card-count{margin-left:auto;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--navy);padding:2px 8px;border-radius:999px}.contractor-card-total{margin-top:8px;padding-top:8px;border-top:2px solid var(--border-strong);font-weight:600;font-size:.85rem}.contractor-task-row{padding:8px 0;border-top:1px solid var(--border)}.contractor-card-header+.contractor-task-row{border-top:none}.contractor-task-row-main{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.contractor-task-toggle{display:flex;align-items:flex-start;gap:8px;background:none;border:none;padding:0;font:inherit;text-align:left;cursor:pointer;color:inherit;flex:1 1 220px;min-width:0}.contractor-task-toggle:disabled{cursor:default}.contractor-task-arrow{flex-shrink:0;color:var(--text-muted);font-size:.75rem;line-height:1.4}.contractor-task-titleblock{display:flex;flex-direction:column;gap:2px;min-width:0}.contractor-task-title{font-weight:600;font-size:.9rem}.contractor-task-fields{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:0 0 auto;margin-left:auto}.scope-box{margin:8px 0;padding:8px 10px;background:var(--bg);border-left:3px solid var(--orange);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.scope-box p{margin:4px 0 0}.scope-box p:first-of-type{margin-top:4px}.scope-label{display:block}.assign-label,.scope-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.assign-label{margin-top:10px}.task-accordion-summary{cursor:pointer;padding:4px 0}.task-accordion-summary .meta,.task-accordion-summary .name{display:block}.task-accordion-summary:hover .name{color:var(--orange-deep)}.task-accordion-body{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.lump-sum-task-list{list-style:none;margin:6px 0 0;padding:8px 10px;max-height:220px;overflow-y:auto;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:2px}.lump-sum-task-list li label{display:flex;align-items:center;gap:8px;padding:5px 2px;cursor:pointer}.lump-sum-task-list .name{font-size:.88rem;font-weight:600;flex:1 1}.contact-phone-link{font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--navy);font-weight:600;text-decoration:none;white-space:nowrap}.contact-phone-link:hover{text-decoration:underline}.weather-bar{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto}.weather-bar-day{flex:1 1;min-width:78px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-sm);text-align:center}.weather-bar-day-adverse{border-color:var(--orange);background:var(--orange-soft)}.weather-bar-day-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.weather-bar-date{font-weight:500;text-transform:none;letter-spacing:normal;opacity:.75}.weather-bar-icon{display:flex;align-items:center;justify-content:center}.weather-bar-temps{font-size:.85rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--navy)}.weather-bar-low{color:var(--text-muted);font-weight:500}.health-score-card{display:flex;align-items:center;gap:20px;padding:16px 22px;border-radius:var(--radius);border:2px solid var(--border-strong);background:var(--bg);margin-bottom:18px}.health-score-value{font-size:2.4rem;font-weight:800;line-height:1;min-width:64px;text-align:center}.health-score-body{flex:1 1}.health-score-band{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.health-reasons{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.88rem}.health-positive{color:var(--accent-green)}.health-negative{color:var(--text-muted)}.health-healthy .health-score-band,.health-healthy .health-score-value{color:var(--accent-green)}.health-warning .health-score-band,.health-warning .health-score-value{color:var(--orange)}.health-at_risk .health-negative,.health-at_risk .health-score-band,.health-at_risk .health-score-value{color:#b00020}.health-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.health-pill-healthy{background:#e6f4ea;color:#1e7b34}.health-pill-warning{background:#fff4e0;color:#9a6400}.health-pill-at_risk{background:#fdecea;color:#b00020}.margin-forecast{display:flex;align-items:center;gap:20px}.margin-forecast-figure{display:flex;flex-direction:column;gap:4px}.margin-forecast-arrow{font-size:1.4rem;color:var(--text-muted)}.assistant-thread{display:flex;flex-direction:column;gap:12px;max-height:480px;overflow-y:auto;padding-right:4px}.assistant-message{padding:10px 14px;border-radius:var(--radius-sm);max-width:85%}.assistant-message-user{align-self:flex-end;background:var(--navy);color:#fff}.assistant-message-user .assistant-message-role{color:rgba(255,255,255,.7)}.assistant-message-assistant{align-self:flex-start;background:var(--bg);border:2px solid var(--border-strong)}.assistant-message-role{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:4px}.assistant-message-body{white-space:pre-wrap;font-size:.92rem;line-height:1.5}.briefing-panel{background:var(--navy);background-image:linear-gradient(135deg,var(--navy) 0,var(--navy-soft) 100%);border:none}.briefing-text{color:#fff;white-space:pre-wrap;font-size:1.02rem;line-height:1.6}.briefing-project-card{display:block;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 18px;text-decoration:none;color:inherit;transition:box-shadow .15s ease,transform .1s ease}.briefing-project-card:hover{box-shadow:var(--shadow-md);border-color:var(--orange);transform:translateY(-2px)}.briefing-project-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.badge-health-healthy{background:#e6f4ea;color:#1e7b34}.badge-health-warning{background:var(--orange-soft);color:var(--orange)}.badge-health-at_risk{background:#fde3e3;color:#b00020}.rating-control{display:inline-flex;gap:1px}.rating-star{border:none;background:none;padding:0;cursor:pointer;font-size:1.1rem;line-height:1;color:#d9a441}.rating-star:disabled{cursor:default}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);background-image:radial-gradient(circle at 50% 0,rgba(28,43,58,.07),transparent 60%);padding:24px}.auth-card{max-width:440px;width:100%}.auth-brand{display:flex;justify-content:center;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--border)}.auth-card h1{text-align:center}@keyframes spin{to{transform:rotate(1turn)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.btn .spinner,.btn-secondary .spinner{margin-right:2px;border-color:rgba(28,43,58,.25);border-top-color:var(--navy-deep)}.loading-banner{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.9rem}.loading-banner .spinner{border-color:var(--border-strong);border-top-color:var(--navy)}.modal-backdrop{position:fixed;inset:0;background:rgba(19,31,43,.5);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:100}.modal{background:var(--surface);border:2px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:24px;width:100%;max-width:640px;max-height:calc(100vh - 80px);overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}@media (max-width:768px){.mobile-nav-toggle{display:flex}.mobile-nav-backdrop{display:block;position:fixed;inset:0;background:rgba(19,31,43,.5);z-index:190}.sidebar{position:fixed;top:0;left:0;width:260px;max-width:82vw;border-radius:0;border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);transform:translateX(-100%);transition:transform .2s ease;z-index:200}.sidebar-open{transform:translateX(0)}.content-area{width:100%}main{padding:68px 14px 32px}.page-header{flex-wrap:wrap;gap:10px}.card,.page-header-card,.tab-panel{padding:16px}.tab-bar{overflow-x:auto;flex-wrap:nowrap}.budget-table{min-width:560px}.btn,.btn-secondary{min-height:42px}.health-score-card,.margin-forecast{flex-wrap:wrap}.weather-bar-day{min-width:68px}.pie-chart{width:160px;height:160px}.pie-chart-hole{inset:24px}.modal-backdrop{padding:20px 10px}.modal{padding:18px}.rbc-toolbar{flex-direction:column;align-items:stretch;gap:8px}.rbc-toolbar .rbc-btn-group{display:flex;justify-content:center}.rbc-toolbar-label{text-align:center;font-size:.95rem}.rbc-event{font-size:.75rem}}.dashboard-grid .stat-card:nth-child(5){border-top-color:var(--accent-teal)}.budget-cell-edit-input.cell-edit-left,.budget-cell-edit-trigger.cell-edit-left{text-align:left}.budget-cell-edit-input.cell-edit-left{width:100%;min-width:120px}.save-all-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:10px}.pending-co-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}.pending-co{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;background:#fdf1ea;border:1px solid #f3c9b1;border-left:5px solid var(--orange);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.pending-co-body{display:flex;flex-direction:column;gap:2px;min-width:0}.pending-co-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#b8551f}.pending-co-title{font-size:16px;font-weight:700}.pending-co-dismiss{flex-shrink:0;background:none;border:none;font-size:18px;line-height:1;padding:2px 6px;cursor:pointer;color:inherit;opacity:.55}.pending-co-dismiss:hover{opacity:1}.refresh-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;margin-bottom:16px;background:var(--navy);color:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);font-size:14px}.refresh-banner-done{background:#e8f4ec;color:#1f5e36;border:1px solid #b9dcc5}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--orange);text-decoration:underline;cursor:pointer}.setup-step{display:flex;gap:14px;align-items:flex-start}.setup-step-number{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--navy);color:#fff}.setup-step-done{background:#2f8a4f}.setup-step-body{flex:1 1;min-width:0}.setup-finish{display:flex;align-items:center;gap:16px;margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}.help-dropdown{margin-bottom:12px;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px}.help-dropdown summary{cursor:pointer;font-weight:600;color:var(--navy)}.help-dropdown ol{margin:10px 0 8px;padding-left:20px;line-height:1.6}.help-dropdown code{padding:1px 5px;background:var(--surface);border:1px solid var(--border);border-radius:4px;font-size:13px}.help-dropdown p{margin:0}.team-row-removed td{opacity:.5}.settings-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;padding:10px 0;border-bottom:1px solid var(--border)}.settings-label{width:90px;font-weight:600;flex-shrink:0}.settings-field,.settings-field-stack{flex:1 1;min-width:240px}.settings-field{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.settings-field input[type=email],.settings-field input[type=password],.settings-field input[type=text]{width:auto;flex:1 1 200px}.settings-subheading{margin:22px 0 8px;font-size:15px}.device-list{list-style:none;margin:0;padding:0}.device-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.settings-hub{display:grid;grid-gap:22px;gap:22px;margin:0 auto}.settings-hub-3{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1000px}.settings-hub-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px}.settings-tile{position:relative;aspect-ratio:1/1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 16px;text-align:center;color:inherit;text-decoration:none;background:linear-gradient(180deg,#ffffff,#f7f8fa);border:1px solid var(--border);border-bottom:3px solid var(--border-strong);border-radius:14px;box-shadow:0 1px 2px rgba(28,43,58,.06),0 6px 14px rgba(28,43,58,.08),0 18px 36px rgba(28,43,58,.06),inset 0 1px 0 rgba(255,255,255,.9);transition:box-shadow .2s,transform .2s,border-color .2s}.settings-tile:hover{transform:translateY(-4px);border-color:var(--orange);box-shadow:0 2px 4px rgba(28,43,58,.08),0 12px 24px rgba(28,43,58,.12),0 28px 48px rgba(225,123,69,.14),inset 0 1px 0 rgba(255,255,255,.9)}.settings-tile:active{transform:translateY(-1px)}.settings-tile-icon{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:10px;border-radius:50%;background:linear-gradient(145deg,#fff6f0,#fbe3d4);color:var(--navy);box-shadow:0 6px 14px rgba(225,123,69,.18),inset 0 1px 0 rgba(255,255,255,.8);transition:background .2s,color .2s,box-shadow .2s}.settings-tile-icon svg{width:38px;height:38px}.settings-tile:hover .settings-tile-icon{background:linear-gradient(145deg,#f08e5a 0,var(--orange) 100%);color:#fff;box-shadow:0 8px 18px rgba(225,123,69,.35)}.settings-tile-title{font-size:18px;font-weight:700;color:var(--navy)}.settings-tile-desc{max-width:220px;font-size:14px;line-height:1.4;color:var(--text-muted)}.settings-tile-badge{margin-top:2px}@media (max-width:600px){.settings-hub-2,.settings-hub-3{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:14px}.settings-tile{padding:14px 10px;border-radius:12px}.settings-tile-icon{width:56px;height:56px;margin-bottom:4px}.settings-tile-icon svg{width:28px;height:28px}.settings-tile-title{font-size:15px}.settings-tile-desc{font-size:12px}}.settings-label-wide{width:220px}.toggle-list{list-style:none;margin:0;padding:0}.toggle-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.toggle-note{margin-top:4px;font-style:italic}.toggle{position:relative;flex-shrink:0;width:44px;height:24px;padding:0;border:none;border-radius:12px;background:var(--border-strong);cursor:pointer;transition:background .15s}.toggle-on{background:var(--orange)}.toggle-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}.toggle-on .toggle-knob{transform:translateX(20px)}.settings-back-btn{display:inline-flex;align-items:center;gap:4px;padding-left:10px}.settings-trail-link{color:var(--text-muted);text-decoration:none}.settings-trail-link:hover{color:var(--orange);text-decoration:underline}.settings-trail-sep{margin:0 6px;color:var(--text-muted)}.sync-jobs{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sync-jobs .btn{display:inline-flex;align-items:center;gap:8px}.spinner-dark{border-color:rgba(28,43,58,.25);border-top-color:var(--navy)}.dashboard-wrap{position:relative;min-height:420px}.job-info-overlay{position:absolute;inset:-8px;z-index:5;display:flex;align-items:flex-start;justify-content:center;padding-top:90px;background:rgba(255,255,255,.72);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-radius:var(--radius)}.job-info-overlay-card{max-width:420px;margin:0 16px;padding:26px 28px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 32px rgba(28,43,58,.16)}.job-info-overlay-card h2{margin:0 0 8px;font-size:18px}.job-info-overlay-card .btn{margin-top:14px}.project-list .name .badge{margin-left:8px}.usage-list{list-style:none;margin:0;padding:0}.usage-list li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border)}.home-page{max-width:1000px;margin:0 auto}.home-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.home-top .sidebar-logout{border-color:var(--border-strong);color:var(--navy)}.home-top .sidebar-logout:hover{background:var(--surface-muted,#f1f3f6);color:var(--navy)}.home-greeting{margin:0 0 28px;text-align:center;font-size:1.75rem;color:var(--navy)}.project-card-health{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:.85rem;color:var(--text-muted)}.project-card-health-note{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-header .page-header{margin-bottom:0;flex-wrap:wrap;gap:12px}.projects-header .page-header-card-meta{margin:4px 0 0}.projects-header-actions{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.projects-header-actions .sync-jobs{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.project-card-client{font-size:.9rem;color:var(--navy);margin:-4px 0 4px}.project-card-menu{position:absolute;top:8px;right:8px;z-index:2}.project-card-menu-btn{width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:1.2rem;line-height:1;cursor:pointer}.project-card-menu-btn:hover{background:var(--surface-muted,#f1f3f6);color:var(--navy)}.project-card-menu-list{position:absolute;right:0;top:32px;min-width:170px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.project-card-menu-list button{display:block;width:100%;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:transparent;text-align:left;font-size:.88rem;color:var(--navy);cursor:pointer}.project-card-menu-list button:hover{background:var(--surface-muted,#f1f3f6)}.project-card-menu-list button.danger{color:#b00020}.project-card-menu-list button.danger:hover{background:#fdecea}.projects-finished{margin-top:28px}.projects-finished summary{display:flex;align-items:center;gap:10px;padding:12px 16px;list-style:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--navy);font-weight:600;transition:border-color .15s,box-shadow .15s}.projects-finished summary::-webkit-details-marker{display:none}.projects-finished summary:hover{border-color:var(--orange);box-shadow:var(--shadow-md)}.projects-finished[open] summary{margin-bottom:16px}.projects-finished-chevron{width:8px;height:8px;border-right:2px solid;border-bottom:2px solid;transform:rotate(-45deg);transition:transform .2s}.projects-finished[open] .projects-finished-chevron{transform:rotate(45deg)}.projects-finished-count{padding:2px 9px;border-radius:999px;background:var(--surface-muted,#eef1f5);color:var(--text-muted);font-size:.8rem}.projects-finished-hint{margin-left:auto;font-size:.85rem;font-weight:500;color:var(--text-muted)}.projects-finished-hint:after{content:"Show"}.projects-finished[open] .projects-finished-hint:after{content:"Hide"}.project-card,.project-card-link{display:flex;flex-direction:column}.project-card-link{flex:1 1}.project-card .project-card-health{margin-top:auto;padding-top:12px}.scope-link{font-size:.85rem;font-weight:600}.scope-modal{max-width:620px;padding:22px 24px}.scope-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.scope-head h2{margin:0 0 2px;font-size:1.2rem}.scope-close{border:none;background:transparent;font-size:1.6rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 4px}.scope-close:hover{color:var(--navy)}.scope-lines{max-height:46vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 14px 8px}.scope-group+.scope-group{border-top:1px solid var(--border)}.scope-group-head{display:flex;align-items:center;gap:8px;padding:10px 0 4px;font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--navy);cursor:pointer}.scope-group-count{margin-left:auto;font-weight:500;color:var(--text-muted)}.scope-line{display:flex;align-items:center;gap:8px;padding:4px 0 4px 22px;font-size:.92rem;cursor:pointer}.scope-notes{width:100%;margin:12px 0;font:inherit;resize:vertical}.scope-options{justify-content:space-between;gap:16px;flex-wrap:wrap}.scope-option,.scope-options{display:flex;align-items:center}.scope-option{gap:10px;font-size:.92rem;font-weight:600;color:var(--navy)}.scope-toggle{position:relative;flex-shrink:0;width:44px;height:24px;padding:0;border:none;border-radius:12px;background:var(--orange);cursor:pointer;transition:background .15s}.scope-toggle-on{background:var(--navy)}.scope-toggle-on .toggle-knob{transform:translateX(20px)}.scope-lang{display:flex;border:1px solid var(--border-strong);border-radius:999px;overflow:hidden}.scope-lang button{padding:6px 14px;border:none;background:transparent;font:inherit;font-size:.85rem;color:var(--navy);cursor:pointer}.scope-lang button.active{background:var(--navy);color:#fff}.scope-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.scope-sticky{position:-webkit-sticky;position:sticky;bottom:-22px;margin:0 -24px -22px;padding:0 24px 22px;background:var(--surface);z-index:1}.scope-sticky .scope-foot{margin-top:14px}.scope-foot-actions{display:flex;align-items:center;gap:16px}.scope-message{margin:10px 0 0;text-align:right}.pdf-preview{max-height:62vh;overflow-y:auto;padding:12px;background:#e9edf2;border-radius:var(--radius-sm)}.pdf-preview-page{display:block;width:100%;height:auto;background:#fff;box-shadow:0 1px 4px rgba(28,43,58,.18)}.pdf-preview-page+.pdf-preview-page{margin-top:12px}.success{color:#1e7b34}.assign-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.scope-contractor{margin:6px 0 2px;max-width:100%}.assign-section+.assign-section{margin-top:18px}.assign-section-title{margin:14px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--orange);font-size:.95rem;color:var(--navy)}.scope-modal-preview{max-width:980px}.scope-modal-preview .pdf-preview{max-height:calc(100vh - 230px)}.file-viewer-backdrop{padding:16px}.modal.file-viewer{max-width:min(1240px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;padding:16px 20px}.file-viewer-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}.file-viewer-head h2{flex:1 1;min-width:0;margin:0;font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-viewer-body{flex:1 1;min-height:0;overflow:auto}.pdf-preview.pdf-preview-large{max-height:none;height:auto;padding:16px}.file-viewer-image{display:block;height:calc(100vh - 110px);width:auto;max-width:100%;object-fit:contain;margin:0 auto;background:#fff}.file-open{text-align:left;font:inherit;font-weight:600}.files-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.files-upload-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.file-section{padding:12px 14px 6px;background:var(--bg);border:2px solid var(--border-strong);border-radius:var(--radius-sm)}.file-section+.file-section{margin-top:14px}.file-section-title{display:flex;align-items:center;gap:8px;margin-bottom:6px}.file-list{list-style:none;margin:0;padding:0}.file-row{display:flex;align-items:center;gap:12px;padding:9px 4px;border-top:1px solid var(--border)}.file-icon{flex-shrink:0;width:34px;padding:4px 0;border-radius:var(--radius-sm);text-align:center;font-size:.62rem;font-weight:700;letter-spacing:.03em}.file-icon-pdf{background:var(--navy);color:#fff}.file-icon-img{background:var(--orange-soft);color:var(--orange-deep)}.file-icon-doc{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.file-row-main{flex:1 1;min-width:0}.file-row .file-open{display:block;max-width:100%;padding:0;border:none;background:none;text-align:left;font:inherit;font-weight:600;color:var(--navy);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .file-open:hover{color:var(--orange);text-decoration:underline}.file-row-sub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:.8rem}.file-badge-permit{background:var(--orange-soft);color:var(--orange-deep)}.file-badge-delivery{background:#e8edf3;color:var(--navy-soft)}.file-email{cursor:help}.file-items{color:var(--navy);font-weight:600}.file-row-meta{flex-shrink:0;font-size:.82rem;color:var(--text-muted);white-space:nowrap}.file-menu{position:relative;flex-shrink:0}.file-menu .project-card-menu-list{min-width:230px;z-index:5}.file-menu .project-card-menu-list a{display:block;padding:8px 10px;border-radius:var(--radius-sm);font-size:.88rem;color:var(--navy);text-decoration:none}.file-menu .project-card-menu-list a:hover{background:#f1f3f6}@media (max-width:600px){.file-row-meta{display:none}}.file-badge-selection{background:var(--navy);color:#fff}.file-row-earlier{padding-left:52px}.file-row-earlier .file-open{font-weight:500;color:var(--text-muted)}.file-versions{font-size:.8rem;font-weight:600}