/* ROTOR v104 — bottom-left copy as THREE LEVELS (Jarak 13:0x: "keep both sets bottom left — the yellow/white one with more
   info and the equal separate white/green one — and above that another main one, different levels, always fitting on
   screen"; "this looks clunky"). The v100 queue keeps its three newest lines; newest reads on TOP as the main headline,
   then it steps down a level as the next line arrives:
     1 · MAIN (top)      — largest, white + lime accent, no panel
     2 · LINE            — medium, white + lime accent, no panel, its own block
     3 · INFO (bottom)   — compact card: white + rotor-yellow accent, detail + kicker, thin yellow rule
   Every size is clamped against BOTH width and height, so the block never outgrows short or narrow windows. */
#v100Queue{flex-direction:column-reverse!important;justify-content:flex-start!important;gap:clamp(6px,1.3vh,14px)!important;
  width:clamp(240px,27vw,440px)!important;left:24px!important;bottom:calc(var(--v100-m,20px) + clamp(22px,3.4vh,34px))!important;
  max-height:min(46vh,420px);overflow:hidden}
#v100Queue .q{opacity:0;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;text-shadow:0 1px 2px rgba(0,0,0,.92),0 2px 10px rgba(0,0,0,.55)}
#v100Queue .q.in,#v100Queue .q.old,#v100Queue .q.older{opacity:1}
#v100Queue .q:nth-last-child(n+4){display:none!important}
#v100Queue .q h3{letter-spacing:.005em;line-height:.9!important}
#v100Queue .q h3 em{color:var(--v100-tag-accent,#c7fc68)}
/* 1 · MAIN */
#v100Queue .q:last-child h3{font-size:clamp(26px,min(3.2vw,6vh),58px)!important}
#v100Queue .q:last-child p,#v100Queue .q:last-child small{display:none!important}
/* 2 · LINE */
#v100Queue .q:nth-last-child(2) h3{font-size:clamp(17px,min(1.9vw,3.5vh),32px)!important}
#v100Queue .q:nth-last-child(2) p,#v100Queue .q:nth-last-child(2) small{display:none!important}
/* 3 · INFO card */
#v100Queue .q:nth-last-child(3){display:grid!important;gap:clamp(3px,.6vh,6px)!important;padding:clamp(8px,1.2vh,12px) clamp(10px,1vw,14px) clamp(8px,1.2vh,12px) clamp(12px,1.1vw,16px)!important;
  background:linear-gradient(90deg,rgba(1,11,41,.82),rgba(1,11,41,.42) 70%,rgba(1,11,41,0))!important;border-left:2px solid var(--v100-yellow,#ffcf00)!important;border-radius:0 6px 6px 0!important}
#v100Queue .q:nth-last-child(3) h3{font-size:clamp(14px,min(1.3vw,2.4vh),22px)!important}
#v100Queue .q:nth-last-child(3) h3 em{color:var(--v100-yellow,#ffcf00)}
#v100Queue .q:nth-last-child(3) p{display:block!important;font:500 clamp(11px,min(.85vw,1.6vh),13px)/1.35 Inter,sans-serif!important;opacity:.86;max-width:36ch}
#v100Queue .q:nth-last-child(3) small{display:flex!important;font-size:clamp(8.5px,min(.62vw,1.15vh),10px)!important;opacity:.62}
/* in a match: only the main line, small and low (unchanged intent from v100) */
body.playing #v100Queue .q:not(:last-child){display:none!important}
body.playing #v100Queue .q:last-child h3{font-size:clamp(14px,1.3vw,18px)!important}
/* v104 layout: PLAYER STATS duplicates the YOUR PLAYER card — hidden on the home menu so the left column never stacks into the copy */
body.f8-home #v101Stats{display:none!important}
/* v104 bottom-left status: silver venue + ball-green live light, on the bottom bar's line; the local DEV stamp is hidden */
#__devStamp{display:none!important}
#v104Status{position:fixed;bottom:clamp(8px,1.4vh,14px);z-index:45;display:flex;align-items:center;gap:14px;pointer-events:none;
  font:700 clamp(9px,.62vw,11px)/1 Inter,sans-serif;letter-spacing:.24em;text-transform:uppercase;-webkit-font-smoothing:antialiased}
#v104Status .v104-venue{color:#e9eef2;opacity:.82}
#v104Status .v104-live{display:flex;align-items:center;gap:7px;color:#9aff00}
#v104Status .v104-live i{width:7px;height:7px;border-radius:50%;background:#9aff00;box-shadow:0 0 0 2px rgba(154,255,0,.18),0 0 10px rgba(154,255,0,.65);animation:v104pulse 2.4s cubic-bezier(.22,.61,.36,1) infinite}
@keyframes v104pulse{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){#v104Status .v104-live i{animation:none}}
body.playing #v104Status{opacity:.6}
/* v104: STADIUM FULL TOUR + FIELD on ONE row under the venue title, so the awards strip below them reads clear */
#v100Tour{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px!important;max-width:min(360px,30vw)}
#v100Tour .stops{flex-basis:100%}
/* v104: the newest line always carries its full info (detail + kicker), so both colour sets and all the info stay on screen */
#v100Queue .q:last-child p{display:block!important;font:500 clamp(11px,min(.85vw,1.6vh),14px)/1.35 Inter,sans-serif!important;opacity:.86;max-width:40ch;margin-top:4px!important}
#v100Queue .q:last-child small{display:flex!important;font-size:clamp(8.5px,min(.62vw,1.15vh),10px)!important;opacity:.62;margin-top:4px}
/* v104: RESET LAYOUT sits higher — in the top bar, left of VOLT / LOCAL CIRCUIT, off the dock */
#v101ResetLayout{position:fixed!important;top:4px!important;bottom:auto!important;left:auto!important;right:clamp(200px,15vw,260px)!important;transform:none!important;height:22px!important;padding:0 10px!important;font-size:9px!important;z-index:46}
#v104Status .v104-venue{color:#e9eef2;opacity:1;letter-spacing:.2em}
#v104Status .v104-venue .v104-main{font-weight:800;color:#ffffff}
