/* ==== 大屏展示 ==== */
html, body { height: 100%; overflow: hidden; }
.screen { position: fixed; inset: 0; }
.stage { position: absolute; inset: 0; display: none; z-index: 1; }
.stage.active { display: block; }

/* 顶部品牌条 */
.brandbar {
  position: absolute; top: 0; left: 0; right: 0; z-index: 3;
  display: flex; align-items: center; gap: 14px; padding: 18px 36px; color: #fff;
  overflow: visible;
}
.brandbar .emblem {
  height: 58px;
  width: auto;
  max-width: 200px;
  border-radius: 10px;
  object-fit: contain;
  object-position: left center;
  flex-shrink: 0;
  background: transparent;
}
.brandbar .bt {
  font-weight: 900; font-size: 1.45rem; letter-spacing: 2px; line-height: 1.2;
  min-width: 0;
}
.brandbar .en { margin-left: auto; font-weight: 800; letter-spacing: 4px; opacity: .9; font-size: 1.1rem; flex-shrink: 0; }

/* ---------- 欢迎页 ---------- */
.welcome { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; color: #fff; padding: 0 6vw; }
.welcome .outline {
  font-size: 6vw; font-weight: 900; letter-spacing: .18em; line-height: 1;
  color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.55); opacity: .5; margin-bottom: 1.5vh;
}
.welcome h1 { font-size: 7.5vw; font-weight: 900; margin: 1vh 0; text-shadow: 0 6px 30px rgba(150,50,0,.35); line-height: 1.15; }
.welcome .slogan { font-size: 2.6vw; font-weight: 700; letter-spacing: .12em; margin: 1.2vh 0; opacity: .96; }
.welcome .time { margin-top: 3vh; font-size: 1.6vw; background: rgba(255,255,255,.18); border: 1.5px solid rgba(255,255,255,.6); padding: .5em 1.4em; border-radius: 999px; font-weight: 700; }
.welcome .bigwave { color: #fff; margin-top: 4vh; }
.welcome .bigwave .wave { height: 5vh; gap: 8px; }
.welcome .bigwave .wave i { width: 8px; }

/* 底部横幅 */
.footer-band {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
  background: linear-gradient(90deg,#E85D04,#FF8A2B);
  color: #fff; display: flex; align-items: center; justify-content: center; gap: 18px;
  padding: 14px; font-weight: 900; letter-spacing: 3px; font-size: 1.5rem;
}
.footer-band .emblem {
  height: 40px;
  width: auto;
  max-width: 140px;
  border-radius: 8px;
  object-fit: contain;
  background: transparent;
}

/* ---------- 评分页 ---------- */
.scoring {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  height: 100%;
  align-items: center;
  padding: 9vh 3.5vw 12vh;
  gap: 2.5vw;
}
.sc-left { text-align: center; color: #fff; }
.sc-photo {
  width: 28vh; height: 28vh; border-radius: 50%; object-fit: cover; border: 8px solid #fff;
  box-shadow: 0 20px 60px rgba(150,50,0,.4); margin: 0 auto 3vh; background: var(--cream);
}
.sc-photo.placeholder { display:flex; align-items:center; justify-content:center; font-size: 11vh; color: var(--brand); }
.sc-no { display:inline-block; background:#fff; color:var(--brand-deep); font-weight:900; padding:.3em 1.2em; border-radius:999px; font-size:1.7vw; margin-bottom:1.5vh; }
.sc-name { font-size: 4.6vw; font-weight: 900; margin: .3vh 0; text-shadow: 0 4px 20px rgba(150,50,0,.35); }
.sc-song { font-size: 2.4vw; font-weight: 800; }
.sc-dept { font-size: 1.4vw; opacity: .92; margin-top: 1vh; }

.sc-right {
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 1.6vw;
  min-width: 0;
}
.qr-card {
  background:#fff;
  border-radius: 28px;
  padding: 2.6vh 2.6vh 1.8vh;
  box-shadow: 0 20px 60px rgba(150,50,0,.35);
  text-align:center;
  flex-shrink: 0;
}
.qr-card #qrbox { width: 30vh; height: 30vh; display:flex; align-items:center; justify-content:center; }
.qr-card #qrbox img, .qr-card #qrbox canvas { width: 100% !important; height: 100% !important; }
.qr-tip { margin-top: 1.4vh; font-size: 1.8vw; font-weight: 900; color: var(--brand-deep); }
.qr-sub { font-size: 1.1vw; color: var(--ink-soft); font-weight: 700; margin-top:.35vh; }

/* 右侧技术支持卡（投屏侧栏） */
.sc-support {
  width: 11.5vw;
  min-width: 148px;
  max-width: 210px;
  background: rgba(255,255,255,.96);
  border-radius: 22px;
  padding: 1.8vh 1.1vw 1.6vh;
  box-shadow: 0 14px 40px rgba(150,50,0,.28);
  text-align: center;
  color: var(--ink);
  flex-shrink: 0;
}
.sc-support .ss-qr {
  width: 8.2vw;
  height: 8.2vw;
  min-width: 96px;
  min-height: 96px;
  max-width: 140px;
  max-height: 140px;
  margin: 0 auto 1.2vh;
  padding: .45vh;
  border-radius: 14px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(232,93,4,.12);
  box-sizing: border-box;
}
.sc-support .ss-qr img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 10px;
}
.sc-support .ss-label {
  font-size: .85vw;
  font-weight: 800;
  letter-spacing: .08em;
  color: #9a7a5c;
  margin-bottom: .35vh;
}
.sc-support .ss-line {
  font-size: .95vw;
  font-weight: 700;
  color: var(--ink);
}
.sc-support .ss-phone {
  display: inline-block;
  margin-top: .5vh;
  font-size: 1.15vw;
  font-weight: 900;
  color: var(--brand-deep);
  letter-spacing: .02em;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  word-break: break-all;
  text-decoration: none;
}
.sc-support .ss-phone:hover { color: var(--brand); text-decoration: underline; }
.sc-support .ss-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: .8vh;
  padding: .35em .9em;
  border-radius: 999px;
  font-size: .78vw;
  font-weight: 800;
  background: linear-gradient(135deg,#FF8A2B,#E85D04);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(232,93,4,.28);
}
.sc-support .ss-cta:hover { filter: brightness(1.05); }

.closed-tip { position:absolute; bottom: 14vh; left:0; right:0; text-align:center; color:#fff; font-size:1.6vw; font-weight:800; opacity:.9; }

/* ---------- 成绩页 ---------- */
body.mode-result .brandbar { z-index: 4; }
body.mode-result .brandbar .bt {
  font-size: 1.25rem;
  line-height: 1.2;
  max-width: 42vw;
}

.result {
  height: 100%;
  padding: 9vh 3.2vw 1.6vh;
  color:#fff;
  display:flex;
  flex-direction:column;
  box-sizing: border-box;
}
.result h2 {
  text-align:center;
  font-size: 2.6vw;
  font-weight:900;
  margin: 0 0 1.2vh;
  text-shadow: 0 4px 20px rgba(150,50,0,.35);
  flex-shrink: 0;
}
.podium {
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap: 1.8vw;
  margin-bottom: 1.6vh;
  flex: 0 0 auto;
  min-height: 26vh;
  padding-top: 2.8vh;
}
.podium .pd {
  background: rgba(255,255,255,.96);
  border-radius: 16px 16px 0 0;
  text-align:center;
  padding: 1.4vh 1.3vw 1vh;
  box-shadow: var(--shadow);
  color: var(--ink);
  position:relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.podium .p1 { width: 17vw; min-height: 22vh; padding-bottom: 2vh; }
.podium .p2 { width: 15vw; min-height: 18.5vh; padding-bottom: 1.4vh; }
.podium .p3 { width: 15vw; min-height: 16.5vh; padding-bottom: 1.1vh; }
.podium .medal { font-size: 2.2vw; line-height: 1.1; margin-bottom: .2vh; }
.podium .pd .pn { font-size: 1.5vw; font-weight: 900; }
.podium .pd .ps { font-size: 1.05vw; font-weight:700; margin-top: .15vh; }
.podium .pd .pscore { font-size: 1.9vw; font-weight: 900; color: var(--brand-deep); margin-top: .35vh; }
.podium .pd .aw {
  position:absolute; top:-2.4vh; left:50%; transform:translateX(-50%);
  padding:.22em .85em; border-radius:999px; font-weight:900; font-size:1vw; white-space:nowrap;
}

/* 名单区：等高铺满，禁止滚动 */
.rest {
  flex:1;
  min-height: 0;
  overflow: hidden;
  background: rgba(255,255,255,.1);
  border-radius: 14px;
  padding: .5vh .9vw .6vh;
  display: flex;
  flex-direction: column;
}
.rest-table {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.rest-h,
.rest-r {
  display: grid;
  grid-template-columns: 5.5vw 1.1fr 1.35fr 1.1fr 7.5vw 8.5vw;
  align-items: center;
  column-gap: .6vw;
  padding: 0 .4vw;
}
.rest-h {
  flex-shrink: 0;
  font-weight: 800;
  opacity: .85;
  font-size: .95vw;
  padding-top: .35vh;
  padding-bottom: .35vh;
}
.rest-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.rest-r {
  flex: 1 1 0;
  min-height: 0;
  border-top: 1px solid rgba(255,255,255,.18);
  font-weight: 700;
  font-size: 1.05vw;
  line-height: 1.15;
}
.rest-r .sc { font-weight: 900; font-variant-numeric: tabular-nums; }
.rest-r .badge {
  display:inline-block;
  padding:.1em .5em;
  border-radius:999px;
  font-weight:900;
  font-size: .9vw;
  white-space: nowrap;
}

/* 奖项徽章配色 */
.aw.gold, .badge.gold   { background: linear-gradient(135deg,#FFD34E,#F5A300); color:#5a3b00; }
.aw.silver, .badge.silver { background: linear-gradient(135deg,#E6E9EE,#B9C0CC); color:#33404f; }
.aw.bronze, .badge.bronze { background: linear-gradient(135deg,#F0A776,#C87A44); color:#4a2609; }
.aw.merit, .badge.merit   { background: linear-gradient(135deg,#FFB35C,#FF8A2B); color:#5a2a00; }
.aw.join, .badge.join     { background: rgba(255,255,255,.85); color: var(--brand-deep); }
.badge { display:inline-block; padding:.12em .55em; border-radius:999px; font-weight:900; font-size: 1vw; }

.empty-hint { text-align:center; color:#fff; opacity:.85; margin-top: 12vh; font-size: 2vw; }
