*{box-sizing:border-box}body{margin:0;font:14px/1.4 ui-monospace,SF Mono,Menlo,Consolas,monospace;background:#14161a;color:#e6e6e6}#app{display:grid;grid-template-columns:1fr 380px;min-height:100vh}.board{padding:12px;display:flex;flex-direction:column;gap:10px}.topbar{display:flex;align-items:center;gap:12px;background:#1e2229;border:1px solid #333;border-radius:6px;padding:10px 12px}.topbar .turn{font-size:18px;font-weight:700}.topbar .spacer{flex:1}button{font:inherit;background:#2b323c;color:#e6e6e6;border:1px solid #4a545f;border-radius:4px;padding:6px 10px;cursor:pointer}button:hover:not(:disabled){background:#3a434f}button:disabled{opacity:.35;cursor:not-allowed}button.primary{background:#2f5d3a;border-color:#4b8c5e}button.danger{background:#6a2f2f;border-color:#a04d4d}.player{border:1px solid #333;border-radius:6px;background:#191c22;padding:10px}.player.active{border-color:#d8a13a;box-shadow:0 0 0 1px #d8a13a inset}.player h2{margin:0 0 8px;font-size:15px;display:flex;align-items:center;gap:10px}.hp{font-size:22px;font-weight:700}.hp.low{color:#ff6b6b}.badge{font-size:12px;padding:2px 7px;border-radius:10px;border:1px solid #4a545f;background:#232833}.badge.poison{border-color:#6aa84f;color:#a6e08a}.badge.retrigger{border-color:#b07ad8;color:#d8b6f2}.badge.turnflag{border-color:#d8a13a;color:#ffd479}.zones{display:flex;flex-wrap:wrap;gap:8px}.zone{border:1px dashed #3a4250;border-radius:5px;padding:6px 8px;min-width:92px;background:#15181e}.zone.wide{flex:1 1 100%}.zone .label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8b95a3;margin-bottom:5px}.zone .count{font-size:20px;font-weight:700}.cards{display:flex;flex-wrap:wrap;gap:5px;min-height:34px;align-items:flex-start}.card{border:1px solid #4a545f;border-radius:4px;background:#232833;padding:4px 7px;min-width:42px;text-align:center;font-size:15px}.card .eff{display:block;font-size:9px;color:#8b95a3;letter-spacing:.03em}.card.playable{cursor:pointer;border-color:#6d7a8a}.card.playable:hover{background:#303743}.card.selected{border-color:#d8a13a;background:#3b3320}.card.spades,.card.clubs{color:#dfe4ea}.card.hearts,.card.diamonds{color:#ff8686}.card img{display:block;max-width:100%;max-height:46px;margin:3px auto 0;border-radius:2px}.card.dim{opacity:.6}.card .marks{font-size:11px;color:#d8b6f2}.card.blessing{border-color:#b07ad8;background:#2a2333}.card .blessline{display:block;font-size:11px;font-weight:700;color:#e2c4f7}.card.blessed{box-shadow:0 0 0 1px #b07ad8 inset}.card .blessed-tag{display:block;font-size:10px;font-weight:700;color:#e2c4f7;background:#382b47;border-radius:2px;margin-top:2px;padding:1px 3px}.seat{border-color:#7a6bd8}.seat .hp{font-size:12px;color:#b9b0ee}.actionbar{border:1px solid #d8a13a;border-radius:5px;background:#241f14;padding:8px 10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.actionbar .what{font-weight:700}.hint{color:#8b95a3;font-size:12px}.log{border-left:1px solid #333;background:#101216;padding:10px;display:flex;flex-direction:column;min-height:100vh;max-height:100vh}.log h2{margin:0 0 8px;font-size:13px;text-transform:uppercase;color:#8b95a3}.log .entries{flex:1;overflow-y:auto;font-size:12px}.log .e{padding:2px 0;border-bottom:1px solid #1b1f26}.log .e.turnStart{color:#ffd479;font-weight:700;margin-top:6px}.log .e.damage{color:#ff9a9a}.log .e.heal{color:#9ae6a0}.log .e.poison{color:#a6e08a}.log .e.retrigger{color:#d8b6f2;font-weight:700}.log .e.gameOver{color:#ffd479;font-weight:700}.log .e.illegal{color:#ff6b6b}.log .e.warning{color:#ffb86b}.log .e.note,.log .e.zoneMove{color:#8b95a3}.banner{background:#2f5d3a;border:1px solid #4b8c5e;border-radius:6px;padding:10px 12px;font-size:16px;font-weight:700}#app:has(.setup){display:block}.setup{padding:12px;display:flex;flex-direction:column;gap:10px}.setup .topbar{flex-wrap:wrap}.columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.column{display:flex;flex-direction:column;gap:10px}.panel{border:1px solid #333;border-radius:6px;background:#191c22;padding:10px}.panel h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;color:#8b95a3;display:flex;align-items:center;gap:10px;justify-content:space-between}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:8px}.field{display:flex;flex-direction:column;gap:3px;font-size:12px}.field-label{color:#8b95a3;text-transform:uppercase;font-size:10px;letter-spacing:.06em}input,select,textarea{font:inherit;background:#14171d;color:#e6e6e6;border:1px solid #4a545f;border-radius:4px;padding:5px 7px}textarea.json{width:100%;font-size:11px}.sublabel{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#6d7a8a;margin:8px 0 4px}.suits{min-width:100%}.suitcheck{display:inline-flex;align-items:center;gap:4px;font-size:12px}.cardlist{display:flex;flex-direction:column;gap:4px;max-height:340px;overflow-y:auto;margin-bottom:6px}.libcard{display:flex;align-items:center;gap:8px;cursor:pointer;border:1px solid #333;border-radius:4px;padding:5px 8px;background:#15181e}.libcard:hover{background:#222731}.libcard.in-deck{border-color:#4b8c5e}.libcard .face{font-size:17px;min-width:38px}.libcard.hearts .face,.libcard.diamonds .face{color:#ff8686}.libcard .meta{flex:1;min-width:0}.libcard .nm{font-size:13px}.libcard .count{min-width:20px;text-align:center;font-weight:700}.libcard .warn{color:#ffb86b}.errors{border:1px solid #a04d4d;background:#2a1a1a;border-radius:4px;padding:6px 8px;font-size:12px;color:#ffb3b3}.card.benched{border-color:#6d7a8a}.card.targetable{outline:1px dashed #ff9a9a}.card.targetable:hover{background:#3a2a2a}.picks{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
