.mesa-board{height:924px;min-height:0}.thumbnail-canvas .mesa-zone{pointer-events:none}.design-footer{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.design-footer p{font-size:13px;line-height:1.5;color:#a7bad0;max-width:64%;margin:0}.design-open{font-size:13px;color:#b6d9ff;font-weight:600;display:flex;gap:7px;align-items:center;white-space:nowrap}.design-open:hover{color:white}.loading{text-align:center;margin:70px;color:#a8c3e0}
.editing{background:#030913 url('/assets/space-table.svg') center/cover fixed}.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px 12px}.editor-heading>a{font-size:14px;color:#bad6f3}.editor-heading>div{display:flex;align-items:center;gap:14px}.editor-heading h1{font-size:24px;font-weight:500;margin:0}.editor-heading nav{display:flex;gap:8px}.editor-heading nav a{display:grid;place-items:center;width:36px;height:36px;border:1px solid #426181;border-radius:7px;background:#0c1b2c;font-size:25px}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 24px 18px}.editor-toolbar>span{color:#a4bad1;font-size:12px;display:flex;align-items:center;gap:9px}.sample-dot{width:6px;height:6px;border-radius:50%;background:#76baff;box-shadow:0 0 10px #579eff}.editor-toolbar>div{display:flex;gap:8px;flex-wrap:wrap}.editor-toolbar button{font-size:13px;padding:9px 12px;background:#0b1c30df}.editor-toolbar .chosen{border-color:#81c4ff;color:#c3e6ff;background:#18476a}.mesa-editor{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding:0 24px;align-items:start}.mesa-stage{min-width:0}.mesa-stage:fullscreen{background:#030913 url('/assets/space-table.svg') center/cover;padding:16px;overflow:auto}.mesa-stage:fullscreen .mesa-board{min-height:max(940px,calc(100vh - 32px))}.mesa-settings{display:none;min-width:0;background:#061321f2;border:1px solid #406688;border-radius:12px;padding:18px;position:sticky;top:15px;max-height:calc(100vh - 30px);overflow:auto;box-shadow:0 18px 50px #0008}.settings-open .mesa-editor{grid-template-columns:minmax(0,1fr) 290px}.settings-open .mesa-settings{display:block}.settings-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}.settings-title h2{font-size:17px;font-weight:500;margin:0}.settings-title button{border:0;background:transparent;padding:4px;font-size:25px}.settings-hint{color:#92b0ce;font-size:12px;line-height:1.6;padding-bottom:14px;border-bottom:1px solid #294963}.mesa-settings label{display:grid;gap:8px;font-size:13px;color:#c0d2e4;margin:16px 0}.mesa-settings label output{color:#7dbbfa;float:right;font-size:12px}.mesa-settings input[type=range]{width:100%;accent-color:#77bbff;margin:0;cursor:pointer}.mesa-settings select{width:100%;padding:9px;background:#0b1e32;border:1px solid #3d5b77;color:#e5f1ff;border-radius:6px;font-size:13px}.mesa-settings .check-setting{display:flex;align-items:center;gap:9px}.check-setting input{accent-color:#7bbbff;width:16px;height:16px}.mesa-settings details{font-size:12px;color:#a9c6e2;border-top:1px solid #2c4861;padding:15px 0}.mesa-settings summary{cursor:pointer;line-height:1.5}.mesa-settings details button{width:100%;font-size:13px}.settings-footer{display:grid;gap:12px;margin-top:12px}.settings-footer button{font-size:12px}.settings-footer small{font-size:11px;color:#8ca4bd;text-align:center}.editor-note{font-size:12px;color:#90a9c3;margin:18px 24px 30px}.mesa-board{--card-size:84px;--space:12px;--panel-alpha:.76;--turn-accent:#79bdff;display:grid;gap:var(--space);min-height:940px;height:calc(100vh - 220px);min-width:0;padding:0;background:transparent;position:relative}.mesa-board[data-turn=dark]{--turn-accent:#ff7089}.mesa-zone{min-width:0;min-height:0;position:relative;overflow:hidden;border:1px solid #43678370;border-radius:10px;padding:14px;background:rgb(5 16 29 / var(--panel-alpha));backdrop-filter:blur(4px);box-shadow:0 8px 22px #0003;transition:border-color .2s,box-shadow .2s}.zone-enemy{border-color:#b1506469}.zone-own{border-color:#5e9ad086}.mesa-board[data-side=dark] .zone-enemy{border-color:#5e9ad086}.mesa-board[data-side=dark] .zone-own{border-color:#b1506469}.zone-grip{position:absolute;top:4px;right:5px;padding:3px 6px;background:#091828;border:1px solid #3b587350;display:flex;align-items:center;gap:6px;z-index:6;color:#83a0ba;font-size:10px;cursor:grab;opacity:0;transition:opacity .15s}.zone-grip span:not(.mesa-icon){display:none}.mesa-zone:hover .zone-grip,.zone-grip:focus-visible,.moving-zone .zone-grip{opacity:1}.zone-grip:active{cursor:grabbing}.moving-zone .mesa-zone{outline:1px dashed #7096b8}.mesa-zone.drop-target{outline:3px solid var(--turn-accent);background:#1c385ddd}.mesa-squad{height:100%;display:grid;grid-template-rows:28px minmax(0,1fr);gap:10px;min-height:0;--side-accent:#83c1ff}.mesa-squad.dark{--side-accent:#ff8195}.mesa-player-line{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--side-accent);font-size:15px;border-bottom:1px solid color-mix(in srgb,var(--side-accent) 25%,transparent);padding-bottom:8px;line-height:1}.mesa-player-line strong{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mesa-player-line small{font-size:11px;font-weight:400}.mesa-player-line>span{display:flex;align-items:center;gap:9px;font-size:13px}.online-dot{width:5px;height:5px;background:var(--side-accent);border-radius:50%;box-shadow:0 0 8px var(--side-accent)}.mesa-field-content{display:grid;grid-template-columns:calc(var(--card-size)*1.38) minmax(0,1fr) 96px;gap:14px;min-height:0}.mesa-objectives,.mesa-units,.mesa-resources{display:flex;flex-direction:column;min-width:0;min-height:0;gap:7px}.zone-caption{font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:#829bb6;flex:none}.objective-cards{display:flex;flex-direction:column;gap:8px;overflow:auto;padding:3px 4px 8px;min-height:0}.mesa-card{position:relative;display:block;flex:none;width:var(--card-size);border:1px solid #839bb02e;border-radius:5px;background:#02060b;padding:0;line-height:0;box-shadow:0 4px 12px #0005;transition:transform .16s,box-shadow .16s}.mesa-card:hover{background:#02060b;border-color:#abcff5;box-shadow:0 0 12px #548ce955;transform:translateY(-3px)}.mesa-card>img{width:100%;aspect-ratio:5/7;object-fit:contain;display:block;border-radius:4px}.mesa-card.is-objective{width:calc(var(--card-size)*1.32)}.scan-landscape{display:block;width:100%;aspect-ratio:1.4;position:relative;overflow:hidden;border-radius:4px;background:#05080e}.scan-landscape>img{display:block;width:100%;height:100%;object-fit:contain}.scan-landscape>img.sideways{position:absolute;width:71.4286%;height:140%;left:50%;top:50%;transform:translate(-50%,-50%) rotate(90deg)}.unit-cards{display:flex;gap:11px;overflow:auto;align-items:start;min-height:0;flex:1;padding:7px 5px 12px;scrollbar-gutter:stable}.mesa-stack{position:relative;display:flex;flex-direction:column;flex:none;gap:4px;min-width:0;padding-bottom:3px}.unit-name{max-width:var(--card-size);font-size:10px;color:#adbfce;line-height:1.25;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:center}.mesa-stack:has(.mesa-attachment){padding-right:13px;min-height:calc(var(--card-size)*1.9)}.mesa-attachment{display:flex;align-items:end;gap:3px;position:relative;margin-top:-14px;margin-left:12px}.mesa-attachment .mesa-card{width:calc(var(--card-size)*.76);box-shadow:0 4px 12px #0009;border-color:#78b7e5}.mesa-attachment>span{font-size:9px;color:#c1daf2;writing-mode:vertical-rl;align-self:center;letter-spacing:.05em}.mesa-stack:has(.mesa-attachment)>.mesa-card{z-index:2}.mesa-tokens{position:absolute;bottom:5px;left:3px;right:3px;display:flex;justify-content:center;gap:4px;pointer-events:none}.mesa-tokens>span{display:flex;align-items:center;position:relative;filter:drop-shadow(0 2px 3px #000);line-height:1}.mesa-tokens img{width:23px;height:23px;object-fit:contain}.mesa-tokens b{position:absolute;inset:0;display:grid;place-items:center;font-size:15px;font-weight:700;color:#fff;text-shadow:0 0 3px #000,0 0 3px #000}.affiliation-resource{display:flex;align-items:center;gap:8px;margin-bottom:6px}.affiliation-resource .mesa-card{width:35px}.affiliation-resource>span{font-size:12px;color:#d8e9fb;white-space:nowrap}.affiliation-resource .mesa-icon{font-size:12px;min-width:12px}.pile-row{display:flex;gap:5px;flex-wrap:wrap;align-content:start;overflow:auto;min-height:0;padding:3px 0}.mesa-pile{padding:0;background:transparent;border:0;display:flex;flex-direction:column;align-items:center;gap:4px;color:#95acc4;width:40px;font-size:9px;flex:none}.mesa-pile:hover{background:transparent;color:white}.pile-image{width:34px;position:relative;display:block;box-shadow:3px 3px 0 #223548,5px 5px 0 #0c1825;border-radius:3px;line-height:0}.pile-image>img{width:100%;aspect-ratio:5/7;object-fit:contain;display:block;border-radius:3px}.pile-image b{position:absolute;bottom:-4px;right:-5px;display:grid;place-items:center;line-height:1;background:#132c44e8;border:1px solid #6a95b9;border-radius:12px;min-width:21px;height:20px;color:#eff8ff;font-size:11px}.allied-seats{display:flex;gap:8px;flex-wrap:wrap;color:#94b0ca;font-size:10px;padding-top:7px;border-top:1px solid #36506a;line-height:1.5}.mesa-board[data-objectives=right] .mesa-field-content{grid-template-columns:96px minmax(0,1fr) calc(var(--card-size)*1.38)}.mesa-board[data-objectives=right] .mesa-objectives{grid-column:3;grid-row:1}.mesa-board[data-objectives=right] .mesa-units{grid-column:2;grid-row:1}.mesa-board[data-objectives=right] .mesa-resources{grid-column:1;grid-row:1}.mesa-board:is([data-objectives=top],[data-objectives=bottom]) .mesa-field-content{grid-template-columns:minmax(0,1fr) 96px;grid-template-rows:auto minmax(0,1fr);gap:9px 12px}.mesa-board:is([data-objectives=top],[data-objectives=bottom]) .mesa-objectives{grid-column:1/-1;max-height:calc(var(--card-size)*.92);min-height:0}.mesa-board:is([data-objectives=top],[data-objectives=bottom]) .objective-cards{flex-direction:row;gap:8px;overflow-x:auto;flex:none;padding-bottom:5px}.mesa-board:is([data-objectives=top],[data-objectives=bottom]) .mesa-objectives .zone-caption{display:none}.mesa-board:is([data-objectives=top],[data-objectives=bottom]) .mesa-units{grid-column:1}.mesa-board:is([data-objectives=top],[data-objectives=bottom]) .mesa-resources{grid-column:2}.mesa-board[data-objectives=bottom] .mesa-field-content{grid-template-rows:minmax(0,1fr) auto}.mesa-board[data-objectives=bottom] .mesa-objectives{grid-row:2}.mesa-board[data-objectives=bottom] .mesa-units,.mesa-board[data-objectives=bottom] .mesa-resources{grid-row:1}.zone-enemyhand{padding:6px 14px}.hidden-hand-line{display:flex;align-items:center;justify-content:space-between;gap:12px;height:100%;color:#acbfd4;font-size:11px}.hidden-hand-line>.mesa-backs{flex:1;justify-content:center;min-width:0}.opponent-label{font-size:11px;color:#8ca5bf;white-space:nowrap}.mesa-backs{display:flex;position:relative;align-items:center;justify-content:center;gap:0;overflow:hidden;padding:4px 8px;height:100%;min-width:0}.mesa-backs>img{width:34px;height:46px;object-fit:contain;border-radius:3px;margin-left:-12px;filter:drop-shadow(1px 2px 3px #0009)}.mesa-backs>img:first-child{margin-left:0}.count-badge{display:grid;place-items:center;min-width:23px;height:23px;background:#0c2137;border:1px solid #608aad;border-radius:50%;font-size:11px;margin-left:8px;color:#e1f0ff;flex:none}.zone-hand{display:flex;flex-direction:column;gap:9px;min-height:0;border-color:#4c7a9a91}.hand-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.hand-title strong{font-weight:500;letter-spacing:.08em;text-transform:uppercase}.hand-title strong>span{font-weight:400;color:#b8d8ff;margin-left:5px}.hand-title>span{font-size:10px;color:#8da8c2}.mesa-hand{display:flex;gap:8px;overflow:auto;min-height:0;padding:5px 7px 12px;align-items:start;flex:1}.mesa-board[data-hand=column] .mesa-hand{flex-direction:column;align-items:center;gap:10px;overflow:auto}.mesa-board[data-hand=column] .zone-hand{padding:15px 8px}.mesa-board[data-hand=column] .hand-title{justify-content:center}.mesa-board[data-hand=column] .hand-title>span{display:none}.mesa-board[data-hand=grid] .mesa-hand{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--card-size),1fr));align-content:start;justify-items:center;gap:9px}.mesa-board[data-hand=fan] .mesa-hand{justify-content:center;align-items:end;gap:0;padding:18px 15px 14px;overflow:auto}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card{margin-left:calc(var(--card-size)*-.34);transform-origin:50% 140%;transform:rotate(var(--fan-angle,0deg));transition:transform .2s;flex:none}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card:first-child{margin-left:0;--fan-angle:-9deg}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card:nth-child(2){--fan-angle:-6deg}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card:nth-child(3){--fan-angle:-3deg}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card:nth-child(5){--fan-angle:3deg}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card:nth-child(6){--fan-angle:6deg}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card:nth-child(7){--fan-angle:9deg}.mesa-board[data-hand=fan] .mesa-hand>.mesa-card:hover{z-index:4;transform:translateY(-10px) rotate(0)}.zone-command{padding:8px;container-type:size}.mesa-command{height:100%;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.mesa-command .holo-dial{width:68px;height:68px;flex:none;border-radius:50%;border:1px solid var(--turn-accent);position:relative;display:grid;place-items:center;background:#020b17;box-shadow:0 0 20px #448cef35;overflow:hidden}.mesa-command .holo-orbit{position:absolute;inset:3px;border-radius:50%;overflow:hidden;animation:mesa-orbit 45s linear infinite;filter:grayscale(1) sepia(1) saturate(4) hue-rotate(168deg);opacity:.68}.mesa-command .holo-orbit img{width:100%;height:100%;object-fit:cover}.mesa-command .holo-dial strong{font-size:29px;z-index:1;line-height:1;text-shadow:0 0 12px #57a8ff,0 0 4px #000}.mesa-command .holo-dial small{position:absolute;bottom:5px;font-size:9px;z-index:1;color:#ccedff}.mesa-command .force-hologram{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--turn-accent);padding:5px 7px;border:1px solid color-mix(in srgb,var(--turn-accent) 40%,transparent);border-radius:6px;animation:mesa-force 4s ease-in-out infinite}.mesa-command .force-hologram img{width:42px;height:27px;object-fit:cover;border-radius:3px}.turn-label{font-size:10px;color:var(--turn-accent);display:flex;align-items:center;gap:6px;white-space:nowrap}.turn-label i{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}@container (max-width:180px){.mesa-command{flex-direction:column;gap:12px}.mesa-command .holo-dial{width:83px;height:83px}.mesa-command .holo-dial strong{font-size:35px}}@container (max-height:80px){.mesa-command{flex-direction:row;gap:8px;flex-wrap:nowrap}.mesa-command .holo-dial{width:44px;height:44px}.mesa-command .holo-dial strong{font-size:23px}.mesa-command .holo-dial small{display:none}.mesa-command .force-hologram span,.mesa-command .turn-label{display:none}}.zone-edge{display:flex;flex-direction:column;gap:6px;padding:9px 14px;border-color:color-mix(in srgb,var(--turn-accent) 50%,#17293a)}.edge-title{display:flex;gap:8px;align-items:center;justify-content:start;font-size:12px;color:#d4e9ff;flex:none}.edge-title .mesa-icon{font-size:15px}.edge-status{font-size:9px;color:#8daac5;margin-left:auto}.mesa-edge{display:flex;align-items:center;justify-content:center;gap:14px;min-height:0;flex:1}.edge-player{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;color:#8bc3ff;flex:1}.edge-player.dark{color:#ff869b}.edge-player>span,.edge-player>b{font-size:10px;white-space:nowrap}.edge-player>b{font-weight:400}.edge-player .mesa-backs{height:50px;padding:0;flex:none}.edge-player .count-badge{display:none}.edge-vs{font-size:10px;letter-spacing:.1em;color:#66809c}.skin-orbit .mesa-edge,.skin-corridor .mesa-edge{flex-direction:column;justify-content:center;gap:30px}.skin-orbit .edge-player,.skin-corridor .edge-player{flex-direction:column;flex:none;gap:14px}.skin-orbit .edge-player .mesa-backs,.skin-corridor .edge-player .mesa-backs{height:85px}.skin-orbit .mesa-backs>img,.skin-corridor .zone-edge .mesa-backs>img{width:52px;height:73px}.skin-orbit .edge-title,.skin-corridor .edge-title{flex-wrap:wrap;justify-content:center}.skin-orbit .edge-status,.skin-corridor .edge-status{margin-left:0}.zone-phase{padding:8px 14px;display:flex;align-items:center;border-color:color-mix(in srgb,var(--turn-accent) 55%,transparent)}.mesa-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;flex-wrap:wrap}.phase-indicator{font-size:14px;font-weight:500;display:flex;align-items:center;gap:12px;color:#e9f4ff}.phase-indicator small{font-size:9px;color:#9fb8cf;letter-spacing:.1em;font-weight:400}.icon-control{padding:6px 9px;background:#091b2de6}.side-primary{font-size:12px;padding:8px 12px;color:#06111c;background:#80c4ff;border-color:#80c4ff;font-weight:600;white-space:nowrap}.side-primary.dark{background:#ff8197;border-color:#ff8197;color:#230810}.side-primary:hover{background:#afdcff;color:#051326}.side-primary.dark:hover{background:#ffafbd;color:#230810}.zone-log{display:flex;flex-direction:column;gap:12px;overflow:auto}.history-title{font-size:12px;color:#c8dff5;display:flex;gap:7px;align-items:center}.mesa-history{padding:0 0 0 14px;margin:0;color:#bbcde0;font-size:11px;line-height:1.5;flex:1}.mesa-history li{padding:9px 0;border-bottom:1px solid #30507155}.mesa-history li::marker{font-size:8px;color:#718ea8}.mesa-history li>span{display:block;font-size:9px;color:#6e9ec9;margin-bottom:4px}.history-bottom{font-size:9px;color:#69869f;padding-top:8px}.mesa-board[data-history=off] .zone-log{visibility:hidden;pointer-events:none}.skin-orbit .zone-log,.skin-corridor .zone-log{flex-direction:row;align-items:start}.skin-orbit .mesa-history,.skin-corridor .mesa-history{display:flex;gap:20px;overflow:auto;list-style:none;padding:0}.skin-orbit .mesa-history li,.skin-corridor .mesa-history li{min-width:130px;padding:2px 0;border:0}.skin-orbit .history-bottom,.skin-corridor .history-bottom{display:none}.skin-bridge .mesa-zone{border-radius:5px}.skin-frontline .mesa-zone{border-radius:3px;box-shadow:none;border-left-width:3px}.skin-tactical .zone-edge{background:linear-gradient(100deg,#102841d9,#391526d9);border-color:var(--turn-accent)}.skin-warroom .mesa-zone{border-radius:12px;border-top-width:2px}.skin-horizon .mesa-zone{background:rgb(3 13 25 / calc(var(--panel-alpha)*.78));border-left:0;border-right:0;border-radius:0;box-shadow:none;backdrop-filter:blur(2px)}.skin-horizon .zone-grip{background:#091725}.skin-cockpit .mesa-zone{border-radius:18px 5px 18px 5px}.skin-corridor .mesa-zone{border-radius:6px}.skin-modular .mesa-zone{border-style:dashed;border-radius:8px}.skin-modular .zone-grip{opacity:.55}.mesa-board[data-motion=off] *{animation:none!important;transition:none!important}.mesa-board[data-turn=light] .mesa-squad.light .mesa-player-line strong,.mesa-board[data-turn=dark] .mesa-squad.dark .mesa-player-line strong{text-shadow:0 0 16px currentColor}
.mesa-team-fields{display:flex;flex-direction:column;gap:16px;height:100%;overflow:auto;padding-right:6px;scrollbar-gutter:stable}.mesa-team-fields>.mesa-squad{min-height:270px;height:270px;flex:none}

.is-editable .zone-enemy,.is-editable .zone-own{overflow:auto}.is-editable .mesa-squad{min-width:320px}

/* Frente clásico: mandos compactos sobre un historial lateral legible. */
.skin-classic .mesa-command{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px 12px;align-content:center;justify-items:center}
.skin-classic .mesa-command .holo-dial{width:54px;height:54px}
.skin-classic .mesa-command .holo-dial strong{font-size:25px}
.skin-classic .mesa-command .holo-dial small{font-size:9px;bottom:3px}
.skin-classic .mesa-command .force-hologram{font-size:12px;gap:6px;padding:6px}
.skin-classic .mesa-command .force-hologram>span{display:none}
.skin-classic .mesa-command .turn-label{grid-column:1/-1;font-size:12px}
.skin-classic .history-title{font-size:16px}
.skin-classic .mesa-history{font-size:14px;line-height:1.6;padding-left:17px}
.skin-classic .mesa-history li{padding:8px 0}
.skin-classic .mesa-history li>span{font-size:11px;color:#92b8dc;margin-bottom:5px}
.skin-classic .history-bottom{font-size:11px}
.skin-classic .mesa-actions{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;gap:10px 5px}
.skin-classic .phase-indicator{grid-column:1/-1;grid-row:1;flex-direction:row;justify-content:space-between;gap:5px;font-size:16px}
.skin-classic .phase-indicator small{display:block;font-size:11px}
.skin-classic .mesa-actions [data-action=demo-undo]{grid-column:1;grid-row:2;padding:6px 3px}
.skin-classic .mesa-actions [data-action=demo-history]{grid-column:3;grid-row:2;padding:6px 3px}
.skin-classic .mesa-actions [data-action=demo-next]{grid-column:2;grid-row:2;padding:8px 5px;font-size:11px}

/* Las pilas acompañan a la mano, dejando el campo para cartas en juego. */
.skin-classic .mesa-field-content{grid-template-columns:calc(var(--card-size)*1.32 + 20px) minmax(0,1fr)}
.skin-classic .objective-cards{overflow-x:hidden;overflow-y:auto}
.skin-classic[data-objectives=right] .mesa-field-content{grid-template-columns:minmax(0,1fr) calc(var(--card-size)*1.32 + 20px)}
.skin-classic[data-objectives=right] .mesa-objectives{grid-column:2}
.skin-classic[data-objectives=right] .mesa-units{grid-column:1}
.skin-classic:is([data-objectives=top],[data-objectives=bottom]) .mesa-field-content{grid-template-columns:minmax(0,1fr)}
.skin-classic:is([data-objectives=top],[data-objectives=bottom]) .mesa-objectives{max-height:none}
.skin-classic:is([data-objectives=top],[data-objectives=bottom]) .objective-cards{flex-wrap:wrap}
.skin-classic .zone-hand{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr);gap:7px 14px}
.skin-classic .hand-title{grid-column:1;grid-row:1}
.skin-classic .mesa-hand{grid-column:1;grid-row:2}
.skin-classic .zone-hand>.hand-dock{grid-column:2;grid-row:1/3;align-self:center}
.hand-dock .pile-row{overflow:visible;gap:4px}
.hand-dock .affiliation-resource{justify-content:center}
.skin-classic .hidden-hand-line{gap:10px}
.skin-classic .opponent-label{display:none}
.skin-classic .hand-dock{display:flex;align-items:center;gap:8px;border-left:1px solid #42658570;padding-left:10px;flex:none}
.skin-classic .hand-dock .affiliation-resource{margin:0}
.skin-classic .hand-dock .affiliation-resource .mesa-card{width:24px}
.skin-classic .hand-dock .affiliation-resource>span{font-size:10px}
.skin-classic .hand-dock .pile-row{padding:0;gap:6px}
.skin-classic .hand-dock .mesa-pile{width:34px;font-size:9px;gap:2px}
.skin-classic .hand-dock .pile-image{width:23px}
.skin-classic .hand-dock .pile-image b{height:16px;min-width:17px;font-size:10px;bottom:0}
.skin-classic .mesa-edge{flex-direction:column;justify-content:center;gap:12px}
.skin-classic .edge-player{flex-direction:column;flex:none;gap:5px}
.skin-classic .edge-title{flex-wrap:wrap;gap:5px}
.skin-classic .edge-status{flex-basis:100%;margin-left:0}
.edge-self-cards .is-edge-card{width:34px;height:46px;margin-left:-12px}
.edge-self-cards .is-edge-card:first-child{margin-left:0}
.edge-self-cards .is-edge-card>img{height:100%}
.skin-orbit .edge-self-cards .is-edge-card,.skin-corridor .edge-self-cards .is-edge-card{width:52px;height:73px}

@keyframes mesa-orbit{to{transform:rotate(360deg)}}
@keyframes mesa-force{50%{box-shadow:0 0 15px #3c88d536}}
body[data-live-table=true]{background:#030913 url('/assets/space-table.svg') center/cover fixed}
.live-match{padding:16px 20px 30px;overflow-x:auto}
.live-match .mesa-board{min-width:960px;height:auto}
.live-match .zone-enemy,.live-match .zone-own{overflow:auto}
.live-match .mesa-squad{min-width:0}
.live-table .table-card{display:block;position:relative;flex:none;width:var(--card-size);min-width:var(--card-size);height:auto;max-width:none;padding:0;border-radius:5px;border:1px solid #839bb02e;background:#02060b;line-height:0;box-shadow:0 4px 12px #0005}
.live-table .table-card>img{width:100%;height:auto;aspect-ratio:5/7;object-fit:contain;display:block}
.live-table .table-card.objective{width:calc(var(--card-size)*1.32);min-width:calc(var(--card-size)*1.32)}
.live-table .table-card .scan-landscape>img{height:100%;width:100%}
.live-table .table-card .scan-landscape>img.sideways{width:71.4286%;height:140%}
.live-table .table-card.selected{outline:2px solid var(--turn-accent);outline-offset:2px}
.live-table .attachment-row{padding-left:12px;display:flex;gap:4px;margin-top:-10px;position:relative}
.live-table .attachment-row .table-card{width:calc(var(--card-size)*.76);min-width:calc(var(--card-size)*.76)}
.live-table .card-stack{display:flex;flex-direction:column;gap:5px;flex:none}
.live-table .card-stack>.table-card{z-index:1}
.live-table .tokens{line-height:1;min-height:0;position:absolute;bottom:4px;left:2px;right:2px;background:transparent;gap:3px!important;pointer-events:none}
.live-table .tokens>span{position:relative;padding:0!important;font-size:14px!important}
.live-table .tokens .game-token{width:23px!important;min-width:23px!important;height:23px!important}
.live-table .phase-actions{position:static;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;border:0;min-height:0;background:transparent;box-shadow:none}
.live-table .phase-actions button{white-space:normal;font-size:13px;padding:7px 9px;width:100%}
.live-table .phase-actions>.muted{font-size:12px;line-height:1.4}
.live-table .phase-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:16px}
.live-table .phase-heading small{font-size:11px;color:#9fb8cf;white-space:nowrap}
.live-table .zone-phase{display:block;overflow:auto}
.live-table .phase-tools{display:flex;align-items:center;gap:5px;margin-top:8px}
.live-table .phase-tools button{padding:4px 7px;font-size:12px}
.live-table .zone-log .mesa-history{list-style:none;padding:0;font-size:14px}
.live-table .history-entry strong{display:block;font-size:11px;color:#92b8dc;margin-bottom:3px}
.live-table .history-entry{padding:8px 0;border-bottom:1px solid #30507155;line-height:1.5}
.live-table .zone-log details{font-size:12px}
.live-table .zone-log form{display:flex;gap:4px;flex-wrap:wrap}
.live-table .zone-log input{width:100%;min-width:0;font-size:12px;padding:6px}
.live-table .zone-log .detail-actions{margin:8px 0;gap:5px}
.live-table .zone-log .detail-actions button{font-size:11px;white-space:normal;padding:6px}
.live-table .zone-log label{font-size:11px}
.live-table .zone-log select,.live-table .zone-log input{max-width:100%}
.live-table .hand-dock .affiliation-resource .table-card{width:24px;min-width:24px}
.live-table .mesa-hand>.table-card{flex:none}
.live-table[data-hand=fan] .mesa-hand>.table-card{margin-left:calc(var(--card-size)*-.34);transform-origin:50% 140%;transform:rotate(var(--fan-angle,0deg))}
.live-table[data-hand=fan] .mesa-hand>.table-card:first-child{margin-left:0;--fan-angle:-9deg}
.live-table[data-hand=fan] .mesa-hand>.table-card:nth-child(2){--fan-angle:-6deg}
.live-table[data-hand=fan] .mesa-hand>.table-card:nth-child(3){--fan-angle:-3deg}
.live-table[data-hand=fan] .mesa-hand>.table-card:nth-child(5){--fan-angle:3deg}
.live-table[data-hand=fan] .mesa-hand>.table-card:nth-child(6){--fan-angle:6deg}
.live-table[data-hand=fan] .mesa-hand>.table-card:nth-child(n+7){--fan-angle:9deg}
.live-table[data-hand=fan] .mesa-hand>.table-card:hover{z-index:4;transform:translateY(-10px) rotate(0)}
.live-table .concealed-hand{height:100%;max-height:48px;min-height:0;flex:1;justify-content:center;margin:0;padding:0;overflow:hidden}
.live-table .concealed-card{width:34px;min-width:34px;height:46px;margin-left:-12px}
.live-table .concealed-card>img{height:46px;width:34px;object-fit:contain}
.live-table .zone-enemyhand{padding:6px 14px}
.live-table .live-hand-line{display:flex;height:100%;align-items:center;justify-content:space-between;gap:12px}
.live-table .allied-hands{display:flex;flex-direction:column;gap:16px}
.live-table .edge-active{border:1px solid var(--turn-accent);padding:10px;border-radius:8px;background:linear-gradient(100deg,#112841ab,#391624a6);margin-top:10px}
.live-table .edge-active h3{margin:0 0 8px;font-size:13px}
.live-table .edge-active .edge-teams{display:flex;gap:18px;align-items:start}
.live-table .edge-active .edge-team{flex:1;min-width:0;padding:0;border:0;font-size:12px}
.live-table .edge-active .edge-team strong{font-size:12px}
.live-table .edge-active .row{display:flex;gap:6px;overflow:auto;padding:8px 0;min-height:0}
.live-table .edge-active .table-card,.live-table .edge-history-card{width:42px;min-width:42px}
.live-table .edge-active .table-card img{height:59px}
.live-table .edge-history-list{display:flex;flex-direction:column;gap:12px;overflow:auto;min-height:0;font-size:12px}
.live-table .edge-history-entry{border-bottom:1px solid #42658570;padding-bottom:10px}
.live-table .edge-history-entry h3{font-size:12px;margin:0 0 8px}
.live-table .edge-history-team{margin-top:6px}
.live-table .edge-history-team>span{display:block;font-size:11px;color:#a9c4de}
.live-table .edge-history-team .row{display:flex;gap:4px;overflow:auto;padding:5px 0;min-height:0}
.live-table .edge-history-card{background:none;padding:0;flex:none;border:0}
.live-table .edge-history-card img{width:100%;height:59px;object-fit:contain;display:block}
.live-table .zone-edge>label{font-size:11px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.live-table .zone-edge select{font-size:12px;padding:4px 6px;max-width:100%}
.live-table .live-extra-zones{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:11px}
.live-table .live-extra-zones .row{display:flex;gap:6px;overflow:auto}
.live-table .zone-own:has(.edge-active) .mesa-squad{height:auto}
.live-table .zone-own:has(.edge-active) .mesa-field-content{min-height:290px}
.live-table .objective-cards .objective-stack{flex:none}
.live-table .table-card img{transform:none}
.live-table .table-card .scan-landscape>img.sideways{transform:translate(-50%,-50%) rotate(90deg)}
@media(max-width:760px){.live-match{padding:10px}.live-match .mesa-board{min-width:960px}}
@media(prefers-reduced-motion:reduce){.live-table *{animation:none!important;transition:none!important}}

.live-room-bar{display:flex;align-items:center;gap:14px;padding:10px 20px;color:#b9cce3;font-size:13px;flex-wrap:wrap}
.live-room-bar>span:first-child{margin-right:auto;color:#e3f1ff}
.live-room-bar button{font-size:12px;padding:6px 10px}
.live-table .mesa-team-fields>.mesa-squad{min-height:360px;height:360px}
.live-table .live-hand-line{min-width:0}
.live-table .zone-enemyhand:has(.live-hand-line+.live-hand-line){display:flex;gap:16px;overflow-x:auto}
.live-table .zone-enemyhand>.live-hand-line{flex:1;min-width:320px}
.live-table .challenge-hunt{display:flex;flex-direction:column}
.live-table .challenge-hunt .mesa-objectives{max-height:none}
.live-table .challenge-hunt .unit-cards{min-height:180px}
.live-table .hunt-grid .row{min-height:0;padding:0;gap:6px}
.live-table .allied-hands{grid-column:1/-1}
.live-table .zone-hand{overflow:auto}
.live-table .control-panel{padding:0;display:block;background:transparent;border:0;box-shadow:none;margin:8px 0 0}
.live-table .control-copy{display:none}
.live-table .control-actions{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0}
.live-table .control-actions button,.live-table .control-actions select{font-size:13px;padding:7px 8px;width:100%;white-space:normal}
.live-table .unit-card,.live-table .hand-card{width:var(--card-size);min-width:var(--card-size);max-width:var(--card-size);padding:0;flex:none;height:auto;display:block;background:#02060b;border-radius:5px;position:relative;overflow:visible}
.live-table .unit-card .real-card,.live-table .hand-card .real-card{width:100%;height:auto;aspect-ratio:5/7;object-fit:contain;position:static;display:block;border-radius:4px}
.live-table .unit-card .unit-name,.live-table .unit-card .unit-stats,.live-table .hand-card .card-body,.live-table .hand-card .card-cost,.live-table .hand-card .card-unique{display:none}
.live-table .unit-card .unit-top-tokens{position:absolute;inset:auto 3px 4px;background:transparent}
.live-table .unit-card .game-token{width:23px!important;min-width:23px!important;height:23px!important}
.live-table .objective{width:calc(var(--card-size)*1.32);min-width:calc(var(--card-size)*1.32);height:auto;flex:none;padding:0;background:#02060b;display:block;position:relative}
.live-table .objective .real-card{width:100%;height:100%;object-fit:contain}
.live-table .objective .scan-landscape{width:100%;height:auto;aspect-ratio:1.4;position:relative}
.live-table .objective .scan-landscape .sideways{width:71.4286%;height:140%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(90deg)}
.live-table .objective .obj-copy{position:absolute;inset:auto 3px 3px;padding:0;background:transparent}
.live-table .objective .obj-copy>strong,.live-table .objective .obj-top,.live-table .objective .health-track{display:none}
.live-table .objective .obj-bottom{font-size:10px;justify-content:end}
.live-table .objective .obj-bottom small{font-size:10px;background:#06111de6;padding:2px 4px;border-radius:4px}
.live-table .objective.selected,.live-table .unit-card.selected{outline:2px solid var(--turn-accent);outline-offset:2px}
.live-table[data-hand=fan] .mesa-hand>.hand-card{margin-left:calc(var(--card-size)*-.34);transform-origin:50% 140%;transform:rotate(var(--fan-angle,0deg))}
.live-table[data-hand=fan] .mesa-hand>.hand-card:first-child{margin-left:0;--fan-angle:-9deg}
.live-table[data-hand=fan] .mesa-hand>.hand-card:nth-child(2){--fan-angle:-6deg}
.live-table[data-hand=fan] .mesa-hand>.hand-card:nth-child(3){--fan-angle:-3deg}
.live-table[data-hand=fan] .mesa-hand>.hand-card:nth-child(5){--fan-angle:3deg}
.live-table[data-hand=fan] .mesa-hand>.hand-card:nth-child(6){--fan-angle:6deg}
.live-table[data-hand=fan] .mesa-hand>.hand-card:nth-child(n+7){--fan-angle:9deg}
.live-table[data-hand=fan] .mesa-hand>.hand-card:hover{z-index:4;transform:translateY(-10px) rotate(0)}
.live-table .hand-dock .mesa-card{width:24px}

.live-match{padding:12px;overflow-x:auto}
.live-match .mesa-board{height:calc(100dvh - 24px);min-height:788px}
.live-table .mesa-command{grid-template-columns:80px minmax(0,1fr)}
.live-table .mesa-command .holo-dial{width:80px;height:80px}
.live-table .mesa-command .holo-dial strong{font-size:34px}
.live-table .mesa-command .holo-dial small{bottom:5px;font-size:10px}
.live-table .mesa-command .force-hologram img{width:60px;height:38px}
.live-table .mesa-command .force-hologram{padding:5px}
.live-table .zone-enemyhand{display:flex;align-items:center;gap:12px}
.live-table .rival-hand-group{min-width:0;flex:1;display:flex;gap:14px;overflow-x:auto}
.live-table .rival-hand-group>.live-hand-line{min-width:220px;flex:1}
.live-table .live-nav-tools{display:flex;align-items:center;gap:6px;flex:none}
.live-table .live-nav-tools a,.live-table .live-nav-tools button{font-size:12px;padding:6px 8px;border-radius:6px;background:#091b2d99;border:1px solid #42688d;color:#cde6ff}
.live-table .live-nav-tools .close-game-button{color:#ff9caa;border-color:#8c4254;background:#2b112166}
.live-table .phase-heading{font-size:14px}
.live-table .phase-heading small{font-size:10px}
.live-table .zone-phase{padding:6px 10px}
.live-table .phase-actions{margin-top:5px;flex-wrap:nowrap;overflow-x:auto;gap:4px}
.live-table .phase-actions button{width:auto;white-space:nowrap;font-size:11px;padding:5px 7px;flex:none}
.live-table .phase-actions>.muted{font-size:11px}
.live-table .objective-zone{grid-row:1}
.live-table .unit-cards>.edge-active{width:220px;flex:none;margin:0;padding:8px}
.live-table .edge-active .edge-teams{gap:10px}
.live-table .edge-active .row{gap:0}
.live-table .edge-active .row>.table-card{margin-left:-18px}
.live-table .edge-active .row>.table-card:first-child{margin-left:0}
.live-table .zone-own:has(.edge-active) .mesa-squad{height:100%}
.live-table .zone-own:has(.edge-active) .mesa-field-content{min-height:0}
.live-table .hand-dock .affiliation-resource .tokens{display:none}
.live-table .phase-heading>span{display:flex;align-items:center;gap:10px}
@media(min-width:1400px){.live-table .zone-phase{background:rgb(5 16 29 / var(--panel-alpha));border-left:0;margin-left:calc(var(--space)*-1);border-radius:0 10px 10px 0}.live-table .zone-enemyhand{border-right:0;border-radius:10px 0 0 10px}}
/* Adaptive table: objective columns extend into the hand rows. */
.live-table .mesa-zone[hidden]{display:none!important}
.live-table .zone-enemyobjectives{border-color:#b1506469;padding:10px 12px}
.live-table .zone-ownobjectives{border-color:#5e9ad086;padding:10px 12px}
.live-table[data-side=dark] .zone-enemyobjectives{border-color:#5e9ad086}
.live-table[data-side=dark] .zone-ownobjectives{border-color:#b1506469}
.live-table [data-objective-rail]>.mesa-objectives{height:100%;max-height:none;gap:7px}
.live-table [data-objective-rail] .objective-cards{flex-direction:column;gap:6px;padding:1px 0 6px;overflow-x:hidden}
.live-table[data-split-objectives=true] .mesa-field-content{grid-template-columns:minmax(0,1fr)}
.live-table[data-split-objectives=true] .mesa-units{grid-column:1;grid-row:1}
.live-table .zone-enemy,.live-table .zone-own{padding:10px}
.live-table .mesa-squad{gap:6px}
.live-table .unit-cards>.edge-active{width:max-content;min-width:calc(var(--card-size)*2 + 52px);max-width:none;flex:0 0 auto;overflow:visible;padding:8px}
.live-table .edge-active .edge-teams{gap:16px;flex-wrap:nowrap}
.live-table .edge-active .edge-team{flex:none;min-width:var(--card-size)}
.live-table .edge-active .row{gap:6px;overflow:visible;flex-wrap:nowrap;padding:4px 0;align-items:start}
.live-table .edge-active .row>.table-card{width:var(--card-size);min-width:var(--card-size);margin-left:0}
.live-table .edge-active .row>.table-card img{height:auto;aspect-ratio:5/7;object-fit:contain}
.live-table .edge-active h3{font-size:13px;margin:0 0 4px}
.live-table .edge-active p{font-size:11px;line-height:1.3;margin:5px 0 0}
.live-table .edge-active .edge-team>span{display:block;line-height:1.2;font-size:11px}
.live-table .zone-enemyhand{gap:6px;padding:6px 9px}
.live-table .rival-hand-group{justify-content:flex-start;gap:8px}
.live-table .rival-hand-group>.live-hand-line,.live-table .zone-enemyhand>.live-hand-line{flex:0 1 auto;min-width:0;justify-content:flex-start;gap:5px}
.live-table .concealed-hand{flex:0 1 auto;justify-content:flex-start;max-width:210px}
.live-table .live-hand-line .hand-dock{margin-left:0;flex:none}
.live-table .hand-dock{gap:5px}
.live-table .hand-dock .pile-row{gap:5px;flex-wrap:nowrap;overflow:visible}
.live-table .hand-dock .mesa-pile{width:calc(var(--pile-size,32px) + 5px);font-size:9px}
.live-table .hand-dock .pile-image{width:var(--pile-size,32px)}
.live-table .hand-dock .affiliation-resource .table-card,.live-table .hand-dock .affiliation-resource .mesa-card{width:var(--pile-size,32px);min-width:var(--pile-size,32px)}
.live-table .hand-dock .affiliation-resource .table-card img{height:auto}
.live-table .hand-dock .affiliation-resource{gap:3px}
.live-table .hand-dock .affiliation-resource>span{font-size:10px}
.live-table .zone-enemyhand .hand-dock{max-height:100%;overflow-x:auto;overflow-y:hidden}
.live-table .phase-heading-tools{display:flex;align-items:center;gap:5px}
.live-table .phase-heading-tools button{font-size:12px;padding:5px 8px;white-space:nowrap}
.live-table .phase-actions{flex-wrap:wrap;overflow:visible;gap:5px}
.live-table .phase-actions>.muted{line-height:1.2;font-size:11px}
.live-table .control-actions{flex-direction:row;flex-wrap:wrap}
.live-table .control-actions button,.live-table .control-actions select{width:auto;padding:5px 8px;white-space:nowrap}
.live-table .panel-hide{position:absolute;right:6px;top:5px;padding:0 6px;font-size:20px;line-height:24px;background:#091b2d99;border:1px solid #43678370;color:#bdd8f1;z-index:2}
.live-table .zone-log>.history-title,.live-table .zone-edge>.history-title{padding-right:26px}
.live-table .panel-restores{display:flex;gap:4px;flex:none}
.live-table .panel-restores button{font-size:11px;padding:5px 6px;background:#091b2d99;border:1px solid #43678370;color:#bdd8f1}
.live-table[data-history=on] .panel-restores [data-live-panel=history],.live-table[data-edge-history=on] .panel-restores [data-live-panel=edgeHistory]{display:none}
.live-table[data-history=on][data-edge-history=on] .panel-restores{display:none}
.live-table[data-no-rail=true] .zone-command{padding:4px}
.live-table[data-no-rail=true] .mesa-command{grid-template-columns:48px minmax(0,1fr);gap:4px}
.live-table[data-no-rail=true] .mesa-command .holo-dial{width:48px;height:48px}
.live-table[data-no-rail=true] .mesa-command .holo-dial strong{font-size:25px}
.live-table[data-no-rail=true] .mesa-command .holo-dial small{font-size:8px;bottom:1px}
.live-table[data-no-rail=true] .mesa-command .force-hologram img{width:44px;height:28px}
.live-table[data-no-rail=true] .mesa-command .turn-label{font-size:10px}
.effects-dialog{width:min(760px,calc(100vw - 28px))!important;max-width:760px}
.effect-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.effect-tools-group{padding:16px;border:1px solid #42688d70;border-radius:9px;background:#0b203277;display:flex;flex-direction:column;gap:12px}
.effect-tools-group h3{margin:0;font-size:16px;color:#cde6ff}
.effect-tools-group label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}
.effect-tools-group select,.effect-tools-group input[type=number]{width:100px;min-width:0}
.effect-buttons{display:flex;flex-wrap:wrap;gap:7px}
.effect-tools-group button{font-size:13px;padding:8px 10px}
.effect-tools-group small{font-size:12px;color:#9bb8d3;line-height:1.5}
.reserve-adjustment{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #42688d40;padding-top:12px}
.reserve-adjustment label{min-width:0}
.reserve-adjustment input{width:60px!important}
.effect-tools-note{grid-column:1/-1}
.effect-tools-note form{display:flex;gap:8px}
.effect-tools-note input{flex:1;min-width:0}
@media(max-width:600px){.effect-tools-grid{grid-template-columns:1fr}.effect-tools-note form{flex-direction:column}}
.effect-tools-group:nth-child(3){grid-column:1/-1}
.effect-tools-group:nth-child(3)>label{justify-content:flex-start}
/* Navigation, hand and piles are separate groups in the top strip. */
.live-table .zone-enemyhand{gap:18px;padding:8px 12px;border:1px solid #43678370;border-radius:10px;overflow-x:auto;overflow-y:hidden}
.live-table .live-nav-tools{align-self:center;gap:7px;padding-right:15px;border-right:1px solid #43678370}
.live-table .live-nav-tools>a,.live-table .live-nav-tools>button{width:36px;height:36px;display:grid;place-items:center;padding:7px;flex:none}
.live-table .live-nav-tools svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.live-table .live-nav-tools .return-triangle{fill:currentColor;stroke:none;width:18px;height:18px}
.live-table .live-nav-tools .close-game-button{color:#ff657e;border-color:#a34c60;background:#41132490}
.live-table .live-nav-tools .panel-restores{gap:7px;margin-left:5px}
.live-table .live-nav-tools .panel-restores button{height:36px;padding:6px 10px}
.live-table .rival-hand-group{flex:0 1 auto;justify-content:flex-start;gap:16px;overflow:visible;min-width:max-content}
.live-table .rival-hand-group>.live-hand-line,.live-table .zone-enemyhand>.live-hand-line{gap:12px;min-width:max-content;flex:none}
.live-table .zone-enemyhand .hand-dock{overflow:visible;max-height:none;padding-left:12px}
.live-table .zone-enemyhand .concealed-hand{max-width:none;flex:none;overflow:visible;padding:3px}
/* Phase controls share the owner's heading, so they cannot squeeze the rival hand. */
.live-table .mesa-squad:has(>[data-own-player-line]){grid-template-rows:48px minmax(0,1fr)}
.live-table [data-own-player-line]{gap:10px;align-items:center;padding-bottom:5px;overflow:hidden}
.live-table [data-own-player-line]>strong{order:0;flex:none;max-width:180px;font-size:14px}
.live-table [data-own-player-line]>span{order:2;flex:none;margin-left:auto}
.live-table [data-own-player-line]>.zone-phase{order:1;display:flex;gap:14px;flex:1;min-width:0;align-items:center;margin:0;padding:5px 9px;border:1px solid #43678370;border-radius:6px;background:#07152266;box-shadow:none;overflow-x:auto;overflow-y:hidden;height:39px}
.live-table [data-own-player-line] .phase-heading{flex:none;display:flex;gap:12px;white-space:nowrap;line-height:1.2;font-size:13px}
.live-table [data-own-player-line] .phase-heading br{display:none}
.live-table [data-own-player-line] .phase-heading-tools{gap:5px}
.live-table [data-own-player-line] .phase-actions{display:flex;flex:1;gap:7px;flex-wrap:nowrap;align-items:center;margin:0;overflow:visible;min-width:0}
.live-table [data-own-player-line] .phase-actions>.muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;flex:1;font-size:11px}
.live-table [data-own-player-line] .phase-actions>button{flex:none}
.live-table [data-own-player-line] .control-panel{margin:0;padding:0;flex:1;min-width:0}
.live-table [data-own-player-line] .control-actions{display:flex;flex-wrap:nowrap;gap:7px;align-items:center}
.live-table [data-own-player-line] .control-actions>*{flex:none}
/* Advantage cards and all their labels sit on one horizontal band. */
.live-table .unit-cards>.edge-active{display:flex;align-items:center;gap:18px;width:max-content;height:auto;min-height:0;padding:8px;overflow:visible;align-self:start}
.live-table .edge-active .edge-summary{flex:none;width:108px;display:flex;flex-direction:column;gap:5px;line-height:1.35;white-space:normal}
.live-table .edge-active .edge-summary h3{font-size:14px;line-height:1.2;margin:0}
.live-table .edge-active .edge-summary>span,.live-table .edge-active .edge-summary p{font-size:11px;margin:0;line-height:1.35}
.live-table .edge-active .edge-teams{display:flex;gap:18px;align-items:center;flex-wrap:nowrap}
.live-table .edge-active .edge-team{display:flex;flex:none;gap:10px;align-items:center;min-width:0}
.live-table .edge-active .edge-player-info{display:flex;flex-direction:column;gap:6px;width:100px;flex:none;white-space:normal;line-height:1.3}
.live-table .edge-active .edge-player-info strong{display:block;max-width:100%;font-size:12px;overflow-wrap:anywhere}
.live-table .edge-active .edge-player-info span{font-size:11px}
.live-table .edge-active .row{display:flex;align-items:center;padding:0;gap:6px;overflow:visible;min-height:0}
.live-table .edge-active .row>.table-card{width:var(--card-size);height:auto;min-height:0;flex:none;margin:0}
.live-table .edge-active .row>.table-card img{height:auto;aspect-ratio:5/7}
/* Combat roles stay distinct from faction and selection colors. */
.live-table [data-combat-role=attacker]{border:2px solid #ff667e;box-shadow:0 0 0 2px #a81d3c66,0 0 15px #ee375b55}
.live-table [data-combat-role=defender]{border:2px solid #65bdff;box-shadow:0 0 0 2px #1b79bf66,0 0 15px #379fee55}
.combat-role{display:inline-flex!important;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:4px;padding:3px 5px;font-size:10px!important;line-height:1.1;font-weight:600;white-space:nowrap;width:max-content;flex:none;letter-spacing:.02em}
.combat-role.attacker{color:#ff92a4!important;background:#441024e8}
.combat-role.defender{color:#9ed5ff!important;background:#0c2944e8}
.live-table [data-combat-role]>.combat-role{position:absolute;top:4px;left:4px;pointer-events:none;z-index:3;font-size:9px!important}
.live-table .mesa-player-line>.combat-role{margin-left:0;order:0}
.live-table .edge-player-info>.combat-role{width:max-content}
.live-table .edge-summary>small{font-size:10px;color:#c4d8ee;line-height:1.4}
/* Context actions stay beside the card; inspecting a card remains read-only. */
dialog.card-context-menu{position:fixed;inset:auto;margin:0;width:min(320px,calc(100vw - 16px));max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px;border:1px solid #7cbcff;border-radius:10px;box-shadow:0 12px 44px #000b;background:#0b172bf5;overflow:auto}
dialog.card-context-menu::backdrop{background:transparent;backdrop-filter:none}
.card-context-menu .detail-image,.card-context-menu #detail-content>.scan-landscape,.card-context-menu .card-detail,.card-context-menu .help,.card-context-menu .card-open-actions{display:none}
.card-context-menu .detail-title{font-size:16px;margin:0 24px 12px 0}
.card-context-menu .detail-actions,.card-context-menu .dialog-footer{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.card-context-menu .counter-tools{display:flex;flex-wrap:wrap;gap:6px}
.card-context-menu .counter-tools>div{display:flex;gap:6px;align-items:center}
.card-context-menu .dialog-head h2{font-size:16px}
.card-context-menu .dialog-head{margin-bottom:8px}
.card-preview:not(.card-context-menu) #detail-content>.detail-actions,.card-preview:not(.card-context-menu) .counter-tools{display:none}
.card-open-actions{display:block;margin:10px auto 0}
.payment-source{position:relative;outline:2px solid #7dccff;outline-offset:2px;cursor:crosshair!important}
.payment-card{outline:2px dashed #b0d7ff;outline-offset:3px}
.resource-choice{position:absolute;bottom:4px;left:3px;right:3px;z-index:5;background:#09213ff2;color:#e5f5ff;border:1px solid #7dccff;border-radius:4px;padding:4px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:4px;pointer-events:none}
.resource-choice img{width:19px!important;height:19px!important;object-fit:contain!important}
.payment-in-table{flex-wrap:wrap!important;gap:7px!important;overflow:visible!important}
.payment-in-table>strong{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.payment-in-table label{display:flex;align-items:center;gap:5px;font-size:12px}
.payment-in-table input[type=number]{width:56px;padding:5px}
.payment-in-table input:not([type=number]){width:190px;padding:6px}
.payment-in-table small{font-size:11px;color:#acc7e2}
.resource-focus{display:inline-flex;align-items:center;gap:3px}
.resource-choice{flex-wrap:wrap}
.payment-adjustment{position:relative;font-size:11px}
.payment-adjustment[open]{position:relative;background:#0c1c30;z-index:7;padding:8px;border:1px solid #6ba5d1;border-radius:6px}
.payment-adjustment summary{cursor:pointer;color:#b7daf7}
.payment-adjustment input{margin-top:6px}
.live-table:has(.payment-in-table) .hand-dock .affiliation-resource .table-card,.live-table:has(.payment-in-table) .hand-dock .affiliation-resource .mesa-card{width:64px;min-width:64px}
.captured-count{position:absolute;right:3px;top:3px;display:flex;gap:3px;align-items:center;background:#071527e8;border:1px solid #68b5ef;border-radius:4px;padding:3px;color:#fff;font-size:13px;}
.captured-count .icon{width:14px;height:14px;}
.ability-field select[multiple]{min-height:110px;}

/* Public hand counts remain legible even when the card backs overlap. */
.concealed-backs{display:flex;align-items:center;min-width:0;overflow:hidden;padding:3px}
.concealed-count{display:flex;align-items:center;gap:6px;flex:none;color:#d7eaff;font-size:12px;line-height:1.2;padding:4px 8px;background:#071b2ee8;border:1px solid #557fa7;border-radius:6px}
.concealed-count b{font-size:19px;font-weight:700}
.live-table .concealed-hand{gap:10px}
.live-table .concealed-backs{max-width:220px}
.live-table .concealed-backs .concealed-card{margin:0 0 0 -12px}
.live-table .concealed-backs .concealed-card:first-child{margin-left:0}
.live-table .concealed-count{margin-left:2px}

/* The affiliation belongs above its objectives; hand docks contain only piles. */
.live-table .objective-affiliation{display:flex;align-items:center;gap:5px;flex:none;margin:0 0 3px;min-height:0}
.live-table .objective-affiliation .affiliation-horizontal{position:relative;width:calc(var(--card-size)*.94);min-width:calc(var(--card-size)*.94);max-width:100%;padding:0;display:block;flex:none;overflow:visible}
.live-table .objective-affiliation .scan-landscape{width:100%;aspect-ratio:1.4}
.live-table .objective-affiliation .scan-landscape>img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain}
.live-table .objective-affiliation .scan-landscape>img.sideways{width:71.4286%;height:140%;transform:translate(-50%,-50%) rotate(90deg)}
.live-table .objective-affiliation .affiliation-capacity{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;line-height:1;color:#d2e8ff}
.live-table .objective-affiliation .affiliation-capacity .icon{width:18px;height:18px}
.live-table .objective-affiliation.dark .affiliation-capacity{color:#ffabb9}
.live-table .objective-affiliation .tokens{left:0;right:0;bottom:2px}

/* Concentration is permanent game state, independent of the payment preview. */
.live-table .tokens>.focus-counter,.live-table .focus-counter{display:inline-flex;align-items:center;justify-content:center;gap:3px;border:1px solid #bcdae9;border-radius:5px;background:#091d2ff2;color:#fff;box-shadow:0 1px 5px #000c;padding:2px 4px!important;line-height:1;font-size:15px!important;min-height:29px}
.live-table .focus-counter b{font-weight:800;min-width:9px;text-align:center}
.live-table .focus-counter .game-token{width:25px!important;height:25px!important;min-width:25px!important;filter:drop-shadow(0 1px 1px #000)}
.live-table .table-card.exhausted>.real-card,.live-table .affiliation-horizontal.exhausted .scan-landscape{filter:brightness(.7)}

/* A luminous frame and the Valley's crossed sabres identify commitment. */
.live-table .force-committed:not(.payment-source):not(.selected){outline:2px solid #d1e9ff;outline-offset:3px;box-shadow:0 0 13px #70aee866}
.force-commit-badge{position:absolute;right:3px;top:4px;z-index:4;display:grid;place-items:center;width:34px;height:34px;border:1px solid #c0e7ff;border-radius:50%;background:#07192df5;color:#d7efff;box-shadow:0 0 10px #80bfff70;pointer-events:none}
.force-commit-badge .force-commit-icon{width:29px!important;height:29px!important;stroke-width:1.8}
.mesa-squad.dark .force-commit-badge{background:#28101ff5;border-color:#ffc2cb;color:#ffe0e5;box-shadow:0 0 10px #f77e9b66}
.live-table .unit-top-tokens:has(.focus-counter){left:3px;right:3px;bottom:4px;top:auto}

.trench-dial{display:grid;justify-items:center;gap:3px}.trench-dial-target{padding:0;border:1px solid transparent;background:transparent}.trench-dial-target:disabled{opacity:1;cursor:default}.trench-dial.selected .trench-dial-target{border-color:#75c7ff;box-shadow:0 0 12px #3cb9ff70;border-radius:12px}.trench-dial-damage{font-size:.8rem;color:#b9dfff}.live-table .trench-dial .attachment-row{margin:0}.live-table .trench-dial .attachment-row .table-card{width:36px;min-width:36px}

.response-flow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;position:relative}.response-mode{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.response-mode select{width:auto;padding:.35rem}.response-paused{color:#85caff;font-weight:bold}.response-flow-panel{position:fixed;z-index:150;top:25%;right:3%;width:min(440px,90vw);max-height:65vh;overflow:auto;padding:1rem;background:rgba(5,19,34,.97);border:1px solid #78bded;border-radius:10px;box-shadow:0 8px 50px #000b}.response-flow-panel p{font-size:.85rem;color:#bfd2e2}.response-flow-panel button{margin:.2rem}.response-window-list{display:grid;gap:.4rem;max-height:35vh;overflow:auto}.response-window-list button{text-align:left;display:grid;gap:.25rem}.response-window-list small{color:#a9c5dd}

.live-table .response-flow{order:-1;flex:none;flex-wrap:nowrap}.live-table .response-flow button{padding:5px 8px;font-size:12px;white-space:nowrap}.live-table .response-mode{font-size:0}.live-table .response-mode select{font-size:12px;padding:4px;min-height:28px}

.live-table [data-response-delay]{width:auto;font-size:12px;padding:4px;min-height:28px}

/* Keep the action strip in reading order; response settings live in the view dialog. */
.live-table .response-flow{order:0}
.live-table .phase-end-tools{display:flex;gap:5px;flex:none;align-items:center}
.live-table .phase-end-tools button{white-space:nowrap;font-size:12px;padding:5px 8px}
.live-table [data-own-player-line]>.zone-phase{gap:9px}
.live-table [data-own-player-line] .phase-guide{flex:0 1 auto;min-width:0}
.live-table [data-own-player-line] .phase-guide-actor{display:none}
.response-settings{border-top:1px solid #43678370;margin-top:16px;padding-top:10px;display:grid;gap:10px}
.response-settings h3{margin:0;font-size:16px}.response-settings label{display:flex;align-items:center;justify-content:space-between;gap:12px}.response-settings select{width:auto;min-width:130px}

.live-table [data-own-player-line] .phase-guide-heading>strong{display:block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}

.live-table .response-history-group{padding:8px 0;border-bottom:1px solid #30507155}.live-table .response-history-group>summary{cursor:pointer;color:#9ac9ef;font-size:12px;line-height:1.5}.live-table .response-history-group>summary small{display:block;padding-left:15px;color:#8fa7bd;font-size:11px}.live-table .response-history-group>summary:focus-visible{outline:2px solid #80c6ff;outline-offset:3px}.live-table .response-history-detail{margin-top:6px;padding-left:10px;border-left:1px solid #52728e80}.live-table .response-history-detail .history-entry{font-size:12px;padding:6px 0}

/* Central controls grow into additional lines instead of a horizontal scroller. */
.live-table [data-own-player-line]{flex-wrap:wrap;height:auto;min-height:0}
.live-table [data-own-player-line]>.zone-phase{flex:1 1 420px;min-width:0;max-width:100%;height:auto;max-height:none;flex-wrap:wrap;overflow:visible;white-space:normal}
.live-table [data-own-player-line] .phase-actions,.live-table [data-own-player-line] .response-flow{flex-wrap:wrap;min-width:0;max-width:100%;overflow:visible;white-space:normal}
.live-table [data-own-player-line] .phase-actions>*,.live-table [data-own-player-line] .response-flow>*{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.live-table [data-own-player-line] .phase-guide-heading>strong{white-space:normal;overflow:visible;text-overflow:clip;max-width:340px}

.live-table .mesa-squad:has(>[data-own-player-line]){grid-template-rows:auto minmax(0,1fr)}
.live-table [data-own-player-line]{overflow:visible}
.live-table [data-own-player-line] .control-actions{flex-wrap:wrap;min-width:0;max-width:100%;white-space:normal}
.live-table [data-own-player-line] .control-actions>*{max-width:100%;white-space:normal;overflow-wrap:anywhere}

.live-table .zone-resizable{position:relative;min-width:0;min-height:0}.live-table .zone-resize-handle{position:absolute;z-index:15;padding:0;border:0;border-radius:2px;background:transparent;color:#8fe0f4;touch-action:none;user-select:none;min-width:0;min-height:0}.zone-resize-handle::after{content:'';position:absolute;background:#80d8ef80;border-radius:2px}.zone-resize-handle:hover,.zone-resize-handle:focus-visible{background:#64d5ff35;outline:1px solid #80d8ef}.resize-x{top:20%;bottom:20%;width:9px;right:0;cursor:ew-resize}.resize-x::after{width:2px;top:35%;bottom:35%;left:3px}.resize-y{left:20%;right:20%;height:9px;bottom:0;cursor:ns-resize}.resize-y::after{height:2px;left:35%;right:35%;top:3px}.resize-xy{right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize}.resize-xy::after{inset:3px;border-right:2px solid #80d8ef;border-bottom:2px solid #80d8ef;background:none}.resize-x[data-west=true],.resize-xy[data-west=true]{left:0;right:auto}.resize-y[data-north=true],.resize-xy[data-north=true]{top:0;bottom:auto}.resize-xy[data-west=true]:not([data-north=true]),.resize-xy[data-north=true]:not([data-west=true]){cursor:nesw-resize}.resizing-zones,.resizing-zones *{cursor:grabbing!important;user-select:none!important}.live-table:has(.zone-resize-handle:active) .table-card{pointer-events:none}@media(max-width:600px){.zone-resize-handle{display:none}}
