: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)}.tag.marker{color:#ffd36b;cursor:help;white-space:nowrap;background:#3a2f12;border-color:#6b5420}.tag.marker.dungeon{color:#c9e3ff;background:#1d2c40;border-color:#35506f}.markers{flex-direction:column;gap:4px;display:flex}.markers button.active{background:var(--accent-2);border-color:var(--accent)}.quick-tokens button{font-size:11px}.log-entry.marker{color:#ffd36b}.log-entry.spectatorChat{color:var(--muted)}.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}.side-stack{flex-direction:column;gap:16px;min-width:0;display:flex}.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}.pregame-grid.solo{grid-template-columns:minmax(0,420px) 340px;justify-content:center}.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;position:relative}.player-header.targetable{cursor:crosshair}.player-header.targetable:hover{outline:2px solid var(--accent);outline-offset:-2px}.stack-zone{--cw:calc(96px * var(--hs,1));--ch:calc(134px * var(--hs,1));z-index:20;border:1px solid var(--border);background:#0f131ae0;border-radius:10px;max-height:calc(100% - 20px);padding:6px 8px 8px;position:absolute;top:50%;right:10px;overflow-y:auto;transform:translateY(-50%);box-shadow:0 6px 20px #00000080}.stack-zone.empty{width:calc(var(--cw) + 18px);min-height:calc(var(--ch) + 30px);border:2px dashed var(--accent)}.stack-title{margin-bottom:4px}.stack-hint{height:var(--ch);text-align:center;justify-content:center;align-items:center;display:flex}.stack-cards{flex-direction:column;display:flex}.stack-item{flex-direction:column;align-items:center;display:flex;position:relative}.stack-item+.stack-item{margin-top:calc(var(--ch) * -.68)}.stack-caster{text-shadow:0 1px 2px #000;align-self:flex-start;font-size:11px;font-weight:700}.stack-zone .card{cursor:pointer;position:relative}.arrow-layer{z-index:7000;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0;overflow:visible}.arrow-outline{fill:none;stroke:#0000008c;stroke-width:8px;stroke-linecap:round}.arrow-shaft{fill:none;stroke-width:4.5px;stroke-linecap:round}.arrow-head{stroke:#0000008c;stroke-width:1.5px}.arrow.pending .arrow-shaft{stroke-dasharray:10 8}.arrow.pending{opacity:.8}.arrow-hit{fill:none;stroke:#0000;stroke-width:12px;pointer-events:stroke;cursor:pointer}.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}.board.spectating .opponents{flex:1;grid-auto-rows:1fr}.board.spectating .opponents.count-2{grid-template-columns:1fr}.board.spectating .opponents.count-4{grid-template-columns:1fr 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%);isolation:isolate;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{height:calc(150px * var(--hs,1));background:#161b23;flex:none;gap:6px;padding:4px;display:flex}.hand{--cw:calc(92px * var(--hs,1));--ch:calc(128px * var(--hs,1));flex:1;align-items:center;min-width:0;padding:4px 8px;display:flex;overflow:auto hidden}.hand .card{margin-right:calc(-26px * var(--hs,1));flex:none;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}.tray .pile{width:calc(84px * var(--hs,1))}.tray .command-zone{min-width:calc(84px * var(--hs,1));--cw:calc(60px * var(--hs,1));--ch:calc(84px * var(--hs,1))}@container (width<=820px){.tray{height:calc(118px * var(--hs,1))}.tray .pile{width:calc(58px * var(--hs,1))}.tray .command-zone{min-width:calc(58px * var(--hs,1));--cw:calc(48px * var(--hs,1));--ch:calc(67px * var(--hs,1))}.hand{--cw:calc(72px * var(--hs,1));--ch:calc(100px * var(--hs,1))}.hand .card{margin-right:calc(-30px * var(--hs,1))}}@container (width<=560px){.tray .pile{width:calc(44px * var(--hs,1))}.tray .pile-label{font-size:9px}.tray .command-zone{min-width:calc(44px * var(--hs,1));--cw:calc(38px * var(--hs,1));--ch:calc(53px * var(--hs,1))}.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}.planechase{flex-direction:column;flex:none;gap:6px;padding:6px 10px;display:flex}.planes{gap:6px;display:grid}.planes.count-2{grid-template-columns:1fr 1fr}.plane{flex-direction:column;gap:2px;min-width:0;display:flex}.plane-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plane-view{aspect-ratio:680/488;border-radius:3.5%/4.75%;align-self:center;width:100%;max-width:220px;position:relative;overflow:hidden}.planes.count-2 .plane-view{max-width:none}.plane-view img{width:71.76%;height:139.34%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(90deg)}.card-preview .plane-view{flex:none;max-width:100%}.card-preview .plane-view img{border-radius:0;max-width:none;max-height:none}.log-entry.plane{color:#c9a8ff;font-weight:600}.log-entry.cast{color:#8fd3ff;font-weight:600}.log-entry.arrow{color:#ffb37a}.card-size{flex:none;padding:6px 10px}.size-presets{gap:2px}.size-presets button{justify-content:center;min-width:26px}.size-presets button.active{background:var(--accent-2);border-color:var(--accent)}.card-size summary{cursor:pointer;margin-top:4px}.size-slider{grid-template-columns:92px 1fr 38px;align-items:center;gap:6px;margin-top:4px;display:grid}.size-slider input{min-width:0;padding:0}.size-slider span:last-child{text-align:right}.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}.log-entry.undo{color:#b0b8c4;font-style:italic}.link-import input{flex:1}.deck-stats{grid-template-columns:2fr 1fr 1.2fr;gap:16px;margin:8px 0;display:grid}.deck-stats h3{margin:0 0 6px;font-size:14px}.curve{align-items:flex-end;gap:4px;height:110px;display:flex}.curve-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;height:100%;display:flex}.curve-bar{background:var(--accent);border-radius:3px 3px 0 0;width:100%;min-height:2px}.type-counts{margin:0;padding:0;list-style:none}.type-counts li{border-bottom:1px solid var(--border);justify-content:space-between;padding:1px 0;display:flex}.pip-bar{border-radius:7px;height:14px;margin-bottom:4px;display:flex;overflow:hidden}.sample-hand summary{cursor:pointer}.sample-hand summary h3{font-size:14px;display:inline}.sample-cards{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.sample-cards img{border-radius:5px;width:120px;box-shadow:0 2px 6px #00000080}@media (width<=1100px){.deck-stats{grid-template-columns:1fr}}.match-score{flex-direction:column;gap:4px;display:flex}.match-score .row{gap:10px}.sideboard summary{cursor:pointer;font-weight:600}.sideboard-cols{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sideboard-cols h4{margin:4px 0;font-size:13px}.sideboard-cols ul{max-height:280px;margin:0;padding:0;font-size:12px;list-style:none;overflow-y:auto}.sideboard-cols li{justify-content:space-between;align-items:center;gap:6px;padding:1px 0;display:flex}.sideboard-cols li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sideboard-cols li button{flex-shrink:0;padding:0 6px}.warn-text{color:var(--warn)}.limited-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}.limited-grid .side-stack{flex-direction:column;gap:12px;display:flex}.drafters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.drafter{background:var(--panel);border:1px solid var(--border);border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:13px;display:inline-flex}.drafter.me{border-color:var(--accent)}.drafter.bot{color:var(--muted)}.draft-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.draft-pack{flex-direction:column;gap:12px;display:flex}.draft-pack .waiting{text-align:center;padding:40px 0;font-size:15px}.pack-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.pack-card{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;padding:0;transition:transform 80ms}.pack-card:hover{transform:translateY(-3px)}.pack-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.pack-card img{aspect-ratio:488/680;background:var(--panel-2);border-radius:8px;width:100%;display:block}.pool h3{margin:6px 0;font-size:15px}.pool-columns{gap:8px;padding-bottom:6px;display:flex;overflow-x:auto}.pool-column{flex-direction:column;flex-shrink:0;width:120px;display:flex}.pool-column>div{text-align:center;margin-bottom:2px}.pool-card{cursor:pointer;background:0 0;border:none;height:30px;padding:0;position:relative;overflow:visible}.pool-card:last-child{height:auto}.pool-card:disabled{cursor:default;opacity:1}.pool-card img{aspect-ratio:488/680;background:var(--panel-2);border-radius:6px;width:120px;display:block;box-shadow:0 -1px 3px #00000080}.pool-card:hover{z-index:5}.pool-card:hover img{outline:2px solid var(--accent)}.deck-builder{flex-direction:column;gap:8px;display:flex}.deck-builder h2{margin:0}.basics{gap:14px}.basic{align-items:center;gap:4px;display:inline-flex}.basic .pip{background:var(--panel-2);border-radius:4px;padding:1px 6px;font-size:12px}.pip-W{color:#f3eccd}.pip-U{color:#7fb4f0}.pip-B{color:#b9a6c9}.pip-R{color:#f08a6c}.pip-G{color:#72c48c}button.discord{color:#fff;background:#5865f2;border-color:#5865f2}button.discord:hover:not(:disabled){background:#4752c4}.signin .divider{text-align:center;margin:4px 0}
