:root{--bg:#12151c;--panel:#1b2029;--panel-2:#232a35;--border:#2f3846;--text:#e6e9ef;--muted:#8b95a7;--accent:#5b8def;--accent-2:#3d6fd6;--danger:#e05d5d;--ok:#4cc38a;--warn:#e0a84c;--felt:#1d3a2c;--felt-mine:#214432;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;overflow:hidden}#root{height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 8px}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}h1 a{color:var(--text)}button,.button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);cursor:pointer;font:inherit;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;display:inline-flex}button:hover:not(:disabled),.button:hover{border-color:var(--accent);text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.button.primary{background:var(--accent-2);border-color:var(--accent)}button.danger{color:var(--danger)}button.link{color:var(--accent);background:0 0;border:none;padding:0}button.tiny{border-radius:4px;padding:1px 6px;font-size:12px}input,select,textarea{color:var(--text);border:1px solid var(--border);font:inherit;background:#0e1117;border-radius:6px;padding:6px 8px}textarea{resize:vertical;font-family:ui-monospace,Consolas,monospace;font-size:12px}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--danger)}.ok{color:var(--ok)}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.spread{justify-content:space-between}.center{justify-content:center;align-items:center;display:flex}.tag{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:11px}.tag.warn{color:var(--warn)}.page{height:100vh;padding:16px 24px;overflow:auto}.page.center{justify-content:center;align-items:center;display:flex}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px}.form{flex-direction:column;gap:10px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.form label.row{color:var(--text);flex-direction:row}.signin{flex-direction:column;gap:10px;width:340px;display:flex}.topbar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.topbar nav{align-items:center;gap:14px;display:flex}.home-grid{grid-template-columns:1fr 360px;align-items:start;gap:16px;display:grid}.room-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.room-list li{background:var(--panel-2);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.decks-grid{grid-template-columns:260px 380px 1fr;align-items:start;gap:16px;display:grid}.deck-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.deck-list li{cursor:pointer;border-radius:6px;flex-direction:column;padding:8px 10px;display:flex}.deck-list li:hover,.deck-list li.active{background:var(--panel-2)}.deck-view{flex-direction:column;gap:10px;max-height:calc(100vh - 100px);display:flex;overflow:auto}.deck-entries{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.deck-entry{grid-template-columns:28px 1fr auto auto;align-items:center;gap:8px;display:grid}.deck-entry img{border-radius:2px;width:28px}.warning-box{background:#3a2e1a;border:1px solid #6b5326;border-radius:8px;padding:8px 12px;font-size:12px}.warning-box ul,.warnings{color:var(--warn);margin:4px 0 0;padding-left:18px}.pregame-grid{grid-template-columns:1fr 340px 340px;align-items:start;gap:16px;display:grid}.player-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.player-list li{background:var(--panel-2);border-radius:8px;padding:10px 12px}.banner{background:var(--warn);color:#111;z-index:5000;border-radius:6px;padding:6px 16px;font-weight:600;position:fixed;top:8px;left:50%;transform:translate(-50%)}.target-banner{background:var(--accent);color:#fff}.table{-webkit-user-select:none;user-select:none;grid-template-columns:1fr 300px;height:100vh;display:grid}.board{flex-direction:column;gap:4px;min-width:0;min-height:0;padding:4px;display:flex}.opponents{flex:0 0 40%;gap:4px;min-height:0;display:grid}.opponents.count-1{grid-template-columns:1fr}.opponents.count-2{grid-template-columns:1fr 1fr}.opponents.count-3{grid-template-columns:1fr 1fr 1fr}.opponents.count-4,.opponents.count-5{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr}.player-area{border:1px solid var(--border);border-radius:8px;flex-direction:column;min-height:0;display:flex;overflow:hidden;container-type:inline-size}.player-area.me{flex:1}.opponent-body{flex:1;min-height:0;display:flex}.player-header{background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px;min-height:32px;padding:4px 8px;display:flex}.player-header.active{box-shadow:inset 0 -2px 0 var(--accent)}.player-header.conceded{opacity:.5}.player-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot.on{background:var(--ok)}.dot.off{background:var(--danger)}.stat{background:var(--panel-2);border-radius:6px;align-items:center;gap:4px;padding:1px 6px;display:inline-flex}.stat.life b{text-align:center;min-width:28px;font-size:18px}.stat.poison b{color:#8fd36a}.stat.lethal{color:var(--danger)}.cmdr-damage{flex-wrap:wrap;gap:4px;display:inline-flex}.battlefield{background:radial-gradient(ellipse at center, #24493a 0%, var(--felt) 75%);flex:1;min-height:0;position:relative;overflow:hidden}.battlefield.mine{background:radial-gradient(ellipse at center, #29513f 0%, var(--felt-mine) 75%)}.battlefield.targeting .card{cursor:crosshair}.tray{background:#161b23;flex:none;gap:6px;height:150px;padding:4px;display:flex}.hand{--cw:92px;--ch:128px;flex:1;align-items:center;min-width:0;padding:4px 8px;display:flex;overflow:auto hidden}.hand .card{flex:none;margin-right:-26px;transition:transform .1s;position:relative}.hand .card:hover{z-index:10;transform:translateY(-10px)}.hand-empty{margin:auto}.piles{flex:none;align-items:stretch;gap:6px;display:flex}.piles.compact{background:#161b23;grid-template-columns:repeat(2,50px);align-content:start;gap:4px;padding:4px;display:grid;overflow:hidden}.pile{cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;width:84px;padding:2px;display:flex;position:relative}.piles.compact .pile{width:50px}.pile:hover{background:var(--panel-2)}.pile img,.pile .card-back,.pile .pile-empty{aspect-ratio:.716;object-fit:cover;border-radius:4.75%/3.5%;width:100%}.pile-empty{border:1px dashed var(--border)}.pile-label{color:var(--muted);white-space:nowrap;font-size:11px}.piles.compact .pile-label{font-size:9px}.command-zone{--cw:60px;--ch:84px;border:1px dashed #5d4b8a;border-radius:6px;justify-content:center;align-items:center;gap:4px;min-width:84px;padding:4px;display:flex}.piles.compact .command-zone{--cw:42px;--ch:59px;flex-direction:column;width:50px;min-width:0;padding:2px}.command-zone .card{position:relative}@container (width<=820px){.tray{height:118px}.tray .pile{width:58px}.tray .command-zone{--cw:48px;--ch:67px;min-width:58px}.hand{--cw:72px;--ch:100px}.hand .card{margin-right:-30px}}@container (width<=560px){.tray .pile{width:44px}.tray .pile-label{font-size:9px}.tray .command-zone{--cw:38px;--ch:53px;min-width:44px}.hand{min-width:110px}}@media (width<=1100px){.table{grid-template-columns:1fr 240px}}.card{width:var(--cw,100px);height:var(--ch,140px);cursor:grab;transform-origin:50%;touch-action:none;border-radius:4.75%/3.5%;transition:transform .12s}.card img,.card .card-back{border-radius:inherit;object-fit:cover;pointer-events:none;width:100%;height:100%;display:block;box-shadow:0 1px 4px #0009}.card.tapped{transform:rotate(90deg)}.card.dragging{opacity:.3}.card.face-down img{filter:brightness(.55)}.card.linked{outline:2px dashed #b089ff}.card.targetable:hover{outline:2px solid var(--accent)}.card:hover img{box-shadow:0 0 0 2px #5b8defb3,0 2px 8px #0009}.card-back{background:repeating-linear-gradient(45deg,#3b2a1a 0 6px,#4a3420 6px 12px);border:3px solid #1a120a}.badges{pointer-events:none;gap:2px;display:flex;position:absolute;top:4%;left:4%}.badge{text-transform:uppercase;background:#000000bf;border-radius:3px;padding:0 4px;font-size:9px}.badge.commander{color:#c9a8ff}.badge.token{color:#9fd0ff}.counters{flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.card.tapped .counters{transform:translate(-50%)rotate(-90deg)}.counter{white-space:nowrap;cursor:pointer;background:#0a0a0ad9;border:1px solid #888;border-radius:10px;padding:0 6px;font-size:12px;font-weight:700}.counter.plus{border-color:var(--ok);color:#9ef0c4}.counter.minus{border-color:var(--danger);color:#f3a0a0}.die{z-index:5000;color:#111;cursor:grab;touch-action:none;background:#f1f1f1;border-radius:6px;justify-content:center;align-items:center;font-weight:800;display:flex;position:absolute;box-shadow:0 2px 6px #0009}.die.d20{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:#ffd36b;border-radius:0}.die.d4{background:#9fd0ff}.die.d8{background:#c9a8ff}.die.d10,.die.d12{background:#ffb3b3}.drag-ghost{z-index:9000;pointer-events:none;opacity:.9;position:fixed;transform:rotate(3deg)}.drag-ghost.tapped{transform:rotate(90deg)}.drag-ghost img,.drag-ghost .card-back{border-radius:4.75%/3.5%;width:100%;height:100%;box-shadow:0 8px 20px #0009}.sidebar{flex-direction:column;gap:6px;min-height:0;padding:4px 4px 4px 0;display:flex}.sidebar-top{flex-direction:column;gap:6px;padding:10px;display:flex}.dice-row button{justify-content:center;min-width:36px}.card-preview{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:0 auto;gap:6px;min-height:0;max-height:42vh;padding:8px;display:flex;overflow:auto}.card-preview img{border-radius:4.75%/3.5%;align-self:center;max-width:100%;max-height:30vh}.oracle p{white-space:pre-wrap;margin:6px 0;font-size:12px}.log-panel{flex-direction:column;flex:1;gap:6px;min-height:160px;padding:8px;display:flex}.log-panel .log{min-height:0}.log-panel.compact{height:420px}.log{-webkit-user-select:text;user-select:text;flex-direction:column;flex:1;gap:2px;font-size:12px;display:flex;overflow-y:auto}.log-entry.system{color:var(--muted);font-style:italic}.log-entry.dice{color:#ffd36b}.log-entry.life{color:#ff9f9f}.log-entry.turn{color:var(--accent);border-top:1px solid var(--border);padding-top:2px;font-weight:600}.log-panel input{width:100%}.help ul{margin:6px 0 0;padding-left:16px}.context-menu{z-index:10000;background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:200px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000080}.menu-title{color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:4px;padding:4px 10px;font-size:12px}.menu-list{margin:0;padding:0;list-style:none}.menu-list li{cursor:pointer;white-space:nowrap;border-radius:4px;justify-content:space-between;gap:16px;padding:5px 10px;display:flex;position:relative}.menu-list li:hover{background:var(--accent-2)}.menu-list li.disabled{color:var(--muted);cursor:default;background:0 0}.menu-list .hint{color:var(--muted);font-size:11px}.submenu{background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:160px;padding:4px;display:none;position:absolute;top:-4px;left:100%}.menu-list li.has-sub:hover>.submenu{display:block}.modal-backdrop{z-index:8000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;width:90vw;max-width:520px;max-height:85vh;padding:16px;display:flex;overflow:auto}.modal.wide{max-width:1100px}.modal-head h3{margin:0}.card-grid{flex-wrap:wrap;gap:8px;display:flex}.grid-card{cursor:pointer;flex-direction:column;gap:4px;width:140px;display:flex}.grid-card img,.grid-card .card-back{aspect-ratio:.716;border-radius:4.75%/3.5%;width:140px}.grid-card.with-controls select{flex:1;min-width:0;padding:2px}.toasts{z-index:9500;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 14px;box-shadow:0 4px 12px #00000080}.toast.error{border-color:var(--danger)}.toast.roll{border-color:#ffd36b;font-size:15px}
