*{box-sizing:border-box}body{margin:0;background:#0d1522;color:#e7eef8;font:15px system-ui;min-height:100dvh}header{display:flex;align-items:center;gap:16px;padding:18px 24px;background:#131f30;flex-wrap:wrap}h1{margin:4px 0;font-size:24px}small{color:#83a5c9;letter-spacing:2px}#summary{flex:1;color:#a9c0d8}button,input,textarea{font:inherit}button{border:1px solid #39506b;border-radius:7px;padding:9px 13px;color:#e7eef8;background:#22364f;cursor:pointer}button:hover{background:#304a68}button:disabled{opacity:.4;cursor:default}#notice{margin:0;padding:8px 24px;color:#ffce84;min-height:34px}main{overflow-x:hidden;overflow-y:visible;padding:0 24px 32px}.hscroll{overflow-x:auto;overflow-y:hidden;padding-bottom:12px;margin-bottom:12px;cursor:grab;scrollbar-width:none}.hscroll::-webkit-scrollbar{display:none}.hscroll.dragging{cursor:grabbing;user-select:none}.hscroll button{cursor:pointer}#cards{display:flex;gap:56px;width:max-content;min-width:100%;padding:12px 80px 24px 12px}.card{width:240px;height:180px;text-align:left;background:#172538;border-top:5px solid var(--phase);display:flex;flex-direction:column;gap:9px}.card strong{font-size:16px}.card small{letter-spacing:0;color:#b8c9dd}.card.selected{outline:2px solid #fff}#timeline{--day:36px;position:relative;width:max-content;min-width:100%;background:#121e2e;border-radius:12px;padding:15px}.axis{height:46px;position:relative}.tick{position:absolute;color:#a4b6cc;font-size:12px;white-space:nowrap;border-left:1px solid #344358;padding-left:5px;line-height:1.15}.tick strong,.tick small{display:block}.tick strong{color:#d8e7f7}.tick small{color:#7f93aa;letter-spacing:0}.lane{height:142px;position:relative;border-top:1px solid #304158;background:repeating-linear-gradient(90deg,transparent,transparent calc(var(--day) - 1px),#ffffff06 calc(var(--day) - 1px),#ffffff06 var(--day))}.laneTitle{position:sticky;left:0;top:0;display:block;width:180px;background:#121e2e;color:#acc2db;padding:4px;z-index:2}.bar{position:absolute;top:33px;height:66px;border:0;border-radius:4px;background:var(--phase);color:#07101a;padding:5px 6px;overflow:hidden;white-space:normal;font-size:12px;text-align:left;line-height:1.15}.bar strong,.bar span,.bar small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar strong{font-size:12px}.bar span{font-size:11px;color:#17202b}.bar small{font-size:10px;color:#243447;letter-spacing:0}.bar.selected{outline:2px solid white}.phaseBracket{position:absolute;top:116px;border-top:2px solid var(--phase);font-size:11px;color:#b8c9dd;white-space:nowrap;overflow:hidden}.empty{color:#8ea4bd;padding:30px}#requirements{width:100%;padding-top:22px}.requirementsHead{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}.requirementsHead h2{margin:0;font-size:22px}.requirementsHead p{margin:0;color:#a9c0d8}.requirementsGrid{display:grid;grid-template-columns:1fr;gap:12px}.requirement{background:#172538;border-left:5px solid var(--phase);border-radius:8px;padding:14px}.requirementTop{display:flex;align-items:start;justify-content:space-between;gap:16px}.requirement h3{margin:0 0 8px;font-size:16px}.progress{color:#a9c0d8;white-space:nowrap}.requirement p{margin:0 0 10px;color:#d5e2f0}.requirementChecks{display:grid;gap:7px;margin-bottom:12px}.requirement .check{margin:0}.completeRow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.completeRow input{width:auto}.requirement button{padding:7px 10px}dialog{background:#172538;color:#eef5fc;border:1px solid #49617e;border-radius:12px;width:min(560px,94vw);max-height:85vh}dialog::backdrop{background:#0009}label{display:block;margin:14px 0}input,textarea{display:block;width:100%;background:#0d1522;color:white;border:1px solid #49617e;padding:8px;border-radius:5px}textarea{height:110px}.close{float:right}.actions{display:flex;gap:8px;flex-wrap:wrap}.check{display:flex;gap:8px;align-items:start}.check input{width:auto}.checkCopy strong{display:block}.checkCopy p{margin:3px 0 0;color:#b8c9dd;line-height:1.35}.check:has(input:checked) .checkCopy strong,.check:has(input:checked) .checkCopy p{text-decoration:line-through;color:#7f93aa}a{color:#a8d5ff}@media(max-width:700px){header{padding:12px;gap:8px}header button{padding:7px}h1{font-size:19px}#summary{flex-basis:100%}.card{height:155px;width:220px}main{padding:0 12px 12px}.requirementTop{display:block}.progress{display:block;margin-bottom:8px}}
