.food-order-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(340px, .7fr);
    gap: 34px;
    align-items: start;
    padding-bottom: 100px;
}

.food-catalog,
.food-category,
.food-product,
.food-product > div {
    min-width: 0;
}

.food-category {
    margin-bottom: 58px;
}

.food-category > header {
    max-width: 760px;
    margin-bottom: 24px;
}

.food-category > header p:last-child {
    max-width: 650px;
    margin-bottom: 0;
}

.food-category h2 {
    font-size: clamp(2.35rem, 4vw, 3.7rem);
    overflow-wrap: anywhere;
}

.food-product-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.food-product {
    display: grid;
    align-content: space-between;
    gap: 24px;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: 5px;
    background: linear-gradient(145deg, #171714, #10100e);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .14);
}

.food-product h3 {
    margin-bottom: 7px;
    font-size: 1.55rem;
    overflow-wrap: anywhere;
}

.food-product > div > strong {
    display: block;
    color: var(--gold2);
    font-size: .73rem;
    letter-spacing: .04em;
}

.food-product p {
    margin: 12px 0 0;
    font-size: .85rem;
    line-height: 1.55;
}

.food-product-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 126px;
    gap: 10px;
    align-items: end;
}

.food-product-controls label {
    min-width: 0;
}

.food-product-controls select,
.food-product-controls input {
    width: 100%;
    min-width: 0;
    height: 46px;
    padding: 9px 11px;
    color: var(--text);
    background: #24231f;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 3px;
    outline: none;
}

.food-product-controls select:focus,
.food-product-controls input:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(215, 173, 92, .09);
}

.food-product-controls .button {
    grid-column: 1 / -1;
    width: 100%;
}

.food-quantity {
    display: grid;
    gap: 4px;
}

.food-quantity span {
    color: var(--muted);
    font-size: .65rem;
    line-height: 1;
}

.quantity-stepper,
.cart-stepper {
    display: grid;
    grid-template-columns: 44px minmax(44px, 1fr) 44px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 3px;
    background: #24231f;
}

.quantity-stepper button,
.cart-stepper button {
    min-width: 44px;
    min-height: 48px;
    border: 0;
    background: rgba(255, 255, 255, .04);
    color: var(--gold2);
    font-size: 1.15rem;
    cursor: pointer;
}

.quantity-stepper input {
    height: 48px;
    padding: 6px 2px;
    border: 0;
    border-inline: 1px solid rgba(255, 255, 255, .12);
    border-radius: 0;
    text-align: center;
    appearance: textfield;
}

.quantity-stepper input::-webkit-inner-spin-button,
.quantity-stepper input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.food-checkout {
    position: sticky;
    top: 20px;
    max-height: calc(100vh - 40px);
    overflow: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--gold) transparent;
}

.food-checkout-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.food-checkout h2 {
    margin-bottom: 22px;
    font-size: 2.65rem;
}

.terms-consent {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 4px 12px !important;
    min-width: 0;
    padding: 15px 16px;
    border: 1px solid rgba(215, 173, 92, .30);
    border-radius: 5px;
    background: linear-gradient(145deg, rgba(215, 173, 92, .07), rgba(255, 255, 255, .015));
    color: var(--text) !important;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.terms-consent-main {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 12px !important;
    min-width: 0;
    color: inherit !important;
    cursor: pointer;
}

.terms-consent:hover {
    border-color: rgba(226, 190, 117, .62);
}

.terms-consent:focus-within {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(215, 173, 92, .10);
}

.terms-consent:has(input:checked) {
    border-color: var(--gold);
    background: linear-gradient(145deg, rgba(215, 173, 92, .13), rgba(215, 173, 92, .035));
}

.terms-consent-main > input[type=checkbox] {
    width: 21px !important;
    height: 21px;
    margin: 2px 0 0;
    accent-color: var(--gold);
    cursor: pointer;
}

.terms-consent-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.terms-consent-copy strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.35;
}

