:root {
    color-scheme: light;
    --ink: #102445;
    --subtle: #4d6079;
    --court: #1c3862;
    --court-dark: #102345;
    --red: #ce1838;
    --red-bright: #ff536b;
    --surface: #eef3fa;
    --paper: #f6f8fc;
    --line: #d8e2ef;
    --white: #fff;
    --admin-sidebar-width: 236px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.55 system-ui, sans-serif; }
h1,h2,h3,p { margin: 0 0 .65em; }
h1,h2,h3 { line-height: 1.12; letter-spacing: -.035em; }
a { color: #204e87; text-underline-offset: 3px; }
.mast { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:17px clamp(16px,5vw,74px); background:var(--white); border-bottom:1px solid var(--line); padding-inline-start:clamp(16px,2vw,34px); }
.brand { display:flex; gap:12px; align-items:center; color:var(--ink); text-decoration:none; line-height:1.25; font-weight:800; }
.mast-admin-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    min-height:44px;
    padding:0 clamp(10px,2vw,18px);
    border-radius:7px;
    background:var(--red);
    color:var(--white);
    font-weight:750;
    text-decoration:none;
}
.mast-admin-link:hover { background:#ae1230; }
.mast :focus-visible { outline-color:var(--ink); }
.registration { display:grid; grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr); align-items:start; min-height:calc(100vh - 78px); }
.registration, .admin-layout { background:#efefef; }
.hero { position:sticky; top:0; padding:clamp(28px,5vw,78px); min-height:calc(100vh - 78px); color:#fff; background:radial-gradient(ellipse at 74% 54%, var(--court), transparent 67%), var(--court-dark); }
.hero h1 { font-size:clamp(2.7rem,5vw,5.6rem); margin:.4em 0; text-transform:uppercase; font-weight:900; overflow-wrap:anywhere; }
.hero h1 em { color:var(--red-bright); font-style:normal; }
.hero > p:not(.eyebrow) { max-width:38ch; color:#d5e1f4; }
.eyebrow { color:#294e7d; font-weight:800; letter-spacing:.13em; font-size:.75rem; text-transform:uppercase; }
.court { display:block; width:100%; height:auto; margin:24px 0; }
.court-ball-shadow { opacity:.42; transform-origin:460px 174px; }
@media(prefers-reduced-motion:no-preference) {
    .court-ball { animation:court-bounce 1.45s 3 both; }
    .court-ball-shadow { animation:court-shadow 1.45s 3 both; }
}
@keyframes court-bounce {
    0%, 100% { transform:translateY(0); animation-timing-function:cubic-bezier(.18,.55,.46,1); }
    32% { transform:translateY(-23px); animation-timing-function:cubic-bezier(.42,0,.78,.45); }
    62% { transform:translateY(2px); animation-timing-function:ease-out; }
    78% { transform:translateY(-6px); animation-timing-function:ease-in; }
    91% { transform:translateY(0); }
}
@keyframes court-shadow {
    0%, 62%, 91%, 100% { opacity:.42; transform:scaleX(1); }
    32% { opacity:.21; transform:scaleX(1.25); }
    78% { opacity:.33; transform:scaleX(1.09); }
}
.steps { padding-left:1.35rem; color:#e7eefb; }
.steps li { margin:6px 0; padding-left:.35rem; }
.steps li::marker { color:var(--red-bright); font-weight:700; }
.entry { padding:clamp(25px,5vw,78px); min-width:0; }
.entry h2 { font-size:clamp(2rem,3.7vw,3.5rem); }
fieldset { border:0; border-top:1px solid var(--line); padding:14px 0 22px; margin:16px 0 0; min-width:0; }
legend { padding-right:12px; font-size:1.14rem; font-weight:800; }
legend span { display:inline-block; padding:4px 8px; margin-right:6px; color:var(--court-dark); background:#fbe7ec; border-radius:4px; font-size:.75rem; }
label { display:grid; gap:5px; margin:12px 0; font-size:.93rem; font-weight:650; }
input,select,button { min-height:44px; padding:9px 12px; border-radius:6px; font:inherit; }
input,select { min-width:0; width:100%; border:1px solid #a7b8d0; background:#fff; color:var(--ink); }
input[type=file] { max-width:100%; }
input[type=checkbox] { min-height:auto; width:auto; }
.check { display:flex; align-items:center; gap:8px; }
button { border:1px solid transparent; cursor:pointer; background:var(--red); color:white; font-weight:750; }
button:hover { filter:brightness(1.12); }
button.secondary { background:white; color:var(--court-dark); border-color:#a7b8d0; }
button.danger { background:#971b32; }
:focus-visible { outline:3px solid #2b7bb3; outline-offset:3px; }
.grid { display:grid; gap:14px; }
.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
.player,.upload,.panel { padding:clamp(13px,2vw,24px); border:1px solid var(--line); border-radius:10px; background:white; }
.upload { border-style:dashed; }
.bank { white-space:pre-line; }
small,.muted { color:var(--subtle); }
.muted { margin-top:12px; font-size:.9rem; }
.notice,.error { padding:13px 15px; border-radius:7px; background:#e7effb; overflow-wrap:anywhere; }
.error { background:#f9e5e2; color:#7a262c; }
.dashboard { max-width:1220px; margin:auto; padding:clamp(17px,4vw,46px); }
.dashboard h1 { font-size:clamp(2rem,4vw,3.25rem); }
.panel { margin:15px 0; }
.stat strong { display:block; font-size:2rem; line-height:1.25; }
.admin-nav,.row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.admin-nav { margin-bottom:24px; }
.admin-nav form { margin-left:auto; }
.row { padding:10px 0; border-bottom:1px solid var(--line); }
.row h2,.row form { margin:0; }
.row strong { flex:1; }
.pill { padding:4px 9px; border-radius:20px; background:#e7effb; color:#233e66; font-size:.8rem; white-space:nowrap; }
.panel > form,details { margin-top:16px; }
summary { cursor:pointer; font-weight:750; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; text-align:left; }
td,th { padding:11px 10px; border-bottom:1px solid var(--line); }
th { background:#edf2fa; white-space:nowrap; }
video { display:block; max-width:min(100%,420px); margin:10px 0; border-radius:8px; }
@media(max-width:940px) { .entry .two { grid-template-columns:1fr; } }
@media(max-width:720px) {
    .registration { grid-template-columns:1fr; }
    .hero { position:static; min-height:0; }
    .hero h1 { font-size:clamp(2.4rem,10vw,4rem); }
    .metrics,.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-nav form { margin-left:0; }
}
@media(max-width:480px) {
    .two { grid-template-columns:1fr; }
    .mast { font-size:.85rem; }
    .mast-admin-link { white-space:nowrap; }
}

body { min-height:100vh; display:flex; flex-direction:column; }
.dashboard { width:100%; }
.account-panel { max-width:580px; }
.site-footer {
    margin-top:auto;
    padding:18px 16px;
    background:var(--white);
    color:var(--ink);
    border-top:1px solid var(--line);
    text-align:center;
    font-size:.875rem;
}

input[type=checkbox] { accent-color:var(--red); }
button:disabled { opacity:.55; cursor:not-allowed; filter:none; }
.admin-layout { display:grid; grid-template-columns:var(--admin-sidebar-width) minmax(0,1fr); flex:1; }
.admin-sidebar { padding:25px 16px; background:var(--court-dark); color:#fff; }
.admin-sidebar nav { display:grid; gap:5px; }
.sidebar-label { margin:12px 10px 3px; color:#bacce6; font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.admin-sidebar a { padding:10px 12px; border-radius:6px; color:#fff; text-decoration:none; }
.admin-sidebar a:hover { background:#223e64; }
.admin-sidebar a[aria-current=page] { background:var(--red); color:var(--white); font-weight:750; }
.admin-sidebar form { margin-top:24px; }
.sidebar-signout { width:100%; background:transparent; border-color:#7285a1; }
.admin-layout .dashboard { margin:0 auto; min-width:0; }
@media(max-width:760px) {
    .admin-layout { grid-template-columns:minmax(0,1fr); }
    .admin-sidebar { padding:10px 16px; }
    .admin-sidebar nav { display:flex; flex-wrap:wrap; gap:4px; }
    .admin-sidebar .sidebar-label { flex-basis:100%; }
    .admin-sidebar form { margin-top:8px; }
    .sidebar-signout { width:auto; }
}

.review-card { margin:12px 0; padding:14px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.review-card-heading { display:flex; gap:12px; align-items:center; justify-content:space-between; }
.review-card-heading h4 { margin:0; }
.review-card dl { display:grid; grid-template-columns:minmax(7rem,1fr) minmax(0,2fr); gap:6px 12px; margin:12px 0 0; }
.review-card dt { font-weight:600; }
.review-card dd { margin:0; overflow-wrap:anywhere; }

.registration-fee {
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
    gap:8px 16px; padding:14px 16px; margin:0 0 16px;
    border:1px solid #f0c4ce; border-inline-start:4px solid var(--red);
    border-radius:8px; background:#fbe7ec; font-weight:750;
}
.registration-fee strong { color:#981731; font-size:1.7rem; line-height:1.2; }
.bank-reference { margin:10px 0 0; overflow-wrap:anywhere; }
.bank-reference code { color:#981731; }
.bank-details { padding:16px; margin:0 0 16px; background:#fff; border:1px solid var(--line); border-radius:8px; }
.bank-details .bank { font-weight:600; margin:10px 0 0; }

.brand-logo { display:block; flex:none; width:clamp(38px,5vw,64px); height:auto; }
.mast .brand { min-width:0; font-size:clamp(1.2rem,3.4vw,1.6rem); line-height:1.18; text-wrap:balance; }
.mobile-menu-toggle { display:none; }
.menu-icon { display:grid; gap:4px; width:19px; }
.menu-icon i { height:2px; background:currentColor; border-radius:2px; }
.review-disclosure, .reminder-box { margin:16px 0; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.team-review > summary, .review-disclosure summary, .reminder-box summary { cursor:pointer; font-weight:700; }
.reminder-box form { margin-top:12px; }
.review-actions, .reminder-actions { display:flex; gap:10px; flex-wrap:wrap; }
@media(max-width:760px) {
    .admin-menu-ready .mast-admin-link { display:none; }
    .admin-menu-ready .mobile-menu-toggle { display:grid; place-items:center; flex:none; width:44px; height:44px; padding:0; background:var(--red); color:var(--white); }
    .admin-menu-ready .admin-sidebar:not([data-open]) { display:none; }
    .admin-menu-ready .admin-sidebar nav { display:grid; }
    .admin-menu-ready .admin-sidebar nav a { min-height:44px; }
}

.close-review { display:inline-flex; align-items:center; min-height:44px; padding:9px 12px; border:1px solid #a7b8d0; border-radius:6px; background:white; color:var(--court-dark); font-weight:750; text-decoration:none; }
.close-review:hover { background:var(--surface); }

@media(max-width:480px) {
    .mast .brand { gap:8px; font-size:1rem; }
    .mast-admin-link { white-space:normal; text-align:center; max-width:110px; }
}

.review-link {
    display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 12px;
    border:1px solid #a7b8d0; border-radius:6px; color:var(--court-dark);
    background:var(--white); font-weight:750; text-decoration:none; white-space:nowrap;
}
.review-link:hover { background:var(--court-dark); color:var(--white); }
.saved-receipt { display:grid; gap:3px; overflow-wrap:anywhere; }

.checkin-controls { display:flex; flex-wrap:wrap; gap:8px; }

.scan-layout { display:grid; grid-template-columns:minmax(0, 420px) minmax(0, 1fr); align-items:start; gap:20px; }
.scan-result { margin:10px 0; padding:18px; border:1px solid var(--line); border-radius:8px; overflow-wrap:anywhere; }
.scan-result h3 { margin-top:12px; }
.scan-result dl { display:grid; grid-template-columns:auto 1fr; gap:8px 14px; margin:0; }
.scan-result dt { font-weight:700; }
.scan-result dd { margin:0; }
.scan-badge { display:inline-block; padding:4px 10px; border-radius:20px; background:#e0f4e7; color:#185331; font-weight:750; }
@media(max-width:760px) { .scan-layout { grid-template-columns:minmax(0, 1fr); } }

.checkin-tick { color:#185331; font-size:1.25rem; font-weight:800; }

.admin-signin { flex:1; min-height:0; align-items:stretch; }
.admin-signin .hero { position:static; min-height:0; display:grid; align-content:center; }
.admin-signin .hero .eyebrow { color:var(--red-bright); }
.admin-signin .entry { display:grid; place-items:center; }
.sign-in-card { width:100%; max-width:460px; border-top:4px solid var(--red); }
.sign-in-card h2 { font-size:clamp(1.8rem,3.2vw,2.5rem); }
.sign-in-card button { width:100%; }
