@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');
:root{--green:#123d31;--green2:#1d5d49;--mint:#e8f2ed;--bg:#f5f7f5;--line:#e0e7e3;--ink:#18342b;--muted:#74837d;--gold:#b28c55;--white:#fff;--red:#a3473f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:var(--green2);text-decoration:none}button,input,select,textarea{font:inherit}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:700;color:var(--gold);margin:0 0 8px}.brand{display:flex;align-items:center;gap:10px}.brand span{width:42px;height:42px;border-radius:50% 50% 44% 56%;background:var(--green);color:white;display:grid;place-items:center;font:italic 600 28px 'Playfair Display'}.brand b{font:600 20px 'Playfair Display'}.brand.light{color:white}.brand.light span{border:1px solid #ffffff55;background:#ffffff10}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:white;border:0;border-radius:9px;padding:13px 19px;font-size:12px;font-weight:700;cursor:pointer}.btn.small{padding:10px 14px}.shell{min-height:100vh;display:grid;grid-template-columns:235px 1fr}.shell>aside{height:100vh;position:sticky;top:0;background:var(--green);color:white;padding:27px 18px;display:flex;flex-direction:column}.shell aside .brand{padding:0 10px}.shell aside nav{display:flex;flex-direction:column;gap:5px;margin-top:45px}.shell aside nav a{color:#b8cec3;padding:12px 14px;border-radius:8px;font-size:12px}.shell aside nav a:hover,.shell aside nav a.active{background:#ffffff12;color:white}.aside-bottom{margin-top:auto;border-top:1px solid #ffffff20;padding:17px 9px 0;display:grid;gap:12px}.aside-bottom>a{color:#cfe0d8;font-size:11px}.aside-bottom div{display:flex;flex-direction:column}.aside-bottom small{color:#9db7aa;font-size:9px}.admin{min-width:0}.admin>header{height:68px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 32px;gap:20px}.admin>header>span{display:none}.menu{display:none}.content{padding:31px;max-width:1500px;margin:auto}.page-title h1{font:600 32px 'Playfair Display';margin:0 0 24px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:15px}.metrics article{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column}.metrics span{font-size:10px;color:var(--muted)}.metrics b{font-size:23px;margin:8px 0 3px}.metrics small{font-size:9px;color:var(--muted)}.grid{display:grid;gap:15px}.grid.two{grid-template-columns:1.6fr 1fr}.card{background:white;border:1px solid var(--line);border-radius:12px}.card-head{min-height:60px;border-bottom:1px solid var(--line);padding:17px 20px;display:flex;align-items:center;justify-content:space-between}.card-head h2,.card h2{font:600 17px 'Playfair Display';margin:0}.card-head a{font-size:10px;font-weight:700}.list-row{display:grid;grid-template-columns:80px 1fr auto;gap:14px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}.list-row time{font-size:10px;font-weight:700}.list-row div{display:flex;flex-direction:column}.list-row b{font-size:11px}.list-row small{font-size:9px;color:var(--muted)}.badge{font-size:8px;background:#eef1ef;color:#66756f;border-radius:999px;padding:5px 8px;white-space:nowrap}.badge.confirmed,.badge.approved{background:#e6f3eb;color:#277250}.badge.awaiting_payment,.badge.pending,.badge.payment_review{background:#fbf1de;color:#9b6d25}.badge.cancelled,.badge.rejected,.badge.expired{background:#fae9e7;color:#9c4941}.quick>a{display:block;padding:16px 20px;border-bottom:1px solid var(--line);font-size:11px}.empty{padding:35px;text-align:center;color:var(--muted);font-size:11px}.alert{background:#e5f3ea;color:#286d50;border-radius:8px;padding:12px 15px;margin-bottom:15px;font-size:11px;transition:.3s}.alert.error{background:#fae7e5;color:var(--red)}.alert.fade{opacity:0;transform:translateY(-5px)}.table-card{margin-top:15px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 17px;border-bottom:1px solid var(--line);font-size:10px}th{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}td small{display:block;color:var(--muted)}.inline{display:flex;gap:5px}.inline select,.inline button{font-size:8px;padding:6px;border:1px solid var(--line);background:white;border-radius:6px}.form-card{margin-bottom:15px}.form-grid{padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label,.booking-form label,.install-card label{display:flex;flex-direction:column;gap:6px;font-size:9px;font-weight:700;color:#54675f}.form-grid input,.form-grid select,.form-grid textarea,.booking-form input,.booking-form select,.booking-form textarea,.install-card input{width:100%;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:11px;outline-color:var(--green2);font-size:11px;color:var(--ink)}textarea{min-height:80px;resize:vertical}.full{grid-column:1/-1}.check{flex-direction:row!important;align-items:center!important}.check input{width:auto!important}.form-grid fieldset{border:1px solid var(--line);border-radius:9px;padding:15px;display:flex;flex-wrap:wrap;gap:15px}.form-grid legend{font-size:10px}.form-grid h3{font:600 17px 'Playfair Display';margin:10px 0 0}.cards-list article{display:flex;align-items:center;gap:13px;padding:14px 19px;border-bottom:1px solid var(--line)}.cards-list img,.placeholder{width:44px;height:44px;object-fit:cover;border-radius:9px}.placeholder{background:var(--mint);display:grid;place-items:center;color:var(--green2)}.round{border-radius:50%!important}.cards-list article>div:not(.placeholder){display:flex;flex-direction:column;flex:1}.cards-list b{font-size:11px}.cards-list small{font-size:9px;color:var(--muted)}.cards-list strong,.cards-list span,.cards-list a{font-size:10px;margin-left:15px}.qr-box{margin-top:15px;padding:25px;display:flex;justify-content:space-between;align-items:center}.qr-box p{font-size:11px;color:var(--muted)}.qr-box code{display:block;background:var(--mint);padding:10px;border-radius:7px;margin-top:10px}.qr-box img{width:180px;height:180px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr}.login-art{background:var(--green);color:white;padding:50px 7vw;display:flex;flex-direction:column;justify-content:space-between}.login-art h1,.public-copy h1{font:600 55px/1.05 'Playfair Display';margin:16px 0}.login-art h1 em,.public-copy h1 em{color:#a9cdb9}.login-box{display:grid;place-items:center;padding:30px}.login-box .form{width:min(410px,100%);padding:35px}.login-box h2{font-size:27px;margin:8px 0}.login-box .form>p:not(.eyebrow){font-size:11px;color:var(--muted);margin-bottom:25px}.login-box label{display:flex;flex-direction:column;gap:6px;font-size:10px;margin:13px 0}.login-box input{border:1px solid var(--line);border-radius:8px;padding:12px}.login-box .btn{width:100%;margin:8px 0 15px}.login-box .form>a{display:block;text-align:center;font-size:10px}.public{min-height:100vh}.public>header{height:74px;background:var(--green);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 6vw}.public>header .brand span{border:1px solid #ffffff50}.public>header a{color:#d1e1da;font-size:10px}.public-wrap{min-height:calc(100vh - 74px);display:grid;grid-template-columns:1fr 1fr}.public-copy{background:var(--green);color:white;padding:10vh 8vw}.public-copy>p:not(.eyebrow){color:#b8cec3;max-width:430px}.public-copy ul{list-style:none;padding:0;margin-top:45px;color:#c8dacf;font-size:11px;line-height:2.3}.booking-card{align-self:center;width:min(560px,88%);margin:45px auto;background:white;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 25px 60px #193b2f12}.booking-card h2{font:600 26px 'Playfair Display';margin:5px 0 22px}.booking-form{display:grid;gap:13px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-form .btn{width:100%;margin-top:6px}.result{min-height:100vh;background:var(--green);display:grid;place-items:center;text-align:center;padding:30px}.result>.brand{position:absolute;top:30px;left:40px;color:white}.result section{width:min(480px,94%);padding:40px}.success-icon{width:64px;height:64px;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center;font-size:28px;margin:auto}.result h1{font:600 32px 'Playfair Display'}.result p{font-size:11px;color:var(--muted);line-height:1.7}.result .btn{margin-top:20px}.install{min-height:100vh;background:var(--green);padding:40px 20px}.install-card{width:min(700px,100%);background:white;border-radius:16px;padding:35px;margin:auto}.install-card h1{font:600 32px 'Playfair Display'}.install-card h3{font:600 17px 'Playfair Display';border-top:1px solid var(--line);padding-top:20px}.install-card form{display:grid;gap:13px}.install-card .btn{margin-top:10px}.install-card code{background:var(--mint);padding:3px}
@media(max-width:950px){.shell{grid-template-columns:74px 1fr}.shell aside{padding:25px 9px}.shell aside .brand b,.shell aside nav a:not(.active),.aside-bottom{font-size:0}.shell aside nav a{text-align:center}.metrics{grid-template-columns:1fr 1fr}.grid.two{grid-template-columns:1fr}.public-wrap,.login-page{grid-template-columns:1fr}.public-copy,.login-art{min-height:430px}.login-art{gap:80px}}
@media(max-width:650px){.shell{display:block}.shell>aside{display:none;position:fixed;width:235px;z-index:10}.shell>aside.open{display:flex}.admin>header{padding:0 16px;justify-content:space-between}.admin>header>span,.menu{display:block}.menu{border:0;background:none;font-size:20px}.content{padding:22px 14px}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metrics article{padding:13px}.metrics b{font-size:18px}.form-grid{grid-template-columns:1fr;padding:16px}.full{grid-column:auto}.cards-list article{flex-wrap:wrap}.qr-box{flex-direction:column}.public-copy{padding:55px 25px}.public-copy h1,.login-art h1{font-size:43px}.booking-card{width:92%;padding:22px}.cols{grid-template-columns:1fr}.login-art{padding:35px 25px}.login-box{padding:20px}.list-row{grid-template-columns:70px 1fr}.list-row .badge{display:none}}
