:root{--bg: rgb(35, 37, 42);--panel: rgb(24, 26, 31);--panel-2: rgb(35, 37, 42);--panel-3: rgb(45, 50, 57);--border: rgb(63, 69, 76);--border-soft: rgb(45, 50, 57);--text: rgb(247, 249, 251);--muted: rgb(137, 142, 148);--muted-2: rgb(108, 114, 122);--accent: rgb(66, 94, 255);--accent-hover: rgb(112, 132, 255);--accent-soft: rgb(18, 29, 97);--accent-text: rgb(112, 132, 255);--purple: rgb(189, 97, 255);--purple-soft: rgb(60, 2, 98);--purple-text: rgb(189, 97, 255);--green: rgb(0, 164, 85);--green-soft: rgb(9, 44, 23);--green-text: rgb(0, 164, 85);--amber: rgb(255, 157, 41);--amber-soft: rgb(163, 89, 1);--amber-text: rgb(255, 208, 153);--red: rgb(248, 79, 110);--red-soft: rgb(78, 11, 22);--red-text: rgb(248, 79, 110);--pill-bg: rgb(45, 50, 57);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 1px rgba(0, 0, 0, .3);--shadow-hover: 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .3);--radius: 6px;--radius-sm: 3px;--radius-lg: 8px;--toast-bg: rgb(247, 249, 251);--toast-text: rgb(24, 26, 31);--phase-accent: rgb(235, 255, 56);--phase-accent-soft: rgba(235, 255, 56, .14);--phase-accent-text: rgb(235, 255, 56)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}body{padding:20px clamp(28px,15vw,320px) 28px;max-width:none;margin:0;min-height:100vh;display:flex;flex-direction:column}#app-root{display:flex;flex-direction:column;flex:1;min-height:0}header.app-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:14px}header.app-header h1{margin:0 0 4px;font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--text)}header.app-header .sub{color:var(--muted);font-size:12px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.toolbar-group{display:inline-flex;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.toolbar-group>button{border:none;background:transparent;padding:7px 12px;border-radius:0;border-right:1px solid var(--border)}.toolbar-group>button:last-child{border-right:none}.toolbar-group>button:hover{background:var(--panel-2);border-color:var(--border)}.toolbar-group>button.active{background:var(--phase-accent-soft);color:var(--phase-accent-text)}.menu-wrap{position:relative;display:inline-flex}.menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:180px;padding:4px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-hover)}.menu-item{display:block;width:100%;text-align:left;padding:8px 12px;background:transparent;border:none;color:var(--text);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;cursor:pointer}.menu-item:hover{background:var(--panel-2)}.menu-item.destructive{color:var(--red-text)}.menu-item.destructive:hover{background:var(--red-soft)}.menu-overflow{padding:7px 10px;letter-spacing:.15em;font-weight:700;line-height:.5}button{background:var(--panel);color:var(--text);border:1px solid var(--border);padding:7px 14px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}button:hover{background:var(--panel-2);border-color:var(--muted-2)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger:hover{border-color:var(--red);color:var(--red-text);background:var(--red-soft)}#main-root{flex:1;display:flex;flex-direction:column;gap:10px;align-content:start;min-height:0}.column{display:flex;flex-direction:column;gap:10px;min-width:0}.phase-header{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-top:14px;background:var(--panel-2);border:1px solid var(--border-soft);border-left:3px solid var(--phase-accent);border-radius:var(--radius)}.col-title+.phase-header{margin-top:0}.phase-header .phase-num{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--phase-accent-text);background:var(--phase-accent-soft);padding:2px 9px;border-radius:999px;flex-shrink:0}.phase-header .phase-title{font-size:14px;font-weight:600;color:var(--phase-accent-text);flex:1;min-width:0;cursor:pointer}.phase-header .phase-remove{background:transparent;border:none;color:var(--muted-2);cursor:pointer;font-size:16px;padding:0 4px;line-height:1;transition:color .12s}.phase-header .phase-remove:hover{color:var(--red-text)}.phase-title-input{flex:1;padding:4px 10px;font-size:14px;font-weight:600;background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);color:var(--text);outline:none;box-shadow:0 0 0 3px var(--accent-soft);font-family:inherit}.add-phase-btn{padding:10px 14px;font-size:13px;background:var(--panel);border:1px dashed var(--border);color:var(--muted);border-radius:var(--radius);cursor:pointer;font-family:inherit;text-align:center;font-weight:500;margin-top:4px;transition:border-color .12s,color .12s,background .12s}.add-phase-btn:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.col-title{display:flex;align-items:baseline;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.col-title .num{font-size:11px;color:var(--accent-text);font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--accent-soft);padding:2px 9px;border-radius:999px}.col-title h2{margin:0;font-size:15px;letter-spacing:-.01em;font-weight:600;color:var(--text)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:box-shadow .12s,border-color .12s}.card:hover{box-shadow:var(--shadow-hover);border-color:var(--muted-2)}.card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.card-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--muted);background:var(--panel-3);padding:2px 7px;border-radius:var(--radius-sm);font-weight:500}.card-title{font-size:14px;font-weight:600;flex:1;min-width:0;color:var(--text)}.pill{font-size:11px;padding:2px 10px;border-radius:999px;font-weight:500;letter-spacing:0}.pill.status-not-started{background:var(--panel-3);color:var(--muted)}.pill.status-in-progress{background:var(--amber-soft);color:var(--amber-text)}.pill.status-complete{background:var(--green-soft);color:var(--green-text)}.pill.status-blocked{background:var(--red-soft);color:var(--red-text)}.pill.criteria-deploy{background:var(--accent-soft);color:var(--accent-text)}.pill.criteria-iterate{background:var(--purple-soft);color:var(--purple-text)}.pill.criteria-rollback{background:#3dd6f529;color:#3dd6f5}.pill.criteria-hash-0{background:#ff35a229;color:#ff79c0}.pill.criteria-hash-1{background:#ff9d2929;color:#ffd099}.pill.criteria-hash-2{background:#00a4552e;color:#1ecb6a}.pill.criteria-hash-3{background:#bd61ff29;color:#bd61ff}.pill.criteria-hash-4{background:#7084ff2e;color:#7084ff}select.status-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;outline:none;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;letter-spacing:0;padding:2px 22px 2px 10px;border-radius:999px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 11px) 50%,calc(100% - 7px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;transition:filter .12s,box-shadow .12s}select.status-select option{background:var(--panel);color:var(--text);font-weight:500;text-transform:none;letter-spacing:normal}select.status-select:hover{filter:brightness(.97)}select.status-select:focus{box-shadow:0 0 0 3px var(--accent-soft)}.desc-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:0;font-weight:500;color:var(--muted);margin-bottom:6px}.desc-label .saved{color:var(--green-text);opacity:0;transition:opacity .24s;font-size:11px}.desc-label .saved.show{opacity:1}.desc{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;min-height:72px;flex:1;outline:none;transition:border-color .12s,background .12s;color:var(--text);white-space:pre-wrap;font-size:13px}.desc:focus,.desc:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.desc:empty:before{content:"Add a description…";color:var(--muted-2)}.meta{font-size:12px;color:var(--muted);margin-top:10px;display:flex;flex-wrap:wrap;gap:14px}.meta b{color:var(--text);font-weight:500}.card-remove{background:transparent;border:none;color:var(--muted-2);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;transition:color .12s}.card-remove:hover{color:var(--red-text)}.card-move{background:transparent;border:none;color:var(--muted-2);cursor:pointer;padding:2px 5px;line-height:1;font-size:11px;border-radius:var(--radius-sm);transition:color .12s,background .12s}.card-move:hover:not(:disabled){color:var(--text);background:var(--panel-3)}.card-move:disabled{opacity:.25;cursor:not-allowed}body:not(.reorder-on) .card-move{display:none}#toggle-reorder.active{background:var(--phase-accent-soft);border-color:var(--phase-accent);color:var(--phase-accent-text)}.card-id{cursor:pointer;transition:background .12s}.card-id:hover{background:var(--accent-soft);color:var(--accent-text)}.card-id-input{width:64px;padding:1px 6px;font-size:12px;font-weight:500;background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.card-toggle{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:11px;line-height:1;padding:2px 6px;border-radius:var(--radius-sm);transition:color .12s,background .12s,transform .16s}.card-toggle:hover{color:var(--text);background:var(--panel-3)}.card.expanded .card-toggle{transform:rotate(180deg)}.card.collapsed{padding-top:10px;padding-bottom:10px}.card.collapsed:hover{cursor:pointer}.card.collapsed .card-head{margin-bottom:0}.card.collapsed .desc-label,.card.collapsed .desc,.card.collapsed .meta{display:none}.card .card-title{cursor:pointer}.add-criterion-btn{padding:10px 14px;font-size:13px;background:var(--panel);border:1px dashed var(--border);color:var(--muted);border-radius:var(--radius);cursor:pointer;font-family:inherit;text-align:center;font-weight:500;transition:border-color .12s,color .12s,background .12s}.add-criterion-btn:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.add-criterion-form{display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);padding:14px 16px;box-shadow:0 0 0 3px var(--accent-soft)}.add-criterion-form input,.add-criterion-form select{padding:8px 10px;font-size:13px;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);font-family:inherit;outline:none;transition:border-color .12s,box-shadow .12s}.add-criterion-form input:focus,.add-criterion-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.add-criterion-form .row{display:flex;gap:6px;justify-content:flex-end}.add-criterion-form button{padding:6px 12px;font-size:12px;font-family:inherit;font-weight:500;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text)}.add-criterion-form button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.add-criterion-form button:hover{background:var(--panel-2)}.add-criterion-form button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.removed-section{margin-top:16px;padding-top:12px;border-top:1px dashed var(--border)}.removed-section summary{cursor:pointer;font-size:12px;color:var(--muted);padding:4px 0;font-weight:500;-webkit-user-select:none;user-select:none}.removed-section summary:hover{color:var(--text)}.removed-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.removed-card{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius)}.removed-card .card-id{flex-shrink:0}.removed-card .card-title{flex:1;font-size:13px;font-weight:500;color:var(--muted)}.removed-restore{background:var(--panel);color:var(--accent-text);border:1px solid var(--border);padding:4px 10px;border-radius:var(--radius);cursor:pointer;font-size:11px;font-family:inherit;font-weight:500}.removed-restore:hover{background:var(--accent-soft);border-color:var(--accent)}footer.app-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;display:flex;justify-content:space-between;align-items:center}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--toast-bg);color:var(--toast-text);padding:10px 18px;border-radius:var(--radius);font-weight:500;font-size:13px;opacity:0;pointer-events:none;box-shadow:0 4px 12px #00000073;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%) translateY(-4px)}.layout{display:grid;grid-template-columns:240px 1fr;gap:22px;flex:1;min-height:0}.sidebar{display:flex;flex-direction:column;gap:14px;align-self:start}.tech-stack-bar{display:flex;flex-direction:column;gap:6px;padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.tech-stack-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--border-soft);margin-bottom:4px}.tech-chip{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:var(--radius);font-size:13px;font-weight:500;border:1px solid var(--border-soft);background:var(--panel-2)}.tech-chip .name{color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.tech-chip .chip-remove{background:transparent;border:none;color:var(--muted-2);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;flex-shrink:0}.tech-chip .chip-remove:hover{color:var(--red-text)}.add-tech-btn{padding:6px 10px;font-size:12px;background:var(--panel);border:1px dashed var(--border);color:var(--muted);border-radius:var(--radius);cursor:pointer;font-family:inherit;text-align:left}.add-tech-btn:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.add-tech-input{padding:6px 10px;font-size:13px;background:var(--panel);border:1px solid var(--accent);color:var(--text);border-radius:var(--radius);width:100%;font-family:inherit;outline:none;box-sizing:border-box;box-shadow:0 0 0 3px var(--accent-soft)}.contributors-bar{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px;align-self:start;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.contributors-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--border-soft)}.contributor-chip{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius);font-size:13px;font-weight:500;border:1px solid var(--border-soft);background:var(--panel-2)}.contributor-chip .dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.contributor-chip .name{color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.contributor-chip .count{color:var(--muted);font-size:11px;background:var(--panel-3);padding:1px 7px;border-radius:999px;font-weight:500}.contributor-chip .chip-remove{background:transparent;border:none;color:var(--muted-2);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;flex-shrink:0}.contributor-chip .chip-remove:hover{color:var(--red-text)}.add-contributor-btn{padding:6px 10px;font-size:12px;background:var(--panel);border:1px dashed var(--border);color:var(--muted);border-radius:var(--radius);cursor:pointer;font-family:inherit;text-align:left}.add-contributor-btn:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.add-contributor-input{padding:6px 10px;font-size:13px;background:var(--panel);border:1px solid var(--accent);color:var(--text);border-radius:var(--radius);width:100%;font-family:inherit;outline:none;box-sizing:border-box;box-shadow:0 0 0 3px var(--accent-soft)}.assignee-wrap{display:inline-flex;align-items:center;gap:4px}.assignee-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:500;background:var(--panel-2);border:1px solid var(--border-soft);color:var(--text);cursor:pointer;transition:border-color .12s,background .12s}.assignee-pill:hover{border-color:var(--accent);background:var(--accent-soft)}.assignee-pill .dot{width:7px;height:7px;border-radius:50%;display:inline-block}.assignee-pill.unassigned{color:var(--muted)}.assignee-pill.unassigned .dot{background:var(--muted-2)}.assignee-menu{position:absolute;z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px;min-width:180px;box-shadow:0 8px 24px #1016241f,0 2px 4px #10162414}.assignee-menu button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 10px;background:transparent;color:var(--text);border:none;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;font-family:inherit}.assignee-menu button:hover{background:var(--panel-2)}.assignee-menu .dot{width:8px;height:8px;border-radius:50%}.eyebrow{margin-bottom:6px;letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600;color:var(--accent)}.empty-state{padding:32px 20px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);background:var(--panel);font-size:13px}.empty-state b{color:var(--text);font-weight:600}.pov-list{display:flex;flex-direction:column;gap:6px}.pov-row{display:grid;grid-template-columns:1fr 160px 100px auto auto;align-items:center;gap:12px;padding:12px 16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .12s,box-shadow .12s}.pov-row:hover{border-color:var(--muted-2);box-shadow:var(--shadow-hover)}.pov-name{background:transparent;border:none;padding:0;text-align:left;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;font-family:inherit}.pov-name:hover{color:var(--accent-text);background:transparent;border:none}.pov-meta{font-size:12px;color:var(--muted)}.pov-date{font-variant-numeric:tabular-nums}.pov-action{padding:4px 10px;font-size:12px;background:var(--panel-2);border:1px solid var(--border-soft);color:var(--muted);border-radius:var(--radius);cursor:pointer;font-family:inherit}.pov-action:hover{color:var(--text);border-color:var(--muted-2)}.pov-action.danger-action:hover{color:var(--red-text);border-color:var(--red);background:var(--red-soft)}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);text-decoration:none;background:transparent;border:none;padding:0;cursor:pointer;font-family:inherit;margin-bottom:6px}.back-link:hover{color:var(--accent-text);background:transparent;border:none}.templates-section{margin-top:28px;display:flex;flex-direction:column;gap:10px}.templates-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.templates-section-head .col-title{flex:1;border-bottom:1px solid var(--border)}.modified-dot{margin-left:8px;font-size:10px;color:var(--phase-accent-text)}.custom-badge{margin-left:8px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text);background:var(--accent-soft);padding:1px 7px;border-radius:999px}.auth-root{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-hover)}.auth-card h1{margin:0 0 6px;font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.auth-card .sub{color:var(--muted);font-size:13px;margin:0 0 22px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);font-weight:500}.auth-label input{padding:9px 11px;font-size:14px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);font-family:inherit;outline:none;transition:border-color .12s,box-shadow .12s}.auth-label input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-error{padding:8px 12px;font-size:12px;color:var(--red-text);background:var(--red-soft);border:1px solid var(--red);border-radius:var(--radius)}.auth-form button.primary{padding:10px 14px;font-size:14px;font-weight:600;margin-top:4px}.auth-form button.primary:disabled{opacity:.6;cursor:progress}.auth-link{background:transparent;border:none;padding:4px 0;color:var(--muted);font-size:12px;cursor:pointer;font-family:inherit;text-align:center}.auth-link:hover{color:var(--accent-text);background:transparent;border:none}.auth-disclaimer{margin:22px 0 0;padding:10px 12px;font-size:11px;line-height:1.5;color:var(--muted-2);background:var(--panel-2);border:1px dashed var(--border-soft);border-radius:var(--radius)}.session-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border-soft);font-size:12px;color:var(--muted)}.session-pill .email{color:var(--text);font-weight:500}.session-pill button{background:transparent;border:none;padding:0;color:var(--muted);cursor:pointer;font-family:inherit;font-size:12px}.session-pill button:hover{color:var(--red-text);background:transparent;border:none}
