.match-toolbar { display:flex; flex-wrap:wrap; gap:.65rem; }
.match-quick-button { background:linear-gradient(180deg,#ffd45c,#f3b61f); color:#161006; }
.quick-score-panel { margin:1rem 0 1.25rem; overflow:hidden; }
.quick-score-heading { margin-bottom:1rem; font-size:1.15rem; font-weight:900; }
.quick-score-setup { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.quick-score-setup>.quick-start-button,.quick-score-setup>.quick-immersive-start-button,.quick-score-setup>button.secondary { align-self:end; }
.quick-immersive-start-button,.quick-open-immersive-button { background:linear-gradient(180deg,#59f1b2,#18bd7e); color:#04140d; font-weight:950; }
.quick-open-immersive-button { width:100%; margin:0 0 .8rem; }
.quick-score-board { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-bottom:.8rem; }
.quick-score-side { min-width:0; border:1px solid #425a7d; border-radius:1rem; padding:.9rem; text-align:center; background:#0b1424; }
.quick-score-side.self { box-shadow:inset 0 3px 0 #78b3ff; }
.quick-score-side.opponent { box-shadow:inset 0 3px 0 #ff8998; }
.quick-player-name { display:block; min-height:2.5em; color:#c9d8ee; font-size:.8rem; font-weight:800; line-height:1.25; overflow-wrap:anywhere; }
.quick-score-number { display:block; margin-top:.3rem; font-size:clamp(3.6rem,16vw,7rem); line-height:.9; }
.quick-finish-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.quick-finish-side { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; }
.quick-finish-side>strong { grid-column:1/-1; text-align:center; }
.quick-finish-button { min-height:3.4rem; padding:.55rem .3rem; font-size:.9rem; }
.quick-finish-button.self { color:#07101f; background:#89b9ff; }
.quick-finish-button.opponent { color:#230910; background:#ff9aaa; }
.quick-error-row { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:.8rem; }
.quick-error-group { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.3rem; }
.quick-error-title { grid-column:1/-1; color:#aebbd0; font-size:.75rem; font-weight:800; }
.quick-error-button { padding:.48rem .2rem; color:#cdd9ec; background:#1b2940; font-size:.72rem; }
.quick-error-button[aria-pressed="true"] { color:#171005; background:#f1c75b; }
.quick-replay-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.45rem; margin-top:.8rem; }
.quick-replay-button { min-width:0; padding:.55rem .3rem; font-size:.78rem; }
.quick-round-history { display:flex; gap:.35rem; overflow-x:auto; margin-top:.8rem; padding-bottom:.25rem; scrollbar-width:none; }
.quick-round-history::-webkit-scrollbar { display:none; }
.quick-round-chip { flex:0 0 auto; border:1px solid #344866; border-radius:99rem; padding:.35rem .55rem; color:#b9c9df; background:#111c30; font-size:.72rem; font-weight:800; }
.quick-winner-banner { margin-top:.8rem; border:1px solid #a88225; border-radius:.8rem; padding:.8rem; text-align:center; color:#ffe6a0; background:#30250e; font-weight:900; }
.quick-score-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin-top:.8rem; }
.quick-score-actions .form-message { flex:1 1 100%; }

/* Immersive referee mode: original UI built for two players tapping opposite halves of one landscape phone. */
.immersive-battle-overlay { position:fixed; inset:0; z-index:10000; width:100dvw; height:100dvh; overflow:hidden; color:#f7fbff; background:#060a0f; touch-action:manipulation; user-select:none; -webkit-user-select:none; }
.immersive-battle-stage { position:relative; width:100%; height:100%; min-height:0; padding:max(.45rem,env(safe-area-inset-top,0px)) max(.55rem,env(safe-area-inset-right,0px)) max(.45rem,env(safe-area-inset-bottom,0px)) max(.55rem,env(safe-area-inset-left,0px)); }
.immersive-top-controls { position:absolute; z-index:9; top:max(.45rem,env(safe-area-inset-top,0px)); right:max(.55rem,env(safe-area-inset-right,0px)); display:flex; gap:.35rem; }
.immersive-icon-button { display:grid; width:2.35rem; height:2.35rem; place-items:center; border:1px solid #ffffff38; border-radius:999px; padding:0; color:#f7fbff; background:#111923d9; font-size:1rem; backdrop-filter:blur(8px); }
.immersive-icon-button:disabled { opacity:.35; }
.immersive-round-header { position:absolute; z-index:4; top:max(.5rem,env(safe-area-inset-top,0px)); left:50%; transform:translateX(-50%); font-size:clamp(1.1rem,3.2vw,1.9rem); font-weight:1000; letter-spacing:.08em; }
.immersive-ready-board,.immersive-scoring-board { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); width:100%; height:100%; min-height:0; align-items:stretch; }
.immersive-center-mark { display:grid; width:clamp(2.7rem,8vw,5.4rem); place-items:center; color:#6d7f92; font-size:clamp(.72rem,2vw,1rem); font-weight:1000; letter-spacing:.14em; }
.immersive-ready-side,.immersive-score-side { display:grid; min-width:0; min-height:0; grid-template-rows:auto 1fr auto; align-items:center; justify-items:center; border:0; border-radius:clamp(.8rem,2.2vw,1.5rem); margin:clamp(2.4rem,7vh,4.3rem) 0 clamp(.7rem,2vh,1.1rem); padding:clamp(.65rem,2vw,1.2rem); color:#f7fbff; text-align:center; }
.immersive-ready-side { position:relative; isolation:isolate; overflow:hidden; transition:filter .18s ease,transform .18s ease,background .2s ease,box-shadow .2s ease; }
.immersive-ready-side.self,.immersive-score-side.self { background:linear-gradient(145deg,#102b4b,#071425 72%); box-shadow:inset 0 0 0 2px #72b6ff80; }
.immersive-ready-side.opponent,.immersive-score-side.opponent { background:linear-gradient(215deg,#4a1722,#220910 72%); box-shadow:inset 0 0 0 2px #ff8fa380; }
.immersive-ready-side.self.is-ready { background:linear-gradient(145deg,#168fff,#005bd6 58%,#003782); box-shadow:inset 0 0 0 5px #bfe2ff,0 0 2.8rem #168fff9c,0 0 5.5rem #168fff55; animation:immersive-ready-pulse .72s ease-in-out infinite alternate; }
.immersive-ready-side.opponent.is-ready { background:linear-gradient(215deg,#ff4567,#d70b3b 58%,#760017); box-shadow:inset 0 0 0 5px #ffd2db,0 0 2.8rem #ff45679c,0 0 5.5rem #ff456755; animation:immersive-ready-pulse .72s ease-in-out infinite alternate; }
.immersive-ready-side.is-ready::after { content:'READY'; position:absolute; z-index:-1; inset:auto 0 9%; color:#ffffff18; font-size:clamp(4.5rem,15vw,9rem); font-weight:1000; line-height:.8; letter-spacing:.02em; transform:skewX(-8deg); }
.immersive-player-name { display:block; width:100%; overflow:hidden; color:#e9f1fb; font-size:clamp(.72rem,2.15vw,1.25rem); font-weight:900; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.immersive-score-number { display:grid; place-items:center; font-size:clamp(7rem,36vh,18rem); font-variant-numeric:tabular-nums; font-weight:1000; line-height:.75; letter-spacing:-.07em; text-shadow:0 .08em .2em #0009; }
.immersive-ready-side.is-ready .immersive-score-number { transform:scale(1.04); text-shadow:0 .06em .14em #0008,0 0 .22em #fff7; }
.immersive-ready-prompt,.immersive-score-prompt { display:block; min-height:2.2rem; color:#a9bad0; font-size:clamp(.68rem,2.1vw,1.1rem); font-weight:1000; letter-spacing:.13em; }
.immersive-ready-side.is-ready .immersive-ready-prompt { color:#fff; font-size:clamp(1.35rem,4vw,2.25rem); text-shadow:0 0 .65rem #fff8; }
.immersive-score-side:active,.immersive-ready-side:active { transform:scale(.992); }
.immersive-bottom-tools { position:absolute; z-index:8; bottom:max(.55rem,env(safe-area-inset-bottom,0px)); left:50%; display:flex; max-width:64vw; transform:translateX(-50%); gap:.45rem; }
.immersive-secondary-action { min-height:2.45rem; border:1px solid #ffffff30; border-radius:.7rem; padding:.48rem .8rem; color:#dce9f7; background:#17202be8; font-size:clamp(.68rem,1.7vw,.9rem); font-weight:850; }
.immersive-rotate-hint { display:none; position:absolute; z-index:8; bottom:max(.45rem,env(safe-area-inset-bottom,0px)); left:50%; transform:translateX(-50%); border-radius:99rem; padding:.35rem .7rem; color:#d7e2ef; background:#101925d9; font-size:.68rem; }
.immersive-countdown { position:absolute; inset:0; display:grid; place-items:center; color:#f6f9fc; background:#05080d; font-size:clamp(9rem,48vh,23rem); font-weight:1000; line-height:.8; letter-spacing:-.05em; animation:immersive-pop .3s ease-out both; }
.immersive-countdown.step-3,.immersive-countdown.step-4 { font-size:clamp(7rem,33vh,18rem); letter-spacing:.02em; }
.immersive-finish-announcement { position:absolute; inset:0; display:grid; place-items:center; padding:5vw; text-align:center; color:#58f0a5; background:#070b10; font-size:clamp(3.8rem,15vw,9.5rem); font-weight:1000; line-height:.88; letter-spacing:.02em; animation:immersive-flash .42s ease-out both; }
.immersive-finish-announcement.finish-xtreme { color:#ffd45c; }
.immersive-finish-announcement.finish-burst { color:#ff8fa3; }
.immersive-finish-choice { display:grid; width:100%; height:100%; min-height:0; grid-template-rows:auto auto minmax(0,1fr) auto; align-content:stretch; gap:clamp(.35rem,1.4vh,.7rem); padding:clamp(3.1rem,8vh,4.6rem) clamp(.7rem,2.5vw,1.6rem) clamp(.55rem,1.6vh,.9rem); box-sizing:border-box; }
.immersive-replay-choice { display:grid; width:100%; height:100%; min-height:0; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto minmax(0,1fr); align-content:stretch; gap:clamp(.4rem,1.4vh,.75rem); padding:clamp(3.1rem,8vh,4.6rem) clamp(.7rem,2.5vw,1.6rem) clamp(.55rem,1.6vh,.9rem); box-sizing:border-box; }
.immersive-choice-title { text-align:center; font-size:clamp(.95rem,2.6vw,1.45rem); font-weight:1000; line-height:1.05; }
.immersive-choice-score { text-align:center; color:#9fb0c5; font-size:clamp(.8rem,1.8vw,1.05rem); font-weight:900; line-height:1; }
.immersive-finish-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); width:100%; min-width:0; min-height:0; height:auto; gap:clamp(.4rem,1.2vw,.72rem); }
.immersive-finish-choice-button { position:relative; isolation:isolate; display:flex; min-width:0; min-height:0; flex-direction:column; align-items:flex-start; justify-content:flex-start; overflow:hidden; border:1px solid #ffffff38; border-radius:clamp(.85rem,2vw,1.15rem); padding:clamp(.62rem,1.8vw,1rem); color:#f7fbff; background:#132033; text-align:left; box-shadow:inset 0 1px 0 #ffffff10,0 .45rem 1.15rem #00000024; transition:transform .12s ease,filter .12s ease,box-shadow .12s ease; }
.immersive-finish-choice-button::before { position:absolute; z-index:0; top:50%; left:50%; color:#ffffff13; font-size:clamp(4rem,13vmin,8.8rem); font-style:italic; font-weight:1000; line-height:.75; letter-spacing:-.04em; white-space:nowrap; transform:translate(-50%,-50%) skewX(-8deg) rotate(-5deg); pointer-events:none; }
.immersive-finish-choice-button strong,.immersive-finish-choice-button span,.immersive-finish-choice-button b { position:relative; z-index:1; }
.immersive-finish-choice-button strong { font-size:clamp(1.05rem,3.4vmin,2rem); line-height:.95; text-shadow:0 .08em .22em #0007; }
.immersive-finish-choice-button span { margin-top:.18rem; color:#c5d3e3; font-size:clamp(.58rem,1.8vmin,.82rem); font-weight:850; line-height:1; letter-spacing:.02em; }
.immersive-finish-choice-button b { position:absolute; right:clamp(.65rem,1.7vw,1rem); bottom:clamp(.55rem,1.5vw,.85rem); font-size:clamp(2rem,7.5vmin,4.2rem); line-height:.8; text-shadow:0 .08em .2em #0007; }
.immersive-finish-choice-button:active { transform:scale(.985); filter:brightness(1.12); }
.immersive-finish-choice-button.finish-spin { background:linear-gradient(145deg,#1a4664,#102d45 72%); }
.immersive-finish-choice-button.finish-over { background:linear-gradient(145deg,#1b5748,#12382f 72%); }
.immersive-finish-choice-button.finish-burst { background:linear-gradient(145deg,#6a2339,#431525 72%); }
.immersive-finish-choice-button.finish-xtreme { color:#191104; background:linear-gradient(145deg,#ffd559,#e6b73b 72%); }
.immersive-finish-choice-button.finish-spin::before { content:'SPIN'; }
.immersive-finish-choice-button.finish-over::before { content:'OVER'; }
.immersive-finish-choice-button.finish-burst::before { content:'BURST'; }
.immersive-finish-choice-button.finish-xtreme::before { content:'XTREME'; color:#24180014; }
.immersive-finish-choice-button.finish-xtreme span { color:#503b10; }
.immersive-finish-choice-button.finish-xtreme strong,.immersive-finish-choice-button.finish-xtreme b { text-shadow:0 .08em .18em #fff4; }
.immersive-finish-choice>.immersive-secondary-action { justify-self:center; min-height:2.15rem; padding:.38rem .8rem; }
.immersive-replay-choice>.immersive-choice-title { grid-column:1/-1; grid-row:1; align-self:center; }
.immersive-replay-choice>.immersive-secondary-action { grid-column:1; grid-row:1; z-index:2; justify-self:start; align-self:center; min-height:2.15rem; padding:.38rem .8rem; }
.immersive-replay-choice-button { min-width:0; min-height:0; height:100%; border:1px solid #ffffff30; border-radius:1rem; padding:1rem; color:#f1f6fc; background:#172333; font-size:clamp(1rem,3vw,1.7rem); font-weight:950; }
.immersive-winner { display:grid; width:100%; height:100%; align-content:center; justify-items:center; gap:clamp(.4rem,1.8vh,.9rem); padding:clamp(3rem,8vh,5rem) 1rem 1rem; text-align:center; }
.immersive-winner-kicker { color:#ffd45c; font-size:clamp(2.4rem,10vw,6.8rem); font-weight:1000; line-height:.9; letter-spacing:.06em; }
.immersive-winner-name { max-width:90vw; overflow:hidden; font-size:clamp(1.4rem,4.5vw,2.8rem); text-overflow:ellipsis; white-space:nowrap; }
.immersive-winner-score { font-size:clamp(4rem,17vw,9rem); font-variant-numeric:tabular-nums; font-weight:1000; line-height:.85; }
.immersive-winner-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem; }
.immersive-save-button { min-height:2.8rem; border-radius:.8rem; padding:.6rem 1rem; color:#07130d; background:#59f1b2; font-size:clamp(.8rem,2vw,1rem); font-weight:950; }
.immersive-sr-live { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@keyframes immersive-pop { from { opacity:.25; transform:scale(.7); } to { opacity:1; transform:scale(1); } }
@keyframes immersive-flash { 0% { opacity:.2; transform:scale(1.12); } 100% { opacity:1; transform:scale(1); } }
@keyframes immersive-ready-pulse { from { filter:brightness(.94) saturate(1.05); } to { filter:brightness(1.16) saturate(1.22); } }
@media (prefers-reduced-motion:reduce) { .immersive-countdown,.immersive-finish-announcement,.immersive-ready-side.is-ready { animation:none; } }

/* iOS Home Screen PWAs often reject orientation.lock(). In portrait, rotate only the referee overlay
   so the scoring controls still become a real landscape board without rotating private app data. */
@media (orientation:portrait) and (max-width:650px) {
  .immersive-battle-overlay { inset:auto; top:50%; left:50%; width:100dvh; height:100dvw; transform:translate(-50%,-50%) rotate(90deg); transform-origin:center; }
  .immersive-battle-stage { padding:.45rem max(.55rem,env(safe-area-inset-top,0px)) .45rem max(.55rem,env(safe-area-inset-bottom,0px)); }
  .immersive-top-controls { top:.45rem; right:max(.55rem,env(safe-area-inset-top,0px)); }
  .immersive-round-header { top:.5rem; }
  .immersive-bottom-tools { bottom:.55rem; }
  .immersive-rotate-hint { display:none; }
  .immersive-finish-choice,.immersive-replay-choice { gap:.3rem; padding:2.8rem .5rem .4rem; }
  .immersive-finish-choice-grid { height:auto; min-height:0; gap:.38rem; }
  .immersive-choice-title { font-size:.94rem; }
  .immersive-choice-score { font-size:.76rem; }
  .immersive-finish-choice-button { border-radius:.78rem; padding:.55rem .65rem; }
  .immersive-finish-choice-button::before { font-size:clamp(3.5rem,12vmin,6.2rem); }
  .immersive-finish-choice-button strong { font-size:clamp(1rem,3.1vmin,1.5rem); }
  .immersive-finish-choice-button b { font-size:clamp(1.8rem,6.5vmin,3rem); }
  .immersive-finish-choice>.immersive-secondary-action,.immersive-replay-choice>.immersive-secondary-action { min-height:1.9rem; padding:.25rem .7rem; font-size:.68rem; }
  .immersive-replay-choice-button { min-height:0; border-radius:.78rem; padding:.65rem; font-size:clamp(.88rem,2.7vmin,1.2rem); }
}

@media (max-width:650px) {
  .quick-score-panel { margin-left:-.25rem; margin-right:-.25rem; padding:.8rem; }
  .quick-score-setup { grid-template-columns:1fr; }
  .quick-finish-grid,.quick-error-row { gap:.45rem; }
  .quick-finish-side { gap:.35rem; }
  .quick-finish-button { min-height:3.2rem; border-radius:.7rem; font-size:.82rem; }
  .quick-error-group { grid-template-columns:repeat(5,minmax(0,1fr)); gap:.2rem; }
  .quick-error-button { padding:.45rem .1rem; font-size:.64rem; }
  .quick-score-actions>button { flex:1 1 auto; padding:.65rem .4rem; }
}