:root{color-scheme:light;--color-surface: #ffffff;--color-surface-alt: #f3f6f8;--color-ink: #0f1e2a;--color-ink-muted: #5a6b78;--color-line: #d5dee4;--color-brand: #13374f;--color-on-brand: #ffffff;--color-accent: #c8e4f0;--color-status-ok: #2e7d5b;--color-status-risk: #9a5b00;--color-status-critical: #b3372c;--color-chart-plan: #13374f;--color-chart-actual: #3a7ca5;--color-chart-forecast: #5a6b78;--color-on-brand-muted: var(--color-accent);--color-border-input: var(--color-ink-muted);--color-focus: var(--color-brand);--color-focus-on-brand: var(--color-accent);--color-status-ok-soft: #eef7f2;--color-status-risk-soft: #fbf1e1;--color-status-critical-soft: #faecea;--color-scrim: rgb(11 34 51 / 55%);--font-heading: Montserrat, "Segoe UI", Arial, sans-serif;--font-body: "IBM Plex Sans", "Segoe UI", Arial, sans-serif;--font-mono: "IBM Plex Mono", Menlo, Consolas, monospace;--text-display-size: 2.5rem;--text-display-line: 2.75rem;--text-display-weight: 700;--text-h1-size: 1.75rem;--text-h1-line: 2.125rem;--text-h1-weight: 700;--text-h2-size: 1.375rem;--text-h2-line: 1.75rem;--text-h2-weight: 600;--text-h3-size: 1.125rem;--text-h3-line: 1.5rem;--text-h3-weight: 600;--text-kpi-size: 2rem;--text-kpi-line: 2.25rem;--text-kpi-weight: 600;--text-body-size: .9375rem;--text-body-line: 1.375rem;--text-body-weight: 400;--text-body-sm-size: .8125rem;--text-body-sm-line: 1.125rem;--text-body-sm-weight: 400;--text-label-size: .75rem;--text-label-line: 1rem;--text-label-weight: 600;--text-label-tracking: .04em;--text-data-size: .8125rem;--text-data-line: 1.125rem;--text-data-weight: 500;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-pill: 999px;--shadow-card: 0 1px 2px rgb(15 30 42 / 8%), 0 4px 12px rgb(15 30 42 / 6%);--shadow-elevated: 0 1.5rem 4rem rgb(15 30 42 / 14%)}:root[data-theme=dark]{color-scheme:dark;--color-surface: #0e1a24;--color-surface-alt: #152635;--color-ink: #e8eff4;--color-ink-muted: #9fb0bd;--color-line: #24384a;--color-brand: #8fc3dd;--color-on-brand: #0e1a24;--color-accent: #1f4a66;--color-status-ok: #5cc595;--color-status-risk: #e3a440;--color-status-critical: #f0857a;--color-chart-plan: #8fc3dd;--color-chart-actual: #6aa9cc;--color-chart-forecast: #9fb0bd;--color-on-brand-muted: var(--color-accent);--color-border-input: var(--color-ink-muted);--color-focus: var(--color-brand);--color-focus-on-brand: var(--color-accent);--color-status-ok-soft: #12342a;--color-status-risk-soft: #3a2b13;--color-status-critical-soft: #3b211f;--color-scrim: rgb(0 0 0 / 65%);--shadow-card: 0 1px 2px rgb(0 0 0 / 24%), 0 4px 12px rgb(0 0 0 / 18%);--shadow-elevated: 0 1.5rem 4rem rgb(0 0 0 / 38%)}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/fonts/montserrat-latin-600-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:var(--text-label-weight);src:url(/fonts/montserrat-latin-700-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}:root{color:var(--color-ink);background:var(--color-surface);font-family:var(--font-body);font-size:var(--text-body-size);font-synthesis:none;line-height:var(--text-body-line)}*{box-sizing:border-box}body{margin:0;min-width:320px}.skip-link{position:absolute;left:1rem;top:-4rem;background:var(--color-brand);color:var(--color-on-brand);padding:.75rem}.skip-link:focus{outline:.2rem solid var(--color-focus-on-brand);top:1rem}main{display:grid;min-height:100vh;place-items:center;padding:2rem}.hero{width:min(100%,78rem);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:clamp(1.5rem,4vw,3rem);box-shadow:var(--shadow-card)}.hero-logo{display:block;height:3rem;width:auto}.brand-screen{align-content:center;background:var(--color-brand)}.hero-login{background:transparent;border:0;box-shadow:none;padding:0;width:min(100%,34rem)}.login-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-top:var(--space-6);padding:clamp(1rem,4vw,2rem)}.eyebrow{color:var(--color-ink-muted);font-size:var(--text-body-sm-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);text-transform:uppercase}.hero-login .eyebrow{color:var(--color-on-brand-muted)}h1,h2,h3,h4{font-family:var(--font-heading)}h1{font-size:var(--text-h1-size);font-weight:var(--text-h1-weight);line-height:var(--text-h1-line);margin:.5rem 0 1.5rem}h2{font-size:var(--text-h2-size);font-weight:var(--text-h2-weight);line-height:var(--text-h2-line);margin:.25rem 0 0}h3{font-size:var(--text-h3-size);font-weight:var(--text-h3-weight);line-height:var(--text-h3-line);margin:0 0 .5rem}h4{font-size:var(--text-body-size);font-weight:var(--text-h3-weight);line-height:var(--text-body-line)}code,.project-code{font-family:var(--font-mono);font-size:var(--text-data-size);font-weight:var(--text-data-weight)}.intro{font-size:var(--text-h3-size);line-height:1.6}.login-form{display:grid;gap:.75rem;margin:2rem 0}.login-card .login-form{margin-top:0}label{font-weight:var(--text-label-weight)}input,select{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font:inherit;padding:.75rem}input:focus,select:focus,button:focus{outline:.2rem solid var(--color-focus);outline-offset:.15rem}.csv-import-dialog{width:min(58rem,calc(100vw - 2rem))}.csv-import-dialog section{border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.csv-file-field,.csv-mapping-grid label,.csv-resolution{display:grid;gap:.35rem}.csv-mapping-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin-bottom:1rem}.csv-resolution{align-items:center;grid-template-columns:minmax(10rem,1fr) minmax(14rem,2fr);margin-bottom:.65rem}.csv-import-issues{max-height:12rem;overflow:auto}.ms-xml-dialog input[type=file]{box-sizing:border-box;max-width:100%}.ms-xml-progress{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.ms-xml-absent{border:1px solid var(--color-border);margin:.75rem 0;max-height:16rem;overflow:auto;padding:.5rem .75rem}.ms-xml-absent ul{list-style:none;margin:0;padding:0}.ms-xml-absent label{align-items:baseline;display:flex;gap:.5rem;overflow-wrap:anywhere}.ms-xml-omit{border:1px solid var(--color-border);margin-bottom:1rem;padding:.5rem .75rem}.ms-xml-omit label{align-items:center;display:flex;gap:.5rem;font-weight:600}@media(max-width:40rem){.csv-resolution{grid-template-columns:1fr}}button{background:var(--color-brand);border:0;border-radius:var(--radius-md);color:var(--color-on-brand);cursor:pointer;font:inherit;font-weight:var(--text-label-weight);padding:.8rem 1rem}button:disabled{cursor:wait;opacity:.65}.error{background:var(--color-status-critical-soft);border-left:.25rem solid var(--color-status-critical);color:var(--color-status-critical);padding:.75rem 1rem}.session-card{background:var(--color-status-ok-soft);border-left:.25rem solid var(--color-status-ok);margin:2rem 0;padding:1rem}.session-card{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.session-card p{margin:0}.organizations-panel{border-top:1px solid var(--color-line);margin:2rem 0;padding-top:2rem}.section-heading{align-items:end;display:flex;gap:1rem;justify-content:space-between}.section-heading .eyebrow{margin:0}.count-badge{background:var(--color-surface-alt);border-radius:var(--radius-pill);color:var(--color-ink-muted);font-size:var(--text-body-sm-size);font-weight:var(--text-label-weight);padding:.5rem .75rem;white-space:nowrap}.organization-list{display:grid;gap:1rem;list-style:none;margin:1.5rem 0 0;padding:0}.organization-card{align-items:center;border:1px solid var(--color-line);border-radius:var(--radius-lg);display:grid;gap:1rem;grid-template-columns:minmax(12rem,1fr) minmax(16rem,1.2fr) auto;padding:1rem}.role-badge{border:1px solid transparent;border-radius:var(--radius-pill);display:inline-block;font-size:var(--text-label-size);font-weight:var(--text-label-weight);padding:.25rem .6rem}.role-administrator{background:var(--color-brand);color:var(--color-on-brand)}.role-editor{background:var(--color-accent);color:var(--color-ink)}.role-reader{background:var(--color-surface-alt);border-color:var(--color-line);color:var(--color-ink-muted)}.inline-error{align-items:start;display:flex;flex-wrap:wrap;gap:.75rem}.inline-error .error{margin:0}.empty-state{background:var(--color-surface-alt);border:1px dashed var(--color-border-input);border-radius:var(--radius-lg);color:var(--color-ink-muted);padding:1.5rem;text-align:center}dl{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin:0}dl div{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:1rem}dt{color:var(--color-ink-muted);font-size:var(--text-body-sm-size)}dd{font-weight:var(--text-label-weight);margin:.25rem 0 0}.app-header,.workspace-topbar,.panel-heading{align-items:start;display:flex;gap:1rem;justify-content:space-between}.app-header h1{margin-bottom:0}.button-secondary{background:var(--color-surface);border:1px solid var(--color-line);color:var(--color-ink)}.workspace{border-top:1px solid var(--color-line);margin-top:1.5rem;padding-top:1.5rem}.workspace-topbar{align-items:center;margin-bottom:2rem}.workspace-topbar .eyebrow{margin:0 0 .35rem}.project-layout{display:grid;gap:1.5rem;grid-template-columns:15rem minmax(0,1fr);margin-top:1.5rem}.project-sidebar ul{display:grid;gap:.5rem;list-style:none;margin:0;padding:0}.project-sidebar button{background:var(--color-surface);border:1px solid var(--color-line);color:var(--color-ink);display:grid;gap:.25rem;text-align:left;width:100%}.project-sidebar a{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);color:var(--color-ink);display:grid;gap:.25rem;padding:.8rem 1rem;text-decoration:none;width:100%}.project-sidebar a:hover{background:var(--color-accent)}.project-sidebar a:focus{outline:.2rem solid var(--color-focus);outline-offset:.15rem}.project-sidebar button[aria-current=page]{background:var(--color-accent);border-color:var(--color-brand);box-shadow:inset .25rem 0 var(--color-brand)}.project-sidebar span{color:var(--color-ink-muted);font-size:var(--text-body-sm-size);font-weight:400}.project-sidebar [aria-current=page] span{color:var(--color-ink)}.project-detail{min-width:0}.project-detail>header{border-bottom:1px solid var(--color-line);margin-bottom:1rem}.project-detail>header h2{margin:.25rem 0}.project-code{color:var(--color-brand);margin:0}.summary-grid{display:grid;gap:.75rem;grid-template-columns:repeat(4,1fr);margin:1rem 0}.summary-grid section{background:var(--color-brand);border-radius:var(--radius-md);color:var(--color-on-brand);display:grid;gap:.3rem;padding:1rem}.summary-grid span{color:var(--color-on-brand-muted);font-size:var(--text-body-sm-size)}.summary-grid strong{font-family:var(--font-heading);font-size:var(--text-kpi-size);font-variant-numeric:tabular-nums;font-weight:var(--text-kpi-weight);line-height:var(--text-kpi-line)}.detail-grid{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.panel{border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:1rem}.panel h3{margin:0 0 1rem}.compact-list{display:grid;gap:.6rem;list-style:none;margin:0;padding:0}.compact-list li{display:grid;gap:.75rem;grid-template-columns:minmax(4rem,auto) 1fr}.calendar-summary{grid-template-columns:1fr 1fr}.calendar-summary div{padding:.75rem}.panel-heading p{color:var(--color-ink-muted);margin:0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;margin-top:1rem;min-width:42rem;width:100%}th,td{border-bottom:1px solid var(--color-line);padding:.75rem;text-align:left}th{background:var(--color-surface-alt);color:var(--color-ink-muted);font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);line-height:var(--text-label-line);text-transform:uppercase}td{font-size:var(--text-body-sm-size);font-variant-numeric:tabular-nums}.muted{color:var(--color-ink-muted)}.creation-panel{background:var(--color-surface-alt);border:1px solid var(--color-line);border-radius:var(--radius-lg);margin-top:1rem;padding:1rem}.creation-panel>h3{margin-bottom:.75rem}.creation-form{align-items:center;display:grid;gap:.65rem .9rem;grid-template-columns:minmax(9rem,.6fr) minmax(12rem,1.4fr)}.creation-form button{min-height:2.9rem}.creation-form button{grid-column:2;justify-self:start}.form-feedback{margin-bottom:0}.success{background:var(--color-status-ok-soft);border-left:.25rem solid var(--color-status-ok);color:var(--color-status-ok);padding:.75rem 1rem}.calendar-editor{border-top:1px solid var(--color-line);margin-top:1rem;padding-top:1rem}.calendar-editor summary{color:var(--color-brand);cursor:pointer;font-weight:var(--text-label-weight)}.calendar-editor form{display:grid;gap:1rem;margin-top:1rem}.calendar-editor fieldset{border:1px solid var(--color-line);border-radius:var(--radius-md);display:grid;gap:.75rem;margin:0;min-width:0;padding:.75rem}.calendar-editor legend{font-weight:var(--text-label-weight);padding:0 .35rem}.calendar-day,.calendar-exception{background:var(--color-surface-alt);border:1px solid var(--color-line);border-radius:var(--radius-md);display:grid;gap:.6rem;padding:.75rem}.calendar-day-heading{align-items:center;display:flex;justify-content:space-between}.calendar-day-heading span{color:var(--color-ink-muted);font-size:var(--text-label-size)}.calendar-slot{align-items:end;display:grid;gap:.5rem;grid-template-columns:1fr 1fr auto}.calendar-slot label,.calendar-exception>label{display:grid;font-size:var(--text-label-size);gap:.25rem}.calendar-exception{border-left:.25rem solid var(--color-brand)}.exception-slots{display:grid;gap:.6rem}.button-danger{background:var(--color-surface);border:1px solid var(--color-status-critical);color:var(--color-status-critical)}.button-danger-solid{background:var(--color-status-critical)}.editable-list>li{align-items:start;border-bottom:1px solid var(--color-line);grid-template-columns:1fr auto;padding:.6rem 0}.item-summary{display:grid;gap:.2rem}.row-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.row-actions button{padding:.55rem .7rem}.inline-edit-form{display:grid;gap:.6rem;grid-column:1 / -1}.inline-edit-form label,.relationship-form label{display:grid;font-size:var(--text-label-size);gap:.25rem}.activity-delete-confirm p{margin:.4rem 0 .75rem}.relationship-form{display:grid;gap:.65rem;grid-template-columns:repeat(4,minmax(8rem,1fr))}.relationship-form .row-actions{grid-column:1 / -1;margin:0}.activity-delete-confirm{background:var(--color-status-risk-soft);border-radius:var(--radius-md);margin-top:.5rem;min-width:16rem;padding:.6rem}@media(max-width:42rem){main{padding:1rem}.organization-card{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column}.app-header{align-items:stretch;flex-direction:column}.project-layout,.detail-grid{grid-template-columns:1fr}.project-sidebar ul{display:flex;overflow-x:auto}.project-sidebar li{min-width:12rem}.summary-grid{grid-template-columns:1fr 1fr}.workspace-topbar{align-items:stretch;flex-direction:column}.creation-form{grid-template-columns:1fr}.creation-form button{grid-column:auto;justify-self:stretch}.calendar-slot,.relationship-form{grid-template-columns:1fr}}.visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.shell-topbar{align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-line);color:var(--color-ink);display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;padding:.35rem clamp(1rem,3vw,2rem)}.shell-topbar a{color:var(--color-ink)}.shell-brand{align-items:center;display:inline-flex;flex:none;text-decoration:none}.shell-logo{display:block;height:1.875rem;width:auto}.shell-nav{align-items:center;display:flex;flex:1;flex-wrap:nowrap;gap:.5rem .75rem;min-width:0}.shell-crumb{font-weight:var(--text-label-weight);flex-shrink:1;max-width:13rem;min-width:3rem;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.shell-crumb:hover{text-decoration:underline}.shell-select{flex:0 1 13rem;min-width:5rem}.shell-select select{min-width:0;width:100%;background:var(--color-surface);color:var(--color-ink);max-width:13rem;padding:.45rem .6rem;text-overflow:ellipsis}.shell-user{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-left:auto}.shell-logout,.shell-settings{background:var(--color-surface);border:1px solid var(--color-line);color:var(--color-ink);padding:.45rem .8rem}.theme-settings{display:grid;gap:var(--space-3);min-width:min(24rem,80vw)}.theme-settings p{color:var(--color-ink-muted);margin:0}.theme-settings label{display:grid;gap:var(--space-1)}main.shell-main{display:block;margin:0 auto;max-width:90rem;min-height:calc(100vh - 3.5rem);padding:1.5rem clamp(1rem,3vw,2rem);place-items:normal}.nav-menu{position:relative}.nav-menu-button{align-items:center;background:transparent;border:1px solid transparent;display:inline-flex;gap:.35rem;padding:.45rem .7rem}.nav-menu-button{color:var(--color-ink)}.nav-menu-button:hover,.nav-menu-button[aria-expanded=true]{background:var(--color-surface-alt);border-color:var(--color-line)}.nav-menu-panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);display:grid;gap:.15rem;left:0;list-style:none;margin:.35rem 0 0;min-width:15rem;padding:.4rem;position:absolute;top:100%;z-index:10}.nav-menu-panel a,.nav-menu-disabled{border-radius:var(--radius-sm);display:block;padding:.55rem .7rem}.nav-menu-panel a{color:var(--color-ink);text-decoration:none}.nav-menu-panel a:hover{background:var(--color-accent)}.nav-menu-panel a[aria-current=page]{background:var(--color-accent);box-shadow:inset .25rem 0 var(--color-brand);font-weight:var(--text-label-weight)}.nav-menu-disabled{color:var(--color-ink-muted)}.nav-menu-disabled small{display:block;font-size:var(--text-label-size)}.project-layout-single{grid-template-columns:1fr}.project-layout-single .project-sidebar ul{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr))}.shortcut-list{display:grid;gap:.5rem;list-style:none;margin:0;padding:0}.shortcut-list a{color:var(--color-brand);font-weight:var(--text-label-weight)}@media(max-width:64rem){.shell-nav{flex:1 1 100%;flex-wrap:wrap}.shell-crumb{max-width:none;white-space:normal}.shell-select{flex:0 1 auto}}@media(max-width:42rem){.shell-user{margin-left:0}.nav-menu-panel{min-width:12rem}}.project-detail>header.visually-hidden{border-bottom:0;margin-bottom:0}.calculation-bar{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0;padding:.6rem .9rem}.calculation-bar .inline-error{flex-basis:100%}.calculation-badge{border-radius:var(--radius-pill);font-size:var(--text-body-sm-size);font-weight:var(--text-label-weight);padding:.35rem .7rem}.calculation-never-calculated{background:var(--color-surface-alt);color:var(--color-ink-muted)}.calculation-up-to-date{background:var(--color-status-ok-soft);color:var(--color-status-ok)}.calculation-outdated{background:var(--color-status-risk-soft);color:var(--color-status-risk)}.calculation-last-failed{color:var(--color-status-critical);font-weight:var(--text-label-weight)}.calculation-button{margin-left:auto}.calculation-button kbd{background:var(--color-surface);border-radius:var(--radius-sm);color:var(--color-ink);font:inherit;font-size:.75rem;margin-left:.4rem;padding:.1rem .4rem}.calculation-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);color:var(--color-ink);max-height:85vh;max-width:min(42rem,calc(100vw - 2rem));overflow:auto;padding:1.25rem 1.5rem;width:100%}.calculation-dialog::backdrop{background:var(--color-scrim)}.impact-summary h4{margin:1rem 0 .35rem}.impact-summary ul{margin:0;padding-left:1.25rem}.impact-summary p{margin:.5rem 0}.dialog-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.toast-region{bottom:1rem;display:grid;gap:.5rem;max-width:min(24rem,calc(100vw - 2rem));position:fixed;right:1rem;z-index:20}.toast{align-items:center;background:var(--color-brand);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);color:var(--color-on-brand);display:flex;gap:.75rem;padding:.7rem .9rem}.toast p{margin:0}.toast button:focus{outline-color:var(--color-focus-on-brand)}.toast button{background:transparent;border:1px solid var(--color-on-brand-muted);color:var(--color-on-brand);padding:.35rem .7rem}.calculation-state-error{align-items:center;color:var(--color-status-critical);display:inline-flex;flex-wrap:wrap;gap:.5rem}.control-gate{display:grid;gap:0;grid-template-columns:minmax(0,1fr)}.control-analytics{background:var(--color-surface);border-top:1px solid var(--color-line);display:grid;flex:none;gap:0;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));max-height:clamp(10rem,26vh,14rem);min-height:0;overflow:auto}.control-analytics:empty{display:none}.control-analytics>*{min-width:0}.control-analytics>*+*{border-left:1px solid var(--color-line)}.control-indicator-region{margin:0;padding:16px 16px 12px}.control-indicator-region:empty{display:none}.control-indicators{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.control-indicator{align-content:start;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);display:grid;gap:0;min-height:83px;min-width:0;padding:9px 12px 10px}.control-indicator-title{color:var(--color-ink-muted);font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);line-height:16px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.control-indicator strong{font-family:var(--font-heading);font-size:1.75rem;font-variant-numeric:tabular-nums;font-weight:var(--text-kpi-weight);line-height:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-indicator-detail{align-items:center;color:var(--color-ink-muted);display:flex;font-size:var(--text-label-size);gap:4px;line-height:16px;min-width:0}.control-indicator-detail>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-indicator-icon{flex:none;height:1rem;width:1rem}.control-indicator-late{color:var(--color-status-risk);font-weight:var(--text-label-weight)}.control-indicator-ok{color:var(--color-status-ok);font-weight:var(--text-label-weight)}.control-curve,.control-lookahead{background:var(--color-surface)}.control-curve{align-items:baseline;display:flex;flex-wrap:wrap;gap:0 var(--space-4);margin:0;min-height:0;padding:var(--space-2) var(--space-4)}.control-curve figcaption{margin-left:auto;order:1}.control-lookahead{padding:var(--space-2) var(--space-4)}.control-curve h3,.control-lookahead h3,.control-analytics-heading p{margin:0}.control-curve h3,.control-lookahead h3{font-size:var(--text-body-size);line-height:var(--text-body-line)}.control-curve svg{display:block;flex:1 1 100%;height:clamp(5.5rem,14vh,8rem);margin-top:var(--space-1);order:2;overflow:visible;width:100%}.control-curve svg .grid{stroke:var(--color-line);stroke-width:1}.control-curve svg text{fill:var(--color-ink-muted);font-size:12px}.control-curve svg polyline{stroke-linecap:round;stroke-linejoin:round;stroke-width:3;vector-effect:non-scaling-stroke}.control-curve svg .plan{stroke:var(--color-ink-muted)}.control-curve svg .earned{stroke:var(--color-chart-actual)}.control-curve svg .forecast{stroke:var(--color-status-risk)}.control-curve-key.plan:before{border-color:var(--color-ink-muted)}.control-curve-key.earned:before{border-color:var(--color-chart-actual)}.control-curve-key.forecast:before{border-color:var(--color-status-risk)}.control-curve svg .forecast{stroke-dasharray:7 5}.control-curve-legend{color:var(--color-ink-muted);display:flex;flex-wrap:wrap;font-size:var(--text-body-sm-size);gap:var(--space-3);margin-top:0}.control-curve-key{align-items:center;display:inline-flex;gap:var(--space-1)}.control-curve-key:before{border-top:3px solid;content:"";display:inline-block;width:1.5rem}.control-curve figcaption,.control-analytics-heading p{color:var(--color-ink-muted);font-size:var(--text-body-sm-size)}.control-gate .success p{margin:.25rem 0 0}.control-analytics-heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);justify-content:space-between}.control-analytics-warning{color:var(--color-status-risk)}.control-lookahead-scroll{overflow-x:auto}.control-lookahead table{border-collapse:collapse;margin-top:var(--space-2);min-width:46rem;width:100%}.control-lookahead th,.control-lookahead td{border-bottom:1px solid var(--color-line);padding:var(--space-1) var(--space-2);text-align:left}.control-lookahead td:first-child{align-items:baseline;display:flex;gap:var(--space-2)}@media(max-width:64rem){.control-indicators{grid-template-columns:repeat(3,minmax(0,1fr))}.control-analytics{max-height:none}.control-curve svg{flex:none;height:12rem}}@media(max-width:48rem){.control-indicators{grid-template-columns:repeat(2,minmax(0,1fr))}}.control-percent{align-items:center;display:inline-flex;gap:.5rem;justify-content:flex-end;width:100%}.control-percent-bar{background:var(--color-surface-alt);border:1px solid var(--color-line);border-radius:var(--radius-pill);display:inline-block;flex:none;height:.5rem;overflow:hidden;width:2.5rem}.control-percent-fill{background:var(--color-chart-actual);display:block;height:100%}.control-status-icon,.control-variance-icon{color:var(--color-ink-muted)}.control-origin{color:var(--color-ink-muted);margin-inline-start:.35rem}.control-date-kind{border:1px solid currentColor;border-radius:var(--radius-pill);display:inline-block;font-size:.65rem;font-weight:700;line-height:1rem;margin-inline-start:.35rem;min-width:1rem;text-align:center}.control-date-real{color:var(--color-chart-actual)}.control-date-forecast{color:var(--color-status-risk)}.control-critical{color:var(--color-status-critical)}.control-secondary{color:var(--color-ink-muted);display:inline;margin-inline-start:.35rem}.control-edit-form{border-top:1px solid var(--color-line);display:grid;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3)}.control-edit-form label{display:grid;font-size:var(--text-label-size);gap:var(--space-1)}.control-edit-form input,.control-edit-form select{box-sizing:border-box;max-width:100%;padding:.45rem;width:100%}.control-remaining-field{display:grid;gap:var(--space-2);grid-template-columns:2fr 1fr}.control-edit-form .error,.control-edit-form .success{margin:0}.control-configuration{display:grid;gap:var(--space-3);min-width:min(24rem,80vw)}.control-configuration h2{margin:0}.control-configuration label{display:grid;font-size:var(--text-label-size);gap:var(--space-1)}.control-configuration .error,.control-configuration .success{margin:0}.control-period-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);color:var(--color-ink);max-height:90vh;max-width:min(46rem,calc(100vw - 2rem));overflow:auto;padding:1.25rem 1.5rem;width:100%}.control-period-dialog::backdrop{background:var(--color-scrim)}.control-period-close{display:grid;gap:var(--space-3)}.control-period-close :is(h2,h3,p){margin-block:0}.control-period-close fieldset{border:1px solid var(--color-line);border-radius:var(--radius-md);display:grid;gap:var(--space-2);padding:var(--space-3)}.control-period-close fieldset label{align-items:center;display:grid;gap:var(--space-2);grid-template-columns:minmax(12rem,1fr) minmax(7rem,auto)}.control-period-close ol{display:grid;gap:var(--space-2);margin:0;padding-inline-start:1.5rem}.control-period-close ol li{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between}.control-period-close textarea{box-sizing:border-box;display:block;min-height:6rem;width:100%}.control-changes-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);color:var(--color-ink);max-height:90vh;max-width:min(52rem,calc(100vw - 2rem));overflow:auto;padding:1.25rem 1.5rem;width:100%}.control-changes-dialog::backdrop{background:var(--color-scrim)}.control-period-changes,.control-period-changes form{display:grid;gap:var(--space-3)}.control-period-changes :is(h2,h3,p){margin-block:0}.control-changes-summary{grid-template-columns:repeat(4,minmax(8rem,1fr))}.control-changes-list{display:grid;gap:var(--space-1);list-style:none;margin:0;max-height:14rem;overflow:auto;padding:0}.control-period-changes .control-changes-list li{align-items:baseline;border-bottom:1px solid var(--color-line);display:grid;gap:var(--space-2);grid-template-columns:minmax(5rem,auto) 1fr;padding-block:var(--space-1)}.control-period-changes fieldset{border:1px solid var(--color-line);border-radius:var(--radius-md);display:grid;gap:var(--space-2);padding:var(--space-3)}.control-change-suggestion{align-items:start;display:flex;gap:var(--space-2)}.control-period-changes textarea{box-sizing:border-box;display:block;min-height:7rem;width:100%}@media(max-width:48rem){.control-changes-summary{grid-template-columns:repeat(2,minmax(8rem,1fr))}}.control-panel .properties-panel{flex-basis:17rem;max-height:clamp(18rem,70vh,48rem)}@media(max-width:48rem){.control-panel .schedule-workspace{flex-direction:column}.control-panel .properties-panel{border-left:0;border-top:1px solid var(--color-border-input);flex:none;max-height:none}}.control-calculation,.control-calculation .muted{margin:0}.control-notice{border-left:4px solid var(--color-line);margin-top:var(--space-3);padding-left:var(--space-3)}.control-notice h4{margin:0 0 .35rem}.control-notice-alert{border-left-color:var(--color-status-critical)}.control-notice-alert h4{color:var(--color-status-critical)}.control-notice-warning{border-left-color:var(--color-status-risk)}.control-panel .grid-cell-head{align-items:center;display:flex;line-height:1.1;white-space:normal}.control-panel .grid-cell-head.grid-align-end{justify-content:flex-end}.control-reason-dialog form{display:grid;gap:var(--space-3);min-width:min(28rem,80vw)}.control-reason-dialog h3,.control-reason-dialog .control-reason-body{margin:0}.control-reason-dialog label{font-size:var(--text-label-size)}.control-reason-dialog input{box-sizing:border-box;padding:.45rem;width:100%}.control-simulation-band{align-items:center;background:var(--color-status-risk-soft);border:1px solid var(--color-status-risk);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-3)}.control-simulation-status{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.control-simulation-status strong{color:var(--color-status-risk)}.control-simulation-preview{flex-basis:100%;margin:0;order:5}.control-simulation-cutoff{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.control-simulation-cutoff label{font-size:var(--text-label-size)}.control-simulation-cutoff input{padding:.3rem}.control-simulation-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-inline-start:auto}.control-simulation-actions button[aria-disabled=true]{cursor:not-allowed;opacity:.6}.control-simulation-band>.error,.control-simulation-band>.success{flex-basis:100%;margin:0;order:6}.control-hypothetical{color:var(--color-status-risk);margin-inline-start:.3rem}.control-invalid{color:var(--color-status-critical);margin-inline-start:.3rem}.control-simulation-dialog form{display:grid;gap:var(--space-3);min-width:min(30rem,80vw)}.control-simulation-dialog :is(h3,p){margin:0}.control-simulation-reasons{border:1px solid var(--color-line);border-radius:var(--radius-md);display:grid;gap:var(--space-3);margin:0;max-height:40vh;overflow:auto;padding:var(--space-3)}.control-simulation-reason{display:grid;gap:var(--space-1)}.control-simulation-reason label{font-size:var(--text-label-size)}.control-simulation-reason input{box-sizing:border-box;padding:.45rem;width:100%}.control-simulation-reason .error{margin:0}.app-footer{color:var(--color-ink-muted);font-size:var(--text-body-sm-size);padding:.75rem clamp(1rem,3vw,2rem) 1.25rem;text-align:center}.nav-menu-end{margin-left:auto}.nav-menu-end .nav-menu-panel{left:auto;right:0}.nav-menu-action{background:transparent;border-radius:var(--radius-sm);color:var(--color-ink);display:block;font-weight:400;padding:.55rem .7rem;text-align:left;width:100%}.nav-menu-action:hover{background:var(--color-accent)}.help-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);color:var(--color-ink);max-height:90vh;max-width:min(36rem,calc(100vw - 2rem));overflow:auto;padding:1.25rem 1.5rem;width:100%}.help-dialog::backdrop{background:var(--color-scrim)}.help-form{display:grid;gap:.6rem}.help-form textarea,.help-diagnostics{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);font:inherit;padding:.75rem;resize:vertical;width:100%}.help-diagnostics{font-family:var(--font-mono);font-size:var(--text-data-size)}.help-form textarea:focus,.help-diagnostics:focus{outline:.2rem solid var(--color-focus);outline-offset:.15rem}.help-fieldset{border:1px solid var(--color-line);border-radius:var(--radius-sm);display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;padding:.5rem .9rem .75rem}.help-fieldset legend{font-weight:var(--text-label-weight);padding:0 .35rem}.help-radio{align-items:center;display:inline-flex;font-weight:400;gap:.4rem}.help-radio input{height:1.1rem;margin:0;width:1.1rem}.help-counter{color:var(--color-ink-muted);font-size:.85rem;margin:0;text-align:right}.help-notice{background:var(--color-status-risk-soft);border-left:.25rem solid var(--color-status-risk);margin:0;padding:.6rem .8rem}.help-attached{color:var(--color-ink-muted);font-size:.9rem;margin:0}.help-status{color:var(--color-status-ok);display:block;min-height:1.5rem}.glossary-search{display:grid;gap:.4rem;margin:1rem 0;max-width:32rem}.glossary-count{color:var(--color-ink-muted);font-size:.9rem}.glossary-group{margin-top:1.5rem}.glossary-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}.glossary-list dt{color:var(--color-ink);font-size:1rem;font-weight:var(--text-label-weight)}.glossary-list dd{font-weight:400;line-height:1.5}.glossary-formula{color:var(--color-ink-muted);display:block;margin-top:.4rem}.glossary-formula code{color:var(--color-ink);font-weight:var(--text-label-weight)}.feedback-filter{border:0;display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;min-width:0;padding:0}.feedback-filter button[aria-pressed=true]{box-shadow:inset 0 -.2rem var(--color-focus)}.feedback-table{min-width:56rem}.feedback-message{max-width:28rem;overflow-wrap:anywhere;white-space:pre-wrap}.feedback-resolved-at{color:var(--color-ink-muted);display:block}.versions-panel .panel-heading{align-items:center}.version-list{display:grid;gap:.75rem;list-style:none;margin:1rem 0 0;padding:0}.version-item{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:.75rem 1rem}.version-item-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:.25rem .75rem}.version-sequence{color:var(--color-ink-muted);font-variant-numeric:tabular-nums;font-weight:var(--text-label-weight)}.version-title{overflow-wrap:anywhere}.version-kind{background:var(--color-surface-alt);border-radius:var(--radius-pill);color:var(--color-ink-muted);font-size:.8rem;font-weight:var(--text-label-weight);padding:.15rem .6rem}.version-meta,.version-counts{color:var(--color-ink-muted);font-size:.9rem;margin:.35rem 0 0}.version-note{margin:.5rem 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.version-actions{display:flex;gap:.5rem;margin-top:.6rem}.version-dialog{max-width:min(42rem,calc(100vw - 2rem))}.version-restore-source{margin:.25rem 0 .75rem;overflow-wrap:anywhere}.version-impact h4{font-size:1rem;margin:.75rem 0 .35rem}.version-impact table{min-width:0;table-layout:fixed;width:100%}.version-impact th,.version-impact td{padding:.45rem .4rem}.version-impact th:first-child,.version-impact td:first-child{width:32%}.version-impact td:not(:first-child),.version-impact th:not(:first-child){text-align:right}.version-delete-warning{background:var(--color-status-risk-soft);border-left:.25rem solid var(--color-status-critical);margin:.75rem 0;padding:.6rem .8rem}.version-delete-warning p{margin:0 0 .35rem}.version-id-list{display:flex;flex-wrap:wrap;gap:.25rem .75rem;list-style:none;margin:0;padding:0}.version-restore-notes{margin:.75rem 0 0;padding-left:1.25rem}.version-unchanged{background:var(--color-surface-alt);border-radius:var(--radius-sm);margin:.75rem 0;padding:.75rem}.baseline-dialog{max-width:min(48rem,calc(100vw - 2rem))}.baseline-manager{display:grid;gap:.75rem}.baseline-manager>h3,.baseline-manager>p{margin:0}.baseline-manager>select{width:100%}.baseline-card,.baseline-control-handoff{border:1px solid var(--color-line);border-radius:var(--radius-md);padding:1rem}.baseline-card-heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem .75rem;justify-content:space-between}.baseline-card>p{color:var(--color-ink-muted)}.baseline-card .success{color:var(--color-status-ok)}.baseline-status{border-radius:var(--radius-pill);font-size:var(--text-body-sm-size);font-weight:var(--text-label-weight);padding:.2rem .6rem}.baseline-active{background:var(--color-status-ok-soft);color:var(--color-status-ok)}.baseline-candidate{background:var(--color-status-risk-soft);color:var(--color-status-risk)}.baseline-superseded{background:var(--color-surface-alt);color:var(--color-ink-muted)}.baseline-control-handoff h4{margin:0}.baseline-control-handoff p{color:var(--color-ink-muted)}.baseline-comparison-dialog{max-width:min(78rem,calc(100vw - 2rem));width:100%}.baseline-comparison{display:grid;gap:1rem}.baseline-comparison>h3,.baseline-comparison>p{margin:0}.comparison-selectors{align-items:end;display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(12rem,1fr)) auto}.comparison-selectors label{display:grid;gap:.35rem}.comparison-counts{display:flex;flex-wrap:wrap;gap:.5rem}.comparison-counts span{background:var(--color-surface-alt);border-radius:var(--radius-pill);padding:.3rem .65rem}.comparison-table-wrap{max-height:24rem;overflow:auto}.comparison-table-wrap table{min-width:70rem}.comparison-added td:first-child{color:var(--color-status-ok)}.comparison-removed td:first-child{color:var(--color-status-critical)}.comparison-changed td:first-child{color:var(--color-status-risk)}.baseline-comparison-gantt{border:1px solid var(--color-line);border-radius:var(--radius-md);max-height:18rem;overflow:auto;padding:.75rem}.comparison-gantt-row{align-items:center;display:grid;gap:.5rem;grid-template-columns:7rem 1fr;min-height:2rem}.comparison-gantt-row>span{font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis}.comparison-gantt-track{background:repeating-linear-gradient(90deg,transparent 0,transparent 9%,var(--color-line) 10%);height:1.5rem;position:relative}.comparison-bar{display:block;height:.45rem;min-width:2px;position:absolute}.comparison-before{background:var(--color-ink-muted);top:.2rem}.comparison-after{background:var(--color-brand);bottom:.2rem}.comparison-gantt-legend{align-items:center;display:flex;gap:.4rem;margin-bottom:0}.comparison-gantt-legend span{display:inline-block;height:.45rem;position:static;width:1.5rem}@media(max-width:48rem){.comparison-selectors{grid-template-columns:1fr}}.project-toolbar{align-items:stretch;display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.project-toolbar>.calculation-bar{flex:1 1 22rem;margin:0}.history-bar{align-items:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);display:flex;flex:0 1 auto;flex-wrap:wrap;gap:.5rem;padding:.6rem .9rem}.history-bar button{align-items:center;display:inline-flex;gap:.4rem}.history-bar button:disabled{cursor:not-allowed}.history-bar kbd{background:var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-ink-muted);font:inherit;font-size:.75rem;padding:.1rem .4rem}.history-status{color:var(--color-ink-muted);font-weight:var(--text-label-weight)}.history-retry{align-items:center;display:flex;flex-basis:100%;flex-wrap:wrap;gap:.5rem}.history-retry button{padding:.5rem .9rem}.history-retry p{margin:0}@media(max-width:30rem){.history-bar kbd{display:none}}.schedule-panel{min-width:0}.schedule-panel .panel-heading h3{margin:0 0 1rem}.grid-legend{background:var(--color-status-risk-soft);border:1px solid var(--color-status-risk);border-radius:var(--radius-sm);color:var(--color-ink);margin:0 0 .75rem;padding:.5rem .75rem}.grid-scroll{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);max-height:clamp(18rem,70vh,48rem);max-width:100%;overflow:auto}.grid{font-size:var(--text-body-sm-size);font-variant-numeric:tabular-nums;min-width:100%;position:relative}.grid-head{position:sticky;top:0;z-index:2}.grid-body{position:relative}.grid-row{display:flex;height:28px}.grid-body .grid-row{left:0;position:absolute;width:100%}.grid-cell{border-bottom:1px solid var(--color-line);box-sizing:border-box;color:var(--color-ink);flex:none;height:28px;line-height:27px;overflow:hidden;padding:0 .5rem;text-overflow:ellipsis;white-space:nowrap}.grid-cell-head{background:var(--color-surface-alt);border-bottom:1px solid var(--color-line);font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);text-transform:uppercase}.grid-cell-code{font-family:var(--font-mono);font-size:var(--text-data-size);font-weight:var(--text-data-weight)}.grid-row-wbs .grid-cell{background:var(--color-surface-alt);font-weight:var(--text-label-weight)}.grid-row-active{box-shadow:inset 0 0 0 1px var(--color-focus);z-index:1}.grid-row-active .grid-cell{background:var(--color-accent)}.grid-align-end{text-align:right}.grid-cell:focus{outline:2px solid var(--color-focus);outline-offset:-2px}.grid-cell.stale{color:var(--color-ink-muted);font-style:italic}.grid-tree{display:inline-block}.grid-toggler{cursor:pointer;display:inline-block;text-align:center;width:1.25rem}.grid-cell-editing{overflow:visible;padding:0;position:relative}.grid-row-editing{z-index:4}.cell-editor{display:block;height:100%;position:relative}.cell-editor input,.cell-editor select{background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:0;outline:2px solid var(--color-focus);outline-offset:-2px;box-sizing:border-box;color:var(--color-ink);font:inherit;height:100%;line-height:normal;margin:0;padding:0 .5rem;width:100%}.cell-editor input[aria-invalid=true],.cell-editor select[aria-invalid=true]{border-color:var(--color-status-critical);outline-color:var(--color-status-critical)}.cell-editor-message{border-radius:var(--radius-sm);box-sizing:border-box;display:block;left:0;line-height:1.35;max-width:min(22rem,70vw);min-width:100%;padding:.375rem .5rem;position:absolute;top:calc(100% + 2px);white-space:normal;width:max-content;z-index:5}.grid-align-end .cell-editor-message{left:auto;right:0}.cell-editor-error{background:var(--color-status-critical-soft);border:1px solid var(--color-status-critical);color:var(--color-status-critical)}.cell-editor-note{background:var(--color-status-risk-soft);border:1px solid var(--color-status-risk);color:var(--color-ink)}.cell-editor-error+.cell-editor-note{top:calc(100% + 3.25rem)}.grid-cell[aria-busy=true]{color:var(--color-ink-muted)}.conflict-dialog p,.delete-dialog p,.move-dialog p{line-height:1.5}.move-dialog label{display:block;font-weight:var(--text-label-weight);margin:.75rem 0 .25rem}.move-list{background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-sm);box-sizing:border-box;color:var(--color-ink);font:inherit;width:100%}.schedule-critical-on .grid-row-critical .grid-cell:first-child{box-shadow:inset 3px 0 0 var(--color-status-critical)}.schedule-critical-on .grid-row-critical .grid-cell-code{color:var(--color-status-critical);font-weight:var(--text-label-weight)}@media(forced-colors:active){.grid-row-active{box-shadow:inset 0 0 0 1px Highlight}.grid-row-active .grid-cell{background:Highlight;color:HighlightText}.schedule-critical-on .grid-row-critical .grid-cell:first-child{box-shadow:inset 3px 0 0 CanvasText}.schedule-critical-on .grid-row-critical .grid-cell-code{color:CanvasText}}.schedule-search{align-items:center;background:var(--color-surface-alt);border-bottom:1px solid var(--color-line);display:flex;flex-wrap:wrap;gap:.5rem;padding:.25rem var(--space-4)}.schedule-search label{font-size:var(--text-small-size);font-weight:var(--text-label-weight)}.schedule-search input{background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-sm);color:var(--color-ink);font:inherit;min-width:min(20rem,55vw);padding:.125rem .5rem}.schedule-search input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.schedule-search output{color:var(--color-ink-muted);font-size:var(--text-small-size)}.schedule-search button{background:transparent;border:0;color:var(--color-brand);cursor:pointer;font:inherit;padding:.375rem;text-decoration:underline}.schedule-workspace{display:flex;min-height:0}.schedule-workspace>.split-pane{flex:1 1 auto;min-width:0}.properties-panel{background:var(--color-surface);border-left:1px solid var(--color-border-input);box-sizing:border-box;flex:0 0 17rem;max-height:34rem;overflow:auto;padding:.75rem}.properties-panel header{border-bottom:1px solid var(--color-border-input);margin-bottom:.75rem;padding-bottom:.5rem}.properties-panel h3,.properties-panel h4{margin:0}.properties-panel h3{font-size:1rem;overflow-wrap:anywhere}.properties-panel h4{color:var(--color-ink-muted);font-size:var(--text-small-size);margin-bottom:.375rem;text-transform:uppercase}.properties-panel section+section{border-top:1px solid var(--color-border-input);margin-top:.75rem;padding-top:.75rem}.properties-panel dl{margin:0}.property-row{display:grid;gap:.125rem;grid-template-columns:minmax(6rem,.8fr) minmax(7rem,1.2fr);padding:.25rem 0}.property-row dt{color:var(--color-ink-muted);font-size:var(--text-small-size)}.property-row dd{align-items:start;display:flex;gap:.375rem;justify-content:space-between;margin:0;overflow-wrap:anywhere}.properties-kind{color:var(--color-brand);display:block;font-size:var(--text-small-size);font-weight:var(--text-label-weight);margin-bottom:.125rem}.properties-readonly{background:var(--color-surface-alt);color:var(--color-ink-muted);font-size:var(--text-small-size);padding:.375rem}.properties-edit,.properties-move{background:transparent;border:0;color:var(--color-brand);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.properties-edit{font-size:var(--text-small-size)}.properties-move{margin:.125rem 0 .375rem}.properties-panel ul{margin:0;padding-left:1.25rem}.properties-panel li{margin:.25rem 0;overflow-wrap:anywhere}@media(max-width:64rem){.schedule-workspace{flex-direction:column}.properties-panel{border-left:0;border-top:1px solid var(--color-border-input);flex-basis:auto;max-height:none;width:100%}}.column-dialog{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);color:var(--color-ink);max-height:90vh;max-width:min(34rem,calc(100vw - 2rem));overflow:auto;padding:1.25rem 1.5rem;width:100%}.column-dialog::backdrop{background:var(--color-scrim)}.column-dialog-heading{align-items:start;display:flex;gap:1rem;justify-content:space-between}.column-dialog-heading h2{margin:0}.column-dialog-heading p{color:var(--color-ink-muted);margin:.35rem 0 0}.column-dialog-heading>button{font-size:1.4rem;line-height:1}.column-list{display:grid;gap:.35rem;list-style:none;margin:1rem 0 0;padding:0}.column-list li{align-items:center;border-bottom:1px solid var(--color-line);display:flex;gap:.75rem;justify-content:space-between;min-height:2.75rem;padding:.3rem 0}.column-list label{align-items:center;display:flex;flex:1;gap:.65rem}.column-list input{height:1.1rem;width:1.1rem}.column-order{display:flex;gap:.3rem}.column-order button{min-width:2.25rem}.split-pane{display:grid;grid-template-columns:minmax(0,1fr)}.split-pane-on{grid-template-columns:minmax(0,var(--grid-pane-width, 50%)) .5rem minmax(0,1fr)}.split-table,.split-gantt{min-width:0}.split-pane-on .grid-scroll,.gantt-scroll{overflow-x:scroll}.split-handle{background:var(--color-surface-alt);border-left:1px solid var(--color-line);border-right:1px solid var(--color-line);cursor:col-resize;position:relative;touch-action:none}.split-handle:after{background:var(--color-ink-muted);border-radius:var(--radius-pill);content:"";height:1.5rem;left:50%;margin-left:-1px;position:absolute;top:50%;transform:translateY(-50%);width:2px}.split-handle:hover,.split-handle:focus-visible{background:var(--color-accent)}.split-handle:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.gantt-scroll{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);max-height:clamp(18rem,70vh,48rem);max-width:100%;overflow-y:auto}.gantt-scroll:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.gantt{position:relative}.gantt-head{background:var(--color-surface-alt);box-shadow:inset 0 -1px 0 var(--color-line);cursor:ew-resize;height:28px;position:sticky;top:0;touch-action:none;-webkit-user-select:none;user-select:none;z-index:2}.gantt-head:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.gantt-axis{display:block;position:absolute;top:0}.gantt-axis-ticks,.gantt-lines{fill:none;shape-rendering:crispEdges;stroke:var(--color-line);stroke-width:1}.gantt-axis-rule{shape-rendering:crispEdges;stroke:var(--color-line);stroke-width:1}.gantt-axis-label{fill:var(--color-ink-muted);font-family:var(--font-body);font-size:var(--text-label-size);font-variant-numeric:tabular-nums}.gantt-axis-label-top{fill:var(--color-ink);font-weight:var(--text-label-weight)}.gantt-body{position:relative}.gantt-canvas{display:block;position:absolute}.gantt-band{fill:var(--color-surface-alt)}.gantt-active{fill:var(--color-accent);fill-opacity:.5}.gantt-bar,.gantt-summary{shape-rendering:crispEdges}.gantt-bar,.gantt-milestone,.gantt-summary{stroke:var(--color-chart-plan);stroke-linejoin:round;stroke-width:1}.gantt-bar:not([fill]),.gantt-milestone:not([fill]),.gantt-summary:not([fill]){fill:var(--color-chart-plan)}.gantt-hypothetical{stroke-dasharray:3 2}.gantt-progress,.gantt-elapsed{fill:var(--color-chart-actual);shape-rendering:crispEdges}.gantt-baseline,.gantt-baseline-milestone{fill:var(--color-chart-forecast);shape-rendering:crispEdges}.gantt-state-date-label{fill:var(--color-ink);font-family:var(--font-body);font-size:var(--text-label-size);font-weight:var(--text-label-weight);paint-order:stroke;stroke:var(--color-surface);stroke-linejoin:round;stroke-width:3px}.gantt-hatch-ground{fill:var(--color-surface)}.gantt-hatch-line{fill:var(--color-chart-plan)}.gantt-dependency{fill:none;pointer-events:stroke;shape-rendering:crispEdges;stroke:var(--color-ink-muted);stroke-linejoin:round;stroke-width:1}.gantt-dependency-arrow{fill:var(--color-ink-muted)}.gantt-dependency-outdated{stroke-dasharray:3 2}.gantt-critical{stroke:var(--color-status-critical)}.gantt-bar.gantt-critical:not([fill]),.gantt-milestone.gantt-critical:not([fill]){fill:var(--color-status-critical)}.gantt-state-date{shape-rendering:crispEdges;stroke:var(--color-chart-actual);stroke-dasharray:4 3;stroke-width:2}.gantt-legend{align-items:center;color:var(--color-ink-muted);display:flex;flex-wrap:wrap;font-size:var(--text-body-sm-size);gap:.25rem 1.25rem;list-style:none;margin:.5rem 0 0;padding:0}.gantt-legend li{align-items:center;display:flex;gap:.4rem}.gantt-legend svg{flex:none}@media(forced-colors:active){.gantt-bar,.gantt-milestone,.gantt-summary{stroke:CanvasText}.gantt-bar:not([fill]),.gantt-milestone:not([fill]),.gantt-summary:not([fill]),.gantt-hatch-line{fill:CanvasText}.gantt-hatch-ground{fill:Canvas}.gantt-dependency{stroke:CanvasText}.gantt-dependency-arrow{fill:CanvasText}.gantt-critical{stroke:CanvasText}.gantt-bar.gantt-critical:not([fill]),.gantt-milestone.gantt-critical:not([fill]){fill:CanvasText}.gantt-state-date{stroke:CanvasText}.gantt-progress,.gantt-elapsed,.gantt-baseline,.gantt-baseline-milestone{fill:GrayText}.gantt-state-date-label{fill:CanvasText;stroke:Canvas}}.gantt-notice{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-ink-muted);font-size:var(--text-body-sm-size);margin:0 0 0 auto;padding:.15rem .6rem;position:sticky;right:.75rem;top:2.5rem;width:fit-content;z-index:1}.ribbon-button[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-line)}.ribbon-choices{align-content:center}.ribbon-choice{align-items:center;display:flex;gap:.4rem;justify-content:space-between}.ribbon-choice-caption{color:var(--color-ink-muted);font-size:var(--text-label-size);line-height:var(--text-label-line)}.ribbon-choice-options{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.ribbon-option{background:var(--color-surface);border:0;border-radius:0;color:var(--color-ink);font-weight:var(--text-body-weight);font-size:var(--text-body-sm-size);line-height:var(--text-body-sm-line);padding:.1rem .5rem}.ribbon-option+.ribbon-option{border-left:1px solid var(--color-border-input)}.ribbon-option:hover{background:var(--color-accent)}.ribbon-option[aria-checked=true]{background:var(--color-accent);font-weight:var(--text-label-weight)}.ribbon-option:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.ribbon-more-item[aria-checked=true]{font-weight:var(--text-label-weight)}.ribbon-more-item[aria-checked=true]:before{content:"✓ "}.ribbon-more-sublabel{padding-left:1.4rem;text-transform:none}.schedule-footer{align-items:baseline;display:flex;flex:none;flex-wrap:wrap;gap:.25rem 1.25rem;justify-content:space-between;margin:.5rem 0 0}.schedule-footer .gantt-legend{margin:0}.schedule-footer-status{color:var(--color-ink-muted);font-size:var(--text-body-sm-size);margin:0 0 0 auto}.ribbon{margin:0}.ribbon-bar{background:var(--color-surface-alt);position:relative;border-bottom:1px solid var(--color-line);display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.ribbon-row{align-items:stretch;display:flex;flex:1 0 auto;flex-wrap:nowrap}.ribbon-group{display:flex;flex:0 0 auto;flex-direction:column;min-width:0;padding:5px 8px 0}.ribbon-group+.ribbon-group{border-left:1px solid var(--color-line)}.ribbon-items{align-items:center;display:flex;flex:1;flex-wrap:nowrap;gap:2px;justify-content:center}.ribbon-group-label{color:var(--color-ink-muted);font-size:var(--text-label-size);line-height:17px;text-align:center;white-space:nowrap}.ribbon-stack{display:grid;gap:2px;align-content:center}.ribbon-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-ink);display:inline-flex;font-size:var(--text-label-size);font-weight:var(--text-body-weight);gap:4px;justify-content:center;line-height:14px;padding:2px 6px;text-align:center}.ribbon-icon{flex:none;height:1rem;width:1rem}.ribbon-large .ribbon-icon{height:1.25rem;width:1.25rem}.ribbon-large{flex-direction:column;gap:2px;justify-content:flex-start;max-width:5.5rem;min-height:56px;min-width:4rem;padding:4px;text-wrap:balance}.ribbon-large[data-item=active-baseline]{max-width:7rem}.ribbon-small{justify-content:flex-start;min-height:1.625rem;text-align:left}.ribbon-icon-only{justify-content:center;min-width:1.75rem;padding:2px}.ribbon-icon-only .ribbon-icon{height:1.125rem;width:1.125rem}.ribbon-button kbd{color:var(--color-ink-muted);font:inherit;font-family:var(--font-mono);font-size:var(--text-label-size)}.ribbon-button:hover{background:var(--color-accent)}.ribbon-button:hover kbd{color:var(--color-ink)}.ribbon-button:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.ribbon-button[aria-disabled=true]{background:transparent;color:var(--color-ink-muted);cursor:not-allowed}.ribbon-button:disabled{background:transparent;color:var(--color-ink-muted);cursor:not-allowed;opacity:1}.ribbon-button[aria-busy=true]{cursor:progress}.ribbon-button[data-item=save-baseline],.ribbon-button[data-item=close-period]{background:var(--color-brand);color:var(--color-on-brand)}.ribbon-button[data-item=save-baseline]:hover,.ribbon-button[data-item=close-period]:hover{background:var(--color-brand)}.ribbon-button[data-item=save-baseline]:focus-visible,.ribbon-button[data-item=close-period]:focus-visible{outline-color:var(--color-focus-on-brand)}.ribbon-button[data-item=save-baseline][aria-disabled=true],.ribbon-button[data-item=close-period][aria-disabled=true]{background:var(--color-surface);border-color:var(--color-line);color:var(--color-ink-muted)}.ribbon-status{align-content:center;align-items:flex-start;display:flex;flex-direction:column;gap:2px;justify-content:center;max-width:11rem;min-width:0;padding:0 6px}.ribbon-status-caption{color:var(--color-ink-muted);font-size:var(--text-label-size);line-height:16px;white-space:nowrap}.ribbon-status>*{max-width:100%}.ribbon-status .calculation-badge{background-color:var(--color-surface);border:1px solid currentColor;padding:1px 8px}.ribbon-status .control-calculation-state{display:flex;flex-direction:column;gap:2px;max-width:100%;min-width:0}.ribbon-status .control-calculation-state>.calculation-badge{align-self:flex-start}.ribbon-status .control-calculation-short,.ribbon-status .calculation-last-failed{font-size:var(--text-label-size);line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ribbon-group .history-status{color:var(--color-ink-muted);font-size:var(--text-label-size);text-align:center}.ribbon-tooltip{background:var(--color-ink);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);color:var(--color-surface);font-size:var(--text-body-sm-size);line-height:var(--text-body-sm-line);max-width:17.5rem;padding:4px 8px;pointer-events:none;position:fixed;transform:translate(-50%);z-index:30}.ribbon-notices{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.5rem var(--space-4)}.ribbon-notices:empty{display:none}.ribbon-notices .inline-error{flex-basis:100%}.ribbon-more{align-self:center;margin-left:auto;padding:0 .4rem}.ribbon-more-panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-elevated);display:grid;max-width:calc(100vw - 2rem);min-width:15rem;padding:.4rem;position:absolute;right:0;top:100%;z-index:10}.ribbon-more-label{color:var(--color-ink-muted);display:block;font-size:var(--text-label-size);font-weight:var(--text-label-weight);letter-spacing:var(--text-label-tracking);line-height:var(--text-label-line);padding:.3rem .7rem;text-transform:uppercase}.ribbon-more-rule{border:0;border-top:1px solid var(--color-line);margin:.3rem 0}.ribbon-more-item{align-items:center;background:transparent;border-radius:var(--radius-sm);color:var(--color-ink);display:flex;font-weight:var(--text-body-weight);gap:var(--space-2);padding:.5rem .7rem;text-align:left;width:100%}.ribbon-more-item:hover{background:var(--color-accent)}.ribbon-more-item:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.ribbon-more-item[aria-disabled=true],.ribbon-more-item:disabled{background:transparent;color:var(--color-ink-muted);cursor:not-allowed;opacity:1}@media(forced-colors:active){.ribbon-bar{border-bottom-color:CanvasText}.ribbon-tooltip{border:1px solid CanvasText}}main.shell-main:has(.project-detail-wide){max-width:none;padding:0}.project-detail-wide{min-width:0}@media(min-width:64rem)and (min-height:36rem){#root:has(.project-detail-wide){display:flex;flex-direction:column;height:100dvh}#root:has(.project-detail-wide)>.shell-topbar,#root:has(.project-detail-wide)>.app-footer{flex:none}main.shell-main:has(.project-detail-wide){display:flex;flex:1 1 0;flex-direction:column;min-height:0}.project-detail-wide{display:flex;flex:1 1 0;flex-direction:column;min-height:0}.project-detail-wide>.ribbon{flex:none}}#root:has(.project-detail-wide)>.app-footer{background:var(--color-surface-alt);padding:0 var(--space-4) .25rem;text-align:left}.project-detail-wide .schedule-panel{border:0;border-radius:0;display:flex;flex-direction:column;padding:0}.project-detail-wide .schedule-panel>.grid-legend{border-left:0;border-right:0;border-radius:0;margin:0}@media(min-width:64rem)and (min-height:36rem){.project-detail-wide .schedule-panel{flex:1 1 0;min-height:0}.project-detail-wide .schedule-workspace{flex:1 1 0}.project-detail-wide .schedule-workspace>.split-pane{align-items:stretch;grid-template-rows:minmax(0,1fr);min-height:0}.project-detail-wide .split-table,.project-detail-wide .split-gantt{display:flex;flex-direction:column;min-height:0}.project-detail-wide .grid-scroll,.project-detail-wide .gantt-scroll{flex:1 1 0;max-height:none;min-height:0}.project-detail-wide .properties-panel{max-height:none}}.project-detail-wide .grid-scroll,.project-detail-wide .gantt-scroll{border-left:0;border-radius:0;border-right:0}.project-detail-wide .schedule-footer{background:var(--color-surface-alt);border-top:1px solid var(--color-line);margin:0;padding:.25rem var(--space-4)}@media(min-width:64rem)and (min-height:36rem){.project-detail-wide>.control-gate{flex:1 1 0;grid-template-rows:none;display:flex;flex-direction:column;gap:0;min-height:0}.control-gate>.control-indicator-region,.control-gate>.ribbon{flex:none}.control-gate>.schedule-panel{flex:1 1 0;min-height:0}}.print-schedule{display:none}@media print{@page{margin:10mm;size:landscape}body *{visibility:hidden}.print-schedule,.print-schedule *{visibility:visible}.print-schedule{border-collapse:collapse;color:var(--color-ink);display:table;font-family:sans-serif;font-size:8pt;inset:0 auto auto 0;position:absolute;width:100%}.print-schedule caption{font-size:13pt;font-weight:700;padding-bottom:4mm;text-align:left}.print-schedule th,.print-schedule td{border:.2mm solid var(--color-border-input);padding:1.2mm;text-align:left;vertical-align:top}.print-schedule [data-print-text]:before{content:attr(data-print-text);white-space:pre-wrap}.print-schedule thead{display:table-header-group}.print-schedule tr{break-inside:avoid}.print-schedule .print-wbs{background:var(--color-surface-alt);font-weight:700}}
