:root{--accent:#1769aa;--ink:#142337;--muted:#66768c;--line:#e0e8ef;--surface:#fff;--bg:#f4f7fb;--shadow:0 8px 30px rgba(15,43,70,.06)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.7}a{color:var(--accent);text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(27px,3.5vw,42px);letter-spacing:-.05em;line-height:1.13}h2{font-size:21px;letter-spacing:-.035em}h3{font-size:17px}p{color:inherit}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1450px)/2));background:#fff;border-bottom:1px solid var(--line);gap:15px}.logo{font-weight:850;font-size:19px;display:flex;align-items:center;gap:10px;color:var(--ink);min-width:0}.logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logo img{width:40px;height:40px;object-fit:contain;border-radius:9px}.topbar nav{display:flex;gap:20px;white-space:nowrap;font-weight:650}.topbar nav a{color:#42526b}.topbar nav a:hover{color:var(--accent)}.main{max-width:1480px;margin:auto;padding:28px 28px 70px;min-height:calc(100vh - 150px)}.footer{text-align:center;color:#9ca8b7;border-top:1px solid var(--line);padding:24px}.eyebrow{color:var(--accent);font-size:11px;font-weight:850;letter-spacing:.14em}.muted{color:var(--muted)}.subtle{font-size:12px;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:25px;box-shadow:var(--shadow);margin-bottom:20px;min-width:0}.auth-wrap{max-width:620px;margin:50px auto}.auth-wrap .panel{padding:36px}.auth-wrap h1{margin-top:10px}.auth-wrap form{display:grid;gap:18px}.btn{display:inline-flex;align-items:center;justify-content:center;white-space:normal;text-align:center;min-height:42px;border-radius:10px;border:1px solid transparent;padding:10px 17px;font-weight:750;line-height:1.3;color:#fff}.btn.primary{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)}.btn.primary:hover{filter:brightness(.89)}.btn.soft{background:#eef4fa;color:#284f71;border-color:#dbe7f0}.btn.danger{background:#fff0f1;color:#a52d38;border-color:#ffd0d4}.btn.full{width:100%;margin-top:18px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-weight:650;font-size:13px;margin:0 0 14px}.field>span{color:#2f3f51}.field input,.field textarea,.field select,input[type=search],select,textarea,input[type=time],input[type=date]{background:#fff;color:var(--ink);border:1px solid #cbd7e3;border-radius:9px;padding:11px 12px;min-height:44px;max-width:100%;width:100%;outline:none}.field input:focus,.field textarea:focus,.field select:focus,input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1665b319}.field input[type=file]{padding:9px;font-size:12px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px}.check{display:flex;align-items:center;gap:10px;margin:12px 0}.check input{width:18px;height:18px}.notice{padding:13px 16px;border:1px solid #bedbe8;border-radius:11px;background:#edf8fd;margin-bottom:18px;color:#165274;overflow-wrap:anywhere}.notice.error{background:#fff0f1;border-color:#fcc9cd;color:#8b2433}.notice.success{background:#e9f8f0;border-color:#a2e3c2;color:#206343}.notice.warn{background:#fff7e8;border-color:#efd69d;color:#805b13}.venue-hero{min-height:205px;position:relative;display:flex;align-items:end;border-radius:20px;margin-bottom:26px;overflow:hidden;background:linear-gradient(110deg,#0d2f50,#1669ae);color:#fff}.venue-hero .cover{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;opacity:.34}.hero-content{position:relative;padding:34px;z-index:1;width:100%}.venue-hero h1{color:white;margin:12px 0}.venue-hero p{color:#e4f0fa;max-width:760px}.venue-hero .eyebrow{color:#a3d8ff}.contact-line{display:flex;flex-wrap:wrap;gap:12px 20px;color:#e4f4ff;font-size:13px}.contact-line a{color:#fff;text-decoration:underline}.booking-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}.booking-grid .booking-aside .sticky{position:sticky;top:15px}.step-heading{display:flex;align-items:start;gap:13px;margin:0 0 19px}.step-heading h2{margin:0 0 3px}.step-heading p{margin:0;color:var(--muted);font-size:13px}.step-num{width:31px;min-width:31px;height:31px;border-radius:50%;background:#e8f2fb;color:var(--accent);display:grid;place-items:center;font-weight:850}.court-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:13px}.court-tile{min-width:0;overflow:hidden;border-radius:12px;border:2px solid #dce7f0;background:white;text-align:left;padding:0;display:flex;flex-direction:column;color:var(--ink)}.court-tile.chosen{border-color:var(--accent);box-shadow:0 0 0 3px #1769aa18}.court-tile img,.tile-fallback{width:100%;height:126px;object-fit:cover;background:linear-gradient(140deg,#deedf8,#9dc6e8)}.tile-fallback{display:grid;place-items:center;font-size:38px}.court-text{padding:13px;display:flex;flex-direction:column;gap:4px;min-width:0}.court-text strong{font-size:16px;line-height:1.3}.court-text small,.court-text span{color:#718398;font-size:12px;overflow-wrap:anywhere}.court-text b{color:var(--accent);font-size:14px}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.calendar-head h3{margin:0;text-align:center}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:0}.calendar-weekdays b{font-size:12px;text-align:center;color:#8a9aab}.calendar-days{margin-top:8px}.calendar-day,.calendar-empty{position:relative;min-width:0;min-height:62px;border:1px solid #dbe7ee;background:#fff;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink);padding:4px}.calendar-empty{background:transparent;border:0}.calendar-day strong{font-weight:800;font-size:17px;line-height:1.1}.calendar-day .dot{width:6px;height:6px;border-radius:100%;background:#14a96a}.calendar-day.limited .dot{background:#efb24a}.calendar-day.full .dot{background:#e85f61}.calendar-day.chosen{background:#e9f4ff;border:2px solid var(--accent);color:#0d5698}.calendar-day.has-selection{box-shadow:inset 0 0 0 2px #1fa471}.calendar-day small{position:absolute;right:5px;top:2px;font-size:10px;color:#119b62}.legend{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:15px;color:#677e91;font-size:12px}.slot-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.slot{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;min-width:0;border:1px solid #dae5ec;background:#f9fcff;border-radius:10px;padding:13px 14px;color:#2b4055;font-size:13px}.slot span{overflow-wrap:anywhere}.slot strong{flex-shrink:0;font-size:12px;color:#15935e}.slot.booked,.slot.pending,.slot.blocked,.slot.unavailable{color:#99a4b0;background:#f1f4f7}.slot.booked strong,.slot.pending strong{color:#c14a55}.slot.selected{border-color:#13a574;background:#eafaf1}.slot.selected strong{color:#098b62}.slot-wait{border:0;background:transparent;font-size:11px;color:var(--accent);padding:2px;text-decoration:underline;text-align:left;align-self:center}.payment-box{display:grid;grid-template-columns:1fr 200px;gap:25px;border-radius:12px;background:#f3f8fc;padding:20px;margin:20px 0}.payment-total{font-size:29px;font-weight:850;color:var(--ink)}.gcash-code{width:100%;max-width:200px;aspect-ratio:1;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px}.payment-box small{display:block;text-align:center;color:#72859a}.upload-zone{border:2px dashed #b4d2e7;border-radius:12px;display:block;text-align:center;padding:22px;background:#f7fbff;font-weight:700}.upload-zone input{display:block;max-width:100%;margin:0 auto 10px;font-size:13px}.summary-list{min-height:80px}.summary-day{background:#f1f6fa;border-radius:9px;padding:9px;margin:8px 0;position:relative}.summary-day strong{display:block;font-size:13px}.summary-day small{display:block;color:var(--muted);overflow-wrap:anywhere}.remove-day{position:absolute;right:6px;top:4px;background:transparent;color:#b34556;border:0;font-size:20px}.total-row{border-top:1px solid var(--line);padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:8px}.total-row b{font-size:23px}.hp{position:absolute;left:-9999px;opacity:0}.dashboard-shell{display:grid;grid-template-columns:230px minmax(0,1fr);gap:25px;align-items:start}.dash-side{border:1px solid var(--line);background:#fff;border-radius:16px;padding:17px;position:sticky;top:20px}.dash-side>strong{font-size:11px;letter-spacing:.1em;color:#8a9daf;display:block;margin:8px 0 14px}.dash-side nav{display:grid;gap:3px}.dash-side nav a{border-radius:9px;padding:9px 13px;color:#456078;font-weight:650}.dash-side nav a:hover,.dash-side nav a.active{background:#eaf3fc;color:#0b65ac}.dash-side .subtle{margin-top:15px;padding:10px;overflow-wrap:anywhere}.dash-body{min-width:0}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 24px}.dash-head h1{margin:7px 0 0}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;min-width:0}.stat span{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:clamp(20px,2vw,29px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-head h2{margin:0}.court-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:15px}.court-admin-card{border:1px solid var(--line);border-radius:13px;overflow:hidden}.court-admin-card>img,.court-admin-card>.tile-fallback{width:100%;height:130px;object-fit:cover}.court-admin-body{padding:12px}.court-admin-body>strong{display:block}.court-admin-body p{color:var(--muted)}.pill{background:#eef2f6;color:#617387;border-radius:50px;font-weight:800;padding:4px 9px;font-size:11px;text-transform:capitalize;white-space:nowrap}.pill.approved,.pill.completed{background:#e6f6ed;color:#26825a}.pill.pending_review{background:#fff3da;color:#986821}.pill.rejected,.pill.cancelled{background:#fce6e7;color:#ac4050}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.actions form{display:flex;align-items:center;gap:6px}.actions select{width:auto;max-width:180px;font-size:12px}.actions .btn{font-size:12px;min-height:35px;padding:7px 9px}.schedule-table{display:grid;gap:8px;margin:15px 0}.schedule-row{display:grid;grid-template-columns:70px 1fr 1fr auto;align-items:center;gap:12px;background:#f7f9fc;padding:11px;border-radius:8px}.schedule-row label{display:flex;align-items:center;gap:6px;font-size:12px}.schedule-row input[type=checkbox]{width:17px;height:17px}.toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:18px}.toolbar input,.toolbar select{flex:1;max-width:360px}.booking-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:14px}.booking-card{border:1px solid var(--line);padding:16px;border-radius:12px;min-width:0}.booking-top{display:flex;align-items:center;justify-content:space-between;gap:5px}.booking-card h3{margin:11px 0 3px}.booking-card p{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.date-lines{display:grid;gap:4px;border-block:1px solid var(--line);padding:10px 0;margin:11px 0;font-size:12px}.booking-card details{margin-top:15px}.booking-card summary{cursor:pointer;color:var(--accent);font-weight:750}.booking-line{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.booking-line>span{overflow-wrap:anywhere}.schedule-grid{display:flex;gap:12px;flex-wrap:wrap;padding:12px 0}.schedule-header{padding:10px;border-radius:8px;background:#edf4f9}.qr-preview{max-width:200px;border-radius:10px;border:1px solid var(--line)}.audit{max-height:300px;overflow:auto;color:var(--muted);font:12px/1.7 monospace}.empty{text-align:center;padding:45px}@media(max-width:1050px){.booking-grid{grid-template-columns:minmax(0,1fr) 280px}.dashboard-shell{grid-template-columns:195px minmax(0,1fr)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.topbar{padding:10px 16px;height:auto;min-height:66px}.topbar nav{gap:10px;font-size:12px}.logo{font-size:15px;max-width:54%}.main{padding:14px 12px 40px}.panel{padding:17px;border-radius:13px}.booking-grid{display:flex;flex-direction:column}.booking-main,.booking-aside{width:100%}.booking-aside{order:-1}.booking-aside .sticky{position:static}.booking-aside .panel{margin:0}.venue-hero{min-height:170px;margin-bottom:15px}.hero-content{padding:22px}.hero-content h1{font-size:29px}.dashboard-shell{display:block}.dash-side{position:static;margin-bottom:15px;padding:10px}.dash-side>strong,.dash-side>.subtle{display:none}.dash-side nav{display:flex;overflow-x:auto;gap:6px}.dash-side nav a{flex-shrink:0;white-space:nowrap}.dash-head{margin:10px 0 17px}.dash-head h1{font-size:28px}.fields{grid-template-columns:1fr}.auth-wrap{margin:20px auto}.auth-wrap .panel{padding:22px}.slot-board{grid-template-columns:1fr}.payment-box{grid-template-columns:1fr;gap:10px}.payment-box #qr-area{max-width:230px}.calendar-day{min-height:50px}.calendar-day strong{font-size:15px}.calendar-weekdays,.calendar-days{gap:3px}.court-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.court-tile img,.court-tile .tile-fallback{height:95px}.court-text{padding:10px}.court-text strong{font-size:13px}.court-text small{font-size:11px}.stat-grid{gap:8px}.stat{padding:13px}.schedule-row{grid-template-columns:1fr 1fr;gap:8px}.schedule-row strong{grid-column:1/-1}}@media(max-width:360px){.topbar nav{flex-wrap:wrap;gap:4px}.calendar-day{min-height:42px;padding:2px}.calendar-day strong{font-size:13px}.calendar-day .dot{width:5px;height:5px}.court-tiles{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}}
.court-gallery{display:flex;gap:3px;overflow:hidden;padding:3px}.court-gallery img{width:33.333%;height:48px;object-fit:cover;border-radius:5px}.dash-calendar a.calendar-day{text-decoration:none;color:#1b405e}.dash-calendar .calendar-day small{position:static;color:#7890a4;font-size:11px;text-align:center;overflow-wrap:anywhere}.dash-calendar .calendar-day{min-height:76px}.pagination{display:flex;flex-wrap:wrap;gap:7px;margin-top:19px}.pagination a{border:1px solid #dae5ef;border-radius:7px;padding:6px 12px}.pagination .current{background:var(--accent);color:white}.court-admin-card .actions{margin-top:10px}
@media(max-width:760px){.dash-calendar .calendar-day{min-height:55px}.dash-calendar .calendar-day small{font-size:9px}.toolbar input,.toolbar select{max-width:100%}.toolbar{align-items:stretch}.toolbar .field{width:100%}}
/* Reservation System PRO 2.0 — adaptive venue operations UI */
:root{--bg:#f1f5f9;--surface:#fff;--ink:#14253c;--muted:#61758d;--line:#dce5ef;--shadow:0 12px 32px rgba(17,39,70,.055)}
body{font-feature-settings:"tnum" on;line-height:1.5;background:radial-gradient(circle at 95% 0,#e5f3fc 0,transparent 42%),var(--bg)}
.main{max-width:1580px}.panel{border-radius:18px;box-shadow:var(--shadow);padding:24px}.panel>h2,.panel .section-head h2{letter-spacing:-.025em}.topbar{background:#fff9;backdrop-filter:blur(16px);position:relative;z-index:5}.logo{letter-spacing:-.025em}.footer{font-size:12px}
.btn{transition:transform .16s ease,box-shadow .16s ease,background .16s ease;letter-spacing:-.01em;min-height:43px}.btn:focus-visible,.calendar-day:focus-visible,.slot:focus-visible,.court-tile:focus-visible{outline:3px solid #79b7f0;outline-offset:3px}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn.primary{box-shadow:0 5px 15px color-mix(in srgb,var(--accent) 18%,transparent)}
.dashboard-shell{grid-template-columns:245px minmax(0,1fr);gap:27px}.dash-side{background:linear-gradient(175deg,#10273f,#152f4c);border:1px solid #1e3856;color:#fff;padding:18px 13px;border-radius:20px;box-shadow:0 12px 28px rgba(14,40,74,.16)}.dash-side>strong{color:#8fb5da;padding:8px 12px}.dash-side nav{gap:4px}.dash-side nav a{color:#d6e5f4;min-height:42px;display:flex;align-items:center;border-radius:10px;padding:10px 13px}.dash-side nav a:hover{background:#203d5d;color:#fff}.dash-side nav a.active{background:#fff;color:#163c61;font-weight:800}.dash-side .subtle{color:#b0cce6;border-top:1px solid #ffffff1a;padding-top:17px}
.dash-head{padding-top:2px;margin-bottom:25px}.dash-head .eyebrow{color:#6384a8}.dash-head h1{font-size:clamp(29px,3vw,39px)}.stat-grid{gap:16px}.stat{position:relative;min-height:113px;padding:21px 22px;background:#fff;border-radius:17px;box-shadow:var(--shadow)}.stat:before{content:"";height:4px;width:36px;border-radius:3px;background:var(--accent);display:block;margin-bottom:13px}.stat strong{margin-top:7px;font-size:clamp(22px,2.4vw,32px);letter-spacing:-.04em}.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:-2px 0 22px}
.customer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.customer-card{display:flex;align-items:flex-start;gap:14px;min-width:0;background:#f7fafd;border:1px solid var(--line);border-radius:14px;padding:18px}.customer-avatar{display:grid;place-items:center;background:#dbeafe;color:#19518f;border-radius:12px;width:44px;height:44px;flex-shrink:0;font-size:19px;font-weight:900}.customer-card>div{min-width:0}.customer-card strong{display:block;font-size:16px}.customer-card p{font-size:12px;color:var(--muted);margin:6px 0;overflow-wrap:anywhere}.customer-card small{font-size:11px;color:#526984}
.pro-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.pro-table th,.pro-table td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top;min-width:125px}.pro-table th{background:#f5f9fd;white-space:nowrap;font-weight:750;color:#3a5169}.pro-table thead th{position:sticky;top:0;z-index:1}.table-responsive{overflow:auto;max-width:100%;border-radius:12px;border:1px solid var(--line)}.pro-table tr:last-child td{border-bottom:0}
.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.analytics-grid .panel{margin-bottom:0}.bar-item{display:grid;grid-template-columns:85px 1fr 36px;align-items:center;gap:11px;margin:13px 0;font-size:12px}.bar-track{height:11px;border-radius:10px;background:#e8f0f7;overflow:hidden}.bar-track i{height:100%;display:block;background:linear-gradient(90deg,#166ca8,#25a4be);border-radius:10px;min-width:3px}
.inline-filter,.view-switch{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.view-switch{margin-bottom:17px}.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.health-grid>div{background:#f7fafc;border-radius:12px;padding:14px;overflow-wrap:anywhere}.health-grid small{display:block;color:var(--muted)}.health-grid strong{display:block;font-size:13px;margin-top:6px}
.schedule-booking{background:#eaf4ff;border:1px solid #cfe6f5;color:#174e81;padding:8px 10px;border-radius:9px;margin-bottom:5px;min-width:125px}.schedule-booking strong,.schedule-booking small{display:block;overflow-wrap:anywhere}.schedule-booking small{font-size:11px}.available-tag{color:#15915b;font-size:11px;font-weight:650}.booking-editor{margin-top:13px;border-top:1px solid var(--line);padding-top:12px}.booking-editor summary{font-weight:750;color:var(--accent);cursor:pointer}.edit-date-box{border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:14px;margin:14px 0}.edit-date-box h4{font-size:13px;margin:0 0 12px}.edit-date-box form{margin-bottom:10px}.day-choice{display:flex;flex-wrap:wrap;gap:9px 17px;background:#f6f9fd;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:6px 0 19px}.day-choice>span{width:100%;font-size:12px;font-weight:750;color:var(--muted)}.day-choice label{font-size:12px;white-space:nowrap}.day-choice input{vertical-align:middle}
.booking-card{background:#fff;box-shadow:0 3px 14px #192c4908;padding:20px;border-radius:15px}.booking-card .actions{padding-top:10px}.booking-card h3{font-size:19px}.booking-card .date-lines{background:#f7f9fd;border-radius:9px;border:0;padding:12px}
.court-admin-card{background:#fff;border-radius:15px;box-shadow:0 3px 13px #192c4909}.court-admin-card .court-admin-body{padding:16px}.court-admin-card .court-admin-body>strong{font-size:16px}.court-admin-card .pill{margin-top:5px;display:inline-block}
.venue-hero{border-radius:21px;min-height:225px;box-shadow:0 14px 34px #122b4e13}.court-tile{transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.court-tile:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 22px #143e6a15}.court-tile.chosen{background:#f4faff}.calendar-day{aspect-ratio:1.12;min-height:49px;max-height:85px}.calendar-days{grid-auto-rows:minmax(45px,auto)}.calendar-day strong{font-size:clamp(13px,1.5vw,18px)}.calendar-day:hover:not(:disabled){background:#f0f8ff}.slot{min-height:57px}.slot strong{font-size:11px;white-space:nowrap}.booking-aside .sticky{border:1px solid #bed9ee;box-shadow:0 17px 36px #10396512}.step-num{background:var(--accent);color:#fff}
@media(max-width:1050px){.dashboard-shell{grid-template-columns:205px minmax(0,1fr)}.analytics-grid{grid-template-columns:1fr}}
@media(max-width:760px){.dashboard-shell{display:block}.dash-side{position:relative;background:#132f4b;box-shadow:none;border-radius:12px}.dash-side nav{scrollbar-width:thin}.dash-side nav a{color:#ecf6ff;min-height:40px;padding:8px 12px}.dash-side nav a.active{color:#133b5b}.dash-head{flex-wrap:wrap;gap:10px}.panel{padding:16px;border-radius:13px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-height:96px;padding:13px}.stat strong{font-size:23px}.stat:before{margin-bottom:7px}.booking-grid{display:flex;flex-direction:column}.booking-aside{order:2}.booking-main{order:1}.booking-aside .sticky{position:static}.calendar-days,.calendar-weekdays{gap:3px}.calendar-day{min-height:42px;aspect-ratio:1}.slot-board{grid-template-columns:1fr}.payment-box{grid-template-columns:1fr}.customer-grid{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr 1fr}.inline-filter{width:100%}.section-head{flex-wrap:wrap}.quick-actions{display:grid;grid-template-columns:1fr 1fr}.quick-actions .btn{font-size:12px;padding:9px}.pro-table th,.pro-table td{min-width:105px;padding:10px 8px}.court-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.quick-actions{grid-template-columns:1fr}.slot{gap:5px;padding:11px}.stat strong{font-size:20px}.health-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* CLIENT 2.0.2: cancellation inbox and payment status editor */
.nav-count{display:inline-flex;min-width:23px;height:23px;align-items:center;justify-content:center;margin-left:8px;padding:0 7px;border-radius:100px;background:#b91c1c;color:white;font-size:12px;font-weight:800}
.owner-alert{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;padding:17px 19px;margin:0 0 20px;background:#fff4ec;border:1px solid #fbd0a6;border-left:5px solid #dc6c18;border-radius:12px;color:#783b0b}
.text-alert{color:#b42336;font-size:12px;letter-spacing:.02em}
.payment-review-card,.cancel-review-card{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;margin:14px 0;box-shadow:0 3px 13px rgba(19,43,66,.035)}
.payment-review-card form,.cancel-review-card form{display:inline-flex;max-width:100%;align-items:center;gap:10px;flex-wrap:wrap}
.payment-review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:10px;overflow-wrap:anywhere}
.payment-review-header>div{min-width:0}.payment-review-header small{display:block;color:var(--muted);overflow-wrap:anywhere}
.payment-tags{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}
.payment-save{margin-top:15px;padding-top:16px;border-top:1px solid var(--line)}
.payment-save form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;width:100%}
.payment-save .field{flex:1 1 200px;max-width:450px;margin:0}
.payment-save button{min-width:185px;flex:0 0 auto}
.cancel-review-card .date-lines{margin-bottom:16px}
.cancel-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:15px}
.cancel-actions form{margin:0}
.cancel-actions .btn,.payment-save .btn{white-space:normal;min-height:46px}
.empty-state{padding:25px 10px;text-align:center;color:var(--muted)}
@media(max-width:620px){.payment-review-header{flex-direction:column}.payment-save .field,.payment-save button,.cancel-actions form,.cancel-actions button{width:100%;max-width:none}.owner-alert .btn{width:100%}.payment-review-card,.cancel-review-card{padding:14px}}

.refund-confirm{flex:1 1 100%;display:inline-flex;align-items:center;gap:9px;color:#8b342c;font-size:13px;background:#fff7ed;border:1px solid #fed7aa;padding:10px;border-radius:10px}.refund-confirm input{flex:0 0 auto;width:18px;height:18px}

/* v2.1: task-first payment navigation and mobile-safe booking summary */
.rsp-filter-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}
.rsp-filter-tab{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #d5e2f0;border-radius:10px;color:#26445f;text-decoration:none;font-weight:650;background:white}
.rsp-filter-tab.active{background:#1769aa;border-color:#1769aa;color:white}
.rsp-filter-tab b{font-size:12px;border-radius:12px;background:#eef3fa;color:#16385b;padding:2px 6px}
.rsp-filter-tab.active b{background:#e5f2ff;color:#175487}
.rsp-pages{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:24px}
.rsp-dialog[hidden],#rsp-hold-notice[hidden]{display:none!important}
.rsp-dialog{position:fixed;inset:0;background:rgba(5,25,48,.65);z-index:10000;display:grid;place-items:center;padding:18px}
.rsp-dialog-card{width:min(480px,100%);max-height:90vh;overflow-y:auto;border-radius:17px;background:#fff;padding:24px;box-shadow:0 24px 72px rgba(4,16,34,.28)}
.rsp-dialog-card .field{display:block;margin:16px 0}
.rsp-dialog-card input{width:100%;min-height:44px}
.rsp-mobile-summary{display:none}
@media(max-width:760px){.rsp-mobile-summary{display:block;margin:18px 0;padding:16px;background:#edf6ff;border:1px solid #d3e6fb;border-radius:12px}.rsp-mobile-summary p{margin:7px 0}.rsp-filter-tab{font-size:13px;flex:1;justify-content:center}.rsp-dialog-card{padding:18px}}

.rsp-quick-edit{margin-top:12px;border-top:1px solid #e4ebf3;padding:12px 0 0}
.rsp-quick-edit summary{font-weight:700;cursor:pointer;color:#196cb3}
.rsp-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
@media(max-width:650px){.rsp-quick-grid{grid-template-columns:1fr}}

.rsp-proof-preview{margin:12px 0;width:min(440px,100%);border:1px solid #d8e4f0;border-radius:11px;padding:10px 14px;background:#f8fbff}
.rsp-proof-preview summary{font-weight:700;cursor:pointer;color:#1860a0}
.rsp-proof-preview img{display:block;max-width:100%;max-height:360px;object-fit:contain;border-radius:8px;margin-top:12px;background:white}
@media(max-width:760px){.booking-aside{display:none!important}}

/* Booking history organization: v2.1.1 */
.rsp-booking-views{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0 20px}
.rsp-booking-views .btn{min-width:126px}
.rsp-protected-record{align-self:center;max-width:230px}
.rsp-pagination{align-items:center}
.rsp-pagination .current{font-weight:800}
@media(max-width:760px){.rsp-booking-views .btn{flex:1;min-width:0}.rsp-pagination{gap:5px}.rsp-pagination a{padding:8px 11px}}
/* COURTONIX CLIENT v2.2 — shared court booking + venue operations visual identity.
   Fixed admin brand is intentionally distinct from the venue logo used on public reservations.
   No Master Command code or styles are included. */
:root {
  --accent:#098c4b;
  --courtonix-deep:#052f28;
  --courtonix-forest:#07573e;
  --courtonix-green:#0baf56;
  --courtonix-lime:#b6fa32;
  --courtonix-soft:#eefbef;
  --bg:#f3f8f6;
  --surface:#ffffff;
  --ink:#102d29;
  --muted:#617a75;
  --line:#dbe9e2;
  --shadow:0 12px 32px rgba(3,62,42,.065);
}
body.courtonix-admin,body.courtonix-public,body.courtonix-auth {
  background:radial-gradient(ellipse at 100% 0,rgba(160,242,187,.17),transparent 45%),#f3f8f6;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
.courtonix-admin .topbar,.courtonix-public .topbar,.courtonix-auth .topbar {
  background:rgba(255,255,255,.94);
  border-bottom:1px solid #dcece3;
  box-shadow:0 3px 15px rgba(3,47,35,.035);
}
.topbar a{transition:color .15s ease,background .15s ease}
.topbar nav a{color:#31594b;font-weight:700;white-space:nowrap}
.topbar nav a:hover{color:#068947}
.topbar .logo{color:#063c2d}
.admin-top-brand{gap:11px}
.admin-top-brand>span:last-child{display:flex;flex-direction:column;font-size:18px;line-height:1.16;letter-spacing:-.045em}
.admin-top-brand small{font-size:9px;letter-spacing:.115em;text-transform:uppercase;font-weight:800;color:#38835e;margin-top:4px}
.brand-spark{width:39px;height:39px;min-width:39px;border-radius:12px;display:grid;place-items:center;font-weight:950;font-size:24px!important;color:#e9ffc3!important;background:linear-gradient(145deg,#044e3b,#0ab55b);box-shadow:inset 0 0 0 1px #47d96d,0 3px 10px #0b683827}
.venue-top-brand img{border-radius:11px;border:1px solid #e6efe7;background:#fff}
.courtonix-admin .main{max-width:1680px;padding-top:29px}
.courtonix-public .main{max-width:1500px}
.courtonix-auth .main{min-height:66vh}
.main .panel,.main .stat,.main .booking-card {border:1px solid #dfeae4;box-shadow:var(--shadow)}
.main .panel{background:#fff;border-radius:18px}
.main h1,.main h2,.main h3{color:#102d29;letter-spacing:-.025em}
.main .eyebrow{color:#19824d;letter-spacing:.14em}
.main .muted,.main .subtle{color:#647b72}
.footer{border-color:#d8eade;color:#668177;font-size:12px;font-weight:500}
/* Sidebar / fixed brand */
.courtonix-admin .dashboard-shell{grid-template-columns:248px minmax(0,1fr);gap:27px;align-items:start}
.courtonix-admin .dash-side{
  position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;
  background:radial-gradient(circle at 4% 0%,rgba(25,169,90,.19),transparent 35%),linear-gradient(170deg,#073a31,#052a28 75%,#042b27);
  border:1px solid #17614b;border-radius:20px;padding:14px 12px;
  box-shadow:0 18px 34px rgba(0,58,41,.12);scrollbar-width:thin;scrollbar-color:#408a65 transparent;
}
.courtonix-sidebar-brand{width:100%;padding:10px;background:linear-gradient(150deg,#fff,#f0faf2);border:1px solid rgba(198,255,124,.52);border-radius:15px;display:flex;align-items:center;justify-content:center;margin-bottom:13px;box-shadow:0 6px 24px #001f161c;}
.courtonix-sidebar-brand img{display:block;width:100%;max-width:174px;height:auto;aspect-ratio:1;object-fit:contain}
.courtonix-admin .dash-side>strong{color:#91dcb0;letter-spacing:.15em;font-size:10px;padding:6px 11px 12px;margin:0}
.courtonix-admin .dash-side nav{gap:3px}
.courtonix-admin .dash-side nav a{color:#c9e3d8;border-radius:10px;font-weight:680;padding:10px 12px;line-height:1.35;transition:background .15s ease,color .15s ease}
.courtonix-admin .dash-side nav a:hover{background:rgba(93,209,123,.16);color:#fff}
.courtonix-admin .dash-side nav a.active{background:linear-gradient(100deg,#b9f837,#7be52b);color:#063421;font-weight:850;box-shadow:0 3px 10px rgba(149,255,67,.2)}
.courtonix-admin .dash-side .subtle{color:#a4cfb9;text-align:center;border-top:1px solid #2e6953;margin-top:13px;padding:14px 0 5px;font-weight:600}
.courtonix-admin .dash-head{margin:9px 0 21px}
.courtonix-admin .dash-head .eyebrow{font-size:10px;color:#308a55}
.courtonix-admin .dash-head h1{color:#0a3029;font-weight:850}
/* Stats and actions */
.courtonix-admin .stat{position:relative;border-radius:16px;overflow:hidden}
.courtonix-admin .stat:before{background:linear-gradient(90deg,#075b3e,#a7f32b)!important;height:4px}
.courtonix-admin .stat span{color:#56796c}
.courtonix-admin .stat strong{color:#073b2a}
.btn,button,select,input,textarea{font-family:inherit}
.btn{border-radius:10px;font-weight:750;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}
.btn.primary,.btn.primary:hover,.btn.primary:focus{background:linear-gradient(110deg,#b7fb36,#74dc27)!important;border-color:#83d82a!important;color:#092e24!important;text-shadow:none!important;box-shadow:0 3px 11px rgba(113,207,36,.16)}
.btn.primary:hover:not(:disabled){filter:brightness(.965);box-shadow:0 5px 14px rgba(113,207,36,.22)}
.btn.soft{background:#f0f7f2;color:#12563a;border-color:#d6e9d9}
.btn.soft:hover{background:#e1f4e4;color:#064b31}
.btn.danger{background:#fff0f0;color:#ac3648;border-color:#f5c8ce}
.btn:focus-visible,.court-tile:focus-visible,.calendar-day:focus-visible,.slot:focus-visible,.dash-side nav a:focus-visible{outline:3px solid #8eef43;outline-offset:3px}
.main a:not(.btn):hover{color:#0f9e4b}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.toolbar input,.toolbar select{
 border-color:#cfe2d6;background:#fff;border-radius:9px;color:#143a2c;
}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #65cf68;outline-offset:1px;border-color:#24ab5b!important}
::selection{background:#c6fa75;color:#083926}
/* Court cards, booking actions, tables, payment */
.court-admin-card,.booking-card,.payment-review-card,.cancel-review-card{border:1px solid #dcebe0!important;border-radius:16px;background:white;box-shadow:0 5px 18px rgba(2,51,30,.04)}
.court-admin-body>strong{color:#103b2b}
.rsp-quick-edit summary,.booking-card summary,.rsp-proof-preview summary{color:#07864b!important}
.booking-card .date-lines,.summary-day{background:#f0f9f1;border:1px solid #e0efe3}
.rsp-filter-tabs a.active,.rsp-filter-tab.active{background:#0a663f;border-color:#0a663f;color:#fff}
.rsp-filter-tab.active b{color:#0e5c34;background:#e3f8d2}
.rsp-filter-tab:hover{border-color:#4dc767;color:#096a42}
.pro-table th{background:#f0f8f2;color:#285846}
.customer-card,.health-grid>div{background:#f5fbf6;border-color:#e1efdf}
.bar-track{background:#e8f2e7}
.bar-fill{background:linear-gradient(90deg,#138a53,#8adf28)!important}
.schedule-header{background:#edf8ef}
.schedule-booking{background:#e7f8ed;border-color:#bde8c6;color:#0b693a}
.available-tag{color:#0c894b}
.pill.approved,.pill.completed{background:#e4f8e9;color:#176a41}
.rsp-proof-preview{background:#f4faf5;border-color:#dbecde}
.rsp-pages .btn,.rsp-pagination .btn{border-color:#d6e7d8}
.rsp-dialog-card{border:1px solid #d9e8db}
.owner-alert{border-left-color:#c28a17}
/* PUBLIC RESERVATION EXPERIENCE: deep emerald + citrus lime */
.courtonix-public .venue-hero{
 min-height:255px;margin-bottom:24px;border:1px solid #227b51;
 background:radial-gradient(circle at 90% 0,#218844 0,transparent 35%),linear-gradient(112deg,#07332b 4%,#036342 60%,#0ca352 105%);
 box-shadow:0 17px 35px rgba(8,67,42,.14);isolation:isolate;
}
.courtonix-public .venue-hero:after{content:"";position:absolute;width:310px;height:310px;right:-96px;top:-118px;border-radius:50%;border:32px solid rgba(175,252,72,.22);transform:rotate(-16deg);pointer-events:none;z-index:0}
.courtonix-public .venue-hero .cover{z-index:-1}
.courtonix-public .venue-hero .cover + .hero-content{background:linear-gradient(90deg,rgba(1,43,33,.93),rgba(4,55,37,.67),rgba(2,65,39,.05))}
.courtonix-public .hero-content{padding:clamp(24px,4vw,50px);z-index:1}
.courtonix-public .hero-content h1{color:white;font-size:clamp(30px,3.3vw,49px);line-height:1.14;margin:7px 0 13px;max-width:750px;text-wrap:balance}
.courtonix-public .hero-content p{color:#e4f6e9;font-size:clamp(14px,1.5vw,16px);line-height:1.65;max-width:700px}
.courtonix-public .hero-content .eyebrow{display:inline-flex;align-items:center;color:#c6ff58;font-size:11px;padding:6px 12px;border-radius:100px;background:rgba(0,26,15,.32);border:1px solid rgba(187,255,106,.38);letter-spacing:.17em}
.courtonix-public .contact-line{color:#eafce5;gap:9px 16px;font-weight:600}
.courtonix-public .contact-line span{overflow-wrap:anywhere}
.courtonix-public .contact-line a{color:#d3ff60;font-weight:750}
.courtonix-public .booking-grid{grid-template-columns:minmax(0,1fr) 310px;gap:20px}
.courtonix-public .booking-grid>.booking-main>.panel{border-radius:19px;padding:clamp(18px,2.5vw,28px)}
.courtonix-public .step-heading{gap:14px;margin:0 0 21px;align-items:center}
.courtonix-public .step-heading h2{font-weight:850;font-size:clamp(18px,2vw,23px)}
.courtonix-public .step-heading p{color:#678374;font-size:13px;margin:2px 0 0}
.courtonix-public .step-num{background:linear-gradient(150deg,#c7ff4b,#70da26);color:#104121;box-shadow:0 3px 8px #75c94d31;width:36px;min-width:36px;height:36px;font-size:15px}
.courtonix-public .court-tiles{gap:14px}
.courtonix-public .court-tile{border:1px solid #d8e7dc;border-radius:15px;background:white;box-shadow:0 3px 10px rgba(2,62,34,.045)}
.courtonix-public .court-tile:hover{border-color:#67c96a;box-shadow:0 9px 22px rgba(15,124,65,.14)}
.courtonix-public .court-tile.chosen{border:2px solid var(--accent);background:#f1fbf0;box-shadow:0 0 0 3px rgba(118,217,63,.18)}
.courtonix-public .court-tile .court-text strong{color:#133a2c;font-weight:800}
.courtonix-public .court-tile .court-text b{color:#07874c}
.courtonix-public .tile-fallback{background:linear-gradient(135deg,#0b6d48,#34bf5a,#a0e66a);color:#fff}
.courtonix-public .calendar-head h3{font-weight:850;color:#0c3f2a}
.courtonix-public .calendar-day{border-color:#d5e8dc;min-height:65px;background:#fff;transition:border-color .12s ease,background .12s ease}
.courtonix-public .calendar-day:hover:not(:disabled){background:#f1fbf3;border-color:#7ccc82}
.courtonix-public .calendar-day.chosen{background:#e9fae9;border:2px solid var(--accent);color:#0a6b38}
.courtonix-public .calendar-day.has-selection{box-shadow:inset 0 0 0 2px #80d83c}
.courtonix-public .calendar-day .dot{background:#21ad5b}
.courtonix-public .slot{border-color:#d5e9dd;border-radius:11px;background:#f9fcf9;color:#183e2c;min-height:56px}
.courtonix-public .slot:not([disabled]):hover{background:#effaef;border-color:#42bb6c}
.courtonix-public .slot.selected{background:#dcf8df;border:2px solid var(--accent)}
.courtonix-public .slot.selected strong{color:#0b7d42}
.courtonix-public .slot strong{color:#0e8650}
.courtonix-public .slot.booked,.courtonix-public .slot.pending,.courtonix-public .slot.blocked,.courtonix-public .slot.unavailable{background:#f2f5f3;color:#8d9c95;border-color:#e2e8e4}
.courtonix-public .slot.booked strong,.courtonix-public .slot.pending strong{color:#c05755}
.courtonix-public .legend{color:#426553}
.courtonix-public .payment-box{background:#f0f9f1;border:1px solid #d4e9d8;border-radius:15px}
.courtonix-public .payment-total{color:#063b2b}
.courtonix-public .gcash-code{border-color:#d8e7da}
.courtonix-public .upload-zone{background:#f6fcf6;border:2px dashed #95cfa3;color:#174a32;border-radius:13px}
.courtonix-public .upload-zone:focus-within{border-color:#12a755;box-shadow:0 0 0 3px #89e28c33}
.courtonix-public .booking-aside .panel{border:1px solid #d9eada;box-shadow:0 8px 25px rgba(2,70,35,.08)}
.courtonix-public .booking-aside h2{font-size:20px;color:#0d4432}
.courtonix-public .summary-day{border-color:#d9ecd8}
.courtonix-public .total-row b{color:#075738}
.courtonix-public #submit-booking{min-height:53px;font-size:15px;box-shadow:0 6px 15px rgba(116,205,49,.2)}
.courtonix-public .rsp-mobile-summary{background:#f0faef;border-color:#d2e8d4}
.courtonix-public .rsp-dialog-card{border-color:#b9d4c1}
/* ACCESSIBLE STATES / RESPONSIVENESS */
@media(max-width:1100px){
  .courtonix-admin .dashboard-shell{grid-template-columns:210px minmax(0,1fr);gap:17px}
  .courtonix-admin .dash-side{padding:11px 9px}
  .courtonix-sidebar-brand img{max-width:155px}
  .courtonix-public .booking-grid{grid-template-columns:minmax(0,1fr) 280px}
}
@media(max-width:760px){
  .courtonix-admin .main,.courtonix-public .main{padding:15px 12px 35px}
  .courtonix-admin .dashboard-shell{display:block}
  .courtonix-admin .dash-side{position:relative;top:auto;max-height:none;overflow:visible;margin-bottom:16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-radius:14px;padding:9px 10px}
  .courtonix-sidebar-brand{flex:0 0 66px;width:66px;height:66px;padding:4px;border-radius:10px;margin:0}
  .courtonix-sidebar-brand img{width:100%;max-width:60px;height:60px;object-fit:contain}
  .courtonix-admin .dash-side>strong{flex:1;margin:0;padding:0 6px}
  .courtonix-admin .dash-side nav{order:3;flex:1 1 100%;display:flex;gap:7px;overflow-x:auto;white-space:nowrap;padding:4px 1px 8px;scrollbar-width:thin}
  .courtonix-admin .dash-side nav a{min-height:42px;flex:none;display:inline-flex;align-items:center;padding:8px 13px}
  .courtonix-admin .dash-side .subtle{order:2;border:0;margin:0;padding:0 3px;font-size:10px}
  .courtonix-admin .dash-head{gap:12px;flex-wrap:wrap}
  .courtonix-public .booking-grid{display:flex;flex-direction:column}
  .courtonix-public .booking-aside{display:none}
  .courtonix-public .venue-hero{min-height:190px;margin-bottom:13px}
  .courtonix-public .venue-hero:after{width:170px;height:170px;right:-70px;top:-55px;border-width:20px}
  .courtonix-public .hero-content{padding:24px}
  .courtonix-public .court-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .courtonix-public .calendar-day{min-height:48px}
  .courtonix-public .rsp-mobile-summary{display:block}
  .topbar nav{gap:10px}
  .admin-top-brand>span:last-child{font-size:15px}
  .admin-top-brand small{font-size:8px}
}
@media(max-width:440px){
 .courtonix-public .court-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .courtonix-public .court-tile img{height:92px}
 .courtonix-public .court-tile .court-text{padding:10px}
 .courtonix-public .court-tile .court-text b{font-size:12px}
 .courtonix-public .calendar-day{min-height:42px;padding:2px}
 .courtonix-public .calendar-day strong{font-size:13px}
 .courtonix-public .calendar-weekdays,.courtonix-public .calendar-days{gap:3px}
 .courtonix-public .payment-box{padding:15px}
 .courtonix-admin .topbar nav a,.courtonix-public .topbar nav a{font-size:11px}
 .brand-spark{width:31px;height:31px;min-width:31px;font-size:20px!important}
 .admin-top-brand small{display:none}
}
@media(max-width:355px){
 .courtonix-public .court-tiles{grid-template-columns:1fr}
 .courtonix-public .topbar{gap:6px}
 .courtonix-public .venue-top-brand{max-width:46%}
}
@media(prefers-reduced-motion:reduce){.courtonix-public .court-tile,.courtonix-public .calendar-day,.btn{transition:none}}
@media(max-width:760px){
  .courtonix-admin .dash-side>strong,
  .courtonix-admin .dash-side>.subtle{display:block}
}


/* Courtonix CLIENT 2.2.1 - simplified owner navigation and player-facing branding */
/* Dashboard stays uncluttered: no duplicate top bar; booking & logout live by the title. */
.courtonix-admin .main{padding-top:20px}
.courtonix-admin .dash-head{display:flex;align-items:center;justify-content:space-between;gap:18px}
.courtonix-admin .dash-head>div:first-child{min-width:0}
.courtonix-admin .dash-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.courtonix-admin .dash-actions .btn{white-space:nowrap;min-height:41px;display:inline-flex;align-items:center;justify-content:center}
.courtonix-admin .dash-actions .dash-logout{background:#fff;color:#194837;border:1px solid #cfe4d7}
.courtonix-admin .dash-actions .dash-logout:hover{background:#f0f8f2;color:#0b5b32;border-color:#a4dbb3}
/* Desktop dashboard zoom and width are defined in the viewport-safe rules below. */

/* The public page has no top navigation or management-login link. */
.courtonix-public .main{padding-top:22px}
.courtonix-public .hero-venue-row{display:flex;align-items:center;gap:clamp(15px,2.4vw,30px);max-width:100%;min-width:0}
.courtonix-public .venue-hero-logo{flex:0 0 clamp(86px,9vw,125px);width:clamp(86px,9vw,125px);height:clamp(86px,9vw,125px);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.55);border-radius:18px;padding:9px;box-shadow:0 8px 25px rgba(0,25,15,.2)}
.courtonix-public .venue-hero-logo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.courtonix-public .hero-venue-copy{min-width:0;flex:1;overflow-wrap:anywhere}
.courtonix-public .hero-venue-copy h1{margin:10px 0 10px;max-width:100%;overflow-wrap:anywhere}
.courtonix-public .hero-venue-copy p{margin:8px 0 12px;overflow-wrap:anywhere}
.courtonix-public .hero-venue-copy .contact-line{gap:8px 15px;overflow-wrap:anywhere}
@media(max-width:899px){.courtonix-admin .main{zoom:1}}
@media(max-width:760px){
  .courtonix-admin .dash-head{align-items:flex-start;flex-wrap:wrap}
  .courtonix-admin .dash-actions{width:100%;justify-content:flex-start}
  .courtonix-public .hero-venue-row{align-items:flex-start;gap:15px}
  .courtonix-public .venue-hero-logo{flex:0 0 86px;width:86px;height:86px;border-radius:14px;padding:7px}
  .courtonix-public .main{padding-top:12px}
}
@media(max-width:440px){
  .courtonix-admin .dash-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .courtonix-admin .dash-actions .btn{font-size:12px;padding:9px 11px;white-space:normal;text-align:center}
  .courtonix-public .venue-hero-logo{flex-basis:67px;width:67px;height:67px;border-radius:12px;padding:5px}
  .courtonix-public .hero-venue-row{gap:11px}
  .courtonix-public .hero-venue-copy h1{font-size:clamp(23px,7vw,30px)}
  .courtonix-public .hero-venue-copy .eyebrow{font-size:9px;letter-spacing:.09em;padding:5px 9px}
  .courtonix-public .hero-venue-copy .contact-line{font-size:11px}
}


/* Manual payment choices — venue-specific, mobile friendly */
.rsp-method-settings{margin:14px 0;padding:20px;border:1px solid #d6e6df;border-radius:16px;background:#f9fcfa}
.rsp-method-settings>.check{display:flex;align-items:center;gap:9px;font-weight:700;margin-bottom:15px}
.rsp-method-settings .qr-preview{display:block;max-width:150px;max-height:160px;object-fit:contain;margin:10px 0;border:1px solid #cde1d4;border-radius:10px}
.rsp-payment-options{display:flex;flex-wrap:wrap;gap:12px;min-width:0;border:0;padding:0;margin:12px 0 18px}
.rsp-payment-options legend{font-weight:700;margin-bottom:10px;padding:0;color:#123e2d}
.rsp-payment-choice{display:flex;align-items:center;gap:10px;border:1px solid #d5e4da;border-radius:14px;padding:14px 16px;min-width:155px;flex:1 1 175px;cursor:pointer;background:#fff}
.rsp-payment-choice.chosen{border:2px solid #139e51;background:#f1fcf1;box-shadow:0 0 0 2px #c6f4c1}
.rsp-payment-choice input{accent-color:#149a49;flex:0 0 auto}
.rsp-payment-choice span{display:flex;flex-direction:column;gap:3px}
.rsp-payment-choice small{font-size:12px;color:#5b796e}
#rsp-maya-link:not([hidden]){display:inline-flex;margin-top:10px;max-width:100%;overflow-wrap:anywhere}
#rsp-maya-link[hidden]{display:none!important}
@media(max-width:600px){.rsp-payment-choice{flex-basis:100%;min-width:0}.rsp-method-settings{padding:14px}}

/* Courtonix CLIENT — viewport-safe desktop dashboard; no clipped owner actions. */
@media (min-width:900px){
  /* CSS zoom already enlarges the layout viewport. 111.111% on the zoomed
     body double-compensated and pushed View booking / Log out off-screen. */
  body.courtonix-admin{zoom:.9;width:100%;max-width:100%;overflow-x:visible}
  .courtonix-admin .main{max-width:none;width:100%;padding-inline:clamp(14px,1.6vw,28px)}
  .courtonix-admin .dashboard-shell{grid-template-columns:215px minmax(0,1fr);gap:20px;width:100%;max-width:100%}
  .courtonix-admin .dash-body{min-width:0;width:100%;max-width:100%}
  .courtonix-admin .dash-head{min-width:0;max-width:100%;flex-wrap:wrap}
  .courtonix-admin .dash-actions{flex:0 1 auto;min-width:0;max-width:100%}
  .courtonix-admin .dash-actions .btn{min-width:0;max-width:100%}
  /* All owner navigation entries fit on the normal desktop viewport, without
     creating a second, separately scrollable sidebar. */
  .courtonix-admin .dash-side{position:sticky;top:12px;max-height:none;overflow:visible;padding:10px 9px;border-radius:17px}
  .courtonix-admin .courtonix-sidebar-brand{padding:5px;margin-bottom:5px;border-radius:11px}
  .courtonix-admin .courtonix-sidebar-brand img{width:116px;height:116px;max-width:100%;aspect-ratio:1;object-fit:contain}
  .courtonix-admin .dash-side>strong{font-size:9px;padding:4px 9px 6px;margin:0}
  .courtonix-admin .dash-side nav{gap:1px}
  .courtonix-admin .dash-side nav a{padding:6px 9px;min-height:29px;line-height:1.2;font-size:13px}
  .courtonix-admin .dash-side .subtle{margin-top:6px;padding:8px 0 2px;font-size:11px}
}
/* On unusually short desktop windows, scroll the page instead of trapping
   the last menu items inside a scrolling sidebar. */
@media (min-width:900px) and (max-height:680px){
  .courtonix-admin .dash-side{position:static}
}
@media (min-width:761px) and (max-width:899px){
  .courtonix-admin .dash-side{position:static;max-height:none;overflow:visible}
  .courtonix-admin .dash-head{flex-wrap:wrap}
  .courtonix-admin .courtonix-sidebar-brand img{max-width:118px;height:118px}
  .courtonix-admin .dash-side nav a{padding:6px 9px;font-size:13px}
}
@media (max-width:760px){
  .courtonix-admin .dash-head{width:100%;max-width:100%}
  .courtonix-admin .dash-actions{max-width:100%;justify-content:flex-start}
  .courtonix-admin .dash-side{max-height:none;overflow:visible}
}
