:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;background:#050812;color:#f8fbff}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 10%,rgba(255,63,145,.17),transparent 28rem),radial-gradient(circle at 90% 80%,rgba(96,72,255,.16),transparent 32rem),#050812}.tv-shell{width:min(1500px,calc(100% - 42px));margin:auto;padding:22px 0 30px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}header>strong{font-size:26px;letter-spacing:.06em}header b{color:#ff4b8c}header span{padding:10px 14px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#aeb8ca;background:rgba(255,255,255,.04)}.pairing-view{min-height:calc(100vh - 110px);display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}.eyebrow{color:#ff7a5f;font-weight:800;letter-spacing:.14em;font-size:12px}.pairing-view h1{max-width:760px;margin:8px 0 18px;font-size:clamp(44px,7vw,92px);line-height:.96}.pairing-view p{max-width:700px;color:#aeb8ca;font-size:clamp(18px,2vw,28px);line-height:1.45}.pair-code{display:inline-flex;gap:12px;align-items:center;margin-top:20px;padding:14px 18px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.04);color:#aeb8ca}.pair-code strong{color:#fff;letter-spacing:.18em;font-size:24px}.qr-card{justify-self:end;width:min(430px,100%);padding:26px;border-radius:28px;background:#fff;color:#10131b;box-shadow:0 30px 100px rgba(0,0,0,.4);text-align:center}.qr-card img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.qr-card small{display:block;margin-top:12px;word-break:break-all;color:#5d6572}.connected-view{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.55fr);gap:22px;align-items:start}.tv-video-column{min-width:0}.tv-video-column video{width:100%;aspect-ratio:16/9;border-radius:24px;background:#000;object-fit:contain;box-shadow:0 24px 80px rgba(0,0,0,.35)}.tv-progress{height:8px;margin-top:12px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}.tv-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff7a38,#ff3f91,#7950ff)}.tv-next{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;margin-top:12px;padding:18px 20px;border-radius:20px;background:#111525;border:1px solid rgba(255,255,255,.1)}.tv-next small{grid-column:1;color:#9aa7ba;font-size:11px;letter-spacing:.12em}.tv-next strong{font-size:clamp(30px,5vw,58px)}.tv-next span{grid-row:1/3;grid-column:2;font-size:38px;font-weight:900;color:#ff6b83}.connected-view aside{display:grid;gap:12px}.sensor-card,.tv-score,.tv-kpis>div{border:1px solid rgba(255,255,255,.1);background:#0d1220;border-radius:20px}.sensor-card{display:flex;gap:12px;align-items:flex-start;padding:18px}.sensor-card>span{width:12px;height:12px;margin-top:3px;border-radius:50%;background:#ffb34d}.sensor-card>span.ready{background:#72f07a}.sensor-card small,.sensor-card strong,.sensor-card p{display:block}.sensor-card small{color:#9aa7ba}.sensor-card strong{margin-top:3px;font-size:20px}.sensor-card p{margin:5px 0 0;color:#9aa7ba}.tv-score{padding:20px;text-align:center}.tv-score small{display:block;color:#9aa7ba;letter-spacing:.12em}.tv-score strong{display:block;font-size:68px}.tv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tv-kpis>div{padding:14px;text-align:center}.tv-kpis small{display:block;color:#9aa7ba;font-size:9px}.tv-kpis strong{display:block;margin-top:5px;font-size:20px}.tv-start,.tv-secondary{min-height:60px;border:0;border-radius:18px;font:inherit;font-weight:850;font-size:18px;cursor:pointer}.tv-start{background:linear-gradient(135deg,#ff7a38,#ff3f91 55%,#7950ff);color:white}.tv-start:disabled{opacity:.45;cursor:not-allowed}.tv-secondary{background:#171d2c;color:#fff;border:1px solid rgba(255,255,255,.1)}@media(max-width:850px){.pairing-view,.connected-view{grid-template-columns:1fr}.pairing-view{gap:24px}.qr-card{justify-self:stretch;margin:auto}.connected-view aside{grid-template-columns:1fr 1fr}.sensor-card,.tv-score,.tv-kpis,.tv-start,.tv-secondary{grid-column:1/-1}}
.same-device-test{margin-top:18px;max-width:340px;width:100%;}
#tvPairNote{max-width:720px;}


