:root {
  --ink: var(--brand-ink);
  --green: var(--brand-green);
  --green-2: var(--brand-green-2);
  --mint: var(--brand-mint);
  --sand: var(--brand-sand);
  --paper: var(--brand-paper);
  --white: var(--brand-white);
  --line: var(--brand-line);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background-color: var(--paper); background-image: radial-gradient(circle at 100% 0, rgba(72,191,208,.08), transparent 26rem); font-family: "DM Sans", sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus-ring,#ce951d);outline-offset:2px}
.admin-page .site-header>nav{display:flex;align-items:center;justify-content:flex-end;gap:18px}
@media(max-width:650px){.admin-page .site-header{height:auto;min-height:66px;padding-inline:12px;gap:10px}.admin-page .brand{flex:none;gap:8px;font-size:17px;letter-spacing:.06em;white-space:nowrap}.admin-page .brand-logo{width:28px;height:28px}.admin-page .site-header>nav{gap:10px;min-width:0;font-size:13px;text-align:right}.admin-page .site-header>nav a{font-weight:700}.registration-admin-page .site-header>nav a:last-child{display:none}}

.site-header { height: 76px; padding: 0 clamp(22px, 5vw, 76px); display: flex; align-items: center; justify-content: space-between; background: radial-gradient(circle at 12% -80%, rgba(72,191,208,.22), transparent 34%), var(--green); color: white; position: sticky; top: 0; z-index: 20; border-bottom: 1px solid rgba(255,255,255,.13); box-shadow: 0 8px 24px rgba(7,29,24,.16); }
.site-header::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; background: var(--brand-accent-gradient); pointer-events: none; }
.brand { display: inline-flex; gap: 12px; align-items: center; font: 700 24px/1 "Oswald", sans-serif; letter-spacing: .08em; }
.brand-logo { width: 34px; height: 34px; display: block; flex: 0 0 auto; filter: drop-shadow(0 3px 7px rgba(0,0,0,.2)); }
#main-nav { display: flex; gap: clamp(20px, 3vw, 42px); align-items: center; }
#main-nav a { font-size: 14px; font-weight: 600; color: rgba(255,255,255,.78); }
#main-nav a:hover, #main-nav a:focus-visible { color: var(--mint); }
.menu-button { display: none; border: 1px solid rgba(255,255,255,.4); background: transparent; color: white; padding: 8px 12px; }