.terms-consent-copy small {
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.45;
}

.terms-consent-link {
    align-self: center;
    color: var(--gold2);
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-decoration: none;
    white-space: nowrap;
}

.terms-consent-link:hover,
.terms-consent-link:focus-visible {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.food-cart-close,
.mobile-cart-bar,
.food-cart-backdrop {
    display: none;
}

.food-cart {
    display: grid;
    gap: 10px;
    margin-bottom: 16px;
}

.food-cart > p {
    margin: 0;
}

.food-cart article {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.food-cart-line {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.food-cart small {
    color: var(--muted);
}

.cart-stepper {
    grid-template-columns: 30px 34px 30px;
    width: max-content;
    margin-top: 5px;
}

.cart-stepper button {
    min-width: 30px;
    min-height: 30px;
    font-size: 1rem;
}

.cart-stepper b {
    display: grid;
    place-items: center;
    border-inline: 1px solid rgba(255,255,255,.12);
}

.food-cart-line-total {
    display: grid;
    justify-items: end;
    gap: 8px;
    white-space: nowrap;
}

.food-cart-line-total button {
    min-height: 30px;
    padding: 3px 0;
    border: 0;
    background: transparent;
    color: #e7a19b;
    font: inherit;
    font-size: .7rem;
    text-decoration: underline;
    cursor: pointer;
}

.food-cart-empty {
    display: grid;
    gap: 5px;
    padding: 18px;
    border: 1px dashed rgba(255,255,255,.14);
    color: var(--muted);
    text-align: center;
}

.pickup-slot {
    margin: 0;
    padding: 0;
    border: 0;
}

.pickup-slot legend {
    margin-bottom: 8px;
}

.pickup-slot > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, .55fr);
    gap: 10px;
}

.pickup-slot small {
    display: block;
    margin-top: 7px;
    color: var(--muted);
}

.food-cart-total,
.terminal-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 18px;
    padding: 17px 0;
    margin-bottom: 20px;
    border-block: 1px solid var(--line);
}

.food-cart-total strong,
.terminal-total strong {
    color: var(--gold2);
    font-family: Georgia, serif;
    font-size: 1.45rem;
}

.order-confirmation-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.tracking-hero {
    padding-bottom: 26px;
}

.tracking-hero h1 {
    margin-bottom: 18px;
}

.tracking-reference {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 12px;
    margin: 0 0 14px;
}

