:root{color-scheme:light;--ink:#153e40;--soft:#eaf0e9;--accent:#28564e}*{box-sizing:border-box}body{margin:0;background:#faf8f3;color:var(--ink);font:16px/1.5 system-ui,sans-serif}header{padding:20px 5%;display:flex;justify-content:space-between;background:white;border-bottom:1px solid #dde3dc}a{color:inherit}header>a:first-child{font:28px Georgia,serif;text-decoration:none}small{font:13px system-ui}main{max-width:1200px;margin:36px auto;padding:0 24px}h1,h2{font-family:Georgia,serif;font-weight:400}h1{font-size:44px;margin:10px 0}.eyebrow{font-size:12px;letter-spacing:2px}.card,details{background:white;border:1px solid #dce2d9;border-radius:12px;padding:22px;margin:18px 0}.row{display:flex;gap:14px;flex-wrap:wrap;align-items:end}label{display:grid;gap:6px;flex:1;min-width:160px}input,select,textarea,button{font:inherit;border:1px solid #b9c8be;border-radius:7px;padding:10px;background:white;color:inherit}textarea{width:100%;min-height:300px}button{cursor:pointer;min-height:44px}button.primary,#confirm{background:var(--accent);color:white}button:disabled{opacity:.5;cursor:default}.slots{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}#message:not(:empty),#review-error:not(:empty){padding:12px;background:#f5e8d6;border-radius:8px}.calendar-scroll{overflow:auto;max-height:650px}.calendar{display:grid;grid-template-columns:65px repeat(var(--days),minmax(125px,1fr));min-width:350px}.day{position:relative;height:1440px;border-left:1px solid #dce2d9;background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#e7ebe4 59px,#e7ebe4 60px)}.hour{height:60px;font-size:12px}.event{position:absolute;left:2px;right:2px;font-size:12px;text-align:left;overflow:hidden;background:#e2eee2;padding:3px;min-height:25px;border-color:#749480}.day-head{position:sticky;top:0;background:white;z-index:2;text-align:center;padding:10px}.closed{opacity:.55}dialog{max-width:520px;width:calc(100% - 30px);border:1px solid #a9bfb0;border-radius:12px;padding:28px}dialog::backdrop{background:#1235}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b98642;outline-offset:2px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.appointment{border-top:1px solid #ddd;padding:16px 0}@media(max-width:600px){main{padding:0 15px}h1{font-size:34px}header{gap:14px}header a{font-size:14px}.card{padding:16px}.row>*{width:100%}.row label{min-width:100%}}

.booking-trap{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.hours-row{padding:12px 0;border-bottom:1px solid #ddd}
