/* Shared result semantics; controller and broadcast own their visual accents. */
.admin .drop-allowed:not(.selected-player){background:#ffffff12!important;outline:2px dashed #e9eef5!important;outline-offset:-2px}
/* Qualified panels light up only after a player is confirmed. Inset rail keeps geometry unchanged. */
#stage .sg-result-panel.qualified{border-color:#465863;background:#101a22f2;box-shadow:none}
#stage .sg-result-panel.qualified>h3{color:#8d9faa;text-shadow:none}
#stage .sg-result-panel.qualified:has(.sg-result-player){border-color:#a4f4d3;background:#0e211df7;box-shadow:inset 0 2px 0 #a4f4d3,0 0 0 1px #a4f4d344,0 0 12px #a4f4d366,0 0 26px #a4f4d32e}
#stage .sg-result-panel.qualified:has(.sg-result-player)>h3{color:#a4f4d3;text-shadow:0 0 9px #a4f4d34d}
/* Champion confirmation: retain the plaque and trophy geometry. */
.champion-label{position:absolute;bottom:9px;left:0;right:0;text-align:center;font-size:11px;line-height:14px;letter-spacing:3px;color:#a4f4d3;pointer-events:none}
#stage .sg-result-panel.qualified:has(.sg-result-player){animation:qualified-glow 3.2s ease-in-out infinite}
@keyframes qualified-glow{0%,100%{border-color:#c4a5f4;box-shadow:inset 0 0 10px #c4a5f418,0 0 5px #c4a5f455,0 0 14px #ac7ce62b}50%{border-color:#fff0ff;box-shadow:inset 0 0 16px #d8b8ff28,0 0 8px #eed9ffbb,0 0 22px #be8cff77}}
@media(prefers-reduced-motion:reduce){#stage .sg-result-panel.qualified:has(.sg-result-player){animation:none}}
.admin #stage .champion:not(.awarded){border-color:#46515d;box-shadow:none}
.admin #stage .champion.awarded{border-color:#a4f4d3;background:#14251f;box-shadow:inset 0 2px 0 #a4f4d3,0 0 12px #a4f4d366,0 0 24px #a4f4d32e}
.admin #stage .champion.awarded:before{color:#a4f4d3}
