:root{--bg:#fbfcfb;--cd:#fff;--tx:#182722;--mu:#6b7770;--ac:#b8532e;--ac2:#f3e2d8;--court:#1f4a3b;--court2:#173a2e;--ball:#c9b23e;--ball2:#f4f1e6;--bd:#e6eae6;--er:#9c3226;--er2:#f6e3de;--radius:10px;--radius-lg:14px;box-sizing:border-box}:root[data-theme=dark]{--bg:#17181a;--cd:#212325;--tx:#eef0ee;--mu:#9aa19c;--ac:#e08a5f;--ac2:#3a2a20;--court:#4b9c7c;--court2:#3a7d63;--ball:#dcc767;--ball2:#332f1a;--bd:#34373a;--er:#e2836f;--er2:#3a2019}:root[data-theme=dark] .daylabel{color:#8b938e}:root[data-theme=dark] .bd{color:var(--ball)}:root[data-theme=dark] button.p{color:#20140c}*{box-sizing:border-box}body,html{background:var(--bg);margin:0}body{font:15px/1.5 Inter,system-ui,sans-serif;color:var(--tx);-webkit-font-smoothing:antialiased}#app,body,header,html,nav.bottomnav{transition:background-color .2s ease,color .2s ease,border-color .2s ease}#app{max-width:680px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding-top:calc(96px + env(safe-area-inset-top))}.content{flex:1 1;padding:0 14px calc(70px + env(safe-area-inset-bottom))}.authbox{max-width:360px;margin:15vh auto;padding:0 16px}.authbox h1{margin-bottom:18px}h1,h2,h3{font-family:Archivo,system-ui,sans-serif;font-weight:800;letter-spacing:-.01em}h1{font-size:21px;margin:0;display:flex;align-items:center;gap:8px}h2{font-size:19px;margin:0 0 4px}h3{margin:0;font-size:15px;font-weight:700}header{position:fixed;top:0;left:0;right:0;z-index:7;max-width:680px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;background:var(--court);padding:calc(12px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 12px calc(16px + env(safe-area-inset-left));border-radius:0 0 var(--radius-lg) var(--radius-lg);border-bottom:3px solid var(--ac)}header,header h1{color:#fdfaf1}header .who{font-size:13px;color:#cfe3d7}.contact-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:hsla(45,75%,97%,.14);color:#fdfaf1;border:1px solid hsla(45,75%,97%,.3);flex:none;transition:background-color .15s ease}@media (hover:hover){.contact-btn:hover{background:hsla(45,75%,97%,.26)}}.toast{margin:0 14px 8px;padding:11px 14px;background:var(--court);color:#fdfaf1;border-radius:var(--radius);font-weight:700;font-size:14px;text-align:center;cursor:pointer;box-shadow:0 6px 18px rgba(15,20,17,.2)}@media (prefers-reduced-motion:no-preference){.toast{animation:tfoToast .25s cubic-bezier(.2,.9,.3,1)}}@keyframes tfoToast{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}input,select,textarea{font:inherit;padding:.55em .65em;border:1px solid var(--bd);border-radius:var(--radius);background:var(--cd);color:var(--tx);width:100%;transition:border-color .15s ease,box-shadow .15s ease,background-color .2s ease,color .2s ease}input:not([type=file]),select,textarea{width:auto}textarea{resize:vertical}label{display:block}input:focus,select:focus,textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac2)}:focus-visible{outline:2px solid var(--ac);outline-offset:2px}.daylabel{font-family:Archivo,system-ui,sans-serif;font-weight:700;font-size:12px;color:#8a9790;padding:6px 2px}button{font:inherit;border-radius:var(--radius);padding:.5em .9em;border:1px solid var(--bd);background:var(--cd);color:var(--tx);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease,opacity .15s ease}button.p{background:var(--ac);border-color:var(--ac);color:#fff;font-weight:700}button.d{color:var(--er);border-color:var(--er)}button.lk{border:0;background:none;padding:0;text-decoration:underline;color:var(--court);cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}@media (hover:hover){button.p:not(:disabled):hover{box-shadow:0 4px 14px rgba(184,83,46,.28)}button:not(.p):not(.lk):not(:disabled):hover{background:var(--ac2);border-color:var(--ac2)}button.d:not(:disabled):hover{background:var(--er2)}nav.bottomnav button:not(.on):hover{color:var(--tx)}}@media (prefers-reduced-motion:no-preference){button.p:not(:disabled):hover{transform:translateY(-1px)}button:not(:disabled):active{transform:scale(.96)}.card.clickable:hover{transform:translateY(-1px)}nav.bottomnav button:active{transform:scale(.9)}}.card{background:var(--cd);border:1px solid var(--bd);border-radius:var(--radius-lg);padding:12px 14px;margin-bottom:12px;transition:background-color .2s ease,border-color .2s ease,box-shadow .15s ease,transform .1s ease}.card.mine{border-color:var(--court);border-width:1.5px}.card.clickable{cursor:pointer}.card.clickable:hover{box-shadow:0 4px 16px rgba(15,20,17,.08)}.sub{background:var(--bg)}.hd{margin-bottom:8px}.hd small,.mu{color:var(--mu);font-size:13px}.row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0 8px 10px;border-left:3px solid var(--bd);border-top:1px solid var(--bd);flex-wrap:wrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.row:first-of-type{border-top:0}.row.mine{border-left-color:var(--court)}em{font-style:normal;color:var(--mu);font-size:14px}.bd{display:inline-flex;align-items:center;gap:4px;background:var(--ball2);color:#6b5e17;border-radius:6px;padding:1px 8px 1px 3px;font-size:12px;font-weight:700}.bd.r{background:var(--er2);color:var(--er)}.fr{gap:6px;flex-wrap:wrap;margin-top:6px}.fr,.ov{display:flex;align-items:center}.ov{position:fixed;inset:0;background:rgba(15,20,17,.55);justify-content:center;padding:14px;z-index:9}.md{background:var(--cd);border-radius:var(--radius-lg);padding:16px;max-width:400px;width:100%;display:grid;grid-gap:10px;gap:10px;max-height:88vh;overflow:auto;box-shadow:0 12px 32px rgba(10,20,15,.25)}.md label{display:grid;grid-gap:3px;gap:3px;font-size:13px;color:var(--mu)}.md label.ck{display:flex;gap:8px;align-items:flex-start;color:var(--tx);font-size:14px}@media (prefers-reduced-motion:no-preference){.ov{animation:tfoFade .15s ease}.md{animation:tfoPop .18s cubic-bezier(.2,.9,.3,1)}}@keyframes tfoFade{0%{opacity:0}to{opacity:1}}@keyframes tfoPop{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}.big{font-family:Archivo,system-ui,sans-serif;font-size:24px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.av{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--ac2);font-size:14px;flex:none;overflow:hidden}.av img{width:100%;height:100%;object-fit:cover;display:block}.av-lg{width:56px;height:56px;font-size:28px}.crop-box{position:relative;overflow:hidden;border-radius:10px;background:#111;margin:0 auto;touch-action:none;cursor:-webkit-grab;cursor:grab}.crop-box:active{cursor:-webkit-grabbing;cursor:grabbing}.crop-box img{max-width:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.crop-box img,.crop-ring{position:absolute;pointer-events:none}.crop-ring{inset:0;border-radius:50%;box-shadow:0 0 0 9999px rgba(0,0,0,.55)}.agb{border-top:3px solid var(--court)}.agb h4{margin:14px 0 4px;font-size:14px;font-family:Archivo,system-ui,sans-serif}.agb p{margin:4px 0}.err{color:var(--er)}.busy,.err{font-size:13px}.busy{display:flex;align-items:center;gap:8px;margin:8px 14px 0;color:var(--mu)}.busy:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ac);flex:none}@media (prefers-reduced-motion:no-preference){.busy:before{animation:tfoPulse 1s ease-in-out infinite}}@keyframes tfoPulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}nav.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:7;max-width:680px;margin:0 auto;display:flex;gap:2px;background:var(--cd);border-top:1px solid var(--bd);padding:8px 6px calc(8px + env(safe-area-inset-bottom))}nav.bottomnav button{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;padding:6px 2px;font-family:Inter,system-ui,sans-serif;font-size:10px;font-weight:600;color:var(--mu);border-radius:8px}nav.bottomnav button .ic{display:flex;align-items:center;justify-content:center;line-height:1}.pin-ic{vertical-align:-2px;flex:none}nav.bottomnav button.on{color:var(--court)}.switch{position:relative;display:inline-block;width:42px;height:24px;flex:none}.switch input{opacity:0;width:0;height:0;position:absolute}.switch .slider{position:absolute;inset:0;background:var(--bd);border-radius:999px;transition:.15s;cursor:pointer}.switch .slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s cubic-bezier(.34,1.56,.64,1)}.switch input:checked+.slider{background:var(--court)}.switch input:checked+.slider:before{transform:translateX(18px)}.acc-hd{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:none;border:0;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer;border-radius:8px}.acc-date{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.acc-date b{font-family:Archivo,system-ui,sans-serif;font-size:16px}.acc-date .mu{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acc-status{display:flex;align-items:center;gap:8px;flex:none}.acc-chev{color:var(--mu);flex:none}.acc-chev.open{transform:rotate(180deg)}@media (prefers-reduced-motion:no-preference){.acc-chev{transition:transform .15s ease}}.acc-body{padding-top:10px;margin-top:10px;border-top:1px solid var(--bd);display:flex;flex-direction:column}@media (prefers-reduced-motion:no-preference){.acc-body{animation:tfoAccOpen .18s cubic-bezier(.2,.9,.3,1)}}@keyframes tfoAccOpen{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;border:1.5px solid transparent}.chip.free{color:var(--court);border-color:var(--court)}.chip.join{color:#6b5e17;border-color:var(--ball)}:root[data-theme=dark] .chip.join{color:var(--ball)}.chip.full{color:var(--mu);border-color:var(--bd)}