:root{--bg: #f4f6f9;--panel: #ffffff;--ink: #1f2933;--muted: #6b7785;--line: #dde3ea;--accent: #2f6fed;--accent-d: #1f56c4;--ok: #1f9d55;--warn: #b7791f;--danger: #d64545}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}.app{max-width:1200px;margin:0 auto;padding:16px}h1{font-size:20px;margin:0}h2{font-size:16px;margin:0 0 10px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}.muted{color:var(--muted);font-size:13px}button{font:inherit;padding:7px 12px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{background:var(--accent-d)}button.danger{color:var(--danger);border-color:#f0caca}button:disabled{opacity:.5;cursor:not-allowed}input,select{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff}input[type=number]{width:70px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:600}.tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.badge{font-size:11px;padding:1px 6px;border-radius:20px;background:#eef2f7;color:var(--muted)}.pill{font-size:12px;padding:2px 8px;border-radius:20px;border:1px solid var(--line)}.note{background:#fff8e6;border:1px solid #f3e1b0;color:#7a5b13;padding:10px 12px;border-radius:8px;font-size:13px}.ok{color:var(--ok)}.warn{color:var(--warn)}.err{color:var(--danger)}.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.col{min-width:200px;flex:0 0 200px;background:#fbfcfe;border:1px solid var(--line);border-radius:8px;padding:8px}.col h3{font-size:13px;margin:0 0 2px}.col.over{border-color:var(--accent);background:#eef4ff}.card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:5px 7px;margin-top:6px;font-size:12px;cursor:grab}.card.locked{border-left:3px solid var(--accent)}.metrics{display:flex;gap:18px;flex-wrap:wrap}.metric b{font-size:20px;display:block}.full{width:100%}.center{min-height:70vh;display:grid;place-items:center}
