:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#253a4b;background:#f3f6f8;font-synthesis:none;--blue:#286d95;--muted:#7b8d9b}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{border:1px solid #dce4e9;background:#fff;border-radius:7px;padding:10px 15px;color:#365265;font-size:13px;cursor:pointer;white-space:nowrap}button:hover{background:#f3f8fb;border-color:#adcadc}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,.milestone:focus-visible{outline:3px solid #82badb;outline-offset:3px}.primary{background:#246d96;color:#fff;border-color:#246d96;box-shadow:0 3px 7px #235d7617}.primary:hover{background:#1a5e86;color:#fff}.topbar{height:76px;background:#fff;border-bottom:1px solid #e1e8ed;display:flex;align-items:center;padding:0 32px;gap:18px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:1px;font-size:15px}.brand-icon{display:grid;place-items:center;background:#266e94;color:#fff;border-radius:9px;font-family:Georgia,serif;font-size:31px;width:39px;height:39px;line-height:1;transform:none}.brand-caption{display:block;font-weight:400;font-size:11px;letter-spacing:0;color:var(--muted);margin-top:4px}.source-link{margin-left:auto;color:#56809a;text-decoration:none;font-size:12px}.readonly{background:#f3f6f8;border-radius:4px;color:#8395a1;font-size:11px;padding:5px 9px}main{padding:28px 32px 18px;max-width:2400px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 24px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#8293a0}h1{font-size:28px;letter-spacing:-.55px;margin:9px 0 7px;font-weight:650}.page-heading p{margin:0;font-size:13px;color:var(--muted)}.sync-area{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.sync-area span{font-size:11px;color:#8293a1}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:20px 0}.stats>div{border:1px solid #e2e9ee;border-radius:10px;padding:17px 20px;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px}.stats span{font-size:12px;color:#7f919e;display:flex;align-items:center;gap:7px}.stats strong{font-size:27px;font-weight:600;font-variant-numeric:tabular-nums}.dot{width:8px;height:8px;display:inline-block;border-radius:50%;margin-right:3px;flex:none}.done{background:#70b9a4}.progress{background:#f0ca47}.moved{background:#e16262}.undated{background:#bdc7ce}.filters{background:#fff;border:1px solid #e1e8ed;border-radius:10px;padding:18px 20px;margin-bottom:24px}.filter-heading{display:flex;align-items:center;gap:14px;margin-bottom:14px;font-size:12px}.filter-heading strong{font-size:13px;font-weight:600}.filter-heading>span{color:#8a9aa6}.text-button{border:0;background:transparent;padding:5px 0;color:#5890af;font-size:12px}.filter-heading button{margin-left:auto}.filter-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:16px}.filter-grid label,.roadmap-controls label{font-size:10px;color:#8696a2;display:flex;flex-direction:column;gap:7px}input,select{width:100%;border:1px solid #dae4eb;border-radius:6px;color:#344d60;background:#fff;padding:10px 12px;min-height:38px;font-size:12px}input::placeholder{color:#97a7b2}select{padding-right:22px}summary{cursor:pointer;font-size:11px;color:#7291a7;margin-top:14px;user-select:none}.extra{margin-top:16px;grid-template-columns:repeat(5,1fr)}.field-note{font-size:11px;color:#8a9ca9;margin:12px 0 0}.workspace{border:1px solid #dce5ec;background:#fff;border-radius:11px;overflow:hidden;box-shadow:0 4px 12px #32475f05}.workspace-toolbar{padding:15px 20px;border-bottom:1px solid #e5edf2;display:flex;align-items:center;justify-content:space-between;gap:10px}.tabs,.segmented{display:flex;gap:2px;padding:3px;border-radius:7px;background:#f2f6f9}.tabs button,.segmented button{border:0;background:transparent;padding:8px 20px;color:#869aa8;border-radius:5px;font-size:12px}.tabs .active,.segmented .active{background:#fff;color:#2b7198;box-shadow:0 1px 4px #18384d17;font-weight:600}.exports{display:flex;gap:8px}.exports button:first-child{color:#357b9f;border-color:#c9deea;background:#f6fbff}.roadmap-controls{display:flex;align-items:flex-end;gap:20px;padding:17px 20px;background:#fbfdfe;border-bottom:1px solid #e9eff3;flex-wrap:wrap}.roadmap-controls .segmented{margin-bottom:1px}.roadmap-controls label input,.roadmap-controls label select{padding:8px 10px;min-height:34px}.roadmap-controls #help{margin-left:auto;margin-bottom:10px}.date-pair{display:flex;align-items:center;gap:8px}.date-pair input{width:135px}.roadmap-scroll{padding:16px;overflow:auto;min-height:480px}.roadmap-scroll>svg{display:block;width:100%;min-width:1400px;height:auto}.milestone{cursor:pointer}.milestone:hover rect{stroke:#78adca}.milestone:hover text{fill:#2a719b}.workspace-footer{border-top:1px solid #edf2f5;padding:14px 20px;font-size:11px;color:#8b9ca8;display:flex;justify-content:space-between;gap:16px}.note-banner,.error-banner{border-radius:7px;padding:13px 16px;font-size:12px;line-height:1.6;margin:0 0 15px}.note-banner{color:#6a7c89;background:#eaf1f6;border:1px solid #d9e6f0}.error-banner{color:#aa4343;background:#fff1f0;border:1px solid #f3d1cf}.error-banner a,.note-banner a{color:inherit}.diagnostics{margin:18px 0;color:#7c8f9d;font-size:12px}.diagnostics ul{line-height:1.9;padding-left:20px}.diagnostics .quiet{color:#8396a3}.page-footer{display:flex;justify-content:space-between;color:#98a7b2;font-size:10px;border-top:1px solid #e0e8ee;padding-top:18px;margin-top:24px}.table-scroll{overflow:auto;max-height:950px}table{width:100%;border-collapse:collapse;min-width:1100px;font-size:12px}th{background:#eff6fa;padding:14px 20px;text-align:left;color:#7891a3;font-size:11px;position:sticky;top:0}td{padding:15px 20px;border-bottom:1px solid #e8eef3;vertical-align:top;max-width:400px;line-height:1.6}tbody tr{cursor:pointer}tbody tr:hover{background:#f7fbfd}td:first-child{width:30%;font-weight:600}td small{display:block;color:#91a3af}td .status{display:inline-flex;gap:6px;align-items:center;white-space:nowrap}.loading{display:grid;place-items:center;height:360px;color:#8ba1af;font-size:14px}dialog{width:min(760px,calc(100vw - 36px));border:1px solid #cbdfe9;border-radius:15px;padding:24px;color:#344d60;max-height:86vh;overflow:auto;box-shadow:0 18px 100px #17344930}dialog::backdrop{background:#142e4760;backdrop-filter:blur(2px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.close{border:0;padding:0;font-size:24px;background:transparent;color:#7e9aab}.dialog-heading h2{margin:0;font-size:21px}.dialog-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e5edf1;margin-top:24px;padding-top:18px}.dialog-footer a{color:#4387ac;font-size:12px;text-decoration:none}.detail-title{font-size:22px;line-height:1.4;margin:18px 0;color:#263d4f}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid div{padding:13px;background:#f5f9fb;border-radius:7px}.detail-grid small{display:block;color:#8ba0af;font-size:11px;margin-bottom:7px}.detail-grid strong{font-size:13px;font-weight:500}.detail-dod{line-height:1.7;font-size:13px}.detail-note{font-size:11px;color:#7c92a1}.help-content{font-size:13px;line-height:1.8}.help-content li{padding:4px 0}.help-content ul{list-style:none;padding:0}.raw-fields{font-size:12px}.raw-fields dl{display:grid;grid-template-columns:150px 1fr;gap:8px 12px;line-height:1.5}.raw-fields dt{color:#8fa2af}.raw-fields dd{margin:0;overflow-wrap:anywhere}[hidden]{display:none!important}@media(min-width:1800px){h1{font-size:31px}.filter-grid{gap:24px}.roadmap-controls{gap:26px}}@media(max-width:1100px){main{padding:22px 18px}.topbar{padding:0 18px}.stats{gap:8px}.stats>div{padding:14px 12px}.stats strong{font-size:24px}.filter-grid{grid-template-columns:repeat(3,1fr)}.search-field{grid-column:span 2}.extra{grid-template-columns:repeat(3,1fr)}.roadmap-controls{gap:12px}.page-heading{align-items:flex-start}h1{font-size:24px}}@media(max-width:700px){.topbar{height:66px}.brand-caption,.readonly{display:none}.source-link{font-size:10px}main{padding:20px 12px}.page-heading{flex-direction:column;gap:18px}.sync-area{align-items:flex-start}.stats{grid-template-columns:repeat(2,1fr)}.stats>div:first-child{grid-column:span 2}.filter-grid,.extra{grid-template-columns:repeat(2,1fr)}.search-field{grid-column:span 2}.workspace-toolbar{align-items:flex-start;flex-direction:column}.exports{width:100%;flex-wrap:wrap}.exports button{font-size:11px}.roadmap-controls{padding:15px 12px}.workspace-footer,.page-footer{flex-direction:column;gap:8px}.roadmap-scroll{padding:8px}.detail-grid{grid-template-columns:1fr}.raw-fields dl{grid-template-columns:1fr}.filter-heading{flex-wrap:wrap}.filter-heading>span{display:none}}

