:root{--paper:#f5f1e8;--surface:#fffdf8;--ink:#171717;--muted:#69665f;--court-yellow:#f2c94c;--court-terracotta:#c75a2b;--field-green:oklch(45% .105 150);--ice-blue:oklch(43% .09 240);--volley-blue:oklch(48% .12 225);--tennis-clay:oklch(55% .13 47);--track-red:oklch(43% .14 25);--danger:#b42318;--success:#18794e;--border:2px solid var(--ink)}*{box-sizing:border-box}html{min-height:var(--tg-viewport-stable-height,100%);color:var(--ink)}body,html{background:var(--paper)}body{margin:0;min-height:var(--tg-viewport-stable-height,100vh);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--court-terracotta);outline-offset:3px}.appShell{width:min(100%,1180px);min-height:100vh;margin:0 auto;padding:env(safe-area-inset-top,0) calc(20px + env(safe-area-inset-right, 0px)) calc(92px + env(safe-area-inset-bottom, 0px)) calc(20px + env(safe-area-inset-left, 0px))}.appHeader{min-height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ink)}.brand{font-size:13px;font-weight:900;letter-spacing:.1em}.demoBadge{border-radius:999px;padding:7px 10px;background:var(--ink);color:white;font-size:11px;font-weight:800}.hero{padding:46px 0}.eyebrow{margin:0 0 16px;font-size:11px;font-weight:900;letter-spacing:.1em}.eyebrow,.hero h1{text-transform:uppercase}.hero h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(54px,12vw,112px);line-height:.84;letter-spacing:-.065em}.lede{max-width:520px;margin-top:24px;color:var(--muted);font-size:18px;line-height:1.45}.mobileNav{position:fixed;z-index:20;left:50%;bottom:14px;display:flex;width:min(calc(100% - 28px),520px);min-height:56px;transform:translateX(-50%);align-items:center;justify-content:space-around;border:var(--border);border-radius:16px;background:var(--ink);color:white;box-shadow:5px 5px 0 var(--court-yellow)}.mobileNav a{position:relative;display:grid;min-width:62px;min-height:44px;place-items:center;font-size:10px;font-weight:800}.notificationBadge{position:absolute;top:1px;right:0;display:grid;min-width:20px;height:20px;padding:0 5px;place-items:center;border:2px solid var(--ink);border-radius:999px;background:var(--court-yellow);color:var(--ink);font-size:9px}.pageSection{padding:40px 0}.pageTitle{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(42px,9vw,78px);line-height:.92;letter-spacing:-.05em;text-transform:uppercase}.profileGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:28px}.profileCard{display:grid;width:100%;min-height:142px;padding:16px;text-align:left;border:var(--border);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer;box-shadow:4px 4px 0 transparent}.profileCard[aria-current=true]{background:var(--court-yellow);box-shadow:4px 4px 0 var(--ink)}.profileCard small,.profileCard span{color:var(--muted)}.profileCard strong{font-size:20px}.feedHero h1{margin-bottom:22px}.filterRail{display:flex;gap:8px;margin:28px 0 18px;overflow-x:auto;padding-bottom:6px}.filterRail a{flex:0 0 auto;min-height:38px;padding:10px 13px;border:1px solid var(--ink);border-radius:999px;font-size:12px;font-weight:800}.filterRail a.active{background:var(--ink);color:white}.gameGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:18px}.gameCard{position:relative;min-height:285px;overflow:hidden;border:var(--border);border-radius:17px;background:var(--surface)}.detailCourt,.sportCard{color:white}.sportCard--basketball{background:var(--court-terracotta)}.sportCard--football{background:var(--field-green)}.sportCard--hockey{background:var(--ice-blue)}.sportCard--volleyball{background:var(--volley-blue)}.sportCard--tennis{background:var(--tennis-clay)}.sportCard--running{background:var(--track-red)}.gameCardContent{position:relative;z-index:2;padding:18px}.cardTop{display:flex;justify-content:space-between;gap:14px;text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.05em}.cardTop strong{padding:6px 9px;border:1px solid var(--ink);border-radius:999px;background:var(--court-yellow);color:var(--ink);white-space:nowrap}.gameCard h2{margin:30px 0 10px;font-family:Georgia,Times New Roman,serif;font-size:30px;line-height:.92}.gameCard p{font-size:12px;line-height:1.45}.address{padding:9px;border:1px solid var(--ink);border-radius:9px;background:rgb(255 255 255/90%);color:var(--ink);font-weight:700}.cardAction,.primaryAction{display:grid;width:fit-content;min-height:44px;padding:11px 15px;place-items:center;border:var(--border);border-radius:9px;background:var(--court-yellow);color:var(--ink);font-size:12px;font-weight:900}.sportScene{position:absolute;inset:0;overflow:hidden;opacity:.34;pointer-events:none}.sportScene i{position:absolute;display:block}.sceneCenter{top:0;bottom:0;left:50%;border-left:2px solid white}.sceneCircle{top:calc(50% - 54px);left:calc(50% - 54px);width:108px;height:108px;border:2px solid white;border-radius:50%}.sceneZone{top:calc(50% - 58px);width:68px;height:116px;border:2px solid white}.sceneZoneStart{left:-2px;border-left:0}.sceneZoneEnd{right:-2px;border-right:0}.sceneAccent{inset:14px;border:2px solid white;border-radius:8px}.sportScene[data-sport-scene=basketball] .sceneZone{width:66px}.sportScene[data-sport-scene=basketball] .sceneZone:after{position:absolute;top:15px;width:86px;height:82px;border:2px solid white;border-radius:50%;content:""}.sportScene[data-sport-scene=basketball] .sceneZoneStart:after{left:-44px}.sportScene[data-sport-scene=basketball] .sceneZoneEnd:after{right:-44px}.sportScene[data-sport-scene=basketball] .sceneAccent,.sportScene[data-sport-scene=football] .sceneAccent{display:none}.sportScene[data-sport-scene=football] .sceneZone{top:calc(50% - 72px);width:82px;height:144px}.sportScene[data-sport-scene=football] .sceneZone:after{position:absolute;top:37px;width:30px;height:66px;border:2px solid white;content:""}.sportScene[data-sport-scene=football] .sceneZoneStart:after{left:-2px;border-left:0}.sportScene[data-sport-scene=football] .sceneZoneEnd:after{right:-2px;border-right:0}.sportScene[data-sport-scene=hockey]{background:linear-gradient(90deg,transparent 31%,rgb(255 255 255/35%) 31% 31.7%,transparent 31.7% 68%,rgb(255 255 255/35%) 68% 68.7%,transparent 68.7%)}.sportScene[data-sport-scene=hockey] .sceneCenter{border-color:var(--track-red);border-width:3px}.sportScene[data-sport-scene=hockey] .sceneZone{top:calc(50% - 42px);width:34px;height:84px;border-radius:50%}.sportScene[data-sport-scene=hockey] .sceneAccent{inset:10px;border-radius:48px}.sportScene[data-sport-scene=volleyball] .sceneCircle{display:none}.sportScene[data-sport-scene=volleyball] .sceneCenter{width:10px;border:0;border-right:2px dashed white;border-left:2px dashed white;transform:translateX(-5px)}.sportScene[data-sport-scene=volleyball] .sceneZone{top:14px;bottom:14px;width:calc(50% - 30px);height:auto}.sportScene[data-sport-scene=volleyball] .sceneZoneStart{left:14px}.sportScene[data-sport-scene=volleyball] .sceneZoneEnd{right:14px}.sportScene[data-sport-scene=tennis] .sceneCircle{display:none}.sportScene[data-sport-scene=tennis] .sceneCenter{width:8px;border:0;border-right:1px dashed white;border-left:1px dashed white;transform:translateX(-4px)}.sportScene[data-sport-scene=tennis] .sceneZone{top:25%;width:calc(50% - 14px);height:50%}.sportScene[data-sport-scene=tennis] .sceneZoneStart{left:14px}.sportScene[data-sport-scene=tennis] .sceneZoneEnd{right:14px}.sportScene[data-sport-scene=running] .sceneCenter,.sportScene[data-sport-scene=running] .sceneCircle{display:none}.sportScene[data-sport-scene=running] .sceneZone{top:-55%;left:-10%;width:120%;height:210%;border:2px solid white;border-radius:50%}.sportScene[data-sport-scene=running] .sceneZoneEnd{inset:-39% -4%;width:108%;height:178%}.sportScene[data-sport-scene=running] .sceneAccent{inset:28px;border-radius:50%}.emptyState{padding:28px;border:var(--border);background:var(--surface)}.emptyState strong{font:800 24px Georgia,serif}.emptyState a{text-decoration:underline;font-weight:800}.gameDetail{max-width:820px;margin-inline:auto}.detailCourt,.detailPanel{position:relative;overflow:hidden;margin-top:24px;border:var(--border);border-radius:20px}.detailPanel{background:var(--surface)}.detailDescription{max-width:580px;font-size:16px;line-height:1.55}.gameDetail dl{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:28px 0}.gameDetail dl div{padding-top:10px;border-top:1px solid}.gameDetail dt{font-size:10px;text-transform:uppercase;opacity:.7}.gameDetail dd{margin:7px 0 0;font-weight:700}.primaryAction[aria-disabled=true]{opacity:.55;pointer-events:none}.publicRoster{display:grid;gap:18px;margin-top:24px}.publicRosterGroup{padding:18px;border:var(--border);border-radius:16px;background:var(--surface)}.publicRosterGroup h2{margin:0 0 14px;font:800 26px Georgia,serif}.publicRosterGroup ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:0;padding:0;list-style:none}.publicRosterGroup li{display:flex;min-height:44px;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--ink);border-radius:9px;background:var(--paper);font-weight:700}.publicRosterGroup li span{color:var(--court-terracotta);font-size:10px}@media (max-width:560px){.gameDetail dl{grid-template-columns:1fr}}.narrowPage{max-width:620px;margin-inline:auto}.checkoutPanel,.ticketCard{margin:24px 0;padding:22px;border:var(--border);border-radius:18px;background:var(--surface);box-shadow:6px 6px 0 var(--court-yellow)}.demoNotice{padding:12px;border-left:5px solid var(--court-yellow);background:var(--paper)}.checkoutTotal{display:flex;justify-content:space-between;margin:28px 0;font-size:18px}.checkoutTotal strong{font-size:30px}.fullAction{width:100%}.secondaryAction{width:100%;min-height:44px;margin-top:10px;border:1px solid var(--ink);border-radius:9px;background:transparent;font-weight:800}.errorMessage{padding:12px;border:1px solid var(--danger);color:var(--danger)}.ticketCard{background:var(--ink);color:white;box-shadow:7px 7px 0 var(--court-yellow)}.ticketCard h1{font:900 clamp(38px,8vw,64px)/.92 Georgia,serif}.ticketStatus{display:inline-block;margin-top:18px;padding:9px;border-radius:999px;background:var(--court-yellow);color:var(--ink)}.bookingList{display:grid;gap:14px;margin-top:28px}.bookingRow{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:18px;border:var(--border);border-radius:14px;background:var(--surface)}.bookingRow span{font-size:10px;font-weight:900;text-transform:uppercase}.bookingRow h2{margin:7px 0;font-family:Georgia,serif}.bookingRow p{color:var(--muted)}.bookingRow form{width:min(180px,100%)}@media(max-width:600px){.bookingRow{align-items:stretch;flex-direction:column}.bookingRow form{width:100%}}.formPage{max-width:850px;margin-inline:auto}.editorialForm{display:grid;gap:14px;margin-top:30px;padding:22px;border:var(--border);border-radius:18px;background:var(--surface);box-shadow:7px 7px 0 var(--court-yellow)}.editorialForm label{display:grid;gap:7px;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.editorialForm input,.editorialForm select,.editorialForm textarea{width:100%;min-height:46px;padding:11px;border:1px solid var(--ink);border-radius:8px;background:white;font:14px Arial,sans-serif;text-transform:none}.editorialForm textarea{min-height:90px;resize:vertical}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.attendanceList{display:grid;gap:10px;margin-top:28px}.attendanceRow{display:flex;justify-content:space-between;gap:14px;padding:15px;border:1px solid var(--ink);background:var(--surface)}.attendanceRow div{display:grid;gap:5px}.attendanceRow small{color:var(--muted)}.attendanceRow button{min-height:40px;margin-left:6px;border:1px solid var(--ink);background:var(--paper);font-weight:800}@media(max-width:600px){.formGrid{grid-template-columns:1fr}.attendanceRow{flex-direction:column}.attendanceRow button{margin:4px 4px 0 0}}.successPanel{margin-top:24px;padding:20px;border:var(--border);background:var(--court-yellow);font-weight:800}.sectionHeading{margin:40px 0 14px;font:800 30px Georgia,serif}.adminList{display:grid;gap:10px}.adminRow{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--ink);background:var(--surface)}.adminRow p{margin:6px 0;color:var(--muted)}.adminRow button{min-height:40px;margin-left:6px;border:1px solid var(--ink);background:var(--paper);font-weight:800}@media(max-width:600px){.adminRow{align-items:stretch;flex-direction:column}.adminRow button{margin:4px 4px 0 0}}.resetButton{width:auto;padding-inline:16px}.adminMetrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:28px}.adminMetrics article{display:grid;gap:4px;padding:18px;border:var(--border);border-radius:14px;background:var(--surface);box-shadow:4px 4px 0 var(--court-yellow)}.adminMetrics strong{font:900 38px Georgia,serif}.adminMetrics span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.statusPill{padding:8px 12px;border-radius:999px;background:var(--ink);color:white;font-size:11px;font-weight:800}.formMessage{min-height:1.4em;margin:10px 0 0;color:#28714b;font-size:14px;font-weight:800}.formMessage--error{color:#a4271d}.priceFieldset{margin:0;padding:0;border:0}.priceFieldset legend{margin-bottom:8px;font-weight:800}.priceChoice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.priceChoice label{display:flex;flex-direction:row;align-items:center;gap:9px;padding:13px 14px;border:2px solid var(--ink);border-radius:14px}.priceChoice input{width:auto;margin:0;accent-color:var(--accent)}.helpLink{display:inline-flex;width:fit-content;margin-top:20px;text-decoration:none}.guideList{display:grid;gap:12px;margin-top:28px}.guideList article{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:18px;border:var(--border);border-radius:16px;background:var(--surface)}.guideList article>span{font-size:22px;font-weight:900;color:var(--accent-dark)}.guideCallout h2,.guideList h2{margin:0 0 8px}.guideCallout p,.guideList p{margin:0;color:var(--muted)}.guideCallout{margin-top:18px;padding:20px;border:var(--border);border-radius:16px;background:var(--court-yellow);box-shadow:4px 4px 0 var(--ink)}.guideCallout ol{padding-left:22px}.guideCallout li+li{margin-top:8px}.guideCallout a{color:inherit;font-weight:900}.adminRowActions{display:flex;align-items:center;gap:8px}.adminRowActions .secondaryAction{width:auto;margin:0;padding:11px 14px;text-decoration:none}.adminRowActions form{margin:0}@media(max-width:600px){.adminRowActions{align-items:stretch;flex-direction:column}.adminRowActions .secondaryAction{width:100%;text-align:center}.adminRowActions button{width:100%;margin:0}}.organizerActions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.organizerActions form{margin:0}.dangerAction{min-height:44px;padding:10px 14px;border:2px solid var(--danger);border-radius:9px;background:transparent;color:var(--danger);font-weight:900;cursor:pointer}.removeParticipant{margin-top:8px}.removeParticipant summary{width:fit-content;color:var(--danger);font-size:12px;font-weight:800;cursor:pointer}.removeParticipant form{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid var(--danger);border-radius:10px;background:var(--paper)}.removeParticipant label{display:grid;gap:6px;font-size:11px;font-weight:800}.removeParticipant textarea{min-height:72px;padding:9px;border:1px solid var(--ink);border-radius:7px;resize:vertical}.notificationsReadAll{width:fit-content;margin:22px 0 0 auto;padding-inline:16px}.notificationList{display:grid;gap:12px;margin-top:20px}.notificationRow{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--ink);border-radius:14px;background:var(--surface)}.notificationRow[data-unread=true]{border-width:2px;box-shadow:5px 5px 0 var(--court-yellow)}.notificationRow span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.notificationRow h2{margin:7px 0;font:800 24px Georgia,serif}.notificationRow p{margin:0 0 8px;color:var(--muted);line-height:1.45}.notificationRow small{color:var(--muted)}.notificationActions{display:grid;flex:0 0 min(190px,100%);gap:6px}.notificationActions .primaryAction,.notificationActions .secondaryAction{width:100%;margin:0}@media(max-width:600px){.notificationRow{align-items:stretch;flex-direction:column}.notificationActions{flex-basis:auto}}.interestsForm{display:grid;gap:16px;margin-top:32px;padding:20px;border:var(--border);border-radius:18px;background:var(--surface);box-shadow:6px 6px 0 var(--court-yellow)}.interestsForm fieldset{margin:0;padding:0;border:0}.interestsForm legend{font:800 26px Georgia,serif}.formHint{margin:8px 0 18px;color:var(--muted);line-height:1.45}.interestGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.interestOption{position:relative;min-height:48px;cursor:pointer}.interestOption input{position:absolute;width:1px;height:1px;opacity:0}.interestOption span{display:grid;min-height:48px;padding:10px 12px;place-items:center;border:1px solid var(--ink);border-radius:999px;font-size:12px;font-weight:800}.interestOption input:checked+span{background:var(--ink);color:white;box-shadow:3px 3px 0 var(--court-yellow)}.interestOption input:focus-visible+span{outline:3px solid var(--court-terracotta);outline-offset:3px}.telegramGate{display:grid;min-height:100vh;padding:32px;place-content:center;text-align:center;background:var(--paper);color:var(--ink)}.telegramGate h1{max-width:620px;margin:0;font:900 clamp(36px,9vw,72px)/.95 Georgia,serif}.telegramGateActions{display:grid;width:min(360px,100%);gap:10px;margin:28px auto 0}.telegramGateActions .secondaryAction{display:grid;margin:0;place-items:center;text-decoration:none}@media (min-width:800px){.appShell{padding-inline:34px}.mobileNav{left:auto;right:26px;width:430px;transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}