/* ============================================================
   WEBSITE GIẢI ĐẤU — TEMPLATE (xem TEMPLATE.md)
   Theme: esports gần game — vàng kim + navy/đen, điểm teal & đỏ
   ============================================================ */
:root{
  /* nền tối ngả tím — hợp Key Visual (bầu trời violet) */
  --bg:        #0a0816;
  --bg-alt:    #100c22;
  --panel:     #181230;
  --panel-2:   #231b42;
  --navy:      #0d0920;
  /* brand XANH ĐIỆN + cyan (theo KV). Tên --gold* giữ nguyên để không ripple markup/CSS cũ; giá trị = xanh. */
  --gold:      #3b82f6;
  --gold-2:    #38d6ff;
  --gold-deep: #1b47b8;
  --brand-rgb: 59,130,246;
  /* accent theo 2 đội trong KV + trời tím */
  --teal:      #35c7d6;
  --red:       #ff4655;
  --blue:      #3b82f6;
  --violet:    #a78bfa;
  /* biến cũ giữ tên để tương thích */
  --purple:    #a78bfa;
  --purple-2:  #c4b0ff;
  --cyan:      #35c7d6;
  --text:      #eaf0f7;
  --muted:     #93a1b8;
  --danger:    #e0374a;
  --ok:        #3ddc84;
  --line:      rgba(59,130,246,.14);
  --line-soft: rgba(255,255,255,.07);
  --shadow:    0 14px 44px rgba(0,0,0,.55);
  --glow:      0 0 24px rgba(59,130,246,.30);
  --radius:    12px;
  --notch:     14px;   /* độ vát góc khung */
  --topbar-h:  34px;   /* thanh tiện ích trên cùng */
  /* Fonts: Gilroy (nếu máy có) → Inter fallback cho tiêu đề; Roboto cho body. Đều hỗ trợ tiếng Việt qua Inter/Roboto. */
  --font-head: 'Gilroy','Inter',system-ui,sans-serif;
  --font-body: 'Roboto','Inter',system-ui,sans-serif;
  --wrap:      1160px;
  --cut: polygon(0 var(--notch), var(--notch) 0, 100% 0, 100% calc(100% - var(--notch)), calc(100% - var(--notch)) 100%, 0 100%);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(74px + var(--topbar-h))}
body{
  font-family:var(--font-body);
  background:var(--bg);color:var(--text);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  min-height:100vh;display:flex;flex-direction:column;
}
/* ---------- Nền KV cố định toàn trang (cuộn vẫn thấy) ---------- */
body::before{content:"";position:fixed;inset:0;z-index:-2;
  background:url("../assets/kv-bg.jpg?v=4") center center/cover no-repeat;
  /* Ken Burns siêu nhẹ: chỉ transform (GPU), scale nền 1.06 để pan không lộ mép. Không repaint layout. */
  transform:scale(1.08);will-change:transform;animation:kvDrift 24s ease-in-out infinite}
@keyframes kvDrift{
  0%,100%{transform:scale(1.08) translate(0,0)}
  50%{transform:scale(1.15) translate(-2.4%,-1.6%)}}
@media(prefers-reduced-motion:reduce){body::before{animation:none;transform:none}}
body::after{content:"";position:fixed;inset:0;z-index:-1;
  background:
    linear-gradient(90deg,rgba(10,8,22,.10) 0%,rgba(10,8,22,.42) 30%,rgba(10,8,22,.46) 70%,rgba(10,8,22,.10) 100%),
    linear-gradient(180deg,rgba(10,8,22,.22),rgba(10,8,22,.48))}
h1,h2,h3,.hero__title,.section__title,legend{font-family:var(--font-head);letter-spacing:.5px}
a{color:var(--gold-2);text-decoration:none}
img{max-width:100%;display:block}

.container{max-width:var(--wrap);margin:0 auto;padding:0 20px;width:100%}
.container--narrow{max-width:780px}

/* ---------- Buttons (góc vát) ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-head);font-weight:600;letter-spacing:1px;
  padding:13px 26px;cursor:pointer;transition:.18s transform,.18s box-shadow,.18s filter;
  font-size:15px;text-transform:uppercase;border:none;
  clip-path:polygon(0 8px,8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%);
}
.btn--primary{background:linear-gradient(135deg,var(--gold-2),var(--gold) 45%,var(--gold-deep));
  color:#eaf4ff;box-shadow:0 6px 22px rgba(59,130,246,.32)}
.btn--primary:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 10px 30px rgba(59,130,246,.5)}
.btn--ghost{background:rgba(59,130,246,.06);color:var(--gold-2);
  box-shadow:inset 0 0 0 2px var(--gold-deep)}
.btn--ghost:hover{background:rgba(59,130,246,.16)}
.btn--lg{padding:16px 34px;font-size:17px}
.btn--block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:grayscale(.3)}

/* ---------- Top bar ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:51;height:var(--topbar-h);
  background:linear-gradient(90deg,var(--navy),#140d2b 50%,var(--navy));
  border-bottom:1px solid var(--line);display:flex;align-items:center}
.topbar__inner{max-width:var(--wrap);margin:0 auto;padding:0 20px;width:100%;
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.topbar__tag{font-family:var(--font-head);letter-spacing:2px;font-size:11px;color:var(--muted);
  text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar__live{display:inline-flex;align-items:center;gap:7px;color:var(--gold-2);
  font-family:var(--font-head);font-weight:600;letter-spacing:1px;font-size:12px;text-transform:uppercase;white-space:nowrap}
.topbar__live:hover{color:var(--gold)}
.topbar__dot{width:8px;height:8px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 0 rgba(255,70,85,.6);animation:livepulse 1.6s infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(255,70,85,.55)}70%{box-shadow:0 0 0 7px rgba(255,70,85,0)}100%{box-shadow:0 0 0 0 rgba(255,70,85,0)}}

/* ---------- Nav ---------- */
.nav{position:fixed;top:var(--topbar-h);left:0;right:0;z-index:50;
  background:rgba(10,14,23,.72);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);transition:.25s background}
.nav.is-scrolled{background:rgba(10,14,23,.96);box-shadow:0 4px 20px rgba(0,0,0,.4)}
.nav__inner{max-width:var(--wrap);margin:0 auto;padding:11px 20px;
  display:flex;align-items:center;justify-content:space-between}
.nav__logo{display:flex;align-items:center;gap:10px;color:var(--text)}
.nav__logo-img{height:44px;width:auto}
.nav__logo-fallback{display:flex;align-items:center;gap:9px}
.nav__logo-mark{font-family:var(--font-head);font-weight:700;font-size:23px;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.nav__logo-text{font-weight:600;color:var(--muted);font-size:13px}
.nav__links{display:flex;align-items:center;gap:16px}
.nav__links a{color:var(--text);font-weight:600;font-size:17px;position:relative;padding:4px 0;transition:.15s color}
.nav__links a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-deep));transition:.2s width}
.nav__links a:not(.nav__cta):hover{color:var(--gold)}
.nav__links a:not(.nav__cta):hover::after{width:100%}
.nav__cta{background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#eaf4ff!important;
  padding:9px 20px;font-weight:600;font-family:var(--font-head);letter-spacing:.5px;text-transform:uppercase;font-size:14px;
  clip-path:polygon(0 6px,6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%)}
