:root{color-scheme:dark;--bg: #08111d;--bg-elevated: #0d1726;--bg-panel: #111d2f;--bg-panel-strong: #16243a;--border: rgba(148, 163, 184, .18);--border-strong: rgba(148, 163, 184, .3);--text: #e5eefc;--muted: #93a4bf;--color-primary: #6ea8fe;--color-primary-soft: #7dd3fc;--color-primary-dark: #4f83e8;--color-attention: #f3b44b;--color-success: #72d7a6;--color-danger: #f58e8e;--color-neutral: #93a4bf;--accent: var(--color-primary);--accent-soft: rgba(110, 168, 254, .14);--success: var(--color-success);--danger: var(--color-danger);--chart-current: var(--color-primary);--chart-previous: var(--color-primary-soft);--chart-expected: var(--color-neutral);--chart-actual: var(--color-primary);--chart-billable: var(--color-primary-dark);--chart-internal: var(--color-neutral);--chart-gap: var(--color-attention);--chart-forecast: var(--color-primary-soft);--chart-balanced: var(--color-success);--chart-watch: var(--color-attention);--chart-under: var(--color-attention);--chart-over: var(--color-danger);--chart-muted: var(--color-neutral);--heatmap-none: rgba(255, 255, 255, .035);--heatmap-low: rgba(125, 211, 252, .18);--heatmap-medium: rgba(243, 181, 75, .3);--heatmap-high: rgba(245, 142, 142, .42);--heatmap-weekend: rgba(18, 26, 39, .9);--heatmap-holiday: rgba(155, 140, 255, .24);--heatmap-holiday-border: rgba(155, 140, 255, .42);--shadow: 0 18px 50px rgba(2, 8, 20, .42);--radius-lg: 20px;--radius-md: 14px;--radius-sm: 10px;--page-gap: 24px;font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;background:radial-gradient(circle at top left,rgba(110,168,254,.08),transparent 24%),radial-gradient(circle at top right,rgba(125,211,252,.04),transparent 22%),linear-gradient(180deg,#07131f,#09131f);color:var(--text)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}pre{margin:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-topbar{border-bottom:1px solid var(--border);background:#09131feb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:18px var(--page-gap);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.9fr) auto;gap:14px;align-items:center}.top-nav{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.topbar-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.topbar-account{display:inline-flex;align-items:center;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.92rem}.topbar-sign-out{border:1px solid var(--border);border-radius:999px;background:#ffffff08;color:var(--text);padding:8px 14px;cursor:pointer}.topbar-sign-out:hover,.topbar-sign-out:focus-visible{border-color:#6ea8fe5c;background:#6ea8fe1f;outline:none}.app-auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.app-content{min-width:0;display:grid;grid-template-columns:360px minmax(0,1fr);gap:16px;padding:16px var(--page-gap) var(--page-gap);flex:1}.app-sidebar{min-width:0;border-right:1px solid var(--border);background:#08111deb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:28px 20px;display:flex;flex-direction:column;gap:28px;overflow-x:hidden;overflow-y:auto}.app-sidebar-collapsed{padding:12px 8px}.app-content-filters-collapsed{grid-template-columns:56px minmax(0,1fr)}.sidebar-panel{min-width:0;width:100%;padding:18px;border-radius:var(--radius-md);background:linear-gradient(180deg,#16243aeb,#111d2ffa);border:1px solid rgba(148,163,184,.22);box-shadow:0 14px 34px #02081438,inset 0 1px #ffffff05}.sidebar-panel-compact{width:100%;display:grid;gap:14px}.brand-lockup h1,.app-header h2,.page-header h3{margin:0;letter-spacing:-.02em}.brand-lockup h1{font-size:1.28rem}.brand-kicker,.page-eyebrow{display:inline-flex;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--muted);margin-bottom:8px}.header-meta,.page-description,.sidebar-footer p,.muted-text{color:var(--muted);margin:6px 0 0}.sidebar-nav{display:grid;gap:8px}.nav-link{padding:12px 14px;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--muted);background:transparent;transition:border-color .12s ease,background .12s ease,color .12s ease}.nav-link:hover,.nav-link:focus-visible{border-color:var(--border);background:#ffffff08;color:var(--text);outline:none}.nav-link-active{color:var(--text);border-color:#6ea8fe57;background:var(--accent-soft)}.section-nav-chips{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 6px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(180deg,#111d2fc7,#0d1726e0);box-shadow:0 12px 28px #02081424,inset 0 1px #ffffff05}.section-nav-chips a,.section-nav-chips button,.section-nav-chip{display:inline-flex;align-items:center;min-height:38px;padding:8px 14px;border-radius:999px;border:1px solid rgba(148,163,184,.18);background:#94a3b814;color:var(--muted);font-size:.92rem;font-weight:600;letter-spacing:.01em;transition:transform .12s ease,border-color .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease}.section-nav-chips a:hover,.section-nav-chips a:focus-visible,.section-nav-chips button:hover,.section-nav-chips button:focus-visible,.section-nav-chip:hover,.section-nav-chip:focus-visible{color:var(--text);border-color:#6ea8fe57;background:#6ea8fe1f;transform:translateY(-1px);outline:none}.section-nav-chip-active,.section-nav-chips a[aria-current=page],.section-nav-chips a[aria-current=true]{color:var(--text);border-color:#6ea8fe6b;background:var(--accent-soft);box-shadow:0 0 0 1px #6ea8fe14 inset}.sidebar-footer{margin-top:auto;padding-top:18px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:center}.status-dot{width:10px;height:10px;border-radius:999px;background:var(--success);box-shadow:0 0 0 4px #72d7a624;flex:0 0 auto}.app-main{padding:var(--page-gap)}.page-card{background:linear-gradient(180deg,#16243af0,#0d1726fa);border:1px solid rgba(148,163,184,.22);border-radius:var(--radius-lg);padding:24px;box-shadow:0 18px 50px #02081461,inset 0 1px #ffffff05}.page-header{display:grid;gap:6px}.page-question-header{display:grid;gap:8px;margin-bottom:12px;padding-bottom:18px;border-bottom:1px solid rgba(148,163,184,.14)}.page-question-header h3{font-size:1.75rem}.page-question-header .page-description{max-width:72ch}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.section-header-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.section-header h4{margin:0;font-size:1rem}.section-header-description{margin:4px 0 0;color:var(--muted);font-size:.9rem}.section-header-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;border:1px solid rgba(110,168,254,.28);background:#6ea8fe1f;color:#cfe1ff;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.section-header-action{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.section-nav-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 8px}.section-nav-chip{display:inline-flex;align-items:center;min-height:30px;padding:4px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.2);background:#ffffff08;color:var(--text);font-size:.78rem;font-weight:600;letter-spacing:.01em;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.section-nav-chip:hover,.section-nav-chip:focus-visible{border-color:#6ea8fe5c;background:#6ea8fe1f;color:#eaf3ff;outline:none;transform:translateY(-1px)}.page-section-anchor{scroll-margin-top:96px}.drilldown-table-action-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:10px;border:1px solid rgba(148,163,184,.18);background:#0f172a85;color:var(--text);cursor:pointer}.drilldown-table-action-button svg{width:15px;height:15px;fill:currentColor}.drilldown-table-action-button:hover,.drilldown-table-action-button:focus-visible{border-color:#6ea8fe5c;background:#6ea8fe1f;outline:none}.page-header h3{font-size:1.6rem}.page-body{margin-top:22px}.diagnostics-grid{display:grid;gap:16px}.diagnostics-card{padding:18px;border-radius:var(--radius-md);background:linear-gradient(180deg,#16243aeb,#111d2ffa);border:1px solid rgba(148,163,184,.22);box-shadow:0 14px 36px #02081438,inset 0 1px #ffffff05}.card-label{display:inline-flex;margin-bottom:12px;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.status-block{display:grid;gap:12px}.status-text{font-weight:600;margin:0}.status-text-success{color:var(--success)}.status-text-error{color:var(--danger)}.json-block{padding:14px;border-radius:var(--radius-sm);background:#00000038;border:1px solid var(--border);overflow:auto}.overview-stack{display:grid;gap:20px;margin-top:16px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-grid-six{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid-five{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.signal-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.signal-card{display:grid;gap:6px;padding:14px 14px 14px 16px;border-radius:var(--radius-md);border:1px solid rgba(148,163,184,.22);background:linear-gradient(180deg,#16243aeb,#111d2ffa);border-left-width:3px;box-shadow:0 14px 30px #0208142e,inset 0 1px #ffffff05}.signal-card-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.signal-card-value{font-size:1.1rem;color:var(--text)}.signal-card-description{color:var(--muted);font-size:.88rem}.signal-card-warning{border-color:#f3c56b47;border-left-color:#f3c56bb8}.signal-card-danger{border-color:#f58e8e47;border-left-color:#f58e8eb8}.signal-card-accent{border-color:#6ea8fe47;border-left-color:#6ea8feb8}.signal-card-neutral{border-left-color:#94a3b88f}.drilldown-section{display:grid;gap:12px}.drilldown-collapsible{border:0;padding:0}.drilldown-summary{list-style:none;cursor:pointer}.drilldown-summary::-webkit-details-marker{display:none}.drilldown-summary .section-header{margin-bottom:0}.drilldown-collapsible-body{margin-top:4px}.metric-card,.table-card,.chart-card,.status-box{background:var(--bg-panel-strong);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.metric-card{display:grid;gap:8px;min-height:92px}.metric-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.metric-value{font-size:1.35rem;color:var(--text)}.table-grid{display:grid;gap:14px}.project-selector-grid{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:end;margin-top:10px}.project-selector-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.chart-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:stretch}.chart-card{display:grid;gap:12px;min-width:0}.chart-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.chart-card h4{margin:0;font-size:1rem}.chart-card-description{margin:4px 0 0;color:var(--muted);font-size:.9rem}.chart-surface{position:relative;width:100%;min-height:260px}.chart-surface-donut{min-height:320px}.chart-tooltip{border:1px solid var(--border-strong);border-radius:12px;background:#08111df5;padding:10px 12px;box-shadow:var(--shadow);min-width:180px}.chart-tooltip-label{color:var(--text);font-size:.88rem;font-weight:600;margin-bottom:8px}.chart-tooltip-meta{color:var(--muted);font-size:.76rem;margin:-4px 0 8px;letter-spacing:.02em}.chart-tooltip-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;color:var(--muted);font-size:.84rem}.chart-tooltip-row+.chart-tooltip-row{margin-top:6px}.chart-tooltip-swatch{width:10px;height:10px;border-radius:999px}.chart-tooltip-name{color:var(--text)}.chart-tooltip-value{color:var(--text);font-variant-numeric:tabular-nums}.chart-tooltip-value-positive{color:var(--success)}.chart-tooltip-value-negative{color:var(--danger)}.chart-tooltip-value-neutral{color:var(--text)}.chart-donut-center{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:4px;pointer-events:none}.chart-donut-total{font-size:1.5rem;font-weight:700;color:var(--text)}.chart-donut-label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.table-card h4{margin:0 0 12px;font-size:1rem}.table-card table{width:100%;border-collapse:collapse}.capacity-table{table-layout:fixed}.capacity-table-exception{table-layout:auto;min-width:100%}.capacity-table-exception th,.capacity-table-exception td{padding:12px 14px}.table-card th,.table-card td{padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.14);text-align:left;vertical-align:top}.table-card td{overflow-wrap:anywhere}.delivery-pace-risk-cell{white-space:nowrap;width:1%;min-width:110px}.delivery-pace-risk-cell .project-status-chip{display:inline-flex;white-space:nowrap}.table-card th{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.status-box-error{border-color:#f58e8e5c;color:var(--color-danger);background:#f58e8e14}.status-box-note{color:var(--color-neutral)}.capacity-exception-section{gap:14px}.capacity-table-card{padding:0;overflow-x:auto}.consultant-focus-panel{display:grid;gap:14px}.capacity-table-exception{min-width:760px}.capacity-table-exception .capacity-consultant-cell{max-width:none;white-space:normal;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.capacity-consultant-header,.capacity-metric-header,.capacity-status-header,.capacity-scope-header,.capacity-metric-cell,.capacity-status-cell{white-space:nowrap}.capacity-metric-cell{font-variant-numeric:tabular-nums}.capacity-scope-cell{min-width:240px;overflow-wrap:break-word}.risk-summary-card{padding:16px;border-radius:var(--radius-md);background:var(--bg-panel-strong);border:1px solid var(--border)}.risk-grid{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.risk-item{display:grid;gap:6px;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff05}.risk-item strong{font-size:1.2rem}.risk-item span{color:var(--muted);font-size:.88rem}.status-pill{display:inline-flex;align-items:center;width:fit-content;min-height:28px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.status-pill-under{color:var(--color-attention);border-color:#f3b44b59;background:#f3b44b14}.status-pill-watch{color:var(--color-attention);border-color:#f3b44b57;background:#f3b44b14}.status-pill-balanced{color:var(--color-success);border-color:#72d7a647;background:#72d7a614}.status-pill-over{color:var(--color-danger);border-color:#f58e8e57;background:#f58e8e14}.project-status-chip{font-weight:700}.project-status-chip-not_started{color:#d6deea;border-color:#93a4bf3d;background:#93a4bf1a}.project-status-chip-in_progress{color:#cfe1ff;border-color:#6ea8fe3d;background:#6ea8fe1f}.project-status-chip-in_approval{color:#f9e3b2;border-color:#f3b54b3d;background:#f3b54b1f}.project-status-chip-on_hold{color:#f6c0c0;border-color:#f58e8e3d;background:#f58e8e1f}.project-status-chip-done{color:#c7edd9;border-color:#72d7a63d;background:#72d7a61f}.project-status-chip-mixed,.project-status-chip-unknown{color:#d6deea;border-color:#93a4bf3d;background:#93a4bf14}.task-status-summary-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.task-status-summary-card{display:grid;gap:4px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.18);background:#ffffff08;border-left-width:3px;box-shadow:0 12px 24px #02081424,inset 0 1px #ffffff05}.task-status-summary-label{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.task-status-summary-value{font-size:1.2rem;color:var(--text)}.task-status-summary-card-neutral{border-color:#93a4bf33;border-left-color:#93a4bf8c}.task-status-summary-card-accent{border-color:#6ea8fe33;border-left-color:#6ea8feb3}.task-status-summary-card-warning{border-color:#f3b54b33;border-left-color:#f3b54bb3}.task-status-summary-card-danger{border-color:#f58e8e33;border-left-color:#f58e8eb3}.task-status-summary-card-success{border-color:#72d7a633;border-left-color:#72d7a6b3}.project-task-status-groups{display:grid;gap:12px}.project-task-table-card,.macro-budget-table-card{padding:0;overflow-x:auto}.macro-budget-table-card table{min-width:680px}.project-task-table{width:100%;min-width:980px;border-collapse:collapse}.project-task-table th,.project-task-table td{padding:10px 12px;border-bottom:1px solid rgba(148,163,184,.14);vertical-align:top}.project-task-table th{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.project-task-issue-key,.project-task-status,.project-task-parent,.project-task-epic,.project-task-date,.project-task-hours{white-space:nowrap}.project-task-summary{min-width:260px;white-space:normal;overflow-wrap:break-word;word-break:normal}.project-task-issue-key{font-weight:700}.project-task-hours{font-variant-numeric:tabular-nums}.project-budget-row-within-budget td{background:#72d7a60d}.project-budget-row-near-budget td{background:#f3b44b0d}.project-budget-row-over-budget td{background:#f58e8e0f}.project-budget-row-no-estimate td{background:#93a4bf08}.project-budget-row-within-budget td:first-child{box-shadow:inset 3px 0 #72d7a694}.project-budget-row-near-budget td:first-child{box-shadow:inset 3px 0 #f3b44b94}.project-budget-row-over-budget td:first-child{box-shadow:inset 3px 0 #f58e8eb8}.project-budget-row-no-estimate td:first-child{box-shadow:inset 3px 0 #93a4bf6b}.project-task-alert-card{display:grid;gap:12px}.capacity-consultant-cell{max-width:240px;white-space:normal;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.selected-detail-card{border-color:#6ea8fe52;background:linear-gradient(180deg,rgba(110,168,254,.07),transparent 42%),var(--bg-panel-strong)}.selected-detail-panel{display:grid;gap:14px}.selected-detail-metrics{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.delivery-activity-section{gap:14px}.delivery-activity-metrics{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.delivery-activity-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.delivery-activity-table-card{display:grid;gap:10px}.delivery-activity-table-wrap{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.14)}.delivery-activity-table{min-width:680px}.delivery-activity-table th,.delivery-activity-table td{padding:8px 10px}.report-issue-table-wrap{overflow:hidden;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.14)}.report-issue-table{width:100%;min-width:0;table-layout:fixed}.report-issue-table th,.report-issue-table td{padding:8px 10px;overflow:hidden}.report-issue-table th,.report-issue-key,.report-issue-assignee,.report-issue-target,.report-issue-hours{white-space:nowrap}.report-issue-summary,.report-issue-key,.report-issue-assignee,.report-issue-target{text-overflow:ellipsis}.report-issue-table th:nth-child(1),.report-issue-table td:nth-child(1){width:96px}.report-issue-table th:nth-child(2),.report-issue-table td:nth-child(2){width:auto}.report-issue-table th:nth-child(3),.report-issue-table td:nth-child(3){width:140px}.report-issue-table th:nth-child(4),.report-issue-table td:nth-child(4){width:130px}.report-issue-table th:nth-child(5),.report-issue-table td:nth-child(5){width:76px}.report-issue-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-note{margin:0;color:var(--muted);font-size:.92rem}.status-summary-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.planning-indicator-grid{display:grid;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.planning-indicator-card{display:grid;gap:8px;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff05}.planning-indicator-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.planning-indicator-value{font-size:1.15rem}.planning-indicator-bar{display:block;height:6px;border-radius:999px;background:#ffffff0f;overflow:hidden}.planning-indicator-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6ea8fea6,#6ea8fe)}.calendar-heatmap{display:grid;gap:12px}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px}.calendar-legend-item{display:inline-flex;gap:8px;align-items:center;color:var(--muted);font-size:.82rem}.calendar-swatch{width:12px;height:12px;border-radius:4px;border:1px solid var(--border)}.calendar-swatch-0{background:var(--heatmap-none)}.calendar-swatch-1{background:var(--heatmap-low)}.calendar-swatch-2{background:var(--heatmap-medium)}.calendar-swatch-3{background:var(--heatmap-high)}.calendar-swatch-weekend{background:linear-gradient(135deg,rgba(255,255,255,.08) 25%,transparent 25% 50%,rgba(255,255,255,.08) 50% 75%,transparent 75%),var(--heatmap-weekend);background-size:8px 8px}.calendar-swatch-holiday{background:var(--heatmap-holiday)}.calendar-month-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.calendar-month-card{padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffff05}.calendar-month-label{margin-bottom:8px;color:var(--text);font-weight:600}.calendar-weekday-row,.calendar-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekday-row{margin-bottom:6px;color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.08em}.calendar-day{min-height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-size:.74rem;color:var(--text);border:1px solid transparent}.calendar-day-empty{background:transparent}.calendar-day-outside{color:#93a4bf6b;background:#ffffff04}.calendar-day-weekend{background:linear-gradient(135deg,rgba(255,255,255,.04) 25%,transparent 25% 50%,rgba(255,255,255,.04) 50% 75%,transparent 75%),var(--heatmap-weekend);background-size:10px 10px;border-color:#93a4bf38;color:#e5eefce6}.calendar-day-holiday{background:var(--heatmap-holiday);border-color:var(--heatmap-holiday-border);color:var(--text)}.calendar-day-bank-holiday{box-shadow:inset 0 0 0 1px #9b8cff38}.calendar-day-level-0{background:var(--heatmap-none)}.calendar-day-level-1{background:var(--heatmap-low)}.calendar-day-level-2{background:var(--heatmap-medium)}.calendar-day-level-3{background:var(--heatmap-high)}.calendar-day-level-0.calendar-day-weekend{background:linear-gradient(135deg,rgba(255,255,255,.04) 25%,transparent 25% 50%,rgba(255,255,255,.04) 50% 75%,transparent 75%),var(--heatmap-weekend)}.calendar-day-level-0.calendar-day-holiday{background:var(--heatmap-holiday)}.calendar-day-level-0.calendar-day-weekend.calendar-day-holiday{background:linear-gradient(135deg,rgba(255,255,255,.04) 25%,transparent 25% 50%,rgba(255,255,255,.04) 50% 75%,transparent 75%),linear-gradient(180deg,#9b8cff24,#4b55632e)}.project-timeline-compact .project-timeline-legend{gap:4px}.project-timeline-compact .project-timeline-scale{gap:6px}.project-timeline-compact .project-timeline-scale-label{font-size:.72rem;letter-spacing:.1em}.project-timeline-compact .project-timeline-body{gap:8px;max-height:520px}.project-timeline-scale{display:grid;gap:8px;position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#101d2efa,#101d2ef0);padding-top:2px}.project-timeline-scale-label{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em}.project-timeline-scale-track{position:relative;min-height:28px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff05;overflow:hidden}.project-timeline-scale-tick{position:absolute;top:6px;transform:translate(-50%);color:var(--muted);font-size:.72rem;white-space:nowrap}.project-timeline-group{display:grid;gap:10px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffff05}.project-timeline-group-header{display:flex;gap:12px;align-items:center;justify-content:space-between}.project-timeline-group-header h5{margin:0;font-size:.96rem}.project-timeline-group-header p{margin:2px 0 0;color:var(--muted);font-size:.84rem}.project-timeline-rows{display:grid;gap:10px}.project-timeline-row{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(280px,1.25fr);align-items:stretch;min-height:82px}.project-timeline-summary-cell{min-width:0;display:grid;gap:5px}.project-timeline-key{color:var(--text);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.project-timeline-summary{color:var(--text);overflow-wrap:break-word;word-break:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-timeline-meta{display:flex;flex-wrap:wrap;gap:6px}.timeline-badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:#ffffff08;color:var(--text);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.timeline-badge-target{color:var(--accent);border-color:#6ea8fe47;background:#6ea8fe14}.timeline-badge-issue{color:var(--chart-previous);border-color:#7dd3fc3d;background:#7dd3fc14}.timeline-badge-worklog{color:var(--chart-gap);border-color:#f3b44b3d;background:#f3b44b14}.project-timeline-rail{position:relative;min-height:66px;border-radius:var(--radius-sm);border:1px solid var(--border);background:linear-gradient(90deg,#ffffff05,#ffffff04),#ffffff05;overflow:hidden}.project-timeline-bar{position:absolute;top:18px;bottom:18px;border-radius:999px;background:linear-gradient(90deg,#6ea8fee6,#6ea8fe73);border:1px solid rgba(110,168,254,.6);box-shadow:0 8px 16px #0f172a47}.chart-grid-secondary{grid-template-columns:minmax(0,1fr)}.report-effort-chart-grid{display:grid;gap:14px;align-items:stretch}.report-effort-chart-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.report-effort-chart-grid-one{grid-template-columns:minmax(0,1fr)}@media (max-width: 1120px){.report-effort-chart-grid-two{grid-template-columns:minmax(0,1fr)}}.filter-field{display:grid;gap:6px;min-width:0}.filter-field span{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.filter-field input,.filter-field select{width:100%;max-width:100%;min-width:0;display:block;min-height:40px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text)}.filter-actions{display:flex;align-items:end;gap:10px}.sidebar-filter-grid{min-width:0;display:grid;gap:12px}.filter-field-group{display:grid;gap:12px}.filter-field-group-title{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em}.advanced-filter-group{display:grid;gap:12px;padding:12px 0 0;border-top:1px solid var(--border)}.advanced-filter-summary{cursor:pointer;list-style:none;color:var(--text);font-size:.9rem;font-weight:600}.advanced-filter-summary::-webkit-details-marker{display:none}.advanced-filter-group[open] .advanced-filter-summary{margin-bottom:4px}.sidebar-filter-actions{display:flex;width:100%;gap:10px;flex-wrap:wrap}.sidebar-filter-actions .filter-button{flex:1;min-width:0}.sidebar-note{color:var(--muted);margin:0;font-size:.92rem}.sidebar-note-strong{padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff08}.selected-filter-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 14px}.selected-filter-pill{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#ffffff08;color:var(--muted);font-size:.82rem}.selected-filter-pill.project-status-chip{color:var(--text);font-weight:700;white-space:nowrap;flex-shrink:0}.selected-filter-pill.project-status-chip-not_started{color:var(--color-neutral);border-color:#93a4bf3d;background:#93a4bf1a}.selected-filter-pill.project-status-chip-in_progress{color:var(--color-primary);border-color:#6ea8fe3d;background:#6ea8fe1f}.selected-filter-pill.project-status-chip-in_approval{color:var(--color-attention);border-color:#f3b44b3d;background:#f3b44b1f}.selected-filter-pill.project-status-chip-on_hold{color:var(--color-danger);border-color:#f58e8e3d;background:#f58e8e1f}.selected-filter-pill.project-status-chip-done{color:var(--color-success);border-color:#72d7a63d;background:#72d7a61f}.selected-filter-pill.project-status-chip-mixed,.selected-filter-pill.project-status-chip-unknown{color:var(--color-neutral);border-color:#93a4bf3d;background:#93a4bf14}.filter-button{width:100%;min-height:40px;padding:10px 14px;border-radius:10px;border:1px solid rgba(110,168,254,.35);background:var(--accent-soft);color:var(--text);font-weight:600}.filter-button-secondary{border-color:var(--border);background:transparent}@media (max-width: 920px){.app-shell{display:flex;flex-direction:column}.app-sidebar{border-right:0;border-bottom:1px solid var(--border);max-height:42vh}.app-topbar{grid-template-columns:1fr;justify-items:start}.top-nav{justify-content:flex-start}.topbar-meta{justify-content:flex-start;flex-wrap:wrap}.app-content{grid-template-columns:1fr}.metric-grid,.metric-grid-six,.metric-grid-five,.risk-grid,.signal-grid,.selected-detail-metrics,.status-summary-grid,.planning-indicator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-selector-grid,.project-timeline-row,.filter-bar{grid-template-columns:1fr}.filter-actions{justify-content:stretch}.filter-actions .filter-button{flex:1}.sidebar-filter-actions{flex-direction:column}.sidebar-filter-actions .filter-button{width:100%}.capacity-consultant-cell{max-width:180px}}:root{--heatmap-pressure-none: rgba(148, 163, 184, .08);--heatmap-pressure-low: rgba(56, 189, 248, .18);--heatmap-pressure-medium: rgba(245, 158, 11, .24);--heatmap-pressure-high: rgba(239, 68, 68, .3)}.training-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.ranked-list{display:grid;gap:12px}.ranked-list-row{display:grid;gap:8px;padding:12px 14px;border:1px solid rgba(148,163,184,.16);border-radius:14px;background:#0f172a66}.ranked-list-row-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px}.ranked-list-rank{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;border:1px solid rgba(148,163,184,.2);background:#1e293be6;color:var(--text);font-size:12px;font-weight:700}.ranked-list-row-text{min-width:0}.ranked-list-label{color:var(--text);font-size:14px;font-weight:600;line-height:1.35;overflow-wrap:break-word;word-break:normal}.ranked-list-detail{margin-top:2px;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:break-word;word-break:normal}.ranked-list-value{color:var(--text);font-size:13px;font-weight:700;white-space:nowrap}.ranked-list-bar-track{width:100%;height:8px;border-radius:999px;background:#94a3b81f;overflow:hidden}.ranked-list-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--chart-current),var(--chart-expected))}.ranked-list-footer{margin-top:12px;color:var(--muted);font-size:12px}.capacity-exception-card{width:100%}.capacity-table-card{overflow-x:auto}.capacity-table-exception{width:100%;table-layout:auto}.capacity-consultant-cell,.capacity-scope-cell{min-width:0;white-space:normal;overflow-wrap:break-word;word-break:normal}.capacity-metric-cell,.capacity-metric-header,.capacity-status-cell,.capacity-status-header{white-space:nowrap}.compact-calendar-heatmap{display:grid;gap:12px}.compact-calendar-legend{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;color:var(--muted);font-size:12px}.compact-calendar-legend-item{display:inline-flex;align-items:center;gap:8px}.compact-calendar-legend-swatch{width:12px;height:12px;border-radius:999px;border:1px solid rgba(148,163,184,.24)}.compact-calendar-band-none{background:var(--heatmap-pressure-none)}.compact-calendar-band-low{background:var(--heatmap-pressure-low)}.compact-calendar-band-medium{background:var(--heatmap-pressure-medium)}.compact-calendar-band-high{background:var(--heatmap-pressure-high)}.compact-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.compact-calendar-cell{position:relative;min-height:54px;padding:8px;border:1px solid rgba(148,163,184,.16);border-radius:12px;color:var(--text);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;background:var(--heatmap-pressure-none);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:default;transition:transform .12s ease,border-color .12s ease,background-color .12s ease}.compact-calendar-cell:hover{transform:translateY(-1px);border-color:#94a3b84d}.compact-calendar-cell:focus-visible{outline:2px solid rgba(110,168,254,.5);outline-offset:2px}.compact-calendar-cell-empty{min-height:54px;border:1px dashed rgba(148,163,184,.1);background:#0f172a2e}.compact-calendar-cell-weekend{border-style:dashed;background:linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),var(--heatmap-weekend);background-size:10px 10px;border-color:#94a3b838}.compact-calendar-cell-official-holiday{box-shadow:inset 0 0 0 1px #fbbf2473}.compact-calendar-cell-bank-holiday{box-shadow:inset 0 0 0 1px #22c55e61}.compact-calendar-cell.compact-calendar-band-low{background:var(--heatmap-pressure-low)}.compact-calendar-cell.compact-calendar-band-medium{background:var(--heatmap-pressure-medium)}.compact-calendar-cell.compact-calendar-band-high{background:var(--heatmap-pressure-high)}.compact-calendar-cell-weekend.compact-calendar-band-none{background:linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),var(--heatmap-weekend)}.compact-calendar-cell-weekend.compact-calendar-band-low{background:linear-gradient(180deg,#38bdf81f,#38bdf80d),linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),var(--heatmap-weekend);box-shadow:inset 0 0 0 1px #7dd3fc2e}.compact-calendar-cell-weekend.compact-calendar-band-medium{background:linear-gradient(180deg,#f59e0b1f,#f59e0b0d),linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),var(--heatmap-weekend);box-shadow:inset 0 0 0 1px #f3b54b2e}.compact-calendar-cell-weekend.compact-calendar-band-high{background:linear-gradient(180deg,#f58e8e24,#f58e8e0f),linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),var(--heatmap-weekend);box-shadow:inset 0 0 0 1px #f58e8e33}.compact-calendar-cell-date{font-size:13px;font-weight:700;line-height:1}.compact-calendar-cell-marker{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:18px;padding:0 5px;border-radius:999px;background:#fbbf242e;color:var(--text);font-size:10px;font-weight:700}.training-chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.training-chart-wide{grid-column:1 / -1}.training-timeline{display:grid;gap:12px}.training-timeline-note,.training-timeline-limit-note{margin:0}.training-timeline-body{display:grid;gap:10px;max-height:420px;overflow:auto;padding-right:6px}.training-timeline-scale{display:grid;gap:8px}.training-timeline-scale-label{color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.training-timeline-scale-track{position:relative;height:52px;border-radius:10px;border:1px solid rgba(148,163,184,.12);background:#ffffff05;overflow:hidden}.training-timeline-scale-tick{position:absolute;top:0;bottom:0;transform:translate(-50%);display:grid;align-content:start;justify-items:center;pointer-events:none}.training-timeline-scale-tick-line{width:1px;height:calc(100% - 18px);min-height:24px;background:#94a3b82e}.training-timeline-scale-tick-label{position:absolute;bottom:5px;max-width:84px;color:var(--muted);font-size:.72rem;line-height:1.05;text-align:center;white-space:normal;transform:translate(-50%)}.training-timeline-group{display:grid;gap:8px;padding:10px 12px 12px;border:1px solid rgba(148,163,184,.12);border-radius:var(--radius-md);background:#08111d2e}.training-timeline-group-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.training-timeline-group-header h5{margin:0;font-size:.96rem}.training-timeline-group-header p{margin:3px 0 0;color:var(--muted);font-size:.8rem}.training-timeline-rows{display:grid;gap:8px}.training-timeline-row{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);gap:12px;align-items:center;min-height:28px}.training-timeline-summary-cell{min-width:0;display:grid;gap:4px}.training-timeline-row-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0}.training-timeline-issue-key{color:var(--text);font-size:.78rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}.training-timeline-summary{min-width:0;color:var(--text);font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-timeline-meta{display:flex;flex-wrap:wrap;gap:6px}.training-timeline-rail{position:relative;height:20px}.training-timeline-track{position:absolute;top:7px;right:0;bottom:7px;left:0;border-radius:999px;background:linear-gradient(90deg,transparent 0%,transparent 24%,rgba(148,163,184,.08) 24%,rgba(148,163,184,.08) 25%,transparent 25%,transparent 49%,rgba(148,163,184,.08) 49%,rgba(148,163,184,.08) 50%,transparent 50%,transparent 74%,rgba(148,163,184,.08) 74%,rgba(148,163,184,.08) 75%,transparent 75%,transparent 100%);border:1px solid rgba(148,163,184,.08)}.training-timeline-bar{position:absolute;top:3px;height:14px;border-radius:999px;background:linear-gradient(90deg,#6ea8feeb,#7dd3fcb8);box-shadow:0 6px 16px #6ea8fe29}.absence-calendar-grid{display:grid;gap:14px}.absence-month-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.absence-month-card{padding:12px;border:1px solid rgba(148,163,184,.16);border-radius:16px;background:#0f172a75}.absence-month-card-header{margin-bottom:10px;color:var(--text);font-size:14px;font-weight:700}.absence-weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:6px}.absence-weekday-cell{color:var(--muted);font-size:10px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.03em}.absence-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.absence-day-cell{min-height:42px;padding:6px 6px 5px;border:1px solid rgba(148,163,184,.16);border-radius:10px;background:#ffffff0b;color:var(--text);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:default}.absence-day-cell:hover{border-color:#94a3b847}.absence-day-cell:focus-visible{outline:2px solid rgba(110,168,254,.5);outline-offset:2px}.absence-day-cell-empty{background:#0f172a29;border-style:dashed}.absence-day-weekend{border-style:dashed;background:linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),#121a27e6;background-size:10px 10px;border-color:#94a3b838}.absence-day-official-holiday{box-shadow:inset 0 0 0 1px #fbbf246b}.absence-day-bank-holiday{box-shadow:inset 0 0 0 1px #22c55e57}.absence-day-band-none{background:#ffffff0b}.absence-day-band-low{background:var(--heatmap-pressure-low)}.absence-day-band-medium{background:var(--heatmap-pressure-medium)}.absence-day-band-high{background:var(--heatmap-pressure-high)}.absence-day-weekend.absence-day-band-none{background:linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),#121a27e6}.absence-day-weekend.absence-day-band-low{background:linear-gradient(180deg,#38bdf81f,#38bdf80d),linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),#121a27e6;box-shadow:inset 0 0 0 1px #7dd3fc2e}.absence-day-weekend.absence-day-band-medium{background:linear-gradient(180deg,#f59e0b1f,#f59e0b0d),linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),#121a27e6;box-shadow:inset 0 0 0 1px #f3b54b2e}.absence-day-weekend.absence-day-band-high{background:linear-gradient(180deg,#f58e8e24,#f58e8e0f),linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25% 50%,rgba(255,255,255,.035) 50% 75%,transparent 75%),#121a27e6;box-shadow:inset 0 0 0 1px #f58e8e33}.absence-day-number{font-size:12px;font-weight:700;line-height:1}.absence-day-badge{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:16px;padding:0 5px;border-radius:999px;background:#fbbf2429;color:var(--text);font-size:9px;font-weight:700}.app-content{display:grid;grid-template-columns:288px minmax(0,1fr);gap:16px;align-items:start}.app-content-filters-collapsed{grid-template-columns:76px minmax(0,1fr)}.app-sidebar{min-width:0}.sidebar-panel{position:relative;display:grid;gap:16px}.sidebar-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sidebar-collapse-toggle{flex:0 0 auto;min-width:36px;min-height:40px;border-radius:12px;border:1px solid rgba(148,163,184,.18);background:#0f172a99;color:var(--text);font-weight:700;font-size:1rem;line-height:1;cursor:pointer}.sidebar-panel-collapsed{min-height:100%;width:100%;padding:8px 6px;gap:8px;align-content:start;justify-items:stretch}.sidebar-collapse-toggle-collapsed{width:100%;min-width:0;min-height:38px;padding:0;font-size:1rem}.sidebar-collapsed-chip{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 8px;border-radius:999px;background:#6ea8fe1f;color:var(--text);font-size:11px;font-weight:700;white-space:nowrap}@media (max-width: 1200px){.app-content,.app-content-filters-collapsed{grid-template-columns:minmax(0,1fr)}.app-sidebar{order:0}}.sidebar-panel-collapsed{min-height:100%;width:100%;padding:0;gap:8px;align-content:start;justify-items:stretch;background:transparent;border:0;border-radius:0;box-shadow:none}.sidebar-collapse-toggle-collapsed{width:100%;min-width:0;min-height:38px;padding:0}.sidebar-collapsed-chip{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 8px;border-radius:999px;background:#6ea8fe1f;color:var(--text);font-size:11px;font-weight:700;white-space:nowrap;align-self:center;justify-self:center}.project-timeline{display:grid;gap:12px}.project-timeline-scale{display:grid;gap:6px;position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#16243afc,#16243af2);padding:4px 0 2px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.project-timeline-note{margin-bottom:-2px}.project-timeline-legend{display:flex;flex-wrap:wrap;gap:6px}.project-timeline-scale-track{position:relative;min-height:32px;padding-bottom:14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff05;overflow:visible}.project-timeline-scale-tick{position:absolute;top:2px;display:grid;justify-items:center;transform:translate(-50%);white-space:nowrap;z-index:1}.project-timeline-scale-tick-line{width:1px;height:10px;background:#94a3b857}.project-timeline-scale-tick-label{margin-top:2px;padding:1px 4px;border-radius:999px;background:#09111eb3;border:1px solid rgba(148,163,184,.14);color:var(--text);font-size:10px;font-weight:700;white-space:nowrap}.project-timeline-body{display:grid;gap:10px;max-height:520px;overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}.project-timeline-group{display:grid;gap:6px;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:#ffffff05}.project-timeline-group-header{display:flex;gap:10px;align-items:center;justify-content:space-between}.project-timeline-group-header h5{margin:0;font-size:.85rem}.project-timeline-group-header p{margin:2px 0 0;color:var(--muted);font-size:.74rem}.project-timeline-rows{display:grid;gap:6px}.project-timeline-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2.2fr);gap:8px;align-items:stretch;min-height:44px}.project-timeline-summary-cell{min-width:0;display:grid;gap:2px}.project-timeline-row-title{display:flex;gap:5px;align-items:baseline;min-width:0}.project-timeline-issue-key{flex:0 0 auto;color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.project-timeline-summary{min-width:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15;font-size:.88rem}.project-timeline-meta{display:flex;flex-wrap:nowrap;gap:4px;overflow:hidden}.project-timeline .timeline-pill,.project-timeline .project-status-chip{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:999px;border:1px solid var(--border);background:#ffffff08;color:var(--text);font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.project-status-chip-not_started{color:var(--color-neutral);border-color:#94a3b833;background:#94a3b814}.project-status-chip-in_progress{color:var(--color-primary);border-color:#6ea8fe38;background:#6ea8fe14}.project-status-chip-in_approval{color:var(--color-attention);border-color:#f3b44b38;background:#f3b44b14}.project-status-chip-on_hold{color:var(--color-danger);border-color:#f58e8e38;background:#f58e8e14}.project-status-chip-done{color:var(--color-success);border-color:#72d7a638;background:#72d7a614}.project-status-chip-mixed,.project-status-chip-unknown{color:var(--color-neutral);border-color:#94a3b82e;background:#ffffff08}.budget-status-chip-within-budget{color:var(--color-success);border-color:#72d7a63d;background:#72d7a614}.budget-status-chip-near-budget{color:var(--color-attention);border-color:#f3b44b47;background:#f3b44b17}.budget-status-chip-over-budget{color:var(--color-danger);border-color:#f58e8e3d;background:#f58e8e14}.budget-status-chip-no-estimate{color:var(--color-neutral);border-color:#94a3b82e;background:#ffffff08}.timeline-pill-source,.timeline-pill-dates{color:var(--muted)}.timeline-pill-hours{color:var(--text)}.timeline-pill-target{color:var(--accent);border-color:#6ea8fe47;background:#6ea8fe14}.timeline-pill-current{color:var(--muted);border-color:#94a3b838;background:#ffffff08}.timeline-pill-event,.timeline-pill-workstream,.timeline-pill-vacation,.timeline-pill-absence,.timeline-pill-training,.timeline-pill-scope{letter-spacing:.01em}.timeline-pill-workstream{color:#cce5ff;border-color:#6ea8fe47;background:#6ea8fe14}.timeline-pill-vacation{color:#c8f3d9;border-color:#72d7a647;background:#72d7a61a}.timeline-pill-absence{color:#ffe0bd;border-color:#f3b44b47;background:#f3b44b1a}.timeline-pill-training{color:#ffe39a;border-color:#f8d05747;background:#f8d0571a}.timeline-pill-scope{color:var(--muted);border-color:#94a3b838;background:#ffffff08}.capacity-resource-planning{display:grid;gap:12px}.capacity-resource-planning-legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.capacity-resource-planning-legend-item{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:#ffffff08;color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.01em}.capacity-resource-planning-legend-dot{width:8px;height:8px;border-radius:999px;flex:none}.capacity-resource-planning-legend-dot-workstream{background:#6ea8fee6;box-shadow:0 0 0 3px #6ea8fe24}.capacity-resource-planning-legend-dot-vacation{background:#72d7a6e6;box-shadow:0 0 0 3px #72d7a624}.capacity-resource-planning-legend-dot-absence{background:#f3b44bf2;box-shadow:0 0 0 3px #f3b44b24}.capacity-resource-planning-legend-dot-training{background:#f8d057f2;box-shadow:0 0 0 3px #f8d05724}.capacity-resource-planning-note{margin:0}.capacity-resource-planning-body{display:grid;gap:10px;max-height:520px;overflow:auto;padding-right:6px}.capacity-resource-planning-scale{display:grid;gap:8px}.capacity-resource-planning-scale-label{color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.capacity-resource-planning-scale-track{position:relative;height:52px;border-radius:10px;border:1px solid rgba(148,163,184,.12);background:#ffffff05;overflow:hidden}.capacity-resource-planning-scale-tick{position:absolute;top:0;bottom:0;transform:translate(-50%);display:grid;align-content:start;justify-items:center;pointer-events:none}.capacity-resource-planning-scale-tick-line{width:1px;height:calc(100% - 18px);min-height:24px;background:#94a3b82e}.capacity-resource-planning-scale-tick-label{position:absolute;bottom:5px;max-width:84px;color:var(--muted);font-size:.72rem;line-height:1.05;text-align:center;white-space:normal;transform:translate(-50%)}.capacity-resource-planning-group{display:grid;gap:8px;padding:10px 12px 12px;border:1px solid rgba(148,163,184,.12);border-radius:var(--radius-md);background:#08111d2e}.capacity-resource-planning-group-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.capacity-resource-planning-group-header h5{margin:0;font-size:.96rem}.capacity-resource-planning-group-header p{margin:3px 0 0;color:var(--muted);font-size:.8rem}.capacity-resource-planning-rows{display:grid;gap:8px}.capacity-resource-planning-row{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1fr);gap:12px;align-items:center;min-height:28px}.capacity-resource-planning-row-lane{align-items:start}.capacity-resource-planning-summary-cell{min-width:0;display:grid;gap:4px}.capacity-resource-planning-row-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0}.capacity-resource-planning-project-key{color:var(--text);font-size:.78rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}.capacity-resource-planning-issue-key{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.capacity-resource-planning-summary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capacity-resource-planning-project-name{color:var(--muted);font-size:.82rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capacity-resource-planning-meta{display:flex;flex-wrap:wrap;gap:4px;overflow:visible}.capacity-resource-planning-rail{position:relative;min-height:36px;border-radius:var(--radius-sm);border:1px solid var(--border);background:linear-gradient(90deg,#ffffff05,#ffffff04),#ffffff05;overflow:hidden}.capacity-resource-planning-rail-grouped{padding:8px 0}.capacity-resource-planning-track{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);background-size:8.33% 100%;opacity:.55}.capacity-resource-planning-bar{position:absolute;top:9px;bottom:9px;border-radius:999px;box-shadow:0 8px 16px #0f172a47}.capacity-resource-planning-bar-stack{top:auto;bottom:auto;height:18px;min-height:18px}.capacity-resource-planning-bar-planned{background:linear-gradient(90deg,#6ea8fee6,#6ea8fe73);border:1px solid rgba(110,168,254,.6)}.capacity-resource-planning-bar-current{background:linear-gradient(90deg,#94a3b8d1,#94a3b84d);border:1px dashed rgba(148,163,184,.55)}.capacity-resource-planning-bar-workstream{background:linear-gradient(90deg,#6ea8fee6,#6ea8fe6b);border:1px solid rgba(110,168,254,.58)}.capacity-resource-planning-bar-workstream-team{background:linear-gradient(90deg,#63bfdbe0,#63bfdb61);border:1px solid rgba(99,191,219,.56);border-style:dashed}.capacity-resource-planning-bar-vacation{background:linear-gradient(90deg,#72d7a6e6,#72d7a66b);border:1px solid rgba(114,215,166,.58)}.capacity-resource-planning-bar-absence{background:linear-gradient(90deg,#f3b44beb,#f3b44b6b);border:1px solid rgba(243,180,75,.58)}.capacity-resource-planning-bar-training{background:linear-gradient(90deg,#f8d057eb,#f8d0576b);border:1px solid rgba(248,208,87,.58)}.timeline-pill-allocation{color:var(--color-primary-soft);border-color:#7dd3fc59;background:#7dd3fc1f}@media (max-width: 1200px){.capacity-resource-planning-row{grid-template-columns:minmax(0,1fr)}}.project-timeline-rail{position:relative;min-height:36px;border-radius:var(--radius-sm);border:1px solid var(--border);background:linear-gradient(90deg,#ffffff05,#ffffff04),#ffffff05;overflow:hidden}.project-timeline-track{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);background-size:8.33% 100%;opacity:.55}.project-timeline-bar{position:absolute;top:9px;bottom:9px;border-radius:999px;background:linear-gradient(90deg,#6ea8fee6,#6ea8fe73);border:1px solid rgba(110,168,254,.6);box-shadow:0 8px 16px #0f172a47}@media (max-width: 1200px){.project-timeline-row{grid-template-columns:minmax(0,1fr)}}.metric-detail{color:var(--muted);font-size:.8rem;line-height:1.35;margin-top:-2px}.status-box-warning{border-color:#f3b44b52;background:#f3b44b14;color:#f8e2b5}.admin-calendar-note{margin-top:-4px}.chart-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:2px;text-align:center;pointer-events:none}.chart-donut-total{font-size:2rem;font-weight:700;letter-spacing:-.03em}.chart-donut-label{color:var(--muted);font-size:.82rem}.chart-donut-detail{color:var(--muted);font-size:.72rem;letter-spacing:.02em}.chart-surface-donut{position:relative}.executive-chart-stack,.executive-chart-row{display:grid;gap:16px}.executive-chart-row-top,.executive-chart-row-bottom{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.app-sidebar{background:#09131feb}.metric-card,.table-card,.chart-card,.status-box,.diagnostics-card,.signal-card{box-shadow:0 14px 34px #02081438,inset 0 1px #ffffff05;border-color:#94a3b838;background:linear-gradient(180deg,#16243aeb,#111d2ffa)}.drilldown-section,.page-section{display:grid;gap:14px;padding:18px;border-radius:var(--radius-lg);border:1px solid rgba(148,163,184,.18);background:linear-gradient(180deg,#121f31b8,#0d1726e6);box-shadow:0 14px 34px #02081429,inset 0 1px #ffffff05}.page-section>h2{margin:0;font-size:1.03rem;letter-spacing:-.01em}.page-section>p{margin:-6px 0 0;color:var(--muted);font-size:.9rem}.selected-detail-panel{padding:18px}.drilldown-collapsible{border:0;padding:0;background:transparent;box-shadow:none}.metric-card{background:linear-gradient(180deg,#ffffff0a,#ffffff04);border-color:#94a3b82e}.chart-card{background:linear-gradient(180deg,#16243af5,#0e1827fa);border-color:#94a3b833}.table-card{background:#0e1827f5;border-color:#94a3b829}.status-box{background:#0b131fdb;border-style:dashed;border-color:#94a3b829}.chart-donut-center{display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translateY(-1px)}.chart-donut-detail{display:none}.consultant-planning-card{display:grid;gap:18px}.consultant-planning-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.consultant-planning-selector{min-width:240px;margin:0}.consultant-planning-selector select{min-width:240px}.consultant-planning-body{display:grid;gap:14px}.availability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.team-availability-card{display:grid;gap:16px}.team-availability-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.team-availability-body{display:grid;gap:14px}.team-availability-gantt-body{gap:16px}.team-availability-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.team-availability-legend{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.team-availability-legend-note{color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.01em}.availability-status-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.18);font-size:.74rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.availability-status-chip-available{color:var(--color-success);border-color:#72d7a63d;background:#72d7a61a}.availability-status-chip-reduced{color:var(--color-attention);border-color:#f3b44b3d;background:#f3b44b1a}.availability-status-chip-unavailable{color:var(--color-danger);border-color:#f58e8e3d;background:#f58e8e1a}.availability-status-chip-inactive{color:var(--color-neutral);border-color:#93a4bf2e;background:#93a4bf14}.team-availability-table-wrap{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.16)}.team-availability-table{width:100%;min-width:780px;border-collapse:collapse;background:#060c143d}.team-availability-gantt-table{min-width:920px}.team-availability-table th,.team-availability-table td{border-bottom:1px solid rgba(148,163,184,.12);padding:10px 12px;vertical-align:middle}.team-availability-table th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap}.team-availability-table td{color:var(--text)}.team-availability-gantt-table td{vertical-align:top}.team-availability-table tbody tr:nth-child(2n){background:#ffffff05}.team-availability-consultant{min-width:240px}.team-availability-consultant-name{font-weight:700}.team-availability-consultant-meta{margin-top:4px;color:var(--muted);font-size:.8rem}.team-availability-table td .availability-status-chip{min-width:100px}.team-availability-cell-label{display:block}.team-availability-cell-meta{display:block;font-size:.76rem;font-weight:600;opacity:.85}.team-availability-gantt-cell{display:grid;gap:6px;min-height:74px;padding:8px 10px;border-radius:10px;border:1px solid rgba(148,163,184,.12);background:#ffffff05}.team-availability-gantt-cell-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.team-availability-gantt-cell-pct{color:var(--text);font-size:.82rem;font-weight:700}.team-availability-gantt-bar{display:grid}.team-availability-gantt-bar-track{height:8px;border-radius:999px;overflow:hidden;background:#94a3b81a}.team-availability-gantt-bar-fill{height:100%;border-radius:inherit;background:var(--color-success)}.team-availability-gantt-cell-available{background:#72d7a612;border-color:#72d7a62e}.team-availability-gantt-cell-available .team-availability-gantt-bar-fill{background:var(--color-success)}.team-availability-gantt-cell-reduced{background:#f3b44b14;border-color:#f3b44b2e}.team-availability-gantt-cell-reduced .team-availability-gantt-bar-fill{background:var(--color-attention)}.team-availability-gantt-cell-unavailable{background:#f58e8e14;border-color:#f58e8e2e}.team-availability-gantt-cell-unavailable .team-availability-gantt-bar-fill{background:var(--color-danger)}.team-availability-gantt-cell-inactive{background:#93a4bf0d;border-color:#93a4bf29}.team-availability-gantt-cell-inactive .team-availability-gantt-bar-fill{background:var(--muted)}.team-availability-gantt-cell-meta{color:var(--muted);font-size:.74rem;line-height:1.35}.team-availability-table td[title]{cursor:help}.vacation-balance-card{display:grid;gap:14px}.vacation-balance-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.vacation-balance-selector select{min-width:140px}.vacation-balance-body{display:grid;gap:14px}.vacation-balance-table-wrap{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.16)}.vacation-balance-table{width:100%;min-width:1080px;border-collapse:collapse;background:#060c143d}.vacation-balance-table th,.vacation-balance-table td{border-bottom:1px solid rgba(148,163,184,.12);padding:10px 12px;vertical-align:top}.vacation-balance-table th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap}.vacation-balance-table td{color:var(--text);overflow-wrap:anywhere}.vacation-balance-table th:nth-child(2),.vacation-balance-table th:nth-child(3),.vacation-balance-table th:nth-child(4),.vacation-balance-table th:nth-child(5),.vacation-balance-table th:nth-child(6),.vacation-balance-table th:nth-child(7),.vacation-balance-table th:nth-child(8),.vacation-balance-number-cell{text-align:right;font-variant-numeric:tabular-nums}.vacation-balance-table tbody tr:nth-child(2n){background:#ffffff05}.vacation-balance-group-start td{border-top:1px solid rgba(110,168,254,.18)}.vacation-balance-table td:nth-child(2),.vacation-balance-table td:nth-child(3),.vacation-balance-table td:nth-child(4),.vacation-balance-table td:nth-child(5),.vacation-balance-table td:nth-child(6),.vacation-balance-table td:nth-child(7),.vacation-balance-table td:nth-child(8){white-space:nowrap}.vacation-balance-remaining-cell{color:var(--text);font-weight:700}.vacation-balance-consultant-cell{min-width:180px}.vacation-balance-caveats{display:flex;flex-wrap:wrap;gap:6px}.vacation-balance-caveat{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;border:1px solid rgba(148,163,184,.16);background:#94a3b814;color:var(--muted);font-size:.74rem;font-weight:600;white-space:nowrap}.vacation-balance-caveat-muted{opacity:.8}.vacation-balance-state-note{padding:0;background:transparent;border:0;color:var(--muted)}.vacation-balance-state-note-error{color:#f0bcc0}.vacation-balance-source-note{display:grid;gap:6px}.availability-month-card{border-radius:var(--radius-md);border:1px solid var(--border);background:linear-gradient(180deg,#111d2ff5,#0d1726fa);padding:16px;box-shadow:0 14px 32px #02081438,inset 0 1px #ffffff05;display:grid;gap:12px}.availability-month-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.availability-month-header h4{margin:0;font-size:1rem}.availability-month-subtitle{margin:4px 0 0;color:var(--muted);font-size:.86rem}.availability-month-value{color:var(--text);font-weight:600;text-align:right;white-space:nowrap}.availability-meter{display:grid;gap:6px}.availability-meter-track{width:100%;height:8px;border-radius:999px;background:#94a3b81f;overflow:hidden}.availability-meter-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#6ea8fea6,#7dd3fceb)}.availability-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin:0}.availability-stat-grid div{display:grid;gap:2px}.availability-stat-grid dt{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.availability-stat-grid dd{margin:0;color:var(--text);font-weight:600}.training-timeline{overflow-x:auto;padding-bottom:8px}.training-timeline svg,.training-timeline .recharts-wrapper{overflow:visible}.training-timeline-axis,.training-timeline-axis-label,.training-timeline-axis-tick,.training-timeline-date-axis,.training-timeline-date-axis-label{color:var(--text);fill:var(--text);font-size:.78rem;font-weight:600}.training-timeline-axis text,.training-timeline-date-axis text{fill:var(--text);opacity:.94}.training-timeline-axis-label,.training-timeline-axis-tick{white-space:nowrap}
