:root{
  --bg:#07100b;--bg2:#0b1710;--surface:#101c15;--surface2:#15251b;
  --text:#f7fff8;--muted:#8ea197;--line:rgba(255,255,255,.10);
  --lime:#caff3d;--lime2:#93ff54;--electric:#56e5ff;--danger:#ff5e68;
  --card:#101c15;--input:#0d1811;--shadow:0 24px 70px rgba(0,0,0,.28);
}
html[data-theme="light"]{
  --bg:#eef4ef;--bg2:#f8fbf8;--surface:#ffffff;--surface2:#edf3ee;
  --text:#112117;--muted:#627267;--line:rgba(17,33,23,.12);
  --card:#ffffff;--input:#f7faf7;--shadow:0 22px 55px rgba(16,45,29,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;min-height:100vh;color:var(--text);
  background:
    radial-gradient(circle at 15% 10%,rgba(202,255,61,.08),transparent 32%),
    radial-gradient(circle at 85% 30%,rgba(86,229,255,.06),transparent 28%),
    linear-gradient(180deg,var(--bg),var(--bg2) 60%,var(--bg));
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  transition:background .35s ease,color .35s ease;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}
::selection{background:var(--lime);color:#07100b}
.wrap{width:min(1160px,calc(100% - 32px));margin:0 auto;padding:34px 0 70px}.narrow{max-width:760px}.player-wrap{padding-bottom:140px}
.ambient{position:fixed;width:420px;height:420px;border-radius:50%;filter:blur(90px);opacity:.11;pointer-events:none;z-index:-1}
.ambient-a{background:var(--lime);left:-140px;top:10vh;animation:floatA 9s ease-in-out infinite}
.ambient-b{background:var(--electric);right:-180px;top:35vh;animation:floatB 11s ease-in-out infinite}
@keyframes floatA{50%{transform:translate(60px,30px) scale(1.12)}}@keyframes floatB{50%{transform:translate(-50px,-35px) scale(.95)}}
@keyframes enterRise{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
@keyframes popIn{0%{opacity:0;transform:scale(.92)}70%{transform:scale(1.02)}100%{opacity:1;transform:scale(1)}}
@keyframes pulseGlow{50%{box-shadow:0 0 0 8px rgba(202,255,61,.08),0 0 35px rgba(202,255,61,.18)}}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes scan{0%{transform:translateX(-120%)}100%{transform:translateX(160%)}}
.enter-rise{animation:enterRise .65s cubic-bezier(.2,.8,.2,1) both}.delay-1{animation-delay:.08s}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.pop-in{animation:popIn .45s cubic-bezier(.2,.8,.2,1) both}

.topbar{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(18px,4vw,42px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px);position:sticky;top:0;z-index:30}
.brand{font-weight:950;letter-spacing:.14em;font-size:22px;text-transform:uppercase}.brand span{color:var(--lime)}.brand.small{font-size:17px}.toplink{color:var(--muted);font-weight:750}.toplink:hover{color:var(--lime)}
.section-kicker,.mini-kicker,.eyebrow{color:var(--lime);font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.muted{color:var(--muted)}.small{font-size:13px}
h1,h2,h3{margin:0}h1{font-size:clamp(34px,6vw,58px);line-height:.98;letter-spacing:-.04em}h2{font-size:clamp(26px,4vw,38px);letter-spacing:-.03em}h3{font-size:19px}p{line-height:1.6}

.card,.premium-card{border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 88%,var(--bg)));box-shadow:var(--shadow);padding:clamp(20px,4vw,34px)}
.premium-card{position:relative;overflow:hidden}.premium-card::before{content:"";position:absolute;inset:0 auto auto 0;width:180px;height:3px;background:linear-gradient(90deg,var(--lime),transparent)}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:12px 18px;border-radius:14px;border:1px solid transparent;font-weight:900;transition:.2s ease;overflow:hidden}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.98)}
.btn-primary{background:linear-gradient(135deg,var(--lime),var(--lime2));color:#07100b;box-shadow:0 12px 30px rgba(147,255,84,.18)}
.btn-primary::after{content:"";position:absolute;top:-50%;left:-30%;width:35%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);transform:rotate(14deg)}
.btn-primary:hover::after{animation:scan .7s ease}.btn-glow{animation:pulseGlow 2.8s ease-in-out infinite}
.btn-secondary,.btn-ghost{background:color-mix(in srgb,var(--surface2) 88%,transparent);color:var(--text);border-color:var(--line)}.btn-ghost.danger{color:#ff7d86}.btn-xl{width:100%;min-height:58px;font-size:16px}
label{display:block;font-weight:800}
input,select{width:100%;margin-top:8px;border:1px solid var(--line);border-radius:14px;background:var(--input);color:var(--text);padding:13px 14px;outline:none;transition:.2s ease}
input:focus,select:focus{border-color:rgba(202,255,61,.7);box-shadow:0 0 0 4px rgba(202,255,61,.08)}
input[type="checkbox"]{accent-color:var(--lime)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-group{padding:24px 0;border-top:1px solid var(--line)}.field-group:first-of-type{border-top:0}.field-title{font-size:14px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}

.player-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.player-chip{position:relative;display:flex;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--input);transition:.22s ease;cursor:pointer}.player-chip input{position:absolute;opacity:0;pointer-events:none}.player-chip.selected{background:rgba(202,255,61,.13);border-color:rgba(202,255,61,.65);box-shadow:0 0 0 4px rgba(202,255,61,.04)}.selection-counter{color:var(--muted);font-size:13px;margin-top:10px}

.daytype-hours{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hour-card{display:grid;grid-template-columns:42px 1fr 112px;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--input)}
.hour-card .hour-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(202,255,61,.11);color:var(--lime);font-weight:950}
.hour-card.holiday .hour-icon{background:rgba(86,229,255,.12);color:var(--electric)}
.hour-card b,.hour-card small{display:block}.hour-card small{color:var(--muted);font-size:11px;margin-top:3px}.hour-card input{margin:0}
.holiday-source{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:12px;margin-top:10px}
.text-button{border:0;background:transparent;color:var(--lime);font-weight:850;padding:6px 0}

