/* Scoped reservation workspace, booking form and accessible time selection. */
.tl-admin[data-workspace=reservations] .tl-admin-header .tl-live-status{flex:1 0 100%;white-space:normal;overflow-wrap:anywhere;text-align:start}
.tl-app .tl-reservations .tl-empty p{margin-inline:auto}
.tl-app .tl-reservations{color:var(--ink,#223c2b);line-height:1.5;min-width:0}
.tl-app .tl-reservations h1,.tl-app .tl-reservations h2,.tl-app .tl-reservations h3{line-height:1.2;letter-spacing:-.02em}
.tl-app .tl-reservations h3{font-size:18px;margin:0 0 14px}
.tl-app .tl-reservations p{margin:0 0 14px;overflow-wrap:anywhere}
.tl-app .tl-reservations .tl-caption{font-size:var(--tl-text-small);color:var(--muted,#58655c);line-height:1.55}
.tl-app .tl-reservations .tl-eyebrow{font-size:var(--tl-text-small);letter-spacing:.1em;font-weight:700;text-transform:uppercase;margin-bottom:9px}
.tl-app .tl-reservations :is(input,select,textarea){max-width:100%;min-width:0}
.tl-app .tl-reservations .tl-field{min-width:0}
.tl-app .tl-reservations .tl-field>span{font-size:var(--tl-text-small);font-weight:650}
.tl-app .tl-reservations .tl-button{min-height:42px}
.tl-reservation-page{min-height:55vh;background:var(--wash,var(--tl-color-canvas));padding:36px 20px}
.tl-app .tl-reservation-public{max-width:1000px;margin:0 auto;padding:clamp(20px,4vw,48px) clamp(12px,3vw,28px)}
.tl-app .tl-reservation-public-header{margin-bottom:30px;max-width:740px}
.tl-app .tl-reservation-public-header>.tl-link:first-child{display:inline-flex;margin-bottom:28px}
.tl-app .tl-reservation-public-header h1{font-size:clamp(30px,4vw,46px);margin:0 0 14px}
.tl-app .tl-reservation-public-header>p:not(.tl-eyebrow){font-size:16px;color:var(--muted,#58655c);max-width:650px}
.tl-app .tl-reservation-card{background:var(--paper,#fff);border:1px solid var(--line,#dce3d9);border-radius:16px;padding:clamp(20px,3vw,30px);margin-bottom:18px;box-shadow:0 3px 16px #223c2b04}
.tl-app .tl-reservation-booking{display:grid;gap:2px}
.tl-app .tl-reservation-booking h3{font-size:24px;margin-bottom:22px}
.tl-app .tl-reservation-search{display:grid;grid-template-columns:minmax(155px,1fr) minmax(100px,.7fr) auto;gap:14px;align-items:end;margin-bottom:20px}
.tl-app .tl-reservation-search>.tl-button{margin-bottom:2px}
.tl-app .tl-reservation-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.tl-app .tl-reservation-contact-grid>.tl-field:first-child{grid-column:1/-1}
.tl-app .tl-reservation-booking textarea{min-height:96px}
.tl-app .tl-reservation-times{padding:0;margin:12px 0;border:0;min-width:0}
.tl-app .tl-reservation-times legend{font-size:14px;font-weight:650;margin-bottom:12px}
.tl-app .tl-reservation-times>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}
.tl-app .tl-reservation-time{position:relative;margin:0;cursor:pointer}
.tl-app .tl-reservation-time input[type=radio]{position:absolute;width:100%;height:100%;inset:0;opacity:0;margin:0;min-width:0;cursor:pointer}
.tl-app .tl-reservation-time span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 8px;border:1px solid var(--line,#dce3d9);border-radius:9px;background:var(--paper,#fff);font-size:14px;font-weight:650;white-space:nowrap}
.tl-app .tl-reservation-time:hover span{border-color:var(--accent,#275b36);background:var(--wash,var(--tl-color-canvas))}
.tl-app .tl-reservation-time input:checked+span{background:var(--accent,#275b36);border-color:var(--accent,#275b36);color:#fff}
.tl-app .tl-reservation-time input:focus-visible+span{outline:3px solid var(--tl-color-focus,#92752d);outline-offset:3px}
.tl-app .tl-reservation-consent{display:flex;align-items:flex-start;gap:11px;margin:22px 0;font-size:14px}
.tl-app .tl-reservation-consent input{flex:0 0 18px;margin-top:2px}
.tl-app .tl-reservation-consent a{text-decoration:underline;text-underline-offset:3px}
.tl-app .tl-reservation-booking [type=submit]{margin:6px 0 12px;min-width:190px}
.tl-app .tl-reservation-no-times{padding:18px;border:1px dashed var(--line,#dce3d9);border-radius:10px}
.tl-app .tl-reservation-no-times .tl-link{margin-inline-start:16px}
.tl-app .tl-reservation-recovery{padding:24px;background:#fff8e7;border:1px solid #e3cea0;border-radius:12px;margin:18px 0}
.tl-app .tl-reservation-recovery .tl-caption{margin-top:14px;margin-bottom:0}
.tl-app .tl-reservation-status{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:20px;background:#edf0ec;color:#46524a;font-size:var(--tl-text-small);font-weight:700;white-space:nowrap}
.tl-app .tl-reservation-status--pending{background:#fff0c7;color:#694c0b}
.tl-app .tl-reservation-status--confirmed{background:#e4f2e6;color:#245b32}
.tl-app .tl-reservation-status--seated{background:#e8ecfc;color:#394f8d}
.tl-app .tl-reservation-status--cancelled,.tl-app .tl-reservation-status--no_show{background:#f8e8e3;color:#863e2b}
.tl-app .tl-reservation-result h2{font-size:28px;margin:18px 0 12px}
.tl-app .tl-reservation-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;padding:22px 0;margin:12px 0 20px;border-block:1px solid var(--line,#dce3d9)}
.tl-app .tl-reservation-summary>div{min-width:0}
.tl-app .tl-reservation-summary dt{font-size:var(--tl-text-small);color:var(--muted,#58655c);margin-bottom:5px}
.tl-app .tl-reservation-summary dd{margin:0;font-size:15px;font-weight:650;overflow-wrap:anywhere}
.tl-app .tl-reservation-deadline{background:#fff7e3;border-left:3px solid #c49226;padding:14px 16px;border-radius:0 8px 8px 0;font-size:14px}
.tl-app .tl-reservation-private,.tl-app .tl-reservation-history{margin-top:24px;border-top:1px solid var(--line,#dce3d9);padding-top:18px}
.tl-app .tl-reservation-private summary,.tl-app .tl-reservation-history summary{cursor:pointer;font-size:14px;font-weight:650;margin-bottom:14px}
.tl-app .tl-reservation-private input{font-size:var(--tl-text-small)}
.tl-app .tl-reservation-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px}
.tl-app .tl-reservation-stats article{background:var(--paper,#fff);border:1px solid var(--line,#dce3d9);border-radius:12px;padding:18px 20px;display:grid;gap:9px}
.tl-app .tl-reservation-stats span{font-size:var(--tl-text-small);color:var(--muted,#58655c)}
.tl-app .tl-reservation-stats strong{font-size:28px;line-height:1;font-weight:650}
.tl-app .tl-reservation-filters{display:grid;grid-template-columns:minmax(125px,1fr) minmax(125px,1fr) minmax(165px,1.2fr) minmax(160px,1.4fr) auto;align-items:end;gap:12px;margin:24px 0 12px}
.tl-app .tl-reservation-filters .tl-field{margin-bottom:0}
.tl-app .tl-reservation-filters .tl-button{margin-bottom:1px}
.tl-app .tl-reservation-table-wrap{position:relative;max-width:100%;border:1px solid var(--line,#dce3d9);border-radius:12px;overflow:auto;background:var(--paper,#fff)}
.tl-app .tl-reservation-table{width:100%;border-collapse:collapse;min-width:720px;font-size:14px}
.tl-app .tl-reservation-table th{font-size:var(--tl-text-small);text-transform:uppercase;letter-spacing:.05em;text-align:left;color:var(--muted,#58655c);background:var(--wash,var(--tl-color-canvas));padding:14px 18px;font-weight:650}
.tl-app .tl-reservation-table td{padding:18px;vertical-align:middle;border-top:1px solid var(--line,#dce3d9)}
.tl-app .tl-reservation-table td:last-child{text-align:right}
.tl-app .tl-reservation-table strong{font-size:var(--tl-text-small);font-weight:650}
.tl-app .tl-reservation-table small{display:block;font-size:var(--tl-text-small);color:var(--muted,#58655c);margin-top:5px;overflow-wrap:anywhere}
.tl-app .tl-reservation-table tr:hover{background:#f7f9f4}
/* Keep the detail title and status clear of the shared dialog close button. */
.tl-app.tl-dialog .tl-dialog-content>.tl-reservations>.tl-section-title:first-child{padding-inline-end:44px}
.tl-app .tl-reservation-detail-section{padding:20px 0;border-bottom:1px solid var(--line,#dce3d9)}
.tl-app .tl-reservation-detail-section h3{margin-bottom:12px}
.tl-app .tl-reservation-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}
.tl-app .tl-reservation-actions{padding:18px 0;flex-wrap:wrap}
.tl-app .tl-reservation-history ol{padding-left:20px;max-height:300px;overflow:auto}
.tl-app .tl-reservation-history li{padding:8px 0 14px;font-size:var(--tl-text-small)}
.tl-app .tl-reservation-history time{display:block;font-size:var(--tl-text-small);color:var(--muted,#58655c);margin:3px 0}
.tl-app .tl-reservation-history p{margin:5px 0}
.tl-app .tl-reservation-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tl-app .tl-reservation-rules .tl-field{display:flex;flex-direction:column;justify-content:space-between;gap:6px}
.tl-app .tl-reservation-week{display:grid;gap:0}
.tl-app .tl-reservation-day{display:grid;grid-template-columns:130px 1fr;gap:14px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line,#dce3d9)}
.tl-app .tl-reservation-day:last-child{border:0}
.tl-app .tl-reservation-day-label{display:flex;align-items:center;gap:10px;min-height:42px;margin:0;font-size:var(--tl-text-small)}
.tl-app .tl-reservation-day-windows{display:grid;gap:10px}
.tl-app .tl-reservation-window{display:grid;grid-template-columns:minmax(95px,1fr) auto minmax(95px,1fr) auto;gap:9px;align-items:center}
.tl-app .tl-reservation-window input{padding:9px 10px;min-width:0;width:100%;min-height:42px}
.tl-app .tl-reservation-window>span{font-size:var(--tl-text-small);color:var(--muted,#58655c)}
.tl-app .tl-reservation-window .tl-button{padding:8px 10px;font-size:var(--tl-text-small)}
.tl-app .tl-reservation-day-windows>[data-window-add]{justify-self:start;padding:7px 12px;min-height:34px;font-size:var(--tl-text-small)}
.tl-app .tl-reservation-seating{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tl-app .tl-reservation-seating>label{display:grid;grid-template-columns:minmax(80px,1fr) 66px auto;align-items:center;gap:10px;padding:14px;border:1px solid var(--line,#dce3d9);border-radius:10px}
.tl-app .tl-reservation-seating strong{display:block;font-size:var(--tl-text-small)}
.tl-app .tl-reservation-seating small{display:block;font-size:var(--tl-text-small);color:var(--muted,#58655c)}
.tl-app .tl-reservation-seating input{width:66px;min-width:0;padding:9px 6px;text-align:center}
.tl-app .tl-reservation-seating>label>span:last-child{font-size:var(--tl-text-small);color:var(--muted,#58655c)}
.tl-app .tl-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.tl-app .tl-reservation-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.tl-app .tl-reservation-filters>[type=submit]{justify-self:start}.tl-app .tl-reservation-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
 .tl-app .tl-reservation-public{padding:22px 12px}.tl-reservation-page{padding:12px 0}
 .tl-app .tl-reservation-search{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}.tl-app .tl-reservation-search>.tl-button{grid-column:1/-1;justify-self:start}
 .tl-app .tl-reservation-contact-grid,.tl-app .tl-reservation-seating{grid-template-columns:1fr}.tl-app .tl-reservation-summary{gap:18px 12px}
 .tl-app .tl-reservation-booking h3{font-size:21px}.tl-app .tl-reservation-booking [type=submit]{width:100%}
 .tl-app .tl-reservation-stats{gap:10px}.tl-app .tl-reservation-stats article{padding:14px}.tl-app .tl-reservation-stats strong{font-size:25px}
 .tl-app .tl-reservation-rules{grid-template-columns:repeat(2,minmax(0,1fr))}.tl-app .tl-reservation-day{grid-template-columns:1fr;gap:6px}
 .tl-app .tl-reservation-window{grid-template-columns:minmax(75px,1fr) auto minmax(75px,1fr) auto;gap:6px}
 .tl-app .tl-reservation-window .tl-button{font-size:var(--tl-text-small);padding:8px}.tl-app .tl-reservation-table{min-width:0}
 .tl-app .tl-reservation-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .tl-app .tl-reservation-table tbody{display:block}.tl-app .tl-reservation-table tr{display:grid;grid-template-columns:minmax(0,1fr);padding:14px;border-bottom:1px solid var(--line,#dce3d9)}
 .tl-app .tl-reservation-table tr:last-child{border:0}.tl-app .tl-reservation-table td{display:block;padding:8px 0;border:0;text-align:left!important}
 .tl-app .tl-reservation-table td[data-label]::before{content:attr(data-label);display:block;text-transform:uppercase;letter-spacing:.04em;font-size:var(--tl-text-small);color:var(--muted,#58655c);margin-bottom:5px}
 .tl-app .tl-reservation-table td:last-child .tl-button{width:100%}.tl-app .tl-reservation-actions>.tl-button{flex:1 1 45%}
}
@media(prefers-reduced-motion:reduce){.tl-app .tl-reservations *{scroll-behavior:auto!important}}

/* Staff decisions remain separate from the selected arrival date. */
.tl-app .tl-reservation-pending, .tl-app .tl-reservation-arrivals { margin-block:24px; min-width:0; }
.tl-app .tl-reservation-pending { border:1px solid var(--tl-color-warning-line); border-radius:var(--tl-radius-panel); background:var(--tl-color-warning-soft); padding:20px; }
.tl-app .tl-reservation-pending>h2 { color:var(--tl-color-warning); }
.tl-app .tl-reservation-pending .tl-table-wrap { background:var(--paper); margin-top:16px; }
@media(max-width:760px) { .tl-app .tl-reservation-pending { padding:16px; } }
.tl-app .tl-reservation-pending-list { display:grid; gap:14px; margin-top:18px; }
.tl-app .tl-reservation-pending-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; padding:18px; background:var(--paper); border:1px solid var(--tl-color-warning-line); border-radius:var(--tl-radius-panel); }
.tl-app .tl-reservation-pending-card h3 { margin:0 0 8px; font-size:18px; overflow-wrap:anywhere; }
.tl-app .tl-reservation-pending-card p { margin:8px 0; }
.tl-app .tl-reservation-pending-card .tl-reservation-deadline { margin-bottom:0; }
.tl-app .tl-reservation-deadline small { display:block; margin-top:4px; font-size:var(--tl-text-small); }
.tl-app .tl-booking-draft { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:16px; margin-bottom:20px; border:1px solid var(--line); border-radius:var(--tl-radius-panel); }
.tl-app .tl-booking-draft .tl-caption { flex:1 1 240px; margin:0; }
@media(max-width:640px) {
 .tl-app .tl-reservation-pending-card { grid-template-columns:minmax(0,1fr); gap:12px; padding:16px; }
 .tl-app .tl-reservation-pending-card>.tl-button { justify-self:start; }
}

/* Admin rows retain local scrolling and fit beside desktop navigation. */
.tl-admin .tl-reservation-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
.tl-admin .tl-reservation-stats article{padding:16px}
.tl-admin .tl-reservation-stats strong{font-size:24px;line-height:1.2;font-variant-numeric:tabular-nums}
.tl-admin .tl-reservation-stats{gap:12px;margin-bottom:18px}
.tl-admin .tl-reservation-table th{text-transform:none;letter-spacing:0}
@media(max-width:600px){.tl-admin .tl-reservation-filters{grid-template-columns:minmax(0,1fr)}}
