:root { --bg: #f6f7f9; --card: #fff; --ink: #15171c; --muted: #6b7280; --line: #e5e7eb; --accent: #2563eb; --drop: #dbeafe; color-scheme: light dark; }
@media (prefers-color-scheme: dark) { :root { --bg: #0f1115; --card: #181b21; --ink: #e8eaed; --muted: #9aa0a6; --line: #2a2e37; --accent: #60a5fa; --drop: #1e3a5f; } }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; font: 14px/1.45 system-ui, sans-serif; background: var(--bg); color: var(--ink); }
main { padding: 16px; max-width: 1400px; margin: 0 auto; }
#login { max-width: 320px; display: grid; gap: 8px; margin-top: 10vh; }
h1 { font-size: 18px; margin: 0; }
h2 { font-size: 14px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin: 24px 0 8px; }
h3 { font-size: 14px; margin: 12px 0 6px; }
input, select, button, textarea { font: inherit; padding: 6px 10px; border-radius: 8px; border: 1px solid var(--line); background: var(--card); color: var(--ink); }
button { background: var(--accent); color: #fff; border: 0; cursor: pointer; }
button.ghost { background: transparent; color: var(--muted); border: 1px solid var(--line); }
.bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.grow { flex: 1; }
.muted { color: var(--muted); font-size: 13px; }
.lane { display: flex; gap: 10px; flex-wrap: wrap; min-height: 90px; padding: 8px; border: 1px dashed var(--line); border-radius: 10px; }
.lane.over { background: var(--drop); }
.card { width: 220px; background: var(--card); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.card[draggable="true"] { cursor: grab; }
.card .thumb { display: block; aspect-ratio: 16/9; background: #222 center/cover; }
.card .meta { padding: 8px; display: grid; gap: 4px; font-size: 12px; }
.card .title { font-weight: 600; font-size: 13px; }
.chip { display: inline-block; padding: 1px 6px; border-radius: 6px; background: var(--bg); font: 11px ui-monospace, monospace; margin-right: 4px; }
.chip.cut { background: #fee2e2; color: #991b1b; }
.status-done { opacity: .55; }
dialog { width: min(720px, 92vw); border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--ink); }
dialog textarea { width: 100%; font: 12px ui-monospace, monospace; }
.row { display: flex; gap: 8px; align-items: center; }
@media (max-width: 600px) { .card { width: 100%; } }