.date-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:10px}.date-selector.empty-state{display:block;padding:20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:16px}
.admin-date-card{border:1px solid var(--line);border-radius:17px;background:var(--input);color:var(--text);padding:11px 8px;min-height:88px;transition:.22s ease}
.admin-date-card span,.admin-date-card small{display:block;color:var(--muted);font-weight:750}.admin-date-card strong{display:block;font-size:28px;line-height:1.1;margin:3px 0}.admin-date-card.selected{background:rgba(202,255,61,.12);border-color:rgba(202,255,61,.6)}.admin-date-card.weekend.selected{box-shadow:inset 0 -3px 0 rgba(86,229,255,.35)}.admin-date-card.discarded{opacity:.36;filter:saturate(.25)}.admin-date-card.discarded strong{text-decoration:line-through}

.success-panel,.save-flash{display:flex;gap:14px;align-items:flex-start;margin:18px 0;padding:16px;background:rgba(202,255,61,.09);border:1px solid rgba(202,255,61,.28);border-radius:18px}.success-icon,.save-check{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:#08100b;font-weight:950}
.toast.inline{padding:14px 16px;border-radius:14px;margin:14px 0;background:rgba(255,255,255,.06);border:1px solid var(--line)}.toast.error{background:rgba(255,94,104,.10);border-color:rgba(255,94,104,.26)}.toast.success{background:rgba(202,255,61,.10);border-color:rgba(202,255,61,.25)}.toast.warning{background:rgba(255,207,74,.10);border-color:rgba(255,207,74,.25)}

.player-header{text-align:center;padding:34px 18px 18px}.player-name{font-size:clamp(26px,7vw,44px);font-weight:950;margin-top:16px}.match-code{color:var(--lime);font-size:12px;font-weight:900;letter-spacing:.12em;margin-top:6px}
.intro-panel{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:22px 0 28px}.intro-panel h1{font-size:clamp(32px,7vw,56px);max-width:780px}.intro-panel p{color:var(--muted);max-width:700px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}
.availability-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.availability-card{--delay:0s;animation-delay:var(--delay);border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 82%,var(--bg)));overflow:hidden;transition:.3s ease}
.availability-card.is-available{border-color:rgba(202,255,61,.33);box-shadow:0 15px 38px rgba(0,0,0,.14)}.availability-card.holiday-card.is-available{border-color:rgba(86,229,255,.33)}.availability-card.is-unavailable{opacity:.56;filter:saturate(.42)}
.day-toggle{width:100%;display:grid;grid-template-columns:74px 1fr 54px;gap:14px;align-items:center;text-align:left;padding:16px;border:0;background:transparent;color:var(--text)}
.date-block{width:68px;height:74px;border-radius:17px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--input);border:1px solid var(--line)}.date-block .dow{font-size:11px;color:var(--muted);font-weight:900;text-transform:uppercase}.date-block strong{font-size:30px;line-height:1}.date-block>span:last-child{font-size:10px;color:var(--muted)}
.day-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:7px}.day-kind{font-size:9px;font-weight:950;letter-spacing:.08em;padding:4px 6px;border-radius:999px;background:rgba(202,255,61,.10);color:var(--lime)}.day-kind.holiday{background:rgba(86,229,255,.11);color:var(--electric)}.holiday-name{font-size:10px;color:var(--muted)}
.day-status b{display:block;font-size:14px;letter-spacing:.04em}.day-status small{display:block;color:var(--muted);margin-top:5px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;background:var(--lime);box-shadow:0 0 14px rgba(202,255,61,.65)}.is-unavailable .status-dot{background:var(--danger);box-shadow:none}
.switch-visual{width:50px;height:28px;border-radius:999px;padding:3px;background:rgba(128,128,128,.18);transition:.3s}.switch-visual span{display:block;width:22px;height:22px;border-radius:50%;background:#748078;transition:.3s}.is-available .switch-visual{background:rgba(202,255,61,.20)}.is-available .switch-visual span{transform:translateX(22px);background:var(--lime);box-shadow:0 0 14px rgba(202,255,61,.45)}
.time-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px 16px;max-height:220px;opacity:1;transition:.3s}.is-unavailable .time-panel{max-height:0;opacity:0;padding-top:0;padding-bottom:0;overflow:hidden;pointer-events:none}.time-panel label span{font-size:12px;color:var(--muted)}.limit-option{grid-column:1/-1;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}.limit-option input{width:auto;margin:0}.until-field.hidden{display:none}
.sticky-save{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);width:min(720px,calc(100% - 28px));z-index:40;padding:8px;border-radius:20px;background:color-mix(in srgb,var(--bg) 82%,transparent);border:1px solid var(--line);backdrop-filter:blur(18px)}
.loading .save-label{opacity:0}.save-spinner{display:none;position:absolute;width:22px;height:22px;border-radius:50%;border:3px solid rgba(7,16,11,.25);border-top-color:#07100b}.loading .save-spinner{display:block;animation:spin .65s linear infinite}.save-flash{transition:.4s}.save-flash.fade-away{opacity:0;transform:translateY(-8px)}

.theme-widget{position:fixed;right:18px;bottom:18px;z-index:70}.theme-main{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--text);box-shadow:var(--shadow);backdrop-filter:blur(14px);font-size:19px}.theme-menu{position:absolute;right:0;bottom:56px;width:190px;padding:8px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:var(--shadow);opacity:0;transform:translateY(8px) scale(.98);pointer-events:none;transition:.2s}.theme-menu.open{opacity:1;transform:none;pointer-events:auto}.theme-menu button{width:100%;display:flex;gap:10px;padding:9px 10px;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;font-weight:800}.theme-menu button:hover,.theme-menu button.active{background:rgba(202,255,61,.11)}.theme-menu small{display:block;padding:8px 10px 5px;color:var(--muted);font-size:10px}

