/* =============================================
   SNG HUB — FRONTEND STYLES
   BBC-style fixtures + Player cards + Leagues
============================================= */
:root {
  --sng-green:  #0F6E56;
  --sng-green2: #1a9a72;
  --sng-gold:   #F0A500;
  --sng-dark:   #080f0c;
  --sng-surface:#111a15;
  --sng-text:   #1c2e25;
  --sng-muted:  #5a7060;
  --sng-border: #d4e6dd;
  --sng-bg:     #f5f9f7;
  --sng-white:  #ffffff;
  --sng-live:   #e63946;
}

/* ── NO FIXTURES ───────────────────────── */
.sng-no-fixtures {
  text-align: center;
  padding: 40px 20px;
  background: var(--sng-bg);
  border: 1px dashed var(--sng-border);
  border-radius: 8px;
  color: var(--sng-muted);
}
.sng-no-fixtures span { font-size: 32px; display: block; margin-bottom: 10px; }
.sng-no-fixtures p { font-size: 15px; font-weight: 500; margin: 0 0 6px; color: var(--sng-text); }
.sng-no-fixtures small { font-size: 12px; }

/* ── FIXTURES WRAP ─────────────────────── */
.sng-fixtures-wrap {
  font-family: 'Barlow', sans-serif;
  background: var(--sng-white);
  border: 1px solid var(--sng-border);
  border-radius: 8px;
  overflow: hidden;
}

