:root{
  --green:#178b58; --green2:#0d6f4b; --teal:#1b8f97; --teal2:#146f79;
  --cream:#f4f1ca; --orange:#ff7a20; --ink:#073f39; --paper:#fbf8e9;
  --red:#d94f3d; --shadow:0 18px 50px rgba(4,49,44,.16);
  --r:26px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--paper)}
body{overflow-x:hidden}.grain{pointer-events:none;position:fixed;inset:0;z-index:99;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;background:radial-gradient(circle at 10% 0%,rgba(255,122,32,.13),transparent 25%),linear-gradient(180deg,#fdf9e7 0,#f7f3da 100%)}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:rgba(251,248,233,.82);backdrop-filter:blur(16px);border-bottom:1px solid rgba(7,63,57,.08)}
.brand{display:flex;align-items:center;gap:10px;font-family:'Space Grotesk';font-weight:800;letter-spacing:-.04em}.qc-badge{width:42px;height:42px;border-radius:50%;position:relative;background:linear-gradient(145deg,var(--green),#37a94d);overflow:hidden;border:3px solid var(--cream);box-shadow:0 4px 0 rgba(7,63,57,.16)}
.qc-badge:before{content:"";position:absolute;width:50px;height:50px;border:8px solid var(--cream);transform:rotate(45deg);left:-4px;top:14px}.mini-ball{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--orange);left:14px;bottom:5px;box-shadow:0 6px 0 #063f39}.brand small{display:block;font-size:10px;letter-spacing:.14em;font-weight:700}.top-actions{display:flex;gap:8px}.ghost,.pill{border:1px solid rgba(7,63,57,.12);background:#fffdf2;color:var(--ink);padding:10px 13px;border-radius:999px;font-weight:800}.pill{background:var(--ink);color:var(--cream);border:0}
.hero{position:relative;overflow:hidden;padding:30px 18px 24px;background:linear-gradient(145deg,var(--green),var(--green2));color:var(--cream)}.hero:after{content:"";position:absolute;left:-8%;right:-8%;top:65%;height:180px;border:18px solid rgba(244,241,202,.9);transform:rotate(45deg);border-bottom:0;border-right:0}.hero-inner{position:relative;z-index:2;max-width:980px;margin:auto}.eyebrow{display:inline-flex;gap:7px;align-items:center;border:1px solid rgba(244,241,202,.28);background:rgba(255,255,255,.08);border-radius:999px;padding:8px 11px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero h1{font-family:'Space Grotesk';font-size:clamp(38px,8vw,72px);line-height:.95;letter-spacing:-.065em;margin:18px 0 8px}.hero p{margin:0;max-width:620px;font-weight:600;opacity:.92}.hero-ball{position:absolute;right:8%;top:18px;width:105px;height:105px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#ff9f34,var(--orange) 55%,#df5810);box-shadow:0 22px 0 rgba(0,48,43,.72),0 30px 30px rgba(0,0,0,.2)}.hero-ball i{position:absolute;width:10px;height:10px;background:#bb3e10;border-radius:50%}.hero-ball i:nth-child(1){left:30px;top:22px}.hero-ball i:nth-child(2){left:62px;top:34px}.hero-ball i:nth-child(3){left:45px;top:58px}.hero-ball i:nth-child(4){left:20px;top:64px}.hero-ball i:nth-child(5){left:70px;top:72px}
.container{max-width:980px;margin:auto;padding:18px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:10px 0 14px}.section-title h2{font-family:'Space Grotesk';letter-spacing:-.045em;font-size:27px;margin:0}.section-title p{margin:0;color:#51706c;font-size:13px}.date-strip{display:flex;gap:10px;overflow:auto;padding-bottom:6px;scrollbar-width:none}.date-chip{min-width:74px;border:0;border-radius:20px;padding:12px 9px;background:#fffdf3;color:var(--ink);box-shadow:0 6px 20px rgba(7,63,57,.07);border:1px solid rgba(7,63,57,.08);font-weight:800}.date-chip span{display:block;font-size:11px;opacity:.58;text-transform:uppercase}.date-chip.active{background:var(--ink);color:var(--cream);transform:translateY(-2px)}
.court-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.court-card{border-radius:22px;padding:16px;background:linear-gradient(160deg,#fffdf0,#f0edcf);border:1px solid rgba(7,63,57,.09);box-shadow:var(--shadow)}.court-card h3{font-family:'Space Grotesk';margin:0 0 3px}.court-card small{color:#5f7774}.court-dot{float:right;width:14px;height:14px;background:#50b867;border-radius:50%;box-shadow:0 0 0 5px rgba(80,184,103,.12)}
.times{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.slot{position:relative;text-align:left;border:0;border-radius:20px;padding:15px;background:#fffdf2;color:var(--ink);border:1px solid rgba(7,63,57,.09);box-shadow:0 8px 25px rgba(7,63,57,.07);min-height:88px}.slot strong{font-family:'Space Grotesk';font-size:18px;display:block}.slot em{font-style:normal;font-size:12px;color:#6d7f7c}.slot .availability{position:absolute;right:12px;top:12px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}.slot.booked{background:#e9e4c8;color:#72807b;box-shadow:none}.slot.booked .availability{color:#9b5845}.slot.selected{outline:3px solid var(--orange);transform:translateY(-2px)}
.primary{width:100%;border:0;border-radius:20px;padding:16px 18px;background:var(--orange);color:#3d1e07;font-weight:900;font-family:'Space Grotesk';font-size:17px;box-shadow:0 8px 0 #c74c09;transition:.15s}.primary:active{transform:translateY(4px);box-shadow:0 4px 0 #c74c09}.primary.dark{background:var(--ink);color:var(--cream);box-shadow:0 8px 0 #022a26}.primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.floating-book{position:sticky;bottom:12px;z-index:15;padding:0 18px 18px;max-width:980px;margin:auto}.floating-book .primary{backdrop-filter:blur(10px)}
.modal-backdrop{position:fixed;inset:0;background:rgba(3,36,33,.54);backdrop-filter:blur(8px);z-index:40;display:grid;place-items:end center;padding:12px}.modal{width:min(100%,620px);max-height:92vh;overflow:auto;background:var(--paper);border-radius:30px 30px 22px 22px;padding:20px;box-shadow:0 30px 100px rgba(0,0,0,.35)}.modal h2{font-family:'Space Grotesk';letter-spacing:-.04em;margin:5px 0 4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea{border:1px solid rgba(7,63,57,.14);background:#fffdf3;border-radius:15px;padding:13px;color:var(--ink);outline:none}.field input:focus,.field select:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(27,143,151,.12)}.summary{background:var(--teal);color:white;border-radius:20px;padding:15px;display:flex;justify-content:space-between;gap:10px}.summary b{font-family:'Space Grotesk'}.modal-actions{display:flex;gap:10px}.modal-actions button{flex:1}.secondary{border:1px solid rgba(7,63,57,.14);border-radius:18px;padding:15px;background:#fffdf3;color:var(--ink);font-weight:900}
.confirm-card{background:linear-gradient(150deg,var(--teal),#0f6973);color:white;border-radius:28px;padding:22px;text-align:center;position:relative;overflow:hidden}.confirm-card:before{content:"";position:absolute;width:320px;height:320px;border:28px solid rgba(244,241,202,.22);transform:rotate(45deg);left:-90px;top:80px}.confirm-card>*{position:relative;z-index:2}.confirm-card h2{font-size:34px;margin:10px 0}.qr-wrap{width:220px;height:220px;margin:16px auto;background:white;padding:12px;border-radius:20px;display:grid;place-items:center}.booking-code{font-family:'Space Grotesk';font-weight:900;letter-spacing:.16em}.success-ball{width:78px;height:78px;margin:auto;border-radius:50%;background:var(--orange);box-shadow:0 14px 0 #063f39}
.admin-shell{min-height:100vh;background:#0b4841;color:#f6f2d4}.admin-hero{padding:24px 18px 16px;max-width:1180px;margin:auto}.admin-hero h1{font-family:'Space Grotesk';font-size:38px;letter-spacing:-.055em;margin:0}.admin-wrap{max-width:1180px;margin:auto;padding:0 18px 40px}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.stat{background:#f6f2d4;color:#073f39;border-radius:20px;padding:16px}.stat b{font-family:'Space Grotesk';font-size:28px;display:block}.admin-board{background:#f7f3df;color:var(--ink);border-radius:26px;padding:14px;overflow:auto}.admin-table{width:100%;border-collapse:separate;border-spacing:0 8px;min-width:780px}.admin-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#637673;padding:0 10px}.admin-table td{background:#fffdf2;padding:12px 10px}.admin-table td:first-child{border-radius:14px 0 0 14px}.admin-table td:last-child{border-radius:0 14px 14px 0}.badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:#d8f0dc;color:#176b3b;font-size:11px;font-weight:900}.danger{border:0;background:#f6d4cc;color:#8d2817;border-radius:12px;padding:9px 11px;font-weight:900}.boss-card{display:flex;gap:14px;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:12px;border-radius:22px}.boss-card img{width:64px;height:64px;border-radius:18px;object-fit:cover}.boss-card b{display:block;font-family:'Space Grotesk';font-size:18px}.admin-tools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.admin-tools input,.admin-tools select{background:#f7f3df;border:0;border-radius:14px;padding:12px;color:var(--ink)}
.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,var(--green),var(--teal));padding:18px}.login-card{width:min(100%,420px);background:var(--paper);padding:22px;border-radius:30px;box-shadow:0 35px 80px rgba(0,0,0,.3)}.login-card .boss-img{width:100%;height:230px;object-fit:cover;border-radius:22px}.login-card h1{font-family:'Space Grotesk';font-size:34px;letter-spacing:-.05em;margin:16px 0 4px}.login-card p{margin:0 0 14px;color:#5d7471}.login-card input{width:100%;padding:14px;border-radius:16px;border:1px solid rgba(7,63,57,.16);margin-bottom:10px}.micro-note{font-size:11px;color:#78908c;margin-top:12px}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);opacity:0;z-index:100;background:#072f2b;color:white;padding:12px 16px;border-radius:999px;font-weight:800;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
.verify{min-height:100vh;background:linear-gradient(180deg,#f9f5df,#e9e5ca);display:grid;place-items:center;padding:18px}.verify-card{width:min(100%,520px);background:white;border-radius:28px;padding:24px;text-align:center;box-shadow:var(--shadow)}.verify-card h1{font-family:'Space Grotesk';font-size:34px;letter-spacing:-.04em}.verify-ok{font-size:64px}
@media(max-width:700px){.hero-ball{width:76px;height:76px;right:5%;opacity:.92}.hero{padding-top:22px}.court-grid{grid-template-columns:1fr}.times{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.admin-stats{grid-template-columns:1fr 1fr}.topbar .brand-text{display:none}}
@media(max-width:420px){.times{grid-template-columns:1fr}.admin-stats{grid-template-columns:1fr}}

/* Compact mobile booking schedule */
.schedule-title{align-items:flex-end;margin-top:24px}.legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end;color:#55716d;font-size:11px;font-weight:800}.legend span{display:flex;align-items:center;gap:5px}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.legend-dot.available{background:var(--cream);border:2px solid var(--green)}.legend-dot.unavailable{background:#c8c6b7}
.schedule-head{display:grid;grid-template-columns:minmax(0,1fr) 176px;align-items:center;padding:0 14px 8px;border-bottom:1px solid rgba(7,63,57,.09);color:#6f817e;font-size:10px;font-weight:900;letter-spacing:.12em}.schedule-head>div{display:grid;grid-template-columns:repeat(3,48px);gap:16px;justify-content:end;text-align:center}
.times{display:block}.time-row{display:grid;grid-template-columns:minmax(0,1fr) 176px;align-items:center;min-height:64px;padding:8px 14px;border-bottom:1px solid rgba(7,63,57,.08);background:rgba(255,253,242,.48)}.time-row:first-child{border-radius:18px 18px 0 0}.time-row:last-child{border-bottom:0;border-radius:0 0 18px 18px}.time-row:nth-child(even){background:rgba(236,239,211,.48)}.time-label{min-width:0;display:flex;align-items:baseline;gap:7px}.time-label strong{font-family:'Space Grotesk';font-size:16px;letter-spacing:-.02em;white-space:nowrap}.time-label span{font-size:10px;color:#71817f;white-space:nowrap}.court-circles{display:grid;grid-template-columns:repeat(3,48px);gap:16px;justify-content:end}.court-circle{width:46px;height:46px;border-radius:50%;border:2px solid var(--green);background:var(--cream);color:var(--ink);font-family:'Space Grotesk';font-size:16px;font-weight:900;box-shadow:0 3px 0 rgba(7,63,57,.12);transition:transform .12s ease,background .12s ease,border-color .12s ease}.court-circle:not(:disabled):active{transform:scale(.94)}.court-circle.booked{background:#d6d4c5;border-color:#c6c3b2;color:#888c84;box-shadow:none;position:relative}.court-circle.booked:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#a86c58;right:3px;top:3px}.court-circle.selected{background:var(--orange);border-color:#d6530b;color:#3d1e07;box-shadow:0 0 0 4px rgba(243,110,30,.16),0 4px 0 #c74c09;transform:translateY(-1px)}
@media(max-width:700px){.schedule-title{align-items:flex-start}.legend{justify-content:flex-start}.schedule-head{grid-template-columns:minmax(0,1fr) 156px;padding-left:8px;padding-right:8px}.schedule-head>div{grid-template-columns:repeat(3,44px);gap:12px}.time-row{grid-template-columns:minmax(0,1fr) 156px;padding:7px 8px;min-height:60px}.court-circles{grid-template-columns:repeat(3,44px);gap:12px}.court-circle{width:44px;height:44px}.time-label{display:block}.time-label strong{display:block}.time-label span{display:block;margin-top:1px}}
@media(max-width:360px){.schedule-head{grid-template-columns:minmax(0,1fr) 144px}.schedule-head>div,.court-circles{grid-template-columns:repeat(3,42px);gap:9px}.time-row{grid-template-columns:minmax(0,1fr) 144px}.court-circle{width:42px;height:42px}.time-label strong{font-size:15px}}
.loading-line{padding:24px 14px;text-align:center;color:#55716d;font-weight:800;background:rgba(255,253,242,.55);border-radius:18px}.loading-line.error{color:#8d2817}.loading-line small{font-weight:600;opacity:.75}
/* V3: personal booking reference + passed-time cleanup */
.time-label>div{min-width:0}.my-code{display:block;width:max-content;max-width:100%;margin-top:4px;padding:3px 7px;border-radius:999px;background:rgba(243,110,30,.14);color:#a33f07;font-style:normal;font-family:'Space Grotesk';font-weight:800;font-size:9px;letter-spacing:.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.court-circle.mine{background:var(--orange);border-color:#d6530b;color:#3d1e07;box-shadow:0 3px 0 #c74c09;opacity:1}.court-circle.mine:after{display:none}.day-finished{padding:28px 16px;text-align:center;background:rgba(255,253,242,.6);border-radius:18px;color:var(--ink)}.day-finished b,.day-finished span{display:block}.day-finished span{margin-top:5px;font-size:12px;color:#71817f}

/* V4: admin date-range CSV export */
.export-card{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f6f2d4;color:#073f39;border-radius:24px;padding:18px;margin:0 0 16px}.export-card small{font-size:10px;font-weight:900;letter-spacing:.12em;color:#68807b}.export-card h3{font-family:'Space Grotesk';font-size:22px;letter-spacing:-.035em;margin:3px 0 4px}.export-card p{margin:0;color:#637673;font-size:12px}.export-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;justify-content:flex-end}.export-controls label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.export-controls input{min-height:44px;border:1px solid rgba(7,63,57,.13);background:#fffdf2;color:#073f39;border-radius:14px;padding:10px 12px}.export-btn{width:auto;min-height:44px;padding:10px 16px;box-shadow:0 5px 0 #c74c09;font-size:14px}.export-btn:active{box-shadow:0 2px 0 #c74c09}.export-btn:disabled{box-shadow:none}
@media(max-width:760px){.export-card{display:block}.export-controls{display:grid;grid-template-columns:1fr 1fr;margin-top:14px}.export-controls label,.export-controls input{min-width:0;width:100%}.export-btn{grid-column:1/-1;width:100%}}

/* V5: graphic home + tournaments */
.home-shell{min-height:100vh;background:#f7f3d9;color:var(--ink)}
.home-shell .topbar{background:rgba(247,243,217,.9)}
.home-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);min-height:430px;background:linear-gradient(132deg,#087b55 0%,#168f64 52%,#16909b 100%);color:var(--cream);padding:clamp(28px,5vw,64px);border-bottom:10px solid #ff7a20}
.home-copy{position:relative;z-index:3;align-self:end;max-width:720px}.home-kicker{display:inline-flex;border:1px solid rgba(244,241,202,.42);border-radius:999px;padding:8px 11px;font:800 11px/1 'DM Sans';letter-spacing:.13em;background:rgba(255,255,255,.08)}
.home-copy h1,.tournament-hero h1{font-family:'Space Grotesk';font-weight:700;font-size:clamp(46px,8.4vw,94px);line-height:.84;letter-spacing:-.075em;margin:20px 0 14px}.home-copy h1 em{font-style:normal;color:#ff8a2b;text-shadow:0 4px 0 rgba(61,30,7,.22)}.home-copy p{font-weight:700;font-size:clamp(14px,2vw,19px);max-width:550px;margin:0;opacity:.94}
.home-art{position:relative;min-height:340px;align-self:stretch}.court-lines{position:absolute;width:460px;height:460px;border:28px solid rgba(244,241,202,.92);transform:rotate(45deg);left:10%;top:22%;border-right-color:transparent;border-bottom-color:transparent}.court-lines:after{content:"";position:absolute;left:88px;top:-28px;height:230px;border-left:20px solid rgba(244,241,202,.92)}
.home-ball{position:absolute;z-index:3;right:13%;top:10%;width:156px;height:156px;border-radius:50%;background:radial-gradient(circle at 32% 24%,#ffac45,#ff7a20 55%,#de5208);box-shadow:0 28px 0 #073f39,0 38px 45px rgba(0,0,0,.22);transform:rotate(-7deg)}.home-ball i{position:absolute;width:14px;height:14px;border-radius:50%;background:#c7470c}.home-ball i:nth-child(1){left:38px;top:28px}.home-ball i:nth-child(2){left:79px;top:28px}.home-ball i:nth-child(3){left:111px;top:55px}.home-ball i:nth-child(4){left:78px;top:75px}.home-ball i:nth-child(5){left:32px;top:80px}.home-ball i:nth-child(6){left:105px;top:108px}.home-ball i:nth-child(7){left:55px;top:122px}.home-shadow{position:absolute;right:5%;top:55%;width:210px;height:42px;background:#063d39;border-radius:50%;opacity:.35;filter:blur(2px)}.home-qc{position:absolute;right:3%;bottom:2%;font-family:'Space Grotesk';font-size:132px;font-weight:900;letter-spacing:-.12em;color:rgba(244,241,202,.12);transform:rotate(-8deg)}
.home-actions{max-width:1120px;margin:-28px auto 0;position:relative;z-index:6;padding:0 18px 28px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.home-card{text-decoration:none;text-align:left;border:0;border-radius:30px;padding:22px;min-height:250px;display:flex;flex-direction:column;justify-content:space-between;color:inherit;box-shadow:0 18px 45px rgba(7,63,57,.13);transition:transform .18s ease,box-shadow .18s ease}.home-card:active{transform:translateY(4px)}.home-card-no{font-family:'Space Grotesk';font-weight:900;font-size:11px;letter-spacing:.12em}.home-card small{font-weight:900;font-size:10px;letter-spacing:.1em}.home-card h2{font-family:'Space Grotesk';font-size:30px;letter-spacing:-.05em;margin:6px 0}.home-card p{margin:0;font-size:13px;font-weight:600;max-width:280px;opacity:.75}.home-card>b{font-family:'Space Grotesk';font-size:12px;letter-spacing:.04em}.booking-card{background:#ff7a20;color:#3d1e07}.map-card{background:#f7f1c8;color:#073f39}.tournament-card{background:#148f98;color:white}.home-footer{max-width:1120px;margin:auto;padding:2px 18px 32px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.home-footer span{border:1px solid rgba(7,63,57,.15);border-radius:999px;padding:8px 12px;font-size:9px;font-weight:900;letter-spacing:.12em}

.public-page{min-height:100vh;background:linear-gradient(180deg,#f8f3d7,#eee8c8)}.tournament-hero{position:relative;overflow:hidden;background:linear-gradient(138deg,#108e96,#0b726d);color:white;padding:50px 18px 58px;text-align:center}.tournament-hero:after{content:"";position:absolute;width:340px;height:340px;border:26px solid rgba(244,241,202,.18);transform:rotate(45deg);left:calc(50% - 170px);top:150px}.tournament-hero>*{position:relative;z-index:2}.tournament-hero h1{font-size:clamp(54px,10vw,100px);margin:18px 0 10px}.tournament-hero p{margin:0;font-weight:700;opacity:.9}.tournament-wrap{max-width:980px;margin:-26px auto 0;padding:0 18px 44px;position:relative;z-index:4}.tournament-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.event-card{overflow:hidden;border-radius:30px;background:#fffdf0;box-shadow:0 18px 50px rgba(7,63,57,.14)}.event-card>img,.event-poster-placeholder{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.event-poster-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#178b58,#158d95);color:#f4f1ca;position:relative}.event-poster-placeholder:before{content:"";position:absolute;width:260px;height:260px;border:25px solid rgba(244,241,202,.55);transform:rotate(45deg)}.event-poster-placeholder span{font-family:'Space Grotesk';font-size:86px;font-weight:900;letter-spacing:-.1em;position:relative}.event-poster-placeholder b{position:absolute;bottom:20px;font-size:10px;letter-spacing:.2em}.event-body{padding:20px}.event-date{display:inline-flex;border-radius:999px;padding:7px 9px;background:#e6ead0;color:#355e56;font-size:10px;font-weight:900;letter-spacing:.04em}.event-body h2{font-family:'Space Grotesk';font-size:29px;letter-spacing:-.045em;margin:10px 0 6px}.event-body p{font-size:13px;color:#647773;min-height:38px}.event-body .primary{margin-top:12px}.empty-event{grid-column:1/-1;text-align:center;background:#fffdf0;border-radius:28px;padding:34px;box-shadow:var(--shadow)}.empty-event h2{font-family:'Space Grotesk';font-size:28px;letter-spacing:-.04em}.empty-event .primary{max-width:320px}.empty-ball{width:74px;height:74px;margin:auto;background:#ff7a20;border-radius:50%;box-shadow:0 12px 0 #073f39}
.tournament-detail{max-width:930px;margin:auto;padding:26px 18px 54px;display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:24px;align-items:start}.detail-poster{width:100%;border-radius:28px;box-shadow:var(--shadow);object-fit:cover;max-height:620px}.detail-poster.placeholder{aspect-ratio:4/5;display:grid;place-items:center;background:linear-gradient(145deg,#178b58,#168f97);color:#f4f1ca;font:900 100px/1 'Space Grotesk'}.detail-copy{padding:12px 0}.detail-copy>h1{font-family:'Space Grotesk';font-size:clamp(38px,6vw,62px);line-height:.94;letter-spacing:-.06em;margin:14px 0}.detail-copy>p{font-weight:600;color:#617470}.participate-box{margin-top:26px;background:#ff7a20;color:#3d1e07;border-radius:28px;padding:22px}.participate-box small{font-weight:900;letter-spacing:.12em}.participate-box h2{font-family:'Space Grotesk';font-size:31px;letter-spacing:-.05em;margin:5px 0 16px}.participate-box .field{margin-bottom:10px}.participate-box input{background:#fff7df;border-color:rgba(61,30,7,.12)}.participate-box .micro-note{color:#63391d}

.tournament-admin-card{background:#f6f2d4;color:#073f39;border-radius:24px;padding:18px;margin:0 0 16px}.tournament-admin-head{display:flex;gap:16px;align-items:center;justify-content:space-between}.tournament-admin-head small{font-weight:900;letter-spacing:.12em;color:#68807b}.tournament-admin-head h3{font-family:'Space Grotesk';font-size:24px;letter-spacing:-.04em;margin:3px 0}.tournament-admin-head p{margin:0;color:#637673;font-size:12px}.admin-tournaments{display:grid;gap:9px;margin:16px 0}.admin-event-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:11px;align-items:center;background:#fffdf2;border-radius:16px;padding:8px}.admin-event-row img,.admin-event-thumb{width:58px;height:58px;border-radius:12px;object-fit:cover}.admin-event-thumb{display:grid;place-items:center;background:#178b58;color:#f4f1ca;font:900 20px 'Space Grotesk'}.admin-event-row b{display:block;font-family:'Space Grotesk'}.admin-event-row span{display:block;color:#637673;font-size:11px;margin-top:2px}.admin-event-actions{display:flex;gap:6px}.admin-event-actions .ghost{padding:8px 10px;font-size:11px}.export-interest{width:100%;padding:12px}.file-help{color:#6c7d79;font-size:10px}

@media(max-width:760px){.home-hero{display:block;min-height:470px;padding:34px 18px 44px}.home-copy{padding-top:160px}.home-copy h1{font-size:49px}.home-art{position:absolute;inset:0;min-height:0}.home-ball{width:112px;height:112px;right:14%;top:30px}.home-ball i{transform:scale(.75)}.home-shadow{right:7%;top:145px;width:155px;height:30px}.home-qc{font-size:88px;right:8px;bottom:16px}.court-lines{width:330px;height:330px;border-width:21px;left:48%;top:63px}.home-actions{grid-template-columns:1fr;margin-top:-22px}.home-card{min-height:190px;padding:19px}.home-card h2{font-size:29px}.tournament-list{grid-template-columns:1fr}.tournament-detail{grid-template-columns:1fr}.detail-poster{max-height:none}.tournament-admin-head{display:block}.tournament-admin-head .pill{margin-top:12px;width:100%}.admin-event-row{grid-template-columns:52px minmax(0,1fr)}.admin-event-row img,.admin-event-thumb{width:52px;height:52px}.admin-event-actions{grid-column:1/-1}.admin-event-actions button{flex:1}.public-page .brand-text{display:block}}
@media(max-width:380px){.home-copy h1{font-size:43px}.home-copy{padding-top:150px}.home-card{min-height:180px}.event-body h2{font-size:26px}}

/* V6.2: installable PWA */
.install-zone{max-width:1120px;margin:0 auto;padding:0 18px 18px}
.install-banner{width:100%;border:0;border-radius:26px;padding:14px 16px;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;text-align:left;background:#073f39;color:#f7f3d9;box-shadow:0 16px 34px rgba(7,63,57,.18);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.install-banner:active{transform:translateY(3px);box-shadow:0 9px 22px rgba(7,63,57,.15)}
.install-banner>img{width:64px;height:64px;border-radius:17px;box-shadow:0 8px 16px rgba(0,0,0,.18)}
.install-banner>span{display:flex;flex-direction:column;min-width:0}
.install-banner small{font-size:9px;font-weight:900;letter-spacing:.14em;color:#9ed2c3}
.install-banner b{font:700 24px/1.05 'Space Grotesk';letter-spacing:-.04em;margin:4px 0 3px}
.install-banner em{font-style:normal;font-size:12px;font-weight:650;color:#d5e2d8}
.install-banner>strong{font:800 11px/1 'Space Grotesk';letter-spacing:.05em;background:#ff7a20;color:#3d1e07;padding:13px 14px;border-radius:999px;white-space:nowrap}
.install-banner.installed{background:#155f52;cursor:default;opacity:.92;grid-template-columns:52px minmax(0,1fr)}
.install-banner.installed>strong,.install-banner.installed>img,.install-banner.installed em{display:none}
.install-icon{display:grid!important;place-items:center;width:48px;height:48px;border-radius:50%;background:#f7f3d9;color:#0b5d4f;font-weight:900;font-size:20px}

.install-backdrop{position:fixed;z-index:1000;inset:0;background:rgba(3,34,31,.62);backdrop-filter:blur(10px);display:flex;align-items:flex-end;justify-content:center;padding:18px}
.install-sheet{position:relative;width:min(520px,100%);background:#f8f3db;color:#073f39;border-radius:30px 30px 22px 22px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.32);animation:qcSheetUp .22s ease-out}
@keyframes qcSheetUp{from{transform:translateY(18px);opacity:.4}to{transform:translateY(0);opacity:1}}
.install-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(7,63,57,.12);background:#fffdf2;color:#073f39;font-size:24px;line-height:1;cursor:pointer}
.install-app-preview{display:grid;grid-template-columns:82px minmax(0,1fr);gap:16px;align-items:center;padding:8px 40px 18px 2px}
.install-app-preview img{width:82px;height:82px;border-radius:22px;box-shadow:0 12px 24px rgba(7,63,57,.18)}
.install-app-preview small{font-size:9px;font-weight:900;letter-spacing:.14em;color:#66807a}.install-app-preview h2{font:700 30px/1 'Space Grotesk';letter-spacing:-.05em;margin:5px 0}.install-app-preview p{margin:0;font-size:12px;font-weight:650;color:#60736e}
.install-steps{display:grid;gap:9px;margin:7px 0 16px}.install-step{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:start;background:#fffdf2;border:1px solid rgba(7,63,57,.08);border-radius:18px;padding:12px}.install-step>i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ff7a20;color:#3d1e07;font-style:normal;font-weight:900}.install-step b{display:block;font:700 15px 'Space Grotesk';margin-bottom:2px}.install-step span{display:block;font-size:12px;line-height:1.4;color:#60736e}.install-done{margin-top:2px}
@media(max-width:600px){.install-zone{padding-top:2px}.install-banner{grid-template-columns:54px minmax(0,1fr);border-radius:23px;padding:12px}.install-banner>img{width:54px;height:54px;border-radius:15px}.install-banner b{font-size:21px}.install-banner>strong{grid-column:1/-1;width:100%;text-align:center;padding:12px;margin-top:1px}.install-backdrop{padding:10px}.install-sheet{padding:18px;border-radius:28px 28px 20px 20px}.install-app-preview{grid-template-columns:70px minmax(0,1fr);gap:13px}.install-app-preview img{width:70px;height:70px;border-radius:19px}.install-app-preview h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.install-sheet,.install-banner{animation:none;transition:none}}


/* V6.4: home tile outlines + WhatsApp contact */
.home-card{border:1.5px solid #084f49}
.whatsapp-fab{position:fixed;right:18px;bottom:18px;z-index:40;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#25D366;border:1.5px solid #084f49;box-shadow:0 10px 24px rgba(7,63,57,.22);transition:transform .15s ease,box-shadow .15s ease}
.whatsapp-fab svg{width:27px;height:27px;fill:#fff}
.whatsapp-fab:active{transform:scale(.94);box-shadow:0 6px 16px rgba(7,63,57,.18)}
@media(max-width:600px){.whatsapp-fab{right:14px;bottom:14px;width:46px;height:46px}.whatsapp-fab svg{width:25px;height:25px}}

/* V6.5: shareable court-manager live booking view */
.manager-share-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;background:linear-gradient(145deg,#f6f2d4,#fffbea);color:var(--ink);border:1.5px solid #0a5b52;border-radius:24px;padding:18px;margin:16px 0}
.manager-share-card small{font-size:10px;font-weight:900;letter-spacing:.12em;color:#5f7774}.manager-share-card h3{font-family:'Space Grotesk';font-size:22px;letter-spacing:-.035em;margin:5px 0 3px}.manager-share-card p{margin:0;color:#5e716d;font-size:13px;line-height:1.45}.manager-pass{display:inline-flex;padding:3px 8px;border-radius:999px;background:#dcebdc;color:#0a5b52;font-weight:900;letter-spacing:.04em}.manager-share-actions{display:flex;gap:9px;align-items:center}.manager-share-actions button{white-space:nowrap}.manager-share-btn{width:auto;padding:13px 18px;font-size:14px;border-radius:16px;box-shadow:0 6px 0 #c74c09}

.slots-shell{min-height:100vh;background:linear-gradient(180deg,#f9f5dc 0,#fffbed 100%)}
.slots-login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 15% 0%,rgba(255,122,32,.18),transparent 30%),linear-gradient(145deg,#0a5048,#0b7469)}
.slots-login-card{width:min(100%,430px);padding:28px;border-radius:32px;background:#fbf8e9;box-shadow:0 30px 90px rgba(0,0,0,.26);text-align:center;border:1.5px solid rgba(7,63,57,.12)}
.slots-logo{display:flex;justify-content:center;margin-bottom:15px}.slots-login-card h1{font:800 38px/1 'Space Grotesk';letter-spacing:-.055em;margin:10px 0}.slots-login-card p{margin:0 auto 20px;max-width:330px;color:#5f7774;line-height:1.5}.slots-login-card input{width:100%;border:1px solid rgba(7,63,57,.16);border-radius:18px;padding:15px 16px;background:#fffdf3;color:var(--ink);outline:none;font-size:16px;margin-bottom:12px}.slots-login-card input:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(27,143,151,.12)}.slots-home-link{border:0;background:transparent;color:#58706c;font-weight:800;padding:14px;margin-top:8px}
.slots-hero{max-width:980px;margin:auto;padding:34px 18px 22px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.slots-hero h1{font:800 clamp(40px,8vw,68px)/.95 'Space Grotesk';letter-spacing:-.065em;margin:8px 0 6px}.slots-hero p{margin:0;color:#5a706c;font-weight:600}.slots-live{display:flex;align-items:center;gap:7px;flex:0 0 auto;border:1.5px solid #0a5b52;border-radius:999px;padding:9px 12px;font:900 11px 'Space Grotesk';letter-spacing:.1em}.slots-live i{width:9px;height:9px;border-radius:50%;background:#35b86b;box-shadow:0 0 0 5px rgba(53,184,107,.14)}
.slots-main{max-width:980px;margin:auto;padding:0 18px 50px}.slots-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;background:#0a5048;border-radius:24px;padding:14px;color:#f4f1ca;box-shadow:0 16px 40px rgba(7,63,57,.15)}.slots-filter label{display:flex;flex-direction:column;gap:5px}.slots-filter label span{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.slots-filter input{width:100%;min-width:0;border:0;border-radius:14px;padding:12px;background:#fffdf2;color:var(--ink);font-size:16px}.slots-refresh{height:46px;padding:0 18px}.slots-meta{display:flex;justify-content:space-between;gap:12px;padding:13px 4px 6px;color:#60746f;font-size:12px;font-weight:800}.manager-bookings{display:grid;gap:18px}.slots-day{background:#f5f0d3;border:1.5px solid #0a5b52;border-radius:27px;padding:15px}.slots-day-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:4px 5px 12px}.slots-day-head small{font-size:10px;letter-spacing:.13em;font-weight:900;color:#6a7d78}.slots-day-head h2{font:800 24px 'Space Grotesk';letter-spacing:-.04em;margin:2px 0 0}.slots-day-head>span{font-size:11px;font-weight:900;padding:7px 9px;border-radius:999px;background:#0a5048;color:#f4f1ca}.slots-day-list{display:grid;gap:9px}.manager-booking-card{display:grid;grid-template-columns:120px 68px minmax(0,1fr);gap:14px;align-items:center;background:#fffdf2;border:1px solid rgba(7,63,57,.12);border-radius:19px;padding:13px;box-shadow:0 6px 18px rgba(7,63,57,.05)}.manager-time b{display:block;font:800 19px 'Space Grotesk';letter-spacing:-.02em}.manager-time span{display:block;color:#71817d;font-size:11px;margin-top:2px}.manager-court{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#0a5048;color:#f4f1ca}.manager-court small{font-size:8px;font-weight:900;letter-spacing:.08em;line-height:1}.manager-court b{font:800 22px 'Space Grotesk';line-height:1}.manager-player{min-width:0}.manager-player h3{font:800 18px 'Space Grotesk';margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manager-player>a{color:#0f766e;font-weight:800;text-decoration:none;font-size:14px}.manager-details{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.manager-details span{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#e8eedc;color:#385e57;font-size:10px;font-weight:900}.manager-details .manager-note{background:#fff0df;color:#8a4a19;max-width:100%;white-space:normal}.slots-empty{text-align:center;background:#fffdf2;border:1.5px solid #0a5b52;border-radius:24px;padding:34px 20px}.slots-empty .success-ball{width:54px;height:54px}.slots-empty h2{font:800 26px 'Space Grotesk';margin:16px 0 4px}.slots-empty p{margin:0;color:#6b7d79}

@media(max-width:700px){.manager-share-card{grid-template-columns:1fr}.manager-share-actions{width:100%}.manager-share-actions button{flex:1}.slots-hero{align-items:flex-start}.slots-live{margin-top:6px}.manager-booking-card{grid-template-columns:102px 56px minmax(0,1fr);gap:10px}.manager-court{width:50px;height:50px}.manager-player h3{font-size:17px}}
@media(max-width:520px){.slots-hero{padding-top:24px}.slots-hero h1{font-size:46px}.slots-hero p{font-size:13px}.slots-live{padding:8px 10px}.slots-filter{grid-template-columns:1fr 1fr}.slots-refresh{grid-column:1/-1;width:100%}.slots-meta{font-size:11px}.slots-day{padding:11px;border-radius:23px}.slots-day-head h2{font-size:21px}.manager-booking-card{grid-template-columns:88px 48px minmax(0,1fr);padding:11px 9px}.manager-time b{font-size:16px}.manager-time span{font-size:9px}.manager-court{width:43px;height:43px}.manager-court b{font-size:18px}.manager-court small{font-size:7px}.manager-player h3{font-size:16px}.manager-player>a{font-size:13px}.manager-details span{font-size:9px;padding:4px 6px}.manager-share-actions{flex-direction:column}.manager-share-actions button{width:100%}}
.manager-password-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px;font-size:12px;color:#5f7774}.manager-password-row>span{font-weight:800}.manager-password-edit{display:flex;gap:8px;margin-top:9px}.manager-password-edit input{min-width:0;flex:1;border:1px solid rgba(7,63,57,.14);background:#fffdf3;border-radius:14px;padding:11px 12px;color:var(--ink);font-size:14px;outline:none}.manager-password-edit input:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(27,143,151,.1)}.manager-password-edit button{white-space:nowrap;padding:11px 13px}
@media(max-width:520px){.manager-password-edit{flex-direction:column}.manager-password-edit button{width:100%}}

/* V6.6 — smarter Boss dashboard */
.week-panel{background:#f6f2d4;color:#073f39;border:1px solid rgba(6,61,55,.14);border-radius:28px;padding:18px 18px 16px;margin:16px 0 12px;overflow:hidden}.week-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.week-panel-head small,.upcoming-head small{font-weight:950;letter-spacing:.13em;color:#69817c}.week-panel-head h2,.upcoming-head h2{font-family:'Space Grotesk';font-size:27px;line-height:1;letter-spacing:-.045em;margin:4px 0 6px}.week-panel-head p,.upcoming-head p{margin:0;color:#657773;font-size:12px}.week-summary{min-width:92px;text-align:right}.week-summary b{display:block;font-family:'Space Grotesk';font-size:36px;line-height:.9;letter-spacing:-.06em}.week-summary span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#69817c}.week-chart{height:185px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;margin-top:18px;padding-top:4px}.week-day{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto auto;justify-items:center;gap:3px;min-width:0}.week-bar-track{width:min(42px,82%);height:100%;background:#dce7da;border-radius:999px;display:flex;align-items:flex-end;padding:3px;overflow:hidden}.week-bar{position:relative;width:100%;min-height:0;background:linear-gradient(180deg,#ec7b3f 0%,#d85f2b 100%);border-radius:999px;transition:height .35s ease}.week-bar span{position:absolute;left:50%;top:7px;transform:translateX(-50%);font-size:10px;font-weight:950;color:#fff}.week-day b{font:900 12px 'Space Grotesk';text-transform:uppercase}.week-day small{font-size:10px;color:#78908b}.week-day.today .week-bar-track{outline:2px solid #0b4841;outline-offset:2px}.week-day.today b{color:#d85f2b}.upcoming-panel{background:#f6f2d4;color:#073f39;border-radius:28px;padding:18px;margin:0 0 16px}.upcoming-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.timeline-updated{white-space:nowrap;font-size:10px;font-weight:900;color:#68807b;background:#e6eddc;border-radius:999px;padding:8px 10px}.admin-booking-timeline{display:grid;gap:14px}.admin-day-group{background:#fffdf2;border:1px solid rgba(7,63,57,.1);border-radius:21px;padding:12px}.admin-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 4px 11px}.admin-day-head small{display:block;font-size:9px;letter-spacing:.14em;font-weight:950;color:#72908a}.admin-day-head h3{font-family:'Space Grotesk';font-size:22px;letter-spacing:-.04em;margin:1px 0 0}.admin-day-head>span{font-size:10px;font-weight:900;background:#dff0dd;color:#176b3b;border-radius:999px;padding:7px 9px}.admin-day-bookings{display:grid;gap:8px}.admin-booking-card{display:grid;grid-template-columns:122px 62px minmax(0,1fr) auto;gap:10px;align-items:center;background:#f4efd9;border:1px solid rgba(7,63,57,.08);border-radius:16px;padding:10px}.admin-time-block b{display:block;font-family:'Space Grotesk';font-size:17px;letter-spacing:-.03em}.admin-time-block span{display:block;color:#6b7d78;font-size:10px}.admin-court-pill{width:52px;height:52px;border-radius:50%;background:#0b4841;color:#f6f2d4;display:grid;place-content:center;text-align:center}.admin-court-pill small{font-size:7px;letter-spacing:.08em}.admin-court-pill b{font:950 20px 'Space Grotesk';line-height:1}.admin-player-block{min-width:0}.admin-player-block h4{font-family:'Space Grotesk';font-size:17px;letter-spacing:-.025em;margin:0 0 2px;overflow-wrap:anywhere}.admin-player-block>a{font-size:12px;font-weight:800;color:#0b6f64;text-decoration:none}.admin-booking-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.admin-booking-meta span{font-size:9px;font-weight:850;background:#fffdf2;border-radius:999px;padding:5px 7px;color:#546d68}.admin-booking-meta .admin-note{width:100%;border-radius:8px;background:#ede5c9}.admin-cancel{align-self:center}.timeline-empty{text-align:center;padding:28px 14px;color:#58716c}.timeline-empty h3{font-family:'Space Grotesk';font-size:22px;margin:8px 0 4px}.timeline-empty p{margin:0;font-size:12px}.admin-tools select{min-width:145px}
@media(max-width:700px){.week-panel{padding:16px 12px 14px}.week-panel-head h2,.upcoming-head h2{font-size:23px}.week-summary b{font-size:31px}.week-chart{height:150px;gap:5px}.week-bar-track{width:min(34px,88%)}.upcoming-panel{padding:14px 10px}.upcoming-head{padding:0 4px}.admin-day-group{padding:9px}.admin-booking-card{grid-template-columns:94px 48px minmax(0,1fr);gap:8px;padding:9px}.admin-court-pill{width:42px;height:42px}.admin-court-pill b{font-size:17px}.admin-cancel{grid-column:1/-1;width:100%;padding:8px}.admin-time-block b{font-size:15px}.admin-player-block h4{font-size:16px}.timeline-updated{display:none}}
@media(max-width:390px){.week-chart{height:135px}.week-day small{font-size:9px}.admin-booking-card{grid-template-columns:82px 42px minmax(0,1fr)}.admin-court-pill{width:38px;height:38px}.admin-court-pill b{font-size:15px}}

/* V6.7 — payments + reschedule board */
.payment-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#dfe7d9;border:1px solid rgba(7,63,57,.12);border-radius:999px;padding:5px}.payment-toggle label{position:relative;cursor:pointer;text-transform:none;letter-spacing:0}.payment-toggle input{position:absolute;opacity:0;pointer-events:none}.payment-toggle span{display:grid;place-items:center;min-height:42px;border-radius:999px;font:800 14px 'Space Grotesk';color:#496660;transition:.18s ease}.payment-toggle input:checked+span{background:#0a5048;color:#f7f2ce;box-shadow:0 5px 14px rgba(5,58,52,.18)}.payment-toggle label:first-child input:checked+span{background:#e96f2f;color:#fff8df}
.payment-confirm{margin:17px auto 15px;width:min(100%,360px);background:#fffdf2;color:#073f39;border-radius:22px;padding:14px 14px 16px;box-shadow:0 12px 26px rgba(4,45,42,.15)}.payment-confirm>small,.reservation-pass>small{display:block;font-size:9px;font-weight:950;letter-spacing:.14em;color:#6b817c}.payment-confirm h3{font:850 19px/1.12 'Space Grotesk';letter-spacing:-.03em;margin:5px auto 11px;max-width:310px}.payment-confirm>span{display:inline-flex;margin-top:9px;padding:6px 9px;border-radius:999px;background:#e7eedf;font-size:10px;font-weight:900;color:#46645e}.payment-qr{display:block;width:min(100%,300px);max-height:440px;object-fit:contain;margin:0 auto;border-radius:16px;border:1px solid rgba(7,63,57,.12);background:white}.cash-confirm{padding:22px 16px}.cash-confirm h3{margin-bottom:6px}.reservation-pass{margin-top:17px;padding-top:16px;border-top:1px dashed rgba(246,242,211,.38)}.reservation-pass>small{color:#d9e7dd}.reservation-pass p{margin:8px 0 0;font-size:11px;opacity:.8}.reservation-qr{width:198px;height:198px;margin:11px auto;padding:9px}.payment-mode-chip{font-weight:950!important;letter-spacing:.06em}.payment-mode-chip.online{background:#fde0cb!important;color:#9b441f!important}.payment-mode-chip.cash{background:#dce9d8!important;color:#226340!important}
.booking-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end}.compact{padding:9px 11px!important;border-radius:12px!important;font-size:11px!important;min-height:38px}.manager-booking-card{grid-template-columns:120px 68px minmax(0,1fr) auto}.manager-actions{flex-direction:column}.admin-booking-card{cursor:default}

.move-modal{padding:0 0 18px;overflow:hidden}.move-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px 20px 15px;background:linear-gradient(135deg,#15919b,#0c6f72);color:#fff}.move-modal-head small{font-size:9px;letter-spacing:.14em;font-weight:950;color:#d5efe9}.move-modal-head h2{font-size:27px;margin:4px 0 5px}.move-modal-head p{margin:0;font-size:11px;color:#d9efeb}.move-close{width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:26px;line-height:1;cursor:pointer}.move-date-control{padding:15px 18px 0}.move-date-control label{display:grid;gap:6px}.move-date-control span{font-size:10px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:#64807a}.move-date-control input{width:100%;box-sizing:border-box;border:1px solid rgba(7,63,57,.14);background:#fffdf3;border-radius:15px;padding:13px 14px;font-size:16px;color:#073f39}.move-drag-zone{padding:13px 18px 11px}.move-chip{display:flex;align-items:center;gap:11px;background:#e96f2f;color:#fff7da;border-radius:18px;padding:11px 14px;cursor:grab;box-shadow:0 8px 0 #b94e1e;user-select:none}.move-chip:active{cursor:grabbing}.move-chip.dragging{opacity:.6;transform:scale(.985)}.move-chip>span{font:900 22px 'Space Grotesk'}.move-chip small{display:block;font-size:8px;font-weight:950;letter-spacing:.12em;opacity:.82}.move-chip b{display:block;font:850 16px 'Space Grotesk';margin-top:1px}.move-drag-zone>p{font-size:11px;color:#667b76;margin:12px 2px 0}.move-slots{display:grid;gap:7px;padding:0 14px 4px;max-height:48vh;overflow:auto}.move-time-row{display:grid;grid-template-columns:104px 116px minmax(0,1fr);gap:10px;align-items:center;width:100%;text-align:left;border:1px solid rgba(7,63,57,.12);background:#fffdf2;color:#073f39;border-radius:17px;padding:10px 11px;cursor:pointer;transition:.16s ease}.move-time-row:not(:disabled):hover{border-color:#0b7169;transform:translateY(-1px)}.move-time-row.drag-over{background:#fff0dc;border-color:#e96f2f;box-shadow:0 0 0 3px rgba(233,111,47,.14)}.move-time-row.current{background:#e9eee0}.move-time-row.full{opacity:.5;cursor:not-allowed}.move-time-label b{display:block;font:850 16px 'Space Grotesk'}.move-time-label span{font-size:9px;color:#72847f}.move-court-dots{display:flex;gap:6px}.move-court-dots i{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;font-style:normal;font:900 11px 'Space Grotesk'}.move-court-dots .free{background:#dcecd8;color:#1e6d42;border:1px solid #9bc7a4}.move-court-dots .taken{background:#e4e4db;color:#9a9e98;border:1px solid #d0d0c8}.move-free-copy b{display:block;font:800 13px 'Space Grotesk'}.move-free-copy span{display:block;font-size:9px;color:#768985;margin-top:2px}

@media(max-width:700px){.manager-booking-card{grid-template-columns:102px 56px minmax(0,1fr)}.manager-actions{grid-column:1/-1;flex-direction:row}.manager-actions button{flex:1}.admin-booking-card{grid-template-columns:94px 48px minmax(0,1fr)}.booking-actions{grid-column:1/-1}.booking-actions button{flex:1}.move-slots{max-height:52vh}.move-time-row{grid-template-columns:92px 104px minmax(0,1fr)}}
@media(max-width:480px){.payment-confirm{padding:12px}.payment-confirm h3{font-size:17px}.payment-qr{width:100%}.move-modal-head{padding:17px 15px 13px}.move-modal-head h2{font-size:23px}.move-date-control,.move-drag-zone{padding-left:14px;padding-right:14px}.move-time-row{grid-template-columns:82px 92px minmax(0,1fr);padding:9px 8px;gap:7px}.move-court-dots{gap:4px}.move-court-dots i{width:27px;height:27px}.move-free-copy b{font-size:11px}.move-free-copy span{font-size:8px}.move-time-label b{font-size:14px}.reservation-qr{width:180px;height:180px}}

/* V6.8 — coach add-booking controls */
.slots-hero-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}.slots-add-btn{white-space:nowrap}.manager-add-modal .summary{margin-bottom:14px}.manual-court-picker{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:7px}.manual-court{border:1px solid rgba(7,63,57,.14);background:#fffdf3;color:#073f39;border-radius:15px;min-height:58px;padding:8px 7px;cursor:pointer;transition:.16s ease}.manual-court small{display:block;font-size:9px;letter-spacing:.1em;font-weight:950;color:#66817c}.manual-court b{display:block;margin-top:2px;font:800 12px 'Space Grotesk'}.manual-court.active{background:#0a5048;color:#f7f2ce;border-color:#0a5048;box-shadow:0 5px 0 #063c36}.manual-court.active small{color:#d3e9df}.manual-court.taken,.manual-court:disabled{opacity:.48;cursor:not-allowed;background:#e7e8df;box-shadow:none}.manual-court.auto.active{background:#e96f2f;border-color:#e96f2f;box-shadow:0 5px 0 #b94e1e;color:#fff8df}.manual-court.auto.active small{color:#ffe2ca}
@media(max-width:700px){.slots-hero{flex-direction:column}.slots-hero-actions{width:100%;justify-content:space-between}.slots-add-btn{flex:1}.manual-court-picker{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.slots-hero-actions{align-items:stretch}.slots-live{align-self:center}.manager-add-modal .form-grid{grid-template-columns:1fr}.manager-add-modal .field.full{grid-column:auto}.manual-court-picker{grid-template-columns:1fr 1fr}}

/* V6.9 — payment verification + admin payment console */
.payment-aware-stats{grid-template-columns:repeat(4,1fr)}
.payment-stat{background:linear-gradient(145deg,#fff4d5,#f5e6bd)}
.admin-section-tabs{display:inline-flex;gap:6px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:5px;margin:3px 0 16px}
.admin-section-tabs button{border:0;background:transparent;color:#cfe2dc;border-radius:999px;padding:11px 16px;display:flex;align-items:center;gap:8px;font:850 13px 'Space Grotesk';cursor:pointer}
.admin-section-tabs button.active{background:#f6f2d4;color:#073f39;box-shadow:0 5px 16px rgba(0,0,0,.13)}
.admin-section-tabs i{font-style:normal;display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#ff7a20;color:white;font-size:10px;font-weight:950}
.admin-section-tabs button.active i{background:#0a5048;color:#f6f2d4}
.admin-tab-panel[hidden]{display:none!important}
.payment-status-chip{font-weight:950!important;letter-spacing:.045em}
.payment-status-chip.paid{background:#d6ead5!important;color:#14683d!important;border:1px solid #9cc9a5}
.payment-status-chip.pending{background:#fff0d3!important;color:#a24b18!important;border:1px solid #f2c183}
.payment-mode-chip.unknown{background:#e8e7dd!important;color:#6c746f!important}
.booking-paid{border-color:#8fc39d!important;box-shadow:inset 4px 0 0 #2e8b57,0 6px 18px rgba(7,63,57,.05)!important}
.paid-state-btn{border:0;font-weight:950!important;white-space:nowrap}
.paid-state-btn.pending{background:#ff7a20;color:#fff7da;box-shadow:0 4px 0 #c44f12}
.paid-state-btn.paid{background:#d7ecd7;color:#17673d;border:1px solid #9bc8a5;box-shadow:none}

.payments-console{background:#f6f2d4;color:#073f39;border-radius:28px;padding:18px;margin-bottom:16px;border:1px solid rgba(255,255,255,.22)}
.payments-console-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:3px 3px 15px}
.payments-console-head small,.payment-list-head small{font-size:9px;letter-spacing:.14em;font-weight:950;color:#647c76}
.payments-console-head h2{font:900 29px 'Space Grotesk';letter-spacing:-.045em;margin:3px 0 4px}
.payments-console-head p{margin:0;color:#617772;font-size:12px;max-width:620px}
.payment-live-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:999px;background:#0a5048;color:#f6f2d4;font-size:10px;font-weight:950;white-space:nowrap}
.payment-live-pill i{width:7px;height:7px;border-radius:50%;background:#79d88c;box-shadow:0 0 0 4px rgba(121,216,140,.13)}
.payment-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.payment-summary{border-radius:21px;padding:16px;border:1px solid rgba(7,63,57,.09);min-width:0}
.payment-summary small{display:block;font-size:9px;font-weight:950;letter-spacing:.11em}
.payment-summary b{display:block;font:950 35px 'Space Grotesk';letter-spacing:-.05em;line-height:1;margin:7px 0 4px}
.payment-summary span{font-size:11px;font-weight:750}
.payment-summary.cash{background:#dcebd8;color:#145b38}.payment-summary.online{background:#ffe4d0;color:#8d431e}.payment-summary.pending{background:#fff1c9;color:#87511f}
.payment-columns{display:grid;grid-template-columns:1fr 1.15fr;gap:12px;align-items:start}
.payment-list-card{background:#fffdf2;border:1px solid rgba(7,63,57,.11);border-radius:22px;padding:12px;min-width:0}
.pending-list-card{background:#fffaf0}
.payment-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:4px 5px 11px}
.payment-list-head h3{font:850 20px 'Space Grotesk';letter-spacing:-.035em;margin:2px 0 0}
.payment-list-head>span{font-size:10px;font-weight:950;padding:6px 8px;border-radius:999px;background:#e8eddc;color:#3d655b}
.payment-ledger-list{display:grid;gap:7px}
.payment-ledger-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(7,63,57,.09);background:#f7f2df;border-radius:16px;padding:10px}
.payment-ledger-row.is-paid{background:#f1f6e8;border-color:#b9d6b9}.payment-ledger-row.is-pending{background:#fff6e5;border-color:#ecd2a6}
.payment-ledger-date b{display:block;font:850 14px 'Space Grotesk'}.payment-ledger-date span{display:block;font-size:9px;color:#71817d;margin-top:2px}
.payment-ledger-person{min-width:0}.payment-ledger-person h4{font:850 14px 'Space Grotesk';margin:0 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-ledger-person a{color:#0c766b;font-size:11px;font-weight:850;text-decoration:none}.payment-ledger-person>span,.payment-ledger-person>small{display:block;margin-top:3px;font-size:9px;color:#687c77}.payment-ledger-person>small{font-weight:800;color:#3d6f53}
.payment-ledger-action{display:flex;justify-content:flex-end}
.payment-empty{padding:20px 10px;text-align:center;color:#6a7e78}.payment-empty b{display:block;font:850 16px 'Space Grotesk';color:#315b53}.payment-empty span{display:block;font-size:10px;margin-top:3px}

@media(max-width:900px){.payment-columns{grid-template-columns:1fr}.payment-aware-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.payments-console{padding:13px 10px;border-radius:24px}.payments-console-head h2{font-size:25px}.payment-summary-grid{grid-template-columns:1fr 1fr}.payment-summary.pending{grid-column:1/-1}.payment-ledger-row{grid-template-columns:78px minmax(0,1fr)}.payment-ledger-action{grid-column:1/-1}.payment-ledger-action button{width:100%}.booking-actions{flex-wrap:wrap}.booking-actions .paid-state-btn{flex-basis:100%}}
@media(max-width:430px){.payment-aware-stats{grid-template-columns:1fr 1fr}.admin-section-tabs{display:flex;width:100%}.admin-section-tabs button{flex:1;justify-content:center}.payment-summary-grid{grid-template-columns:1fr}.payment-summary.pending{grid-column:auto}.payment-live-pill{display:none}.payments-console-head{display:block}.payment-ledger-row{grid-template-columns:70px minmax(0,1fr)}}
