/* Compact booking preference picker; it never confirms a reservation. */
.booking-dialog{width:900px;padding:26px 30px}
.booking-dialog h2{font-size:42px;line-height:1.1;margin:12px 0 8px}
.booking-dialog h2 br{display:none}
.booking-dialog h2 em::before{content:' '}
.booking-dialog .booking-notice{max-width:700px;margin:0 35px 14px 0;font-size:11px;line-height:1.6}
.booking-dialog .booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.booking-dialog .booking-fields label{margin:0 0 12px}
.booking-dialog .booking-fields :is(input,textarea){margin-top:6px;min-height:42px;height:42px;padding:10px 12px}
.booking-dialog .message-preview{margin:0 0 12px}
.booking-dialog .message-preview summary{padding:11px 12px}
.booking-dialog .form-status:empty{display:none}
.booking-calendar{margin:0 0 16px;padding:14px 0;border-block:1px solid var(--line,#ffffff23);min-width:0}
.booking-calendar [hidden]{display:none!important}
.booking-calendar-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.booking-calendar-heading>span{font-size:12px;font-weight:600}
.booking-calendar-heading small{font-size:10px;color:var(--muted,#a8a99d)}
.booking-calendar-modes{display:flex;gap:8px}
.booking-calendar-modes button{padding:9px 13px;min-height:38px;background:var(--panel,#1c1d19);border:1px solid var(--line,#ffffff23);color:var(--text,#eeeae0);font-size:11px;line-height:1.4;text-align:center}
.booking-calendar-modes button.is-active,.booking-calendar-modes button[aria-pressed=true]{border-color:var(--accent,#ff6839);background:#ff68390c}
.booking-calendar-modes button:hover{border-color:var(--accent,#ff6839)}
.booking-calendar-duration{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-top:10px;font-size:11px}
.booking-calendar-duration strong{font-weight:600;color:var(--accent,#ff6839)}
.booking-calendar-duration>span{font-size:10px;color:var(--muted,#a8a99d)}
.booking-calendar-panel{display:grid;grid-template-columns:minmax(230px,.85fr) minmax(0,1.15fr);gap:20px;margin-top:12px;padding:14px;border:1px solid var(--line,#ffffff23);background:var(--panel,#1c1d19);min-width:0}
.booking-calendar-date,.booking-calendar-time{min-width:0}
.booking-calendar-month-nav{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:8px;margin-bottom:6px}
.booking-calendar-month-nav strong{text-align:center;font-size:12px;font-weight:600;line-height:1.5;text-transform:capitalize}
.booking-calendar-month-nav button{width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--line,#ffffff23);color:var(--text,#eeeae0);font-size:23px;line-height:1}
.booking-calendar-month-nav button:hover:not(:disabled){border-color:var(--accent,#ff6839);color:var(--accent,#ff6839)}
.booking-calendar button:disabled{opacity:.35;cursor:default}
.booking-calendar-grid{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:3px;font-size:11px}
.booking-calendar-grid th{padding:0 0 3px;text-align:center;font-size:10px;font-weight:400;color:var(--muted,#a8a99d)}
.booking-calendar-grid td{padding:0;text-align:center}
.booking-calendar-grid button{display:block;width:100%;height:30px;padding:4px 0;border:1px solid transparent;background:transparent;font-size:11px;line-height:1.3;color:var(--text,#eeeae0)}
.booking-calendar-grid button[aria-current=date]{border-color:#ff683945}
.booking-calendar-grid button[aria-pressed=true]{background:var(--accent,#ff6839);color:var(--black,#141512);border-color:var(--accent,#ff6839)}
.booking-calendar-grid button:hover:not(:disabled):not([aria-pressed=true]){background:#ffffff08;border-color:var(--line,#ffffff23)}
.booking-calendar-time{border-left:1px solid var(--line,#ffffff23);padding-left:20px}
.booking-calendar-feedback{font-size:11px;line-height:1.8;color:var(--muted,#a8a99d);padding:12px 0}
.booking-calendar-feedback p{margin:0 0 10px}
.booking-calendar-feedback button{min-height:38px;padding:8px 12px;background:transparent;border:1px solid var(--accent,#ff6839);font-size:11px;color:var(--text,#eeeae0)}
.booking-calendar-time-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:7px 0 12px;font-size:11px;line-height:1.5}
.booking-calendar-time-heading small{font-size:9px;color:var(--muted,#a8a99d);white-space:nowrap}
.booking-calendar-periods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:10px}
.booking-calendar-periods button{padding:5px 2px;min-height:39px;background:transparent;border-bottom:1px solid var(--line,#ffffff23);color:var(--muted,#a8a99d);font-size:10px}
.booking-calendar-periods small{display:block;font-size:8px;margin-top:2px;font-variant-numeric:tabular-nums}
.booking-calendar-periods button[aria-pressed=true]{border-color:var(--accent,#ff6839);color:var(--accent,#ff6839);background:#ff683908}
.booking-calendar-periods button:hover{color:var(--text,#eeeae0)}
.booking-calendar-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.booking-calendar-slot{min-width:0;height:38px;padding:3px 2px;background:var(--bg,#141512);border:1px solid var(--line,#ffffff23);text-align:center;color:var(--text,#eeeae0)}
.booking-calendar-slot>span{display:block;font-size:12px;line-height:1.3;font-variant-numeric:tabular-nums}
.booking-calendar-slot small{display:block;font-size:8px;line-height:1.3;color:var(--muted,#a8a99d)}
.booking-calendar-slot.is-free:hover{border-color:var(--accent,#ff6839);background:#ff683911}
.booking-calendar-slot[aria-pressed=true]{background:var(--accent,#ff6839);color:var(--black,#141512);border-color:var(--accent,#ff6839)}
.booking-calendar .booking-calendar-slot.is-busy{opacity:.65}
.booking-calendar-slot.is-busy>span{text-decoration:line-through;text-decoration-color:#92958c70}
.booking-calendar-hint,.booking-calendar-updated{margin:9px 0 0;font-size:9px;line-height:1.6;color:var(--muted,#a8a99d)}
.booking-calendar-hint{padding-left:8px;border-left:1px solid var(--accent,#ff6839)}
.booking-calendar-panel>.booking-calendar-hint{grid-column:1/-1;margin:0}
.booking-calendar-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:7px 10px;border-left:2px solid var(--accent,#ff6839);background:#ff683909;color:var(--text,#eeeae0);font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.booking-calendar-selection button{flex-shrink:0;min-height:30px;padding:4px 0;background:none;color:var(--accent,#ff6839);font-size:10px;text-decoration:underline;text-underline-offset:3px}
.booking-calendar-notice{margin:9px 0 0;font-size:10px;line-height:1.6;color:var(--muted,#a8a99d)}
.booking-calendar button:focus-visible{outline:2px solid var(--accent,#ff6839);outline-offset:2px}
@media(max-width:640px){
  .booking-dialog{padding:20px 16px;max-width:calc(100vw - 16px);max-height:calc(100svh - 16px)}
  .booking-dialog h2{font-size:34px;margin:10px 0 7px}
  .booking-dialog .booking-notice{font-size:10px;margin-right:0;margin-bottom:10px}
  .booking-dialog .booking-fields{grid-template-columns:1fr;gap:0}
  .booking-calendar{padding:10px 0;margin-bottom:12px}
  .booking-calendar-heading{gap:4px;margin-bottom:8px}
  .booking-calendar-heading small{font-size:9px}
  .booking-calendar-modes{display:grid;grid-template-columns:.85fr 1.15fr;gap:6px}
  .booking-calendar-modes button{padding:8px 5px;font-size:10px}
  .booking-calendar-panel{grid-template-columns:1fr;gap:10px;padding:10px;margin-top:10px}
  .booking-calendar-grid{border-spacing:2px}
  .booking-calendar-grid button{height:28px}
  .booking-calendar-time{border-left:0;border-top:1px solid var(--line,#ffffff23);padding:0}
  .booking-calendar-time-heading{margin:10px 0 6px;font-size:10px}
  .booking-calendar-periods{margin-bottom:8px}
  .booking-calendar-periods button{min-height:34px;padding:3px 2px}
  .booking-calendar-slots{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
  .booking-calendar-slot{height:36px}
  .booking-calendar-slot>span{font-size:11px}
  .booking-calendar-slot small{font-size:7px}
  .booking-calendar-selection{font-size:10px}
  .booking-calendar-notice{font-size:9px}
}
@media(max-width:350px){.booking-calendar-slots{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px) and (max-height:740px){
  .booking-dialog{padding-top:14px}
  .booking-dialog>.eyebrow{display:none}
  .booking-dialog h2{font-size:30px;margin-top:0}
  .booking-dialog .booking-notice{margin-right:20px;font-size:9px}
  .booking-calendar-panel{gap:8px;padding:8px}
  .booking-calendar-grid{border-spacing:1px}
  .booking-calendar-grid button{height:24px}
  .booking-calendar-month-nav{margin-bottom:4px}
  .booking-calendar-month-nav button{height:28px;width:28px}
}
