*{box-sizing:border-box}
:root{color-scheme:dark;--space:#080b12;--panel:rgba(16,23,38,.95);--line:#35415a;--text:#f4f7ff;--muted:#abb7d0;--active:#eef3ff}
body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 50% 35%,rgba(44,62,96,.32),transparent 36rem),linear-gradient(180deg,#0b101b,#05070d 82%);color:var(--text)}
button,input{font:inherit}
button{border:0;border-radius:8px;padding:.75rem 1rem;font-weight:800;cursor:pointer}
button:disabled{opacity:.5;cursor:wait}
input{width:100%;padding:.7rem;border-radius:7px;border:1px solid #4a5570;background:#0b0f18;color:#fff}
label{display:grid;gap:.35rem;margin-bottom:.85rem}
.shell{width:min(1480px,97vw);margin:0 auto;padding:1.4rem 0 4rem}
.gameHeader{display:flex;justify-content:space-between;align-items:end;gap:2rem;padding:0 .6rem}
.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;color:#aebbd6}
h1{margin:.18rem 0;font-size:clamp(2rem,5vw,4.2rem);line-height:1}
h2,h3{margin-top:0}
.lede{max-width:430px;margin:0 0 .35rem;color:var(--muted);text-align:right}
.status,.panel{margin-top:1rem;border:1px solid var(--line);background:rgba(20,27,43,.88);border-radius:14px;padding:1rem}
.status.error{border-color:#a54b59}
.lobbyGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.hidden{display:none!important}
.gameHead,.stateLine,.federationHeading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.gameHead h2{margin:.2rem 0 0}
.viewer{display:flex;gap:.5rem;font-weight:800}
.viewer span,.stateLine span,.seatBadge,.youBadge,.activeBadge{background:#252f47;border:1px solid rgba(121,140,180,.22);border-radius:999px;padding:.42rem .7rem}
.stateLine{justify-content:center;margin:1rem 0 1.25rem}
.tabletop{display:grid;grid-template-columns:minmax(190px,.31fr) minmax(500px,1fr) minmax(190px,.31fr);grid-template-areas:". north ." "west board east" ". south .";gap:.7rem;align-items:center;width:100%}
.playerDockNorth{grid-area:north;width:min(78%,720px);justify-self:center;align-self:end}
.playerDockSouth{grid-area:south;width:min(78%,720px);justify-self:center;align-self:start}
.playerDockWest{grid-area:west;justify-self:end}
.playerDockEast{grid-area:east;justify-self:start}
.boardStage{grid-area:board;min-width:0}
.boardFrame{position:relative;width:100%;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#05070a;border:1px solid rgba(132,151,190,.48);box-shadow:0 0 0 1px rgba(255,255,255,.035) inset,0 1.8rem 4rem rgba(0,0,0,.48),0 0 2.8rem rgba(78,103,153,.18)}
.officialBoard{display:block;width:100%;height:100%;object-fit:contain;user-select:none}
.boardOverlay{position:absolute;inset:0;pointer-events:none}
.federationPanel{position:relative;width:100%;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,rgba(30,40,61,.94),rgba(12,18,30,.98));padding:.85rem;opacity:.68;transition:opacity .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.federationPanel.occupied{opacity:1}
.federationPanel.viewerPanel{border-color:#8ea2cf}
.federationPanel.activePanel{border-color:var(--active);box-shadow:0 0 0 1px rgba(238,243,255,.28) inset,0 0 1.65rem rgba(192,209,255,.2)}
.playerDockNorth .activePanel{transform:translateY(2px)}
.playerDockSouth .activePanel{transform:translateY(-2px)}
.playerDockWest .activePanel{transform:translateX(2px)}
.playerDockEast .activePanel{transform:translateX(-2px)}
.federationHeading{align-items:start}
.orientationLabel{display:block;margin-bottom:.12rem;font-size:.65rem;letter-spacing:.14em;color:#8fa0bf}
.federationHeading strong{font-size:1.05rem;letter-spacing:.04em}
.playerDetails{display:flex;gap:.55rem 1.1rem;flex-wrap:wrap;margin-top:.65rem;color:#dce4f6;font-size:.88rem}
.playerDetailsSide{display:grid;gap:.25rem}
.panelFlags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.65rem}
.youBadge,.activeBadge{display:inline-flex;padding:.28rem .55rem;font-size:.69rem;font-weight:800}
.activeBadge{background:#e8eefc;color:#101522}
.commandDeck{display:flex;justify-content:center;margin:1.1rem auto;text-align:center}
.actions{min-height:3.1rem;display:flex;align-items:center;justify-content:center;margin-top:.4rem}
.commanderControls{margin-top:.8rem;padding-top:.7rem;border-top:1px solid rgba(255,255,255,.16)}
.commanderControls .actions{justify-content:flex-start;margin-top:0;min-height:0}
.commanderControls .preRollControls{width:100%}
.activePanel .activeBadge{background:#fff;color:#090d15;box-shadow:0 0 18px rgba(255,255,255,.35)}
.primaryAction{min-width:8rem;background:#f1f4fb;color:#090d15;box-shadow:0 .5rem 1.6rem rgba(0,0,0,.25)}
.actionMessage{color:#cad4e9}
.eventSection{margin-top:1.2rem}
.sectionHeading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.sectionHeading h3{margin-bottom:.55rem}
.sectionHeading span{color:#8f9bb4;font-size:.8rem}
.events{max-height:300px;overflow:auto;border:1px solid #303a51;background:#090e18;border-radius:8px;padding:.6rem;font-size:.88rem;line-height:1.42}
.eventRow{padding:.45rem .15rem;border-bottom:1px solid #1f2738}
.eventSequence{opacity:.65}
.secondary{margin-top:1rem;background:#313b52;color:#fff}
.dangerAction{background:#a93e4d;color:#fff}
.fine,.message{color:#aeb7ce;font-size:.9rem}
@media(max-width:1120px){.tabletop{grid-template-columns:minmax(150px,.26fr) minmax(430px,1fr) minmax(150px,.26fr)}.federationPanel{padding:.7rem}.playerDetails{font-size:.8rem}}
@media(max-width:900px){.gameHeader{display:block}.lede{text-align:left;margin-top:.5rem}.tabletop{grid-template-columns:1fr 1fr;grid-template-areas:"north north" "board board" "west east" "south south"}.playerDockNorth,.playerDockSouth,.playerDockWest,.playerDockEast{width:100%}.federationPanel.activePanel{transform:none}}
@media(max-width:620px){.shell{width:min(96vw,1480px)}.lobbyGrid,.tabletop{grid-template-columns:1fr}.tabletop{grid-template-areas:"north" "west" "board" "east" "south"}.stateLine{justify-content:flex-start}.sectionHeading{display:block}}

/* Production board interaction layer */
.boardLayer,.boardOverlay{position:absolute;inset:0}
.boardLayer{pointer-events:none}
.playerMarkerLayer{z-index:6}
.radLayer{z-index:5}
.boardOverlay{z-index:4;pointer-events:none}
.spaceHitbox{position:absolute;margin:0;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;pointer-events:auto;cursor:pointer;outline:none;min-width:0}
.spaceHitbox:hover,.spaceHitbox:focus-visible{border-color:rgba(255,255,255,.72);background:rgba(255,255,255,.08);box-shadow:0 0 0 2px rgba(0,0,0,.38),0 0 16px rgba(255,255,255,.2)}
.spaceHitbox.legalRadDestination{border-color:rgba(255,255,255,.88);background:rgba(255,255,255,.12);box-shadow:0 0 0 2px rgba(16,22,34,.65),0 0 18px rgba(230,240,255,.35)}
.spaceHitbox.selectedRadSource{border-color:#fff;background:rgba(255,255,255,.18);box-shadow:0 0 0 3px rgba(14,19,29,.72),0 0 22px rgba(255,255,255,.45)}
.playerMarker{position:absolute;width:34px;height:34px;transform:translate(calc(-50% + var(--marker-dx,0px)),calc(-50% + var(--marker-dy,0px)));border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.9);box-shadow:0 3px 8px rgba(0,0,0,.8),0 0 0 2px rgba(0,0,0,.5);font-weight:900;line-height:1;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9)}
.playerMarker .markerGlyph{font-size:.9rem}
.playerMarker .markerSeat{position:absolute;right:-5px;bottom:-5px;min-width:15px;height:15px;border-radius:999px;background:#080b12;border:1px solid #fff;font-size:.58rem;display:grid;place-items:center;padding:0 2px}
.playerMarker.viewerMarker{width:39px;height:39px;border-width:3px}
.playerMarker.activeMarker{box-shadow:0 3px 8px rgba(0,0,0,.8),0 0 0 3px rgba(255,255,255,.65),0 0 22px rgba(255,255,255,.7)}
.federation-WY{background:#266cc5}.federation-CH{background:#d4a500;color:#17130a}.federation-OR{background:#b82d2d}.federation-ZE{background:#4b8f3c}
.radBadge{position:absolute;transform:translate(-50%,-50%);min-width:31px;height:20px;padding:1px 5px;border-radius:999px;border:1px solid rgba(255,255,255,.88);box-shadow:0 2px 6px rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;font-size:.67rem;font-weight:900;letter-spacing:.01em;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.8);white-space:nowrap}
.radBadge.federation-CH{color:#17130a;text-shadow:none}
.spacePopover{position:fixed;z-index:1000;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;border:1px solid #687ca7;border-radius:13px;background:rgba(9,14,24,.98);box-shadow:0 18px 48px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.05) inset;padding:.9rem;color:#f5f8ff}
.spacePopoverClose{position:absolute;right:.5rem;top:.45rem;width:30px;height:30px;padding:0;border-radius:999px;background:#2b354b;color:#fff;font-size:1.25rem;line-height:1}
.spacePopoverHeading{display:grid;gap:.15rem;padding-right:2.2rem;margin-bottom:.65rem;cursor:grab;user-select:none;touch-action:none}
.spacePopover.dragging .spacePopoverHeading{cursor:grabbing}
.spacePopoverId{font-size:.76rem;letter-spacing:.13em;color:#b8c5de;font-weight:800}
.spacePopoverHeading strong{font-size:1.02rem}
.spaceZoom{position:relative;width:100%;overflow:hidden;border:1px solid #3c4861;border-radius:8px;background:#05070b;min-height:72px;max-height:190px}
.spaceZoomImage{position:absolute;max-width:none;height:auto;display:block;user-select:none;pointer-events:none}
.spaceData{display:grid;gap:.42rem;margin-top:.72rem}
.spaceDataRow{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #252f43;padding-bottom:.35rem}
.spaceDataRow span{color:#aebbd1}
.spaceDataRow strong{text-align:right}
.spaceDataNote{margin:.1rem 0;color:#cbd5e9;font-size:.88rem;line-height:1.4}
.text-WY{color:#72adff}.text-CH{color:#ffd95c}.text-OR{color:#ff8080}.text-ZE{color:#86d178}
.spaceActions{display:grid;gap:.5rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid #303a51}
.spaceActionButton{width:100%;background:#dfe7f7;color:#0c111c}
.primarySpaceAction{background:#fff}
.radDeployForm{display:grid;grid-template-columns:76px 1fr;gap:.45rem;align-items:end}
.radDeployForm label{grid-column:1/-1;margin:0;color:#b9c5da;font-size:.8rem}
.radDeployForm input,.radDeployForm select{margin:0}
.radDeployForm select{width:100%;padding:.7rem;border-radius:7px;border:1px solid #4a5570;background:#0b0f18;color:#fff}
.radDeployForm button{grid-column:1/-1;margin:0}
.preRollControls{display:grid;gap:.65rem;justify-items:center}
.preRollGuidance{margin:0;color:#cbd5e9}
.preRollButtons{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center}
.secondaryAction{background:#35415a;color:#fff}
@media(max-width:900px){.playerMarker{width:30px;height:30px}.playerMarker.viewerMarker{width:34px;height:34px}.radBadge{min-width:27px;height:18px;font-size:.6rem}}
.radPurchaseForm{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}
.radPurchaseForm input{width:78px;margin:0}
.radPurchaseForm select{margin:0;padding:.7rem;border-radius:7px;border:1px solid #4a5570;background:#0b0f18;color:#fff}
.claimUnavailable{margin:0;color:#e0b8be;font-size:.86rem}
.radSaleForm{margin-top:.65rem;padding-top:.65rem;border-top:1px solid rgba(120,138,174,.25)}

.battleDieBadge{display:inline-flex;align-items:center;gap:.35rem;border:1px solid rgba(255,255,255,.7);border-radius:8px;padding:.23rem .45rem;font-size:.69rem;font-weight:800;box-shadow:0 2px 5px rgba(0,0,0,.3)}
.battleDieMini{width:20px;height:20px;display:grid;place-items:center;border-radius:4px;border:1px solid rgba(255,255,255,.92);background:rgba(0,0,0,.22);font-size:.72rem;font-weight:950}
.battleDieBadge.federation-CH{color:#17130a;text-shadow:none}.battleDieBadge.federation-CH .battleDieMini{border-color:#17130a}
.battleDieDecision{max-width:620px}
.battleDieAction{width:82px;height:82px;display:grid;place-items:center;border-radius:14px;border:3px solid rgba(255,255,255,.92);box-shadow:0 6px 18px rgba(0,0,0,.45),0 0 18px rgba(255,255,255,.18);font-size:2.4rem;font-weight:950}
.battleDieAction.federation-CH{color:#17130a;text-shadow:none}

.gameUtilities{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center;margin-top:1rem}
.gameUtilities .secondary{margin-top:0}
.gameUtilityNote{margin:.55rem 0 1rem}
.danger{background:#6a2630;color:#fff;border:1px solid #a94b5b}
.danger:hover{background:#7b2c38}

.turnRecap{position:fixed;z-index:1100;top:1.1rem;left:50%;transform:translateX(-50%);width:min(560px,calc(100vw - 24px));max-height:min(70vh,620px);overflow:auto;border:1px solid rgba(190,207,243,.72);border-left:7px solid #aebbd6;border-radius:15px;background:linear-gradient(145deg,rgba(23,32,52,.99),rgba(7,12,22,.99));box-shadow:0 22px 64px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.07) inset;padding:1rem 1.1rem 1.05rem}
.turnRecap.recap-WY{border-left-color:#4f9cff}.turnRecap.recap-CH{border-left-color:#ffd43e}.turnRecap.recap-OR{border-left-color:#ef5555}.turnRecap.recap-ZE{border-left-color:#72bd62}
.turnRecapClose{position:absolute;right:.65rem;top:.6rem;width:32px;height:32px;padding:0;border-radius:999px;background:#303b52;color:#fff;font-size:1.25rem;line-height:1}
.turnRecapKicker{margin:0 2.5rem .25rem 0;color:#9fb0d1;text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;font-weight:900}
.turnRecap h3{margin:0 2.5rem .22rem 0;font-size:1.12rem}
.turnRecapMeta{margin:0 0 .75rem;color:#c4cfe5;font-size:.86rem}
.turnRecapActions{display:grid;gap:.42rem;margin:0;padding:0;list-style:none}
.turnRecapActions li{position:relative;margin:0;padding:.48rem .55rem .48rem 1.4rem;border:1px solid rgba(119,139,179,.2);border-radius:8px;background:rgba(255,255,255,.035);line-height:1.35}
.turnRecapActions li::before{content:'›';position:absolute;left:.55rem;color:#dce7ff;font-weight:900}

.battleDieResult{position:fixed;z-index:1120;top:1.1rem;left:50%;transform:translateX(-50%);width:min(520px,calc(100vw - 24px));border:1px solid rgba(190,207,243,.78);border-left:8px solid #aebbd6;border-radius:16px;background:radial-gradient(circle at 16% 25%,rgba(76,112,180,.25),transparent 34%),linear-gradient(145deg,rgba(23,32,52,.995),rgba(7,12,22,.995));box-shadow:0 24px 72px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.08) inset;padding:1rem 1.1rem 1.15rem}
.battleDieResult.federation-WY{border-left-color:#4f9cff}.battleDieResult.federation-CH{border-left-color:#ffd43e}.battleDieResult.federation-OR{border-left-color:#ef5555}.battleDieResult.federation-ZE{border-left-color:#72bd62}
.battleDieResultClose{position:absolute;right:.65rem;top:.6rem;width:32px;height:32px;padding:0;border-radius:999px;background:#303b52;color:#fff;font-size:1.25rem;line-height:1}
.battleDieResultKicker{margin:0 2.5rem .65rem 0;color:#aebfe1;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:900}
.battleDieResultBody{display:grid;grid-template-columns:88px 1fr;gap:1rem;align-items:center}
.battleDieResultFace{width:82px;height:82px;display:grid;place-items:center;border:3px solid rgba(255,255,255,.92);border-radius:15px;background:rgba(0,0,0,.3);box-shadow:0 7px 22px rgba(0,0,0,.48),0 0 20px rgba(255,255,255,.16);font-size:2.65rem;font-weight:950}
.battleDieResultFace.combatRoll{font-size:1.7rem;letter-spacing:-.04em}
.battleDieResult h3{margin:0 2.2rem .2rem 0;font-size:1.2rem}.battleDieResultMeta{margin:0 0 .45rem;color:#c4cfe5}.battleDieResultAward{display:block;color:#fff;font-size:1.08rem;line-height:1.35}
@media (max-width:520px){.battleDieResultBody{grid-template-columns:68px 1fr}.battleDieResultFace{width:62px;height:62px;font-size:2rem}}

.dockingExplosionAlert{position:fixed;z-index:1160;top:1.1rem;left:50%;transform:translateX(-50%);width:min(500px,calc(100vw - 24px));overflow:hidden;border:2px solid rgba(255,174,72,.95);border-radius:18px;background:radial-gradient(circle at 50% -20%,rgba(255,205,79,.48),transparent 46%),linear-gradient(145deg,rgba(87,21,9,.995),rgba(20,7,8,.995));box-shadow:0 26px 80px rgba(0,0,0,.84),0 0 42px rgba(255,93,28,.38),0 0 0 1px rgba(255,255,255,.1) inset;padding:1.15rem 1.25rem 1.05rem 6.3rem;animation:dockingExplosionIn .34s cubic-bezier(.2,.9,.25,1.2)}
.dockingExplosionAlert::before{content:'';position:absolute;inset:0;background:linear-gradient(112deg,transparent 25%,rgba(255,255,255,.13) 48%,transparent 68%);transform:translateX(-120%);animation:dockingExplosionFlash .65s ease-out}
.dockingExplosionClose{position:absolute;z-index:2;right:.65rem;top:.6rem;width:32px;height:32px;padding:0;border-radius:999px;background:rgba(39,16,14,.88);color:#fff;font-size:1.25rem;line-height:1}
.dockingExplosionBurst{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:4.35rem;filter:drop-shadow(0 0 15px rgba(255,168,48,.85));animation:dockingExplosionBoom .62s cubic-bezier(.2,.9,.25,1.2)}
.dockingExplosionKicker{margin:0 2.5rem .28rem 0;color:#ffbf68;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:950}.dockingExplosionAlert h3{margin:0 2.2rem .28rem 0;color:#fff3d7;font-size:1.35rem}.dockingExplosionMessage{margin:0;color:#fff;font-size:1.06rem;font-weight:850;line-height:1.38}.dockingExplosionMeta{margin:.42rem 0 0;color:#ffc9a8;font-size:.82rem}
@keyframes dockingExplosionIn{0%{opacity:0;transform:translateX(-50%) scale(.72) rotate(-1.5deg)}65%{opacity:1;transform:translateX(-50%) scale(1.035) rotate(.4deg)}100%{transform:translateX(-50%) scale(1)}}@keyframes dockingExplosionBoom{0%{transform:translateY(-50%) scale(.2) rotate(-25deg)}55%{transform:translateY(-50%) scale(1.25) rotate(8deg)}100%{transform:translateY(-50%) scale(1) rotate(0)}}@keyframes dockingExplosionFlash{to{transform:translateX(130%)}}
@media (max-width:520px){.dockingExplosionAlert{padding-left:5rem}.dockingExplosionBurst{font-size:3.3rem}}
@media (prefers-reduced-motion:reduce){.dockingExplosionAlert,.dockingExplosionAlert::before,.dockingExplosionBurst{animation:none}}

.economicRewardAlert{position:fixed;z-index:1155;top:1.1rem;left:50%;transform:translateX(-50%);width:min(510px,calc(100vw - 24px));overflow:hidden;border:2px solid rgba(255,218,91,.9);border-radius:18px;background:radial-gradient(circle at 18% 0%,rgba(254,223,94,.3),transparent 43%),linear-gradient(145deg,rgba(20,78,61,.995),rgba(6,22,23,.995));box-shadow:0 26px 80px rgba(0,0,0,.82),0 0 38px rgba(88,225,158,.28),0 0 0 1px rgba(255,255,255,.1) inset;padding:1.15rem 1.25rem 1.05rem 6.3rem;animation:economicRewardIn .38s cubic-bezier(.2,.9,.25,1.15)}
.economicRewardAlert::before{content:'';position:absolute;inset:0;background:linear-gradient(112deg,transparent 24%,rgba(255,244,171,.13) 48%,transparent 70%);transform:translateX(-120%);animation:economicRewardShine .8s ease-out}
.economicRewardClose{position:absolute;z-index:2;right:.65rem;top:.6rem;width:32px;height:32px;padding:0;border-radius:999px;background:rgba(8,39,33,.9);color:#fff;font-size:1.25rem;line-height:1}.economicRewardIcon{position:absolute;left:1.15rem;top:50%;transform:translateY(-50%);font-size:3.9rem;filter:drop-shadow(0 0 14px rgba(255,218,91,.55));animation:economicRewardIcon .62s cubic-bezier(.2,.9,.25,1.2)}
.economicRewardKicker{margin:0 2.5rem .28rem 0;color:#ffe17b;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:950}.economicRewardAlert h3{margin:0 2.2rem .28rem 0;color:#edfff6;font-size:1.3rem}.economicRewardMessage{margin:0;color:#fff;font-size:1.06rem;font-weight:850;line-height:1.38}.economicRewardMeta{margin:.42rem 0 0;color:#aee9cf;font-size:.82rem}
@keyframes economicRewardIn{0%{opacity:0;transform:translateX(-50%) translateY(-18px) scale(.8)}70%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.025)}100%{transform:translateX(-50%) scale(1)}}@keyframes economicRewardIcon{0%{transform:translateY(-50%) scale(.25) rotate(-15deg)}60%{transform:translateY(-50%) scale(1.18) rotate(6deg)}100%{transform:translateY(-50%) scale(1)}}@keyframes economicRewardShine{to{transform:translateX(130%)}}
@media (max-width:520px){.economicRewardAlert{padding-left:5rem}.economicRewardIcon{font-size:3.15rem}}
@media (prefers-reduced-motion:reduce){.economicRewardAlert,.economicRewardAlert::before,.economicRewardIcon{animation:none}}

.fedCardPanel{position:fixed;z-index:1140;top:1.1rem;left:50%;transform:translateX(-50%);width:min(620px,calc(100vw - 24px));max-height:min(82vh,720px);overflow:auto;border:1px solid rgba(137,210,255,.78);border-radius:18px;background:radial-gradient(circle at 14% 18%,rgba(38,136,213,.3),transparent 34%),linear-gradient(145deg,rgba(18,35,65,.998),rgba(6,11,23,.998));box-shadow:0 28px 84px rgba(0,0,0,.84),0 0 34px rgba(66,162,255,.2),0 0 0 1px rgba(255,255,255,.08) inset;padding:1.1rem 1.2rem 1rem}
.fedCardPanelClose{position:absolute;right:.7rem;top:.65rem;width:34px;height:34px;padding:0;border-radius:999px;background:#30405f;color:#fff;font-size:1.3rem;line-height:1}
.fedCardPanelKicker{margin:0 2.7rem .75rem 0;color:#8fd5ff;text-transform:uppercase;letter-spacing:.17em;font-size:.72rem;font-weight:950}
.fedCardFeature{display:grid;grid-template-columns:92px 1fr;gap:1rem;align-items:start;padding:1rem;border:1px solid rgba(118,192,255,.38);border-radius:14px;background:linear-gradient(145deg,rgba(45,105,169,.24),rgba(255,255,255,.035))}
.fedCardEmblem{width:82px;aspect-ratio:.72;display:grid;place-items:center;border:2px solid rgba(214,239,255,.9);border-radius:10px;background:linear-gradient(155deg,#1c82c5,#102442 72%);box-shadow:0 8px 24px rgba(0,0,0,.55),0 0 18px rgba(86,182,255,.25) inset;color:#fff;font-size:1.05rem;font-weight:950;letter-spacing:.15em}
.fedCardPanel h3{margin:0 2.2rem .3rem 0;font-size:1.35rem}.fedCardPanelTiming{margin:0 0 .65rem;color:#9edcff;font-size:.8rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.fedCardPanelRules{margin:0;color:#f1f6ff;line-height:1.48;white-space:pre-line}
.fedCardPlayControls{display:grid;gap:.5rem;margin-top:.85rem}.fedCardPlayControls .preRollButtons{margin:0}.fedCardPlayControls select{width:100%;min-height:38px;border:1px solid #536581;border-radius:7px;background:#0a1220;color:#fff;padding:.42rem}.fedCardPlayNote{margin:0;color:#aebbd1;font-size:.8rem;line-height:1.35}
.fedCardHandList{display:flex;gap:.55rem;overflow-x:auto;margin-top:.8rem;padding:.2rem .05rem .55rem}.fedCardHandChoice{flex:0 0 150px;min-height:72px;padding:.65rem;border:1px solid rgba(122,158,206,.42);border-radius:10px;background:rgba(255,255,255,.055);color:#eef5ff;text-align:left;line-height:1.25}.fedCardHandChoice:hover,.fedCardHandChoice.selected{border-color:#93d8ff;background:rgba(65,155,225,.2)}.fedCardHandChoice small{display:block;margin-top:.35rem;color:#aebbd1}
.fedCardPrivacy{margin:.5rem 0 0;color:#9daac1;font-size:.75rem}.fedCardHandOpen{margin-left:.35rem;padding:.2rem .48rem;border:1px solid rgba(129,198,246,.6);border-radius:7px;background:rgba(41,116,177,.2);color:#dff3ff;font-size:.72rem;font-weight:850}
@media (max-width:520px){.fedCardFeature{grid-template-columns:65px 1fr}.fedCardEmblem{width:58px}.fedCardHandChoice{flex-basis:132px}}

.testTableLauncher{margin-top:1.3rem;padding:1rem;border:1px solid #536789;border-radius:12px;background:linear-gradient(145deg,rgba(40,59,91,.72),rgba(10,16,28,.92))}
.testTableLauncher h3{margin:.2rem 0 .4rem}
.testTableSetup{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}
.testTableSetup label{min-width:160px;margin:0}
.testTableSetup select{width:100%;padding:.7rem;border-radius:7px;border:1px solid #4a5570;background:#0b0f18;color:#fff}
.testSeatLinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.9rem}
.testSeatLink{display:block;padding:.8rem 1rem;border-radius:8px;background:#eef3ff;color:#090d15;text-decoration:none;text-align:center;font-weight:850}
.testSeatLink:hover,.testSeatLink:focus-visible{background:#fff;box-shadow:0 0 0 3px rgba(161,184,230,.32)}
.testTableLauncher .secondary{margin-top:.75rem}
@media(max-width:620px){.testSeatLinks{grid-template-columns:1fr}}
