:root{color-scheme:light;--ink:#24231f;--muted:#67665f;--cream:#f5f0e5;--paper:#fffdfa;--gold:#a88349;--line:#dfd8ca;--dark:#101d2d;--red:#9b302c;--good:#e9f3e7}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.5}
a{color:var(--dark)}.site-head{background:var(--dark);color:#fff;padding:22px max(5%,calc((100% - 1100px)/2));display:flex;gap:20px;justify-content:space-between;align-items:center}.overline,.eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--gold)}.site-head .overline{color:#cbb792}.brand{font-family:Georgia,serif;font-size:28px;letter-spacing:2px;color:#fff;text-decoration:none}.underbrand{color:#dfdbcf;font-size:12px}.back{font-size:13px;color:#fff}.shell{max-width:1140px;padding:26px 20px 70px;margin:auto}.small-shell{max-width:700px}.card{background:var(--paper);padding:30px;border:1px solid var(--line);border-radius:14px;margin:0 0 22px;box-shadow:0 8px 25px #4f4b3c0c}.public-card{padding:36px}h1,h2,h3{font-family:Georgia,serif;font-weight:500;line-height:1.2;margin:5px 0 20px}h1{font-size:37px}h2{font-size:28px}h3{font-size:20px}.lead{font-size:16px;color:var(--muted);margin:-6px 0 25px}.stack{display:flex;flex-direction:column;gap:20px}.fields-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.fields-two.tight{align-items:end;margin-bottom:20px}label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:13px}.field-label{font-size:13px;font-weight:650;margin-bottom:9px}input,select,textarea{font:inherit;background:#fff;color:var(--ink);border:1px solid #b9b5aa;border-radius:7px;padding:11px 12px;width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.time-btn,button{font:inherit;cursor:pointer;border-radius:7px}.time-btn{background:#fff;border:1px solid #bdb6a7;padding:12px 5px}.time-btn.selected{background:var(--dark);border-color:var(--dark);color:#fff}.time-btn:hover{border-color:var(--gold)}button{padding:11px 17px;font-weight:650;border:1px solid var(--dark)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--dark);color:white;padding:14px}.secondary{background:transparent;color:var(--dark)}.danger{color:var(--red);background:white;border-color:#bd9e9a;padding:5px 8px;font-size:12px}.tiny{padding:5px 9px;font-size:12px}.check{flex-direction:row;align-items:flex-start;font-weight:400;font-size:13px;gap:10px}.check input{width:17px;height:17px;flex:none;margin:2px 0}.muted{color:var(--muted);font-size:13px}.fine{font-size:12px}.notice{padding:14px;border-radius:8px;background:#f2e7cf;border:1px solid #e2d1aa;margin:15px 0}.notice.enabled{background:var(--good);border-color:#bdd7b7}.feedback{font-size:13px;color:var(--red);font-weight:600;margin:0;min-height:18px}.divider{height:1px;background:var(--line);margin:2px 0}.turnstile{min-height:60px}.hidden{display:none!important}.success{background:var(--good);padding:25px;border-radius:10px}.page-footer{text-align:center;color:var(--muted);font-size:12px}.flex-title{display:flex;align-items:start;justify-content:space-between;gap:20px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.columns>.card{min-width:0}.stat{display:flex;align-items:baseline;gap:14px;background:var(--cream);padding:10px 15px;border-radius:8px}.stat strong{font-size:28px}.table-scroller{overflow:auto;width:100%}table{border-collapse:collapse;width:100%;font-size:13px;min-width:850px}td,th{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:11px;text-transform:uppercase;color:var(--muted)}tr.cancelled{opacity:.45;text-decoration:line-through}.table-list{margin-top:16px}.table-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);gap:10px}.hours-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hour-card{border:1px solid var(--line);padding:14px;border-radius:9px;background:#fff}.hour-card strong{display:block;margin-bottom:11px}.hour-fields{display:grid;grid-template-columns:1fr 1fr 100px;gap:6px}.hour-fields input,.hour-fields select{padding:7px;font-size:12px}.hour-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}@media(max-width:760px){.columns,.hours-grid{grid-template-columns:1fr}.site-head{padding:18px}.brand{font-size:24px}.shell{padding:16px 12px 50px}.card,.public-card{padding:22px}.time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}h1{font-size:31px}}@media(max-width:450px){.fields-two{grid-template-columns:1fr}.site-head{align-items:start}.back{font-size:11px}.flex-title{flex-direction:column}.hour-fields{grid-template-columns:1fr 1fr 80px}}

.uk-date-hint{color:var(--muted);font-weight:400;font-size:11px}

.privacy-panel{background:#f6f2e9;border:1px solid #ded6c6;border-radius:9px;padding:16px;font-size:13px}.privacy-panel p{margin:6px 0 0}.legal-page h2{font-size:21px;margin:24px 0 9px}.legal-page p{margin:0 0 12px}.legal-page .notice{font-size:13px}


/* British date selector: self-contained, Monday-first, works offline. */
.calendar-anchor{position:relative;z-index:25;min-width:0;display:flex;align-items:stretch}
.calendar-anchor>input{min-width:0;flex:1;border-radius:7px 0 0 7px;cursor:pointer;background:#fff}
.calendar-trigger{display:grid;place-items:center;flex:none;min-width:44px;padding:9px 10px;border:1px solid #bdb9b0;border-left:0;border-radius:0 7px 7px 0;background:#f7f4ed;color:#27352f;font-size:19px;line-height:1;cursor:pointer}
.calendar-chosen{color:#5d665b;font-size:12px;font-weight:600;min-height:18px;margin-top:3px}
.calendar-popup{position:absolute;left:0;top:calc(100% + 6px);z-index:3000;width:min(328px,calc(100vw - 38px));max-width:calc(100vw - 38px);padding:13px;background:#fffefa;border:1px solid #cfc5b3;box-shadow:0 14px 32px #2c2e2240;border-radius:12px;color:#292923;font-size:14px}
.calendar-popup[hidden]{display:none}
.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-bottom:12px}
.calendar-month{font-weight:750;font-size:16px;text-align:center;min-width:0}
.calendar-nav{height:35px;width:35px;flex:none;background:#f6f2e9;border:1px solid #d4cbbc;border-radius:7px;color:#27352f;font-size:21px;line-height:1;cursor:pointer}
.calendar-nav:disabled,.calendar-day:disabled{opacity:.28;cursor:not-allowed}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.calendar-weekday{text-align:center;color:#6a655b;font-size:11px;font-weight:750;padding:5px 1px}
.calendar-day{min-width:0;aspect-ratio:1;border:1px solid transparent;background:transparent;color:#252d26;border-radius:8px;font-size:13px;cursor:pointer;padding:0}
.calendar-day:hover:not(:disabled),.calendar-day:focus-visible{background:#ece7dc;border-color:#b8aa91}
.calendar-day.selected{background:#27352f;color:#fff;font-weight:750}
.calendar-day.today:not(.selected){border-color:#997748;font-weight:750}
.calendar-empty{aspect-ratio:1}
.calendar-footer{text-align:center;font-size:12px;color:#6a655b;margin-top:10px;padding-top:10px;border-top:1px solid #e9e2d6}
@media(max-width:380px){.calendar-popup{padding:9px}.calendar-grid{gap:1px}}


.date-label{display:flex;flex-direction:column;gap:6px;min-width:0;font-weight:650;font-size:13px}

.uk-day-banner{font-size:17px;font-weight:700;border:1px solid #c9d9c9;background:#edf2e9;border-radius:9px;padding:11px 13px;margin:11px 0 16px} #manualCapacityStatus{background:#f6f2e7;border:1px solid #e5dcc6;padding:10px;border-radius:8px}

.pin-card{max-width:480px;margin:24px auto}.pin-card input{font-size:20px;letter-spacing:.25em}.pin-card .primary{width:100%}.staging-banner{color:#101d2d;font-weight:700}

/* V25: customer-first brand finish. Same navy, ivory and gold as the Horns website. */
:root{--ink:#242526;--muted:#6b665e;--cream:#f5f0e5;--paper:#fffaf2;--gold:#a88349;--line:#e4dccf;--dark:#101d2d}
body{font-family:Arial,Helvetica,sans-serif}
.site-head{background:#101d2d;border-bottom:1px solid rgba(210,183,123,.3);padding-top:19px;padding-bottom:19px}
.brand-lockup{display:flex;gap:13px;align-items:center}.horn-mark{color:#d2b77b;display:flex;align-items:center}.site-head .overline{color:#d2b77b;font-size:9px;letter-spacing:2.3px}
.site-head .brand{display:block;color:#d2b77b;font:normal 29px/1 Georgia,serif;letter-spacing:.09em;margin:4px 0}
.site-head .underbrand{color:#d0c3aa;font-size:11px}.site-head .back{color:#eee6d8;text-decoration:none;border-bottom:1px solid rgba(210,183,123,.55);padding-bottom:3px}
.site-head .back:hover{color:#d2b77b}.reservation-heading{padding:10px 4px 21px}.reservation-heading h1{font-size:42px;margin:6px 0 12px}
.reservation-heading .lead{max-width:570px;line-height:1.65;margin:0}.test-badge{display:inline-block;border:1px solid #aa8950;color:#6b512c;background:#f7edd9;border-radius:4px;padding:5px 9px;font-size:11px;font-weight:700;letter-spacing:.02em;margin-top:15px}
.public-card{padding:32px 35px}.section-label{font:normal 19px/1.3 Georgia,serif;color:#101d2d;margin-bottom:-6px}
.eyebrow{color:#a88349}.primary,.time-btn.selected{background:#101d2d;color:#fffaf2;border-color:#101d2d}
.primary:hover:not(:disabled){background:#19283b}.secondary:hover:not(:disabled){background:#f2eadb}.time-btn{background:#fffdf9}
.privacy-panel{background:#faf6ed;border-color:#e3d8c4}.book-button{font-size:16px;padding:16px}
.allocation-preview{background:#edf1f6;border-left:3px solid #284a68;padding:12px 14px;color:#142a3f;border-radius:4px;font-weight:700}
.dietary-reminder{margin-top:-14px}.page-footer{margin-top:25px}.card{box-shadow:0 10px 25px rgba(16,29,45,.05)}
.service-board-shell{overflow:auto;border:1px solid #d7d4ce;border-radius:10px;max-height:500px;background:#fff}.service-board{display:grid;min-width:1100px;position:relative}.service-tick{background:#19283b;color:#fffaf2;font-size:11px;padding:10px 4px;text-align:center;border-right:1px solid #405066;position:sticky;top:0;z-index:2}
.service-table-label{position:sticky;left:0;z-index:1;background:#edf1f5;color:#101d2d;font-size:13px;font-weight:700;border-bottom:1px solid #d5dbe0;padding:12px}
.service-slot{min-height:54px;border-bottom:1px solid #e2e6e8;border-right:1px solid #eef0f2;background:#fff}.service-booking{display:flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap;position:relative;z-index:1;margin:5px 2px;background:#284a68;color:#fff;padding:6px 8px;border-radius:5px;font-size:12px;min-height:39px;font-weight:600;box-shadow:0 2px 6px #0001}.service-booking strong{color:#fff}
.settings-disclosure>summary{cursor:pointer;font-weight:700;color:#101d2d;padding:12px 0}.settings-disclosure[open]>summary{border-bottom:1px solid #e3d8c4;margin-bottom:20px}
@media(max-width:760px){.site-head .brand{font-size:23px}.horn-mark svg{width:31px;height:30px}.reservation-heading h1{font-size:33px}.public-card{padding:23px 19px}.reservation-heading{padding:4px 1px 20px}}

/* V28 management code prompt for legacy technical-settings screen. */
.v28-settings-shade{position:fixed;inset:0;background:#172638aa;z-index:9999;display:flex;align-items:center;justify-content:center;padding:15px}
.v28-settings-modal{width:min(420px,100%);box-sizing:border-box;border-radius:12px;padding:22px;box-shadow:0 15px 55px #152a4066;background:#fff;display:grid;gap:15px}
.v28-settings-modal label{display:grid;gap:8px}.v28-settings-modal input,.v28-settings-modal select{width:100%;box-sizing:border-box;min-height:48px;padding:10px;font-size:16px}
.v28-settings-buttons{display:flex;gap:10px;justify-content:flex-end}.v28-settings-buttons button{min-height:48px}
