:root{font-family:'DM Sans',sans-serif;color:#173a32;background:#f4f6f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600}h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1}h2{font-size:1.45rem}p{line-height:1.55}.skip{position:absolute;left:-999px;top:0;background:white;padding:12px;z-index:100}.skip:focus{left:10px}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:#173a32;color:#f3f5ed;display:flex;flex-direction:column;padding:28px 18px;gap:38px}.brand,.book-brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:600}.brand-icon{display:inline-flex;align-items:center;justify-content:center;background:#e8eddf;color:#173a32;width:34px;height:34px;border-radius:9px;font:700 13px Georgia,serif}.sidebar nav{display:grid;gap:5px}.sidebar nav button{border:0;background:none;color:#e2eae4;border-radius:9px;padding:12px 13px;text-align:left;display:flex;gap:12px;align-items:center;font-size:.92rem}.sidebar nav button:hover,.sidebar nav button.active{background:#31594c;color:white}.sidebar nav button span:first-child{width:20px;font-size:1.1rem;text-align:center}.badge{margin-left:auto;background:#c77953;color:white;padding:2px 7px;border-radius:99px;font-size:.75rem}.sidebar-bottom{margin-top:auto;padding:18px 12px 0;border-top:1px solid #527064;font-size:.83rem;color:#d2dfd5}.sidebar-bottom p{font-weight:700;color:white;margin-bottom:10px}.sidebar-bottom a{text-decoration:none}main{min-width:0}.main-inner{max-width:1200px;margin:auto;padding:44px clamp(22px,4vw,56px) 72px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:700;color:#4b8a76}.page-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:28px}.page-head p{color:#63776d;margin:10px 0 0}.card,.hero,.empty,.toolbar,.day-card{background:#fff;border:1px solid #e0e6dc;border-radius:18px;box-shadow:0 10px 28px #173a3208}.hero{padding:30px 34px;margin-bottom:24px;background:linear-gradient(110deg,#fff 55%,#e8f1ea)}.hero h1{margin-bottom:8px}.hero p{color:#61766b;margin-bottom:0}.toolbar{display:flex;align-items:center;gap:12px;padding:11px 13px;margin-bottom:22px;flex-wrap:wrap}.toolbar strong{min-width:180px;text-align:center}.toolbar input{max-width:170px}.toolbar .spacer{flex:1}.button,button.primary,button.secondary,button.ghost{border:1px solid transparent;border-radius:9px;padding:10px 15px;font-weight:700;white-space:nowrap}.button,button.primary{background:#245e4b;color:white;text-decoration:none;display:inline-block}.button:hover,button.primary:hover{background:#194936}.button.secondary{background:#e9f1ea;color:#245e4b}.button.ghost{background:transparent;color:#245e4b;border-color:#d4e2d7}.small{padding:7px 11px!important;font-size:.82rem}.danger{color:#a44734!important}.grid{display:grid;gap:15px}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.day-card{padding:14px;min-height:200px}.day-card.today{border-color:#6dad8a}.day-card h3{font:700 .8rem 'DM Sans',sans-serif;color:#517765;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.day-card h3 strong{display:block;color:#173a32;font:600 1.45rem Fraunces,Georgia,serif;letter-spacing:0;margin-top:3px}.appointment{display:block;width:100%;text-align:left;border:1px solid #dce9df;background:#f0f6f0;border-radius:9px;padding:9px;margin-bottom:8px;color:#234b3c}.appointment small{display:block;color:#5f746a;margin-top:3px}.appointment.cancelled{opacity:.58;text-decoration:line-through}.empty{padding:38px;text-align:center;color:#5d7267}.empty h2{color:#173a32;margin-bottom:8px}.table-wrap{overflow:auto;background:white;border:1px solid #e0e6dc;border-radius:15px}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:15px 16px;border-bottom:1px solid #e8ece6;font-size:.9rem}th{color:#577568;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}tr:last-child td{border-bottom:0}.pill{display:inline-block;border-radius:99px;padding:5px 9px;background:#e8f1e9;color:#275a46;font-size:.75rem;font-weight:700}.pill.pending{background:#fff1d9;color:#825c22}.pill.cancelled,.pill.declined{background:#f4e7e3;color:#924a38}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions button{border:0;background:transparent;color:#245e4b;font-weight:700;padding:5px}.card{padding:25px;margin-bottom:18px}.card h2{margin-bottom:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:7px;font-weight:700;font-size:.84rem;color:#365c4d}.field input,.field select,.field textarea,input[type=date]{border:1px solid #cad8ce;border-radius:9px;background:white;color:#173a32;padding:11px 12px;min-width:0}.field textarea{min-height:80px;resize:vertical}.field.wide{grid-column:1/-1}.form-actions{display:flex;gap:10px;align-items:center;margin-top:22px;flex-wrap:wrap}.hint{color:#63776d;font-size:.84rem}.warning{background:#fff3e3;border:1px solid #e9cfa8;color:#71542b;border-radius:10px;padding:13px 15px;margin-bottom:18px}.success{background:#eaf6ed;border:1px solid #c1ddc8;color:#27553a;border-radius:10px;padding:13px 15px}.loading{padding:50px;text-align:center;color:#61766b}#notice{position:fixed;bottom:22px;right:22px;z-index:50;max-width:360px;background:#173a32;color:white;padding:13px 17px;border-radius:11px;box-shadow:0 10px 30px #102b2480;opacity:0;pointer-events:none;transition:opacity .2s}#notice.show{opacity:1}dialog{border:0;border-radius:17px;padding:0;width:min(520px,calc(100vw - 30px));box-shadow:0 25px 80px #0b251d70;color:#173a32}dialog::backdrop{background:#0d281fa8}dialog form{padding:26px}dialog h2{margin-bottom:18px}.slot-list{display:flex;gap:7px;flex-wrap:wrap}.slot-list label{display:inline-flex;gap:5px;align-items:center;border:1px solid #d5e2d7;padding:7px 10px;border-radius:8px;font-size:.8rem;background:white}.booking-body{background:#f4f6f1}.booking-wrap{max-width:700px;margin:0 auto;padding:30px 20px 90px}.book-brand{margin-bottom:50px}.booking-wrap .card{padding:34px}.booking-wrap h1{margin-bottom:8px}.booking-wrap .intro{color:#61766b;margin-bottom:28px}.booking-wrap .form-grid{margin-top:20px}.booking-wrap .success{padding:25px}.booking-wrap footer{font-size:.8rem;color:#607268;margin-top:30px}:focus-visible{outline:3px solid #d0794a;outline-offset:3px}@media(max-width:900px){.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-card{min-height:140px}}@media(max-width:700px){.shell{display:block}.sidebar{padding:14px 18px;gap:12px}.brand{font-size:1.15rem}.sidebar nav{display:flex;overflow-x:auto;gap:4px}.sidebar nav button{flex:0 0 auto;padding:9px 10px;font-size:.8rem}.sidebar-bottom{display:none}.main-inner{padding:22px 16px 70px}.page-head{align-items:start;flex-direction:column}.week-grid{grid-template-columns:1fr}.day-card{min-height:0}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.toolbar strong{min-width:0}.booking-wrap .card{padding:22px}}
.auth-card{max-width:480px;margin:7vh auto;padding:36px}.auth-card p{color:#61766b}.auth-card form{display:grid;gap:18px;margin-top:26px}.auth-card button{justify-self:start}.sidebar-logout{display:block;margin-top:16px;padding:0;border:0;background:none;color:#e2eae4;text-decoration:underline;font-size:.83rem}.sidebar-logout:hover{color:white}
.button.ghost{background:transparent;color:#245e4b;border:1px solid #d4e2d7;cursor:pointer}.button.ghost:hover{background:#e9f1ea}
