:root{
  --gda-green:#001d13;
  --gda-green-2:#01261a;
  --gda-green-3:#073626;
  --gda-green-soft:#eef4f0;
  --gda-gold:#ecb63f;
  --gda-gold-2:#f1c85f;
  --gda-gold-soft:#fff5d8;
  --gda-bg:#f4f6f3;
  --gda-surface:#ffffff;
  --gda-ink:#102c23;
  --gda-muted:#6e7c75;
  --gda-line:#dce4df;
  --gda-danger:#a83f37;
  --gda-shadow:0 14px 38px rgba(0,29,19,.08);
  --gda-radius:18px;

  /* backward-compatible tokens */
  --g:var(--gda-green-3);--g2:var(--gda-green);--gold:var(--gda-gold);
  --brand-950:var(--gda-green);--brand-900:var(--gda-green-2);--brand-850:var(--gda-green-2);--brand-800:var(--gda-green-3);--brand-700:#0c4b35;
  --brand-gold:var(--gda-gold);--gold-500:var(--gda-gold);--gold-400:var(--gda-gold-2);--gold-300:#f4d684;--gold-200:#f8e5ae;
  --surface:var(--gda-surface);--canvas:var(--gda-bg);--ink:var(--gda-ink);--muted:var(--gda-muted);--line:var(--gda-line);
  --brand-cream:var(--gda-bg);--brand-ink:var(--gda-ink);--brand-line:var(--gda-line);
}
*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--gda-bg)}
body{
  margin:0!important;
  background:var(--gda-bg)!important;
  color:var(--gda-ink)!important;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;
}
header,.top,.header{
  background:var(--gda-green)!important;
  border-bottom:1px solid rgba(236,182,63,.52)!important;
  box-shadow:0 4px 20px rgba(0,29,19,.13)!important;
}
header .head,.top .head,.tdHead{min-height:76px}
.logo,.brand-logo,.tdLogo{
  display:block!important;
  background:transparent!important;
  border-radius:0!important;
  filter:none!important;
  object-fit:contain!important;
}
header .logo,.top .logo,.tdLogo{height:58px!important;max-width:340px!important;width:auto!important}
#net,#online,.net{font-size:13px!important;color:#fff!important;white-space:nowrap}
main,.wrap{background:transparent!important}
.card{
  background:var(--gda-surface)!important;
  border:1px solid var(--gda-line)!important;
  border-radius:var(--gda-radius)!important;
  box-shadow:var(--gda-shadow)!important;
}
h1,h2,h3,.brand-title{color:var(--gda-ink)!important}
.muted,.brand-subtitle{color:var(--gda-muted)!important}
.brand-eyebrow,.kicker,.eyebrow{color:#a57408!important;font-weight:850!important;letter-spacing:.12em!important}
.brand-divider{background:linear-gradient(90deg,transparent,var(--gda-gold),transparent)!important;opacity:.5!important}
.brand-chip,.pill,.status{background:var(--gda-green-soft)!important;color:#174632!important}
.brand-chip.gold,.pill.gold,.status.gold{background:var(--gda-gold-soft)!important;color:#725109!important}
.brand-kpi{background:#fbfcfb!important;border-color:var(--gda-line)!important}
.brand-kpi .n,.stat,.level{color:var(--gda-green-3)!important}
button,.btn{
  background:var(--gda-green-3)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:none!important;
}
button:hover,.btn:hover{background:#0a4733!important;box-shadow:0 7px 18px rgba(0,29,19,.14)!important}
button.goldbtn,.goldbtn,button.gold,.gold{background:var(--gda-gold)!important;color:#173027!important}
button.goldbtn:hover,.goldbtn:hover,button.gold:hover,.gold:hover{background:var(--gda-gold-2)!important}
button.ghost,.ghost{background:var(--gda-green-soft)!important;color:var(--gda-green-3)!important;border:1px solid #dce7e0!important}
button.red,button.danger,.danger{background:var(--gda-danger)!important;color:#fff!important}
input,select,textarea{
  background:#fff!important;
  color:var(--gda-ink)!important;
  border:1px solid #cfd9d3!important;
  box-shadow:none!important;
}
input:focus,select:focus,textarea:focus{outline:none!important;border-color:var(--gda-gold)!important;box-shadow:0 0 0 3px rgba(236,182,63,.13)!important}
.notice{background:var(--gda-gold-soft)!important;border-color:#ead080!important;color:var(--gda-ink)!important}
.tabs{background:#fff!important;border-top-color:var(--gda-line)!important;box-shadow:0 -8px 28px rgba(0,29,19,.06)!important}
.tabs button{background:#fff!important;color:var(--gda-muted)!important}
.tabs button.active{background:#fff!important;color:var(--gda-green-3)!important;border-top-color:var(--gda-gold)!important}
.eventPremium:before,.event:before{background:var(--gda-gold)!important}
.eventMeta span{background:#f3f6f4!important;color:#5d7067!important}
.memberHero{background:#fff!important}
.memberHero:after{display:none!important}
.roundBadge{background:var(--gda-green)!important;border-color:var(--gda-gold)!important;color:#fff!important}
.memberAvatar{background:var(--gda-green)!important;color:var(--gda-gold)!important;border-color:var(--gda-gold)!important}
.seat{background:#f7f9f7!important}
.mine{outline-color:var(--gda-gold)!important}
.tablewrap table tbody tr:hover{background:#f7faf8!important}
th{color:#64756d!important}
.connected{background:#e7f4eb!important;color:#17633b!important}.reconnecting{background:#fff1cf!important;color:#775604!important}.offline{background:#f8dddd!important;color:#98352f!important}

/* Player login: one logo in header only, no duplicated dark rectangle on light canvas */
.authhero{display:none!important}
#authScreen{max-width:680px;margin:34px auto 0!important}
#authScreen>.card{padding:28px!important}
#authScreen>.card>.row:first-child{margin-bottom:18px!important}
#authScreen h2{font-size:26px!important;margin:8px 0 14px!important}
#authScreen input{min-height:54px!important}
#authScreen button{min-height:50px!important}

/* Admin: remove large body logo; header already carries the brand */
.secureLogin{max-width:760px!important;margin:34px auto!important;background:#fff!important}
.loginBrand{display:block!important;margin-bottom:22px!important}
.loginBrand img{display:none!important}
.loginBrand h2{font-size:28px!important;margin-top:6px!important}
header .logo{background:transparent!important}
.tabs{background:#eef3ef!important}
.tabs button{background:transparent!important}
.tabs button.active{background:#fff!important}
.securityItems>div{background:#f8faf8!important}
.passwordRules{background:var(--gda-gold-soft)!important;color:#73540b!important}
.capacityControl{background:#fff!important;border-color:#cfd9d3!important}

/* Player match and event detail */
.hero{background:#fff!important}
.fixedNav{background:#fff!important;border-top:1px solid var(--gda-line)!important}
.fixedNav a{color:var(--gda-green-3)!important}
.back{color:var(--gda-green-3)!important;background:#fff!important;border:1px solid var(--gda-line)!important}

/* TD operation surfaces */
.tdSub{color:#d9e4de!important}
.tableCard,.controlCard{border-color:var(--gda-line)!important}

/* TV retains dark presentation mode but uses the exact same brand green/gold */
body.tv-page{background:var(--gda-green)!important}

@media(max-width:700px){
  header .logo,.top .logo,.tdLogo{height:50px!important;max-width:68vw!important}
  header .head,.top .head,.tdHead{min-height:66px}
  #authScreen{margin-top:18px!important}
  #authScreen>.card{padding:20px!important}
  .card{border-radius:16px!important}
}

/* v1.9.3 Player Premium UI */
.playerHeader .head{position:relative;justify-content:center;min-height:82px}
.playerHeader .logo{height:72px;max-width:min(82vw,440px);object-position:center}
.playerHeader #net{position:absolute;right:18px;opacity:0}
.playerHeader #net.offline{opacity:1}
.playerTop .head{position:relative!important;justify-content:center!important;min-height:82px}
.playerTop .logo{height:70px!important;max-width:min(82vw,430px)!important;object-position:center!important}
.playerTop .net{position:absolute;right:18px;opacity:0}.playerTop .net.offline{opacity:1}
.playerTop .back{position:absolute;right:18px}
.memberHero{padding:26px 28px!important;min-height:230px;background:linear-gradient(135deg,#fff 0%,#fbfcfa 64%,#f6f3e8 100%)!important;border-color:rgba(183,135,16,.20)!important;box-shadow:0 18px 50px rgba(0,29,19,.08)!important}
.memberHero:after{content:""!important;position:absolute!important;width:310px!important;height:310px!important;right:-78px!important;top:-42px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:url('/assets/gda-final-icon.png') center/contain no-repeat!important;opacity:.055!important;filter:saturate(.7)!important}
.memberHero>*{position:relative;z-index:1}
.memberName{font-size:30px;font-weight:850;letter-spacing:-.02em;margin:3px 0}.memberNo{font-size:15px;letter-spacing:.08em;color:var(--muted)}
.memberBadges{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.memberBadges .brand-chip{font-size:11px;letter-spacing:.08em}
.memberStats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:22px;border-top:1px solid rgba(0,29,19,.10)}
.memberStat{padding:16px 14px 2px;border-right:1px solid rgba(0,29,19,.08)}.memberStat:last-child{border-right:0}.memberStat .n{font-size:25px;font-weight:850;color:var(--brand-950)}.memberStat .l{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:2px}
.sectionHead{margin-top:32px!important}.eventPremium{box-shadow:0 14px 38px rgba(0,29,19,.07)!important;border-color:rgba(0,29,19,.10)!important}.brand-empty{min-height:150px!important;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.brand-empty:after{content:"";position:absolute;width:180px;height:180px;right:-42px;bottom:-60px;background:url('/assets/gda-final-icon.png') center/contain no-repeat;opacity:.035}
.tabs button{padding-top:10px!important;padding-bottom:10px!important}.tabIcon{display:block;font-size:17px;line-height:1.1;margin-bottom:3px}.tabLabel{display:block;font-size:12px}
@media(max-width:600px){.playerHeader .head,.playerTop .head{min-height:68px}.playerHeader .logo,.playerTop .logo{height:58px!important;max-width:78vw!important}.playerHeader #net,.playerTop .net{right:10px}.memberHero{padding:22px 20px!important;min-height:220px}.memberHero:after{width:240px!important;height:240px!important;right:-74px!important;top:-10px!important}.memberName{font-size:27px}.memberStats{margin-top:18px}.memberStat{padding-left:6px;padding-right:6px}.memberStat .n{font-size:22px}}


/* v1.9.4 Player UI Polish */
.playerHeader .head{min-height:68px!important}
.playerHeader .logo{height:88px!important;max-width:min(88vw,520px)!important}
.memberActive{display:inline-block;margin-top:10px;color:#8d6900;font-size:11px;font-weight:800;letter-spacing:.08em}
.tabs button{padding:9px 4px 10px!important;min-height:48px!important}
.tabs .tabLabel{font-size:13px!important;line-height:1.15!important}
.brand-empty>.icon{display:none!important}
@media(max-width:600px){.playerHeader .head{min-height:58px!important}.playerHeader .logo{height:70px!important;max-width:86vw!important}.tabs button{min-height:46px!important;padding:8px 4px!important}}


/* v1.9.5 UI + TV Presentation polish */
.pastDivider{margin:34px 4px 14px;padding-top:22px;border-top:1px solid rgba(0,29,19,.14);display:flex;align-items:baseline;gap:12px}.pastDivider span{font-size:12px;font-weight:850;letter-spacing:.12em;color:#9a7410}.pastDivider b{font-size:20px;color:var(--gda-ink)}.pastTournament{opacity:.82}.pastTournament .card{box-shadow:0 8px 24px rgba(0,29,19,.045)!important}.pastTournament .brand-chip{background:#edf1ee!important;color:#65736c!important}.premiumBack{background:transparent!important;border:0!important;color:var(--gda-gold)!important;padding:8px 4px!important;font-size:15px!important}.premiumBack:hover{background:transparent!important;color:var(--gda-gold-2)!important;box-shadow:none!important}
body.tv-page{color:#f7f8f6!important}.tv-page .event,.tv-page .roundTitle,.tv-page h1,.tv-page h2,.tv-page h3{color:#f7f8f6!important}.tv-page .mode{color:#d8e1dc!important}.tv-page .hold h1{color:var(--gda-gold)!important;text-shadow:0 2px 24px rgba(236,182,63,.16)}.tv-page .hold p{color:#f3f6f4!important}.tv-page .tableCard{color:#f7f8f6!important;background:rgba(255,255,255,.045)!important;border-color:rgba(236,182,63,.48)!important}.tv-page .seatKey{color:var(--gda-gold-2)!important}.tv-page .seatName,.tv-page .team,.tv-page .playerBig,.tv-page .row b{color:#fff!important}.tv-page .vs{color:#cfdbd5!important}.tv-page .list{background:rgba(255,255,255,.045)!important;border:1px solid rgba(236,182,63,.22)}.tv-page .row{color:#f3f6f4!important}.tv-page .row>span:first-child{color:var(--gda-gold)!important;font-weight:900}.tv-page .podiumCard{color:#fff!important}.tv-page .podiumCard div:last-child{color:#d8e1dc!important}.tv-page .pageIndicator{display:none!important}
/* v2.1 TV seating hardening: override legacy generic .seat background */
body.tv-page .seat,.tv-page .seat{background:transparent!important;color:#fff!important}
body.tv-page .seatName,.tv-page .seatName{color:#fff!important}
