/* Core36: single-screen competitive lobby, no nested decoration or scroll traps. */
.live{width:100%;max-width:600px;min-width:0;margin:0 auto;flex:1 1 auto;min-height:0;padding:10px 16px max(14px,env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:none;color:#eff5fd}
.live::-webkit-scrollbar{display:none}.live *{box-sizing:border-box;min-width:0}
.live-loading{flex:1;display:grid;place-items:center}
.live-top{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:10px;flex:0 0 44px;margin-bottom:4px}
.live-back{width:40px;height:40px;display:grid;place-items:center;color:#e5edf9;border:1px solid #c4d7ed2a;border-radius:50%;background:#101827}
.live-back svg{width:21px;height:21px}.live-index{text-align:center;color:#a5b6c9;letter-spacing:.1em;font-size:10px;font-weight:670;white-space:nowrap}.live-index b{color:#b8f3df;font-weight:800}.live-tag{font-size:9px;color:#b7e6d3;display:flex;align-items:center;gap:5px;justify-content:flex-end;letter-spacing:.06em}.live-tag i{width:6px;height:6px;border-radius:50%;background:#b1f1d7;box-shadow:0 0 10px #a9f2da88}
.live-stage{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end;min-height:0;gap:10px}.live-hero{flex:0 0 auto;max-width:100%;text-align:center}.live-hero h1{font-size:clamp(25px,7vw,37px);line-height:1.08;letter-spacing:-.055em;font-weight:860;margin:0 0 7px}.live-hero p{margin:0;color:#a6b9ca;font-size:12px;line-height:1.35}.live-bottom-stack{margin-top:auto;display:grid;gap:10px;width:100%;flex:0 0 auto}.live-switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:4px;background:#172131;border:1px solid #b6c8e72c;border-radius:14px;min-height:48px}.live-switch button{border-radius:10px;min-height:39px;background:none;color:#aebfce;font-size:12px;font-weight:760}.live-switch button.active{background:#2b3e50;color:#f5fbff;box-shadow:inset 0 1px #ffffff17}
.live-panel{padding:16px;border-radius:20px;border:1px solid #d1e0f12e;background:linear-gradient(160deg,#202d40eb,#141e2eeb);box-shadow:0 12px 38px #0002}.live-entry-panel{display:flex;flex-direction:column;gap:14px}.live-field{display:flex;flex-direction:column;gap:7px}.live-form-label{display:block;color:#afc1d2;font-size:10px;font-weight:700;letter-spacing:.035em}.live-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.live-choice{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.live-choice.dual{grid-template-columns:repeat(2,minmax(0,1fr))}.live-choice button{min-height:42px;padding:7px 3px;border-radius:11px;border:1px solid #ffffff20;background:#141f30;color:#b6c7da;font-size:11px;font-weight:730;white-space:nowrap}.live-choice button.active{background:linear-gradient(120deg,#b3f3dd,#b6d2ff);border-color:#c7f8e4;color:#10252b}
.live-action{width:100%;min-width:0;height:47px;min-height:47px;display:flex;align-items:center;justify-content:center;border-radius:13px;border:0;background:linear-gradient(110deg,#b8f4da,#bbcfff);color:#162b2d;font-size:13px;font-weight:830;padding:0 10px}.live-action.secondary{border:1px solid #d5e5f12f;background:#273347;color:#e5edf8}.live-action:disabled{opacity:.5}.live-input{width:100%;height:50px;border:1px solid #d6e8ff3a;border-radius:12px;background:#111a2a;color:#ecf4fb;letter-spacing:.17em;text-align:center;font-size:17px;text-transform:uppercase}.live-input:focus-visible,.live-action:focus-visible,.live-choice button:focus-visible,.live-back:focus-visible,.live-switch button:focus-visible,.live-invite button:focus-visible{outline:2px solid #b7f6db;outline-offset:2px}.live-inline-note,.live-error{margin:0;text-align:center;font-size:11px;line-height:1.4;color:#a7bacb}.live-error{padding:9px;border:1px solid #f7b1ab4d;background:#a7483625;border-radius:12px;color:#f3bdb5}
/* Ambient four-player orbit: CSS-only transform animation, disabled for reduced motion. */
.live-visual{position:relative;margin:auto;width:clamp(116px,31vw,168px);height:clamp(84px,14vh,144px);flex:0 0 auto;isolation:isolate;pointer-events:none}.live-visual:before{content:"";position:absolute;inset:9% 14%;border:1px dashed #addfe439;border-radius:50%;transform:rotate(-22deg)}.live-orbit{position:absolute;inset:14% 18%;border:1px solid #b7eef12a;border-radius:50%;animation:liveorbit 13s linear infinite}.live-orbit.orbit-b{inset:26% 29%;border-color:#c7b8ff2e;animation-duration:17s;animation-direction:reverse}
.live-visual-core{position:absolute;left:34%;top:30%;height:45%;width:32%;border-radius:16px;background:linear-gradient(135deg,#23374f,#152335);border:1px solid #ddefff4b;box-shadow:0 7px 28px #71abdd20;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:9px;transform:rotate(-8deg)}.live-visual-core span{border-radius:5px;background:#adf7dd}.live-visual-core span:nth-child(2){background:#ffdaa3}.live-visual-core span:nth-child(3){background:#d5b5ff}.live-visual-core span:nth-child(4){background:#a9dfff}
.live-player-symbol{position:absolute;width:30px;height:30px;border-radius:11px;border:1px solid #d9e5ff4a;background:#24334a;display:grid;place-items:center;box-shadow:0 8px 20px #0005}.live-player-symbol i{width:13px;height:13px;border:3px solid #adf4dd;border-radius:50%;display:block}.live-player-symbol.player-a{top:3%;left:5%;animation:livefloat 5s ease-in-out infinite}.live-player-symbol.player-b{top:5%;right:1%;animation:livefloat 5.8s ease-in-out infinite reverse}.live-player-symbol.player-b i{border-color:#ffda9f}.live-player-symbol.player-c{bottom:1%;right:14%;animation:livefloat 6.7s ease-in-out infinite}.live-player-symbol.player-c i{border-color:#d2b8ff}
@keyframes livefloat{50%{transform:translateY(-6px)}}@keyframes liveorbit{to{transform:rotate(360deg)}}
/* Room: compact results, fixed bottom controls, bounded roster scroll when full. */
.live-room-stage{gap:10px}.live-room-hero{margin:5px 0 0}.live-overline{font-size:10px;color:#b6e5d6;letter-spacing:.12em;font-weight:850}.live-room-hero h1{font-size:clamp(26px,6.9vw,34px);margin:6px 0 4px}.live-room-hero p{font-size:11px}
.live-lobby-visual{flex:1 1 auto;min-height:30px;max-height:110px;display:grid;place-items:center;overflow:hidden}.live-lobby-visual .live-visual{width:114px;height:92px}.live-podium{text-align:center;display:grid;gap:4px;place-items:center;flex:0 0 auto;padding:7px 0}.live-podium>span{color:#ffdb9e;font-size:21px}.live-podium strong{font-size:17px;color:#fff0c9;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-podium small{color:#bdc9da;font-size:10px}
.live-room-panel{display:flex;flex-direction:column;gap:10px;flex:0 0 auto}.live-subhead{display:flex;align-items:center;justify-content:space-between;gap:12px}.live-subhead h2{font-size:13px;letter-spacing:-.02em;margin:0}.live-count{font-size:10px;color:#a9bdcb}.live-room-rows{max-height:min(28vh,240px);overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin}.live-player-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;min-height:43px;align-items:center;gap:8px;border-bottom:1px solid #ffffff19;padding:5px 0}.live-player-row:last-child{border-bottom:0}.live-number{font-size:11px;color:#a5b2c2;font-variant-numeric:tabular-nums}.live-player-name{display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap}.live-player-handle{overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:760}.live-player-name small{font-size:9px;color:#b5ddce}.live-online{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#adf7dd}.live-online.live-offline{background:#6a7c8a}.live-player-row strong{font-size:13px;font-variant-numeric:tabular-nums;color:#f0f6fb}.live-player-row.winner .live-number,.live-player-row.winner strong{color:#ffdb9c}.live-row-status{font-size:10px;color:#b2c1d2}
.live-invite{display:grid;grid-template-columns:1fr 1fr;gap:7px}.live-invite button{min-height:39px;border-radius:11px;border:1px solid #b3e8d644;background:#b8f5dc11;color:#c6f2e5;font-size:11px;font-weight:710;padding:6px}.live-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,.42fr);gap:8px}.live-actions .live-action{min-height:45px;height:45px}.live-countdown{font-size:clamp(42px,10vw,60px);font-weight:870;letter-spacing:-.06em;color:#b7f2df;text-align:center;min-height:62px}
@media(max-height:740px){.live{padding-top:6px;padding-bottom:8px}.live-top{flex-basis:38px}.live-stage{gap:8px}.live-visual{height:clamp(58px,11vh,85px);width:110px}.live-visual-core{padding:6px;gap:3px}.live-player-symbol{height:24px;width:24px}.live-hero h1{font-size:27px}.live-hero p{font-size:11px}.live-panel{padding:12px}.live-entry-panel{gap:11px}.live-choice button{min-height:38px}.live-room-rows{max-height:20vh}.live-lobby-visual{max-height:63px}}
@media(max-height:590px){.live-stage>.live-visual{display:none}.live-lobby-visual{display:none}.live-hero h1{font-size:24px}.live-panel{padding:10px}.live-entry-panel{gap:8px}.live-switch{min-height:42px}.live-switch button{min-height:34px}.live-choice button{min-height:34px}.live-action{height:43px;min-height:43px}}
@media(max-width:340px){.live{padding-inline:10px}.live-panel{padding:11px}.live-choice{gap:4px}.live-choice button{font-size:10px}.live-invite button{font-size:10px}.live-hero h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){.live *{animation:none!important;transition:none!important}}
/* Homepage live and Logic bridges use the same compact editorial component. */
.pz34-live-entry,.pz36-logic-entry{height:55px;min-height:55px;flex:0 0 55px;display:flex;align-items:center;gap:11px;padding:8px 13px;border-radius:15px;border:1px solid #b3e3d443;background:linear-gradient(110deg,#1e3039,#1c273b 80%);text-decoration:none;color:#e8f5f4;min-width:0}
.pz34-live-pulse,.pz36-logic-icon{width:35px;height:35px;flex:0 0 35px;display:grid;place-items:center;border-radius:10px;border:1px solid #bee6d630;background:#c9fff015;color:#c1f3df;font-size:18px}
.pz34-live-caption,.pz36-logic-caption{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;justify-content:center}.pz34-live-caption strong,.pz36-logic-caption strong{font-size:12px;font-weight:780;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pz34-live-caption small,.pz36-logic-caption small{font-size:10px;color:#a9c7c5;line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pz34-live-arrow,.pz36-logic-arrow{font-size:18px;color:#b8f3da;flex:0 0 auto}
.hub .pz36-logic-entry,body:has(.hub.screen) .pz36-logic-entry{min-height:55px!important;height:55px!important;align-self:stretch;grid-area:auto!important;padding:8px 13px!important;display:flex!important;justify-content:flex-start!important;gap:11px!important}.pz36-logic-icon svg,.pz36-logic-icon img{width:27px;height:27px}.pz36-logic-icon{align-self:center}.pz36-logic-caption{text-align:left;align-self:stretch}.pz36-logic-entry .logic-desc{display:block!important;margin:0!important;max-width:none!important;font-size:10px!important}

@media(min-width:850px) and (min-height:640px){
 body:has(.hub.screen) .hub.screen{grid-template-rows:minmax(118px,.7fr) minmax(165px,1.3fr) minmax(58px,.38fr) 55px 55px!important}
 body:has(.hub.screen) .pz34-live-entry{grid-area:4/1/5/3!important;height:55px!important}
 body:has(.hub.screen) .pz36-logic-entry{grid-area:5/1/6/3!important;height:55px!important}
}
@media(min-width:1000px) and (min-height:460px) and (max-height:639px){
 body:has(.hub.screen) .hub.screen{grid-template-rows:minmax(80px,.6fr) minmax(100px,1fr) 43px 43px!important}
 body:has(.hub.screen) .pz34-live-entry{grid-area:3/1/4/3!important;height:43px!important;min-height:43px!important}
 body:has(.hub.screen) .pz36-logic-entry{grid-area:4/1/5/3!important;height:43px!important;min-height:43px!important}
}

/* Results are legible from the top, with a centered winner and actions anchored low. */
.live-room-stage:has(.is-results){justify-content:flex-start}
.live-room-stage:has(.is-results) .live-room-hero{margin-top:clamp(4px,3vh,28px)}
.live-room-stage:has(.is-results) .live-podium{flex:1 1 auto;align-content:center;min-height:64px}
.live-room-stage:has(.is-results) .live-room-panel{margin-top:auto}

/* Core37: invitation input stays editable under the Android keyboard and native paste menu. */
.live-input-row{display:flex;gap:8px;min-width:0;align-items:center}
.live-input-row .live-input{flex:1;width:0;min-width:0;font-size:16px!important;user-select:text!important;-webkit-user-select:text!important;touch-action:auto!important;caret-color:#b5f6da}
.live-input-row>button{min-width:74px;height:49px;border-radius:12px;border:1px solid #afefd34b;background:#b6f0d312;color:#d6f7ec;font-size:12px;font-weight:760}
.live-locked .live-bottom-stack{margin-top:auto}.live-locked-back{color:#b2c7d7;padding:12px;font-size:12px;background:transparent;min-height:38px}
@media(max-width:340px){.live-input-row>button{min-width:64px;padding:0 5px}}

/* Core41: legacy entry rules below are overridden by the unified Core40 stage layout. */
.live-stage-create{display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;justify-content:stretch;min-height:0;gap:clamp(7px,1.15vh,13px)}
.live-stage-create .live-bottom-stack{margin-top:0;align-self:end}
.live-visual-slot{min-height:0;overflow:hidden;display:grid;place-items:center;isolation:isolate;pointer-events:none}
.live-visual-slot .live-visual{margin:0;max-height:min(100%,134px);width:min(31vw,150px);height:min(18vh,134px);transform:none;overflow:visible}
.live-stage-join{display:flex;flex-direction:column;justify-content:space-between;min-height:0;gap:10px}
.live-stage-join .live-bottom-stack{margin-top:auto}
.live-stage-join .live-hero{flex:0 0 auto}
.live-stage-join .live-entry-panel{isolation:isolate}
.live-stage-join .live-input-row{position:relative;z-index:1}
.live-guest-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:#a6b9ca;font-size:12px;text-align:center}
.live-guest-stage button{min-height:44px;padding:10px 22px;border:1px solid #b7efd544;border-radius:12px;background:#b7f3da10;color:#b9f4db}
/* The keyboard shortens the dynamic viewport. Keep the form isolated, never animate its position. */
.live:has(.live-input:focus){scroll-padding-bottom:14px;overflow-y:auto}
@media(max-height:670px){.live-stage-join .live-hero h1{font-size:24px}}
@media(max-height:520px){.live-stage-join .live-hero{display:none}.live-stage-join .live-bottom-stack{margin-top:0}}
@media(prefers-reduced-motion:reduce){.live-visual-slot *{animation:none!important}}

/* Core40: preserve ambient art in BOTH entry modes without layout coupling. */
.live-stage-create,.live-stage-join{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;gap:clamp(6px,1vh,12px);align-content:stretch}
.live-stage-join .live-visual-slot,.live-stage-create .live-visual-slot{display:grid;min-height:0;overflow:hidden;place-items:center;pointer-events:none;isolation:isolate}
.live-stage-join .live-visual-slot .live-visual,.live-stage-create .live-visual-slot .live-visual{height:min(16vh,115px);width:min(31vw,140px);max-height:100%;transform:translateZ(0)}
.live-stage-join .live-bottom-stack,.live-stage-create .live-bottom-stack{align-self:end;margin-top:0;position:relative;z-index:1}
.live:has(.live-input:focus) .live-stage-join{grid-template-rows:minmax(0,1fr) auto}
.live:has(.live-input:focus) .live-stage-join .live-visual-slot{display:none}
.live:has(.live-input:focus) .live-stage-join .live-hero{display:none}
@media(max-height:670px){.live-stage-create .live-visual-slot,.live-stage-join .live-visual-slot{display:grid}.live-stage-create,.live-stage-join{grid-template-rows:auto minmax(0,1fr) auto}}
@media(max-height:520px){.live-stage-create .live-visual-slot,.live-stage-join .live-visual-slot{display:none}.live-stage-create,.live-stage-join{grid-template-rows:auto auto}}
/* Compact vertical results podium with staggered entrance and stable actions. */
.live-room-panel.is-results .live-room-rows{display:grid;gap:6px;max-height:min(38dvh,340px)}
.live-room-panel.is-results .live-player-row{border:1px solid #ffffff1c;border-radius:13px;background:linear-gradient(115deg,#28374a,#172234);padding:8px 11px;min-height:47px;animation:live-result-rise .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--rank,0)*70ms)}
.live-room-panel.is-results .live-player-row:nth-child(1){background:linear-gradient(105deg,#56482d,#2a2c36);border-color:#ffe1a359}
.live-room-panel.is-results .live-player-row:nth-child(2){border-color:#d3dce44a}
.live-room-panel.is-results .live-player-row:nth-child(3){border-color:#caa6a048}
.live-room-panel.is-results .live-number{font-weight:850;font-size:13px}
.live-room-panel.is-results .live-player-row:nth-child(1) .live-number:before{content:'♛ ';color:#ffdf9b}
@keyframes live-result-rise{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.live-room-panel.is-results .live-player-row{animation:none}}

/* Core41: stable keyboard mode: the form never shares an animated grid track. */
.live:has(.live-input:focus) .live-stage-join{grid-template-rows:minmax(0,1fr) auto}
.live:has(.live-input:focus) .live-stage-join .live-bottom-stack{grid-row:2;align-self:end}
.live-stage .live-visual-slot{contain:layout paint;min-width:0}
@media(prefers-reduced-motion:reduce){.live-stage .live-visual-slot *{animation:none!important;transition:none!important}}

/* Core42: preserve artwork in short viewports without sacrificing form space. */
@media(max-height:590px){
 .live-stage-create .live-visual-slot,.live-stage-join .live-visual-slot{display:grid;min-height:24px;max-height:56px}
 .live-stage-create .live-visual-slot .live-visual,.live-stage-join .live-visual-slot .live-visual{height:54px;width:86px;transform:scale(.72);transform-origin:center}
}
@media(max-height:520px){
 .live-stage-create,.live-stage-join{grid-template-rows:auto minmax(24px,1fr) auto}
 .live-stage-create .live-visual-slot,.live-stage-join .live-visual-slot{display:grid;max-height:40px}
 .live-stage-create .live-visual-slot .live-visual,.live-stage-join .live-visual-slot .live-visual{height:40px;width:76px;transform:scale(.55)}
}
/* During actual text entry, the form owns the available viewport. */
.live:has(.live-input:focus) .live-stage-join .live-visual-slot{display:none!important}
.live:has(.live-input:focus) .live-stage-join .live-hero{display:none!important}
.live:has(.live-input:focus) .live-stage-join{grid-template-rows:minmax(0,1fr) auto}
@media(max-width:340px){.live-actions{grid-template-columns:minmax(0,1fr) minmax(78px,.4fr)}.live-actions .live-action{font-size:11px}.live-invite button{overflow-wrap:anywhere}}

/* Core42.1: fixed-width, non-shrinking join controls; art gets spare space, never steals form width. */
.live-stage-create,.live-stage-join{width:100%;min-width:0;max-width:100%;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;justify-items:stretch;align-items:stretch}
.live-stage-create>.live-hero,.live-stage-join>.live-hero,.live-stage-create>.live-visual-slot,.live-stage-join>.live-visual-slot,.live-stage-create>.live-bottom-stack,.live-stage-join>.live-bottom-stack{width:100%;min-width:0;max-width:100%;grid-column:1}
.live-stage-create>.live-bottom-stack,.live-stage-join>.live-bottom-stack{width:100%;min-width:0;align-self:end;justify-self:stretch;grid-row:3}
.live-stage-create .live-switch,.live-stage-join .live-switch,.live-stage-create .live-panel,.live-stage-join .live-panel{width:100%;min-width:0;max-width:100%}
.live-stage-join .live-entry-panel{flex-shrink:0;gap:12px}
.live-stage-join .live-input-row{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.live-stage-join .live-input-row .live-input{width:100%;min-width:0;max-width:100%}
.live-stage-join .live-input-row>button{min-width:70px;max-width:90px}
.live-stage-create .live-visual-slot,.live-stage-join .live-visual-slot{grid-row:2;min-height:0;overflow:hidden}
/* Keyboard mode: keep the entry panel at full width; never let the art occupy the form track. */
.live:has(.live-input:focus) .live-stage-join{grid-template-rows:minmax(0,1fr) auto}
.live:has(.live-input:focus) .live-stage-join>.live-bottom-stack{grid-row:2}
@media(max-width:340px){.live-stage-join .live-input-row>button{min-width:62px;max-width:72px}}

/* Core43: results are a stable stage, not a modal. 2 players: compact duel; 3+: podium. */
.live-room-stage:has(.is-results){min-width:0;overflow:hidden;gap:clamp(6px,1.1vh,12px)}
.live-room-stage:has(.is-results) .live-room-hero{margin-top:0}
.live-room-stage:has(.is-results) .live-room-panel{min-height:0;max-width:100%;overflow:hidden}
.live-room-stage:has(.is-results) .live-room-rows{max-height:min(36dvh,320px);overflow-y:auto;overscroll-behavior:contain}
.live-medal-stage{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:clamp(5px,1.5vw,12px);width:100%;min-width:0;max-width:420px;margin:auto;min-height:105px;max-height:clamp(105px,24dvh,180px);padding:4px 6px 0;isolation:isolate}
.live-medal{display:flex;flex-direction:column;align-items:center;justify-content:end;gap:3px;min-width:0;text-align:center;animation:live-medal-enter .48s cubic-bezier(.2,.8,.2,1) both}
.live-medal-1{animation-delay:.12s}.live-medal-2{animation-delay:.04s}.live-medal-3{animation-delay:.2s}
.live-medal-symbol{font-size:clamp(20px,4.8vw,30px);line-height:1.2;filter:drop-shadow(0 3px 9px #ffdf9b35)}
.live-medal strong{display:block;max-width:100%;font-size:clamp(10px,2.7vw,13px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f4f6fb}
.live-medal small{font-size:11px;font-variant-numeric:tabular-nums;color:#b9d4d6}
.live-medal i{display:block;width:100%;border:1px solid #ffffff21;border-bottom:0;border-radius:9px 9px 0 0;background:linear-gradient(180deg,#63718340,#1c293a77);height:clamp(25px,6dvh,52px)}
.live-medal-1 i{height:clamp(42px,10dvh,78px);background:linear-gradient(180deg,#ffdf9455,#755c3044);border-color:#f4d88a55}
.live-medal-2 i{height:clamp(32px,8dvh,62px)}
.live-medal-3 i{height:clamp(22px,5dvh,45px);background:linear-gradient(180deg,#dba48c42,#49352b40)}
.live-duel-banner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:78px;color:#f6df9f;text-align:center}
.live-duel-banner span{font-size:25px}.live-duel-banner strong{font-size:15px}.live-duel-banner small{color:#afc8cb;font-size:11px}
@keyframes live-medal-enter{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-height:690px){.live-medal-stage{min-height:85px;max-height:125px}.live-medal i{height:22px}.live-medal-1 i{height:40px}.live-medal-2 i{height:30px}.live-medal-3 i{height:20px}.live-room-stage:has(.is-results) .live-room-rows{max-height:28dvh}}
@media(prefers-reduced-motion:reduce){.live-medal{animation:none!important}}

/* Core45: host-owned replay options; compact, accessible, mobile-first. */
.live-replay-settings{display:grid;gap:9px;padding:10px;border-radius:15px;background:linear-gradient(135deg,#111e2c,#1a293a);border:1px solid #ffffff23}
.live-settings-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.live-settings-head strong{font-size:12px;color:#f1f6ff}.live-settings-head small{font-size:10px;color:#9fb5c6}
.live-mini-games{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.live-mini-game{min-height:36px;padding:5px 2px;border-radius:10px;font-size:10px;font-weight:780;border:1px solid #ffffff25;color:#b6c6d5;background:#1d2938;transition:transform .16s,border-color .16s,background .16s}.live-mini-game.active{color:#fff;border-color:var(--mode-color);background:color-mix(in srgb,var(--mode-color) 23%,#1b2939);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mode-color) 25%,transparent)}.live-mini-spectrum{--mode-color:#f6ae83}.live-mini-time{--mode-color:#a8d8ff}.live-mini-shape{--mode-color:#c7afff}.live-mini-sound{--mode-color:#a6edca}
.live-mini-bottom{display:grid;grid-template-columns:1fr 1fr;gap:8px}.live-mini-pills{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border-radius:10px;background:#101a28}.live-mini-pills button{min-height:30px;padding:3px;border-radius:8px;color:#a6bacb;font-size:10px;font-weight:740}.live-mini-pills button.active{background:#304357;color:#f0fcff}.live-replay-settings button:disabled{opacity:.75;cursor:default}.live-replay-settings button:focus-visible{outline:2px solid #b8f3df;outline-offset:2px}.live-replay-settings button:not(:disabled):active{transform:scale(.97)}
@media(max-height:640px){.live-replay-settings{gap:6px;padding:7px}.live-mini-game{min-height:31px}.live-mini-pills button{min-height:27px}}
@media(prefers-reduced-motion:reduce){.live-mini-game{transition:none}}

/* Core47: compact, theme-native replay controls; only shown after a completed match. */
.live-replay-settings{gap:10px;padding:12px;border-radius:16px;background:linear-gradient(145deg,#1c293b,#121e2e);border:1px solid #b8d9ee24;box-shadow:inset 0 1px #ffffff0a}
.live-settings-head{gap:10px}.live-settings-head strong{font-size:12px;font-weight:800;letter-spacing:-.01em}.live-settings-head small{font-size:10px;text-align:right}
.live-replay-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:10px;align-items:stretch}
.live-replay-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:5px;min-width:0}
.live-replay-game{--replay-accent:#b9e4d5;min-width:0;min-height:37px;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 4px;border:1px solid #c0d7ee19;border-radius:10px;background:#101b2b;color:#a8b8cd;font-size:10px;font-weight:780;white-space:nowrap;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s}
.live-replay-spectrum{--replay-accent:#f6ae83}.live-replay-time{--replay-accent:#a8d8ff}.live-replay-shape{--replay-accent:#c7afff}.live-replay-sound{--replay-accent:#a6edca}
.live-replay-dot{width:5px;height:5px;flex:none;border-radius:50%;background:var(--replay-accent);opacity:.68}
.live-replay-game.active{color:#f6fbff;border-color:color-mix(in srgb,var(--replay-accent) 58%,transparent);background:color-mix(in srgb,var(--replay-accent) 13%,#162337);box-shadow:inset 0 1px color-mix(in srgb,var(--replay-accent) 16%,transparent)}
.live-replay-game.active .live-replay-dot{opacity:1;box-shadow:0 0 9px var(--replay-accent)}
.live-replay-options{display:grid;grid-template-rows:1fr 1fr;gap:5px;min-width:0}
.live-replay-option{display:grid;grid-template-columns:1fr;gap:3px;min-width:0}.live-replay-label{color:#91a5bf;font-size:9px;font-weight:780;letter-spacing:.04em}
.live-replay-segment{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;background:#0e1725;border:1px solid #d1e0f10c;border-radius:10px;min-width:0}
.live-replay-segment button{min-width:0;min-height:26px;border:0;border-radius:7px;background:transparent;color:#91a4bf;font-size:10px;font-weight:850;letter-spacing:.015em;transition:background .16s,color .16s,transform .16s}
.live-replay-segment button.active{background:#344764;color:#f5f9ff;box-shadow:0 1px 5px #0003}.live-replay-unit{font-size:9px;font-weight:650}
.live-replay-settings button:disabled{opacity:.78;cursor:default}.live-replay-settings button:focus-visible{outline:2px solid #b8f3df;outline-offset:2px}.live-replay-settings button:not(:disabled):active{transform:scale(.97)}
@media(max-width:360px){.live-replay-layout{gap:6px}.live-replay-settings{padding:9px}.live-replay-game{font-size:9px;gap:3px;padding:5px 2px}.live-replay-segment button{font-size:9px}}
@media(max-height:640px){.live-replay-settings{gap:7px;padding:8px}.live-replay-game{min-height:31px}.live-replay-segment button{min-height:24px}}
@media(prefers-reduced-motion:reduce){.live-replay-game,.live-replay-segment button{transition:none}}

/* Core49: native-feeling, aligned replay switch controls. */
.live-replay-settings{gap:12px;padding:13px;border-radius:17px;background:linear-gradient(145deg,rgba(32,46,65,.98),rgba(17,29,45,.98));border:1px solid rgba(185,211,237,.21);box-shadow:inset 0 1px rgba(255,255,255,.07),0 9px 26px rgba(0,0,0,.13)}
.live-settings-head{padding:0 1px 2px}.live-settings-head strong{font-size:12px;letter-spacing:.015em}.live-settings-head small{color:#a5b8cd}
.live-replay-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;align-items:stretch}
.live-replay-games{grid-template-rows:repeat(2,minmax(0,1fr));gap:6px}
.live-replay-game{min-height:43px;gap:6px;border-radius:11px;font-size:10px;font-weight:800;background:linear-gradient(155deg,#19283a,#111e30);border:1px solid rgba(196,217,239,.16);box-shadow:inset 0 1px rgba(255,255,255,.035);touch-action:manipulation}
.live-replay-game.active{background:linear-gradient(140deg,color-mix(in srgb,var(--replay-accent) 17%,#18283b),#172437);border-color:color-mix(in srgb,var(--replay-accent) 62%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--replay-accent) 20%,transparent),0 0 0 1px color-mix(in srgb,var(--replay-accent) 9%,transparent)}
.live-replay-dot{width:6px;height:6px}
.live-replay-options{grid-template-rows:repeat(2,minmax(0,1fr));gap:6px}
.live-replay-option{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:43px}
.live-replay-label{font-size:9px;line-height:1;letter-spacing:.045em}
.live-replay-segment{flex:1;min-height:27px;gap:2px;padding:2px;border-radius:9px;background:#0f1b2b;border:1px solid rgba(184,208,235,.16);box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}
.live-replay-segment button{min-height:25px;border-radius:7px;font-size:10px;touch-action:manipulation}
.live-replay-segment button.active{background:linear-gradient(125deg,#b8f4da,#b9d2ff);color:#152a32;box-shadow:0 1px 5px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.32)}
.live-replay-settings button:not(:disabled):active{transform:scale(.975)}
@media(max-width:360px){.live-replay-layout{gap:6px}.live-replay-settings{padding:10px}.live-replay-game{min-height:39px;font-size:9px}.live-replay-option{min-height:39px}}
@media(prefers-reduced-motion:reduce){.live-replay-settings button{transition:none}}