/* Wictories 0.16.1 — Neon Arena TV receiver */
:root{--tv-bg:#01050a;--tv-panel:#04121d;--tv-cyan:#14cfff;--tv-lime:#d8ff00;--tv-text:#f7fbff;--tv-muted:#8398aa;}
body{background:radial-gradient(circle at 50% -10%,rgba(20,207,255,.12),transparent 36rem),linear-gradient(180deg,#01050a,#020a12)!important;color:var(--tv-text)!important;}
.tv-shell,.tv-card,.pair-card,.tv-stage,.tv-game-card{border-color:rgba(20,207,255,.25)!important;background:linear-gradient(180deg,rgba(5,20,31,.96),rgba(2,9,16,.98))!important;box-shadow:0 22px 70px rgba(0,0,0,.45)!important;}
.tv-brand b,.tv-accent,.room-code,.tv-ready{color:var(--tv-lime)!important;text-shadow:0 0 20px rgba(216,255,0,.18);}
button.primary,.tv-primary{background:linear-gradient(135deg,#c8f500,#e5ff1c)!important;color:#061006!important;border-color:rgba(216,255,0,.6)!important;box-shadow:0 0 28px rgba(216,255,0,.14)!important;}

/* Wictories 0.17.1 — Avatar Mirror TV */
header b{color:#d8ff00!important}header>strong{font-style:italic;letter-spacing:.035em}
.connected-view{grid-template-columns:minmax(0,1.78fr) minmax(330px,.52fr);gap:16px;align-items:start}
.connected-view aside{gap:10px;position:sticky;top:14px}
.tv-video-column video{border:1px solid rgba(20,207,255,.22);border-radius:18px;box-shadow:0 22px 70px rgba(0,0,0,.44),0 0 34px rgba(20,207,255,.05)}
.tv-next{border-color:rgba(20,207,255,.20);background:linear-gradient(135deg,rgba(20,207,255,.08),rgba(216,255,0,.025));}
.tv-next small{color:#14cfff;font-weight:900}.tv-next strong{font-style:italic;text-transform:uppercase}.tv-next span{color:#d8ff00;text-shadow:0 0 18px rgba(216,255,0,.25)}
.tv-progress i{background:linear-gradient(90deg,#14cfff,#d8ff00)}
.tv-start{background:linear-gradient(135deg,#c8f500,#e8ff36)!important;color:#071006!important;box-shadow:0 0 28px rgba(216,255,0,.14)}

.tv-avatar-card{padding:11px;border:1px solid rgba(20,207,255,.24);border-radius:18px;background:linear-gradient(180deg,rgba(4,20,31,.98),rgba(1,8,14,.99));box-shadow:inset 0 0 0 1px rgba(255,255,255,.015),0 16px 42px rgba(0,0,0,.28)}
.tv-avatar-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.tv-avatar-heading small,.tv-avatar-heading strong{display:block}.tv-avatar-heading small{color:#14cfff;font-size:9px;font-weight:900;letter-spacing:.12em}.tv-avatar-heading strong{margin-top:2px;font-size:15px}.tv-avatar-heading>span{width:10px;height:10px;border-radius:50%;background:#6f7d86;box-shadow:0 0 0 5px rgba(111,125,134,.08)}.tv-avatar-heading>span.ready{background:#d8ff00;box-shadow:0 0 0 5px rgba(216,255,0,.08),0 0 14px rgba(216,255,0,.34)}
.tv-avatar-stage{position:relative;height:clamp(190px,25vh,280px);overflow:hidden;border:1px solid rgba(20,207,255,.14);border-radius:13px;background:radial-gradient(circle at 50% 35%,rgba(20,207,255,.11),transparent 36%),linear-gradient(rgba(20,207,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(20,207,255,.04) 1px,transparent 1px),#02080e;background-size:auto,38px 38px,38px 38px,auto}
.tv-avatar-stage:after{content:"";position:absolute;z-index:1;left:12%;right:12%;bottom:8%;height:1px;background:linear-gradient(90deg,transparent,rgba(216,255,0,.55),transparent);box-shadow:0 0 22px rgba(216,255,0,.24)}
#tvAvatarCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:3;filter:drop-shadow(0 0 9px rgba(20,207,255,.25))}.tv-avatar-grid{position:absolute;inset:0;z-index:1;opacity:.26;background:linear-gradient(rgba(20,207,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(20,207,255,.055) 1px,transparent 1px);background-size:20% 20%;mask-image:linear-gradient(to bottom,transparent,black 18%,black 86%,transparent)}
#tvAvatarPlaceholder{position:absolute;z-index:4;left:10px;right:10px;bottom:10px;padding:8px 10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(1,8,14,.78);text-align:center}#tvAvatarPlaceholder b,#tvAvatarPlaceholder small{display:block}#tvAvatarPlaceholder b{font-size:11px}#tvAvatarPlaceholder small{margin-top:3px;color:#8398aa;font-size:9px}
.tv-avatar-foot{display:flex;justify-content:space-between;gap:8px;margin-top:7px;color:#93a5b5;font-size:9px}.tv-avatar-foot>span{color:#f7fbff;font-weight:750}

@media(min-width:1700px){.connected-view{grid-template-columns:minmax(0,1fr) 390px}.tv-avatar-stage{height:300px}.tv-score strong{font-size:82px}}
@media(max-width:1100px){.connected-view{grid-template-columns:minmax(0,1fr) 300px}.tv-avatar-stage{height:190px}.tv-score strong{font-size:52px}.tv-next strong{font-size:clamp(28px,4vw,48px)}}
@media(max-width:850px){.connected-view{grid-template-columns:1fr}.connected-view aside{position:static;grid-template-columns:1fr 1fr}.tv-avatar-card{grid-column:1/-1}.tv-avatar-stage{height:min(42vh,300px)}.tv-next{margin-bottom:10px}}
/* 0.17.1 visual QA pass 2 — honor app state. Author display rules must never override hidden. */
.pairing-view[hidden], .connected-view[hidden] { display:none !important; }
/* 0.17.1 visual QA pass 3 — living-room 720p/compact-height fit without scrolling. */
@media (max-height: 800px) and (min-width: 851px) {
  .tv-shell{padding:10px 0 12px;width:min(1500px,calc(100% - 26px))}
  header{margin-bottom:10px} header>strong{font-size:22px} header span{padding:7px 11px;font-size:12px}
  .connected-view{gap:10px}
  .connected-view aside{gap:6px;top:8px}
  .sensor-card{padding:10px 12px;border-radius:14px}.sensor-card>span{width:9px;height:9px}.sensor-card strong{font-size:16px}.sensor-card p{margin-top:2px;font-size:11px}
  .tv-avatar-card{padding:7px;border-radius:14px}.tv-avatar-heading{margin-bottom:5px}.tv-avatar-heading small{font-size:7px}.tv-avatar-heading strong{font-size:12px}.tv-avatar-stage{height:clamp(118px,22vh,158px);border-radius:10px}.tv-avatar-foot{margin-top:4px;font-size:7px}.tv-avatar-foot>small{display:none}
  .tv-score{padding:10px;border-radius:14px}.tv-score small{font-size:9px}.tv-score strong{font-size:48px;line-height:1}
  .tv-kpis{gap:5px}.tv-kpis>div{padding:8px;border-radius:12px}.tv-kpis small{font-size:7px}.tv-kpis strong{font-size:16px;margin-top:2px}
  .tv-start,.tv-secondary{min-height:44px;border-radius:12px;font-size:14px}
  .tv-video-column video{border-radius:14px;max-height:calc(100vh - 158px)}
  .tv-progress{height:6px;margin-top:7px}.tv-next{margin-top:7px;padding:10px 14px;border-radius:14px}.tv-next small{font-size:8px}.tv-next strong{font-size:clamp(28px,4vw,44px)}.tv-next span{font-size:28px}
}
@media (max-height: 650px) and (min-width: 851px) {
  .tv-shell{padding-top:6px}.tv-avatar-stage{height:104px}.sensor-card p{display:none}.tv-score strong{font-size:38px}.tv-score{padding:7px}.tv-start,.tv-secondary{min-height:38px;font-size:12px}.tv-kpis>div{padding:6px}.tv-next{padding:8px 12px}.tv-next strong{font-size:clamp(24px,3.7vw,38px)}.tv-next span{font-size:24px}
}

/* 0.17.3 — Avatar TV polish + ghost target */
.tv-avatar-card{
  background:
    radial-gradient(circle at 50% 14%,rgba(20,207,255,.13),transparent 34%),
    radial-gradient(circle at 50% 86%,rgba(216,255,0,.05),transparent 22%),
    linear-gradient(180deg,rgba(4,20,31,.99),rgba(1,8,14,.99));
}
.tv-avatar-stage{
  height:clamp(230px,29vh,330px);
  background:
    radial-gradient(circle at 50% 34%,rgba(20,207,255,.12),transparent 34%),
    radial-gradient(circle at 50% 88%,rgba(216,255,0,.05),transparent 19%),
    linear-gradient(rgba(20,207,255,.038) 1px,transparent 1px),
    linear-gradient(90deg,rgba(20,207,255,.038) 1px,transparent 1px),
    #02080e;
  background-size:auto,auto,38px 38px,38px 38px,auto;
}
#tvAvatarCanvas{filter:drop-shadow(0 0 12px rgba(20,207,255,.20)) drop-shadow(0 0 26px rgba(20,207,255,.08))}
.tv-avatar-legend{position:absolute;z-index:5;left:9px;top:9px;display:flex;gap:8px;padding:5px 7px;border:1px solid rgba(255,255,255,.07);border-radius:999px;background:rgba(1,8,14,.66);font-size:7px;font-weight:900;letter-spacing:.08em;color:#aebdca;backdrop-filter:blur(8px)}
.tv-avatar-legend span{display:flex;gap:4px;align-items:center}.tv-avatar-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.tv-avatar-legend .me{background:#14cfff;box-shadow:0 0 9px rgba(20,207,255,.6)}.tv-avatar-legend .target{background:#d8ff00;box-shadow:0 0 9px rgba(216,255,0,.5)}
.tv-avatar-quality-track{height:4px;margin-top:7px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}.tv-avatar-quality-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#14cfff,#d8ff00);transition:width .18s ease}
.tv-avatar-foot{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 8px}.tv-avatar-foot strong{grid-column:1/-1;color:#d8ff00;font-size:8px;text-transform:uppercase;letter-spacing:.055em}.tv-avatar-foot small{justify-self:end}
@media(min-width:1700px){.tv-avatar-stage{height:350px}}
@media(max-height:800px) and (min-width:851px){.tv-avatar-stage{height:clamp(140px,24vh,190px)}.tv-avatar-legend{font-size:6px}.tv-avatar-foot strong{font-size:7px}}
@media(max-height:650px) and (min-width:851px){.tv-avatar-stage{height:118px}.tv-avatar-quality-track{margin-top:4px}.tv-avatar-foot strong{display:none}}

/* ========================================================================== */
/* Wictories 0.18.0 — PLAY POLISH TV                                           */
/* ========================================================================== */
.play-polish-tv{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,330px);
  grid-template-areas:
    "hud hud"
    "video rail";
  gap:10px 14px;
  align-items:stretch;
}
.play-polish-tv[hidden]{display:none!important}
.tv-top-hud{
  grid-area:hud;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}
.tv-top-hud>div{
  min-height:78px;
  padding:10px 18px;
  border:1px solid rgba(20,207,255,.18);
  border-radius:13px;
  background:linear-gradient(180deg,rgba(4,19,30,.98),rgba(1,8,14,.99));
  box-shadow:inset 0 0 22px rgba(20,207,255,.025);
}
.tv-top-hud small,.tv-top-hud strong{display:block}
.tv-top-hud small{color:#7890a2;font-size:8px;font-weight:950;letter-spacing:.1em}
.tv-top-hud strong{margin-top:2px;color:white;font-size:clamp(34px,3.8vw,58px);font-style:italic;line-height:.95;letter-spacing:-.04em}
.tv-top-hud .combo{text-align:center;border-color:rgba(216,255,0,.24);background:radial-gradient(circle at 50% 0%,rgba(216,255,0,.10),transparent 72%),#031018}
.tv-top-hud .combo small,.tv-top-hud .combo strong{color:#d8ff00}
.play-polish-tv .tv-video-column{grid-area:video;display:grid;grid-template-rows:minmax(0,1fr) 8px;gap:8px;min-width:0;min-height:0}
.play-polish-tv .tv-video-column video{
  width:100%;height:100%;min-height:0;aspect-ratio:auto;object-fit:contain;
  border:1px solid rgba(20,207,255,.24);border-radius:14px;background:#000;
  box-shadow:0 22px 70px rgba(0,0,0,.48),0 0 34px rgba(20,207,255,.045)
}
.play-polish-tv .tv-progress{height:8px;margin:0;border:1px solid rgba(20,207,255,.14);background:#04101a}
.tv-action-rail{grid-area:rail;display:grid;grid-template-rows:minmax(210px,.95fr) auto minmax(150px,.72fr) auto auto auto;gap:8px;min-width:0}
.tv-next{
  display:flex;min-height:0;margin:0;padding:15px 12px;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  border:1px solid rgba(20,207,255,.48);border-radius:14px;
  background:radial-gradient(circle at 50% 60%,rgba(216,255,0,.10),transparent 30%),linear-gradient(180deg,#05131e,#02080e);
  box-shadow:inset 0 0 0 1px rgba(216,255,0,.035),0 18px 50px rgba(0,0,0,.28)
}
.tv-next small{color:#14cfff;font-size:9px;font-weight:950;letter-spacing:.14em}
.tv-next strong{margin-top:8px;color:#fff;font-size:clamp(38px,4.4vw,64px);font-style:italic;line-height:.92;letter-spacing:-.045em;text-transform:uppercase}
.tv-next span{display:grid;place-items:center;width:105px;height:105px;margin-top:12px;color:#d8ff00;font-size:34px;font-weight:1000;text-shadow:0 0 24px rgba(216,255,0,.28)}
.tv-feedback{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;padding:9px 12px;border:1px solid rgba(20,207,255,.16);border-radius:12px;background:#03101a}
.tv-feedback small{grid-column:1/-1;color:#6f8799;font-size:7px;font-weight:900;letter-spacing:.1em}
.tv-feedback strong{font-size:13px;font-style:italic}.tv-feedback b{font-size:20px;color:#dbe8f0}
.tv-feedback.perfect{border-color:rgba(216,255,0,.56);background:rgba(216,255,0,.08);box-shadow:0 0 24px rgba(216,255,0,.13)}
.tv-feedback.perfect strong,.tv-feedback.perfect b{color:#d8ff00}
.tv-feedback.good{border-color:rgba(20,207,255,.48);background:rgba(20,207,255,.07)}.tv-feedback.good strong,.tv-feedback.good b{color:#70e8ff}
.tv-feedback.late{border-color:rgba(255,188,89,.42);background:rgba(255,188,89,.06)}.tv-feedback.late strong,.tv-feedback.late b{color:#ffc26b}
.tv-feedback.miss{border-color:rgba(255,95,110,.42);background:rgba(255,95,110,.06)}.tv-feedback.miss strong,.tv-feedback.miss b{color:#ff7d88}
.play-polish-tv .tv-avatar-card{padding:8px;border-radius:13px;min-height:0}
.play-polish-tv .tv-avatar-stage{height:100%;min-height:120px}
.play-polish-tv .tv-avatar-heading{margin-bottom:4px}.play-polish-tv .tv-avatar-heading small{font-size:7px}.play-polish-tv .tv-avatar-heading strong{font-size:11px}
.play-polish-tv .tv-avatar-foot{margin-top:3px}.play-polish-tv .tv-avatar-foot small{color:#d8ff00;font-weight:900}
.play-polish-tv .sensor-card{padding:8px 10px;border-radius:11px}.play-polish-tv .sensor-card small{font-size:7px}.play-polish-tv .sensor-card strong{font-size:12px}.play-polish-tv .sensor-card p{display:none}
.play-polish-tv .tv-kpis{grid-template-columns:1fr 1fr;gap:6px}.play-polish-tv .tv-kpis>div{padding:7px;border-radius:10px}.play-polish-tv .tv-kpis small{font-size:6px}.play-polish-tv .tv-kpis strong{font-size:13px}
.tv-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tv-controls .tv-start,.tv-controls .tv-secondary{min-height:42px;border-radius:10px;font-size:11px}

@media (min-width:1500px){
  .play-polish-tv{grid-template-columns:minmax(0,1fr) 350px}
  .tv-action-rail{grid-template-rows:minmax(245px,1fr) auto minmax(205px,.72fr) auto auto auto}
}
@media (max-height:800px) and (min-width:851px){
  .tv-shell{padding:7px 0 8px}
  header{display:none}
  .play-polish-tv{height:calc(100vh - 14px);grid-template-columns:minmax(0,1fr) 270px;grid-template-rows:58px minmax(0,1fr);gap:6px 8px}
  .tv-top-hud>div{min-height:0;padding:5px 10px}.tv-top-hud small{font-size:6px}.tv-top-hud strong{font-size:29px}
  .tv-action-rail{grid-template-rows:minmax(150px,1fr) auto minmax(92px,.58fr) auto auto auto;gap:4px}
  .tv-next{padding:6px}.tv-next small{font-size:6px}.tv-next strong{font-size:34px}.tv-next span{width:50px;height:50px;margin-top:2px;font-size:21px}
  .tv-feedback{padding:4px 7px}.tv-feedback small{display:none}.tv-feedback strong{font-size:9px}.tv-feedback b{font-size:13px}
  .play-polish-tv .tv-avatar-card{padding:4px}.play-polish-tv .tv-avatar-heading{display:none}.play-polish-tv .tv-avatar-stage{min-height:72px}.play-polish-tv .tv-avatar-quality-track{margin-top:2px}.play-polish-tv .tv-avatar-foot{display:none}
  .play-polish-tv .sensor-card{padding:5px 7px}.play-polish-tv .sensor-card>span{width:7px;height:7px}.play-polish-tv .sensor-card small{display:none}.play-polish-tv .sensor-card strong{font-size:9px;margin:0}
  .play-polish-tv .tv-kpis>div{padding:4px}.play-polish-tv .tv-kpis small{font-size:5px}.play-polish-tv .tv-kpis strong{font-size:10px;margin:0}
  .tv-controls .tv-start,.tv-controls .tv-secondary{min-height:30px;font-size:8px}
}

/* 0.18.0 Play Polish — visual QA loop B: full living-room canvas. */
body:has(#connectedView:not([hidden])){overflow:hidden}
body:has(#connectedView:not([hidden])) header{display:none!important}
body:has(#connectedView:not([hidden])) .tv-shell{width:calc(100% - 18px);height:100vh;padding:9px 0;margin:auto}
body:has(#connectedView:not([hidden])) .play-polish-tv{height:100%;min-height:0;grid-template-rows:72px minmax(0,1fr)}
body:has(#connectedView:not([hidden])) .tv-action-rail{min-height:0}
body:has(#connectedView:not([hidden])) .play-polish-tv .tv-video-column{min-height:0}

/* 0.18.4 · TV media source parity (YouTube/local) */
.tv-media-stage{width:100%;height:100%;min-height:0;position:relative;border:1px solid rgba(20,207,255,.24);border-radius:14px;background:#000;overflow:hidden;box-shadow:0 22px 70px rgba(0,0,0,.48),0 0 34px rgba(20,207,255,.045)}
.play-polish-tv .tv-video-column{grid-template-rows:minmax(0,1fr) 8px auto}
.play-polish-tv .tv-video-column video,.tv-youtube-shell,.tv-youtube-shell iframe{width:100%!important;height:100%!important;min-height:0;display:block;border:0;background:#000}
.play-polish-tv .tv-video-column video{border:0!important;border-radius:0!important;box-shadow:none!important;object-fit:contain}
.tv-youtube-shell[hidden],.tv-video-column video[hidden]{display:none!important}
.tv-media-label{display:block;min-height:13px;padding:1px 4px;color:#6f8799;font-size:7px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-height:800px) and (min-width:851px){.play-polish-tv .tv-video-column{grid-template-rows:minmax(0,1fr) 6px 10px}.tv-media-label{font-size:6px}}

/* 0.18.7 robust cross-device pairing */
.tv-pair-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.tv-pair-actions .tv-secondary{min-height:48px;padding:0 16px;font-size:14px}.tv-pair-status{display:block;margin-top:10px;color:#7f8ca2;font-size:12px}.pair-code strong{font-variant-numeric:tabular-nums}.sensor-card p{line-height:1.35}@media(max-width:850px){.tv-pair-actions{display:grid;grid-template-columns:1fr}.tv-pair-actions .tv-secondary{width:100%}}

/* Wictories 0.21 · Competition result screen */
.connected-view { position:relative; }
.tv-result-screen {
  position:fixed;
  z-index:120;
  inset:0;
  display:grid;
  place-items:center;
  padding:clamp(18px,3vw,48px);
  background:rgba(1,7,12,.88);
  backdrop-filter:blur(18px);
}
.tv-result-screen[hidden] { display:none !important; }
.tv-result-panel {
  width:min(860px,100%);
  padding:clamp(26px,4vw,52px);
  border:1px solid rgba(20,207,255,.26);
  border-radius:32px;
  background:
    radial-gradient(circle at 78% 12%,rgba(20,207,255,.18),transparent 32%),
    radial-gradient(circle at 12% 92%,rgba(216,255,0,.10),transparent 28%),
    linear-gradient(160deg,#061722,#020a10 72%);
  box-shadow:0 42px 140px rgba(0,0,0,.62),inset 0 0 0 1px rgba(255,255,255,.025);
  text-align:center;
}
.tv-result-panel > .eyebrow { margin:0 0 16px; color:#d8ff00; }
.tv-result-score { display:flex; flex-direction:column; align-items:center; justify-content:center; width:min(300px,56vw); aspect-ratio:1; margin:auto; border:2px solid rgba(216,255,0,.64); border-radius:50%; background:radial-gradient(circle,rgba(216,255,0,.11),rgba(5,18,25,.92) 68%); box-shadow:0 0 0 14px rgba(216,255,0,.025),0 0 50px rgba(216,255,0,.10); }
.tv-result-score small,.tv-result-score span { color:#89a3b4; font-size:11px; font-weight:950; letter-spacing:.14em; }
.tv-result-score strong { margin:8px 0 4px; color:#d8ff00; font-size:clamp(64px,9vw,112px); line-height:.9; letter-spacing:-.07em; }
.tv-result-grade { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:26px; text-align:left; }
.tv-result-grade > span { display:grid; place-items:center; min-width:86px; height:86px; padding:0 14px; border:1px solid rgba(20,207,255,.50); border-radius:24px; color:#14cfff; background:rgba(20,207,255,.08); font-size:44px; font-weight:1000; }
.tv-result-grade strong,.tv-result-grade small { display:block; }
.tv-result-grade strong { color:#f4fbff; font-size:clamp(28px,4vw,48px); line-height:1; }
.tv-result-grade small { margin-top:7px; color:#8ca4b4; font-size:14px; }
.tv-result-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:24px; }
.tv-result-kpis > div { padding:15px; border:1px solid rgba(255,255,255,.08); border-radius:16px; background:rgba(255,255,255,.025); }
.tv-result-kpis small,.tv-result-kpis strong { display:block; }
.tv-result-kpis small { color:#748fa0; font-size:9px; font-weight:950; letter-spacing:.10em; }
.tv-result-kpis strong { margin-top:6px; color:#ffffff; font-size:27px; }
.tv-result-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:22px; }
.tv-result-panel > small:last-child { display:block; margin-top:16px; color:#6e8797; }
@media(max-width:700px){.tv-result-panel{padding:22px;border-radius:22px}.tv-result-score{width:180px}.tv-result-grade{display:block;text-align:center}.tv-result-grade>span{width:70px;height:70px;margin:0 auto 12px;font-size:34px}.tv-result-kpis{grid-template-columns:1fr}.tv-result-actions{grid-template-columns:1fr}}

/* ========================================================================== */
/* Wictories 0.24 — TV ready state, mobile-first control and no-scroll UX     */
/* ========================================================================== */
.tv-ready-panel[hidden],#tvCurrentActionPanel[hidden]{display:none!important}
.tv-ready-panel{display:grid;align-content:center;gap:10px;min-height:0;padding:16px;border:1px solid rgba(216,255,0,.30);border-radius:14px;background:radial-gradient(circle at 50% 28%,rgba(216,255,0,.08),transparent 50%),linear-gradient(180deg,#06151e,#02080e);box-shadow:inset 0 0 0 1px rgba(255,255,255,.018),0 18px 50px rgba(0,0,0,.26)}
.tv-ready-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.tv-ready-heading small{color:#14cfff;font-size:8px;font-weight:950;letter-spacing:.14em}.tv-ready-heading span{padding:5px 8px;border:1px solid rgba(255,179,77,.22);border-radius:999px;color:#ffca7c;background:rgba(255,179,77,.05);font-size:7px;font-weight:950;letter-spacing:.08em}.tv-ready-heading span[data-state="ready"]{border-color:rgba(114,240,122,.3);color:#9bffae;background:rgba(114,240,122,.06)}.tv-ready-heading span[data-state="recovering"]{border-color:rgba(216,255,0,.3);color:#d8ff00}.tv-ready-panel h2{margin:0;color:#fff;font-size:clamp(25px,3.1vw,42px);line-height:.95;letter-spacing:-.04em}.tv-ready-panel p{margin:0;color:#86a0b0;font-size:12px;line-height:1.4}.tv-ready-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tv-ready-checks span{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 4px;border:1px solid rgba(255,255,255,.075);border-radius:9px;color:#738d9d;background:rgba(255,255,255,.018);font-size:8px;font-weight:900}.tv-ready-checks i{width:7px;height:7px;border-radius:50%;background:#ffb34d}.tv-ready-checks span.ready{border-color:rgba(114,240,122,.2);color:#dfffe6;background:rgba(114,240,122,.04)}.tv-ready-checks span.ready i{background:#72f07a;box-shadow:0 0 12px rgba(114,240,122,.45)}.tv-ready-start{width:100%;min-height:52px!important;font-size:14px!important}.tv-ready-panel>small{color:#6d8798;font-size:8px;text-align:center}.tv-controls{grid-template-columns:minmax(0,1.45fr) minmax(72px,.78fr) minmax(72px,.78fr)}.tv-controls .danger{border-color:rgba(255,102,119,.25);color:#ff8996}
body:has(#connectedView:not([hidden])) .tv-shell{overflow:hidden}
body:has(#connectedView:not([hidden])) .connected-view{overflow:hidden}
body:has(#connectedView:not([hidden])) .tv-video-column,body:has(#connectedView:not([hidden])) .tv-action-rail{overflow:hidden}
@media(min-width:851px){.tv-action-rail:has(.tv-ready-panel:not([hidden])){grid-template-rows:minmax(225px,1fr) auto minmax(145px,.66fr) auto auto auto}.tv-action-rail:has(.tv-ready-panel:not([hidden])) .tv-ready-panel{grid-row:1}.tv-action-rail:has(.tv-ready-panel:not([hidden])) .tv-feedback{grid-row:2}.tv-action-rail:has(.tv-ready-panel:not([hidden])) .tv-avatar-card{grid-row:3}.tv-action-rail:has(.tv-ready-panel:not([hidden])) .sensor-card{grid-row:4}.tv-action-rail:has(.tv-ready-panel:not([hidden])) .tv-kpis{grid-row:5}.tv-action-rail:has(.tv-ready-panel:not([hidden])) .tv-controls{grid-row:6}}
@media(max-height:800px) and (min-width:851px){.tv-ready-panel{gap:5px;padding:8px}.tv-ready-panel h2{font-size:24px}.tv-ready-panel p{font-size:8px}.tv-ready-checks span{padding:4px 2px;font-size:6px}.tv-ready-start{min-height:34px!important;font-size:9px!important}.tv-ready-panel>small{font-size:6px}.tv-action-rail:has(.tv-ready-panel:not([hidden])){grid-template-rows:minmax(142px,1fr) auto minmax(88px,.56fr) auto auto auto}.tv-controls{grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(58px,.85fr))}}
@media(max-width:850px){body:has(#connectedView:not([hidden])){overflow:auto}.tv-ready-panel{min-height:220px}.tv-controls{grid-column:1/-1;grid-template-columns:1fr 1fr 1fr}}
