:root{color:#e8e6df;font-synthesis:none;text-rendering:optimizelegibility;--bg:#11110f;--surface:#171715;--card:#1b1b18;--card-2:#20201c;--border:#2b2b27;--border-soft:#22221f;--text:#e8e6df;--text-2:#9a988f;--muted:#66645e;--dim:#4b4a45;--accent:#b89a61;--green:#719b78;--orange:#b98a55;--red:#a85d57;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;background:#11110f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;margin:0}body{min-width:320px;min-height:100dvh;overflow:hidden}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}button:active{opacity:.7}.app{background:var(--bg);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.content{flex:1;min-height:0;overflow:hidden}.screen{height:100%;padding:max(18px, env(safe-area-inset-top)) 20px 22px;overflow-y:auto}.screen.no-pad-x{flex-direction:column;padding-left:0;padding-right:0;display:flex;overflow:hidden}.topline{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.brand{letter-spacing:-.03em;font-size:24px;font-weight:760;line-height:1}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.dim{color:var(--dim)}.small{font-size:11px}.caption{color:var(--muted);font-size:11px}.divider{background:var(--border);height:1px;margin:17px 0}.section-title{color:var(--muted);margin-bottom:9px;font-size:11px}.status-line{color:var(--muted);margin-top:7px;font-size:13px}.dot{border-radius:999px;flex:none;width:6px;height:6px;display:inline-block}.dot.running{background:var(--green);box-shadow:0 0 5px #719b7873}.dot.failed{background:var(--red)}.dot.stopped{background:var(--muted)}.dot.restarting{background:var(--orange)}.metrics-grid{grid-template-columns:1fr 1fr;gap:10px 24px;display:grid}.metric-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.metric-k,.metric-v{font:11px var(--mono)}.metric-k{color:var(--muted)}.metric-v{color:var(--text-2)}.bar{background:#292923;height:2px;margin-top:4px;overflow:hidden}.bar>span{background:var(--green);height:100%;display:block}.service-list{flex-direction:column;gap:8px;display:flex}.service-row{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;display:flex}.service-left{align-items:center;gap:8px;min-width:0;display:flex}.service-name{font:12px var(--mono);color:var(--text-2)}.project-list{flex-direction:column;display:flex}.project-line{text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;border-bottom:1px solid #181816;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:9px 0;display:grid}.project-line:last-child{border-bottom:0}.project-name{color:#d5d2c9;font-size:14px;font-weight:600}.project-desc{color:var(--muted);margin-top:2px;font-size:11px}.project-meta{font:10px var(--mono);color:var(--muted);white-space:nowrap}.nav{background:var(--bg);padding-bottom:env(safe-area-inset-bottom,8px);border-top:1px solid #24241f;display:flex}.nav button{color:#595750;cursor:pointer;background:0 0;border:0;flex:1;padding:10px 0 8px;font-size:11px}.nav button.active{color:var(--accent)}.nav .glyph{margin-bottom:4px;font-size:16px;line-height:1;display:block}.projects-head{padding:max(18px, env(safe-area-inset-top)) 20px 10px}.search-row{align-items:flex-end;gap:8px;display:flex}.search{border:0;border-bottom:1px solid var(--border);color:var(--text);background:0 0;outline:none;flex:1;padding:8px 2px;font-size:13px}.search::placeholder{color:var(--dim)}.ghost-btn{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:0 0;border-radius:6px;padding:7px 9px;font-size:11px}.board-hint{color:var(--dim);font:10px var(--mono);justify-content:space-between;padding:4px 20px 9px;display:flex}.board{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;flex:1;gap:12px;min-height:0;padding:4px 20px 18px;scroll-padding-left:20px;display:flex;overflow:auto hidden}.column{scroll-snap-align:start;border-top:1px solid var(--border);flex-direction:column;width:min(310px,100vw - 64px);min-width:min(310px,100vw - 64px);height:100%;min-height:0;transition:all .12s;display:flex}.column.drop{background:#b89a6109;border-top-color:#8c7750}.column-head{flex:none;justify-content:space-between;align-items:center;height:42px;padding:0 2px;display:flex}.column-title{color:#c9c6bd;font-size:13px;font-weight:650}.column-count{font:10px var(--mono);color:var(--muted)}.column-body{flex:1;min-height:0;padding-bottom:10px;overflow-y:auto}.cards{flex-direction:column;gap:8px;display:flex}.card-wrap{position:relative}.kanban-card{text-align:left;background:var(--card);border:1px solid var(--border);width:100%;color:inherit;cursor:grab;border-radius:7px;padding:12px 38px 11px 12px}.kanban-card.dragging{opacity:.35;transform:scale(.985)}.card-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.card-title{color:var(--text);font-size:14px;font-weight:650}.card-status{font:10px var(--mono);color:#77746c;white-space:nowrap}.card-desc{color:#85827a;margin-top:3px;font-size:11px;line-height:1.45}.card-foot{font:10px var(--mono);color:#5f5d56;flex-wrap:wrap;align-items:center;gap:7px;margin-top:11px;display:flex}.more{width:28px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;position:absolute;top:7px;right:7px}.empty-col{color:var(--dim);padding:12px 4px;font-size:11px}.back{color:#85827a;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.detail-title{letter-spacing:-.025em;margin:0;font-size:26px}.detail-sub{color:#85827a;margin:4px 0 0;font-size:13px}.detail-meta{font:11px var(--mono);color:var(--muted);align-items:center;gap:8px;margin-top:8px;display:flex}.todo-list{flex-direction:column;gap:1px;display:flex}.todo{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:6px 0;display:flex}.check{border:1px solid #3a3934;border-radius:3px;flex:none;place-items:center;width:13px;height:13px;display:grid}.todo.done .check{color:var(--green);background:#719b781f;border-color:#719b784d}.todo-text{font:13px var(--mono);color:var(--text-2)}.todo.done .todo-text{color:var(--dim);text-decoration:line-through}.add-task{gap:8px;margin-top:6px;display:flex}.add-task input{border:0;border-bottom:1px solid var(--border);color:var(--text);background:0 0;outline:none;flex:1;padding:7px 0}.text-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0}.primary{color:#c4a86f;cursor:pointer;background:#b89a611a;border:1px solid #b89a6147;border-radius:8px;padding:10px 14px}.secondary{border:1px solid var(--border);color:#85827a;cursor:pointer;background:0 0;border-radius:8px;padding:10px 14px}.danger{color:var(--red);cursor:pointer;background:0 0;border:1px solid #a85d573d;border-radius:8px;padding:10px 14px}.actions{flex-wrap:wrap;gap:8px;display:flex}.repo-grid{grid-template-columns:88px 1fr;gap:6px 14px;font-size:12px;display:grid}.repo-grid .k{color:var(--muted)}.repo-grid .v{color:var(--text-2);font-family:var(--mono);overflow-wrap:anywhere}.sheet-backdrop{z-index:100;background:#0000008c;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-top:1px solid var(--border);padding:14px 20px max(20px, env(safe-area-inset-bottom));border-radius:14px 14px 0 0;flex-direction:column;max-height:78dvh;display:flex}.sheet-handle{background:#2a2a26;width:28px;height:2px;margin:0 auto 16px}.sheet-body{min-height:0;overflow:auto}.move-row{color:#aaa79e;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #252521;justify-content:space-between;gap:10px;width:100%;padding:11px 0;display:flex}.move-row.current{color:var(--accent)}.logs{white-space:pre-wrap;font:11px/1.55 var(--mono);color:#aaa79e;background:#0d0d0c;border:1px solid #252521;max-height:48dvh;padding:12px;overflow:auto}.output{white-space:pre-wrap;font:11px/1.5 var(--mono);color:#aaa79e;background:#0d0d0c;border:1px solid #252521;margin-top:10px;padding:10px}.error{color:#cf8a84;background:#a85d5714;border:1px solid #a85d5740;margin:10px 20px;padding:10px 12px;font-size:12px}.loading{height:100%;color:var(--muted);font:12px var(--mono);place-items:center;display:grid}@media (width>=800px){#root{max-width:1400px;margin:0 auto}.board{scroll-snap-type:none}.column{width:300px;min-width:300px}}
