:root{--forest:#12372a;--green:#285943;--lime:#a8c66c;--cream:#f5f7f5;--white:#fff;--line:#e1e6e1;--muted:#64766b;--bg:#f5f7f5;--card:#fff;--nav:#12372a;--primary:#285943;--primary-dark:#12372a;--soft:#e8f0d8;--amber:#a8c66c;--red:#8b4a4a;--shadow:0 8px 24px #12372a1a}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg,var(--navy),#061426);color:#fff;z-index:10;width:245px;padding:22px 14px;position:fixed;inset:0 auto 0 0}.logo{letter-spacing:-.7px;padding:5px 13px 27px;font-size:22px;font-weight:900}.logo span{color:#c78391}.logo small{color:#8296ad;letter-spacing:1.5px;margin-top:5px;font-size:9px;display:block}.nav{gap:6px;display:grid}.nav button,.nav a{color:#b9c7d7;text-align:left;background:0 0;border:0;border-radius:10px;padding:12px 13px;font-weight:750}.nav button:hover,.nav a:hover,.nav button.active,.nav a.active{background:var(--mahogany);color:#fff}.main{width:calc(100% - 245px);margin-left:245px;padding:25px 30px}.top{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.top h1{margin:0;font-size:25px}.sub{color:var(--muted);margin-top:4px;font-size:12px}.profile{border:1px solid var(--line);background:#fff;border-radius:22px;padding:9px 14px}.page{display:none}.page.active{display:block}.grid4{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.grid2{grid-template-columns:1.55fr 1fr;gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:15px;padding:18px}.metric .label{color:var(--muted);letter-spacing:.6px;font-size:10px;font-weight:900}.metric .num{margin:7px 0;font-size:26px;font-weight:900}.trend{color:var(--green);font-size:11px}.section{margin-top:17px}.title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.title h2{margin:0;font-size:16px}.btn{border:0;border-radius:9px;padding:9px 12px;font-weight:800}.primary{background:var(--mahogany);color:#fff}.primary:hover{background:var(--mahogany2)}.navybtn{background:var(--navy);color:#fff}.outline{color:var(--text);border:1px solid var(--line);background:#fff}.danger{background:var(--redbg);color:#942e3d}.badge{background:var(--greenbg);color:#167244;border-radius:20px;align-items:center;gap:5px;padding:5px 9px;font-size:9px;font-weight:900;display:inline-flex}.badge.warn{background:var(--amberbg);color:#8e5b12}.badge.red{background:var(--redbg);color:#9b3040}.badge.blue{background:var(--bluebg);color:#315b9d}.badge.gray{color:#687587;background:#eef1f4}.datebar{border:1px solid var(--line);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:15px;padding:13px 15px;display:flex}.datebar strong{font-size:15px}.date-actions{gap:7px;display:flex}.schedule{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:70px repeat(6,minmax(105px,1fr));display:grid;overflow:auto}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:68px;padding:8px;font-size:10px}.head{color:#5c6878;background:#eff1ea;font-weight:900}.time{color:#6c7787;background:#fafaf5;font-weight:900}.booked{border-left:4px solid var(--mahogany);color:#612533;background:#e8f0d8;border-radius:6px;margin:3px;padding:7px}.halfA{border-left:4px solid var(--blue);color:#2d5189;background:#eef3ee;border-radius:6px;margin:3px;padding:7px}.halfB{border-left:4px solid var(--green);color:#176b3d;background:#eef2ea;border-radius:6px;margin:3px;padding:7px}.empty{color:#a2aab6;text-align:center;padding-top:20px}.live{background:linear-gradient(145deg,var(--navy),var(--navy2));color:#fff;border-radius:15px;padding:19px}.live .sport{opacity:.7;font-size:12px}.timer{text-align:center;margin:10px 0;font-size:39px;font-weight:900}.warning{color:#81520b;text-align:center;background:#fff0d4;border-radius:9px;padding:10px;font-size:11px;font-weight:800}.kpis{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.mini{background:#eff1ea;border-radius:11px;padding:12px}.mini b{margin-top:4px;font-size:19px;display:block}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 7px}th{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;font-size:9px}.toolbar{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.input,.select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 11px}.modegrid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mode{border:1px solid var(--line);border-radius:11px;padding:13px}.mode.selected{border:2px solid var(--mahogany);background:#fbf3f5}.mode h3{margin:0 0 4px;font-size:14px}.mode p{color:var(--muted);margin:0;font-size:11px}.area-grid{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.area{border:1px solid var(--line);text-align:left;background:#fff;border-radius:10px;padding:12px}.area.selected{border:2px solid var(--mahogany);background:#fbf3f5}.area b{display:block}.area small{color:var(--muted)}.slotgrid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.slot{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px;font-size:10px}.slot.selected{background:var(--mahogany);border-color:var(--mahogany);color:#fff}.slot.disabled{color:#a4acb7;cursor:not-allowed;background:#f1f3f5;text-decoration:line-through}.summary p{font-size:12px}.summary .muted{color:var(--muted);letter-spacing:.5px;font-size:9px;font-weight:900}.summary .total{font-size:20px;font-weight:900}.stepper{justify-content:space-between;margin:4px 0 22px;display:flex;position:relative}.stepper:before{content:"";background:#e3e7ec;height:2px;position:absolute;top:15px;left:7%;right:7%}.step{text-align:center;color:var(--muted);width:20%;font-size:9px;position:relative}.circle{background:#e8edf2;border-radius:50%;place-items:center;width:30px;height:30px;margin:auto;font-weight:900;display:grid;position:relative}.step.current .circle,.step.done .circle{background:var(--mahogany);color:#fff}.step.current{color:var(--mahogany);font-weight:900}.customer{align-items:center;gap:9px;display:flex}.avatar{width:31px;height:31px;color:var(--mahogany);background:#e7d8dc;border-radius:50%;place-items:center;font-weight:900;display:grid}.modal{z-index:30;background:#071a2f94;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal.open{display:flex}.modalbox{background:#fff;border-radius:16px;width:min(470px,92vw);padding:22px}.modalbox h2{margin-top:0}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.toast{background:var(--navy);color:#fff;z-index:40;box-shadow:var(--shadow);border-radius:10px;padding:12px 16px;display:none;position:fixed;bottom:22px;right:22px}@media (width<=1050px){.grid4{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.grid3,.modegrid,.area-grid{grid-template-columns:1fr 1fr}.schedule{min-width:780px}}@media (width<=700px){body{font-size:14px;overflow-x:hidden}.app{display:block}.sidebar{z-index:100;background:#071a2ffa;border-top:1px solid #ffffff1a;width:100%;height:66px;padding:5px 4px;position:fixed;inset:auto 0 0}.logo{display:none}.nav{grid-template-columns:repeat(7,1fr);gap:2px;height:100%;display:grid}.nav button,.nav a{text-align:center;color:#aebed0;white-space:normal;border-radius:8px;min-width:0;padding:7px 2px 5px;font-size:9px;line-height:1.15}.nav button:first-letter,.nav a:first-letter{font-size:17px}.nav button.active,.nav a.active{background:var(--mahogany);color:#fff}.main{width:100%;margin-left:0;padding:15px 13px 84px}.top{align-items:flex-start;gap:8px;margin-bottom:15px}.top h1{font-size:20px;line-height:1.15}.top .sub{max-width:235px;font-size:10px}.profile{white-space:nowrap;padding:8px 10px;font-size:10px}.grid4{grid-template-columns:1fr 1fr;gap:8px}.grid2{grid-template-columns:1fr;gap:10px}.grid3{grid-template-columns:1fr}.card{border-radius:13px;padding:13px}.metric .label{font-size:8px}.metric .num{font-size:21px}.metric .trend{font-size:9px}.section{margin-top:10px}.title{margin-bottom:9px}.title h2{font-size:14px}.datebar{flex-direction:column;align-items:stretch;gap:9px;padding:11px}.datebar strong{font-size:13px}.date-actions{width:100%}.date-actions .btn{flex:1}.date-actions .primary{flex:2}.schedule{background:0 0;border:0;min-width:0;display:block;overflow:visible}.schedule .head{display:none}.schedule .cell{border:0;min-height:0;padding:0;display:none}.schedule .time{color:var(--mahogany);background:0 0;padding:9px 0 4px;font-size:10px;font-weight:950;display:block}.schedule .time+.cell{border:1px solid var(--line);background:#f8fafc;border-radius:9px;margin-bottom:4px;padding:7px;display:block}.schedule .time+.cell .booked,.schedule .time+.cell .halfA,.schedule .time+.cell .halfB{margin:3px 0}.live{padding:15px}.timer{font-size:34px}.kpis{grid-template-columns:1fr 1fr 1fr}.mini{padding:9px}.mini b{font-size:16px}.modegrid,.sport-cards{grid-template-columns:1fr}.sport-cards .mode{align-items:stretch;display:flex}.sport-visual{width:43%;min-width:43%;height:100px}.sport-copy{flex-direction:column;justify-content:center;padding:12px;display:flex}.sport-copy h3{font-size:15px}.sport-copy p{font-size:10px}.area-grid{grid-template-columns:1fr}.area{text-align:left;padding:12px}.slotgrid{grid-template-columns:1fr 1fr;gap:7px}.slot{padding:10px 7px;font-size:9px}.stepper{margin-bottom:15px}.stepper:before{left:10%;right:10%}.step{font-size:8px}.circle{width:27px;height:27px;font-size:10px}input.input,.input,.select{padding:10px;font-size:13px}table{white-space:nowrap;-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}th,td{padding:9px 7px;font-size:10px}th{font-size:8px}.summary{margin-top:0}.summary .total{font-size:18px}.modalbox{width:calc(100% - 26px);padding:18px}.modalbox h2{font-size:18px}.reports-grid{grid-template-columns:1fr}.sport-visual{overflow:hidden}}@media (width<=390px){.main{padding-left:10px;padding-right:10px}.nav button,.nav a{font-size:8px}.metric .num{font-size:19px}.top h1{font-size:18px}.profile{padding:7px 8px;font-size:9px}.sport-visual{width:39%;min-width:39%}}.month-calendar{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:15px;overflow:hidden}.calendar-head{border-bottom:1px solid var(--line);background:#eff1ea;grid-template-columns:repeat(7,1fr);display:grid}.calendar-head div{color:var(--muted);text-align:center;padding:10px 7px;font-size:9px;font-weight:900}.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.day-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;background:#fff;min-height:105px;padding:8px;transition:all .15s}.day-number{margin-bottom:7px;font-size:12px;font-weight:900}.day-cell.today .day-number{background:var(--mahogany);color:#fff;border-radius:50%;place-items:center;width:25px;height:25px;display:inline-grid}.day-booking{white-space:nowrap;text-overflow:ellipsis;border-radius:5px;margin-top:4px;padding:5px 6px;font-size:8px;overflow:hidden}.day-booking.basket{color:#612533;border-left:3px solid var(--mahogany);background:#e8f0d8}.day-booking.volley{color:#2d5189;border-left:3px solid var(--blue);background:#eef3ee}.day-booking.half{color:#176b3d;border-left:3px solid var(--green);background:#eef2ea}.more-booking{color:var(--muted);margin-top:4px;font-size:8px;font-weight:800}.detail-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.report-filters{flex-wrap:wrap;gap:8px;display:flex}.report-summary{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.report-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:14px}.report-card .label{color:var(--muted);letter-spacing:.6px;font-size:8px;font-weight:900}.report-card .value{margin-top:6px;font-size:20px;font-weight:950}.report-card .small{color:var(--muted);margin-top:3px;font-size:9px}.status-paid{color:var(--green);font-weight:900}.status-pending{color:var(--amber);font-weight:900}.status-refund{color:var(--red);font-weight:900}.export-bar{justify-content:space-between;align-items:center;gap:10px;display:flex}@media (width<=700px){.calendar-head div{padding:8px 2px;font-size:7px}.day-cell{min-height:75px;padding:5px}.day-number{margin-bottom:4px;font-size:10px}.day-booking{padding:4px 3px;font-size:7px}.more-booking{font-size:7px}.report-summary{grid-template-columns:1fr 1fr}.report-filters{grid-template-columns:1fr 1fr;display:grid}.report-filters .input,.report-filters .select{width:100%}.export-bar{flex-direction:column;align-items:stretch}}body{background:var(--ivory);color:var(--charcoal)}.sidebar{background:var(--charcoal);color:#fff}.nav button.active,.nav a.active,.nav button:hover,.nav a:hover{background:var(--slate);color:#fff}.btn.primary,.btn.navybtn{background:var(--slate);border-color:var(--slate);color:#fff}.btn.outline{border-color:var(--gray);color:var(--charcoal);background:0 0}.btn.outline:hover{border-color:var(--slate);color:var(--slate)}.badge,.badge.blue{color:var(--charcoal);border-color:var(--gray);background:#eef3ee}input.input,.input,.select{border-color:var(--gray);color:var(--charcoal);background:#fff}input.input:focus,.input:focus,.select:focus{border-color:var(--slate);outline:none;box-shadow:0 0 0 3px #6d819624}.datebar{border-color:var(--gray);background:#fff}.calendar-head{border-color:var(--gray);background:#eff1ea}.day-cell{border-color:var(--gray);background:#fff}.day-cell.selected-day{box-shadow:inset 0 0 0 2px var(--slate);background:#fffff8}.day-cell.today .day-number{background:var(--slate);color:#fff}.day-booking.basket{color:var(--charcoal);border-left-color:var(--slate);background:#eef3ee}.day-booking.volley{color:var(--charcoal);border-left-color:var(--charcoal);background:#e8f0d8}.day-booking.half{color:var(--charcoal);border-left-color:var(--gray);background:#eff1ea}.area.selected,.slot.selected,.mode.selected{border-color:var(--slate);background:#e8f0d8}.status-pending,.status-refund{color:var(--charcoal)}.live{border-color:var(--gray);background:#e8f0d8}table th{color:var(--charcoal);border-color:var(--gray);background:#eff1ea}.kpi,.mini{border-color:var(--gray);background:#fff}.circle{border-color:var(--gray);color:var(--slate);background:#fff}.step.active .circle,.step.done .circle{background:var(--slate);border-color:var(--slate);color:#fff}.modalbox{border-color:var(--gray);background:#fff}.toast{background:var(--charcoal);color:#fff}body{color:#12372a;background:#f5f7f5}.sidebar{color:#fff;background:#12372a}.logo,.sidebar .brand,.nav button,.nav a{color:#fff}.nav button,.nav a{background:0 0}.nav button.active,.nav a.active{color:#fff;background:#285943}.nav button:hover,.nav a:hover{color:#fff;background:#a8c66c29}.main{background:#f5f7f5}.card,.month-calendar{background:#fff;border-color:#e1e6e1;box-shadow:0 8px 24px #12372a1a}h1,h2,h3,h4,strong,.title h2{color:#12372a}.sub,.muted,.small,.metric .label,.report-card .label{color:#64766b}.btn.primary,.btn.navybtn{color:#fff;background:#285943;border-color:#285943}.btn.primary:hover,.btn.navybtn:hover{background:#12372a;border-color:#12372a}.btn.outline{color:#12372a;background:#fff;border-color:#e1e6e1}.btn.outline:hover{color:#12372a;border-color:#a8c66c}.datebar{background:#fff;border-color:#e1e6e1}.calendar-head div{color:#64766b}.day-cell{background:#fff;border-color:#e1e6e1}.day-cell:hover{background:#fbfbf7}.day-cell.muted-day{color:#b4bbb5;background:#fafaf5}.day-cell.selected-day{background:#fafdf4;box-shadow:inset 0 0 0 2px #a8c66c}.day-cell.today .day-number{color:#12372a;background:#a8c66c}.day-booking.basket{color:#12372a;background:#eef3ee;border-left-color:#285943}.day-booking.volley{color:#12372a;background:#e8f0d8;border-left-color:#a8c66c}.day-booking.half{color:#12372a;background:#eff1ea;border-left-color:#64766b}.more-booking{color:#64766b}.sport-visual{background:#12372a}.training-visual{background:linear-gradient(135deg,#285943,#12372a)}.sport-cards .mode.selected{box-shadow:inset 0 0 0 2px #a8c66c,0 8px 24px #12372a1a}.area.selected,.slot.selected,.mode.selected{background:#e8f0d8;border-color:#a8c66c}.area:hover,.slot:hover,.mode:hover{border-color:#a8c66c}.status-paid{color:#285943}.status-pending{color:#8a742f}.status-refund{color:#8b4a4a}.live{background:#e8f0d8;border-color:#e1e6e1}.timer{color:#12372a}table th{color:#12372a;background:#eff1ea;border-color:#e1e6e1}table td{border-color:#e1e6e1}table tr:hover td{background:#fafdf4}.kpi,.mini{background:#fff;border-color:#e1e6e1}.progress{background:#e1e6e1}.progress>div{background:#a8c66c}.stepper:before{background:#e1e6e1}.circle{color:#285943;background:#fff;border-color:#e1e6e1}.step.active .circle,.step.done .circle{color:#12372a;background:#a8c66c;border-color:#a8c66c}.modalbox{background:#fff;border-color:#e1e6e1}.toast{color:#fff;background:#12372a}hr{border-color:#e1e6e1}a{color:#285943}.metric .trend{color:#64766b}.report-card .value{color:#12372a}.badge{border-color:#e1e6e1}.badge.blue{color:#285943;background:#eef3ee}.primary,.premium{box-shadow:0 5px 12px #12372a1f}body,.main{color:#17241d;background:#f5f7f5}.card,.month-calendar,.datebar{border-color:#e1e6e1}.calendar-head{background:#f1f4f1;border-color:#e1e6e1}.day-cell,table th,table td{border-color:#e1e6e1}.sport-visual{border-radius:9px;justify-content:center;align-items:center;height:115px;display:flex;position:relative;overflow:hidden}.basketball-visual{background:linear-gradient(145deg,#285943,#12372a)}.volleyball-visual{background:linear-gradient(145deg,#12372a,#285943)}.training-visual{color:#a8c66c;letter-spacing:1px;background:linear-gradient(145deg,#285943,#12372a);font-weight:900}.court-lines{border:2px solid #ffffffd9;border-radius:3px;position:absolute;inset:14px}.court-lines:before{content:"";background:#fffc;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.court-lines:after{content:"";border:2px solid #fffc;border-radius:50%;width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hoop{z-index:2;border:3px solid #a8c66c;border-radius:50%;width:20px;height:20px;position:absolute;top:50%;transform:translateY(-50%)}.hoop.left{left:17px}.hoop.right{right:17px}.hoop:after{content:"";background:#fff;width:22px;height:2px;position:absolute;top:50%;transform:translateY(-50%)}.hoop.left:after{right:17px}.hoop.right:after{left:17px}.ball{color:#0000;z-index:3;background:#a8c66c;border-radius:50%;width:15px;height:15px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #a8c66c29}.volley-net{z-index:2;background:#fffffff2;width:3px;position:absolute;top:10px;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #a8c66c59}.volley-net:before,.volley-net:after{content:"";background:#a8c66c;border-radius:4px;width:68px;height:5px;position:absolute;left:-34px}.volley-net:before{top:0}.volley-net:after{bottom:0}.volley-ball{color:#0000;z-index:3;background:#fff;border-radius:50%;width:18px;height:18px;position:absolute;top:50%;left:39%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #ffffff2e}.volley-ball:after{content:"";border-top:2px solid #a8c66c;border-radius:50%;position:absolute;inset:4px;transform:rotate(35deg)}.court-mark{border:2px solid #fffc;border-radius:3px;position:absolute;inset:18px}.court-mark:before,.court-mark:after{content:"";background:#ffffffbf;width:2px;position:absolute;top:18%;bottom:18%}.court-mark:before{left:30%}.court-mark:after{right:30%}.mode{transition:all .18s;overflow:hidden}.mode:hover{transform:translateY(-2px)}.mode.selected{box-shadow:inset 0 0 0 2px #a8c66c,0 8px 22px #12372a1a}.sport-copy{padding-top:10px}.sport-copy h3{margin:0 0 4px}.sport-copy p{color:#64766b;margin:0;font-size:10px}@media (width<=700px){.sport-visual{height:100px}.sport-cards .mode{align-items:stretch;display:flex}.sport-visual{border-radius:8px;width:43%;min-width:43%}.sport-copy{flex-direction:column;justify-content:center;padding:12px;display:flex}}@media (width<=390px){.sport-visual{width:39%;min-width:39%}}.view-switch{background:#eef3ee;border:1px solid #e1e6e1;border-radius:10px;gap:4px;width:max-content;padding:4px;display:flex}.view-switch button{color:#64766b;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px 13px;font-size:9px;font-weight:900}.view-switch button.active{color:#fff;background:#12372a}.user-shell{color:#17241d;background:#f5f7f5;min-height:100vh}.user-topbar{color:#fff;z-index:50;background:#12372a;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0}.user-brand{letter-spacing:.8px;font-weight:950}.user-brand small{color:#a8c66c;letter-spacing:1.2px;font-size:7px;display:block}.user-nav{gap:5px;display:flex;overflow:auto}.user-nav button,.user-nav a{white-space:nowrap;color:#dce8df;background:0 0;border:0;border-radius:7px;padding:8px 10px;font-size:9px;font-weight:900}.user-nav button.active,.user-nav a.active,.user-nav button:hover,.user-nav a:hover{color:#fff;background:#285943}.user-main{max-width:1180px;margin:auto;padding:20px}.user-hero{color:#fff;background:linear-gradient(135deg,#12372a,#285943);border-radius:18px;justify-content:space-between;align-items:center;gap:20px;padding:24px;display:flex}.user-hero h1{color:#fff;margin:5px 0;font-size:26px}.user-hero p{color:#dce8df;margin:0;font-size:11px}.availability-grid{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.time-slot{cursor:pointer;text-align:left;background:#fff;border:1px solid #e1e6e1;border-radius:10px;padding:12px}.time-slot:hover{border-color:#a8c66c}.time-slot.booked{cursor:not-allowed;opacity:.65;background:#f4f5f2}.time-slot .time{color:#12372a;font-size:12px;font-weight:950}.time-slot .state{color:#64766b;margin-top:5px;font-size:8px;font-weight:800}.booking-layout{grid-template-columns:1.25fr .75fr;gap:15px;display:grid}.booking-summary{align-self:start;position:sticky;top:78px}.user-input{color:#17241d;box-sizing:border-box;background:#fff;border:1px solid #e1e6e1;border-radius:9px;width:100%;padding:11px;font-size:11px}.user-input:focus{border-color:#a8c66c;outline:none}.payment-method{cursor:pointer;background:#fff;border:1px solid #e1e6e1;border-radius:10px;padding:12px}.payment-method.selected{background:#f8fbf3;border:2px solid #a8c66c}.user-stat{background:#fff;border:1px solid #e1e6e1;border-radius:12px;padding:14px}.user-stat .v{color:#12372a;font-size:18px;font-weight:950}.user-stat .l{color:#64766b;font-size:8px;font-weight:900}@media (width<=760px){.user-topbar{flex-direction:column;align-items:flex-start}.user-nav{width:100%}.user-main{padding:12px}.user-hero{flex-direction:column;align-items:flex-start;padding:18px}.availability-grid{grid-template-columns:repeat(2,1fr)}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static}}#u-schedule .day-cell{cursor:pointer;transition:background .16s,box-shadow .16s,transform .16s}#u-schedule .day-cell.has-booking{position:relative}#u-schedule .day-cell.has-booking:hover{box-shadow:inset 0 0 0 2px #a8c66c;background:#e8f0d8!important}#u-schedule .day-cell.has-booking:hover .day-number{color:#12372a;font-weight:950}#u-schedule .day-cell.available-date:hover{background:inherit!important;box-shadow:none!important;transform:none!important}#u-schedule .day-cell.available-date{cursor:pointer}#u-schedule .day-cell.selected-day{background:#f8fbf6;box-shadow:inset 0 0 0 2px #a8c66c}#u-schedule .day-cell.selected-day.has-booking{background:#e8f0d8}#u-schedule .day-cell.has-booking:after{content:"";background:#a8c66c;border-radius:50%;width:6px;height:6px;position:absolute;bottom:8px;right:8px}#u-schedule .day-cell.muted-day{opacity:.55}#u-schedule .day-cell.muted-day.has-booking:hover{background:#e8f0d8!important}#u-booking .sport-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}#u-booking .sport-card{cursor:pointer;padding:0;overflow:hidden}#u-booking .sport-card .sport-visual{border-radius:14px 14px 0 0;min-height:150px;position:relative;overflow:hidden}#u-booking .sport-card .sport-info{padding:13px 15px 15px}#u-booking .basketball-visual{background:#285943;position:relative}#u-booking .basketball-visual:before{content:"🏀";filter:drop-shadow(0 5px 8px #00000038);z-index:2;font-size:58px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#u-booking .basketball-visual:after{content:"";background:linear-gradient(90deg,#0000 49.5%,#ffffffb3 49.5% 50.5%,#0000 50.5%),radial-gradient(circle,#0000 0 28px,#ffffffbf 29px 31px,#0000 32px);border:2px solid #ffffffb8;border-radius:2px;position:absolute;inset:22px}#u-booking .volleyball-visual{background:#285943;position:relative}#u-booking .volleyball-visual:before{content:"🏐";filter:drop-shadow(0 5px 8px #00000038);z-index:2;font-size:58px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#u-booking .volleyball-visual:after{content:"";background:linear-gradient(90deg,#0000 49%,#ffffffe6 49.5% 50.5%,#0000 51%),linear-gradient(#0000 74%,#ffffffbf 74.5% 75.5%,#0000 76%),linear-gradient(#0000 24%,#ffffffbf 24.5% 25.5%,#0000 26%);border:2px solid #ffffffb8;position:absolute;inset:22px}#u-booking .sport-card.selected{border-color:#a8c66c;box-shadow:0 0 0 2px #a8c66c29}@media (width<=760px){#u-booking .sport-cards{grid-template-columns:1fr}}#u-booking .sport-visual{background:#285943;border-radius:14px 14px 0 0;min-height:155px;position:relative;overflow:hidden}#u-booking .court-lines{box-sizing:border-box;border:2px solid #ffffffe0;border-radius:3px;position:absolute;inset:13px}#u-booking .basketball-visual .court-lines:before{content:"";background:#ffffffd1;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}#u-booking .basketball-visual .court-lines:after{content:"";border:2px solid #ffffffd1;border-radius:50%;width:48px;height:48px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#u-booking .basketball-visual:before,#u-booking .basketball-visual:after{content:"";z-index:2;border:2px solid #ffffffd1;width:31px;position:absolute;top:32px;bottom:32px}#u-booking .basketball-visual:before{border-left:0;border-radius:0 28px 28px 0;left:13px}#u-booking .basketball-visual:after{border-right:0;border-radius:28px 0 0 28px;right:13px}#u-booking .volleyball-visual .court-lines:before{content:"";background:#fffffff2;width:3px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}#u-booking .volleyball-visual .court-lines:after{content:"";border-left:2px solid #ffffffc7;border-right:2px solid #ffffffc7;position:absolute;inset:0 25%}#u-booking .sport-card.selected .sport-visual{box-shadow:inset 0 -4px #a8c66c}@media (width<=760px){#u-booking .sport-visual{min-height:135px}}.nav a,.user-nav a{cursor:pointer;text-decoration:none;display:block}