.heading-actions{display:flex;gap:10px}.source-actions{margin:-5px 0 14px}.source-actions:has(button[hidden]){display:none}.import-label{display:flex;flex-direction:column;gap:8px;margin-top:20px;font-size:12px;color:#7c93a4}.import-table{max-height:350px}.import-table table{min-width:600px}.import-warnings{font-size:12px;color:#a06e50;line-height:1.7}.dependency-list{padding-left:20px;font-size:12px;line-height:1.8}.dependency-list button{white-space:normal;text-align:left}.dependency-open,.blocker-text{color:#a87350}.dependency-done{color:#47917b}.import-label select{margin-bottom:8px}@media(max-width:700px){.heading-actions{flex-wrap:wrap}.topbar{gap:8px}.topbar>a{font-size:10px}.extra{grid-template-columns:1fr 1fr}}

/* Keep readable SVG text at its native size; narrow screens scroll the roadmap. */
.roadmap-scroll>svg{width:auto;min-width:100%;max-width:none;height:auto}
.milestone .milestone-hit{stroke:none;transition:fill .12s}
.milestone:hover .milestone-hit{fill:#edf6fc;stroke:none}
.milestone:hover .milestone-bar{stroke:#abc9da}
.milestone:hover .milestone-card{stroke:#8cb6cf}
.milestone:hover .status-icon rect{stroke:inherit}
.status-icon,.new-badge{pointer-events:none}
.roadmap-controls .segmented{height:34px;min-height:34px;margin-bottom:0;align-items:stretch}
.roadmap-controls .segmented button{display:inline-flex;align-items:center;justify-content:center;padding:0 16px;line-height:1}
.roadmap-controls>button{height:34px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;align-self:flex-end;margin-top:0;margin-bottom:0}
.roadmap-controls #help{margin-bottom:0}
.filter-grid>*{min-width:0}
.filter-grid.extra{grid-template-columns:repeat(3,minmax(0,1fr))}
.close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;line-height:1}
@media(max-width:700px){.filter-grid.extra{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Release 2: shared application components. */
.brand-logo{display:block;width:180px;max-height:52px;object-fit:contain}.topbar{flex-wrap:wrap;height:auto;min-height:76px}.stats{grid-template-columns:repeat(6,minmax(0,1fr))}.filter-grid{grid-template-columns:1.4fr repeat(5,minmax(0,1fr))}.overdue{background:#bd3838}.login-page{min-height:100vh;display:grid;place-items:center}.login-card{width:min(430px,calc(100vw - 32px));padding:36px;background:white;border:1px solid #dce5ec;border-radius:16px;box-shadow:0 16px 60px #253a4b0a}.login-card form{display:grid;gap:18px;margin-top:28px}.login-card label,.admin-main label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#526b7b}.login-card footer{margin-top:32px;font-size:12px;color:#617888}.admin-main{max-width:1200px}.admin-section{background:white;padding:24px;border:1px solid #dce5ec;border-radius:12px;margin:24px 0}.admin-section h2{font-size:20px;margin-top:0}.admin-section p{font-size:13px;color:#617888;line-height:1.6}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-main textarea{font:inherit;color:#304354;padding:12px;border:1px solid #cddce5;border-radius:6px;resize:vertical}.admin-main button{margin-top:16px}.admin-main .check-label{display:flex;flex-direction:row;align-items:center;margin-top:20px}.check-label input{width:20px;min-height:20px}.dependency-outline{pointer-events:none}.milestone:hover .dependency-outline{stroke-width:2}.readonly{white-space:nowrap}
@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div:first-child{grid-column:auto}.brand-logo{width:140px}.topbar{padding:12px;gap:12px}.source-link{margin-left:0}}
