:root{
  --bg:#0b1112;--panel:#111a1c;--panel2:#182326;--line:#2b393c;--text:#f2f5f4;--muted:#9dacab;
  --accent:#e78c2d;--accent2:#f3ab52;--blue:#5fa6c8;--danger:#d96857;--ok:#63b58b;--card-w:108px;--card-h:151px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 42%,#1b2a2d 0,#10191b 38%,#090e0f 85%);overflow-x:hidden}button,input,select{font:inherit}.hidden{display:none!important}
.topbar{height:58px;display:flex;align-items:center;padding:0 18px;border-bottom:1px solid #273336;background:rgba(7,12,13,.92);position:relative;z-index:20;gap:14px}.brand{display:flex;align-items:center;gap:10px;margin-right:auto}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:900;background:linear-gradient(145deg,#f1a34c,#a44b22);box-shadow:0 0 22px #e78c2d33}.brand div{display:flex;flex-direction:column}.brand small{color:var(--muted);font-size:11px}.pill{border:1px solid var(--line);padding:5px 10px;border-radius:999px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.pill.online{color:#a8ecc7;border-color:#3b7358}.pill.offline{color:#eaa59b;border-color:#70483f}.icon-button{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer}.icon-button:hover{color:white}
.table{min-height:calc(100vh - 58px);padding:14px 18px 138px;display:grid;grid-template-rows:auto 1fr auto;gap:10px}.player-zone{min-height:170px;position:relative}.player-zone.self{display:flex;flex-direction:column;justify-content:flex-end}.player-line{display:flex;align-items:center;gap:12px;min-height:54px}.player-zone.opponent .player-line{justify-content:flex-start}.player-zone.self .player-line{justify-content:flex-end}.life-badge{width:68px;height:68px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#38474a,#101719 70%);border:2px solid #657579;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px #0008;position:relative}.life-badge.priority{border-color:var(--accent2);box-shadow:0 0 0 4px #e78c2d22,0 8px 24px #0008}.life-badge.active:after{content:"ACTIVE";position:absolute;bottom:-17px;font-size:9px;letter-spacing:.12em;color:var(--accent2)}.life{font-size:27px;font-weight:800}.player-meta{display:flex;flex-direction:column;gap:4px}.player-name{font-weight:800;font-size:15px}.player-stats{font-size:12px;color:var(--muted)}.mana-pool{display:flex;gap:8px;margin-top:2px}.mana{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:800}.mana.zero{opacity:.32}.mana-count{color:var(--muted)}.mana-symbol{width:16px;height:16px;vertical-align:middle;border-radius:50%;box-shadow:0 1px 2px #0006}.inspect-type .mana-symbol{width:15px;height:15px}.zone-counts{font-size:12px;color:var(--muted);display:flex;gap:10px}
.center-zone{display:grid;grid-template-columns:112px minmax(0,1fr) minmax(160px,230px);gap:10px;min-height:330px}.phase-rail{display:flex;flex-direction:column;justify-content:center;gap:2px;align-self:stretch}.phase-group{margin:5px 0 1px;padding-left:9px;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:#516164}.phase-dot{border-left:3px solid #334043;padding:3px 5px 3px 8px;font-size:9px;color:#718184;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;gap:4px;min-height:20px}.phase-dot small{font-size:7px;letter-spacing:.1em;color:var(--accent2)}.phase-dot.current{border-color:var(--accent);color:#f3c28e;background:#e78c2d11;font-weight:800}.battlefield{border:1px solid #273437;border-radius:18px;background:linear-gradient(180deg,#172325aa,#111a1c99);padding:14px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:auto}.battle-row{display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:145px}.battle-row.opponent{border-bottom:1px dashed #314043;padding-bottom:10px}.battle-lane{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;min-height:0}.stack-panel{border:1px solid #273437;border-radius:16px;background:#0c1315bb;padding:10px;overflow:auto}.stack-panel h3{margin:0 0 9px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.stack-empty{color:#59686a;font-size:12px;padding:12px 3px}.stack-card{padding:8px;border-radius:10px;border:1px solid #354548;background:#182326;margin:6px 0;cursor:pointer}.stack-card:last-child{border-color:#a76831;box-shadow:0 0 0 2px #e78c2d13}.stack-card strong{display:block;font-size:12px}.stack-card small{color:var(--muted)}
.card{width:var(--card-w);height:var(--card-h);border-radius:8px;background:#222c2e;border:1px solid #586668;box-shadow:0 6px 16px #0008;overflow:hidden;position:relative;cursor:pointer;transition:transform .13s ease,box-shadow .13s ease,border-color .13s ease;user-select:none}.card:hover{transform:translateY(-5px);z-index:8;box-shadow:0 12px 28px #000b}.card.selected{border:2px solid var(--accent2);box-shadow:0 0 0 3px #e78c2d40,0 12px 28px #000b}.card.targetable{box-shadow:0 0 0 3px #5fa6c84a,0 8px 22px #000a}.card.attacking{transform:translateY(-8px);border-color:#e27b56}.card.blocking{border-color:#5fa6c8}.card.tapped{transform:rotate(90deg);margin:18px 22px}.card.tapped:hover{transform:rotate(90deg) translateX(-5px)}.card img{width:100%;height:100%;object-fit:cover;display:block}.card-fallback{height:100%;padding:9px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#2a373a,#101719)}.card-fallback strong{font-size:12px}.card-fallback small{font-size:9px;color:var(--muted)}.card-badge{position:absolute;right:4px;bottom:4px;background:#080c0de8;border-radius:5px;padding:2px 4px;font-size:10px}.damage-badge{position:absolute;left:4px;bottom:4px;background:#9e382fdd;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:11px;font-weight:800}.hand{display:flex;justify-content:center;align-items:flex-end;min-height:170px;padding:8px 88px 0}.hand .card{margin-left:-28px;transform-origin:50% 120%}.hand .card:first-child{margin-left:0}.hand .card:hover,.hand .card.selected{transform:translateY(-22px) scale(1.08)}.opponent-hand{display:flex;justify-content:center;height:54px}.card-back{width:36px;height:50px;border-radius:5px;background:repeating-linear-gradient(45deg,#243234,#243234 5px,#152022 5px,#152022 10px);border:1px solid #556568;margin-left:-14px;box-shadow:0 3px 8px #0008}.card-back:first-child{margin-left:0}
.command-dock{position:fixed;z-index:30;left:0;right:0;bottom:0;min-height:94px;background:linear-gradient(180deg,#0a0f10e8,#080c0df8);border-top:1px solid #2c383a;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:10px 20px}.action-strip{min-height:54px;display:flex;gap:8px;align-items:center;overflow-x:auto}.decision-prompt{font-weight:800;font-size:14px;color:var(--text);white-space:nowrap;margin-right:4px}.action-strip button,.secondary,.ghost,.dialog-actions button{border:1px solid #4a5a5d;background:#1e2a2c;color:var(--text);padding:9px 13px;border-radius:9px;cursor:pointer}.action-strip button.primary,.dialog-actions button{background:#27566b;border-color:#4f90ad}.action-strip button:hover,.secondary:hover{filter:brightness(1.15)}.auto-pass{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}.continue-button{min-width:196px;height:64px;border:1px solid #f0ad61;border-radius:13px;background:linear-gradient(180deg,#ed9a3f,#bc6522);color:#17100a;font-weight:900;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr 1fr;align-items:center;padding:8px 10px 8px 17px;cursor:pointer;box-shadow:0 7px 24px #0008}.continue-button:disabled{filter:grayscale(.8);opacity:.38;cursor:default}.continue-main{font-size:17px;grid-row:1/2}.continue-detail{font-size:10px;font-weight:700;opacity:.75;grid-row:2/3}.continue-button kbd{grid-column:2;grid-row:1/3;background:#fff2;border:1px solid #0003;padding:5px 7px;border-radius:6px;font-size:10px}
.decision-card-name{display:flex;align-items:center;gap:8px;min-width:min(700px,100%);max-width:100%}.decision-card-name-input{flex:1 1 auto;min-width:260px;border:1px solid #4a5a5d;border-radius:9px;background:#121b1d;color:var(--text);padding:9px 11px}.decision-card-name-input:focus{outline:1px solid #5fa6c8;outline-offset:1px}.decision-card-name-feedback{font-size:11px;color:var(--muted)}.decision-card-name-feedback.invalid{color:#efafa5}.decision-card-name-feedback.valid{color:#9ee0c0}
.inspector{position:fixed;right:16px;top:70px;bottom:112px;width:min(340px,88vw);z-index:40;background:#10191bf5;border:1px solid #405053;border-radius:15px;padding:14px;box-shadow:0 18px 70px #000c;overflow:auto}.inspector .close{position:absolute;right:8px;top:7px}.inspect-image{width:210px;max-width:80%;border-radius:10px;display:block;margin:8px auto 14px}.inspect-name{font-size:20px;font-weight:900}.inspect-type,.inspect-id{font-size:11px;color:var(--muted);margin-top:4px}.inspect-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.inspect-actions button{border:1px solid #506164;background:#213033;color:white;padding:8px 10px;border-radius:8px;cursor:pointer}.inspect-actions button.primary{background:#27566b;border-color:#5e9db8}
.target-banner{position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:50;min-width:min(520px,90vw);padding:11px 14px;border:1px solid #5fa6c8;background:#122a34ee;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:14px;box-shadow:0 12px 38px #000a}.target-banner div:first-child{display:flex;flex-direction:column}.target-banner span{font-size:11px;color:#a9cbd9}.target-actions{display:flex;gap:7px}.ghost{background:transparent}
.toast{position:fixed;z-index:70;left:50%;bottom:110px;transform:translateX(-50%);background:#101719;border:1px solid #516164;border-radius:10px;padding:10px 14px;box-shadow:0 8px 30px #000b;font-size:13px}.toast.error{border-color:#a65347;color:#ffd1ca}.toast.ok{border-color:#467a5e;color:#c4f3d8}
.connect-dialog{border:1px solid #3c4b4e;border-radius:16px;background:#101719;color:white;padding:0;box-shadow:0 20px 90px #000}.connect-dialog::backdrop{background:#050808d9}.connect-dialog form{padding:22px;width:min(440px,88vw);display:grid;gap:13px}.connect-dialog h2{margin:0}.connect-dialog p{margin:0 0 5px;color:var(--muted);font-size:12px}.connect-dialog label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.connect-dialog input,.connect-dialog select{border:1px solid #405053;border-radius:8px;background:#192326;color:white;padding:9px}.dialog-actions{display:flex;justify-content:flex-end;margin-top:4px}
.pregame{display:grid;place-items:center;min-height:65vh;text-align:center}.pregame-panel{max-width:900px;width:100%}.pregame h2{margin-bottom:4px}.pregame p{color:var(--muted)}.pregame .hand{margin-top:18px}.pregame-actions{display:flex;justify-content:center;gap:10px;margin-top:18px}.pregame-actions button{padding:11px 18px;border-radius:10px;border:1px solid #5b6d70;background:#213033;color:white;cursor:pointer}.pregame-actions .primary{background:#a75b22;border-color:#e59a55}.combat-label{position:absolute;top:4px;left:6px;background:#b24d35e8;padding:2px 5px;border-radius:5px;font-size:9px;font-weight:800}.block-line{font-size:9px;background:#27566bdd;padding:2px 5px;border-radius:4px;position:absolute;top:4px;right:4px}
.lobby-screen{position:fixed;inset:58px 0 94px;z-index:35;display:grid;place-items:center;padding:14px;background:linear-gradient(180deg,#0c1416f2,#0a1012e8)}.lobby-panel{position:relative;width:min(1120px,96vw);max-height:100%;overflow:auto;border:1px solid #2f3d40;border-radius:16px;padding:16px;background:#10191bf3;box-shadow:0 16px 60px #0008}.lobby-panel h2{margin:0 0 6px}.lobby-panel p{margin:0 0 14px;color:var(--muted);font-size:13px}.lobby-interactive.blocked{pointer-events:none}.lobby-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.lobby-status{min-height:20px;margin-top:12px;font-size:13px;color:var(--muted)}.lobby-status.waiting{color:var(--accent2)}.lobby-deck-grid{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;max-height:52vh;overflow:auto;padding-right:2px}.lobby-deck-card{display:grid;gap:8px;border:1px solid #334144;border-radius:12px;background:#162124;padding:8px;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.lobby-deck-card:hover{border-color:#63797d;transform:translateY(-2px)}.lobby-deck-card.selected{border-color:var(--accent2);box-shadow:0 0 0 2px #e78c2d33}.lobby-deck-art{aspect-ratio:626/457;border-radius:8px;overflow:hidden;border:1px solid #2f3d40;background:linear-gradient(145deg,#243235,#11191b)}.lobby-deck-art img{width:100%;height:100%;object-fit:cover;display:block}.lobby-deck-art-placeholder{width:100%;height:100%;background:linear-gradient(145deg,#2b393c,#141d1f)}.lobby-deck-label{font-size:12px;color:#dfe6e4;line-height:1.25}.lobby-empty{margin-top:12px;border:1px dashed #344245;border-radius:10px;padding:10px;color:var(--muted);font-size:12px}
.lobby-waiting-overlay{position:absolute;inset:0;z-index:25;background:rgba(4,8,10,.72);display:grid;place-items:center;pointer-events:auto}.lobby-waiting-content{display:grid;justify-items:center;gap:9px;padding:18px 22px;border-radius:12px;border:1px solid #5a6870;background:rgba(18,28,31,.96);box-shadow:0 12px 40px #000a}.lobby-waiting-spinner{font-size:29px;line-height:1;animation:lobby-hourglass-spin 1.15s ease-in-out infinite}.lobby-waiting-content p{margin:0;color:#f0f4f3;font-size:16px;font-weight:800}
@keyframes lobby-hourglass-spin{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.08)}100%{transform:rotate(360deg) scale(1)}}
@media(max-width:900px){:root{--card-w:86px;--card-h:120px}.center-zone{grid-template-columns:92px 1fr}.stack-panel{grid-column:1/3;max-height:105px;display:flex;gap:5px}.stack-panel h3{min-width:45px}.stack-card{min-width:120px}.command-dock{grid-template-columns:1fr auto}.auto-pass{display:none}.action-strip{grid-column:1/3;grid-row:1}.continue-button{grid-column:2;grid-row:2}.table{padding-left:8px;padding-right:8px}.hand{padding-left:30px;padding-right:30px}.hand .card{margin-left:-35px}}
@media(max-width:560px){:root{--card-w:72px;--card-h:101px}.topbar{padding:0 10px}.brand small{display:none}.center-zone{display:block}.phase-rail{display:flex;min-height:34px;justify-content:center;margin-bottom:6px}.phase-group,.phase-dot:not(.current){display:none}.phase-dot.current{border-left:0;border-bottom:2px solid var(--accent);padding:7px 10px;font-size:10px;justify-content:center;gap:10px;background:#e78c2d11;border-radius:8px}.battlefield{min-height:310px}.command-dock{padding:8px 9px}.continue-button{min-width:160px}.player-zone{min-height:135px}.hand{min-height:130px}.life-badge{width:56px;height:56px}.life{font-size:22px}}
.app.has-lobby .command-dock{display:none}.app.has-lobby #table{display:none}
.zone-link{border:0;background:transparent;color:var(--muted);padding:0;cursor:pointer;font-size:12px}.zone-link:hover{color:white;text-decoration:underline}.zone-card-list{display:grid;gap:6px;margin-top:12px}.zone-card-row{border:1px solid #39494c;background:#172225;color:white;text-align:left;border-radius:8px;padding:8px 10px;cursor:pointer}.zone-card-row:hover{border-color:#6d8589;background:#1d2b2e}.inspect-actions small{color:var(--muted)}

.diagnostic-button{border:1px solid rgba(255,255,255,.18);background:rgba(20,25,34,.82);color:inherit;border-radius:8px;padding:.45rem .7rem;font:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap}
.diagnostic-button:hover{background:rgba(36,43,56,.95)}
@media (max-width:720px){.diagnostic-button{font-size:0;width:2.35rem;height:2.35rem;padding:0}.diagnostic-button::after{content:'LOG';font-size:.62rem;font-weight:700}}

.recent-reveal{margin-top:10px;padding-top:8px;border-top:1px solid #2b393c}.recent-reveal>strong{display:block;font-size:10px;color:var(--accent2);margin-bottom:6px;text-transform:uppercase}.recent-reveal-cards{display:grid;gap:4px}.reveal-card-row{border:1px solid #39494c;background:#172225;color:#e8efed;text-align:left;border-radius:7px;padding:6px 8px;font-size:10px;cursor:pointer}.reveal-card-row:hover{border-color:#6d8589;background:#1d2b2e}
