:root{--bg: #0e1116;--panel: #161b22;--panel-2: #1c2128;--border: #2a313c;--text: #e6edf3;--muted: #8b949e;--accent: #2f81f7;--accent-2: #1f6feb;--good: #2ea043;--warn: #d29922;--bad: #f85149;--radius: 8px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:16px;padding:0 18px;height:48px;background:#0b0e13;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.2px}.brand .logo{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#2f81f7,#56d364);display:grid;place-items:center;font-size:15px}.tabs{display:flex;gap:2px;margin-left:6px}.tab{padding:7px 14px;border-radius:6px;color:var(--muted);background:transparent;border:0;font-weight:600}.tab.on{color:var(--text);background:var(--panel-2)}.tab:hover{color:var(--text)}.spacer{flex:1}.pill{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.wrap{padding:18px 22px 60px}.row{display:flex;align-items:center;gap:10px}.spread{justify-content:space-between}.muted{color:var(--muted)}.h1{font-size:20px;font-weight:800;margin:0}.sub{color:var(--muted);margin:2px 0 0}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0 16px}select,input[type=text],input[type=number],textarea{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 9px}select:focus,input:focus,textarea:focus{outline:1px solid var(--accent)}.btn{background:var(--accent-2);color:#fff;border:0;padding:7px 13px;border-radius:6px;font-weight:600}.btn:hover{background:var(--accent)}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.ghost:hover{background:var(--panel-2)}.btn.sm{padding:4px 9px;font-size:12px}.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}.col{flex:0 0 270px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;max-height:78vh}.col-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);font-weight:700;position:sticky;top:0}.col-dot{width:9px;height:9px;border-radius:50%}.col-count{margin-left:auto;color:var(--muted);font-weight:600;font-size:12px}.col-body{padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:9px;flex:1}.col.drop{outline:2px dashed var(--accent);outline-offset:-4px}.card{background:var(--panel-2);border:1px solid var(--border);border-left-width:3px;border-radius:6px;padding:10px;cursor:grab}.card:hover{border-color:#3d4654}.card .t{font-weight:600;margin:2px 0 8px}.card .meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.chip{font-size:11px;padding:2px 7px;border-radius:999px;background:#20262e;border:1px solid var(--border);color:var(--muted)}.type{font-size:12px;display:inline-flex;align-items:center;gap:5px;font-weight:700}.pts{font-size:11px;font-weight:700;background:#20262e;border-radius:5px;padding:1px 6px}.assignee{width:22px;height:22px;border-radius:50%;background:var(--accent-2);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}.tree{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.trow{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border);background:var(--panel)}.trow:hover{background:var(--panel-2)}.trow.lvl1{padding-left:34px;background:#12161c}.trow.lvl2{padding-left:58px;background:#0f1318}.trow .ttl{font-weight:600}.statebadge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;color:#0b0e13}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100;display:flex;justify-content:flex-end}.panel{width:480px;max-width:92vw;height:100%;background:var(--panel);border-left:1px solid var(--border);padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}body.modal-open{overflow:hidden;touch-action:none}.field{margin:12px 0}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:600}.field select,.field input,.field textarea{width:100%}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.acard{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;border-top:3px solid}.bar{height:6px;border-radius:4px;background:#20262e;overflow:hidden;margin-top:8px}.bar>i{display:block;height:100%;background:var(--good)}.note{background:#11202e;border:1px solid #1b3148;color:#add2f5;padding:10px 12px;border-radius:8px;font-size:13px}@media (max-width: 760px){.topbar{height:auto;gap:8px;flex-wrap:wrap;align-items:center;padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left))}.topbar .spacer{display:none}.brand{font-size:15px}.tabs{order:3;width:100%;margin-left:0;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:4px;padding-bottom:2px}.tab{flex:0 0 auto;padding:8px 12px;font-size:13px}.pill{font-size:10.5px;padding:3px 7px}.btn.sm,.btn.ghost{padding:7px 10px}main{padding:12px calc(12px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))!important}.wrap{padding:12px 0 calc(24px + env(safe-area-inset-bottom))}.board{gap:10px;scroll-snap-type:x mandatory}.col{flex:0 0 88vw;max-height:none;scroll-snap-align:start}.col-body{max-height:62dvh}.grid2,.cards{grid-template-columns:1fr}.scrim{display:block}.panel{width:100vw;max-width:100vw;height:100%;height:100dvh;border-left:0;padding:calc(14px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.panel>.row.spread:first-child{position:sticky;top:calc(-1*env(safe-area-inset-top));margin:0 -2px 4px;padding:6px 2px 10px;background:var(--panel);z-index:2;border-bottom:1px solid var(--border)}.card{padding:12px}select,input[type=text],input[type=number],textarea{font-size:16px;padding:10px 11px}.btn{padding:10px 15px}}@media (max-width: 420px){.brand .logo{width:22px;height:22px}.col{flex-basis:90vw}}
