:root{--green:#173d35;--green-2:#24594e;--mint:#eaf3ef;--ink:#1e2d2a;--muted:#687773;--line:#d8e2df;--bg:#f4f7f6;--card:#fff;--amber:#a96505;--amber-bg:#fff6df;--red:#a33a31;--red-bg:#fff0ee;--blue:#2d5d83;--shadow:0 10px 30px rgba(23,61,53,.10);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:16px}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(36,89,78,.28);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{height:72px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:24px;position:sticky;top:0;z-index:40;box-shadow:0 2px 12px rgba(0,0,0,.12)}.brand{display:flex;align-items:center;gap:12px;min-width:245px}.brand-mark{width:38px;height:38px;border-radius:11px;background:#fff;color:var(--green);display:grid;place-items:center;font-size:.82rem;font-weight:800}.brand div{display:flex;flex-direction:column}.brand strong{font-size:1rem}.brand span:last-child{font-size:.75rem;color:#cfe0da;margin-top:2px}.top-actions{display:flex;align-items:center;gap:8px}.save-state{font-size:.78rem;color:#d8e8e3;margin-right:6px;white-space:nowrap}.save-state>span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#70d09a;margin-right:6px}
.button{border-radius:9px;border:1px solid transparent;padding:9px 13px;font-size:.84rem;font-weight:650;line-height:1.2;white-space:nowrap}.button.primary{background:#fff;color:var(--green)}.button.secondary{background:var(--green);color:#fff}.button.ghost{background:transparent;border-color:rgba(255,255,255,.28);color:inherit}.button.text{background:transparent;color:var(--green);padding-inline:6px}.button.danger{background:var(--red);color:#fff}.button:disabled{opacity:.45;cursor:not-allowed}.topbar .button.primary:hover{background:#eef7f3}.toolbar .button.secondary:hover{background:var(--green-2)}
main{padding:30px 28px 42px;max-width:1920px;margin:0 auto}.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,470px);gap:28px;align-items:end;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.69rem;font-weight:800;color:var(--green-2);margin-bottom:6px}.intro h1{font-size:clamp(1.75rem,2.4vw,2.5rem);letter-spacing:-.035em;margin:0 0 8px;line-height:1.08}.intro>div:first-child>p{margin:0;max-width:900px;color:var(--muted);line-height:1.55;font-size:.94rem}.pilot-note{display:flex;gap:11px;background:var(--mint);border:1px solid #cbded7;border-radius:12px;padding:14px}.note-icon{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:800;font-size:.75rem}.pilot-note strong{font-size:.83rem}.pilot-note p{font-size:.78rem;color:#50625e;line-height:1.45;margin:3px 0 0}
.summary{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:10px;margin-bottom:14px}.summary-card{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:13px 15px;display:flex;justify-content:space-between;align-items:center;min-height:68px}.summary-card div{display:flex;flex-direction:column;gap:2px}.summary-card .label{font-size:.72rem;color:var(--muted);font-weight:700}.summary-card strong{font-size:1.34rem}.summary-card .delta{font-size:.7rem;color:var(--muted);text-align:right}.summary-card.changed{border-color:#d6b36f;background:#fffbf1}
.toolbar{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:12px}.toolbar .search{height:40px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:8px;padding:0 10px;min-width:270px;flex:1;max-width:460px}.search span{font-size:1.25rem;color:var(--muted);transform:rotate(-18deg)}.search input{border:0;outline:0;width:100%;font-size:.84rem;background:transparent}.toolbar select{height:40px;min-width:145px;border:1px solid var(--line);border-radius:8px;padding:0 30px 0 10px;background:#fff;color:var(--ink);font-size:.82rem}.check{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--muted);white-space:nowrap}.check input{accent-color:var(--green);width:16px;height:16px}.toolbar .add{margin-left:auto}
.issue-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--amber-bg);color:#6e4508;border:1px solid #ebd28f;border-radius:10px;padding:10px 13px;margin-bottom:12px;font-size:.82rem}.issue-banner div{display:flex;gap:7px;align-items:center}.issue-banner .button{color:#6e4508;border-color:#d7b96b}
.board{display:grid;grid-template-columns:repeat(5,minmax(245px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:8px}.phase-column{background:#e9efed;border:1px solid #d4dfdc;border-radius:13px;min-width:245px;min-height:500px;overflow:hidden}.phase-column.drag-over{outline:3px solid rgba(36,89,78,.28);background:#dfeae6}.phase-head{padding:14px 14px 12px;border-bottom:1px solid #d3dfdb;background:#f2f6f5;position:sticky;top:72px;z-index:2}.phase-head-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.phase-head h2{font-size:.92rem;margin:0}.phase-count{font-size:.7rem;font-weight:800;background:#dbe7e3;color:var(--green);padding:3px 7px;border-radius:99px}.phase-head p{font-size:.7rem;color:var(--muted);line-height:1.35;margin:5px 0 0}.phase-list{padding:9px;display:flex;flex-direction:column;gap:8px;min-height:430px}.empty-state{border:1px dashed #becdc8;border-radius:9px;color:var(--muted);font-size:.76rem;line-height:1.4;padding:20px 12px;text-align:center}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px;box-shadow:0 1px 2px rgba(20,55,47,.03);cursor:grab;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.feature-card:hover{border-color:#91aaa3;box-shadow:0 6px 14px rgba(23,61,53,.09);transform:translateY(-1px)}.feature-card:active{cursor:grabbing}.feature-card.selected{border-color:var(--green);box-shadow:0 0 0 2px rgba(36,89,78,.15)}.feature-card.related{border-color:#5c87a5;background:#f6fbff}.feature-card.has-issue{border-left:4px solid #d08a1c}.feature-card.client-added{border-top:3px solid #4d8b78}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:7px}.feature-id{font-size:.64rem;color:var(--muted);font-weight:750;letter-spacing:.03em}.portal-badge{font-size:.62rem;font-weight:750;color:var(--green);background:var(--mint);padding:3px 6px;border-radius:99px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feature-card h3{font-size:.83rem;line-height:1.3;margin:0 0 5px}.feature-card .description{font-size:.71rem;color:var(--muted);line-height:1.4;margin:0 0 9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px}.dependency-status{font-size:.65rem;color:var(--muted);display:flex;align-items:center;gap:4px}.dependency-status.issue{color:var(--amber);font-weight:750}.dependency-status .dot{width:6px;height:6px;border-radius:50%;background:#82a59a}.dependency-status.issue .dot{background:#d08a1c}.phase-select{font-size:.65rem;border:1px solid var(--line);border-radius:6px;background:#fff;max-width:92px;padding:4px}.recommendation{font-size:.62rem;color:#7b6950;background:#f8f2e8;border-radius:5px;padding:3px 5px;margin-top:8px;display:inline-block}.board-help{text-align:center;color:var(--muted);font-size:.73rem;margin:7px 0 0}
.drawer{position:fixed;right:0;top:0;width:min(500px,100%);height:100dvh;background:#fff;z-index:60;box-shadow:-14px 0 40px rgba(16,40,35,.18);padding:24px;transform:translateX(105%);transition:transform .22s ease;overflow:auto}.drawer.open{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:18px}.drawer h2{margin:0;font-size:1.4rem;line-height:1.2}.icon-button{border:0;background:#edf2f0;color:var(--green);width:34px;height:34px;border-radius:8px;font-size:1.3rem;display:grid;place-items:center}.scrim{position:fixed;inset:0;background:rgba(13,35,30,.38);z-index:55}.detail-section{margin-bottom:20px}.detail-section h3{font-size:.77rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}.detail-section p{font-size:.86rem;line-height:1.55;margin:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.detail-item{background:var(--bg);border-radius:9px;padding:10px}.detail-item span{display:block;color:var(--muted);font-size:.67rem;margin-bottom:3px}.detail-item strong{font-size:.82rem}.dependency-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.dependency-list li{border:1px solid var(--line);border-radius:8px;padding:9px;font-size:.78rem}.dependency-list li.issue{background:var(--amber-bg);border-color:#ecd596}.dependency-list button{border:0;background:none;padding:0;color:var(--blue);font-weight:700;text-align:left}.drawer-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.drawer .button.ghost{border-color:var(--line);color:var(--green)}.change-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}.change-list li{border-bottom:1px solid var(--line);padding-bottom:9px}.change-list strong{font-size:.82rem;display:block}.change-list span{font-size:.72rem;color:var(--muted)}
dialog{border:0;border-radius:14px;padding:0;width:min(680px,calc(100% - 30px));box-shadow:var(--shadow);color:var(--ink)}dialog::backdrop{background:rgba(13,35,30,.48)}dialog form{padding:22px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.dialog-head h2,dialog h2{margin:0;font-size:1.35rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{font-size:.76rem;font-weight:700;color:#40504c}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;color:var(--ink);font-size:.84rem}.form-grid .full{grid-column:1/-1}.hint{display:block;margin-top:5px;font-size:.68rem;font-weight:400;color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog-actions .ghost{color:var(--green);border-color:var(--line)}.confirm-dialog{width:min(440px,calc(100% - 30px))}.confirm-dialog p{color:var(--muted);line-height:1.5;font-size:.86rem}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--green);color:#fff;padding:11px 16px;border-radius:9px;font-size:.82rem;box-shadow:var(--shadow);z-index:100;opacity:0;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1150px){.topbar{height:auto;min-height:72px;padding-block:12px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.save-state{display:none}.intro{grid-template-columns:1fr}.summary{grid-template-columns:repeat(3,1fr)}.toolbar{flex-wrap:wrap}.toolbar .add{margin-left:0}.phase-head{top:96px}}
@media(max-width:720px){.topbar{position:relative;padding:14px 16px;align-items:flex-start}.top-actions{gap:5px}.top-actions .button{font-size:.72rem;padding:8px}.brand span:last-child{display:none}main{padding:20px 14px 34px}.intro{gap:14px}.pilot-note{min-width:0}.summary{grid-template-columns:repeat(2,1fr)}.toolbar{align-items:stretch}.toolbar .search{min-width:100%;max-width:none}.toolbar select{flex:1;min-width:130px}.check{width:100%;padding:4px}.toolbar .add{flex:1}.board{scroll-snap-type:x mandatory}.phase-column{min-width:86vw;scroll-snap-align:start}.phase-head{top:0}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.drawer{padding:18px}.detail-grid{grid-template-columns:1fr}.button.text{width:100%;text-align:center}}
@media print{.topbar,.toolbar,.issue-banner,.board-help,.scrim,.drawer,dialog{display:none!important}body{background:#fff}main{padding:0}.intro{display:block}.pilot-note{margin-top:12px}.summary{grid-template-columns:repeat(5,1fr)}.board{display:block;overflow:visible}.phase-column{break-inside:avoid;margin:0 0 14px;min-height:0}.phase-list{display:grid;grid-template-columns:repeat(3,1fr);min-height:0}.feature-card{box-shadow:none;break-inside:avoid}.phase-select{display:none}}