/* ── DATE STRIP (BBC-style) ────────────── */
.sng-date-strip {
  display: flex;
  align-items: stretch;
  background: var(--sng-surface);
  border-bottom: 2px solid var(--sng-green);
  overflow: hidden;
}
.sng-date-nav {
  background: rgba(255,255,255,0.06);
  border: none;
  color: rgba(255,255,255,0.6);
  padding: 0 14px;
  font-size: 22px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  flex-shrink: 0;
  line-height: 1;
}
.sng-date-nav:hover { background: rgba(255,255,255,0.12); color: #fff; }
.sng-date-strip-track {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  flex: 1;
}
.sng-date-strip-track::-webkit-scrollbar { display: none; }
.sng-date-btn {
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  color: rgba(255,255,255,0.55);
  padding: 10px 16px;
  cursor: pointer;
  text-align: center;
  white-space: nowrap;
  transition: all 0.15s;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  min-width: 60px;
}
.sng-date-btn:hover { color: rgba(255,255,255,0.9); background: rgba(255,255,255,0.05); }
.sng-date-btn.sng-date-active { color: #fff; border-bottom-color: var(--sng-gold); background: rgba(240,165,0,0.08); }
.sng-date-btn.sng-date-today .sng-date-num { color: var(--sng-gold); }
.sng-date-day { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.sng-date-num { font-size: 20px; font-weight: 700; line-height: 1; }
.sng-date-mon { font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; }

/* ── LEAGUE GROUP ──────────────────────── */
.sng-league-group { border-bottom: 1px solid var(--sng-border); }
.sng-league-group:last-child { border-bottom: none; }
.sng-league-group-head {
  display: flex;
  align-items: center;
  padding: 8px 16px;
  background: #f0f6f3;
  border-left: 3px solid var(--sng-green);
}
.sng-lgh-name {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sng-green);
}

/* ── MATCH ROW ─────────────────────────── */
.sng-match-row {
  display: grid;
  grid-template-columns: 1fr 100px 1fr;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid #f0f5f2;
  transition: background 0.1s;
  gap: 8px;
}
.sng-match-row:last-child { border-bottom: none; }
.sng-match-row:hover { background: #f7fbf9; }
.sng-match-row.sng-status-live { background: #fff8f0; }
.sng-match-row.sng-status-ft   { opacity: 0.85; }

.sng-match-home { text-align: right; }
.sng-match-away { text-align: left; }
.sng-team-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--sng-text);
}

.sng-match-centre {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.sng-score {
  font-size: 20px;
  font-weight: 800;
  color: var(--sng-dark);
  line-height: 1;
}
.sng-score-sep { font-size: 16px; font-weight: 700; color: var(--sng-muted); margin: 0 2px; }
.sng-live-score { color: var(--sng-live); }
.sng-live-sep   { color: var(--sng-live); }
.sng-match-time {
  font-size: 16px;
  font-weight: 700;
  color: var(--sng-green);
  letter-spacing: 0.04em;
}
.sng-match-status-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 1px 6px;
  border-radius: 2px;
  margin-top: 2px;
}
.sng-live     { background: var(--sng-live); color: #fff; animation: sng-pulse 1.2s infinite; }
.sng-ft       { background: #e8f5ed; color: var(--sng-green); }
.sng-pp       { background: #fff3cd; color: #856404; }
.sng-cancelled{ background: #f8d7da; color: #842029; }
.sng-match-venue { font-size: 10px; color: var(--sng-muted); margin-top: 2px; }

@keyframes sng-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.6; }
}

/* ── PLAYER CARDS ──────────────────────── */
.sng-players-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}

.sng-pc {
  background: var(--sng-white);
  border: 1px solid var(--sng-border);
  border-radius: 10px;
  overflow: hidden;
  font-family: 'Barlow', sans-serif;
  transition: transform 0.2s, box-shadow 0.2s;
}
.sng-pc:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(15,110,86,0.12); }

.sng-pc-header {
  background: var(--sng-surface);
  padding: 16px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.sng-pc-photo {
  width: 60px; height: 60px;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
  border: 2px solid var(--sng-green);
}
.sng-pc-photo img { width: 100%; height: 100%; object-fit: cover; }
.sng-pc-initials {
  width: 100%; height: 100%;
  background: var(--sng-green);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 700; color: #fff;
}
.sng-pc-pos-badge {
  position: absolute;
  bottom: -2px; right: -2px;
  background: var(--sng-gold);
  color: var(--sng-dark);
  font-size: 8px; font-weight: 800;
  padding: 1px 4px; border-radius: 3px;
  white-space: nowrap; letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sng-pc-number { font-size: 11px; font-weight: 700; color: var(--sng-gold); margin-bottom: 2px; }
.sng-pc-name { font-size: 15px; font-weight: 700; color: #fff; line-height: 1.2; text-transform: uppercase; }
.sng-pc-club { font-size: 11px; color: rgba(255,255,255,0.5); margin: 4px 0; }

.sng-pc-status {
  display: inline-block;
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 2px;
}
.available     { background: #dcfce7; color: #15803d; }
.being-scouted { background: #dbeafe; color: #1d4ed8; }
.signed        { background: #fae8ff; color: #86198f; }
.inactive      { background: #f1f5f9; color: #64748b; }

.sng-pc-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  border-bottom: 1px solid var(--sng-border);
}
.sng-pc-stat { padding: 10px 6px; text-align: center; }
.sng-pc-stat:not(:last-child) { border-right: 1px solid var(--sng-border); }
.sng-pc-stat-n { font-size: 22px; font-weight: 700; color: var(--sng-green); line-height: 1; }
.sng-pc-stat-l { font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--sng-muted); margin-top: 2px; }

.sng-pc-bio { padding: 12px 14px; font-size: 12px; color: var(--sng-muted); line-height: 1.6; border-bottom: 1px solid var(--sng-border); }

.sng-pc-footer { padding: 10px 14px; }
.sng-wa-btn {
  display: flex; align-items: center; gap: 7px; justify-content: center;
  background: #25D366; color: #fff;
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 8px 14px; border-radius: 4px;
  text-decoration: none; transition: background 0.15s;
}
.sng-wa-btn:hover { background: #1ebe5d; color: #fff; }

/* ── LEAGUES GRID ──────────────────────── */
.sng-leagues-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.sng-lc {
  background: var(--sng-white);
  border: 1px solid var(--sng-border);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  gap: 12px;
  padding: 12px;
  align-items: flex-start;
}
.sng-lc-badge {
  width: 44px; height: 44px;
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 9px; font-weight: 800;
  text-align: center; line-height: 1.2;
  flex-shrink: 0;
}
.sng-lc-name { font-size: 13px; font-weight: 700; color: var(--sng-text); margin-bottom: 2px; }
.sng-lc-lga  { font-size: 11px; color: var(--sng-muted); margin-bottom: 6px; }
.sng-lc-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.sng-lc-tag  { font-size: 9px; font-weight: 700; padding: 1px 6px; border-radius: 3px; background: #e8f5ed; color: var(--sng-green); text-transform: uppercase; letter-spacing: 0.06em; }
.sng-lc-status-active   { background: #dcfce7; color: #15803d; }
.sng-lc-status-upcoming { background: #fef9c3; color: #854d0e; }
.sng-lc-status-completed{ background: #f1f5f9; color: #64748b; }

/* ── RESPONSIVE ────────────────────────── */
@media (max-width: 600px) {
  .sng-match-row { grid-template-columns: 1fr 80px 1fr; padding: 10px 10px; }
  .sng-team-name { font-size: 12px; }
  .sng-score     { font-size: 17px; }
  .sng-players-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 380px) {
  .sng-players-grid { grid-template-columns: 1fr; }
}

/* ── VERSION 4: NATIONAL HUB ───────────────────────── */
.sng-date-panel[hidden] { display: none !important; }
.sng-score-line { display: flex; align-items: center; justify-content: center; gap: 4px; }
.sng-match-round { font-size: 9px; color: var(--sng-muted); text-transform: uppercase; letter-spacing: .06em; text-align: center; }
.sng-half-time { background: #f59e0b; color: #111827; }
.sng-postponed { background: #fff3cd; color: #856404; }
.sng-empty-message { padding: 18px; border: 1px dashed var(--sng-border); background: var(--sng-bg); color: var(--sng-muted); text-align: center; border-radius: 8px; }

.sng-national-hub {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 0;
  width: 100%;
  background: #07120c;
  color: #fff;
  border: 1px solid #1f3b2c;
  border-radius: 10px;
  overflow: hidden;
  font-family: 'Barlow', Arial, sans-serif;
}
.sng-hub-sidebar {
  background: #0b1710;
  border-right: 1px solid #203829;
  min-width: 0;
}
.sng-sidebar-title {
  padding: 13px 14px;
  color: #8cc79f;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 10px;
  font-weight: 800;
  border-bottom: 1px solid #203829;
}
.sng-sidebar-scroll { max-height: 670px; overflow-y: auto; scrollbar-width: thin; }
.sng-sidebar-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 14px;
  color: #d9e9df;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.045);
  font-size: 12px;
  transition: background .15s, color .15s;
}
.sng-sidebar-link:hover,
.sng-sidebar-link:focus-visible,
.sng-sidebar-link.is-active { background: #173421; color: #ffd400; }
.sng-sidebar-link b { color: #65bd72; font-size: 11px; }
.sng-sidebar-link.is-active b { color: #ffd400; }

.sng-hub-main { min-width: 0; background: #09150e; }
.sng-hub-hero {
  position: relative;
  padding: 28px 28px 24px;
  background: radial-gradient(circle at 88% 20%, rgba(154,196,43,.10), transparent 28%), linear-gradient(135deg, #0b2111 0%, #07130c 100%);
  border-bottom: 1px solid #25422e;
  overflow: hidden;
}
.sng-hub-hero::after {
  content: 'NIGERIA';
  position: absolute;
  right: 18px;
  top: -4px;
  font-size: clamp(58px, 9vw, 130px);
  line-height: 1;
  font-weight: 900;
  color: rgba(157,196,52,.045);
  pointer-events: none;
}
.sng-hub-eyebrow { position: relative; z-index: 1; color: #79d773; font-size: 10px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.sng-hub-hero h1 { position: relative; z-index: 1; margin: 4px 0 2px; color: #ffd400; font-size: clamp(28px, 4vw, 48px); line-height: 1; letter-spacing: .02em; text-transform: uppercase; }
.sng-hub-hero p { position: relative; z-index: 1; max-width: 720px; margin: 7px 0 17px; color: #8cb395; font-size: 13px; line-height: 1.5; }
.sng-hub-kpis { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 28px; }
.sng-hub-kpis div { display: flex; flex-direction: column; gap: 1px; }
.sng-hub-kpis strong { color: #ffd400; font-size: 24px; line-height: 1; }
.sng-hub-kpis span { color: #6aa079; text-transform: uppercase; letter-spacing: .08em; font-size: 9px; }

.sng-hub-filters {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(180px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
  padding: 14px 18px;
  background: #0d1e14;
  border-bottom: 1px solid #25422e;
}
.sng-hub-filters div { display: flex; flex-direction: column; gap: 4px; }
.sng-hub-filters label { color: #80a98c; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.sng-hub-filters select {
  width: 100%;
  min-height: 38px;
  border: 1px solid #365641;
  border-radius: 5px;
  background: #07120c;
  color: #e9f2ec;
  padding: 7px 9px;
}
.sng-hub-filters button,
.sng-hub-filters > a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  padding: 8px 14px;
  text-decoration: none;
  font-weight: 800;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.sng-hub-filters button { border: 1px solid #ffd400; background: #ffd400; color: #08100b; cursor: pointer; }
.sng-hub-filters > a { border: 1px solid #365641; color: #b9cbbf; }
.sng-hub-filters button:hover { filter: brightness(1.06); }
.sng-hub-filters > a:hover { border-color: #ffd400; color: #ffd400; }

.sng-hub-section { padding: 0 0 18px; background: #09150e; }
.sng-hub-section-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 18px 7px; border-bottom: 1px solid #28442f; }
.sng-hub-section-title h2 { margin: 0; color: #ffd400; font-size: 16px; text-transform: uppercase; letter-spacing: .04em; }
.sng-hub-section-title span { color: #72907a; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.sng-national-hub .sng-fixtures-wrap,
.sng-national-hub .sng-leagues-grid,
.sng-national-hub .sng-empty-message,
.sng-national-hub .sng-no-fixtures { margin: 0 10px; }
.sng-national-hub .sng-fixtures-wrap { border-color: #2a4734; border-radius: 6px; }
.sng-national-hub .sng-leagues-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.sng-national-hub .sng-lc { background: #111e15; border-color: #2c4835; }
.sng-national-hub .sng-lc-name { color: #f4f8f5; }
.sng-national-hub .sng-lc-lga { color: #779683; }
.sng-national-hub .sng-no-fixtures,
.sng-national-hub .sng-empty-message { background: #111e15; border-color: #34513e; color: #8aa995; }
.sng-national-hub .sng-no-fixtures p { color: #e3ece6; }

@media (max-width: 900px) {
  .sng-national-hub { grid-template-columns: 1fr; }
  .sng-hub-sidebar { border-right: 0; border-bottom: 1px solid #203829; }
  .sng-sidebar-scroll { display: flex; overflow-x: auto; overflow-y: hidden; max-height: none; }
  .sng-sidebar-link { min-width: max-content; border-right: 1px solid rgba(255,255,255,.06); }
  .sng-sidebar-title { display: none; }
}
@media (max-width: 700px) {
  .sng-hub-hero { padding: 22px 16px; }
  .sng-hub-kpis { gap: 17px; }
  .sng-hub-kpis strong { font-size: 20px; }
  .sng-hub-filters { grid-template-columns: 1fr 1fr; padding: 12px; }
  .sng-national-hub .sng-leagues-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .sng-hub-filters { grid-template-columns: 1fr; }
  .sng-hub-section-title { align-items: flex-start; }
  .sng-match-row { grid-template-columns: 1fr 72px 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .sng-live, .sng-status-live { animation: none !important; }
  .sng-date-strip-track { scroll-behavior: auto; }
}

/* ── VERSION 5: CLUB IDENTITIES & LOGOS ───────────── */
.sng-team-identity {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  max-width: 100%;
}
.sng-match-home .sng-team-identity { flex-direction: row-reverse; justify-content: flex-start; }
.sng-match-away .sng-team-identity { justify-content: flex-start; }
.sng-team-logo {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--sng-border);
  padding: 3px;
  flex: 0 0 36px;
  box-sizing: border-box;
}
.sng-team-logo-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--sng-green);
  color: #fff;
  border-color: rgba(255,255,255,.25);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .03em;
  padding: 0;
}
.sng-team-identity .sng-team-name {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.25;
}
@media (max-width: 600px) {
  .sng-team-identity { gap: 5px; }
  .sng-team-logo { width: 28px; height: 28px; flex-basis: 28px; }
  .sng-team-logo-fallback { font-size: 7px; }
}

/* ── CLUB DATABASE CARDS ───────────────────────────── */
.sng-clubs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 12px;
}
.sng-club-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px;
  background: #fff;
  color: var(--sng-text);
  border: 1px solid var(--sng-border);
  border-radius: 8px;
}
.sng-club-card-logo {
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  border-radius: 50%;
  border: 1px solid var(--sng-border);
  background: #fff;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sng-club-card-logo img { width: 100%; height: 100%; object-fit: contain; padding: 5px; box-sizing: border-box; }
.sng-club-card-logo span { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--sng-green); color: #fff; font-size: 11px; font-weight: 800; }
.sng-club-card-body { min-width: 0; }
.sng-club-card-body h3 { margin: 0 0 2px; color: var(--sng-text); font-size: 14px; line-height: 1.25; }
.sng-club-card-body p { margin: 0 0 2px; color: var(--sng-green); font-size: 11px; font-weight: 700; }
.sng-club-card-body small { color: var(--sng-muted); font-size: 10px; }
.sng-club-card-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 7px; }
.sng-club-card-tags span { background: #edf7f1; color: var(--sng-green); border-radius: 3px; padding: 2px 6px; font-size: 8px; font-weight: 700; text-transform: uppercase; }
.sng-club-card-tags .sng-club-status-club-verified,
.sng-club-card-tags .sng-club-status-identity-verified { background: #dcfce7; color: #166534; }
.sng-club-card-tags .sng-club-status-unverified { background: #f1f5f9; color: #475569; }

/* ── VERSION 6: MATCH CENTRE, DIRECTORY, TABLES & BRACKETS ── */
.sng-scoreboard-header,
.sng-data-page-header,
.sng-directory-header,
.sng-register-hero {
  background: linear-gradient(135deg, #07130c, #10291b);
  color: #fff;
  padding: 28px clamp(18px,4vw,42px);
  border-bottom: 3px solid var(--sng-gold);
}
.sng-scoreboard-header { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.sng-scoreboard-header span,
.sng-data-page-header span,
.sng-directory-header span,
.sng-register-hero span { color:#7bd98c; font-size:10px; letter-spacing:.18em; font-weight:800; }
.sng-scoreboard-header h1,
.sng-data-page-header h1,
.sng-directory-header h1,
.sng-register-hero h1 { margin:4px 0 0; color:#fff; font-size:clamp(28px,4vw,48px); line-height:1; }
.sng-data-page-header p,.sng-directory-header p,.sng-register-hero p { color:#a9c4b2; max-width:720px; margin:10px 0 0; }
.sng-scoreboard-live { color:#cfe1d5; font-size:12px; display:flex; align-items:center; gap:8px; }
.sng-scoreboard-live i { width:9px; height:9px; border-radius:50%; background:#e63946; box-shadow:0 0 0 5px rgba(230,57,70,.15); }
.sng-scoreboard-tools { display:grid; grid-template-columns:minmax(220px,1fr) auto auto; gap:12px; align-items:center; padding:14px; background:#111a15; border-bottom:1px solid #2d4537; }
.sng-fixture-search { display:flex; align-items:center; gap:8px; background:#202c25; border:1px solid #344b3d; border-radius:24px; padding:0 14px; }
.sng-fixture-search input { width:100%; border:0; outline:0; background:transparent; color:#fff; min-height:42px; }
.sng-status-tabs { display:flex; gap:5px; }
.sng-status-tabs button { border:1px solid #365142; background:#17231c; color:#b8cbbf; border-radius:18px; padding:8px 13px; font-size:11px; font-weight:800; cursor:pointer; }
.sng-status-tabs button.is-active { background:var(--sng-gold); color:#101812; border-color:var(--sng-gold); }
.sng-calendar-picker { color:#fff; background:#202c25; border-radius:6px; padding:8px 10px; display:flex; gap:5px; }
.sng-calendar-picker input { width:22px; border:0; color:transparent; background:transparent; cursor:pointer; }
.sng-fixture-no-filter-results { padding:25px; text-align:center; color:var(--sng-muted); }
.sng-league-group-head { justify-content:space-between; gap:15px; }
.sng-league-group-head > div { display:flex; flex-direction:column; }
.sng-league-group-head small { color:#789486; font-size:10px; }
.sng-sponsored-by { font-size:9px; color:#7b5d00; background:#fff1b8; padding:4px 7px; border-radius:3px; text-decoration:none; }
.sng-penalty-score { color:var(--sng-muted); font-size:9px; }
.sng-commercial-banner { margin:14px; padding:4px; background:#f2f2f2; text-align:center; border-radius:6px; overflow:hidden; }
.sng-commercial-banner span { display:block; font-size:8px; color:#777; text-transform:uppercase; letter-spacing:.12em; margin-bottom:3px; }
.sng-commercial-banner img { display:block; max-width:100%; max-height:180px; margin:auto; object-fit:contain; }

/* Clickable club directory */
.sng-club-directory { font-family:'Barlow',sans-serif; }
.sng-directory-header { display:flex; justify-content:space-between; gap:20px; align-items:flex-end; }
.sng-directory-header > a,.sng-primary-button { display:inline-flex; align-items:center; justify-content:center; background:var(--sng-gold); color:#101812; text-decoration:none; font-weight:800; border:0; border-radius:5px; padding:12px 18px; cursor:pointer; }
.sng-directory-filters { display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:10px; padding:16px; background:#f2f7f4; border:1px solid var(--sng-border); margin-bottom:18px; }
.sng-directory-filters input,.sng-directory-filters select,.sng-directory-filters button { min-height:42px; border:1px solid var(--sng-border); border-radius:4px; padding:8px 10px; }
.sng-directory-filters button { background:var(--sng-green); color:#fff; font-weight:800; cursor:pointer; }
.sng-club-card { text-decoration:none; align-items:stretch; transition:transform .18s,box-shadow .18s,border-color .18s; }
.sng-club-card:hover,.sng-club-card:focus-visible { transform:translateY(-3px); box-shadow:0 9px 22px rgba(8,50,34,.13); border-color:var(--sng-green); }
.sng-club-card.is-featured { border:2px solid var(--sng-gold); position:relative; }
.sng-club-logo-wrap { width:58px; height:58px; flex:0 0 58px; border-radius:50%; overflow:hidden; background:#fff; border:1px solid var(--sng-border); display:flex; align-items:center; justify-content:center; }
.sng-club-logo-wrap img { width:100%; height:100%; object-fit:contain; padding:5px; box-sizing:border-box; }
.sng-club-logo-wrap span { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:var(--sng-green); color:#fff; font-weight:800; font-size:10px; }
.sng-club-card-content { min-width:0; flex:1; }
.sng-club-card-title { color:var(--sng-text); font-weight:900; font-size:14px; display:flex; gap:7px; align-items:center; }
.sng-club-card-title em { font-style:normal; background:var(--sng-gold); color:#16180d; font-size:8px; padding:2px 5px; border-radius:2px; }
.sng-club-type { color:var(--sng-green); font-size:11px; font-weight:700; margin:3px 0 8px; }
.sng-club-meta { display:flex; flex-wrap:wrap; gap:6px; color:var(--sng-muted); font-size:10px; }
.sng-club-meta span { background:#eef6f1; padding:3px 6px; border-radius:3px; }
.sng-club-card-footer { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:10px; font-size:9px; text-transform:uppercase; }
.sng-club-card-footer b { color:var(--sng-green); }

/* Club profile */
.sng-club-profile { font-family:'Barlow',sans-serif; color:var(--sng-text); }
.sng-club-profile-hero { background:linear-gradient(135deg,#07130c,#163421); background-size:cover; background-position:center; color:#fff; padding:26px clamp(18px,4vw,46px); }
.sng-back-link { color:#9bc4a8; text-decoration:none; font-size:12px; }
.sng-club-profile-head { display:flex; align-items:center; gap:22px; margin-top:25px; }
.sng-club-profile-logo { width:112px; height:112px; border-radius:50%; background:#fff; border:4px solid rgba(255,255,255,.25); overflow:hidden; display:flex; align-items:center; justify-content:center; flex:0 0 112px; }
.sng-club-profile-logo img { width:100%; height:100%; object-fit:contain; padding:8px; box-sizing:border-box; }
.sng-club-profile-logo span { color:var(--sng-green); font-size:26px; font-weight:900; }
.sng-profile-kicker { color:#7bd98c; font-size:10px; letter-spacing:.16em; font-weight:800; }
.sng-club-profile-head h1 { margin:5px 0; color:#fff; font-size:clamp(30px,5vw,54px); line-height:1; }
.sng-club-profile-head p { margin:0; color:#bdd0c3; }
.sng-profile-badges { display:flex; gap:7px; margin-top:10px; }
.sng-profile-badges span { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:3px; padding:4px 8px; font-size:9px; text-transform:uppercase; }
.sng-club-profile-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; padding:24px 0; }
.sng-profile-section { background:#fff; border:1px solid var(--sng-border); border-radius:8px; padding:20px; margin-bottom:18px; }
.sng-profile-section h2 { margin:0 0 14px; font-size:20px; color:var(--sng-dark); }
.sng-club-facts { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.sng-club-facts div { background:#f3f8f5; padding:11px; border-radius:5px; display:flex; flex-direction:column; }
.sng-club-facts strong { font-size:9px; text-transform:uppercase; color:var(--sng-green); letter-spacing:.08em; }
.sng-club-facts span { font-size:13px; margin-top:3px; }
.sng-profile-fixtures > div { display:grid; grid-template-columns:90px 1fr 1fr auto; gap:10px; align-items:center; padding:9px 0; border-bottom:1px solid #edf2ef; }
.sng-profile-fixtures time,.sng-profile-fixtures span { font-size:11px; color:var(--sng-muted); }
.sng-profile-fixtures b { color:var(--sng-green); }
.sng-club-profile-side > div { background:#111a15; color:#fff; padding:18px; border-radius:7px; margin-bottom:14px; }
.sng-club-profile-side h3 { margin:0 0 10px; color:#fff; }
.sng-club-profile-side p { color:#a8bcb0; font-size:12px; }
.sng-club-profile-side a { display:block; background:var(--sng-gold); color:#101812; text-align:center; text-decoration:none; font-weight:800; padding:9px; border-radius:4px; margin-top:8px; }

/* Club registration */
.sng-register-wrap { font-family:'Barlow',sans-serif; }
.sng-public-form { background:#fff; border:1px solid var(--sng-border); padding:22px; }
.sng-public-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.sng-public-form-grid > div { display:flex; flex-direction:column; gap:5px; }
.sng-public-form-grid .sng-full { grid-column:1/-1; }
.sng-public-form label { color:var(--sng-text); font-size:12px; font-weight:700; }
.sng-public-form input,.sng-public-form select,.sng-public-form textarea { border:1px solid var(--sng-border); border-radius:4px; padding:10px; min-height:42px; box-sizing:border-box; width:100%; }
.sng-public-check { display:flex!important; flex-direction:row!important; align-items:flex-start; gap:8px; }
.sng-public-check input { width:auto; min-height:0; margin-top:3px; }
.sng-honeypot { position:absolute!important; left:-9999px!important; }
.sng-form-message { padding:13px; margin:14px 0; border-radius:4px; }
.sng-form-success { background:#dcfce7; color:#166534; }
.sng-form-error { background:#fee2e2; color:#991b1b; }
.sng-commercial-note { background:#fff8dd; border-left:3px solid var(--sng-gold); padding:10px; font-size:12px; }

/* Competition cards */
.sng-league-card { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--sng-border); border-top:3px solid var(--sng-league-color); border-radius:6px; padding:12px; }
.sng-league-badge { width:52px; height:52px; flex:0 0 52px; display:flex; align-items:center; justify-content:center; background:var(--sng-league-color); color:#fff; border-radius:5px; font-size:9px; font-weight:900; text-align:center; }
.sng-league-badge img { width:100%; height:100%; object-fit:contain; background:#fff; }
.sng-league-info { flex:1; min-width:0; }
.sng-league-info h3 { margin:0; font-size:14px; color:var(--sng-text); }
.sng-league-info p { margin:3px 0; font-size:10px; color:var(--sng-muted); }
.sng-league-info div { display:flex; gap:5px; flex-wrap:wrap; }
.sng-league-info span { background:#edf5f0; color:var(--sng-green); padding:2px 5px; font-size:8px; text-transform:uppercase; }
.sng-league-links { display:flex; flex-direction:column; gap:5px; }
.sng-league-links a { color:var(--sng-green); font-size:10px; font-weight:800; text-decoration:none; }

/* Tables */
.sng-tables-page,.sng-tournament-page { font-family:'Barlow',sans-serif; }
.sng-competition-selector { display:flex; align-items:end; gap:10px; background:#f4f7f5; border:1px solid var(--sng-border); padding:16px; margin:16px 0; }
.sng-competition-selector label { display:flex; flex-direction:column; gap:5px; flex:1; font-size:11px; font-weight:800; }
.sng-competition-selector select { min-height:42px; border:1px solid var(--sng-border); padding:8px; }
.sng-competition-selector button { min-height:42px; background:var(--sng-green); color:#fff; border:0; padding:8px 18px; font-weight:800; cursor:pointer; }
.sng-table-card,.sng-tournament-overview { background:#fff; border:1px solid var(--sng-border); padding:18px; }
.sng-table-card-head { display:flex; justify-content:space-between; align-items:center; gap:15px; border-bottom:1px solid var(--sng-border); padding-bottom:12px; margin-bottom:14px; }
.sng-table-card-head h2 { margin:0; }
.sng-table-card-head p { margin:3px 0 0; color:var(--sng-muted); }
.sng-table-card-head > span { background:#fff4c8; color:#725600; padding:6px 9px; font-size:10px; }
.sng-group-title { margin:22px 0 8px; color:var(--sng-green); }
.sng-standings-scroll { overflow-x:auto; }
.sng-standings-table { width:100%; border-collapse:collapse; min-width:760px; }
.sng-standings-table th { background:#f1f4f2; color:#26362d; font-size:10px; text-transform:uppercase; padding:10px 8px; text-align:center; }
.sng-standings-table td { padding:10px 8px; border-bottom:1px solid #e4e9e6; text-align:center; font-size:13px; }
.sng-standings-table td:nth-child(2) { text-align:left; min-width:200px; }
.sng-standings-table .sng-team-logo { width:30px; height:30px; flex-basis:30px; }
.sng-points { font-size:20px!important; font-weight:900; color:var(--sng-green); }
.sng-form-run { display:flex; gap:3px; }
.sng-form-run i { width:21px; height:21px; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:10px; font-style:normal; font-weight:800; }
.form-w { background:#17923a; }.form-d { background:#777; }.form-l { background:#df244a; }

/* Tournament groups and bracket */
.sng-groups-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.sng-groups-grid article { border:1px solid var(--sng-border); border-radius:5px; overflow:hidden; }
.sng-groups-grid article > h3 { margin:0; padding:10px 13px; background:#111a15; color:#fff; }
.sng-groups-grid .sng-standings-table { min-width:610px; }
.sng-bracket { display:grid; grid-template-columns:repeat(4,minmax(210px,1fr)); gap:16px; overflow-x:auto; align-items:start; padding-bottom:12px; }
.sng-bracket-round { min-width:210px; }
.sng-bracket-round > h3 { background:#111a15; color:#fff; margin:0 0 10px; padding:9px; text-align:center; font-size:12px; }
.sng-bracket-match { border:1px solid var(--sng-border); background:#fff; margin-bottom:12px; box-shadow:0 3px 10px rgba(0,0,0,.05); }
.sng-bracket-match > div { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px; border-bottom:1px solid #edf1ef; }
.sng-bracket-match .sng-team-logo { width:26px; height:26px; flex-basis:26px; }
.sng-bracket-match .sng-team-name { font-size:11px; }
.sng-bracket-match > small { display:block; padding:6px 8px; color:var(--sng-muted); font-size:9px; }

/* National hub dark overrides */
.sng-national-hub .sng-club-card,.sng-national-hub .sng-league-card { background:#111e15; border-color:#2c4835; }
.sng-national-hub .sng-club-card-title,.sng-national-hub .sng-league-info h3 { color:#f4f8f5; }
.sng-national-hub .sng-club-meta,.sng-national-hub .sng-league-info p { color:#839c8d; }
.sng-national-hub .sng-club-meta span,.sng-national-hub .sng-league-info span { background:#193022; }
.sng-hub-section-title a { color:#ffd400; text-decoration:none; font-size:10px; text-transform:uppercase; font-weight:800; }

@media (max-width: 900px) {
  .sng-scoreboard-tools { grid-template-columns:1fr; }
  .sng-directory-filters { grid-template-columns:1fr 1fr; }
  .sng-club-profile-grid { grid-template-columns:1fr; }
  .sng-groups-grid { grid-template-columns:1fr; }
}
@media (max-width: 650px) {
  .sng-scoreboard-header,.sng-directory-header { align-items:flex-start; flex-direction:column; }
  .sng-directory-filters,.sng-public-form-grid { grid-template-columns:1fr; }
  .sng-public-form-grid .sng-full { grid-column:auto; }
  .sng-club-profile-head { align-items:flex-start; flex-direction:column; }
  .sng-club-profile-logo { width:88px; height:88px; flex-basis:88px; }
  .sng-club-facts { grid-template-columns:1fr; }
  .sng-profile-fixtures > div { grid-template-columns:70px 1fr auto; }
  .sng-profile-fixtures span { display:none; }
  .sng-competition-selector { align-items:stretch; flex-direction:column; }
  .sng-status-tabs { overflow-x:auto; }
}

/* Full-width presentation for pages powered by SNG Hub shortcodes. */
body.sng-hub-public-page .widget-area,
body.sng-hub-public-page #secondary,
body.sng-hub-public-page .sidebar,
body.sng-hub-public-page aside#secondary { display: none !important; }
body.sng-hub-public-page .content-area,
body.sng-hub-public-page #primary,
body.sng-hub-public-page .site-main,
body.sng-hub-public-page .site-content > .content-area {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.sng-hub-public-page .entry-content { max-width: none; }

/* Version 7 flexible tables and brackets */
.sng-competition-tabs {
  display:flex;
  gap:0;
  overflow-x:auto;
  border-bottom:1px solid #d9dfdb;
  margin:18px 0 0;
  background:#fff;
}
.sng-competition-tabs a {
  flex:0 0 auto;
  padding:13px 18px;
  color:#1b2821;
  text-decoration:none;
  font-weight:700;
  border-bottom:3px solid transparent;
  white-space:nowrap;
}
.sng-competition-tabs a:hover,
.sng-competition-tabs a.is-active { border-bottom-color:#2d8a31; color:#0f6e56; }
.sng-table-legend { display:flex; flex-wrap:wrap; gap:14px; margin:0 0 14px; font-size:11px; color:#4d5e54; }
.sng-table-legend span { display:inline-flex; align-items:center; gap:6px; }
.sng-table-legend i { width:5px; height:18px; display:inline-block; }
.legend-qualified { background:#159447; }.legend-possible { background:#e8a600; }.legend-playoff { background:#2473d4; }
.sng-standings-table tr.sng-rank-qualified td:first-child { border-left:5px solid #159447; }
.sng-standings-table tr.sng-rank-possible td:first-child { border-left:5px solid #e8a600; }
.sng-standings-table tr.sng-rank-playoff td:first-child { border-left:5px solid #2473d4; }
.sng-standings-table tr.sng-rank-eliminated { opacity:.72; }
.sng-standings-table .sng-position { font-size:16px; }
.sng-short-label { display:none; }
.sng-bracket-dynamic { grid-template-columns:repeat(var(--sng-bracket-columns,4),minmax(220px,1fr)); }
.sng-tournament-overview > h2 { margin-top:28px; }
@media (max-width:760px) {
  .sng-full-label { display:none; }
  .sng-short-label { display:inline; }
  .sng-standings-table { min-width:690px; }
  .sng-competition-tabs a { padding:11px 13px; font-size:12px; }
}

/* ── VERSION 7.1: PROFESSIONAL CLUB REGISTRATION ───────────────────── */
body.sng-club-register-page .entry-title,
body.sng-club-register-page .page-title,
body.sng-club-register-page .entry-header,
body.sng-club-register-page #secondary,
body.sng-club-register-page #right-sidebar,
body.sng-club-register-page .right-sidebar,
body.sng-club-register-page .widget-area,
body.sng-club-register-page .sidebar,
body.sng-club-register-page .sidebar-main,
body.sng-club-register-page .main-sidebar,
body.sng-club-register-page .site-sidebar,
body.sng-club-register-page .sidebar-container,
body.sng-club-register-page aside[role="complementary"] {
  display: none !important;
}
body.sng-club-register-page .content-area,
body.sng-club-register-page #primary,
body.sng-club-register-page .site-main,
body.sng-club-register-page .main-content,
body.sng-club-register-page .site-content > .content-area,
body.sng-club-register-page .content-wrapper {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  margin: 0 auto !important;
}
body.sng-club-register-page .entry-content,
body.sng-club-register-page .site-main > article,
body.sng-club-register-page .hentry {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.sng-club-register-page .site-content,
body.sng-club-register-page .tg-container,
body.sng-club-register-page .container {
  max-width: none !important;
}

.sng-register-wrap {
  width: min(1180px, calc(100% - 32px));
  margin: 28px auto 56px;
  color: #163126;
  font-family: 'Barlow', Arial, sans-serif;
}
.sng-register-wrap * { box-sizing: border-box; }
.sng-register-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 34px;
  align-items: center;
  padding: clamp(30px, 5vw, 58px);
  border: 1px solid #1d4935;
  border-bottom: 4px solid var(--sng-gold);
  border-radius: 18px 18px 0 0;
  background:
    radial-gradient(circle at 88% 20%, rgba(240,165,0,.16), transparent 30%),
    linear-gradient(135deg, #06120b 0%, #0d2a1b 58%, #123d28 100%);
  box-shadow: 0 20px 50px rgba(4, 22, 13, .17);
}
.sng-register-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #8ce6a3 !important;
  font-size: 11px !important;
  letter-spacing: .17em !important;
  font-weight: 900 !important;
}
.sng-register-eyebrow::before {
  content: '';
  width: 28px;
  height: 2px;
  background: var(--sng-gold);
}
.sng-register-hero h1 {
  max-width: 720px;
  margin: 12px 0 14px;
  font-size: clamp(38px, 5vw, 66px);
  line-height: .98;
  letter-spacing: -.025em;
}
.sng-register-hero-copy > p {
  max-width: 700px;
  margin: 0;
  color: #c3d9cc;
  font-size: 17px;
  line-height: 1.55;
}
.sng-register-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 24px;
}
.sng-register-trust-row span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: #e6f3eb;
  font-size: 11px;
  font-weight: 700;
}
.sng-register-trust-row span::before {
  content: '✓';
  color: #78e29a;
  font-weight: 900;
}
.sng-register-hero-card {
  padding: 24px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(8px);
}
.sng-register-hero-card strong { display:block; margin-bottom:6px; color:#fff; font-size:20px; }
.sng-register-hero-card p { margin:0 0 16px; color:#c3d9cc; font-size:13px; line-height:1.5; }
.sng-register-hero-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  width: 100%;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 7px;
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
}
.sng-register-hero-card a:hover { background:#fff; color:#123d28; }

.sng-register-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 24px;
  align-items: start;
  padding: 28px;
  border: 1px solid #dbe8e0;
  border-top: 0;
  border-radius: 0 0 18px 18px;
  background: #eef5f1;
}
.sng-public-form {
  overflow: hidden;
  padding: 0;
  border: 1px solid #d7e5dc;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(20, 61, 40, .08);
}
.sng-form-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 0 24px;
  border-bottom: 1px solid #e1ebe5;
  background: #f8fbf9;
}
.sng-form-steps a {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 68px;
  padding: 10px;
  color: #476254;
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
}
.sng-form-steps b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #e1efe7;
  color: var(--sng-green);
  font-size: 11px;
}
.sng-form-steps a:hover b { background: var(--sng-green); color: #fff; }
.sng-form-section {
  scroll-margin-top: 120px;
  padding: 28px 30px 30px;
  border-bottom: 1px solid #e6eee9;
}
.sng-form-section-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 24px;
}
.sng-form-section-head > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 12px;
  background: #0f6e56;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(15,110,86,.18);
}
.sng-form-section-head h2 { margin:0; color:#122a1f; font-size:21px; line-height:1.2; }
.sng-form-section-head p { margin:5px 0 0; color:#6b8074; font-size:12px; line-height:1.5; }
.sng-public-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
.sng-public-form-grid .sng-full { grid-column: 1 / -1; }
.sng-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.sng-field label,
.sng-field legend {
  margin:0;
  color:#213a2e;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
}
.sng-field label em { color:#d52f45; font-style:normal; }
.sng-field input,
.sng-field select,
.sng-field textarea {
  width:100%;
  min-height:48px;
  margin:0;
  padding:12px 13px;
  border:1px solid #cbdcd2;
  border-radius:8px;
  background:#fff;
  color:#173126;
  font:inherit;
  font-size:14px;
  line-height:1.35;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.sng-field textarea { min-height:145px; resize:vertical; }
.sng-field input::placeholder,
.sng-field textarea::placeholder { color:#98aaa0; }
.sng-field input:hover,
.sng-field select:hover,
.sng-field textarea:hover { border-color:#99b8a6; }
.sng-field input:focus,
.sng-field select:focus,
.sng-field textarea:focus {
  outline:0;
  border-color:var(--sng-green);
  box-shadow:0 0 0 4px rgba(15,110,86,.11);
}
.sng-field small { color:#788d81; font-size:10px; line-height:1.45; }
.sng-age-fieldset { margin:0; padding:0; border:0; }
.sng-choice-chips { display:flex; flex-wrap:wrap; gap:9px; }
.sng-choice-chips label { position:relative; cursor:pointer; }
.sng-choice-chips input { position:absolute; opacity:0; pointer-events:none; }
.sng-choice-chips span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:54px;
  min-height:38px;
  padding:8px 12px;
  border:1px solid #cbdcd2;
  border-radius:999px;
  background:#fff;
  color:#436050;
  font-size:11px;
  font-weight:800;
  transition:.18s ease;
}
.sng-choice-chips input:checked + span { border-color:var(--sng-green); background:#e4f5ec; color:var(--sng-green); box-shadow:0 0 0 2px rgba(15,110,86,.08); }
.sng-choice-chips input:focus-visible + span { outline:3px solid rgba(15,110,86,.22); outline-offset:2px; }
.sng-privacy-callout {
  display:flex;
  gap:10px;
  margin-top:18px;
  padding:13px 15px;
  border:1px solid #cfe0d6;
  border-radius:8px;
  background:#f0f8f4;
  color:#496256;
  font-size:11px;
  line-height:1.45;
}
.sng-privacy-callout strong { flex:0 0 auto; color:var(--sng-green); }
.sng-logo-uploader {
  display:grid;
  grid-template-columns:96px 1fr;
  gap:18px;
  align-items:center;
  padding:17px;
  border:1px dashed #a9c5b5;
  border-radius:10px;
  background:#f8fbf9;
}
.sng-logo-preview {
  display:flex;
  align-items:center;
  justify-content:center;
  width:96px;
  height:96px;
  overflow:hidden;
  border:1px solid #d3e1d9;
  border-radius:14px;
  background:#fff;
  color:#8aa093;
  font-size:30px;
  font-weight:300;
}
.sng-logo-preview img { display:none; width:100%; height:100%; object-fit:contain; padding:7px; }
.sng-logo-preview.has-image span { display:none; }
.sng-logo-preview.has-image img { display:block; }
.sng-logo-upload-input { position:absolute!important; width:1px!important; height:1px!important; opacity:0!important; overflow:hidden!important; }
.sng-file-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 14px;
  border-radius:7px;
  background:var(--sng-green);
  color:#fff!important;
  cursor:pointer;
  font-size:11px!important;
  font-weight:900!important;
}
.sng-file-button:hover { background:#0b5744; }
.sng-file-name { margin:9px 0 4px; color:#3e594b; font-size:11px; font-weight:700; }
.sng-field-footer { display:flex; justify-content:space-between; gap:14px; }
.sng-character-count { color:#788d81; font-size:10px; }
.sng-form-confirmation { padding:24px 30px; background:#fbfcfb; }
.sng-public-check {
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start!important;
  gap:11px!important;
  margin:0!important;
  color:#425c4e!important;
  font-size:11px!important;
  line-height:1.55!important;
  cursor:pointer;
}
.sng-public-check input { width:18px!important; height:18px!important; min-height:18px!important; flex:0 0 18px; margin:1px 0 0!important; accent-color:var(--sng-green); }
.sng-commercial-note { margin:0 30px 20px; border-radius:7px; }
.sng-form-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:24px 30px;
  border-top:1px solid #e3ece6;
  background:#f7faf8;
}
.sng-form-actions > div { display:flex; flex-direction:column; gap:3px; }
.sng-form-actions strong { color:#183226; font-size:13px; }
.sng-form-actions span { color:#718579; font-size:10px; }
.sng-primary-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  padding:12px 20px;
  border:0;
  border-radius:8px;
  background:linear-gradient(135deg, #0f6e56, #118765);
  color:#fff;
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  box-shadow:0 10px 22px rgba(15,110,86,.2);
}
.sng-primary-button:hover { transform:translateY(-1px); box-shadow:0 13px 26px rgba(15,110,86,.26); }
.sng-primary-button span { color:#fff; font-size:17px; }
.sng-register-sidebar { position:sticky; top:105px; display:flex; flex-direction:column; gap:14px; }
.sng-register-side-card {
  padding:20px;
  border:1px solid #d7e5dc;
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 24px rgba(20,61,40,.06);
}
.sng-side-kicker { color:var(--sng-green); font-size:9px; letter-spacing:.14em; font-weight:900; }
.sng-register-side-card h2 { margin:6px 0 17px; color:#173126; font-size:20px; }
.sng-register-side-card h3 { margin:0 0 12px; color:#173126; font-size:16px; }
.sng-register-side-card ol,
.sng-register-side-card ul { margin:0; padding:0; list-style:none; }
.sng-register-side-card ol { display:flex; flex-direction:column; gap:15px; }
.sng-register-side-card ol li { display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:start; }
.sng-register-side-card ol b {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#e4f3eb;
  color:var(--sng-green);
  font-size:10px;
}
.sng-register-side-card ol span { display:flex; flex-direction:column; color:#6d8175; font-size:10px; line-height:1.45; }
.sng-register-side-card ol strong { color:#223d30; font-size:12px; }
.sng-register-side-muted { background:#10251a; border-color:#10251a; color:#fff; }
.sng-register-side-muted h3 { color:#fff; }
.sng-register-side-muted ul { display:flex; flex-direction:column; gap:9px; }
.sng-register-side-muted li { position:relative; padding-left:18px; color:#bed2c5; font-size:11px; }
.sng-register-side-muted li::before { content:'✓'; position:absolute; left:0; color:#7de097; font-weight:900; }
.sng-register-side-warning { border-left:4px solid var(--sng-gold); }
.sng-register-side-warning strong { color:#173126; font-size:12px; }
.sng-register-side-warning p { margin:7px 0 0; color:#6b8074; font-size:10px; line-height:1.5; }
.sng-form-message {
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:18px 0;
  padding:15px 17px;
  border-radius:10px;
  border:1px solid transparent;
}
.sng-form-message strong { font-size:13px; }
.sng-form-message span { font-size:11px; }
.sng-form-success { border-color:#b9e7c8; background:#ebfaef; color:#166534; }
.sng-form-error { border-color:#f0bfc5; background:#fff0f2; color:#991b1b; }
.sng-honeypot { position:absolute!important; left:-10000px!important; top:auto!important; width:1px!important; height:1px!important; overflow:hidden!important; }

@media (max-width: 980px) {
  .sng-register-hero { grid-template-columns:1fr; }
  .sng-register-hero-card { max-width:520px; }
  .sng-register-layout { grid-template-columns:1fr; }
  .sng-register-sidebar { position:static; display:grid; grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 760px) {
  .sng-register-wrap { width:min(100% - 20px, 1180px); margin-top:14px; }
  .sng-register-hero { padding:30px 22px; border-radius:13px 13px 0 0; }
  .sng-register-hero h1 { font-size:38px; }
  .sng-register-hero-copy > p { font-size:14px; }
  .sng-register-layout { padding:14px; border-radius:0 0 13px 13px; }
  .sng-form-steps { grid-template-columns:repeat(4, minmax(52px,1fr)); padding:0 8px; }
  .sng-form-steps a { justify-content:center; min-height:58px; padding:7px 3px; }
  .sng-form-steps a span { display:none; }
  .sng-form-section { padding:24px 18px; }
  .sng-public-form-grid { grid-template-columns:1fr; gap:16px; }
  .sng-public-form-grid .sng-full { grid-column:auto; }
  .sng-form-confirmation { padding:20px 18px; }
  .sng-commercial-note { margin:0 18px 18px; }
  .sng-form-actions { align-items:stretch; flex-direction:column; padding:20px 18px; }
  .sng-primary-button { width:100%; }
  .sng-register-sidebar { grid-template-columns:1fr; }
  .sng-logo-uploader { grid-template-columns:72px 1fr; }
  .sng-logo-preview { width:72px; height:72px; }
}
@media (max-width: 430px) {
  .sng-register-wrap { width:100%; margin:0 auto 30px; }
  .sng-register-hero,
  .sng-register-layout,
  .sng-public-form { border-radius:0; }
  .sng-register-layout { border-left:0; border-right:0; }
  .sng-register-trust-row span { width:100%; }
  .sng-logo-uploader { grid-template-columns:1fr; }
  .sng-logo-preview { width:88px; height:88px; }
  .sng-field-footer { align-items:flex-start; flex-direction:column; gap:3px; }
}