.tracking-reference span {
    color: var(--gold);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.tracking-reference strong {
    color: var(--text);
    font-family: Georgia, serif;
    font-size: clamp(1.1rem, 2.2vw, 1.45rem);
    font-weight: 400;
    letter-spacing: .04em;
    overflow-wrap: anywhere;
}

.tracking-section {
    padding-top: 28px;
}

.order-live-status { border-color: #766540; transition: border-color .2s ease, box-shadow .2s ease; }
.order-live-status.status-accepted,
.order-live-status.status-preparing { border-color: #9a793d; }
.order-live-status.status-ready,
.order-live-status.status-completed { border-color: #4d805d; box-shadow: inset 3px 0 #72b987; }
.order-live-status.status-cancelled { border-color: #8d4b47; box-shadow: inset 3px 0 #b85b55; }
.reservation-progress { max-width: 720px; }
.order-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 28px 0 22px; padding: 0; list-style: none; }
.order-progress li { display: grid; gap: 7px; color: #777269; font-size: .68rem; text-align: center; }
.order-progress li span { height: 5px; border-radius: 6px; background: #393733; }
.order-progress li.done,
.order-progress li.active { color: var(--text); }
.order-progress li.done span,
.order-progress li.active span { background: var(--gold); }
.order-progress li.active span { box-shadow: 0 0 0 3px rgba(215, 173, 92, .13); }
.order-progress li.cancelled span { background: #8d4b47; }
.order-live-connection { display: block; margin-bottom: 22px; color: #92cea5; }
.order-live-connection[data-online="0"] { color: #e0a29d; }

.order-line {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.order-line span {
    display: grid;
}

.order-line small {
    color: var(--muted);
}

.booking-simple {
    max-width: 900px;
}

.native-picker-field,
.native-picker-field input {
    cursor: pointer;
}

.native-picker-field small {
    color: var(--muted);
    font-size: .68rem;
}

.reservation-confirmation {
    max-width: 700px;
    margin: auto;
}

.terminal-body {
    min-width: 0;
    overflow-x: hidden;
    background: #080808;
}

.terminal-body::before {
    display: none;
}

.terminal-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    min-height: 70px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--line);
    background: rgba(11, 11, 9, .97);
}

.terminal-header img {
    width: 58px;
    height: 50px;
    object-fit: contain;
}

.terminal-header div {
    display: grid;
    min-width: 0;
    line-height: 1.25;
}

.terminal-header strong,
.terminal-header small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.terminal-header strong {
    color: var(--gold2);
    font-size: .9rem;
}

.terminal-header small {
    color: var(--muted);
    font-size: .68rem;
}

.terminal-printer-status {
    color: #92cea5;
    font-size: .65rem;
    font-weight: 700;
    line-height: 1.3;
}

.terminal-printer-status[data-ready="0"] {
    color: #ffaaa0;
}

.terminal-header button {
    min-width: 48px;
    min-height: 48px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 3px;
    background: transparent;
    color: var(--gold2);
    font-size: .68rem;
    cursor: pointer;
}

.terminal-main {
    width: min(calc(100% - 22px), 1100px);
    margin: 0 auto;
    padding-bottom: 70px;
}

.terminal-tabs {
    position: sticky;
    top: 70px;
    z-index: 15;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--line);
    background: #11110f;
}

.terminal-tabs a,
.terminal-tabs button {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    min-width: 0;
    padding: 13px 8px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .07em;
    font-size: .68rem;
}

.terminal-tab-label-short {
    display: none;
}

.terminal-tabs a + a,
.terminal-tabs button + button {
    border-left: 1px solid var(--line);
}

.terminal-tabs button.active {
    background: rgba(215, 173, 92, .12);
    color: var(--gold2);
}

.terminal-tabs b {
    display: inline-grid;
    place-items: center;
    min-width: 22px;
    height: 22px;
    margin-left: 3px;
    padding: 0 5px;
    border-radius: 12px;
    background: var(--gold);
    color: #111;
}

.terminal-section {
    padding: 36px 0 18px;
}

.terminal-section[hidden],
.terminal-live-alert[hidden] {
    display: none !important;
}

.terminal-live-alert {
    position: sticky;
    z-index: 14;
    top: 128px;
    display: grid;
    width: 100%;
    cursor: pointer;
    margin-top: 12px;
    padding: 14px 16px;
    border: 1px solid #d7ad5c;
    border-radius: 4px;
    background: #332512;
    color: #fff1cf;
    font: inherit;
    font-weight: 700;
    text-align: center;
}

.terminal-live-alert small {
    margin-top: 3px;
    color: rgba(255, 241, 207, .72);
    font-size: .67rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.terminal-live-alert[data-type="reservation"] {
    border-color: #77a5be;
    background: #152630;
    color: #d7f1ff;
}

.terminal-history-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; }
.terminal-history-heading > div { min-width: 0; }
.terminal-history-heading > div > p:last-child { max-width: 650px; margin-bottom: 0; color: var(--muted); }
.terminal-history-heading > span { flex: 0 0 auto; padding: 6px 9px; border: 1px solid var(--line); color: var(--muted); font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; }
.terminal-history-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 12px; border: 1px solid var(--line); background: #11110f; }
.terminal-history-filters button { appearance: none; min-width: 0; padding: 11px 8px; border: 0; background: transparent; color: var(--muted); font: inherit; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }
.terminal-history-filters button { min-height: 48px; font-size: .78rem; }
.terminal-history-filters button + button { border-left: 1px solid var(--line); }
.terminal-history-filters button.active { background: rgba(215, 173, 92, .12); color: var(--gold2); }
.terminal-history-filters b { display: inline-grid; place-items: center; min-width: 21px; height: 21px; margin-left: 3px; padding: 0 4px; border-radius: 12px; background: rgba(215, 173, 92, .18); color: var(--gold2); }
.terminal-history-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.terminal-history-group { min-width: 0; border: 1px solid var(--line); background: #11110f; }
.terminal-history-group[hidden] { display: none; }
.terminal-history-group > header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px; border-bottom: 1px solid var(--line); background: #171713; }
.terminal-history-group > header div { min-width: 0; }
.terminal-history-group > header small { color: var(--gold); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; }
.terminal-history-group > header h2 { margin: 2px 0 0; font-size: 1.55rem; overflow-wrap: anywhere; }
.terminal-history-group > header > b { display: grid; place-items: center; flex: 0 0 auto; width: 31px; height: 31px; border: 1px solid var(--line); border-radius: 50%; color: var(--gold2); }
.terminal-history-list { display: grid; gap: 8px; padding: 9px; }
.terminal-history-item { display: grid; gap: 7px; min-width: 0; padding: 11px; border: 1px solid rgba(255, 255, 255, .08); border-left: 3px solid #766540; background: #171714; }
.terminal-history-item.status-completed,
.terminal-history-item.status-confirmed,
.terminal-history-item.status-ready { border-left-color: #4d805d; }
.terminal-history-item.status-cancelled { border-left-color: #8d4b47; }
.terminal-history-item > header,
.terminal-history-meta,
.terminal-history-item > footer { display: flex; justify-content: space-between; align-items: start; gap: 10px; min-width: 0; }
.terminal-history-item > header > strong { overflow-wrap: anywhere; color: var(--gold2); font-size: .88rem; letter-spacing: .04em; }
.terminal-history-item > p { margin: 0; overflow-wrap: anywhere; font-size: .86rem; }
.terminal-history-meta { align-items: baseline; padding-block: 7px; border-block: 1px solid rgba(255, 255, 255, .07); }
.terminal-history-meta span { min-width: 0; overflow-wrap: anywhere; color: var(--muted); font-size: .7rem; }
.terminal-history-meta strong { flex: 0 0 auto; font-size: .8rem; }
.terminal-history-item > footer small,
.terminal-history-item > footer time { min-width: 0; overflow-wrap: normal; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.terminal-history-item > footer time { flex: 0 0 auto; text-align: right; }
.terminal-history-status { display: inline-block; flex: 0 0 auto; max-width: 52%; padding: 6px 8px; border: 1px solid #766540; border-radius: 20px; overflow-wrap: normal; color: #d7c9aa !important; font-size: .72rem; line-height: 1.3; text-align: center; text-transform: uppercase; letter-spacing: .04em; }
.terminal-history-status.status-completed,
.terminal-history-status.status-confirmed,
.terminal-history-status.status-ready { border-color: #4d805d; color: #92cea5 !important; }
.terminal-history-status.status-cancelled { border-color: #8d4b47; color: #e0a29d !important; }
.terminal-history-empty { margin: 0; padding: 20px 10px; color: var(--muted); text-align: center; }

.terminal-page-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    padding: 34px 0 22px;
}

.terminal-page-heading h1 {
    margin: 0;
    font-size: clamp(2.2rem, 6vw, 4rem);
}

.terminal-availability,
.availability-items {
    display: grid;
    gap: 14px;
}

.availability-category {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--line);
    background: #151512;
}

.availability-category.is-paused {
    opacity: .76;
}

.availability-category > header,
.availability-item,
.availability-item form {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.availability-category h2,
.availability-item h3 {
    margin: 0;
    overflow-wrap: anywhere;
}

.availability-category h2 {
    font-size: clamp(1.8rem, 7vw, 3rem);
}

.availability-state,
.availability-item span {
    color: var(--muted);
    font-size: .78rem;
}

.availability-items {
    margin-top: 16px;
}

.availability-item {
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.1);
}

.availability-item.state-sold_out { border-color: #9b7242; }
.availability-item.state-hidden { opacity: .58; }
.availability-item select { min-height: 48px; max-width: 180px; }

.terminal-section > header {
    margin-bottom: 20px;
}

.terminal-section h1 {
    margin: 0;
    font-size: clamp(2.25rem, 6vw, 4rem);
    overflow-wrap: anywhere;
}

.terminal-order-grid,
.terminal-reservation-list {
    display: grid;
    gap: 16px;
}

.terminal-card {
    position: relative;
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 5px;
    background: #151512;
}

.terminal-card-heading-actions {
    display: grid;
    flex: 0 0 auto;
    justify-items: end;
    gap: 8px;
}

.terminal-card-heading-actions button,
.terminal-task-close {
    appearance: none;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--line);
    background: transparent;
    color: var(--gold2);
    font: inherit;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    cursor: pointer;
}

.terminal-task-close {
    display: none;
}

body.terminal-task-open {
    overflow: hidden;
}

.terminal-card.is-focused {
    position: fixed;
    inset: 7px;
    z-index: 60;
    width: auto;
    max-width: 1090px;
    height: auto;
    margin-inline: auto;
    padding: 58px 18px 230px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    border-color: var(--gold);
    border-radius: 6px;
    background: #11110f;
    box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .86), 0 20px 70px #000;
}

.terminal-card.is-focused .terminal-task-close {
    position: fixed;
    top: 17px;
    right: max(17px, calc((100vw - 1090px) / 2 + 17px));
    z-index: 75;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 50%;
    background: #24231f;
    font-size: 1.45rem;
}

.terminal-card.is-focused [data-focus-task] {
    display: none;
}

.terminal-card.is-focused .terminal-actions {
    position: fixed;
    right: max(7px, calc((100vw - 1090px) / 2 + 7px));
    bottom: max(7px, env(safe-area-inset-bottom));
    left: max(7px, calc((100vw - 1090px) / 2 + 7px));
    z-index: 68;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 42dvh;
    padding: 10px;
    overflow-y: auto;
    border: 1px solid var(--line);
    border-radius: 5px;
    background: rgba(17, 17, 15, .98);
    box-shadow: 0 -12px 30px rgba(0, 0, 0, .65);
}

.terminal-card.is-focused .terminal-action-panel {
    flex-basis: auto;
}

.terminal-card.is-focused .terminal-action-panel[open] {
    position: fixed;
    right: max(7px, calc((100vw - 720px) / 2 + 7px));
    bottom: max(7px, env(safe-area-inset-bottom));
    left: max(7px, calc((100vw - 720px) / 2 + 7px));
    z-index: 74;
    max-height: calc(100dvh - 14px);
    overflow-y: auto;
    border-color: var(--gold);
    border-radius: 6px;
    box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .82), 0 18px 50px #000;
}

.terminal-card.is-focused .terminal-action-panel[open] > summary {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #24231f;
}

.terminal-card.status-new {
    border-color: #c99742;
    box-shadow: inset 4px 0 #d7ad5c;
}

.terminal-card.status-requested {
    border-color: #77a5be;
    box-shadow: inset 4px 0 #77a5be;
}

.terminal-card.status-ready {
    border-color: #4d805d;
    box-shadow: inset 4px 0 #72b987;
}

.terminal-card > header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
}

.terminal-card > header span {
    color: var(--gold);
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.terminal-card h2 {
    margin: 4px 0;
    font-size: 1.8rem;
    overflow-wrap: anywhere;
}

.terminal-card a {
    color: var(--gold2);
    overflow-wrap: anywhere;
}

.terminal-customer {
    overflow-wrap: anywhere;
}

.terminal-items {
    display: grid;
    padding: 10px 0;
    border-block: 1px solid rgba(255, 255, 255, .1);
}

.terminal-items > div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 5px 0;
}

.terminal-items small {
    display: block;
    color: var(--muted);
}

.terminal-alert {
    padding: 12px;
    border: 1px solid #a96258;
    background: #2a1613;
    color: #ffd4cd;
}

.terminal-note {
    padding: 10px;
    background: #22221e;
}

.terminal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.terminal-actions form {
    flex: 1;
    min-width: 150px;
}

.terminal-actions button {
    width: 100%;
    min-height: 48px;
    padding-inline: 12px;
}

.terminal-action-panel { flex: 1 1 100%; min-width: 0; border: 1px solid var(--line); background: #11110f; }
.terminal-action-panel > summary { width: 100%; list-style: none; }
.terminal-action-panel > summary::-webkit-details-marker { display: none; }
.terminal-action-panel[open] > summary { border-bottom: 1px solid var(--line); }
.terminal-action-panel form { display: grid; gap: 14px; padding: 16px; }
.terminal-action-panel fieldset { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 0; padding: 14px; border: 1px solid var(--line); }
.terminal-action-panel legend { padding-inline: 6px; color: var(--gold2); }
.terminal-action-panel label { display: grid; gap: 6px; color: var(--muted); }
.terminal-action-panel input,.terminal-action-panel select { min-height: 48px; width: 100%; padding: 10px; border: 1px solid rgba(255,255,255,.16); background: #24231f; color: var(--text); }
.terminal-action-panel fieldset > label:not(.terminal-custom-minutes) { display: flex; align-items: center; min-height: 48px; gap: 8px; }
.terminal-action-panel fieldset input[type=radio] { width: 22px; min-height: 22px; }
.terminal-custom-minutes { grid-column: 1/-1; }
.terminal-sound-tests { display: flex; flex-wrap: wrap; gap: 8px; }
.terminal-flash-action { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.terminal-flash-action form { margin: 0; }
.terminal-flash-action button { min-width: 80px; min-height: 44px; border: 1px solid currentColor; background: transparent; color: inherit; font-weight: 700; }
.shoko-dialog { width: min(calc(100% - 28px),520px); padding: 0; border: 1px solid var(--line); border-radius: 5px; background: #171713; color: var(--text); }
.shoko-dialog::backdrop { background: rgba(0,0,0,.78); }
.shoko-dialog form { padding: 24px; }
.shoko-dialog h2 { font-size: 2rem; }
.shoko-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }

.terminal-reservation-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 900px) {
    .food-order-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .food-checkout {
        position: static;
    }

    .terminal-reservation-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .terminal-history-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 650px) {
    .terminal-tabs button {
        gap: 4px;
        padding-inline: 5px;
    }

    .terminal-tab-label-full {
        display: none;
    }

    .terminal-tab-label-short {
        display: inline;
    }

    .terminal-history-heading { align-items: start; }
    .terminal-history-heading > span { display: none; }
    .terminal-history-group > header { padding: 11px; }
    .terminal-history-group > header h2 { font-size: 1.35rem; }
    .terminal-history-list { padding: 7px; }
    .terminal-history-item { padding: 10px; }

    .terminal-card.is-focused {
        padding: 54px 14px 230px;
    }

    .terminal-card.is-focused .terminal-actions {
        grid-template-columns: minmax(0, 1fr);
        max-height: 38dvh;
    }

    .terminal-card.is-focused .terminal-action-panel[open] {
        right: 7px;
        left: 7px;
    }

    .food-order-layout {
        width: min(calc(100% - 28px), var(--max));
        gap: 12px;
    }

    .terms-consent {
        grid-template-columns: minmax(0, 1fr);
        padding: 14px;
    }

    .terms-consent-link {
        grid-column: 1;
        justify-self: start;
        margin: 5px 0 0 34px;
    }

    .food-category {
        margin-bottom: 44px;
    }

    .food-category > header {
        margin-bottom: 18px;
    }

    .food-category h2 {
        font-size: 2.35rem;
    }

    .food-product-grid,
    .order-confirmation-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .order-progress { gap: 3px; }
    .order-progress li { font-size: .58rem; }

    .tracking-hero {
        padding-top: 68px;
        padding-bottom: 10px;
    }

    .tracking-hero h1 {
        font-size: clamp(2.55rem, 13vw, 3.25rem);
        margin-bottom: 14px;
    }

    .tracking-hero > p:last-child {
        margin-bottom: 0;
        font-size: 1rem;
    }

    .tracking-reference {
        display: grid;
        gap: 2px;
    }

    .tracking-reference strong {
        font-size: 1.08rem;
    }

    .tracking-section {
        padding-top: 20px;
        padding-bottom: 58px;
    }

    .tracking-section .panel {
        padding: 25px 20px;
    }

    .food-product {
        gap: 18px;
        padding: 18px;
    }

    .food-product-controls {
        grid-template-columns: minmax(0, 1fr) 120px;
    }

    .food-product h3 {
        font-size: 1.55rem;
    }

    .food-checkout {
        position: fixed;
        z-index: 101;
        inset: auto 0 0;
        width: 100%;
        max-height: min(88vh, 780px);
        margin: 0;
        padding: 22px 18px calc(24px + env(safe-area-inset-bottom));
        border: 1px solid var(--line);
        border-radius: 16px 16px 0 0;
        background: #121210;
        box-shadow: 0 -20px 60px rgba(0,0,0,.65);
        transform: translateY(105%);
        visibility: hidden;
        transition: transform .22s ease, visibility .22s linear;
    }

    .food-checkout.is-open {
        transform: translateY(0);
        visibility: visible;
    }

    .food-cart-close {
        display: grid;
        place-items: center;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        border: 1px solid rgba(255,255,255,.15);
        border-radius: 50%;
        background: #1c1b18;
        color: var(--text);
        font-size: 1.5rem;
    }

    .food-cart-backdrop {
        position: fixed;
        z-index: 100;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        border: 0;
        background: rgba(0,0,0,.72);
    }

    .food-cart-backdrop[hidden] {
        display: none;
    }

    .mobile-cart-bar {
        position: fixed;
        z-index: 80;
        left: 12px;
        right: 12px;
        bottom: calc(12px + env(safe-area-inset-bottom));
        display: flex;
        justify-content: space-between;
        align-items: center;
        min-height: 58px;
        padding: 12px 18px;
        border: 1px solid #e5bd72;
        border-radius: 5px;
        background: linear-gradient(110deg,#d7ad5c,#efca83);
        box-shadow: 0 12px 35px rgba(0,0,0,.55);
        color: #111;
        font: inherit;
        font-weight: 700;
    }

    .mobile-cart-bar[hidden] {
        display: none;
    }

    .mobile-cart-bar b {
        display: inline-grid;
        place-items: center;
        min-width: 24px;
        height: 24px;
        margin-left: 5px;
        padding: 0 5px;
        border-radius: 50%;
        background: #111;
        color: #fff;
    }

    body.cart-open {
        overflow: hidden;
    }

    .terminal-main {
        width: min(calc(100% - 14px), 1100px);
    }

    .terminal-section {
        padding-top: 30px;
    }

    .terminal-section h1 {
        font-size: 2.25rem;
    }

    .terminal-card {
        padding: 16px;
    }

    .terminal-card h2 {
        font-size: 1.55rem;
    }

    .terminal-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .terminal-actions form {
        min-width: 0;
    }

    .terminal-action-panel fieldset { grid-template-columns: 1fr; }

    .terminal-page-heading,
    .availability-category > header,
    .availability-item {
        align-items: stretch;
        flex-direction: column;
    }

    .availability-category {
        padding: 14px;
    }

    .availability-category > header form,
    .availability-category > header button {
        width: 100%;
    }

    .availability-item form {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .availability-item select {
        width: 100%;
        max-width: none;
    }
}

/* Public food ordering: compact status and one guided cart flow on every screen. */
.food-order-hero{padding:58px 0 38px}
.food-order-hero-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);align-items:end;gap:clamp(46px,8vw,118px)}
.food-order-hero-grid>div{min-width:0}
.food-order-hero h1{max-width:100%;margin:0;font-size:clamp(4.2rem,6vw,5.8rem);letter-spacing:-.03em;overflow-wrap:normal;word-break:normal}
.food-order-hero-guide{display:grid;gap:15px;padding-bottom:7px}
.food-order-hero-guide>p{max-width:700px;margin:0;color:#d1c9be;font-size:.96rem}
.food-order-availability{display:flex;align-items:center;gap:12px 18px;min-width:0;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.09)}
.food-order-availability strong{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;padding:7px 11px;border:1px solid rgba(114,185,135,.42);border-radius:999px;background:rgba(114,185,135,.07);color:#a7d7b5;font-size:.72rem;letter-spacing:.04em}
.food-order-availability strong i{display:block;flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#72b987;box-shadow:0 0 0 4px rgba(114,185,135,.1)}
.food-order-availability>span{min-width:0;color:var(--muted);font-size:.8rem}
.food-order-availability.closed strong{border-color:rgba(184,91,85,.5);background:rgba(184,91,85,.07);color:#e5a49e}
.food-order-availability.closed strong i{background:#b85b55;box-shadow:0 0 0 4px rgba(184,91,85,.1)}
.food-order-flow{display:flex;align-items:center;gap:0;margin:2px 0 0;padding:0;list-style:none}
.food-order-flow li{position:relative;display:flex;align-items:center;gap:8px;padding-right:38px;color:var(--muted);font-size:.7rem}
.food-order-flow li:not(:last-child)::after{content:"→";position:absolute;right:13px;color:rgba(215,173,92,.55)}
.food-order-flow b{display:grid;flex:0 0 23px;width:23px;height:23px;place-items:center;border:1px solid rgba(215,173,92,.45);border-radius:50%;color:var(--gold2);font-size:.62rem}
.food-order-layout{padding-top:22px}
@media(max-width:900px){
    .food-order-hero-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:34px}
    .food-order-flow li{padding-right:28px}
    .food-order-flow li:not(:last-child)::after{right:8px}
}
@media(max-width:650px){
    .food-order-hero{padding:40px 0 28px}
    .food-order-hero-grid{width:min(calc(100% - 28px),var(--max));grid-template-columns:minmax(0,1fr);gap:20px}
    .food-order-hero h1{font-size:clamp(3.2rem,15vw,4rem)}
    .food-order-hero-guide{gap:13px;padding:0}
    .food-order-availability{align-items:flex-start;flex-direction:column;gap:8px;padding-bottom:13px}
    .food-order-availability>span{font-size:.77rem}
    .food-order-hero-guide>p{font-size:.9rem;line-height:1.55}
    .food-order-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(215,173,92,.26)}
    .food-order-flow li{display:grid;justify-items:center;gap:5px;min-width:0;padding:11px 6px;color:#c9c1b5;font-size:.59rem;line-height:1.3;text-align:center}
    .food-order-flow li+li{border-left:1px solid rgba(215,173,92,.22)}
    .food-order-flow li:not(:last-child)::after{display:none}
    .food-order-layout{padding-top:8px}
    .food-category h2{font-size:2rem;letter-spacing:-.02em;overflow-wrap:normal;word-break:normal;hyphens:none}
}

@media (max-width: 420px) {
    .terminal-page-heading h1,
    .availability-category h2 {
        font-size: 1.9rem;
    }

    .availability-item form {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .availability-item form button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .food-checkout { transition: none; }
}
