:root{--bg: #0d0f13;--panel: #11151b;--muted: #8892a6;--border: #1f2530;--accent: #3b82f6;--side-left-bg: #141a24;--side-right-bg: #121827;--side-tint-left: rgba(148, 163, 184, .08);--side-tint-right: rgba(59, 130, 246, .09);--side-divider: #2a3447;--scroll-track: #0d1118;--scroll-thumb: #223047;--scroll-thumb-hover: #2a3a57;--card-w: 96px;--card-h: 136px;--radius: 8px;--motion-fast: .12s;--motion-med: .22s;--motion-slow: .36s;--motion-ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:#e5e7eb;font:14px/1.4 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--scroll-track)}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:1px solid var(--border);border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}html.anim-off *,html.anim-off *:before,html.anim-off *:after{transition:none!important;animation:none!important}.container{max-width:1120px;margin:0 auto;padding:0 16px}.app{display:grid;grid-template-columns:380px 1fr 340px;height:100%}.app.hide-left{grid-template-columns:0 1fr 340px}.app.hide-right{grid-template-columns:380px 1fr 0}.app.hide-left.hide-right{grid-template-columns:0 1fr 0}.lobbyPage{min-height:100vh;display:flex;flex-direction:column}.lobbyMain{flex:1 0 auto}.sidebar{background:linear-gradient(180deg,var(--side-tint-right),transparent 22%),var(--side-right-bg);border-right:1px solid var(--border);padding:12px;overflow-y:auto;overflow-x:hidden;height:100%}.sidebar-right{background:linear-gradient(180deg,var(--side-tint-right),transparent 22%),var(--side-right-bg);border-left:1px solid var(--border);padding:12px;overflow-y:auto;overflow-x:hidden;height:100%}.sidebar .h2,.sidebar-right .h2{color:#eef2ff}.edgeToggle{position:absolute;top:8px;right:-10px;z-index:5}.sidebar .edgeToggle{right:-10px}.sidebar-right{position:relative}.sidebar-right .edgeToggle{left:-10px;right:auto}.edgeBtn{width:28px;height:36px;border-radius:6px;border:1px solid var(--border);background:#0f141b;color:#cbd5e1;cursor:pointer;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.edgeBtn:hover{background:#131b26}.btn.success{color:#0b1220;background:#9ad86b;border-color:#b5e58f;font-weight:600;box-shadow:0 1px #ffffff1f inset}.btn.success:hover{filter:brightness(1.05);transform:translateY(-1px)}.h2{font-weight:600;margin:10px 0 6px}.small{font-size:12px;color:var(--muted)}.row{display:flex;align-items:center;gap:8px}.btn{background:#1b2230;border:1px solid var(--border);color:#e5e7eb;padding:6px 10px;border-radius:8px;cursor:pointer}.btn:hover{border-color:#2a3447;background:#20283a}.btn.icon{display:inline-flex;align-items:center;gap:8px}.btn.primary{color:#0b1220;background:#9ad86b;border-color:#b5e58f;font-weight:600;box-shadow:0 1px #ffffff1f inset}.btn.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn.ghost{background:transparent;border-color:#2a3447;color:#cbd5e1}.btn.ghost:hover{background:#151b27;border-color:#35425a}.btn.discord{color:#101316;background:#6c8cff;border-color:#8fa2ff;font-weight:600;box-shadow:0 1px #ffffff1f inset}.btn.discord:hover{filter:brightness(1.05);transform:translateY(-1px)}.input{background:#0f131b;border:1px solid var(--border);color:#e5e7eb;padding:6px 8px;border-radius:8px}.chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;border:1px solid var(--border);background:#0f141c;font-size:12px;color:#b9c2d0}.chip.green{background:#22c55e1f;color:#8ee69e;border-color:#22c55e59}.chip.red{background:#ef44441f;color:#f59f9f;border-color:#ef444459}.chip.gray{background:#94a3b81f;color:#cbd5e1;border-color:#334155}.chip.teal{background:#2dd4bf26;color:#7cf0de;border-color:#2dd4bf66}.chip.blue{background:#3b82f626;color:#9ec5ff;border-color:#3b82f666}.log{background:#0d1118;border:1px solid var(--border);border-radius:8px;padding:8px;height:160px;overflow:auto}.log .logRow{display:flex;align-items:center;gap:6px;padding:1px 0}.log .logTime{opacity:.7;font-variant-numeric:tabular-nums}.log .logAction{font-weight:700}.board{padding:12px;overflow:auto}.lobbyHeader{padding:18px 0;background:radial-gradient(900px 140px at 50% -40px,hsl(210,20%,12%) 0%,transparent 60%),linear-gradient(180deg,#0d0f13d9,#0d0f1399);border-bottom:1px solid var(--border)}.lobbyHeader h1{margin:0 0 10px;font-weight:700;letter-spacing:.2px}.lobbyHeader .links{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0f141b}.segmented .seg{padding:6px 10px;cursor:pointer;border-right:1px solid var(--border);color:#cbd5e1;background:transparent}.segmented .seg:last-child{border-right:none}.segmented .seg.active{background:#1a2231;color:#e5e7eb;font-weight:600}.lobbyFooter{margin-top:24px;padding:18px 0 26px;border-top:1px solid var(--border);background:linear-gradient(180deg,#0d0f13bf,#0d0f13f2);color:#c8d0dc}.lobbyFooter .links{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.lobbyFooter a{color:#c8d0dc;text-decoration:none}.lobbyFooter a:hover{color:#e5e7eb;text-decoration:underline}.betaBadge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.3px;background:#fde68a;color:#7a4b00;border:1px solid #f1c65a;box-shadow:0 1px #ffffff26 inset}.betaCorner{position:fixed;right:12px;top:12px;z-index:60}.oppRow{display:grid;grid-template-columns:1fr;gap:12px}.oppBlock{border:1px solid var(--border);border-radius:12px;padding:8px;background:#0f141b}.oppBlock:hover{border-color:#324158;background:#111826}.oppHeader{display:flex;align-items:center;gap:8px}.oppName{font-weight:600}.sharedBlock{display:grid;grid-template-columns:180px 1fr;gap:16px;margin-top:8px}.locationsGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.locationCol{border:1px dashed var(--border);border-radius:12px;padding:8px}.locationSlot{border:1px solid var(--border);border-radius:12px;min-height:calc(var(--card-h) + 16px);display:flex;align-items:center;justify-content:center;background:#0c1118;margin-bottom:6px;position:relative}.locationPlaceholder{color:var(--muted);font-size:12px;opacity:.6}.zonesRow{display:flex;align-items:flex-start;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.zone{border:1px solid var(--border);border-radius:12px;padding:6px;background:#0e141c;min-height:calc(var(--card-h) + 28px);position:relative;display:flex;flex-wrap:wrap;gap:6px}.zone.dropTarget{outline:2px dashed var(--accent);outline-offset:3px}.zoneWrap .small{margin-bottom:6px}.zone.singleSlot,.zone-single{min-width:calc(var(--card-w) + 12px);max-width:calc(var(--card-w) + 12px);flex-wrap:nowrap}.zone-compact,.zone.compact,.zone.compactDiscard,.zone-discard{width:calc(var(--card-w) + 12px)}.zoneWrap.threeWide .zone,.zone.threeWide{min-width:calc(var(--card-w) * 3 + 24px);max-width:calc(var(--card-w) * 3 + 24px)}.zone .pileWrap{display:flex;flex-wrap:wrap;gap:6px}.card{width:var(--card-w);height:var(--card-h);border-radius:var(--radius);background:#0a0f15;border:1px solid var(--border);position:relative;overflow:hidden;flex:0 0 auto;transition:box-shadow var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.card.location{height:var(--card-h);width:calc(var(--card-h) * 1.4)}.locCounters{position:absolute;top:8px;right:8px;width:0;height:0;pointer-events:none}.locCounters .counter{position:absolute;pointer-events:auto;min-width:26px;height:20px;border-radius:6px;border:1px solid var(--border);font-size:12px;line-height:18px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none}.locCounters .counter.red{background:#ef4444e6;color:#fff;top:0;right:0}.locCounters .counter.green{background:#22c55ee6;color:#07130b;top:48px;right:0}.card.hovered{transform:translateY(-2px)}.card.hovered-own{box-shadow:0 0 0 2px #60a5fabf}.card.hovered-opp{box-shadow:0 0 0 2px #f43f5ebf}.card.exhausted{transform:rotate(90deg) scale(.995);transform-origin:center center;transition:transform var(--motion-med) var(--motion-ease)}.card.faceDown{background:#0c0f17}.card .id{position:absolute;bottom:6px;left:6px;font-size:11px;color:#cbd5e1;opacity:.85}.attachOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#02060c33;pointer-events:none}.card.attachTarget{outline:2px solid rgba(34,197,94,.7);outline-offset:2px}.stackHost{position:relative;display:inline-block}.stackBehind{position:absolute;right:-22%;left:auto;top:0;width:22%;height:100%;opacity:.95;filter:saturate(.9) brightness(.9)}.card.peek{width:100%;height:100%;border-radius:var(--radius);overflow:hidden}.card.peek img{object-position:right center}.stackTop{position:relative;z-index:1}.card .badges{position:absolute;top:6px;right:6px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;z-index:2}.card .badges .badge{position:static;display:inline-flex;align-items:center;gap:6px;background:#0000008c;border:1px solid var(--border);border-radius:8px;padding:2px 6px;font-size:11px;line-height:1}.card .badge.red{background:#ef4444e6;border-color:#ef4444b3;color:#fff}.card .badge.green{background:#22c55ee6;border-color:#22c55eb3;color:#07130b}.card .badge.black{background:#111827f2;border-color:#334155;color:#e5e7eb}.badgeLabel{font-weight:700;letter-spacing:.2px}.badgeValue{font-variant-numeric:tabular-nums}.card.placeholder{opacity:.25;pointer-events:none}.handDock{position:sticky;bottom:0;background:linear-gradient(180deg,#0d0f1300,#0d0f13bf,#0d0f13 40%);padding-top:12px;margin-top:16px}.handRow{display:flex;gap:6px;padding:6px 0 10px;overflow-x:auto}.ctx,.contextMenu{position:fixed;z-index:1000;background:#0f141b;border:1px solid var(--border);border-radius:8px;min-width:140px;box-shadow:0 10px 30px #00000059}.ctx-item,.contextMenu .item{padding:8px 10px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.ctx-item:hover,.contextMenu .item:hover{background:#151c27}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#00000080;z-index:1100}.modal{background:#0f141b;border:1px solid var(--border);border-radius:12px;padding:12px;min-width:360px;max-width:90vw;max-height:90vh;overflow:auto;box-shadow:0 18px 40px #00000073,0 4px 14px #00000059}.modal.large{min-width:720px}.modalTitle{font-weight:600;margin-bottom:8px}kbd{display:inline-block;min-width:1.2em;padding:0 6px;border-radius:6px;border:1px solid #334155;background:#0f141b;font-size:12px;line-height:1.6;text-align:center;box-shadow:0 1px #ffffff0f inset}.discardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-w),1fr));gap:8px;max-height:60vh;overflow:auto}.discardCell{display:flex;justify-content:center}.zoomPreview{position:fixed;right:12px;bottom:80px;width:calc(var(--card-w) * 4);height:calc(var(--card-h) * 4);border:1px solid var(--border);border-radius:12px;background:#0a0f15;z-index:20;display:flex;align-items:center;justify-content:center}.zoomPreview.landscape{width:calc(var(--card-h) * 4 * 1.4);height:calc(var(--card-h) * 4)}.zoomPreview img{width:100%;height:100%;object-fit:cover}.zoomFallback{font-size:12px;color:var(--muted)}.zone[data-zone=heroReserve]{flex-wrap:nowrap}.zone-single-landscape{min-width:calc(var(--card-h) * 1.4 + 12px);max-width:calc(var(--card-h) * 1.4 + 12px);flex-wrap:nowrap}.zone-compact-landscape{width:calc(var(--card-h) * 1.4 + 12px)}.card.placeholder.location,.card.faceDown.location{width:calc(var(--card-h) * 1.4);height:var(--card-h)}.contextMenu{position:fixed;top:0;left:0;background:#111827fa;border:1px solid #334155;border-radius:8px;min-width:180px;padding:6px 0;box-shadow:0 10px 25px #00000059,0 2px 10px #00000040;z-index:1000}.contextMenu .item{padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.contextMenu .item:hover{background:#94a3b82e}.contextMenu .sep{height:1px;background:#334155;margin:4px 0}.inlinePanel{margin:8px 0 12px;background:#111827e6;border:1px solid #334155;border-radius:12px;padding:10px}.inlinePanelHeader{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.handRow.dropTarget{outline:2px dashed #64748b;outline-offset:3px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
