
:root{--bg:#17120e;--panel:#241b14;--paper:#ead7ad;--ink:#1a120c;--gold:#c59b51;--red:#7b211c;--line:#5b442d;--muted:#b8a484}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at top,#2a1e14,#120e0b 70%);color:var(--paper);font-family:Georgia,serif}
header{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;background:#0e0a07;border-bottom:2px solid var(--gold);position:sticky;top:0;z-index:10}
h1{margin:0;letter-spacing:2px} header p{margin:3px 0;color:var(--muted)}
main{max-width:1500px;margin:auto;padding:14px}
button{background:#38281b;color:var(--paper);border:1px solid var(--gold);border-radius:8px;padding:9px 12px;font-weight:700;cursor:pointer}
button:hover{filter:brightness(1.15)}
.primary{background:var(--red);font-size:1rem}
.panel{background:rgba(36,27,20,.96);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:0 8px 24px #0007}
.hidden{display:none}
.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.deck-list{min-height:65px;border:1px dashed var(--line);padding:8px;margin:8px 0}
.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:14px 0}
.catalog-card,.card{background:linear-gradient(145deg,#ecdcb8,#c9a873);color:var(--ink);border:1px solid var(--gold);border-radius:10px;padding:8px}
.catalog-card{min-height:128px;cursor:pointer}
.catalog-card.p1{outline:4px solid #4d7cff}
.catalog-card.p2{box-shadow:inset 0 0 0 4px #f25b5b}
.stats{display:flex;justify-content:space-between;font-size:1.15rem;font-weight:700}
.classes{font-size:.72rem;font-weight:700;color:#5c321b}
.ability-name{font-weight:700;color:var(--red);margin-top:5px}
.ability{font-size:.81rem;line-height:1.22}
.hand{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px}
.card{width:175px;min-width:175px;min-height:168px;cursor:pointer}
.card.selected{outline:4px solid #fff}
.locations{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.location{background:#120e0b;border:2px solid var(--gold);border-radius:12px;padding:8px;min-height:420px}
.location h3{text-align:center;margin:4px}
.location-text{min-height:42px;text-align:center;font-size:.8rem;color:var(--muted)}
.slot-row{display:grid;grid-template-columns:1fr 1fr;gap:5px;min-height:140px}
.mini{background:#dec495;color:var(--ink);border:1px solid #9b733e;border-radius:7px;padding:5px;cursor:pointer}
.mini.marked{outline:3px solid #d22}
.mini.armor::after{content:" · ARMOR";color:#175d79;font-weight:700}
.total{text-align:center;font-weight:700;font-size:1.15rem;padding:5px}
.topbar,.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#log{max-height:350px;overflow:auto;background:#0b0806;padding:10px;border-radius:8px;white-space:pre-wrap}
@media(max-width:900px){.setup-grid,.locations{grid-template-columns:1fr}.location{min-height:330px}.card{width:150px;min-width:150px}}

.privacy{text-align:center;border:2px solid var(--gold)}
.queue-summary{margin:10px 0;color:var(--muted)}
.queued-chip{display:inline-block;padding:4px 7px;border:1px solid var(--gold);border-radius:999px;margin:2px;background:#15100c}
.face-down{background:repeating-linear-gradient(45deg,#2a1c12,#2a1c12 8px,#3a281a 8px,#3a281a 16px);color:var(--paper);border:1px solid var(--gold);border-radius:7px;padding:8px;text-align:center}
.modal{position:fixed;inset:0;background:#000b;display:flex;align-items:center;justify-content:center;z-index:50}
.modal.hidden{display:none}
.modal-card{width:min(560px,92vw);max-height:80vh;overflow:auto;background:#241b14;border:2px solid var(--gold);border-radius:14px;padding:18px}
.choice-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.choice-options button{min-height:70px}