.nav__toggle{display:none;background:none;border:none;color:var(--gold);font-size:26px;cursor:pointer}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;
  justify-content:center;text-align:center;overflow:hidden;padding:110px 20px 70px}
.hero__bg{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(1000px 560px at 50% -8%,rgba(167,139,250,.30),transparent 62%),
    radial-gradient(760px 520px at 12% 96%,rgba(255,70,85,.20),transparent 58%),
    radial-gradient(760px 520px at 88% 96%,rgba(59,130,246,.20),transparent 58%);
}
.hero__bg::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:46px 46px;mask-image:radial-gradient(circle at 50% 40%,#000,transparent 78%)}
.hero__art{display:none}
.hero__overlay{position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(620px 380px at 50% 46%,rgba(10,8,22,.42),transparent 72%),
    linear-gradient(180deg,rgba(10,8,22,.34) 0%,rgba(10,8,22,.12) 40%,rgba(10,8,22,.70) 100%)}
.hero__char{display:none}
.hero__watermark{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:1;
  font-family:var(--font-head);font-weight:700;letter-spacing:.06em;font-size:min(34vw,440px);line-height:1;
  color:transparent;-webkit-text-stroke:2px rgba(59,130,246,.10);pointer-events:none;
  white-space:nowrap;user-select:none}
.hero__content{position:relative;z-index:3;max-width:860px}
.hero__kicker{display:flex;align-items:center;justify-content:center;gap:14px;
  color:var(--teal);letter-spacing:4px;font-weight:600;font-size:13px;margin-bottom:16px}
.hero__kicker span{height:1px;width:44px;background:linear-gradient(90deg,transparent,var(--teal))}
.hero__kicker span:last-child{background:linear-gradient(90deg,var(--teal),transparent)}
.hero__title{font-size:clamp(22px,5.4vw,62px);line-height:1.12;font-weight:700;text-transform:uppercase;
  white-space:nowrap;text-shadow:0 4px 34px rgba(0,0,0,.6)}
.hero__title span{display:inline-block;padding-bottom:.06em;
  background:linear-gradient(135deg,var(--gold-2),var(--gold) 50%,var(--gold-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 12px rgba(59,130,246,.35))}
.hero__game{font-family:var(--font-head);font-size:clamp(18px,3.2vw,30px);letter-spacing:6px;
  color:var(--gold);margin-top:10px;font-weight:500}
.hero__desc{color:#c6d0de;max-width:560px;margin:18px auto 0;font-size:17px}
.hero__actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:38px}

/* ---------- Countdown (khung hexagon) ---------- */
.countdown{display:flex;gap:14px;justify-content:center;margin-top:36px;flex-wrap:wrap}
.countdown__item{position:relative;background:rgba(19,28,43,.7);
  border:1px solid var(--line);padding:14px 20px;min-width:86px;backdrop-filter:blur(6px);
  clip-path:polygon(0 10px,10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.countdown__item span{display:block;font-family:var(--font-head);font-size:42px;font-weight:700;
  color:var(--gold);line-height:1}
.countdown__item small{color:var(--muted);letter-spacing:2px;font-size:11px;text-transform:uppercase}
.countdown__label{color:var(--muted);margin-top:14px;font-size:13px;letter-spacing:1px}

/* ---------- Banner mời đăng ký ---------- */
.joincta{position:relative;overflow:hidden;padding:66px 20px;
  background:
    radial-gradient(720px 320px at 50% 50%,rgba(59,130,246,.12),transparent 70%),
    linear-gradient(180deg,rgba(13,9,32,.55),rgba(16,12,34,.62));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.joincta::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(circle at 50% 50%,#000,transparent 75%)}
.joincta__char{position:absolute;bottom:-2%;height:120%;width:auto;z-index:1;pointer-events:none;
  filter:drop-shadow(0 8px 30px rgba(0,0,0,.55))}
.joincta__char--l{left:1%}
.joincta__char--r{right:1%}
.joincta__inner{position:relative;z-index:2;max-width:600px;margin:0 auto;text-align:center}
.joincta__kicker{color:var(--teal);letter-spacing:4px;font-weight:600;font-size:13px;text-transform:uppercase;margin-bottom:10px}
.joincta__title{font-family:var(--font-head);font-size:clamp(22px,4.6vw,46px);font-weight:700;line-height:1.1;text-transform:uppercase;white-space:nowrap}
.joincta__title span{display:inline-block;padding:.12em 0 .06em;line-height:1;
  background:linear-gradient(135deg,var(--gold-2),var(--gold) 50%,var(--gold-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.joincta__desc{color:#c6d0de;margin:14px auto 26px;font-size:16px;max-width:440px}

/* ---------- Sections ---------- */
.section{padding:92px 0;position:relative}
.section--alt{background:
  linear-gradient(180deg,rgba(16,12,34,.55),rgba(16,12,34,.62));
  border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.section--alt::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:url("../assets/pattern-hex.png");background-size:400px}
.section__title{font-size:clamp(30px,5vw,48px);font-weight:700;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:20px;text-align:center;
  text-shadow:0 2px 18px rgba(0,0,0,.85)}
.section__lead{text-shadow:0 1px 10px rgba(0,0,0,.7)}
.section__title::before,.section__title::after{content:"";flex:none;height:2px;width:clamp(28px,9vw,96px);
  box-shadow:0 0 10px rgba(59,130,246,.5)}
.section__title::before{background:linear-gradient(90deg,transparent,var(--gold-deep),var(--gold))}
.section__title::after{background:linear-gradient(90deg,var(--gold),var(--gold-deep),transparent)}
.section__lead{text-align:center;color:var(--muted);max-width:660px;margin:0 auto 48px;font-size:17px;position:relative}

/* ---------- Cards ---------- */
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.card{position:relative;background:linear-gradient(160deg,var(--panel-2),var(--panel));
  padding:30px 24px;text-align:center;transition:.22s transform,.22s box-shadow;
  clip-path:var(--cut);box-shadow:inset 0 0 0 1px var(--line)}
.card::after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--gold-deep));opacity:.7}
.card:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px var(--gold),0 16px 40px rgba(0,0,0,.5)}
.card__icon{width:52px;height:52px;margin:0 auto 14px;color:var(--gold)}
.card__icon svg{width:100%;height:100%}
.card h3{font-size:21px;margin-bottom:8px;color:var(--gold-2)}
.card p{color:var(--muted);font-size:15px}

/* ---------- Registration form ---------- */
.reg-form{position:relative;background:linear-gradient(160deg,var(--panel-2),var(--panel));
  padding:34px;box-shadow:inset 0 0 0 1px var(--line),var(--shadow);clip-path:var(--cut)}
.reg-form::after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--gold-deep))}
.reg-block{border:none;margin-bottom:28px}
.reg-block legend{font-family:var(--font-head);font-size:20px;color:var(--gold);margin-bottom:16px;padding-bottom:10px;
  border-bottom:1px solid var(--line);width:100%;text-transform:uppercase;letter-spacing:1px}
.reg-hint{color:var(--muted);font-size:14px;margin-bottom:14px}
.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.reg-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500;color:var(--text)}
.reg-form label span{color:var(--danger)}
.reg-form input,.reg-form select{width:100%;
  background:var(--navy);border:1px solid var(--line-soft);border-radius:8px;
  padding:12px 14px;color:var(--text);font-size:15px;font-family:inherit;transition:.15s border-color,.15s box-shadow}
.reg-form input:focus,.reg-form select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.reg-form input:invalid:not(:placeholder-shown){border-color:var(--danger)}
.reg-form select{cursor:pointer}
.reg-form select option{background:var(--panel);color:var(--text)}
.reg-radio{display:flex;gap:12px;flex-wrap:wrap}
.radio-pill{flex-direction:row!important;align-items:center;gap:9px;background:var(--navy);
  border:1px solid var(--line-soft);border-radius:9px;padding:13px 16px;cursor:pointer;flex:1;min-width:220px;transition:.15s}
.radio-pill:has(input:checked){border-color:var(--gold);background:rgba(59,130,246,.09)}
.radio-pill input{width:18px;height:18px;flex:none;accent-color:var(--gold)}
#groupBlock{margin-top:18px}
.player-row{background:var(--navy);border:1px solid var(--line-soft);border-radius:9px;
  padding:16px;margin-bottom:12px}
.player-row__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.player-row__tag{font-family:var(--font-head);font-weight:600;letter-spacing:1px;font-size:14px}
.player-row__tag.is-main{color:var(--gold)}
.player-row__tag.is-sub{color:var(--teal)}
.grid-3{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr);gap:12px}
.reg-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;
  color:var(--muted);font-size:14px;margin-bottom:24px}
