@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";
:root{--ink:#173c32;--green:#214d3c;--lime:#d4ed79;--muted:#68776e;--line:#dce2d9;--paper:#f6f7f1}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.35}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:4px;outline:3px solid #8ca83d}a{color:inherit;text-decoration:none}.preview{color:#fff;text-align:center;letter-spacing:1.2px;background:#173c32;padding:10px;font-size:10px}.preview span{opacity:.75;letter-spacing:.3px;margin-left:18px}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1320px;margin:auto;padding:26px 40px;display:flex}.brand{letter-spacing:-2px;font:800 32px Manrope,sans-serif}.brand span{font-weight:400}.brand i{color:#91ac47;margin-left:4px;font-size:12px}nav{gap:28px;display:flex}.nav{color:var(--muted);background:0 0;border:0;padding:10px 0;font-size:13px}.nav.active{color:var(--ink);border-bottom:2px solid var(--ink)}.location{letter-spacing:1.5px;font-size:10px}main{max-width:1240px;margin:auto;padding:0 0 70px}.hero{grid-template-columns:1.2fr 1fr;align-items:center;min-height:355px;display:grid;overflow:hidden}.eyebrow{letter-spacing:2px;margin-bottom:20px;font-size:10px;font-weight:700}h1{letter-spacing:-2.8px;margin:0 0 20px;font:500 clamp(38px,4vw,57px)/1.1 Manrope,sans-serif}h1 em{color:#74865a;font-style:normal}.intro{color:var(--muted);font-size:14px;line-height:1.8}.hero-meta{gap:22px;margin-top:28px;font-size:11px;display:flex}.hero-meta span+span:before{content:"·";margin-right:22px}.golf-art{height:285px;position:relative;overflow:hidden}.green{background:#dce6bd;border-radius:50%;width:300px;height:170px;position:absolute;top:90px;left:90px;transform:rotate(-19deg);box-shadow:0 12px #b8c998}.orbit{border:1px solid #dce1d0;border-radius:50%;width:420px;height:240px;position:absolute;top:40px;left:25px;transform:rotate(-19deg)}.orbit.two{transform:rotate(-19deg)scale(.85)}.flag{z-index:2;background:#35533b;width:2px;height:110px;position:absolute;top:42px;left:265px}.flag:after{content:"";border-top:13px solid #507144;border-bottom:13px solid #507144;border-right:46px solid #0000;position:absolute;left:2px}.ball{background:radial-gradient(circle at 30% 25%,#fff,#d5dccb);border-radius:50%;width:39px;height:39px;position:absolute;top:171px;left:158px;box-shadow:8px 10px 12px #8b9b6a60}.golf-art>span{letter-spacing:3px;color:#8c987b;font-size:8px;position:absolute;bottom:8px;right:60px}.booking-layout{grid-template-columns:1fr 350px;gap:38px;display:grid}.booking-panel{border:1px solid var(--line);background:#fff;border-radius:18px;padding:30px}.section-title{align-items:center;gap:12px;margin-bottom:22px;display:flex}.section-title h2{letter-spacing:-.5px;margin:0;font-size:18px}.step{border:1px solid var(--line);border-radius:50%;padding:8px;font-size:10px}.subtle{color:var(--muted);margin-left:auto;font-size:11px}.bays{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px;display:grid}.bay{text-align:left;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;padding:5px}.bay.selected{border:2px solid var(--green);background:#f7faef;padding:4px}.bay-art{background:linear-gradient(150deg,#34554a,#142b24);border-radius:8px;height:132px;position:relative;overflow:hidden}.screen-grid{background:linear-gradient(#c4d7a6 40%,#8fab64 41%,#597445);border:6px solid #172c24;width:60%;height:76px;position:absolute;top:20px;left:20%;transform:perspective(300px)rotateX(-3deg)}.mat{background:#557843;width:64%;height:50px;position:absolute;bottom:-13px;left:18%;transform:perspective(100px)rotateX(45deg)}.bay-number{color:#ffffff45;font-family:Manrope,sans-serif;font-size:38px;position:absolute;bottom:6px;right:12px}.bay-copy{justify-content:space-between;align-items:center;padding:12px;display:flex}.bay h3{margin:0;font-size:16px}.bay p{color:var(--muted);margin:5px 0 0;font-size:11px}.radio{text-align:center;border:1px solid #bcc8b8;border-radius:50%;width:20px;height:20px;font-size:12px}.selected .radio{background:var(--green);color:#fff}.fields{grid-template-columns:1fr 1fr;gap:16px;display:grid}label{flex-direction:column;gap:9px;font-size:12px;display:flex}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:7px;min-height:44px;padding:12px}.slot-label{letter-spacing:1px;margin:26px 0 14px;font-size:10px}.slot-label span{float:right;text-transform:none;letter-spacing:0;color:var(--muted)}.slots{grid-template-columns:repeat(6,1fr);gap:9px;display:grid}.slots button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;padding:12px 4px;font-size:12px}.slots .chosen{background:var(--green);color:#fff;border-color:var(--green)}.hint{color:var(--muted);margin-top:16px;font-size:11px;line-height:1.6}.summary{background:var(--green);color:#fff;border-radius:18px;height:fit-content;padding:28px;position:sticky;top:24px}.summary .eyebrow{color:var(--lime)}.summary h2{letter-spacing:-1px;margin-bottom:28px;font:500 27px/1.3 Manrope,sans-serif}dl{margin:0}dl>div{justify-content:space-between;gap:10px;margin:17px 0;font-size:12px;display:flex}dt{color:#c2d0c5}dd{text-align:right;margin:0}.breakdown{color:#d2ddce;border-top:1px solid #ffffff25;padding-top:16px;font-size:11px}.breakdown>div{justify-content:space-between;margin:10px 0;display:flex}.total{border-top:1px solid #ffffff25;justify-content:space-between;align-items:center;margin-top:16px;padding:22px 0;font-size:12px;display:flex}.total strong{letter-spacing:-1px;font-size:27px}.primary{background:var(--lime);color:var(--ink);border:0;border-radius:7px;width:100%;padding:15px 20px;font-size:13px;font-weight:700}.summary-note{color:#c8d6c5;text-align:center;margin:16px 0 0;font-size:10px;line-height:1.7}.review p{font-size:12px;line-height:1.6}.text-button{color:inherit;background:0 0;border:0;width:100%;padding:12px}.notice{background:#e6edcc;border:1px solid #b9ce83;border-radius:8px;margin-top:20px;padding:16px;font-size:13px}.dashboard{min-height:70vh;padding-top:52px}.dashboard h1{font-size:45px}.dot{color:#93a955}.empty{text-align:center;border:1px dashed #b3c0a9;border-radius:15px;margin-top:30px;padding:50px}.empty .primary{max-width:240px}.reservation{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;padding:24px;display:flex}.reservation h2{margin:12px 0}.reservation p,.reservation small{color:var(--muted);font-size:13px}.badge{letter-spacing:.5px;background:#eef1e4;border-radius:4px;padding:6px 9px;font-size:10px}.reservation strong{text-align:right;font-size:25px;display:block}.actions{gap:10px;margin-top:20px;display:flex}.actions button,.secondary,.admin-row button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;padding:12px;font-size:12px}.admin-grid{grid-template-columns:1.3fr 1fr;gap:24px;margin-top:30px;display:grid}.settings{border:1px solid var(--line);background:#fff;border-radius:12px;padding:28px}.settings h2{font-size:20px}.settings p{font-size:13px;line-height:1.8}.settings fieldset{border:0;padding:20px 0}.settings legend{padding-top:18px;font-size:12px}.days{flex-wrap:wrap;gap:14px;display:flex}.days label{flex-direction:row;align-items:center;gap:5px}.days input{width:16px;min-height:16px}.list-heading{margin-top:40px}.admin-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;padding:18px 0;font-size:13px;display:flex}.admin-row p{color:var(--muted);font-size:12px}footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1240px;margin:auto;padding:28px 0;display:flex}footer span{color:var(--muted);font-size:11px}footer .brand span{color:var(--ink);font-size:32px}@media (max-width:1300px){main,footer{margin-left:40px;margin-right:40px}}@media (max-width:900px){.location,.subtle{display:none}.booking-layout{grid-template-columns:1fr 300px;gap:20px}.booking-panel{padding:20px}.slots{grid-template-columns:repeat(4,1fr)}.hero-meta{gap:10px}.hero-meta span+span:before{margin-right:10px}.golf-art{transform-origin:0;transform:scale(.8)}.hero{grid-template-columns:1.3fr .7fr}.admin-grid{grid-template-columns:1fr}}@media (max-width:680px){header{padding:20px}.brand{font-size:28px}nav{gap:14px}.nav{font-size:11px}.preview span{margin:5px 0 0;display:block}.preview{font-size:9px}main,footer{margin-left:20px;margin-right:20px}.hero{min-height:0;padding:36px 0;display:block}.hero h1{font-size:40px}.golf-art{display:none}.hero-meta{flex-wrap:wrap;font-size:9px}.intro{font-size:13px}.booking-layout{grid-template-columns:1fr;gap:20px}.summary{position:static}.booking-panel{padding:18px}.bay-art{height:105px}.bay-copy{padding:10px 5px}.bay h3{font-size:14px}.bay p{font-size:10px}.screen-grid{width:76%;height:65px;left:12%}.slots{grid-template-columns:repeat(4,1fr)}.slot-label span{float:none;margin-top:7px;display:block}.summary h2{font-size:25px}.reservation{display:block}.reservation strong{text-align:left;margin-top:18px}.actions{flex-wrap:wrap}.dashboard h1{font-size:36px}.settings{padding:20px}.admin-row{flex-wrap:wrap}footer span:nth-child(2){display:none}.fields{gap:12px}.empty{padding:30px 20px}}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes amount-in{0%{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes ball-in{0%{opacity:0;transform:translate(60px,-28px)rotate(100deg)}to{opacity:1;transform:translate(0)rotate(0)}}.enter,.notice,.review{animation:.38s ease-out both arrive}.amount-enter,.breakdown{animation:.24s ease-out amount-in}.golf-art .ball{animation:1s ease-out both ball-in}.bay,.slots button,.primary,.secondary,.nav,.radio{transition:transform .18s,background-color .18s,border-color .18s,box-shadow .18s}@media (hover:hover){.bay:hover{transform:translateY(-3px);box-shadow:0 10px 25px #173c3212}.primary:not(:disabled):hover{background:#e1f49c;transform:translateY(-2px)}.slots button:not(:disabled):hover{box-shadow:0 0 0 2px #9aaf71}}.primary:active,.bay:active{transform:scale(.985)}.account-card{max-width:460px;margin:30px 0}.account-card .primary{margin-top:20px}.reservation .secondary{margin-top:18px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (max-width:680px){header{flex-wrap:wrap;gap:10px}nav{gap:12px}.admin-row{overflow-wrap:anywhere}}.venue-calendar{border:1px solid var(--line);background:#fff;border-radius:16px;margin:30px 0;padding:24px}.calendar-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.calendar-heading h2{margin:0 0 18px}.calendar-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.calendar-toolbar [aria-pressed=true]{background:var(--green);color:#fff}.calendar-date{flex-direction:row;align-items:center}.calendar-date input{max-width:165px}.calendar-scroll{border:1px solid var(--line);border-radius:8px;max-height:600px;margin-top:18px;overflow:auto}.calendar-grid{min-width:340px;display:grid}.calendar-week{min-width:1592px}.calendar-colhead{z-index:2;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;background:#f1f4e9;padding:12px 5px;font-size:11px;line-height:1.7;position:sticky;top:0}.calendar-hours{background:#f7f8f3;height:1152px}.calendar-hours span{text-align:center;height:48px;color:var(--muted);padding-top:4px;font-size:10px;display:block}.calendar-lane{border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,var(--line) 47px,var(--line) 48px);height:1152px;position:relative}.calendar-event{text-align:left;color:var(--ink);background:#e5efd8;border:1px solid #a7bca5;border-radius:5px;padding:4px 6px;font-size:10px;line-height:1.5;position:absolute;left:3px;right:3px;overflow:hidden}.calendar-event strong,.calendar-event span{display:block}.calendar-event.pending{background:#fff0cb;border-color:#d9b66b}.calendar-event.maintenance{background:#e9ecea;border-color:#abb6b0}.calendar-event:hover{filter:brightness(.96)}.calendar-detail{background:var(--paper);overflow-wrap:anywhere;border-radius:8px;margin-top:18px;padding:18px;font-size:13px}.calendar-add{max-width:420px;margin-top:24px}.calendar-add .secondary{display:inline-block}.calendar-add .hint{font-size:11px}.calendar-heading .eyebrow{margin:0 0 8px}@media (max-width:680px){.venue-calendar{padding:14px}.calendar-heading{flex-direction:column;align-items:flex-start;margin-bottom:16px}.calendar-toolbar{gap:6px}.calendar-date{font-size:11px}.calendar-scroll{max-height:480px}}.history-tabs{gap:10px;margin:24px 0 12px;display:flex}.history-tabs button{min-width:130px;font-weight:700}.history-tabs [aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}.history-tabs span{opacity:.7;margin-left:8px}.reservation-actions{flex-direction:column;align-items:stretch;gap:10px;min-width:210px;max-width:300px;display:flex}.reservation-actions .secondary{margin:0}.reservation-actions>.hint{text-align:right;margin:0}.booking-state-held{background:#fff0cb}.booking-state-confirmed,.booking-state-in_progress{background:#dcebcf}.booking-state-cancelled,.booking-state-expired{background:#eeeae6}.history-more{margin:24px auto;display:block}@media (max-width:680px){.reservation-actions{max-width:none;margin-top:20px}.reservation-actions>.hint{text-align:left}}.payment-result{max-width:650px;margin:56px auto;padding:40px}.payment-result h1{letter-spacing:-1.8px;font-size:clamp(30px,5vw,44px)}.payment-result-icon{background:#eef1e7;border-radius:50%;place-items:center;width:52px;height:52px;margin:24px 0;font-size:28px;display:grid}.payment-result-icon.complete{background:var(--lime);color:var(--ink)}.payment-details{border-top:1px solid var(--line);margin:28px 0 16px}.payment-details>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:24px;padding:13px 0;font-size:14px;display:flex}.payment-details dt{color:var(--muted)}.payment-details dd{text-align:right;overflow-wrap:anywhere;margin:0}.payment-result-actions{flex-wrap:wrap;gap:12px;margin:28px 0;display:flex}.payment-result-actions a{justify-content:center;align-items:center;width:auto;margin:0;padding:14px 20px;display:inline-flex}.payment-result .hint{color:var(--muted);font-size:12px;line-height:1.6}@media (max-width:680px){.payment-result{margin:28px 16px;padding:24px}.payment-result-actions{flex-direction:column}.payment-details>div{gap:14px}.payment-details dd{max-width:70%}}.whatsapp-recovery{max-width:760px;margin:28px 0}.whatsapp-recovery form{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.whatsapp-recovery label{flex:1;min-width:220px}.whatsapp-recovery dd{overflow-wrap:anywhere}.whatsapp-recovery .primary{width:auto}.whatsapp-recovery .hint{color:var(--muted);font-size:12px}.booking-qr{border:1px solid var(--line);text-align:center;background:#fff;border-radius:20px;flex-direction:column;align-items:center;gap:12px;margin:28px 0;padding:24px 16px;display:flex}.booking-qr .eyebrow{margin:0}.booking-qr img{aspect-ratio:1;background:#fff;width:min(280px,100%);height:auto;display:block}.booking-qr .primary{width:100%;max-width:320px;margin:0;padding:15px 24px;text-decoration:none;display:block}.booking-qr .hint{max-width:320px;margin:0}.qr-test-label{letter-spacing:1px;color:var(--muted);margin:8px 0 0;font-size:10px}.booking-qr [role=status]{padding:24px 0}@media (max-width:680px){.booking-qr{border-radius:14px;padding:20px 12px}}
body{background:#f5f7f3}.staff-login{background:#fff;border:1px solid #dce2d5;border-radius:18px;max-width:440px;margin:70px auto;padding:32px}.staff-login h1{letter-spacing:-1px;font-size:32px;line-height:1.2}.staff-login p{font-size:13px;line-height:1.8}.staff-login .primary{margin-top:18px}.staff-login .secondary{text-align:center;margin-top:12px;display:block}.staff-login .brand{margin-bottom:20px;display:inline-block}@media (max-width:520px){.staff-login{margin:30px 20px;padding:26px}}
