:root{--bg: #f8fafc;--bg-alt: #f1f5f9;--text: #0f172a;--muted: #475569;--surface: #ffffff;--surface-soft: #f8fafc;--border: #e2e8f0;--border-strong: #cbd5e1;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 10px 18px rgba(15, 23, 42, .08);--primary: #334155;--primary-hover: #1f2937;--primary-soft: #e2e8f0;--danger-soft: #fee2e2;--danger-text: #b91c1c}:root[data-theme=dark]{--bg: #0b1220;--bg-alt: #111b2e;--text: #e2e8f0;--muted: #94a3b8;--surface: #111827;--surface-soft: #1e293b;--border: #253247;--border-strong: #334155;--shadow-sm: 0 1px 2px rgba(2, 6, 23, .6);--shadow-md: 0 14px 26px rgba(2, 6, 23, .55);--primary: #64748b;--primary-hover: #475569;--primary-soft: rgba(148, 163, 184, .22);--danger-soft: rgba(220, 38, 38, .24);--danger-text: #fecaca}:root{font-family:Manrope,Segoe UI,Tahoma,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(1200px 600px at -10% -20%,rgba(37,99,235,.12),transparent 55%),radial-gradient(900px 500px at 110% -30%,rgba(56,189,248,.1),transparent 50%),linear-gradient(180deg,var(--bg) 0%,var(--bg-alt) 100%)}.page,.dashboard{min-height:100vh}.card{width:min(500px,100%);margin:10vh auto 0;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:var(--shadow-md)}.login-card{width:min(560px,calc(100% - 32px));margin:12vh auto 0;padding:36px;border-color:color-mix(in srgb,var(--border) 72%,#2563eb 28%);background:radial-gradient(280px 120px at 100% -10%,rgba(59,130,246,.14),transparent 68%),radial-gradient(260px 120px at -8% 108%,rgba(14,165,233,.12),transparent 70%),var(--surface);text-align:center}.login-badge{display:inline-flex;justify-content:center;align-items:center;border:1px solid color-mix(in srgb,var(--border-strong) 72%,#2563eb 28%);border-radius:999px;padding:6px 12px;font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;color:#1d4ed8;background:color-mix(in srgb,#dbeafe 70%,var(--surface))}.login-card h1{margin-top:14px;font-size:clamp(1.7rem,2.4vw,2rem)}.login-card .subtitle{margin:10px auto 0;max-width:52ch;line-height:1.5}.login-points{margin:18px auto 0;padding:0;list-style:none;display:grid;gap:10px}.login-points li{position:relative;padding-left:26px;text-align:left;color:var(--text);font-size:.95rem}.login-points li:before{content:"";position:absolute;left:0;top:8px;width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#0ea5e9,#2563eb);box-shadow:0 0 0 4px color-mix(in srgb,#dbeafe 66%,transparent)}.login-btn{width:100%;margin-top:22px;padding:12px 16px;border-radius:12px}.ms-login-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;background:#fff;color:#1f1f1f;border:1px solid #8c8c8c;box-shadow:0 1px 1px #0000000f;font-weight:600}.ms-login-btn:hover{background:#f5f5f5;color:#1f1f1f;border-color:#6e6e6e}.ms-login-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ms-logo{width:16px;height:16px;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:2px;flex:0 0 auto}.ms-logo-square{width:7px;height:7px}.ms-red{background:#f25022}.ms-green{background:#7fba00}.ms-blue{background:#00a4ef}.ms-yellow{background:#ffb900}.topbar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;background:color-mix(in srgb,var(--surface) 90%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:30}h1{margin:0;font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}h2{margin:0;color:var(--text)}.subtitle{margin:4px 0 0;color:var(--muted);font-size:.95rem}.brand-link{border:0;background:transparent;color:var(--text);font-size:1.4rem;font-weight:800;letter-spacing:-.02em;padding:0;cursor:pointer}.brand-link:hover{color:var(--primary)}.user-menu-wrap{position:relative}.user-trigger{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);padding:6px 12px 6px 6px;cursor:pointer;box-shadow:var(--shadow-sm)}.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover}.avatar-fallback{display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:700}.user-menu{position:absolute;right:0;top:calc(100% + 10px);width:260px;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px;box-shadow:var(--shadow-md);z-index:50}.menu-name{margin:4px 0 2px;font-weight:700}.menu-email{margin:0 0 10px;font-size:.9rem;color:var(--muted)}.menu-item{width:100%;text-align:left;border:1px solid transparent;background:var(--surface-soft);color:var(--text);border-radius:10px;padding:10px;margin-top:6px;cursor:pointer}.menu-item:hover{border-color:var(--border-strong)}.menu-item.danger{background:var(--danger-soft);color:var(--danger-text)}.panel{max-width:1100px;margin:22px auto 0;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow-sm)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.dashboard-planning-panel{width:calc(100% - 32px);max-width:1600px;padding:22px}.dashboard-planning-head{align-items:flex-end;margin-bottom:18px}.dashboard-as-of{flex:0 0 auto;border:1px solid var(--border);border-radius:999px;padding:6px 11px;color:var(--muted);background:var(--surface-soft);font-size:.8rem;font-weight:700}.dashboard-loading{padding:24px 0;text-align:center}.dashboard-folds{display:grid;gap:16px}.dashboard-fold{overflow:hidden;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.dashboard-fold-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;border:0;padding:15px 17px;color:var(--text);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-soft) 100%);text-align:left;cursor:pointer}.dashboard-fold-header:hover{background:var(--surface-soft)}.dashboard-fold-heading{min-width:0;display:grid;gap:3px}.dashboard-fold-title{font-size:1.06rem;font-weight:800}.dashboard-fold-subtitle{color:var(--muted);font-size:.84rem;font-weight:500}.dashboard-fold-header-tools{flex:0 0 auto;display:flex;align-items:center;gap:16px}.dashboard-fold-chevron{display:inline-grid;width:28px;height:28px;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);font-size:1.15rem;line-height:1;transform:rotate(-90deg);transition:transform .18s ease}.dashboard-fold-chevron.open{transform:rotate(0)}.dashboard-status-legend{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.76rem;font-weight:700}.dashboard-status-legend>span,.dashboard-status-pill{display:inline-flex;align-items:center;gap:6px}.dashboard-status-dot{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:#ef4444}.dashboard-status-dot.green{background:#58a942}.dashboard-status-dot.yellow{background:#eab308}.dashboard-status-dot.red{background:#dc4444}.dashboard-fold-content{border-top:1px solid var(--border);padding:14px}.dashboard-project-guide{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 4px 12px;color:var(--muted);font-size:.75rem}.dashboard-history-swatch{width:32px;height:11px;border:1px solid #64748b;background:repeating-linear-gradient(135deg,#111827 0,#111827 4px,#fff 4px,#fff 8px)}.dashboard-now-swatch{width:3px;height:17px;margin-left:8px;background:#111827}.dashboard-project-staffing-list,.dashboard-staff-utilisation-list{overflow-x:auto;border:1px solid var(--border);border-radius:12px}.dashboard-project-staffing-row{min-width:1120px;display:grid;grid-template-columns:230px minmax(680px,1fr) 140px;align-items:center;gap:18px;padding:13px 14px;border-bottom:1px solid var(--border)}.dashboard-project-staffing-row:last-child,.dashboard-staff-utilisation-row:last-child{border-bottom:0}.dashboard-project-staffing-row:nth-child(2n),.dashboard-staff-utilisation-row:nth-child(2n){background:color-mix(in srgb,var(--surface-soft) 62%,var(--surface) 38%)}.dashboard-project-identity,.dashboard-staff-identity{min-width:0;display:grid;gap:3px}.dashboard-project-identity>span,.dashboard-staff-identity>span{overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-project-link{overflow:hidden;border:0;padding:0;color:var(--text);background:transparent;font:inherit;font-weight:800;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.dashboard-project-link:hover{color:#2563eb}.dashboard-project-timeline{min-width:0;display:grid;gap:5px}.dashboard-project-timeline-labels{display:grid;grid-template-columns:30% 0 1fr;align-items:center;color:var(--muted);font-size:.68rem}.dashboard-project-timeline-labels span:first-child{padding-left:3px}.dashboard-project-timeline-labels strong{position:relative;z-index:2;justify-self:center;padding:0 5px;color:var(--text);background:var(--surface);white-space:nowrap}.dashboard-project-timeline-labels span:last-child{justify-self:end;padding-right:3px}.dashboard-project-track{position:relative;min-height:42px;display:grid;grid-template-columns:30% minmax(0,1fr);border:1px solid var(--border-strong);border-radius:9px;background:var(--surface-soft)}.dashboard-project-history{min-width:0;display:grid;place-items:center;border-radius:8px 0 0 8px;background:repeating-linear-gradient(135deg,#111827 0,#111827 5px,#fff 5px,#fff 10px)}.dashboard-project-history.empty{background:var(--surface-soft)}.dashboard-project-history span{border-radius:999px;padding:2px 7px;color:#0f172a;background:#ffffffe6;font-size:.65rem;font-weight:800}.dashboard-project-history.empty span{color:var(--muted);background:transparent}.dashboard-project-now{position:absolute;z-index:3;top:-6px;bottom:-6px;left:30%;width:3px;background:#111827;box-shadow:0 0 0 1px #ffffffbf}.dashboard-project-future{min-width:max-content;display:flex;gap:3px;padding:3px}.dashboard-project-segment{min-width:76px;min-height:34px;display:grid;place-content:center;gap:1px;border-radius:6px;padding:3px 8px;color:#172033;text-align:center}.dashboard-project-segment.green,.dashboard-utilisation-fill.green{background:#8fd47a}.dashboard-project-segment.yellow,.dashboard-utilisation-fill.yellow{background:#f6d66f}.dashboard-project-segment.red,.dashboard-utilisation-fill.red{background:#ef8989}.dashboard-project-segment>span{font-size:.68rem;font-weight:800;white-space:nowrap}.dashboard-project-segment>small{font-size:.62rem}.dashboard-project-segment.summary{min-width:96px}.dashboard-status-pill{justify-self:end;border:1px solid var(--border);border-radius:999px;padding:6px 9px;color:var(--text);background:var(--surface);font-size:.74rem;font-weight:800;white-space:nowrap}.dashboard-status-pill.green{border-color:color-mix(in srgb,#58a942 45%,var(--border))}.dashboard-status-pill.yellow{border-color:color-mix(in srgb,#eab308 48%,var(--border))}.dashboard-status-pill.red{border-color:color-mix(in srgb,#dc4444 45%,var(--border))}.dashboard-section-note{margin:0 2px 12px;color:var(--muted);font-size:.78rem}.dashboard-staff-utilisation-row{min-width:860px;display:grid;grid-template-columns:230px minmax(440px,1fr) 110px;align-items:center;gap:18px;padding:12px 14px;border-bottom:1px solid var(--border)}.dashboard-utilisation-bar-wrap{display:grid;gap:5px}.dashboard-utilisation-track{position:relative;height:20px;overflow:hidden;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-soft)}.dashboard-utilisation-fill{position:absolute;z-index:1;inset:0 auto 0 0;border-radius:999px;transition:width .2s ease}.dashboard-utilisation-fill.zero{min-width:12px}.dashboard-utilisation-tick{position:absolute;z-index:2;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--border-strong) 78%,transparent)}.dashboard-utilisation-tick.tick-one{left:25%}.dashboard-utilisation-tick.tick-two{left:50%}.dashboard-utilisation-tick.tick-three{left:75%}.dashboard-utilisation-scale{display:grid;grid-template-columns:repeat(5,1fr);color:var(--muted);font-size:.64rem}.dashboard-utilisation-scale span:first-child{text-align:left}.dashboard-utilisation-scale span:not(:first-child):not(:last-child){text-align:center}.dashboard-utilisation-scale span:last-child{text-align:right}.dashboard-empty{margin:0;padding:24px;color:var(--muted);text-align:center}.dashboard-expenses-total{border:1px solid var(--border);border-radius:999px;padding:6px 10px;color:var(--text);background:var(--surface);font-size:.75rem;font-weight:800;white-space:nowrap}.dashboard-expenses-chart{display:grid;gap:10px;border:1px solid var(--border);border-radius:12px;padding:14px;background:color-mix(in srgb,var(--surface-soft) 55%,var(--surface) 45%)}.dashboard-finance-summary{display:grid;gap:12px}.dashboard-finance-total-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.dashboard-finance-total-grid>span{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.dashboard-finance-total-grid small{color:var(--muted);font-weight:700}.dashboard-finance-total-grid strong{font-variant-numeric:tabular-nums}.dashboard-finance-total-grid .positive strong,.dashboard-profit-positive{color:#27753b}.dashboard-finance-total-grid .negative strong,.dashboard-profit-negative{color:#b53c3c}.dashboard-finance-legend{display:flex;justify-content:flex-end;gap:16px;color:var(--muted);font-size:.75rem;font-weight:700}.dashboard-finance-legend span{display:inline-flex;align-items:center;gap:6px}.dashboard-finance-legend i{width:10px;height:10px;border-radius:3px}.dashboard-finance-legend .invoice,.dashboard-expenses-fill.invoice{background:#e78627}.dashboard-finance-legend .salary,.dashboard-expenses-fill.salary{background:#e5c735}.dashboard-finance-legend .fee,.dashboard-expenses-fill.fee{background:#4abf88}.dashboard-finance-legend .profit,.dashboard-expenses-fill.profit{background:#18c5d8}.dashboard-expenses-row{display:grid;grid-template-columns:92px minmax(180px,1fr);align-items:center;gap:14px;min-height:32px}.dashboard-finance-row{min-height:76px}.dashboard-finance-bars{display:grid;gap:5px}.dashboard-finance-bar-line{display:grid;grid-template-columns:minmax(180px,1fr) 120px;align-items:center;gap:14px}.dashboard-finance-bar-value{color:var(--text);font-size:.8rem;font-variant-numeric:tabular-nums;font-weight:800;text-align:right;white-space:nowrap}.dashboard-expense-stack{display:flex}.dashboard-expense-stack .dashboard-expenses-fill{flex:0 0 auto;border-radius:0}.dashboard-expense-stack .dashboard-expenses-fill:first-child{border-radius:5px 0 0 5px}.dashboard-expense-stack .dashboard-expenses-fill:last-child{border-radius:0 5px 5px 0}.dashboard-expenses-row>strong{font-size:.8rem}.dashboard-expenses-row>span:last-child{color:var(--text);font-size:.8rem;font-variant-numeric:tabular-nums;font-weight:800;text-align:right}.dashboard-expenses-track{height:22px;overflow:hidden;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface)}.dashboard-expenses-fill{display:block;height:100%;min-width:0;border-radius:5px;background:linear-gradient(90deg,#33445c,#647a98);transition:width .2s ease}@media (max-width: 760px){.dashboard-planning-panel{width:calc(100% - 20px);margin:14px 10px 0;padding:14px}.dashboard-planning-head,.dashboard-fold-header{align-items:flex-start}.dashboard-fold-header-tools{gap:8px}.dashboard-status-legend,.dashboard-expenses-total{display:none}.dashboard-expenses-row{grid-template-columns:70px minmax(100px,1fr);gap:8px}.dashboard-finance-bar-line{grid-template-columns:minmax(100px,1fr) 88px;gap:8px}.dashboard-project-guide{justify-content:flex-start;flex-wrap:wrap}}.search{width:min(420px,100%);border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:10px 12px}.search:focus{outline:2px solid transparent;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.table-wrap.compact{max-height:340px}.table-actions{margin-top:12px;display:flex;justify-content:flex-end}.projects-table{width:100%;border-collapse:collapse;font-size:.92rem}.projects-table th,.projects-table td{padding:7px 10px;border-bottom:1px solid var(--border);text-align:left}.projects-table thead th{position:sticky;top:0;background:var(--surface)}.th-sort{border:0;padding:0;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.th-sort:hover{color:var(--text)}.projects-table tbody tr{cursor:pointer}.projects-table tbody tr:hover{background:var(--surface-soft)}.projects-table tbody tr.selected{background:var(--primary-soft)}.project-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}.error-text{color:var(--danger-text)}.btn{border:1px solid transparent;border-radius:10px;background:var(--primary);color:#fff;padding:7px 12px;font-weight:700;cursor:pointer;margin-top:10px;transition:background .15s ease}.btn:hover{background:var(--primary-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 700px){.project-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start;padding:14px 16px}.panel{margin:16px}.panel-head{flex-direction:column;align-items:stretch}.search{width:100%}.login-card{margin-top:8vh;padding:28px 22px}}.admin-panel,.admin-users-panel{margin-top:28px}.admin-hero,.admin-users-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.admin-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.admin-card{grid-column:span 12;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);padding:18px}.admin-card-featured{background:linear-gradient(145deg,var(--surface) 0%,var(--surface-soft) 100%);border-color:var(--border-strong)}.admin-card h3{margin:10px 0 6px;font-size:1.05rem}.admin-card-badge{display:inline-flex;align-items:center;height:24px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.75rem;font-weight:700;padding:0 10px}.admin-card-badge.muted{background:var(--surface);color:var(--muted);border:1px solid var(--border)}.admin-card-actions{margin-top:14px}.admin-users-table td{vertical-align:middle}.admin-users-head-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.admin-users-head-actions .btn{margin-top:0}.admin-add-user-modal{width:min(760px,calc(100vw - 40px));display:grid;gap:16px}.admin-add-user-head,.admin-directory-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-add-user-head h3,.admin-add-user-head .subtitle,.admin-directory-toolbar .subtitle{margin:0}.admin-add-user-head .subtitle,.admin-directory-toolbar .subtitle{margin-top:5px}.admin-modal-close{width:34px;height:34px;flex:0 0 auto;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer}.admin-modal-close:hover{background:var(--surface-soft);color:var(--text)}.admin-user-type-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:5px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.admin-user-type-tabs .btn{margin-top:0}.admin-add-user-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-add-user-password{grid-column:1 / -1}.admin-add-user-password small,.admin-directory-option small{color:var(--muted)}.admin-directory-picker{display:grid;gap:12px}.admin-directory-toolbar .btn{flex:0 0 auto;margin-top:0}.admin-directory-search{width:100%}.admin-directory-list{max-height:min(290px,38vh);overflow:auto;display:grid;gap:6px;padding:5px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.admin-directory-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid transparent;border-radius:9px;background:var(--surface);cursor:pointer}.admin-directory-option.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.admin-directory-option input,.admin-add-user-role input{width:16px;height:16px;accent-color:var(--primary)}.admin-directory-option span{min-width:0;display:grid;gap:2px}.admin-directory-option small{overflow-wrap:anywhere}.admin-directory-empty{margin:8px;color:var(--muted);text-align:center}.admin-add-user-roles{margin:0;padding:12px;border:1px solid var(--border);border-radius:12px}.admin-add-user-roles legend{padding:0 6px;font-weight:700}.admin-add-user-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-add-user-role{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer}.admin-add-user-role.selected{border-color:var(--primary);background:var(--primary-soft)}.admin-add-user-error{margin:0}.admin-select{min-width:160px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:8px 10px}.admin-role-options{display:grid;gap:5px;min-width:155px}.admin-role-option{display:flex;align-items:center;gap:7px;color:var(--text);font-size:.8rem;white-space:nowrap}.admin-role-option input{width:15px;height:15px;accent-color:var(--primary)}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-soft)}.btn-small{margin-top:0;padding:8px 12px;font-size:.84rem}.btn-warn{background:#f59e0b}.btn-warn:hover{background:#d97706}.btn-danger{background:#dc2626}.btn-danger:hover{background:#b91c1c}@media (min-width: 900px){.admin-card{grid-column:span 6}}@media (max-width: 700px){.admin-hero,.admin-users-head{flex-direction:column;align-items:stretch}.admin-select,.admin-users-head-actions,.admin-users-head-actions .btn{width:100%}.admin-add-user-fields,.admin-add-user-role-grid{grid-template-columns:1fr}.admin-directory-toolbar{flex-direction:column}.admin-directory-toolbar .btn{width:100%}}.module-toggle-row{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.module-toggle{position:relative;width:54px;height:30px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-soft);cursor:pointer;transition:background .15s ease,border-color .15s ease}.module-toggle.on{background:var(--primary);border-color:var(--primary)}.module-toggle-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s ease}.module-toggle.on .module-toggle-thumb{transform:translate(24px)}.module-toggle:disabled{opacity:.6;cursor:not-allowed}.main-nav{width:100%;display:flex;gap:8px;padding:10px 28px 0}.main-nav-item{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer}.main-nav-item:hover{border-color:var(--border-strong);background:var(--surface-soft)}.main-nav-item.active{background:var(--primary);border-color:var(--primary);color:#fff}@media (max-width: 700px){.main-nav{padding:10px 16px 0;overflow-x:auto}}.projects-subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.subnav-item{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer}.subnav-item:hover{border-color:var(--border-strong);background:var(--surface-soft)}.subnav-item.active{background:var(--primary-soft);border-color:var(--primary);color:var(--text)}.projects-list-head{margin-bottom:10px;display:flex;align-items:center;gap:12px}.projects-list-head .search{flex:1}.projects-create-btn{margin-top:0;white-space:nowrap}.login-divider{margin:18px 0 14px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--border)}.login-divider span{padding:0 10px}.local-login-form{display:grid;gap:10px}.local-login-form .search{width:100%}.table-wrap-projects{border-radius:10px}.projects-list-table{font-size:.86rem}.projects-list-table th,.projects-list-table td{padding:6px 9px;line-height:1.2}.projects-list-table thead th{font-size:.78rem;letter-spacing:.02em;text-transform:uppercase}.projects-list-table .cell-action{width:1%;white-space:nowrap}.btn-compact{margin-top:0;padding:6px 10px;border-radius:8px;font-size:.8rem;font-weight:700}.table-wrap-projects{max-height:calc(100vh - 260px);overflow:auto}@media (max-width: 700px){.table-wrap-projects{max-height:calc(100vh - 220px)}}.table-wrap-projects{width:100%;max-width:100%;max-height:min(62vh,calc(100vh - 260px));overflow:auto;overscroll-behavior:contain}.projects-list-table{width:100%;min-width:0;table-layout:fixed}.projects-list-table th,.projects-list-table td{overflow-wrap:anywhere}.projects-list-table th:nth-child(1),.projects-list-table td:nth-child(1){width:90px}.projects-list-table th:nth-child(6),.projects-list-table td:nth-child(6){width:82px}@media (max-width: 700px){.table-wrap-projects{max-height:min(58vh,calc(100vh - 220px))}}.add-modal{position:relative;width:min(940px,calc(100vw - 64px));max-height:calc(100vh - 110px);overflow:auto;z-index:1200;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow-md);gap:12px;align-content:start}.add-modal .search{width:100%}.add-modal .modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;margin-top:4px;padding-top:6px;border-top:1px solid var(--border)}.add-modal .modal-actions .btn{margin-top:0}@media (max-width: 700px){.add-modal{width:calc(100vw - 20px);max-height:calc(100vh - 30px);padding:14px}.add-modal .modal-actions{flex-direction:column-reverse}.add-modal .modal-actions .btn{width:100%}}.project-create-modal{width:min(640px,calc(100vw - 32px));display:grid;gap:14px}.project-create-head h3,.project-create-error{margin:0}@media (max-width: 700px){.projects-list-head{flex-direction:column;align-items:stretch}.projects-create-btn{width:100%}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1190;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:16px}.row-actions-cell{width:52px;text-align:right}.row-action-menu{position:relative;display:inline-block}.row-action-trigger{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;width:34px;height:30px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s ease}.projects-table tbody tr:hover .row-action-trigger,.row-action-menu:focus-within .row-action-trigger{opacity:1;pointer-events:auto}.row-action-dropdown{position:fixed;min-width:120px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-md);padding:6px;display:block;z-index:9999}.row-action-item{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--text);border-radius:8px;padding:8px 10px;cursor:pointer}.row-action-item:hover{background:var(--surface-soft)}.row-action-item.danger{color:var(--danger-text)}.form-field{display:grid;gap:6px}.field-label{font-size:.78rem;font-weight:700;color:var(--muted);letter-spacing:.02em}.utility-table{width:100%;table-layout:fixed;font-size:.8rem}.utility-table th,.utility-table td{padding:6px 8px;vertical-align:middle;white-space:normal}.utility-table thead th{line-height:1.15;font-size:.76rem}.utility-table th:nth-child(1),.utility-table td:nth-child(1){width:42px}.utility-sortable-table th:nth-child(2),.utility-sortable-table td:nth-child(2){width:42px}.utility-drag-cell{padding-inline:6px!important;text-align:center}.utility-drag-handle{width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:1rem;font-weight:800;line-height:1;letter-spacing:-3px;cursor:grab}.utility-drag-handle:hover,.utility-drag-handle:focus-visible{border-color:var(--border);background:var(--surface-soft);color:var(--text);outline:none}.utility-drag-handle:active{cursor:grabbing}.utility-row-dragging{opacity:.45}.utility-row-drop-target td{box-shadow:inset 0 2px 0 var(--primary)}.utility-order-status{margin:8px 4px 0}.utility-table th:last-child,.utility-table td:last-child{width:180px;min-width:180px;white-space:nowrap}.utility-table .row-actions-cell>div{justify-content:flex-end;flex-wrap:nowrap}.utility-table .utility-action-pair{display:grid;grid-template-columns:64px 64px;gap:8px;justify-content:end;align-items:center}.utility-table .utility-action-pair .btn{width:64px}.utility-input{width:100%;min-width:0;min-height:32px;padding:6px 8px;font-size:.82rem;border-radius:6px}.utility-input-wide,.utility-input-number{min-width:0}.utility-team-filter{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--text);font-weight:700}.utility-filter-select{width:160px;padding:7px 10px}.utility-generated-value{display:inline-block;width:100%;color:var(--muted);font-size:.82rem}.utility-table .btn-compact{padding:7px 8px;font-size:.75rem}.locations-utility-table th:last-child,.locations-utility-table td:last-child{width:180px;min-width:180px;white-space:nowrap}.locations-utility-table .row-actions-cell>div{justify-content:flex-end;flex-wrap:nowrap}.baseline-template-utility-table{min-width:1120px}.baseline-template-utility-table th:nth-child(3),.baseline-template-utility-table td:nth-child(3){width:180px}.baseline-template-utility-table th:nth-child(4),.baseline-template-utility-table td:nth-child(4){width:240px}.baseline-template-utility-table th:nth-child(5),.baseline-template-utility-table td:nth-child(5),.baseline-template-utility-table th:nth-child(6),.baseline-template-utility-table td:nth-child(6),.baseline-template-utility-table th:nth-child(7),.baseline-template-utility-table td:nth-child(7){width:170px}.utility-template-created-by{display:block;margin-top:2px}.team-members-shell{width:calc(100% - 64px);max-width:none;margin-inline:32px}.team-members-shell .table-wrap{overflow-x:auto}.team-members-shell .utility-table{min-width:1740px;table-layout:auto;font-size:.88rem}.team-members-shell .utility-table th,.team-members-shell .utility-table td{white-space:nowrap}.team-members-shell .utility-table th:nth-child(5),.team-members-shell .utility-table td:nth-child(5),.team-members-shell .utility-table th:nth-child(6),.team-members-shell .utility-table td:nth-child(6){white-space:normal;min-width:120px}@media (max-width: 700px){.team-members-shell{width:auto;margin-inline:16px}}.project-details-shell{max-width:1280px;padding:26px 28px 32px}.project-planning-shell{width:calc(100% - 64px);max-width:none;margin-inline:32px}.project-details-shell>.panel-head{align-items:flex-start;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--border)}.project-details-tabs{display:inline-flex;align-items:center;gap:8px;padding:4px;margin:2px 0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft)}.project-tab{margin-top:0;min-width:136px;padding:10px 18px;border-radius:999px;box-shadow:none}.project-tab.btn-secondary{border-color:transparent;background:transparent}.project-tab.btn-secondary:hover{background:color-mix(in srgb,var(--surface) 72%,var(--surface-soft))}.baseline-version-toolbar{display:flex;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin:8px 0 4px}.baseline-version-picker{width:min(260px,100%)}.baseline-version-picker .field-label{display:block;margin-bottom:6px}.baseline-version-toolbar .btn{margin-top:0;min-height:39px}.baseline-version-message{margin:10px 0 0}.baseline-template-modal{width:min(620px,calc(100vw - 32px))}.baseline-template-description{resize:vertical;min-height:86px}.baseline-template-summary{padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.baseline-template-summary p{margin:0}.baseline-template-summary p+p{margin-top:6px}.baseline-archive-notice{display:flex;align-items:center;gap:10px;margin-top:14px;padding:11px 14px;border:1px solid #f0c36a;border-radius:10px;background:#fff7dc;color:#694c00}@media (max-width: 700px){.baseline-version-toolbar,.baseline-archive-notice{align-items:stretch;flex-direction:column}.baseline-version-picker,.baseline-version-toolbar .btn{width:100%}}.project-section{margin-top:0;padding:22px 0 0;background:transparent;border:0;border-radius:0;box-shadow:none}.project-section+.project-section{margin-top:22px;border-top:1px solid var(--border)}.project-section .panel-head{margin-bottom:16px}.project-section .panel-head h3{font-size:1.02rem;letter-spacing:.01em}.project-details-shell .table-wrap{border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,var(--surface-soft))}.project-details-shell .projects-table thead th{background:color-mix(in srgb,var(--surface) 94%,var(--surface-soft))}.project-details-shell .form-field{padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 90%,var(--surface-soft))}.project-details-shell .search,.project-details-shell select.search{width:100%;background:var(--surface)}.project-name-heading{display:flex;align-items:center;gap:7px;min-height:34px;margin-top:2px}.project-name-text{margin:0;color:var(--text);font-size:1.25rem;font-weight:600}.project-name-edit-button{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer}.project-name-edit-button:hover,.project-name-edit-button:focus-visible{color:var(--text);background:var(--surface-soft);border-color:var(--border)}.project-name-editor{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.project-details-shell .project-name-input{width:min(460px,60vw);min-height:34px;font-size:1rem;font-weight:600}@media (max-width: 700px){.project-details-shell{padding:20px 18px 24px}.project-details-tabs{display:flex;width:100%}.project-tab{flex:1 1 0;min-width:0}}.project-data-layout{display:grid;gap:28px}.project-data-block{padding-top:0}.project-data-block-head{align-items:flex-start;margin-bottom:18px}.project-data-lines{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px 28px}.project-data-line{display:grid;gap:6px}.project-data-label{font-size:.95rem;font-weight:700;color:var(--text)}.project-data-input,.project-data-line .search,.project-data-line select.search{width:100%;min-height:44px;border-radius:10px}.project-data-history{margin-top:18px}.project-data-layout .project-section+.project-section{margin-top:0}.project-data-layout .project-section{border-top:1px solid var(--border);padding-top:24px}.project-data-layout .project-section:first-child{border-top:0;padding-top:0}@media (max-width: 800px){.project-data-lines{grid-template-columns:1fr;gap:12px}}.projects-flow-tabs{display:flex;gap:10px;margin:4px 0 18px}.active-projects-layout{display:grid;gap:24px}.active-projects-section h3{margin:0 0 10px;font-size:1.05rem}.active-projects-table-wrap{max-height:none;overflow-x:auto;overflow-y:clip;overscroll-behavior-x:contain;overscroll-behavior-y:auto}.active-projects-table{table-layout:fixed;min-width:980px}.active-projects-table .active-projects-row-number{width:48px;min-width:48px;max-width:48px;text-align:center}.active-projects-sort-button{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:6px;padding:0;border:0;color:inherit;background:transparent;font:inherit;letter-spacing:inherit;text-align:left;text-transform:inherit;cursor:pointer}.active-projects-sort-button:hover,.active-projects-sort-button:focus-visible{color:var(--text)}.active-projects-sort-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.active-projects-sort-indicator{flex:0 0 auto;font-size:.68rem;opacity:.75}.table-link-button{border:0;padding:0;background:transparent;color:var(--primary);font:inherit;text-align:left;cursor:pointer}.table-link-button:hover{color:var(--primary-hover);text-decoration:underline}@media (max-width: 700px){.projects-flow-tabs{flex-direction:column}}.projects-shell{max-width:none;width:calc(100% - 32px);margin:22px 16px 0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.projects-shell .panel-head{align-items:flex-end;margin-bottom:18px;padding:0 0 0 2px}.projects-shell .panel-head h2{font-size:clamp(1.9rem,2.8vw,2.4rem);letter-spacing:-.04em}.projects-shell .subtitle{max-width:72ch}.projects-flow-tabs{width:max-content;max-width:100%;margin:0 0 22px;padding:4px;gap:8px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,#f8fafcf2,#f1f5f9f2)}.projects-flow-tabs .btn{padding:9px 14px;border-radius:10px;font-size:.88rem}.projects-flow-tabs .btn.btn-secondary{color:var(--muted);background:transparent;border-color:transparent}.projects-flow-tabs .btn.btn-secondary:hover{color:var(--text);background:var(--surface);border-color:var(--border)}.projects-list-head{margin-bottom:18px;padding:0;gap:14px;border:0;border-radius:0;background:transparent}.projects-shell .search{width:100%;min-height:46px;border-radius:12px}.projects-create-btn{padding-inline:18px;border-radius:12px}.projects-shell .table-wrap-projects,.projects-shell .active-projects-table-wrap{width:100%;max-width:100%;max-height:min(70vh,calc(100vh - 220px));border:1px solid color-mix(in srgb,var(--border) 88%,#cbd5e1 12%);border-radius:14px;background:var(--surface);box-shadow:none;overflow:auto}.projects-shell .active-projects-table-wrap{max-height:none;overflow-x:auto;overflow-y:clip;overscroll-behavior-x:contain;overscroll-behavior-y:auto}.projects-shell .projects-table,.projects-shell .projects-list-table,.projects-shell .active-projects-table{width:100%;min-width:0;table-layout:fixed;font-size:.94rem}.projects-shell .active-projects-table{min-width:max(1780px,100%)}.projects-shell .active-projects-table th:nth-child(2),.projects-shell .active-projects-table td:nth-child(2){width:210px}.projects-shell .active-projects-table th:nth-child(3),.projects-shell .active-projects-table td:nth-child(3){width:160px}.projects-shell .active-projects-table th:nth-child(4),.projects-shell .active-projects-table td:nth-child(4){width:180px}.projects-shell .active-projects-table th:nth-child(5),.projects-shell .active-projects-table td:nth-child(5),.projects-shell .active-projects-table th:nth-child(6),.projects-shell .active-projects-table td:nth-child(6),.projects-shell .active-projects-table th:nth-child(8),.projects-shell .active-projects-table td:nth-child(8){width:150px}.projects-shell .active-projects-table th:nth-child(7),.projects-shell .active-projects-table td:nth-child(7){width:120px}.projects-shell .active-projects-table th:nth-child(9),.projects-shell .active-projects-table td:nth-child(9){width:180px}.projects-shell .active-projects-table th:nth-child(10),.projects-shell .active-projects-table td:nth-child(10),.projects-shell .active-projects-table th:nth-child(11),.projects-shell .active-projects-table td:nth-child(11){width:210px}.projects-shell .projects-table thead th{position:sticky;top:0;z-index:1;padding:7px 12px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-bottom:1px solid var(--border-strong);color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.projects-shell .projects-table td{padding:7px 12px;vertical-align:middle;border-bottom:1px solid color-mix(in srgb,var(--border) 82%,white 18%);overflow-wrap:anywhere}.projects-shell .projects-table th{overflow-wrap:anywhere}.projects-shell .projects-table tbody tr{cursor:default}.projects-shell .projects-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface-soft) 55%,white 45%)}.projects-shell .projects-table tbody tr:hover{background:color-mix(in srgb,var(--primary-soft) 42%,white 58%)}.projects-shell .active-projects-table-compact{min-width:max(2050px,100%)}.projects-shell .active-projects-table-compact th:nth-child(12),.projects-shell .active-projects-table-compact td:nth-child(12){width:160px}.projects-shell .active-projects-table-compact td{height:auto;padding-top:5px;padding-bottom:5px;line-height:1.25}.projects-shell .projects-list-table th:nth-child(1),.projects-shell .projects-list-table td:nth-child(1){width:110px}.projects-shell .projects-list-table th:nth-child(5),.projects-shell .projects-list-table td:nth-child(5){width:240px}.projects-shell .projects-list-table th:nth-child(6),.projects-shell .projects-list-table td:nth-child(6){width:110px}.projects-shell .cell-action{text-align:right}.projects-shell .th-sort{color:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit}.projects-shell .table-link-button{color:var(--text);font-weight:700}.projects-shell .table-link-button:hover{color:#0f4c81;text-decoration:none}.active-projects-layout{gap:28px}.active-projects-section{padding-top:20px;border-top:1px solid var(--border);background:transparent}.active-projects-section:first-child{padding-top:0;border-top:0}.active-projects-section h3{margin:0 0 14px;font-size:1.08rem;letter-spacing:-.01em}@media (max-width: 700px){.projects-shell{width:calc(100% - 20px);margin:14px 10px 0;padding:0;border-radius:0}.projects-flow-tabs{width:100%;flex-direction:row}.projects-flow-tabs .btn{flex:1;justify-content:center}.projects-list-head{padding:0}.projects-shell .table-wrap-projects,.projects-shell .active-projects-table-wrap{max-height:min(64vh,calc(100vh - 210px))}.projects-shell .active-projects-table-wrap{max-height:none;overflow-y:clip}.projects-shell .projects-table,.projects-shell .projects-list-table,.projects-shell .active-projects-table{min-width:720px}}.all-projects-table-wrap{max-height:calc(100vh - 260px);overflow-x:auto;overflow-y:auto}.projects-shell .all-projects-table{width:100%;min-width:100%;table-layout:auto}.projects-shell .all-projects-table thead th{white-space:normal}.projects-shell .all-projects-table th:nth-child(1),.projects-shell .all-projects-table td:nth-child(1){width:8%}.projects-shell .all-projects-table th:nth-child(2),.projects-shell .all-projects-table td:nth-child(2){width:24%}.projects-shell .all-projects-table th:nth-child(3),.projects-shell .all-projects-table td:nth-child(3){width:18%}.projects-shell .all-projects-table th:nth-child(4),.projects-shell .all-projects-table td:nth-child(4){width:18%}.projects-shell .all-projects-table th:nth-child(5),.projects-shell .all-projects-table td:nth-child(5){width:22%}.projects-shell .all-projects-table th:nth-child(6),.projects-shell .all-projects-table td:nth-child(6){width:14%}.all-projects-row-actions{display:flex;justify-content:flex-end;gap:6px}.all-projects-delete-btn{color:var(--danger-text)}.all-projects-delete-btn:hover:not(:disabled),.all-projects-delete-btn:focus-visible{border-color:color-mix(in srgb,var(--danger-text) 45%,var(--border));background:var(--danger-soft)}@media (max-width: 700px){.all-projects-table-wrap{max-height:calc(100vh - 220px);overflow-y:auto}.projects-shell .all-projects-table{min-width:720px}}.timesheets-shell .panel-head{align-items:flex-start}.timesheets-subtabs{margin-bottom:16px}.team-section-tabs{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.team-dashboard-shell{display:grid;gap:18px}.team-dashboard-head{margin-bottom:0}.team-dashboard-month-controls{display:flex;justify-content:flex-end;align-items:end;gap:8px}.team-dashboard-month-controls label{display:grid;gap:4px;color:var(--muted);font-size:.75rem;font-weight:700}.team-dashboard-month-controls .search{width:180px}.team-dashboard-members{display:grid;gap:30px}.team-dashboard-member{display:grid;gap:8px}.team-dashboard-member h3{margin:0;font-size:1rem}.team-dashboard-table-wrap{max-height:none;overflow-x:auto}.team-dashboard-table{min-width:840px;table-layout:fixed}.team-dashboard-table th:first-child,.team-dashboard-table td:first-child{width:240px;text-align:left}.team-dashboard-table th:not(:first-child),.team-dashboard-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.team-dashboard-table th{white-space:normal;line-height:1.35}.team-dashboard-total-cell,.team-dashboard-total-row td{font-weight:800}.team-dashboard-time-off-row td{background:#8f72c81a}.team-dashboard-total-row td{background:var(--surface-soft);border-top:2px solid var(--border-strong)}@media (max-width: 760px){.team-dashboard-month-controls{justify-content:flex-start;flex-wrap:wrap}}.timesheets-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.timesheets-shell>.timesheets-controls{margin:-4px 0 14px}.timesheets-month-input{width:170px;min-height:40px}.timesheets-sheet-wrap{display:grid;gap:12px}.timesheets-person-select{display:grid;grid-template-columns:auto minmax(220px,360px);align-items:center;justify-content:start;gap:10px;font-weight:700}.timesheets-month-weeks{display:grid;gap:18px}.timesheets-week-block{display:grid;gap:7px;width:min(100%,1100px);margin-inline:auto}.timesheets-week-block h3{margin:0;font-size:.92rem}.timesheets-week-block .timesheets-table-wrap{max-height:none}.timesheets-empty-note{margin:0;padding:12px 14px;border:1px solid #e8c66f;border-radius:10px;background:#fff7d6;color:#704800}.timesheets-note{justify-self:end;color:var(--muted);font-size:.84rem;letter-spacing:.01em}.timesheets-table-wrap{max-height:calc(100vh - 255px);overflow:auto;overscroll-behavior:contain}.projects-shell .timesheets-table{width:100%;min-width:1100px;table-layout:fixed}.timesheet-frank-column{width:120px}.timesheet-deltek-column{width:150px}.timesheet-project-column{width:280px}.timesheets-table th,.timesheets-table td{text-align:center;white-space:nowrap}.projects-shell .timesheets-table .timesheet-frank-code,.projects-shell .timesheets-table .timesheet-deltek-code,.projects-shell .timesheets-table .timesheet-project-name{position:sticky;text-align:left;white-space:normal;overflow-wrap:anywhere}.timesheets-table .timesheet-frank-code{left:0}.timesheets-table .timesheet-deltek-code{left:120px}.timesheets-table .timesheet-project-name{left:270px}.projects-shell .timesheets-table thead th:nth-child(-n+3){z-index:3}.timesheets-table tbody td:nth-child(-n+3){z-index:1;background:var(--surface)}.timesheets-table tbody tr:hover td:nth-child(-n+3){background:var(--surface-soft)}.timesheets-table td.timesheet-editable-cell{padding:4px}.timesheet-hours-input{width:58px;min-height:30px;border:1px solid transparent;border-radius:7px;padding:4px 6px;color:var(--text);background:transparent;font:inherit;font-variant-numeric:tabular-nums;text-align:center}.timesheet-hours-input:hover{border-color:var(--border-strong);background:var(--surface)}.timesheet-hours-input:focus{border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 22%,transparent);background:var(--surface)}.timesheet-hours-input.saving{opacity:.6;cursor:progress}.timesheet-blocked-cell{background:color-mix(in srgb,#7c6da6 14%,var(--surface-soft))!important}.timesheet-blocked{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 8px;border-radius:7px;color:#574b78;font-size:.76rem;font-weight:700}.timesheet-add-project{display:flex;align-items:center;gap:8px;width:min(520px,100%)}.timesheet-project-controls{display:grid;gap:8px;width:min(520px,100%)}.timesheet-project-list-filter{display:grid;gap:4px;width:min(260px,100%);color:var(--muted);font-size:.78rem;font-weight:700}.timesheet-add-project .search{flex:1}.dashboard-sanity-wrap{max-height:none;overflow-x:auto;overflow-y:visible}.dashboard-sanity-table{min-width:680px}.dashboard-sanity-cell{display:inline-flex;align-items:center;gap:7px;min-width:92px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;font-size:.8rem;font-weight:700}.dashboard-sanity-cell.green{background:color-mix(in srgb,#8fd47a 28%,var(--surface))}.dashboard-sanity-cell.yellow{background:color-mix(in srgb,#f6d66f 32%,var(--surface))}.dashboard-sanity-cell.red{background:color-mix(in srgb,#ef8989 27%,var(--surface))}.dashboard-sanity-group-row td{padding:9px 12px;background:color-mix(in srgb,var(--surface-soft) 80%,var(--border) 20%);color:var(--text);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.project-details-tabs{flex-wrap:wrap}.project-documents-view,.comparable-projects-view{display:grid;gap:22px}.project-document-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-document-card{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}.project-document-card h4,.project-document-card p{margin:0}.project-document-card p{margin-top:5px;color:var(--muted);overflow-wrap:anywhere}.project-meetings-table,.project-proposals-table{min-width:900px}.comparable-currency{display:flex;align-items:center;gap:8px;font-weight:700}.comparable-currency .search{width:110px}.comparable-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px}.comparable-filter-grid>label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft)}.comparable-filter-grid input{accent-color:var(--primary)}.comparable-filter-grid small{grid-column:2 / -1;color:var(--muted)}.comparable-program-filter{grid-column:span 2}.comparable-program-filter>div{grid-column:2 / -1;display:flex;gap:6px;flex-wrap:wrap}.comparable-program-filter i{padding:4px 8px;border-radius:999px;background:var(--primary-soft);font-style:normal;font-size:.78rem}.comparable-result-count{margin:0}.comparable-projects-table{min-width:1550px}@media (max-width: 850px){.project-document-cards,.comparable-filter-grid{grid-template-columns:1fr}.project-document-card{align-items:flex-start;flex-direction:column}.comparable-program-filter{grid-column:auto}}.timesheets-approval-view{display:grid;gap:22px}.timesheets-approval-summary-wrap{overflow-x:auto}.timesheets-approval-summary{min-width:780px}.timesheets-approval-summary tbody tr.selected td{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.timesheet-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.timesheet-status.pending{background:#fff1bd;color:#7a4a00}.timesheet-status.approved{background:#d7f2d0;color:#145c22}.timesheet-approval-actions{justify-content:flex-end;flex-wrap:nowrap}.timesheets-selected-person{display:grid;gap:12px;padding-top:18px;border-top:1px solid var(--border)}.timesheets-selected-person-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.timesheets-selected-person-head h3{margin:0 0 4px}.timesheets-selected-person-head .subtitle{margin:0}@media (max-width: 700px){.timesheets-controls{justify-content:stretch}.timesheets-month-input{width:100%}.timesheets-table-wrap{max-height:calc(100vh - 225px)}.timesheets-subtabs{width:100%}.timesheets-selected-person-head{align-items:flex-start;flex-direction:column}}.team-planning-wrap{max-height:none;max-width:100%;overflow-x:auto;overflow-y:visible}.team-planning-table{min-width:max-content;table-layout:auto}.team-planning-table th,.team-planning-table td{text-align:center;white-space:nowrap;overflow:visible}.team-planning-table th:nth-child(n+3),.team-planning-table td:nth-child(n+3){width:108px;min-width:108px;max-width:108px}.team-planning-table th:nth-child(1),.team-planning-table td:nth-child(1){width:180px;text-align:left}.team-planning-table th:nth-child(2),.team-planning-table td:nth-child(2){width:220px;text-align:left}.team-planning-table:not(.project-planning-table) th,.team-planning-table:not(.project-planning-table) td{padding:7px 6px}.team-planning-table:not(.project-planning-table) th:nth-child(1),.team-planning-table:not(.project-planning-table) td:nth-child(1){width:160px;min-width:160px}.team-planning-table:not(.project-planning-table) th:nth-child(2),.team-planning-table:not(.project-planning-table) td:nth-child(2){width:190px;min-width:190px}.team-planning-table:not(.project-planning-table) th:nth-child(n+3),.team-planning-table:not(.project-planning-table) td:nth-child(n+3){width:90px;min-width:90px;max-width:90px}.team-planning-member{font-weight:700;vertical-align:middle}.projects-shell .team-planning-table tbody tr.team-planning-member-band-light{background:var(--surface)}.projects-shell .team-planning-table tbody tr.team-planning-member-band-muted{background:#e8edf3}.projects-shell .team-planning-table tbody tr.team-planning-member-band-light:not(.team-planning-total-row)>td{background:var(--surface)}.projects-shell .team-planning-table tbody tr.team-planning-member-band-muted:not(.team-planning-total-row)>td{background:#e8edf3}.projects-shell .team-planning-table tbody tr.team-planning-member-band-muted:not(.team-planning-total-row):not(.team-planning-time-off-row) .team-planning-input,.projects-shell .team-planning-table tbody tr.team-planning-member-band-muted:not(.team-planning-total-row) select.utility-input{background:#f0f3f7}.team-planning-total-row td{font-weight:700;border-bottom:2px solid var(--border-strong)}.team-planning-table:not(.project-planning-table) .team-planning-total-row td:nth-child(n+2){text-align:center}.team-planning-table:not(.project-planning-table) .team-planning-time-off-row td:nth-child(n+2){text-align:center}.team-planning-under{background:#fef3c7;color:#92400e}.team-planning-full{background:#9fe08a}.team-planning-over{background:#fecaca;color:#991b1b}.team-planning-empty{background:transparent}.project-planning-stack{display:grid;gap:22px}.project-planning-stage{display:grid;gap:12px}.project-planning-stage+.project-planning-stage{padding-top:22px;border-top:1px solid var(--border)}.project-planning-stage-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.project-planning-stage-head h4{margin:0;font-size:1rem;color:var(--text)}.project-planning-window-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.project-planning-window-controls .subtitle{margin-right:4px}.project-planning-table{min-width:2200px}.project-planning-table th,.project-planning-table td{text-align:center}.project-planning-table th:nth-child(1),.project-planning-table td:nth-child(1){width:200px;text-align:left}.project-planning-table th:nth-child(2),.project-planning-table td:nth-child(2){width:140px;text-align:left}.project-planning-table th:nth-child(3),.project-planning-table td:nth-child(3){width:220px;text-align:left}.project-planning-table th:nth-child(4),.project-planning-table td:nth-child(4){width:160px;min-width:160px;text-align:left}.project-planning-table th:nth-child(n+5),.project-planning-table td:nth-child(n+5){width:82px;min-width:82px;white-space:nowrap}.project-planning-action-cell .btn{white-space:nowrap}.project-planning-action-buttons{display:flex;align-items:center;gap:6px}.project-planning-involvement-input{width:100%;min-width:110px}.project-planning-new-staff-wrap{margin:4px 0 22px}.project-planning-new-staff-table{min-width:1050px}.project-planning-new-staff-table th,.project-planning-new-staff-table td{vertical-align:middle}.project-planning-allocation-input{width:66px;min-height:32px;padding:4px 6px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;text-align:center}.project-planning-allocation-input:focus{outline:2px solid color-mix(in srgb,var(--primary) 30%,transparent);border-color:var(--primary)}@media (max-width: 700px){.project-planning-shell{width:auto;margin-inline:16px}}.project-planning-unallocated{color:var(--muted);font-style:italic}.project-planning-staff-select{width:100%;min-width:0}.team-planning-input{min-width:72px;text-align:center}.team-planning-time-off-input{background:color-mix(in srgb,#8f72c8 9%,var(--surface))}.finances-shell{padding-bottom:26px}.finance-page-head{align-items:flex-end}.finance-section-tabs{display:flex;gap:8px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.finance-section-tabs .btn{padding:8px 15px;border-radius:9px}.finance-derived-table-wrap{margin-top:2px}.finance-derived-table{min-width:860px}.finance-total-row td{background:var(--surface-soft)}.finance-invoice-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 2px 14px}.finance-invoice-head h3{margin:0;font-size:1.18rem}.finance-month-controls{display:flex;align-items:flex-end;gap:8px}.finance-month-field{display:grid;gap:5px;min-width:190px;color:var(--muted);font-size:.76rem;font-weight:700}.finance-month-field .search{min-height:35px;padding:7px 10px}.finance-error{margin:0 2px 12px}.projects-shell .finance-invoices-table-wrap{max-height:min(72vh,calc(100vh - 235px));overflow:auto;border-radius:14px}.projects-shell .finance-invoices-table{width:100%;min-width:3100px;table-layout:fixed;font-size:.86rem}.projects-shell .finance-invoices-table th{white-space:normal;line-height:1.25}.finance-invoices-table th:nth-child(1),.finance-invoices-table td:nth-child(1){width:200px}.finance-invoices-table th:nth-child(2),.finance-invoices-table td:nth-child(2){width:150px}.finance-invoices-table th:nth-child(3),.finance-invoices-table td:nth-child(3){width:145px}.finance-invoices-table th:nth-child(4),.finance-invoices-table td:nth-child(4){width:130px}.finance-invoices-table th:nth-child(5),.finance-invoices-table td:nth-child(5),.finance-invoices-table th:nth-child(6),.finance-invoices-table td:nth-child(6){width:142px}.finance-invoices-table th:nth-child(7),.finance-invoices-table td:nth-child(7){width:120px}.finance-invoices-table th:nth-child(8),.finance-invoices-table td:nth-child(8){width:160px}.finance-invoices-table th:nth-child(9),.finance-invoices-table td:nth-child(9){width:130px}.finance-invoices-table th:nth-child(10),.finance-invoices-table td:nth-child(10){width:125px}.finance-invoices-table th:nth-child(11),.finance-invoices-table td:nth-child(11){width:150px}.finance-invoices-table th:nth-child(12),.finance-invoices-table td:nth-child(12){width:220px}.finance-invoices-table th:nth-child(13),.finance-invoices-table td:nth-child(13){width:165px}.finance-invoices-table th:nth-child(14),.finance-invoices-table td:nth-child(14){width:185px}.finance-invoices-table th:nth-child(15),.finance-invoices-table td:nth-child(15){width:260px}.finance-invoices-table th:nth-child(16),.finance-invoices-table td:nth-child(16),.finance-invoices-table th:nth-child(17),.finance-invoices-table td:nth-child(17){width:240px}.finance-invoices-table th:nth-child(18),.finance-invoices-table td:nth-child(18){width:150px}.finance-invoices-table .utility-input{min-height:34px;font-size:.8rem}.finance-contractor-name{font-weight:700}.finance-status{display:inline-flex;align-items:center;justify-content:center;min-width:88px;padding:4px 9px;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:capitalize}.finance-status-button{border:0;font-family:inherit;cursor:pointer;transition:filter .12s ease,transform .12s ease}.finance-status-button:hover:not(:disabled),.finance-status-button:focus-visible{filter:brightness(.94);transform:translateY(-1px)}.finance-status-button:disabled{cursor:wait;opacity:.65}.finance-status-outstanding{color:#92400e;background:#fef3c7}.finance-status-paid{color:#166534;background:#dcfce7}.finance-status-late{color:var(--danger-text);background:var(--danger-soft)}.finance-row-actions{white-space:nowrap}.finance-row-actions .utility-action-pair{display:grid;grid-template-columns:64px 64px;gap:7px;justify-content:end}.finance-document-cell{min-width:240px;white-space:nowrap}.finance-document-cell .utility-action-pair{display:flex;gap:6px;align-items:center}.finance-project-breakdown-cell{min-width:220px}.finance-project-breakdown-cell>span{display:block;margin-bottom:5px}.finance-add-allocation{white-space:nowrap}.projects-shell .finance-invoices-table tbody tr.finance-invoice-group-light>td{background:#fff}.projects-shell .finance-invoices-table tbody tr.finance-invoice-group-muted>td{background:#f6f8fb}.finance-allocation-row td{border-top:0;border-bottom-color:#e5eaf1}.finance-allocation-row .utility-input{width:100%}.finance-allocation-label{padding-left:28px!important;color:var(--muted-text);font-weight:700}.finance-allocation-new-row td{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 18%,transparent)}.active-projects-head-actions,.currency-toggle{display:flex;align-items:center;gap:8px}.active-projects-head-actions{margin-left:auto}.finance-new-row{background:color-mix(in srgb,var(--primary-soft) 18%,var(--surface))}.finance-empty-row td{padding-block:16px;text-align:center}@media (max-width: 700px){.dashboard-finance-total-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.finance-page-head,.finance-invoice-head{align-items:stretch;flex-direction:column}.finance-section-tabs{width:max-content}.finance-month-controls{align-items:stretch;flex-wrap:wrap}.finance-month-field{flex:1 1 180px}}.staff-email-field{min-width:260px;display:flex;flex-direction:column;gap:6px}.staff-email-field .utility-input{width:100%}.staff-email-field small{white-space:normal;max-width:320px}.staff-email-field button{align-self:flex-start}
