*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f13;--surface:#1a1a22;--surface-hover:#22222e;--border:#2a2a3a;--border-active:#4a4a6a;--text:#e0e0e8;--text-dim:#8888a0;--text-muted:#555568;--accent:#6c8aff;--accent-hover:#8aa4ff;--green:#4ade80;--red:#f87171;--yellow:#facc15;--orange:#fb923c;--radius:8px;--radius-sm:4px;--font-mono:"Berkeley Mono", "SF Mono", "JetBrains Mono", ui-monospace, monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--safe-bottom:env(safe-area-inset-bottom,0px)}html{-webkit-text-size-adjust:100%;font-size:15px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);height:100dvh;line-height:1.5;overflow:hidden}#root{height:100%}.app{flex-direction:column;height:100%;display:flex;overflow:hidden}.header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.header h1{font-family:var(--font-mono);letter-spacing:-.02em;font-size:1.1rem;font-weight:600}.header-actions{gap:8px;display:flex}.filters{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;gap:8px;padding:8px 16px;display:flex;overflow-x:auto}.filters select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans);text-overflow:ellipsis;min-width:0;max-width:180px;padding:6px 8px}.board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;flex:1;gap:0;padding:0;display:flex;overflow:auto hidden}.column{scroll-snap-align:center;border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex:0 0 85vw;min-height:0;transition:background .15s;display:flex}.column-drag-over{background:var(--surface)}.column-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.column-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);font-size:.85rem;font-weight:600}.column-count{font-family:var(--font-mono);color:var(--text-muted);background:var(--surface);border-radius:10px;padding:2px 8px;font-size:.75rem}.column-body{padding:8px;padding-bottom:calc(8px + var(--safe-bottom));flex-direction:column;flex:1;gap:6px;display:flex;overflow-y:auto}.column-empty{color:var(--text-muted);text-align:center;padding:24px 0;font-size:.8rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y;padding:10px 12px;transition:border-color .15s,transform .15s}.card:hover{border-color:var(--border-active)}.card:active{transform:scale(.98)}.card-swipe-right{border-color:var(--green);transform:translate(8px)}.card-swipe-left{border-color:var(--yellow);transform:translate(-8px)}.card-top{justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px;display:flex}.card-top-left{align-items:center;gap:6px;min-width:0;display:flex}.card-top-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.card-id{font-family:var(--font-mono);color:var(--text-muted);font-size:.7rem}.card-size{font-family:var(--font-mono);border-radius:3px;padding:1px 6px;font-size:.65rem;font-weight:700}.size-sm{color:var(--green);background:#4ade801a}.size-md{color:var(--yellow);background:#facc151a}.size-lg{color:var(--orange);background:#fb923c1a}.size-xl{color:var(--red);background:#f871711a}.card-title{align-items:flex-start;gap:6px;font-size:.85rem;font-weight:500;line-height:1.3;display:flex}.ready-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:4px;display:inline-block}.ready-yes{background:var(--green)}.ready-no{background:var(--red)}.card-actions{justify-content:flex-end;gap:4px;margin-top:6px;display:flex}.btn-move{background:var(--bg);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:2px 10px;font-size:.8rem;line-height:1.4;transition:color .15s,border-color .15s}.btn-move:hover{color:var(--accent);border-color:var(--accent)}.btn{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font-sans);cursor:pointer;padding:8px 16px;transition:border-color .15s}.btn:hover{border-color:var(--border-active)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:.78rem}.overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.detail-panel{background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:480px;max-height:90dvh;padding:16px;padding-bottom:calc(16px + var(--safe-bottom));flex-direction:column;gap:12px;display:flex;overflow-y:auto}.detail-header{justify-content:space-between;align-items:center;display:flex}.detail-id{font-family:var(--font-mono);color:var(--text-dim);font-size:.8rem}.btn-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.5rem;line-height:1}.btn-close:hover{color:var(--text)}.detail-title{cursor:pointer;border-bottom:1px dashed #0000;padding:4px 0;font-size:1.05rem;font-weight:600}.detail-title:hover{border-bottom-color:var(--border)}.detail-desc{color:var(--text-dim);white-space:pre-wrap;font-size:.85rem}.detail-wish{color:var(--text-muted);font-size:.78rem;font-family:var(--font-mono)}.detail-controls{gap:12px;display:flex}.detail-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;flex:1;gap:4px;font-size:.75rem;font-weight:600;display:flex}.detail-label select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font-sans);width:100%;padding:6px 8px}.detail-section{flex-direction:column;gap:6px;display:flex}.detail-section-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.detail-edge{font-family:var(--font-mono);color:var(--text-muted);padding:2px 0;font-size:.78rem}.detail-meta{color:var(--text-muted);border-top:1px solid var(--border);flex-direction:column;gap:2px;padding-top:8px;font-size:.72rem;display:flex}.detail-edit{flex-direction:column;gap:8px;display:flex}.detail-edit-actions{gap:8px;display:flex}.detail-loading{text-align:center;color:var(--text-dim);padding:32px}.input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font-sans);outline:none;width:100%;padding:8px 10px;transition:border-color .15s}.input:focus{border-color:var(--accent)}.textarea{resize:vertical;min-height:48px}.form-group{flex-direction:column;gap:2px;display:flex}.form-row{gap:12px;display:flex}.form-actions{gap:8px;padding-top:4px;display:flex}.form-error{color:var(--red);border-radius:var(--radius-sm);background:#f871711a;padding:8px 10px;font-size:.82rem}.wish-select-row{align-items:stretch;gap:6px;display:flex}.wish-select-row select,.wish-select-row .input{flex:1;min-width:0}.log-input{gap:6px;display:flex}.log-input .input{flex:1}.log-entries{flex-direction:column;gap:4px;max-height:200px;display:flex;overflow-y:auto}.log-entry{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:4px 0;font-size:.78rem;display:flex}.log-time{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;font-size:.7rem}.log-content{flex:1;min-width:0}.log-source{font-family:var(--font-mono);color:var(--text-muted);font-size:.68rem}.log-status_change .log-content{color:var(--accent)}.log-validation .log-content{color:var(--yellow)}.log-empty{color:var(--text-muted);text-align:center;padding:8px 0;font-size:.78rem}.card-kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em;border-radius:3px;padding:1px 5px;font-size:.6rem;font-weight:600}.kind-bug{color:var(--red);background:#f871711f}.kind-idea{color:var(--accent);background:#6c8aff1f}.kind-improvement{color:var(--green);background:#4ade801f}.kind-chore{color:var(--text-dim);background:#8888a01f}.card-tags{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.card-tag{font-family:var(--font-mono);color:var(--text-muted);background:#8888a01a;border-radius:3px;padding:1px 5px;font-size:.6rem}.detail-header-left{align-items:center;gap:8px;display:flex}.detail-badge{font-family:var(--font-mono);text-transform:uppercase;border-radius:3px;padding:1px 6px;font-size:.65rem;font-weight:600}.detail-source{color:var(--text-muted);background:#8888a01a}.detail-repo{font-family:var(--font-mono);color:var(--text-muted);font-size:.75rem}.detail-tags{flex-wrap:wrap;gap:4px;display:flex}.detail-section-header{justify-content:space-between;align-items:center;display:flex}.detail-edge{font-family:var(--font-mono);color:var(--text-muted);justify-content:space-between;align-items:center;padding:2px 0;font-size:.78rem;display:flex}.detail-edge-empty{color:var(--text-muted);font-size:.75rem}.btn-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1rem;line-height:1}.btn-remove:hover{color:var(--red)}.dep-search{flex-direction:column;gap:4px;display:flex}.dep-results{flex-direction:column;gap:2px;max-height:160px;display:flex;overflow-y:auto}.dep-result{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;text-align:left;align-items:center;gap:8px;padding:6px 8px;display:flex}.dep-result:hover{border-color:var(--accent)}.dep-result-id{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;font-size:.7rem}.dep-result-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.8rem;overflow:hidden}.nav-tabs{gap:2px;display:flex}.nav-tab{color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px 12px;font-size:.78rem;transition:color .15s,background .15s}.nav-tab:hover{color:var(--text);background:var(--surface-hover)}.nav-tab-active{color:var(--accent);background:#6c8aff1a}.view-container{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.view-header{justify-content:space-between;align-items:center;display:flex}.view-header h2{font-family:var(--font-mono);font-size:1rem;font-weight:600}.view-filters{gap:8px;display:flex}.view-filters select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans);padding:6px 8px}.view-empty{color:var(--text-muted);text-align:center;padding:32px;font-size:.85rem}.inline-create{align-items:center;gap:8px;display:flex}.inline-create .input{flex:1}.inline-create select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;font-family:var(--font-sans);padding:6px 8px}.wish-list{flex-direction:column;gap:4px;display:flex}.wish-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;flex-direction:column;gap:4px;width:100%;padding:10px 12px;transition:border-color .15s;display:flex}.wish-row:hover{border-color:var(--border-active)}.wish-row-active{border-color:var(--accent)}.wish-row-top{align-items:center;gap:8px;display:flex}.wish-row-id{font-family:var(--font-mono);color:var(--text-muted);font-size:.7rem}.wish-row-title{font-size:.9rem;font-weight:500}.wish-row-meta{align-items:center;gap:8px;display:flex}.wish-row-tags{gap:3px;display:flex}.wish-row-date{color:var(--text-muted);margin-left:auto;font-size:.7rem}.wish-status{font-family:var(--font-mono);text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:.6rem;font-weight:600}.wish-status-open{color:var(--green);background:#4ade801f}.wish-status-promoted{color:var(--accent);background:#6c8aff1f}.wish-status-closed{color:var(--text-muted);background:#8888a01f}.wish-tasks{flex-direction:column;gap:4px;display:flex}.wish-task-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:4px 0;font-size:.82rem;display:flex}.wish-task-status{font-family:var(--font-mono);text-transform:uppercase;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:.65rem;font-weight:600}.status-backlog{color:var(--text-dim);background:#8888a01a}.status-in-progress{color:var(--accent);background:#6c8aff1a}.status-review{color:var(--yellow);background:#facc151a}.status-done{color:var(--green);background:#4ade801a}.wish-task-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.detail-title-static{padding:4px 0;font-size:1.05rem;font-weight:600}.btn-danger{color:var(--red);border-radius:var(--radius-sm);font-size:.85rem;font-family:var(--font-sans);cursor:pointer;background:#f871711a;border:1px solid #f871714d;padding:8px 16px;transition:background .15s}.btn-danger:hover{background:#f8717133}.milestone-list{flex-direction:column;gap:4px;display:flex}.milestone-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;flex-direction:column;gap:4px;width:100%;padding:10px 12px;transition:border-color .15s;display:flex}.milestone-row:hover{border-color:var(--border-active)}.milestone-row-active{border-color:var(--accent)}.milestone-row-top{justify-content:space-between;align-items:center;display:flex}.milestone-row-name{font-size:.9rem;font-weight:500}.milestone-row-due{color:var(--text-dim);font-size:.75rem}.milestone-days{color:var(--orange)}.milestone-due-detail{color:var(--text-dim);font-size:.82rem}.milestone-progress{flex-direction:column;gap:4px;display:flex}.milestone-progress-bar{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.milestone-progress-fill{background:var(--green);border-radius:3px;height:100%;transition:width .3s}.milestone-progress-text{font-family:var(--font-mono);color:var(--text-dim);font-size:.72rem}.dash-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:12px}.dash-card-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.72rem;font-weight:600}.dash-card-value{font-family:var(--font-mono);font-size:1.5rem;font-weight:700}.dash-section{flex-direction:column;gap:8px;display:flex}.dash-section-title{font-family:var(--font-mono);color:var(--text-dim);font-size:.82rem;font-weight:600}.dash-status-bars{flex-direction:column;gap:6px;display:flex}.dash-status-row{align-items:center;gap:8px;display:flex}.dash-status-label{color:var(--text-dim);flex-shrink:0;width:80px;font-size:.78rem}.dash-bar-track{background:var(--border);border-radius:4px;flex:1;height:8px;overflow:hidden}.dash-bar-fill{border-radius:4px;height:100%;transition:width .3s}.status-bar-backlog{background:var(--text-dim)}.status-bar-in-progress{background:var(--accent)}.status-bar-review{background:var(--yellow)}.status-bar-done{background:var(--green)}.dash-status-count{font-family:var(--font-mono);color:var(--text-muted);text-align:right;width:30px;font-size:.75rem}.dash-milestone-row{flex-direction:column;gap:4px;display:flex}.dash-milestone-info{justify-content:space-between;align-items:center;display:flex}.dash-milestone-name{font-size:.82rem;font-weight:500}.dash-milestone-progress{font-family:var(--font-mono);color:var(--text-dim);font-size:.72rem}.dash-activity{flex-direction:column;gap:4px;max-height:300px;display:flex;overflow-y:auto}@media (width>=768px){.column{scroll-snap-align:none;flex:1 1 0;min-width:0}.board{scroll-snap-type:none}.overlay{align-items:center}.detail-panel{border-radius:var(--radius);max-height:80dvh}.filters select{max-width:240px}.dash-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=1024px){.detail-panel{max-width:560px}}
