/* InterSport 2026 — blue / green / white glass redesign */
:root{
  color-scheme:light;
  --navy-950:#03202f;
  --navy-900:#063247;
  --blue-800:#075985;
  --blue-700:#0369a1;
  --blue-600:#0284c7;
  --blue-500:#0ea5e9;
  --blue-300:#7dd3fc;
  --blue-100:#e0f2fe;
  --green-700:#047857;
  --green-600:#059669;
  --green-500:#10b981;
  --green-300:#6ee7b7;
  --green-100:#d1fae5;
  --surface:#ffffff;
  --surface-soft:#f5fbfc;
  --surface-glass:rgba(255,255,255,.78);
  --text:#102a43;
  --muted:#607d8b;
  --line:rgba(14,116,144,.14);
  --ring:rgba(14,165,233,.28);

  /* Compatibility aliases for the original component layer. */
  --maroon-900:var(--navy-950);
  --maroon-800:var(--navy-900);
  --maroon-700:var(--blue-800);
  --maroon-600:var(--blue-700);
  --red-600:var(--green-700);
  --red-500:var(--green-600);
  --red-400:var(--green-500);
  --pink-400:var(--blue-500);
  --pink-300:var(--blue-300);
  --pink-200:#bae6fd;
  --pink-100:var(--blue-100);
  --black:var(--navy-950);
  --ink:var(--text);
  --white:var(--surface);
  --paper:var(--surface-soft);
  --brand-red:var(--green-500);
  --grad-hero:linear-gradient(135deg,#063247 0%,#075985 42%,#047857 100%);
  --grad-accent:linear-gradient(135deg,#0369a1 0%,#047857 100%);
  --grad-line:linear-gradient(90deg,#0284c7,#10b981);
  --grad-putra:linear-gradient(135deg,#075985,#0369a1);
  --grad-campuran:linear-gradient(135deg,#047857,#059669);
  --tint-putra:rgba(14,165,233,.10);
  --tint-campuran:rgba(16,185,129,.12);
  --shadow-sm:0 6px 18px rgba(6,50,71,.07);
  --shadow-md:0 18px 42px rgba(6,50,71,.11);
  --shadow-lg:0 28px 70px rgba(6,50,71,.16);
  --radius:20px;
  --radius-md:20px;
  --radius-sm:12px;
  --font-sans:var(--font-body);
  --slate-800:#1e3a4b;
  --gray-50:#f8fafc;
  --gray-200:#e2e8f0;
}

html{ background:#eef8fa; }
body{
  min-height:100vh;
  color:var(--text);
  background:
    radial-gradient(circle at 10% 4%,rgba(14,165,233,.14),transparent 28rem),
    radial-gradient(circle at 94% 22%,rgba(16,185,129,.13),transparent 26rem),
    linear-gradient(180deg,#f9fdfd 0%,#eef8fa 58%,#f7fcfb 100%);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  opacity:.32;
  background-image:
    linear-gradient(rgba(2,132,199,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(2,132,199,.035) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom,#000,transparent 72%);
}
::selection{ background:var(--green-300); color:var(--navy-950); }
::-webkit-scrollbar-track{ background:#e8f5f7; }
::-webkit-scrollbar-thumb{ background:linear-gradient(var(--blue-500),var(--green-500)); }
:focus-visible{ outline:3px solid var(--blue-500); outline-offset:3px; }

.skip-link{
  position:fixed;
  top:.75rem;
  left:.75rem;
  z-index:500;
  padding:.7rem 1rem;
  border-radius:12px;
  background:var(--navy-950);
  color:#fff;
  font-weight:800;
  transform:translateY(-150%);
  transition:transform .2s ease;
}
.skip-link:focus{ transform:translateY(0); }

/* Ambient shapes */
.bg-fx{ z-index:-1; }
.ball{
  opacity:.2;
  filter:blur(8px);
  background:radial-gradient(circle at 30% 30%,#fff,var(--blue-300) 42%,var(--green-500) 100%);
}
.ball-1{ width:260px; height:260px; left:-5%; }
.ball-2{ width:200px; height:200px; left:88%; }
.ball-3{ width:120px; height:120px; }
.ball-4{ width:220px; height:220px; }

/* Glass navigation */
.site-header{
  top:0;
  border-bottom:1px solid rgba(255,255,255,.68);
  background:rgba(248,253,253,.78);
  box-shadow:0 8px 30px rgba(6,50,71,.08);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  animation:none;
}
.header-inner{ max-width:1240px; min-height:72px; padding:.7rem 1.35rem; }
.brand{ color:var(--navy-950); gap:.75rem; }
.brand-logo{
  width:40px;
  height:40px;
  border-radius:13px;
  padding:4px;
  background:rgba(255,255,255,.9);
  box-shadow:0 0 0 1px rgba(2,132,199,.12),0 8px 20px rgba(2,132,199,.14);
}
.brand-text strong{ font-size:1.06rem; letter-spacing:-.02em; }
.brand-text small{ color:var(--muted); opacity:1; }
.main-nav{ gap:.25rem; }
.main-nav a,
.main-nav .nav-logout-button{
  min-height:40px;
  padding:.55rem .8rem;
  color:#315668;
  font-size:.84rem;
  font-weight:700;
  border-radius:12px;
}
.main-nav a:hover,
.main-nav .nav-logout-button:hover{ color:var(--blue-800); background:rgba(14,165,233,.09); }
.main-nav a.active{
  color:#fff;
  background:var(--grad-accent);
  box-shadow:0 8px 22px rgba(5,150,105,.18);
}
.main-nav .nav-admin{ background:var(--navy-950); color:#fff; }
.nav-bell{
  width:40px;
  height:40px;
  margin-left:.15rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.72);
  color:var(--blue-800);
}
.bell-badge{ background:var(--green-500); color:#fff; border-color:#fff; }
.live-dot{ background:var(--green-300); }
.nav-toggle span{ background:var(--blue-800); }
.nav-toggle{
  min-width:44px;
  min-height:44px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.62);
}

.sport-switcher{
  top:var(--header-h, 74px);
  margin-top:0 !important;
  border-bottom:1px solid var(--line);
  background:rgba(244,251,252,.85);
  backdrop-filter:blur(18px) saturate(140%);
}
.sport-switcher-inner{ max-width:1240px; padding:10px 1.35rem; gap:9px; }
.sport-switcher-inner{ scrollbar-width:none; }
.sport-switcher-inner::-webkit-scrollbar{ display:none; }
.sport-pill{
  min-height:38px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.74);
  color:var(--blue-800);
  box-shadow:0 4px 12px rgba(6,50,71,.04);
}
.sport-pill:hover,
.sport-pill.active{
  border-color:transparent;
  background:var(--grad-accent);
  color:#fff;
  box-shadow:0 8px 20px rgba(5,150,105,.16);
}

/* Layout and footer */
.site-main{ max-width:1240px; padding:2rem 1.35rem 4rem; }
.site-footer{
  margin-top:2rem;
  padding:4rem 1.2rem 3rem;
  color:rgba(255,255,255,.76);
  background-color:var(--navy-950);
  background-image:
    radial-gradient(circle at 15% 0%,rgba(14,165,233,.3),transparent 34%),
    radial-gradient(circle at 85% 100%,rgba(16,185,129,.24),transparent 34%),
    linear-gradient(135deg,#03202f,#06425b 55%,#034937);
}
.site-footer::before{
  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:38px 38px;
}
.footer-inner{ max-width:860px; }
.footer-inner strong{ color:var(--green-300); }
.footer-logo{ height:38px; padding:.55rem 1rem; border-radius:12px; }
.footer-disclaimer{ border-top-color:rgba(255,255,255,.13); }

/* Buttons and form controls */
.btn{
  min-height:44px;
  padding:.68rem 1.15rem;
  border-radius:13px;
  font-size:.84rem;
  font-weight:800;
  letter-spacing:.005em;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;
}
.btn-primary{
  background:var(--grad-accent);
  color:#fff;
  box-shadow:0 10px 24px rgba(5,150,105,.2);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 14px 28px rgba(5,150,105,.26); }
.btn-outline{
  border:1px solid rgba(2,132,199,.28);
  background:rgba(255,255,255,.66);
  color:var(--blue-800);
  box-shadow:0 5px 14px rgba(6,50,71,.05);
}
.btn-outline:hover{ border-color:var(--blue-700); background:var(--blue-700); color:#fff; }
.btn-dark{ background:linear-gradient(135deg,var(--navy-950),var(--blue-800)); box-shadow:0 10px 22px rgba(3,32,47,.18); }
.btn-sm{ min-height:36px; padding:.45rem .75rem; border-radius:10px; }

input,select,textarea{ accent-color:var(--green-600); }
.search-bar,
.filter-bar,
.scorekeeper-filters{
  border:1px solid rgba(255,255,255,.8);
  background:var(--surface-glass);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(18px);
}
.search-bar{ min-height:54px; border-radius:16px; padding:.65rem 1rem; }
.search-bar input[type="search"]{ min-height:40px; }
.search-bar input[type="search"]::placeholder{ color:#8aa3ad; }
.filter-bar{ border-radius:18px; gap:.75rem; }
.filter-field{ color:var(--blue-800); }
.filter-field select,.filter-field input,
.form-grid input,.form-grid select,.form-grid textarea,
fieldset form > label input,fieldset form > label textarea,
.comment-form input,.comment-form textarea,
.login-card input,.score-input-row input,
.scorekeeper-filters select,.scorekeeper-reason input{
  min-height:44px;
  border:1px solid rgba(7,89,133,.16);
  border-radius:11px;
  background:rgba(248,253,253,.9);
  color:var(--text);
  box-shadow:inset 0 1px 2px rgba(6,50,71,.03);
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.filter-field select:focus,.filter-field input:focus,
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,
fieldset form > label input:focus,fieldset form > label textarea:focus,
.comment-form input:focus,.comment-form textarea:focus,
.login-card input:focus,.score-input-row input:focus,
.scorekeeper-filters select:focus,.scorekeeper-reason input:focus{
  outline:none;
  border-color:var(--blue-500);
  background:#fff;
  box-shadow:0 0 0 4px var(--ring);
}

/* Hero */
.hero{
  min-height:520px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(2.2rem,5vw,4.8rem);
  border:1px solid rgba(255,255,255,.18);
  border-radius:32px;
  background:
    radial-gradient(circle at 88% 15%,rgba(110,231,183,.24),transparent 28%),
    radial-gradient(circle at 12% 92%,rgba(125,211,252,.22),transparent 30%),
    linear-gradient(135deg,#032b42 0%,#075985 46%,#047857 100%);
  box-shadow:0 34px 85px rgba(3,50,71,.24);
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.17;
  background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(125deg,#000,transparent 78%);
}
.hero::after{
  inset:auto -8% -42% auto;
  width:500px;
  height:500px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.1),transparent 66%);
}
.hero-kicker{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-bottom:1rem;
  color:var(--green-300);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.hero-kicker span{ width:30px; height:2px; border-radius:2px; background:var(--green-300); }
.hero h1{ max-width:900px; margin-bottom:.75rem; font-size:clamp(2.25rem,5.7vw,4.8rem); line-height:1.02; letter-spacing:-.055em; }
.hero-lead{ position:relative; z-index:1; max-width:680px; color:rgba(255,255,255,.78); font-size:clamp(.96rem,1.8vw,1.15rem); }
.hero-meta{ gap:.7rem; margin-top:1.5rem; }
.hero-chip{
  min-width:142px;
  padding:.82rem 1rem;
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  background:rgba(255,255,255,.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(16px);
}
.hero-chip .k{ color:var(--green-300); opacity:1; font-weight:800; }
.hero-chip .v{ font-size:1rem; }
.hero-status{
  position:relative;
  z-index:1;
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  margin:.9rem 0 .2rem;
  padding:.65rem .9rem;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:.84rem;
  font-weight:800;
  backdrop-filter:blur(16px);
}
.hero-status.is-live{ background:rgba(16,185,129,.16); border-color:rgba(110,231,183,.38); }
.hero-status .pulse-dot{ width:9px; height:9px; border-radius:50%; background:var(--green-300); box-shadow:0 0 0 5px rgba(110,231,183,.15); }
.countdown{ gap:.7rem; }
.countdown .unit{ min-width:78px; border-color:rgba(255,255,255,.15); background:rgba(3,32,47,.24); backdrop-filter:blur(14px); }
.hero-actions{ gap:.75rem; }
.hero-actions .btn{ min-height:48px; }
.hero-actions .hero-btn-outline{ border-color:rgba(255,255,255,.26); background:rgba(255,255,255,.08); }
.hero-actions .hero-btn-outline:hover{ background:#fff; color:var(--blue-800); }
.hero-quicknav a,.hero-champion-card{ border-color:rgba(255,255,255,.15); background:rgba(255,255,255,.1); backdrop-filter:blur(16px); }
.hero-champion-label{ color:var(--green-300); }
.hero-gallery-fade-left{ background:linear-gradient(to right,#064d62,transparent); }
.hero-gallery-fade-right{ background:linear-gradient(to left,#047857,transparent); }

/* Section rhythm, cards, and status */
.stats-row{ gap:1rem; margin:1.4rem 0 2.4rem; }
.stat-card,
.match-card,
.sport-hub-card,
.rule-profile-card,
.champion-showcase,
.bracket-node,
.cal-day,
.admin-shell,
.admin-match-summary,
.scorekeeper-match-card,
.scorekeeper-console,
.login-card{
  border:1px solid rgba(255,255,255,.9);
  background:var(--surface-glass);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(18px) saturate(125%);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
}
.stat-card{ position:relative; overflow:hidden; min-height:126px; padding:1.25rem; border-radius:18px; }
.stat-card::after{
  content:"";
  position:absolute;
  right:-22px;
  bottom:-30px;
  width:94px;
  height:94px;
  border-radius:50%;
  background:linear-gradient(145deg,rgba(14,165,233,.12),rgba(16,185,129,.13));
}
.stat-card:hover,.match-card:hover,.sport-hub-card:not(.disabled):hover,.cal-day:hover,.bracket-node:hover{
  transform:translateY(-4px);
  border-color:rgba(125,211,252,.72);
  box-shadow:var(--shadow-md);
}
.stat-card .num{ color:var(--blue-800); font-size:2.2rem; letter-spacing:-.04em; }
.stat-card .lbl{ color:var(--muted); font-weight:650; }

.section-head{ margin:2.5rem 0 1rem; }
.section-head h2{ color:var(--navy-900); font-size:clamp(1.25rem,2.4vw,1.65rem); letter-spacing:-.025em; }
.link-more{ color:var(--green-700); }
.link-more:hover{ color:var(--blue-700); text-decoration:none; }
.sub-nav{ gap:.55rem; margin-bottom:1.5rem; }
.sub-nav{ scrollbar-width:none; }
.sub-nav::-webkit-scrollbar{ display:none; }
.sub-nav a{
  min-height:42px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.7);
  color:var(--blue-800);
  box-shadow:none;
}
.sub-nav a.active{ border-color:transparent; background:var(--grad-accent); color:#fff; }

.match-grid{ gap:1.05rem; }
.match-card{ border-radius:19px; padding:1.15rem; }
.match-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:linear-gradient(var(--blue-500),var(--green-500));
  opacity:.7;
}
.match-card.completed{ border-color:rgba(16,185,129,.17); background:rgba(240,253,250,.8); }
.match-card .cat-row{ gap:.75rem; }
.vs-team{ color:var(--navy-900); }
.vs-team small,.match-meta,.bracket-node small,.standing-policy-note,.sport-next-match,.rule-profile p{ color:var(--muted); }
.vs-mid{ border:1px solid rgba(14,165,233,.12); border-radius:10px; background:var(--blue-100); color:var(--blue-800); }
.score-num{ color:var(--blue-800); }
.score-sep{ color:var(--green-500); }
.match-meta span{ border:1px solid rgba(7,89,133,.07); border-radius:9px; background:rgba(245,251,252,.88); }
.match-meta span.comment-count{ background:var(--green-100); color:var(--green-700); }

.badge{ min-height:25px; padding:.3rem .65rem; font-size:.65rem; letter-spacing:.055em; }
.badge-putra{ background:var(--grad-putra); }
.badge-campuran{ background:var(--green-100); color:var(--green-700); }
.badge-group{ background:var(--blue-100); color:var(--blue-800); }
.badge-scheduled{ background:#e8f3ff; color:#075985; }
.badge-live{ background:var(--green-700); box-shadow:0 0 0 5px rgba(16,185,129,.1); }
.badge-completed{ background:var(--green-100); color:var(--green-700); }
.badge-postponed{ background:#fef3c7; color:#92400e; }
.badge-wo{ background:var(--navy-950); }
.badge-sport{ background:var(--blue-100); color:var(--blue-800); }
.badge-sport.sport-table-tennis{ background:var(--green-100); color:var(--green-700); }
.badge-sport.sport-padel{ background:#dbeafe; color:#1d4ed8; }
.badge-sport.sport-badminton{ background:#ccfbf1; color:#0f766e; }
.team-chip{ border-radius:9px; box-shadow:0 2px 7px rgba(3,32,47,.13); }

.qualification-grid,.rules-overview-grid{ gap:1rem; }
.rule-profile-card{ border-radius:18px; }
.rule-profile-head h3{ color:var(--navy-900); letter-spacing:-.02em; }
.rule-profile-head div span,.rule-profile p{ color:var(--muted); }
.sport-coming-soon{ background:#e8f0f2; color:#526b76; padding:0.25rem 0.65rem; border-radius:99px; font-size:0.72rem; font-weight:800; text-transform:uppercase; }

/* ================== ULTRA-PREMIUM SPORT HUB CARDS ================== */
.sport-hub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.35rem;
  margin-bottom: 2.5rem;
}
.sport-hub-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.35rem 1.4rem;
  border-radius: 22px;
  background: #ffffff;
  border: 1px solid rgba(203, 213, 225, 0.7);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04), 0 2px 6px rgba(15, 23, 42, 0.02);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease;
}
.sport-hub-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--blue-700, #0369a1), var(--green-600, #059669));
  opacity: 0.85;
  transition: height 0.25s ease, opacity 0.25s ease;
}
.sport-hub-card:not(.disabled):hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.11), 0 6px 16px rgba(15, 23, 42, 0.06);
  border-color: rgba(14, 165, 233, 0.45);
}
.sport-hub-card:not(.disabled):hover::before {
  height: 6px;
  opacity: 1;
}
.sport-hub-card.disabled {
  opacity: 0.62;
  background: #f8fafc;
}

/* Sport Custom Themes */
.sport-theme-table-tennis::before { background: linear-gradient(90deg, #0284c7, #3b82f6); }
.sport-theme-table-tennis .sport-card-icon-wrap { background: linear-gradient(135deg, #e0f2fe, #dbeafe); color: #0284c7; border: 1px solid #bae6fd; }
.sport-theme-table-tennis .sport-card-progress-bar { background: linear-gradient(90deg, #38bdf8, #0284c7); }

.sport-theme-padel::before { background: linear-gradient(90deg, #059669, #10b981); }
.sport-theme-padel .sport-card-icon-wrap { background: linear-gradient(135deg, #d1fae5, #ecfdf5); color: #059669; border: 1px solid #a7f3d0; }
.sport-theme-padel .sport-card-progress-bar { background: linear-gradient(90deg, #34d399, #059669); }

.sport-theme-badminton::before { background: linear-gradient(90deg, #7c3aed, #a855f7); }
.sport-theme-badminton .sport-card-icon-wrap { background: linear-gradient(135deg, #f3e8ff, #faf5ff); color: #7c3aed; border: 1px solid #e9d5ff; }
.sport-theme-badminton .sport-card-progress-bar { background: linear-gradient(90deg, #c084fc, #7c3aed); }

/* Top Header & Icon */
.sport-card-top {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  margin-bottom: 1.2rem;
}
.sport-card-icon-wrap {
  position: relative;
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.sport-card-icon { font-size: 1.8rem; line-height: 1; }
.sport-hub-card:not(.disabled):hover .sport-card-icon-wrap { transform: scale(1.08) rotate(-4deg); }
.sport-card-title-area { flex: 1; min-width: 0; }
.sport-card-title-area h3 {
  margin: 0 0 0.25rem !important;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--navy-950, #0f172a);
  letter-spacing: -0.02em;
}
.sport-card-div-tag { display: inline-block; font-size: 0.79rem; font-weight: 600; color: #64748b; }
.sport-arrow {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #f1f5f9;
  color: #475569;
  display: grid;
  place-items: center;
  font-size: 1.25rem;
  font-weight: 800;
  transition: all 0.25s ease;
}
.sport-hub-card:not(.disabled):hover .sport-arrow { background: var(--navy-950, #0f172a); color: #ffffff; transform: translateX(3px); }

/* Stats & Progress */
.sport-card-stats-bar { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 0.85rem; }
.sport-stat-badge { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.38rem 0.78rem; border-radius: 99px; font-size: 0.78rem; font-weight: 600; line-height: 1; white-space: nowrap; }
.stat-live { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
.stat-offline { background: #f8fafc; color: #64748b; border: 1px solid #e2e8f0; }
.stat-completed { background: #f0fdf4; color: #15803d; border: 1px solid #dcfce7; }
.live-pulse-dot {
  width: 7px; height: 7px; border-radius: 50%; background: #dc2626; flex-shrink: 0;
  box-shadow: 0 0 0 0 rgba(220, 38, 38, .55);
  animation: pulseDotRed 1.4s ease-out infinite;
}
@keyframes pulseDotRed {
  0% { box-shadow: 0 0 0 0 rgba(220, 38, 38, .55); }
  70% { box-shadow: 0 0 0 6px rgba(220, 38, 38, 0); }
  100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0); }
}
.sport-card-progress { width: 100%; height: 6px; background: #f1f5f9; border-radius: 99px; overflow: hidden; margin-bottom: 1.15rem; }
.sport-card-progress-bar { height: 100%; border-radius: 99px; transition: width 0.6s ease; }

/* Next Match Box */
.sport-card-next-match {
  margin-top: auto;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 0.85rem 1.1rem;
  transition: background 0.25s ease, border-color 0.25s ease;
}
.sport-hub-card:not(.disabled):hover .sport-card-next-match { background: #f1f5f9; border-color: #cbd5e1; }
.next-match-header { display: flex; flex-direction: column; align-items: flex-start; gap: 0.2rem; font-size: 0.73rem; font-weight: 600; color: #64748b; margin-bottom: 0.5rem; }
.next-tag { color: #0284c7; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }
.next-time { white-space: nowrap; }
.next-match-teams { font-size: 1.05rem; color: #0f172a; display: flex; align-items: center; gap: 0.5rem; }
.vs-badge { font-size: 0.7rem; font-weight: 800; background: #e2e8f0; color: #475569; padding: 0.15rem 0.4rem; border-radius: 6px; text-transform: uppercase; }
.next-match-empty { display: flex; align-items: center; gap: 0.65rem; color: #64748b; font-size: 0.83rem; font-weight: 500; line-height: 1.4; }
.empty-icon { font-size: 1.2rem; }
.rule-profile{ border-top-color:var(--line); }
.rule-profile summary{ color:var(--blue-800); }
.rule-config-list dt{ color:var(--muted); }

/* Tournament data surfaces */
.table-wrap{
  border:1px solid rgba(255,255,255,.9);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(18px);
}
table.standings th{
  padding:.82rem .85rem;
  border-bottom:0;
  background:linear-gradient(135deg,var(--navy-900),var(--blue-800));
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
table.standings td{ padding:.82rem .85rem; }
table.standings tbody tr{ border-bottom-color:rgba(7,89,133,.09); }
table.standings tbody tr:hover{ background:rgba(224,242,254,.45); }
table.standings tbody tr.rank-1{ background:linear-gradient(90deg,rgba(209,250,229,.78),rgba(255,255,255,.32)); }
table.standings.standings-putra th,table.standings.standings-campuran th{ background:linear-gradient(135deg,var(--navy-900),var(--blue-800),var(--green-700)); }
.rank-pill{ background:var(--blue-100); color:var(--blue-800); }
.rank-pill.gold{ background:var(--grad-accent); }
.group-block h3,.champion-info-name{ color:var(--blue-800); }
.champion-tag{ background:var(--grad-accent); }
.champion-showcase{ border-radius:18px; }
.champion-photo{ border-radius:14px; }
.champion-photo-empty{ background:linear-gradient(135deg,var(--blue-100),var(--green-100)); }
.champion-info-label{ color:var(--muted); }

.calendar-grid{ gap:.85rem; }
.cal-day{ border-radius:16px; background:rgba(255,255,255,.78); }
.cal-day.buffer{ background:rgba(239,246,255,.75); }
.cal-day.weekend-day{ background:rgba(240,253,250,.78); }
.cal-day.final-day{ background:linear-gradient(145deg,rgba(224,242,254,.88),rgba(209,250,229,.88)); }
.cal-day.closing-day{ background:rgba(236,253,245,.78); }
.cal-day.is-today{ box-shadow:0 0 0 2px var(--green-500),var(--shadow-md); }
.cal-day .d-num{ color:var(--blue-800); }
.cal-day .d-name,.cal-empty{ color:var(--muted); }
.cal-day .today-pill{ background:var(--green-700); }
.cal-day .d-tag{ color:var(--green-700); }
.cal-day ul li{ border:1px solid rgba(7,89,133,.06); background:rgba(245,251,252,.9); }

.competition-division-head{ border-bottom-color:var(--line); }
.sport-kicker,.qualification-source,.stage-type-label,.policy-version{ color:var(--green-700); }
.bracket-wrap{ gap:2rem; }
.bracket-node{ border-radius:16px; }
.bracket-node::after{
  content:"";
  position:absolute;
  left:0;
  top:16px;
  bottom:16px;
  width:3px;
  border-radius:4px;
  background:var(--grad-accent);
}
.bracket-node.champion{ background:linear-gradient(135deg,rgba(224,242,254,.9),rgba(209,250,229,.86)); }
.bracket-node.final-node{ border-color:rgba(16,185,129,.3); }

.live-banner{
  border:1px solid rgba(255,255,255,.18);
  border-radius:19px;
  background:var(--grad-hero);
  box-shadow:var(--shadow-md);
  animation:none;
}
.live-banner .pulse-ring{ background:var(--green-300); box-shadow:0 0 0 6px rgba(110,231,183,.14); }
.empty-state{
  border:1px dashed rgba(7,89,133,.22);
  border-radius:18px;
  background:rgba(255,255,255,.5);
  color:var(--muted);
}

/* Match detail, comments, and galleries */
.detail-hero{
  padding:clamp(1.5rem,4vw,3rem);
  border:1px solid rgba(255,255,255,.17);
  border-radius:24px;
  background:
    radial-gradient(circle at 85% 12%,rgba(110,231,183,.2),transparent 28%),
    linear-gradient(135deg,var(--navy-950),var(--blue-800) 56%,var(--green-700));
  box-shadow:var(--shadow-lg);
}
.detail-vs{ max-width:720px; }
.sets-table{ border-radius:18px; }
.comment-item{ border:1px solid rgba(7,89,133,.08); background:rgba(245,251,252,.86); }
.comment-head{ color:var(--blue-800); }
.comment-time,.muted{ color:var(--muted); }
.comment-form{ border-top-color:var(--line); }
.comment-form .req{ color:var(--green-700); }

.gallery-item{ border-radius:18px; box-shadow:var(--shadow-sm); }
.gallery-item:hover{ box-shadow:var(--shadow-lg); }
.gallery-overlay{ background:linear-gradient(to top,rgba(3,32,47,.92),rgba(3,32,47,.08)); }
.gallery-marquee-fade-top{ background:linear-gradient(to bottom,#eef8fa,transparent); }
.gallery-marquee-fade-bottom{ background:linear-gradient(to top,#eef8fa,transparent); }

.floating-comments{ border:1px solid var(--line); border-radius:17px; box-shadow:var(--shadow-lg); }
.fc-header{ background:linear-gradient(135deg,var(--blue-800),var(--green-700)); }
.fc-match{ border-color:var(--line); background:var(--blue-100); color:var(--blue-800); }
.fc-user strong{ color:var(--green-700); }
.fc-text{ border-left-color:var(--green-500); background:#f1fbf8; color:var(--text); }
.vote-trigger-btn{ background:var(--green-700); }
.vp-btn:hover{ border-color:var(--blue-500); }

/* Admin and operational screens */
.admin-shell{ padding:1.4rem; border-radius:20px; }
.admin-shell > h1,.admin-shell > h2,.login-card h1,.scorekeeper-page-head h1,.scorekeeper-console-head h1{ color:var(--navy-900); letter-spacing:-.035em; }
.admin-match-summary{ border-radius:18px; }
.admin-table th,.admin-table td{ padding:.65rem .7rem; border-bottom-color:rgba(7,89,133,.09); }
.admin-table th{ color:var(--blue-800); font-size:.72rem; text-transform:uppercase; letter-spacing:.045em; }
.admin-table tr.date-group-row td{ background:linear-gradient(135deg,var(--navy-900),var(--blue-800)); }
.admin-table tr.row-scheduled td{ background:rgba(239,246,255,.78); }
.admin-table tr.row-live td{ background:rgba(209,250,229,.72); }
.admin-table tr.row-completed td{ background:rgba(236,253,245,.72); }
.admin-table tr.row-postponed td{ background:rgba(254,243,199,.62); }
.admin-player-names .player-line{ color:var(--muted); }
.admin-counts span{
  border:1px solid var(--line);
  background:rgba(255,255,255,.68);
  color:var(--blue-800);
}
.login-card{ max-width:410px; margin:clamp(2rem,8vh,6rem) auto; padding:2.25rem; border-radius:24px; }
.login-card::before{
  content:"";
  display:block;
  width:52px;
  height:5px;
  margin:0 auto 1.5rem;
  border-radius:99px;
  background:var(--grad-accent);
}
.form-grid label,fieldset form > label,.comment-form label,.scorekeeper-filters label,.scorekeeper-reason{ color:var(--blue-800); }
fieldset{
  border:1px solid rgba(255,255,255,.88);
  border-radius:18px;
  background:rgba(255,255,255,.67);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(16px);
}
legend{ color:var(--blue-800); }
.history-item{ color:var(--muted); border-bottom-color:var(--line); }
.notice-zone{ border-color:rgba(14,165,233,.28); background:rgba(239,246,255,.58); }
.danger-zone{ border-color:rgba(245,158,11,.42); background:rgba(255,251,235,.78); }
.danger-zone legend{ color:#92400e; }

.score-input-row input{ background:rgba(248,253,253,.94); }
.score-input-row .set-label{ color:var(--blue-800); }
.score-input-row .score-input-sep{ color:var(--green-600); }

/* Scorekeeper */
.scorekeeper-body{
  background:
    radial-gradient(circle at 5% 0%,rgba(14,165,233,.18),transparent 28rem),
    radial-gradient(circle at 100% 45%,rgba(16,185,129,.14),transparent 30rem),
    #eff9fa;
}
.scorekeeper-kicker{ color:var(--green-700); }
.scorekeeper-status-strip{ gap:.75rem; }
.scorekeeper-status-strip span{
  border:1px solid rgba(255,255,255,.88);
  border-radius:16px;
  background:rgba(255,255,255,.7);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(16px);
}
.scorekeeper-status-strip strong{ color:var(--blue-800); }
.scorekeeper-filters{ border-radius:18px; }
.scorekeeper-match-card{
  border-left:4px solid var(--blue-500);
  border-radius:18px;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.scorekeeper-match-card:hover{ transform:translateY(-2px); border-color:var(--blue-300); box-shadow:var(--shadow-md); }
.scorekeeper-match-card.status-live{ border-left-color:var(--green-500); box-shadow:0 12px 30px rgba(5,150,105,.12); }
.scorekeeper-match-card.status-completed{ border-left-color:#94a3b8; }
.scorekeeper-card-score > strong{ color:var(--blue-800); }
.scorekeeper-card-meta{ color:var(--muted); }

.scorekeeper-console{ padding:1.25rem; border-radius:24px; background:rgba(255,255,255,.7); }
.scorekeeper-console-nav a{ color:var(--blue-800); }
.scorekeeper-console-head{ border-bottom-color:var(--line); }
.scorekeeper-save-state{ border:1px solid rgba(16,185,129,.13); background:rgba(209,250,229,.7); color:var(--green-700); }
.scorekeeper-save-state.is-error,.scorekeeper-error{ border-color:rgba(245,158,11,.26); background:#fffbeb; color:#92400e; }
.scorekeeper-team,.scorekeeper-segments,.scorekeeper-actions,.scorekeeper-history{
  border:1px solid rgba(255,255,255,.9);
  background:rgba(255,255,255,.68);
  box-shadow:0 8px 24px rgba(6,50,71,.045);
  backdrop-filter:blur(14px);
}
.scorekeeper-team{ border-radius:18px; }
.scorekeeper-add{
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  background:linear-gradient(145deg,var(--blue-700),var(--green-700));
  box-shadow:0 12px 26px rgba(5,150,105,.2);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.scorekeeper-add:not(:disabled):hover{ transform:translateY(-2px); filter:saturate(1.08); box-shadow:0 16px 32px rgba(5,150,105,.25); }
.scorekeeper-add:not(:disabled):active{ transform:scale(.98); }
.scorekeeper-add:disabled{ background:linear-gradient(145deg,#8fb8c8,#95bdad); }
.scorekeeper-center-score > div strong{ color:var(--navy-900); }
.scorekeeper-center-score > div b{ color:var(--green-500); }
.scorekeeper-center-score > span,.scorekeeper-center-score > small,.scorekeeper-team > small{ color:var(--muted); }
.scorekeeper-section-title > strong,.scorekeeper-history summary{ color:var(--blue-800); }
.scorekeeper-segment-list > span{ border:1px solid rgba(7,89,133,.07); background:var(--surface-soft); }
.scorekeeper-ready{ background:linear-gradient(135deg,var(--green-100),var(--blue-100)); color:var(--green-700); }

/* Dialogs, announcements, floating actions */
.modal-overlay,.announcement-overlay{ background:rgba(3,32,47,.62); backdrop-filter:blur(9px); }
.modal-box,.announcement-box{
  border:1px solid rgba(255,255,255,.64);
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:0 32px 90px rgba(3,32,47,.3);
  backdrop-filter:blur(24px);
}
.modal-close{ background:rgba(255,255,255,.88); box-shadow:0 8px 20px rgba(3,32,47,.13); }
.modal-close:hover{ background:var(--blue-700); }
.modal-loading{ color:var(--muted); }
.announcement-body h2{ color:var(--blue-800); }
.announcement-progress{ background:var(--grad-accent); }
.floating-btn,.mobile-floating-bell{
  border:1px solid rgba(255,255,255,.2);
  background:var(--grad-accent);
  box-shadow:0 14px 32px rgba(5,150,105,.27);
}
.lightbox-overlay{ background:rgba(3,32,47,.92); backdrop-filter:blur(10px); }

/* Motion and responsive polish */
@media (max-width:960px){
  .header-inner{ min-height:64px; }
  .sport-switcher{ top:64px; }
  .main-nav{
    border:1px solid rgba(255,255,255,.2);
    background:linear-gradient(155deg,rgba(3,32,47,.98),rgba(7,89,133,.97) 62%,rgba(4,120,87,.97));
    box-shadow:0 22px 55px rgba(3,32,47,.26);
    backdrop-filter:blur(22px);
  }
  .main-nav a,.main-nav .nav-logout-button{ color:rgba(255,255,255,.88); }
  .main-nav a:hover,.main-nav .nav-logout-button:hover{ color:#fff; background:rgba(255,255,255,.1); }
  .main-nav a.active{ background:rgba(255,255,255,.15); box-shadow:inset 0 0 0 1px rgba(255,255,255,.16); }
  .nav-bell{ border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.1); color:#fff; }
}

@media (max-width:760px){
  .site-main{ padding:1.25rem .9rem 3rem; }
  .hero{ min-height:0; padding:2.2rem 1.25rem; border-radius:24px; }
  .hero::after{ width:320px; height:320px; }
  .hero h1{ font-size:clamp(2rem,10vw,3.2rem); }
  .hero-meta{ display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .hero-chip{ min-width:0; }
  .stats-row{ grid-template-columns:1fr 1fr; gap:.7rem; }
  .stat-card{ min-height:108px; padding:1rem; }
  .match-grid{ grid-template-columns:1fr; }
  .filter-bar{ align-items:stretch; }
  .filter-field{ flex:1 1 145px; }
  .filter-field select,.filter-field input{ width:100%; min-width:0; }
  .admin-shell{ padding:1rem; }
  .scorekeeper-console{ border-radius:20px; }
}

@media (max-width:600px){
  .header-inner{ padding:.65rem .9rem; }
  .brand-logo{ width:38px; height:38px; }
  .brand-text strong{ font-size:.96rem; }
  .brand-text small{ font-size:.64rem; }
  .sport-switcher-inner{ padding:9px .9rem; }
  .hero-lead{ font-size:.9rem; }
  .hero-chip{ padding:.7rem .75rem; border-radius:13px; }
  .hero-chip .v{ font-size:.86rem; }
  .hero-status{ width:100%; justify-content:center; }
  .hero-quicknav{ gap:.55rem; }
  .hero-quicknav a{ min-height:82px; border-radius:14px; }
  .section-head{ align-items:flex-end; margin-top:2rem; }
  .section-head h2{ max-width:75%; }
  .stats-row{ margin-bottom:1.8rem; }
  .stat-card .num{ font-size:1.8rem; }
  .sub-nav{ flex-wrap:nowrap; overflow-x:auto; padding-bottom:.25rem; }
  .sub-nav a{ flex:0 0 auto; }
  .detail-hero{ border-radius:20px; }
  .modal-overlay{ padding:.5rem; }
  .modal-box{ border-radius:20px; }
  .floating-comments{ right:.75rem; bottom:5.25rem; }
  .scorekeeper-scoreboard{ gap:.45rem; }
  .scorekeeper-team{ border-radius:16px; }
  .scorekeeper-add{ border-radius:14px; }
}

@media (max-width:390px){
  .site-main{ padding-left:.7rem; padding-right:.7rem; }
  .hero{ padding:1.8rem 1rem; border-radius:20px; }
  .hero-meta{ grid-template-columns:1fr; }
  .stats-row{ gap:.55rem; }
  .stat-card{ min-height:100px; }
  .scorekeeper-console{ padding:.68rem; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .site-header,.sport-switcher,.search-bar,.filter-bar,.stat-card,.match-card,.sport-hub-card,.rule-profile-card,.admin-shell,.scorekeeper-console,.scorekeeper-team,.scorekeeper-actions,.modal-box,.announcement-box{ background:#fff; }
}

/* ==============================================================
   FUTURE COMPETITION EXPERIENCE — SCHEDULE + MATCH CENTER
   ============================================================== */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.schedule-body{ --schedule-ink:#062c3e; }
.schedule-body .site-main{ max-width:1320px; padding-top:1.4rem; }
.schedule-body h1,.schedule-body h2,.schedule-body h3,
.match-detail-shell h1,.match-detail-shell h2{
  text-wrap:balance;
  font-feature-settings:"ss01" 1,"ss02" 1;
}
.page-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  color:var(--green-700);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.13em;
  line-height:1;
  text-transform:uppercase;
}
.page-eyebrow i{ width:25px; height:2px; border-radius:2px; background:currentColor; }

.schedule-masthead{
  position:relative;
  isolation:isolate;
  min-height:350px;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);
  align-items:end;
  gap:2rem;
  overflow:hidden;
  padding:clamp(2rem,4.6vw,4.3rem);
  border:1px solid rgba(255,255,255,.2);
  border-radius:30px;
  color:#fff;
  background:
    radial-gradient(circle at 78% 5%,rgba(110,231,183,.24),transparent 25rem),
    linear-gradient(130deg,#032536 0%,#075985 52%,#047857 100%);
  box-shadow:0 30px 70px rgba(3,44,62,.19);
}
.schedule-masthead::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.16;
  background-image:linear-gradient(rgba(255,255,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(120deg,#000 0%,transparent 78%);
}
.schedule-masthead::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:420px;
  height:420px;
  right:-110px;
  bottom:-230px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.02);
}
.schedule-masthead .page-eyebrow{ color:var(--green-300); }
.schedule-masthead-copy{ max-width:780px; }
.schedule-masthead h1{
  max-width:760px;
  margin:.9rem 0 1rem;
  color:#fff;
  font-size:clamp(2.8rem,6.4vw,6rem);
  line-height:.92;
  letter-spacing:-.065em;
}
.schedule-masthead h1 span{ color:var(--green-300); }
.schedule-masthead-copy > p{ max-width:620px; margin:0; color:rgba(255,255,255,.72); font-size:clamp(.92rem,1.5vw,1.08rem); }
.schedule-progress{
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1rem;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  background:rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(18px);
}
.schedule-progress-ring{
  --angle:calc(var(--progress) * 3.6deg);
  position:relative;
  flex:0 0 auto;
  width:88px;
  height:88px;
  display:grid;
  place-content:center;
  border-radius:50%;
  text-align:center;
  background:radial-gradient(circle closest-side,#075473 73%,transparent 74% 99%),conic-gradient(var(--green-300) var(--angle),rgba(255,255,255,.14) 0);
}
.schedule-progress-ring strong{ font-size:1.25rem; line-height:1; }
.schedule-progress-ring small{ margin-top:.2rem; color:rgba(255,255,255,.63); font-size:.56rem; text-transform:uppercase; letter-spacing:.08em; }
.schedule-progress > div:last-child{ display:flex; flex-direction:column; gap:.2rem; }
.schedule-progress > div:last-child span{ color:var(--green-300); font-size:.64rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.schedule-progress > div:last-child strong{ font-size:.9rem; }
.schedule-progress > div:last-child small{ color:rgba(255,255,255,.6); font-size:.68rem; line-height:1.4; }

.schedule-nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:1.2rem 0;
}
.schedule-nav-row .sub-nav{ margin:0; }
.schedule-pulse{ display:flex; align-items:center; gap:.55rem; }
.schedule-pulse span{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  min-height:38px;
  padding:.45rem .7rem;
  border:1px solid var(--line);
  border-radius:11px;
  background:rgba(255,255,255,.66);
  color:var(--muted);
  font-size:.7rem;
  font-weight:700;
  backdrop-filter:blur(12px);
}
.schedule-pulse span strong{ color:var(--schedule-ink); }
.schedule-pulse i{ width:7px; height:7px; border-radius:50%; background:#94a3b8; }
.schedule-pulse i.is-live{ background:var(--green-500); box-shadow:0 0 0 4px rgba(16,185,129,.12); }
.schedule-pulse i.is-upcoming{ background:var(--blue-500); }
.schedule-pulse i.is-done{ background:#64748b; }

.schedule-workbench{
  margin:1.25rem 0 2.5rem;
  padding:1.35rem;
  border:1px solid rgba(255,255,255,.9);
  border-radius:24px;
  background:rgba(255,255,255,.72);
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(22px) saturate(125%);
}
.schedule-workbench-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.schedule-workbench-head h2{ margin:.35rem 0 .2rem; color:var(--schedule-ink); font-size:clamp(1.2rem,2.4vw,1.65rem); letter-spacing:-.03em; }
.schedule-workbench-head p{ margin:0; color:var(--muted); font-size:.78rem; }
.active-filter-count{
  padding:.4rem .65rem;
  border-radius:999px;
  background:var(--green-100);
  color:var(--green-700);
  font-size:.68rem;
  font-weight:800;
}
.schedule-search{
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.55rem;
  border:1px solid rgba(7,89,133,.12);
  border-radius:17px;
  background:rgba(245,251,252,.9);
}
.schedule-search-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 auto;
  border-radius:12px;
  background:linear-gradient(135deg,var(--blue-100),var(--green-100));
  color:var(--blue-800);
  font-size:1.45rem;
  line-height:1;
}
.schedule-search input[type="search"]{
  min-width:0;
  flex:1;
  min-height:46px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font:600 .9rem var(--font-body);
}
.schedule-search input[type="search"]::placeholder{ color:#8aa3ad; }
.schedule-search .btn{ flex:0 0 auto; }
.schedule-filters{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr)) auto;
  align-items:end;
  gap:.7rem;
  margin-top:.8rem;
}
.schedule-filter-field{ display:flex; flex-direction:column; gap:.35rem; min-width:0; }
.schedule-filter-field > span{ color:var(--muted); font-size:.65rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.schedule-filter-field select{
  width:100%;
  min-height:46px;
  padding:.55rem .7rem;
  border:1px solid rgba(7,89,133,.13);
  border-radius:12px;
  background:#fff;
  color:var(--schedule-ink);
  font:700 .78rem var(--font-body);
}
.schedule-filter-field select:focus{ outline:none; border-color:var(--blue-500); box-shadow:0 0 0 4px var(--ring); }
.schedule-reset{ min-height:46px; }

.schedule-results-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:.9rem;
  border-bottom:1px solid var(--line);
}
.schedule-results-head h2{ margin:.35rem 0 0; color:var(--schedule-ink); font-size:clamp(1.5rem,3vw,2.2rem); letter-spacing:-.045em; }
.schedule-results-head p{ margin:0; color:var(--muted); font-size:.78rem; }
.schedule-results-head p strong{ color:var(--blue-800); font-size:1rem; }
.schedule-results-head .result-count{ color:var(--blue-800); font-weight:800; }
.schedule-timeline{ position:relative; padding-top:.4rem; }
.schedule-timeline::before{
  content:"";
  position:absolute;
  top:2rem;
  bottom:0;
  left:24px;
  width:1px;
  background:linear-gradient(var(--blue-300),var(--green-300),transparent);
}
.schedule-day{ position:relative; padding:1.7rem 0 1rem 4.8rem; }
.schedule-day-head{
  display:flex;
  align-items:center;
  gap:.8rem;
  margin-bottom:.9rem;
}
.schedule-day-index{
  position:absolute;
  left:0;
  display:grid;
  place-items:center;
  width:49px;
  height:49px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:15px;
  background:linear-gradient(135deg,#fff,var(--blue-100));
  color:var(--blue-800);
  box-shadow:var(--shadow-sm);
  font-size:.73rem;
  font-weight:800;
  letter-spacing:.06em;
}
.schedule-day-head > div:nth-child(2){ min-width:0; }
.schedule-day-head span{ display:block; color:var(--green-700); font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.schedule-day-head h3{ margin:.12rem 0 0; color:var(--schedule-ink); font-size:1rem; letter-spacing:-.02em; }
.schedule-day-head small{ margin-left:auto; padding:.36rem .6rem; border-radius:999px; background:var(--blue-100); color:var(--blue-800); font-size:.65rem; font-weight:800; }
.schedule-match-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }

/* Competition match card */
.competition-match-card{
  display:flex;
  flex-direction:column;
  min-height:300px;
  padding:0;
  border:1px solid rgba(255,255,255,.92);
  border-radius:21px;
  background:rgba(255,255,255,.75);
  box-shadow:0 10px 30px rgba(6,50,71,.075);
  backdrop-filter:blur(18px);
}
.competition-match-card::before{ width:0; }
.competition-match-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  opacity:0;
  background:radial-gradient(circle at 50% 110%,rgba(16,185,129,.14),transparent 50%);
  transition:opacity .2s ease;
}
.competition-match-card:hover::after{ opacity:1; }
.competition-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.65rem;
  padding:1rem 1rem .75rem;
  border-bottom:1px solid rgba(7,89,133,.08);
}
.competition-card-id{ display:flex; align-items:center; gap:.65rem; min-width:0; }
.competition-card-id > span{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:0 0 auto;
  border-radius:11px;
  background:linear-gradient(135deg,var(--blue-100),var(--green-100));
  color:var(--blue-800);
  font-size:.66rem;
  font-weight:800;
}
.competition-card-id > div{ min-width:0; }
.competition-card-id strong{ display:block; overflow:hidden; color:var(--schedule-ink); font-size:.75rem; text-overflow:ellipsis; white-space:nowrap; }
.competition-card-id small{ display:block; margin-top:.15rem; color:var(--muted); font-size:.6rem; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.match-status-cluster{ display:flex; justify-content:flex-end; gap:.3rem; flex-wrap:wrap; }
.competition-duel{
  display:grid;
  grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);
  align-items:center;
  gap:.55rem;
  flex:1;
  padding:1.15rem 1rem;
}
.competition-team{ min-width:0; }
.competition-team-b{ text-align:right; }
.competition-team-mark{ display:flex; flex-direction:column; align-items:flex-start; gap:.2rem; }
.competition-team-b .competition-team-mark{ align-items:flex-end; }
.competition-team .player-names{ margin-top:.65rem; gap:.2rem; }
.competition-team .player-line{ color:var(--schedule-ink); font-size:.69rem; font-weight:700; }
.competition-team .player-line + .player-line{ color:var(--muted); font-weight:550; }
.competition-team-b .player-line{ text-align:right; }
.competition-score{ min-width:0; text-align:center; }
.competition-score > div:not(.competition-vs){ display:flex; align-items:center; justify-content:center; gap:.25rem; }
.competition-score strong{ color:var(--navy-900); font-size:1.85rem; font-variant-numeric:tabular-nums; letter-spacing:-.05em; }
.competition-score > div span{ color:var(--green-500); font-size:1.1rem; font-weight:800; }
.competition-score small{ display:block; margin-top:.3rem; color:var(--muted); font-size:.55rem; font-weight:750; line-height:1.3; }
.competition-vs{
  display:grid;
  place-items:center;
  width:45px;
  height:45px;
  margin:auto;
  border:1px solid rgba(7,89,133,.1);
  border-radius:50%;
  background:linear-gradient(135deg,var(--blue-100),var(--green-100));
  color:var(--blue-800);
  font-size:.7rem;
  font-weight:900;
}
.competition-card-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  padding:.75rem 1rem;
  border-top:1px solid rgba(7,89,133,.08);
  background:rgba(245,251,252,.62);
}
.competition-card-when{ display:flex; align-items:center; gap:.55rem; min-width:0; }
.match-time{
  padding:.42rem .48rem;
  border-radius:9px;
  background:var(--navy-950);
  color:#fff;
  font-size:.72rem;
  font-weight:850;
  font-variant-numeric:tabular-nums;
}
.competition-card-when > span:last-child{ display:flex; flex-direction:column; min-width:0; }
.competition-card-when strong{ overflow:hidden; max-width:130px; color:var(--schedule-ink); font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
.competition-card-when small{ color:var(--muted); font-size:.57rem; }
.competition-card-open{ display:flex; align-items:center; justify-content:flex-end; gap:.55rem; color:var(--green-700); font-size:.62rem; font-weight:800; white-space:nowrap; }
.competition-card-open .comment-count{ padding:.28rem .42rem; border-radius:7px; background:var(--green-100); }
.competition-card-open b{ font-size:.9rem; }
.schedule-empty{ padding:4rem 1rem; }
.schedule-empty h3{ color:var(--schedule-ink); }
.schedule-empty p{ color:var(--muted); }

/* Match center modal and full detail page */
.modal-overlay{
  padding:1.25rem;
  background:rgba(2,24,36,.7);
  backdrop-filter:blur(14px) saturate(115%);
}
.modal-box{
  width:min(1180px,100%);
  max-width:1180px;
  max-height:92vh;
  border:1px solid rgba(255,255,255,.42);
  border-radius:28px;
  background:rgba(244,251,252,.96);
  box-shadow:0 40px 110px rgba(2,24,36,.38);
}
.modal-box:focus{ outline:none; }
.modal-close{
  top:1rem;
  right:1rem;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(3,32,47,.56);
  color:#fff;
  box-shadow:0 10px 25px rgba(3,32,47,.18);
  backdrop-filter:blur(10px);
}
.modal-close:hover{ background:var(--green-700); }
.modal-body{ padding:0; scrollbar-color:var(--blue-300) transparent; }
.modal-body::-webkit-scrollbar-thumb{ background:linear-gradient(var(--blue-300),var(--green-300)); }
.modal-loading{
  min-height:420px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  color:var(--muted);
}
.modal-loading i{
  width:42px;
  height:42px;
  margin-bottom:.6rem;
  border:3px solid var(--blue-100);
  border-top-color:var(--green-500);
  border-radius:50%;
  animation:matchLoader .8s linear infinite;
}
.modal-loading strong{ color:var(--navy-900); font-size:1rem; }
.modal-loading span{ font-size:.75rem; font-weight:550; }
.modal-loading.is-error::before{ content:"!"; display:grid; place-items:center; width:42px; height:42px; margin-bottom:.5rem; border-radius:50%; background:#fef3c7; color:#92400e; font-weight:900; }
@keyframes matchLoader{ to{ transform:rotate(360deg); } }

.match-detail-shell{ width:100%; }
.modal-body .match-detail-shell{ padding:0 0 1.5rem; }
.match-arena,
.modal-body .match-arena{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin:0;
  padding:clamp(1.4rem,3.5vw,3rem);
  border:0;
  border-radius:0 0 28px 28px;
  background:
    radial-gradient(circle at 82% 10%,rgba(110,231,183,.2),transparent 27rem),
    radial-gradient(circle at 15% 100%,rgba(125,211,252,.16),transparent 25rem),
    linear-gradient(135deg,#032536,#075985 54%,#047857);
  box-shadow:none;
  color:#fff;
  text-align:left;
}
.site-main > .match-detail-shell .match-arena{ border-radius:28px; box-shadow:var(--shadow-lg); }
.match-arena::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.13;
  background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(135deg,#000,transparent 78%);
}
.match-arena-head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-right:3rem; }
.match-arena-badges{ display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.match-serial{ color:rgba(255,255,255,.62); font-size:.65rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.match-arena-title{ margin:1.5rem 0 1rem; text-align:center; }
.match-arena-title > span{ color:var(--green-300); font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.match-arena-title h1,.modal-body .match-arena-title h1{ margin:.35rem 0 .15rem; color:#fff; font-size:clamp(1.65rem,3.7vw,2.9rem); line-height:1.05; letter-spacing:-.045em; }
.match-arena-title p{ margin:0; color:rgba(255,255,255,.6); font-size:.72rem; font-weight:700; }
.match-arena .flash{ max-width:700px; margin:.8rem auto; }
.match-arena .detail-vs{
  display:grid;
  grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);
  align-items:center;
  gap:clamp(1rem,3vw,2.5rem);
  max-width:920px;
  margin:1.4rem auto;
}
.match-arena .detail-team{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:0;
  padding:1.2rem 1rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:20px;
  background:rgba(255,255,255,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(12px);
}
.match-arena .team-chip-wrapper{ position:relative; display:inline-block; }
.match-arena .team-chip.lg{ min-width:64px; min-height:38px; border-radius:11px; font-size:1rem; }
.detail-team-role{ margin-top:.85rem; color:var(--green-300); font-size:.58rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.detail-player-names{ width:100%; margin-top:.42rem; gap:.2rem; }
.detail-player-names .player-line{ color:#fff; font-size:.76rem; font-weight:750; text-align:center; }
.detail-player-names .player-line + .player-line{ color:rgba(255,255,255,.62); font-weight:550; }
.match-arena-score{ text-align:center; }
.match-arena-score .score-row{ gap:.55rem; margin:0; }
.match-arena-score .score-num{ color:#fff; font-size:clamp(3rem,7vw,5.5rem); line-height:.85; font-variant-numeric:tabular-nums; letter-spacing:-.08em; }
.match-arena-score .score-sep{ color:var(--green-300); font-size:2.3rem; }
.match-arena-score .x{
  display:grid;
  place-items:center;
  width:86px;
  height:86px;
  margin:auto;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  background:rgba(3,32,47,.22);
  color:#fff;
  font-size:1rem;
  font-weight:900;
}
.match-arena-score > small{ display:block; margin-top:.7rem; color:var(--green-300); font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.match-arena .team-vote-stats{ margin-top:.6rem; }
.match-arena .vote-bar-bg{ background:rgba(255,255,255,.14); }
.match-arena-meta{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  max-width:780px;
  margin:1.5rem auto 0;
  border:1px solid rgba(255,255,255,.13);
  border-radius:16px;
  background:rgba(3,32,47,.17);
  backdrop-filter:blur(12px);
}
.match-arena-meta span{ display:flex; flex-direction:column; align-items:center; gap:.16rem; padding:.8rem; text-align:center; }
.match-arena-meta span + span{ border-left:1px solid rgba(255,255,255,.11); }
.match-arena-meta small{ color:var(--green-300); font-size:.55rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.match-arena-meta strong{ color:#fff; font-size:.74rem; }

.match-detail-layout{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);
  gap:1.1rem;
  padding:1.25rem;
}
.site-main > .match-detail-shell .match-detail-layout{ padding:1.4rem 0; }
.match-detail-main,.match-detail-aside{ min-width:0; }
.detail-section-head{ margin:1rem 0 .65rem; }
.detail-section-head > div > span{ color:var(--green-700); font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.detail-section-head h2{ margin:.15rem 0 0; color:var(--navy-900); font-size:1.1rem; letter-spacing:-.025em; }
.match-detail-main .sets-table{ margin-top:0; }
.match-detail-main .table-wrap{ border-radius:16px; box-shadow:var(--shadow-sm); }
.match-detail-main table.standings{ min-width:0; }
.match-detail-main table.standings th{ background:linear-gradient(135deg,var(--navy-900),var(--blue-800)); }
.match-documentation-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:.65rem; }
.match-documentation-item{ overflow:hidden; aspect-ratio:1; border:1px solid rgba(255,255,255,.85); border-radius:15px; box-shadow:var(--shadow-sm); }
.match-documentation-item img{ width:100%; height:100%; object-fit:cover; cursor:pointer; transition:transform .2s ease; }
.match-documentation-item:hover img{ transform:scale(1.04); }
.match-note-panel{ padding:1rem; border:1px solid var(--line); border-left:3px solid var(--green-500); border-radius:14px; background:rgba(255,255,255,.72); color:var(--text); font-size:.82rem; line-height:1.65; }
.match-waiting-panel{
  position:relative;
  min-height:210px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  padding:1.5rem;
  border:1px solid rgba(255,255,255,.9);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(224,242,254,.76),rgba(209,250,229,.66));
  box-shadow:var(--shadow-sm);
}
.match-waiting-panel::after{ content:""; position:absolute; right:-60px; bottom:-80px; width:190px; height:190px; border:1px solid rgba(7,89,133,.1); border-radius:50%; box-shadow:0 0 0 38px rgba(7,89,133,.025); }
.match-waiting-panel > span{ color:var(--green-700); font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.match-waiting-panel h2{ margin:.35rem 0 .45rem; color:var(--navy-900); font-size:1.35rem; letter-spacing:-.035em; }
.match-waiting-panel p{ max-width:480px; margin:0; color:var(--muted); font-size:.78rem; }
.match-waiting-panel > div{ display:flex; flex-direction:column; margin-top:1rem; }
.match-waiting-panel > div strong{ color:var(--blue-800); }
.match-waiting-panel > div small{ color:var(--muted); font-size:.62rem; }
.match-detail-aside .detail-section-head{ margin-top:0; }
.match-engagement-panel{ position:sticky; top:145px; padding:1rem; border-radius:18px; }
.match-engagement-intro{ color:var(--muted); font-size:.75rem; line-height:1.55; }
.match-engagement-panel .comment-list{ max-height:300px; }
.match-engagement-panel .comment-item{ padding:.75rem; border-radius:12px; }
.match-engagement-panel .comment-text{ font-size:.76rem; }
.match-engagement-panel .comment-form{ margin-top:.8rem; }
.comment-empty{ display:flex; flex-direction:column; gap:.2rem; padding:1rem; border:1px dashed var(--line); border-radius:13px; background:var(--surface-soft); text-align:center; }
.comment-empty strong{ color:var(--navy-900); font-size:.78rem; }
.comment-empty span{ color:var(--muted); font-size:.68rem; }
.comment-closed{ margin:1rem 0 0; padding:.75rem; border-radius:11px; background:var(--blue-100); color:var(--blue-800); font-size:.72rem; font-weight:700; text-align:center; }
.match-detail-shell > .section-head,.match-detail-shell > .admin-shell,.match-detail-shell > .detail-actions{ margin-left:1.25rem; margin-right:1.25rem; }
.site-main > .match-detail-shell > .section-head,.site-main > .match-detail-shell > .admin-shell,.site-main > .match-detail-shell > .detail-actions{ margin-left:0; margin-right:0; }
.match-detail-shell > .admin-shell{ border-radius:20px; }
.match-detail-shell .detail-actions{ padding-top:.2rem; }
.floating-actions{ bottom:1.5rem; right:1.5rem; }
.floating-btn{ width:46px; height:46px; }

@media (max-width:1080px){
  .schedule-match-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .schedule-masthead{ grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); }
  .match-arena .detail-vs{ grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr); }
}

@media (max-width:820px){
  .schedule-masthead{ min-height:0; grid-template-columns:1fr; align-items:start; border-radius:24px; }
  .schedule-masthead h1{ max-width:600px; }
  .schedule-progress{ max-width:430px; }
  .schedule-nav-row{ align-items:flex-start; flex-direction:column; }
  .schedule-pulse{ width:100%; overflow-x:auto; scrollbar-width:none; }
  .schedule-pulse::-webkit-scrollbar{ display:none; }
  .schedule-pulse span{ flex:0 0 auto; }
  .schedule-filters{ grid-template-columns:1fr 1fr; }
  .schedule-reset{ grid-column:1/-1; }
  .schedule-match-grid{ grid-template-columns:1fr 1fr; }
  .match-detail-layout{ grid-template-columns:1fr; }
  .match-engagement-panel{ position:static; }
  .match-arena .detail-vs{ grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr); gap:.8rem; }
}

@media (max-width:600px){
  .schedule-body .site-main{ padding-top:.75rem; }
  .schedule-masthead{ padding:2rem 1.2rem; border-radius:21px; }
  .schedule-masthead h1{ margin-top:.7rem; font-size:clamp(2.8rem,15vw,4.2rem); }
  .schedule-masthead-copy > p{ font-size:.86rem; }
  .schedule-progress{ padding:.8rem; border-radius:17px; }
  .schedule-progress-ring{ width:72px; height:72px; }
  .schedule-progress-ring strong{ font-size:1rem; }
  .schedule-nav-row{ margin:.85rem 0; }
  .schedule-nav-row .sub-nav{ width:100%; }
  .schedule-pulse{ padding-bottom:.15rem; }
  .schedule-workbench{ margin-bottom:2rem; padding:1rem; border-radius:20px; }
  .schedule-workbench-head{ align-items:flex-start; flex-direction:column; }
  .schedule-search{ display:grid; grid-template-columns:42px minmax(0,1fr); }
  .schedule-search input[type="search"]{ min-height:42px; }
  .schedule-search .btn{ grid-column:1/-1; width:100%; }
  .schedule-filters{ grid-template-columns:1fr 1fr; gap:.6rem; }
  .schedule-filter-field select{ font-size:.72rem; }
  .schedule-results-head{ align-items:flex-start; flex-direction:column; }
  .schedule-timeline::before{ left:18px; }
  .schedule-day{ padding:1.35rem 0 .7rem 3.3rem; }
  .schedule-day-index{ width:38px; height:38px; border-radius:12px; font-size:.62rem; }
  .schedule-day-head{ min-height:38px; }
  .schedule-day-head h3{ font-size:.9rem; }
  .schedule-match-grid{ grid-template-columns:1fr; }
  .competition-match-card{ min-height:284px; }
  .competition-card-id > span{ width:36px; height:36px; }
  .competition-duel{ grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr); padding:1rem .85rem; }
  .competition-score strong{ font-size:1.7rem; }
  .competition-card-foot{ padding:.7rem .85rem; }
  .competition-card-when strong{ max-width:110px; }
  .competition-card-open .comment-count{ display:none; }

  .modal-overlay{ padding:0; align-items:flex-end; }
  .modal-box{ max-height:96vh; border-width:1px 0 0; border-radius:26px 26px 0 0; }
  .modal-close{ top:.75rem; right:.75rem; }
  .modal-body .match-arena,.match-arena{ padding:1.25rem .85rem 1rem; border-radius:0 0 22px 22px; }
  .site-main > .match-detail-shell .match-arena{ border-radius:22px; }
  .match-arena-head{ padding-right:3rem; }
  .match-serial{ display:none; }
  .match-arena-title{ margin:1.25rem 0 .8rem; }
  .match-arena-title h1,.modal-body .match-arena-title h1{ font-size:1.45rem; }
  .match-arena .detail-vs{ grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr); gap:.45rem; margin:.9rem auto; }
  .match-arena .detail-team{ min-height:152px; padding:.85rem .45rem; border-radius:16px; }
  .match-arena .team-chip.lg{ min-width:54px; min-height:34px; font-size:.84rem; }
  .detail-player-names .player-line{ font-size:.65rem; }
  .match-arena-score .score-num{ font-size:2.8rem; }
  .match-arena-score .score-sep{ font-size:1.45rem; }
  .match-arena-score .x{ width:58px; height:58px; font-size:.75rem; }
  .match-arena-score > small{ font-size:.48rem; }
  .match-arena-meta{ margin-top:1rem; border-radius:13px; }
  .match-arena-meta span{ padding:.65rem .35rem; }
  .match-arena-meta small{ font-size:.48rem; }
  .match-arena-meta strong{ font-size:.6rem; }
  .match-detail-layout{ gap:.6rem; padding:.85rem; }
  .match-detail-main table.standings{ min-width:360px; }
  .match-detail-shell > .section-head,.match-detail-shell > .admin-shell,.match-detail-shell > .detail-actions{ margin-left:.85rem; margin-right:.85rem; }
  .site-main > .match-detail-shell > .section-head,.site-main > .match-detail-shell > .admin-shell,.site-main > .match-detail-shell > .detail-actions{ margin-left:0; margin-right:0; }
  .match-engagement-panel{ padding:.85rem; }
  .floating-actions{ bottom:1rem; right:1rem; }
}

@media (max-width:380px){
  .schedule-masthead h1{ font-size:2.7rem; }
  .schedule-filters{ grid-template-columns:1fr; }
  .schedule-reset{ grid-column:auto; }
  .schedule-day{ padding-left:3rem; }
  .schedule-timeline::before{ left:16px; }
  .schedule-day-index{ width:34px; height:34px; }
  .competition-duel{ grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr); gap:.35rem; }
  .competition-team .player-line{ font-size:.63rem; }
  .competition-score strong{ font-size:1.55rem; }
  .match-arena .detail-vs{ grid-template-columns:minmax(0,1fr) 60px minmax(0,1fr); }
  .match-arena-score .score-num{ font-size:2.4rem; }
}

/* =========================================================
   SIGNATURE ARENA HEADER
   A two-level competition command bar shared by every route.
   ========================================================= */
:root{ --header-h:74px; }

.site-header{
  z-index:80;
  border:0;
  background:transparent;
  box-shadow:0 12px 34px rgba(3,32,47,.09);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.header-rail{
  position:relative;
  min-height:30px;
  overflow:hidden;
  color:rgba(255,255,255,.74);
  background:
    linear-gradient(90deg,rgba(14,165,233,.16),transparent 32%,rgba(16,185,129,.15)),
    var(--navy-950);
}
.header-rail::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.24;
  pointer-events:none;
  background-image:repeating-linear-gradient(115deg,transparent 0 42px,rgba(255,255,255,.13) 43px,transparent 44px 86px);
}
.header-rail-inner{
  position:relative;
  z-index:1;
  width:min(100%,1360px);
  min-height:30px;
  margin:0 auto;
  padding:0 1.35rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  font-size:.54rem;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.header-system-mark,.header-online{ display:inline-flex; align-items:center; gap:.55rem; }
.header-system-mark i{
  width:18px;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--blue-500),var(--green-500));
  box-shadow:0 0 12px rgba(16,185,129,.72);
}
.header-rail-context{ display:flex; align-items:center; gap:1rem; }
.header-rail-context > span:not(:first-child){ padding-left:1rem; border-left:1px solid rgba(255,255,255,.13); }
.header-online{ color:#b9f9df; }
.header-online i{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--green-300);
  box-shadow:0 0 0 4px rgba(110,231,183,.1),0 0 12px rgba(110,231,183,.8);
  animation:pulseDot 1.8s ease-out infinite;
}
.header-deck{
  position:relative;
  border-bottom:1px solid rgba(255,255,255,.82);
  background:rgba(247,253,253,.86);
  backdrop-filter:blur(24px) saturate(160%);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
}
.header-deck::after{
  content:"";
  position:absolute;
  right:0;
  bottom:-1px;
  width:min(31vw,440px);
  height:2px;
  background:linear-gradient(90deg,transparent,var(--blue-500) 48%,var(--green-500));
}
.header-inner{
  width:min(100%,1360px);
  min-height:74px;
  margin:0 auto;
  padding:.55rem 1.35rem;
  gap:1.1rem;
}
.brand{
  flex:1 1 270px;
  max-width:330px;
  gap:.85rem;
  overflow:visible;
}
.brand-emblem{
  position:relative;
  width:52px;
  height:52px;
  flex:0 0 52px;
  display:grid;
  place-items:center;
}
.brand-emblem::before{
  content:"";
  position:absolute;
  inset:2px;
  border:1px solid rgba(2,132,199,.22);
  border-radius:17px 8px 17px 8px;
  transform:rotate(7deg);
  transition:transform .3s ease,border-color .3s ease;
}
.brand:hover .brand-emblem::before{ transform:rotate(-2deg); border-color:rgba(5,150,105,.4); }
.brand-logo{
  position:relative;
  z-index:1;
  width:44px;
  height:44px;
  padding:5px;
  border-radius:14px 7px 14px 7px;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 22px rgba(2,132,199,.15),inset 0 0 0 1px rgba(2,132,199,.08);
}
.brand:hover .brand-logo{ transform:translateY(-1px); }
.brand-edition{
  position:absolute;
  z-index:2;
  right:-3px;
  bottom:-1px;
  min-width:19px;
  height:19px;
  display:grid;
  place-items:center;
  border:2px solid #f7fdfd;
  border-radius:6px 3px 6px 3px;
  color:#fff;
  background:var(--green-600);
  font-size:.48rem;
  font-weight:900;
  letter-spacing:.02em;
}
.brand-text{ gap:.05rem; line-height:1.05; }
.brand-kicker{
  color:var(--green-700);
  font-size:.5rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.brand-text strong{
  color:var(--navy-950);
  font-size:1.03rem;
  font-weight:900;
  letter-spacing:-.025em;
}
.brand-text small{
  display:flex;
  align-items:center;
  gap:.42rem;
  color:var(--muted);
  font-size:.57rem;
  font-weight:650;
  letter-spacing:.015em;
}
.brand-text small i{ width:3px; height:3px; flex:none; border-radius:50%; background:var(--blue-500); }

.main-nav{
  flex:0 0 auto;
  display:flex;
  flex-wrap:nowrap;
  align-items:stretch;
  gap:.15rem;
  padding:.3rem;
  border:1px solid rgba(14,116,144,.11);
  border-radius:18px 9px 18px 9px;
  background:rgba(255,255,255,.54);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 8px 24px rgba(6,50,71,.055);
}
.main-nav a,.main-nav .nav-logout-button{
  position:relative;
  min-width:54px;
  min-height:40px;
  padding:.5rem .85rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.25rem;
  border-radius:13px 6px 13px 6px;
  color:#315668;
  font-size:.82rem;
  font-weight:700;
  line-height:1;
  transition:color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.main-nav a:hover,.main-nav .nav-logout-button:hover{
  color:var(--blue-800);
  background:rgba(224,242,254,.72);
  transform:translateY(-1px);
}
.main-nav a.active{
  color:#fff;
  background:linear-gradient(138deg,var(--blue-700),var(--green-700));
  box-shadow:0 10px 24px rgba(5,150,105,.2),inset 0 1px 0 rgba(255,255,255,.2);
}
.main-nav a.active::after{
  content:"";
  position:absolute;
  right:7px;
  top:7px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#b7ffe2;
  box-shadow:0 0 0 3px rgba(183,255,226,.13),0 0 9px #b7ffe2;
}
.main-nav .nav-admin{ color:#fff; background:var(--navy-950); }
.main-nav .nav-admin::before{ color:rgba(255,255,255,.46); }
.main-nav .live-dot{
  position:absolute;
  right:8px;
  bottom:9px;
  width:6px;
  height:6px;
  background:var(--green-500);
  box-shadow:0 0 0 3px rgba(16,185,129,.12);
}
.main-nav a.active .live-dot{ background:#b7ffe2; }
.nav-bell{
  width:44px;
  height:48px;
  margin:0 0 0 .05rem;
  border-radius:13px 6px 13px 6px;
  background:rgba(255,255,255,.74);
}
.nav-bell:hover{ color:var(--green-700); background:var(--green-100); transform:translateY(-1px) rotate(0); }
.nav-toggle small{
  color:var(--blue-800);
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sport-switcher{ top:var(--header-h); }

@media (max-width:1100px) and (min-width:861px){
  .header-inner{ padding-inline:1rem; gap:.7rem; }
  .brand{ flex-basis:220px; max-width:255px; gap:.65rem; }
  .brand-emblem{ width:46px; height:46px; flex-basis:46px; }
  .brand-logo{ width:40px; height:40px; }
  .brand-text small{ display:none; }
  .main-nav a,.main-nav .nav-logout-button{ min-width:56px; padding-inline:.55rem; font-size:.7rem; }
}

@media (max-width:860px){
  :root{ --header-h:64px; }
  body.nav-open{ overflow:hidden; }
  body.nav-open::after{
    content:"";
    position:fixed;
    inset:0;
    z-index:60;
    background:rgba(3,32,47,.36);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
  }
  .header-rail,.header-rail-inner{ min-height:24px; }
  .header-rail-inner{ padding-inline:.9rem; font-size:.46rem; }
  .header-rail-context > span:not(.header-online){ display:none; }
  .header-deck{ z-index:1; }
  .header-inner{ min-height:66px; padding:.45rem .9rem; }
  .brand{ flex:1 1 auto; max-width:calc(100% - 74px); gap:.65rem; }
  .brand-emblem{ width:44px; height:44px; flex-basis:44px; }
  .brand-logo{ width:39px; height:39px; padding:4px; }
  .brand-edition{ right:-2px; bottom:-1px; min-width:17px; height:17px; font-size:.42rem; }
  .brand-kicker{ font-size:.42rem; }
  .brand-text strong{ font-size:.9rem; }
  .brand-text small{ display:none; }
  .nav-toggle{
    position:relative;
    z-index:2;
    min-width:62px;
    min-height:44px;
    padding:.45rem .55rem;
    display:grid;
    grid-template-columns:22px auto;
    grid-template-rows:repeat(3,3px);
    align-content:center;
    align-items:center;
    column-gap:.5rem;
    row-gap:4px;
    border-radius:14px 7px 14px 7px;
  }
  .nav-toggle span{ grid-column:1; width:22px; height:2px; }
  .nav-toggle small{ grid-column:2; grid-row:1 / -1; }
  .main-nav{
    position:absolute;
    top:calc(100% + 8px);
    left:.75rem;
    right:.75rem;
    z-index:3;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.45rem;
    max-height:none;
    padding:.7rem;
    overflow:visible;
    border:1px solid rgba(255,255,255,.17);
    border-radius:24px 12px 24px 12px;
    background:linear-gradient(150deg,rgba(3,32,47,.985),rgba(7,89,133,.98) 58%,rgba(4,120,87,.98));
    box-shadow:0 26px 65px rgba(3,32,47,.34);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-9px) scale(.985);
    transform-origin:top right;
    transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
  }
  .main-nav.open{
    max-height:none;
    padding:.7rem;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
  }
  .main-nav a,.main-nav .nav-logout-button{
    width:100%;
    min-height:62px;
    padding:.72rem .8rem;
    border:1px solid rgba(255,255,255,.08);
    border-radius:16px 7px 16px 7px;
    color:rgba(255,255,255,.84);
    background:rgba(255,255,255,.055);
    font-size:.78rem;
  }
  .main-nav a::before,.main-nav .nav-logout-button::before{ color:rgba(255,255,255,.42); }
  .main-nav a:hover,.main-nav .nav-logout-button:hover{ color:#fff; background:rgba(255,255,255,.1); }
  .main-nav a.active{ background:linear-gradient(135deg,rgba(14,165,233,.94),rgba(5,150,105,.94)); }
  .main-nav .nav-admin{ background:rgba(3,32,47,.72); }
  .nav-logout-form{ display:block; }
  .nav-bell{ display:none; }
}

@media (max-width:420px){
  .header-system-mark{ letter-spacing:.08em; }
  .header-online{ font-size:0; gap:0; }
  .brand{ gap:.55rem; }
  .brand-text strong{ max-width:190px; font-size:.82rem; }
  .nav-toggle{ min-width:44px; grid-template-columns:22px; padding-inline:.65rem; }
  .nav-toggle small{ display:none; }
  .main-nav{ left:.55rem; right:.55rem; gap:.38rem; padding:.55rem; }
  .main-nav.open{ padding:.55rem; }
  .main-nav a,.main-nav .nav-logout-button{ min-height:58px; padding:.65rem .7rem; }
}

@media (prefers-reduced-motion:reduce){
  .header-online i{ animation:none; }
  .main-nav{ transition:none; }
}

/* =========================================================
   CLOSING ARENA FOOTER + ADMIN GATEWAY
   ========================================================= */
.site-footer{
  position:relative;
  margin-top:3rem;
  padding:0;
  overflow:hidden;
  color:rgba(255,255,255,.72);
  background:
    radial-gradient(circle at 8% 22%,rgba(14,165,233,.2),transparent 27rem),
    radial-gradient(circle at 92% 88%,rgba(16,185,129,.18),transparent 25rem),
    linear-gradient(140deg,#021923 0%,#04374c 52%,#023c31 100%);
}
.footer-grid-fx{
  position:absolute;
  inset:0;
  opacity:.18;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(135deg,#000,transparent 75%);
}
.footer-beam{
  position:relative;
  z-index:1;
  height:4px;
  background:rgba(255,255,255,.06);
}
.footer-beam span{
  display:block;
  width:42%;
  height:100%;
  margin-left:auto;
  background:linear-gradient(90deg,transparent,var(--blue-500),var(--green-500));
  box-shadow:0 0 24px rgba(16,185,129,.55);
}
.footer-inner{
  position:relative;
  z-index:1;
  width:min(100%,1360px);
  max-width:none;
  margin:0 auto;
  padding:clamp(3rem,6vw,5.25rem) 1.35rem 3rem;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(250px,.72fr) minmax(290px,.92fr);
  gap:clamp(2rem,5vw,5rem);
  text-align:left;
}
.footer-kicker,.footer-ops-label{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  color:var(--green-300);
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.footer-kicker i{
  width:22px;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--blue-500),var(--green-500));
  box-shadow:0 0 12px rgba(16,185,129,.6);
}
.footer-brand-lockup{ display:flex; align-items:center; gap:1rem; margin:1.2rem 0 1rem; }
.footer-logo-frame{
  width:64px;
  height:64px;
  flex:none;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px 9px 20px 9px;
  background:rgba(255,255,255,.08);
  transform:rotate(3deg);
}
.footer-logo{
  width:54px;
  height:auto;
  max-height:46px;
  margin:0;
  padding:.45rem;
  object-fit:contain;
  border-radius:14px 7px 14px 7px;
  background:#fff;
  transform:rotate(-3deg);
}
.footer-brand-lockup h2{
  margin:0;
  color:#fff;
  font-size:clamp(1.3rem,2vw,1.8rem);
  letter-spacing:-.04em;
}
.footer-brand-lockup p{ margin:.25rem 0 0; color:rgba(255,255,255,.55); font-size:.7rem; }
.footer-intro{ max-width:480px; margin:0; color:rgba(255,255,255,.67); font-size:.84rem; line-height:1.7; }
.footer-event-meta{ display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.4rem; }
.footer-event-meta > span{
  min-width:112px;
  padding:.7rem .8rem;
  display:flex;
  flex-direction:column;
  gap:.2rem;
  border:1px solid rgba(255,255,255,.09);
  border-radius:13px 6px 13px 6px;
  background:rgba(255,255,255,.045);
}
.footer-event-meta small{ color:rgba(255,255,255,.38); font-size:.48rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.footer-event-meta strong{ color:rgba(255,255,255,.84); font-family:var(--font-body); font-size:.65rem; font-weight:750; }

.footer-navigation{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.footer-link-group{ display:flex; flex-direction:column; align-items:flex-start; gap:.72rem; }
.footer-link-group > span{
  margin-bottom:.35rem;
  color:var(--green-300);
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.footer-link-group a{ position:relative; color:rgba(255,255,255,.66); font-size:.74rem; font-weight:650; }
.footer-link-group a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:0;
  height:1px;
  background:linear-gradient(90deg,var(--blue-500),var(--green-500));
  transition:width .2s ease;
}
.footer-link-group a:hover{ color:#fff; }
.footer-link-group a:hover::after{ width:100%; }

.footer-operations{
  position:relative;
  align-self:start;
  overflow:hidden;
  padding:1.3rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px 10px 22px 10px;
  background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.045));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 22px 45px rgba(0,0,0,.14);
  backdrop-filter:blur(18px);
}
.footer-operations::after{
  content:"";
  position:absolute;
  right:-62px;
  top:-68px;
  width:155px;
  height:155px;
  border:1px solid rgba(110,231,183,.13);
  border-radius:50%;
  box-shadow:0 0 0 22px rgba(14,165,233,.025),0 0 0 44px rgba(16,185,129,.02);
}
.footer-ops-label{ position:relative; z-index:1; color:#a8dff9; }
.footer-ops-label i{ width:6px; height:6px; border-radius:50%; background:var(--blue-300); box-shadow:0 0 10px var(--blue-300); }
.footer-operations h2{ position:relative; z-index:1; margin:.7rem 0 .45rem; color:#fff; font-size:1.08rem; letter-spacing:-.025em; }
.footer-operations > p{ position:relative; z-index:1; margin:0 0 1rem; color:rgba(255,255,255,.58); font-size:.7rem; line-height:1.6; }
.footer-admin-access{
  position:relative;
  z-index:1;
  min-height:62px;
  padding:.72rem .8rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:15px 7px 15px 7px;
  color:#fff;
  background:linear-gradient(135deg,rgba(3,105,161,.88),rgba(4,120,87,.88));
  box-shadow:0 12px 26px rgba(0,0,0,.17);
  transition:transform .2s ease,box-shadow .2s ease;
}
.footer-admin-access:hover{ transform:translateY(-2px); box-shadow:0 16px 32px rgba(0,0,0,.22); }
.footer-admin-locked{ cursor:default; background:linear-gradient(135deg,rgba(7,89,133,.48),rgba(4,120,87,.4)); box-shadow:none; }
.footer-admin-locked:hover{ transform:none; box-shadow:none; }
.footer-admin-access > span{ display:flex; flex-direction:column; gap:.2rem; }
.footer-admin-access small{ color:rgba(255,255,255,.58); font-size:.48rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.footer-admin-access strong{ color:#fff; font-family:var(--font-body); font-size:.76rem; }
.footer-admin-access > i{ font-style:normal; font-size:1.25rem; }
.footer-admin-locked > i{ color:var(--green-300); font-size:.65rem; letter-spacing:.18em; }
.footer-security-note,.footer-scorekeeper-link{ position:relative; z-index:1; display:block; margin-top:.65rem; color:rgba(255,255,255,.42); font-size:.55rem; line-height:1.5; }
.footer-scorekeeper-link{ color:var(--green-300); font-weight:750; }

.footer-bottom{
  position:relative;
  z-index:1;
  width:min(100%,1360px);
  margin:0 auto;
  padding:1.15rem 1.35rem 1.4rem;
  display:grid;
  grid-template-columns:auto auto minmax(260px,1fr);
  align-items:center;
  gap:1rem 2rem;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.42);
  font-size:.55rem;
}
.footer-bottom p{ max-width:620px; margin:0 0 0 auto; line-height:1.55; text-align:right; }
.footer-system-state{ display:inline-flex; align-items:center; gap:.5rem; }
.footer-system-state i{ width:6px; height:6px; border-radius:50%; background:var(--green-500); box-shadow:0 0 10px rgba(16,185,129,.8); }

.admin-login-body .site-main{ width:min(100%,1240px); padding-top:clamp(1.2rem,4vw,3rem); }
.admin-gateway{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);
  gap:1rem;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.92);
  border-radius:30px 14px 30px 14px;
  background:rgba(255,255,255,.56);
  box-shadow:var(--shadow-lg);
  backdrop-filter:blur(22px);
}
.admin-gateway-intro{
  position:relative;
  min-height:560px;
  overflow:hidden;
  padding:clamp(2rem,5vw,4.2rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
  color:#fff;
  background:
    radial-gradient(circle at 82% 18%,rgba(110,231,183,.21),transparent 16rem),
    radial-gradient(circle at 8% 92%,rgba(14,165,233,.2),transparent 18rem),
    linear-gradient(145deg,var(--navy-950),var(--blue-800) 58%,var(--green-700));
}
.admin-gateway-intro::after{
  content:"";
  position:absolute;
  right:-115px;
  bottom:-130px;
  width:360px;
  height:360px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:50%;
  box-shadow:0 0 0 52px rgba(255,255,255,.025),0 0 0 104px rgba(255,255,255,.018);
}
.admin-gateway-kicker{ display:inline-flex; align-items:center; gap:.55rem; color:var(--green-300); font-size:.58rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.admin-gateway-kicker i{ width:24px; height:2px; border-radius:99px; background:var(--green-300); box-shadow:0 0 12px rgba(110,231,183,.75); }
.admin-gateway-intro h1{ position:relative; z-index:1; max-width:580px; margin:1.15rem 0 .8rem; color:#fff; font-size:clamp(2.4rem,5vw,4.7rem); line-height:.94; letter-spacing:-.065em; }
.admin-gateway-intro > p{ position:relative; z-index:1; max-width:520px; margin:0; color:rgba(255,255,255,.66); font-size:.9rem; line-height:1.7; }
.admin-capability-list{ position:relative; z-index:1; display:grid; gap:.55rem; max-width:470px; margin-top:2rem; }
.admin-capability-list span{ min-height:46px; padding:.65rem .8rem; display:flex; align-items:center; gap:.8rem; border:1px solid rgba(255,255,255,.1); border-radius:13px 6px 13px 6px; background:rgba(255,255,255,.055); color:rgba(255,255,255,.8); font-size:.7rem; font-weight:700; }
.admin-capability-list i{ color:var(--green-300); font-size:.5rem; font-style:normal; font-weight:900; letter-spacing:.08em; }
.admin-gateway-state{ position:relative; z-index:1; display:flex; align-items:center; gap:.7rem; margin-top:2rem; }
.admin-gateway-state > i{ width:9px; height:9px; border-radius:50%; background:var(--green-300); box-shadow:0 0 0 5px rgba(110,231,183,.1),0 0 18px rgba(110,231,183,.9); }
.admin-gateway-state > span{ display:flex; flex-direction:column; }
.admin-gateway-state small{ color:rgba(255,255,255,.42); font-size:.48rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.admin-gateway-state strong{ color:#fff; font-size:.68rem; }

.admin-gateway .login-card{
  width:100%;
  max-width:none;
  margin:0;
  padding:clamp(1.5rem,4vw,3.5rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:0;
  border-radius:0;
  background:rgba(255,255,255,.76);
  box-shadow:none;
  backdrop-filter:none;
}
.admin-gateway .login-card::before{ display:none; }
.login-card-head{ display:flex; align-items:center; gap:.85rem; }
.login-emblem{ width:50px; height:50px; flex:none; display:grid; place-items:center; border-radius:16px 7px 16px 7px; color:#fff; background:var(--grad-accent); box-shadow:0 10px 24px rgba(5,150,105,.22); font-size:.68rem; font-weight:900; letter-spacing:.08em; }
.login-card-head > div{ display:flex; flex-direction:column; }
.login-card-head span:not(.login-emblem){ color:var(--green-700); font-size:.52rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.login-card-head h2{ margin:.18rem 0 0; color:var(--navy-950); font-size:1.5rem; letter-spacing:-.04em; }
.login-card-copy{ margin:1.5rem 0; color:var(--muted); font-size:.78rem; line-height:1.65; }
.admin-login-form label{ display:block; margin-bottom:.5rem; color:var(--blue-800); font-size:.64rem; font-weight:850; }
.password-control{ position:relative; }
.admin-gateway .login-card .password-control input{ width:100%; min-height:52px; margin:0; padding:.75rem 4rem .75rem .9rem; border-radius:14px 7px 14px 7px; }
.password-toggle{ position:absolute; top:50%; right:.45rem; min-width:50px; min-height:36px; padding:.3rem .55rem; border:0; border-radius:9px 5px 9px 5px; color:var(--blue-800); background:var(--blue-100); font-family:inherit; font-size:.58rem; font-weight:850; cursor:pointer; transform:translateY(-50%); }
.password-toggle:hover{ color:#fff; background:var(--blue-700); }
.admin-login-submit{ width:100%; margin-top:.75rem; display:flex; align-items:center; justify-content:space-between; border-radius:14px 7px 14px 7px; }
.admin-login-submit i{ font-style:normal; font-size:1.1rem; }
.login-security{ margin-top:1.2rem; padding:.8rem; display:flex; align-items:center; gap:.7rem; border:1px solid rgba(5,150,105,.13); border-radius:12px 6px 12px 6px; background:rgba(209,250,229,.44); }
.login-security > i{ width:8px; height:8px; flex:none; border-radius:50%; background:var(--green-500); box-shadow:0 0 0 4px rgba(16,185,129,.1); }
.login-security > span{ display:flex; flex-direction:column; gap:.14rem; }
.login-security strong{ color:var(--green-700); font-size:.64rem; }
.login-security small{ color:var(--muted); font-size:.54rem; }
.login-back-link{ margin-top:1rem; color:var(--blue-800); font-size:.64rem; font-weight:750; }

@media (max-width:1000px){
  .footer-inner{ grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); }
  .footer-navigation{ grid-column:1 / -1; grid-row:2; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.08); }
  .footer-link-group{ display:grid; grid-template-columns:140px repeat(4,auto); align-items:center; }
  .footer-link-group > span{ margin:0; }
  .admin-gateway{ grid-template-columns:1fr minmax(330px,.78fr); }
  .admin-gateway-intro{ min-height:520px; padding:2.2rem; }
  .admin-gateway-intro h1{ font-size:clamp(2.35rem,6vw,3.8rem); }
}

@media (max-width:720px){
  .site-footer{ margin-top:2rem; }
  .footer-inner{ grid-template-columns:1fr; gap:2.4rem; padding:3rem .95rem 2rem; }
  .footer-navigation{ grid-column:auto; grid-row:auto; grid-template-columns:1fr 1fr; padding-top:2rem; }
  .footer-link-group{ display:flex; }
  .footer-event-meta{ display:grid; grid-template-columns:1fr 1fr; }
  .footer-event-meta > span:first-child{ grid-column:1 / -1; }
  .footer-bottom{ grid-template-columns:1fr; padding:1.15rem .95rem 1.5rem; gap:.65rem; }
  .footer-bottom p{ margin:0; text-align:left; }
  .admin-login-body .site-main{ padding:.8rem .75rem 2.5rem; }
  .admin-gateway{ grid-template-columns:1fr; border-radius:24px 11px 24px 11px; }
  .admin-gateway-intro{ min-height:auto; padding:2rem 1.2rem; }
  .admin-gateway-intro h1{ max-width:500px; font-size:clamp(2.2rem,12vw,3.5rem); }
  .admin-capability-list{ display:none; }
  .admin-gateway-state{ margin-top:1.3rem; }
  .admin-gateway .login-card{ padding:1.6rem 1.2rem 2rem; }
}

@media (max-width:400px){
  .footer-brand-lockup{ align-items:flex-start; }
  .footer-event-meta{ grid-template-columns:1fr; }
  .footer-event-meta > span:first-child{ grid-column:auto; }
  .footer-navigation{ gap:1rem; }
}

/* ==============================================================
   ADMIN CONSOLE COCKPIT — SIDEBAR & SPLIT CRUD WORKFLOW
   ============================================================== */
.admin-console-grid{
  display:grid;
  grid-template-columns:minmax(260px, 280px) minmax(0, 1fr);
  gap:1.6rem;
  margin-top:1.2rem;
  align-items:start;
}
.admin-sidebar-box{
  border:1px solid rgba(255,255,255,.9);
  border-radius:22px;
  background:var(--surface-glass, rgba(255,255,255,0.86));
  box-shadow:var(--shadow-md);
  backdrop-filter:blur(22px);
  padding:1.4rem 1.1rem;
  position:sticky;
  top:85px;
  z-index:20;
}
.admin-sidebar-title{
  color:var(--navy-900);
  font-size:1.1rem;
  font-weight:900;
  letter-spacing:-.025em;
  padding:0 .4rem .8rem;
  border-bottom:2px dashed rgba(7,89,133,.15);
  margin-bottom:.9rem;
  display:flex;
  align-items:center;
  gap:.6rem;
}
.admin-sidebar-nav{
  display:flex;
  flex-direction:column;
  gap:.4rem;
}
.admin-nav-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  min-height:44px;
  padding:.65rem .95rem;
  border-radius:13px;
  font-size:.88rem;
  font-weight:750;
  color:var(--blue-800);
  text-decoration:none;
  border:1px solid transparent;
  background:transparent;
  transition:all .18s ease;
  cursor:pointer;
  text-align:left;
  width:100%;
}
.admin-nav-item:hover{
  background:rgba(224,242,254,.7);
  color:var(--navy-900);
  border-color:rgba(7,89,133,.15);
  text-decoration:none;
}
.admin-nav-item.active{
  background:var(--grad-accent);
  color:#fff;
  box-shadow:0 8px 22px rgba(5,150,105,.24);
  border-color:transparent;
  font-weight:850;
}
.admin-nav-item .nav-pill-count{
  padding:.18rem .55rem;
  border-radius:99px;
  font-size:.7rem;
  font-weight:850;
  background:rgba(255,255,255,.7);
  color:var(--blue-800);
}
.admin-nav-item.active .nav-pill-count{
  background:rgba(255,255,255,.24);
  color:#fff;
}
.admin-sidebar-footer{
  margin-top:1.4rem;
  padding-top:1rem;
  border-top:1px solid rgba(7,89,133,.1);
  display:flex;
  flex-direction:column;
  gap:.5rem;
}
.admin-workspace-pane{ min-width:0; }
.admin-tab-section{ display:none; }
.admin-tab-section.active-tab{ display:block; animation: fadeIn .22s ease; }
.admin-crud-split{
  display:grid;
  grid-template-columns:minmax(330px, 380px) minmax(0, 1fr);
  gap:1.5rem;
  align-items:start;
}
.admin-crud-form-panel{
  border:1px solid rgba(255,255,255,.9);
  border-radius:20px;
  background:rgba(255,255,255,.78);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(18px);
  padding:1.35rem;
}
.admin-crud-list-panel{
  border:1px solid rgba(255,255,255,.9);
  border-radius:20px;
  background:rgba(255,255,255,.78);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(18px);
  padding:1.35rem;
  min-width:0;
}
@media (max-width:1100px){
  .admin-crud-split{ grid-template-columns:1fr; gap:1.4rem; }
}
@media (max-width:960px){
  .admin-console-grid{ grid-template-columns:1fr; gap:1.2rem; }
  .admin-sidebar-box{ position:relative; top:0; padding:1.1rem; }
}
