:root{--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--sans:"Manrope", "Segoe UI", system-ui, sans-serif;font-family:var(--sans);color:var(--text);background:var(--page-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background-attachment:fixed;font-weight:500;line-height:1.45}:root,[data-theme=original]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#1c2421;--text-muted:#5f6d68;--bg:#e8eeea;--bg-accent:#dfe8e2;--surface:#fbfcfb;--surface-raised:#fff;--surface-hover:#f0f3f1;--border:#c9d4ce;--border-soft:#dce4df;--accent:#1a7a52;--accent-hover:#146343;--accent-soft:#1a7a521f;--accent-deep:#146343;--on-accent:#fff;--danger:#b42318;--warning:#92400e;--warning-bg:#fffbeb;--warning-border:#f59e0b;--info:#1e40af;--info-bg:#eff6ff;--info-border:#93c5fd;--location-bg:#e4ece7;--track:#e8ece9;--allowed:#f4f7f5;--available:#d8ece1;--blocked:#d5dcd7;--placement:#2f5f8a38;--placement-border:#1f4a78e0;--marker-color:#1a4d86;--resource-label-fg:#143a66;--resource-label-bg:#fffffff0;--resource-label-ring:#1f4a7833;--processing-ring:#1a7a5240;--processing-chip-bg:#ffffffeb;--processing-chip-ring:#1f6b4a33;--neon-glow:0 0 0 transparent;--neon-glow-soft:0 0 0 transparent;--neon-glow-strong:0 0 0 transparent;--placement-glow:0 0 0 transparent;--placement-glow-recommended:0 0 0 transparent;--placement-glow-locked:0 0 0 transparent;--text-glow:none;--active-inset:transparent;--available-wash:transparent;--available-inset-glow:0 0 0 transparent;--allowed-edge:#5a625e73;--allowed-inner-glow:0 0 0 transparent;--hover-fill:#2e915a2e;--hover-ring:#2e915a73;--hover-glow:0 0 0 transparent;--blocked-wash-top:#ffffff38;--blocked-wash-bottom:#1c24210d;--blocked-dot:#373e3a24;--shadow-sm:0 1px 2px #1c24210d;--shadow-md:0 8px 24px #1c242114;--page-bg:radial-gradient(1200px 500px at 12% -10%, #1a7a5214, transparent 55%), radial-gradient(900px 420px at 100% 0%, #2f5f8a0f, transparent 50%), linear-gradient(180deg, var(--bg-accent) 0%, var(--bg) 40%, #e6ebe8 100%)}[data-theme=neon]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#eefaf3;--text-muted:#8ea89a;--bg:#05080a;--bg-accent:#091110;--surface:#0c1412;--surface-raised:#121c19;--surface-hover:#1a2a24;--border:#243832;--border-soft:#1a2a24;--accent:#39ff9a;--accent-hover:#6dffb4;--accent-soft:#39ff9a29;--accent-deep:#00c86a;--on-accent:#03140c;--danger:#ff6b7a;--warning:#ffd166;--warning-bg:#ffd1661f;--warning-border:#ffd16666;--info:#5ce1ff;--info-bg:#5ce1ff1f;--info-border:#5ce1ff61;--location-bg:#101c18;--track:#070d0b;--allowed:#123028;--available:#1a5a3f;--blocked:#060a09;--placement:#5ce1ff2e;--placement-border:#5ce1ffeb;--marker-color:#7ef0ff;--resource-label-fg:#baf7ff;--resource-label-bg:#041218e6;--resource-label-ring:#5ce1ff8c;--processing-ring:#39ff9a38;--processing-chip-bg:#0c161ee6;--processing-chip-ring:#39ff9a47;--neon-glow:0 0 10px #39ff9a73, 0 0 28px #39ff9a33;--neon-glow-soft:0 0 8px #39ff9a47;--neon-glow-strong:0 0 14px #39ff9a8c, 0 0 34px #39ff9a47;--placement-glow:0 0 12px #5ce1ff59;--placement-glow-recommended:0 0 14px #5ce1ff47;--placement-glow-locked:0 0 16px #5ce1ff66;--text-glow:0 0 12px #39ff9a73;--active-inset:#39ff9a59;--available-wash:#39ff9a38;--available-inset-glow:inset 0 0 16px #39ff9a2e;--allowed-edge:#39ff9a73;--allowed-inner-glow:inset 0 0 18px #39ff9a0f;--hover-fill:#39ff9a33;--hover-ring:#39ff9ab3;--hover-glow:0 0 14px #39ff9a40;--blocked-wash-top:#ffffff08;--blocked-wash-bottom:#00000047;--blocked-dot:#8ca0961f;--shadow-sm:0 1px 2px #00000073;--shadow-md:0 16px 44px #0000008c;--page-bg:radial-gradient(920px 460px at 10% -12%, #39ff9a2e, transparent 55%), radial-gradient(780px 420px at 95% 0%, #5ce1ff24, transparent 52%), radial-gradient(640px 480px at 50% 115%, #39ff9a0f, transparent 55%), linear-gradient(180deg, #07110e 0%, var(--bg) 42%, #030605 100%)}[data-theme=cursor]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#e7e7e9;--text-muted:#9b9ba3;--bg:#0c0c0e;--bg-accent:#121214;--surface:#141416;--surface-raised:#1a1a1d;--surface-hover:#232328;--border:#2c2c32;--border-soft:#222228;--accent:#82aaff;--accent-hover:#a6c2ff;--accent-soft:#82aaff29;--accent-deep:#5b7fd6;--on-accent:#0a0e18;--danger:#ff7b72;--warning:#e2b714;--warning-bg:#e2b7141f;--warning-border:#e2b71461;--info:#89ddff;--info-bg:#89ddff1f;--info-border:#89ddff59;--location-bg:#16161a;--track:#0f0f12;--allowed:#1a2233;--available:#243552;--blocked:#0a0a0c;--placement:#82aaff2e;--placement-border:#a6c2ffe0;--marker-color:#a6c2ff;--resource-label-fg:#d7e4ff;--resource-label-bg:#0c101ceb;--resource-label-ring:#82aaff73;--processing-ring:#82aaff47;--processing-chip-bg:#12141cf0;--processing-chip-ring:#82aaff52;--neon-glow:0 0 10px #82aaff47, 0 0 24px #82aaff1f;--neon-glow-soft:0 0 8px #82aaff2e;--neon-glow-strong:0 0 14px #82aaff59, 0 0 30px #82aaff29;--placement-glow:0 0 10px #82aaff38;--placement-glow-recommended:0 0 12px #82aaff2e;--placement-glow-locked:0 0 14px #82aaff47;--text-glow:0 0 10px #82aaff47;--active-inset:#82aaff59;--available-wash:#82aaff24;--available-inset-glow:inset 0 0 14px #82aaff1a;--allowed-edge:#82aaff59;--allowed-inner-glow:inset 0 0 16px #82aaff0d;--hover-fill:#82aaff29;--hover-ring:#a6c2ffa6;--hover-glow:0 0 12px #82aaff2e;--blocked-wash-top:#ffffff08;--blocked-wash-bottom:#00000059;--blocked-dot:#9696a01f;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 16px 40px #0000008c;--page-bg:radial-gradient(880px 420px at 12% -10%, #82aaff1a, transparent 55%), radial-gradient(760px 400px at 100% 0%, #89ddff0f, transparent 50%), linear-gradient(180deg, #101014 0%, var(--bg) 45%, #08080a 100%)}*{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}input,select,textarea{background:var(--surface-raised);border-color:var(--border);color:var(--text)}a{color:inherit}::selection{background:var(--accent-soft);color:var(--text)}option{background:var(--surface-raised);color:var(--text)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-shell:has(.project-schedule-page){height:100vh;max-height:100vh;overflow:hidden}.app-shell:has(.project-schedule-page)>.top-bar{flex:none}:is(html:has(.project-schedule-page),body:has(.project-schedule-page)){height:100%;overflow:hidden}.top-bar{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--surface-raised) 88%, transparent);-webkit-backdrop-filter:blur(10px);z-index:10;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 1rem;display:flex;position:sticky;top:0}.top-bar-nav{border-radius:var(--radius-md);background:color-mix(in srgb, var(--location-bg) 80%, var(--surface-raised));border:1px solid var(--border-soft);align-items:center;gap:.25rem;padding:.2rem;display:flex}.top-bar-actions{align-items:center;gap:.65rem;display:flex}.theme-select-field{color:var(--text-muted);align-items:center;gap:.35rem;margin:0;font-size:.78rem;font-weight:700;display:inline-flex}.theme-select-label{letter-spacing:.02em}.theme-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font:inherit;box-shadow:var(--shadow-sm);margin:0;padding:.3rem .5rem;font-size:.78rem;font-weight:700}.theme-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.processing-indicator{color:var(--accent);align-items:center;gap:.45rem;font-size:.85rem;font-weight:700;display:inline-flex}.processing-spinner{border:2px solid var(--processing-ring);border-top-color:var(--accent);width:1rem;height:1rem;box-shadow:var(--neon-glow-soft);border-radius:50%;animation:.75s linear infinite processing-spin}.processing-label{letter-spacing:.02em}@keyframes processing-spin{to{transform:rotate(360deg)}}.top-bar-link{border-radius:var(--radius-sm);color:var(--text-muted);padding:.4rem .85rem;font-size:.88rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s}.top-bar-link:hover{color:var(--text);background:color-mix(in srgb, var(--surface-raised) 55%, transparent)}.top-bar-link.is-active{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface-raised));box-shadow:var(--neon-glow-soft), inset 0 0 0 1px var(--active-inset);text-shadow:var(--text-glow)}.statistics-page{padding:.75rem 1rem 1rem}.statistics-page h1,.budget-groups-page h1{letter-spacing:-.025em;margin:0 0 .35rem;font-size:1.45rem;font-weight:800}.statistics-page>.muted{margin:0 0 1rem}.budget-groups-page{max-width:52rem;padding:.75rem 1rem 1.5rem}.budget-groups-page h1{margin:0 0 .35rem}.budget-groups-page>.muted{margin:0 0 1rem}.project-schedule-page{box-sizing:border-box;flex-direction:column;flex:1;min-height:0;padding:0 1rem .25rem;display:flex;overflow:hidden}.project-schedule-subnav{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--surface-raised) 70%, transparent);flex:none;justify-content:flex-start;align-items:center;gap:.5rem;min-height:1.85rem;margin:0 -1rem .2rem;padding:.15rem 1rem;display:flex}.project-schedule-toolbar{flex-wrap:wrap;align-items:flex-end;gap:.55rem;display:flex}.project-schedule-split{flex:1;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);align-items:stretch;gap:.85rem;min-height:0;display:grid;overflow:hidden}.project-schedule-split.is-schedule-expanded{grid-template-columns:minmax(0,1fr)}.project-schedule-split.is-schedule-expanded .project-schedule-split-stats{display:none}.project-schedule-split.is-stats-expanded{grid-template-columns:minmax(0,1fr)}.project-schedule-split.is-stats-expanded .project-schedule-split-main{display:none}.project-schedule-split.is-stats-expanded .project-schedule-split-stats,.project-schedule-split.is-stats-expanded .project-schedule-stats{overflow:auto}.project-schedule-panel-head{flex:none;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.3rem;display:flex}.project-schedule-panel-head h2{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.82rem;font-weight:800}.project-schedule-panel-expand{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:inherit;font:inherit;cursor:pointer;padding:.25rem .55rem;font-size:.75rem;font-weight:700}.project-schedule-panel-expand:hover{border-color:var(--accent);color:var(--accent)}.project-schedule-panel-expand[aria-pressed=true]{background:color-mix(in srgb, var(--accent) 14%, var(--surface-raised));border-color:var(--accent);color:var(--accent)}.project-schedule-split-main,.project-schedule-split-stats{align-self:stretch;min-width:0;height:100%;min-height:0}.project-schedule-split-main{flex-direction:column;display:flex;overflow:hidden}.project-schedule-split-stats{flex-direction:column;align-self:stretch;height:100%;display:flex;overflow:hidden}.project-schedule-split-stats .project-schedule-stats{flex-direction:column;flex:1;gap:.55rem;min-height:0;display:flex;overflow:hidden}.project-schedule-split-stats .stat-card{flex-direction:column;flex:1 1 0;min-height:0;margin-bottom:0;padding:.45rem .55rem .55rem;display:flex;overflow:hidden}.project-schedule-stat-card-head{flex:none;margin-bottom:.35rem}.project-schedule-stat-view{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;display:flex}.project-schedule-stat-view select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);min-width:0;max-width:100%;color:var(--text);font:inherit;text-transform:none;letter-spacing:normal;flex:1;padding:.2rem .4rem;font-size:.8rem;font-weight:600}.project-schedule-split-stats .stat-card h2{flex:none;margin-bottom:.35rem;font-size:.92rem}.project-schedule-stat-body{flex:1;align-items:stretch;min-height:0}.project-schedule-split-stats .stat-toggle-list{box-sizing:border-box;flex-direction:column;width:100%;min-width:0;max-width:100%;min-height:0;padding:.3rem .35rem .4rem;display:flex;overflow:hidden}.project-schedule-split-stats .stat-toggle-list-header{flex-wrap:wrap;gap:.2rem;margin-bottom:.3rem}.project-schedule-split-stats .stat-toggle-list-header h3{font-size:.68rem;line-height:1.15}.project-schedule-split-stats .stat-toggle-list-actions{gap:.3rem}.project-schedule-split-stats .stat-toggle-link{font-size:.65rem}.project-schedule-split-stats .stat-toggle-items{flex:1;gap:.2rem;min-height:0;max-height:none}.project-schedule-split-stats .stat-toggle-item{gap:.25rem;min-width:0;font-size:.65rem;line-height:1.25}.project-schedule-split-stats .stat-toggle-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-schedule-split-stats .stat-toggle-item input{flex:none;width:.72rem;height:.72rem;margin-top:.08rem}.project-schedule-split-stats .stat-chart{flex-direction:column;height:100%;min-height:0;display:flex}.project-schedule-split-stats .stat-chart>.muted{margin:auto 0}.project-schedule-split-stats .stat-chart-svg{flex:auto;width:100%;height:100%;min-height:0}.project-schedule-split-stats .stat-legend{flex:none;gap:.35rem .65rem;margin-top:.35rem;font-size:.72rem}.project-schedule-split .project-schedule-grid{min-width:0}.project-schedule-split .project-schedule-grid .sticky-col{width:8.5rem;min-width:8.5rem;max-width:8.5rem}.project-schedule-split.is-schedule-expanded .project-schedule-grid .sticky-col{width:11rem;min-width:11rem;max-width:11rem}.project-schedule-split .project-schedule-actions-head,.project-schedule-split .project-schedule-actions{width:5.5rem;min-width:5.5rem;max-width:5.5rem}.project-schedule-split .project-schedule-btn{padding:.3rem .5rem;font-size:.78rem}@media (width<=1100px){.project-schedule-split:not(.is-stats-expanded):not(.is-schedule-expanded){grid-template-columns:1fr}.project-schedule-split:not(.is-stats-expanded):not(.is-schedule-expanded) .project-schedule-split-stats{display:none}.project-schedule-split.is-stats-expanded .project-schedule-split-stats{display:flex}}.project-schedule-stats{flex-direction:column;gap:.65rem;display:flex}.project-schedule-stats-card h2{margin:0 0 .35rem;font-size:1.1rem}.project-schedule-stats-card>.muted{margin:0 0 .75rem;font-size:.88rem}.project-schedule-stats-table-wrap{border:1px solid var(--border);overflow-x:auto}.project-schedule-stats-table{border-collapse:collapse;width:100%;font-size:.92rem}.project-schedule-stats-table th,.project-schedule-stats-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .7rem}.project-schedule-stats-table th:nth-child(2),.project-schedule-stats-table th:nth-child(3),.project-schedule-stats-table td:nth-child(2),.project-schedule-stats-table td:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}.project-schedule-stats-table th{letter-spacing:.04em;text-transform:uppercase;background:var(--surface-raised);font-size:.75rem}.project-schedule-stats-table tbody tr:last-child td{border-bottom:none}.project-schedule-stats-event-list{flex-direction:column;gap:.85rem;display:flex}.project-schedule-stats-event{border:1px solid var(--border);background:var(--surface);padding:.7rem .85rem}.project-schedule-stats-event-head{flex-direction:column;gap:.2rem;margin-bottom:.55rem;display:flex}.project-schedule-stats-event .project-schedule-stats-table{border:1px solid var(--border)}.project-schedule-year{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);flex-direction:row;align-items:center;gap:.4rem;margin:0;font-size:.75rem;font-weight:700;display:flex}.project-schedule-year select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);min-width:5.5rem;color:var(--text);font:inherit;text-transform:none;letter-spacing:normal;padding:.15rem .4rem;font-size:.82rem;font-weight:600;line-height:1.2}.project-schedule-btn{border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer;border:1px solid #0000;padding:.45rem .85rem;font-weight:700}.project-schedule-btn:disabled{opacity:.55;cursor:not-allowed}.project-schedule-add-btn{justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:1.25rem;line-height:1;display:inline-flex}.project-schedule-btn-ghost{color:inherit;border-color:var(--border);background:0 0;font-weight:600}.project-schedule-btn-danger{color:var(--danger,#b42318);border-color:color-mix(in srgb, var(--danger,#b42318) 40%, var(--border));background:0 0;padding:.35rem .55rem;font-size:.78rem;font-weight:600}.project-schedule-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger,#b42318) 14%, var(--surface))}.project-schedule-add-panel{border:1px solid var(--border);background:var(--surface-raised);flex:none;max-height:12rem;margin:0 0 .75rem;padding:.85rem 1rem;overflow:auto}.project-schedule-add-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}.project-schedule-add-search{border:1px solid var(--border);background:var(--surface);width:min(100%,22rem);color:inherit;font:inherit;margin-bottom:.65rem;padding:.4rem .55rem}.project-schedule-add-list{flex-direction:column;gap:.45rem;max-height:16rem;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.project-schedule-add-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .35rem;display:flex}.project-schedule-add-list li:last-child{border-bottom:none}.project-schedule-add-name{font-weight:700}.project-schedule-add-meta{font-size:.85rem}.project-schedule-table-wrap{border:1px solid var(--border);background:var(--surface);flex:1 1 0;min-height:0;overflow:auto}.project-schedule-table-tabs{z-index:7;border-bottom:1px solid var(--border);background:var(--surface-hover);gap:0;display:flex;position:sticky;top:0}.project-schedule-table-tab{appearance:none;border:0;border-right:1px solid var(--border);color:var(--text-muted);font:inherit;letter-spacing:.02em;cursor:pointer;background:0 0;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.85rem;font-weight:600;display:inline-flex}.project-schedule-table-tab:hover{color:var(--text);background:color-mix(in srgb, var(--surface) 55%, transparent)}.project-schedule-table-tab.is-active{color:var(--text);background:var(--surface);box-shadow:inset 0 -2px 0 var(--accent,#1f6b4a)}.project-schedule-table-tab-count{border:1px solid var(--border);min-width:1.25rem;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;padding:.05rem .35rem;font-size:.75rem;font-weight:700;display:inline-flex}.project-schedule-table-tab.is-active .project-schedule-table-tab-count{color:var(--text)}.project-schedule-grid{min-width:52rem}.project-schedule-grid thead tr.year-row th.sticky-col,.project-schedule-grid thead tr.year-row th.year-col,.project-schedule-grid thead tr.year-row th.project-schedule-actions-head,.project-schedule-grid thead tr.month-row th.month-col{position:sticky}.project-schedule-grid thead tr.year-row th.sticky-col,.project-schedule-grid thead tr.year-row th.year-col,.project-schedule-grid thead tr.year-row th.project-schedule-actions-head{top:2.15rem}.project-schedule-grid thead tr.month-row th.month-col{top:3.6rem}.project-schedule-actions-head,.project-schedule-actions{z-index:4;background:var(--surface);border-left:1px solid var(--border);text-align:center;vertical-align:middle;width:5.75rem;min-width:5.75rem;max-width:5.75rem;position:sticky;right:0;padding:.25rem .35rem!important}thead .project-schedule-actions-head{z-index:6;background:var(--surface-hover);top:0}.project-schedule-row-faded{opacity:.55}.project-schedule-row-faded:hover{opacity:.9}.project-schedule-row-faded .event-timeline-track{opacity:1}.project-schedule-badge{border:1px solid var(--border);border-radius:var(--radius-sm);letter-spacing:.02em;padding:.15rem .45rem;font-size:.75rem;font-weight:700;display:inline-block}.project-schedule-badge-suggest{opacity:.9;font-weight:600}.project-schedule-badge-overlap{font-weight:600}.project-schedule-possible-range{color:var(--text-muted);margin-top:.25rem;font-size:.8rem;line-height:1.35}.project-schedule-resource-filters{border:1px solid var(--border);background:var(--surface-raised);flex-wrap:wrap;flex:none;align-items:center;gap:.55rem .85rem;margin:0 0 .65rem;padding:.55rem .7rem;display:flex}.project-schedule-resource-filters-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.78rem;font-weight:800}.project-schedule-resource-filter-list{flex-wrap:wrap;gap:.4rem .75rem;display:flex}.project-schedule-resource-filter{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;font-size:.88rem;font-weight:600;display:inline-flex}.project-schedule-resource-filter.is-off{opacity:.45}.project-schedule-resource-filter input{accent-color:var(--accent)}.project-schedule-resource-meta{color:var(--text);font-weight:600}.project-schedule-resource-meta.is-empty{color:var(--text-muted);font-weight:500}.project-schedule-grid .event-title{text-overflow:ellipsis;font-size:.88rem;font-weight:700;line-height:1.25;overflow:hidden}.project-schedule-grid .timeline-band.is-placement.is-overflow-next{border-right-style:dashed;padding-right:.85rem}.project-schedule-grid .timeline-band.is-placement.is-overflow-prev{border-left-style:dashed;padding-left:.85rem}.project-schedule-overflow-mark{color:var(--on-accent,#fff);text-shadow:0 0 2px #00000059;pointer-events:none;z-index:2;font-size:1.05rem;font-weight:800;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.project-schedule-overflow-mark.is-prev{left:.15rem}.project-schedule-overflow-mark.is-next{right:.15rem}.project-schedule-grid .timeline-band.is-overflow-next .timeline-resource-label,.project-schedule-grid .timeline-band.is-overflow-prev .timeline-resource-label{padding-inline:.35rem}.project-schedule-grid thead tr.month-row th.month-col.is-current-month{background:color-mix(in srgb, var(--accent) 22%, var(--surface-raised));color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent);font-weight:800}.project-schedule-current-month-band{background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 1px 0 0 color-mix(in srgb, var(--accent) 45%, transparent), inset -1px 0 0 color-mix(in srgb, var(--accent) 45%, transparent);pointer-events:none;z-index:3;position:absolute;top:0;bottom:0}.budget-settings-section{margin:0 0 1.5rem}.budget-settings-section h2{margin:0 0 .4rem;font-size:1.1rem}.budget-settings-section>.muted{margin:0 0 .75rem;font-size:.88rem}.budget-create-form{flex-wrap:wrap;align-items:flex-end;gap:.65rem .75rem;margin:0 0 .9rem;display:flex}.budget-create-form label{flex-direction:column;gap:.3rem;min-width:9rem;font-size:.88rem;font-weight:600;display:flex}.budget-create-form input[type=text]{border:1px solid var(--border);background:var(--surface-raised);min-width:12rem;font:inherit;padding:.4rem .55rem;font-weight:400}.budget-create-form button{border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer;border:1px solid #0000;padding:.45rem .85rem;font-weight:700}.budget-create-form button:disabled{opacity:.55;cursor:not-allowed}.budget-add-toggle{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:inherit;font:inherit;cursor:pointer;margin:.65rem auto 0;padding:0;font-size:1.25rem;line-height:1;display:block}.budget-add-toggle:hover:not(:disabled){background:var(--surface-hover)}.budget-add-toggle:disabled{opacity:.55;cursor:not-allowed}.budget-create-cancel{border:1px solid var(--border);background:var(--surface-raised);color:inherit;font:inherit;cursor:pointer;padding:.45rem .85rem}.budget-create-form .budget-create-cancel:disabled{opacity:.55;cursor:not-allowed}.budget-groups-table-wrap{border:1px solid var(--border);background:var(--surface);overflow:auto}.budget-groups-table{border-collapse:collapse;width:100%;font-size:.95rem}.budget-groups-table th,.budget-groups-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.7rem .85rem}.budget-groups-table th{background:var(--surface-hover);font-weight:600}.budget-groups-table tr:last-child td{border-bottom:none}.budget-bias-select{border:1px solid var(--border);background:var(--surface-raised);width:min(100%,16rem);font:inherit;padding:.4rem .55rem}.budget-bias-select:disabled{opacity:.65;cursor:not-allowed}.stat-processing-banner{background:var(--warning-bg);color:#6a5420;border:1px solid #c9b27a;margin:-.35rem 0 1rem;padding:.55rem .75rem;font-size:.88rem}.stat-card{background:var(--surface);border:1px solid var(--border);margin-bottom:1rem;padding:.9rem 1rem 1rem}.stat-card h2{margin:0;font-size:1.05rem}.stat-card>.muted{margin:.25rem 0 .75rem;font-size:.88rem}.stat-card-head{flex-direction:column;gap:.35rem;margin-bottom:.75rem;display:flex}.stat-card-head>.muted{margin:0;font-size:.88rem}.stat-view-select{color:var(--text-muted);align-items:center;gap:.55rem;font-size:.82rem;font-weight:700;display:flex}.stat-view-select select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);min-width:14rem;max-width:100%;color:var(--text);font:inherit;padding:.35rem .55rem;font-weight:600}.stat-card-body{grid-template-columns:minmax(11rem,14rem) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.stat-card-body.project-schedule-stat-body{grid-template-columns:5.5rem minmax(0,1fr);align-items:stretch;gap:.4rem}.stat-card-body.project-schedule-stat-body-wide{grid-template-columns:8rem minmax(0,1fr);gap:.55rem}.stat-toggle-list{border:1px solid var(--border);background:var(--surface);padding:.65rem .7rem .75rem}.stat-toggle-list-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.stat-toggle-list-header h3{color:var(--text);margin:0;font-size:.82rem;font-weight:700}.stat-toggle-list-actions{gap:.45rem;display:flex}.stat-toggle-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-size:.75rem;font-weight:600}.stat-toggle-link:hover{color:var(--accent-hover);text-decoration:underline}.stat-toggle-items{flex-direction:column;gap:.3rem;max-height:16rem;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.stat-toggle-item{color:var(--text);cursor:pointer;align-items:flex-start;gap:.4rem;font-size:.82rem;font-weight:500;display:flex}.stat-toggle-item input{flex:none;margin-top:.15rem}.stat-toggle-list>.muted{margin:0;font-size:.8rem}@media (width<=720px){.stat-card-body{grid-template-columns:1fr}.stat-toggle-items{max-height:9rem}}.stat-chart{position:relative}.stat-chart.is-multiples{width:100%}.stat-multiples-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem 1rem;display:grid}.stat-multiple-panel{min-width:0}.stat-multiple-title{align-items:center;gap:.4rem;margin:0 0 .25rem;font-size:.85rem;font-weight:600;display:flex}.stat-chart-svg{background:var(--surface-raised);width:100%;height:auto;display:block}.stat-area.is-expected-hatch{pointer-events:none}.stat-grid{stroke:var(--border);stroke-width:1px}.stat-hover-line{stroke:#8a948e;stroke-width:1px;stroke-dasharray:3 3}.stat-hover-band{fill:#505a5514;pointer-events:none}.stat-bar.is-actual{stroke:none}.stat-axis{fill:var(--text-muted);font-size:12px}.stat-legend,.stat-tooltip ul{margin:.55rem 0 0;padding:0;list-style:none}.stat-legend{flex-wrap:wrap;gap:.75rem 1.1rem;font-size:.85rem;display:flex}.stat-legend li,.stat-tooltip li{align-items:center;gap:.4rem;display:flex}.stat-legend-split{flex-direction:column;align-items:flex-start;gap:.25rem}.stat-legend-name{font-weight:600}.stat-legend-parts{flex-wrap:wrap;gap:.55rem .85rem;font-size:.8rem;display:flex}.stat-legend-parts>span{align-items:center;gap:.35rem;display:inline-flex}.stat-tooltip-split{flex-direction:column;align-items:flex-start;gap:.3rem}.stat-tooltip-split-head{align-items:center;gap:.4rem;display:inline-flex}.stat-tooltip-split-rows{flex-direction:column;gap:.2rem;padding-left:1.15rem;font-size:.85rem;display:flex}.stat-tooltip-split-rows>span{align-items:center;gap:.35rem;display:inline-flex}.stat-tooltip-total{margin-top:.1rem;font-weight:600}.stat-chart-hint{margin:.45rem 0 0;font-size:.8rem}.stat-swatch{border-radius:2px;flex:none;width:.75rem;height:.75rem}.stat-swatch.is-expected{box-sizing:border-box;border-style:dotted;border-width:1.5px;background:0 0!important}.stat-tooltip{z-index:8;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface-raised) 94%, transparent);max-width:min(16rem,70%);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(6px);pointer-events:none;margin:0;padding:.4rem .55rem;font-size:.78rem;line-height:1.3;position:absolute;transform:translate(0)}.stat-tooltip.is-flip-x{transform:translate(calc(-100% - 1.5rem))}.stat-tooltip.is-flip-y{transform:translateY(calc(-100% - 1.5rem))}.stat-tooltip.is-flip-x.is-flip-y{transform:translate(calc(-100% - 1.5rem),calc(-100% - 1.5rem))}.stat-tooltip strong{margin-bottom:.2rem;font-size:.8rem;display:block}.stat-tooltip-empty{color:var(--text-muted);margin:0;font-size:.74rem}.stat-tooltip ul{gap:.15rem;margin-top:0;display:grid}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-form{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:min(100%,400px);box-shadow:var(--shadow-md);flex-direction:column;gap:.9rem;padding:1.85rem 1.75rem;display:flex}.login-form h1{letter-spacing:-.02em;margin:0;font-size:1.7rem;font-weight:800}.login-subtitle{color:var(--text-muted);margin:0 0 .4rem;font-size:.95rem}.login-form label{flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:700;display:flex}.login-form input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);padding:.65rem .75rem;transition:border-color .15s,box-shadow .15s}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.login-form button,.logout-btn{border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);box-shadow:var(--neon-glow);border:none;margin-top:.35rem;padding:.65rem .95rem;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s}.login-form button:hover:not(:disabled),.logout-btn:hover{background:var(--accent-hover);box-shadow:var(--neon-glow-strong)}.login-form button:active:not(:disabled),.logout-btn:active{transform:translateY(1px)}.login-form button:disabled{opacity:.7;cursor:default}.form-error{color:var(--danger);margin:0;font-size:.9rem}.schedule-page{box-sizing:border-box;flex-direction:column;max-width:none;height:calc(100vh - 3.4rem);margin:0;padding:.85rem 1rem 1rem;display:flex}.schedule-page.is-processing .event-timeline-track.is-readonly{cursor:default}.schedule-page.is-processing .event-gear-btn:disabled,.schedule-page.is-processing .location-gear-btn:disabled,.schedule-page.is-processing .add-renovation-btn:disabled{opacity:.45;cursor:not-allowed}.schedule-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.schedule-lock-notice{border:1px solid var(--warning-border);border-radius:var(--radius-md);background:var(--warning-bg);color:var(--warning);justify-content:space-between;align-items:flex-start;gap:.75rem;margin:0 0 .75rem;padding:.65rem .8rem;display:flex}.schedule-lock-notice p{margin:0;font-size:.82rem;line-height:1.35}.schedule-lock-notice-dismiss{border:1px solid var(--warning-border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--warning);cursor:pointer;flex:none;margin:0;padding:.2rem .5rem;font-size:.72rem;font-weight:600}.schedule-lock-notice-dismiss:hover{background:color-mix(in srgb, var(--warning) 16%, var(--surface-raised))}.schedule-header h1{letter-spacing:-.025em;margin:0;font-size:1.45rem;font-weight:800}.schedule-header-tools{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-left:auto;display:inline-flex}.schedule-year-filter{align-items:center;gap:.65rem;display:inline-flex}.schedule-year-filter-field{color:var(--text-muted);align-items:center;gap:.35rem;margin:0;font-size:.82rem;font-weight:600;display:inline-flex}.schedule-year-filter-field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font:inherit;box-shadow:var(--shadow-sm);margin:0;padding:.3rem .5rem;font-size:.82rem;font-weight:600}.schedule-year-filter-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.schedule-year-filter-field select:disabled{opacity:.6;cursor:not-allowed}.schedule-event-sort{margin-left:.25rem}.logout-btn{margin-top:0}.top-bar-action-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);margin:0;padding:.4rem .75rem;font-size:.82rem;font-weight:700;transition:background .15s,border-color .15s}.top-bar-action-btn:hover{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.invite-modal-backdrop{z-index:40;background:#141c1873;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.invite-modal{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:min(32rem,100%);box-shadow:var(--shadow-md);flex-direction:column;gap:.85rem;padding:1.1rem 1.15rem 1.2rem;display:flex}.invite-modal-wide{width:min(48rem,100%);max-height:min(90vh,52rem);overflow:auto}.invite-form select{font-weight:400}.access-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}@media (width<=700px){.access-picker-grid{grid-template-columns:1fr}}.access-picker{border:1px solid var(--border);border-radius:4px;min-width:0;margin:0;padding:.65rem .75rem}.access-picker legend{padding:0 .25rem;font-size:.9rem;font-weight:600}.access-picker-actions{gap:.65rem;margin-bottom:.4rem;display:flex}.linkish-btn{color:var(--accent,#1f6b4a);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}.access-picker-list{flex-direction:column;gap:.25rem;max-height:14rem;display:flex;overflow:auto}.access-picker-item{align-items:center;flex-direction:row!important;gap:.45rem!important;font-size:.88rem!important;font-weight:400!important;display:flex!important}.access-picker-item input{width:auto;margin:0}.invite-modal-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.invite-modal-header h2{margin:0 0 .25rem;font-size:1.15rem}.invite-modal-header .muted{margin:0}.invite-form,.invite-result{flex-direction:column;gap:.75rem;display:flex}.invite-form label{flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;display:flex}.invite-form input,.invite-link-row input{font-weight:400}.invite-link-row{align-items:center;gap:.5rem;display:flex}.invite-link-row input{flex:1;min-width:0}.invite-modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.invite-result p{margin:0}.schedule-table-wrap{border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-raised);max-width:100%;min-height:0;box-shadow:var(--shadow-md);flex-direction:column;flex:1;display:flex;overflow:hidden}.schedule-head-scroll{scrollbar-gutter:stable;flex:none;overflow:hidden}.schedule-body-scroll{scrollbar-gutter:stable;flex:1;min-height:0;overflow:hidden auto}.pinned-group-anchor{z-index:100;pointer-events:none;visibility:hidden;height:0;position:sticky;top:0;overflow:visible}.pinned-group-anchor.is-active{visibility:visible;pointer-events:none}.pinned-group-overlay{pointer-events:none;background-color:var(--location-bg);height:40px;box-shadow:0 1px 0 var(--border);contain:layout paint style;overflow:hidden}.pinned-group-overlay:has(.location-row.has-weight){height:52px}.pinned-group-overlay:has(.location-row.has-creators){height:62px}.pinned-group-overlay:has(.location-row.has-weight.has-creators){height:74px}.pinned-group-anchor.is-active .pinned-group-overlay{pointer-events:auto}.pinned-group-overlay .schedule-table{background-color:var(--location-bg)}.pinned-group-overlay .location-row>td{background-color:var(--location-bg)!important}.schedule-spacer,.schedule-spacer td{font-size:0;line-height:0;border:0!important;padding:0!important}.column-sizer,.column-sizer td{font-size:0;line-height:0;border:0!important;height:0!important;padding:0!important}.location-row{cursor:pointer;height:40px}.location-row.has-weight{height:52px}.location-row.has-creators{height:62px}.location-row.has-weight.has-creators{height:74px}.location-year-budget{border-left:1px solid var(--border);font-weight:700;line-height:1.15;text-align:center!important;vertical-align:middle!important;background-color:var(--location-bg)!important;background-image:none!important;padding:.1rem .15rem!important;font-size:.58rem!important}.location-year-budget-stack{flex-direction:column;justify-content:center;align-items:center;gap:.08rem;width:100%;min-width:0;display:flex}.location-year-budget-locked,.location-year-budget-recommended,.location-year-budget-weight{justify-content:center;align-items:center;gap:.15rem;display:inline-flex}.location-year-budget-locked{color:#8a6a12}.location-year-budget-recommended{color:var(--accent)}.location-year-budget-weight{color:#334155}.location-year-budget-weight-label,.year-budget-weight-mark{text-transform:lowercase;justify-content:center;align-items:center;width:.65rem;height:.65rem;font-size:.55rem;font-weight:800;line-height:1;display:inline-flex}.location-year-budget .placement-lock,.location-year-budget .placement-star{flex:none;width:.65rem;height:.65rem;position:static;transform:none}.location-name-cell{position:relative;vertical-align:middle!important;padding-right:3.4rem!important}.location-name-main{white-space:nowrap;align-items:center;min-width:0;display:flex}.group-creator-filters{flex-wrap:wrap;align-items:center;gap:.2rem .45rem;max-width:100%;margin-top:.15rem;display:flex}.group-creator-filter{color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:.2rem;margin:0;padding:0;font-size:.62rem;font-weight:600;line-height:1.1;display:inline-flex}.group-creator-filter.is-off{color:var(--text-muted);text-decoration:line-through}.group-creator-filter input{width:.7rem;height:.7rem;accent-color:var(--accent);cursor:pointer;margin:0}.location-name-actions{z-index:2;align-items:center;gap:.15rem;display:inline-flex;position:absolute;top:50%;right:.25rem;transform:translateY(-50%)}.location-row.has-creators .location-name-actions{top:.45rem;transform:none}.location-row.has-pending-open{z-index:50;position:relative}.location-row:has(.location-actions-menu){z-index:50;position:relative}.location-row.has-pending-open .location-name-cell{overflow:visible!important}.location-row:has(.location-actions-menu) .location-name-cell{overflow:visible!important}.group-pending-panel{top:calc(100% + .15rem);left:.25rem;right:.25rem}.location-actions-menu{z-index:40;border:1px solid var(--border);background:var(--surface-raised);border-radius:.35rem;flex-direction:column;min-width:10.5rem;padding:.25rem;display:flex;position:absolute;top:calc(100% + .2rem);right:0;box-shadow:0 8px 20px #0f172a24}.location-actions-menu-btn{color:#334155;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.25rem;width:100%;margin:0;padding:.4rem .55rem;font-size:.72rem;font-weight:600;display:block}.location-actions-menu-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--accent)}.location-actions-menu-btn:disabled{opacity:.45;cursor:not-allowed}.location-gear-btn{color:#6a756e;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;margin:0;padding:0;display:inline-flex}.location-gear-btn.is-open,.location-gear-btn:hover:not(:disabled){color:var(--accent)}.location-gear-btn:disabled{opacity:.4;cursor:not-allowed}.location-gear-btn .event-gear-icon{width:.9rem;height:.9rem}.location-chevron{vertical-align:middle;border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:6px solid;width:0;height:0;margin-right:.45rem;display:inline-block}.location-chevron.is-open{transform:rotate(90deg)}.location-row td,.event-row td.sticky-col{overflow:hidden}.event-row.has-placement{z-index:20;contain:none}.event-row.has-pending-open{z-index:50;contain:none}.event-row.has-pending-open td.sticky-col.event-name{overflow:visible!important}.event-row{z-index:1;contain:layout style;height:46px;position:relative}.event-row.has-deps{height:auto;min-height:58px}.event-dep-chips{flex-wrap:wrap;gap:.2rem;margin-top:.2rem;padding-right:1.1rem;display:flex}.event-dep-chip{border:1px solid var(--border);background:var(--surface-hover);max-width:100%;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:2px;padding:.05rem .3rem;font-size:.65rem;font-weight:600;line-height:1.25;display:inline-block;overflow:hidden}.event-dep-chip.is-before{color:var(--accent);background:#2e915a1a;border-color:#7aa889}.event-dep-chip.is-after{color:var(--info);background:#4678aa1a;border-color:#6e90b5}.event-dep-chip.is-not_during{color:#6a5a35;background:#a08c5a1f;border-color:#b0a48a}.schedule-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);text-align:left;vertical-align:middle;padding:.25rem .2rem;font-size:.72rem}.schedule-table th{background:color-mix(in srgb, var(--location-bg) 75%, var(--surface));color:var(--text-muted);z-index:2;font-weight:700;position:sticky}.schedule-table thead tr.year-budget-row th{z-index:4;text-align:center;border-bottom:1px solid var(--border);padding:.12rem .1rem;font-size:.62rem;font-weight:700;line-height:1.1;top:0}.schedule-table thead tr.year-budget-row-locked th.year-budget-col{color:#8a6a12;background:var(--warning-bg)}.schedule-table thead tr.year-budget-row-recommended th.year-budget-col{color:var(--accent);background:var(--accent-soft)}.schedule-table thead tr.year-budget-row-placeholder th.year-budget-col-placeholder{border:0;border-bottom:1px solid var(--border);background:var(--surface);height:3px;font-size:0;line-height:0;padding:0!important}.year-budget-cell{justify-content:center;align-items:center;gap:.2rem;min-width:0;display:inline-flex}.year-budget-cell .placement-lock,.year-budget-cell .placement-star{flex:none;width:.7rem;height:.7rem;position:static;transform:none}.year-budget-legend{flex-direction:column;gap:.1rem;margin-top:.1rem;font-size:.58rem;font-weight:600;line-height:1.15;display:flex}.year-budget-legend-locked{color:#8a6a12}.year-budget-legend-recommended{color:var(--accent)}.year-budget-legend-weight{color:#334155}.schedule-table thead tr.year-budget-row-weight th.year-budget-col{color:#334155;background:var(--info-bg)}.schedule-table thead tr.year-row th{z-index:4;text-align:center;border-bottom:1px solid var(--border);padding:.25rem .1rem;font-size:.72rem;top:0}.schedule-table thead tr.year-row th.year-col{position:relative;overflow:hidden}.schedule-table thead tr.year-row th.year-col.is-hover-year{color:var(--accent);font-weight:700}.year-hover-wash{z-index:0;pointer-events:none;background:#2e915a4d;position:absolute;top:0;bottom:0;box-shadow:inset 0 -2px #2e915a}.schedule-table thead tr.year-row th.year-col>.year-label{z-index:1;position:relative}.schedule-table thead tr.month-row th{z-index:3;transition:transform .12s,background-color .12s,box-shadow .12s,color .12s;top:1.45rem}.schedule-table thead tr.month-row th.month-col.is-hover-month{color:var(--accent);z-index:4;background:#2e915a3d;font-weight:700;transform:translateY(3px);box-shadow:inset 0 -3px #2e915a,0 2px #2e915a26}.schedule-table th.year-col{border-left:2px solid #9aa59d}.schedule-table th.month-col,.schedule-table td.month-cell{text-align:center;width:auto;padding:.15rem 0;overflow:hidden}.schedule-table th.month-col{padding:.15rem 0;font-size:.58rem;line-height:1.1}.year-start{border-left:2px solid color-mix(in srgb, var(--accent) 35%, var(--border))}.sticky-col{z-index:1;background:var(--surface);white-space:normal;width:11rem;min-width:11rem;max-width:11rem;position:sticky;left:0;padding:.3rem .45rem!important}thead .sticky-col{z-index:5;background:var(--surface-hover);vertical-align:middle}.location-event-head{padding:.25rem .4rem!important}.location-event-head-inner{flex-direction:column;align-items:stretch;gap:.25rem;display:flex}.schedule-group-switch{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--location-bg) 80%, var(--surface));border:1px solid var(--border-soft);grid-template-columns:repeat(3,minmax(0,1fr));gap:.2rem;padding:.15rem;display:grid}.schedule-group-switch-btn{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;margin:0;padding:.22rem .15rem;font-size:.58rem;font-weight:700;line-height:1.15;transition:background .15s,color .15s,box-shadow .15s}.schedule-group-switch-btn:hover{color:var(--text);background:color-mix(in srgb, var(--surface-raised) 40%, transparent)}.schedule-group-switch-btn.is-active{background:color-mix(in srgb, var(--accent) 14%, var(--surface-raised));color:var(--accent);box-shadow:var(--neon-glow-soft), inset 0 0 0 1px var(--active-inset);text-shadow:var(--text-glow);border-color:#0000}.location-event-head-label{line-height:1.15}.location-event-search{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);width:100%;color:var(--text);font:inherit;margin:0;padding:.28rem .4rem;font-size:.68rem;font-weight:500;line-height:1.2}.location-event-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.location-event-search::-webkit-search-cancel-button{cursor:pointer}.location-row .sticky-col,.location-row td{font-size:.85rem;background-color:var(--location-bg)!important;background-image:none!important}.event-row .event-name{position:relative;padding-left:.85rem!important;padding-right:1.7rem!important}.event-gear-btn{z-index:2;color:#6a756e;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;margin:0;padding:0;display:inline-flex;position:absolute;top:.2rem;right:.25rem}.event-gear-btn:hover,.event-gear-btn.is-open{color:var(--accent)}.event-gear-icon{width:.95rem;height:.95rem;display:block}.event-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.78rem;font-weight:600;line-height:1.2;overflow:hidden}.event-title-row{align-items:center;gap:.35rem;min-width:0;display:flex}.event-pending-toggle{border:1px solid var(--warning-border);background:var(--warning-bg);min-width:1.35rem;height:1.35rem;color:var(--warning);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 .35rem;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.event-pending-toggle.is-open,.event-pending-toggle:hover{background:color-mix(in srgb, var(--warning) 22%, var(--surface))}.event-request-toggle{background:var(--info-bg);min-width:1.15rem;height:1.15rem;color:var(--info);cursor:pointer;border:1px solid #1d4ed8;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 .28rem;font-size:.62rem;font-weight:700;line-height:1;display:inline-flex}.event-request-toggle.is-open,.event-request-toggle:hover{background:color-mix(in srgb, var(--info) 22%, var(--surface))}.event-task-toggle{background:var(--accent-soft);color:#065f46;cursor:pointer;border:1px solid #047857;border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:1.15rem;height:1.15rem;padding:0 .28rem;font-size:.62rem;font-weight:700;line-height:1;display:inline-flex}.event-task-toggle.is-open,.event-task-toggle:hover{background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.event-gear-wrap{z-index:3;position:absolute;top:.2rem;right:.25rem}.event-gear-wrap .event-gear-btn{position:static;top:auto;right:auto}.event-actions-menu{min-width:11rem;top:calc(100% + .15rem);left:auto;right:0}.event-row:has(.event-actions-menu){z-index:50;position:relative}.event-row:has(.event-actions-menu) td.sticky-col.event-name{overflow:visible!important}.event-activity-log-btn{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;margin:.15rem 0 0;padding:0;display:block}.event-activity-log-btn:hover{color:var(--accent);text-decoration:underline}.event-request-actions{flex-direction:column;flex:none;gap:.2rem;display:flex}.event-request-reject{background:var(--surface-raised);color:#475569;cursor:pointer;border:1px solid #cbd5e1;border-radius:.25rem;flex:none;padding:.15rem .4rem;font-size:.62rem;font-weight:600}.event-request-reject:hover:not(:disabled){background:var(--surface-hover)}.event-request-reject:disabled{opacity:.55;cursor:default}.event-pending-panel{z-index:30;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);min-width:16rem;max-height:22rem;box-shadow:var(--shadow-md);flex-direction:column;gap:.55rem;padding:.7rem .8rem;display:flex;position:absolute;top:calc(100% - .15rem);left:.25rem;right:.25rem}.event-pending-panel-head{color:var(--text);justify-content:space-between;align-items:center;gap:.65rem;font-size:.82rem;font-weight:700;display:flex}.event-pending-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.event-pending-item{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:flex-start;gap:.65rem;padding:.45rem 0;display:flex}.event-pending-item:first-child{border-top:0;padding-top:0}.event-pending-item-text{min-width:0;color:var(--text-muted);flex-direction:column;gap:.15rem;font-size:.8rem;line-height:1.4;display:flex}.event-pending-item-text strong{color:var(--text);font-size:.86rem;font-weight:700}.event-pending-item-meta{opacity:.95;margin-top:.15rem;font-size:.74rem}.event-pending-ok,.event-pending-ok-all{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border));border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);cursor:pointer;flex:none;margin:0;padding:.3rem .6rem;font-size:.75rem;font-weight:700}.event-pending-ok:hover:not(:disabled),.event-pending-ok-all:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.event-pending-ok:disabled,.event-pending-ok-all:disabled{opacity:.55;cursor:not-allowed}.event-name{position:relative;overflow:visible!important}.event-meta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:.15rem;font-size:.65rem;line-height:1.25;overflow:hidden}.event-activity{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;opacity:.9;margin-top:.1rem;font-size:.6rem;line-height:1.2;overflow:hidden}.event-row.empty .sticky-col{padding-left:.85rem!important}.event-timeline-cell{z-index:2;border-right:none;height:46px;position:relative;overflow:hidden;padding:0!important}.event-timeline-track{cursor:default;z-index:2;background-color:var(--track);width:100%;height:46px;position:relative;overflow:hidden}.event-timeline-track.is-lockable{cursor:pointer}.timeline-band{pointer-events:none;box-sizing:border-box;position:absolute;top:0;bottom:0}.timeline-band.is-unavailable{background-color:var(--blocked);background-image:linear-gradient(180deg, var(--blocked-wash-top) 0%, transparent 45%, var(--blocked-wash-bottom) 100%), radial-gradient(circle at 1px 1px, var(--blocked-dot) 1px, transparent 1.2px);z-index:0;background-size:auto,7px 7px}.timeline-band.is-allowed-shell{background-color:var(--allowed);box-shadow:inset 1px 0 0 var(--allowed-edge), inset -1px 0 0 var(--allowed-edge), var(--allowed-inner-glow);z-index:1}.timeline-band.is-available{background-color:var(--available);background-image:linear-gradient(180deg, var(--available-wash), transparent 55%);box-shadow:var(--available-inset-glow);z-index:2;border-radius:0}.timeline-band.is-placement{background:var(--placement);border:2px solid var(--placement-border);border-radius:var(--radius-sm);z-index:10;box-shadow:var(--placement-glow);top:3px;bottom:3px;overflow:hidden}.timeline-band.is-placement.is-recommended{background:color-mix(in srgb, var(--placement) 70%, transparent);box-shadow:var(--placement-glow-recommended);border-style:dotted}.timeline-band.is-placement.is-locked{background:color-mix(in srgb, var(--placement) 90%, #00000026);cursor:context-menu;box-shadow:var(--placement-glow-locked);border-style:solid}.schedule-context-menu{z-index:60;background:var(--surface);border:1px solid var(--border);min-width:9.5rem;padding:.25rem;position:fixed;box-shadow:0 8px 24px #00000029}.schedule-context-menu-btn{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:.45rem .65rem;font-size:.85rem;font-weight:600;display:block}.schedule-context-menu-btn:hover{color:var(--accent);background:#2e915a1a}.timeline-resource-label{z-index:15;max-width:calc(100% - 1.1rem);color:var(--resource-label-fg);background:var(--resource-label-bg);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 0 0 1px var(--resource-label-ring);border-radius:4px;padding:.08rem .32rem;font-size:.62rem;font-weight:800;line-height:1.2;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.timeline-band.is-hover{background:var(--hover-fill);box-shadow:inset 0 0 0 1px var(--hover-ring), var(--hover-glow);z-index:3;border-radius:4px;top:0;bottom:0}.timeline-marker{z-index:50;color:var(--marker-color);pointer-events:none;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--marker-color) 55%, transparent));position:absolute}.timeline-marker.is-star{z-index:60;top:0;right:0;transform:translate(70%,-75%)}.timeline-marker.is-lock{top:50%;transform:translate(-50%,-50%)}.timeline-marker.is-processing{z-index:70;background:var(--processing-chip-bg);width:1.35rem;height:1.35rem;box-shadow:0 0 0 1px var(--processing-chip-ring);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-marker.is-processing .processing-spinner{width:.85rem;height:.85rem}.timeline-band.is-lock-boundary .timeline-marker.is-lock{left:100%!important}.placement-star,.placement-lock{color:var(--marker-color);pointer-events:none;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--marker-color) 55%, transparent));display:block}.placement-star{width:.95rem;height:.95rem}.placement-lock{width:.85rem;height:.85rem}.schedule-legend{border-radius:var(--radius-md);border:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface-raised) 80%, var(--location-bg));color:var(--text-muted);align-items:center;gap:.85rem;padding:.25rem .55rem;font-size:.8rem;font-weight:700;display:flex}.schedule-legend span{align-items:center;gap:.3rem;display:inline-flex}.schedule-legend .placement-star,.schedule-legend .placement-lock{width:.85rem;height:.85rem;position:static;transform:none}.month-cell.is-start.is-cell-hover{cursor:pointer;background:#24824e8c;box-shadow:inset 0 4px #ffffff40,inset 0 -4px #ffffff40,inset 0 0 0 1px #1c6e4273}.muted{color:var(--text-muted);font-weight:400}.event-detail-backdrop{z-index:20;background:#141c1859;justify-content:flex-end;display:flex;position:fixed;inset:0}.event-detail-panel{background:var(--surface);border-left:1px solid var(--border);width:min(100%,380px);height:100%;padding:1.1rem 1.2rem 1.5rem;overflow:auto;box-shadow:-8px 0 24px #00000014}.event-detail-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.event-detail-header h2{color:var(--text);margin:.15rem 0 0;font-size:1.2rem;line-height:1.25}.event-detail-kicker{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.75rem}.event-detail-close{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);margin-top:0;padding:.4rem .7rem;font-size:.8rem;font-weight:600}.event-detail-close:hover{background:var(--surface-hover)}.event-detail-grid{grid-template-columns:1fr 1fr;gap:.75rem .9rem;margin:0 0 1.1rem;display:grid}.event-detail-grid div{margin:0}.event-detail-grid dt{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.7rem}.event-detail-grid dd{color:var(--text);margin:.15rem 0 0;font-size:.9rem}.event-detail-section{margin-bottom:1rem}.event-detail-section h3{margin:0 0 .35rem;font-size:.85rem}.event-detail-section p,.event-detail-section ul{margin:0;font-size:.88rem;line-height:1.4}.event-detail-section ul{padding-left:1.1rem}.location-name-actions .add-renovation-btn{color:#3d4a40;cursor:pointer;background:0 0;border:1px dashed #8a968d;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;margin:0;padding:0;font-size:.95rem;font-weight:600;line-height:1;display:inline-flex}.location-name-actions .add-renovation-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#2e915a14}.location-name-actions .add-renovation-btn:disabled,.event-gear-btn:disabled{opacity:.45;cursor:not-allowed}.event-gear-btn:disabled:hover{color:#6a756e}.renovation-modal-backdrop{z-index:40;background:#141c1659;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.renovation-modal{background:var(--surface-raised);border:1px solid var(--border-soft);border-radius:var(--radius-lg);width:min(28rem,100%);max-height:min(90vh,40rem);box-shadow:var(--shadow-md);flex-direction:column;gap:.75rem;padding:1.15rem 1.25rem 1.25rem;display:flex;overflow:auto}.renovation-modal-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.renovation-modal-header h2{letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:800}.renovation-modal-header p{margin:.25rem 0 0}.renovation-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;margin:0;padding:.15rem .45rem;font-size:1.4rem;line-height:1}.renovation-modal-close:hover:not(:disabled){color:var(--text);background:0 0}.renovation-modal-close:disabled{opacity:.5;cursor:default}.renovation-modal label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.renovation-modal input,.renovation-modal select{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;padding:.45rem .55rem;font-weight:400}.field-hint{color:var(--text-muted);margin-top:.25rem;font-size:.72rem;font-weight:400;display:block}.renovation-modal-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.allowed-months{border:1px solid var(--border);margin:0;padding:.55rem .65rem .7rem}.allowed-months legend{color:var(--text-muted);padding:0 .25rem;font-size:.82rem;font-weight:600}.allowed-months-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem;display:grid}.allowed-month-chip{color:var(--text);flex-direction:row;align-items:center;gap:.3rem;font-weight:500;display:flex}.allowed-month-chip.is-disabled{opacity:.45;cursor:not-allowed}.same-calendar-year-option{flex-direction:row;align-items:flex-start;gap:.5rem;margin:.15rem 0 .35rem;font-weight:600;display:flex}.same-calendar-year-option input{width:auto;margin-top:.2rem}.same-calendar-year-option span{flex-direction:column;gap:.15rem;display:flex}.same-calendar-year-option .field-hint{margin:0;font-weight:400}.renovation-modal-actions{justify-content:flex-end;gap:.55rem;margin-top:.25rem;display:flex}.renovation-request-message{flex-direction:column;gap:.35rem;display:flex}.renovation-request-message textarea{resize:vertical;min-height:4.5rem}.renovation-delete-btn{margin-right:auto}.renovation-modal-actions button,.secondary-btn,.danger-btn{border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);cursor:pointer;box-shadow:var(--neon-glow-soft);border:none;margin-top:0;padding:.55rem .9rem;font-weight:700;transition:background .15s,box-shadow .15s}.renovation-modal-actions button:hover:not(:disabled){background:var(--accent-hover)}.renovation-modal-actions button:disabled{opacity:.7;cursor:default}.secondary-btn{color:var(--text);border:1px solid var(--border);background:0 0}.secondary-btn:hover:not(:disabled){background:var(--surface-hover)}.danger-btn{color:var(--danger,#b42318);border:1px solid color-mix(in srgb, var(--danger,#b42318) 40%, var(--border));background:0 0}.renovation-modal-actions .danger-btn:hover:not(:disabled),.danger-btn:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 14%, var(--surface))}.resource-voids-editor{flex-direction:column;gap:.65rem;padding-top:.15rem;display:flex}.resource-voids-editor-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.resource-voids-editor-header h3{margin:0;font-size:.92rem}.resource-voids-editor-header .muted{margin:.2rem 0 0;font-size:.78rem}.resource-void-list{flex-direction:column;gap:.65rem;display:flex}.resource-void-card{border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:.55rem;padding:.65rem .7rem .75rem;display:flex}.resource-void-card-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.resource-options{border:1px solid var(--border);background:var(--surface-raised);flex-direction:column;gap:.45rem;margin:0;padding:.5rem .55rem .6rem;display:flex}.resource-options legend{color:var(--text-muted);padding:0 .25rem;font-size:.78rem;font-weight:600}.resource-selected-list{border:1px dashed var(--border);background:var(--surface-hover);flex-direction:column;gap:.35rem;min-height:2rem;margin:0;padding:.4rem;list-style:none;display:flex}.resource-selected-empty{padding:.15rem .2rem;font-size:.78rem}.resource-option-row{border:1px solid var(--border);background:var(--surface-raised);justify-content:space-between;align-items:center;gap:.55rem;padding:.4rem .45rem;display:flex}.resource-option-row.is-recommended{background:#2f5f8a14;border-style:dotted;border-color:#1f4a78d9}.resource-option-row.is-locked{background:#2e915a1a;border-style:solid;border-color:#1f6b4ad9}.resource-option-row.is-locked.is-recommended{background:#2e915a1f;border-style:solid;border-color:#1f6b4ad9}.resource-option-main{flex-direction:column;gap:.2rem;min-width:0;display:flex}.resource-option-name{color:var(--text);font-size:.82rem;font-weight:600}.resource-option-badges{flex-wrap:wrap;gap:.25rem;display:flex}.resource-badge{letter-spacing:.02em;text-transform:uppercase;border:1px solid;padding:.08rem .28rem;font-size:.65rem;font-weight:700}.resource-badge.is-locked{color:var(--accent)}.resource-badge.is-recommended{color:var(--info);border-style:dotted}.resource-option-actions{flex:none;gap:.3rem;display:flex}.resource-action-btn{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;cursor:pointer;margin:0;padding:.3rem .5rem;font-size:.72rem;font-weight:600}.resource-action-btn.is-active{color:var(--accent);background:#2e915a26;border-color:#1f6b4abf}.resource-action-btn.is-delete{color:var(--danger,#9b2c2c);border-color:color-mix(in srgb, var(--danger,#9b2c2c) 40%, var(--border))}.resource-action-btn:hover:not(:disabled){border-color:var(--accent)}.resource-action-btn:disabled{opacity:.65;cursor:default}.resource-selected-item{border:1px solid var(--border);background:var(--surface-raised);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;margin:0;padding:.35rem .45rem;font-size:.8rem;font-weight:500;display:flex}.resource-selected-item:hover{border-color:var(--accent);color:var(--accent)}.resource-available-header{justify-content:space-between;align-items:center;gap:.55rem;display:flex}.resource-available-label{color:var(--text-muted);flex:none;font-size:.75rem;font-weight:600}.resource-available-search{border:1px solid var(--border);background:var(--surface-raised);min-width:0;color:var(--text);font:inherit;flex:1;margin:0;padding:.3rem .45rem;font-size:.8rem;font-weight:400}.resource-options-grid{flex-wrap:wrap;gap:.4rem;display:flex}.resource-available-btn{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;cursor:pointer;margin:0;padding:.35rem .55rem;font-size:.8rem;font-weight:500}.resource-available-btn:hover{border-color:var(--accent);color:var(--accent);background:#2e915a14}.dependency-modal-backdrop{z-index:70;background:#141c1666;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dependency-modal{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:.85rem;width:min(960px,100%);max-height:min(85vh,720px);padding:1rem 1.1rem .9rem;display:flex;box-shadow:0 16px 48px #0003}.dependency-modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dependency-modal-header h2{margin:0 0 .35rem;font-size:1.15rem}.dependency-matrix-wrap{border:1px solid var(--border);background:var(--surface-raised);overflow:auto}.dependency-matrix{border-collapse:separate;border-spacing:0;min-width:100%}.dependency-matrix th,.dependency-matrix td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:middle;text-align:center;padding:.4rem}.dependency-matrix thead th{z-index:2;background:var(--surface-hover);min-width:11rem;font-size:.72rem;font-weight:600;position:sticky;top:0}.dependency-matrix tbody th{z-index:1;background:var(--surface-hover);text-align:left;min-width:8.5rem;max-width:10rem;position:sticky;left:0}.dependency-matrix-corner{z-index:3;background:var(--surface-hover);min-width:8.5rem;position:sticky;top:0;left:0}.dependency-matrix-head{justify-content:space-between;align-items:center;gap:.25rem;min-width:0;display:flex}.dependency-matrix-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:8rem;display:block;overflow:hidden}.dependency-matrix-row-remove{width:1.15rem;height:1.15rem;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;flex:none;margin:0;padding:0;font-size:1rem;font-weight:700;line-height:1}.dependency-matrix-row-remove:hover:not(:disabled){border-color:var(--border);background:color-mix(in srgb, var(--danger) 14%, var(--surface));color:#7a2e2e}.dependency-matrix-row-remove:disabled{opacity:.45;cursor:not-allowed}.dependency-matrix-cell-controls{flex-direction:column;align-items:stretch;gap:.25rem;display:flex}.dependency-matrix-select-row{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.dependency-matrix-distance-row{flex-wrap:wrap;align-items:center;gap:.25rem;width:100%;display:flex}.dependency-matrix-select-row select{flex:auto;min-width:0}.dependency-matrix-cell-clear{border:1px solid var(--border);background:var(--surface-raised);width:1.5rem;height:1.5rem;color:var(--text-muted);font:inherit;cursor:pointer;border-radius:4px;flex:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:1rem;line-height:1;display:inline-flex}.dependency-matrix-cell-clear:hover:not(:disabled){color:#b45353;background:#b453530f;border-color:#b45353}.dependency-matrix-cell-clear:disabled{opacity:.45;cursor:not-allowed}.dependency-matrix-cell-add{border:1px dashed var(--border);width:1.75rem;height:1.75rem;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;margin:0 auto;padding:0;font-size:1.1rem;line-height:1;display:inline-flex}.dependency-matrix-cell-add:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#2e915a0f}.dependency-matrix-cell-add:disabled{opacity:.45;cursor:not-allowed}.dependency-matrix-cell select{border:1px solid var(--border);background:var(--surface-raised);width:100%;min-width:6.5rem;color:var(--text);font:inherit;margin:0;padding:.3rem .35rem;font-size:.78rem}.dependency-matrix-distance{color:var(--text-muted);flex:none;align-items:center;gap:.15rem;margin:0;font-size:.68rem;display:inline-flex}.dependency-matrix-distance input{border:1px solid var(--border);background:var(--surface-raised);width:2.75rem;min-width:0;color:var(--text);font:inherit;margin:0;padding:.2rem .25rem;font-size:.72rem}.dependency-matrix-cell.has-value .dependency-matrix-distance input{border-color:var(--accent);background:#2e915a14}.dependency-matrix-distance-unit{flex:none}.dependency-matrix-cell.is-diagonal,.dependency-matrix-cell.is-blocked{background:var(--surface-hover)}.dependency-matrix-cell.is-blocked{color:var(--text-muted)}.dependency-matrix-cell.is-blocked select{color:var(--text-muted);cursor:not-allowed}.dependency-matrix-cell option:disabled{color:var(--text-muted)}.dependency-matrix-cell.has-value select{border-color:var(--accent);background:#2e915a14}.dependency-matrix-dash{color:var(--text-muted)}.dependency-matrix-toolbar{align-items:center;gap:.75rem;display:flex}.dependency-add-wrap{position:relative}.dependency-add-btn{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:.35rem;margin:0;padding:.4rem .7rem;font-size:.85rem;font-weight:600;display:inline-flex}.dependency-add-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dependency-add-btn:disabled{opacity:.55;cursor:not-allowed}.dependency-add-menu{z-index:5;border:1px solid var(--border);background:var(--surface-raised);min-width:14rem;max-height:14rem;position:absolute;top:calc(100% + .25rem);left:0;overflow:auto;box-shadow:0 6px 18px #00000014}.dependency-add-option{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding:.5rem .7rem;font-size:.85rem;display:block}.dependency-add-option:hover{background:var(--accent-soft)}.dependency-matrix-empty{text-align:center;margin:0;padding:1.25rem .5rem}.dependency-modal-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.dependency-modal-actions{justify-content:flex-end;gap:.55rem;margin-left:auto;display:flex}.dependency-modal-actions button{border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer;border:none;margin-top:0;padding:.55rem .9rem;font-weight:700}.dependency-modal-actions button:hover:not(:disabled){background:var(--accent-hover)}.dependency-modal-actions button:disabled{opacity:.7;cursor:default}.dependency-modal-actions .secondary-btn{background:var(--surface-raised);color:var(--text);border:1px solid var(--border)}.dependency-modal-actions .secondary-btn:hover:not(:disabled){background:var(--surface-hover)}.dependency-matrix-error{margin:0}.dependency-matrix-notice{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--text);background:#2e915a14;margin:0;padding:.55rem .7rem}.dependency-relation-form{border:1px solid var(--border);background:var(--surface-raised);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.65rem .75rem;padding:.75rem;display:grid}.dependency-relation-form label{color:var(--text-muted);flex-direction:column;gap:.25rem;margin:0;font-size:.78rem;display:flex}.dependency-relation-form label span{font-weight:600}.dependency-relation-form select,.dependency-relation-form input{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;margin:0;padding:.4rem .45rem;font-size:.85rem}.dependency-relation-form-actions{grid-column:1/-1;justify-content:flex-end;gap:.5rem;display:flex}.dependency-relation-form-actions button{border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer;border:none;margin:0;padding:.45rem .8rem;font-weight:700}.dependency-relation-form-actions button:disabled{opacity:.7;cursor:default}.dependency-relation-form-actions .secondary-btn{background:var(--surface);color:var(--text);border:1px solid var(--border)}.dependency-relation-list{margin:0;padding:0;list-style:none}.dependency-relation-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;display:flex}.dependency-relation-item:last-child{border-bottom:none}.dependency-relation-item-main{flex-direction:column;gap:.2rem;min-width:0;display:flex}.dependency-relation-item-label{font-size:.9rem;font-weight:600}.dependency-relation-item-meta{font-size:.75rem}.location-log-modal-backdrop{z-index:70;background:#141c1666;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.location-log-modal{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);width:min(56rem,96vw);max-height:min(90vh,56rem);box-shadow:var(--shadow-md);flex-direction:column;display:flex}.location-log-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.2rem 1.35rem 1rem;display:flex}.location-log-modal-header h2{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:800}.location-log-modal-subtitle{color:var(--text-muted);margin:.3rem 0 0;font-size:.95rem}.location-log-modal-close{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);cursor:pointer;flex:none;margin:0;padding:.35rem .7rem;font-size:.85rem;font-weight:600}.location-log-modal-body{flex:1;min-height:0;padding:1.15rem 1.35rem;overflow:auto}.location-log-list{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.location-log-item{border-bottom:1px solid var(--border-soft);flex-direction:column;gap:.4rem;padding-bottom:.85rem;display:flex}.location-log-item:last-child{border-bottom:0;padding-bottom:0}.location-log-item-main{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.95rem;line-height:1.5;display:flex}.location-log-item-main strong{color:var(--text);font-size:1.05rem;font-weight:700}.location-log-item-meta{color:var(--text-muted);flex-wrap:wrap;gap:.45rem .95rem;font-size:.85rem;display:flex}.location-log-modal-footer{border-top:1px solid var(--border);padding:.85rem 1.25rem 1.05rem}.location-log-load-more{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-hover);color:var(--text);cursor:pointer;margin:0;padding:.5rem .9rem;font-size:.88rem;font-weight:700}.location-log-load-more:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.location-log-load-more:disabled{opacity:.6;cursor:not-allowed}
