:root{--bg: #0d1117;--bg-raised: #161b22;--bg-card: #1c2330;--bg-hover: #243044;--line: #2d3648;--text: #e6edf3;--muted: #8b9bb4;--accent: #3d9cf0;--accent-2: #2ea043;--danger: #f85149;--warn: #d29922;--hold: #f0883e;--radius: 12px;--shadow: 0 8px 24px rgba(0, 0, 0, .35);font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-raised);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{font-weight:700;letter-spacing:.02em;white-space:nowrap}.brand span{color:var(--accent)}.nav{display:flex;gap:8px;flex-wrap:wrap;flex:1}.nav a,.nav button.linkish{padding:6px 10px;border-radius:8px;color:var(--muted);background:none;border:0}.nav a.active,.nav a:hover{color:var(--text);background:var(--bg-hover)}.user-chip{color:var(--muted);font-size:13px;white-space:nowrap}.user-chip strong{color:var(--text);text-transform:capitalize}.page{padding:16px;flex:1}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-head h1{margin:0 0 4px;font-size:22px}.page-head p{margin:0;color:var(--muted);font-size:14px}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.page-head+.filters{margin:-4px 0 16px}.filters input,.filters select{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:160px}.btn{border:1px solid var(--line);background:var(--bg-card);border-radius:8px;padding:8px 12px}.btn:hover{background:var(--bg-hover)}.btn.primary{background:var(--accent);border-color:transparent;color:#061018;font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 10px}.field textarea{min-height:90px;resize:vertical}.grid-2,.grid-3{display:grid;gap:12px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(420px,100%);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.auth-card h1{margin:0 0 8px}.auth-card p{color:var(--muted);margin:0 0 20px}.stack{display:flex;flex-direction:column;gap:12px}.banner{background:#3d2914;color:#ffd8a8;border:1px solid #6b4a22;padding:10px 12px;border-radius:8px;margin-bottom:12px}.banner.error{background:#3d1515;color:#ffb4b0;border-color:#6b2a2a}.banner.ok{background:#16341f;color:#b4f0c4;border-color:#245c35}.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:16px;min-height:60vh}.column{flex:0 0 260px;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;max-height:calc(100vh - 150px)}.column-head{padding:10px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg-raised)}.column-head h2{margin:0;font-size:14px}.column-head small{color:var(--muted)}.column-body{padding:10px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:80px}.column.over{outline:2px dashed var(--accent)}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:10px;padding:10px;box-shadow:var(--shadow)}.card h3{margin:0 0 4px;font-size:14px}.card .meta{color:var(--muted);font-size:12px;line-height:1.4}.badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.badge{font-size:11px;padding:2px 6px;border-radius:999px;background:#243044;color:#c8d4e8}.badge.hold{background:#4a2c12;color:#ffc088}.badge.ok{background:#16341f;color:#9ee6b0}.badge.warn{background:#3d2914;color:#ffd8a8}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;background:var(--bg-raised)}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}tr:hover td{background:#ffffff05}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:16px;z-index:40}.modal{width:min(640px,100%);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:20px;max-height:calc(100vh - 32px);overflow:auto}.modal h2{margin:0 0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.detail{display:grid;gap:16px;max-width:920px}.panel{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.panel h2{margin:0 0 12px;font-size:16px}.history{list-style:none;padding:0;margin:0}.history li{padding:8px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}.role-tag{text-transform:capitalize;font-size:11px;padding:2px 6px;border-radius:6px;background:var(--bg-hover)}@media(max-width:720px){.grid-2,.grid-3{grid-template-columns:1fr}.user-chip{display:none}.column{flex-basis:84vw}.topbar{flex-wrap:wrap}}.drag-ghost{opacity:.4}