.reg-check input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--gold)}
.form-msg{margin-top:16px;text-align:center;font-weight:500;min-height:22px}
.form-msg.is-ok{color:var(--ok)}
.form-msg.is-err{color:var(--danger)}
.reg-form.is-closed{opacity:.65;pointer-events:none}

/* ---------- Tabs / Tables ---------- */
.tabs{display:flex;gap:10px;justify-content:center;margin-bottom:28px;flex-wrap:wrap}
.tab{background:var(--panel);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-soft);
  font-family:var(--font-head);font-weight:600;letter-spacing:1px;padding:11px 24px;
  cursor:pointer;transition:.15s;text-transform:uppercase;font-size:14px;
  clip-path:polygon(0 7px,7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%)}
.tab.is-active{background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#eaf4ff;box-shadow:none}
#resultTabs{counter-reset:tabn}
#resultTabs .tab{counter-increment:tabn;display:inline-flex;align-items:center;gap:9px}
#resultTabs .tab::before{content:"0" counter(tabn);font-size:12px;font-weight:700;
  opacity:.55;letter-spacing:0;padding-right:9px;border-right:1px solid currentColor}
.tab-panel{display:none}
.tab-panel.is-active{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rt-frame{border:1px solid var(--line);overflow:hidden;background:#fff;clip-path:var(--cut)}
.rt-frame iframe{width:100%;height:540px;border:0;display:block}
.rt-empty{padding:24px;text-align:center;color:var(--muted);background:var(--panel);
  box-shadow:inset 0 0 0 1px var(--line);clip-path:var(--cut)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);clip-path:var(--cut)}
.rtable{width:100%;border-collapse:collapse;min-width:520px;background:var(--panel)}
.rtable th,.rtable td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line-soft);font-size:15px}
.rtable th{background:var(--panel-2);color:var(--gold);font-family:var(--font-head);
  letter-spacing:1px;text-transform:uppercase;font-size:13px;position:sticky;top:0}
.rtable tbody tr:hover,.rtable tr:hover{background:rgba(59,130,246,.05)}
.rtable td.win{color:var(--ok);font-weight:600}
.rtable .rank{font-family:var(--font-head);font-weight:700;color:var(--gold)}
.sched-ov td,.sched-ov th{text-align:center;vertical-align:middle}
.sched-ov .grp{white-space:nowrap;color:var(--gold);font-family:var(--font-head);font-weight:700}
.sched-ov .match{text-align:left}

/* ---------- Lịch thi đấu (thẻ trận) ---------- */
.sched{display:flex;flex-direction:column;gap:26px;text-align:left}
.sched-day__head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  padding:11px 16px;margin-bottom:13px;
  background:linear-gradient(90deg,var(--panel-2),rgba(35,27,66,0));
  box-shadow:inset 0 0 0 1px var(--line);clip-path:var(--cut)}
.sched-day__date{font-family:var(--font-head);font-weight:800;font-size:22px;color:var(--gold-2);
  text-shadow:0 0 14px rgba(56,214,255,.35)}
.sched-day__time{color:var(--text);font-weight:600;font-size:15px}
.sched-day__round{margin-left:auto;color:var(--muted);font-family:var(--font-head);
  letter-spacing:1px;text-transform:uppercase;font-size:12.5px}
.sched-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.match-card{position:relative;background:linear-gradient(160deg,var(--panel-2),var(--panel));
  box-shadow:inset 0 0 0 1px var(--line);clip-path:var(--cut);padding:15px 18px 16px;
  transition:.2s box-shadow,.2s transform}
.match-card:hover{transform:translateY(-2px);
  box-shadow:inset 0 0 0 1px rgba(59,130,246,.42),var(--glow)}
.mc-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;min-height:22px}
.mc-group{font-family:var(--font-head);font-size:11.5px;letter-spacing:1px;text-transform:uppercase;
  font-weight:700;color:var(--gold);padding:3px 11px;background:rgba(59,130,246,.12);
  box-shadow:inset 0 0 0 1px var(--line)}
/* Màu huy hiệu nhánh đấu. Tên trong [data-b="…"] phải TRÙNG CHÍNH XÁC tên nhánh
   nhập ở admin (tab Lịch thi đấu / Bảng xếp hạng). Đổi tên nhánh thì đổi 2 dòng này,
   nếu không huy hiệu rơi về màu mặc định ở .mc-group bên trên (vẫn chạy, chỉ khác màu). */