.hero { min-height: 680px; padding: 80px clamp(22px, 7vw, 110px); color: white; background: radial-gradient(circle at 72% 40%, rgba(232,201,140,.12), transparent 24%), linear-gradient(120deg, #102d27, var(--green)); display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: center; overflow: hidden; }
.hero-copy { max-width: 760px; }
.eyebrow { margin: 0 0 18px; color: var(--green-2); font-size: 12px; font-weight: 700; line-height: 1.4; letter-spacing: .18em; text-transform: uppercase; }
.hero .eyebrow { color: var(--sand); }
.hero .eyebrow span, .live-label span { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--mint); }
h1, h2 { margin: 0; font-family: "Oswald", sans-serif; text-transform: uppercase; letter-spacing: -.025em; }
h1 { max-width: 780px; font-size: clamp(58px, 8vw, 116px); line-height: .91; }
h1 em { color: var(--sand); font-style: normal; }
.hero-intro { max-width: 650px; margin: 30px 0 0; color: rgba(255,255,255,.72); font-size: clamp(17px, 2vw, 21px); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.hero-text-link { min-height: 50px; display: inline-flex; align-items: center; padding: 0 8px; color: rgba(255,255,255,.78); font-size: 14px; font-weight: 700; }
.hero-text-link:hover, .hero-text-link:focus-visible { color: var(--mint); }
.button { min-height: 50px; padding: 0 25px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--control-radius); cursor: pointer; font-weight: 700; box-shadow: var(--shadow-sm); transition: transform .2s, background .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.button-primary { background-color: var(--mint); background-image: linear-gradient(135deg, var(--mint), color-mix(in srgb, var(--mint), white 24%)); color: var(--ink); }
.button-ghost { border-color: rgba(255,255,255,.45); color: white; }
.button-sand { background: var(--sand); color: var(--ink); }
.hero-media { width: min(100%, 500px); height: 520px; justify-self: end; position: relative; }
.hero-photo { position: absolute; display: block; overflow: hidden; box-shadow: 18px 18px 0 rgba(0,0,0,.18); }
.hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-photo-main { inset: 0 0 70px 95px; width: calc(100% - 95px); height: 450px; }
.hero-photo-main img { object-position: 50% 12%; }
.hero-photo-secondary { left: 0; bottom: 0; width: 58%; height: 190px; border: 9px solid var(--green); }
.hero-photo-secondary img { width: 150%; max-width: none; object-position: left center; }
.date-card { position: absolute; top: 26px; left: 52px; width: 132px; padding: 16px; color: var(--ink); background: var(--sand); box-shadow: 8px 8px 0 rgba(0,0,0,.18); }
.date-card small { display: block; font: 700 11px "Oswald"; letter-spacing: .16em; }
.date-card strong { display: block; margin: 2px 0 -4px; font: 700 70px/.95 "Oswald"; }
.date-card span { font: 600 12px "Oswald"; letter-spacing: .1em; }
.format-card { position: absolute; right: -10px; bottom: 26px; padding: 15px 18px; display: grid; gap: 4px; color: var(--ink); background: var(--mint); box-shadow: 8px 8px 0 rgba(0,0,0,.18); }
.format-card span { font-size: 11px; font-weight: 600; }
.format-card b { font: 600 14px "Oswald"; text-transform: uppercase; }
.facts-grid small { display: block; margin-bottom: 6px; font-size: 10px; font-weight: 700; letter-spacing: .16em; opacity: .65; }

.section { padding: 100px clamp(22px, 7vw, 110px); scroll-margin-top: 74px; }
.section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 6vw; align-items: end; margin-bottom: 50px; }
.section-heading h2, .registration-copy h2 { font-size: clamp(42px, 5vw, 72px); line-height: .98; }
.section-heading > p { margin: 0; color: var(--muted); line-height: 1.7; }
.tournaments-section { background: #f4f0e7; }
.tournament-legend { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; color: var(--muted); font-size: 12px; font-weight: 700; }
.tournament-legend span, .tournament-status { display: inline-flex; gap: 7px; align-items: center; }
.status-dot { width: 12px; height: 12px; display: inline-block; flex: 0 0 auto; border-radius: 50%; background: #f39a35; }
.status-dot.live { background: #a8dc20; }
.status-dot.finalizing { background: #d4ab49; }
.status-dot.finished { background: #9ed8e1; }
.tournament-list { min-width: 760px; }
.tournament-list th { padding: 11px 13px; }
.tournament-list td { padding: 13px; }
.tournament-list td:nth-child(2) { width: 90px; font: 700 14px "Oswald"; color: var(--green); }
.tournament-list td:nth-child(3) { font-weight: 700; }
.tournament-list a { color: #0754c7; text-decoration: underline; text-underline-offset: 3px; }
.tournament-list a:hover, .tournament-list a:focus-visible { color: var(--green); }
.tournament-list tbody tr:nth-child(even) { background: rgba(18,60,51,.035); }
.tournament-directory { display: grid; gap: 16px; }
.tournament-directory-card { min-height: 126px; padding: 18px 22px 18px 18px; display: grid; grid-template-columns: 136px minmax(0, 1fr) auto auto; gap: 24px; align-items: center; position: relative; overflow: hidden; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-left: 6px solid var(--green); box-shadow: 0 7px 20px rgba(18,60,51,.055); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.tournament-directory-card::after { content: ""; position: absolute; inset: 0 0 0 auto; width: 4px; background: transparent; transition: background .2s; }
.tournament-directory-card:hover, .tournament-directory-card:focus-visible { border-color: rgba(18,60,51,.35); box-shadow: 0 18px 38px rgba(18,60,51,.14); transform: translateY(-3px); }
.tournament-directory-card:hover::after, .tournament-directory-card:focus-visible::after { background: var(--mint); }
.tournament-card-live { border-left-color: #8fbe18; }
.tournament-card-finalizing { border-left-color: #d4ab49; }
.tournament-card-finished { border-left-color: #78b9c5; }
.tournament-date-box { min-height: 88px; padding: 9px 12px; display: grid; align-content: center; justify-items: center; gap: 4px; color: var(--ink); text-align: center; }
.tournament-date-year { color: #5f5543; font: 700 9px/1 "DM Sans"; letter-spacing: .1em; }
.tournament-date-main { font: 700 20px/1 "Oswald"; letter-spacing: .02em; white-space: nowrap; }
.tournament-date-main.tournament-date-range { font-size: 15px; line-height: 1.05; letter-spacing: 0; white-space: pre-line; }
.tournament-date-time { color: #5f5543; font: 700 9px/1 "DM Sans"; letter-spacing: .1em; white-space: nowrap; }
.tournament-id-box { position: relative; background: linear-gradient(145deg, #efd9a8, var(--sand)); border: 1px solid rgba(19,32,29,.12); box-shadow: inset 0 -4px 0 rgba(19,32,29,.08); }
.tournament-directory-copy { min-width: 0; display: grid; gap: 3px; }
.tournament-directory-copy > small { color: var(--green-2); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.tournament-directory-copy > strong { font: 600 clamp(23px, 2.5vw, 35px)/1.08 "Oswald"; letter-spacing: -.01em; text-transform: uppercase; }
.tournament-directory-copy > span { width: fit-content; margin-top: 4px; padding: 4px 7px; color: #59645f; background: #f0eee8; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.tournament-directory-state { padding: 8px 11px; display: inline-flex; align-items: center; gap: 7px; color: #45504c; background: #f0eee8; border: 1px solid var(--line); font-size: 11px; font-weight: 700; white-space: nowrap; }
.tournament-card-live .tournament-directory-state { background: #eff7d8; }
.tournament-card-finalizing .tournament-directory-state { background: #fff4d9; }
.tournament-card-finished .tournament-directory-state { background: #e8f3f5; }
.tournament-directory-action { min-height: 42px; padding: 0 14px; display: inline-flex; align-items: center; color: var(--green); border: 1px solid rgba(18,60,51,.35); font-size: 12px; font-weight: 700; white-space: nowrap; }
.tournament-directory-card:hover .tournament-directory-action, .tournament-directory-card:focus-visible .tournament-directory-action { color: white; background: var(--green); border-color: var(--green); }
.tournament-directory-empty { padding: 40px; color: #68716e; background: var(--white); border: 1px solid var(--line); text-align: center; }
.tournaments-pagination { margin-top: 22px; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }
.tournaments-pagination[hidden] { display: none; }
.tournaments-pagination button { min-height: 46px; padding: 0 18px; color: white; background: var(--green); border: 0; cursor: pointer; font-weight: 700; }
.tournaments-pagination button:disabled { color: #737a77; background: #d6d5d0; cursor: not-allowed; }
.tournaments-pagination span { color: var(--muted); font-size: 13px; font-weight: 700; text-align: center; }
.schedule-section { min-height: calc(100vh - 76px - 150px); background: var(--white); }
.schedule-list { display: grid; gap: 14px; }
.schedule-empty { min-height: 120px; padding: 28px; display: grid; place-items: center; color: #66706d; background: #f4f0e7; border: 1px solid var(--line); text-align: center; font-weight: 700; }
.schedule-empty:hover, .schedule-empty:focus-visible { color: var(--green); border-color: var(--green); }
.schedule-card { min-height: 150px; display: grid; grid-template-columns: 136px 1fr auto; gap: 28px; align-items: center; padding: 24px 28px; color: var(--ink); background: #f4f0e7; border: 1px solid var(--line); border-left: 6px solid var(--green); transition: transform .2s, box-shadow .2s; }
.schedule-card:hover, .schedule-card:focus-visible { transform: translateY(-3px); box-shadow: 0 16px 35px rgba(18,60,51,.12); }
.schedule-card time.tournament-date-box { position: relative; background: linear-gradient(145deg, #efd9a8, var(--sand)); border: 1px solid rgba(19,32,29,.12); box-shadow: inset 0 -4px 0 rgba(19,32,29,.08); }
.schedule-card-copy small { color: #69726f; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.schedule-card-copy h3 { margin: 5px 0; font-size: clamp(28px, 3vw, 42px); }
.schedule-card-copy p { margin: 0; color: #69726f; }
.schedule-card-action { color: var(--green); font-weight: 700; white-space: nowrap; }
.tournaments-view .schedule-section, .tournaments-view .flyers-section { display: none; }
.national-tournaments-view .schedule-section, .national-tournaments-view .tournaments-section { display: none; }
.home-view .tournaments-section, .home-view .flyers-section { display: none; }
.tournament-detail-header { margin-top: 18px; padding: 52px clamp(22px, 7vw, 110px) 0; color: var(--ink); background: #f4f0e7; border-bottom: 1px solid var(--line); }
.tournament-detail-header[hidden] { display: none; }
.tournament-detail-header > * { width: min(100%, 1480px); margin-left: auto; margin-right: auto; }
.back-to-tournaments { display: inline-flex; margin-bottom: 26px; color: var(--green); font-size: 13px; font-weight: 700; }
.back-to-tournaments:hover, .back-to-tournaments:focus-visible { text-decoration: underline; }
.tournament-detail-title { display: flex; justify-content: space-between; gap: 28px; align-items: flex-end; }
.tournament-detail-title h1 { margin: 5px 0 0; font-size: clamp(38px, 5vw, 70px); line-height: 1; }
.tournament-detail-status { display: inline-flex; gap: 9px; align-items: center; padding: 10px 14px; background: white; border: 1px solid var(--line); font-size: 13px; font-weight: 700; }
.tournament-detail-actions { margin-top: 24px; display: flex; gap: 10px; }
.tournament-detail-actions .button { min-width: 160px; }
.detail-button-secondary { color: var(--green); border-color: var(--green); background: transparent; }
.detail-button-secondary:hover, .detail-button-secondary:focus-visible { color: white; background: var(--green); }
.tournament-detail-description { max-width: 1100px; margin-top: 22px; margin-bottom: 0; color: #3f4c48; font-size: 14px; line-height: 1.6; }
.tournament-coming-soon { margin-top: 24px; display: grid; grid-template-columns: repeat(2, minmax(180px, 280px)); gap: 10px; }
.tournament-coming-soon div { min-height: 58px; padding: 11px 16px; display: grid; gap: 2px; align-content: center; color: #686e6b; background: #dededb; border: 1px solid #c9c9c5; }
.tournament-coming-soon strong { font: 600 17px "Oswald"; text-transform: uppercase; }
.tournament-coming-soon span { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.tournament-detail-facts { margin-top: 32px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; padding: 1px; background: var(--line); }
.tournament-detail-facts div { padding: 18px 20px; background: white; }
.tournament-detail-facts div:last-child { grid-column: auto; }
.tournament-detail-facts dt { margin-bottom: 6px; color: #747d79; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.tournament-detail-facts dd { margin: 0; font: 600 16px "Oswald"; text-transform: uppercase; }
.tournament-winners { margin-top: 32px; padding: 28px; color: white; background: var(--green); border-top: 5px solid var(--mint); }
.tournament-winners[hidden] { display: none; }
.tournament-winners-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.tournament-winners-heading .eyebrow { margin-bottom: 4px; color: var(--mint); }
.tournament-winners-heading h2 { font-size: clamp(32px, 4vw, 48px); }
.tournament-winners-heading > p { margin: 0; color: rgba(255,255,255,.65); font-size: 12px; }
.tournament-winners-groups { margin-top: 24px; display: grid; gap: 22px; }
.winners-category { padding-top: 18px; border-top: 1px solid rgba(255,255,255,.18); }
.winners-category:first-child { padding-top: 0; border-top: 0; }
.winners-category h3 { margin: 0 0 14px; color: var(--sand); font: 600 20px "Oswald"; text-transform: uppercase; }
.winners-podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; }
.winner-card { min-height: 142px; padding: 22px 16px 18px; display: grid; place-items: center; align-content: center; gap: 7px; position: relative; overflow: hidden; color: var(--ink); background: #f6f1e7; border-top: 7px solid transparent; box-shadow: 0 12px 24px rgba(0,0,0,.15); text-align: center; }
.winner-card::after { position: absolute; right: 10px; bottom: -15px; color: rgba(19,32,29,.08); font: 700 76px/1 "Oswald"; }
.winner-position-1 { min-height: 196px; background: linear-gradient(145deg, #f4dc9f, var(--sand)); border-top-color: #e7ad23; box-shadow: 0 18px 34px rgba(0,0,0,.22); }
.winner-position-1::after { content: "1"; }
.winner-position-2 { min-height: 164px; background: linear-gradient(145deg, #f2f4f3, #cbd3d1); border-top-color: #9ca8a5; }
.winner-position-2::after { content: "2"; }
.winner-position-3 { min-height: 146px; background: linear-gradient(145deg, #efd2bb, #c9926e); border-top-color: #a8653e; }
.winner-position-3::after { content: "3"; }
.winner-trophy { position: relative; z-index: 1; font-size: 36px; line-height: 1; filter: drop-shadow(0 3px 2px rgba(0,0,0,.14)); }
.winner-card small { color: #66706c; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.winner-players { max-width: 100%; display: grid; gap: 4px; position: relative; z-index: 1; }
.winner-card strong { max-width: 100%; font: 600 clamp(16px, 2vw, 23px)/1.2 "Oswald"; overflow-wrap: anywhere; text-transform: uppercase; }
.tournament-tabs { margin-top: 30px; display: flex; gap: 4px; overflow-x: auto; }
.tournament-tabs button { min-height: 48px; padding: 0 20px; border: 0; border-bottom: 4px solid transparent; color: #51605b; background: transparent; cursor: pointer; font-weight: 700; white-space: nowrap; }
.tournament-tabs button:hover { color: var(--green); background: rgba(18,60,51,.05); }
.tournament-tabs button.active { color: white; background: var(--green); border-bottom-color: var(--mint); }
.tournament-panel[hidden] { display: none !important; }
.tournament-mode .schedule-section, .tournament-mode .tournaments-section, .tournament-mode .flyers-section { display: none; }
.tournament-mode .tournament-panel { min-height: 480px; scroll-margin-top: 96px; }
.facts-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.facts-grid article { min-height: 180px; padding: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.facts-grid article > span { display: block; margin-bottom: 38px; color: #89918e; font: 500 13px "Oswald"; }
.facts-grid strong { font: 600 20px/1.3 "Oswald"; text-transform: uppercase; }

.registration-section { display: block; background: #f4f0e7; color: var(--ink); }
.tournament-mode .registration-section { scroll-margin-top: 76px; }
.tournament-mode.registration-mode .registration-section { min-height: calc(100vh - 76px); }
.registration-availability { margin-top: 22px; padding: 16px 18px; display: grid; grid-template-columns: 1fr auto; gap: 3px 18px; color: var(--ink); background: var(--mint); border-left: 5px solid var(--sand); }
.registration-availability > span { align-self: end; font-size: 11px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.registration-availability > strong { grid-row: 1 / 3; grid-column: 2; align-self: center; font: 700 42px/1 "Oswald"; }
.registration-availability > small { color: #43504c; font-size: 11px; }
.registration-availability-link { grid-column: 1 / -1; margin-top: 8px; padding-top: 10px; display: block; color: var(--green); border-top: 1px solid rgba(18,60,51,.22); font: 600 18px/1 "Oswald", sans-serif; text-transform: uppercase; text-decoration: none; }
.registration-availability-link:hover, .registration-availability-link:focus-visible { color: var(--green-2); text-decoration: underline; text-underline-offset: 3px; }
.registration-availability.closed { color: #3f4845; background: #d8d9d4; border-left-color: #9a9e9b; }
.registration-confirmation { width: min(100%, 760px); margin: 0 auto 22px; padding: 24px; display: grid; gap: 18px; color: var(--ink); background: var(--white); border: 2px solid var(--green); box-shadow: 0 12px 32px rgba(18,60,51,.1); }
.registration-confirmation[hidden] { display: none; }
.registration-form[hidden] { display: none !important; }
.registration-players-link { width: min(100%, 760px); margin: 18px auto 0; display: block; color: var(--green); font-size: 13px; font-weight: 700; text-align: center; text-decoration: underline; text-underline-offset: 4px; }
.registration-confirmation-number { padding: 16px 18px; display: grid; grid-template-columns: 1fr auto; gap: 12px 18px; align-items: center; color: var(--ink); background: var(--mint); border: 2px solid var(--green); border-left: 5px solid var(--sand); }
.registration-confirmation-number span { align-self: end; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.registration-confirmation-number strong { grid-row: 1 / 3; grid-column: 2; font: 700 52px/1 "Oswald"; }
.registration-confirmation-message { display: grid; gap: 5px; }
.registration-confirmation-message strong { font: 600 27px/1.1 "Oswald"; text-transform: uppercase; }
.registration-confirmation-message span { color: #53635d; font-size: 13px; line-height: 1.5; }
.registration-confirmation .button { justify-self: start; }
.registration-form { width: min(100%, 760px); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 34px; background: var(--white); color: var(--ink); box-shadow: 0 12px 32px rgba(18,60,51,.1); }
.registration-form-header { padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.registration-form-header .eyebrow { margin-bottom: 8px; }
.registration-tournament-context { margin: 0 0 20px; padding: 12px 15px; display: grid; gap: 3px; background: #eef5f1; border-left: 5px solid var(--sand); }
.registration-tournament-context[hidden] { display: none; }
.registration-tournament-context > span { color: #65716d; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.registration-tournament-context > strong { font: 600 20px/1.25 "Oswald", sans-serif; text-transform: uppercase; }
.registration-tournament-details { margin: 13px 0 0; padding-top: 13px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; border-top: 1px solid rgba(18,60,51,.18); }
.registration-tournament-details div { min-width: 0; display: grid; gap: 2px; }
.registration-tournament-details dt { color: #65716d; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.registration-tournament-details dd { margin: 0; color: var(--ink); font-size: 12px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.registration-form-header h3 { margin: 0; font: 600 clamp(28px, 3vw, 40px) "Oswald"; text-transform: uppercase; }
.registration-form-header > p:last-child { margin: 7px 0 0; color: #69726f; font-size: 12px; }
.field { display: grid; gap: 8px; }
.field.full, .full { grid-column: 1 / -1; }
label { font-size: 12px; font-weight: 700; }
input, select { width: 100%; height: 48px; padding: 0 13px; border: 1px solid #b8bcb8; border-radius: 0; background: white; }
input:focus, select:focus { outline: 3px solid rgba(200,240,90,.55); border-color: var(--green); }
.check { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; line-height: 1.5; }
.check input { width: 18px; height: 18px; margin: 1px 0 0; }
.form-status { min-height: 20px; margin: 0; font-size: 13px; }
.form-status.success { color: #287147; }
.form-status.error { color: #a42e2e; }
.registration-submit { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 8px; }
.registration-submit .button { flex: 0 0 auto; border: 0; }
.registration-submit .button:disabled { cursor: not-allowed; opacity: .55; transform: none; }
.registration-privacy { max-width: 340px; margin: 0; color: #69726f; font-size: 12px; line-height: 1.5; }
.registration-another { padding: 22px; display: grid; gap: 8px; color: var(--ink); background: #eef7d8; border: 1px solid #b7d37a; }
.registration-another strong { font: 600 23px "Oswald"; text-transform: uppercase; }
.registration-another span { color: #53634b; font-size: 13px; line-height: 1.45; }
.registration-another .button { justify-self: start; margin-top: 6px; }
.registration-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.results-section { background: var(--white); }
.registrants-section { background: #eae5da; }
.registrants-total { display: flex; align-items: baseline; gap: 9px; color: var(--muted); font-size: 13px; }
.registrants-total strong { color: var(--green); font: 700 38px/1 "Oswald"; }
.registration-cta { min-height: 46px; }
.mobile-registration-cta { display: none; }
.desktop-registration-cta, .mobile-registration-cta { font: 600 19px/1 "Oswald", sans-serif; text-transform: uppercase; }
.detail-tournament-flyer { max-width: 520px; margin-top: 28px; padding: 12px; background: white; border: 1px solid var(--line); box-shadow: 0 12px 28px rgba(18,60,51,.1); }
.detail-tournament-flyer[hidden] { display: none; }
.detail-tournament-flyer img { display: block; width: 100%; max-height: 620px; object-fit: contain; }
.registrants-table td:nth-child(2) { font-weight: 700; }
.registrants-groups { display: grid; grid-template-columns: 1fr; gap: 22px; align-items: start; }
.registrants-group { min-width: 0; background: var(--white); border: 1px solid var(--line); }
.registrants-group > header { min-height: 56px; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; color: white; background: var(--green); }
.registrants-group h3 { margin: 0; font: 600 22px "Oswald"; letter-spacing: .02em; text-transform: uppercase; }
.registrants-group header span { color: rgba(255,255,255,.72); font-size: 12px; }
.registrants-group header strong { color: var(--mint); font-size: 15px; }
.table-wrap.compact-table-wrap { border: 0; box-shadow: none; }
.compact-table-wrap table { min-width: 860px; table-layout: auto; }
.compact-table-wrap th { padding: 7px 10px; color: #111; background: #eee; border-bottom: 1px solid #b8b8b8; font-size: 9px; }
.compact-table-wrap td { padding: 6px 10px; color: #111; background: #fff; border-bottom: 1px solid #ddd; font-size: 12px; line-height: 1.25; white-space: nowrap; }
.compact-table-wrap tbody tr:nth-child(even) td { background: #f5f5f5; }
.compact-table-wrap td:first-child { width: 82px; text-align: center; }
.compact-table-wrap td.team-number-cell { color: var(--green); background: #eef7d8; font: 700 18px/1 "Oswald"; }
.compact-table-wrap td.team-number-cell::before { content: attr(data-label); display: block; margin-bottom: 5px; color: #59634f; font: 700 9px/1 "DM Sans"; letter-spacing: .08em; }
.compact-table-wrap td:nth-child(2), .compact-table-wrap td:nth-child(3) { width: 21%; font-weight: 600; }
.compact-table-wrap td:nth-child(4) { width: 22%; }
.compact-table-wrap .empty-row td { padding: 28px 12px; }
.loading-row td { color: #59635f; }
.loading-row td::after { content: ""; display: inline-block; width: 12px; height: 12px; margin-left: 9px; vertical-align: -2px; border: 2px solid #c9cfcc; border-top-color: var(--green); border-radius: 50%; animation: loading-spin .8s linear infinite; }
@keyframes loading-spin { to { transform: rotate(360deg); } }
.privacy-caption { margin: 14px 0 0; color: #69726f; font-size: 12px; }
.section-heading.compact { grid-template-columns: 1fr auto; }
.live-label { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.category-tabs { display: flex; gap: 3px; margin-bottom: 18px; }
.category-tabs button { padding: 12px 20px; border: 0; background: #e8e5dc; cursor: pointer; font-weight: 700; }
.category-tabs button.active { background: var(--green); color: white; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); }
table { width: 100%; border-collapse: collapse; min-width: 720px; }
th { padding: 15px; color: white; background: var(--green); text-align: left; font-size: 11px; letter-spacing: .12em; }
td { padding: 17px 15px; border-bottom: 1px solid var(--line); font-size: 14px; }
td:first-child, td:last-child { font-weight: 700; }
.empty-row td { padding: 50px 20px; color: #737b78; text-align: center; }

.matches-section { background: #eae5da; }
.matches-list { display: grid; gap: 12px; }
.match-empty { padding: 36px; display: flex; gap: 22px; align-items: center; background: var(--white); border-left: 5px solid var(--sand); }
.match-empty span { font: 600 34px "Oswald"; color: #9ba09d; }
.match-empty p { margin: 0; color: #67706d; }
.match-card { padding: 18px 22px; display: grid; grid-template-columns: 110px 1fr auto 1fr 100px; gap: 18px; align-items: center; background: var(--white); border-left: 5px solid var(--green); }
.match-card small { color: #737b78; }
.match-card .team:last-of-type { text-align: right; }
.score { font: 700 24px "Oswald"; }
.match-status { padding: 7px 10px; text-align: center; font-size: 11px; font-weight: 700; background: #e9e6de; }

footer { min-height: 150px; padding: 40px clamp(22px, 7vw, 110px); display: grid; grid-template-columns: 1fr auto auto; gap: 35px; align-items: center; color: rgba(255,255,255,.65); background: #0d211d; font-size: 13px; }
.footer-brand { color: white; }

@media (max-width: 900px) {
  .hero { min-height: auto; grid-template-columns: 1fr; }
  .hero-media { justify-self: start; }
  .facts-grid { grid-template-columns: 1fr 1fr; }
  .registration-section { grid-template-columns: 1fr; }
  .section-heading { grid-template-columns: 1fr; }
  .match-card { grid-template-columns: 70px 1fr auto; }
  .match-card .team:last-of-type { text-align: left; }
  .match-card .score { grid-column: 3; }
  .registrants-groups { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .site-header { height: 66px; }
  .menu-button { display: block; }
  #main-nav { position: absolute; top: 66px; left: 0; right: 0; padding: 22px; display: none; flex-direction: column; align-items: flex-start; background: var(--green); }
  #main-nav.open { display: flex; }
  .hero { padding-top: 60px; }
  .hero-media { height: 430px; }
  .hero-photo-main { left: 55px; width: calc(100% - 55px); height: 380px; }
  .hero-photo-secondary { width: 64%; height: 155px; }
  .date-card { left: 18px; }
  .section { padding-top: 72px; padding-bottom: 72px; }
  .facts-grid { grid-template-columns: 1fr; }
  .registration-form { grid-template-columns: 1fr; padding: 24px; }
  .registration-confirmation { padding: 18px; }
  .registration-confirmation-number { grid-template-columns: 1fr auto; padding: 14px; }
  .registration-confirmation-number strong { font-size: 46px; }
  .registration-confirmation .button { width: 100%; }
  .field { grid-column: 1 / -1; }
  .registration-submit { align-items: stretch; flex-direction: column; }
  .registration-submit .button { width: 100%; }
  .registration-another .button { width: 100%; justify-content: center; }
  .section-heading.compact { grid-template-columns: 1fr; }
  .category-tabs { overflow-x: auto; }
  footer { grid-template-columns: 1fr; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* Responsive refinement: desktop and touch layouts */
html { overflow-x: hidden; }
body { min-width: 320px; }
.site-header, .hero { padding-left: max(22px, calc((100vw - 1480px) / 2)); padding-right: max(22px, calc((100vw - 1480px) / 2)); }
.section:not(.registration-section) > * { width: min(100%, 1480px); margin-left: auto; margin-right: auto; }
.hero { max-width: 1720px; margin-inline: auto; }
button, a, input, select { touch-action: manipulation; }

@media (min-width: 1100px) {
  .site-header { height: 76px; }
  .hero { min-height: calc(100vh - 76px); gap: clamp(60px, 8vw, 140px); }
  .section { padding-top: 110px; padding-bottom: 110px; }
  .tournament-list-wrap, .table-wrap { box-shadow: 0 16px 45px rgba(18, 60, 51, .06); }
  .registration-section { grid-template-columns: minmax(300px, .72fr) minmax(600px, 1.28fr); padding-left: max(7vw, calc((100vw - 1480px) / 2)); padding-right: max(7vw, calc((100vw - 1480px) / 2)); }
}

@media (max-width: 760px) {
  .desktop-registration-cta { display: none; }
  .mobile-registration-cta { display: inline-flex; }
  .site-header { position: sticky; top: 0; z-index: 50; height: 64px; padding-inline: 18px; }
  .brand { font-size: 14px; }
  .brand-logo { width: 30px; height: 30px; }
  .menu-button { min-width: 48px; min-height: 44px; padding: 0 12px; }
  #main-nav { top: 64px; max-height: calc(100vh - 64px); overflow-y: auto; box-shadow: 0 16px 30px rgba(0,0,0,.22); }
  #main-nav a { width: 100%; min-height: 46px; display: flex; align-items: center; border-bottom: 1px solid rgba(255,255,255,.12); }

  .hero { min-height: auto; padding: 52px 18px 68px; gap: 42px; }
  .hero-copy h1 { font-size: clamp(48px, 15vw, 72px); }
  .hero-intro { font-size: 16px; line-height: 1.6; }
  .hero-actions { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .button { width: 100%; min-height: 52px; }
  .hero-text-link { min-height: 44px; display: flex; align-items: center; justify-content: center; }
  .hero-media { width: 100%; height: min(105vw, 420px); }
  .hero-photo-main { left: 38px; width: calc(100% - 38px); height: calc(100% - 42px); }
  .hero-photo-secondary { width: 58%; height: 36%; border-width: 6px; }
  .date-card { top: 18px; left: 6px; width: 108px; padding: 12px; }
  .date-card strong { font-size: 54px; }
  .format-card { right: 0; bottom: 8px; max-width: 72%; }

  .section { padding: 66px 18px; }
  .section-heading { gap: 18px; margin-bottom: 30px; }
  .section-heading h2, .registration-copy h2 { font-size: clamp(38px, 12vw, 54px); }
  .tournament-legend { gap: 10px 16px; }
  .facts-grid article { min-height: 135px; padding: 20px; }
  .facts-grid article > span { margin-bottom: 22px; }

  .registration-section { gap: 36px; }
  .registration-note { margin-top: 24px; }

  .table-wrap { overflow: visible; border: 0; box-shadow: none; }
  .tournament-list, .registrants-table, .results-section table { min-width: 0; }
  .tournament-list thead, .registrants-table thead, .results-section table thead { display: none; }
  .tournament-list tbody, .registrants-table tbody, .results-section table tbody { display: grid; gap: 12px; }
  .tournament-list tr, .registrants-table tr, .results-section table tr { display: grid; padding: 16px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 7px 18px rgba(18,60,51,.06); }
  .tournament-list td, .registrants-table td, .results-section table td { min-height: 34px; padding: 7px 0; display: grid; grid-template-columns: minmax(105px, 38%) 1fr; gap: 12px; align-items: baseline; border-bottom: 1px solid var(--line); font-size: 14px; }
  .tournament-list td:last-child, .registrants-table td:last-child, .results-section table td:last-child { border-bottom: 0; }
  .tournament-list td::before, .registrants-table td::before, .results-section table td::before { content: attr(data-label); color: #69726f; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .tournament-list tr.empty-row,
  .registrants-table tr.empty-row,
  .results-section table tr.empty-row,
  .compact-table-wrap .compact-registrants-table tr.empty-row { display: block; }
  .tournament-list tr.empty-row td,
  .registrants-table tr.empty-row td,
  .results-section table tr.empty-row td,
  .compact-table-wrap .compact-registrants-table tr.empty-row td { display: block; padding: 32px 12px; text-align: center; }
  .empty-row td::before { display: none; }
  .registrants-groups { gap: 16px; }
  .registrants-group > header { min-height: 50px; padding: 10px 13px; }
  .registrants-group h3 { font-size: 20px; }
  .compact-table-wrap { overflow: visible; border: 0; }
  .compact-table-wrap .compact-registrants-table { display: block; width: 100%; min-width: 0; }
  .compact-table-wrap .compact-registrants-table thead { display: none; }
  .compact-table-wrap .compact-registrants-table tbody { display: grid; gap: 12px; }
  .compact-table-wrap .compact-registrants-table tr { display: grid; grid-template-columns: 106px minmax(0, 1fr); column-gap: 10px; padding: 12px; background: var(--white); border: 1px solid var(--line); box-shadow: 0 7px 18px rgba(18,60,51,.06); }
  .compact-table-wrap .compact-registrants-table td { grid-column: 2; min-width: 0; min-height: 0; padding: 6px 0; display: grid; grid-template-columns: minmax(96px, 38%) minmax(0, 1fr); gap: 8px; align-items: baseline; border-bottom: 1px solid var(--line); font-size: 14px; overflow-wrap: anywhere; }
  .compact-table-wrap .compact-registrants-table td:last-child { border-bottom: 0; }
  .compact-table-wrap .compact-registrants-table td::before { display: block; content: attr(data-label); color: #69726f; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .compact-table-wrap .compact-registrants-table td.team-number-cell { grid-column: 1; grid-row: 1; display: grid; grid-template-columns: 1fr; gap: 4px; align-content: start; justify-items: start; align-self: start; padding: 8px 9px; border: 2px solid var(--green); background: var(--white); text-align: left; }
  .compact-table-wrap .compact-registrants-table td.team-number-cell::before { display: block; }
  .compact-table-wrap .compact-registrants-table td:nth-child(2) { grid-column: 2; grid-row: 1; }
  .compact-table-wrap .compact-registrants-table td:nth-child(3) { grid-column: 2; grid-row: 2; }
  .compact-table-wrap .compact-registrants-table td:nth-child(4) { grid-column: 1 / -1; grid-row: 3; }
  .compact-table-wrap .compact-registrants-table td:nth-child(5) { grid-column: 1 / -1; grid-row: 4; }
  .compact-table-wrap .compact-registrants-table td:nth-child(6) { grid-column: 1 / -1; grid-row: 5; }
  .compact-table-wrap .compact-registrants-table td:nth-child(2),
  .compact-table-wrap .compact-registrants-table td:nth-child(3) { font: 20px/1.1 "Oswald", sans-serif; overflow-wrap: anywhere; }
  .compact-table-wrap .compact-registrants-table td:nth-child(2),
  .compact-table-wrap .compact-registrants-table td:nth-child(3) { display: block; padding: 4px 0; }
  .compact-table-wrap .compact-registrants-table td:nth-child(2),
  .compact-table-wrap .compact-registrants-table td:nth-child(3) { background: var(--white); }
  .compact-table-wrap .compact-registrants-table td:nth-child(2),
  .compact-table-wrap .compact-registrants-table td:nth-child(3) { text-align: justify; }
  .compact-table-wrap .compact-registrants-table td:nth-child(2)::before,
  .compact-table-wrap .compact-registrants-table td:nth-child(3)::before { display: none; }
  .compact-table-wrap .compact-registrants-table td.team-number-cell { grid-template-columns: 1fr; gap: 4px; justify-items: start; padding: 8px 9px; }
  .compact-table-wrap .compact-registrants-table td.team-number-cell::before { display: block; }

  .category-tabs button { min-height: 46px; white-space: nowrap; }
  .match-card { grid-template-columns: 1fr auto; gap: 10px 14px; padding: 16px; }
  .match-card small, .match-status { grid-column: 1 / -1; }
  .match-card .team:last-of-type { text-align: right; }
  .match-card .score { grid-column: auto; grid-row: 2; }
  footer { padding: 34px 18px; }
  .tournament-detail-header { margin-top: 12px; padding: 32px 18px 0; }
  .tournament-mode .tournament-panel { scroll-margin-top: 84px; }
  .back-to-tournaments { margin-bottom: 20px; }
  .tournament-detail-title { display: grid; align-items: start; }
  .tournament-detail-title h1 { font-size: 42px; }
  .tournament-detail-status { justify-self: start; }
  .tournament-detail-actions { display: grid; grid-template-columns: 1fr; }
  .tournament-detail-actions .button { width: 100%; }
  .tournament-detail-facts { grid-template-columns: 1fr 1fr; }
  .tournament-winners { padding: 22px 14px; }
  .tournament-winners-heading { display: grid; gap: 5px; }
  .winners-podium { grid-template-columns: 1fr; align-items: stretch; }
  .winner-card, .winner-position-1, .winner-position-2, .winner-position-3 { min-height: 118px; }
  .winner-position-1 { order: -1; }
  .tournament-tabs { margin-inline: -18px; padding-inline: 18px; }
  .tournament-tabs button { min-height: 50px; padding-inline: 16px; }
  .tournament-coming-soon { grid-template-columns: 1fr 1fr; }
  .tournament-directory-card { grid-template-columns: 104px 1fr; gap: 14px; padding: 14px; }
  .tournament-date-box { min-height: 82px; padding: 9px 8px 7px; gap: 4px; }
  .tournament-date-year, .tournament-date-time { font-size: 9px; letter-spacing: .06em; }
  .tournament-date-main { font-size: 20px; }
  .tournament-directory-state { grid-column: 1; justify-self: stretch; justify-content: center; }
  .tournament-directory-action { grid-column: 2; grid-row: 2; justify-self: start; }
  .tournaments-pagination { grid-template-columns: 1fr 1fr; }
  .tournaments-pagination span { grid-column: 1 / -1; grid-row: 1; }
  .schedule-card { grid-template-columns: 104px minmax(0, 1fr); gap: 14px; padding: 14px; }
  .schedule-card .tournament-date-box { min-height: 82px; padding: 9px 8px 7px; gap: 4px; }
  .schedule-card-action { grid-column: 2; }
}

@media (max-width: 390px) {
  .hero-copy h1 { font-size: 46px; }
  .tournament-list td, .registrants-table td, .results-section table td { grid-template-columns: 94px 1fr; gap: 8px; }
}

.flyers-list { display: grid; grid-template-columns: 1fr; gap: 20px; }
.flyer-card { display: grid; grid-template-columns: minmax(0, 1fr) 220px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 10px 24px rgba(18,60,51,.08); }
.flyer-image-button { grid-column: 2; grid-row: 1; display: block; width: 220px; height: 220px; padding: 0; border: 0; cursor: zoom-in; background: #eef2ef; }
.flyer-image-button img { display: block; width: 100%; height: 100%; object-fit: contain; }
.flyer-image-button:focus-visible { outline: 3px solid var(--accent); outline-offset: -4px; }
.flyer-card > div { grid-column: 1; grid-row: 1; padding: 22px; align-self: center; }
.flyer-card h3 { margin: 4px 0 12px; font-family: Oswald, sans-serif; font-size: 25px; line-height: 1.1; }
.flyer-card p { margin: 5px 0; color: var(--muted); font-size: 14px; }
.flyer-card p strong { color: var(--ink); }
.flyer-scope { color: var(--accent); font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.flyer-lightbox { width: min(94vw, 1000px); height: min(92vh, 1000px); max-width: none; max-height: none; padding: 44px; border: 0; border-radius: 16px; overflow: hidden; background: #10231f; box-shadow: 0 24px 80px rgba(0,0,0,.45); }
.flyer-lightbox::backdrop { background: rgba(4,14,12,.82); }
.flyer-lightbox img { display: block; width: 100%; height: 100%; object-fit: contain; }
.flyer-lightbox-close { position: absolute; top: 8px; right: 12px; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; color: #fff; font-size: 32px; line-height: 34px; cursor: pointer; background: rgba(255,255,255,.14); }
.flyer-lightbox-close:hover, .flyer-lightbox-close:focus-visible { background: rgba(255,255,255,.28); }
@media (max-width: 560px) { .flyer-card { grid-template-columns: 1fr; } .flyer-image-button { grid-column: 1; grid-row: 1; width: 100%; height: auto; aspect-ratio: 1; } .flyer-card > div { grid-column: 1; grid-row: 2; } .flyer-lightbox { width: 96vw; height: 88vh; padding: 42px 10px 10px; } }
.admin-page { min-height: 100vh; background: var(--surface-soft); }

/* Cartelera deportiva · Arena Voladora */
#main-nav .management-access-link{min-height:40px;padding:0 17px;display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.38);border-radius:var(--control-radius);color:#fff}
#main-nav .management-access-link:hover,#main-nav .management-access-link:focus-visible{border-color:var(--sand);background:var(--sand);color:var(--ink)}
body:not(.home-view) .home-only{display:none}
.home-scoreboard{min-height:360px;padding:70px max(22px,calc((100vw - 1480px)/2));display:flex;align-items:center;color:#fff;background:radial-gradient(circle at 88% 18%,rgba(72,191,208,.18),transparent 22rem),linear-gradient(110deg,#102d27,var(--green));border-bottom:4px solid var(--mint)}
.home-scoreboard-copy{width:100%;max-width:900px}
.home-scoreboard .eyebrow{margin-bottom:14px;color:var(--sand)}
.home-scoreboard h1{font-size:clamp(54px,6vw,82px);line-height:.95;letter-spacing:-.03em}
.home-scoreboard-copy>p:not(.eyebrow){margin:20px 0 0;color:rgba(255,255,255,.72);font-size:clamp(17px,1.4vw,20px)}
.home-scoreboard-actions{margin-top:30px;display:flex;flex-wrap:wrap;align-items:center;gap:22px}
.home-scoreboard-link{min-height:50px;display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:14px;font-weight:700}
.home-scoreboard-link span{color:var(--mint);font-size:20px;transition:transform .2s}
.home-scoreboard-link:hover span,.home-scoreboard-link:focus-visible span{transform:translateX(4px)}
.home-view .schedule-section{min-height:auto;padding-top:78px;padding-bottom:78px;background:var(--paper)}
.home-view .schedule-section .section-heading{margin-bottom:34px}
.home-view .schedule-section .section-heading>p{max-width:520px;justify-self:end}
.home-view .schedule-card:not(:first-child){display:none}
.home-view .schedule-card{background:#fff}
.home-view .schedule-card:first-child{min-height:190px;border-left-color:var(--mint);box-shadow:0 14px 38px rgba(18,60,51,.09)}
.home-view .schedule-card:first-child .schedule-card-copy h3{font-size:clamp(34px,4vw,54px)}
.home-view .tournaments-section{display:block;padding-top:78px;padding-bottom:92px;background:#fff}
.home-view .tournaments-section .section-heading{margin-bottom:34px}

@media(max-width:760px){#main-nav .management-access-link{width:auto;min-height:44px}.home-scoreboard{min-height:310px;padding:52px 18px 56px}.home-scoreboard h1{font-size:clamp(50px,15vw,66px)}.home-scoreboard-copy>p:not(.eyebrow){max-width:330px;font-size:16px;line-height:1.55}.home-scoreboard-actions{display:grid;gap:10px}.home-scoreboard-actions .button{width:100%}.home-scoreboard-link{justify-content:center}.home-view .schedule-section,.home-view .tournaments-section{padding-top:62px;padding-bottom:68px}.home-view .schedule-section .section-heading>p{justify-self:start}.home-view .schedule-card:first-child{min-height:150px}.home-view .schedule-card:first-child .schedule-card-copy h3{font-size:29px}}
.admin-main { width: min(760px, calc(100% - 36px)); margin: 58px auto 90px; }
.admin-card { position: relative; overflow: hidden; padding: clamp(22px, 5vw, 42px); background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-lg); }
.admin-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--brand-accent-gradient); pointer-events: none; }
.admin-card h1 { margin: 5px 0 10px; font-family: Oswald, sans-serif; font-size: 42px; }
.import-drive { margin-bottom: 22px; }
.import-drive h2 { margin: 0 0 8px; font-family: Oswald, sans-serif; font-size: 28px; }
.import-drive p { margin: 0 0 18px; color: var(--muted); }
.admin-form { display: grid; gap: 16px; margin-top: 24px; }
.admin-form label { display: grid; gap: 7px; color: var(--ink); font-size: 14px; font-weight: 700; }
.admin-form input, .admin-form select, .admin-form textarea { width: 100%; padding: 12px 13px; border: 1px solid #b8c8c1; border-radius: 8px; color: var(--ink); font: inherit; background: #fff; }
.admin-form textarea { resize: vertical; }
.admin-form .button { justify-self: start; }
.admin-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 8px; }
.admin-panel-heading h1 { margin: 3px 0; font-family: Oswald, sans-serif; font-size: 42px; }
.admin-intro { margin: 0 0 24px; color: var(--muted); }
.admin-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.registration-admin { margin-bottom: 24px; }
.registration-admin h2 { margin: 0; font-family: Oswald, sans-serif; font-size: 30px; }
.registration-admin h3 { margin: 4px 0 0; font-family: Oswald, sans-serif; font-size: 25px; }
.registration-admin-list { display: grid; gap: 10px; }
.registration-admin-row { display: grid; grid-template-columns: 86px minmax(0, 1.4fr) minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--line); background: #f8faf7; }
.registration-admin-row > strong { color: var(--green); font: 700 18px "Oswald"; }
.registration-admin-row > span { font-weight: 700; }
.registration-admin-row > small { color: #66736d; }
.registration-admin-edit-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.registration-admin-edit-actions { grid-column: 1 / -1; display: flex; gap: 8px; }
.registration-admin-inline-field { display: grid; gap: 4px; color: #66736d; font-size: 10px; font-weight: 700; }
.registration-admin-inline-field input { min-width: 0; height: 38px; padding: 7px 8px; border: 1px solid #b8c8c1; border-radius: 6px; color: var(--ink); font: 13px "DM Sans"; background: #fff; }
.registration-admin-row .button { min-height: 38px; padding-inline: 12px; }
.admin-delete-button { color: #9d3030; border: 1px solid #c98b8b; background: #fff7f7; }
.registration-admin-form[hidden] { display: none; }
.flyer-upload-preview { max-width: min(100%, 360px); max-height: 500px; object-fit: contain; border-radius: 10px; border: 1px solid var(--line); }
@media (max-width: 560px) { .admin-main { width: min(100% - 28px, 760px); margin-top: 28px; } .admin-fields { grid-template-columns: 1fr; } .admin-panel-heading { align-items: flex-start; } .registration-admin-row { grid-template-columns: 1fr 1fr; } .registration-admin-row > strong, .registration-admin-row > span, .registration-admin-row > small { grid-column: 1 / -1; } .registration-admin-edit-grid { grid-template-columns: 1fr 1fr; } .registration-admin-edit-actions { display: grid; grid-template-columns: 1fr 1fr; } .registration-admin-row .button { width: 100%; } }
