:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #273449;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--danger: #f87171;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 50% -10%,#1e293b,var(--bg));color:var(--text);min-height:100vh}.app{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex;flex-direction:column;min-height:100vh}header h1{font-size:1.5rem;margin:.25rem 0 1.25rem}main{flex:1;display:flex;justify-content:center;align-items:flex-start}footer{margin-top:2rem;color:var(--muted);font-size:.8rem;text-align:center}.card{background:var(--panel);border:1px solid #334155;border-radius:12px;padding:1.5rem;width:min(92vw,420px);display:flex;flex-direction:column;gap:.9rem;box-shadow:0 10px 30px #0000004d}.card h2{margin:0}label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:var(--muted)}input{background:var(--panel-2);border:1px solid #3b4a63;border-radius:8px;padding:.6rem .7rem;color:var(--text);font-size:1rem}input:focus{outline:2px solid var(--accent);border-color:transparent}button{background:var(--accent);color:#06283d;border:none;border-radius:8px;padding:.6rem 1rem;font-size:.95rem;font-weight:600;cursor:pointer}button:hover:not(:disabled){filter:brightness(1.08)}button:disabled{opacity:.5;cursor:not-allowed}button.danger{background:var(--danger);color:#3b0a0a}button.link{background:none;color:var(--muted);font-weight:400;padding:0;align-self:flex-start}.row{display:flex;gap:.5rem}.row input{flex:1}.lobby-option{display:flex;flex-direction:column;gap:.4rem;padding:.75rem 0;border-bottom:1px solid #33415580}.hint{color:var(--muted);font-size:.85rem;margin:0}.error{color:var(--danger);font-size:.9rem;margin:0}.game{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap;justify-content:center}.panel{background:var(--panel);border:1px solid #334155;border-radius:12px;padding:1.1rem;width:min(92vw,280px);display:flex;flex-direction:column;gap:.85rem}.seat{font-size:.95rem}.status{font-size:1.05rem;font-weight:600;margin:0}.status.done{color:var(--accent)}.players{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem}.player{display:flex;align-items:center;gap:.5rem}.dot{width:.75rem;height:.75rem;border-radius:50%;border:1px solid #64748b}.dot.w{background:#f8fafc}.dot.b{background:#0f172a}.dot.spectator{background:#64748b}.badge{font-size:.7rem;padding:.1rem .4rem;border-radius:999px;background:#334155;color:var(--muted)}.badge.warn{background:#713f12;color:#fde68a}.actions{display:flex;gap:.5rem}.note{color:var(--muted);font-size:.78rem;margin:0;line-height:1.4}code{background:var(--panel-2);padding:.1rem .35rem;border-radius:4px}.app.wide{max-width:1280px}.lobby-heading{margin:.75rem 0 .25rem;font-size:1.05rem}.game.arcana{align-items:flex-start}.board-column{display:flex;flex-direction:column;gap:.5rem}.opponent-bar{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:var(--muted);padding:0 .25rem}.clock{font-variant-numeric:tabular-nums;font-weight:700;font-size:1.05rem;color:var(--muted)}.clock.running{color:var(--text)}.clock.low{color:var(--danger)}.hand-tray{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.35rem}.hand-card{background:var(--panel-2);color:var(--text);border:1px solid #3b4a63;border-radius:8px;padding:.45rem .6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:96px;font-weight:500;opacity:.55}.hand-card.playable{opacity:1;border-color:var(--accent);cursor:pointer}.hand-card.arming{opacity:1;outline:2px solid #c084fc}.hand-card-name{font-size:.85rem}.hand-card-type{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.skip-card{align-self:stretch;background:var(--panel-2);color:var(--text);border:1px dashed var(--accent);font-weight:600}.skip-card:hover:not(:disabled){background:var(--accent);color:#06283d}.deck-card-cost{background:var(--accent);color:#06283d;font-weight:800;border-radius:999px;min-width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem}.arcana-panel{width:min(92vw,330px);max-height:82vh;overflow-y:auto}.prompt{background:var(--panel-2);border:1px solid #3b4a63;border-radius:10px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.prompt.urgent{border-color:var(--accent);box-shadow:0 0 12px #38bdf840}.actions.column{flex-direction:column;align-items:stretch}.event-log{display:flex;flex-direction:column;gap:.2rem;max-height:200px;overflow-y:auto;border-top:1px solid #33415580;padding-top:.5rem}.notice{color:#fde68a;cursor:pointer}.trap-marker{font-size:1rem;filter:drop-shadow(0 0 3px rgba(0,0,0,.8))}.trap-marker.own{filter:drop-shadow(0 0 3px rgba(192,132,252,.9))}.status-badges{font-size:.85rem;filter:drop-shadow(0 0 2px rgba(0,0,0,.9))}.deck-builder{display:flex;gap:1.25rem;align-items:flex-start;flex-wrap:wrap;justify-content:center;width:100%}.deck-gallery{flex:1;min-width:320px;max-width:760px;display:flex;flex-direction:column;gap:.75rem}.deck-gallery h3{margin:.4rem 0 .3rem;font-size:.95rem;color:var(--muted)}.deck-grid{display:flex;flex-wrap:wrap;gap:.4rem}.deck-card{background:var(--panel);color:var(--text);border:1px solid #334155;border-radius:8px;padding:.4rem .55rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:500;font-size:.85rem}.deck-card.picked{border-color:var(--accent);background:var(--panel-2)}.deck-card-copies{color:var(--accent);font-weight:700}.deck-card-name{white-space:nowrap}.deck-panel{width:min(92vw,320px);position:sticky;top:1rem}.deck-list{display:flex;flex-direction:column;gap:.3rem}.deck-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.deck-presets{display:flex;flex-wrap:wrap;gap:.35rem .9rem}.card-inspect{border-top:1px solid #33415580;padding-top:.6rem}
