:root{--cream:#faf3e0;--burgundy:#8b1538;--green:#1b4d3e;--gold:#d4af37}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:#173d30;font:16px/1.6 system-ui,sans-serif}header{background:var(--green);color:white;padding:22px 5%;display:flex;justify-content:space-between;gap:20px}header a{font:26px Georgia,serif;color:var(--cream);text-decoration:none}header span{align-self:center;font-size:13px}main{max-width:1200px;margin:auto;padding:32px 24px}h1,h2{font-family:Georgia,serif}h1{font-size:clamp(30px,4vw,44px);color:var(--burgundy);margin:10px 0}h2{font-size:24px}.intro{max-width:760px;margin-bottom:30px}.layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{background:#fffcf5;border:1px solid #ded4b8;border-radius:18px;padding:26px;margin-bottom:24px;box-shadow:0 6px 20px #173d3008}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:700;color:var(--burgundy);margin:0 0 20px}label{display:block;font-size:14px;font-weight:600;margin:14px 0}input,select,textarea{width:100%;padding:12px;border:1px solid #b8b4a5;border-radius:8px;background:white;font:inherit;color:#173d30;display:block;margin-top:6px}button,.button{border:1px solid #b8b4a5;border-radius:9px;padding:11px 17px;min-height:44px;background:white;color:var(--green);font:inherit;cursor:pointer;text-decoration:none;display:inline-block}button:hover:not(:disabled),.button:hover{border-color:var(--burgundy);background:#f7e9e7}button:disabled{opacity:.4;cursor:default}.primary,.selected{background:var(--burgundy)!important;color:white!important;border-color:var(--burgundy)!important}.primary{width:100%;font-weight:700}.pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.small{font-size:13px;color:#59675e}.calendar,.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekdays{text-align:center;font-size:12px;margin:12px 0}.calendar button{padding:8px 0}.calendar button:disabled{border-color:transparent;background:#eeeae0}.month-nav{display:flex;align-items:center;justify-content:space-between}.month-nav h2{margin:0;font-size:21px}.alert{padding:16px;background:#ffe9df;border-left:4px solid var(--burgundy)}.success{border-top:4px solid var(--green)}.trap{position:absolute;left:-10000px}footer{text-align:center;padding:30px;font-size:13px}a{color:var(--burgundy)}details{margin:16px 0}summary{cursor:pointer;font-weight:700}.badge{border-radius:20px;background:#ede4cd;padding:4px 10px;font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions form{display:inline}.stat{display:flex;gap:20px;flex-wrap:wrap}.stat strong{font-size:24px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}table{border-collapse:collapse;width:100%;font-size:13px}td,th{padding:9px;text-align:left;border-bottom:1px solid #ddd}.scroll{overflow:auto}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:740px){.layout{grid-template-columns:1fr}main{padding:22px 14px}.card{padding:20px}header span{display:none}.pair{gap:10px}}
.desk-month,.desk-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.desk-weekdays{text-align:center;font-size:13px;margin-bottom:8px}.desk-day{min-height:145px;border:1px solid #ded4b8;border-radius:8px;padding:6px;background:white;min-width:0}.desk-date{display:block;text-decoration:none;font-weight:700;min-height:36px;padding:4px}.desk-event{display:block;border-radius:5px;margin:4px 0;padding:5px;text-decoration:none;font-size:12px;line-height:1.4;overflow-wrap:anywhere;border-left:3px solid}.desk-event span,.desk-event strong,.desk-event small{display:block}.event-pending,.legend-pending{background:#fff0c8;color:#614200;border-color:#b67b00}.event-confirmed,.legend-confirmed{background:#dceee3;color:#174e30;border-color:#24663e}.event-blocked,.legend-blocked{background:#e5e6eb;color:#383b48;border-color:#5e6370}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:13px}.calendar-legend span{padding:4px 9px;border-radius:5px}.calendar-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:20px}.calendar-toolbar form{display:flex;gap:10px;align-items:end}.calendar-toolbar label{margin:10px 0}.calendar-toolbar button{margin-bottom:10px}.is-today{border:2px solid var(--burgundy)}.is-selected{outline:2px solid var(--green)}.mobile-counts{display:none}.buffer-day{display:block;font-size:11px;color:#59675e}.organiser-mail{border:1px solid #ded4b8;border-radius:10px;padding:16px;margin:20px 0}.organiser-mail h3{margin:0}.organiser-mail p{overflow-wrap:anywhere}.desk-calendar .month-nav h2{text-align:center}
@media(max-width:650px){.desk-calendar.card{padding:12px}.desk-month{gap:3px}.desk-day{min-height:90px;padding:3px}.desk-event{display:none}.mobile-counts{display:flex;flex-wrap:wrap;gap:2px;font-size:10px}.mobile-counts span{padding:1px 3px;border-radius:3px}.desk-date{padding:4px;min-height:40px}.desk-calendar .month-nav h2{font-size:20px}.calendar-toolbar{gap:12px}.buffer-day{font-size:9px}.desk-weekdays{font-size:11px}}

.check-label{display:flex;align-items:center;gap:10px}.check-label input{width:auto;margin:0}.delete-booking{border-top:1px solid #ded4b8;padding-top:16px}.delete-booking summary{color:var(--burgundy)}

/* Public booking page: match the main website's Christmas night sky. */
body.booking-public{position:relative;min-height:100vh;background:radial-gradient(ellipse at 48% 10%,#17404c 0,transparent 47%),linear-gradient(165deg,#0a1128 0%,#1b2845 42%,#43506b 100%);font-family:Georgia,'Times New Roman',serif}
.booking-sky{position:absolute;top:0;left:0;width:100%;height:740px;pointer-events:none;overflow:hidden;background-image:radial-gradient(circle at 12% 24%,#faf3e0 0 1px,transparent 2px),radial-gradient(circle at 32% 56%,#dfcc92 0 1px,transparent 2px),radial-gradient(circle at 77% 31%,#fff9e0 0 1px,transparent 2px),radial-gradient(circle at 89% 76%,#fff9e0 0 1px,transparent 2px);background-size:270px 200px,380px 270px,340px 210px,420px 310px}
.booking-moon{position:absolute;top:130px;right:7%;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6dc,#ebdcb4);box-shadow:0 0 40px #fff0be55;opacity:.8}
.booking-public header.booking-site-header{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:25px 24px;background:none;align-items:center;border-bottom:1px solid #d4af3740;gap:24px}
.booking-public .booking-brand{font:34px/1.2 Georgia,serif;color:#faf3e0;text-shadow:0 0 20px #d4af3733;text-decoration:none}
.booking-public .booking-brand span{display:block;margin-top:7px;font:italic 14px/1.4 Georgia,serif;color:#ffe4b5}
.booking-public .back-to-site{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 20px;border:2px solid #d4af37;border-radius:999px;background:#8b1538;color:white;text-decoration:none;font:600 15px/1.4 Arial,sans-serif;white-space:nowrap;box-shadow:0 4px 18px #0003}
.booking-public .back-to-site span{display:inline;font:inherit}
.booking-public .back-to-site:hover{background:#6b0f2a}
.booking-public .public-booking-main{position:relative;z-index:1;padding-top:42px}
.booking-public h1{text-align:center;color:#faf3e0;font-size:clamp(32px,4.4vw,48px);text-shadow:0 0 25px #d4af3750;max-width:820px;margin:0 auto 16px}
.booking-public .intro{color:#fff4dc;text-align:center;max-width:760px;margin:0 auto 34px;font-size:17px;line-height:1.7}
.booking-public .card{background:#fffcf5;border:1px solid #d4af3799;border-radius:20px;box-shadow:0 12px 40px #030a192b;padding:28px}
.booking-public .eyebrow{font-family:Arial,sans-serif;line-height:1.5}
.booking-public input,.booking-public select,.booking-public textarea{font-family:Arial,sans-serif}
.booking-public .primary{border:2px solid #d4af37!important;border-radius:999px;padding:14px 20px;font-family:Arial,sans-serif}
.booking-public .primary-return{background:#8b1538;color:white;border:2px solid #d4af37}
.booking-public footer{position:relative;color:#faf3e0;font:14px/2 Arial,sans-serif}
.booking-public footer a{color:#ffe4b5}
.booking-public .success{max-width:820px;margin:18px auto}
@media(max-width:740px){.booking-public header.booking-site-header{padding:20px 16px;flex-direction:column;align-items:center;text-align:center;gap:18px}.booking-public .booking-brand{font-size:32px}.booking-public .booking-brand span{display:block}.booking-public .back-to-site{font-size:14px;min-height:46px}.booking-public .public-booking-main{padding-top:28px}.booking-public .intro{font-size:16px;margin-bottom:24px}.booking-public .card{padding:20px}.booking-moon{width:62px;height:62px;top:180px;right:-18px;opacity:.3}}