.padel-intro{position:fixed;inset:0;z-index:1000;background:var(--bg);pointer-events:none;overflow:hidden;transition:opacity .55s ease}.padel-intro.gone{opacity:0}
.court-line{position:absolute;left:8%;right:8%;bottom:18%;height:2px;background:linear-gradient(90deg,transparent,var(--lime),transparent);opacity:.45}
.padel-ball{position:absolute;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#efffae 0 18%,var(--lime) 22% 72%,#83b51a 100%);box-shadow:0 0 28px rgba(202,255,61,.35);left:12%;bottom:22%;animation:ballBounce 2.2s cubic-bezier(.35,.02,.65,.98) forwards}
.padel-ball::before{content:"";position:absolute;inset:5px;border:2px solid rgba(255,255,255,.55);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(32deg)}
.padel-racket{position:absolute;width:100px;height:170px;right:9%;bottom:10%;transform:rotate(-24deg) translateX(150px);transform-origin:70% 90%;transition:transform .28s cubic-bezier(.2,.9,.2,1)}
.racket-face{position:absolute;left:10px;top:0;width:78px;height:100px;border-radius:48% 48% 44% 44%;background:
radial-gradient(circle at 20% 20%,transparent 0 3px,rgba(7,16,11,.5) 4px 5px,transparent 6px),
radial-gradient(circle at 48% 22%,transparent 0 3px,rgba(7,16,11,.5) 4px 5px,transparent 6px),
radial-gradient(circle at 72% 22%,transparent 0 3px,rgba(7,16,11,.5) 4px 5px,transparent 6px),
radial-gradient(circle at 30% 48%,transparent 0 3px,rgba(7,16,11,.5) 4px 5px,transparent 6px),
radial-gradient(circle at 62% 50%,transparent 0 3px,rgba(7,16,11,.5) 4px 5px,transparent 6px),
linear-gradient(145deg,var(--lime),#66c923);border:4px solid #dfffa1;box-shadow:0 0 28px rgba(202,255,61,.25)}
.racket-handle{position:absolute;left:43px;top:96px;width:18px;height:70px;border-radius:4px 4px 8px 8px;background:linear-gradient(90deg,#111,#333,#111);transform:rotate(-2deg)}
.padel-intro.hit .padel-racket{transform:rotate(-58deg) translateX(-40px)}
.padel-intro.hit .padel-ball{animation:ballHit .75s cubic-bezier(.1,.7,.2,1) forwards}
@keyframes ballBounce{
  0%{left:10%;bottom:72%;transform:rotate(0)}
  18%{left:24%;bottom:18%;transform:rotate(160deg)}
  36%{left:38%;bottom:51%;transform:rotate(320deg)}
  54%{left:52%;bottom:18%;transform:rotate(480deg)}
  72%{left:65%;bottom:38%;transform:rotate(620deg)}
  100%{left:76%;bottom:18%;transform:rotate(760deg)}
}
@keyframes ballHit{0%{left:76%;bottom:18%;transform:scale(1)}25%{transform:scale(.86)}100%{left:-10%;bottom:92%;transform:scale(.48) rotate(-780deg)}}

.landing-body{display:grid;place-items:center}.landing-shell{width:min(1080px,calc(100% - 32px));display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:stretch;padding:40px 0}.hero-premium,.landing-card{position:relative;overflow:hidden;min-height:520px;padding:clamp(26px,5vw,54px);border:1px solid var(--line);border-radius:32px;background:linear-gradient(145deg,var(--surface),var(--bg));box-shadow:var(--shadow)}.hero-premium{display:flex;flex-direction:column;justify-content:flex-end}.hero-premium h1{font-size:clamp(64px,11vw,130px);line-height:.78;margin:18px 0 24px}.hero-premium h1 span{color:var(--lime)}.hero-premium p,.landing-card p{color:var(--muted)}.hero-line{height:1px;background:linear-gradient(90deg,var(--lime),transparent);margin:10px 0 24px}.landing-card{display:flex;flex-direction:column;justify-content:flex-end}
.login-match-shell{width:min(650px,calc(100% - 28px));margin:0 auto;padding:60px 0}.login-match-head{text-align:center;margin-bottom:24px}.login-match-head h1{margin:22px 0 8px}.login-match-head p{color:var(--muted)}.login-card form{display:grid;gap:18px}

@media(max-width:820px){
  .grid2,.availability-grid,.landing-shell,.daytype-hours{grid-template-columns:1fr}
  .player-grid{grid-template-columns:1fr}
  .intro-panel{align-items:flex-start;flex-direction:column}
  .quick-actions{width:100%}.quick-actions .btn{flex:1}
  .hour-card{grid-template-columns:42px 1fr 105px}
  .hero-premium{min-height:520px}.landing-card{min-height:280px}
}
@media(max-width:560px){
  .wrap{width:min(100% - 20px,1160px)}
  .day-toggle{grid-template-columns:68px 1fr 46px;gap:10px;padding:13px}.date-block{width:62px;height:68px}.date-block strong{font-size:27px}
  .time-panel{grid-template-columns:1fr}.limit-option{grid-column:auto}
  .holiday-source{align-items:flex-start;flex-direction:column}
  .theme-widget{right:12px;bottom:12px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
