/* MD3 semantic color roles. One font, three sizes, 8px spacing grid. */
:root {
 color-scheme:light;
 --md-sys-color-primary:#245e53;--md-sys-color-on-primary:#ffffff;
 --md-sys-color-primary-container:#b2eee0;--md-sys-color-on-primary-container:#00201a;
 --md-sys-color-surface:#f7faf7;--md-sys-color-on-surface:#191c1a;
 --md-sys-color-surface-container-lowest:#ffffff;--md-sys-color-surface-container-low:#f0f5f0;
 --md-sys-color-surface-container:#eaf0eb;--md-sys-color-surface-container-high:#e2e9e3;
 --md-sys-color-on-surface-variant:#414944;--md-sys-color-outline:#717973;--md-sys-color-outline-variant:#c1c9c2;
 --md-sys-color-error:#ba1a1a;--md-sys-color-error-container:#ffdad6;--md-sys-color-on-error-container:#410002;
 --md-sys-color-tertiary:#765b14;--md-sys-color-scrim:#000000;
 --planner-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 --md-sys-typescale-body-medium-size:14px;--md-sys-typescale-label-medium-size:12px;--md-sys-typescale-title-large-size:20px;
 --space:8px;--space-2:16px;--space-3:24px;--space-4:32px;
 --md-sys-shape-corner-small:8px;--md-sys-shape-corner-medium:12px;--md-sys-shape-corner-large:24px;
 --planner-border:1px solid var(--md-sys-color-outline-variant);
}
:root[data-theme="dark"] {
 color-scheme:dark;
 --md-sys-color-primary:#96d3c3;--md-sys-color-on-primary:#00382e;
 --md-sys-color-primary-container:#0b5043;--md-sys-color-on-primary-container:#b2eee0;
 --md-sys-color-surface:#101512;--md-sys-color-on-surface:#e0e4df;
 --md-sys-color-surface-container-lowest:#0b100d;--md-sys-color-surface-container-low:#191e1b;
 --md-sys-color-surface-container:#1d221f;--md-sys-color-surface-container-high:#272d29;
 --md-sys-color-on-surface-variant:#bfc9c2;--md-sys-color-outline:#89938c;--md-sys-color-outline-variant:#3f4943;
 --md-sys-color-error:#ffb4ab;--md-sys-color-error-container:#93000a;--md-sys-color-on-error-container:#ffdad6;
 --md-sys-color-tertiary:#e7c36c;
}
*{box-sizing:border-box}body{margin:0;font:400 var(--md-sys-typescale-body-medium-size)/1.5 var(--planner-font);background:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface)}
h1,h2,h3,p{margin:0}h1{font-size:var(--md-sys-typescale-title-large-size);font-weight:600}h2,h3,strong{font-size:inherit;font-weight:600}small,.footnote{font-size:var(--md-sys-typescale-label-medium-size);color:var(--md-sys-color-on-surface-variant)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button,input,select,textarea{outline-offset:2px}:focus-visible{outline:2px solid var(--md-sys-color-primary)}
.md-button{border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-large);padding:var(--space) var(--space-2);min-height:36px;background:transparent;white-space:nowrap;font-weight:500;line-height:1.25}
.md-button.text,.md-button.cell-button{border-color:transparent;color:var(--md-sys-color-primary)}.md-button.filled{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-color:transparent}.md-button.active{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);border-color:transparent}.md-button:hover:not(:disabled),.tree-item:hover{background:color-mix(in srgb,var(--md-sys-color-primary) 10%,var(--md-sys-color-surface))}.md-button.filled:hover{background:color-mix(in srgb,var(--md-sys-color-primary) 85%,var(--md-sys-color-on-primary))}
.appbar{height:64px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space) var(--space-3);background:var(--md-sys-color-surface-container-lowest);border-bottom:var(--planner-border)}.brand,.actions,.appbar-actions{display:flex;align-items:center;gap:var(--space)}.brand strong{font-size:var(--md-sys-typescale-title-large-size)}.brand small{display:none}.brand-mark{display:grid;place-items:center;width:32px;height:32px;background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border-radius:var(--md-sys-shape-corner-small)}.actor{font-size:var(--md-sys-typescale-label-medium-size);color:var(--md-sys-color-on-surface-variant)}.drawer-toggle{font-size:var(--md-sys-typescale-title-large-size);width:36px;padding:0}
.workspace{display:grid;grid-template-columns:240px minmax(0,1fr);height:calc(100dvh - 64px)}.sidebar{min-width:0;overflow:auto;padding:var(--space-2);border-right:var(--planner-border);display:flex;flex-direction:column;gap:var(--space-2);background:var(--md-sys-color-surface-container-low)}.sidebar-title{display:flex;align-items:center;justify-content:space-between}.drawer-closed .workspace{grid-template-columns:minmax(0,1fr)}.drawer-closed .sidebar{display:none}.content{min-width:0;min-height:0;overflow:auto;padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}
.planner-toolbar{display:flex;align-items:center;gap:var(--space);flex-wrap:wrap}.planner-toolbar .md-field{flex:1 1 200px;max-width:320px}.planner-toolbar .md-field>span{display:none}.toolbar-meta{font-size:var(--md-sys-typescale-label-medium-size);color:var(--md-sys-color-on-surface-variant);margin-left:auto}.tabs{display:flex;gap:var(--space);flex-shrink:0;border-bottom:var(--planner-border);overflow:auto;padding-bottom:var(--space)}.tabs .md-button{font-size:var(--md-sys-typescale-body-medium-size)}
.overview{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-2)}.overview>*{grid-column:span 12}.metrics{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-2)}.metric{grid-column:span 4;text-align:right;padding:var(--space-2);background:var(--md-sys-color-surface-container);border-radius:var(--md-sys-shape-corner-medium);border:1px solid transparent}.metric>span{display:block;color:var(--md-sys-color-on-surface-variant);font-size:var(--md-sys-typescale-label-medium-size)}.metric strong{display:block;margin-top:var(--space);font-size:var(--md-sys-typescale-title-large-size);font-weight:600;font-variant-numeric:tabular-nums}.metric[tabindex]{cursor:pointer}.metric[tabindex]:hover{border-color:var(--md-sys-color-outline)}
.panel{min-width:0;min-height:0;border:var(--planner-border);border-radius:var(--md-sys-shape-corner-medium);padding:var(--space-2);background:var(--md-sys-color-surface-container-lowest);display:flex;flex-direction:column;gap:var(--space-2)}.timeline-panel{flex:1;overflow:hidden}.grid-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space);flex-wrap:wrap;flex-shrink:0}.grid-controls>.actions{flex-wrap:wrap}.grid-controls .md-field{min-width:128px}.grid-controls .md-field>span{display:none}.actions-dialog{display:flex;flex-direction:column;gap:var(--space);align-items:stretch}
.md-field{display:flex;flex-direction:column;gap:var(--space);min-width:0}.md-field>span{font-size:var(--md-sys-typescale-label-medium-size);color:var(--md-sys-color-on-surface-variant)}input,select,textarea{border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-small);padding:var(--space);min-height:36px;background:var(--md-sys-color-surface-container-lowest)}.md-field input,.md-field select,.md-field textarea{width:100%}textarea{min-height:96px}input[type=search]{max-width:100%;width:320px}
.table-scroll{overflow:auto;min-width:0;min-height:0;max-width:100%;max-height:60vh;scrollbar-color:var(--md-sys-color-outline) var(--md-sys-color-surface-container)}.timeline-panel>.table-scroll{max-height:none;flex:1;overscroll-behavior:contain}.table-scroll.dragging{cursor:grabbing;user-select:none}.timeline-navigation{display:flex;align-items:center;gap:var(--space)}.top-scroll{overflow-x:auto;overflow-y:hidden;height:16px;flex:1;scrollbar-color:var(--md-sys-color-outline) var(--md-sys-color-surface-container)}.top-scroll>div{height:1px}.timeline-navigation .md-button{padding:0 var(--space);min-height:24px}.table-scroll:focus{outline-offset:-2px}
table{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums}th,td{padding:var(--space) var(--space-2);border-bottom:var(--planner-border);text-align:left}thead th{position:sticky;top:0;z-index:2;font-size:var(--md-sys-typescale-label-medium-size);font-weight:500;color:var(--md-sys-color-on-surface-variant);background:var(--md-sys-color-surface-container)}.numeric,.financial-table td,.financial-table thead th:not(:first-child){text-align:right;white-space:nowrap}.financial-table td,.financial-table thead th:not(:first-child){min-width:128px}.financial-table th:first-child{position:sticky;left:0;min-width:264px;max-width:280px;background:var(--md-sys-color-surface-container-lowest);z-index:1}.financial-table thead th:first-child{z-index:3;background:var(--md-sys-color-surface-container)}.financial-table small{display:block;font-weight:400}.financial-table .total>*{background:var(--md-sys-color-surface-container-low)}.financial-table .emphasis>*{background:var(--md-sys-color-surface-container);font-weight:600}.line-trace{text-align:left;white-space:normal;padding:0;border-radius:0}.cell-button{padding:0 var(--space);min-height:28px;border-radius:var(--md-sys-shape-corner-small)}.numeric .cell-button{width:100%;text-align:right}.negative{color:var(--md-sys-color-error)}.overridden{background:var(--md-sys-color-primary-container)}tr.selected>*,tr.selected>th:first-child{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container)}tbody tr[data-selectable]:hover>*{background:color-mix(in srgb,var(--md-sys-color-primary) 8%,var(--md-sys-color-surface-container-lowest))}
.project-tree ul{list-style:none;margin:0;padding:0}.project-tree ul ul{padding-left:var(--space)}.tree-row{display:flex;align-items:center}.tree-toggle,.tree-spacer{width:24px;flex-shrink:0}.tree-toggle{border:0;background:transparent;min-height:36px}.tree-item{border:0;background:transparent;min-height:40px;text-align:left;padding:var(--space);border-radius:var(--md-sys-shape-corner-small);width:100%;overflow-wrap:anywhere}.tree-item.selected{background:var(--md-sys-color-primary-container);color:var(--md-sys-color-on-primary-container);font-weight:600}
.md-dialog{color:var(--md-sys-color-on-surface);background:var(--md-sys-color-surface-container-high);border:var(--planner-border);border-radius:var(--md-sys-shape-corner-large);padding:var(--space-3);max-width:640px;width:calc(100% - 32px);max-height:90dvh;box-shadow:0 8px 32px color-mix(in srgb,var(--md-sys-color-scrim) 24%,transparent)}.md-dialog::backdrop{background:color-mix(in srgb,var(--md-sys-color-scrim) 48%,transparent)}.md-dialog form{display:flex;flex-direction:column;gap:var(--space-2)}.md-dialog h2{font-size:var(--md-sys-typescale-title-large-size);margin-bottom:var(--space-2)}.md-dialog>button{margin-top:var(--space-2)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space)}.help-content{white-space:pre-line;overflow-wrap:anywhere}.trace-dialog{max-width:960px}.trace-dialog p{margin-bottom:var(--space-2)}.trace-dialog .table-scroll{max-height:40vh}.notice{padding:var(--space-2);border-radius:var(--md-sys-shape-corner-small);background:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface-variant)}.notice.error{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}.review-finding{padding:var(--space-2);border-bottom:var(--planner-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.review-finding p{font-size:var(--md-sys-typescale-label-medium-size);color:var(--md-sys-color-on-surface-variant)}.review-finding.warning{border-left:3px solid var(--md-sys-color-tertiary)}.review-finding.pass{border-left:3px solid var(--md-sys-color-primary)}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:var(--space-3)}.login-card{width:min(100%,416px);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--md-sys-color-surface-container-lowest);border:var(--planner-border);border-radius:var(--md-sys-shape-corner-large)}.catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.catalog-item{padding:var(--space-2);border:var(--planner-border);border-radius:var(--md-sys-shape-corner-medium);display:flex;flex-direction:column;gap:var(--space);align-items:flex-start}.catalog-item p{font-size:var(--md-sys-typescale-label-medium-size);color:var(--md-sys-color-on-surface-variant)}.empty{padding:var(--space-3)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:1100px){.workspace{grid-template-columns:208px minmax(0,1fr)}.content{padding:var(--space-2)}.brand strong{font-size:var(--md-sys-typescale-body-medium-size)}.actor{display:none}.appbar{padding:var(--space) var(--space-2)}}
@media(max-width:700px){.appbar{height:auto;min-height:64px;flex-wrap:wrap}.workspace{height:auto;min-height:calc(100dvh - 96px);display:block}.sidebar{max-height:240px;border-right:0;border-bottom:var(--planner-border)}.brand-mark{display:none}.content{padding:var(--space)}.appbar .md-button{padding:var(--space)}.metric{grid-column:span 6}.planner-toolbar .md-field{flex-basis:144px}.toolbar-meta{margin-left:0}.financial-table th:first-child{min-width:176px;max-width:176px}.timeline-panel>.table-scroll{height:55vh;flex:auto}.catalog{grid-template-columns:1fr}.panel{padding:var(--space)}.tabs .md-button{padding:var(--space)}.actions{flex-wrap:wrap}}
/* Workspace contract: navigation, project list and detail are independent regions. */
.planner-shell{height:100dvh;display:grid;grid-template-columns:208px minmax(0,1fr);grid-template-rows:64px minmax(0,1fr);overflow:hidden}
.planner-shell>.appbar{grid-column:1/-1;min-height:0;flex-wrap:nowrap;padding:8px 16px}.planner-shell .brand strong{font-size:20px}.planner-shell .brand{min-width:0}.planner-shell .actions{flex-wrap:nowrap}
.app-navigation{grid-column:1;grid-row:2;overflow:auto;background:var(--md-sys-color-surface-container-low);padding:8px;display:flex;flex-direction:column;gap:4px;border-right:var(--planner-border)}
.app-navigation>.md-button{text-align:left;border-radius:12px;white-space:normal;display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px}.nav-heading{font-size:12px;padding:8px 12px;color:var(--md-sys-color-on-surface-variant)}.nav-icon{width:24px;flex:0 0 24px;text-align:center}.app-navigation hr{width:100%;border:0;border-top:var(--planner-border)}
.planner-shell.rail-mode{grid-template-columns:72px minmax(0,1fr)}.rail-mode .app-navigation .nav-label{display:none}.rail-mode .app-navigation>.md-button:not(:has(.nav-icon)){font-size:12px;padding:8px 2px;text-align:center}.rail-mode .app-navigation>.md-button:has(.nav-icon){justify-content:center;padding:8px}
.work-region{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.pane-switch{height:36px;display:flex;justify-content:space-between;background:var(--md-sys-color-surface-container-low);border-bottom:var(--planner-border)}.pane-switch button{min-height:32px;padding:4px 12px;font-size:12px}
.pane-workspace{flex:1;min-height:0;display:grid;grid-template-columns:var(--list-width,260px) 8px minmax(0,1fr);overflow:hidden}.list-pane{min-width:0;overflow:auto;padding:16px 8px;background:var(--md-sys-color-surface-container-low);display:flex;flex-direction:column;gap:8px}.detail-pane{min-width:0;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:12px 16px}
.pane-splitter{cursor:col-resize;background:var(--md-sys-color-surface-container);touch-action:none;position:relative}.pane-splitter::after{content:'';width:2px;height:40px;position:absolute;top:45%;left:3px;background:var(--md-sys-color-outline)}.pane-splitter:hover,.pane-splitter:focus-visible{background:var(--md-sys-color-primary-container)}
.pane-workspace[data-mode=detail],.pane-workspace[data-mode=list]{display:block}.pane-workspace[data-mode=detail]>.list-pane,.pane-workspace[data-mode=detail]>.pane-splitter,.pane-workspace[data-mode=list]>.detail-pane,.pane-workspace[data-mode=list]>.pane-splitter{display:none}.pane-workspace[data-mode=detail]>.detail-pane,.pane-workspace[data-mode=list]>.list-pane{height:100%}
.planner-toolbar{flex-shrink:0}.planner-toolbar>strong{max-width:280px}.planner-toolbar .md-field{max-width:260px;margin-left:auto}.inputs-panel{flex:1;overflow:hidden}.inputs-panel>.table-scroll{max-height:none;flex:1}.input-save-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.input-save-bar>span{font-size:12px}.input-save-bar input{flex:1;min-width:140px}.inline-number{width:100%;min-width:70px;text-align:right;border-color:transparent;background:transparent;border-radius:0;padding:4px}.inline-number:focus{background:var(--md-sys-color-surface-container-lowest);border-color:var(--md-sys-color-primary)}
.planning-table{table-layout:fixed;width:max-content;min-width:100%}.planning-table th,.planning-table td{border-right:var(--planner-border);overflow-wrap:anywhere}.planning-table thead th{padding-right:18px}.planning-table .column-grip{position:absolute;right:0;top:0;width:9px;height:100%;cursor:col-resize;touch-action:none}.column-grip:hover,.column-grip:focus-visible{background:var(--md-sys-color-primary-container)}.filler-column{width:auto}.planning-table .filler-cell{padding:0;min-width:0;border-right:0}.financial-table th:first-child{min-width:0;max-width:none}.row-details{font-size:12px;min-height:24px;padding:2px 6px}.line-trace{display:block}
.segmented,.period-navigation{display:flex;align-items:center;border:var(--planner-border);border-radius:24px;overflow:hidden;gap:0}.segmented .md-button,.period-navigation .md-button{min-height:32px;padding:6px 12px}.period-navigation>span{font-size:12px;padding:0 8px;white-space:nowrap}.timeline-panel{min-height:240px}.nav-scrim{display:none}.table-scroll{overscroll-behavior:contain}
@media(max-width:1100px){.planner-shell .brand strong{font-size:14px}.detail-pane{padding:8px}.planner-toolbar>strong{max-width:200px}}
@media(max-width:700px),(pointer:coarse) and (max-width:1024px){.planner-shell,.planner-shell.rail-mode{grid-template-columns:minmax(0,1fr);grid-template-rows:64px minmax(0,1fr)}.planner-shell>.appbar{padding:4px 8px;gap:4px}.planner-shell .brand strong{font-size:14px;max-width:110px;line-height:1.2}.planner-shell .actions{gap:0}.planner-shell .actions .md-button{padding:6px;min-height:44px;font-size:12px}.app-navigation{display:none;position:fixed;top:64px;left:0;bottom:0;width:264px;z-index:12}.nav-open>.app-navigation{display:flex}.nav-open>.nav-scrim{display:block;position:fixed;inset:64px 0 0 264px;background:color-mix(in srgb,var(--md-sys-color-scrim) 40%,transparent);border:0;z-index:11}.rail-mode .app-navigation .nav-label{display:initial}.rail-mode .app-navigation>.md-button:has(.nav-icon){justify-content:flex-start}.work-region{grid-column:1;grid-row:2}.pane-switch{height:40px}.pane-switch button{min-height:40px}.detail-pane{padding:8px}.planner-toolbar>strong{max-width:none;width:100%}.planner-toolbar .md-field{max-width:none;flex:1;min-width:0}.grid-controls{justify-content:flex-start}.grid-controls input[type=search]{width:100%}.timeline-panel>.table-scroll{height:auto;flex:1}.planning-table .md-button{min-height:40px}.metric{padding:12px}.inputs-panel{min-height:240px}.input-save-bar input{width:100%}}
