/* UTEC Spelling Bee Live Scoring — v1.0.48
   Grand Final PUBLIK only. Refinement of visual hierarchy, spacing, contrast.
   Does not modify, load, or override any font; inherited typography remains.
   No animations, no illustrations, no competition logos overwritten.
   Apply only when a Grand Final is in progress or already finished. */

body.gf48-final-live {
  --gf48-ink:#102f64;
  --gf48-muted:#627b9d;
  --gf48-line:#dae6f4;
  --gf48-blue:#1672e8;
  --gf48-surface:#fff;
}
body.gf48-final-live #gf36Public.gf36-public {
  padding:24px;
  border:1px solid var(--gf48-line);
  border-radius:18px;
  background:var(--gf48-surface);
  box-shadow:0 8px 24px rgba(18,67,125,.065);
}
body.gf48-final-live .gf36-public-title {
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;
  border-radius:13px;padding:21px 22px;margin-bottom:16px;
  border:1px solid #d8e8fb;
  border-left:4px solid var(--gf48-blue);
  background:linear-gradient(110deg,#f1f7ff 0%,#f9fcff 65%,#fffdf8 100%);
}
body.gf48-final-live .gf36-public-title h2 {
  margin:6px 0 7px;
  font-size:clamp(22px,2vw,28px);line-height:1.2;letter-spacing:-.03em;
  color:var(--gf48-ink);
}
body.gf48-final-live .gf36-public-title span:first-child {
  color:#166dd8;letter-spacing:.10em;font-size:10px;
}
body.gf48-final-live .gf36-public-title p{margin:0;color:#597596;line-height:1.55;font-size:12px}
body.gf48-final-live .gf36-public-counter {
  flex-shrink:0;max-width:100%;padding:9px 13px;border-radius:999px;
  background:#fff3d4;border:1px solid #f7e4b2;color:#865c0c;font-size:11px;
}
body.gf48-final-live .gf36-final-progress {
  gap:12px;margin-bottom:15px;
}
body.gf48-final-live .gf36-final-progress > div {
  min-width:0;min-height:92px;display:flex;flex-direction:column;justify-content:center;
  padding:16px 18px;border-radius:13px;border:1px solid var(--gf48-line);
  background:#f7fbff;
}
body.gf48-final-live .gf36-final-progress > div:nth-child(2){background:#fffafa;border-color:#f5e1e7}
body.gf48-final-live .gf36-final-progress > div:nth-child(3){background:#f8fbff}
body.gf48-final-live .gf36-final-progress strong {
  font-size:26px;line-height:1.3;letter-spacing:-.025em;color:#0b408e;overflow-wrap:anywhere;
}
body.gf48-final-live .gf36-final-progress div:nth-child(2) strong{color:#c43d55}
body.gf48-final-live .gf36-final-progress div:last-child strong{font-size:14px;line-height:1.4}
body.gf48-final-live .gf36-final-progress span {color:var(--gf48-muted);font-size:11px;margin-top:2px}
body.gf48-final-live .gf48-score-progress {
  border:1px solid #dceafa;background:#f7fbff;border-radius:12px;
  padding:14px 16px;margin:4px 0 9px;
}
body.gf48-final-live .gf48-score-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#164a8b}
body.gf48-final-live .gf48-score-progress-head strong{font-size:12px;font-weight:800}
body.gf48-final-live .gf48-score-progress-head span{font-size:12px;font-weight:800;white-space:nowrap}
body.gf48-final-live .gf48-score-progress-track{height:7px;border-radius:999px;background:#dce9f7;overflow:hidden}
body.gf48-final-live .gf48-score-progress-track>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1577ea,#18ad97)}
body.gf48-final-live .gf48-score-progress>small{font-size:11px;color:#627e9f;display:block;margin-top:8px}
body.gf48-final-live .gf47-public-progress {
  margin:0 0 21px;padding:0;border:0;border-radius:0;background:transparent;
  color:#657e9d;font-size:11px;line-height:1.5;font-weight:500;
}
body.gf48-final-live .gf36-miniheading {
  display:flex;align-items:center;gap:9px;margin:19px 0 11px;
  color:#0f377b;font-size:15px;font-weight:800;line-height:1.3;
}
body.gf48-final-live .gf36-miniheading::before{
  content:"";width:7px;height:7px;flex:0 0 7px;background:#18a67b;border-radius:50%;
}
body.gf48-final-live .gf48-out-heading::before{background:#cf4d62}
body.gf48-final-live .gf36-finalists {gap:10px 12px}
body.gf48-final-live .gf36-finalist {
  min-height:70px;padding:13px 14px;gap:12px;
  border:1px solid #dbe6f3;border-radius:12px;background:#fff;
  box-shadow:0 2px 6px rgba(11,56,111,.025);
}
body.gf48-final-live .gf36-finalist.current{border-color:#dbe6f3;background:#fff}
body.gf48-final-live .gf36-number {
  width:27px;height:27px;flex:0 0 27px;font-size:11px;
  background:#eef4fc;color:#135cb6;
}
body.gf48-final-live .gf36-person{flex:1;min-width:0;gap:11px}
body.gf48-final-live .gf36-person>b{
  width:36px;height:36px;flex:0 0 36px;font-size:13px;
  background:linear-gradient(140deg,#398fea,#0c60d7);
}
body.gf48-final-live .gf36-person>div{min-width:0}
body.gf48-final-live .gf36-person strong{
  font-size:13px;color:var(--gf48-ink);font-weight:750;line-height:1.35;
  overflow-wrap:anywhere;white-space:normal;
}
body.gf48-final-live .gf36-person small{color:#8ba0b9;font-size:11px;margin-top:4px;display:block}
body.gf48-final-live .gf36-fbadge{
  border:1px solid #cbeedd;padding:6px 10px;
  color:#087754;background:#eafaf2;font-size:10px;
}
body.gf48-final-live .gf36-fbadge.eliminated{border-color:#f8dbe2;background:#fff0f3;color:#ba2e4c}
body.gf48-final-live .gf36-fbadge.champion{border-color:#f1dcb0;background:#fff5dc;color:#89600c}
body.gf48-final-live .gf36-out .gf36-finalist{
  opacity:1;background:#fcfdff;border-color:#e2e9f1;
}
body.gf48-final-live .gf36-out .gf36-person strong{color:#526c8d}
body.gf48-final-live .gf36-out .gf36-person>b{background:#90acd1}
body.gf48-final-live .gf36-official{
  background:#fffcf4;border:1px solid #f4e3bf;border-radius:13px;
}
/* Right-hand status panel and circular round label.
   A separate line for the label prevents text from colliding with the ring. */
body.gf48-final-live .side-column>.side-card:not(#aturan):not(.gf48-round-history):not(.guideline-card){
  border-radius:16px;border-color:#dae6f4;background:#fff;
  box-shadow:0 7px 20px rgba(18,67,125,.055);
}
body.gf48-final-live .ongoing-body {gap:14px;align-items:center}
body.gf48-final-live .progress-ring{
  flex:0 0 108px;width:108px;height:108px;
  display:grid;place-items:center;
  background:conic-gradient(#17a987 0 26%,#1c77e9 26% 100%);
}
body.gf48-final-live .progress-ring::before{width:82px;height:82px;background:#fff}
body.gf48-final-live .gf48-ring-content{
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;
  justify-content:center;max-width:68px;width:100%;gap:0;
}
body.gf48-final-live .progress-ring #progressValue{
  font-size:34px;line-height:1;letter-spacing:-.05em;color:#0b3b80;
  font-weight:800;display:block;white-space:nowrap;
}
body.gf48-final-live .gf48-ring-label{
  display:block;font-size:10px;line-height:1.2;margin-top:6px;
  color:#637e9f;font-weight:700;letter-spacing:0;
}
body:not(.gf48-final-live) .gf48-ring-label{display:none}
body.gf48-final-live .ongoing-meta{min-width:0;gap:10px}
body.gf48-final-live .ongoing-meta strong{font-size:12px;color:#103e83;overflow-wrap:anywhere}
body.gf48-final-live .info-pill {border-radius:10px;background:#eef6ff;color:#4d769f}
/* History is strictly data-driven, no fixed five-round template. */
#gf48RoundHistory[hidden]{display:none!important}
body.gf48-final-live #gf48RoundHistory{
  border:1px solid #dae6f4;border-radius:16px;background:#fff;
  box-shadow:0 7px 20px rgba(18,67,125,.055);
  padding:18px 16px;
}
body.gf48-final-live #gf48RoundHistory .card-title{margin-bottom:13px}
body.gf48-final-live .gf48-timeline{display:flex;flex-direction:column}
body.gf48-final-live .gf48-timeline-item{
  display:grid;grid-template-columns:26px minmax(0,1fr) auto;
  align-items:center;column-gap:10px;min-height:64px;padding:10px 0;
  border-bottom:1px solid #edf1f6;
}
body.gf48-final-live .gf48-timeline-item:last-child{border-bottom:0}
body.gf48-final-live .gf48-timeline-mark{
  width:25px;height:25px;display:grid;place-items:center;border-radius:50%;
  background:#edf2f9;color:#6c819d;font-size:11px;font-weight:800;
}
body.gf48-final-live .gf48-timeline-item.is-done .gf48-timeline-mark{background:#e3f8ee;color:#07815b}
body.gf48-final-live .gf48-timeline-item.is-current .gf48-timeline-mark{background:#1573e9;color:#fff}
body.gf48-final-live .gf48-timeline-content{min-width:0}
body.gf48-final-live .gf48-timeline-content strong{display:block;color:#164079;font-size:12px;line-height:1.4}
body.gf48-final-live .gf48-timeline-content small{display:block;color:#8094af;font-size:10px;margin-top:3px}
body.gf48-final-live .gf48-timeline-status{
  font-size:10px;font-weight:750;color:#6f829f;background:#f2f5fa;
  padding:6px 8px;border-radius:99px;max-width:110px;text-align:center;
}
body.gf48-final-live .gf48-timeline-item.is-done .gf48-timeline-status{color:#08724e;background:#e7f8ef}
body.gf48-final-live .gf48-timeline-item.is-current .gf48-timeline-status{color:#0a5fca;background:#e8f2ff}
body.gf48-final-live .gf48-history-note,body.gf48-final-live .gf48-history-empty{
  margin:10px 0 0;color:#8194af;font-size:10px;line-height:1.55;
}
@media(max-width:1050px){
  body.gf48-final-live #gf36Public.gf36-public{padding:17px}
  body.gf48-final-live .gf36-public-title{padding:18px}
  body.gf48-final-live .gf36-finalist{padding:12px 10px}
}
@media(max-width:800px){
  body.gf48-final-live .gf36-finalists{grid-template-columns:1fr}
  body.gf48-final-live .gf36-final-progress{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:580px){
  body.gf48-final-live #gf36Public.gf36-public{padding:12px}
  body.gf48-final-live .gf36-public-title{padding:16px;align-items:flex-start}
  body.gf48-final-live .gf36-public-title h2{font-size:21px}
  body.gf48-final-live .gf36-public-counter{white-space:normal}
  body.gf48-final-live .gf36-final-progress{gap:7px}
  body.gf48-final-live .gf36-final-progress>div{min-height:78px;padding:10px}
  body.gf48-final-live .gf36-final-progress strong{font-size:23px}
  body.gf48-final-live .gf36-final-progress div:last-child strong{font-size:11px}
  body.gf48-final-live .gf36-final-progress span{font-size:10px}
  body.gf48-final-live .gf48-score-progress{padding:12px}
  body.gf48-final-live .gf36-finalist{gap:7px}
  body.gf48-final-live .gf36-fbadge{padding:5px 7px}
}
@media(prefers-reduced-motion:reduce){
 body.gf48-final-live .gf48-score-progress-track>span{transition:none}
}
