.hint-title{cursor:help;border-bottom:1px dotted var(--text-faint)}.hint-title--heading{display:inline}.dash-card-head .hint-title,.kpi-label .hint-title{border-bottom-color:#0000}.dash-card-head .hint-title:hover,.kpi-label .hint-title:hover{border-bottom-color:var(--text-faint)}:root{--bg:#f6f8fa;--surface:#fff;--surface-2:#fafbfc;--surface-hover:#f5f6f8;--border:#e3e8ee;--border-strong:#d5dbe3;--text:#1a1f36;--text-secondary:#4f566b;--text-muted:#697386;--text-faint:#8792a2;--accent:#8853c6;--accent-hover:#7341b6;--accent-soft:#f3edfa;--accent-border:#d8c2ed;--success:#1ea672;--success-soft:#ecfdf3;--warning:#b45309;--warning-soft:#fffbeb;--danger:#c5320b;--danger-soft:#fef3f0;--signal-good-bg:#0f7a522e;--signal-good-bg-soft:#0f7a5214;--signal-good-text:#0f5c3d;--signal-good-text-soft:#137a52;--signal-amber-bg:#d4a0171a;--signal-amber-text:#92691b;--signal-bad-bg:#b8264a1a;--signal-bad-bg-strong:#b8264a38;--signal-bad-text:#b8264a;--signal-bad-text-strong:#8a1c39;--shadow-sm:0 1px 1px #1c1f290a;--shadow-md:0 2px 5px #1c1f290f, 0 1px 1px #1c1f290a;font-feature-settings:"cv02", "cv03", "cv04", "cv11";color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3,p{margin:0}.layout{grid-template-columns:196px 1fr;min-height:100vh;transition:grid-template-columns .18s;display:grid}.layout.sidebar-collapsed{grid-template-columns:60px 1fr}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;height:100vh;padding:14px 10px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-brand{align-items:center;gap:10px;padding:4px 4px 16px;display:flex;position:relative}.sidebar-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;outline:none;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-left:auto;padding:0;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.sidebar-toggle:hover{background:var(--surface-hover);color:var(--text)}.sidebar-toggle:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #8853c638}.sidebar-toggle svg{width:15px;height:15px}.layout.sidebar-collapsed .brand-name,.layout.sidebar-collapsed .nav-label,.layout.sidebar-collapsed .nav-item-label,.layout.sidebar-collapsed .user-meta{display:none}.layout.sidebar-collapsed .sidebar-brand{flex-direction:column;gap:8px;padding:4px 0 14px}.layout.sidebar-collapsed .sidebar-toggle{margin-left:0}.layout.sidebar-collapsed .nav-item{justify-content:center;padding:8px}.layout.sidebar-collapsed .user-chip{justify-content:center;padding:6px}.sidebar-brand-link{color:inherit;flex:1;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.sidebar-brand-link:hover .brand-name strong{color:var(--accent-hover)}.brand-mark{background:var(--text);color:#fff;letter-spacing:-.04em;border-radius:7px;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.brand-name{flex-direction:column;line-height:1.2;display:flex}.brand-name strong{font-size:13.5px;font-weight:600}.brand-name span{color:var(--text-muted);font-size:11.5px}.sidebar-nav{flex-direction:column;gap:1px;margin-top:4px;display:flex}.nav-label{color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;padding:12px 8px 6px;font-size:11px;font-weight:600}.nav-item{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;padding:7px 8px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-item.active svg{color:var(--accent)}.nav-item svg{color:var(--text-muted);width:16px;height:16px}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:12px}.user-chip{background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;width:100%;padding:6px 8px;display:flex}.user-chip:hover{background:var(--surface-hover)}.user-avatar{color:#9a3412;background:#ffe3d1;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-flex}.user-meta{text-align:left;flex-direction:column;display:flex}.user-meta strong{font-size:13px;font-weight:600}.user-meta span{color:var(--text-muted);font-size:11.5px}.main{flex-direction:column;min-width:0;display:flex}.page-header{background:var(--bg);border-bottom:1px solid var(--border);z-index:50;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex;position:sticky;top:0}.page-title-block{flex-wrap:nowrap;align-items:baseline;gap:10px;min-width:0;display:flex;overflow:hidden}.crumb{color:var(--text-muted);white-space:nowrap;font-size:12.5px;font-weight:500}.page-title{color:var(--text);letter-spacing:-.01em;white-space:nowrap;font-size:17px;font-weight:600}.page-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.sync-pill,.btn,.btn-small,.chip,.kpi-label,.kpi-meta{white-space:nowrap}.sync-pill{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.sync-pill:before{background:var(--text-faint);content:"";border-radius:999px;width:6px;height:6px}.sync-pill.idle:before,.sync-pill.saved:before{background:var(--success)}.sync-pill.dirty:before,.sync-pill.saving:before{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b29}.sync-pill.error:before{background:var(--danger)}.btn{border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn svg{width:14px;height:14px}.content{padding:20px 28px 32px}.toast{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent-hover);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.home-page{flex-direction:column;gap:24px;display:flex}.home-hero{max-width:640px}.home-eyebrow{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.home-title{color:var(--text);margin:0 0 10px;font-size:26px;font-weight:600;line-height:1.25}.home-lead{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.55}.home-kpis{margin:0}.home-links-title{color:var(--text);margin:0 0 12px;font-size:14px;font-weight:600}.home-link-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.home-link-card{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:10px;align-items:flex-start;gap:14px;padding:14px 16px;text-decoration:none;transition:border-color .12s,box-shadow .12s;display:flex}.home-link-card:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));box-shadow:0 2px 10px #0000000d}.home-link-icon{background:var(--accent-soft);color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.home-link-icon svg{width:18px;height:18px}.home-link-text{flex-direction:column;gap:4px;display:flex}.home-link-text strong{color:var(--text);font-size:14px;font-weight:600}.home-link-text span:last-child{color:var(--text-muted);font-size:12.5px;line-height:1.45}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}@media (width<=1080px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:13px 14px}.kpi-label{color:var(--text-muted);font-size:12px;font-weight:500}.kpi-value{color:var(--text);letter-spacing:-.02em;margin-top:6px;font-size:22px;font-weight:600;line-height:1.15}.kpi-unit{color:var(--text-muted);letter-spacing:0;margin-left:4px;font-size:13px;font-weight:500}.kpi-meta{color:var(--text-faint);margin-top:4px;font-size:11.5px}.kpi-trend{color:var(--success)}.toolbar{background:var(--surface);border:1px solid var(--border);border-bottom:0;border-radius:10px 10px 0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.toolbar-left,.toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:7px;align-items:center;gap:6px;width:220px;padding:5px 10px;font-size:13px;display:inline-flex}.search input{color:var(--text);background:0 0;border:0;outline:none;width:100%;font-size:13px}.search svg{color:var(--text-muted);width:14px;height:14px}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:7px;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.chip svg{color:var(--text-muted);width:12px;height:12px}.dropdown-root{display:inline-block;position:relative}.dropdown-trigger,.filter-trigger,.type-trigger,.add-trigger{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;border-radius:7px;outline:none;align-items:center;gap:6px;padding:5px 8px 5px 11px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.dropdown-trigger:hover,.filter-trigger:hover,.add-trigger:hover{background:var(--surface-hover)}.dropdown-trigger:focus-visible,.filter-trigger:focus-visible,.add-trigger:focus-visible,.type-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.dropdown-chevron{color:var(--text-muted);flex-shrink:0;width:12px;height:12px;margin-left:2px}.dropdown-label{white-space:nowrap;align-items:center;gap:6px;min-width:0;display:inline-flex}.filter-trigger{padding:4px 7px 4px 10px}.filter-trigger.active{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.filter-trigger.active .dropdown-chevron{color:var(--accent)}.filter-trigger-content{align-items:baseline;gap:6px;display:inline-flex}.filter-trigger-label{color:var(--text-muted);font-size:12px;font-weight:500}.filter-trigger.active .filter-trigger-label{color:var(--accent);opacity:.75}.filter-trigger-value{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:13px;font-weight:600;overflow:hidden}.filter-trigger.active .filter-trigger-value{color:var(--accent)}.filter-reset{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;padding:5px 8px;font-size:12.5px;font-weight:500;display:inline-flex}.filter-reset:hover{background:var(--surface-hover);color:var(--text)}.filter-reset svg{width:12px;height:12px}.type-trigger{color:var(--text-secondary);letter-spacing:.01em;background-color:#eef0f4;border:1px solid #0000;border-radius:4px;gap:3px;padding:3px 5px 3px 7px;font-size:11px;font-weight:600}.type-trigger.billable{color:#075985;background-color:#e0f2fe}.type-trigger.internal{background-color:var(--accent-soft);color:var(--accent-hover)}.type-trigger.nonbillable{color:var(--text-secondary);background-color:#f3f4f6}.type-trigger:hover{filter:brightness(.96)}.type-trigger .dropdown-chevron{color:currentColor;opacity:.65;width:10px;height:10px}.add-trigger{background:var(--surface);border-color:var(--border-strong);color:var(--text);justify-content:space-between;min-width:280px;height:28px;padding:0 8px 0 11px;font-size:12.5px}.add-trigger .dropdown-label{color:var(--text);text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.add-trigger .dropdown-label:empty:before{color:var(--text-muted)}.dropdown-trigger:has(.dropdown-label:empty) .dropdown-label:before{color:var(--text-muted)}.period-nav{background:var(--surface);border:1px solid var(--border-strong);border-radius:7px;align-items:center;display:inline-flex;overflow:hidden}.period-arrow{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.period-arrow:hover{background:var(--surface-hover);color:var(--text)}.period-arrow svg{width:14px;height:14px}.period-label{border-left:1px solid var(--border);border-right:1px solid var(--border);color:var(--text);white-space:nowrap;padding:0 12px;font-size:12.5px;font-weight:600}.dropdown-panel{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:10px;min-width:220px;margin-top:6px;position:absolute;top:100%;overflow:hidden;box-shadow:0 14px 32px #1c1f291f,0 2px 4px #1c1f290d}.dropdown-panel.align-left{left:0}.dropdown-panel.align-right{right:0}.dropdown-search{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:8px 10px;display:flex}.dropdown-search svg{color:var(--text-muted);width:12px;height:12px}.dropdown-search input{color:var(--text);background:0 0;border:0;outline:none;width:100%;padding:0;font-size:13px}.dropdown-options{scrollbar-color:#c5cbd6 transparent;scrollbar-width:thin;max-height:280px;padding:4px;overflow:auto}.dropdown-section-label{color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px 4px;font-size:10.5px;font-weight:600}.dropdown-option{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:7px 9px;font-size:13px;display:flex}.dropdown-option:hover{background:var(--surface-hover)}.dropdown-option.selected{background:var(--accent-soft);color:var(--accent)}.dropdown-option.selected svg{color:var(--accent);flex-shrink:0;width:14px;height:14px}.dropdown-option-text{flex-direction:column;gap:2px;min-width:0;display:flex}.dropdown-option-label{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.dropdown-option-sublabel{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.dropdown-option.selected .dropdown-option-sublabel{color:var(--accent);opacity:.75}.dropdown-option-hint{color:var(--text-muted);white-space:nowrap;font-size:11.5px}.dropdown-empty{color:var(--text-muted);text-align:center;padding:14px 10px;font-size:13px}.row-empty td{padding:0}.empty-state{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;padding:36px 20px;font-size:13px;display:flex}.forecast-project-banner{background:linear-gradient(180deg, var(--accent-soft) 0%, var(--surface) 72%);border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:16px 20px;display:flex}.forecast-project-banner--compact{background:var(--surface);gap:12px;padding:12px 16px}.forecast-project-banner--compact .forecast-project-banner-body h3{font-size:14px;font-weight:600}.forecast-project-banner--compact .forecast-project-banner-body p{color:var(--text-muted);font-size:12px}.forecast-project-banner-icon{background:var(--surface);border:1px solid var(--accent-border);box-shadow:var(--shadow-sm);color:var(--accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.forecast-project-banner-icon svg{width:22px;height:22px}.forecast-project-banner-body{flex:1;min-width:0}.forecast-project-banner-body h3{letter-spacing:-.01em;margin:0 0 2px;font-size:15px;font-weight:600}.forecast-project-banner-body p{color:var(--text-muted);margin:0;font-size:12.5px}.forecast-project-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:48px 24px 56px;display:flex}.forecast-project-empty-icon{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:18px;display:flex}.forecast-project-empty-icon svg{width:26px;height:26px}.forecast-project-empty-title{color:var(--text);letter-spacing:-.02em;margin:0 0 8px;font-size:17px;font-weight:600}.forecast-project-empty-desc{color:var(--text-muted);max-width:440px;margin:0 0 28px;font-size:14px;line-height:1.55}.forecast-project-empty-desc strong{color:var(--text-secondary);font-weight:600}.forecast-project-empty-action{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:12px;width:100%;max-width:520px;padding:18px 20px}.forecast-project-empty-action-label{color:var(--text-secondary);letter-spacing:.06em;text-align:left;text-transform:uppercase;margin-bottom:12px;font-size:11.5px;font-weight:600;display:block}.forecast-project-empty-action-row{align-items:stretch;gap:10px;display:flex}.forecast-project-empty-action-row .forecast-add-trigger{flex:1;min-width:0;min-height:38px}.forecast-project-empty-action-row .btn-primary{flex-shrink:0;height:38px;padding:0 18px}.forecast-project-empty-warn{background:var(--warning-soft);text-align:left;border:1px solid #b4530938;border-radius:10px;width:100%;max-width:480px;padding:14px 16px}.forecast-project-empty-warn strong{color:var(--warning);margin-bottom:6px;font-size:13px;display:block}.forecast-project-empty-warn p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.forecast-project-empty-foot{color:var(--text-faint);margin:20px 0 0;font-size:12.5px}.forecast-project-add-footer{flex-wrap:wrap;align-items:center;gap:12px 16px;max-width:640px;display:flex}.forecast-project-add-footer-label{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:600}.row-add-project td{background:var(--surface-2);border-top:1px solid var(--border);padding:14px 16px}.row-project-total th,.row-project-total td{background:var(--surface-2);border-top:1px solid var(--border-strong);font-variant-numeric:tabular-nums;vertical-align:middle}.project-total-heading{color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;font-size:12px;font-weight:600}.project-total-cell{text-align:right}.row-project-total td.col-resource{background:var(--surface-2);z-index:2;position:sticky;left:0}.project-total-type{background:var(--surface-2)}.month-total-value{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;width:100%;padding:4px 6px;font-size:13px;font-weight:600;line-height:1.4;display:block}.grid--project-view .row-project-total .month-cell{padding:6px 8px}.project-forecast-footer{background:var(--surface);border-top:1px solid var(--border);padding:14px 16px 16px}.project-forecast-add{flex-wrap:nowrap;align-items:center;gap:10px;max-width:100%;display:flex}@media (width<=1024px){.project-forecast-add{flex-wrap:wrap}}.project-forecast-add-label{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-size:13px;font-weight:500}.project-forecast-add-trigger{justify-content:space-between;min-height:38px}.project-forecast-add-person{flex:240px;min-width:170px;max-width:320px}.project-forecast-add-billing{flex:0 210px;min-width:165px;max-width:240px}.project-forecast-required-star{color:#e0654a;margin-left:3px;font-size:14px;font-weight:700;line-height:1}.project-forecast-footer-muted{color:var(--text-muted);margin:0;font-size:13px}.empty-state strong{color:var(--text);font-weight:500}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.btn-link:hover{text-decoration:underline}.col-month-label{letter-spacing:.04em;font-size:11px;font-weight:700;display:block}.col-month-year{color:var(--text-faint);letter-spacing:.02em;text-transform:none;margin-top:1px;font-size:10px;font-weight:500;display:block}.legend{align-items:center;gap:12px;display:inline-flex}.legend-item{color:var(--text-muted);align-items:center;gap:5px;font-size:11.5px;display:inline-flex}.legend-swatch{border-radius:3px;width:10px;height:10px}.legend-swatch.tone-empty{background:var(--signal-bad-bg-strong)}.legend-swatch.tone-low{background:var(--signal-bad-bg)}.legend-swatch.tone-mid{background:var(--signal-amber-bg)}.legend-swatch.tone-good{background:var(--signal-good-bg)}.legend-swatch.tone-over{background:var(--signal-bad-bg-strong)}.grid-card{background:var(--surface);border:1px solid var(--border);border-radius:0 0 10px 10px;overflow:hidden}.grid-scroll{scrollbar-color:#c5cbd6 transparent;scrollbar-width:thin;min-height:min(560px,100vh - 280px);max-height:calc(100vh - 280px);overflow:auto}.grid-card--project{flex-direction:column;display:flex;overflow:visible}.grid-card--project .grid-card--project .dropdown-panel{z-index:300}.grid-card--project .row-add>th,.grid-card--project .row-add>td{overflow:visible}table.grid{border-collapse:separate;border-spacing:0;width:100%;min-width:1280px}.grid th,.grid td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;vertical-align:middle;padding:0;font-weight:500}.grid thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;z-index:5;padding:8px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.col-resource{z-index:4;width:260px;min-width:260px;position:sticky;left:0}.col-project{width:240px;min-width:240px}.col-type{width:110px;min-width:110px}.col-month{width:88px;min-width:88px}.grid--project-view{table-layout:fixed;width:100%;min-width:0}.grid--project-view .colgroup-resource{width:28%}.grid--project-view .colgroup-type{width:18%}.grid--project-view .colgroup-month{width:auto}.grid--project-view .col-month{width:auto;min-width:0}.grid--project-view .col-resource{width:auto;min-width:0;position:sticky}.grid--project-view .col-type{width:auto;min-width:0}.grid--project-view thead th{padding:10px 12px;font-size:11px}.grid--project-view thead .col-month{text-align:right}.grid--project-view .row-flat>th,.grid--project-view .row-flat>td,.grid--project-view .row-add>th,.grid--project-view .row-add>td,.grid--project-view .row-project-total>th,.grid--project-view .row-project-total>td{padding:12px 14px}.grid--project-view .row-flat:hover>th,.grid--project-view .row-flat:hover>td{background:var(--surface-hover)}.grid--project-view .row-flat .row-delete{opacity:0;transition:opacity .12s}.grid--project-view .row-flat:hover .row-delete,.grid--project-view .row-flat .row-delete:focus-visible{opacity:1}.grid--project-view .hours-input{min-height:34px;padding:6px 8px;font-size:13px}.grid--project-view .row-flat .month-cell{padding:6px 8px}.resource-cell-flat{justify-content:space-between;align-items:center}.add-control--table{align-items:center;gap:10px;width:100%}.add-control--table .forecast-add-trigger{flex:1;min-width:0;min-height:38px}.add-control--table .btn-primary{flex-shrink:0;height:38px}.grid-card--project .project-forecast-footer .dropdown-panel{z-index:300}thead .col-month{text-align:right;padding-right:12px}.row-resource>th,.row-resource>td{background:var(--surface-2);border-top:1px solid var(--border-strong);padding:10px 12px}.row-flat>th,.row-flat>td{background:var(--surface);border-top:1px solid var(--border);padding:10px 12px}.bu-divider>.bu-divider-cell{background:var(--surface-2);border-top:8px solid var(--bg);border-bottom:1px solid var(--border);height:32px;padding:8px 12px}.bu-divider>.bu-divider-cell.resource-col{z-index:4}.bu-divider .group-name{color:var(--text);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.bu-divider .group-count{color:var(--text-muted);margin-left:10px;font-size:11.5px;font-weight:500}.bu-divider:first-of-type>.bu-divider-cell,.row-flat:first-child>th,.row-flat:first-child>td{border-top:0}.row-flat .col-resource{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}.row-flat:hover>th,.row-flat:hover>td,.row-flat:hover .col-resource{background:var(--surface-hover)}.row-flat .month-cell{padding:4px 6px}.resource-cell-flat{padding-left:4px}.row-resource:first-child>th,.row-resource:first-child>td{border-top:0}.row-resource .col-resource{background:var(--surface-2);box-shadow:inset 2px 0 0 var(--accent)}.row-project>th,.row-project>td{background:var(--surface);height:38px;padding:6px 10px}.row-project .col-resource{background:var(--surface)}.row-project:hover>th,.row-project:hover>td,.row-project:hover .col-resource{background:var(--surface-hover)}.row-add>th,.row-add>td{background:var(--surface);padding:8px 10px}.row-add .col-resource{background:var(--surface)}.resource-cell{align-items:center;gap:9px;display:flex}.expand{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.expand:hover{background:var(--surface-hover);color:var(--text)}.expand svg{width:11px;height:11px}.resource-info{flex-direction:column;min-width:0;display:flex}.resource-info strong{color:var(--text);font-size:13.5px;font-weight:600}.resource-info span{color:var(--text-muted);font-size:11.5px;font-weight:400}.project-cell{align-items:center;height:100%;padding-left:11px;display:flex;position:relative}.project-rail{background:var(--border-strong);border-radius:999px;width:4px;height:4px;margin-left:28px;display:inline-block}.project-cell-content{flex-direction:column;min-width:0;display:flex}.project-cell-content.with-row-action{flex-direction:row;justify-content:space-between;align-items:center;gap:8px}.project-cell-content.with-row-action>div:first-child{flex-direction:column;min-width:0;display:flex}.row-delete{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;border-radius:6px;outline:none;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;transition:background .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.row-delete svg{width:14px;height:14px}.row-project:hover .row-delete,.row-flat:hover .row-delete,.row-delete:focus-visible{opacity:1}.row-delete:hover{color:#b8264a;background:#fde9eb;border-color:#f6c7cd}.row-delete:focus-visible{box-shadow:0 0 0 3px #b8264a38}.settings-stack{flex-direction:column;gap:16px;display:flex}.user-add-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 16px;display:flex}.user-add-input{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;flex:1;min-width:0}.user-add-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.user-add-button{flex-shrink:0}.form-error{color:#b8264a;background:#fde9eb;border:1px solid #f6c7cd;border-radius:6px;align-items:center;gap:6px;margin:8px 16px 0;padding:6px 10px;font-size:12px;font-weight:500;display:inline-flex}.form-error svg{flex-shrink:0;width:14px;height:14px}.form-error.inline{margin:4px 0 0;padding:4px 8px}.resources-table .col-joined{width:14%;min-width:110px}.resources-table .col-actions{text-align:right;width:18%;min-width:140px}.user-cell-static{color:var(--text);padding:0 8px;font-size:13px}.user-cell-static.muted{color:var(--text-muted);font-size:12.5px}.user-email-static{font-variant-numeric:tabular-nums}.user-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.btn-small-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-small-primary:hover{background:#7345b2;border-color:#7345b2}.row-delete-inline{opacity:1}.inactive-badge{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:600}.hours-readonly{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;width:100%;padding:6px 10px;font-size:13px;font-weight:500;display:inline-block}.hours-readonly.zero{color:var(--text-faint)}.row-resource.inactive .resource-info strong,.row-resource.inactive .hours-readonly,.row-resource.inactive .month-total strong{opacity:.78}.row-resource.inactive .expand{opacity:.7}.revenue-toolbar{border-radius:10px;margin-top:8px}.revenue-toolbar-left{flex:1;gap:12px;min-width:0}.revenue-toolbar-left .search{flex:1;max-width:480px}.revenue-project-trigger{text-align:left;background:0 0;border:0;flex:1}.revenue-source-pill{background:var(--accent-soft);color:var(--accent-hover);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.revenue-body{flex-direction:column;gap:20px;padding:16px;display:flex}.revenue-empty{background:var(--surface-2);color:var(--text-secondary);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;margin:16px;padding:32px 16px;display:flex}.revenue-empty strong{color:var(--text);font-size:14px;font-weight:600}.revenue-empty p{color:var(--text-muted);margin:0;font-size:12.5px}.revenue-hint{background:var(--signal-amber-bg);color:var(--signal-amber-text);border-radius:6px;align-items:center;gap:8px;padding:10px 14px;font-size:12.5px;font-weight:500;display:flex}.revenue-kpis{flex-direction:column;gap:14px;display:flex}.revenue-kpi-group{flex-direction:column;gap:8px;display:flex}.revenue-kpi-group-label{color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;font-weight:700}.revenue-kpi-row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=900px){.revenue-kpi-row{grid-template-columns:1fr}}.revenue-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.revenue-section-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.revenue-section-title{color:var(--text);letter-spacing:-.005em;margin:0;font-size:14px;font-weight:600}.revenue-legend{gap:12px;display:flex}.revenue-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.revenue-legend-swatch{border-radius:2px;width:16px;height:10px;display:inline-block}.revenue-legend-swatch.actual{background:var(--accent)}.revenue-legend-swatch.forecast{background:var(--accent-soft);border:1px dashed var(--accent)}.revenue-chart-wrap{position:relative}.revenue-chart{font-family:inherit;display:block}.revenue-chart-gridline{stroke:var(--border);stroke-width:1px}.revenue-chart-tick{fill:var(--text-faint);font-variant-numeric:tabular-nums;font-size:10px}.revenue-chart-month{fill:var(--text-muted);font-size:10px;font-weight:500}.revenue-chart-bar{fill:var(--accent);transition:opacity .12s}.revenue-chart-bar.actual{fill:var(--accent)}.revenue-chart-bar.forecast{fill:var(--accent-soft);stroke:var(--accent);stroke-dasharray:3 3;stroke-width:1px}.revenue-chart-month.current{fill:var(--accent-hover);font-weight:700}.revenue-chart-bar:hover,.revenue-chart-bar.hover{opacity:.82}.revenue-chart-tooltip-section{border-top:1px solid #ffffff1f;margin-top:6px;padding-top:6px}.revenue-chart-tooltip-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.revenue-chart-tooltip-section-label{letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:700;display:block}.revenue-chart-tooltip-section-label.actual{color:#fff}.revenue-chart-tooltip-section-label.forecast{color:#ffffffbf}.revenue-legend-swatch.split{background:linear-gradient(to top, var(--accent) 55%, var(--accent-soft) 55%);border:1px solid var(--accent)}.revenue-table-hours-split,.revenue-table-revenue-split{flex-direction:column;gap:2px;display:flex}.revenue-table-hours-split span,.revenue-table-revenue-split span{color:var(--text-muted);font-size:12px}.revenue-table-revenue-split strong{color:var(--text);margin-top:2px;font-size:13px}.revenue-resource-subtitle{margin:0 0 12px}.revenue-resource-table th:first-child,.revenue-resource-table td:first-child{text-align:left;min-width:160px}.revenue-chart-empty{color:var(--text-muted);text-align:center;padding:48px;font-size:13px}.revenue-chart-tooltip{background:var(--text);color:#fff;pointer-events:none;z-index:5;border-radius:8px;min-width:200px;padding:10px 12px;font-size:12px;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0000002e}.revenue-chart-tooltip-month{border-bottom:1px solid #ffffff24;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding-bottom:6px;font-size:12.5px;font-weight:600;display:flex}.revenue-chart-tooltip-row{font-variant-numeric:tabular-nums;justify-content:space-between;padding:2px 0;display:flex}.revenue-chart-tooltip-row span{color:#ffffffa6}.revenue-chart-tooltip-revenue{border-top:1px solid #ffffff24;margin-top:4px;padding-top:6px}.revenue-type-pill{background:var(--accent);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.revenue-type-pill.forecast{background:var(--accent-soft);color:var(--accent-hover)}.revenue-table th.num,.revenue-table td.num{font-variant-numeric:tabular-nums;text-align:right}.admin-badge{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:700}.role-badge{letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;background:var(--surface-hover);color:var(--text-muted);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:700}.role-badge--admin{background:var(--accent-soft);color:var(--accent)}.role-badge--project_owner{background:var(--signal-good-bg-soft,#0f7a5214);color:var(--signal-good-text,#0f5c3d)}.role-badge--standard{background:var(--surface-hover);color:var(--text-muted)}.role-badge--finance{background:var(--warning-soft,#f59e0b1a);color:var(--warning,#b45309)}.settings-role-select{cursor:pointer}.project-name{color:var(--text);font-size:13px;font-weight:500}.project-meta{color:var(--text-faint);font-size:11.5px}.badge{color:var(--text-secondary);letter-spacing:.01em;background-color:#eef0f4;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}.badge.billable{color:#075985;background-color:#e0f2fe}.badge.internal{background-color:var(--accent-soft);color:var(--accent-hover)}.badge.nonbillable{color:var(--text-secondary);background-color:#f3f4f6}.badge.all{background-color:var(--text);color:#fff}.month-cell{text-align:right;position:relative}.row-project .month-cell{padding:4px 6px}.row-resource .month-cell{padding:8px 12px}.hours-input{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:1px solid #0000;border-radius:5px;outline:none;width:100%;padding:4px 6px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,box-shadow .12s}.hours-input:hover{background:var(--surface-hover)}.hours-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.hours-input.zero{color:var(--text-faint)}.month-total{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;gap:1px;display:flex}.month-total strong{font-size:13.5px;font-weight:600}.month-total span{color:var(--text-muted);font-size:10.5px;font-weight:500}.month-cell.tone-empty{background-color:var(--surface-2)}.month-cell.tone-low{background-color:var(--signal-bad-bg)}.month-cell.tone-mid{background-color:var(--signal-amber-bg)}.month-cell.tone-good{background-color:var(--signal-good-bg)}.month-cell.tone-over{background-color:var(--signal-bad-bg-strong)}.month-cell.tone-empty strong{color:var(--text-faint)}.month-cell.tone-low strong{color:var(--signal-bad-text)}.month-cell.tone-mid strong{color:var(--signal-amber-text)}.month-cell.tone-good strong{color:var(--signal-good-text)}.month-cell.tone-over strong{color:var(--signal-bad-text-strong)}.month-cell.tone-empty span,.month-cell.tone-low span,.month-cell.tone-mid span,.month-cell.tone-good span,.month-cell.tone-over span{color:inherit;opacity:.7}.muted-cell{color:var(--text-faint);text-align:center}.add-control{align-items:center;gap:8px;display:flex}.btn-small{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:6px;align-items:center;gap:5px;height:28px;padding:0 12px;font-size:12.5px;font-weight:500;display:inline-flex}.btn-small svg{width:12px;height:12px}.btn-small:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.actuals-loading-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--text-muted);z-index:10;background:#ffffffb8;justify-content:center;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex;position:absolute;inset:0}.actuals-initial-loading{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:240px;padding:40px 20px;display:flex}.actuals-initial-loading p{margin:0;font-size:13.5px}.actuals-page-header{align-items:flex-start}.actuals-page-header .resources-title{margin-bottom:8px}.actuals-summary{margin-top:4px}.actuals-summary-kpis{flex-wrap:wrap;align-items:flex-end;gap:20px 28px;display:flex}.actuals-kpi{flex-direction:column;gap:2px;min-width:0;display:flex}.actuals-kpi-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.actuals-kpi-value{color:var(--text);letter-spacing:-.02em;font-size:15px;font-weight:600;line-height:1.2}.actuals-kpi-value--range{color:var(--text-secondary);letter-spacing:0;font-size:14px;font-weight:500}.actuals-kpi--primary .actuals-kpi-value{align-items:baseline;gap:4px;font-size:28px;font-weight:600;line-height:1;display:flex}.actuals-kpi--primary .actuals-kpi-unit{color:var(--text-muted);letter-spacing:0;font-size:14px;font-weight:500}.actuals-summary-meta{color:var(--text-faint);margin:10px 0 0;font-size:12px}.actuals-scroll{position:relative}.actuals-scroll .grid-scroll.actuals-grid-scroll{overflow-x:auto}.actuals-scroll .grid-scroll.actuals-grid-scroll:has(.actuals-grid){width:100%}table.grid.actuals-grid{table-layout:fixed;width:100%;min-width:0;max-width:100%}.actuals-grid .colgroup-resource{width:var(--actuals-resource-w,260px)}.actuals-grid .colgroup-avg{width:var(--actuals-avg-w,112px)}.actuals-grid .col-resource,.actuals-grid .resource-col{z-index:3;width:auto;min-width:0;max-width:none;position:sticky;left:0}.actuals-grid{table-layout:fixed}.actuals-grid .col-month{max-width:none;width:auto!important;min-width:0!important}.actuals-grid thead .col-month{padding:8px}.actuals-hours-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:600;line-height:1.3;display:block}.actuals-month-cell{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;padding:8px 10px;font-size:13px;font-weight:500}.actuals-grid .col-avg{background:var(--surface-2);border-left:1px solid var(--border-strong);min-width:var(--actuals-avg-w,112px)}.actuals-grid thead .col-avg .col-month-label{color:var(--text);font-size:11.5px}.actuals-grid thead .col-avg .col-month-year{color:var(--text-muted)}.actuals-grid .col-avg .compare-cell{gap:3px;min-height:38px}.actuals-grid .col-avg .compare-actual{font-size:14px;font-weight:600}.actuals-grid .col-avg .util-pct,.actuals-grid .col-avg .period-avg-sub{font-size:12px;font-weight:600}.period-avg-sub{color:var(--text-muted);margin-top:1px;font-size:12px;font-weight:600;display:block}.actuals-grid .row-resource .actuals-month-cell{font-weight:600}.actuals-grid .row-resource .resource-col{box-shadow:inset 2px 0 0 var(--accent)}.actuals-grid .row-project .actuals-month-cell{color:var(--text-secondary);font-weight:500}.spinner{border:2px solid var(--border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;flex-shrink:0;animation:.7s linear infinite spin;display:inline-block}.timesheet-table .col-num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;min-width:80px}.timesheet-table .col-num .col-month-label{letter-spacing:.04em;text-align:right;font-size:11px;font-weight:700;display:block}.timesheet-table .col-num .col-month-year{color:var(--text-faint);text-align:right;text-transform:none;font-size:10px;display:block}.timesheet-project-row{cursor:pointer;-webkit-user-select:none;user-select:none}.timesheet-project-row:hover td{background:var(--surface-hover)}.timesheet-project-row:focus-visible td{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.timesheet-chevron{color:var(--text-muted);vertical-align:middle;margin-right:8px;display:inline-flex}.timesheet-chevron svg{width:12px;height:12px}.timesheet-employee-count{color:var(--text-muted);margin-left:10px;font-size:11.5px;font-weight:500}.timesheet-total{color:var(--text);font-weight:600}.timesheet-employee-row{background:var(--surface-2)}.timesheet-employee-row td{font-size:12.5px;padding-top:6px!important;padding-bottom:6px!important}.timesheet-indent{color:var(--text-faint);width:14px;margin-right:8px;display:inline-block}.timesheet-role{color:var(--text-muted);font-size:11.5px}.resources-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.resources-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.resources-title{color:var(--text);letter-spacing:-.01em;font-size:16px;font-weight:600}.resources-subtitle{color:var(--text-muted);margin-top:2px;font-size:12.5px}.resources-header-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.resources-count{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.resources-scroll{scrollbar-color:#c5cbd6 transparent;scrollbar-width:thin;overflow-x:auto}.resources-table{border-collapse:separate;border-spacing:0;width:100%;min-width:880px}.resources-table th,.resources-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:0}.resources-table thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;padding:8px 12px;font-size:11px;font-weight:600}.resources-table tbody tr:last-child td{border-bottom:0}.resources-table tbody tr:hover td{background:var(--surface-hover)}.resources-table .col-name{width:20%;min-width:200px}.resources-table .col-email{width:24%;min-width:220px}.resources-table .col-role,.resources-table .col-rate{width:14%;min-width:130px}.resources-table .col-bu{width:16%;min-width:150px}.resources-table .col-status{width:14%;min-width:130px}.resources-table .col-status .ns-status{flex-direction:column;align-items:flex-start;gap:2px;font-size:12.5px;line-height:1.35;display:inline-flex}.resources-table .col-status .ns-status-active{color:var(--signal-good-text-soft);font-weight:500}.resources-table .col-status .ns-status-inactive{color:var(--text-muted)}.resources-table .col-status .inactive-date-input{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;margin-top:4px;padding:4px 8px;font-size:12px;line-height:1.2}.resources-table .col-status .inactive-date-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.resources-table tr.resource-ns-inactive td{background:var(--surface-2)}.resources-table tr.inactive-subheader{cursor:pointer}.resources-table tr.inactive-subheader>.inactive-subheader-cell{background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-muted);padding:6px 12px;font-size:12px}.resources-table tr.inactive-subheader .inactive-indent{width:12px;display:inline-block}.resources-table tr.inactive-subheader .inactive-subheader-label{color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;margin-right:8px;font-size:11px;font-weight:600}.resources-table tr.inactive-subheader .group-chevron{color:var(--text-faint);vertical-align:-2px;margin-right:6px;display:inline-flex}.reporting-toggle-locked{opacity:.65;pointer-events:none}.resources-table .col-reporting{text-align:center;width:12%;min-width:120px}.resources-table thead .col-reporting{text-align:center}.resources-table td{padding:6px 8px}.cell-input{color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;outline:none;width:100%;padding:7px 9px;font-size:13px;transition:background .12s,border-color .12s,box-shadow .12s}.cell-input:hover{background:var(--surface-hover)}.cell-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.rate-cell{position:relative}.rate-prefix{color:var(--text);font-variant-numeric:tabular-nums;pointer-events:none;z-index:1;font-size:13px;font-weight:500;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.rate-cell:focus-within .rate-prefix{display:none}.cell-input-rate{color:#0000;font-variant-numeric:tabular-nums}.cell-input-rate:focus{color:var(--text)}.bu-trigger{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;border-radius:6px;outline:none;align-items:center;gap:6px;padding:6px 8px 6px 10px;font-size:12.5px;font-weight:500;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.reporting-toggle{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px;padding:2px;display:inline-flex;overflow:hidden}.reporting-option{color:var(--text-muted);cursor:pointer;letter-spacing:.02em;background:0 0;border:0;border-radius:4px;outline:none;padding:4px 12px;font-size:12px;font-weight:600;transition:background .12s,color .12s,box-shadow .12s}.reporting-option:hover:not(.active){color:var(--text)}.reporting-option.active{background:var(--accent);color:#fff;box-shadow:0 1px 2px #0000001f}.reporting-option.active.no{background:var(--text-muted)}.reporting-option:focus-visible{box-shadow:0 0 0 2px #8853c647}.bu-trigger:hover{background:var(--surface-hover)}.bu-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.projects-header-actions{align-items:center;gap:10px;display:flex}.refresh-button svg{width:13px;height:13px}.refresh-button svg.spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.source-pill{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.compare-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.compare-switch input{appearance:none;opacity:0;pointer-events:none;width:0;height:0;margin:0;position:absolute}.compare-switch-track{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:28px;height:16px;transition:background .14s;display:inline-block;position:relative}.compare-switch-thumb{background:#fff;border-radius:999px;width:12px;height:12px;transition:left .14s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0f12192e}.compare-switch.on .compare-switch-track{background:var(--accent)}.compare-switch.on .compare-switch-thumb{left:14px}.compare-switch-label{color:var(--text-secondary);font-size:12.5px;font-weight:500;transition:color .12s}.compare-switch.on .compare-switch-label{color:var(--text)}.compare-switch:focus-within .compare-switch-track{box-shadow:0 0 0 3px #8853c638}.compare-cell{flex-direction:column;justify-content:center;align-items:flex-end;gap:2px;min-height:34px;line-height:1.2;display:flex}.compare-cell.bare{align-items:center}.compare-actual{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.005em;font-size:13px;font-weight:600}.compare-diff{font-variant-numeric:tabular-nums;letter-spacing:.01em;opacity:.85;font-size:11px;font-weight:600}.compare-noplan{color:var(--text-muted);letter-spacing:.04em;opacity:.55;text-transform:uppercase;font-size:10px;font-weight:500}.util-pct{color:var(--text-muted);font-variant-numeric:tabular-nums;letter-spacing:.01em;font-size:11px;font-weight:600}.month-cell.tone-empty .util-pct{color:var(--text-faint)}.month-cell.tone-low .util-pct{color:var(--signal-bad-text)}.month-cell.tone-mid .util-pct{color:var(--signal-amber-text)}.month-cell.tone-good .util-pct{color:var(--signal-good-text)}.month-cell.tone-over .util-pct{color:var(--signal-bad-text-strong)}.actuals-month-cell.variance-tight{background:var(--signal-good-bg)}.actuals-month-cell.variance-tight .compare-diff{color:var(--signal-good-text)}.actuals-month-cell.variance-close{background:var(--signal-good-bg-soft)}.actuals-month-cell.variance-close .compare-diff{color:var(--signal-good-text-soft)}.actuals-month-cell.variance-off{background:var(--signal-bad-bg)}.actuals-month-cell.variance-off .compare-diff{color:var(--signal-bad-text)}.actuals-month-cell.variance-far-off{background:var(--signal-bad-bg-strong)}.actuals-month-cell.variance-far-off .compare-diff{color:var(--signal-bad-text-strong)}.source-pill.source-netsuite{color:#0f7a52;background:#e6f8ed}.source-pill.source-cache{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary)}.projects-stale{color:var(--warning);align-items:center;gap:6px;margin-top:6px;font-size:12px;display:inline-flex}.projects-stale svg{flex-shrink:0;width:14px;height:14px}.projects-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1300px}.projects-table th,.projects-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:9px 12px}.projects-table thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.projects-table tbody tr:last-child td{border-bottom:0}.projects-table tbody tr:hover td{background:var(--surface-hover)}.projects-table .col-ns-id{width:100px;min-width:100px}.projects-table .col-project-name{width:24%;min-width:220px}.projects-table .col-customer{width:16%;min-width:160px}.projects-table .col-pm{width:14%;min-width:140px}.projects-table .col-date{white-space:nowrap;min-width:110px}.projects-table .col-num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;min-width:100px}.projects-table .col-status{width:110px;min-width:110px}.projects-empty-row{color:var(--text-muted);text-align:center;font-size:13px;padding:28px 14px!important}.projects-table tr.group-header td{background:var(--surface-2);border-bottom:1px solid var(--border);border-top:1px solid var(--border-strong);padding:9px 14px}.projects-table tr.group-header:first-child td{border-top:0}.projects-table tr.group-header,.projects-table tr.pm-header{cursor:pointer;-webkit-user-select:none;user-select:none}.projects-table tr.group-header:hover td,.projects-table tr.pm-header:hover td{background:var(--surface-hover)}.projects-table tr.group-header:focus-visible td,.projects-table tr.pm-header:focus-visible td{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.projects-table tr.pm-header td{background:var(--surface);border-bottom:1px solid var(--border);padding:7px 14px}.group-chevron{color:var(--text-muted);vertical-align:middle;align-items:center;margin-right:8px;display:inline-flex}.group-chevron svg{width:12px;height:12px}.group-name{color:var(--text);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;font-size:11px;font-weight:700}.pm-indent{width:22px;display:inline-block}.pm-name{color:var(--text);vertical-align:middle;font-size:13px;font-weight:600}.group-count{color:var(--text-muted);vertical-align:middle;margin-left:10px;font-size:11.5px;font-weight:500}.badge.closed,.badge.status-closed{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.badge.status-in-progress{background:var(--signal-good-bg-soft);color:var(--signal-good-text)}.badge.status-awarded{background:var(--accent-soft);color:var(--accent-hover)}.badge.status-pending{background:var(--signal-amber-bg);color:var(--signal-amber-text)}.badge.status-not-awarded{background:var(--signal-bad-bg);color:var(--signal-bad-text)}.skeleton{vertical-align:middle;background:linear-gradient(90deg,#eef0f4 0%,#f7f8fa 50%,#eef0f4 100%) 0 0/220% 100%;animation:1.4s ease-in-out infinite skeleton-shimmer;display:inline-block}@keyframes skeleton-shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}.skeleton-stack{vertical-align:middle;flex-direction:column;gap:4px;display:inline-flex}.skeleton-section-label{margin:12px 8px 6px}.skeleton-nav-row{align-items:center;gap:10px;padding:7px 8px;display:flex}.skeleton-user{align-items:center;gap:9px;padding:6px 8px;display:flex}.skeleton-kpi-value{margin:8px 0 6px}.skeleton-toolbar{border-bottom:0}.projects-loading-banner{background:var(--surface-2);border-top:1px solid var(--border);color:var(--text-muted);align-items:center;gap:8px;padding:10px 14px;font-size:12.5px;display:flex}.loading-dot{background:var(--accent);border-radius:999px;width:8px;height:8px;position:relative}.loading-dot:before{background:var(--accent);content:"";opacity:.6;border-radius:999px;animation:1.4s ease-out infinite pulse-ring;position:absolute;inset:0}@keyframes pulse-ring{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.projects-empty{color:var(--text-muted);padding:32px 22px;font-size:13.5px;line-height:1.55}.projects-empty strong{color:var(--text);margin-bottom:6px;font-size:14.5px;display:block}.projects-empty p{max-width:560px;margin:0}.projects-empty code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:12px}.projects-empty.error strong{color:var(--danger)}.mono{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:12.5px}.state-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:460px;margin:80px auto;padding:32px}.state-card h1{margin-bottom:6px;font-size:18px}.state-card p{color:var(--text-muted);font-size:13px}.pipeline-card{margin-top:16px}.pipeline-scroll{max-height:min(480px,50vh)}.pipeline-empty{padding:28px 22px}.badge.status-pipeline{background:var(--accent-soft);color:var(--accent-hover)}.badge.status-4-contract-sent,.badge.status-4-economic-decision,.badge.status-5-contracts{background:var(--warning-soft);color:var(--warning)}.badge.status-salesforce-pipeline{background:var(--accent-soft);color:var(--accent-hover)}.project-name-with-tag{align-items:center;gap:8px;min-width:0;display:flex}.pipeline-tag{background:var(--accent-soft);color:var(--accent-hover);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:1px 7px;font-size:10px;font-weight:700;line-height:1.7}.placeholder-tag{background:var(--surface-2);color:var(--text-muted);border:1px dashed var(--border-strong);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:4px;flex-shrink:0;margin-left:8px;padding:0 6px;font-size:10px;font-weight:600}.project-cell--rail-action{align-items:center;gap:6px;min-width:0;height:100%;display:flex}.project-cell--rail-action>.project-rail{align-self:stretch}.project-cell--rail-action>.row-delete,.project-cell--rail-action>.row-pinned{flex:none;margin-left:auto;position:static}.project-name-with-tag>.project-name-row,.project-name-with-tag>.project-name-link,.forecast-project-banner .project-name-with-tag>h3{flex:auto;min-width:0;overflow:hidden}.project-name-with-tag .project-name,.forecast-project-banner .project-name-with-tag>h3{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-name-with-tag>.pipeline-tag,.project-name-with-tag>.placeholder-tag{flex:none}.placeholder-folder-row{cursor:pointer;background:var(--surface-2)}.placeholder-folder-row>th,.placeholder-folder-row>td{box-shadow:inset 0 1px 0 var(--border);padding:9px 12px}.placeholder-folder-row:hover{background:var(--surface-hover)}.placeholder-folder-title{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:6px;font-size:11.5px;font-weight:700;display:inline-flex}.placeholder-folder-icon{width:14px;height:14px;color:var(--text-muted);flex:none}.placeholder-folder-row .month-total--plain strong{color:var(--text-muted);font-weight:600}.row-placeholder>th,.row-placeholder>td{background:var(--surface-2)}.row-placeholder .resource-info>strong{color:var(--text-secondary);font-weight:600}.row-placeholder .month-total--plain strong{color:var(--text-faint);font-weight:600}.month-total--plain{flex-direction:column;justify-content:center;min-height:38px;display:flex}.month-total--plain strong{color:var(--text);font-variant-numeric:tabular-nums}.forecast-action-band{justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.project-name-link{color:var(--accent);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;line-height:1.25;text-decoration:none;display:block;overflow:hidden}.project-name-link:hover{text-decoration:underline}.forecast-project-banner h3 .project-name-link{font-size:inherit;font-weight:inherit;line-height:inherit;display:inline}.projects-db-table tr.group-header td,.projects-db-table tr.pm-header td{cursor:pointer;-webkit-user-select:none;user-select:none}.projects-db-table tr.group-header td{background:var(--surface-2);border-top:1px solid var(--border-strong);padding:9px 14px}.projects-db-table tr.group-header:first-child td{border-top:0}.projects-db-table tr.group-header:hover td,.projects-db-table tr.pm-header:hover td{background:var(--surface-hover)}.projects-db-table tr.pm-header td{background:var(--surface);border-bottom:1px solid var(--border);padding:7px 14px}.projects-db-table tr.group-header:focus-visible td,.projects-db-table tr.pm-header:focus-visible td{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.projects-db-table .group-chevron{color:var(--text-muted);vertical-align:middle;align-items:center;margin-right:8px;display:inline-flex}.projects-db-table .group-chevron svg{width:12px;height:12px}.projects-db-table .group-name{color:var(--text);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;font-size:11px;font-weight:700}.projects-db-table .pm-name{color:var(--text);vertical-align:middle;font-size:13px;font-weight:600}.projects-db-table .group-count{color:var(--text-muted);vertical-align:middle;margin-left:10px;font-size:11.5px;font-weight:500}.projects-db-table .pm-indent{width:22px;display:inline-block}.projects-page{flex-direction:column;gap:20px;display:flex}.projects-header{flex-direction:column;align-items:stretch;gap:14px}.projects-header-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.projects-header-refresh{flex-shrink:0;align-items:center;gap:10px;display:flex}.projects-header-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.projects-search{width:min(280px,100%)}.projects-search input{color:var(--text);background:0 0;border:0;outline:none;width:100%;font-size:13px}.projects-db-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1100px}.projects-db-table th,.projects-db-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:10px 12px;font-size:13px}.projects-db-table thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;z-index:2;font-size:11px;font-weight:600;position:sticky;top:0}.projects-db-table th.num,.projects-db-table td.num{font-variant-numeric:tabular-nums;text-align:right}.projects-db-row{cursor:pointer;transition:background .1s}.projects-db-row:hover td{background:var(--surface-hover)}.projects-db-row.selected td{background:var(--accent-soft)}.projects-db-row.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.projects-source-tag{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:9px;font-weight:700;display:inline-block}.project-overview-card{margin-top:0}.project-overview-header{align-items:flex-start}.project-overview-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dashboard-report{flex-direction:column;gap:24px;display:flex}.dash-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.dash-eyebrow{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:700}.dash-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:600}.dash-subtitle{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.dash-kpis{margin:0}.dash-loading{color:var(--text-muted);align-items:center;gap:10px;padding:48px 20px;font-size:13.5px;display:flex}.dash-section{flex-direction:column;gap:14px;display:flex}.dash-section-title{color:var(--text);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}.dash-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (width<=1100px){.dash-chart-grid{grid-template-columns:1fr}}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.dash-card-head h4{color:var(--text);margin:0 0 4px;font-size:14px;font-weight:600}.dash-chart-wrap{position:relative}.dash-chart{font-family:inherit;display:block}.dash-chart-gridline{stroke:var(--border);stroke-width:1px}.dash-chart-tick{fill:var(--text-faint);font-variant-numeric:tabular-nums;font-size:10px}.dash-chart-month{fill:var(--text-muted);font-size:10px;font-weight:500}.dash-bar-capacity{fill:#e2e8f0}.dash-bar-booked{fill:#5b6cf0}.dash-legend{flex-wrap:wrap;gap:12px;margin-top:4px;display:flex}.dash-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.dash-legend-swatch{border-radius:2px;width:12px;height:12px;display:inline-block}.dash-legend-swatch-capacity{background:#e2e8f0}.dash-legend-swatch-booked{background:#5b6cf0}.dash-chart-tooltip{background:var(--text);color:#fff;pointer-events:none;z-index:5;border-radius:8px;min-width:180px;padding:10px 12px;font-size:12px;position:absolute;top:12px;right:12px;box-shadow:0 6px 24px #0000002e}.dash-chart-tooltip-row{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:2px 0;display:flex}.dash-chart-tooltip-row span:first-child{color:#ffffffa6}.dash-chart-tooltip-total{border-top:1px solid #ffffff24;margin-top:4px;padding-top:6px;font-weight:600}.dash-table-wrap{margin-top:4px;overflow:auto}.dash-table{border-collapse:collapse;width:100%;min-width:520px}.dash-table th,.dash-table td{border-bottom:1px solid var(--border);text-align:left;padding:10px 12px;font-size:13px}.dash-table thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.dash-table th.num,.dash-table td.num{font-variant-numeric:tabular-nums;text-align:right}.dash-pill{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.dash-pill-ok{background:var(--signal-good-bg-soft);color:var(--signal-good-text)}.dash-pill-low{background:var(--signal-amber-bg);color:var(--signal-amber-text)}.dash-pill-warn{background:var(--signal-bad-bg);color:var(--signal-bad-text)}.dashboard-report{gap:28px}.dashboard-report--loading{min-height:60vh}.dashboard-report--refreshing{opacity:.94;pointer-events:none}.dash-toolbar{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.dash-toolbar-meta{color:var(--text-muted);letter-spacing:0;text-transform:none;margin:0;font-size:13px;font-weight:500}.dash-toolbar-hint{color:var(--text-faint);max-width:52rem;margin:4px 0 0;font-size:12.5px;line-height:1.5}.dash-toolbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.dash-kpis-hero{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}@media (width<=900px){.dash-kpis-hero{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-kpis-hero .kpi{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;padding:20px 22px}.dash-kpis-hero .kpi-label{color:var(--text-muted);font-size:12.5px;font-weight:500}.dash-kpis-hero .kpi-value{color:var(--text);letter-spacing:-.03em;margin-top:6px;font-size:2.125rem;font-weight:600;line-height:1.05}.dash-kpis-hero .kpi-meta{color:var(--text-faint);margin-top:8px;font-size:12px}.dash-kpis-hero .kpi-unit{color:var(--text-muted);margin-left:2px;font-size:1.125rem;font-weight:500}.dash-kpi-skeleton{gap:10px;padding:20px 22px}.dash-kpi-value-skeleton{margin:4px 0}.dash-card-skeleton{gap:12px;padding:20px}.dash-section{gap:16px}.dash-section-title{color:var(--text);letter-spacing:-.02em;text-transform:none;margin:0;font-size:17px;font-weight:600}.dash-chart-grid{gap:16px}.dash-card{border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;gap:0;padding:0;overflow:hidden}.dash-card-wide{gap:0}.dash-card-head{border-bottom:1px solid var(--border);padding:18px 22px 14px}.dash-card-head h4{color:var(--text);letter-spacing:-.01em;text-transform:none;margin:0;font-size:15px;font-weight:600}.dash-card-head p{color:var(--text-faint);margin:4px 0 0;font-size:12px;line-height:1.4}.dash-card .dash-chart-wrap,.dash-card .dash-chart-plot{padding:8px 16px 18px}.dash-chart-plot{position:relative}.dash-chart-wrap{flex-direction:column;gap:12px;display:flex}.dash-chart{display:block}.dashboard-report .dash-chart-tick{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.dashboard-report .dash-chart-month{fill:var(--text-secondary);font-size:12px;font-weight:500}.dash-chart-bar-total{fill:var(--text);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:600}.dash-legend--modern{flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:0;padding:0 8px 4px}.dash-legend--modern .dash-legend-item{color:var(--text-secondary);gap:7px;font-size:12px;font-weight:500}.dash-legend--modern .dash-legend-swatch{border-radius:3px;width:10px;height:10px}.dash-chart-tooltip--modern{background:var(--surface);color:var(--text);pointer-events:none;border:1px solid var(--border);border-radius:10px;min-width:220px;padding:12px 14px;font-size:12px;position:absolute;top:8px;right:8px;box-shadow:0 12px 40px #1a1f361f,0 2px 8px #1a1f360f}.dash-chart-tooltip--modern .dash-chart-tooltip-title{color:var(--text);letter-spacing:-.01em;border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:8px;font-size:13px;font-weight:600}.dash-chart-tooltip--modern .dash-chart-tooltip-row{justify-content:space-between;align-items:center;gap:20px;padding:4px 0;display:flex}.dash-chart-tooltip--modern .dash-chart-tooltip-label{align-items:center;gap:8px;min-width:0;font-weight:500;display:inline-flex;color:var(--text-secondary)!important}.dash-chart-tooltip--modern .dash-chart-tooltip-value{font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:600;color:var(--text)!important}.dash-chart-tooltip--modern .dash-chart-tooltip-row span:first-child{color:var(--text-secondary)!important}.dash-chart-tooltip--modern .dash-chart-tooltip-row span:last-child{color:var(--text)!important}.dash-chart-tooltip-swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px;display:inline-block}.dash-chart-tooltip-total{border-top:1px solid var(--border);margin-top:6px;padding-top:8px}.dash-chart-empty{color:var(--text-muted);text-align:center;padding:56px 24px;font-size:13px}.dash-table--modern thead th{letter-spacing:.02em;text-transform:none;font-size:12px}.dash-table-wrap{border:1px solid var(--border);border-radius:10px;margin:0 22px 20px;overflow:hidden}.dash-bu-filter{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.dash-bu-chip{color:var(--text-secondary);cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:7px;padding:6px 12px;font-size:12.5px;font-weight:500;transition:all .15s;display:inline-flex}.dash-bu-chip:hover{border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-sm)}.dash-bu-chip.active{color:var(--accent-hover);background:var(--accent-soft);border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-border)}.dash-bu-chip-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dash-chart-staff-line{fill:none;stroke:#1a1f36;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.dash-chart-staff-zero{stroke:#c4cad4;stroke-width:1px;stroke-dasharray:5 4}.dash-chart-staff-dot--surplus{fill:#1ea672;stroke:#fff;stroke-width:2px}.dash-chart-staff-dot--deficit{fill:#c5320b;stroke:#fff;stroke-width:2px}.dash-chart-staff-label{fill:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:600}.dash-chart-tick--staff{fill:var(--text-faint);font-size:11px;font-weight:500}.dash-chart-axis-label--staff{fill:var(--text-faint);letter-spacing:.04em;font-size:10px;font-weight:600}.dash-legend-line--staff{background:linear-gradient(90deg,#c5320b 0%,#1a1f36 45%,#1ea672 100%);border-radius:2px;width:18px;height:3px;display:inline-block}.util-heatmap-wrap{flex-direction:column;gap:12px;padding:8px 12px 4px;display:flex;position:relative}.util-heatmap{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:4px;padding:14px 12px 10px;display:grid;overflow-x:auto}.util-heatmap-corner{min-height:1px}.util-heatmap-month{color:var(--text-muted);text-align:center;padding:0 4px 8px;font-size:12px;font-weight:600}.util-heatmap-month--total{color:var(--text);letter-spacing:.03em;text-transform:uppercase;font-size:11px}.util-heatmap-bu{align-items:center;padding-right:8px;display:flex}.util-heatmap-bu-name{color:var(--text-secondary);font-size:12px;font-weight:600}.util-heatmap-cell{color:var(--text);cursor:pointer;background:var(--surface-2);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:6px;min-height:48px;padding:8px 6px;font-size:14px;font-weight:600;transition:outline .12s}.util-heatmap-cell--blank{color:var(--text-faint);background:var(--surface-2)}.util-heatmap-cell.tone-good{background:var(--signal-good-bg);color:var(--signal-good-text)}.util-heatmap-cell.tone-mid{background:var(--signal-amber-bg);color:var(--signal-amber-text)}.util-heatmap-cell.tone-low{background:var(--signal-bad-bg);color:var(--signal-bad-text)}.util-heatmap-cell.tone-over{background:var(--signal-bad-bg-strong);color:var(--signal-bad-text-strong)}.util-heatmap-cell.tone-empty{background:var(--surface-2);color:var(--text-faint)}.util-heatmap-cell--total{border-left:2px solid var(--border);margin-left:6px}.util-heatmap-cell:hover,.util-heatmap-cell--hot{outline:2px solid var(--accent);outline-offset:1px;z-index:1}.util-heatmap-wrap .dash-chart-tooltip--modern{top:4px;right:4px}.capacity-outlook-section{flex-direction:column;gap:20px;padding:4px 8px 8px;display:flex}.capacity-insight{color:var(--signal-good-text);background:var(--signal-good-bg-soft);border:1px solid #1ea67233;border-radius:10px;margin:0;padding:12px 16px;font-size:13.5px;font-weight:500;line-height:1.45}.capacity-insight--warn{color:var(--signal-bad-text);background:var(--signal-bad-bg);border-color:#c5320b33}.capacity-chart-block{flex-direction:column;gap:8px;display:flex}.capacity-chart-block--secondary{border-top:1px solid var(--border);padding-top:4px}.capacity-chart-block-head h5{color:var(--text);letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.capacity-chart-block-head p{color:var(--text-faint);margin:4px 0 0;font-size:12px}.capacity-outlook-section .dash-card-head+.capacity-outlook-section,.capacity-outlook-section .dash-table-wrap{margin:0 8px 8px}.projects-db-row--link{cursor:pointer}.projects-db-namelink{color:inherit;cursor:pointer;text-decoration:none}.projects-db-namelink:hover{text-decoration:underline}.projects-db-row--link:hover td{background:var(--accent-soft)}.projects-db-row--link:focus-visible td{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.project-detail-page{flex-direction:column;gap:14px;max-width:min(100%,1480px);margin:0 auto;padding:10px 20px 28px;display:flex}.project-detail-page--loading{gap:16px}.project-detail-breadcrumb{align-items:center;gap:8px;font-size:13px;display:flex}.project-detail-breadcrumb-right{align-items:center;gap:10px;margin-left:auto;display:flex}.project-currency-switch{cursor:pointer;background:var(--surface);border:1px solid var(--border);font:inherit;border-radius:999px;align-items:center;gap:10px;padding:5px 8px 5px 12px;display:inline-flex}.project-currency-switch:hover{border-color:var(--accent)}.project-currency-switch-label{color:var(--text-secondary);letter-spacing:.02em;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.project-currency-switch.is-on .project-currency-switch-label{color:var(--text)}.project-currency-switch-code{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.project-currency-switch-track{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex-shrink:0;width:34px;height:18px;transition:background .15s,border-color .15s;position:relative}.project-currency-switch.is-on .project-currency-switch-track{background:var(--accent);border-color:var(--accent)}.project-currency-switch-thumb{width:14px;height:14px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:1px;left:1px}.project-currency-switch.is-on .project-currency-switch-thumb{transform:translate(16px)}.allin-switch-wrap{display:inline-flex;position:relative}.allin-switch{cursor:pointer;background:var(--surface);border:1px solid var(--border);font:inherit;border-radius:999px;outline:none;align-items:center;gap:10px;padding:5px 8px 5px 12px;display:inline-flex}.allin-switch:hover{border-color:var(--border-strong)}.allin-switch:focus-visible{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--border-strong)}.allin-switch-label{color:var(--text-secondary);letter-spacing:.02em;font-size:12px;font-weight:600}.allin-switch.is-on .allin-switch-label{color:var(--text)}.allin-switch-track{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:999px;flex-shrink:0;width:34px;height:18px;transition:background .15s,border-color .15s;position:relative}.allin-switch.is-on .allin-switch-track{background:var(--accent);border-color:var(--accent)}.allin-switch:disabled{cursor:progress;opacity:.75}.allin-matrix-wrap{position:relative}.allin-matrix-wrap--busy .toolbar{visibility:hidden}.allin-loading-overlay{z-index:30;background:var(--surface);justify-content:center;align-items:flex-start;padding-top:120px;animation:.18s allin-overlay-in;display:flex;position:absolute;inset:0}.allin-loading-card{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);letter-spacing:.01em;border-radius:999px;align-items:center;gap:10px;padding:9px 16px;font-size:12.5px;font-weight:600;display:inline-flex;box-shadow:0 10px 28px #1a1f3626,0 1px 2px #1a1f360f}.allin-loading-card span{white-space:nowrap}@keyframes allin-overlay-in{0%{opacity:0}to{opacity:1}}.allin-switch-thumb{width:14px;height:14px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:1px;left:1px}.allin-switch.is-on .allin-switch-thumb{transform:translate(16px)}.hint-pop{z-index:90;pointer-events:none;color:#fff;text-align:left;white-space:normal;background:#20243a;border:1px solid #ffffff1f;border-radius:9px;width:250px;padding:9px 11px;animation:.12s ease-out both breakdownIn;position:fixed;box-shadow:0 12px 30px #10132640}.hint-pop strong{letter-spacing:.01em;margin-bottom:4px;font-size:11.5px;font-weight:700;display:block}.hint-pop span{color:#e3e6f2;font-size:11.5px;line-height:1.45;display:block}.project-detail-breadcrumb a{color:var(--accent-hover);font-weight:600;text-decoration:none}.project-detail-breadcrumb a:hover{text-decoration:underline}.project-detail-breadcrumb span{color:var(--text-faint)}.project-detail-hero{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;gap:12px;padding:14px 18px;display:flex}.project-detail-hero-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.project-detail-hero-main{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.project-detail-hero-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-self:center;align-items:center;gap:8px;display:flex}.project-detail-combine-btn.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.project-detail-combine-btn.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.badge.status-combined{color:#3c3489;background:#eeedfe;border:1px solid #cecbf6}.badge.status-staging{color:#8a5a00;background:#fdecc8;border:1px solid #f3d494}.project-combine-banner{background:#f7f6fd;border:1px solid #cecbf6;border-radius:10px;flex-wrap:wrap;align-items:flex-start;gap:10px 16px;padding:12px 14px;display:flex}.project-combine-banner-title{color:#3c3489;letter-spacing:.01em;font-size:13px;font-weight:700}.project-combine-banner-chips,.project-cr-links-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-combine-chip{color:#3c3489;background:#fff;border:1px solid #cecbf6;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;text-decoration:none}.project-combine-chip:hover{color:#6f47b4;border-color:#6f47b4}.project-cr-links-bar{flex-wrap:wrap;align-items:center;gap:10px;padding:0 2px;display:flex}.project-cr-links-bar--as-cr{background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:10px;margin:0 0 14px;padding:8px 12px}.project-cr-links-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.project-cr-link-chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:12px;font-weight:600;display:inline-flex}.project-cr-link-chip a{color:var(--accent-hover);text-decoration:none}.project-cr-link-chip a:hover{text-decoration:underline}.project-cr-link-detach{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:650;line-height:1}.project-cr-link-detach:hover{background:var(--accent-soft);color:var(--accent)}.project-notes{flex-direction:column;gap:16px;display:flex}.project-notes-compose{flex-direction:column;gap:10px;display:flex}.project-notes-input{color:var(--text);background:var(--surface);border:1px solid var(--border);font:inherit;resize:vertical;min-height:88px;box-shadow:var(--shadow-sm);border-radius:10px;outline:none;padding:11px 13px;font-size:13px;line-height:1.5;transition:border-color .12s,box-shadow .12s}.project-notes-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.project-notes-compose-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-notes-compose-actions .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.project-notes-compose-actions .btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.project-notes-compose-actions .btn-primary:disabled{background:var(--accent);border-color:var(--accent);color:#fff;opacity:.55;box-shadow:none}.project-notes-error{color:var(--signal-bad-text);font-size:12px;font-weight:600}.project-notes-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.project-notes-item{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;align-items:flex-start;gap:11px;padding:12px 13px;display:flex}.project-notes-avatar{color:var(--accent-hover);background:var(--accent-soft);border:1px solid var(--accent-border);letter-spacing:.02em;border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:flex}.project-notes-body{flex:1;min-width:0}.project-notes-meta{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.project-notes-author{color:var(--text);font-size:13px;font-weight:650}.project-notes-when{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:11.5px}.project-notes-text{color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;font-size:13px;line-height:1.5}.project-notes-delete{color:var(--text-faint);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;padding:4px;line-height:0;display:flex}.project-notes-delete:hover{color:var(--signal-bad-text);background:var(--danger-soft)}.project-notes-delete svg{width:15px;height:15px}.project-notes-confirm{flex:none;align-items:center;gap:6px;display:flex}.project-notes-layout{flex-direction:row;align-items:flex-start;gap:24px;min-height:420px}.project-notes-thread{flex-direction:column;flex:3 1 0;gap:16px;min-width:0;max-width:none;display:flex}.project-notes-rail{flex-direction:column;flex:2 1 0;gap:14px;min-width:0;display:flex}@media (width<=900px){.project-notes-layout{flex-direction:column}.project-notes-thread{max-width:none}.project-notes-rail{flex-basis:auto;width:100%}}.project-notes-pin-check{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.project-notes-pin-check input{accent-color:var(--accent);width:14px;height:14px;margin:0}.project-notes-compose-right{align-items:center;gap:10px;display:flex}.project-notes-pin-tag{color:var(--accent-hover);letter-spacing:.01em;align-items:center;gap:3px;font-size:11px;font-weight:700;display:inline-flex}.project-notes-actions{flex:none;align-items:center;gap:2px;display:flex}.project-notes-pin{color:var(--text-faint);cursor:pointer;opacity:.5;background:0 0;border:0;border-radius:6px;padding:4px;font-size:13px;line-height:1;transition:opacity .12s,background .12s}.project-notes-pin:hover:not(:disabled){opacity:1;background:var(--danger-soft)}.project-notes-pin.is-pinned{opacity:1}.project-notes-pin:disabled{cursor:default;opacity:.4}.project-notes-avatar.sm{width:24px;height:24px;font-size:10px}.project-notes-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;gap:10px;padding:15px 16px;display:flex}.project-notes-rail>.project-notes-card:nth-child(-n+2){min-height:128px}.project-notes-card-title{color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-notes-card-empty{color:var(--text-faint);margin:0;font-size:12px;line-height:1.5}.project-notes-pinned-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.project-notes-pinned-item{border-left:2px solid var(--accent-border);padding-left:10px}.project-notes-pinned-text{color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12.5px;line-height:1.5}.project-notes-pinned-meta{flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:5px;display:flex}.project-notes-pinned-author{color:var(--text);font-size:11.5px;font-weight:650}.project-notes-pinned-when{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:11px}.project-notes-contrib-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.project-notes-contrib-item{border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin:0 -6px;padding:5px 6px;transition:background .12s;display:flex}.project-notes-contrib-item:hover{background:var(--surface-hover)}.project-notes-contrib-who{align-items:center;gap:9px;min-width:0;display:flex}.project-notes-contrib-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.project-notes-contrib-count{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:11.5px;font-weight:600}.project-notes-nb-figure{align-items:baseline;gap:5px;display:flex}.project-notes-nb-number{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1}.project-notes-nb-unit{color:var(--text-muted);font-size:13px;font-weight:600}.project-notes-nb-sub{color:var(--text-faint);margin:0;font-size:12px}.project-notes-nb-compare{grid-template-columns:1fr 1fr;gap:14px;display:grid}.project-notes-nb-cell{flex-direction:column;gap:6px;min-width:0;display:flex}.project-notes-nb-cell+.project-notes-nb-cell{border-left:1px solid var(--border-subtle,#00000014);padding-left:14px}.project-notes-nb-cell-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;font-weight:600;line-height:1.2}.project-notes-nb-cell-value{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1}.project-notes-nb-cell--tip{cursor:help;position:relative}.project-notes-nb-tip{visibility:hidden;opacity:0;pointer-events:none;z-index:30;color:#fff;text-transform:none;letter-spacing:0;background:#20243a;border:1px solid #ffffff1f;border-radius:9px;min-width:210px;max-width:250px;padding:9px 11px;font-size:12px;font-weight:400;line-height:1.45;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% + 7px);left:0;transform:translateY(-3px);box-shadow:0 16px 34px #10132659}.project-notes-nb-tip:before{content:"";background:#20243a;border-top:1px solid #ffffff1f;border-left:1px solid #ffffff1f;width:8px;height:8px;position:absolute;top:-5px;left:14px;transform:rotate(45deg)}.project-notes-nb-cell--tip:hover .project-notes-nb-tip,.project-notes-nb-cell--tip:focus-within .project-notes-nb-tip{visibility:visible;opacity:1;transform:translateY(0)}.project-plan-history-scroll{max-height:min(70vh,640px);overflow:auto}.project-plan-history-table{width:100%;min-width:960px}.project-plan-history-label{font-weight:650;display:block}.project-plan-history-reason{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:12px;font-weight:500;display:block;overflow:hidden}.project-plan-history-nums{font-variant-numeric:tabular-nums;white-space:nowrap}.project-plan-history-vs{color:var(--text-faint);font-weight:500}.project-plan-history-pct{color:var(--text-muted);font-size:12px}.project-plan-history-overage-budget{color:var(--text-muted);margin-top:2px;font-size:12px}.project-plan-history-actions-col{width:1%;min-width:88px}.project-plan-history-actions{text-align:right;white-space:nowrap;vertical-align:middle}.project-plan-history-delete{color:var(--text-muted)!important}.project-plan-history-delete:hover:not(:disabled){color:var(--danger)!important;background:var(--danger-soft)!important}.project-plan-history-row--confirm td{background:var(--danger-soft)}.project-plan-history-confirm{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.project-plan-history-confirm-label{color:var(--danger);font-size:12px;font-weight:650}.project-plan-history-confirm-delete{background:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}.project-plan-history-confirm-delete:hover:not(:disabled){filter:brightness(.95)}.project-plan-history-error{color:var(--danger);background:var(--danger-soft);border:1px solid #f6c7cd;border-radius:8px;margin:0 0 12px;padding:8px 12px;font-size:13px;font-weight:500}.project-plan-history-row{cursor:pointer;transition:background-color .12s}.project-plan-history-row:hover:not(.project-plan-history-row--confirm){background:var(--accent-soft)}.project-plan-history-row:hover:not(.project-plan-history-row--confirm) .project-plan-history-label{color:var(--accent-hover)}.project-plan-history-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.project-plan-history-reason--empty{color:var(--text-faint);font-style:italic}.forecast-reason-modal.plan-history-detail-modal{width:min(640px,100vw - 32px);max-width:min(640px,100vw - 32px)}.plan-history-detail-body{flex-direction:column;gap:16px;display:flex}.plan-history-hero{background:linear-gradient(135deg,var(--accent-soft),var(--surface-2));border:1px solid var(--accent-border);border-radius:12px;padding:14px 16px}.plan-history-hero-caption{color:var(--accent-hover);letter-spacing:.05em;text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:700;display:block}.plan-history-hero-figures{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.plan-history-hero-figure{flex-direction:column;gap:2px;line-height:1;display:flex}.plan-history-hero-num{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:22px;font-weight:750}.plan-history-hero-figure--plan .plan-history-hero-num{color:var(--accent-hover)}.plan-history-hero-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:11px;font-weight:650}.plan-history-hero-arrow{color:var(--text-faint);font-size:20px;font-weight:600}.plan-history-hero-overage{background:var(--danger-soft);color:var(--danger);white-space:nowrap;border-radius:999px;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:650}.plan-history-detail-grid{grid-template-columns:repeat(3,1fr);gap:14px 20px;margin:0;display:grid}.plan-history-detail-field{flex-direction:column;gap:3px;min-width:0;display:flex}.plan-history-detail-field dt{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.plan-history-detail-field dd{color:var(--text);margin:0;font-size:14px;font-weight:600}.plan-history-detail-reason{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.plan-history-detail-reason-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.plan-history-detail-reason-copy{color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0;font-size:14px;line-height:1.55}.forecast-reason-modal.attach-cr-modal{width:min(560px,100vw - 32px);max-width:min(560px,100vw - 32px)}.attach-cr-intro{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:10px 12px}.sync-history-page{flex-direction:column;gap:10px;display:flex}.sync-history-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.sync-history-filters{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.sync-history-field{flex-direction:column;gap:4px;display:flex}.sync-history-field-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:700}.sync-history-filter-trigger{min-width:170px;min-height:30px}.sync-history-toolbar-right{align-items:center;gap:10px;display:flex}.sync-history-error-count{color:var(--signal-bad-text,#c5320b);font-size:12px;font-weight:600}.sync-history-pill{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700;display:inline-block}.sync-history-pill--success,.sync-history-pill--applied{background:var(--success-soft);color:var(--signal-good-text)}.sync-history-pill--error{color:#c5320b;background:#fef3f0}.sync-history-pill--skipped{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.sync-history-pill--running{background:var(--surface);color:var(--accent-hover);border:1px solid var(--accent-border,var(--accent));align-items:center;gap:5px;display:inline-flex}.sync-history-run--live{cursor:default;background:var(--accent-soft)}.sync-history-run--live:hover{background:var(--accent-soft)}.sync-history-run-id--live{color:var(--text-muted);font-family:var(--font-mono,ui-monospace,monospace);font-size:11.5px}.sync-history-result--running{color:var(--accent-hover)}.sync-history-table-wrap{overflow-x:auto}.sync-history-runs-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px}.sync-history-table{border-collapse:collapse;width:100%;font-size:12.5px}.sync-history-table th{text-align:left;color:var(--text-faint);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--border);padding:5px 12px;font-size:9.5px;font-weight:700}.sync-history-table td{border-bottom:1px solid var(--border-soft,var(--border));color:var(--text);padding:4px 12px}.sync-history-table tbody tr:last-child td{border-bottom:0}.sync-history-table td.num,.sync-history-table th.num{text-align:right;font-variant-numeric:tabular-nums}.sync-history-message{color:var(--text-muted);max-width:340px}.sync-history-status{text-transform:uppercase;letter-spacing:.03em;font-size:10.5px;font-weight:700}.sync-history-status--applied{color:var(--signal-good-text,#1ea672)}.sync-history-status--error{color:#c5320b}.sync-history-status--skipped{color:var(--text-muted)}.sync-history-runs th{background:var(--surface-2);white-space:nowrap}.sync-history-runs td{vertical-align:middle;padding:7px 12px}.sync-history-run{cursor:pointer}.sync-history-run:hover td{background:var(--surface-hover)}.sync-history-run-project{max-width:280px;font-weight:600}.sync-history-run-project--unknown{color:var(--text-faint);font-style:italic;font-weight:500}.sync-history-run-id{letter-spacing:-.01em;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;text-decoration:none}.sync-history-run:hover .sync-history-run-id{color:var(--accent)}.sync-history-run-id:hover{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.sync-history-run-id:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sync-history-result{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:600;line-height:1.45;display:block}.sync-history-result-num{font-weight:700}.sync-history-result--applied{color:var(--signal-good-text)}.sync-history-result--error{color:var(--danger)}.sync-history-result--skipped{color:var(--text-muted)}.sync-history-run-time,.sync-history-run-duration{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.forecast-reason-modal.sync-run-modal{width:min(900px,100vw - 32px);max-width:min(900px,100vw - 32px);max-height:calc(100vh - 48px)}.sync-run-modal .forecast-reason-header h2{color:var(--text);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.sync-run-modal .forecast-reason-close{border:1px solid var(--border);background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:9px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s}.sync-run-modal .forecast-reason-close svg{width:18px;height:18px}.sync-run-modal .forecast-reason-close:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.sync-run-body{flex-direction:column;gap:14px;min-height:0;display:flex;overflow-y:auto}.sync-run-meta{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 18px;margin:0;padding:10px 12px;display:grid}.sync-run-meta-item{flex-direction:column;gap:2px;min-width:0;display:flex}.sync-run-meta-item--id{grid-column:1/-1}.sync-run-meta-item dt{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:700}.sync-run-meta-item dd{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12.5px;font-weight:600;overflow:hidden}.sync-run-meta-id{white-space:normal;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;font-weight:500}.sync-run-pills{flex-wrap:wrap;gap:6px;display:flex}.sync-run-table-wrap{border:1px solid var(--border);border-radius:10px;max-height:50vh;overflow:auto}.attach-cr-section{gap:8px;margin-top:18px;display:grid}.attach-cr-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.attach-cr-section-title{color:var(--text);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.attach-cr-approved-badge{background:var(--success-soft);color:var(--signal-good-text);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}.attach-cr-empty{margin:0;padding:8px 0}.attach-cr-attached-list{border:1px solid var(--border);border-radius:8px;margin:0;padding:0;list-style:none;overflow:hidden}.attach-cr-attached-item{border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.attach-cr-attached-item:last-child{border-bottom:0}.attach-cr-search{background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;align-items:center;gap:8px;padding:0 10px;transition:border-color .12s,box-shadow .12s;display:flex}.attach-cr-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.attach-cr-search svg{color:var(--text-muted);flex:none;width:14px;height:14px}.attach-cr-search input{background:0 0;border:0;outline:0;width:100%;padding:8px 0}.attach-cr-candidate-list{border:1px solid var(--border);border-radius:9px;max-height:240px;margin-top:2px;overflow:auto}.attach-cr-candidate{text-align:left;border:0;border-bottom:1px solid var(--border);background:var(--surface);cursor:pointer;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;width:100%;padding:11px 12px;display:grid}.attach-cr-candidate:last-child{border-bottom:0}.attach-cr-candidate:hover{background:var(--accent-soft)}.attach-cr-candidate--selected{box-shadow:inset 3px 0 0 var(--accent);background:#eeedfe}.attach-cr-candidate-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.attach-cr-candidate-meta{background:var(--surface-hover);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:650}.attach-cr-candidate--selected .attach-cr-candidate-meta{color:var(--accent-hover);background:#fff}.attach-cr-candidate-check{color:var(--accent);justify-content:center;align-items:center;width:18px;height:18px;display:flex}.attach-cr-candidate-check svg{width:15px;height:15px}.combined-forecast-panel{gap:12px;display:grid}.combined-forecast-note{color:var(--text-muted);margin:0;font-size:13px}.combined-forecast-table{width:100%;max-width:480px}.combined-forecast-num{text-align:right;font-variant-numeric:tabular-nums}.project-detail-refresh{flex-shrink:0;justify-content:center;width:34px;height:34px;padding:0}.project-detail-refresh .spinning{width:14px;height:14px}.project-detail-hero-title-row{flex-wrap:wrap;grid-area:1/1;align-items:center;gap:10px;display:flex}.project-detail-hero-title-row .project-detail-title{margin:0}.project-detail-title-link{color:inherit;border-bottom:1px solid #0000;text-decoration:none;transition:color .12s,border-color .12s}.project-detail-title-link:hover{color:var(--accent);border-bottom-color:var(--accent-border)}.project-detail-title-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.project-detail-title-group{align-items:center;gap:8px;min-width:0;display:inline-flex}.project-detail-title-edit-btn{color:var(--text-faint);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:5px;align-items:center;padding:2px;transition:opacity .12s,color .12s;display:inline-flex}.project-detail-title-group:hover .project-detail-title-edit-btn{opacity:1}.project-detail-title-edit-btn:hover{color:var(--accent)}.project-detail-title-edit-btn:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:2px}.project-detail-title-edit-btn svg{width:14px;height:14px}.project-detail-title-edit{flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.project-detail-title-input{border:1px solid var(--border-strong);background:var(--surface);min-width:0;max-width:520px;color:var(--text);border-radius:7px;flex:auto;padding:6px 10px;font-size:1.125rem;font-weight:500}.project-detail-title-input:focus{outline:2px solid var(--accent);outline-offset:1px}.project-detail-hero-status{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;flex-shrink:0;align-items:center;height:24px;padding:0 10px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.project-detail-hero-status--select{cursor:pointer;border:0;align-items:center;gap:4px;display:inline-flex}.project-detail-hero-status--select:hover{filter:brightness(.97)}.project-detail-hero-status--select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-detail-status-chevron{opacity:.75;flex-shrink:0;width:10px;height:10px}.project-type-chip{cursor:pointer;color:#54525f;letter-spacing:.04em;background:#ededf1;border:0;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;height:24px;padding:0 10px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.project-type-chip:hover{filter:brightness(.97)}.project-type-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-type-chip--static{cursor:default}.project-type-chip--static:hover{filter:none}.project-type-chip-label{text-transform:uppercase}.project-type-chip-caret{opacity:.75;flex-shrink:0;width:10px;height:10px}.project-type-chip--unset{color:#8a8a96;background:0 0;border:1px dashed #c7c5d2;font-weight:500}.project-type-chip--unset:hover{filter:none;color:#6f6f7c;border-color:#b4b1c2}.project-type-chip-add{letter-spacing:0;text-transform:none;align-items:center;gap:4px;display:inline-flex}.project-type-chip-plus{font-size:13px;line-height:1}.project-detail-hero-contract{background:var(--surface);border:1px solid var(--border);width:max-content;max-width:100%;box-shadow:var(--shadow-sm);border-radius:9px;flex-wrap:nowrap;grid-area:1/2/3;align-self:center;gap:0;margin:0;padding:0;display:flex;overflow-x:auto}.project-detail-hero-contract-item{border:0;flex-direction:column;flex:none;justify-content:center;align-items:flex-start;gap:2px;min-width:88px;padding:8px 11px;display:flex}.project-detail-hero-contract-item--baseline,.project-detail-hero-contract-item--effective{border-left:1px solid var(--border-strong);margin-left:2px;padding-left:14px}.project-detail-hero-contract-item dt{color:var(--text-faint);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:9.5px;font-weight:700}.project-detail-hero-contract-item dd{color:var(--text);font-variant-numeric:tabular-nums;align-items:baseline;gap:0;margin:0;font-size:1rem;font-weight:600;line-height:1.15;display:flex}.project-detail-plan-hours-edit{color:inherit;cursor:pointer;font:inherit;font-variant-numeric:inherit;line-height:inherit;background:0 0;border:0;border-radius:5px;align-items:baseline;margin:-2px;padding:2px;display:inline-flex}.project-detail-plan-hours-edit:hover:not(:disabled){color:var(--accent-hover);background:var(--accent-soft)}.project-detail-plan-hours-edit:focus-visible{outline:2px solid var(--accent-border);outline-offset:1px}.project-detail-plan-hours-edit:disabled{cursor:progress;opacity:.65}.project-detail-hero-contract-value{align-items:baseline;display:inline-flex}.project-detail-hero-contract-meta{color:var(--text-muted);font-size:10.5px;font-weight:600;line-height:1.2}.project-detail-hero-contract-meta.tone-good{color:var(--signal-good-text)}.project-detail-hero-contract-meta.tone-bad{color:var(--signal-bad-text)}.project-detail-hero-contract-item dd .project-detail-unit{margin-left:4px;font-size:.8125rem;font-weight:500}.project-detail-hero-contract-pending{color:var(--text-faint);font-weight:500}.project-detail-hero-contract--loading{margin-top:12px}.project-detail-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:1.375rem;font-weight:500;line-height:1.2}.project-detail-subtitle{color:var(--text-secondary);grid-area:2/1;margin:0;font-size:13px;line-height:1.4}.project-detail-hero .project-detail-subtitle{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=900px){.project-detail-hero{align-items:flex-start}.project-detail-hero-main{display:block}.project-detail-hero-contract{margin-top:10px}.project-detail-hero-contract-item{min-width:88px}}.project-detail-hero-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-detail-sync{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:18px;margin-top:3px;font-size:12px;line-height:1.3;display:flex}.project-detail-sync-stamp{align-items:center;gap:5px;display:inline-flex}.project-detail-sync-key{color:var(--text-muted);font-weight:500}.project-detail-sync-val{color:var(--text-secondary);font-weight:500}.project-detail-sync-val--stale{color:#854f0b;font-weight:600}.project-detail-sync-warn{color:#b45309;flex-shrink:0;width:13px;height:13px}.project-detail-metrics{border-top:.5px solid var(--border);flex-wrap:wrap;align-items:stretch;gap:0;margin:0;padding:12px 0 0;display:flex}.project-detail-hero-top>.project-detail-metrics{border-top:0;flex-wrap:nowrap;flex:none;align-self:center;padding-top:0}.project-detail-metric{flex-direction:column;justify-content:center;gap:3px;min-width:0;padding:0 20px;display:flex}.project-detail-metric:first-child{padding-left:0}.project-detail-metric+.project-detail-metric{border-left:.5px solid var(--border)}.project-detail-metric dt{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:10.5px;font-weight:600}.project-detail-metric dd{color:var(--text);font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;margin:2px 0 0;font-size:1.25rem;font-weight:600;line-height:1.2;display:flex}.project-detail-metric-arrow{color:var(--text-muted);font-weight:400}.project-detail-metric-delta{align-items:baseline;gap:6px;display:inline-flex}.project-detail-metric-delta .project-detail-metric-arrow{color:inherit;font-weight:600}.project-detail-metric-delta.tone-good{color:var(--signal-good-text)}.project-detail-metric-delta.tone-bad{color:var(--signal-bad-text)}.project-detail-metric-unit{color:var(--text-muted);font-size:.8125rem;font-weight:500}.project-detail-metric-edit{color:inherit;cursor:pointer;font:inherit;font-variant-numeric:inherit;line-height:inherit;background:0 0;border:0;border-radius:5px;margin:0 -3px;padding:0 3px}.project-detail-metric-edit:hover:not(:disabled){color:var(--accent-hover);background:var(--accent-soft)}.project-detail-metric-edit:focus-visible{outline:2px solid var(--accent-border);outline-offset:1px}.project-detail-metric-edit:disabled{cursor:progress;opacity:.65}.project-detail-metric-edit--empty{color:var(--accent);font-size:13px;font-weight:600}.project-detail-metric-add-inline{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0;font-size:11.5px;font-weight:600}.project-detail-metric-add-inline:hover{color:var(--accent-hover);text-decoration:underline}.project-detail-cr-row{border-top:.5px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0 0;display:flex}.project-detail-cr-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:10.5px;font-weight:600}.project-detail-cr-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-detail-cr-chip{background:var(--accent-soft);border:.5px solid var(--accent-border);border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:12px;font-weight:600;display:inline-flex}.project-detail-cr-chip a{color:var(--accent);text-decoration:none}.project-detail-cr-chip a:hover{text-decoration:underline}.project-detail-cr-detach{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:600;line-height:1}.project-detail-cr-detach:hover{background:var(--surface);color:var(--text)}@media (width<=900px){.project-detail-hero-top{flex-direction:column}.project-detail-hero-actions{justify-content:flex-start}.project-detail-hero-top>.project-detail-metrics{border-top:.5px solid var(--border);flex-wrap:wrap;align-self:stretch;padding-top:12px}}.project-detail-callout{background:var(--surface-2);color:var(--text-secondary);text-align:center;border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:28px 20px;display:flex}.project-detail-callout strong{color:var(--text);font-size:14px}.project-detail-callout-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:4px;display:flex}.project-detail-callout-error{justify-content:center;align-items:center;gap:6px;display:flex}.project-detail-fx-warn{color:var(--signal-bad-text,#c5320b);letter-spacing:.02em;margin-top:4px;font-size:10.5px;font-weight:600;display:block}.project-currency-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:4px;padding:2px;display:inline-flex}.project-currency-chip{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:0 8px;font-size:10.5px;font-weight:700}.project-currency-toggle-btn{cursor:pointer;color:var(--text-secondary);font:inherit;background:0 0;border:0;border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:600}.project-currency-toggle-btn:hover{color:var(--text)}.project-currency-toggle-btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.numeric-edit-hint{margin:8px 0 0!important}.eac-justification-banner{text-align:left;align-items:stretch;gap:10px;padding:16px 18px}.eac-justification-banner--action{border-color:color-mix(in srgb,var(--signal-bad-text,#c5320b) 28%,var(--border));background:color-mix(in srgb,#fef3f0 70%,var(--surface));flex-flow:wrap;justify-content:space-between;align-items:center;gap:14px 18px;animation:2.6s ease-in-out infinite eac-justification-pulse}@keyframes eac-justification-pulse{0%,to{box-shadow:0 0 #c5320b00}50%{box-shadow:0 0 0 5px #c5320b1f}}@media (prefers-reduced-motion:reduce){.eac-justification-banner--action{animation:none}}.eac-justification-banner-copy{flex-direction:column;flex:240px;gap:6px;min-width:0;display:flex}.eac-justification-banner p{margin:0;font-size:13px;line-height:1.5}.eac-justification-actions{flex:none;justify-content:flex-end;align-items:center;display:flex}.project-detail-callout--loading{flex-direction:row}.project-detail-resource-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;gap:0;padding:0;overflow:hidden}.project-detail-resource-panel-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 24px;display:flex}.project-detail-resource-panel-intro{flex:20rem;min-width:0}.project-detail-resource-eyebrow{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:700}.project-detail-resource-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:16px;font-weight:600}.project-detail-resource-desc{color:var(--text-muted);max-width:42rem;margin:8px 0 0;font-size:12.5px;line-height:1.5}.project-detail-resource-desc--secondary{margin-top:4px}.project-detail-team-rate-strip{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-top:8px;display:flex}.project-detail-team-rate-label{color:var(--text-faint);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:700}.project-detail-team-rate-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:600}.project-detail-team-rate-meta{color:var(--text-muted);font-size:12px;font-weight:600}.project-detail-team-rate-meta.tone-good{color:var(--signal-good-text)}.project-detail-team-rate-meta.tone-bad{color:var(--signal-bad-text)}.project-detail-resource-panel .project-detail-empty-copy{padding:18px 24px 24px}.project-detail-resource-table-wrap{border:0;border-radius:0;margin:0;overflow:auto}.project-detail-resource-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:760px}.project-detail-resource-col-name{width:28%}.project-detail-resource-col-hours{width:10%}.project-detail-resource-col-share{width:11%}.project-detail-resource-col-money{width:13%}.project-detail-resource-col-margin{width:12%}.project-detail-resource-table th,.project-detail-resource-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:14px 20px;font-size:13px}.project-detail-resource-table thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;z-index:1;font-size:10.5px;font-weight:700;position:sticky;top:0}.project-detail-resource-table th.num,.project-detail-resource-table td.num{text-align:right;font-variant-numeric:tabular-nums}.project-detail-resource-table tbody tr:hover td{background:var(--surface-hover)}.project-detail-resource-table tbody tr:last-child td{border-bottom:0}.project-detail-resource-table tfoot td{background:linear-gradient(180deg,var(--surface-2) 0%,#f4f6f9 100%);border-top:1px solid var(--border-strong);border-bottom:0;font-weight:600}.project-detail-resource-cell{align-items:center;gap:10px;min-width:0;display:flex}.project-detail-resource-avatar{color:var(--accent-hover);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:inline-flex}.project-detail-resource-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.project-detail-resource-share{color:var(--text-secondary);font-size:13px;font-weight:600}.project-detail-resource-share--total{color:var(--text-muted);font-weight:700}.project-detail-resource-money{color:var(--text);font-weight:600}.project-detail-resource-money--good{color:var(--signal-good-text)}.project-detail-resource-money--bad{color:var(--signal-bad-text)}.project-detail-margin-pill{border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700;line-height:1;display:inline-flex}.project-detail-margin-pill--good{color:var(--signal-good-text);background:#ecfdf3}.project-detail-margin-pill--watch{color:var(--signal-amber-text);background:var(--warning-soft)}.project-detail-margin-pill--bad{color:var(--signal-bad-text);background:#fde9eb}.project-detail-margin-pill--neutral{color:var(--text-secondary);background:var(--surface-2);border:1px solid var(--border)}.project-detail-resource-total-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:700}.project-detail-summary{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;overflow:hidden}.project-detail-summary-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex}.project-detail-summary-head:has(.project-detail-summary-status:only-child){padding:8px 16px}.project-detail-summary-status{letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.project-detail-summary-status--on-track{color:var(--signal-good-text);background:#ecfdf3}.project-detail-summary-status--watch{color:var(--signal-amber-text);background:var(--warning-soft)}.project-detail-summary-status--at-risk{color:var(--signal-bad-text);background:#fde9eb}.project-detail-summary-message{color:var(--text-secondary);flex:1;min-width:min(100%,220px);margin:0;font-size:12.5px;line-height:1.4}.project-detail-summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.project-detail-summary-grid--story{grid-template-columns:repeat(6,minmax(0,1fr))}.project-detail-summary-message--warning{color:var(--signal-amber-text)}.project-detail-summary-rate{color:var(--text-secondary);border-top:1px solid var(--border);margin:0;padding:10px 16px 12px;font-size:12.5px;line-height:1.45}.project-detail-overview-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.project-detail-overview-card>.project-detail-summary{box-shadow:none;background:0 0;border:0;border-radius:0}.project-detail-overview-charts{border-top:1px solid var(--border);flex-direction:column;gap:0;padding:16px 18px 18px;display:flex}.project-detail-overview-analytics{flex-direction:column;gap:20px;display:flex}.project-detail-overview-analytics--loading{gap:18px}.project-detail-summary-stat--skeleton{gap:6px}.project-detail-chart-skeleton{flex-direction:column;gap:10px;min-width:0;display:flex}.project-detail-chart-skeleton-head{flex-direction:column;gap:8px;display:flex}.project-detail-chart-skeleton-legend{flex-wrap:wrap;gap:8px 12px;display:flex}.project-detail-chart-skeleton-plot{background:linear-gradient(180deg,#fafbfc 0%,var(--surface) 48px);border:1px solid var(--border);aspect-ratio:680/400;border-radius:12px;align-items:flex-end;min-height:0;padding:18px 14px 12px 42px;display:flex;position:relative;overflow:hidden}.project-detail-chart-skeleton--wide .project-detail-chart-skeleton-plot{aspect-ratio:940/268}.project-detail-chart-skeleton-grid{pointer-events:none;background:repeating-linear-gradient(#0000 0 calc(25% - 1px),#eef1f5 calc(25% - 1px) 25%);position:absolute;inset:18px 14px 28px 42px}.project-detail-chart-skeleton-bars{z-index:1;align-items:flex-end;gap:10px;width:100%;height:100%;padding-bottom:14px;display:flex}.project-detail-chart-skeleton-bar{background:linear-gradient(#e8ecf1 0%,#dfe5ec 100%);border-radius:4px 4px 0 0;flex:1;max-width:36px;min-height:18px;animation:1.15s ease-in-out infinite skeleton-pulse}.project-detail-chart-skeleton-bar:nth-child(2n){animation-delay:.12s}.project-detail-chart-skeleton-bar:nth-child(3n){animation-delay:.24s}.project-detail-overview-card--loading .skeleton{opacity:.92}.project-detail-overview-analytics-row{grid-template-columns:1fr 1fr;align-items:stretch;gap:18px;display:grid}.project-detail-overview-analytics-row>*{min-width:0}.project-detail-overview-analytics .project-chart-block{gap:12px}.project-detail-overview-analytics .project-chart-head{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:6px}.project-detail-overview-analytics .project-chart-head-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 14px;width:100%;display:flex}.project-detail-overview-analytics .project-chart-wrap{height:auto;padding:10px 10px 6px}.project-detail-overview-analytics .project-chart-wrap .project-chart{width:100%;height:100%}.project-detail-overview-analytics-row .project-chart-wrap{aspect-ratio:680/400;overflow:visible}.project-detail-overview-analytics-row .project-chart{overflow:visible}.project-detail-overview-analytics>.project-chart-block .project-chart-wrap{aspect-ratio:940/268;padding:8px 10px 4px}.project-detail-overview-analytics .project-chart-empty{justify-content:center;align-items:center;min-height:220px;display:flex}.project-detail-overview-analytics-row .project-chart-tick{font-size:15px}.project-detail-overview-analytics-row .project-chart-month{font-size:13.5px;font-weight:600}.project-detail-overview-analytics-row .project-chart-axis-title{font-size:12px}.project-detail-overview-analytics-row .project-chart-variance-label{font-size:11px}.project-detail-overview-analytics .project-chart-series{gap:14px}.project-detail-overview-analytics .project-chart-series-chip{box-shadow:none;color:var(--text-muted);background:0 0;border:0;gap:6px;padding:0;font-size:11px;font-weight:500}.project-detail-overview-analytics .project-chart-series-chip.active{box-shadow:none;color:var(--text-secondary);background:0 0;border:0}.project-detail-overview-analytics .project-chart-series-chip:not(.active){opacity:.45}.project-detail-overview-analytics .project-chart-series-swatch{width:9px;height:9px}.project-detail-overview-analytics .project-chart-series-swatch.margin{width:12px;height:2px;margin-top:0}.project-chart-axis-title{fill:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.project-chart-axis{stroke:var(--border-strong);stroke-width:1px}.project-chart-head--stacked{flex-direction:column;align-items:flex-start;gap:8px}.project-chart-head-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;width:100%;display:flex}@media (width<=960px){.project-detail-overview-analytics-row{grid-template-columns:1fr}.project-detail-overview-analytics-row .project-chart-wrap{aspect-ratio:940/360}}.project-detail-overview-charts .project-detail-overview-toggle{margin-bottom:14px}.project-detail-overview-charts .project-detail-overview-body{gap:0}.project-detail-overview-charts .project-detail-panel{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.project-detail-overview-chart-panel{flex-direction:column;gap:12px;display:flex}.project-detail-overview-chart-title{color:var(--text);letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.project-detail-callout--inset{background:var(--surface-2);border:0;border-radius:8px;padding:20px 16px}.project-detail-summary-rate-label{color:var(--text-muted);font-weight:500}.project-detail-summary-rate-value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.project-detail-summary-rate--good .project-detail-summary-rate-value{color:var(--signal-good-text)}.project-detail-summary-rate--bad .project-detail-summary-rate-value,.project-detail-summary-rate--bad .project-detail-summary-rate-vs{color:var(--signal-bad-text)}.project-detail-summary-rate--good .project-detail-summary-rate-vs{color:var(--signal-good-text)}.project-detail-summary-stat{flex-direction:column;align-items:flex-start;gap:5px;padding:12px 14px;display:flex}.project-detail-summary-stat+.project-detail-summary-stat{border-left:1px solid var(--border)}.project-detail-summary-stat-label{color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:700}.project-detail-summary-stat-valuerow{flex-wrap:wrap;align-items:baseline;gap:10px;min-width:0;display:flex}.project-detail-summary-stat-value{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:600;line-height:1.1}.project-detail-summary-stat-value--good{color:var(--signal-good-text)}.project-detail-summary-stat-value--bad{color:var(--signal-bad-text)}.project-detail-summary-stat-meta{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:2px;font-size:11px;font-weight:600;line-height:1.2}.project-detail-summary-stat-meta--good{color:var(--signal-good-text)}.project-detail-summary-stat-meta--bad{color:var(--signal-bad-text)}.project-detail-summary-stat-badge{border-radius:999px;align-items:center;padding:3px 8px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.project-detail-summary-stat-badge.tone-neutral{color:var(--text-secondary);background:var(--surface-2)}.project-detail-summary-stat-badge.tone-good{color:var(--signal-good-text);background:#ecfdf3}.project-detail-summary-stat-badge.tone-bad{color:var(--signal-bad-text);background:#fde9eb}.project-detail-overview-insights{border-top:1px solid var(--border);background:linear-gradient(180deg,var(--surface-2) 0%,var(--surface) 100%);flex-wrap:wrap;align-items:center;gap:10px 20px;padding:11px 16px;display:flex}.project-detail-overview-insight{align-items:center;gap:8px;min-width:0;display:flex}.project-detail-overview-insight-label{color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:9.5px;font-weight:700}.project-detail-overview-insight-value{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;font-weight:500;line-height:1.35;display:inline-flex}.project-detail-overview-insight-sep{color:var(--text-faint);font-weight:400}.project-detail-overview-insight--warning .project-detail-overview-insight-value{color:var(--signal-amber-text)}.project-detail-overview-insight-warn{margin-right:2px;font-size:11px;line-height:1}.project-detail-overview-contributor{align-items:center;gap:6px;display:inline-flex}.project-detail-overview-contributor-avatar{background:var(--accent-soft);color:var(--accent-hover);border:1px solid var(--accent-border);border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;line-height:1;display:inline-flex}.project-detail-overview-contributor-avatar--drag{color:var(--signal-bad-text);background:#fde9eb;border-color:#f5c6cb}.project-detail-overview-insight--contributors{flex:1;min-width:min(100%,260px)}.project-chart-fill-legend{color:var(--text-muted);align-self:center;margin-left:2px;font-size:11px;font-weight:500}.project-chart-finish-margin{color:var(--text-muted);align-items:baseline;gap:5px;font-size:12px;font-weight:500;display:inline-flex}.project-chart-finish-margin strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}@media (width<=1100px){.project-detail-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-detail-summary-stat:nth-child(n+4){border-top:1px solid var(--border)}.project-detail-summary-stat:nth-child(3n+1){border-left:0}.project-detail-summary-stat:not(:nth-child(3n+1)){border-left:1px solid var(--border)}.project-detail-summary-grid--story{grid-template-columns:repeat(3,minmax(0,1fr))}.project-detail-summary-grid--story .project-detail-summary-stat:nth-child(n+4){border-top:1px solid var(--border)}.project-detail-summary-grid--story .project-detail-summary-stat:nth-child(3n+1){border-left:0}.project-detail-summary-grid--story .project-detail-summary-stat:not(:nth-child(3n+1)){border-left:1px solid var(--border)}.project-detail-summary-grid--story .project-detail-summary-stat:nth-child(4){border-left:0}}@media (width<=640px){.project-detail-summary-grid{grid-template-columns:1fr}.project-detail-summary-stat,.project-detail-summary-stat:not(:nth-child(3n+1)){border-left:0!important}.project-detail-summary-stat+.project-detail-summary-stat{border-top:1px solid var(--border)}.project-detail-summary-stat:first-child{border-top:0}}.project-detail-tab-nav{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:stretch;gap:0;display:flex}.project-detail-tab-bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-detail-tab-bar .project-detail-tab-nav{flex:1;min-width:0}.project-detail-outlook-refresh{color:var(--text-muted);flex-shrink:0;align-items:center;gap:6px;margin-right:4px;font-size:12px;font-weight:600;display:inline-flex}.project-detail-outlook-refresh .spinning{width:14px;height:14px}.project-detail-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:12.5px;font-weight:600;transition:color .15s,border-color .15s,border-bottom-color .15s}.project-detail-tab:hover{color:var(--text)}.project-detail-tab--active{color:var(--accent-hover);border-bottom-color:var(--accent)}.project-detail-tab:focus-visible{color:var(--text);outline:2px solid var(--accent-border);outline-offset:-2px;border-radius:6px 6px 0 0}.project-detail-tabpanel[hidden]{display:none!important}.project-detail-tab-divider{background:var(--border);align-self:stretch;width:1px;margin:10px 6px}@media (width<=640px){.project-detail-tab{padding:10px 14px;font-size:12.5px}}.project-detail-compare-caption{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.4}.project-detail-section-title{color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-detail-overview-block{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.project-detail-overview-block-head{flex-direction:column;gap:4px;display:flex}.project-detail-overview-block-head--row{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.project-detail-overview-block-title{color:var(--text);letter-spacing:-.01em;margin:0;font-size:13px;font-weight:600}.project-detail-overview-block-desc{color:var(--text-muted);margin:0;font-size:12px;line-height:1.45}.project-detail-overview-block--hours .project-detail-overview-columns{margin-top:0}.project-detail-overview-block--revenue .project-detail-overview-headline--inset{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=720px){.project-detail-overview-block--revenue .project-detail-overview-headline--inset{grid-template-columns:1fr}.project-detail-overview-block--revenue .project-detail-overview-headline--inset .project-detail-overview-stat--flat+.project-detail-overview-stat--flat{border-left:0;border-top:1px solid var(--border)}}.project-detail-rate-toggle{flex-shrink:0;margin:0}.project-detail-rate-compare{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (width<=720px){.project-detail-rate-compare{grid-template-columns:1fr}}.project-detail-rate-compare-col{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.project-detail-rate-compare-col--delta.tone-good{background:#ecfdf3;border-color:#bbf7d0}.project-detail-rate-compare-col--delta.tone-bad{background:#fde9eb;border-color:#f6c7cd}.project-detail-rate-compare-label{color:var(--text-muted);font-size:11px;font-weight:500}.project-detail-rate-compare-value{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600;line-height:1.15}.project-detail-rate-compare-col--delta.tone-good .project-detail-rate-compare-value{color:var(--signal-good-text)}.project-detail-rate-compare-col--delta.tone-bad .project-detail-rate-compare-value{color:var(--signal-bad-text)}.project-detail-rate-compare-meta{color:var(--text-faint);font-size:11.5px;line-height:1.35}.project-detail-rate-compare-foot{color:var(--text-muted);margin:0;font-size:12px;line-height:1.45}.project-detail-rate-compare-foot .tone-good{color:var(--signal-good-text);font-weight:600}.project-detail-rate-compare-foot .tone-bad{color:var(--signal-bad-text);font-weight:600}.project-detail-overview-headline{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-detail-overview-headline--inset{border:1px solid var(--border);border-radius:10px;gap:0;overflow:hidden}@media (width<=640px){.project-detail-overview-headline{grid-template-columns:1fr}.project-detail-overview-headline--inset .project-detail-overview-stat--flat+.project-detail-overview-stat--flat{border-left:0;border-top:1px solid var(--border)}}.project-detail-overview-stat{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:18px 20px;display:flex}.project-detail-overview-stat--flat{box-shadow:none;background:0 0;border:0;border-radius:0;padding:12px 14px}.project-detail-overview-headline--inset .project-detail-overview-stat--flat+.project-detail-overview-stat--flat{border-left:1px solid var(--border)}.project-detail-overview-stat-label{color:var(--text-muted);font-size:11px;font-weight:500}.project-detail-overview-stat-value{color:var(--text);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600;line-height:1.1}.project-detail-overview-stat-value--bad{color:var(--signal-bad-text)}.project-detail-overview-stat-value--good{color:var(--signal-good-text)}.project-detail-overview-stat-meta{color:var(--text-faint);font-size:11.5px;line-height:1.4}.project-detail-overview-stat-meta--compare{color:var(--text-secondary);margin-top:2px;font-size:11.5px;font-weight:500}.project-detail-overview-stat-meta--muted{color:var(--text-faint);margin-top:4px;font-size:11px}.project-detail-variance-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;align-items:flex-start;padding:12px 14px;display:flex}.project-detail-variance-panel--bad{background:#fde9eb;border-color:#f6c7cd}.project-detail-variance-panel--good{background:#ecfdf3;border-color:#bbf7d0}.project-detail-variance-panel-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700;line-height:1.2}.project-detail-variance-panel--bad .project-detail-variance-panel-value{color:var(--signal-bad-text)}.project-detail-variance-panel--good .project-detail-variance-panel-value{color:var(--signal-good-text)}.project-detail-variance-panel-pct{font-size:1.05rem;font-weight:600}.project-detail-variance-panel-sub{color:var(--text-muted);font-size:12.5px;line-height:1.4}.project-detail-overview-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (width<=900px){.project-detail-overview-columns{grid-template-columns:1fr}}.project-detail-breakdown-stack{flex-direction:column;gap:16px;width:100%;display:flex}.project-detail-breakdown-stack .project-detail-metrics{margin-bottom:0}.project-detail-breakdown-stack .project-detail-resource-panel{width:100%;margin-top:0}.project-detail-breakdown-stack .project-detail-callout{width:100%}.project-detail-breakdown{background:var(--surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden}.project-detail-breakdown-head{background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:6px;padding:18px 22px 16px;display:flex}.project-detail-breakdown-title{color:var(--text);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:13px;font-weight:700;line-height:1.2}.project-detail-breakdown-desc{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.45}.project-detail-breakdown-columns{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.project-detail-breakdown-col{padding:16px 18px 18px}.project-detail-breakdown-col+.project-detail-breakdown-col{border-left:1px solid var(--border)}.project-detail-breakdown-col-title{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px;font-size:10px;font-weight:700}.project-detail-breakdown-stats{flex-direction:column;gap:0;margin:0;display:flex}.project-detail-breakdown-stat{border-bottom:1px solid #e3e8ee80;padding:9px 0}.project-detail-breakdown-stat:last-child{border-bottom:0;padding-bottom:0}.project-detail-breakdown-stat:first-child{padding-top:0}.project-detail-breakdown-stat dt{color:var(--text-muted);margin-bottom:3px;font-size:11px;font-weight:500;line-height:1.3}.project-detail-breakdown-stat dt .hint-title{cursor:help;border-bottom:1px dotted var(--text-faint)}.project-detail-breakdown-stat dd{color:var(--text);font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-start;gap:2px;margin:0;font-size:1.05rem;font-weight:600;line-height:1.2;display:flex}.project-detail-breakdown-stat-value{line-height:1.2}.project-detail-breakdown-stat-value .project-detail-unit{margin-left:4px;font-size:.8125rem;font-weight:500}.project-detail-breakdown-stat-meta{color:var(--text-faint);font-size:11px;font-weight:500;line-height:1.3}.project-detail-breakdown-stat dd.tone-good,.project-detail-breakdown-stat dd.tone-good .project-detail-breakdown-stat-value{color:var(--signal-good-text)}.project-detail-breakdown-stat dd.tone-bad,.project-detail-breakdown-stat dd.tone-bad .project-detail-breakdown-stat-value{color:var(--signal-bad-text)}.project-detail-breakdown--loading{min-height:320px}@media (width<=820px){.project-detail-breakdown-columns{grid-template-columns:1fr}.project-detail-breakdown-col+.project-detail-breakdown-col{border-left:0;border-top:1px solid var(--border)}}.project-detail-compare-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.project-detail-compare--loading .project-detail-compare-fact{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.project-detail-tab-nav--skeleton{border-bottom:1px solid var(--border);gap:18px;padding:9px 14px}.project-detail-compare-split{background:var(--border-strong);align-self:stretch;width:1px}.project-detail-compare-section{border-top:1px solid var(--border);grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.project-detail-compare-section-cell{align-items:center;min-height:52px;padding:0 22px;display:flex}.project-detail-compare-section-cell--left{border-right:1px solid var(--border-strong)}.project-detail-compare-section-cell:has(.project-detail-compare-group-title){align-items:flex-end;min-height:auto;padding-top:16px;padding-bottom:8px}.project-detail-compare-section:first-of-type .project-detail-compare-section-cell:has(.project-detail-compare-group-title){padding-top:14px}.project-detail-compare-section-cell .project-detail-compare-facts{flex:1;width:100%;margin:0}.project-detail-compare-section-cell .project-detail-compare-fact{width:100%;padding:8px 0}.project-detail-compare-pane{flex-direction:column;min-height:100%;display:flex}.project-detail-resource-panel--loading .project-detail-resource-table-wrap{margin:0}.project-detail-compare-pane-head{box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;height:100%;padding:18px 22px 16px;display:flex}.project-detail-compare-pane-head-text{flex-direction:column;flex:1;gap:6px;min-width:min(100%,200px);display:flex}.project-detail-compare-pane--sow .project-detail-compare-pane-head{background:var(--accent-soft);border-bottom:1px solid var(--accent-border)}.project-detail-compare-pane--forecast .project-detail-compare-pane-head{background:var(--success-soft);border-bottom:1px solid #86efac}.project-detail-compare-pane-title{color:var(--text);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:14px;font-weight:700;line-height:1.2}.project-detail-compare-pane-desc{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.project-detail-compare-pane-budget{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;padding:10px 14px;display:flex}.project-detail-compare-budget-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:700}.project-detail-compare-budget-value{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700;line-height:1.1}.project-detail-compare-pane-body{flex-direction:column;flex:1;gap:0;padding:14px 22px 20px;display:flex}.project-detail-compare-group{padding-top:4px}.project-detail-compare-group+.project-detail-compare-group{border-top:1px solid var(--border);margin-top:10px;padding-top:16px}.project-detail-compare-group-title{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:700}.project-detail-compare-facts{flex-direction:column;gap:0;margin:0;display:flex}.project-detail-compare-fact{border-bottom:1px solid #e3e8ee80;justify-content:space-between;align-items:baseline;gap:20px;padding:8px 0;display:flex}.project-detail-compare-fact:last-child{border-bottom:0}.project-detail-compare-fact dt{color:var(--text-muted);flex:1;min-width:0;font-size:11.5px;font-weight:500;line-height:1.35}.project-detail-compare-fact dt .hint-title{cursor:help;border-bottom:1px dotted var(--text-faint)}.project-detail-compare-fact dd{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;margin:0;font-size:13.5px;font-weight:600;display:flex}.project-detail-compare-fact-value{line-height:1.25}.project-detail-compare-fact-meta{color:var(--text-faint);min-height:1.3em;margin-top:1px;font-size:11px;font-weight:500;line-height:1.3}.project-detail-compare-fact dd.tone-good,.project-detail-compare-fact dd.tone-good .project-detail-compare-fact-value{color:var(--signal-good-text)}.project-detail-compare-fact dd.tone-bad,.project-detail-compare-fact dd.tone-bad .project-detail-compare-fact-value{color:var(--signal-bad-text)}.project-detail-compare-pane-hero .project-detail-overview-col-hero-unit{color:var(--text-muted);margin-left:6px;font-size:.9rem;font-weight:500}.project-detail-overview-col{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:0;padding:12px 14px;display:flex}.project-detail-overview-col--sow{border-top:3px solid var(--accent-border)}.project-detail-overview-col--ptd{border-top:3px solid #7dd3fc}.project-detail-overview-col--forecast{border-top:3px solid #86efac}.project-detail-overview-col-head{margin-bottom:8px}.project-detail-overview-col-title{color:var(--text);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-detail-overview-col-subtitle{color:var(--text-muted);margin:0;font-size:11px;line-height:1.35}.project-detail-overview-col-hero{color:var(--text);letter-spacing:-.03em;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;margin-bottom:10px;padding-bottom:10px;font-size:1.65rem;font-weight:600;line-height:1}.project-detail-overview-col-hero-unit{color:var(--text-muted);margin-left:6px;font-size:.9rem;font-weight:500}.project-detail-overview-col-facts{flex-direction:column;gap:6px;margin:0;display:flex}.project-detail-overview-col-fact dt{color:var(--text-muted);font-size:11px;font-weight:500}.project-detail-overview-col-fact dd{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;margin:0;font-size:13px;font-weight:600}.project-detail-overview-col-fact dd.tone-good{color:var(--signal-good-text)}.project-detail-overview-col-fact dd.tone-bad{color:var(--signal-bad-text)}.project-detail-overview-col-fact-meta{color:var(--text-muted);margin-left:4px;font-size:11.5px;font-weight:500}.project-detail-kpi-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.project-detail-kpi-card--exec{padding:20px 22px 18px}.project-detail-kpi-card--exec .project-detail-kpi-value{font-size:1.5rem}.project-detail-kpi-label{color:var(--text-muted);font-size:12px;font-weight:500}.project-detail-kpi-value{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:600;line-height:1.1}.project-detail-kpi-value--good{color:var(--signal-good-text)}.project-detail-kpi-value--bad{color:var(--signal-bad-text)}.project-detail-kpi-value--good .project-detail-unit,.project-detail-kpi-value--bad .project-detail-unit{color:inherit;opacity:.75}.project-detail-kpi-meta{color:var(--text-faint);font-size:11px}.project-detail-unit{color:var(--text-muted);margin-left:6px;font-size:.875rem;font-weight:500}.project-detail-compare-fact-value .project-detail-unit{margin-left:8px}.project-detail-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.project-detail-panel-head{flex-direction:column;gap:4px;display:flex}.project-detail-panel-head--row{flex-flow:wrap;justify-content:space-between;align-items:flex-end;gap:8px 16px}.project-detail-panel-head--row .project-detail-panel-desc{text-align:right;max-width:360px}.project-detail-table-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;gap:2px;margin-bottom:10px;padding:3px;display:inline-flex}.project-detail-table-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 14px;font-size:12.5px;font-weight:600;transition:all .12s}.project-detail-table-toggle-btn:hover{color:var(--text)}.project-detail-table-toggle-btn.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.granularity-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.granularity-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 14px;font-size:12.5px;font-weight:600;transition:all .12s}.granularity-toggle-btn:hover{color:var(--text)}.granularity-toggle-btn.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.toolbar-right{align-items:center;gap:12px;display:flex}.forecast-inline-filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-detail-weekly-chart{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-top:16px;padding:16px 18px}.project-detail-weekly-chart-title{color:var(--text);letter-spacing:-.01em;margin:0 0 10px;font-size:14px;font-weight:600}.project-weekly-bar-label{fill:var(--text-secondary);font-variant-numeric:tabular-nums;pointer-events:none;font-size:9px;font-weight:600}.project-weekly-hours-chart .project-weekly-bar-forecast{fill:url(#project-chart-cost-fill);stroke:none;stroke-dasharray:none;opacity:1}.project-detail-breakdown-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.project-detail-breakdown-toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-detail-breakdown-toolbar .project-detail-table-toggle{margin-bottom:0}.project-forecast-section .toolbar{margin-top:0}.project-forecast-section .grid-card{box-shadow:none;border:0;border-radius:0;margin:0}.forecast-work-summary{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;flex-wrap:wrap;align-items:center;gap:0;padding:12px 16px;display:flex}.forecast-work-summary--panel{margin-bottom:12px}.forecast-work-summary--banner{min-width:0;max-width:min(100%,520px);box-shadow:none;flex:320px;margin-left:auto;padding:10px 14px}.forecast-work-summary-formula{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;display:flex}.forecast-work-summary-sow{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.forecast-work-summary-stat{flex-direction:column;align-items:flex-start;gap:0;display:flex}.forecast-work-summary-label{color:var(--text-muted);white-space:nowrap;letter-spacing:.02em;font-size:10px;font-weight:600;line-height:1.2;display:block}.forecast-work-summary-sublabel{color:var(--text-faint);letter-spacing:0;min-height:11px;font-size:9px;font-weight:500;line-height:11px;display:block}.forecast-work-summary-value{color:var(--text);font-variant-numeric:tabular-nums;margin-top:2px;font-size:1.125rem;font-weight:600;line-height:1.1}.forecast-work-summary--panel .forecast-work-summary-value{font-size:1.25rem}.forecast-work-summary-stat--primary .forecast-work-summary-value{color:var(--accent-hover)}.forecast-work-summary-op{color:var(--text-faint);flex-shrink:0;align-self:flex-end;margin-bottom:2px;font-size:14px;font-weight:600;line-height:1.1}.forecast-work-summary-divider{background:var(--border);align-self:stretch;width:1px;margin:2px 16px}.forecast-work-summary-pill{background:var(--accent-soft);color:var(--accent-hover);border:1px solid var(--accent-border);white-space:nowrap;border-radius:999px;margin-bottom:2px;padding:5px 12px;font-size:12px;font-weight:600}.forecast-work-summary--banner .forecast-work-summary-value{font-size:1.0625rem}.forecast-work-summary--banner .forecast-work-summary-op{font-size:13px}@media (width<=640px){.forecast-work-summary-divider{display:none}.forecast-work-summary-formula,.forecast-work-summary-sow{width:100%}}@media (width<=900px){.forecast-work-summary--banner{max-width:100%;margin-left:0}}.page-loading{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.page-loading p{margin:0;font-size:13.5px;font-weight:500}.page-loading--full{min-height:min(60vh,520px);padding:48px 20px}.page-loading--panel{background:var(--surface);border:1px solid var(--border);min-height:280px;box-shadow:var(--shadow-sm);border-radius:12px;padding:40px 20px}.forecast-seam-info{align-self:flex-end;position:relative}.forecast-seam-info-trigger{color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:2px 4px;font-size:11px;font-weight:600;display:inline-flex}.forecast-seam-info-trigger:hover{color:var(--accent-hover)}.forecast-seam-info-trigger svg{width:14px;height:14px}.forecast-seam-overlay{z-index:1100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1a1f3666;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.forecast-seam-modal{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:14px;flex-direction:column;width:min(480px,100%);max-height:min(86vh,640px);display:flex;overflow:hidden;box-shadow:0 24px 70px #1a1f3633}.forecast-seam-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px;display:flex}.forecast-seam-modal-header h3{color:var(--text);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:650;line-height:1.3}.forecast-seam-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex-shrink:0;padding:4px;display:inline-flex}.forecast-seam-modal-close:hover{background:var(--surface-hover);color:var(--text)}.forecast-seam-modal-close svg{width:16px;height:16px}.forecast-seam-modal-body{padding:18px 22px;overflow:auto}.forecast-seam-modal-body p{color:var(--text-secondary);margin:0 0 14px;font-size:13px;line-height:1.55}.forecast-seam-modal-body strong{color:var(--text);font-weight:650}.forecast-seam-info-list{flex-direction:column;gap:10px;margin:0 0 14px;padding:0;list-style:none;display:flex}.forecast-seam-info-list li{color:var(--text-secondary);align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;display:flex}.forecast-seam-dot{border-radius:3px;flex:none;width:9px;height:9px;margin-top:5px}.forecast-seam-dot--actual{background:var(--text-faint)}.forecast-seam-dot--plan{background:var(--accent)}.forecast-seam-info-formula{color:var(--text);background:var(--surface-2);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:10px;flex-direction:column;gap:4px;margin:0 0 14px;padding:12px 14px;font-size:13px;font-weight:650;line-height:1.55;display:flex}.forecast-seam-info-note{font-style:italic;color:var(--text-faint)!important;margin-bottom:0!important;font-size:12px!important}.forecast-seam-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;padding:14px 22px;display:flex}.project-forecast-section-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.project-forecast-save-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.project-forecast-save-message{color:var(--success);white-space:nowrap;font-size:11px;font-weight:650}.project-forecast-viewonly-badge{background:var(--surface-muted,#f1f5f9);border:1px solid var(--border,#e2e8f0);color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.project-forecast-sync{color:var(--text-muted);font-size:12px;font-weight:600}.project-forecast-sync--saving,.project-forecast-sync--dirty,.project-forecast-sync--pending{color:var(--warning,#b45309)}.forecast-pending-banner{background:#fffdf7;border:1px solid #f3e6c4;border-radius:12px;align-items:flex-start;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.forecast-pending-banner-icon{color:var(--warning,#b45309);background:#fff;border:1px solid #f0e0b0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.forecast-pending-banner-icon svg{width:14px;height:14px}.forecast-pending-banner-body{flex:1;min-width:0}.forecast-pending-banner-title-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2px;display:flex}.forecast-pending-banner-title{color:var(--text);font-size:13px;font-weight:650}.forecast-pending-banner-copy{color:var(--text-secondary);margin:0 0 4px;font-size:12.5px;line-height:1.4}.forecast-pending-banner-meta{color:var(--text-faint);margin:0;font-size:11.5px}.forecast-pending-badge{color:var(--warning,#b45309);letter-spacing:.03em;text-transform:uppercase;background:#fff8e8;border:1px solid #f0e0b0;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:650}.forecast-pending-banner-actions{flex-shrink:0;align-items:center;display:flex}.forecast-pending-withdraw{white-space:nowrap}.project-forecast-sync--error{color:var(--danger,#b91c1c)}.hours-readonly{text-align:center;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;width:100%;min-width:2.5rem;font-size:13px;font-weight:600;display:inline-block}.hours-readonly.zero{color:var(--text-muted);font-weight:500}.hours-readonly--locked{color:var(--text-muted);cursor:not-allowed}.month-cell--locked{background:var(--surface-muted,#94a3b81a)}.month-cell--locked .hours-readonly--locked{opacity:.85}.hours-readonly--derived{color:var(--text-muted);cursor:not-allowed}.month-cell--derived{background:var(--surface-muted,#94a3b81a)}.month-cell--derived .hours-readonly--derived{opacity:.85}.row-pinned{color:var(--text-faint);cursor:help;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.row-pinned svg{width:13px;height:13px}.row-drag-handle{color:var(--text-faint);cursor:grab;opacity:0;flex:none;justify-content:center;align-items:center;width:16px;height:22px;transition:opacity .12s;display:inline-flex}.row-flat:hover .row-drag-handle{opacity:1}.row-drag-handle:hover{color:var(--text-muted)}.row-drag-handle svg{width:14px;height:14px}.row-flat--dragging{opacity:.45}.row-flat--drop-target>*{box-shadow:inset 0 2px 0 0 var(--accent)}.hours-input{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:-.02em;width:100%}.hours-cell{width:100%;display:block;position:relative}.hours-cell--draggable,.hours-cell--draggable .hours-input{cursor:grab}.hours-cell--editing,.hours-cell--editing .hours-input{cursor:text}.hours-cell--fill-dragging,.hours-cell--fill-dragging .hours-input{cursor:grabbing}body.hours-fill-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}body.hours-fill-dragging .hours-cell,body.hours-fill-dragging .hours-input{cursor:grabbing}body.hours-fill-dragging .project-month-open{pointer-events:none}table.grid.grid--forecast-view .month-cell,table.grid.grid--project-view .month-cell{overflow:visible}table.grid.grid--project-view .project-month-cell .hours-cell{min-height:28px}table.grid.grid--project-view .project-month-open.tone-open{color:var(--signal-good-text-soft);background:var(--signal-good-bg-soft);border-radius:4px;padding:1px 6px}table.grid.grid--project-view .project-month-open.tone-over{color:var(--signal-bad-text);background:var(--signal-bad-bg);border-radius:4px;padding:1px 6px;font-weight:700}table.grid.grid--forecast-view .row-add .add-trigger--inactive{opacity:.55;pointer-events:none}.project-forecast-add-type{flex:240px;min-width:180px;max-width:360px}.type-badge{letter-spacing:.01em;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-block}.type-badge.billable{color:#166534;background:#dcfce7}.type-badge.nonbillable{color:#92400e;background:#fef3c7}.type-badge.internal{color:#1e40af;background:#dbeafe}.type-badge.task,.type-trigger.task{color:var(--accent-hover);letter-spacing:normal;background:var(--accent-soft);text-overflow:clip;white-space:normal;max-width:none;overflow:visible}.type-badge.unset,.type-trigger.unset{color:var(--text-muted);letter-spacing:normal;background:var(--surface-2);font-style:italic;font-weight:600}.project-detail-panel-title{color:var(--text);letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.project-detail-panel-desc{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.45}.project-detail-table-scroll{border:1px solid var(--border);border-radius:8px;overflow:auto}.project-detail-table{border-collapse:collapse;width:100%;min-width:880px}.project-detail-table--resource{min-width:1040px}.project-detail-table--resource-ptd{min-width:720px}.project-detail-table th,.project-detail-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:10px 12px;font-size:13px}.project-detail-table thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;z-index:1;font-size:11px;font-weight:600;position:sticky;top:0}.project-detail-table th.num,.project-detail-table td.num{text-align:right;font-variant-numeric:tabular-nums}.project-detail-table tfoot td{background:var(--surface-2);border-top:1px solid var(--border-strong);font-weight:600}.project-detail-table-total td:first-child{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.project-detail-table tbody tr:hover td{background:var(--surface-hover)}.project-detail-resource-name{color:var(--text);font-weight:600}.project-detail-neg{color:var(--danger)}.project-detail-empty-copy{color:var(--text-muted);margin:0;font-size:13px}.project-rate-cards{flex-direction:column;gap:18px;display:flex}.project-rate-cards-header{background:linear-gradient(135deg,var(--surface-2) 0%,var(--surface) 100%);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex}.project-rate-cards-header-main{flex-direction:column;gap:4px;display:flex}.project-rate-cards-eyebrow{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.project-rate-cards-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:1.125rem;font-weight:600;line-height:1.25}.project-rate-cards-stats{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-rate-cards-stat{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:500;line-height:1}.project-rate-cards-stat strong{color:var(--text);font-weight:700}.project-rate-cards-stat--warn{color:var(--warning);background:var(--warning-soft);border-color:#f5d89a}.project-rate-cards-stat--warn strong{color:var(--warning)}.project-rate-cards-list-wrap{border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden}.project-rate-cards-list-head{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2);border-bottom:1px solid var(--border);grid-template-columns:28px minmax(140px,1fr) auto 72px 64px;align-items:center;gap:12px 16px;padding:10px 16px;font-size:10.5px;font-weight:700;display:grid}.project-rate-cards-list-head span:last-child{justify-self:end}.project-rate-cards-list{box-shadow:none;border:0;border-radius:0}.project-rate-cards-item{background:var(--surface);border-bottom:1px solid var(--border)}.project-rate-cards-item:last-child{border-bottom:0}.project-rate-cards-item.is-open{background:var(--surface-2)}.project-rate-cards-item.is-empty .project-rate-cards-item-class{color:var(--text-secondary)}.project-rate-cards-item-head{cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:28px minmax(140px,1fr) auto 72px 64px;align-items:center;gap:12px 16px;width:100%;padding:14px 16px;transition:background .12s;display:grid}.project-rate-cards-item-currency{color:var(--text-muted);font-size:13px;font-weight:600}.project-rate-cards-item-head:hover{background:var(--surface-hover)}.project-rate-cards-item.is-open .project-rate-cards-item-head{background:0 0}.project-rate-cards-item-chevron{color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.project-rate-cards-item.is-open .project-rate-cards-item-chevron{color:var(--accent)}.project-rate-cards-item-class{color:var(--text);font-size:14px;font-weight:600;line-height:1.3}.project-rate-cards-item-rate{color:var(--text);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px;font-weight:600}.project-rate-cards-count{color:var(--success);background:var(--success-soft);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;justify-self:end;min-width:2rem;padding:4px 10px;font-size:12px;font-weight:700}.project-rate-cards-count--zero{color:var(--text-faint);background:var(--surface-2)}.project-rate-cards-item-body{border-top:1px solid var(--border);padding:4px 16px 14px 56px}.project-rate-cards-item-empty{color:var(--text-muted);margin:10px 0 4px;font-size:12.5px}.project-rate-cards-people,.project-rate-cards-unmatched-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.project-rate-cards-people li,.project-rate-cards-unmatched-list li{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.project-rate-cards-people li:last-child,.project-rate-cards-unmatched-list li:last-child{border-bottom:0}.project-rate-cards-avatar{color:var(--accent-hover);background:var(--accent-soft);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:inline-flex}.project-rate-cards-avatar--warn{color:var(--warning);background:var(--warning-soft)}.project-rate-cards-person{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.project-rate-cards-person-name{color:var(--text);font-size:13px;font-weight:600;line-height:1.25}.project-rate-cards-person-email{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-size:12px;text-decoration:none;overflow:hidden}.project-rate-cards-person-email:hover{text-decoration:underline}.project-rate-cards-person-email--missing{color:var(--text-faint);font-style:italic}.project-rate-cards-unmatched{background:var(--warning-soft);border:1px solid #f5d89a;border-radius:12px;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.project-rate-cards-unmatched-head{flex-direction:column;gap:4px;display:flex}.project-rate-cards-unmatched-title{color:var(--warning);margin:0;font-size:14px;font-weight:700}.project-rate-cards-unmatched-desc{color:#92691b;margin:0;font-size:12.5px;line-height:1.4}.project-rate-cards-unmatched-class{color:var(--warning);white-space:nowrap;background:#fff;border:1px solid #f5d89a;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}@media (width<=720px){.project-rate-cards-item-head{grid-template-columns:28px 1fr auto auto;grid-template-areas:"chev class count count""chev rate currency count"}.project-rate-cards-list-head{display:none}.project-rate-cards-item-chevron{grid-area:chev}.project-rate-cards-item-class{grid-area:class}.project-rate-cards-item-rate{color:var(--text-muted);grid-area:rate;justify-self:start;font-size:13px;font-weight:500}.project-rate-cards-item-currency{grid-area:currency}.project-rate-cards-count{grid-area:count}.project-rate-cards-item-body{padding-left:16px}}.project-chart-block{--chart-revenue:#5b6cf2;--chart-revenue-deep:#4a59d9;--chart-revenue-soft:#e9edff;--chart-revenue-forecast:#5b6cf233;--chart-revenue-forecast-stroke:#5b6cf2;--chart-cost:#d97b5c;--chart-cost-soft:#f6e4dc;--chart-cost-forecast:#d97b5c38;--chart-cost-forecast-stroke:#d97b5c;--chart-profit:#0d9b6e;--chart-profit-forecast:#6bb89a;--chart-profit-glow:#0d9b6e2e;--chart-profit-negative:#e05252;flex-direction:column;gap:14px;display:flex}.project-chart-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px;display:flex}.project-chart-head--compact{margin-bottom:2px}.project-chart-hint{color:var(--text-faint);margin:0;font-size:12px}.project-chart-series{flex-wrap:wrap;gap:8px;display:flex}.project-chart-series-chip{background:var(--surface);color:var(--text-muted);cursor:pointer;border:1px solid var(--border);border-radius:999px;align-items:center;gap:7px;padding:5px 11px 5px 10px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.project-chart-series-chip:hover{color:var(--text);border-color:var(--border-strong)}.project-chart-series-chip.active{color:var(--text);background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.project-chart-series-chip.revenue.active{background:var(--chart-revenue-soft);border-color:#c5ccf8}.project-chart-series-chip.cost.active{background:var(--chart-cost-soft);border-color:#e8c9bc}.project-chart-series-chip.margin.active{background:var(--success-soft);border-color:#9fd9c4}.project-chart-series-chip:not(.active){opacity:.55}.project-chart-series-chip:not(.active) .project-chart-series-swatch{opacity:.45}.project-chart-series-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.project-chart-series-swatch.revenue{background:linear-gradient(180deg,#6f7ef7 0%,var(--chart-revenue-deep) 100%)}.project-chart-series-swatch.cost{background:linear-gradient(180deg,#e89578 0%,var(--chart-cost) 100%)}.project-chart-series-swatch.margin{width:14px;height:3px;box-shadow:none;background:0 0;border-radius:2px;margin-top:1px}.project-chart-series-swatch.margin:before{content:"";background:var(--chart-profit);border-radius:2px;width:100%;height:100%;display:block}.project-chart-wrap{background:linear-gradient(180deg,#fafbfc 0%,var(--surface) 48px);border:1px solid var(--border);border-radius:12px;padding:8px 4px 4px;position:relative}.project-chart{font-family:inherit;display:block}.project-chart-gridline{stroke:#e8ecf1;stroke-width:1px}.project-chart-zero{stroke:#d0d7e2;stroke-width:1.25px;stroke-dasharray:5 4}.project-chart-tick{fill:var(--text-faint);font-variant-numeric:tabular-nums;font-size:10px}.project-chart-month{fill:var(--text-secondary);font-size:10px;font-weight:500}.project-chart-month--trend{letter-spacing:.02em;font-size:9.5px}.project-chart-month.forecast{fill:var(--text-faint);font-weight:400}.project-chart-variance-label{fill:var(--text-secondary);letter-spacing:-.01em;font-variant-numeric:tabular-nums;pointer-events:none;font-size:10px;font-weight:700}.project-chart-variance-label.negative{fill:var(--signal-bad-text)}.project-chart-variance-label.positive{fill:var(--signal-good-text)}.project-chart-bar.mom-actual,.project-chart-bar.mom-forecast{transition:filter .14s,opacity .14s}.project-chart-bar.mom-actual.hover,.project-chart-bar.mom-forecast.hover{filter:brightness(1.03)saturate(1.04)}.project-chart-bar{transition:filter .14s,opacity .14s}.project-chart-bar.revenue{fill:url(#project-chart-revenue-fill)}.project-chart-bar.revenue.forecast{fill:var(--chart-revenue-forecast);stroke:var(--chart-revenue-forecast-stroke);stroke-width:1.25px;stroke-dasharray:4 3;opacity:1}.project-chart-bar.cost{fill:url(#project-chart-cost-fill)}.project-chart-bar.cost.forecast{fill:var(--chart-cost-forecast);stroke:var(--chart-cost-forecast-stroke);stroke-width:1.25px;stroke-dasharray:4 3;opacity:1}.project-chart-bar.hover{filter:brightness(1.03)saturate(1.04)}.project-chart-hover-col{fill:#5b6cf214;pointer-events:none}.project-chart-hit{fill:#0000;pointer-events:all}.project-chart-forecast-divider{stroke:#c5cdd8;stroke-width:1px;stroke-dasharray:4 5;pointer-events:none}.project-chart-margin-line.actual{stroke:var(--chart-profit);filter:drop-shadow(0 1px 2px var(--chart-profit-glow));stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.project-chart-margin-line.forecast{stroke:var(--chart-profit-forecast);opacity:.92;stroke-width:2.25px;stroke-dasharray:6 4;stroke-linecap:round;stroke-linejoin:round}.project-chart-margin-dot{fill:#fff;stroke:var(--chart-profit);stroke-width:2.25px;transition:r .12s,stroke-width .12s}.project-chart-margin-dot.forecast{fill:var(--surface);stroke:var(--chart-profit-forecast);stroke-width:2px}.project-chart-margin-dot.negative{stroke:var(--chart-profit-negative)}.project-chart-margin-dot.forecast.negative{stroke:var(--chart-profit-negative);opacity:.85}.project-chart-margin-dot.hover{filter:drop-shadow(0 1px 3px var(--chart-profit-glow));stroke-width:2.75px}.project-chart-empty{color:var(--text-muted);text-align:center;border:1px dashed var(--border);border-radius:10px;padding:40px 16px;font-size:13px}.project-chart-wrap--empty{position:relative;overflow:hidden}.project-chart-empty-ghost{opacity:.28;pointer-events:none;width:100%;height:100%;display:block}.project-chart-empty-overlay{text-align:center;background:linear-gradient(#ffffffa8 0%,#ffffffd1 38%,#ffffffeb 100%);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px 24px;display:flex;position:absolute;inset:0}.project-chart-empty-overlay-icon{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:2px;display:flex}.project-chart-empty-overlay-icon svg{width:20px;height:20px}.project-chart-empty-overlay-title{color:var(--text);letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.project-chart-empty-overlay-copy{color:var(--text-muted);max-width:300px;margin:0;font-size:12.5px;line-height:1.5}.project-chart-tooltip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#f8fafc;pointer-events:none;background:#1a1f36f0;border:1px solid #ffffff14;border-radius:12px;min-width:220px;padding:12px 14px;font-size:12px;position:absolute;top:12px;right:12px;box-shadow:0 16px 48px #1a1f3640}.project-chart-tooltip-title{border-bottom:1px solid #ffffff1a;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;font-size:13px;font-weight:600;display:flex}.project-chart-tooltip-row{justify-content:space-between;gap:12px;margin-top:4px;display:flex}.project-chart-tooltip-row strong{font-variant-numeric:tabular-nums}.project-chart-tooltip-row--rev>span:first-child:before,.project-chart-tooltip-row--cost>span:first-child:before{content:"";vertical-align:1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.project-chart-tooltip-row--rev>span:first-child:before{background:var(--chart-revenue)}.project-chart-tooltip-row--cost>span:first-child:before{background:var(--chart-cost)}.project-chart-tooltip-highlight{color:#7ddeb8;border-top:1px solid #ffffff1a;margin-top:6px;padding-top:6px}.project-chart-tooltip-highlight.negative{color:#f5a8a8}.login-page{background:radial-gradient(120% 80% at 20% 0,#8853c6 0%,#0000 55%),radial-gradient(90% 70% at 100% 100%,#7341b6 0%,#0000 50%),linear-gradient(160deg,#1a1f36 0%,#3d2860 42%,#6b46a8 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px 24px;display:flex;position:relative;overflow:hidden}.login-page--loading{background:radial-gradient(120% 80% at 20% 0,#8853c6 0%,#0000 55%),radial-gradient(90% 70% at 100% 100%,#7341b6 0%,#0000 50%),linear-gradient(160deg,#1a1f36 0%,#3d2860 42%,#6b46a8 100%)}.login-bg-shapes{pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-shape{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff0f;border:1px solid #ffffff1f;border-radius:24px;position:absolute}.login-shape--1{width:240px;height:240px;top:8%;left:6%;transform:rotate(16deg)}.login-shape--2{width:180px;height:180px;bottom:14%;right:8%;transform:rotate(-20deg)}.login-shape--3{opacity:.55;width:320px;height:320px;top:48%;left:58%;transform:rotate(10deg)}.login-card{z-index:1;text-align:center;background:#fffffffa;border:1px solid #ffffffd9;border-radius:20px;width:min(400px,100%);padding:0;overflow:hidden;box-shadow:0 32px 64px #1a1f3647,0 12px 24px #8853c629,0 0 0 1px #8853c614}.login-card-top{background:linear-gradient(180deg,var(--accent-soft) 0%,#fff 100%);border-bottom:1px solid var(--border);padding:36px 32px 28px}.login-card-mark{width:48px;height:48px;margin:0 auto 20px;font-size:16px;box-shadow:0 8px 20px #1a1f362e}.login-card-title{flex-direction:column;gap:2px;margin:0 0 14px;display:flex}.login-card-title-main{color:var(--text);letter-spacing:-.03em;font-size:26px;font-weight:700;line-height:1.1}.login-card-title-sub{color:var(--accent-hover);letter-spacing:-.01em;font-size:17px;font-weight:600;line-height:1.2}.login-card-subtitle{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;max-width:100%;margin:0 auto;padding:7px 14px;font-size:12px;font-weight:500;line-height:1.35;display:inline-block}.login-error{color:var(--danger);background:var(--danger-soft);text-align:left;border-radius:10px;margin:20px 28px 0;padding:10px 12px;font-size:12.5px;line-height:1.45}.login-submit-btn{color:#fff;cursor:pointer;background:linear-gradient(180deg,#9460cf 0%,var(--accent-hover) 100%);letter-spacing:.01em;border:0;border-radius:12px;justify-content:center;align-items:center;gap:12px;width:calc(100% - 56px);margin:24px 28px 28px;padding:14px 18px;font-size:14px;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex;box-shadow:0 12px 28px #8853c652,0 2px 6px #1a1f361f,inset 0 1px #ffffff2e}.login-submit-btn:hover{background:linear-gradient(180deg,var(--accent) 0%,#6340a0 100%);transform:translateY(-1px);box-shadow:0 16px 32px #8853c661,0 4px 10px #1a1f3624,inset 0 1px #fff3}.login-submit-btn-icon{background:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:0 1px 3px #1a1f3624}.login-google-icon{flex-shrink:0;width:18px;height:18px}.login-loading-card{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:24px;font-size:13px;display:flex}.sidebar-user-block{align-items:flex-start;gap:10px;width:100%;padding:2px 4px;display:flex}.sidebar-user-block .user-avatar{flex-shrink:0;width:32px;height:32px;margin-top:1px}.user-meta{flex-direction:column;flex:1;align-items:flex-start;gap:1px;min-width:0;display:flex}.user-meta strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:600;line-height:1.25;overflow:hidden}.user-meta>span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11.5px;line-height:1.3;overflow:hidden}.user-avatar--photo{object-fit:cover;border-radius:999px;flex-shrink:0;display:block}img.user-avatar.user-avatar--photo{width:32px;height:32px}img.settings-user-avatar.user-avatar--photo{width:34px;height:34px}.sidebar-sign-out{color:var(--text-faint);cursor:pointer;background:0 0;border:0;margin:4px 0 0;padding:0;font-size:11.5px;font-weight:600;line-height:1.2;transition:color .12s}.sidebar-sign-out:hover{color:var(--text);text-decoration:underline}.layout.sidebar-collapsed .sidebar-user-block{justify-content:center;padding:0}.layout.sidebar-collapsed .user-meta{display:none}.layout.sidebar-collapsed .sidebar-user-block .user-avatar{margin:0}.user-add-hint{color:var(--text-muted);margin:0 0 12px;padding:0 16px;font-size:12.5px;line-height:1.45}.user-add-button.btn-primary:disabled{opacity:.75;cursor:wait}.settings-page{width:100%;max-width:960px;margin-inline:auto}.settings-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;padding:20px 22px}.settings-card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.settings-card-title{color:var(--text);letter-spacing:-.02em;margin:0 0 4px;font-size:17px;font-weight:600}.settings-card-lead{color:var(--text-muted);margin:0;font-size:13px;line-height:1.45}.settings-card-lead strong{color:var(--text-secondary);font-weight:600}.settings-user-count{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:600}.settings-add-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;margin-bottom:6px;padding:16px}.settings-add-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px auto;align-items:end;gap:12px;display:grid}.settings-field{flex-direction:column;gap:6px;min-width:0;display:flex}.settings-field-label{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:11px;font-weight:600}.settings-field .dropdown-root,.settings-edit-fields .dropdown-root{width:100%;min-width:0;display:block}.settings-select-trigger{border-radius:8px;justify-content:space-between;gap:8px;width:100%;padding:9px 11px;font-size:13.5px;font-weight:500}.settings-select-trigger .dropdown-chevron{color:var(--text-muted);opacity:.9;width:14px;height:14px;margin-left:0}.settings-select-locked{color:var(--text-muted);background:var(--surface-2);cursor:not-allowed;align-items:center;gap:8px;height:38px;padding:0 11px;font-size:13.5px;font-weight:500;display:flex}.page-header{justify-content:space-between;align-items:center;gap:16px;min-height:0;padding-block:7px;display:flex}.page-title{font-size:18px;line-height:1.2}.page-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.notif-bell{position:relative}.notif-bell-btn{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .12s,border-color .12s,color .12s;display:inline-flex;position:relative}.notif-bell-btn svg{width:15px;height:15px}.notif-bell-btn:hover{background:var(--surface-hover);color:var(--text)}.notif-bell-btn.has-unread{color:var(--accent);border-color:var(--accent-border)}.notif-bell-badge{background:var(--danger,#c5320b);color:#fff;border:2px solid var(--surface);text-align:center;box-sizing:border-box;border-radius:999px;min-width:15px;height:15px;padding:0 4px;font-size:9px;font-weight:700;line-height:11px;position:absolute;top:-5px;right:-5px}.notif-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg,0 12px 32px #10182829);border-radius:12px;overflow:hidden}.notif-panel--fixed{z-index:6000}.notif-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 14px;display:flex}.notif-panel-title{color:var(--text);font-size:13px;font-weight:600}.notif-panel-clear{color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 7px;font-size:11.5px;font-weight:600}.notif-panel-clear:hover:not(:disabled){background:var(--accent-soft)}.notif-panel-clear:disabled{color:var(--text-faint);cursor:wait}.notif-panel-empty{color:var(--text-muted);text-align:center;padding:28px 16px;font-size:13px}.notif-list{max-height:360px;margin:0;padding:0;list-style:none;overflow:auto}.notif-item{border-bottom:1px solid var(--border)}.notif-item:last-child{border-bottom:none}.notif-item-btn{cursor:pointer;text-align:left;background:0 0;border:none;align-items:flex-start;gap:10px;width:100%;padding:11px 14px;transition:background .1s;display:flex}.notif-item-btn:hover{background:var(--surface-hover)}.notif-item-dot{background:var(--accent);border-radius:999px;flex-shrink:0;width:8px;height:8px;margin-top:5px}.notif-item-dot--read{background:var(--border-strong)}.notif-item-text{flex-direction:column;gap:2px;min-width:0;display:flex}.notif-item-title{color:var(--text);font-size:12.5px;font-weight:600}.notif-item-body{color:var(--text-muted);font-size:12px;line-height:1.4}.notif-item-time{color:var(--text-faint);margin-top:2px;font-size:11px}.notif-item-badge{letter-spacing:.03em;text-transform:uppercase;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.notif-item-badge--approval_request{background:var(--accent-soft);color:var(--accent);border-color:#0000}.notif-item-badge--approval_approved{color:#15803d;background:#16a34a1f;border-color:#0000}.notif-item-badge--approval_rejected,.notif-item-badge--sync_failure{color:#c5320b;background:#c5320b1f;border-color:#0000}.notif-item-badge--eac_overage,.notif-item-badge--eac_swing{color:#b45309;background:#d9770624;border-color:#0000}.notifications-page{flex-direction:column;gap:14px;display:flex}.notifications-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.notifications-filters{flex-wrap:wrap;gap:6px;display:flex}.notifications-list{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.notifications-row{border-bottom:1px solid var(--border)}.notifications-row:last-child{border-bottom:none}.notifications-row-btn{cursor:pointer;text-align:left;background:0 0;border:none;align-items:flex-start;gap:12px;width:100%;padding:14px 16px;transition:background .1s;display:flex}.notifications-row-btn:hover{background:var(--surface-hover)}.notifications-row-dot{background:var(--accent);border-radius:999px;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notifications-row-dot--read{background:var(--border-strong)}.notifications-row-text{flex-direction:column;gap:4px;min-width:0;display:flex}.notifications-row-meta{align-items:center;gap:10px;display:flex}.notifications-row-time{color:var(--text-faint);font-size:11px}.notifications-row-title{color:var(--text);font-size:13px;font-weight:600}.notifications-row-body{color:var(--text-muted);font-size:12.5px;line-height:1.45}.notif-panel-foot{background:var(--surface-2);border:none;border-top:1px solid var(--border);width:100%;color:var(--accent);cursor:pointer;padding:10px;font-size:12.5px;font-weight:600;transition:background .1s}.notif-panel-foot:hover{background:var(--surface-hover)}.nav-item-badge{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;line-height:18px}.approvals-page{width:100%;max-width:560px;margin-inline:auto}.approvals-toolbar{margin-bottom:16px}.approvals-filter{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;gap:4px;padding:3px;display:inline-flex}.approvals-filter-tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;transition:background .12s,color .12s;display:inline-flex}.approvals-filter-tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.approvals-filter-count{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:10.5px;font-weight:700;line-height:18px}.approvals-empty{border:1px dashed var(--border-strong);color:var(--text-muted);text-align:center;border-radius:12px;padding:44px 24px}.approvals-empty svg{width:30px;height:30px;color:var(--text-faint);margin-bottom:8px}.approvals-empty-title{color:var(--text);margin:0 0 4px;font-size:14px;font-weight:600}.approvals-empty-copy{max-width:420px;margin:0 auto;font-size:13px;line-height:1.5}.approvals-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.approval-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;align-items:center;gap:16px;padding:16px 18px;display:flex}.approval-card--pending{border-left:3px solid var(--accent)}.approval-card--approved,.approval-card--rejected{opacity:.72}.approval-card-main{flex:1;min-width:0}.approval-card-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.approval-type-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.approval-type-badge svg{width:12px;height:12px}.approval-type-badge--non_ns_user{background:var(--accent-soft);color:var(--accent)}.approval-type-badge--under_budget{background:var(--warning-soft);color:var(--warning)}.approval-card-num-delta--under{color:var(--warning);background:var(--warning-soft);border-color:#f1d9a6}.approval-card-kind{color:var(--text-muted);font-size:12px;font-weight:600}.approval-status{text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);margin-left:auto;font-size:11px;font-weight:600}.approval-status--approved{color:var(--success)}.approval-status--rejected{color:var(--danger)}.approval-status--cancelled{color:var(--text-muted)}.approval-card--cancelled{opacity:.72}.approval-card-title{color:var(--text);margin:0 0 3px;font-size:14.5px;font-weight:600}.approval-card-title a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:2px}.approval-card-title a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.approval-card-detail{color:var(--text-secondary);margin:0 0 6px;font-size:13px;line-height:1.45}.approval-card-detail:empty{display:none}.approval-card-diff{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;padding:10px 12px;display:flex}.approval-card-diff-side{flex-direction:column;gap:2px;display:flex}.approval-card-diff-side span{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:10px;font-weight:700}.approval-card-diff-side strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.approval-card-diff-side--new strong{color:var(--accent)}.approval-card-diff-arrow{color:var(--text-faint);font-size:14px;font-weight:600}.approval-card-diff-over{color:var(--danger);background:var(--danger-soft);font-variant-numeric:tabular-nums;border:1px solid #f0c7bc;border-radius:999px;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:700}.approval-card-detail--action{color:var(--text);margin-top:2px}.approval-card-reason{color:var(--text-secondary);background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;margin:0 0 8px;padding:8px 12px;font-size:12.5px;line-height:1.45}.approval-card-reason-label{color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;margin-right:8px;font-size:10px;font-weight:700}.approval-card-meta{color:var(--text-faint);margin:0;font-size:12px}.approval-card--stacked{border-radius:14px;flex-direction:column;align-items:stretch;gap:14px;padding:18px 20px}.approval-card--stacked.approval-card--pending{align-items:stretch}.approval-card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.approval-card-heading{min-width:0}.approval-card--stacked .approval-card-title{letter-spacing:-.01em;margin:0 0 4px;font-size:15.5px;font-weight:650}.approval-card--stacked .approval-card-meta{font-size:12.5px}.approval-card-tags{flex-shrink:0;align-items:center;gap:8px;display:flex}.approval-type-badge--hours{background:var(--danger-soft);color:var(--danger)}.approval-status-pill{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:10.5px;font-weight:700}.approval-status-pill--pending{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.approval-status-pill--approved{background:var(--success-soft);color:var(--success);border-color:#bfe3c9}.approval-status-pill--rejected{background:var(--danger-soft);color:var(--danger);border-color:#f0c7bc}.approval-card-body{flex-direction:column;gap:10px;min-width:0;display:flex}.approval-card-body>*{margin-bottom:0!important}.approval-card-body:empty{display:none}.approval-card-numbers{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.approval-card-num{align-items:baseline;gap:5px;display:inline-flex}.approval-card-num-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:700}.approval-card-num strong{color:var(--text);font-size:15px;font-weight:700}.approval-card-num strong:after{color:var(--text-muted);content:"hrs";margin-left:3px;font-size:11px;font-weight:600}.approval-card-num--new strong{color:var(--accent)}.approval-card-num-arrow{color:var(--text-faint);margin:0 2px;font-size:13px}.approval-card-num-delta{color:var(--danger);background:var(--danger-soft);border:1px solid #f0c7bc;border-radius:999px;margin-left:4px;padding:2px 9px;font-size:11.5px;font-weight:700}.approval-card-quote{color:var(--text-secondary);border-left:2px solid var(--border-strong);margin:0;padding-left:12px;font-size:13px;font-style:italic;line-height:1.5}.approval-card-footer .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.approval-card-footer .btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.approval-card-footer .btn-primary:disabled{opacity:.65}.approval-card--stacked .approval-card-reason{background:var(--surface-2);border-radius:0 8px 8px 0;align-items:baseline;gap:8px;padding:10px 14px;display:flex}.approval-card-reason-text{min-width:0}.approval-card-footer{border-top:1px solid var(--border);justify-content:flex-start;align-items:center;gap:8px;padding-top:14px;display:flex}.approval-card-footer .btn svg{width:14px;height:14px}.reporting-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.reporting-th-sortable:hover{color:var(--text)}.reporting-th-sortable:hover .reporting-sort-caret{opacity:.55}.reporting-th-active{color:var(--text)}.reporting-th-inner{align-items:center;gap:5px;max-width:100%;display:inline-flex}.reporting-page .projects-db-table th.num .reporting-th-inner{justify-content:flex-end;width:100%}.reporting-th-label{min-width:0}.reporting-sort-caret{color:var(--text-faint);opacity:.4;flex:none;font-size:9px;line-height:1}.reporting-sort-caret.is-active{color:var(--text);opacity:.85}.reporting-page .projects-header{gap:18px;padding-bottom:18px}.reporting-page .reporting-filters{gap:12px}.reporting-page .projects-search{width:min(190px,100%)}.reporting-page .projects-db-table{table-layout:fixed;width:100%;min-width:0}.reporting-page .projects-db-table .pcol-select{width:30px}.reporting-page .projects-db-table .pcol--projectName{width:23%}.reporting-page .projects-db-table .pcol--createdDate{width:8%}.reporting-page .projects-db-table .pcol--status{width:8.5%}.reporting-page .projects-db-table .pcol--projectType{width:9%}.reporting-page .projects-db-table .pcol--sowBudget{width:8%}.reporting-page .projects-db-table .pcol--sowHours,.reporting-page .projects-db-table .pcol--sowRate,.reporting-page .projects-db-table .pcol--actualHours,.reporting-page .projects-db-table .pcol--etc,.reporting-page .projects-db-table .pcol--eac,.reporting-page .projects-db-table .pcol--effectiveRate{width:7%}.reporting-page .projects-db-table td,.reporting-page .projects-db-table th{text-overflow:ellipsis;overflow:hidden}.reporting-page .projects-db-table th,.reporting-page .projects-db-table td{font-variant-numeric:tabular-nums;padding:8px 7px;font-size:12px}.reporting-page .projects-db-table.is-compact th,.reporting-page .projects-db-table.is-compact td{padding:7px 6px}.reporting-page .projects-db-table.is-compact tbody td{padding-top:7px;padding-bottom:7px}.reporting-page .projects-db-table thead th{letter-spacing:.03em;font-size:9.5px}.reporting-page .projects-db-table .col-project-name{background:var(--surface)}.reporting-page .projects-db-table .col-status{white-space:nowrap}.reporting-page .projects-db-table thead .col-project-name{background:var(--surface-2)}.reporting-page .projects-db-table tbody tr:hover .col-project-name{background:var(--surface-hover)}.reporting-page .projects-db-table .num{white-space:nowrap;min-width:56px}.reporting-page .projects-db-table .col-created,.reporting-page .projects-db-table .col-project-type,.reporting-page .projects-db-table .col-created{white-space:nowrap}.layout:has(.projects-page.reporting-page) .main{height:100vh;min-height:0;overflow:hidden}.content:has(.projects-page.reporting-page){flex-direction:column;flex:1;min-height:0;padding-bottom:20px;display:flex;overflow:hidden}.layout:has(.project-detail-page) .main{height:100vh;min-height:0;overflow:hidden}.content:has(.project-detail-page){flex:1;min-height:0;overflow:auto}.projects-page.reporting-page{flex-direction:column;flex:1;min-height:0;display:flex}.reporting-page .projects-card{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.reporting-page .resources-scroll{flex:1;min-height:0;max-height:none;overflow:auto}.main{min-width:0}.projects-page,.reporting-page,.projects-card{min-width:0;max-width:100%}.reporting-page .projects-db-table thead th{box-shadow:inset 0 -1px 0 var(--border)}.reporting-cell-stack{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.reporting-cell-stack--end{align-items:flex-end}.reporting-cell-primary{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;font-size:13px;font-weight:650;line-height:1.25;overflow:hidden}.reporting-attention{color:var(--warning);vertical-align:-2px;margin-right:5px;display:inline-flex}.reporting-attention-icon{width:13px;height:13px}.projects-header-filters .projects-filters-right{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.projects-filters-reset{color:var(--text-muted);cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:border-color .12s,color .12s;display:inline-flex}.projects-filters-reset svg{width:14px;height:14px}.projects-filters-reset:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.projects-filters-reset:disabled{opacity:.45;cursor:default}.projects-attention-toggle{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);align-items:center;gap:4px;min-height:24px;padding:3px 8px;font-size:11px;display:inline-flex}.projects-attention-toggle .reporting-attention-icon,.projects-attention-toggle svg{width:11px;height:11px}.projects-attention-toggle:hover{border-color:var(--warning);color:var(--warning)}.projects-attention-toggle--on{color:var(--warning);background:var(--warning-soft);border-color:var(--warning)}.col-select{text-align:center;width:32px;padding-left:8px;padding-right:0}.col-select input{cursor:pointer;vertical-align:middle;accent-color:var(--accent);width:14px;height:14px;margin:0}.col-project-type{white-space:nowrap;color:var(--text-secondary)}.reporting-page .projects-db-table .col-project-name .reporting-cell-primary{white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:0;min-width:0;display:flex;overflow:hidden}.reporting-page .projects-db-table .col-project-name .projects-db-namelink{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.projects-db-nslink{color:var(--text-faint);opacity:.6;flex-shrink:0;justify-content:center;align-items:center;margin-left:5px;transition:opacity .12s,color .12s;display:inline-flex}.projects-db-nslink svg{width:12px;height:12px}.projects-db-nslink:hover{opacity:1;color:var(--accent)}.reporting-page .projects-db-table .col-project-name .reporting-cell-secondary{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.projects-bu-tag{color:var(--text-faint);background:var(--surface-2);border:1px solid var(--border);letter-spacing:.02em;white-space:nowrap;border-radius:4px;flex-shrink:0;margin-left:6px;padding:0 4px;font-size:9.5px;font-weight:600;line-height:1.5}.projects-bulk-bar{background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:3px 10px;display:flex}.projects-header-filters,.projects-bulk-bar{box-sizing:border-box;min-height:36px}.projects-bulk-spacer{flex:auto}.projects-bulk-dismiss{width:20px;height:20px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}.projects-bulk-dismiss:hover:not(:disabled){background:var(--surface);color:var(--text)}.projects-bulk-dismiss:disabled{opacity:.5;cursor:default}.projects-bulk-count{color:var(--text);font-size:12.5px;font-weight:600}.projects-bulk-trigger{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;min-height:26px;padding:4px 9px;font-size:12px;font-weight:500;display:inline-flex}.projects-bulk-trigger:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.projects-bulk-trigger:disabled{opacity:.55;cursor:default}.projects-bulk-trigger>svg{width:13px;height:13px}.projects-export-btn{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.projects-export-btn>svg{width:13px;height:13px}.finance-tasks-page .resources-header.projects-header{padding:11px 14px}.finance-tasks-eyebrow{color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;margin:0 0 1px;font-size:9.5px;font-weight:700}.finance-tasks-title{margin-bottom:0;font-size:17px}.data-as-of{color:var(--text-faint);white-space:nowrap;align-self:center;margin-right:2px;font-size:11px}.data-as-of-degraded{color:var(--warning,#b45309);font-weight:600}.finance-tasks-page .finance-tasks-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px 12px}.finance-tasks-page .finance-tasks-stat{cursor:pointer;text-align:left;font:inherit;gap:2px;padding:6px 10px;transition:border-color .12s,box-shadow .12s}.finance-tasks-stat>span{flex-wrap:wrap;align-items:center;gap:3px 5px;display:flex}.finance-tasks-stat-label{white-space:nowrap;flex:none}.finance-tasks-stat-row{align-items:baseline;gap:7px;min-width:0;display:flex}.finance-tasks-stat strong{flex:none;font-size:17px;line-height:1.1}.finance-tasks-stat small{color:var(--text-muted);font-size:10.5px;line-height:1.35}.finance-tasks-stat:hover{border-color:var(--border-strong)}.finance-tasks-stat.is-included{border-color:var(--accent-border);box-shadow:inset 0 0 0 1px var(--accent-soft)}.finance-tasks-dot{border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.finance-tasks-stat-flag{background:var(--signal-amber-bg);color:var(--signal-amber-text);letter-spacing:normal;text-transform:uppercase;border-radius:4px;flex:none;padding:1px 4px;font-size:8.5px;font-style:normal;font-weight:700}.finance-tasks-stat--incomplete strong{color:var(--signal-amber-text)}.finance-tasks-stat--incomplete .finance-tasks-dot{background:var(--signal-amber-text)}.finance-tasks-stat--off_card strong{color:var(--accent-hover)}.finance-tasks-stat--off_card .finance-tasks-dot{background:var(--accent-hover)}.finance-tasks-stat--no_rate_card strong{color:var(--text-muted)}.finance-tasks-stat--no_rate_card .finance-tasks-dot{background:var(--text-faint)}.finance-tasks-stat--on_card strong{color:var(--signal-good-text)}.finance-tasks-stat--on_card .finance-tasks-dot{background:var(--signal-good-text)}.finance-tasks-filters{border-bottom:1px solid var(--border);z-index:30;gap:9px;padding:7px 14px;position:relative}.finance-tasks-filters .dropdown-root{z-index:40}.finance-tasks-view-count{color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.finance-tasks-footnote{color:var(--text-faint);border-top:1px solid var(--border);align-items:baseline;gap:16px;padding:7px 14px;font-size:11px;display:flex}.finance-tasks-footnote>p{margin:0}.finance-tasks-footnote>p:first-child{flex:1;line-height:1.5}.finance-tasks-footnote>p:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}.finance-tasks-table tr.projects-db-row--link{cursor:pointer}.reporting-page .finance-tasks-table.is-compact tr.finance-tasks-group>td{background:var(--surface-hover);border-top:1px solid var(--border-strong);padding:5px 14px 5px 10px}.finance-tasks-table tr.finance-tasks-group{cursor:pointer}.finance-tasks-table tr.finance-tasks-group:hover>td{background:var(--border)}.finance-tasks-group-inner{align-items:center;gap:8px;display:flex}.finance-tasks-group-toggle{color:var(--text-muted);background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;padding:0;transition:transform .12s;display:inline-flex;transform:rotate(-90deg)}.finance-tasks-group-toggle>svg{width:13px;height:13px}.finance-tasks-group.is-open .finance-tasks-group-toggle{transform:rotate(0)}.finance-tasks-group-toggle:focus-visible{box-shadow:0 0 0 2px var(--accent-border)}.finance-tasks-group-inner>a{font-size:12.5px;font-weight:700}.finance-tasks-group-nocard{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:10px;font-weight:650}.finance-tasks-group-date{color:var(--text-faint);cursor:help;margin-left:auto;font-size:10.5px}.finance-tasks-group-date+.finance-tasks-group-meta{margin-left:0}.finance-tasks-group-meta{color:var(--text-faint);margin-left:auto;font-size:11px}.finance-tasks-table td.ftcol--flag{padding-left:10px;padding-right:0}.finance-tasks-row-flag{color:var(--warning);width:13px;height:13px;display:block}.finance-tasks-who{align-items:center;gap:7px;min-width:0;display:flex}.finance-tasks-avatar{background:var(--accent-soft);color:var(--accent-hover);border-radius:50%;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:8.5px;font-weight:700;display:flex}.finance-tasks-who-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.finance-tasks-cell{align-items:center;gap:6px;min-width:0;display:flex}.finance-tasks-cell-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.finance-tasks-flag{white-space:nowrap;border-radius:5px;flex:none;padding:1px 7px;font-size:10px;font-weight:650;display:inline-block}.finance-tasks-flag--missing{background:var(--signal-amber-bg);color:var(--signal-amber-text)}.finance-tasks-flag--offcard{background:var(--accent-soft);color:var(--accent-hover);cursor:help}.finance-tasks-action{color:var(--text-faint);white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:1px 9px;font-size:10.5px;font-weight:650;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.finance-tasks-action>svg{width:11px;height:11px}.finance-tasks-action:hover{background:var(--surface-hover);color:var(--accent);border-color:var(--border)}.finance-tasks-action.is-primary{background:var(--accent-soft);color:var(--accent-hover);border-color:var(--accent-border)}.finance-tasks-action.is-primary:hover{background:var(--accent-border)}.finance-tasks-fx{color:var(--text-muted);cursor:help}.finance-tasks-fx-warn{color:var(--signal-amber-text);font-size:10px;font-weight:650}.reporting-page .finance-tasks-table.is-compact tbody td{padding-top:4px;padding-bottom:4px}.finance-tasks-table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.finance-tasks-table td.num{text-align:right;font-variant-numeric:tabular-nums}.finance-tasks-table td.ftcol--action,.finance-tasks-table th.ftcol--action{text-align:right}.reporting-page .finance-tasks-table.is-compact td.ftcol--action,.reporting-page .finance-tasks-table.is-compact th.ftcol--action{padding-right:14px}.ftcol--flag{width:26px}.ftcol--resourceName{width:17%}.ftcol--taskName{width:18%}.ftcol--billingClassName{width:17%}.ftcol--serviceItemName{width:18%}.ftcol--rate{width:9%}.ftcol--rateUsd{width:10%}.ftcol--action{width:154px}@media (width<=1100px){.finance-tasks-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.projects-bulk-trigger .dropdown-chevron{width:12px;height:12px}.projects-bulk-trigger.is-disabled{opacity:.55;pointer-events:none}.projects-bulk-sync{background:var(--accent);color:#fff;border:1px solid var(--accent);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:600;display:inline-flex}.projects-bulk-sync:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.projects-bulk-sync:disabled{opacity:.6;cursor:default}.projects-bulk-status{color:var(--text-muted);font-size:12px}.reporting-cell-secondary{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;font-size:11px;font-weight:500;line-height:1.2;overflow:hidden}.reporting-columns-menu{z-index:20;position:relative}.reporting-columns-panel{background:var(--surface);border:1px solid var(--border);width:180px;box-shadow:var(--shadow-lg);border-radius:10px;padding:8px;position:absolute;top:calc(100% + 6px);right:0}.reporting-columns-option{color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.reporting-columns-option:hover{background:var(--surface-hover);border-radius:6px}.reporting-columns-option input{accent-color:var(--accent)}.reporting-columns-divider{background:var(--border);height:1px;margin:6px 4px}.reporting-summary{background:var(--surface-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:16px 12px;display:grid}.projects-summary-scope{background:var(--accent-soft);border-top:1px solid var(--accent-border);color:var(--accent-hover);letter-spacing:.03em;text-transform:uppercase;padding:7px 12px 6px;font-size:10.5px;font-weight:700}.projects-summary-scope+.reporting-summary{border-top-color:var(--accent-border)}.reporting-summary-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:3px;min-width:0;padding:12px 14px;display:flex}.reporting-summary-card>span{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:600}.reporting-summary-card>strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:20px;font-weight:650}.reporting-summary-card--primary{border-color:var(--accent-border);box-shadow:inset 0 0 0 1px var(--accent-soft)}.reporting-summary-card--primary>strong{color:var(--accent-hover)}.reporting-rate.tone-good{color:var(--signal-good-text)}.reporting-rate.tone-bad{color:var(--signal-bad-text)}.reporting-project-select{z-index:30;position:relative}.reporting-project-panel{background:var(--surface);border:1px solid var(--border);width:340px;max-height:390px;box-shadow:var(--shadow-lg);border-radius:10px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}.reporting-project-panel-actions{border-bottom:1px solid var(--border);justify-content:flex-end;gap:12px;padding:7px 10px;display:flex}.reporting-project-panel-actions button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:2px;font-size:11.5px;font-weight:600}.reporting-project-options{min-height:80px;overflow:auto}.reporting-project-empty{color:var(--text-muted);text-align:center;padding:14px 12px;font-size:12px}.reporting-project-option{color:var(--text);cursor:pointer;background:var(--surface);border:0;border-bottom:1px solid var(--border);text-align:left;align-items:center;gap:10px;width:100%;padding:9px 11px;display:flex}.reporting-project-option:hover,.reporting-project-option.selected{background:var(--surface-hover)}.reporting-project-option>span:last-child{flex-direction:column;min-width:0;display:flex}.reporting-project-option strong{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.reporting-project-option small{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.reporting-project-checkbox{border:1px solid var(--border-strong);border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.reporting-project-option.selected .reporting-project-checkbox{color:#fff;background:var(--accent);border-color:var(--accent)}.reporting-project-checkbox svg{width:11px;height:11px}.reporting-status{color:var(--accent-hover);letter-spacing:.02em;white-space:nowrap;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.reporting-status--completed,.reporting-status--complete{color:var(--signal-good-text);background:#ecfdf3;border-color:#0000}.reporting-status--closed,.reporting-status--cancelled,.reporting-status--canceled{color:var(--text-muted);background:var(--surface-2);border-color:var(--border)}.reporting-status--on-hold,.reporting-status--pending,.reporting-status--not-started{color:var(--warning);background:var(--warning-soft);border-color:#0000}.reporting-status--lost{color:var(--signal-bad-text);background:#fde9eb;border-color:#0000}@media (width<=900px){.reporting-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.reporting-summary{grid-template-columns:1fr}.reporting-project-panel{width:min(340px,100vw - 32px)}}.approval-card-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.approval-card-actions .btn svg{width:14px;height:14px}.approval-approve{gap:6px}.approval-reject{gap:6px;color:var(--danger)!important;border-color:#f6c7cd!important}.approval-card--pending{align-items:stretch}.approval-card--assigning{flex-direction:column;align-items:stretch;gap:0}.approval-card--assigning .approval-card-main{width:100%}.approval-card--assigning .approval-card-actions{border-top:1px solid var(--border);justify-content:flex-end;margin-top:16px;padding-top:14px}.approval-assign{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.approval-assign-lead{color:var(--text-secondary);max-width:40rem;margin:0 0 14px;font-size:13px;line-height:1.5}.approval-assign-loading{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.approval-assign-note{color:var(--warning);background:var(--warning-soft);border:1px solid #f0e0b0;border-radius:8px;align-items:flex-start;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:12.5px;line-height:1.45;display:flex}.approval-assign-note svg{flex-shrink:0;width:14px;height:14px;margin-top:1px}.approval-assign-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:16px 18px}.approval-assign-row:last-child{margin-bottom:0}.approval-assign-row-name{color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;font-size:15px;font-weight:650;display:flex}.approval-assign-result{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:650}.approval-assign-result--ok{background:var(--success-soft);color:var(--success)}.approval-assign-result--fail{background:var(--danger-soft);color:var(--danger);text-transform:none;letter-spacing:0;max-width:100%;line-height:1.35}.approval-assign-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px;display:grid}.approval-assign-fields--simple{grid-template-columns:minmax(0,1.6fr) 120px minmax(0,1fr);align-items:start}.approval-assign-field--full{grid-column:1/-1}.approval-assign-field--units{max-width:none}@media (width<=720px){.approval-assign-fields--simple{grid-template-columns:1fr}}.approval-assign-field{flex-direction:column;gap:6px;min-width:0;margin:0;display:flex}.approval-assign-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;cursor:help;font-size:11px;font-weight:700}.approval-assign-help{color:var(--text-faint);margin:0;font-size:12px;line-height:1.4}.approval-assign-hours{color:var(--text);background:var(--surface-2);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:8px;align-items:center;min-height:40px;padding:8px 12px;font-size:14px;font-weight:600;display:flex}.approval-assign-field .dropdown-root{width:100%;min-width:0;display:block}.approval-assign-select{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;min-height:40px;padding:8px 12px;font-size:13.5px;display:flex}.approval-assign-select:hover{border-color:var(--accent-border);background:var(--surface)}.approval-assign-select .dropdown-label{color:var(--text);text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;display:block;overflow:hidden}.approval-assign-select .dropdown-chevron{color:var(--text-muted);flex-shrink:0;width:14px;height:14px}.approval-assign-units-wrap{align-items:center;gap:6px;display:flex}.approval-assign-units{color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);font-variant-numeric:tabular-nums;border-radius:8px;width:88px;min-width:0;height:40px;padding:0 12px;font-size:14px}.approval-assign-units:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface);outline:none}.approval-assign-units-suffix{color:var(--text-muted);font-size:13px;font-weight:600}.approval-assign-menu .dropdown-option{align-items:flex-start;gap:10px;padding:10px 12px}.approval-assign-menu .dropdown-option-text{flex:1;min-width:0}.approval-assign-menu .dropdown-option-label{white-space:normal;font-weight:550;line-height:1.35}.approval-assign-menu .dropdown-option-sublabel{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.approval-assign-menu .dropdown-option-hint{display:none}@media (width<=640px){.settings-add-form{grid-template-columns:1fr}}.settings-field-input{color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;outline:none;width:100%;min-width:0;padding:9px 11px;font-size:13.5px;transition:border-color .12s,box-shadow .12s}.settings-field-input:hover{border-color:color-mix(in srgb,var(--accent) 25%,var(--border-strong))}.settings-field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.settings-add-btn{justify-content:center;min-width:88px;height:38px;padding:0 14px}@media (width<=640px){.settings-add-btn{width:100%}}.settings-form-success{color:var(--success);margin:10px 0 0;font-size:13px;font-weight:500}.settings-form-error{color:var(--danger);background:var(--danger-soft);border:1px solid #f6c7cd;border-radius:8px;align-items:flex-start;gap:8px;margin:10px 0 0;padding:8px 10px;font-size:13px;font-weight:500;line-height:1.45;display:flex}.settings-form-error svg{flex-shrink:0;width:16px;height:16px;margin-top:1px}.settings-form-error--inline{margin:8px 0 0}.settings-readonly-note{color:var(--text-muted);margin:0 0 4px;font-size:13px}.settings-divider{background:var(--border);height:1px;margin:18px 0}.settings-loading{color:var(--text-muted);justify-content:center;align-items:center;gap:8px;padding:20px 0;font-size:13px;display:flex}.settings-empty{color:var(--text-muted);text-align:center;margin:0;padding:16px 0;font-size:13px}.settings-user-groups{flex-direction:column;gap:20px;display:flex}.settings-user-group-heading{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 8px;font-size:11px;font-weight:650;display:flex}.settings-user-group-count{color:var(--text-faint);background:var(--surface-2);letter-spacing:0;text-transform:none;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:600}.settings-user-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.settings-user-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.settings-user-row:last-child{border-bottom:none;padding-bottom:0}.settings-user-row:first-child{padding-top:0}.settings-user-row--you{background:linear-gradient(90deg,var(--accent-soft) 0%,transparent 55%);border-radius:8px;margin:0 -8px;padding-left:8px;padding-right:8px}.settings-user-avatar{color:#9a3412;background:#ffe3d1;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:inline-flex}.settings-user-main{flex:1;min-width:0}.settings-user-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.settings-user-name-row strong{color:var(--text);font-size:13.5px;font-weight:600}.settings-user-email{color:var(--text-muted);word-break:break-all;margin-top:1px;font-size:12.5px;display:block}.settings-user-activity{color:var(--text-faint);flex-wrap:wrap;gap:2px 14px;margin-top:3px;font-size:11.5px;display:flex}.settings-user-activity-never{font-style:italic}.settings-resend-note{margin-top:3px;font-size:12px;font-weight:500;line-height:1.45;display:block}.settings-resend-note.is-ok{color:var(--signal-good-text)}.settings-resend-note.is-bad{color:var(--signal-bad-text)}.settings-you-badge{background:var(--accent-soft);color:var(--accent-hover);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700}.settings-user-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.settings-sync-toggle{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;margin-right:2px;font-size:12px;font-weight:500;display:flex}.settings-sync-toggle input{accent-color:var(--accent);cursor:pointer;width:14px;height:14px;margin:0}.settings-sync-toggle input:disabled{cursor:progress;opacity:.5}.settings-remove-btn{padding:0 9px;color:var(--danger)!important;border-color:#f6c7cd!important}.settings-remove-btn:hover{background:var(--danger-soft)!important;border-color:#f6c7cd!important}.settings-user-edit{flex:1;min-width:0}.settings-edit-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px;gap:8px;display:grid}@media (width<=640px){.settings-edit-fields{grid-template-columns:1fr}}.settings-user-edit-actions{align-items:center;gap:10px;margin-top:8px;display:flex}@media (width<=640px){.settings-user-row{align-items:flex-start}.settings-user-actions{margin-left:46px}}.forecast-locked-banner{background:var(--danger-soft);border:1px solid #f6c7cd;border-radius:10px;align-items:flex-start;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.forecast-locked-banner-icon{color:var(--danger);flex-shrink:0;margin-top:1px;display:flex}.forecast-locked-banner-body{flex:1;min-width:0}.forecast-locked-banner-title{color:var(--danger);font-size:13px;font-weight:700;display:block}.forecast-locked-banner-copy{color:var(--text-secondary);margin:3px 0 0;font-size:12.5px;line-height:1.5}.forecast-locked-banner-stat{text-align:right;border-left:1px solid #f6c7cd;flex-shrink:0;padding-left:14px}.forecast-locked-banner-stat strong{color:var(--danger);font-variant-numeric:tabular-nums;font-size:17px;font-weight:700;display:block}.forecast-locked-banner-stat-label{color:var(--text-muted);letter-spacing:.02em;font-size:10.5px;font-weight:600;display:block}.forecast-work-summary-clear{color:var(--text-muted);cursor:pointer;border:1px solid var(--border);background:0 0;border-radius:5px;padding:2px 8px;font-size:11px;font-weight:600;transition:color .12s,border-color .12s,background .12s}.forecast-work-summary-clear:hover:not(:disabled){color:var(--danger);background:var(--danger-soft);border-color:#f6c7cd}.forecast-work-summary-clear:disabled{cursor:progress;opacity:.6}.forecast-reason-modal--compact{max-width:340px}.baseline-edit-input{color:var(--text);font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;outline:none;width:100%;margin:0 0 14px;padding:10px 12px;font-size:16px;font-weight:600}.baseline-edit-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8853c62e}.col-sync-check,.colgroup-sync{width:36px}.col-sync-check{text-align:center;padding-left:6px;padding-right:0}.sync-checkbox{cursor:pointer;width:15px;height:15px;accent-color:var(--accent);margin:0}.forecast-sync-bar{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:10px 14px;display:flex}.forecast-sync-bar-info{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.forecast-sync-count{color:var(--text);font-size:13px;font-weight:600}.forecast-sync-hint{color:var(--text-muted);font-size:13px}.forecast-sync-error{color:var(--danger);font-size:12.5px}.forecast-sync-button{align-items:center;gap:7px;display:inline-flex}.forecast-sync-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a1f3666;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.forecast-sync-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:min(1120px,100%);max-height:min(86vh,820px);display:flex;overflow:hidden;box-shadow:0 24px 70px #1a1f3633}.forecast-sync-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px;display:flex}.forecast-sync-modal-header h3{color:var(--text);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.forecast-sync-modal-header p{color:var(--text-muted);margin:6px 0 0;font-size:12.5px;line-height:1.5}.forecast-sync-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex-shrink:0;padding:4px;display:inline-flex}.forecast-sync-modal-close:hover{background:var(--surface-hover);color:var(--text)}.forecast-sync-modal-close:disabled{cursor:not-allowed;opacity:.5}.forecast-sync-modal-error{color:var(--danger);background:var(--danger-soft);border-bottom:1px solid var(--border);margin:0;padding:10px 22px;font-size:12.5px}.forecast-sync-table-wrap{flex:1;min-height:0;overflow:auto}.forecast-sync-loading{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:9px;min-height:190px;padding:32px;display:flex}.forecast-sync-loading strong{color:var(--text);font-size:15px;font-weight:650}.forecast-sync-loading span{font-size:12.5px}.forecast-sync-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}.forecast-sync-table th,.forecast-sync-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:8px 12px}.forecast-sync-table thead th{background:var(--surface-2);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;z-index:1;font-size:10.5px;font-weight:600;position:sticky;top:0}.forecast-sync-table .num{text-align:right;font-variant-numeric:tabular-nums}.forecast-sync-table .num-strong{color:var(--text);font-weight:700}.forecast-sync-table tr.sync-row-error td,.forecast-sync-table tr.sync-row-skipped td{background:var(--surface-2);color:var(--text-muted)}.forecast-sync-table tr.sync-row-deselected td{opacity:.55}.sync-badge{letter-spacing:.02em;text-overflow:ellipsis;vertical-align:middle;border-radius:999px;max-width:240px;padding:2px 9px;font-size:10.5px;font-weight:700;display:inline-block;overflow:hidden}.sync-badge-ready{background:var(--accent-soft);color:var(--accent-hover)}.sync-badge-ok{background:var(--success-soft);color:var(--success)}.sync-badge-skip{background:var(--surface-hover);color:var(--text-muted)}.sync-badge-error{background:var(--danger-soft);color:var(--danger)}.sync-badge-action{background:var(--surface-hover);color:var(--text);max-width:160px}.sync-badge-action-keepActuals{background:var(--accent-soft);color:var(--accent-hover)}.sync-badge-action-setMinimum{background:var(--surface-hover);color:var(--text-muted)}.sync-badge-action-removeAssignee{background:var(--danger-soft);color:var(--danger)}.sync-badge-action-update{background:var(--surface-hover);color:var(--text)}.sync-action-tooltip{display:inline-flex;position:relative}.sync-action-tooltip .sync-badge-action{cursor:help;outline:none}.sync-action-tooltip .sync-badge-action:focus-visible{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.sync-action-tooltip-content{visibility:hidden;opacity:0;pointer-events:none;z-index:20;color:#fff;white-space:normal;background:#20243a;border:1px solid #ffffff1f;border-radius:9px;width:300px;padding:10px 12px;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% + 9px);left:0;transform:translateY(-3px);box-shadow:0 12px 30px #10132640}.sync-action-tooltip-content:before{content:"";background:#20243a;border-top:1px solid #ffffff1f;border-left:1px solid #ffffff1f;width:8px;height:8px;position:absolute;top:-5px;left:18px;transform:rotate(45deg)}.sync-action-tooltip-content strong{letter-spacing:.01em;margin-bottom:4px;font-size:11.5px;font-weight:700;display:block}.sync-action-tooltip-content span{color:#e3e6f2;font-size:11.5px;line-height:1.45;display:block}.sync-action-tooltip:hover .sync-action-tooltip-content,.sync-action-tooltip:focus-within .sync-action-tooltip-content{visibility:visible;opacity:1;transform:translateY(0)}.forecast-sync-table td .sync-error-msg{color:var(--danger);white-space:normal;max-width:100%;font-size:11.5px;line-height:1.4;display:block}.forecast-sync-table tr.sync-row-error-detail td{background:var(--danger-soft);padding:8px 12px}.forecast-sync-table td .sync-error-msg--access{color:var(--text-secondary)}.forecast-sync-table td .sync-reminder-note{color:var(--accent-hover);margin-top:4px;font-size:11px;font-weight:600;display:block}.forecast-sync-table tr.sync-row-error td{white-space:normal}.forecast-sync-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:12px;padding:14px 22px;display:flex}.forecast-sync-summary{color:var(--text-muted);margin-right:auto;font-size:12.5px}.forecast-sync-new-total{color:var(--text);font-weight:700}.forecast-reason-overlay{z-index:1001;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1a1f3666;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.forecast-reason-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:16px;width:min(520px,100%);padding:22px;display:flex;box-shadow:0 24px 70px #1a1f3633}.forecast-reason-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.forecast-reason-header h3{color:var(--text);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.forecast-reason-subtitle{color:var(--text-muted);margin:6px 0 0;font-size:12.5px;line-height:1.5}.forecast-reason-subtitle+.forecast-reason-subtitle{margin-top:3px}.forecast-reason-close{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex-shrink:0;padding:4px;display:inline-flex}.forecast-reason-close:hover{background:var(--surface-hover);color:var(--text)}.forecast-reason-close:disabled{cursor:not-allowed;opacity:.5}.forecast-reason-figures{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:12px 14px;display:flex}.forecast-reason-figure{flex-direction:column;gap:2px;display:flex}.forecast-reason-figure-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:10px;font-weight:600}.forecast-reason-figure-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.forecast-reason-figure--over{text-align:right;margin-left:auto}.forecast-reason-figure--over .forecast-reason-figure-value{color:var(--danger)}.forecast-reason-figure-op{color:var(--text-muted);font-size:11px;font-weight:600}.forecast-reason-diff{border:1px solid var(--border);background:linear-gradient(#fbfcfd,#f6f8fa);border-radius:10px;grid-template-columns:1fr auto 1fr;grid-template-areas:"from arrow to""delta delta delta";align-items:center;gap:8px;padding:10px;display:grid}.forecast-reason-diff-side{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.forecast-reason-diff-side--new{border-color:var(--accent-border);background:var(--accent-soft)}.forecast-reason-diff-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:9px;font-weight:700}.forecast-reason-diff-value{color:var(--text);font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;font-size:16px;font-weight:700;display:inline-flex}.forecast-reason-diff-value span{color:var(--text-muted);font-size:10.5px;font-weight:600}.forecast-reason-diff-side--new .forecast-reason-diff-value{color:var(--accent)}.forecast-reason-diff-arrow{color:var(--text-faint);grid-area:arrow;font-size:18px;font-weight:600}.forecast-reason-diff-side:first-child{grid-area:from}.forecast-reason-diff-side--new{grid-area:to}.forecast-reason-diff-delta{grid-area:delta;justify-content:center;align-items:center;gap:8px;margin-top:0;display:flex}.forecast-reason-diff-delta-pill{color:var(--danger);background:var(--danger-soft);font-variant-numeric:tabular-nums;border:1px solid #f0c7bc;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:700}.forecast-reason-diff-delta-caption{color:var(--text-muted);font-size:11.5px}@media (width<=520px){.forecast-reason-diff{text-align:center;grid-template-columns:1fr;grid-template-areas:"from""arrow""to""delta"}.forecast-reason-diff-arrow{transform:rotate(90deg)}.forecast-reason-diff-side{align-items:center}}.forecast-reason-label{color:var(--text);font-size:12.5px;font-weight:600}.forecast-reason-textarea{background:var(--surface);color:var(--text);border:1px solid var(--border);font:inherit;resize:vertical;box-sizing:border-box;border-radius:9px;width:100%;min-height:150px;padding:12px 14px;font-size:13px;line-height:1.55}.forecast-reason-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.forecast-reason-textarea:disabled{opacity:.6}.forecast-reason-footer .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.forecast-reason-footer .btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.forecast-reason-footer .btn-primary:disabled{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-faint);box-shadow:none}.forecast-reason-footer{justify-content:flex-end;align-items:center;gap:10px;display:flex}table.grid.grid--project-view{table-layout:fixed;width:100%;min-width:0!important}table.grid.grid--project-view .colgroup-resource{width:24%}table.grid.grid--project-view .colgroup-type{width:18%}table.grid.grid--project-view .colgroup-month{width:62px}table.grid.grid--project-view .colgroup-total{width:72px}table.grid.grid--project-view .col-resource,table.grid.grid--project-view .col-type,table.grid.grid--project-view .col-month,table.grid.grid--project-view .col-total{width:auto!important;min-width:0!important}table.grid.grid--project-view .col-type{vertical-align:middle;padding:10px 8px;position:relative;overflow:visible}table.grid.grid--project-view .col-type .dropdown-root{width:100%;min-width:0;display:block}table.grid.grid--project-view .type-trigger--cell,table.grid.grid--project-view .type-badge--cell{box-sizing:border-box;border-radius:4px;justify-content:space-between;align-items:flex-start;gap:4px;width:100%;min-width:0;max-width:100%;padding:4px 6px 4px 8px;font-size:11px;font-weight:600;line-height:1.3;display:inline-flex}table.grid.grid--project-view .type-trigger--cell .dropdown-label,table.grid.grid--project-view .type-badge--cell{text-overflow:clip;white-space:normal;word-break:break-word;flex:1;min-width:0;line-height:1.3;display:block;overflow:visible}table.grid.grid--project-view .type-trigger--cell .dropdown-chevron{opacity:.65;flex-shrink:0;width:10px;height:10px;margin-left:0}table.grid.grid--project-view .resource-info{min-width:0}table.grid.grid--project-view .resource-info strong{font-size:13.5px;line-height:1.2}table.grid.grid--project-view .resource-role{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}table.grid.grid--project-view .resource-meta{font-size:11.5px;line-height:1.2}table.grid.grid--project-view .resource-meta-sep{display:none}table.grid.grid--project-view .resource-unit{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}table.grid.grid--project-view .col-type{max-width:132px}table.grid.grid--project-view .type-trigger--cell .dropdown-label,table.grid.grid--project-view .type-badge--cell{white-space:normal;word-break:break-word}.grid-scroll--fit{scrollbar-gutter:stable;min-height:min(560px,100vh - 280px);max-height:calc(100vh - 280px);overflow:auto}.reporting-grid th.col-month--in-flight{background:var(--accent-soft);box-shadow:inset 1px 0 0 var(--accent-border),inset -1px 0 0 var(--accent-border)}.reporting-grid th.col-month--in-flight .col-month-label,.reporting-grid th.col-month--in-flight .col-month-year{color:var(--accent-hover)}.col-month-in-flight{color:var(--accent-hover);letter-spacing:.02em;text-transform:none;white-space:nowrap;margin-top:2px;font-size:8.5px;font-weight:700;line-height:1;display:block}table.grid.grid--project-view thead th{z-index:3;background:var(--surface-2);box-shadow:inset 0 -1px 0 var(--border-strong);position:sticky;top:0}.datepicker{z-index:80;background:var(--surface);border:1px solid var(--border);border-radius:11px;width:262px;padding:13px;animation:.12s ease-out both breakdownIn;position:fixed;box-shadow:0 16px 36px #1a1f3626,0 3px 8px #1a1f3614}.datepicker-head{justify-content:space-between;align-items:center;gap:6px;margin-bottom:9px;display:flex}.datepicker-month{color:var(--text);font-size:12.5px;font-weight:650}.datepicker-step{border:1px solid var(--border);width:26px;height:26px;color:var(--text-secondary);background:0 0;border-radius:7px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:flex}.datepicker-step:hover{background:var(--accent-soft);color:var(--accent-hover);border-color:var(--accent-border)}.datepicker-weekdays,.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-weekdays{margin-bottom:3px}.datepicker-weekdays span{color:var(--text-faint);text-align:center;letter-spacing:.04em;text-transform:uppercase;font-size:9.5px;font-weight:700}.datepicker-day{height:28px;color:var(--text-secondary);font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:6px;padding:0;font-size:11.5px;font-weight:500;transition:background .1s,color .1s}.datepicker-day.is-outside{color:var(--text-faint);opacity:.45;font-weight:400}.datepicker-day.is-cursor{background:var(--accent-soft);color:var(--accent-hover)}.datepicker-day.is-today{color:var(--accent-hover);box-shadow:inset 0 0 0 1px var(--accent-border);font-weight:700}.datepicker-day.is-selected,.datepicker-day.is-selected.is-cursor,.datepicker-day.is-selected.is-today{background:var(--accent);border-color:var(--accent);box-shadow:none;color:#fff;font-weight:650}.datepicker-foot{border-top:1px solid var(--border);justify-content:space-between;gap:8px;margin-top:9px;padding-top:8px;display:flex}.datepicker-action{color:var(--accent-hover);background:0 0;border:0;border-radius:5px;padding:3px 7px;font-size:11px;font-weight:650;transition:background .12s}.datepicker-action:hover{background:var(--accent-soft)}.datepicker-action--clear{color:var(--text-muted)}.datepicker-action--clear:hover{background:var(--surface-hover);color:var(--danger)}.booked-breakdown{z-index:70;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:248px;max-width:380px;padding:13px 15px 12px;animation:.12s ease-out both breakdownIn;position:fixed;box-shadow:0 14px 32px #1a1f3624,0 3px 8px #1a1f3614}@keyframes breakdownIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.booked-breakdown--below{animation-name:breakdownInBelow}@keyframes breakdownInBelow{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.booked-breakdown-title{color:var(--text-faint);letter-spacing:.07em;text-transform:uppercase;margin-bottom:8px;font-size:9.5px;font-weight:700}.booked-breakdown-list{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.booked-breakdown-row{border-radius:4px;grid-template-columns:1fr auto;align-items:baseline;gap:16px;padding:4px 7px;display:grid;position:relative}.booked-breakdown-fill{background:#8853c626;border-radius:4px;min-width:3px;position:absolute;top:0;bottom:0;left:0}.booked-breakdown-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;line-height:1.35;position:relative;overflow:hidden}.booked-breakdown-hours{color:var(--text);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:650;line-height:1.35;position:relative}.booked-breakdown-total{border-top:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums;justify-content:space-between;gap:14px;margin-top:8px;padding:7px 5px 0;font-size:11.5px;font-weight:700;display:flex}table.grid.grid--project-view thead th.col-resource{z-index:5}table.grid.grid--project-view thead th.col-type{z-index:3;position:sticky;top:0}table.grid.grid--project-view .col-month{min-width:64px!important}table.grid.grid--project-view .row-flat>th,table.grid.grid--project-view .row-flat>td,table.grid.grid--project-view .row-add>th,table.grid.grid--project-view .row-add>td,table.grid.grid--project-view .row-project-total>th,table.grid.grid--project-view .row-project-total>td{padding:10px}table.grid.grid--project-view thead .col-month{text-align:center;padding:8px 2px 6px;font-size:10px}table.grid.grid--project-view thead .col-total{padding:8px 6px;font-size:11px}table.grid.grid--project-view .row-flat .month-cell{padding:4px 2px}table.grid.grid--project-view .hours-input,table.grid.grid--project-view .hours-readonly{min-height:30px;padding:4px 1px;font-size:12px;font-weight:600}table.grid.grid--project-view .col-total,.grid--project-view .row-total-cell,.grid--project-view .project-total-cell--grand{text-align:right;font-variant-numeric:tabular-nums}.grid--project-view .row-total-value{color:var(--text);font-size:12.5px;font-weight:700}.grid--project-view .project-total-cell--grand .month-total-value{color:var(--text);font-size:13.5px;font-weight:700}.dropdown-panel--fixed{flex-direction:column;margin-top:0;display:flex;position:fixed;top:auto;bottom:auto;overflow:hidden}.dropdown-panel--fixed .dropdown-search{flex-shrink:0}.dropdown-panel--fixed .dropdown-options{flex:1;min-height:0;max-height:none}.dropdown-panel--full-labels .dropdown-option-label{white-space:normal;text-overflow:clip;line-height:1.35;overflow:visible}.dropdown-panel--full-labels .dropdown-option-sublabel{white-space:normal;text-overflow:clip;overflow:visible}.project-type-panel{border:1px solid var(--border-strong);border-radius:12px;padding:6px;overflow:hidden;box-shadow:0 14px 36px #1a1f362e}.project-type-panel .dropdown-options{padding:2px}.project-type-panel .dropdown-section-label{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;padding:6px 10px 5px;font-size:10px;font-weight:700}.project-type-panel .dropdown-option{white-space:normal;border-radius:9px;align-items:center;gap:10px;padding:9px 11px}.project-type-panel .dropdown-option:hover,.project-type-panel .dropdown-option.selected{background:var(--accent-soft)}.project-type-panel .dropdown-option-text{flex:1;min-width:0}.project-type-panel .dropdown-option-label{color:var(--text);font-size:13px;font-weight:600;line-height:1.3}.project-type-panel .dropdown-option.selected .dropdown-option-label{color:var(--accent-hover)}.project-type-panel .dropdown-option-sublabel{color:var(--text-muted);margin-top:2px;font-size:11.5px;line-height:1.3;display:block}.project-type-panel .dropdown-option svg{color:var(--accent);flex-shrink:0}.sync-checkbox--row{flex:none}.project-cell .sync-checkbox--row{margin-left:20px}.resource-cell .sync-checkbox--row{margin-right:1px}.projects-card .resources-header.projects-header{z-index:10;position:relative}.projects-card .projects-header-filters .dropdown-root{z-index:20}.grid-card--forecast{box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden}.grid-scroll--forecast{scrollbar-gutter:stable;min-height:min(520px,100vh - 240px);max-height:calc(100vh - 240px);overflow:auto}table.grid.grid--forecast-view{table-layout:fixed;width:100%;min-width:0!important}table.grid.grid--forecast-view .colgroup-resource{width:15%}table.grid.grid--forecast-view .colgroup-project{width:22%}table.grid.grid--forecast-view .colgroup-month{width:auto}table.grid.grid--forecast-view .col-resource,table.grid.grid--forecast-view .col-project,table.grid.grid--forecast-view .col-type,table.grid.grid--forecast-view .col-month{width:auto!important;min-width:0!important}table.grid.grid--forecast-view .col-resource{z-index:4;position:sticky;left:0}table.grid.grid--forecast-view .col-project,table.grid.grid--forecast-view .col-type,table.grid.grid--forecast-view .project-name,table.grid.grid--forecast-view .project-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}table.grid.grid--forecast-view .hours-input,table.grid.grid--forecast-view .hours-readonly{padding:3px 2px;font-size:12px;font-weight:600}table.grid.grid--forecast-view thead .col-month{letter-spacing:.05em;padding:10px 4px 8px;font-size:10px}table.grid.grid--forecast-view thead th{color:var(--text-muted);z-index:3;background:var(--surface-2);box-shadow:inset 0 -1px 0 var(--border-strong);font-weight:700;position:sticky;top:0}table.grid.grid--forecast-view thead th.col-resource{z-index:5}table.grid.grid--forecast-view thead th.col-type{z-index:3;position:sticky;top:0}table.grid.grid--forecast-view tr.bu-divider-grand>.bu-divider-cell{top:var(--rf-head-h,44px);z-index:3;position:sticky}table.grid.grid--forecast-view tr.bu-divider-grand>th.resource-col{z-index:6;left:0}table.grid.grid--forecast-view .row-resource>th,table.grid.grid--forecast-view .row-resource>td{padding:9px 12px}table.grid.grid--forecast-view .row-resource .month-cell{padding:8px 6px}table.grid.grid--forecast-view .month-total{justify-content:center;gap:2px;min-height:38px}table.grid.grid--forecast-view .month-total strong{letter-spacing:-.02em;font-size:14px;font-weight:700;line-height:1}table.grid.grid--forecast-view .month-total span{opacity:.78;font-size:10px;font-weight:600;line-height:1.15}table.grid.grid--forecast-view .badge.all{background:var(--text-secondary);color:#fff;letter-spacing:.04em;border-radius:5px;padding:3px 8px;font-size:10px;font-weight:700}table.grid.grid--forecast-view .col-project .project-meta{color:var(--text-muted);font-size:12px;font-weight:500}table.grid.grid--forecast-view .bu-divider>.bu-divider-cell{background:var(--surface);border-top:1px solid var(--border);border-bottom:2px solid var(--border-strong);height:auto;padding:10px 12px}table.grid.grid--forecast-view .bu-divider .bu-band-name{color:var(--text);letter-spacing:-.01em;font-size:13px;font-weight:600;display:block}table.grid.grid--forecast-view .bu-divider .bu-band-count{color:var(--text-muted);margin-top:1px;font-size:11px;font-weight:500;display:block}table.grid.grid--forecast-view .bu-divider .bu-band-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px;font-weight:500;display:block}table.grid.grid--forecast-view .bu-divider>.bu-gap-cell{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-secondary);cursor:help;padding-top:7px;padding-bottom:7px;line-height:1.1;position:relative}table.grid.grid--forecast-view .bu-divider>.bu-gap-cell .bu-gap-value{font-size:14px;font-weight:700;display:block}table.grid.grid--forecast-view .bu-divider>.bu-gap-cell .bu-gap-caption{color:var(--text-faint);letter-spacing:.02em;margin-top:2px;font-size:10px;font-weight:600;display:block}table.grid.grid--forecast-view .bu-divider>.bu-gap-cell.tone-good .bu-gap-value{color:var(--signal-good-text)}table.grid.grid--forecast-view .bu-divider>.bu-gap-cell.tone-mid .bu-gap-value{color:var(--signal-amber-text)}table.grid.grid--forecast-view .bu-divider>.bu-gap-cell.tone-over .bu-gap-value{color:var(--signal-bad-text)}.bu-fill-tooltip{z-index:40;text-align:left;white-space:nowrap;background:var(--surface);border:1px solid var(--border);min-width:236px;box-shadow:var(--shadow-md,0 8px 24px #1a1f3629);pointer-events:none;border-radius:8px;padding:10px 12px;font-weight:500;display:none;position:absolute;top:calc(100% + 6px);left:0}.bu-fill-cell--align-right .bu-fill-tooltip{left:auto;right:0}.bu-gap-cell:hover .bu-fill-tooltip{display:block}.bu-fill-tooltip-head{color:var(--text-muted);margin-bottom:7px;font-size:11.5px;font-weight:600}.bu-fill-tooltip-row{color:var(--text);justify-content:space-between;align-items:baseline;gap:24px;padding:2px 0;font-size:12px;display:flex}.bu-fill-tooltip-row span{color:var(--text-secondary);font-weight:500}.bu-fill-tooltip-row strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.bu-fill-tooltip-gap{border-top:1px solid var(--border);margin-top:5px;padding-top:7px}table.grid.grid--forecast-view .bu-divider.bu-divider-grand>.bu-divider-cell{border-top:2px solid var(--border-strong)}.resource-info strong{font-size:13px;font-weight:600;line-height:1.25}.resource-info .resource-meta{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10px;font-weight:400;line-height:1.35;display:block;overflow:hidden}.resource-info .resource-meta-sep{opacity:.5;margin:0 3px}table.grid.grid--forecast-view .colgroup-type{width:13%}table.grid.grid--forecast-view .col-type{vertical-align:middle;position:relative;overflow:visible}table.grid.grid--forecast-view .col-type .dropdown-root{width:100%;min-width:0;display:block}table.grid.grid--forecast-view .type-trigger--cell,table.grid.grid--forecast-view .type-badge--cell{text-align:left;box-sizing:border-box;justify-content:space-between;align-items:center;gap:4px;width:100%;min-width:0;max-width:100%;padding:4px 6px 4px 8px;font-size:11.5px;font-weight:600;display:inline-flex}table.grid.grid--forecast-view .type-badge--cell{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}table.grid.grid--forecast-view .type-trigger--cell .dropdown-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;display:block;overflow:hidden}table.grid.grid--forecast-view .type-trigger--cell .dropdown-chevron{opacity:.65;flex-shrink:0;width:11px;height:11px}table.grid.grid--forecast-view .project-name{font-size:12.5px;font-weight:600;line-height:1.25}table.grid.grid--forecast-view .project-meta{margin-top:2px;font-size:10px;line-height:1.3}.grid--project-view .type-trigger--cell,.grid--project-view .type-badge--cell{min-width:0;max-width:100%}table.grid.grid--forecast-view .month-cell+.month-cell{box-shadow:inset 1px 0 #ffffff59}table.grid.grid--forecast-view thead .col-month+.col-month{box-shadow:inset 1px 0 var(--border)}table.grid.grid--forecast-view .expand{border-radius:5px;width:20px;height:20px}table.grid.grid--forecast-view .resource-cell{gap:8px}table.grid.grid--forecast-view .row-project .month-cell{background:var(--surface)}table.grid.grid--forecast-view .row-add .col-add-bar{background:var(--surface-2);white-space:normal;border-top:1px dashed var(--border);padding:10px 12px;overflow:visible}table.grid.grid--forecast-view .forecast-add-bar{align-items:center;gap:8px;min-width:0;display:flex}table.grid.grid--forecast-view .forecast-add-bar .dropdown-root{min-width:0;display:block}table.grid.grid--forecast-view .forecast-add-bar-project{box-sizing:border-box;flex:200px;width:100%;min-width:0;max-width:none}table.grid.grid--forecast-view .forecast-add-bar-type{box-sizing:border-box;flex:0 168px;width:168px;min-width:128px;max-width:220px}table.grid.grid--forecast-view .forecast-add-bar-type--inactive{opacity:.5;pointer-events:none}table.grid.grid--forecast-view .forecast-add-bar .add-trigger{background:var(--surface);border:1px solid var(--border);min-height:34px;box-shadow:var(--shadow-sm);border-radius:8px;padding:6px 10px;font-size:12.5px}table.grid.grid--forecast-view .forecast-add-bar .add-trigger:hover{border-color:var(--border-strong);background:var(--surface)}table.grid.grid--forecast-view .forecast-add-bar .add-trigger .dropdown-label{text-overflow:ellipsis;white-space:nowrap;text-align:left;overflow:hidden}table.grid.grid--forecast-view .forecast-add-bar-submit{white-space:nowrap;border-radius:8px;flex-shrink:0;height:34px;padding:0 14px;font-size:12.5px;font-weight:600}table.grid.grid--forecast-view .row-add .col-project,table.grid.grid--forecast-view .row-add .col-type{white-space:normal;overflow:visible}table.grid.grid--forecast-view .row-add .add-control{width:100%;min-width:0}table.grid.grid--forecast-view .row-add .dropdown-root{width:100%;min-width:0;display:block}table.grid.grid--forecast-view .row-add .add-trigger{box-sizing:border-box;width:100%;min-width:0;max-width:100%}table.grid.grid--forecast-view .row-add .add-trigger .dropdown-label{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;display:block;overflow:hidden}table.grid.grid--forecast-view .row-add .btn-small--add{box-sizing:border-box;justify-content:center;width:100%}table.grid.grid--project-view .month-cell--capacity{padding:4px 2px}table.grid.grid--project-view .project-month-cell{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:38px;display:flex}table.grid.grid--project-view .project-month-open{color:inherit;opacity:1;white-space:nowrap;padding:0 2px;font-size:9px;font-weight:600;line-height:1.1}table.grid.grid--project-view .project-month-cell--total{min-height:36px}table.grid.grid--project-view .project-month-cell--total .row-total-value{font-size:13px;font-weight:700;line-height:1.1}table.grid.grid--project-view .project-month-cell--total .row-total-etc{color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;font-size:9px;font-weight:600;line-height:1.1}.eac-etc{box-sizing:border-box;flex-direction:column;align-items:center;row-gap:4px;width:100%;padding:0 4px;display:flex}.eac-etc-row{white-space:nowrap;text-align:center;max-width:100%;display:block}.eac-etc-value{text-align:center;font-variant-numeric:tabular-nums;font-size:12px;line-height:1.05}.eac-etc-row--eac .eac-etc-value{color:var(--text);font-weight:500}.eac-etc-row--etc .eac-etc-value{color:var(--text);font-weight:700}table.grid.grid--project-view thead .col-total,table.grid.grid--project-view .project-total-cell .month-total-value,table.grid.grid--project-view .project-total-heading{font-weight:700}.skeleton{vertical-align:middle;max-width:100%;display:inline-block;background:var(--border)!important;box-shadow:none!important;background-size:auto!important;animation:1.15s ease-in-out infinite skeleton-pulse!important}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.42}}.project-forecast-section--loading .grid-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:var(--shadow-sm)!important}.forecast-work-summary--skeleton{pointer-events:none}.forecast-work-summary--skeleton .forecast-work-summary-label{color:var(--text-faint)}.project-forecast-grid-toolbar{border-bottom:1px solid var(--border);padding:10px 14px}.project-forecast-section--loading .period-nav--ghost{opacity:.7;pointer-events:none}.project-forecast-section--loading .period-arrow--ghost{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;width:28px;height:28px;display:inline-block}.project-forecast-section--loading .period-nav--ghost .period-label{color:var(--text-muted);text-align:center;min-width:120px}.project-forecast-skeleton-row td{background:var(--surface)}.project-forecast-skeleton-row+.project-forecast-skeleton-row td{border-top:1px solid var(--border)}.project-forecast-skeleton-type{background:var(--surface-2);border-radius:6px;max-width:84px;height:26px;animation:1.15s ease-in-out infinite skeleton-pulse;display:block}.project-forecast-skeleton-cell{background:var(--surface-2);border-radius:5px;min-width:32px;height:28px;margin-left:auto;animation:1.15s ease-in-out infinite skeleton-pulse;display:block}.project-forecast-skeleton-cell--narrow{max-width:40px}.project-forecast-section--loading table.grid.grid--forecast-view thead th{color:var(--text-muted)}.project-forecast-section--loading table.grid.grid--forecast-view tbody tr{animation:none}.project-detail-overview-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;gap:3px;margin-bottom:0;padding:4px;display:inline-flex}.project-detail-overview-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .12s}.project-detail-overview-toggle-btn:hover{color:var(--text)}.project-detail-overview-toggle-btn.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.project-actuals-trend-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-actuals-trend-granularity{margin-bottom:0}.project-actuals-trend-count-trigger{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:112px;padding:7px 12px;font-size:12px;font-weight:600}.project-actuals-section{flex-direction:column;gap:12px;display:flex}.project-actuals-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.project-actuals-actions .project-actuals-filter-control{order:0}.project-actuals-export-button{min-height:34px;padding:0 16px}.project-actuals-grid-card{flex-direction:column;max-height:min(70vh,720px);display:flex;overflow:hidden;border:1px solid var(--border)!important;box-shadow:var(--shadow-sm)!important;border-radius:10px!important}.project-actuals-grid-card .project-forecast-grid-toolbar{flex-shrink:0}.project-actuals-grid-scroll{scrollbar-gutter:stable;flex:1;min-height:0;max-height:none;overflow:auto}.project-actuals-grid-scroll table.grid.grid--project-actuals{border-collapse:separate;border-spacing:0}.project-actuals-grid-scroll table.grid.grid--project-actuals thead th{background:var(--surface-2);z-index:3;position:sticky;top:0}.project-actuals-grid-scroll table.grid.grid--project-actuals thead .col-resource{z-index:5;left:0}.project-actuals-error{padding:12px 14px}.row-delete[hidden]{pointer-events:none;opacity:0!important;display:none!important}.project-actuals-section .period-arrow:disabled{opacity:.35;cursor:default}.project-actuals-toolbar{flex-flow:wrap;align-items:center;gap:16px;padding:10px 14px}.project-actuals-toolbar .toolbar-left{flex:none;order:2;min-width:0;margin-left:auto}.project-actuals-inline-controls{flex-shrink:0;order:1;align-items:center;gap:12px;margin-left:0;display:flex}.project-actuals-summary-inline{background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:8px 10px;padding:0;display:flex}.project-actuals-summary-inline-item{flex-wrap:wrap;align-items:baseline;gap:5px;display:inline-flex}.project-actuals-summary-inline-label{color:var(--text-muted);font-size:11px;font-weight:600}.project-actuals-summary-inline-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:650}.project-actuals-summary-inline-item--total .project-actuals-summary-inline-value{color:var(--accent-hover)}.project-actuals-summary-inline-op{color:var(--text-faint);font-size:12px;font-weight:600}.project-actuals-toolbar .toolbar-left{flex-wrap:wrap;align-items:center;display:flex}.project-actuals-filter-control{order:2;align-items:center;display:flex}.project-actuals-task-trigger{background:var(--surface);border:1px solid var(--border);width:120px;min-width:120px;max-width:120px;min-height:30px;box-shadow:none;border-radius:7px;padding:6px 10px}.project-actuals-task-trigger:hover{background:var(--surface);border-color:var(--border-strong)}.project-actuals-task-trigger .dropdown-label{text-align:left;min-width:0}.project-actuals-task-trigger-content,.project-actuals-task-trigger-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.project-actuals-view-controls{order:1;align-items:center;gap:10px;display:flex}.actuals-pending-toggle{cursor:pointer;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:5px 10px 5px 8px;transition:border-color .12s,background .12s;display:inline-flex}.actuals-pending-toggle:hover{border-color:var(--border-strong)}.actuals-pending-toggle-switch{background:var(--border-strong);border-radius:999px;width:30px;height:17px;padding:2px;transition:background .14s;display:inline-flex}.actuals-pending-toggle-thumb{width:13px;height:13px;box-shadow:var(--shadow-sm);background:#fff;border-radius:999px;transition:transform .14s}.actuals-pending-toggle-label{color:var(--text-muted);white-space:nowrap;font-size:12.5px;font-weight:600}.actuals-pending-toggle--on{background:var(--signal-amber-bg);border-color:var(--signal-amber-border,#e5c07b)}.actuals-pending-toggle--on .actuals-pending-toggle-switch{background:var(--signal-amber,#d9920a)}.actuals-pending-toggle--on .actuals-pending-toggle-thumb{transform:translate(13px)}.actuals-pending-toggle--on .actuals-pending-toggle-label{color:var(--signal-amber-text,#8a5a00)}table.grid.grid--project-actuals{--actuals-accent:#7f77dd;--actuals-total-ink:#534ab7;--actuals-resource-w:200px;--actuals-type-w:184px;--actuals-total-w:82px;table-layout:fixed;width:100%}table.grid.grid--project-actuals .col-total{width:var(--actuals-total-w)!important;min-width:var(--actuals-total-w)!important}table.grid.grid--project-actuals .col-resource,table.grid.grid--project-actuals .col-type{text-align:left}table.grid.grid--project-actuals .resource-cell-flat{justify-content:flex-start}table.grid.grid--project-actuals .col-resource{width:var(--actuals-resource-w)!important;min-width:var(--actuals-resource-w)!important}table.grid.grid--project-actuals .col-type{width:var(--actuals-type-w)!important;min-width:var(--actuals-type-w)!important}.project-actuals-grid-scroll table.grid.grid--project-actuals .col-type{z-index:4;left:var(--actuals-resource-w);position:sticky}.project-actuals-grid-scroll table.grid.grid--project-actuals .col-total{z-index:4;position:sticky;right:0}.project-actuals-grid-scroll table.grid.grid--project-actuals thead .col-type,.project-actuals-grid-scroll table.grid.grid--project-actuals thead .col-total{z-index:6}.project-actuals-grid-scroll table.grid.grid--project-actuals tbody>tr>td.col-total{box-shadow:-7px 0 7px -7px #0f172a2e}.project-actuals-grid-scroll table.grid.grid--project-actuals thead .col-resource{z-index:6}.project-actuals-grid-scroll table.grid.grid--project-actuals thead th{box-shadow:0 1px 0 var(--border)}table.grid.grid--project-actuals thead .col-total{text-align:right}table.grid.grid--project-actuals .month-cell+.month-cell,table.grid.grid--project-actuals thead .col-month+.col-month{box-shadow:none}table.grid.grid--project-actuals tbody>tr>th,table.grid.grid--project-actuals tbody>tr>td{border:0;border-top:.5px solid var(--border)}table.grid.grid--project-actuals tbody>tr.actuals-resource-row>th,table.grid.grid--project-actuals tbody>tr.actuals-resource-row>td{border-top:1.5px solid var(--border-strong)}table.grid.grid--project-actuals tbody>tr>th,table.grid.grid--project-actuals tbody>tr>td{transition:background .12s}table.grid.grid--project-actuals tbody>tr.actuals-resource-row:hover>th,table.grid.grid--project-actuals tbody>tr.actuals-resource-row:hover>td,table.grid.grid--project-actuals tbody>tr.actuals-task-row:hover>th,table.grid.grid--project-actuals tbody>tr.actuals-task-row:hover>td{background:var(--surface-hover)}table.grid.grid--project-actuals tbody>tr:first-child>th,table.grid.grid--project-actuals tbody>tr:first-child>td{border-top:0}table.grid.grid--project-actuals tbody>tr>th.col-resource,table.grid.grid--project-actuals tbody>tr>td.col-resource,table.grid.grid--project-actuals tbody>tr>td.col-type,table.grid.grid--project-actuals tbody>tr>td.col-total{background:var(--surface)}table.grid.grid--project-actuals tbody>tr.actuals-task-row>th,table.grid.grid--project-actuals tbody>tr.actuals-task-row>td{background:var(--surface-2)}table.grid.grid--project-actuals tbody>tr.actuals-task-row--last>th,table.grid.grid--project-actuals tbody>tr.actuals-task-row--last>td{border-bottom:1.5px solid var(--border-strong)}table.grid.grid--project-actuals tbody>tr>th.col-resource{box-shadow:inset 2px 0 var(--actuals-accent)}table.grid.grid--project-actuals .actuals-resource-row .resource-cell{align-items:center;gap:4px}table.grid.grid--project-actuals .actuals-resource-row .resource-info{min-width:0}table.grid.grid--project-actuals .actuals-resource-row .resource-info strong{font-size:12.5px;font-weight:650;line-height:1.3}table.grid.grid--project-actuals tbody>tr.actuals-resource-row--forecast-only>th,table.grid.grid--project-actuals tbody>tr.actuals-resource-row--forecast-only>td{background:var(--danger-soft)}table.grid.grid--project-actuals tbody>tr.actuals-resource-row--forecast-only:hover>th,table.grid.grid--project-actuals tbody>tr.actuals-resource-row--forecast-only:hover>td{background:#fdeae4}table.grid.grid--project-actuals tbody>tr.actuals-resource-row--forecast-only>th{box-shadow:inset 3px 0 0 0 var(--signal-bad-text)}table.grid.grid--project-actuals .actuals-expand{color:var(--text-faint);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-left:-2px;padding:0;transition:transform .15s;display:inline-flex}table.grid.grid--project-actuals .actuals-expand:hover{color:var(--actuals-total-ink)}table.grid.grid--project-actuals .actuals-expand svg{width:13px;height:13px}table.grid.grid--project-actuals .actuals-expand--open{transform:rotate(90deg)}table.grid.grid--project-actuals .actuals-expand-spacer{flex-shrink:0;width:16px;margin-left:-2px;display:inline-block}table.grid.grid--project-actuals .actuals-tag,table.grid.grid--project-actuals .actuals-task-count{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;border-radius:5px;max-width:100%;padding:3px 8px;font-size:10.5px;font-weight:600;line-height:1.25;display:inline-block;overflow:hidden}table.grid.grid--project-actuals .actuals-tag--billable{color:#3c3489;background:#eeedfe}table.grid.grid--project-actuals .actuals-tag--nonbillable{color:#854f0b;background:#faeeda}table.grid.grid--project-actuals .actuals-task-count{color:var(--text-muted);background:var(--surface-hover)}table.grid.grid--project-actuals .month-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding:7px 8px}table.grid.grid--project-actuals thead .col-month{text-align:right;padding:9px 8px 8px}table.grid.grid--project-actuals thead .col-month .col-month-label,table.grid.grid--project-actuals thead .col-month .col-month-year{text-align:right;display:block}table.grid.grid--project-actuals .actuals-hours-value{color:var(--text);z-index:1;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;position:relative}table.grid.grid--project-actuals .actuals-hours-empty{color:var(--text-faint);z-index:1;opacity:.45;font-weight:700;position:relative}table.grid.grid--project-actuals tbody>tr>td.actuals-cell{position:relative}table.grid.grid--project-actuals tbody>tr>td.actuals-cell:before{content:"";pointer-events:none;background:var(--actuals-heat,transparent);border-radius:4px;position:absolute;inset:2px}table.grid.grid--project-actuals tbody>tr>td.actuals-cell--heat-1{--actuals-heat:#6f47b414}table.grid.grid--project-actuals tbody>tr>td.actuals-cell--heat-2{--actuals-heat:#6f47b42b}table.grid.grid--project-actuals tbody>tr>td.actuals-cell--heat-3{--actuals-heat:#6f47b44d}.actuals-forecast-toggle--on{background:var(--accent-soft);border-color:var(--accent-border)}.actuals-forecast-toggle--on .actuals-pending-toggle-switch{background:var(--accent)}.actuals-forecast-toggle--on .actuals-pending-toggle-label{color:var(--accent-hover)}.actuals-forecast-toggle--on .actuals-pending-toggle-thumb{transform:translate(13px)}.util-breakdown-split{color:var(--text-faint);letter-spacing:.01em;white-space:nowrap;margin-top:2px;font-size:10px;font-weight:600;display:block}.util-breakdown-split em,.util-breakdown-split--forecast{color:var(--accent-hover);font-style:normal}.util-breakdown-stat-split{color:var(--text-faint);white-space:nowrap;margin-top:3px;font-size:10px;font-weight:600;line-height:1.3;display:block}.util-breakdown-bucket-chip{color:var(--accent-hover);background:var(--accent-soft);border:1px solid var(--accent-border);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:4px;margin-left:8px;margin-right:auto;padding:1px 6px;font-size:9px;font-weight:700}.util-breakdown-inflight-chip{color:var(--accent-hover);background:var(--accent-soft);border:1px solid var(--accent-border);letter-spacing:.02em;white-space:nowrap;border-radius:4px;margin-left:8px;padding:1px 5px;font-size:9.5px;font-weight:700}.actuals-pending-toggle:disabled{cursor:not-allowed;opacity:.5}.util-menu-toggle{justify-content:flex-start;width:100%}table.grid.grid--project-actuals .actuals-cell-stack{flex-direction:column;align-items:flex-end;gap:1px;line-height:1.05;display:inline-flex}table.grid.grid--project-actuals .actuals-cell-sub{font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:10px;display:inline-flex}table.grid.grid--project-actuals .actuals-forecast-value{color:var(--text-faint);font-weight:600}table.grid.grid--project-actuals .actuals-variance{font-weight:700}table.grid.grid--project-actuals .actuals-variance--over{color:var(--danger)}table.grid.grid--project-actuals .actuals-variance--under{color:var(--success)}table.grid.grid--project-actuals .actuals-variance--flat{color:var(--text-faint)}table.grid.grid--project-actuals.is-overlay{table-layout:auto;width:100%}table.grid.grid--project-actuals .col-act,table.grid.grid--project-actuals .col-fct,table.grid.grid--project-actuals .col-var{min-width:56px}table.grid.grid--project-actuals thead tr.actuals-head-top>th{box-sizing:border-box;height:34px}table.grid.grid--project-actuals thead tr.actuals-head-top>th.col-resource,table.grid.grid--project-actuals thead tr.actuals-head-top>th.col-type,table.grid.grid--project-actuals thead tr.actuals-head-top>th.col-total{height:auto}table.grid.grid--project-actuals thead .col-period-group{text-align:center;vertical-align:middle;border-left:1px solid var(--border);padding:8px 8px 6px}table.grid.grid--project-actuals thead .col-period-group .col-month-label{text-align:center;letter-spacing:.04em;font-size:11px;font-weight:700;display:block}.project-actuals-grid-scroll table.grid.grid--project-actuals thead tr.actuals-head-top>th.col-period-group{box-shadow:none}.project-actuals-grid-scroll table.grid.grid--project-actuals thead tr.actuals-head-sub>th{z-index:3;top:34px}table.grid.grid--project-actuals thead tr.actuals-head-sub>th{box-sizing:border-box;color:var(--text-faint);letter-spacing:.06em;vertical-align:middle;text-align:right;padding:3px 8px 7px;font-size:10px;font-weight:700}table.grid.grid--project-actuals thead tr.actuals-head-sub>th.col-act{border-left:1px solid var(--border)}table.grid.grid--project-actuals thead tr.actuals-head-sub>th.col-subhead--var{color:var(--actuals-total-ink)}table.grid.grid--project-actuals .col-act.actuals-cell,table.grid.grid--project-actuals td.col-act{border-left:1px solid var(--border)}table.grid.grid--project-actuals td.actuals-fct-cell .actuals-forecast-value{color:var(--text-faint);font-size:12px;font-weight:600}table.grid.grid--project-actuals td.actuals-var-cell{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}table.grid.grid--project-actuals td.actuals-var-cell.actuals-var--pos{color:#0c6b45}table.grid.grid--project-actuals td.actuals-var-cell.actuals-var--neg{color:var(--danger)}table.grid.grid--project-actuals td.actuals-var-cell.actuals-var--flat{color:var(--text-faint)}@keyframes actualsDialIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}table.grid.grid--project-actuals.is-overlay tbody td.col-act .actuals-hours-value,table.grid.grid--project-actuals.is-overlay tbody td.col-act .month-total-value{animation:.7s both actualsDialIn}table.grid.grid--project-actuals.is-overlay tbody td.actuals-fct-cell .actuals-forecast-value{animation:.7s .12s both actualsDialIn}table.grid.grid--project-actuals.is-overlay tbody td.actuals-var-cell{animation:.7s .24s both actualsDialIn}@media (prefers-reduced-motion:reduce){table.grid.grid--project-actuals.is-overlay tbody td.col-act .actuals-hours-value,table.grid.grid--project-actuals.is-overlay tbody td.col-act .month-total-value,table.grid.grid--project-actuals.is-overlay tbody td.actuals-fct-cell .actuals-forecast-value,table.grid.grid--project-actuals.is-overlay tbody td.actuals-var-cell{animation:none}}table.grid.grid--project-actuals .actuals-total{color:var(--actuals-total-ink);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}table.grid.grid--project-actuals .actuals-total--resource{font-weight:750}table.grid.grid--project-actuals .actuals-total--task{opacity:.78;font-style:italic;font-weight:500}table.grid.grid--project-actuals .project-total-cell--grand .month-total-value,table.grid.grid--project-actuals .project-total-cell .month-total-value{color:var(--actuals-total-ink);font-variant-numeric:tabular-nums}table.grid.grid--project-actuals .project-total-cell--grand .month-total-value{font-weight:750}table.grid.grid--project-actuals tbody>tr.row-project-total>td{background:var(--surface-2);border-top:1px solid var(--border-strong)}table.grid .row-resource-sep>th,table.grid .row-resource-sep>td{border-top:2px solid var(--border-strong)}.project-detail-overview-body{flex-direction:column;gap:16px;display:flex}:root{--chart-plot-height:360px;--chart-plot-height-feature:300px;--chart-plot-height-weekly:280px}@media (height>=820px){:root{--chart-plot-height:clamp(360px,34vh,400px);--chart-plot-height-feature:clamp(300px,38vh,420px);--chart-plot-height-weekly:clamp(280px,36vh,400px)}}@media (height>=980px){:root{--chart-plot-height:clamp(360px,38vh,440px);--chart-plot-height-feature:clamp(300px,42vh,480px);--chart-plot-height-weekly:clamp(280px,40vh,460px)}}@media (height>=1100px){:root{--chart-plot-height:clamp(380px,40vh,480px);--chart-plot-height-feature:clamp(320px,44vh,520px);--chart-plot-height-weekly:clamp(300px,42vh,500px)}}.dash-chart-plot .dash-chart,.dash-chart-wrap>.dash-chart{width:100%;height:var(--chart-plot-height)}.project-chart-wrap .project-chart{width:100%;height:var(--chart-plot-height-feature)}.project-weekly-hours-chart .project-chart{height:var(--chart-plot-height-weekly)}.capacity-chart-block .dash-chart{width:100%;height:var(--chart-plot-height)}.project-detail-summary-grid--thirds{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=900px){.project-detail-summary-grid--thirds{grid-template-columns:1fr}.project-detail-summary-grid--thirds .project-detail-summary-stat+.project-detail-summary-stat{border-left:0;border-top:1px solid var(--border)}}.project-revrec{flex-direction:column;gap:16px;display:flex}.project-revrec-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.project-revrec-eyebrow{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:700}.project-revrec-legend{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.project-revrec-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.project-revrec-legend-swatch{border-radius:3px;width:14px;height:14px;display:inline-block}.project-revrec-legend-swatch--closed{background:#e8edf2;border:1px solid #c8d0da}.project-revrec-legend-swatch--open{background:var(--accent-soft);border:1px solid var(--accent-border)}.project-revrec-summary,.project-revrec-table-wrap{margin-top:0}.project-revrec-table{min-width:960px}.project-revrec-row--closed td{background:var(--surface-2);color:var(--text-secondary)}.project-revrec-row--closed .project-revrec-period{color:var(--text-muted)}.project-revrec-row--closed:hover td{background:#eef1f5}.project-revrec-row--open td{background:var(--accent-soft);border-bottom-color:var(--accent-border)}.project-revrec-row--open:hover td{background:#ebe0f7}.project-revrec-period{font-weight:600}.project-revrec-status{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.project-revrec-status--closed{color:var(--text-muted);background:#e8edf2;border:1px solid #d5dbe3}.project-revrec-status--open{color:var(--accent-hover);background:var(--surface);border:1px solid var(--accent-border)}.project-closed-revrec{flex-direction:column;gap:16px;display:flex}.project-chart-block--revrec{--chart-revrec:#8853c6;--chart-revrec-deep:#7341b6;--chart-revrec-soft:var(--accent-soft);--chart-revrec-glow:#8853c633}.project-chart-series-chip.revrec.active{background:var(--chart-revrec-soft);border-color:var(--accent-border)}.project-chart-series-chip.cumulative.active{background:var(--success-soft);border-color:#9fd9c4}.project-chart-series-swatch.revrec{background:linear-gradient(180deg,#b493e8 0%,var(--chart-revrec-deep) 100%)}.project-chart-series-swatch.cumulative{width:14px;height:3px;box-shadow:none;background:0 0;border-radius:2px;margin-top:1px}.project-chart-series-swatch.cumulative:before{content:"";background:var(--chart-profit);border-radius:2px;width:100%;height:100%;display:block}.project-chart-bar.revrec{fill:url(#project-chart-revrec-fill)}.project-chart-hover-col--revrec{fill:#8853c614}.project-chart-cumulative-line{stroke:var(--chart-profit);filter:drop-shadow(0 1px 2px var(--chart-profit-glow));stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.project-chart-cumulative-dot{fill:#fff;stroke:var(--chart-profit);stroke-width:2.25px;pointer-events:none;transition:r .12s,stroke-width .12s}.project-chart-cumulative-dot.hover{stroke-width:2.5px}.project-chart-tooltip-row--revrec>span:first-child:before{content:"";background:linear-gradient(180deg,#b493e8 0%,var(--chart-revrec-deep) 100%);vertical-align:1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.project-detail-page--loading .project-detail-summary,.project-detail-summary[aria-busy=true]{box-shadow:none}.project-detail-last-sync{color:var(--text-faint);opacity:.75;margin:4px 0 0;font-size:11px;font-weight:500;line-height:1.3}.project-detail-summary-stat--has-tip{position:relative}.project-detail-summary-stat--has-tip .project-detail-summary-stat-label{border-bottom:1px dotted var(--text-faint);cursor:help}.project-detail-summary-stat-tip{visibility:hidden;opacity:0;pointer-events:none;z-index:30;color:#fff;background:#20243a;border:1px solid #ffffff1f;border-radius:9px;flex-direction:column;gap:5px;min-width:184px;max-width:260px;padding:9px 11px;transition:opacity .14s,transform .14s,visibility .14s;display:flex;position:absolute;top:calc(100% - 4px);left:14px;transform:translateY(-3px);box-shadow:0 16px 34px #10132659}.project-detail-summary-stat--has-tip:hover .project-detail-summary-stat-tip{visibility:visible;opacity:1;transform:translateY(0)}.project-detail-summary-stat-tip-row{justify-content:space-between;gap:16px;font-size:12px;line-height:1.3;display:flex}.project-detail-summary-stat-tip-row--strong{border-bottom:1px solid #ffffff24;margin-bottom:1px;padding-bottom:4px;font-weight:700}.project-detail-summary-stat-tip-label{color:#c7cbe0}.project-detail-summary-stat-tip-row--strong .project-detail-summary-stat-tip-label{color:#fff}.project-detail-summary-stat-tip-value{color:#fff;font-variant-numeric:tabular-nums}.project-detail-summary-stat-tip-line{color:#c7cbe0;font-size:12px;line-height:1.4}.project-detail-summary-stat:nth-last-child(-n+2) .project-detail-summary-stat-tip{left:auto;right:14px}.toast-stack{bottom:calc(18px + var(--sync-activity-offset,0px));z-index:1200;pointer-events:none;flex-direction:column;gap:10px;max-width:360px;display:flex;position:fixed;right:18px}.toast-card{pointer-events:auto;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;align-items:flex-start;gap:10px;padding:12px 12px 12px 13px;animation:.18s toast-in;display:flex;box-shadow:0 14px 34px #1013261f}.toast-card--success{border-left-color:var(--success)}.toast-card--error{border-left-color:var(--danger)}.toast-card--info{border-left-color:var(--accent)}.toast-card-icon{color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;display:flex}.toast-card--success .toast-card-icon{background:var(--success)}.toast-card--error .toast-card-icon{background:var(--danger)}.toast-card--info .toast-card-icon{background:var(--accent)}.toast-card-icon svg{width:12px;height:12px}.toast-card-body{flex:auto;min-width:0}.toast-card-title{color:var(--text);margin:0;font-size:13px;font-weight:650;line-height:1.3}.toast-card-message{color:var(--text-muted);margin:2px 0 0;font-size:12px;line-height:1.35}.toast-card-close{width:22px;height:22px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.toast-card-close:hover{background:var(--surface-hover);color:var(--text-secondary)}.toast-card-close svg{width:13px;height:13px}@keyframes toast-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.sync-activity-stack{z-index:1210;pointer-events:none;flex-direction:column;gap:10px;width:360px;display:flex;position:fixed;bottom:18px;right:18px}.sync-activity-card{pointer-events:auto;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:11px 12px;animation:.18s toast-in;box-shadow:0 14px 34px #1013261f}.sync-activity-head{align-items:center;gap:8px;display:flex}.sync-activity-title{color:var(--text);flex:1;min-width:0;font-size:12.5px;font-weight:600}.sync-activity-dismiss{cursor:pointer;color:var(--text-faint);background:0 0;border:0;padding:0;display:inline-flex}.sync-activity-dismiss svg{width:13px;height:13px}.sync-activity-dismiss:hover{color:var(--text)}.sync-activity-detail{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin:5px 0 7px;font-size:11.5px;overflow:hidden}.sync-activity-bar{background:var(--surface-2);border-radius:999px;height:4px;overflow:hidden}.sync-activity-bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.sync-activity-foot{color:var(--text-faint);justify-content:space-between;align-items:center;gap:8px;margin-top:7px;font-size:11px;display:flex}.sync-activity-eta{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.sync-activity-link{color:var(--accent);font-weight:600;text-decoration:none}.sync-activity-link:hover{text-decoration:underline}.sync-activity-spinner{border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.7s linear infinite sync-activity-spin}@keyframes sync-activity-spin{to{transform:rotate(360deg)}}.sync-activity-done{background:var(--success,#16a34a);border-radius:50%;flex-shrink:0;width:12px;height:12px;position:relative}.sync-activity-done:after{content:"";border:1.5px solid #fff;border-width:0 1.5px 1.5px 0;width:3px;height:6px;position:absolute;top:1.5px;left:3.5px;transform:rotate(45deg)}@media (prefers-reduced-motion:reduce){.sync-activity-spinner{animation-duration:2.4s}}.numeric-edit-field{align-items:center;gap:8px;display:flex}.numeric-edit-field .baseline-edit-input{flex:auto}.numeric-edit-affix{color:var(--text-muted);font-size:13px;font-weight:600}.project-detail-owner-inline{vertical-align:baseline;align-items:center;gap:6px;display:inline-flex}.project-detail-owner-inline .dropdown-root{align-items:center;display:inline-flex}.project-detail-subtitle-sep{color:var(--text-faint)}.project-detail-owner-trigger{color:inherit;font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;margin:0;padding:1px 6px;transition:background .12s,color .12s;display:inline-flex}.project-detail-owner-trigger:hover{background:var(--surface-hover);color:var(--text)}.project-detail-owner-trigger .dropdown-chevron{opacity:.45;flex-shrink:0;width:12px;height:12px}.project-detail-owner-trigger:hover .dropdown-chevron{opacity:.7}.project-detail-owner-name{white-space:nowrap}.project-detail-last-sync{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.project-detail-timestamp-row{font-variant-numeric:tabular-nums;grid-template-columns:94px auto;align-items:baseline;gap:8px;display:grid}.project-detail-timestamp-label{color:var(--text-muted);font-weight:600}.resources-search{min-width:200px;height:32px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:7px;outline:none;padding:0 10px;font-size:12.5px;transition:border-color .12s,box-shadow .12s}.resources-search::placeholder{color:var(--text-faint)}.resources-search:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft)}.fte-trigger .fte-trigger-value{font-variant-numeric:tabular-nums;font-weight:500}.fte-cell{align-items:center;gap:2px;display:inline-flex}.cell-input-fte{text-align:right;font-variant-numeric:tabular-nums;width:44px;font-weight:500}.fte-suffix{color:var(--text-faint);font-size:12px;font-weight:500}.timesheet-view-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.timesheet-view-header-right{align-items:flex-start;gap:16px;margin-left:auto;display:flex}.timesheet-view-header-right .timesheet-view-refresh{flex:none}.timesheet-view-totals{flex-wrap:wrap;gap:14px;display:flex}.timesheet-view-total{flex-direction:column;align-items:flex-end;min-width:64px;display:flex}.timesheet-view-total-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600}.timesheet-view-total-scope{color:var(--text-faint);font-weight:500}.timesheet-view-total strong{font-variant-numeric:tabular-nums;color:var(--text);font-size:16px}.timesheet-view-total--approved strong{color:#0f8a5b}.timesheet-view-total--pending strong{color:#c1881a}.timesheet-view-total--open strong{color:#2b62c2}.timesheet-view-total--rejected strong{color:#d0405f}.timesheet-view-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0;display:flex}.timesheet-view-granularity{gap:4px;display:inline-flex}.timesheet-view-range{align-items:center;gap:6px;display:inline-flex}.timesheet-view-range-label{text-align:center;min-width:150px;color:var(--text);font-size:13px;font-weight:600}.timesheet-view-table-wrap{border:1px solid var(--border);border-radius:10px;overflow:auto}table.grid.timesheet-view-grid{table-layout:fixed;border-collapse:collapse;width:100%;min-width:0;max-width:100%;font-size:12.5px}.timesheet-view-grid th,.timesheet-view-grid td{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:7px 6px}.timesheet-view-grid thead th{background:var(--surface-2);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;z-index:1;font-size:11px;position:sticky;top:0}.timesheet-view-grid .col-resource{text-align:left;background:var(--surface);z-index:1;white-space:normal;width:190px;position:sticky;left:0}.timesheet-view-grid thead .col-resource{z-index:2}.timesheet-view-grid .col-month{text-overflow:ellipsis;width:52px;padding-left:4px;padding-right:4px;overflow:hidden}.timesheet-view-grid .col-approver{text-align:left;text-overflow:ellipsis;white-space:nowrap;width:104px;color:var(--text-secondary);overflow:hidden}.timesheet-view-col-top{font-weight:600;display:block}.timesheet-view-col-bottom{color:var(--text-secondary);font-weight:700;display:block}.timesheet-view-grid .row-resource th,.timesheet-view-grid .row-resource td{background:var(--surface-2);font-weight:600}.timesheet-view-task{color:var(--text-secondary)}.timesheet-view-project-total,.timesheet-view-task-total{font-variant-numeric:tabular-nums;font-weight:600}.timesheet-view-no-approver{color:var(--text-faint)}.timesheet-cell{font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:7px;min-width:36px;padding:3px 7px;font-weight:600;display:inline-block}.timesheet-cell-split{flex-wrap:wrap;justify-content:center;gap:3px;display:inline-flex}.timesheet-cell-split .timesheet-cell{min-width:28px;padding:2px 6px}.timesheet-cell-hit{cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;border-radius:8px;padding:2px;transition:background .12s}.timesheet-cell-hit:hover{background:var(--surface-hover)}.timesheet-cell-hit--total{font-variant-numeric:tabular-nums;padding:3px 8px;font-weight:600}.timesheet-who-modal{width:min(520px,100vw - 32px);max-width:min(520px,100vw - 32px);max-height:calc(100vh - 48px)}.timesheet-who-modal .forecast-reason-header h2{color:var(--text);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.timesheet-who-sub{color:var(--text-muted);margin:2px 0 0;font-size:12.5px}.timesheet-who-modal .forecast-reason-close{border:1px solid var(--border);background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:9px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s}.timesheet-who-modal .forecast-reason-close svg{width:18px;height:18px}.timesheet-who-modal .forecast-reason-close:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.timesheet-who-body{min-height:0;overflow-y:auto}.timesheet-who-table{border-collapse:collapse;width:100%;font-size:13px}.timesheet-who-table th{color:var(--text-muted);text-align:left;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px;font-weight:600}.timesheet-who-table td{border-bottom:1px solid var(--border-subtle,var(--border));padding:7px 8px}.timesheet-who-table tfoot td{border-bottom:0;border-top:1px solid var(--border);font-weight:700}.timesheet-who-num{text-align:right;font-variant-numeric:tabular-nums}.timesheet-cell--empty{color:var(--text-faint);background:0 0;border-color:#0000;font-weight:400}.timesheet-cell--approved{color:#0c6f49;background:#e6f6ee;border-color:#bfe6d2}.timesheet-cell--pending{color:#8a6410;background:#fdf2d8;border-color:#f0dca6}.timesheet-cell--open{color:#245fb0;background:#e6eefc;border-color:#c3d7f2}.timesheet-cell--rejected{color:#bf2f4d;background:#fce7ec;border-color:#f3c6d0}.projects-export-modal{width:min(470px,100vw - 32px);max-width:min(470px,100vw - 32px)}.projects-export-modal .forecast-reason-header h2{color:var(--text);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.project-stage-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-start;gap:18px;margin-top:12px;padding:12px 0 2px;transition:padding-top .3s,margin-top .3s,row-gap .3s;display:flex}.project-stage-row.is-open{row-gap:0;margin-top:6px;padding-top:2px}.project-stage-head{flex:420px;grid-template-rows:1fr;min-width:0;transition:grid-template-rows .3s,opacity .2s,transform .26s;display:grid}.project-stage-head.is-folded{opacity:0;grid-template-rows:0fr;transform:translateY(-6px)}.project-stage-head-inner{align-items:flex-start;gap:18px;min-height:0;display:flex;overflow:hidden}.project-stage-label{color:var(--text-faint);letter-spacing:.07em;text-transform:uppercase;flex:none;padding-top:3px;font-size:10px;font-weight:700}.project-stage-track{flex:420px;align-items:flex-start;gap:4px;min-width:320px;display:flex}.project-stage-step{flex-direction:column;flex:1 1 0;align-items:flex-start;gap:4px;min-width:0;display:flex}.project-stage-bar{background:var(--border);border-radius:2px;width:100%;height:3px;transition:background .12s;display:block}.project-stage-step.is-reached .project-stage-bar{background:var(--accent)}.project-stage-step.is-current .project-stage-bar{background:var(--accent);box-shadow:0 0 0 1px var(--accent)}.project-stage-name{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:500;line-height:1.45;overflow:hidden}.project-stage-step.is-reached .project-stage-name{color:var(--text-secondary)}.project-stage-step.is-current .project-stage-name{color:var(--accent-hover);font-weight:700}.project-stage-dates{flex:none;align-items:flex-start;gap:20px;margin-left:auto;padding-top:1px;display:flex}.project-stage-date{flex-direction:column;gap:2px;display:flex}.project-stage-date-label{color:var(--text-faint);letter-spacing:.07em;text-transform:uppercase;font-size:9.5px;font-weight:700}.project-stage-date strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.project-stage-warning{color:var(--warning);background:var(--warning-soft);cursor:help;border:1px solid #f6e3b8;border-radius:7px;align-self:center;padding:4px 9px;font-size:11px;font-weight:600}.project-stage-expand{width:26px;height:26px;color:var(--text-faint);background:0 0;border:1px solid #0000;border-radius:7px;align-self:center;place-items:center;margin-left:auto;padding:0;transition:background .12s,color .12s,border-color .12s;display:grid}.project-stage-expand svg{width:16px;height:16px;transition:transform .16s}.project-stage-expand:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-hover)}.project-stage-expand[aria-expanded=true]{color:var(--accent-hover)}.project-stage-expand[aria-expanded=true] svg{transform:rotate(180deg)}.project-stage-log{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:100%;gap:18px;margin-top:0;padding:22px 26px 20px;animation:.2s stageLogIn;display:flex}@keyframes stageLogIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.stage-gantt{--gantt-label:76px;--gantt-dates:164px;--gantt-gap:14px;flex-direction:column;display:flex}.stage-gantt-axis,.stage-gantt-row,.stage-gantt-foot{align-items:center;gap:var(--gantt-gap);display:flex}.stage-gantt-cell-label{flex:0 0 var(--gantt-label);width:var(--gantt-label);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.stage-gantt-cell-track{flex:auto;align-self:stretch;min-width:0;position:relative}.stage-gantt-cell-dates{flex:0 0 var(--gantt-dates);width:var(--gantt-dates);white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-faint);gap:8px;font-size:12.5px;display:flex}.stage-gantt-date-slot{flex:1 1 0;justify-content:flex-end;align-items:center;min-width:0;display:flex}.stage-gantt-axis .stage-gantt-date-slot{color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:700}.stage-gantt-head{flex-wrap:wrap;align-items:baseline;gap:10px;padding-bottom:14px;display:flex}.stage-gantt-title{color:var(--text);font-size:13px;font-weight:650}.stage-gantt-span{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12.5px}.stage-gantt-golive{color:var(--accent-hover);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12.5px;font-weight:600}.stage-gantt-complete{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent-hover);letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:600}.stage-gantt-axis{border-bottom:1px solid var(--border);height:22px}.stage-gantt-axis .stage-gantt-cell-track{align-self:auto;height:100%}.stage-gantt-month{color:var(--text-faint);letter-spacing:.02em;padding-left:5px;font-size:10.5px;font-weight:600;position:absolute;top:2px}.stage-gantt-axis-today{background:var(--surface);color:var(--accent);letter-spacing:.02em;padding:0 4px;font-size:10.5px;font-weight:700;position:absolute;top:2px;transform:translate(-50%)}.stage-gantt-body{padding:4px 0;position:relative}.stage-gantt-rules{top:0;bottom:0;left:calc(var(--gantt-label) + var(--gantt-gap));right:calc(var(--gantt-dates) + var(--gantt-gap));pointer-events:none;position:absolute}.stage-gantt-rule{background:var(--border);opacity:.55;width:1px;position:absolute;top:0;bottom:0}.stage-gantt-today{border-left:1px dashed var(--accent);opacity:.75;width:0;position:absolute;top:0;bottom:-6px}.stage-gantt-row{border-radius:8px;height:36px;margin:0 -8px;padding:0 8px}.stage-gantt-cell-label{color:var(--text-faint);font-size:13px;font-weight:600}.stage-gantt-row.is-reached .stage-gantt-cell-label{color:var(--text)}.stage-gantt-row.is-reached .stage-gantt-cell-dates{color:var(--text-secondary)}.stage-gantt-row.is-current .stage-gantt-cell-label{color:var(--accent-hover);font-weight:700}.stage-gantt-row.is-current .stage-gantt-cell-dates{color:var(--accent-hover);font-weight:600}.stage-gantt-row.is-current{background:var(--accent-soft)}.stage-gantt-row:not(.is-current):hover{background:var(--surface-2)}.stage-gantt-bar{border-radius:5px;min-width:4px;height:10px;transition:background .12s;position:absolute;top:50%;transform:translateY(-50%)}.stage-gantt-bar.is-done{background:var(--border-strong)}.stage-gantt-bar.is-active{background:var(--accent)}.stage-gantt-bar.is-planned{background:var(--accent);opacity:.3}.stage-gantt-marker,.stage-gantt-diamond{background:var(--accent);border:1.5px solid var(--accent-hover);box-sizing:border-box;border-radius:2px;width:11px;height:11px}.stage-gantt-marker{box-shadow:0 0 0 2.5px var(--surface);margin-left:-6px;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.stage-gantt-row.is-current .stage-gantt-marker{box-shadow:0 0 0 2.5px var(--accent-soft)}.stage-gantt-marker.is-planned,.stage-gantt-pin.is-planned .stage-gantt-diamond{background:var(--surface)}.stage-gantt-diamond{flex:none;transform:rotate(45deg)}.stage-gantt-foot{border-top:1px solid var(--border);height:26px;margin-top:4px}.stage-gantt-foot .stage-gantt-cell-track{align-self:stretch}.stage-gantt-pin{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:7px;font-size:11.5px;font-weight:600;display:inline-flex;position:absolute;top:8px}.stage-gantt-pin.is-planned{color:var(--text-faint)}.stage-gantt-hint{color:var(--text-muted);max-width:68ch;margin:0 0 14px;font-size:12.5px;line-height:1.5}.stage-timeline-countdown{color:var(--text-faint);margin-left:9px;font-size:11px;font-weight:500}.stage-timeline-planned{color:var(--text-secondary);font-weight:550}.stage-timeline-date{color:inherit;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;border-bottom:1px dashed #0000;padding:0;transition:color .12s,border-color .12s}.stage-timeline-date:hover,.stage-timeline-date.is-open{color:var(--accent-hover);border-bottom-color:var(--accent-border)}.stage-timeline-date.is-empty{border:1px dashed var(--border-strong);color:var(--text-muted);letter-spacing:.01em;border-radius:6px;padding:1px 9px;font-size:11px;font-weight:600}.stage-timeline-date.is-empty:hover,.stage-timeline-date.is-empty.is-open{border-style:solid;border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent-hover)}.stage-timeline-late,.stage-timeline-date.is-late{color:var(--danger)}.stage-timeline-date.is-late{border-bottom-color:#c5320b4d}.capacity-warning-modal{border-top:3px solid #f59e0b;max-width:520px}.capacity-warning-modal #capacity-warning-title{color:#92400e}.capacity-warning-footer{justify-content:space-between;gap:10px}.capacity-warning-sub{color:var(--text-muted);margin:4px 0 0;font-size:12.5px;line-height:1.45}.capacity-warning-body{flex-direction:column;gap:18px;display:flex}.capacity-warning-group{flex-direction:column;gap:7px;display:flex}.capacity-warning-name{color:var(--text);margin:0;font-size:13.5px;font-weight:600}.capacity-warning-table{border-collapse:collapse;width:100%}.capacity-warning-table th,.capacity-warning-table td{text-align:right;font-variant-numeric:tabular-nums;padding:6px 10px;font-size:12.5px}.capacity-warning-table thead th{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;border-bottom:1px solid var(--border);font-size:10.5px;font-weight:700}.capacity-warning-table th:first-child,.capacity-warning-table tbody th{text-align:left;color:var(--text);font-weight:500}.capacity-warning-table tbody tr+tr th,.capacity-warning-table tbody tr+tr td{border-top:1px solid var(--border)}.capacity-warning-over{color:var(--signal-bad-text);font-weight:700}.projects-export-modal .forecast-reason-close,.capacity-warning-modal .forecast-reason-close{border:1px solid var(--border);background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:9px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s}.projects-export-modal .forecast-reason-close,.capacity-warning-modal .forecast-reason-close svg{width:18px;height:18px}.projects-export-modal .forecast-reason-close,.capacity-warning-modal .forecast-reason-close:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.projects-export-sub{color:var(--text-muted);margin:2px 0 0;font-size:12.5px}.projects-export-body{flex-direction:column;gap:8px;display:flex}.projects-export-option{text-align:left;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:10px;flex-direction:column;gap:3px;width:100%;padding:11px 13px;transition:background .12s,border-color .12s;display:flex}.projects-export-option:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.projects-export-option:disabled{opacity:.55;cursor:default}.projects-export-option-label{color:var(--text);font-size:13.5px;font-weight:600}.projects-export-option-hint{color:var(--text-muted);font-size:12px;line-height:1.45}.projects-export-status{color:var(--text-muted);margin:0;font-size:12.5px}.projects-export-status--error{color:#bf2f4d}.forecast-updated-stamp{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:9.5px;font-weight:400;line-height:1.3;display:block;overflow:hidden}.project-context-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;max-width:280px;margin-top:5px;display:grid}.project-context-item{justify-content:space-between;align-items:baseline;gap:6px;font-size:10.5px;line-height:1.3;display:flex}.project-context-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-weight:600}.project-context-value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.timesheet-view-panel,.resource-forecast-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:18px 20px}.resource-forecast-panel .toolbar{flex-wrap:nowrap;gap:8px}.resource-forecast-panel .toolbar-left{flex-wrap:nowrap;flex:auto;order:0;align-items:center;gap:8px;min-width:0;margin-left:0}.resource-forecast-panel .toolbar-right{flex-wrap:nowrap;flex:none;order:1;margin-left:auto}.resource-forecast-panel .toolbar-left>.dropdown-root{flex:none;max-width:168px}.resource-forecast-panel .toolbar-left .filter-trigger{padding:4px 6px 4px 9px}.resource-forecast-panel .toolbar-left .filter-trigger-label{font-size:11px}.resource-forecast-panel .toolbar-left .filter-trigger-value{font-size:12px}.resource-forecast-panel .toolbar-left .filter-trigger-content{gap:5px}.resource-forecast-panel .toolbar .search{padding:4px 9px;font-size:12px}.resource-forecast-panel .toolbar .granularity-toggle{padding:2px}.resource-forecast-panel .toolbar .granularity-toggle-btn{padding:5px 11px;font-size:11.5px}.resource-forecast-panel .toolbar .period-label{min-width:112px;padding:0 10px;font-size:11.5px}.resource-forecast-panel .toolbar .period-arrow{width:25px;height:25px}.resource-forecast-panel .toolbar-left>.dropdown-root .filter-trigger{box-sizing:border-box;width:100%}.resource-forecast-panel .toolbar-left>.dropdown-root .filter-trigger-content{min-width:0;max-width:100%}.resource-forecast-panel .toolbar-left>.dropdown-root .filter-trigger-value{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.resource-forecast-panel .toolbar-left>.filter-reset{flex:none}.resource-forecast-panel .toolbar-left>.search{flex:0 200px;min-width:0}.resource-forecast-panel .forecast-project-banner--stacked{flex-direction:column;align-items:stretch;gap:12px}.resource-forecast-panel .forecast-project-banner-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.resource-forecast-panel .forecast-project-banner-head .forecast-project-banner-body{flex:auto;min-width:0}.resource-forecast-panel .forecast-project-banner-actions{flex:none;align-items:center;gap:10px;display:flex}.resource-forecast-panel .forecast-project-banner--stacked .forecast-work-summary--banner{flex:0 auto;align-self:flex-start;max-width:none;margin-left:0}.resource-forecast-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.resource-forecast-header h2{margin:0}.resource-forecast-export{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.resource-forecast-export .btn-icon{width:14px;height:14px}.resource-forecast-sync{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.resource-forecast-sync .btn-icon{width:14px;height:14px}.resource-forecast-sync-error{color:var(--danger,#c5320b)}.resource-forecast-header-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.resource-forecast-save-actions{align-items:center;gap:8px;display:flex}.resource-forecast-save-actions .project-forecast-save-message{color:var(--signal-good,#15803d);white-space:nowrap;font-size:12.5px;font-weight:600}.timesheet-view-project-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.timesheet-view-project-badge{letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:5px;flex-shrink:0;padding:1px 6px;font-size:10.5px;font-weight:700;line-height:1.5}.timesheet-approver{align-items:center;gap:8px;min-width:0;max-width:100%;display:inline-flex}.timesheet-view-grid .col-approver .timesheet-approver{display:flex}.timesheet-view-grid .col-approver .timesheet-approver-name{flex:1;min-width:0}.timesheet-approver-avatar{width:22px;height:22px;color:var(--text-secondary);border:1px solid var(--border);letter-spacing:.02em;background:#eef1f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9.5px;font-weight:700;display:inline-flex}.timesheet-approver-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.timesheet-view-legend{align-items:center;gap:14px;margin-left:auto;display:flex}.timesheet-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.timesheet-legend-item:before{content:"";border-radius:50%;width:8px;height:8px;display:inline-block}.timesheet-legend-item--approved:before{background:#12a670}.timesheet-legend-item--pending:before{background:#dca01f}.timesheet-legend-item--open:before{background:#3574d4}.timesheet-legend-item--rejected:before{background:#d94a68}.reporting-workspace{flex-direction:column;gap:14px;display:flex}.reporting-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 18px 8px}.reporting-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.reporting-title{color:var(--text);margin:0;font-size:17px;font-weight:600}.reporting-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:12.5px}.reporting-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.reporting-legend{flex-wrap:wrap;align-items:center;gap:14px;margin:12px 0 4px;display:flex}.reporting-export-error{color:var(--danger);background:var(--danger-soft);border:1px solid #f3d3c9;border-radius:8px;margin:10px 0 0;padding:8px 12px;font-size:12.5px}.reporting-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.reporting-legend-swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.reporting-scroll{margin-top:10px}.reporting-content{opacity:1;transition:opacity .24s,filter .24s}.reporting-content--busy{opacity:.45;filter:saturate(.85);pointer-events:none}@media (prefers-reduced-motion:reduce){.reporting-content{transition:none}}.reporting-tabbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.reporting-tabbar .project-detail-tab-nav{border-bottom:0}.reporting-view-toggle{flex-shrink:0;margin-bottom:0}.reporting-export-btn .btn-icon{width:14px;height:14px}.util-trend{flex-direction:column;gap:12px;margin-top:12px;display:flex}.util-trend-empty{text-align:center;color:var(--text-muted);padding:48px 20px;font-size:13px}.util-trend-top{align-items:stretch;gap:16px;display:flex}.util-trend-chart-col{flex:auto;min-width:0}.util-trend-chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.util-trend-chart-title{color:var(--text);font-size:14px;font-weight:600}.util-trend-chart-range{color:var(--text-muted);margin-left:8px;font-size:12px;font-weight:500}.util-trend-chart-range:before{content:"· ";color:var(--text-faint)}.util-trend-svg{width:100%;height:auto;margin-top:2px;display:block;overflow:visible}.util-trend-gridline{stroke:#e9ebf0;stroke-width:1px}.util-trend-series{transition:opacity .16s}.util-trend-crosshair{stroke:#c9cdd8;stroke-width:1px;stroke-dasharray:3 3}.util-trend-tip-box{fill:#fff;stroke:#e3e8ee;stroke-width:1px;filter:drop-shadow(0 6px 16px #1a1f3622)}.util-trend-tip-head{fill:var(--text);font-size:10.5px;font-weight:700}.util-trend-tip-name{fill:var(--text-secondary);font-size:10px;font-weight:500}.util-trend-tip-value{font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.util-trend-ytick{fill:var(--text-faint);font-variant-numeric:tabular-nums;font-size:10px}.util-trend-xtick{fill:var(--text-muted);letter-spacing:.04em;font-size:10px;font-weight:600}.util-trend-end-label{font-size:10.5px;font-weight:700;transition:opacity .14s}.util-trend-point-label{font-variant-numeric:tabular-nums;paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round;font-size:9.5px;font-weight:700}.util-trend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.util-trend-rail{flex-direction:column;flex:0 0 280px;gap:10px;width:280px;display:flex}.util-trend-card{text-align:left;cursor:pointer;background:var(--surface);border:1px solid #e6e8ee;border-radius:12px;flex:1 0 auto;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 14px;transition:opacity .14s,border-color .14s,background .14s;display:flex}.util-trend-card:hover{border-color:#c9cdd8}.util-trend-card:focus-visible{box-shadow:0 0 0 3px var(--border-strong);border-color:#c9cdd8;outline:none}.util-trend-card-main{flex-direction:column;gap:3px;min-width:0;display:flex}.util-trend-card-name{color:var(--text);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:inline-flex}.util-trend-card-sub{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.util-trend-delta{font-weight:700}.util-trend-delta.is-up{color:#1f7f72}.util-trend-delta.is-down{color:#c4533f}.util-trend-delta.is-flat{color:var(--text-muted)}.util-trend-delta-vs{color:var(--text-muted);font-weight:500}.util-trend-card-ytd{flex-direction:column;flex-shrink:0;align-items:center;gap:1px;display:flex}.util-trend-chip{font-variant-numeric:tabular-nums;border-radius:7px;padding:2px 8px;font-size:13px;font-weight:700}.util-trend-chip.tone-good{background:var(--signal-good-bg);color:var(--signal-good-text)}.util-trend-chip.tone-mid{background:var(--signal-amber-bg);color:var(--signal-amber-text)}.util-trend-chip.tone-low{background:var(--signal-bad-bg);color:var(--signal-bad-text)}.util-trend-chip.tone-over{background:var(--signal-bad-bg-strong);color:var(--signal-bad-text-strong)}.util-trend-chip.tone-empty{background:var(--surface-2);color:var(--text-faint)}.util-trend-chip-cap{color:var(--text-faint);letter-spacing:.04em;font-size:9.5px;font-weight:600}@media (width<=1180px){.util-trend-top{flex-direction:column}.util-trend-rail{flex-basis:auto;width:100%}}.reporting-util-value{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.reporting-util-cell{text-align:right}.reporting-util-cell.tone-good{background:var(--signal-good-bg);color:var(--signal-good-text)}.reporting-util-cell.tone-mid{background:var(--signal-amber-bg);color:var(--signal-amber-text)}.reporting-util-cell.tone-low{background:var(--signal-bad-bg);color:var(--signal-bad-text)}.reporting-util-cell.tone-over{background:var(--signal-bad-bg-strong);color:var(--signal-bad-text-strong)}.reporting-util-cell.tone-empty{color:var(--text-faint)}.reporting-util-value--na{color:var(--text-faint);font-weight:500}.reporting-total-row .resource-col{background:var(--surface-2)}.reporting-total-name{color:var(--text);text-transform:none;letter-spacing:-.01em;font-size:13px;font-weight:700;display:block}.reporting-total-count{color:var(--text-muted);margin-top:1px;font-size:11px;font-weight:500;display:block}.reporting-total-row .reporting-util-cell{text-align:center;padding-top:12px;padding-bottom:12px;font-weight:800}.reporting-total-row .reporting-util-value{letter-spacing:-.02em;font-size:19px;font-weight:800}.reporting-total-row .reporting-util-cell.tone-good{color:var(--signal-good-text);background:0 0}.reporting-total-row .reporting-util-cell.tone-mid{color:var(--signal-amber-text);background:0 0}.reporting-total-row .reporting-util-cell.tone-low{color:var(--signal-bad-text);background:0 0}.reporting-total-row .reporting-util-cell.tone-over{color:var(--signal-bad-text-strong);background:0 0}.reporting-total-row .reporting-util-cell.tone-empty{color:var(--text-faint);background:0 0}.reporting-bu-chip{background:var(--surface-hover);color:var(--text-muted);letter-spacing:.03em;vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.reporting-hours-cell{text-align:right}.reporting-hours-value{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:12.5px}.reporting-hours-empty{color:var(--text-faint)}.expand-spacer{width:20px;display:inline-block}.reporting-task-cell{padding-left:22px}.reporting-task-name{color:var(--text-muted);font-size:12px}.reporting-task-row .reporting-hours-value{color:var(--text-muted)}.reporting-timeline-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.reporting-period-nav{justify-content:flex-start}.util-popover-root{display:inline-flex}.util-popover-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px;overflow:auto}.util-popover-panel.util-menu{flex-direction:column;gap:6px;padding:14px;display:flex}.util-menu-label{letter-spacing:.03em;color:var(--text-muted);margin:6px 2px 2px;font-size:11px;font-weight:700}.util-menu-label:first-child{margin-top:0}.util-segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;gap:4px;padding:3px;display:flex}.util-segmented button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;padding:6px 10px;font-size:13px;font-weight:600;transition:background .12s,color .12s,box-shadow .12s}.util-segmented button:hover{color:var(--text)}.util-segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-weight:700}.util-segmented--periods button{font-variant-numeric:tabular-nums;min-width:0}.util-menu-nav{align-items:center;gap:8px;margin-top:4px;display:flex}.util-menu-nav .period-label{text-align:center;color:var(--text-secondary);white-space:nowrap;flex:1;font-size:12.5px;font-weight:600}.util-period-trigger{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:9px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:600;transition:border-color .12s,background .12s;display:inline-flex}.util-period-trigger:hover{background:var(--surface-hover)}.util-period-trigger .dropdown-chevron{opacity:.6;width:14px;height:14px;transition:transform .15s}.util-period-trigger .dropdown-chevron.open{transform:rotate(180deg)}.util-icon-trigger{background:var(--surface);border:1px solid var(--border-strong);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;transition:border-color .12s,background .12s,color .12s;display:inline-flex;position:relative}.util-icon-trigger:hover{background:var(--surface-hover);color:var(--text)}.util-icon-trigger.active{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.util-icon-trigger svg{width:16px;height:16px}.util-filter-badge{background:var(--accent);color:#fff;box-sizing:border-box;border-radius:999px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.util-filter-menu .util-check-list{flex-direction:column;display:flex}.util-check-row{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;padding:7px 4px;transition:background .1s;display:flex}.util-check-row:hover{background:var(--surface-hover)}.util-check-box{border:1px solid var(--border-strong);color:#0000;border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;transition:background .12s,border-color .12s;display:flex}.util-check-row[aria-pressed=true] .util-check-box{background:var(--accent);border-color:var(--accent);color:#fff}.util-check-box svg{width:11px;height:11px}.util-check-name{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.util-check-count{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.util-clear-btn{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-secondary);cursor:pointer;border-radius:9px;margin-top:6px;padding:9px;font-size:12.5px;font-weight:600;transition:background .12s}.util-clear-btn:hover{background:var(--surface-hover)}.util-clear-btn:disabled{opacity:.5;cursor:default}.util-check-list--scroll{flex:none;max-height:260px;overflow-y:auto}.util-check-list--scroll .util-check-count{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-weight:500;overflow:hidden}.util-menu-empty{color:var(--text-muted);text-align:center;padding:12px 4px;font-size:12.5px}.reporting-util-hit{width:100%;color:inherit;font:inherit;text-align:right;background:0 0;border:0;margin:0;padding:0;display:block}button.reporting-util-hit{cursor:pointer;border-radius:6px;transition:box-shadow .12s,filter .12s}button.reporting-util-hit:hover{filter:brightness(.92)}button.reporting-util-hit:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);outline:none}.util-breakdown-modal{flex-direction:column;gap:18px;width:min(900px,94vw);max-height:74vh;padding:26px 28px;display:flex}.util-capacity-flag{color:var(--text-muted);font-weight:700}.util-capacity-flag.tone-good{color:var(--signal-good-text)}.util-capacity-flag.tone-over{color:var(--signal-bad-text-strong)}.util-capacity-flag.tone-low{color:var(--danger)}.util-breakdown-modal .forecast-reason-header h3{align-items:center;font-size:19px;font-weight:700;display:flex}.util-breakdown-modal .forecast-reason-subtitle{margin-top:5px;font-size:13px}.util-breakdown-modal .forecast-reason-close{border:1px solid var(--border);background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:9px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s}.util-breakdown-modal .forecast-reason-close svg{width:18px;height:18px}.util-breakdown-modal .forecast-reason-close:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.util-breakdown-summary{gap:12px;margin:0;display:flex}.util-breakdown-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;gap:3px;padding:14px 16px;display:flex}.util-breakdown-stat.tone-good{background:var(--signal-good-bg);border-color:#0000}.util-breakdown-stat.tone-mid{background:var(--signal-amber-bg);border-color:#0000}.util-breakdown-stat.tone-low{background:var(--signal-bad-bg);border-color:#0000}.util-breakdown-stat.tone-over{background:var(--signal-bad-bg-strong);border-color:#0000}.util-breakdown-stat-value{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.05}.util-breakdown-stat-label{color:var(--text-muted);letter-spacing:.01em;font-size:11.5px;font-weight:600}.util-breakdown-scroll{border:1px solid var(--border);border-radius:12px;flex:1;min-height:120px;overflow:auto}.util-breakdown-section-label{z-index:2;background:var(--surface-2);border-bottom:1px solid var(--border);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:center;padding:10px 16px;font-size:11px;font-weight:700;display:flex;position:sticky;top:0}.util-breakdown-section-label--np{border-top:1px solid var(--border)}.util-breakdown-section-total{font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--text-secondary)}.util-breakdown-empty{color:var(--text-muted);padding:16px;font-size:13px}.util-breakdown-table{border-collapse:collapse;width:100%;font-size:13.5px}.util-breakdown-table thead th{z-index:1;background:var(--surface-2);text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:11px 16px;font-size:11px;font-weight:700;position:sticky;top:0}.util-breakdown-table .util-breakdown-hours-col{text-align:right}.util-breakdown-project-row{border-top:1px solid var(--border)}.util-breakdown-project-row:first-child{border-top:0}.util-breakdown-project-row th{text-align:left;padding:12px 16px 4px}.util-breakdown-project-row td{text-align:right;font-variant-numeric:tabular-nums;vertical-align:top;color:var(--text);padding:12px 16px 4px;font-size:14px;font-weight:700}.util-breakdown-project-name{color:var(--text);font-size:13.5px;font-weight:700}.util-breakdown-project-meta{color:var(--text-faint);margin-top:2px;font-size:11.5px;font-weight:500}.util-breakdown-task-row th{text-align:left;padding:3px 16px 3px 30px;font-weight:500}.util-breakdown-task-row td{text-align:right;color:var(--text-secondary);font-variant-numeric:tabular-nums;padding:3px 16px}.util-breakdown-task-name{color:var(--text-muted);font-size:12.5px}.util-breakdown-project-row+.util-breakdown-project-row th,.util-breakdown-project-row+.util-breakdown-project-row td{padding-top:12px}.util-breakdown-task-row:last-child th,.util-breakdown-task-row:last-child td{padding-bottom:12px}.util-summary-modal{width:min(1040px,94vw)}.util-summary-modal .util-breakdown-stat{padding:12px 14px}.util-summary-modal .util-breakdown-stat-value{font-size:23px}.util-summary-modal .util-breakdown-stat-split{white-space:normal}.util-summary-delta{letter-spacing:.01em;white-space:nowrap;color:var(--text-faint);margin-top:2px;font-size:10px;font-weight:700;display:block}.util-summary-delta.tone-good{color:var(--signal-good-text)}.util-summary-delta.tone-over{color:var(--signal-bad-text-strong)}.util-summary-delta.tone-low{color:var(--signal-bad-text)}.util-breakdown-stat-split.tone-good{color:var(--signal-good-text)}.util-breakdown-stat-split.tone-over{color:var(--signal-bad-text-strong)}.util-breakdown-stat-split.tone-low{color:var(--signal-bad-text)}.util-summary-table{border-collapse:collapse;width:100%;font-size:13.5px}.util-summary-table thead th{z-index:1;background:var(--surface-2);text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:11px 16px;font-size:11px;font-weight:700;position:sticky;top:0}.util-col-hint{cursor:help;border-bottom:1px dotted var(--text-faint);outline:none;display:inline-block;position:relative}.util-col-hint-tip{visibility:hidden;opacity:0;pointer-events:none;z-index:40;color:#e3e6f2;letter-spacing:0;text-transform:none;text-align:left;white-space:normal;background:#20243a;border:1px solid #ffffff1f;border-radius:9px;width:232px;padding:9px 11px;font-size:11.5px;font-weight:500;line-height:1.45;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% + 9px);right:0;transform:translateY(-3px);box-shadow:0 12px 30px #10132640}.util-col-hint-tip:before{content:"";background:#20243a;border-top:1px solid #ffffff1f;border-left:1px solid #ffffff1f;width:8px;height:8px;position:absolute;top:-5px;right:16px;transform:rotate(45deg)}.util-col-hint--left .util-col-hint-tip{left:0;right:auto}.util-col-hint--left .util-col-hint-tip:before{left:16px;right:auto}.util-col-hint:hover .util-col-hint-tip,.util-col-hint:focus-visible .util-col-hint-tip{visibility:visible;opacity:1;transform:translateY(0)}.util-summary-table{table-layout:fixed}.util-summary-table th:first-child{width:25%}.util-summary-table .util-summary-num{width:12.5%}.util-summary-table thead th.util-summary-num{text-align:right;padding-left:12px;padding-right:12px}.util-summary-table tbody tr{border-top:1px solid var(--border)}.util-summary-table tbody tr:first-child{border-top:0}.util-summary-table tbody tr:hover{background:var(--surface-hover)}.util-summary-table th[scope=row]{text-align:left;padding:12px 16px;font-weight:600}.util-summary-table tbody th,.util-summary-table tbody td{vertical-align:top}.util-summary-name{color:var(--text);align-items:center;gap:2px;font-size:13.5px;font-weight:600;display:flex}.util-summary-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px;font-weight:500}.util-summary-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-secondary);padding:12px}.util-summary-table tbody td.util-summary-num:after{content:" ";visibility:hidden;margin-top:2px;font-size:10px;line-height:1.3;display:block}.util-summary-table tbody td.util-summary-num:has(.util-summary-delta):after{content:none}.util-summary-pct{font-weight:700}.util-summary-pct.tone-good{color:var(--signal-good-text)}.util-summary-pct.tone-mid{color:var(--signal-amber-text)}.util-summary-pct.tone-low{color:var(--signal-bad-text)}.util-summary-pct.tone-over{color:var(--signal-bad-text-strong)}.util-summary-pct.tone-empty{color:var(--text-faint)}.forecast-capacity-legend{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:2px 2px 12px;display:flex}.forecast-capacity-hint{color:var(--text-muted);align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.forecast-capacity-hint svg{flex-shrink:0;width:13px;height:13px}.forecast-capacity-hint-sep{background:var(--border-strong);width:1px;height:12px;margin:0 4px;display:inline-block}.project-name-row{outline:none;align-items:center;gap:6px;display:flex}.project-name-row.has-context{cursor:help}.project-name-row.has-context .project-context-info-icon{color:var(--text-faint);flex-shrink:0;transition:color .12s}.project-name-row.has-context:hover .project-context-info-icon,.project-name-row.has-context:focus-visible .project-context-info-icon{color:var(--accent)}.project-context-info-icon{width:14px;height:14px;display:block}.project-context-pop{z-index:1000;background:var(--surface);border:1px solid var(--border-strong);cursor:default;border-radius:12px;flex-direction:column;gap:8px;min-width:236px;padding:13px 15px;display:flex;position:fixed;box-shadow:0 14px 36px #1a1f3633,0 3px 10px #1a1f361f}.project-context-pop:before{content:"";background:var(--surface);border-left:1px solid var(--border-strong);border-top:1px solid var(--border-strong);width:11px;height:11px;position:absolute;top:-6px;left:16px;transform:rotate(45deg)}.project-context-eq{align-items:flex-end;gap:10px;display:flex}.project-context-eq .pc-op{color:var(--text-faint);align-self:center;font-size:13px;font-weight:600}.project-context-plan{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding-top:8px;display:flex}.pc-term{flex-direction:column;gap:1px;display:flex}.pc-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:10px;font-weight:600}.pc-num{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.pc-term--eac .pc-num{color:var(--accent)}.pc-badge{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.grid--project-view .row-flat .resource-cell-flat{justify-content:flex-start;gap:0;position:relative}.grid--project-view .row-flat .resource-info{text-align:left}.grid--project-view .row-flat .resource-cell-flat>.row-delete,.grid--project-view .row-flat .resource-cell-flat>.row-pinned{flex:none;margin-left:auto}.grid--project-view .row-flat .row-drag-handle{width:14px;margin:0;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.grid--project-view thead th.col-resource{padding-left:14px}.ns-status-cell{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ns-status-action{border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:5px;padding:2px 8px;font-size:11px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.ns-status-action:hover{background:var(--surface-2)}.ns-status-action-deactivate:hover{color:#c2410c;background:#fef2f0;border-color:#e0654a}.ns-status-action-reactivate:hover{color:#15803d;background:#f0fdf4;border-color:#15803d}.resource-name-cell{flex-direction:column;justify-content:center;gap:1px;padding:8px;display:flex}.resource-name-cell .user-cell-static{padding:0;font-weight:500}.resources-table .col-fringe{width:9%;min-width:92px}.resources-table .col-manager{width:14%;min-width:150px}.project-notes-input-wrap{flex-direction:column;display:flex;position:relative}.capacity-color-info-list .legend-swatch{border-radius:3px;flex:0 0 11px;width:11px;height:11px;margin-top:3px}.project-notes-mention{color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 3px;font-weight:600}.project-notes-mention-menu{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:8px;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #1a1f3624}.project-notes-mention-option{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;gap:1px;width:100%;padding:6px 9px;display:flex}.project-notes-mention-option.is-active,.project-notes-mention-option:hover{background:var(--surface-2)}.project-notes-mention-option-name{color:var(--text);font-size:13px;font-weight:600}.project-notes-mention-option-email{color:var(--text-faint);font-size:11.5px}html{scrollbar-gutter:stable}table.grid.grid--project-view .type-trigger--cell,table.grid.grid--project-view .type-badge--cell,table.grid.grid--forecast-view .type-trigger--cell,table.grid.grid--forecast-view .type-badge--cell{text-align:left;justify-content:flex-start}table.grid.grid--project-view .type-trigger--cell .dropdown-label,table.grid.grid--project-view .type-badge--cell,table.grid.grid--forecast-view .type-trigger--cell .dropdown-label,table.grid.grid--forecast-view .type-badge--cell{text-align:left}table.grid.grid--project-view .type-trigger--cell .dropdown-chevron,table.grid.grid--forecast-view .type-trigger--cell .dropdown-chevron{margin-left:auto}table.grid.grid--project-view .type-badge--cell.billable,table.grid.grid--project-view .type-badge--cell.nonbillable,table.grid.grid--project-view .type-trigger--cell.billable,table.grid.grid--project-view .type-trigger--cell.nonbillable,table.grid.grid--forecast-view .type-badge--cell.billable,table.grid.grid--forecast-view .type-badge--cell.nonbillable,table.grid.grid--forecast-view .type-trigger--cell.billable,table.grid.grid--forecast-view .type-trigger--cell.nonbillable{background:var(--accent-soft);color:var(--accent-hover)}.rate-cell{display:block}.rate-input-wrap{display:block;position:relative}.rate-breakdown{white-space:nowrap;width:100%;color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:3px;padding-left:2px;font-size:11px;display:block}.rate-breakdown-sep{color:var(--text-faint)}a.btn-primary{color:#fff;text-decoration:none}.btn-primary:hover:not(:disabled),.btn-primary:focus-visible:not(:disabled),a.btn-primary:hover,a.btn-primary:focus-visible{color:#fff;background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}.grid--project-view.grid--dense .colgroup-resource{width:15%}.grid--project-view.grid--dense .colgroup-type{width:10%}table.grid.grid--project-view.grid--dense .col-type{max-width:92px}.project-actuals-grid-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.project-actuals-loading{z-index:6;background:color-mix(in srgb, var(--surface) 60%, transparent);pointer-events:none;justify-content:center;align-items:flex-start;padding-top:96px;animation:.12s actualsFadeIn;display:flex;position:absolute;inset:0}.project-actuals-loading-badge{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);box-shadow:var(--shadow-md);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;font-weight:600;display:inline-flex}@keyframes actualsFadeIn{0%{opacity:0}to{opacity:1}}