.mc-group[data-b="Nhánh A"]{color:#0a0816;background:linear-gradient(120deg,var(--gold),var(--gold-2));box-shadow:none}
.mc-group[data-b="Nhánh B"]{color:var(--purple-2);background:rgba(167,139,250,.14);
  box-shadow:inset 0 0 0 1px rgba(167,139,250,.3)}
.mc-live{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-head);font-weight:800;
  font-size:11px;letter-spacing:1.5px;color:#fff;background:var(--red);padding:3px 10px;
  box-shadow:0 0 14px rgba(255,70,85,.55)}
.mc-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:mcblink 1.1s infinite}
@keyframes mcblink{50%{opacity:.2}}
.mc-body{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}
.mc-team{font-family:var(--font-head);font-weight:600;font-size:15px;line-height:1.25}
.mc-team--a{text-align:right}
.mc-team--b{text-align:left}
.mc-team.tbd{color:var(--muted);font-weight:500;font-style:italic}
.mc-mid{display:flex;align-items:center;justify-content:center;min-width:54px}
.mc-score{font-family:var(--font-head);font-weight:800;font-size:20px;color:var(--gold-2);white-space:nowrap}
.mc-vs{font-family:var(--font-head);font-weight:700;font-size:12.5px;letter-spacing:1px;color:var(--gold);
  padding:4px 11px;background:rgba(59,130,246,.1);box-shadow:inset 0 0 0 1px var(--line)}
@media(max-width:640px){
  .sched-grid{grid-template-columns:1fr}
  .sched-day__round{margin-left:0;flex-basis:100%}
  .mc-team{font-size:14px}
}

/* ---------- Bảng xếp hạng (4 bảng) ---------- */
.stand-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;text-align:left}
.stand-card{background:linear-gradient(160deg,var(--panel-2),var(--panel));
  box-shadow:inset 0 0 0 1px var(--line);clip-path:var(--cut);overflow:hidden}
.stand-card__t{font-family:var(--font-head);font-weight:800;letter-spacing:1.5px;
  font-size:15px;color:#fff;padding:9px 16px;
  background:linear-gradient(120deg,var(--gold-deep),var(--gold))}
