:root{--bg:#0f1115;--panel:#161a23;--panel-2:#1f2533;--ink:#e8ecf3;--muted:#8a93a6;--accent:#60a5fa;--accent-2:#34d399;--danger:#f87171;--rule:#2a3142}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button{cursor:pointer}button,input,textarea{font:inherit}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--rule);background:var(--panel)}.topbar h1{margin:0;font-size:16px;letter-spacing:.02em}.topbar form{display:flex;gap:8px;flex:1 1;max-width:720px}.topbar input[type=url]{flex:1 1;padding:8px 10px;background:var(--panel-2);border:1px solid var(--rule);color:var(--ink);border-radius:6px}.topbar button{padding:8px 14px;background:var(--accent);color:#061427;border:0;border-radius:6px;font-weight:600}.topbar button.secondary{background:var(--panel-2);color:var(--ink);border:1px solid var(--rule)}.board{flex:1 1;display:grid;grid-template-columns:repeat(6,1fr);grid-gap:12px;gap:12px;padding:12px;overflow-x:auto}.column{background:var(--panel);border:1px solid var(--rule);border-radius:8px;display:flex;flex-direction:column;min-height:200px}.column.over{outline:2px dashed var(--accent)}.column header{padding:10px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--rule);display:flex;justify-content:space-between}.column .body{padding:8px;display:flex;flex-direction:column;gap:8px}.card{background:var(--panel-2);border:1px solid var(--rule);border-radius:6px;padding:10px;cursor:-webkit-grab;cursor:grab}.card:active{cursor:-webkit-grabbing;cursor:grabbing}.card h3{margin:0 0 4px;font-size:14px}.card .meta{color:var(--muted);font-size:12px;margin-bottom:6px}.card .row{display:flex;gap:6px;flex-wrap:wrap}.card button{padding:4px 8px;background:transparent;border:1px solid var(--rule);color:var(--ink);border-radius:4px;font-size:12px}.card button.primary{background:var(--accent-2);color:#062018;border-color:var(--accent-2);font-weight:600}.card button.danger{color:var(--danger);border-color:var(--danger)}.card a{color:var(--accent);font-size:12px}.badge{display:inline-block;padding:1px 6px;font-size:10px;border-radius:999px;background:var(--panel);border:1px solid var(--rule);margin-right:4px}.badge,.empty{color:var(--muted)}.empty{font-size:12px;padding:12px;text-align:center}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:16px;min-width:420px;max-width:600px}.modal h2{margin-top:0}.modal label{display:block;font-size:12px;color:var(--muted);margin-top:8px}.modal input,.modal textarea{width:100%;padding:8px;background:var(--panel-2);border:1px solid var(--rule);color:var(--ink);border-radius:6px}.modal textarea{min-height:120px}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.toast{position:fixed;bottom:16px;right:16px;background:var(--panel-2);border:1px solid var(--rule);padding:10px 14px;border-radius:6px;font-size:13px;z-index:100}.toast.err{border-color:var(--danger);color:var(--danger)}.toast.ok{border-color:var(--accent-2);color:var(--accent-2)}