:root{--bg: #f5f1eb;--surface: #faf7f2;--panel: #ffffff;--text: #28282c;--muted: #6b6760;--border: #e8e2d8;--accent: #e8a4b5;--accent-hover: #d98fa3;--on-accent: #28282c;--success: #4f7d57;--success-bg: #e5efe5;--warning: #8b6d2f;--warning-bg: #f7edcf;--danger: #c75a4a;--danger-bg: #f7e4df;--shadow: 0 1px 2px rgba(40, 40, 44, .04), 0 4px 16px rgba(40, 40, 44, .05);--radius: 12px;--font: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, monospace}[data-theme=dark]{--bg: #1a1a1d;--surface: #242428;--panel: #242428;--text: #f0ede6;--muted: #9a958c;--border: #3a3a40;--accent: #facdd7;--accent-hover: #f5b8c5;--on-accent: #28282c;--success: #a9d2af;--success-bg: #243127;--warning: #e8cf8e;--warning-bg: #332d1d;--danger: #e8a09a;--danger-bg: #3a2525;--shadow: 0 1px 2px rgba(0, 0, 0, .25), 0 6px 20px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:15px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-weight:550;white-space:nowrap;transition:background .12s,border-color .12s,transform .05s}.btn:hover{border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:var(--danger-bg)}.btn.sm{height:30px;padding:0 11px;font-size:13px}.btn:disabled{opacity:.45;cursor:not-allowed}.input,.select,.textarea{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.textarea{resize:vertical;min-height:78px}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:12.5px;color:var(--muted);margin-bottom:5px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:14px;padding:0 18px;height:58px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.brand{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.01em}.brand .mark{width:26px;height:26px;border-radius:7px;background:var(--accent);display:grid;place-items:center;color:var(--on-accent);font-size:14px;font-weight:800}.topbar .spacer{flex:1}.board-select{display:flex;align-items:center;gap:8px}.muted{color:var(--muted)}.stat-pills{display:flex;gap:6px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:12.5px;color:var(--muted)}.pill b{color:var(--text)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.toolbar .search{flex:1;min-width:180px;max-width:360px}.toolbar .select{width:auto;min-width:130px}.board{display:flex;gap:14px;padding:16px 18px;overflow-x:auto;flex:1;align-items:flex-start}.column{flex:0 0 290px;width:290px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;max-height:100%}.column.drop-ok{outline:2px dashed var(--accent);outline-offset:-3px}.column.drop-no{opacity:.55}.col-head{display:flex;align-items:center;gap:8px;padding:11px 13px;border-bottom:1px solid var(--border);position:sticky;top:0}.col-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.col-dot.triage{background:#b08cd9}.col-dot.todo{background:var(--muted)}.col-dot.ready{background:var(--success)}.col-dot.running{background:var(--accent)}.col-dot.review{background:var(--warning)}.col-dot.blocked{background:var(--danger)}.col-dot.done{background:var(--success)}.col-head .count{margin-left:auto;font-size:12px;color:var(--muted)}.col-body{padding:9px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:36px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 11px;box-shadow:var(--shadow);cursor:grab;transition:border-color .12s}.card:hover{border-color:var(--accent)}.card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.card.dragging{opacity:.4}.card .title{font-weight:560;font-size:14px;margin-bottom:6px}.card .meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}.card .badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;background:var(--surface);border:1px solid var(--border)}.card .id{font-family:var(--mono);font-size:11px}.card .chk{margin-right:4px}.drawer-scrim{position:fixed;inset:0;background:#00000059;z-index:40}.drawer{position:fixed;top:0;right:0;height:100%;width:min(560px,96vw);z-index:41;background:var(--bg);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:-8px 0 32px #0000002e}.drawer header,.modal header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.drawer header .id{font-family:var(--mono);font-size:13px;color:var(--muted)}.drawer .body{padding:16px 18px;overflow-y:auto;flex:1}.drawer h3{margin:18px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.actions-row{display:flex;flex-wrap:wrap;gap:7px}.kv{display:grid;grid-template-columns:120px 1fr;gap:4px 10px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0}.thread{display:flex;flex-direction:column;gap:9px}.note{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:9px 11px;font-size:13.5px}.note .who{font-size:11.5px;color:var(--muted);margin-bottom:3px}pre.log{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:11px;font-family:var(--mono);font-size:12px;white-space:pre-wrap;overflow-x:auto;max-height:320px;overflow-y:auto}.modal-scrim{position:fixed;inset:0;background:#0006;z-index:50;display:grid;place-items:center;padding:20px}.modal{background:var(--bg);border:1px solid var(--border);border-radius:16px;width:min(560px,96vw);max-height:92vh;display:flex;flex-direction:column;box-shadow:var(--shadow)}.modal .body{padding:16px 18px;overflow-y:auto}.modal footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border)}.row{display:flex;gap:10px}.row>*{flex:1}.bulkbar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel);border:1px solid var(--accent);border-radius:999px;box-shadow:var(--shadow)}.login-wrap{height:100%;display:grid;place-items:center}.login-card{width:min(380px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:26px;box-shadow:var(--shadow)}.login-card h1{margin:0 0 4px;font-size:20px}.login-card .sub{color:var(--muted);margin-bottom:18px;font-size:14px}.toast{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:60;padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);font-size:14px;max-width:90vw}.toast.err{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger)}.toast.ok{background:var(--success-bg);color:var(--success);border:1px solid var(--success)}.spin{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:r .7s linear infinite}@keyframes r{to{transform:rotate(360deg)}}.center-msg{display:grid;place-items:center;gap:10px;flex:1;color:var(--muted)}.view-tabs{display:flex;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:3px}.view-tabs button{border:none;background:transparent;color:var(--muted);height:30px;padding:0 14px;border-radius:999px;font-weight:550}.view-tabs button.active{background:var(--accent);color:var(--on-accent)}.badge.ok{background:var(--success-bg);color:var(--success);border-color:var(--success)}.split{display:flex;flex:1;overflow:hidden}.split-list{width:290px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);overflow-y:auto;display:flex;flex-direction:column}.split-head{display:flex;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}.split-head .count{margin-left:auto;color:var(--muted);font-size:12px}.list-row{display:flex;align-items:center;gap:8px;padding:10px 14px;border:none;border-bottom:1px solid var(--border);background:transparent;width:100%;text-align:left}.list-row:hover{background:var(--panel)}.list-row.active{background:var(--panel);box-shadow:inset 3px 0 0 var(--accent)}.list-row .dot-active{color:var(--accent);width:12px}.list-row .muted{margin-left:auto;font-size:12px}.create-box{margin-top:auto;padding:14px;border-top:1px solid var(--border)}.split-body{flex:1;overflow-y:auto;display:flex}.editor{padding:18px 22px;width:100%;max-width:720px}.editor-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.editor-head h2{margin:0}.editor h3{margin:18px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.editor .textarea{margin-bottom:8px}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:7px}.tool{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-size:13px}.tool.on{border-color:var(--accent)}.tool.highlight{box-shadow:inset 0 0 0 1px var(--accent)}.tool .muted{margin-left:auto;font-size:11px}.page{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:16px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;max-width:860px}.panel h2{margin:0 0 14px;font-size:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px;margin-bottom:12px}
