:root{color-scheme:light;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-rgb:37,99,235;--accent-strong-rgb:29,78,216;--warning:#f59e0b;--warning-rgb:245,158,11;--warning-strong-rgb:217,119,6;--green:#fff;--bg:#fbfbfd;--card:#fff;--surface:#f5f6f8;--border:#d9dee3;--text:#111827;--muted:#6b7280;--muted-strong:#4b5563;--calculation-ok:#16a34a;--calculation-caution:#d97706;--calculation-alert:#dc2626}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}main{min-height:100vh;padding:24px}.site-nav{display:flex;align-items:center;gap:16px}.site-link{font-weight:600;text-decoration:none;color:var(--muted-strong)}.site-link:focus-visible,.site-link:hover{color:var(--accent)}.about-cta{margin-top:16px;margin-bottom:16px;display:inline-flex}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:0 6px 16px rgba(0,0,0,.08)}.about-card{width:min(960px,100%);margin:0 auto}button,input,select,textarea{font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 8px}button{background:var(--accent);color:var(--green);border:none;cursor:pointer;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}.link-button{background:none;border:none;padding:0;color:var(--accent);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-button:focus-visible,.link-button:hover{color:color-mix(in srgb,var(--accent) 80%,#fff)}.grid{display:grid;grid-gap:16px;gap:16px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.no-margin{margin:0}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.align-center{align-items:center}.align-start{align-items:flex-start}.single-column-grid{grid-template-columns:minmax(320px,1fr)}.flex-column{display:flex;flex-direction:column}.pointer{cursor:pointer}.hidden-input{display:none}.w-100{width:100px}.row-span-2{grid-row:span 2}.settings-grid{grid-template-columns:2fr 1fr;grid-auto-rows:auto}.settings-hero{display:grid;grid-column:1/-1;grid-row:1;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;grid-gap:12px 16px;gap:12px 16px}.settings-hero .section-header{grid-column:1/-1}.settings-hero label{display:flex;flex-direction:column;gap:6px}.header-main{flex:1 1;min-width:0}.title-stack{display:grid;grid-gap:4px;gap:4px;width:100%}.title-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%}.title-meta-sep{color:color-mix(in srgb,var(--text) 60%,#fff)}.title-meta-link{margin-left:auto}.app-title{margin:0;font-size:14px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:color-mix(in srgb,var(--text) 65%,#fff)}.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.title-input{flex:1 1 320px;min-width:240px;padding:0;border:none;border-bottom:2px solid transparent;background:transparent;font-size:22px;font-weight:700;line-height:1.2}.title-input:hover{border-bottom:2px dashed color-mix(in srgb,var(--accent) 55%,transparent)}.title-input:focus{outline:none;border-bottom:2px solid var(--accent)}.settings-json{display:flex;flex-direction:column;grid-column:2;grid-row:2/span 3}.settings-json-grid{flex:1 1;min-height:0;grid-template-rows:min-content 1fr;align-content:start}.settings-json-editor{display:flex;flex-direction:column;min-height:0}.settings-json-editor textarea{flex:1 1;min-height:160px}.settings-share{display:flex;flex-direction:column;grid-column:1;grid-row:2}.settings-share-links{display:grid;grid-gap:12px;gap:12px}.settings-teams{grid-column:1;grid-row:3}.settings-categories{grid-column:1;grid-row:4}.share-link-row{margin-top:6px}.share-link-label,.share-link-row{display:flex;align-items:center;gap:8px}.share-link-label,.share-link-label input{flex:1 1;min-width:0}.tight-heading{margin:0 0 4px}.table{width:100%;border-collapse:collapse}.table-center{text-align:center}.table td,.table th{border:1px solid var(--border);padding:6px 8px;text-align:left;color:var(--text)}.compact-table td,.compact-table th{padding:4px 6px}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:rgba(var(--accent-rgb),.15);border-radius:999px;color:var(--accent);font-weight:600;font-size:12px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.header-actions .site-nav{margin-bottom:2px}.flex{display:flex;gap:12px}.flex-wrap{flex-wrap:wrap}.util-bar{position:relative;height:10px;border-radius:999px;background:var(--border);overflow:hidden}.util-fill{position:absolute;inset:0;height:100%;background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.85),rgba(var(--accent-rgb),.9))}.small{font-size:12px}.small,.text-muted{color:var(--muted)}textarea{width:100%;min-height:120px}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:12px;gap:12px}.tabs{display:flex;flex-wrap:wrap;gap:12px}.tab{flex:1 1 200px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px;color:var(--text);text-align:left;cursor:pointer}.tab.active{border-color:var(--accent);box-shadow:0 0 0 1px rgba(var(--accent-rgb),.3)}.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.planned-allocation-columns{display:grid;grid-gap:10px;gap:10px}.planned-allocation-pills{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.planned-allocation-block{display:grid;grid-gap:8px;padding:8px}.planned-allocation-block,.planned-allocation-pill{gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.planned-allocation-pill{display:flex;align-items:center;padding:6px 8px}.planned-allocation-block.run-cost{background:rgba(var(--accent-rgb),.12)}.planned-allocation-block.draft,.planned-allocation-pill.draft{border-style:dashed}.planned-allocation-pill input,.planned-allocation-pill select{padding:4px 8px}.allocation-mode-row{display:flex;align-items:center;gap:6px}.allocation-mode-row input,.allocation-mode-row select{width:70px;min-width:70px}.planned-allocation-actions{display:flex;justify-content:flex-end;gap:8px}.stacked-input{display:flex;flex-direction:column;gap:4px}.select-label{display:inline-flex;align-items:center;gap:8px}.muted-label{color:var(--muted);font-size:11px}.helper-note{color:var(--muted);margin-top:4px;display:grid;grid-gap:2px;gap:2px}.inline-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;margin-top:6px}.mt-4{margin-top:4px}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mb-0{margin-bottom:0}.compact{padding:6px 8px}.compact-table button:not(.icon-button),.compact-table input,.compact-table select{padding:4px 6px;border-radius:6px}.initiatives-table{table-layout:fixed}.initiatives-table col:first-child{width:31%}.initiatives-table col:nth-child(2){width:16%}.initiatives-table col:nth-child(3){width:7%}.initiatives-table col:nth-child(4){width:11%}.initiatives-table col:nth-child(5){width:16%}.initiatives-table col:nth-child(6){width:11%}.initiatives-table col:nth-child(7){width:8%}.initiatives-table input,.initiatives-table select{width:100%}.initiatives-table tr[data-ui^="roadmap.initiatives.row."] td{border-top:2px solid var(--border)}.initiatives-table tr.initiative-row-highlight td{background:rgba(var(--accent-rgb),.22);box-shadow:inset 0 0 0 1px rgba(var(--accent-strong-rgb),.35);animation:initiative-row-highlight 2.4s ease-out}@keyframes initiative-row-highlight{0%{background:rgba(var(--accent-strong-rgb),.32)}55%{background:rgba(var(--accent-rgb),.2)}to{background:transparent}}.teams-table{table-layout:fixed}.teams-setup-table col:nth-child(2){width:6rem}.teams-setup-table col:nth-child(3),.teams-setup-table col:nth-child(4){width:5.5rem}.teams-setup-table col:nth-child(5){width:9rem}.teams-setup-table col:nth-child(6){width:8rem}.teams-table input{width:100%}.team-cell{display:flex;align-items:center;gap:8px;justify-content:space-between}.minw-180{min-width:180px}.icon-button{--icon-button-radius:50%;--icon-button-bg:transparent;--icon-button-border:var(--border);--icon-button-color:var(--text);--icon-button-shadow:none;--icon-button-bg-hover:var(--icon-button-bg);--icon-button-border-hover:var(--icon-button-border);--icon-button-color-hover:var(--icon-button-color);width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--icon-button-radius);font-size:16px;line-height:1;background:var(--icon-button-bg);border:1px solid var(--icon-button-border);color:var(--icon-button-color);box-shadow:var(--icon-button-shadow)}.icon-button:focus-visible,.icon-button:hover{background:var(--icon-button-bg-hover);border-color:var(--icon-button-border-hover);color:var(--icon-button-color-hover);outline:none}.table-icon-button{--icon-button-radius:6px;--icon-button-bg:rgba(var(--accent-rgb),0.12);--icon-button-border:rgba(var(--accent-rgb),0.35);--icon-button-color:var(--accent-strong);--icon-button-shadow:0 0 0 2px rgba(var(--accent-rgb),0.08);--icon-button-bg-hover:rgba(var(--accent-rgb),0.2);--icon-button-border-hover:rgba(var(--accent-rgb),0.5)}.table-icon-button .icon-emoji{filter:none}.info-icon{margin-left:6px}.icon-emoji,.info-icon{display:inline-flex;align-items:center}.icon-emoji{line-height:1;font-size:16px}.pacing-actions{display:grid;grid-template-columns:auto 1fr;align-items:flex-start;grid-column-gap:8px;column-gap:8px;grid-row-gap:6px;row-gap:6px}.pacing-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}.planned-allocation-draft-row button,.planned-allocation-draft-row input,.planned-allocation-draft-row select{padding-top:4px;padding-bottom:4px}.initiatives-table col.priority-col{width:80px}.initiatives-table col.due-week-col{width:120px}.initiatives-table col.category-col{width:140px}.initiatives-table col.allocation-col{width:220px}.effort-cell{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.new-initiative-row td{background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.18),rgba(var(--accent-rgb),.14));border-top:2px solid rgba(var(--accent-strong-rgb),.85);border-bottom:2px solid rgba(var(--accent-strong-rgb),.85);box-shadow:inset 0 1px 0 rgba(0,0,0,.24)}.new-initiative-effort{flex-direction:row;align-items:center;gap:8px}.new-initiative-effort input{flex:1 1}.aggregate-pill{background:rgba(var(--accent-rgb),.16);border-style:dashed}.effort-offset{margin-left:18px}.capacity-summary{display:grid;grid-gap:6px;gap:6px;padding:8px 10px;border:1px dashed var(--border);border-radius:10px;background:rgba(var(--accent-rgb),.12);grid-template-columns:1fr}.snapshot-item{grid-gap:2px 10px;gap:2px 10px}.snapshot-item,.snapshot-track-row{display:grid;grid-template-columns:96px 1fr}.snapshot-track-row{align-items:center;grid-gap:10px;gap:10px;grid-column:1/-1}.snapshot-label{font-weight:600;letter-spacing:.02em;text-transform:uppercase}.snapshot-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px;grid-column:2}.forecast-legend{display:flex;gap:0;grid-column:2}.forecast-legend-item{width:var(--segment-width,0);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;line-height:inherit}.capacity-track{position:relative;height:6px;border-radius:999px;background:var(--border);overflow:hidden}.capacity-track.forecast-track{display:flex;gap:0}.forecast-segment{height:100%;width:var(--segment-width,0)}.forecast-segment.forecast-fits{background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.85),rgba(var(--accent-rgb),.65))}.forecast-segment.forecast-slip{background:linear-gradient(90deg,rgba(var(--warning-strong-rgb),.95),rgba(var(--warning-rgb),.85))}.forecast-segment.forecast-under{background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.35),rgba(var(--accent-rgb),.3))}.forecast-segment.forecast-unscheduled{background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.18),rgba(var(--accent-rgb),.12))}.capacity-layer{position:absolute;inset:0;height:100%}.capacity-layer.run-cost{background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.28),rgba(var(--accent-rgb),.14))}.capacity-layer.effort{background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.78),rgba(var(--accent-rgb),.64))}.capacity-layer.effort.over{background:linear-gradient(90deg,rgba(var(--warning-strong-rgb),.95),rgba(var(--warning-rgb),.95))}.capacity-layer.with-variable-width{width:var(--layer-width,0)}.heatmap-card{display:grid;grid-gap:12px;gap:12px}.heatmap-scroll{overflow:auto}.heatmap-table{table-layout:auto;min-width:720px}.heatmap-table th:not(:first-child){min-width:58px;white-space:nowrap;padding:10px 12px;text-align:center}.heatmap-table td:first-child,.heatmap-table th:first-child{position:-webkit-sticky;position:sticky;left:0;background:var(--card);z-index:1;width:260px;min-width:260px;max-width:320px}.heatmap-cell{text-align:center;min-width:58px;background:transparent;transition:background .2s ease;padding:10px 12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.heatmap-summary-row td:first-child{background:var(--surface)}.heatmap-total-capacity{background:linear-gradient(90deg,rgba(var(--accent-rgb),.04),rgba(var(--accent-rgb),.08));border-left:1px solid rgba(var(--accent-rgb),.2);border-right:1px solid rgba(var(--accent-rgb),.2)}.heatmap-capacity-cell{font-weight:600;background:rgba(0,0,0,.04)}.heatmap-capacity-value{display:inline-flex;align-items:center;justify-content:center;gap:6px}.heatmap-capacity-ok{background:color-mix(in srgb,var(--calculation-ok) 10%,transparent);color:var(--calculation-ok)}.heatmap-capacity-caution{background:color-mix(in srgb,var(--calculation-caution) 15%,transparent);color:var(--calculation-caution)}.heatmap-capacity-alert{background:color-mix(in srgb,var(--calculation-alert) 15%,transparent);color:var(--calculation-alert)}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:32px 24px;z-index:20}.pacing-backdrop{background:rgba(8,10,16,.45);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.pacing-modal{width:min(1040px,100%);margin-top:12px;max-height:90vh;overflow:auto;border:1px solid var(--border);box-shadow:0 20px 60px rgba(0,0,0,.45);display:grid;grid-gap:16px;gap:16px;padding:18px}.pacing-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pacing-title .subhead{letter-spacing:.02em;text-transform:uppercase}.pacing-body{grid-gap:12px;gap:12px;padding:14px;border:1px solid var(--border);background:var(--surface)}.pacing-body,.pacing-team{display:grid;border-radius:12px}.pacing-team{grid-gap:10px;gap:10px;padding:12px;border:1px solid var(--border);background:rgba(var(--accent-rgb),.14)}.pacing-team-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.pacing-team-name{font-weight:600}.pacing-description{margin:6px 0 0;max-width:760px}.pacing-subtext{margin:6px 0 0}.pacing-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:12px;gap:12px}.pacing-fieldset{display:grid;grid-gap:10px;gap:10px;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--card);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.02)}.pacing-fieldset.pacing-effort{background:var(--card);border-color:var(--border)}.pacing-legend{display:flex;align-items:center;gap:8px;color:var(--text)}.pacing-range{display:flex;align-items:flex-end;gap:10px}.pacing-clear{padding:4px 8px;font-size:12px;height:32px}.pacing-input{display:flex;flex:0 1 140px;max-width:160px;min-width:0;flex-direction:column;gap:4px}.pacing-input input{width:100%}.pacing-input-separator{color:var(--muted);font-weight:700;padding-bottom:6px;text-transform:uppercase}.pacing-helper{color:var(--muted)}.error-text{color:var(--calculation-alert)}.heatmap-cell input{width:100%;text-align:center;border:1px solid var(--border);border-radius:0;padding:4px 6px;background:#fff;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.heatmap-cell input::-webkit-inner-spin-button,.heatmap-cell input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.heatmap-cell input[type=number]{-moz-appearance:textfield}.heatmap-cell input:focus{outline:2px solid var(--accent);outline-offset:2px}.team-divider td{background:linear-gradient(90deg,rgba(var(--accent-strong-rgb),.18),rgba(var(--accent-rgb),.1));font-weight:700;color:var(--accent);letter-spacing:.02em;text-transform:uppercase;border-top:2px solid rgba(var(--accent-strong-rgb),.35);border-bottom:2px solid rgba(var(--accent-strong-rgb),.35)}.team-divider .badge{text-transform:none;letter-spacing:normal}.team-divider-content{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.cutline-divider td{background:color-mix(in srgb,var(--border) 35%,transparent);border-top:2px solid color-mix(in srgb,var(--border) 60%,transparent);border-bottom:2px solid color-mix(in srgb,var(--border) 60%,transparent);text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--muted)}.cutline-divider-content{display:flex;align-items:center;gap:12px}.badge.over-capacity{background:color-mix(in srgb,var(--calculation-alert) 15%,transparent);color:var(--calculation-alert);border:1px solid color-mix(in srgb,var(--calculation-alert) 45%,transparent)}.badge.under-capacity{background:color-mix(in srgb,var(--calculation-caution) 18%,transparent);color:var(--calculation-caution);border:1px solid color-mix(in srgb,var(--calculation-caution) 50%,transparent)}.badge.at-capacity{background:color-mix(in srgb,var(--calculation-ok) 15%,transparent);color:var(--calculation-ok);border:1px solid color-mix(in srgb,var(--calculation-ok) 45%,transparent)}.over-capacity-label,.under-capacity-label{font-weight:700;text-transform:uppercase;letter-spacing:.02em}.heatmap-row-label{display:flex;flex-direction:column;gap:4px;word-break:break-word}.heatmap-row-title{position:relative}.heatmap-row-title span{display:block;width:100%}.heatmap-row-actions{position:absolute;right:0;top:0;display:inline-flex;gap:4px;opacity:0;transition:opacity .15s ease}.heatmap-row-action{width:24px;height:24px;font-size:12px;background:var(--surface);border-color:var(--border);box-shadow:0 0 0 2px hsla(0,0%,100%,.7)}.heatmap-row-label:focus-within .heatmap-row-actions,.heatmap-row-label:hover .heatmap-row-actions{opacity:1}.heatmap-total-cell{text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:86px}.heatmap-total-cell .heatmap-total-value{font-weight:600}.heatmap-total-cell .heatmap-forecast-value{display:flex;align-items:center;justify-content:center;gap:6px}.forecast-status-icon{width:10px;height:10px;border-radius:999px;display:inline-block}.forecast-status-icon.forecast-on-track{background:var(--calculation-ok)}.forecast-status-icon.forecast-partial{background:var(--calculation-caution)}.forecast-status-icon.forecast-unscheduled{background:var(--muted)}.heatmap-total-delta{margin-top:4px;color:var(--muted)}.heatmap-total-cell.scheduled-ok{background:color-mix(in srgb,var(--calculation-ok) 10%,transparent)}.heatmap-total-cell.scheduled-caution{background:color-mix(in srgb,var(--calculation-caution) 15%,transparent)}.heatmap-total-cell.scheduled-alert{background:color-mix(in srgb,var(--calculation-alert) 15%,transparent)}.compact-heatmap{display:grid;grid-gap:10px;gap:10px}.compact-heatmap .section-header{align-items:baseline}.compact-heatmap-row td{vertical-align:top}.compact-demand,.compact-forecast{display:grid;grid-gap:4px;gap:4px;justify-items:center}.compact-planned{display:grid;grid-gap:2px;gap:2px;justify-items:center}.compact-sparkline{display:block}.compact-sparkline-track{fill:rgba(0,0,0,.12)}.compact-sparkline-range{fill:rgba(var(--accent-strong-rgb),.4)}.compact-sparkline-due{stroke:var(--warning);stroke-width:2;stroke-dasharray:3 3}.compact-sparkline-area{fill:rgba(var(--accent-rgb),.25)}.compact-sparkline-line{fill:none;stroke:var(--accent);stroke-width:2}.compact-sparkline-zero{fill:var(--card);stroke:rgba(0,0,0,.35);stroke-width:1.2}.badge.forecast-on-track{background:color-mix(in srgb,var(--calculation-ok) 15%,transparent);color:var(--calculation-ok);border:1px solid color-mix(in srgb,var(--calculation-ok) 45%,transparent)}.badge.forecast-partial{background:color-mix(in srgb,var(--calculation-caution) 15%,transparent);color:var(--calculation-caution);border:1px solid color-mix(in srgb,var(--calculation-caution) 45%,transparent)}.badge.forecast-unscheduled{background:color-mix(in srgb,var(--muted) 18%,transparent);color:var(--muted);border:1px solid color-mix(in srgb,var(--muted) 40%,transparent)}.badge.cutline-atl{background:color-mix(in srgb,var(--calculation-ok) 15%,transparent);color:var(--calculation-ok);border:1px solid color-mix(in srgb,var(--calculation-ok) 45%,transparent)}.badge.cutline-btl{background:color-mix(in srgb,var(--muted) 18%,transparent);color:var(--muted);border:1px solid color-mix(in srgb,var(--muted) 40%,transparent)}.badge.cutline-excluded{background:color-mix(in srgb,var(--muted-strong) 18%,transparent);color:var(--muted-strong);border:1px solid color-mix(in srgb,var(--muted-strong) 40%,transparent)}