/* Mobile containment: allow content to wrap instead of hiding overflow. */
main, main section, main article, main aside, main form, main fieldset,
.panel, .panel > *, .field, .field-grid > *, .dashboard-grid > *,
.week-grid > *, .week-strip > *, .portal-heading > *, .date-toolbar > *,
.card-heading > *, .actions > *, .check > *, .menu-row > *, .rule > * {
 min-width: 0;
}
main :is(h1,h2,h3,h4,p,label,strong,span,a,button,summary,legend),
footer :is(p,a,span,strong) { overflow-wrap: anywhere; }
main :is(form,fieldset,input,select,textarea,button) { max-width: 100%; }
main :is(input,select,textarea) { min-inline-size: 0; }
input[type=checkbox],input[type=radio] { width:18px; height:18px; min-height:0; flex:0 0 18px; padding:0; }
.login-panel .login-remember label { display:flex; align-items:center; gap:10px; }
.login-panel .login-remember input { margin:0; }
input[type=date],input[type=month],input[type=time] { min-width:0; min-inline-size:0; }
input::-webkit-date-and-time-value { text-align:left; min-width:0; }
input::-webkit-datetime-edit { min-width:0; padding:0; }
.selected-detail { margin:4px 0 0; font-size:13px; color:#bbb; line-height:1.5; overflow-wrap:anywhere; }
@media(max-width:760px) {
 .panel,.menu-card,.floor-wrap,.day-column,.shift-card { width:100%; max-width:100%; }
 #booking-map { margin:0; }
 .panel :is(form,.field-grid,.field,.table-options,.floor-wrap) { max-width:100%; }
 .field-grid,.portal .field-grid { grid-template-columns:minmax(0,1fr); }
 .field-grid .field-grid { margin:0; }
 main :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { width:100%; box-sizing:border-box; }
 .date-toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:10px; }
 .date-toolbar > label,.date-toolbar > strong { grid-column:1/-1; }
 .date-toolbar label { display:grid; gap:8px; }
 .date-toolbar input,.date-toolbar button { width:100%; }
 .portal-heading { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
 .portal-heading h1 { font-size:clamp(30px,9vw,48px); line-height:1.08; }
 .card-heading { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
 .card-heading h3 { margin-bottom:0; }
 .card-heading .badge { justify-self:start; }
 .actions { display:flex; flex-wrap:wrap; align-items:stretch; }
 .actions > .btn { flex:1 1 160px; width:auto; min-width:0; white-space:normal; }
 .field .actions { margin-top:0; }
 .field .actions > .btn { flex:1 1 100px; }
 .type-tabs { display:flex; flex-wrap:wrap; gap:8px; }
 .type-tabs button { min-width:0; max-width:100%; white-space:normal; flex:1 1 90px; padding:10px; }
 .summary-line { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:12px; }
 .summary-line strong { max-width:none; }
 .menu-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; }
 .menu-row strong { white-space:nowrap; }
 .map-selection { flex-wrap:wrap; gap:14px; }
 .map-selection .btn { width:100%; }
 .check { align-items:flex-start; }
 .check span { flex:1; }
 .week-strip { width:100%; grid-template-columns:repeat(7,minmax(0,1fr)); }
 .week-strip button { min-width:0; max-width:100%; padding-inline:1px; }
 .portal-tabs button { white-space:normal; }
 header nav { top:100%; }
}
@media(max-width:360px) {
 .panel,.portal .panel,.menu-card { padding:16px; }
 .hero h1,.page-head h1 { font-size:clamp(32px,12vw,43px); }
 .summary-line { grid-template-columns:minmax(0,1fr); gap:4px; }
 .summary-line strong { text-align:left; }
 .hours li { flex-wrap:wrap; gap:4px 12px; }
 .statband div { flex-wrap:wrap; }
}

/* Prices retain their width next to wrapping menu names on tablets as well. */
.menu-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}
.menu-row strong{white-space:nowrap;flex-shrink:0}
.phone-booking{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.phone-booking > div{min-width:0;flex:1}.phone-booking .eyebrow{margin-bottom:10px}.phone-booking h3{line-height:1.15;margin-bottom:12px}.phone-booking p{margin-bottom:0}.phone-booking .btn{flex:0 0 auto}
.dashboard-map{margin-bottom:28px}.dashboard-map .reservation-badge{pointer-events:none}.dashboard-map .reservation-badge text{font-size:25px!important;letter-spacing:0}.dashboard-map .floor .table.selected .bed{stroke:#ffd43b}
#table-reservations{scroll-margin-top:20px;outline:none}.dashboard-map .floor{overflow:visible}
@media(max-width:760px){.phone-booking{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.phone-booking .btn{width:100%;white-space:normal}.phone-booking h3{font-size:27px}.dashboard-map .floor-wrap{padding:12px 4px}.dashboard-map .floor-note{font-size:13px}}

.dashboard-table-shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-top:12px}.table-shortcut{display:flex;align-items:center;justify-content:center;gap:8px;background:#242529;border:1px solid #555;color:white;min-width:0;min-height:48px;padding:10px;border-radius:6px}.notification-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border-radius:50%;background:#ffd43b;color:#151515;font-size:14px;font-weight:800;flex-shrink:0}@media(max-width:360px){.dashboard-table-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}