/* màu riêng mỗi bảng (theo theme) */
.stand-card[data-b="A"]{box-shadow:inset 0 0 0 1px rgba(59,130,246,.4)}
.stand-card[data-b="A"] .stand-card__t{background:linear-gradient(120deg,#1b47b8,#3b82f6);color:#fff}
.stand-card[data-b="A"] td.rank,.stand-card[data-b="A"] td.pts{color:#5aa0ff}
.stand-card[data-b="B"]{box-shadow:inset 0 0 0 1px rgba(53,199,214,.4)}
.stand-card[data-b="B"] .stand-card__t{background:linear-gradient(120deg,#0e8ea0,#38d6ff);color:#04121a}
.stand-card[data-b="B"] td.rank,.stand-card[data-b="B"] td.pts{color:var(--gold-2)}
.stand-card[data-b="C"]{box-shadow:inset 0 0 0 1px rgba(167,139,250,.4)}
.stand-card[data-b="C"] .stand-card__t{background:linear-gradient(120deg,#7c5cf0,#a78bfa);color:#fff}
.stand-card[data-b="C"] td.rank,.stand-card[data-b="C"] td.pts{color:var(--purple-2)}
.stand-card[data-b="D"]{box-shadow:inset 0 0 0 1px rgba(255,70,85,.4)}
.stand-card[data-b="D"] .stand-card__t{background:linear-gradient(120deg,#c62230,#ff4655);color:#fff}
.stand-card[data-b="D"] td.rank,.stand-card[data-b="D"] td.pts{color:#ff7a86}
.stand-card .table-wrap{border:0}
.stand-tbl{min-width:0;background:transparent;table-layout:fixed}
.stand-tbl th,.stand-tbl td{text-align:center;padding:9px 5px;font-size:14px;white-space:nowrap}
.stand-tbl th{position:static;background:rgba(35,27,66,.6);font-size:11px;letter-spacing:.5px}
.stand-tbl th.tl,.stand-tbl td.tl{text-align:left;white-space:normal;width:38%}
.stand-tbl td.tl{font-family:var(--font-head);font-weight:600}
.stand-tbl td.rank{font-family:var(--font-head);font-weight:700}
.stand-tbl td.pts{font-family:var(--font-head);font-weight:800}
.stand-tbl tbody tr:last-child td{border-bottom:0}
@media(max-width:720px){.stand-groups{grid-template-columns:1fr}}

/* ---------- Dự đoán ---------- */
.predict-status{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);clip-path:var(--cut);
  padding:16px 20px;margin:6px 0 22px;color:#c6d0de;font-size:16px;line-height:1.5}
.predict-status.is-open{color:var(--gold-2);box-shadow:inset 0 0 0 1px rgba(59,130,246,.4)}
.predict-result h3{font-family:var(--font-head);color:var(--gold-2);font-size:22px;margin:0 0 8px}
.predict-result p{color:var(--text);white-space:pre-line;margin:0}
.ov-info{margin-top:26px}
.ov-info ul{margin:0;padding-left:20px}
.ov-info li{margin:8px 0;color:#c6d0de;line-height:1.55}

/* ---------- Sơ đồ nhánh ---------- */
.bracket-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:6px 0 18px}
@media(max-width:720px){.bracket-cols{grid-template-columns:1fr}}
.bracket-box{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);clip-path:var(--cut);padding:14px 16px;overflow-x:auto}
.bracket-box__t{font-family:var(--font-head);color:var(--gold);letter-spacing:1px;text-transform:uppercase;font-size:14px;margin:0 0 8px}
.bracket{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;color:var(--text);margin:0;white-space:pre}

/* ---------- Video ---------- */
.video-wrap{max-width:940px;margin:0 auto;aspect-ratio:16/9;overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line),var(--shadow);background:#000;clip-path:var(--cut)}
.video-wrap iframe{width:100%;height:100%;border:0;display:block}
.video-placeholder{display:flex;align-items:center;justify-content:center;height:100%;
  color:var(--muted);text-align:center;padding:20px;
  background:radial-gradient(600px 300px at 50% 50%,rgba(43,111,255,.18),var(--panel))}

/* ---------- Prizes (podium) ---------- */
.prizes{display:flex;justify-content:center;align-items:flex-end;gap:16px;flex-wrap:wrap}
.prize{position:relative;width:206px;min-height:290px;padding:38px 22px 26px;
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  clip-path:polygon(0 24px,50% 0,100% 24px,100% 100%,0 100%);
  box-shadow:inset 0 0 0 1px var(--line);
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px}
.prize::after{content:"";position:absolute;left:0;right:0;top:24px;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold-deep),transparent);opacity:.6}
.prize__icon{width:56px;height:56px;margin:0 auto 6px;color:var(--muted)}
.prize__icon svg{width:100%;height:100%}
.prize h3{font-size:21px;margin:8px 0 2px;letter-spacing:1px;font-family:var(--font-head);font-weight:700}
.prize__val{color:var(--muted)}
.prize--2 .prize__icon,.prize--3 .prize__icon{color:#c9d3e0}
.prize--1{width:238px;min-height:356px;transform:translateY(-6px);padding-top:46px;
  background:linear-gradient(180deg,rgba(59,130,246,.16),var(--panel) 70%);
  box-shadow:inset 0 0 0 1.5px var(--gold),0 14px 44px rgba(59,130,246,.24)}
.prize--1::after{background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:1}
.prize--1 .prize__icon{width:72px;height:72px;color:var(--gold)}
.prize--1 h3{color:var(--gold-2);font-size:25px}
.prizes__note{text-align:center;color:var(--muted);margin-top:34px}

/* ---------- FAQ ---------- */
.faq details{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line-soft);
  padding:16px 22px;margin-bottom:12px;clip-path:polygon(0 8px,8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%)}
.faq details[open]{box-shadow:inset 0 0 0 1px var(--line)}
.faq summary{cursor:pointer;font-weight:600;font-size:16px;list-style:none;color:var(--text);
  display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:26px;font-family:var(--font-head);line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{color:var(--gold-2)}
.faq details p{color:var(--muted);margin-top:12px}

/* ---------- Footer ---------- */
.footer{background:rgba(7,11,18,.82);border-top:1px solid var(--line);padding:44px 0 20px;margin-top:auto}
.footer__inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.footer__brand{display:flex;align-items:center;gap:16px}
.footer__logo{height:52px;width:auto}
.footer__title{font-family:var(--font-head);font-weight:600;color:var(--gold);letter-spacing:1px}
.footer__muted{color:var(--muted);font-size:14px}
.footer__links{display:flex;gap:24px}
.footer__links a{color:var(--text)}
.footer__links a:hover{color:var(--gold)}
.footer__copy{text-align:center;color:var(--muted);font-size:13px;margin-top:28px;
  padding-top:20px;border-top:1px solid var(--line-soft)}

/* ---------- SPA pages (mỗi mục 1 trang, đổi bằng #hash) ---------- */
.page{display:none}
.page.is-active{display:block;animation:fade .3s ease}
/* trang nội dung: chừa khoảng trên cho topbar + nav cố định (trang chủ dùng hero riêng) */
.page:not([data-page="home"]) > .section:first-child{padding-top:calc(var(--topbar-h) + 96px)}
.nav__links a.is-current{color:var(--gold)}
.nav__links a.is-current:not(.nav__cta)::after{width:100%}

/* ---------- Chợ ghép đội ---------- */
.mtab-panel{display:none}
.mtab-panel.is-active{display:block;animation:fade .25s ease}
.market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:16px}
.market-card{position:relative;background:linear-gradient(160deg,var(--panel-2),var(--panel));
  padding:20px 20px 18px;box-shadow:inset 0 0 0 1px var(--line);clip-path:var(--cut)}
.market-card::after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--gold-deep));opacity:.7}
.market-card h3{font-family:var(--font-head);color:var(--gold-2);font-size:19px;letter-spacing:.5px}
.market-card h3 small{color:var(--muted);font-weight:400;font-size:13px}
.mc-dept{color:var(--muted);font-size:13px;margin:2px 0 12px}
.mc-tags,.mc-contact{display:flex;flex-wrap:wrap;gap:8px}
.mc-contact{margin-top:8px}
.mc-tag{background:var(--navy);border:1px solid var(--line-soft);border-radius:6px;
  padding:4px 10px;font-size:13px;color:var(--text)}
.mc-tag b{color:var(--gold);font-weight:600}
.mc-members{list-style:none;margin-top:6px;display:flex;flex-direction:column;gap:6px}
.mc-members li{background:var(--navy);border:1px solid var(--line-soft);border-radius:6px;
  padding:8px 12px;font-size:14px}
.mc-members li span{color:var(--muted);font-size:12px;margin-left:6px}
.market-empty{text-align:center;color:var(--muted);padding:34px 10px;grid-column:1/-1}

/* ---------- Nút đăng ký nổi (FAB) ---------- */
.fab-register{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:60;
  display:inline-flex;align-items:center;gap:8px;padding:13px 18px;border-radius:40px;
  font-family:var(--font-head);font-weight:700;letter-spacing:.5px;font-size:14px;color:#eaf4ff;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));text-decoration:none;
  box-shadow:0 6px 22px rgba(0,0,0,.45),0 0 0 1px rgba(255,217,122,.5);transition:transform .15s,box-shadow .15s;
  animation:fabPulse 1.5s ease-in-out infinite}
.fab-register:hover{transform:translateY(-50%) scale(1.08);animation-play-state:paused;
  box-shadow:0 10px 30px rgba(0,0,0,.55),0 0 24px rgba(56,214,255,.8)}
@keyframes fabPulse{
  0%,100%{transform:translateY(-50%);box-shadow:0 6px 22px rgba(0,0,0,.45),0 0 0 1px rgba(56,214,255,.5),0 0 10px rgba(56,214,255,.35)}
  50%{transform:translateY(calc(-50% - 9px));box-shadow:0 16px 32px rgba(0,0,0,.5),0 0 0 1px rgba(56,214,255,.9),0 0 28px rgba(56,214,255,.8)}}

/* ---------- Giới thiệu: card bấm được ---------- */
a.card{text-decoration:none;color:inherit;cursor:pointer}

/* ---------- Tổng quan giải đấu ---------- */
.ov-h{font-family:var(--font-head);color:var(--gold-2);font-size:20px;letter-spacing:.5px;margin:26px 0 8px}
#tong-quan p{color:var(--text);line-height:1.6}
#tong-quan ul{margin:6px 0 10px 20px;color:var(--text)}
#tong-quan li{margin:4px 0}
.ov-details{margin:14px 0;border:1px solid var(--line-soft);border-radius:8px;padding:10px 14px;background:var(--navy)}
.ov-details summary{cursor:pointer;color:var(--gold);font-weight:600}
.ov-details .table-wrap{margin-top:10px}
.ov-details .bracket-cols{margin-top:10px}
.section__note{margin:8px 0 0;font-size:13px;color:var(--muted);font-style:italic}
.prize-table td{vertical-align:top}
.prize-table .prize-grp td{background:var(--navy-2,rgba(255,255,255,.05));color:var(--gold);font-weight:700;letter-spacing:.04em;text-align:center;text-transform:uppercase}

/* ---------- Đăng ký: chọn hình thức + field ---------- */
.reg-choose{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px}
.reg-choice{display:flex;flex-direction:column;gap:6px;text-align:left;padding:18px 20px;
  background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);
  clip-path:var(--cut);cursor:pointer;color:var(--text);transition:.15s}
.reg-choice:hover{border-color:var(--gold-deep)}
.reg-choice.is-active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 0 18px rgba(59,130,246,.25)}
.reg-choice__ic{font-size:26px}
.reg-choice__t{font-family:var(--font-head);font-weight:700;color:var(--gold-2);font-size:17px}
.reg-choice__d{color:var(--muted);font-size:13px}
.req{color:var(--red);font-weight:700}
.hl-date{color:var(--gold-2);font-weight:700;font-style:normal}
.intro-dates{margin-top:-6px}
/* label block: caption + dấu * cùng 1 dòng, input/select xuống dưới full-width */
.reg-form .fld{display:block}
.reg-form .fld > input,.reg-form .fld > select,.reg-form .fld > .reg-file__hint{margin-top:6px}
.reg-file input[type=file]{color:var(--muted);font-size:13px}
.reg-file__hint{color:var(--muted);font-size:12px}
.reg-file__preview{max-width:120px;max-height:120px;border-radius:8px;margin-top:8px;border:1px solid var(--line)}

/* ---------- Filter chip tier ---------- */
.tier-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.tier-chip{cursor:pointer;padding:5px 13px;border-radius:20px;border:1px solid var(--line);
  background:var(--navy);color:var(--muted);font-family:var(--font-head);font-weight:600;font-size:13px;transition:.15s}
.tier-chip:hover{filter:brightness(1.15)}
.tier-chip.is-active{background:rgba(255,255,255,.08);box-shadow:0 0 0 1.5px currentColor inset;filter:brightness(1.12)}
/* Màu chip theo tier (khớp badge) */
.tier-chip[data-tier="S+"]{border-color:#ff3b5c;color:#ff8497}
.tier-chip[data-tier="S"]{border-color:#ff7a3c;color:#ffab7d}
.tier-chip[data-tier="A+"]{border-color:#b06bff;color:#c9a4ff}
.tier-chip[data-tier="A"]{border-color:#7c5cff;color:#ac9bff}
.tier-chip[data-tier="A-"]{border-color:#9d8bff;color:#c3b6ff}
.tier-chip[data-tier="B+"]{border-color:#35c7d6;color:#82e1eb}
.tier-chip[data-tier="B"]{border-color:#3ddc84;color:#88ecb3}
.tier-chip[data-tier="B-"]{border-color:#81d88a;color:#abe6b1}
.tier-chip[data-tier="C+"]{border-color:#ffc45c;color:#ffd98a}
.tier-chip[data-tier="C"]{border-color:#f0b04b;color:#f6c877}
.tier-chip[data-tier="C-"]{border-color:#d69646;color:#e6b878}
.tier-chip[data-tier="all"]{border-color:var(--gold);color:var(--gold-2)}
/* ---------- Bảng tier / bảng rỗng ---------- */
.tier-badge{display:inline-block;padding:2px 10px;border-radius:5px;font-weight:700;font-size:13px;
  background:var(--navy);border:1px solid var(--gold-deep);color:var(--gold-2)}
/* Màu theo tier để dễ phân biệt */
.tier-badge[data-tier="S+"]{background:rgba(255,59,92,.16);border-color:#ff3b5c;color:#ff8497}
.tier-badge[data-tier="S"]{background:rgba(255,122,60,.16);border-color:#ff7a3c;color:#ffab7d}
.tier-badge[data-tier="A+"]{background:rgba(176,107,255,.16);border-color:#b06bff;color:#c9a4ff}
.tier-badge[data-tier="A"]{background:rgba(124,92,255,.16);border-color:#7c5cff;color:#ac9bff}
.tier-badge[data-tier="A-"]{background:rgba(157,139,255,.15);border-color:#9d8bff;color:#c3b6ff}
.tier-badge[data-tier="B+"]{background:rgba(53,199,214,.16);border-color:#35c7d6;color:#82e1eb}
.tier-badge[data-tier="B"]{background:rgba(61,220,132,.16);border-color:#3ddc84;color:#88ecb3}
.tier-badge[data-tier="B-"]{background:rgba(129,216,138,.14);border-color:#81d88a;color:#abe6b1}
/* C: hổ phách → đồng (ấm, tôn trọng), phân biệt rõ với B (xanh) */
.tier-badge[data-tier="C+"]{background:rgba(255,196,92,.16);border-color:#ffc45c;color:#ffd98a}
.tier-badge[data-tier="C"]{background:rgba(240,176,75,.15);border-color:#f0b04b;color:#f6c877}
.tier-badge[data-tier="C-"]{background:rgba(214,150,70,.15);border-color:#d69646;color:#e6b878}
.rt-empty{text-align:center;color:var(--muted);padding:26px 10px}

/* ---------- Danh sách đăng ký: ảnh + modal chi tiết ---------- */
.market-card.is-click{cursor:pointer}
.market-card.is-click:hover{box-shadow:inset 0 0 0 1px var(--gold-deep)}
.mc-avatar,.mc-logo{width:72px;height:72px;border-radius:10px;object-fit:cover;
  border:1px solid var(--line);margin-bottom:10px;display:block}
.mc-avatar.is-empty,.mc-logo.is-empty{display:flex;align-items:center;justify-content:center;
  font-size:30px;background:var(--navy);color:var(--muted)}
.mc-slogan{color:var(--gold-2);font-style:italic;font-size:13px;margin:2px 0 6px}
.mk-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.mk-modal[hidden]{display:none}
.mk-modal__backdrop{position:absolute;inset:0;background:rgba(4,6,12,.72);backdrop-filter:blur(3px)}
.mk-modal__box{position:relative;max-width:520px;width:100%;max-height:86vh;overflow:auto;
  background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);clip-path:var(--cut);padding:26px}
.mk-modal__x{position:absolute;right:12px;top:10px;background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer}
.mk-modal__x:hover{color:var(--gold)}
.mk-solo{text-align:center}
.mk-solo__photo{width:150px;height:150px;border-radius:12px;object-fit:cover;margin:0 auto 12px;display:block;border:1px solid var(--line)}
.mk-solo .mc-tags,.mk-solo .mc-contact{justify-content:center}
.mk-team{text-align:center}
.mk-team h3{font-family:var(--font-head);color:var(--gold-2);font-size:22px}
.mk-team__logo{width:110px;height:110px;border-radius:12px;object-fit:cover;margin:0 auto 10px;display:block;border:1px solid var(--line)}
.mk-solo__photo.is-empty,.mk-team__logo.is-empty{display:flex;align-items:center;justify-content:center;font-size:52px;background:var(--navy);color:var(--muted)}
.mk-roster{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:8px;text-align:left}
.mk-member{display:flex;align-items:center;gap:12px;background:var(--navy);border:1px solid var(--line-soft);border-radius:8px;padding:8px 12px}
.mk-member__ph{width:46px;height:46px;border-radius:8px;object-fit:cover;flex:0 0 auto}
.mk-member__ph.is-empty{display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--panel);color:var(--muted)}
.mk-member__info{display:flex;flex-direction:column}
.mk-member__name{font-weight:600;color:var(--text)}
.mk-member__sub{color:var(--muted);font-size:12px}

/* ---------- Footer liên hệ ---------- */
.footer__contact{color:var(--muted);font-size:14px;max-width:380px;text-align:right}
.footer__contact a{color:var(--gold)}

/* ---------- Tin tức ---------- */
.news-feat{display:grid;grid-template-columns:1.25fr 1fr;cursor:pointer;margin-bottom:22px;overflow:hidden;
  background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);clip-path:var(--cut)}
.news-feat__cover{width:100%;height:100%;min-height:260px;object-fit:cover;display:block}
.news-feat__cover.is-empty{display:flex;align-items:center;justify-content:center;font-size:64px;background:var(--navy);color:var(--muted);min-height:260px}
.news-feat__body{padding:26px}
.news-feat__tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1px;color:#eaf4ff;
  background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));padding:3px 10px;border-radius:4px}
.news-feat__title{font-family:var(--font-head);color:var(--gold-2);font-size:24px;margin:12px 0 6px;line-height:1.2}
.news-feat__date{color:var(--muted);font-size:13px}
.news-feat__excerpt{color:var(--text);margin-top:12px;line-height:1.6}
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.news-card{cursor:pointer;overflow:hidden;background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);clip-path:var(--cut)}
.news-card:hover,.news-feat:hover{box-shadow:0 0 0 1px var(--gold-deep)}
.news-card__cover{width:100%;height:150px;object-fit:cover;display:block}
.news-card__cover.is-empty{display:flex;align-items:center;justify-content:center;font-size:40px;background:var(--navy);color:var(--muted);height:150px}
.news-card__body{padding:14px 16px}
.news-card__title{font-family:var(--font-head);color:var(--gold-2);font-size:16px;line-height:1.3}
.news-card__date{color:var(--muted);font-size:12px;margin-top:6px}
.mk-modal__box--wide{max-width:760px}
.news-detail{text-align:left}
.nd-title{font-family:var(--font-head);color:var(--gold-2);font-size:26px;line-height:1.2}
.nd-date{color:var(--muted);font-size:13px;margin:4px 0 16px}
.nd-cover{width:100%;max-height:380px;object-fit:cover;border-radius:8px;margin-bottom:16px;display:block}
.nd-h1{font-family:var(--font-head);color:var(--gold-2);font-size:22px;margin:18px 0 8px}
.nd-h2{font-family:var(--font-head);color:var(--text);font-size:18px;margin:14px 0 6px}
.nd-p{color:var(--text);line-height:1.7;margin:10px 0}
.nd-img{width:100%;border-radius:8px;margin:14px 0;display:block}
.nd-link a{color:var(--gold)}
.nd-video{position:relative;padding-top:56.25%;margin:14px 0}
.nd-video iframe{position:absolute;inset:0;width:100%;height:100%;border-radius:8px;border:0}
.nd-body{color:var(--text);line-height:1.7}
.nd-body h1,.nd-body h2,.nd-body h3{font-family:var(--font-head);color:var(--gold-2);margin:16px 0 8px;line-height:1.25}
.nd-body h1{font-size:22px}.nd-body h2{font-size:19px}.nd-body h3{font-size:17px;color:var(--text)}
.nd-body p{margin:10px 0}
.nd-body img{max-width:100%;border-radius:8px;margin:10px 0;display:block}
.nd-body a{color:var(--gold)}
.nd-body ul,.nd-body ol{margin:8px 0 8px 24px}
.nd-body li{margin:4px 0}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .cards{grid-template-columns:repeat(3,1fr)}
  .hero__char{opacity:.35}
  .joincta__char{opacity:.14;height:100%}
  .topbar__tag{font-size:10px}
}
@media(max-width:720px){
  html{--topbar-h:0px}
  .topbar{display:none}
  .nav__toggle{display:block}
  .joincta__char{display:none}
  .joincta{padding:52px 20px}
  .nav__links{position:fixed;top:56px;right:0;flex-direction:column;
    background:var(--bg-alt);border-left:1px solid var(--line);padding:22px;
    width:230px;height:calc(100vh - 56px);transform:translateX(100%);transition:.25s;gap:18px}
  .nav__links.is-open{transform:translateX(0)}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .prize--1{transform:none}
  .section{padding:64px 0}
  .reg-form{padding:24px}
  .hero__char{display:none}
  .reg-choose{grid-template-columns:1fr}
  .news-feat{grid-template-columns:1fr}
  .footer__contact{text-align:left;max-width:none}
  .fab-register{top:auto;bottom:16px;right:14px;transform:none;padding:11px 15px;font-size:13px;animation:fabPulseM 1.5s ease-in-out infinite}
  .fab-register:hover{transform:none}
  @keyframes fabPulseM{
    0%,100%{transform:translateY(0);box-shadow:0 6px 22px rgba(0,0,0,.45),0 0 0 1px rgba(56,214,255,.5),0 0 10px rgba(56,214,255,.35)}
    50%{transform:translateY(-8px);box-shadow:0 16px 30px rgba(0,0,0,.5),0 0 0 1px rgba(56,214,255,.9),0 0 26px rgba(56,214,255,.8)}}
}

/* ===== 2 bộ môn: nút chuyển FCO | FCM + khối nội dung sửa từ admin ===== */
.gsw{display:inline-flex;gap:4px;margin:0 auto}
.gsw button{font-family:var(--font-head);font-weight:800;letter-spacing:1.5px;font-size:11px;cursor:pointer;
  border:1px solid var(--line);background:transparent;color:var(--muted);padding:5px 14px;border-radius:999px}
.gsw button.is-active{background:linear-gradient(135deg,var(--gold-2),var(--gold-deep));color:#fff;border-color:transparent}
.gname{color:var(--gold-2)}
.rich{line-height:1.7}
.rich h2,.rich h3{font-family:var(--font-head);margin:22px 0 8px}
.rich ul,.rich ol{margin:8px 0 8px 22px}
.rich table{width:100%;border-collapse:collapse;margin:12px 0}
.rich th,.rich td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.rich img{max-width:100%;height:auto}
body[data-game="FCM"]{--gold:#f59e0b;--gold-2:#fcd34d;--gold-deep:#b45309;--brand-rgb:245,158,11}
@media (max-width:760px){.topbar__tag{display:none}.gsw{margin:0}}

/* thuộc tính hidden luôn thắng display của class (ẩn khối chọn hình thức đăng ký, tab danh sách…) */
[hidden]{display:none!important}

/* ===== Thu nhỏ giao diện ~15% (nhỏ gọn hơn, giống mật độ bản mẫu) ===== */
html{zoom:.8}
@media (max-width:720px){html{zoom:1}}

/* ===== Nền toàn trang theo bộ môn =====
   Thứ tự ưu tiên: assets/kv-fco.jpg | kv-fcm.jpg (ảnh riêng từng môn) → assets/kv-bg.jpg (ảnh chung) → gradient tối bên dưới.
   Chưa có ảnh nào thì chỉ thấy gradient. */
body[data-game="FCO"]::before{
  background:
    url("../assets/kv-fco.jpg") center/cover no-repeat,
    url("../assets/kv-bg.jpg?v=4") center/cover no-repeat,
    radial-gradient(60% 55% at 15% 10%,rgba(59,130,246,.42),transparent 70%),
    radial-gradient(55% 50% at 88% 85%,rgba(56,214,255,.28),transparent 70%),
    linear-gradient(160deg,#0b1030,#0a0816 55%,#08142a)}
body[data-game="FCM"]::before{
  background:
    url("../assets/kv-fcm.jpg") center/cover no-repeat,
    url("../assets/kv-bg.jpg?v=4") center/cover no-repeat,
    radial-gradient(60% 55% at 15% 10%,rgba(245,158,11,.40),transparent 70%),
    radial-gradient(55% 50% at 88% 85%,rgba(239,68,68,.26),transparent 70%),
    linear-gradient(160deg,#241206,#0a0816 55%,#1c0d08)}

/* ===== Vòng quay may mắn ===== */
.wheel-wrap{display:grid;gap:22px;justify-items:center}
.wheel-box{position:relative;width:min(420px,86vw);aspect-ratio:1}
.wheel-box canvas{border-radius:50%;box-shadow:0 0 0 6px rgba(255,255,255,.12),var(--glow),var(--shadow);will-change:transform}
.wheel-pointer{position:absolute;left:50%;top:-12px;transform:translateX(-50%);z-index:2;width:0;height:0;
  border-left:14px solid transparent;border-right:14px solid transparent;border-top:26px solid var(--gold-2);filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}
.wheel-form{width:100%;max-width:520px}

/* Banner nhỏ báo trúng thưởng */
.win-banner{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(5,4,14,.55);animation:fade .2s ease}
.win-banner__box{position:relative;width:min(340px,86vw);text-align:center;padding:22px 20px 20px;border-radius:14px;
  background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--gold);box-shadow:var(--glow),var(--shadow);
  animation:winPop .35s cubic-bezier(.2,1.4,.4,1)}
.win-banner__x{position:absolute;top:8px;right:10px;background:none;border:0;color:var(--muted);font-size:16px;cursor:pointer}
.win-banner__ic{font-size:34px;line-height:1}
.win-banner__t{margin:8px 0 6px;font-size:15px;color:var(--text)}
.win-banner__p{font-family:var(--font-head);font-weight:800;font-size:20px;color:var(--gold-2)}
@keyframes winPop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}

/* ===== Bố cục Thể lệ / nội dung soạn trong admin: gọn, dễ đọc ===== */
.rich{line-height:1.6;font-size:15px;color:var(--text)}
.rich h3,.rich h2{font-family:var(--font-head);font-size:20px;font-weight:700;color:var(--gold-2);margin:26px 0 10px;letter-spacing:.3px}
.rich h3:first-child{margin-top:4px}
.rich p{margin:0 0 6px}
.rich p + ul,.rich p + ol{margin-top:2px}
.rich ul,.rich ol{margin:4px 0 10px 22px;padding:0}
.rich li{margin:3px 0;padding-left:2px}
.rich li::marker{color:var(--gold-2)}
.rich b,.rich strong{font-weight:700;color:#fff}
.rich i,.rich em{color:var(--muted)}
#the-le .container{max-width:860px}

/* ===== Menu như bản mẫu: logo bên trái, các tab dàn sang phải (cùng bề rộng với nội dung) ===== */
.nav__inner{display:flex;justify-content:space-between;align-items:center;gap:24px}
.nav__links{gap:16px;margin:0}
.nav__links a{white-space:nowrap;font-size:16px;font-weight:600}
@media (max-width:1000px) and (min-width:721px){
  .nav__toggle{display:block;margin-left:auto}
  .nav__links{position:fixed;top:calc(var(--topbar-h) + 56px);right:0;flex-direction:column;align-items:flex-start;
    background:var(--bg-alt);border-left:1px solid var(--line);padding:22px;
    width:230px;height:calc(100vh - 56px);transform:translateX(100%);transition:.25s;gap:18px}
  .nav__links.is-open{transform:translateX(0)}
}
@media (max-width:720px){.nav__toggle{margin-left:auto}}

.hero{padding-top:calc(var(--topbar-h) + 76px)}

/* ===== KV làm theme toàn trang =====
   Poster (assets/kv-bg.jpg) cố định phía sau mọi trang (đã xoá chữ giải thưởng/ngày khỏi ảnh).
   Lớp phủ tối đậm dần từ trái sang để chữ web dễ đọc — chỉ nhẹ hơn bản trước một chút để tiêu đề và nhân vật sáng hơn. */
body::before{background-position:72% center;filter:brightness(1.10)}
body[data-game="FCO"]::before,body[data-game="FCM"]::before{background-position:72% center}
body::after{
  background:
    linear-gradient(90deg,rgba(3,12,9,.82) 0%,rgba(3,12,9,.78) 36%,rgba(3,12,9,.50) 60%,rgba(3,12,9,.27) 100%),
    linear-gradient(180deg,rgba(3,12,9,.55) 0%,rgba(3,12,9,0) 22%,rgba(3,12,9,0) 70%,rgba(3,12,9,.65) 100%)}
.hero__bg{background:none}
body[data-game="FCO"]{--gold:#16a34a;--gold-2:#4ade80;--gold-deep:#166534;--brand-rgb:22,163,74}

/* ===== Chân trang nhỏ gọn ===== */
.footer{padding:22px 0 10px}
.footer__inner{gap:12px}
.footer__title{font-size:14px;letter-spacing:.8px}
.footer__muted{font-size:12px}
.footer__contact{font-size:12.5px}
.footer__copy{font-size:11.5px;margin-top:10px}
/* Câu nhấn mạnh ở Giới thiệu: nhỏ lại, không chiếm chỗ */
.intro-slogan{text-align:center;font-family:var(--font-head);font-weight:800;text-transform:uppercase;font-size:clamp(13px,1.5vw,17px);letter-spacing:1.5px;margin:-4px auto 14px;color:var(--gold-2);text-shadow:0 2px 12px rgba(0,0,0,.7)}
.footer{margin-top:auto}
.footer__copy{margin-bottom:0}

/* Tiêu đề trang: một dòng, màu theo bộ môn (FC Online xanh lá / FC Mobile cam) */
body[data-game="FCO"]{--title-c:#4ade80}
body[data-game="FCM"]{--title-c:#f59e0b}
.section__title{color:var(--title-c,#fff)}
/* Tiêu đề trang nhỏ lại một chút để luôn nằm trên 1 dòng (điện thoại cho phép xuống dòng) */
.section__title{font-size:clamp(22px,3.3vw,36px);white-space:nowrap;gap:16px}
.section__title::before,.section__title::after{width:clamp(20px,5vw,56px)}
@media (max-width:720px){.section__title{white-space:normal;font-size:clamp(20px,6vw,28px)}}
