:root {
  --ink: #111111;
  --text: #262626;
  --muted: #6c6c6c;
  --paper: #ffffff;
  --soft: #f4f4f2;
  --rule: #1b1b1b;
  --line: #d8d8d5;
  --accent: #111111;
  --success: #356a3d;
  --body-leading: 1.55;
  --copy-leading: 1.6;
  --dialog-viewport-gap: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--text); font: 15px/var(--body-leading) Arial, Helvetica, sans-serif; }
button { cursor: pointer; font: inherit; }
.shell { width: min(100%, 760px); margin: 0 auto; padding: 0 24px 114px; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; }
h1, h2, h3, h4 { line-height: 1.15; overflow-wrap: anywhere; text-wrap: balance; }
p { line-height: var(--copy-leading); hyphens: auto; text-align: start; }
p, li, small, figcaption { overflow-wrap: break-word; text-wrap: pretty; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.app-navigation { position: sticky; z-index: 40; top: 0; display: flex; align-items: center; justify-content: space-between; min-height: 64px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(10px); }.app-navigation-brand { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: 14px; font-weight: 800; letter-spacing: -.035em; text-decoration: none; }.app-navigation-mark, .auth-mark { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 7px; background: var(--ink); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: -.06em; }.account-menu { position: relative; }.account-menu summary { display: flex; align-items: center; min-height: 44px; gap: 7px; border-radius: 7px; padding: 0 8px; color: var(--ink); cursor: pointer; font-size: 12px; font-weight: 700; list-style: none; }.account-menu summary::-webkit-details-marker { display: none; }.account-menu summary:hover, .account-menu[open] summary { background: var(--soft); }.account-menu summary > .material-symbols-rounded { font-size: 20px; }.account-menu .account-menu-chevron { color: var(--muted); font-size: 18px; transition: transform .15s ease; }.account-menu[open] .account-menu-chevron { transform: rotate(180deg); }.account-menu-panel { position: absolute; z-index: 41; top: calc(100% + 7px); right: 0; display: grid; min-width: 225px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); box-shadow: 0 14px 35px rgba(17, 17, 17, .16); }.account-menu-identity { display: grid; gap: 3px; border-bottom: 1px solid var(--line); padding: 12px 14px 10px; }.account-menu-email { overflow: hidden; color: var(--muted); font-size: 11px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.account-menu-role { color: var(--ink); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.account-menu-panel a, .account-menu-panel button { display: flex; align-items: center; gap: 9px; width: 100%; min-height: 44px; border: 0; padding: 0 14px; background: transparent; color: var(--ink); font-size: 13px; font-weight: 700; text-align: left; text-decoration: none; }.account-menu-panel a:hover, .account-menu-panel button:hover { background: var(--soft); }.account-menu-panel .material-symbols-rounded { color: var(--muted); font-size: 19px; }.account-menu-panel form { margin: 0; border-top: 1px solid var(--line); }

/* Acceso interno: jerarquía de dos paneles para centrar la tarea de autenticación. */
.auth-page { min-height: 100vh; background: var(--paper); }.auth-page .shell { width: 100%; max-width: none; min-height: 100vh; padding: 0; }.auth-layout { display: grid; grid-template-columns: minmax(350px, 43vw) minmax(0, 1fr); min-height: 100vh; }.auth-intro { display: flex; flex-direction: column; min-height: 100%; padding: clamp(30px, 5vw, 68px); background: var(--ink); color: var(--paper); }.auth-brand { display: inline-flex; align-items: center; gap: 9px; width: fit-content; color: var(--paper); font-size: 19px; font-weight: 800; letter-spacing: -.04em; text-decoration: none; }.auth-mark { background: var(--paper); color: var(--ink); }.auth-intro-copy { max-width: 445px; margin: auto 0; }.auth-kicker { display: block; margin-bottom: 16px; color: #bdbdb8; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.auth-intro h1 { max-width: 430px; margin: 0 0 18px; color: var(--paper); font-size: clamp(38px, 4.2vw, 62px); font-weight: 700; line-height: 1.02; letter-spacing: -.055em; }.auth-intro-copy p { max-width: 390px; margin: 0; color: #d8d8d5; font-size: 15px; line-height: 1.55; }.auth-intro-footer { margin: 0; color: #bdbdb8; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.auth-panel { display: grid; place-items: center; padding: 48px 32px; background: var(--paper); }.auth-card { width: min(100%, 420px); }.auth-card h2 { margin: 5px 0 8px; color: var(--ink); font-size: 34px; font-weight: 700; letter-spacing: -.035em; }.auth-card > p { margin-bottom: 27px; color: var(--muted); font-size: 13px; }.auth-form { display: grid; gap: 8px; }.auth-form label { margin-top: 9px; color: var(--ink); font-size: 12px; font-weight: 700; }.auth-form input { width: 100%; min-height: 46px; border: 1px solid var(--ink); border-radius: 0; padding: 11px 12px; background: var(--paper); color: var(--ink); font: inherit; }.auth-form input::placeholder { color: #92928e; }.auth-form input:focus { outline: 0; box-shadow: 3px 3px 0 #e6e6e2; }.auth-form button { min-height: 48px; margin-top: 16px; border: 0; border-radius: 0; padding: 13px 15px; background: var(--ink); color: #fff; font-weight: 700; text-align: left; }.auth-form button:hover { background: #353535; }.auth-form button span { float: right; font-size: 18px; }.auth-error { margin-top: 4px; border-left: 3px solid #a33427; border-radius: 0; padding: 9px 11px; background: #fae8e5; color: #7a2118; font-size: 12px; font-weight: 700; }.auth-help { margin: 22px 0 0 !important; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted) !important; font-size: 12px !important; }
.staff-home-page { background: var(--soft); }.staff-home-header { padding: 72px 0 27px; border-bottom: 1px solid var(--rule); }.staff-home-header h1 { margin: 4px 0 7px; font-size: clamp(31px, 6vw, 45px); }.staff-home-header p { margin: 0; color: var(--muted); }.membership-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; padding: 28px 0; }.membership-card { display: flex; min-height: 177px; flex-direction: column; align-items: flex-start; border: 1px solid var(--ink); padding: 18px; background: #fff; color: var(--ink); text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }.membership-card:hover { transform: translate(-3px, -3px); box-shadow: 5px 5px 0 var(--ink); }.membership-card strong { margin-top: 14px; font: 24px/1.1 Georgia, "Times New Roman", serif; }.membership-card small { margin-top: 5px; color: var(--muted); }.membership-role { border: 1px solid var(--ink); padding: 4px 6px; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.membership-go { margin-top: auto; font-size: 12px; font-weight: 700; }.staff-empty { margin-top: 28px; }

/* Carta para cliente: catálogo editorial lineal, no dashboard. */
.customer-header { display: flex; align-items: center; justify-content: space-between; min-height: 74px; border-bottom: 1px solid var(--rule); }.customer-header-actions { display: flex; align-items: center; gap: 10px; }
.customer-brand { display: flex; align-items: center; gap: 7px; min-width: 0; }.customer-wordmark { display: inline-flex; align-items: center; gap: 10px; min-width: 0; color: var(--ink); font-size: 22px; font-weight: 800; letter-spacing: -.06em; text-decoration: none; }.customer-website-link { display: grid; flex: 0 0 auto; width: 32px; height: 32px; place-items: center; border: 1px solid var(--rule); border-radius: 50%; color: var(--ink); text-decoration: none; transition: background-color .2s, border-color .2s; }.customer-website-link:hover, .customer-website-link:focus-visible { border-color: var(--ink); background: var(--soft); }.customer-website-link .material-symbols-rounded { font-size: 18px; }.company-logo-slot, .company-logo { display: block; flex: 0 0 38px; width: 38px; height: 38px; border: 1px solid var(--ink); border-radius: 4px; background: var(--soft); }.company-logo { object-fit: cover; }
.table-badge { border: 1px solid var(--ink); border-radius: 3px; padding: 6px 9px; font-size: 12px; font-weight: 700; }.leave-table-link { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #a33427; border-radius: 3px; padding: 6px 8px; color: #a33427; font-size: 12px; font-weight: 700; text-decoration: none; }.leave-table-link span { font-size: 16px; line-height: .8; }.leave-table-link:hover { background: #a33427; color: #fff; }
.store-context { padding: 28px 0 32px; border-bottom: 1px solid var(--rule); }
.location-kicker { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.store-context h1 { margin-bottom: 6px; color: var(--ink); font-size: clamp(27px, 6vw, 35px); line-height: 1.15; }
.store-context-copy > p { margin-bottom: 0; font-size: 14px; }.store-context .ordering-help { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 7px; max-width: 470px; margin-top: 17px; border: 1px solid #b9def6; padding: 7px 6px 7px 9px; background: #eaf6ff; color: #075985; font-size: 13px; font-weight: 400; line-height: 1.45; }.store-context .ordering-help > .material-symbols-rounded { flex: 0 0 auto; margin-top: 1px; color: #0369a1; font-size: 18px; }.ordering-help-dismiss { display: grid; place-items: center; width: 24px; height: 24px; margin: -2px 0 0; border: 0; padding: 0; background: transparent; color: #0369a1; }.ordering-help-dismiss:hover, .ordering-help-dismiss:focus-visible { background: #d8efff; color: #075985; }.ordering-help-dismiss .material-symbols-rounded { font-size: 17px; }
.store-address { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.store-address > span:first-child { min-width: 0; }.store-address .material-symbols-rounded { flex: 0 0 auto; font-size: 20px; }
.service-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--rule); }.service-request-form button { border: 1px solid var(--ink); border-radius: 999px; padding: 7px 10px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; }.service-request-form button:hover { background: var(--ink); color: #fff; }.service-request-form button:disabled { opacity: .55; }.service-request-form button.is-pending, .service-request-form button.is-pending:hover { border-color: #9ac6a3; background: #eef8f1; color: #28633b; opacity: 1; cursor: wait; }.service-request-notice { display: none; width: 100%; margin: 2px 0 0; color: var(--success); font-size: 12px; font-weight: 700; }.service-request-notice.is-visible { display: block; }
.menu-catalog { padding-top: 24px; }
.customer-menu #menu.menu-catalog { margin-top: 18px; border: 1px solid color-mix(in srgb, var(--menu-brand-color, #FFD227) 35%, transparent); border-radius: 14px; padding: 18px 18px 1px; background: color-mix(in srgb, var(--menu-brand-color, #FFD227) 24%, transparent); }
.customer-menu #menu .menu-section-pager { margin-top: 0; }
.customer-menu .store-context:has(+ .menu-section-pager) { border-bottom: 0; }
.menu-section-pager { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 10px; margin: 22px 0 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 11px 0 12px; }.menu-section-pager > div { display: grid; align-content: center; justify-items: center; min-width: 0; min-height: 44px; text-align: center; }.menu-section-pager h2 { overflow: hidden; margin: 1px 0; color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.15; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }.menu-section-pager-button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper); color: var(--ink); text-decoration: none; transition: background .15s ease, color .15s ease, border-color .15s ease; }.menu-section-pager-button:hover, .menu-section-pager-button:focus-visible { background: var(--ink); color: #fff; }.menu-section-pager-button:focus-visible { outline: 3px solid #a5a5a0; outline-offset: 2px; }.menu-section-pager-button.is-disabled { border-color: var(--line); background: var(--soft); color: #aaa9a4; }.menu-section-pager .material-symbols-rounded { font-size: 25px; }.menu-section-counter { color: var(--muted); font-size: 11px; }
.catalog-section { margin-bottom: 38px; }.catalog-section > h2 { margin-bottom: 18px; padding-bottom: 10px; border-bottom: 1px solid var(--rule); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.product-list { display: grid; gap: 22px; }
.product-row { display: grid; grid-template-columns: 78px minmax(0, 1fr) max-content; gap: 16px; align-items: start; min-height: 92px; }
.product-image-column { position: relative; min-width: 0; }
.product-image-column::after { position: absolute; top: 0; right: -8px; width: 1px; height: 78px; background: var(--line); content: ""; }
.product-image { width: 78px; height: 78px; object-fit: cover; object-position: center; background: var(--soft); }.product-image-placeholder { display: grid; place-items: center; color: #a0a09c; font: 28px Georgia, serif; }
.product-calorie-badge { display: block; width: 100%; margin-top: 5px; border: 1px solid var(--line); border-radius: 4px; padding: 3px 1px; background: var(--soft); color: var(--ink); font-size: 10px; font-weight: 800; line-height: 1.2; text-align: center; }
.product-details h3 { margin: -2px 0 3px; color: var(--ink); font-size: 18px; line-height: 1.2; }.product-details p { margin-bottom: 7px; color: var(--text); font-size: 13px; line-height: 1.35; }.product-details span { color: var(--muted); font-size: 11px; }
.product-detail-trigger { display: block; width: 100%; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: left; }.product-detail-trigger:hover h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }.product-detail-trigger:focus-visible { outline: 3px solid #a5a5a0; outline-offset: 4px; }
.product-dietary-tags, .managed-product-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 7px; padding: 0; list-style: none; }.product-dietary-tags li, .managed-product-tags li { border: 1px solid #708567; border-radius: 999px; padding: 2px 6px; color: #3c5436; font-size: 10px; font-weight: 700; }.product-dietary-tags li { background: #fff; }
.customer-menu .product-dietary-tags > li { background-color: #fff !important; }
.product-order button { display: grid; gap: 4px; min-width: 67px; border: 0; padding: 0; background: transparent; color: var(--ink); text-align: right; }.product-order strong { font-size: 14px; }.product-order small { color: var(--muted); font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }.product-order button:hover small { color: var(--ink); }.product-cart-control .quantity-controls { display: none; justify-content: center; gap: 3px; }.product-cart-control .quantity-controls > b { display: grid; place-items: center; min-width: 16px; margin: 0; font-size: 12px; }.product-cart-control .quantity-controls button { display: block; width: 20px; height: 20px; min-width: 0; font-size: 14px; text-align: center; }.product-cart-control.has-items > .product-order-form { display: none; }.product-cart-control.has-items .quantity-controls { display: flex; }
.product-detail-dialog { width: min(100% - 28px, 920px); max-height: calc(100vh - 28px); overflow: auto; border: 1px solid var(--ink); border-radius: 7px; padding: 0; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .28); }.product-detail-dialog::backdrop { background: rgba(17, 17, 17, .38); backdrop-filter: blur(2px); }.product-detail-dialog-content { min-height: 100%; }.product-detail-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); padding: 22px 24px 17px; }.product-detail-dialog-header h2 { margin: 3px 0 0; font-size: 29px; }.product-detail-body { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(245px, .75fr); gap: 24px; padding: 22px 24px 25px; }.product-detail-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-content: start; gap: 9px; }.product-detail-gallery-photo, .product-detail-gallery-placeholder { display: grid; place-items: center; width: 100%; aspect-ratio: 1 / .78; object-fit: cover; background: var(--soft); color: #a0a09c; font: 50px Georgia, serif; }.product-detail-gallery-photo:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; }.product-detail-card { align-self: start; border: 1px solid var(--ink); padding: 20px; background: #fafaf8; }.product-detail-price { margin-bottom: 12px; color: var(--ink); font: 700 25px/1.1 Georgia, "Times New Roman", serif; }.product-detail-description { margin: 0 0 20px; color: var(--text); font-size: 13px; line-height: 1.45; }.product-detail-section { margin-top: 17px; border-top: 1px solid var(--line); padding-top: 13px; }.product-detail-section h3 { margin: 0 0 8px; font: 700 11px/1.2 Arial, Helvetica, sans-serif; letter-spacing: .08em; text-transform: uppercase; }.product-detail-section p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.product-detail-prep { display: flex; align-items: center; gap: 6px; margin: 19px 0 0; color: var(--muted); font-size: 11px; }.product-detail-prep .material-symbols-rounded { font-size: 17px; }.product-detail-order-form { margin-top: 20px; }.product-detail-order-form button { width: 100%; border: 0; padding: 13px 14px; background: var(--ink); color: #fff; font-weight: 700; text-align: left; }.product-detail-order-form button span { float: right; font-size: 18px; }.product-detail-order-form button:hover { background: #353535; }
.product-detail-gallery { position: relative; display: block; min-width: 0; }
.product-detail-gallery-viewport { overflow: hidden; border: 1px solid var(--line); background: var(--soft); }
.product-detail-gallery-slide { position: relative; display: none; margin: 0; }
.product-detail-gallery-slide.is-active { display: block; }
.product-detail-gallery-slide > img, .product-detail-gallery-placeholder { display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 10; object-fit: contain; background: var(--soft); color: #a0a09c; font: 50px Georgia, serif; }
.product-detail-gallery-slide figcaption { position: absolute; right: 12px; bottom: 10px; left: 12px; padding: 6px 8px; background: rgba(255, 255, 255, .88); color: var(--muted); font-size: 11px; text-align: center; }
.product-detail-gallery-nav { position: absolute; top: calc(50% - 22px); z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--ink); border-radius: 50%; padding: 0; background: rgba(255, 255, 255, .92); color: var(--ink); box-shadow: 0 3px 9px rgba(17, 17, 17, .14); }
.product-detail-gallery-nav:hover:not(:disabled), .product-detail-gallery-nav:focus-visible { background: var(--ink); color: #fff; }.product-detail-gallery-nav:focus-visible { outline: 3px solid #a5a5a0; outline-offset: 2px; }.product-detail-gallery-nav:disabled { border-color: var(--line); color: #aaa9a4; cursor: default; opacity: .78; }.product-detail-gallery-prev { left: 12px; }.product-detail-gallery-next { right: 12px; }.product-detail-gallery-nav .material-symbols-rounded { font-size: 25px; }.product-detail-gallery-counter { margin-top: 9px; color: var(--muted); font-size: 11px; text-align: center; }
.product-detail-quantity { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 14px 0 0; border-top: 1px solid var(--line); padding-top: 12px; color: var(--muted); font-size: 12px; }.product-detail-quantity strong { color: var(--ink); font-size: 14px; }
.product-detail-gallery.is-single .product-detail-gallery-nav, .product-detail-gallery.is-single .product-detail-gallery-counter { display: none; }
.product-detail-card { border-color: var(--line); background: #fff; }.product-detail-overview { margin: -20px -20px 18px; border-bottom: 1px solid var(--line); padding: 20px; background: #fafaf8; }.product-detail-price { margin: 0 0 14px; }.product-detail-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 8px; }.product-detail-fact { display: flex; align-items: center; gap: 9px; min-height: 58px; border: 1px solid var(--line); border-radius: 6px; padding: 9px 10px; background: #fff; color: var(--ink); }.product-detail-fact > .material-symbols-rounded { display: grid; flex: 0 0 30px; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--soft); font-size: 18px; }.product-detail-fact > span:last-child { display: grid; gap: 1px; min-width: 0; }.product-detail-fact strong { font-size: 13px; line-height: 1.2; }.product-detail-fact small { color: var(--muted); font-size: 10px; line-height: 1.25; }.product-detail-calories > .material-symbols-rounded { background: #fff0e4; color: #a34b16; }.product-detail-card .product-detail-description { margin: 0 0 18px; }.product-detail-card .product-detail-section { margin-top: 16px; }.product-detail-card .product-detail-quantity { margin-top: 18px; }
.catalog-empty { padding: 35px 0; color: var(--muted); text-align: center; }
.customer-feedback { margin-top: 44px; border-top: 1px solid var(--line); padding-top: 22px; }
.customer-feedback-heading h2 { margin: 3px 0 4px; font-size: 19px; }
.customer-feedback-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.customer-feedback-form { margin-top: 14px; }
.customer-feedback-form textarea { display: block; width: 100%; min-height: 56px; resize: vertical; border: 1px solid var(--line); border-radius: 4px; padding: 10px; background: #fff; color: var(--text); font: 12px/1.4 Arial, Helvetica, sans-serif; }
.customer-feedback-form textarea:focus { outline: 2px solid #a5a5a0; outline-offset: 2px; border-color: var(--ink); }
.customer-feedback-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 7px; }
.customer-feedback-form-footer small { color: var(--muted); font-size: 10px; }
.customer-feedback-form-footer button { border: 1px solid var(--ink); border-radius: 4px; padding: 8px 11px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 700; }
.customer-feedback-form-footer button:hover { background: #353535; }
.customer-feedback-form-footer button:disabled { opacity: .55; cursor: wait; }
.customer-footer { margin-top: 68px; border-top: 1px solid var(--rule); padding: 28px 0 42px; }
.customer-footer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 0; }
.customer-footer-group { display: grid; align-content: start; gap: 8px; }
.customer-footer-group h2 { margin: 0 0 3px; color: var(--muted); font: 700 10px/1.2 Arial, Helvetica, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.customer-footer-group a, .customer-footer-group p { display: flex; align-items: flex-start; gap: 7px; margin: 0; color: var(--ink); font-size: 12px; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; }
.customer-footer-group a:hover { text-decoration: underline; text-underline-offset: 3px; }
.customer-footer-group .material-symbols-rounded, .customer-footer-brand-icon { flex: 0 0 auto; width: 17px; height: 17px; color: var(--muted); font-size: 17px; object-fit: contain; }
.customer-footer-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-top: 28px; border-top: 1px solid var(--line); padding-top: 18px; }
.customer-footer-credit { color: var(--muted); font-size: 10px; letter-spacing: .02em; }
.customer-footer-credit strong { color: var(--ink); font-weight: 700; }
.customer-footer-logo { width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 5px; object-fit: cover; }

/* Carro persistente: el único elemento transaccional destacado. */
.cart-sheet { position: fixed; z-index: 10; right: 0; bottom: 0; left: 0; margin: 0; }.cart-sheet summary { display: flex; align-items: center; justify-content: space-between; width: min(100% - 32px, 590px); margin: 0 auto 16px; border: 0; border-radius: 0; padding: 15px 17px; background: var(--accent); color: #fff; box-shadow: 0 5px 20px rgba(0, 0, 0, .18); font-size: 13px; font-weight: 700; list-style: none; }.cart-sheet summary::-webkit-details-marker { display: none; }.cart-sheet summary strong { font-weight: 700; }.cart-sheet summary b { font-size: 17px; font-weight: 400; }.cart-sheet[open] summary { margin-bottom: 0; }.cart-sheet[open] summary b { transform: rotate(180deg); }
.cart-sheet-content { width: min(100% - 32px, 590px); max-height: min(75vh, 610px); margin: 0 auto; overflow: auto; border: 1px solid var(--ink); border-bottom: 0; background: #fff; box-shadow: 0 -8px 25px rgba(0, 0, 0, .11); overscroll-behavior: contain; }.cart-sheet-content > header { display: flex; align-items: center; justify-content: space-between; padding: 19px 20px 14px; border-bottom: 1px solid var(--line); }.cart-sheet-content header h2 { margin: 0; font-size: 23px; }.cart-sheet-content header > span { display: grid; place-items: center; min-width: 24px; height: 24px; border: 1px solid var(--ink); border-radius: 50%; font-size: 12px; font-weight: 700; }
.cart-sheet-content ul { margin: 0; padding: 0 20px; list-style: none; }.cart-sheet-content li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); }.cart-sheet-content li strong { display: block; font-size: 14px; }.cart-sheet-content li small { color: var(--muted); font-size: 12px; }.quantity-controls { display: flex; align-items: center; gap: 5px; }.quantity-controls > b { margin-right: 5px; font-size: 13px; }.quantity-controls form { display: inline; }.quantity-controls button { width: 24px; height: 24px; border: 1px solid var(--ink); border-radius: 50%; padding: 0; background: #fff; color: var(--ink); line-height: 1; }.quantity-controls button:hover { background: var(--ink); color: #fff; }
.cart-total { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 16px 20px 10px; font-size: 14px; }.cart-total > div { display: grid; gap: 2px; }.cart-total small, .optional-tip small { display: block; color: var(--muted); font-size: 11px; }.cart-total strong { font-size: 17px; white-space: nowrap; }.optional-tip { margin: 0 20px 16px; border-top: 1px solid var(--line); padding-top: 10px; color: var(--text); font-size: 12px; }.optional-tip strong { font-size: 13px; }.optional-tip small { margin-top: 3px; }.confirm-order { padding: 0 20px 20px; }.confirm-order button { width: 100%; border: 0; padding: 15px; background: linear-gradient(105deg, var(--accent) 0%, var(--accent) 38%, #303030 50%, var(--accent) 62%, var(--accent) 100%); background-size: 220% 100%; color: #fff; font-weight: 700; text-align: left; animation: confirm-order-wave 3.8s ease-in-out infinite; }.confirm-order button span { float: right; font-size: 18px; }.confirm-order button:hover { background: #353535; animation-play-state: paused; }.confirm-order p { margin: 8px 0 0; color: var(--muted); font-size: 11px; text-align: center; }
@keyframes confirm-order-wave { from { background-position: 115% 0; } to { background-position: -15% 0; } }
@media (prefers-reduced-motion: reduce) { .confirm-order button { animation: none; } }
/* Operación interna: mantiene contraste y lectura a distancia. */
.menu-header { display: flex; align-items: start; justify-content: space-between; padding: 28px 0 20px; border-bottom: 1px solid var(--rule); }.menu-header h1 { margin: 3px 0 0; font-size: 29px; }.eyebrow { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.hint { margin: 20px 0 28px; color: var(--muted); }.live { padding: 5px 8px; border: 1px solid var(--success); color: var(--success); font-size: 12px; font-weight: 700; }.live i { display: inline-block; width: 7px; height: 7px; margin-right: 4px; border-radius: 50%; background: var(--success); }
.orders { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 14px; }.order-card, .table-card { border: 1px solid var(--ink); background: #fff; }.order-card { position: relative; padding: 17px; border-left-width: 5px; border-left-color: #d5a200; }.order-card.status-preparing { border-left-color: #555; }.order-card.status-ready { border-left-color: var(--success); }.priority-rank { position: absolute; top: -1px; left: -1px; display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 6px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 700; }.order-card header { display: flex; justify-content: space-between; gap: 8px; }.order-card h2 { margin: 2px 0 0; font-size: 20px; }.timer { font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }.order-card ul { margin: 17px 0; padding: 0; list-style: none; }.order-card li { padding: 7px 0; border-bottom: 1px solid var(--line); }.order-card li small { display: block; margin-left: 20px; color: var(--muted); }.actions { text-align: right; }.order-card .actions button, .link-button { border: 0; padding: 9px 12px; background: var(--accent); color: #fff; font-weight: 700; text-decoration: none; }.order-card .actions button:hover, .link-button:hover { background: #353535; }
.tables { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); align-items: start; gap: 13px; }.table-card { padding: 16px; }.table-card h2 { margin: 3px 0; font-size: 27px; }.table-card p { min-height: 34px; color: var(--muted); }.table-status-card { align-self: start; padding: 0; }.table-status-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; cursor: pointer; list-style: none; }.table-status-summary::-webkit-details-marker { display: none; }.table-customer-name { display: block; color: var(--muted); font-size: 12px; font-weight: 700; }.table-progress { display: grid; margin-left: auto; text-align: right; }.table-progress strong { font-size: 16px; }.table-progress span { color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }.table-status-chevron { font-size: 19px; transition: transform .18s ease; }.table-status-card[open] .table-status-chevron { transform: rotate(180deg); }.table-status-content { border-top: 1px solid var(--line); padding: 0 16px 16px; }.table-status-content > p { margin: 14px 0; }.table-order-statuses { margin: 0 0 15px; padding: 0; list-style: none; }.table-order-statuses li { padding: 10px 0; border-top: 1px solid var(--line); }.table-order-statuses li > div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }.table-order-statuses li span { color: #765b00; font-size: 11px; font-weight: 700; }.table-order-statuses li.status-preparing span { color: #34576b; }.table-order-statuses li.status-ready span, .table-order-statuses li.status-delivered span { color: var(--success); }.table-order-statuses small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }.table-orders-empty { font-size: 13px; }.customer-order-notice { min-height: 0 !important; margin-bottom: 0 !important; color: var(--success) !important; font-size: 12px; font-weight: 700; }.table-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; }.table-actions form { display: inline; }.admin-link, .text-button { border: 0; padding: 0; background: transparent; color: var(--ink); font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.service-requests { margin: 0 0 28px; border: 1px solid var(--ink); padding: 16px; }.service-requests h2 { margin: 0 0 10px; font-size: 20px; }.service-requests article { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); padding: 11px 0; }.service-requests article span { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }.customer-feedback-inbox time { flex: 0 0 auto; color: var(--muted); font-size: 11px; }.waiter-header-actions { display: flex; align-items: center; gap: 12px; }.table-picker { width: min(100% - 32px, 560px); border: 1px solid var(--ink); padding: 0; background: #fff; box-shadow: 0 18px 50px rgba(0, 0, 0, .2); }.table-picker::backdrop { background: rgba(17, 17, 17, .3); backdrop-filter: blur(2px); }.table-picker > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }.table-picker h2 { margin: 2px 0 0; font-size: 24px; }.table-picker > p { margin: 0; padding: 20px; color: var(--muted); }.table-picker-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }.table-picker-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.table-picker-list strong { display: block; font-size: 15px; }.table-picker-list span { color: var(--muted); font-size: 12px; }.service-tables-title { margin: 0 0 12px; font-size: 21px; }
.flash { margin: 16px 0; border-left: 4px solid var(--success); padding: 10px 12px; background: #edf6e8; color: #234e28; }.flash.error { border-left-color: #a33427; background: #fae8e5; color: #7a2118; }.flash.warning { border-left-color: #b18c00; background: #fff9dc; color: #715a00; }
.toast-region { position: fixed; z-index: 100; top: 78px; right: 24px; display: grid; gap: 10px; width: min(390px, calc(100vw - 48px)); pointer-events: none; }
.toast { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--ink); border-left: 4px solid var(--success); padding: 12px 11px; background: #fff; color: var(--ink); box-shadow: 5px 5px 0 var(--soft), 0 10px 24px rgba(17, 17, 17, .14); pointer-events: auto; animation: toast-in .2s ease-out both; transition: opacity .2s ease, transform .2s ease; }
.toast.success { border-left-color: var(--success); }.toast.error { border-left-color: #a33427; }.toast.warning { border-left-color: #b18c00; }.toast.info { border-left-color: #34576b; }
.toast.is-dismissing { opacity: 0; transform: translateX(12px); }.toast-icon { color: var(--success); font-size: 20px; }.toast.error .toast-icon { color: #a33427; }.toast.warning .toast-icon { color: #b18c00; }.toast.info .toast-icon { color: #34576b; }
.toast-message { min-width: 0; font-size: 12px; font-weight: 700; line-height: 1.35; }.toast-close { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid var(--line); border-radius: 4px; padding: 0; background: #fff; color: var(--muted); }.toast-close:hover, .toast-close:focus-visible { border-color: var(--ink); color: var(--ink); }.toast-close .material-symbols-rounded { font-size: 17px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 550px) { .toast-region { top: 70px; right: 18px; width: calc(100vw - 36px); } }

.kitchen-header-actions { display: flex; align-items: center; gap: 10px; }.priority-box { display: grid; grid-template-columns: auto auto; column-gap: 10px; min-width: 180px; border: 1px solid var(--ink); padding: 8px 10px; background: #fff; text-align: right; }.priority-box > span { grid-column: 1 / -1; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }.priority-box strong { font-size: 12px; }.priority-box time { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.order-card { margin-top: 14px; padding-top: 27px; overflow: visible; }.priority-rank { top: -14px; left: 12px; min-width: 34px; height: 28px; border: 2px solid #fff; border-radius: 999px; box-shadow: 0 2px 7px rgba(0, 0, 0, .22); }
.customer-name-overlay { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(255, 255, 255, .92); }.customer-name-dialog { width: min(100%, 410px); border: 1px solid var(--ink); padding: 24px; background: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, .12); }.customer-name-dialog h2 { margin: 3px 0 8px; font-size: 25px; line-height: 1.18; }.customer-name-dialog p { color: var(--muted); font-size: 13px; }.customer-name-dialog label { display: block; margin: 20px 0 6px; font-size: 12px; font-weight: 700; }.customer-name-dialog input { width: 100%; border: 1px solid var(--ink); padding: 12px; font: inherit; }.customer-name-dialog button { width: 100%; margin-top: 12px; border: 0; padding: 13px; background: var(--ink); color: #fff; font-weight: 700; text-align: left; }.customer-name-dialog button span { float: right; font-size: 18px; }

@media (max-width: 550px) { .shell { padding: 0 18px 106px; }.customer-header { min-height: 62px; }.customer-wordmark { gap: 8px; font-size: 19px; }.company-logo-slot, .company-logo { flex-basis: 32px; width: 32px; height: 32px; }.store-context { padding: 23px 0 26px; }.product-row { grid-template-columns: 64px minmax(0, 1fr) max-content; gap: 12px; }.product-image-column::after { right: -6px; height: 64px; }.product-image { width: 64px; height: 64px; }.product-details h3 { font-size: 16px; }.product-details p { font-size: 12px; }.product-order strong { font-size: 13px; }.cart-sheet summary, .cart-sheet-content { width: 100%; }.cart-sheet summary { margin-bottom: 0; }.cart-sheet-content { max-height: 76vh; border-right: 0; border-left: 0; }.menu-header h1 { font-size: 25px; }.kitchen-header-actions { align-items: flex-end; flex-direction: column-reverse; }.priority-box { min-width: 155px; }.orders { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .product-detail-dialog { width: calc(100% - 20px); max-height: calc(100vh - 20px); }.product-detail-dialog-header { padding: 18px 18px 15px; }.product-detail-dialog-header h2 { font-size: 25px; }.product-detail-body { grid-template-columns: 1fr; gap: 18px; padding: 17px 18px 20px; }.product-detail-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }.product-detail-card { padding: 17px; } }
@media (max-width: 550px) { .customer-feedback { margin-top: 38px; }.customer-feedback-form-footer button { min-height: 40px; }.customer-footer { margin-top: 52px; padding-bottom: 30px; }.customer-footer-grid { grid-template-columns: 1fr; gap: 21px; margin-top: 0; }.customer-footer-bottom { gap: 10px; }.customer-footer-credit { max-width: 210px; }.customer-footer-logo { width: 44px; height: 44px; } }

/* Gestión de carta: una interfaz de trabajo, no un formulario técnico. */
.menu-management-page .shell { width: min(100%, 1180px); }.menu-management-header { display: flex; align-items: start; justify-content: space-between; gap: 24px; padding: 34px 0 26px; border-bottom: 1px solid var(--rule); }.menu-management-header h1 { margin: 4px 0 7px; font-size: clamp(30px, 4vw, 42px); }.menu-management-header p { max-width: 540px; margin: 0; color: var(--muted); }.menu-management-header-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: 15px; padding-top: 7px; white-space: nowrap; }.menu-management-layout { display: grid; grid-template-columns: minmax(310px, 420px) minmax(0, 1fr); gap: 42px; padding: 30px 0; }.product-editor { align-self: start; border: 1px solid var(--ink); background: #fff; box-shadow: 7px 7px 0 var(--soft); }.product-editor-toggle { display: flex; align-items: start; justify-content: space-between; gap: 16px; padding: 21px 22px 14px; cursor: pointer; list-style: none; }.product-editor-toggle::-webkit-details-marker { display: none; }.product-editor-toggle > .material-symbols-rounded { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; margin-top: 3px; border: 1px solid var(--line); border-radius: 4px; font-size: 20px; transition: transform .15s ease, background .15s ease, color .15s ease; }.product-editor[open] .product-editor-toggle { border-bottom: 1px solid var(--line); }.product-editor[open] .product-editor-toggle > .material-symbols-rounded { transform: rotate(180deg); background: var(--ink); color: #fff; }.product-editor-title, .current-menu h2 { display: block; margin: 3px 0 5px; font-size: 26px; font-weight: 700; line-height: 1.2; }.product-editor-description { display: block; color: var(--muted); font-size: 13px; }.product-create-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 20px 22px 22px; }.form-field { min-width: 0; }.form-field-wide, .save-product-button { grid-column: 1 / -1; }.form-field label { display: block; margin-bottom: 6px; color: var(--ink); font-size: 12px; font-weight: 700; }.form-field input:not([type="checkbox"]), .form-field select, .form-field textarea { width: 100%; border: 1px solid var(--ink); border-radius: 0; padding: 10px; background: #fff; color: var(--text); font: inherit; }.form-field textarea { resize: vertical; line-height: 1.35; }.form-field input[type="file"] { border: 1px dashed var(--muted); padding: 8px; font-size: 12px; }.form-field small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.3; }.form-field-checkbox { display: flex; align-items: center; grid-column: 1 / -1; gap: 8px; padding-top: 1px; }.form-field-checkbox label { margin: 0; }.field-error { display: block; margin-top: 5px; color: #a33427; font-size: 11px; font-weight: 700; }.save-product-button { border: 0; padding: 14px; background: var(--ink); color: #fff; font-weight: 700; text-align: left; }.save-product-button span { float: right; font-size: 18px; }.save-product-button:hover { background: #353535; }.current-menu > header { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }.managed-product-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); align-items: start; gap: 14px; }.managed-product-card { overflow: hidden; border: 1px solid var(--ink); background: #fff; }.managed-product-card > img, .managed-product-image-placeholder { display: grid; place-items: center; width: 100%; height: 150px; border-bottom: 1px solid var(--ink); background: var(--soft); object-fit: cover; color: #aaa; font: 44px Georgia, serif; }.managed-product-card > div { padding: 15px; }.managed-product-card h3 { margin: 5px 0 6px; font-size: 21px; }.managed-product-card p { min-height: 38px; margin: 0 0 13px; color: var(--muted); font-size: 12px; line-height: 1.35; }.product-category-label { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.managed-product-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 12px; }.managed-product-meta span { border-left: 1px solid var(--line); padding-left: 8px; color: var(--muted); }.managed-product-card.is-unavailable { opacity: .62; }.managed-product-card.is-unavailable .managed-product-meta span:last-child { color: #a33427; font-weight: 700; }
.currency-picker { display: inline-flex; align-items: center; gap: 6px; }.currency-picker select, .currency-picker button { height: 31px; border: 1px solid var(--ink); padding: 0 8px; background: #fff; color: var(--ink); font: 700 11px Arial, Helvetica, sans-serif; }.currency-picker button { background: var(--ink); color: #fff; cursor: pointer; }
.form-field-tags { width: 100%; }.form-field-tags > label { margin-bottom: 8px; }.tag-multiselect { display: block; width: 100%; max-width: none; box-sizing: border-box; border: 1px solid var(--ink); background: #fff; }.tag-multiselect summary { display: flex; align-items: center; gap: 10px; min-height: 43px; padding: 7px 10px; cursor: pointer; color: var(--text); font-size: 13px; font-weight: 700; list-style: none; }.tag-multiselect summary::-webkit-details-marker { display: none; }.tag-selection-preview { display: flex; flex: 1; align-items: center; gap: 5px; min-width: 0; overflow: hidden; white-space: nowrap; }.tag-multiselect.has-overflow .tag-selection-preview { flex: 0 0 70%; }.tag-selection-placeholder { color: var(--muted); font-size: 12px; }.selected-tag-chip, .tag-multiselect summary b { display: inline-grid; flex: 0 0 auto; place-items: center; height: 24px; padding: 0 8px; background: var(--soft); color: var(--ink); font-size: 11px; font-weight: 700; }.tag-multiselect summary b { min-width: 26px; margin-left: auto; background: var(--ink); color: #fff; cursor: help; }.tag-multiselect summary b[hidden] { display: none; }.tag-multiselect-arrow { flex: 0 0 auto; font-family: 'Material Symbols Rounded'; font-size: 22px; font-style: normal; font-weight: normal; line-height: 1; transition: transform .15s ease; }.tag-multiselect[open] .tag-multiselect-arrow { transform: rotate(180deg); }.tag-multiselect > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 16px; border-top: 1px solid var(--line); padding: 6px 10px; }.tag-multiselect > div label { display: flex; align-items: center; margin: 0; padding: 7px 0; color: var(--text); font-size: 12px; font-weight: 700; }.tag-multiselect input { width: auto; margin: 0 7px 0 0; }.managed-product-tags { margin-top: -5px; }
.product-create-form input::placeholder, .product-create-form textarea::placeholder { color: #92928e; opacity: 1; }.product-create-form input:not([type="checkbox"]), .product-create-form select, .product-create-form textarea { transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }.product-create-form input:not([type="checkbox"]):focus, .product-create-form select:focus, .product-create-form textarea:focus { outline: 0; border-color: var(--ink); background: #fff; box-shadow: 3px 3px 0 #e6e6e2; }.tag-multiselect { border-color: #bdbdb8; border-radius: 5px; overflow: hidden; transition: border-color .15s ease, box-shadow .15s ease; }.tag-multiselect:hover { border-color: #73736f; }.tag-multiselect:focus-within { border-color: var(--ink); box-shadow: 3px 3px 0 #e6e6e2; }.tag-multiselect summary { min-height: 48px; padding: 7px 8px 7px 12px; background: #fff; }.tag-multiselect summary:hover { background: #fafaf8; }.tag-selection-placeholder { color: #777773; font-size: 13px; font-weight: 400; }.selected-tag-chip { height: 26px; border: 1px solid #d4d4cf; border-radius: 999px; background: #f6f6f3; font-weight: 600; }.tag-multiselect summary b { height: 26px; border-radius: 999px; }.tag-multiselect-arrow { display: grid; place-items: center; width: 32px; height: 32px; margin-left: 1px; border-radius: 4px; background: #f1f1ee; color: var(--ink); font-size: 21px; }.tag-multiselect[open] .tag-multiselect-arrow { background: var(--ink); color: #fff; }.tag-multiselect > div { gap: 0 20px; padding: 8px 12px 10px; background: #fcfcfa; }.tag-multiselect > div label { padding: 8px 0; font-weight: 600; }.tag-multiselect input { accent-color: var(--ink); }
.price-input { position: relative; }.price-input input { padding-right: 58px !important; }.price-input span { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); border: 1px solid #d1d1cc; border-radius: 3px; padding: 3px 6px; background: #f4f4f1; color: #555550; font-size: 10px; font-weight: 700; letter-spacing: .05em; }
.portion-input-group { display: grid; grid-template-columns: minmax(0, 1fr) 70px; }.portion-input-group input { min-width: 0; border-right: 0 !important; border-radius: 4px 0 0 4px !important; }.portion-input-group select { min-width: 0; border-radius: 0 4px 4px 0 !important; }.portion-input-group:focus-within { outline: 2px solid var(--ink); outline-offset: 2px; }.portion-input-group input:focus, .portion-input-group select:focus { outline: 0; box-shadow: none !important; }
.product-create-image-upload { width: 100%; margin: 0; }.product-create-image-upload > [data-product-create-image-label] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.product-create-image-hint { display: block; margin-top: 7px; }
.required-marker { margin-left: 3px; color: #b42318; font-weight: 800; }.product-create-form.was-validated .form-field.is-invalid input:not([type="checkbox"]), .product-create-form.was-validated .form-field.is-invalid select, .product-create-form.was-validated .form-field.is-invalid textarea { border-color: #b42318; box-shadow: 3px 3px 0 #f8dfdc; }.product-create-form.was-validated .form-field.is-invalid label { color: #8d2118; }
.location-settings-trigger { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--ink); border-radius: 4px; padding: 7px 9px; background: #fff; color: var(--ink); font: 700 12px Arial, Helvetica, sans-serif; }.location-settings-trigger .material-symbols-rounded { font-size: 17px; }.location-settings-trigger:hover { background: var(--ink); color: #fff; }.location-settings { width: min(100% - 32px, 470px); border: 1px solid var(--ink); border-radius: 6px; padding: 0; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .22); }.location-settings::backdrop { background: rgba(17, 17, 17, .32); backdrop-filter: blur(2px); }.location-settings > header { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding: 22px 22px 18px; border-bottom: 1px solid var(--line); }.location-settings h2 { margin: 3px 0 5px; font-size: 26px; }.location-settings p { margin: 0; color: var(--muted); font-size: 13px; }.dialog-close { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 4px; padding: 0; background: #fff; color: var(--ink); }.dialog-close:hover { border-color: var(--ink); background: var(--soft); }.dialog-close .material-symbols-rounded { font-size: 19px; }.location-settings form { padding: 20px 22px 0; }.location-setting { padding: 0 0 20px; }.location-setting label, .setting-name { display: block; margin-bottom: 5px; color: var(--ink); font-size: 13px; font-weight: 700; }.location-setting p { margin-bottom: 11px; }.location-setting select { width: 100%; border: 1px solid var(--ink); border-radius: 4px; padding: 11px; background: #fff; color: var(--text); font: inherit; }.save-location-settings { width: 100%; border: 0; border-radius: 4px; padding: 13px 14px; background: var(--ink); color: #fff; font-weight: 700; text-align: left; }.save-location-settings:hover { background: #353535; }.save-location-settings span { float: right; font-size: 18px; }.setting-upcoming { margin: 22px 22px 0; border-top: 1px solid var(--line); padding-top: 18px; }.setting-upcoming > div { display: flex; justify-content: space-between; gap: 12px; }.setting-upcoming strong { color: var(--muted); font-size: 13px; }.setting-upcoming p { margin-top: 5px; }
.menu-management-header-actions { align-items: center; gap: 8px; padding-top: 0; }.location-settings-trigger, .menu-header-action { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; border: 1px solid var(--ink); border-radius: 4px; padding: 0 11px; font: 700 12px Arial, Helvetica, sans-serif; text-decoration: none; white-space: nowrap; }.location-settings-trigger { background: var(--ink); color: #fff; }.location-settings-trigger:hover { background: #353535; }.menu-header-action { background: #fff; color: var(--ink); }.menu-header-action:hover { background: var(--soft); }.location-settings-trigger .material-symbols-rounded, .menu-header-action .material-symbols-rounded { font-size: 18px; }.menu-management-header-actions > :last-child { border-color: var(--line); color: #555550; }.menu-management-header-actions > :last-child:hover { border-color: var(--ink); color: var(--ink); }
.enhanced-select-source { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; border: 0 !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }.single-select { position: relative; }.single-select > .single-select-options { grid-template-columns: 1fr; gap: 0; max-height: 220px; overflow: auto; padding: 5px; }.single-select-option, .single-select-options button { width: 100%; border: 0; border-radius: 3px; padding: 10px; background: transparent; color: var(--text); font: 600 12px Arial, Helvetica, sans-serif; text-align: left; }.single-select-options button:hover { background: #f0f0ed; }.single-select-options button[data-selected] { background: var(--ink); color: #fff; }.single-select-options button[data-selected]::after { float: right; font-family: 'Material Symbols Rounded'; font-size: 16px; content: 'check'; }
.product-unavailable-state { display: inline-block; border: 1px solid #b8b8b3; border-radius: 999px; padding: 5px 7px; color: #666661; font-size: 11px; font-weight: 700; white-space: nowrap; }.product-status-form { margin-top: 14px; }.product-status-form .single-select summary { min-height: 38px; height: 38px; padding-left: 9px; font-size: 12px; }.product-status-form .tag-multiselect-arrow { width: 28px; height: 28px; font-size: 18px; }.product-status-form .single-select > .single-select-options { max-height: 150px; }.product-status-form .single-select-options button { padding: 8px; }
.tag-multiselect summary { min-height: 44px; height: 44px; padding-top: 5px; padding-bottom: 5px; }
@media (max-width: 760px) { .menu-management-header { display: block; padding-top: 25px; }.menu-management-header-actions { justify-content: start; padding-top: 18px; }.menu-management-layout { grid-template-columns: 1fr; gap: 35px; }.product-editor { max-width: none; }.current-menu > header { align-items: start; }.managed-product-list { grid-template-columns: 1fr; } }

.company-logo-form { border-bottom: 1px solid var(--line); }.company-logo-preview { display: grid; place-items: center; width: 86px; height: 86px; margin: 0 0 12px; overflow: hidden; border: 1px solid var(--ink); border-radius: 6px; background: var(--soft); color: var(--muted); font-size: 11px; font-weight: 700; }.company-logo-preview img { width: 100%; height: 100%; object-fit: cover; }.company-banner-preview { display: grid; place-items: center; width: min(100%, 420px); height: 128px; margin: 0 0 12px; overflow: hidden; border: 1px solid var(--ink); border-radius: 6px; background: var(--soft); color: var(--muted); font-size: 11px; font-weight: 700; }.company-banner-preview img { width: 100%; height: 100%; object-fit: cover; }.settings-logo-upload { display: flex; align-items: center; gap: 10px; width: min(100%, 360px); min-height: 64px; border: 1px dashed #85857f; border-radius: 5px; padding: 10px 12px; background: #fafaf8; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }.settings-logo-upload:hover, .settings-logo-upload:focus-visible { border-color: var(--ink); background: var(--soft); }.settings-logo-upload .material-symbols-rounded { font-size: 22px; }.settings-logo-upload > span:last-of-type { display: grid; min-width: 0; gap: 2px; }.settings-logo-upload strong { font-size: 13px; }.settings-logo-upload small { overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.company-logo-form [data-location-logo-input], .company-banner-form [data-location-banner-input] { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }.settings-logo-upload-status { min-height: 18px; margin: 7px 0 0 !important; color: var(--success) !important; font-size: 11px !important; font-weight: 700; }

/* Garzón IA: la conversación es la experiencia principal y la carta queda como respaldo. */
.ai-menu { padding-top: 24px; }.ai-chat { overflow: hidden; border: 1px solid var(--ink); border-radius: 14px; background: linear-gradient(145deg, #fff 0%, #fafaf8 100%); box-shadow: 0 12px 34px rgba(17, 17, 17, .07); }.ai-chat-header { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding: 25px 24px 21px; border-bottom: 1px solid var(--line); }.ai-chat-header .location-kicker { display: inline-flex; align-items: center; gap: 5px; }.ai-chat-header .location-kicker .material-symbols-rounded { font-size: 15px; }.ai-chat-header h2 { margin: 7px 0 7px; font-size: clamp(25px, 5vw, 32px); }.ai-chat-header p { max-width: 440px; margin: 0; color: var(--muted); font-size: 13px; }.ai-status { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; margin-top: 4px; border: 1px solid #cbd9cc; border-radius: 999px; padding: 5px 8px; background: #f6fbf6; color: #356a3d; font-size: 10px; font-weight: 800; white-space: nowrap; }.ai-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }.ai-chat-messages { display: grid; gap: 15px; min-height: 150px; max-height: min(49vh, 490px); overflow: auto; padding: 22px 20px 10px; scroll-behavior: smooth; }.ai-message { display: flex; align-items: flex-start; gap: 9px; max-width: 93%; }.ai-message-avatar { display: grid; flex: 0 0 auto; place-items: center; width: 29px; height: 29px; border-radius: 9px; background: var(--ink); color: #fff; font-size: 16px; }.ai-message-content { min-width: 0; border: 1px solid #deded9; border-radius: 4px 13px 13px 13px; padding: 11px 13px; background: #fff; }.ai-message-content > p { margin: 0; font-size: 14px; line-height: 1.45; }.ai-message-customer { align-self: end; flex-direction: row-reverse; }.ai-message-customer .ai-message-avatar { background: #e9e9e5; color: var(--ink); }.ai-message-customer .ai-message-content { border-color: var(--ink); border-radius: 13px 4px 13px 13px; background: var(--ink); color: #fff; }.ai-message-loading .ai-message-content { color: var(--muted); font-size: 13px; }.ai-message-loading .ai-message-content::after { display: inline-block; width: 14px; content: "…"; overflow: hidden; vertical-align: bottom; animation: ai-ellipsis 1.1s steps(4, end) infinite; }@keyframes ai-ellipsis { from { width: 0; } to { width: 14px; } }.ai-quick-prompts { display: flex; flex-wrap: wrap; gap: 7px; padding: 10px 20px 17px 58px; }.ai-quick-prompts button { border: 1px solid #c9c9c4; border-radius: 999px; padding: 8px 10px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; }.ai-quick-prompts button:hover { border-color: var(--ink); background: var(--soft); }.ai-chat-composer { display: flex; align-items: end; gap: 8px; margin: 0 20px; border: 1px solid var(--ink); border-radius: 10px; padding: 6px; background: #fff; }.ai-chat-composer:focus-within { box-shadow: 3px 3px 0 #dfdfda; }.ai-chat-composer textarea { min-height: 33px; max-height: 120px; flex: 1; border: 0; padding: 7px 8px; resize: none; outline: 0; background: transparent; color: var(--ink); font: inherit; line-height: 1.3; }.ai-chat-composer textarea::placeholder { color: #888884; }.ai-chat-composer button { display: grid; flex: 0 0 auto; place-items: center; width: 35px; height: 35px; border: 0; border-radius: 7px; padding: 0; background: var(--ink); color: #fff; }.ai-chat-composer button:hover { background: #3d3d3a; }.ai-chat-composer button:disabled { opacity: .55; }.ai-chat-composer button .material-symbols-rounded { font-size: 19px; }.ai-chat-disclaimer { margin: 10px 24px 19px; color: var(--muted); font-size: 11px; line-height: 1.35; }.ai-suggestions { display: grid; gap: 7px; margin-top: 12px; }.ai-suggestion { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; border-top: 1px solid var(--line); padding-top: 10px; }.ai-suggestion > div > span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.ai-suggestion h3 { margin: 3px 0 3px; font-size: 17px; }.ai-suggestion p { margin: 0 0 5px; color: var(--muted); font-size: 12px; line-height: 1.35; }.ai-suggestion small { color: var(--muted); font-size: 11px; font-weight: 700; }.ai-suggestion .product-order-form button { display: inline-flex; align-items: center; gap: 3px; border: 1px solid var(--ink); border-radius: 5px; padding: 7px 9px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 800; }.ai-suggestion .product-order-form button:hover { background: #353535; }.ai-suggestion .material-symbols-rounded { font-size: 16px; }.full-menu { margin-top: 17px; border-top: 1px solid var(--line); }.full-menu > summary { display: flex; align-items: center; justify-content: space-between; min-height: 59px; cursor: pointer; color: var(--ink); font-size: 13px; font-weight: 800; list-style: none; }.full-menu > summary::-webkit-details-marker { display: none; }.full-menu > summary > span:first-child { display: inline-flex; align-items: center; gap: 8px; }.full-menu > summary > span:last-child { font-size: 21px; transition: transform .15s ease; }.full-menu[open] > summary > span:last-child { transform: rotate(180deg); }.full-menu .menu-catalog { padding-top: 0; }
.ai-suggestion-select { display: inline-flex; align-items: center; gap: 3px; border: 1px solid var(--ink); border-radius: 5px; padding: 7px 9px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 800; }.ai-suggestion-select:hover { background: #353535; }
.ai-open-cart { display: inline-flex; align-items: center; gap: 5px; margin-top: 11px; border: 1px solid var(--ink); border-radius: 5px; padding: 8px 10px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 800; }.ai-open-cart:hover { background: var(--ink); color: #fff; }.ai-open-cart .material-symbols-rounded { font-size: 16px; }
.ai-waiter-trigger { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #6130b7; border-radius: 999px; padding: 7px 10px; background: linear-gradient(135deg, #7c3aed 0%, #a855f7 48%, #4f46e5 100%); color: #fff; box-shadow: 0 5px 14px rgba(109, 40, 217, .26); font: 700 12px Arial, Helvetica, sans-serif; }.ai-waiter-trigger:hover { border-color: #4c1d95; background: linear-gradient(135deg, #6d28d9 0%, #9333ea 48%, #4338ca 100%); color: #fff; }.ai-waiter-trigger:focus-visible { outline: 3px solid #c4b5fd; outline-offset: 2px; }.ai-waiter-trigger .material-symbols-rounded { font-size: 17px; }.ai-waiter-floating-label { display: none; }.ai-chat-dialog { width: min(calc(100% - 32px), 640px); max-width: calc(100% - 32px); max-height: calc(100dvh - 32px); overflow: hidden; border: 1px solid var(--ink); border-radius: 14px; padding: 0; background: #fff; box-shadow: 0 28px 80px rgba(0, 0, 0, .28); overscroll-behavior: contain; }.ai-chat-dialog::backdrop { background: rgba(17, 17, 17, .42); backdrop-filter: blur(3px); }.ai-chat-dialog .ai-chat { border: 0; border-radius: 0; box-shadow: none; }.ai-chat-header-actions { display: flex; align-items: center; gap: 8px; }.ai-chat-dialog .dialog-close { flex: 0 0 auto; }
.ai-chat-dialog { height: calc(100dvh - 32px); }.ai-chat-dialog .ai-chat { display: flex; flex-direction: column; height: 100%; min-height: 0; }.ai-chat-dialog .ai-chat-messages { flex: 1 1 auto; min-height: 0; max-height: none; overflow-y: auto; overscroll-behavior: contain; }body.customer-menu:has(.ai-chat-dialog[open]) { overflow: hidden; overscroll-behavior: none; }
@media (max-width: 550px) { .ai-suggestion-select { justify-content: center; width: 100%; min-height: 36px; } }
@media (max-width: 550px) { .ai-chat-dialog .ai-chat { margin: 0; border: 0; }.ai-chat-dialog .ai-chat-header { padding: 22px 18px 18px; }.ai-chat-dialog .ai-status { display: none; }.ai-chat-dialog .ai-chat-messages { max-height: none; }.ai-chat-dialog .ai-quick-prompts { padding-right: 18px; padding-left: 18px; }.ai-chat-dialog .ai-chat-composer { margin-right: 18px; margin-left: 18px; }.ai-chat-dialog .ai-chat-disclaimer { margin-right: 18px; margin-left: 18px; } }
@media (max-width: 550px) { .service-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }.service-request-form, .service-request-form button, .ai-waiter-trigger { width: 100%; min-width: 0; }.service-request-form button, .ai-waiter-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 43px; padding: 6px 4px; font-size: 11px; white-space: nowrap; }.service-request-form button .material-symbols-rounded, .ai-waiter-trigger .material-symbols-rounded { font-size: 17px; }.service-label-full { display: none; }.service-label-short { display: inline; } }
@media (min-width: 551px) { .service-label-short { display: none; } }

/* La carta vuelve a ser la vista principal: conserva un respiro respecto de las acciones de mesa. */
main#menu.menu-catalog { padding-top: 34px; }
.store-context:has(.service-actions) { padding-bottom: 18px; }.store-context .service-actions { margin-top: 16px; border-bottom: 0; padding: 0; }
.store-context.has-menu-pager { border-bottom: 0; }
main#menu.menu-catalog.has-menu-pager { padding-top: 12px; }main#menu.menu-catalog.has-menu-pager .menu-section-pager { margin: 0 0 24px; }
@media (max-width: 550px) { main#menu.menu-catalog { padding-top: 28px; }.service-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }.service-request-form, .service-request-form button, .ai-waiter-trigger { width: 100%; min-width: 0; }.service-request-form button, .ai-waiter-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 43px; padding: 6px 4px; font-size: 11px; white-space: nowrap; } }

@media (max-width: 550px) { .ai-menu { padding-top: 18px; }.ai-chat { border-right: 0; border-left: 0; border-radius: 0; margin-right: -18px; margin-left: -18px; }.ai-chat-header { padding: 22px 18px 18px; }.ai-chat-header h2 { font-size: 26px; }.ai-status { display: none; }.ai-chat-messages { max-height: min(46vh, 430px); padding: 18px 18px 8px; }.ai-message { max-width: 97%; }.ai-message-content { padding: 10px 11px; }.ai-quick-prompts { flex-wrap: nowrap; overflow: auto; padding: 10px 18px 16px; }.ai-quick-prompts button { white-space: nowrap; }.ai-chat-composer { margin: 0 18px; }.ai-chat-disclaimer { margin-right: 18px; margin-left: 18px; }.full-menu { margin-right: -18px; margin-left: -18px; padding: 0 18px; }.ai-suggestion { grid-template-columns: 1fr; align-items: start; }.ai-suggestion .product-order-form button { width: 100%; justify-content: center; min-height: 36px; } }

/* Galería de fotos del plato: una foto principal y hasta cuatro complementarias. */
.edit-product-gallery { display: inline-flex; align-items: center; gap: 5px; margin-top: 13px; border: 1px solid var(--line); border-radius: 4px; padding: 7px 8px; background: #fff; color: var(--ink); font: 700 11px Arial, Helvetica, sans-serif; }.edit-product-gallery:hover { border-color: var(--ink); background: var(--soft); }.edit-product-gallery .material-symbols-rounded { font-size: 17px; }.edit-product-gallery > span:last-child { color: var(--muted); }.product-gallery-dialog { width: min(100% - 30px, 940px); max-height: min(860px, calc(100vh - 30px)); overflow: auto; border: 1px solid var(--ink); border-radius: 7px; padding: 0; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .28); }.product-gallery-dialog::backdrop { background: rgba(17, 17, 17, .38); backdrop-filter: blur(2px); }.product-gallery-dialog > form > header { display: flex; align-items: start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); padding: 23px 24px 18px; }.product-gallery-dialog h2 { margin: 3px 0 5px; font-size: 27px; }.product-gallery-dialog header p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }.product-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: 13px; padding: 20px 24px 12px; }.product-photo-card { position: relative; overflow: hidden; border: 1px solid #c9c9c4; border-radius: 5px; background: #fafaf8; transition: opacity .15s ease, transform .15s ease, border-color .15s ease; }.product-photo-card:hover { border-color: var(--ink); }.product-photo-card.is-dragging { opacity: .44; transform: scale(.97); }.product-photo-card.is-removed { opacity: .38; filter: grayscale(1); }.product-photo-card img { display: block; width: 100%; aspect-ratio: 1 / .78; object-fit: cover; background: var(--soft); }.product-photo-card-controls { position: absolute; top: 7px; right: 7px; left: 7px; display: flex; justify-content: flex-end; gap: 3px; }.product-photo-card-controls button, .photo-drag-handle { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid rgba(17, 17, 17, .18); border-radius: 3px; padding: 0; background: rgba(255, 255, 255, .94); color: var(--ink); }.product-photo-card-controls button:hover { background: var(--ink); color: #fff; }.product-photo-card-controls .material-symbols-rounded, .photo-drag-handle { font-size: 17px; }.photo-drag-handle { margin-right: auto; cursor: grab; }.photo-label-field { display: block; margin: 9px 9px 7px; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }.photo-label-field input { box-sizing: border-box; width: 100%; margin-top: 4px; border: 1px solid #c9c9c4; border-radius: 3px; padding: 7px; background: #fff; color: var(--ink); font: 400 12px Arial, Helvetica, sans-serif; text-transform: none; }.photo-primary-choice, .photo-remove-choice { display: inline-flex; align-items: center; gap: 5px; margin: 0 0 10px 9px; color: var(--ink); font-size: 11px; font-weight: 700; }.photo-remove-choice { color: #8c2727; }.photo-primary-choice input, .photo-remove-choice input { width: auto; margin: 0; accent-color: var(--ink); }.gallery-upload-control { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 52px; margin: 0 24px; border: 1px dashed #85857f; border-radius: 5px; background: #fafaf8; color: var(--ink); font-size: 12px; font-weight: 700; cursor: pointer; }.gallery-upload-control:hover { border-color: var(--ink); background: var(--soft); }.gallery-upload-control input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }.gallery-upload-control .material-symbols-rounded { font-size: 20px; }.gallery-upload-hint { margin: 8px 24px 0; color: var(--muted); font-size: 11px; }.product-gallery-dialog footer { display: flex; justify-content: flex-end; gap: 9px; padding: 20px 24px 24px; }.product-gallery-dialog .save-product-button { width: auto; min-height: 40px; margin: 0; padding: 0 13px; }.gallery-cancel { border: 1px solid var(--line); border-radius: 4px; padding: 0 13px; background: #fff; color: var(--ink); font: 700 12px Arial, Helvetica, sans-serif; }.gallery-cancel:hover { border-color: var(--ink); background: var(--soft); }

/* Indicadores explícitos de apertura/cierre con Google Material Symbols. */
.disclosure-icon-up { display: none !important; }.disclosure-icon-down, .disclosure-icon-up { transform: none !important; }.account-menu[open] .account-menu-chevron, .tag-multiselect[open] .tag-multiselect-arrow, .table-status-card[open] .table-status-chevron { transform: none; }details[open] .disclosure-icon-down { display: none !important; }details[open] .disclosure-icon-up { display: grid !important; }.cart-sheet-toggle-icon { font-size: 22px; line-height: 1; }
.cart-sheet:not([open]) .disclosure-icon-down { display: none !important; }.cart-sheet:not([open]) .disclosure-icon-up { display: grid !important; }.cart-sheet[open] .disclosure-icon-down { display: grid !important; }.cart-sheet[open] .disclosure-icon-up { display: none !important; }

/* Navegación y encabezados de operación: prioridades claras en pantallas estrechas. */
@media (max-width: 700px) {
  .auth-layout { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .auth-intro { min-height: 230px; padding: 28px 24px; }
  .auth-intro-copy { margin: auto 0 0; }
  .auth-intro h1 { max-width: 510px; margin-bottom: 8px; font-size: clamp(31px, 9vw, 44px); }
  .auth-intro-copy p { max-width: 520px; font-size: 14px; }
  .auth-intro-footer { display: none; }
  .auth-panel { place-items: start center; padding: 38px 24px 52px; }
}

@media (max-width: 550px) {
  .app-navigation { min-height: 60px; }
  .app-navigation-brand { font-size: 13px; }
  .account-menu-name { display: none; }
  .account-menu summary { gap: 3px; padding: 0 5px; }
  .account-menu-panel { position: fixed; top: 67px; right: 18px; left: 18px; min-width: 0; }
  .menu-header { display: block; padding: 22px 0 18px; }
  .menu-header > div:first-child { margin-bottom: 17px; }
  .menu-header h1 { font-size: 27px; }
  .waiter-header-actions, .kitchen-header-actions { align-items: stretch; flex-wrap: wrap; gap: 8px; }
  .waiter-header-actions .link-button { flex: 1 0 100%; min-height: 44px; text-align: center; }
  .waiter-header-actions .admin-link { display: inline-flex; align-items: center; min-height: 40px; padding: 0 3px; }
  .kitchen-header-actions { flex-direction: row; justify-content: space-between; }
  .priority-box { flex: 1 1 155px; min-width: 0; }
  .customer-header { align-items: flex-start; gap: 10px; padding: 13px 0; }
  .customer-header-actions { flex-shrink: 0; gap: 6px; }
  .table-badge, .leave-table-link { min-height: 34px; padding: 7px; }
  .leave-table-link { font-size: 0; }
  .leave-table-link span { font-size: 19px; }
  .menu-management-header-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .menu-management-header-actions > :first-child { grid-column: 1 / -1; }
  .menu-header-action, .location-settings-trigger { min-height: 42px; padding: 0 8px; }
  .menu-section-pager { grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 8px; margin-top: 18px; padding: 9px 0 10px; }
  .menu-section-pager-button { width: 42px; height: 42px; }
  .menu-section-pager h2 { font-size: 13px; letter-spacing: .04em; }
  .auth-intro { min-height: 200px; }
  .auth-intro-copy p { display: none; }
  .auth-card h2 { font-size: 30px; }
}

/* Configuración: vista de secciones consistente con la gestión de carta. */
.settings-page .shell { width: min(100%, 1040px); }
.settings-page-header { display: flex; align-items: start; justify-content: space-between; gap: 24px; padding: 34px 0 26px; border-bottom: 1px solid var(--rule); }
.settings-page-header h1 { margin: 4px 0 7px; font-size: clamp(30px, 4vw, 42px); }
.settings-page-header p { max-width: 520px; margin: 0; color: var(--muted); }
.settings-back { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; min-height: 38px; border: 1px solid var(--ink); border-radius: 4px; padding: 0 11px; background: #fff; color: var(--ink); font: 700 12px Arial, Helvetica, sans-serif; text-decoration: none; }
.settings-back:hover { background: var(--soft); }
.settings-back .material-symbols-rounded { font-size: 18px; }
.settings-layout { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 38px; padding: 30px 0; }
.settings-navigation { position: sticky; top: 82px; align-self: start; display: grid; gap: 4px; border: 1px solid var(--line); padding: 7px; background: #fafaf8; }
.settings-navigation a { display: flex; align-items: center; gap: 9px; min-height: 40px; padding: 0 10px; color: var(--ink); font-size: 12px; font-weight: 700; text-decoration: none; }
.settings-navigation a:hover { background: #fff; }
.settings-navigation .material-symbols-rounded { color: var(--muted); font-size: 19px; }
.settings-sections { display: grid; gap: 18px; }
.settings-section { border: 1px solid var(--ink); background: #fff; }
.settings-section > header { display: flex; align-items: start; gap: 13px; padding: 20px 22px 17px; border-bottom: 1px solid var(--line); }
.settings-section-icon { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; background: var(--ink); color: #fff; font-size: 18px; }
.settings-section h2 { margin: 1px 0 4px; font-size: 23px; }
.settings-section header p { margin: 0; color: var(--muted); font-size: 13px; }
.settings-form, .settings-readonly { padding: 20px 22px 22px; }
.settings-field label { display: block; margin-bottom: 5px; color: var(--ink); font-size: 13px; font-weight: 700; }
.settings-field p { margin: 0 0 12px; color: var(--muted); font-size: 12px; }
.settings-field select, .settings-field input { width: min(100%, 360px); border: 1px solid var(--ink); border-radius: 4px; padding: 11px; background: #fff; color: var(--text); font: inherit; }
.settings-field input[type="color"] { width: 72px; height: 42px; padding: 3px; cursor: pointer; }
.settings-public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.settings-public-grid .settings-field input { width: 100%; }
.public-info-form .settings-save { margin-top: 22px; }
.settings-save { min-width: 190px; margin-top: 18px; border: 0; border-radius: 4px; padding: 12px 14px; background: var(--ink); color: #fff; font-weight: 700; text-align: left; }
.settings-save:hover { background: #353535; }
.settings-save span { float: right; font-size: 18px; }
.settings-readonly { display: grid; gap: 3px; border-bottom: 1px solid var(--line); background: #fafaf8; }
.settings-readonly span { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.settings-readonly strong { font-size: 14px; }
.settings-readonly small { margin-top: 2px; color: var(--muted); font-size: 12px; }
.settings-section .company-logo-form { border: 0; }
.account-menu-panel a.is-current { background: var(--soft); }
.account-menu-panel a.is-current .material-symbols-rounded { color: var(--ink); }

@media (max-width: 760px) {
  .settings-page-header { display: block; padding-top: 25px; }
  .settings-back { margin-top: 18px; }
  .settings-layout { grid-template-columns: 1fr; gap: 20px; }
  .settings-navigation { position: static; grid-template-columns: repeat(2, 1fr); gap: 0; padding: 0; }
  .settings-navigation a { justify-content: center; gap: 5px; min-height: 46px; padding: 0 7px; font-size: 11px; text-align: center; }
  .settings-navigation .material-symbols-rounded { font-size: 17px; }
  .settings-public-grid { grid-template-columns: 1fr; gap: 15px; }
}

/* Navegación del equipo: acceso compacto que abre un panel de destinos por contexto. */
.app-navigation { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px; }
.app-navigation-brand { justify-self: center; }
.team-navigation-menu { position: static; justify-self: start; }
.team-navigation-menu > summary { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; border-radius: 7px; padding: 0 8px; color: var(--ink); cursor: pointer; font-size: 12px; font-weight: 800; letter-spacing: .02em; list-style: none; }
.team-navigation-menu > summary::-webkit-details-marker { display: none; }
.team-navigation-menu > summary:hover, .team-navigation-menu[open] > summary { background: var(--soft); }
.team-navigation-menu > summary > .material-symbols-rounded { font-size: 21px; }
.team-navigation-menu-close { display: none; }
.team-navigation-menu[open] .team-navigation-menu-close { display: inline; }
.team-navigation-menu[open] > summary > .material-symbols-rounded:first-child { display: none; }
.team-navigation-panel { position: absolute; z-index: 41; top: calc(100% + 1px); right: 0; left: 0; display: grid; grid-template-columns: minmax(185px, .72fr) minmax(0, 1.28fr); min-height: 248px; overflow: hidden; border: 1px solid var(--ink); background: var(--paper); box-shadow: 0 18px 44px rgba(17, 17, 17, .18); }
.team-navigation-panel-intro { display: flex; flex-direction: column; justify-content: flex-end; gap: 7px; padding: 24px; background: var(--ink); color: #fff; }
.team-navigation-panel-intro > span { color: #bdbdb8; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.team-navigation-panel-intro > strong { max-width: 230px; font: 700 29px/1.05 Georgia, "Times New Roman", serif; letter-spacing: -.04em; }
.team-navigation-links { display: grid; align-content: center; padding: 12px 0; }
.team-navigation-links a { display: grid; grid-template-columns: 28px minmax(0, 1fr) 22px; align-items: center; gap: 10px; min-height: 54px; padding: 0 24px; border-left: 3px solid transparent; color: var(--ink); font-size: 15px; font-weight: 800; text-decoration: none; }
.team-navigation-links a:hover, .team-navigation-links a.is-current { border-left-color: var(--ink); background: var(--soft); }
.team-navigation-links a > .material-symbols-rounded { color: var(--muted); font-size: 20px; }
.team-navigation-links a:hover > .material-symbols-rounded, .team-navigation-links a.is-current > .material-symbols-rounded { color: var(--ink); }
.team-navigation-links .team-navigation-link-arrow { justify-self: end; font-size: 18px; }
.app-navigation > .account-menu { justify-self: end; }

@media (max-width: 760px) {
  .app-navigation { gap: 6px; }
  .team-navigation-menu-label { display: none; }
  .team-navigation-menu > summary { min-width: 44px; justify-content: center; padding: 0; }
  .team-navigation-panel { grid-template-columns: 1fr; }
  .team-navigation-panel-intro { min-height: 115px; padding: 20px; }
  .team-navigation-panel-intro > strong { font-size: 25px; }
  .team-navigation-links { padding: 7px 0; }
  .team-navigation-links a { min-height: 56px; padding: 0 20px; font-size: 15px; }
}

/* Acción principal de Servicio: siempre disponible sin ocupar el encabezado. */
.floating-table-action { position: fixed; z-index: 30; right: 26px; bottom: 26px; display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid var(--ink); border-radius: 50%; padding: 0; background: var(--ink); color: #fff; box-shadow: 5px 6px 0 var(--soft), 0 10px 22px rgba(17, 17, 17, .2); }
.floating-table-action:hover { transform: translate(-2px, -2px); box-shadow: 7px 8px 0 var(--soft), 0 12px 25px rgba(17, 17, 17, .24); }
.floating-table-action:focus-visible { outline: 3px solid #a5a5a0; outline-offset: 3px; }
.floating-table-action .material-symbols-rounded { font-size: 28px; }
@media (max-width: 550px) { .floating-table-action { right: 18px; bottom: 18px; width: 54px; height: 54px; } }

/* Servicio: el detalle de una mesa se superpone a las tarjetas siguientes. */
.tables .table-status-card { position: relative; z-index: 0; }
.tables .table-status-card[open] { z-index: 20; }
.tables .table-status-card[open] .table-status-content { position: absolute; top: calc(100% - 1px); right: -1px; left: -1px; max-height: min(68vh, 520px); overflow-y: auto; border: 1px solid var(--ink); border-top: 0; background: #fff; box-shadow: 8px 10px 0 var(--soft), 0 14px 28px rgba(17, 17, 17, .16); }

/* Notas breves por producto: se guardan antes de confirmar la comanda. */
.cart-item-info { min-width: 0; flex: 1; }
.cart-item-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; width: 100%; min-width: 0; }
.cart-item-note-form { width: 100%; min-width: 0; margin-top: 8px; }
.cart-item-note-form label { display: block; margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 700; }
.cart-item-note-form input { display: block; width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 3px; padding: 7px; color: var(--text); font: 11px/1.2 Arial, Helvetica, sans-serif; }
.cart-item-note-form input:focus { outline: 2px solid #a5a5a0; outline-offset: 1px; border-color: var(--ink); }
.cart-item-note-hint { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.cart-sheet-content li { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; width: 100%; gap: 8px; }
body.customer-menu:has(#cart[open]) { overflow: hidden; overscroll-behavior: none; }
body.customer-menu:has(#cart[open])::after { position: fixed; z-index: 9; inset: 0; background: rgba(17, 17, 17, .07); content: ""; backdrop-filter: blur(2px); pointer-events: none; }

/* Galería de administración: hace explícitos el límite y el orden de las fotos. */
.photo-position-badge { position: absolute; z-index: 1; top: 7px; left: 7px; display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid rgba(17, 17, 17, .18); border-radius: 50%; background: rgba(255, 255, 255, .94); color: var(--ink); font-size: 11px; font-weight: 800; }
.product-photo-card-controls { left: 38px; }
.gallery-upload-hint { display: flex; flex-wrap: wrap; gap: 3px; }
.gallery-upload-hint strong { color: var(--ink); font-weight: 800; }

/* Edición rápida de platos y CRUD de mesas. */
.managed-product-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 13px; }
.managed-product-actions .edit-product-gallery, .managed-product-actions .edit-product-button { margin-top: 0; }
.managed-product-card { overflow: visible; }
.managed-product-card:has(.product-photo-ai-options[open]) { position: relative; z-index: 5; }
.product-photo-ai-options { position: relative; margin-left: auto; }
.product-photo-ai-options summary { display: grid; place-items: center; width: 38px; height: 35px; border: 1px solid var(--ink); border-radius: 4px; background: #fff; color: var(--ink); cursor: pointer; list-style: none; }
.product-photo-ai-options summary::-webkit-details-marker { display: none; }
.product-photo-ai-options summary:hover, .product-photo-ai-options[open] summary { background: var(--soft); }
.product-photo-ai-options summary:focus-visible { outline: 3px solid #a5a5a0; outline-offset: 2px; }
.product-photo-ai-options .material-symbols-rounded { font-size: 19px; }
.product-photo-ai-menu { position: absolute; z-index: 6; top: calc(100% + 6px); right: 0; width: min(255px, calc(100vw - 48px)); border: 1px solid var(--ink); border-radius: 7px; padding: 5px; background: #fff; box-shadow: 0 10px 26px rgba(17, 17, 17, .18); }
.product-photo-ai-menu button { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; border: 0; border-radius: 4px; padding: 8px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; line-height: 1.3; text-align: left; }
.product-photo-ai-menu button:hover, .product-photo-ai-menu button:focus-visible { background: var(--soft); }
.product-photo-ai-menu button:disabled { cursor: not-allowed; opacity: .55; }
.product-photo-ai-menu small { display: block; border-top: 1px solid var(--line); padding: 8px 6px 4px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.photo-ai-review-dialog { width: min(calc(100% - 28px), 520px); max-height: calc(100dvh - 28px); overflow: auto; border: 1px solid var(--ink); border-radius: 8px; padding: 0; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .28); }
.photo-ai-review-dialog::backdrop { background: rgba(17, 17, 17, .4); backdrop-filter: blur(2px); }
.photo-ai-review-dialog > header { display: flex; align-items: start; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); padding: 20px 22px 16px; }
.photo-ai-review-dialog h2 { margin: 4px 0; font-size: 24px; }
.photo-ai-review-dialog header p, .photo-ai-review-body > p { margin: 0; color: var(--muted); font-size: 13px; }
.photo-ai-review-body { display: grid; gap: 15px; padding: 20px 22px; }
.photo-ai-review-body label { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 800; }
.photo-ai-review-body input, .photo-ai-review-body textarea { width: 100%; border: 1px solid var(--ink); border-radius: 4px; padding: 10px; background: #fff; color: var(--ink); font: inherit; }
.photo-ai-review-body textarea { min-height: 110px; resize: vertical; }
.photo-ai-review-body small { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.photo-ai-review-dialog footer { display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--line); padding: 16px 22px 20px; }
.photo-ai-review-dialog footer button { min-height: 42px; }
.photo-ai-review-dialog .save-product-button { width: auto; border-radius: 4px; padding: 0 13px; }
.photo-ai-review-dialog .save-product-button:disabled { cursor: wait; opacity: .6; }
.edit-product-button { display: inline-flex; align-items: center; gap: 5px; border: 1px solid var(--ink); border-radius: 4px; padding: 7px 9px; background: var(--ink); color: #fff; font: 700 11px Arial, Helvetica, sans-serif; cursor: pointer; }
.edit-product-button:hover { background: #333; }
.edit-product-button .material-symbols-rounded { font-size: 17px; }
.product-edit-dialog { width: min(100% - 30px, 820px); max-height: min(900px, calc(100vh - 30px)); overflow: auto; border: 1px solid var(--ink); border-radius: 7px; padding: 0; background: #fff; box-shadow: 0 24px 70px rgba(0, 0, 0, .28); }
.product-edit-dialog::backdrop { background: rgba(17, 17, 17, .38); backdrop-filter: blur(2px); }
.product-edit-dialog > form > header { display: flex; align-items: start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); padding: 23px 24px 18px; }
.product-edit-dialog h2 { margin: 3px 0 5px; font-size: 27px; }
.product-edit-dialog header p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.product-edit-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; padding: 21px 24px 8px; }
.product-edit-form-grid .form-field-wide { grid-column: 1 / -1; }
.product-edit-dialog footer { display: flex; justify-content: flex-end; gap: 9px; padding: 20px 24px 24px; }
.product-edit-dialog .save-product-button { width: auto; min-height: 40px; margin: 0; padding: 0 13px; }
.product-edit-dialog .gallery-cancel { min-height: 40px; }
.tables-management-list { display: grid; gap: 12px; }
.table-create-form, .table-management-form { gap: 15px; }
.table-form-fields { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(100px, .55fr) auto; align-items: end; gap: 12px; }
.settings-inline-checkbox { display: inline-flex; align-items: center; gap: 7px; min-height: 39px; padding-bottom: 1px; color: var(--ink); font-size: 12px; font-weight: 700; white-space: nowrap; }
.settings-inline-checkbox input { width: auto; margin: 0; accent-color: var(--ink); }
.table-management-card { border: 1px solid var(--line); border-radius: 5px; padding: 15px; background: #fff; }
.table-management-card.is-inactive { background: #f7f7f3; }
.table-management-heading { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; }
.table-management-heading > .material-symbols-rounded { font-size: 22px; }
.table-management-heading div { display: grid; gap: 2px; min-width: 0; }
.table-management-heading strong { font-size: 15px; }
.table-management-heading small { color: var(--muted); font-size: 11px; }
.table-management-status { margin-left: auto; border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.table-management-actions { display: flex; justify-content: flex-end; margin-top: 14px; }
.table-management-actions .settings-save { width: auto; min-height: 37px; margin: 0; padding: 0 12px; }
.table-management-actions .material-symbols-rounded, .table-delete-button .material-symbols-rounded, .table-create-form .material-symbols-rounded { font-size: 17px; vertical-align: middle; }
.table-delete-form { display: flex; justify-content: flex-end; margin-top: 8px; }
.table-delete-button { display: inline-flex; align-items: center; gap: 5px; border: 0; padding: 4px 0; background: transparent; color: #8c2727; font: 700 11px Arial, Helvetica, sans-serif; cursor: pointer; }
.table-delete-button:hover { color: #5f1616; }

@media (max-width: 620px) {
  .product-create-form { grid-template-columns: 1fr; gap: 14px; padding: 18px 16px 20px; }
  .product-create-form .form-field-wide, .product-create-form .save-product-button { grid-column: auto; }
  .product-create-image-upload { min-height: 56px; font-size: 14px; }
  .product-create-image-hint { margin-top: 8px; }
  .product-edit-form-grid { grid-template-columns: 1fr; padding: 18px 16px 5px; }
  .product-edit-form-grid .form-field-wide { grid-column: auto; }
  .product-edit-dialog > form > header, .product-edit-dialog footer { padding-left: 16px; padding-right: 16px; }
  .table-form-fields { grid-template-columns: 1fr 100px; }
  .table-form-fields .settings-inline-checkbox { grid-column: 1 / -1; }
  .table-management-card { padding: 13px; }
}

/* El editor prioriza densidad: más campos visibles sin hacer scroll innecesario. */
.product-edit-dialog > form > header { padding: 17px 20px 13px; }
.product-edit-dialog h2 { font-size: 24px; }
.product-edit-dialog header p { font-size: 12px; }
.product-edit-form-grid { gap: 10px 14px; padding: 15px 20px 4px; }
.product-edit-form-grid .form-field label { margin-bottom: 3px; font-size: 11px; }
.product-edit-form-grid .form-field input:not([type="checkbox"]), .product-edit-form-grid .form-field select, .product-edit-form-grid .form-field textarea { padding: 7px 8px; font-size: 12px; }
.product-edit-form-grid .form-field textarea { line-height: 1.25; }
.product-edit-form-grid .form-field small { margin-top: 3px; font-size: 10px; }
.product-edit-form-grid .tag-multiselect summary { min-height: 36px; padding: 5px 8px; font-size: 12px; }
.product-edit-form-grid .tag-multiselect > div label { padding: 5px 0; font-size: 11px; }
.product-edit-dialog footer { padding: 14px 20px 18px; }

@media (max-width: 620px) {
  .product-edit-dialog > form > header { padding-top: 14px; padding-bottom: 11px; }
  .product-edit-form-grid { gap: 9px; padding: 13px 16px 3px; }
  .product-edit-dialog footer { padding: 12px 16px 15px; }
}

/* Todos los controles de una línea comparten la misma caja, incluido el dropdown custom. */
.product-edit-form-grid .form-field input:not([type="checkbox"]),
.product-edit-form-grid .form-field select,
.product-edit-form-grid .single-select > summary,
.product-edit-form-grid .tag-multiselect:not(.single-select) > summary {
  box-sizing: border-box;
  height: 38px;
  min-height: 38px;
  line-height: 22px;
}
.product-edit-form-grid .single-select > summary,
.product-edit-form-grid .tag-multiselect:not(.single-select) > summary { padding-top: 7px; padding-bottom: 7px; }
.product-edit-form-grid .single-select .tag-multiselect-arrow { width: 28px; height: 28px; }
.product-edit-form-grid .form-field textarea { min-height: 72px; }

/* Navegación de dos pasos dentro del editor de plato. */
.product-edit-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); padding: 17px 20px 13px; }
.product-editor-stepper { display: flex; gap: 5px; border-bottom: 1px solid var(--line); padding: 9px 20px 0; }
.product-editor-step { display: inline-flex; align-items: center; gap: 6px; border: 0; border-bottom: 2px solid transparent; padding: 7px 9px 9px; background: transparent; color: var(--muted); font: 700 11px Arial, Helvetica, sans-serif; cursor: pointer; }
.product-editor-step span { display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid var(--line); border-radius: 50%; font-size: 10px; }
.product-editor-step:hover, .product-editor-step.is-active { border-bottom-color: var(--ink); color: var(--ink); }
.product-editor-step.is-active span { border-color: var(--ink); background: var(--ink); color: #fff; }
.product-editor-step-panel[hidden] { display: none; }
.product-gallery-step-heading { padding: 14px 20px 0; }
.product-gallery-step-heading p { max-width: 680px; margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.35; }
.product-editor-step-panel .product-gallery-grid { padding: 14px 20px 10px; }
.product-editor-step-panel .gallery-upload-control { margin-right: 20px; margin-left: 20px; }
.product-editor-step-panel .gallery-upload-hint { margin-right: 20px; margin-left: 20px; }
.product-editor-step-panel > form > footer { display: flex; justify-content: flex-end; gap: 9px; padding: 14px 20px 18px; }
.step-next-button { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; border: 1px solid var(--line); border-radius: 4px; padding: 0 13px; background: #fff; color: var(--ink); font: 700 12px Arial, Helvetica, sans-serif; cursor: pointer; }
.step-next-button:hover { border-color: var(--ink); background: var(--soft); }

@media (max-width: 620px) {
  .product-edit-dialog-header { padding: 14px 16px 11px; }
  .product-editor-stepper { padding-right: 16px; padding-left: 16px; }
  .product-gallery-step-heading { padding-right: 16px; padding-left: 16px; }
  .product-editor-step-panel .product-gallery-grid { padding-right: 16px; padding-left: 16px; }
  .product-editor-step-panel .gallery-upload-control, .product-editor-step-panel .gallery-upload-hint { margin-right: 16px; margin-left: 16px; }
  .product-editor-step-panel > form > footer { padding-right: 16px; padding-left: 16px; }
}

/* Sistema común de acciones: jerarquía clara, iconos alineados y foco visible. */
:root { --control-height: 40px; --control-radius: 6px; --action-button-width: 184px; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
button .material-symbols-rounded, a .material-symbols-rounded { flex: 0 0 auto; line-height: 1; font-variation-settings: "OPSZ" 20, "wght" 500, "FILL" 0, "GRAD" 0; }

.settings-save,
.save-product-button,
.step-next-button,
.gallery-cancel,
.edit-product-gallery,
.edit-product-button,
.table-qr-link,
.table-delete-button,
.location-settings-trigger,
.menu-header-action,
.link-button,
.order-card .actions button,
.service-request-form button,
.customer-feedback-form-footer button,
.auth-form button,
.product-detail-order-form button,
.confirm-order button,
.customer-name-dialog button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--control-height);
  border-radius: var(--control-radius);
  line-height: 1;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.settings-save,
.save-product-button,
.auth-form button,
.product-detail-order-form button,
.confirm-order button,
.customer-name-dialog button { justify-content: space-between; }
.settings-save > span[aria-hidden="true"],
.save-product-button > span[aria-hidden="true"],
.auth-form button > span[aria-hidden="true"],
.product-detail-order-form button > span[aria-hidden="true"],
.confirm-order button > span[aria-hidden="true"],
.customer-name-dialog button > span[aria-hidden="true"] { margin-left: auto; }
.settings-save:hover,
.save-product-button:hover,
.location-settings-trigger:hover,
.link-button:hover,
.order-card .actions button:hover,
.auth-form button:hover,
.product-detail-order-form button:hover,
.confirm-order button:hover,
.customer-name-dialog button:hover { transform: translateY(-1px); box-shadow: 0 4px 0 rgba(17, 17, 17, .12); }
.settings-save:active,
.save-product-button:active,
.location-settings-trigger:active,
.link-button:active,
.order-card .actions button:active,
.auth-form button:active,
.product-detail-order-form button:active,
.confirm-order button:active,
.customer-name-dialog button:active { transform: translateY(0); box-shadow: none; }
button:disabled, a[aria-disabled="true"] { cursor: not-allowed; opacity: .58; transform: none !important; box-shadow: none !important; }

.settings-save { min-width: 190px; margin-top: 18px; padding: 0 14px; }
.save-product-button { padding: 0 14px; }
.edit-product-gallery, .edit-product-button { min-height: 36px; padding: 0 10px; }
.edit-product-gallery .material-symbols-rounded, .edit-product-button .material-symbols-rounded { font-size: 17px; }
.table-qr-link { min-height: 37px; padding: 0 11px; color: var(--ink); font-size: 11px; font-weight: 700; text-decoration: none; }
.table-qr-link:hover { background: var(--soft); }
.table-create-form .settings-save, .table-management-actions .settings-save { justify-content: center; }
.table-create-form .settings-save > span[aria-hidden="true"], .table-management-actions .settings-save > span[aria-hidden="true"] { margin-left: 0; }
.table-delete-button { min-height: 32px; padding: 0 4px; border-radius: 4px; }
.table-delete-button:hover { background: #fbeceb; }
.service-request-form button { min-height: 36px; padding: 0 14px; }
.service-request-form-primary button { border-color: var(--ink); background: var(--ink); color: #fff; }
.service-request-form-primary button:hover { background: #353535; color: #fff; }
.service-request-form-primary button:disabled, .service-request-form-primary button:disabled:hover { border-color: #b9b9b5; background: #e9e9e4; color: #666; opacity: 1; cursor: not-allowed; }
.customer-feedback-form-footer button { min-height: 38px; padding: 0 13px; }
.quantity-controls button { display: grid; place-items: center; }
.quantity-controls button .material-symbols-rounded { font-size: 16px; }
.product-cart-price { display: none; color: var(--ink); font-size: 12px; font-variant-numeric: tabular-nums; }
.product-cart-control.has-items .product-cart-price { display: block; }
.price-unit { color: var(--muted); font-size: .72em; font-weight: 700; letter-spacing: .02em; }
.product-cart-control.has-items .quantity-controls { align-items: stretch; gap: 4px; }
.product-cart-control.has-items .quantity-controls button { display: grid; place-items: center; width: 30px; height: 32px; min-width: 30px; border: 1px solid var(--ink); border-radius: 6px; background: var(--soft); color: var(--ink); touch-action: manipulation; }
.product-cart-control.has-items .quantity-controls button:hover { background: var(--ink); color: #fff; }
.product-cart-control.has-items .quantity-controls button:active { transform: scale(.96); }
.product-cart-control.has-items .quantity-controls > b { display: grid; place-items: center; min-width: 28px; height: 32px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); font-size: 13px; font-variant-numeric: tabular-nums; }
.product-cart-control.has-items .quantity-controls .material-symbols-rounded { font-size: 18px; }
.dialog-close { border-radius: 8px; transition: background-color .16s ease, border-color .16s ease, transform .16s ease; }
.dialog-close:hover { transform: rotate(4deg); }
.product-editor-step { transition: color .16s ease, border-color .16s ease, background-color .16s ease; }
.product-editor-step:hover { background: var(--soft); }
.menu-section-pager-button { transition: background-color .16s ease, color .16s ease, transform .16s ease; }
.menu-section-pager-button:hover { transform: translateY(-1px); }
.floating-table-action { transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease; }
.floating-table-action .material-symbols-rounded { font-variation-settings: "OPSZ" 24, "wght" 500, "FILL" 0, "GRAD" 0; }

@media (max-width: 620px) {
  .settings-save, .save-product-button, .step-next-button, .gallery-cancel { min-height: 38px; }
  .settings-save { min-width: 0; }
  .product-editor-step { flex: 1; justify-content: center; }
}

/* Cocina: prioridad y estado en una sola composición, con lectura de izquierda a derecha. */
.kitchen-header-actions { display: inline-flex; align-items: stretch; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: 0 5px 14px rgba(17, 17, 17, .08); }
.kitchen-header-actions:has(.priority-box[hidden]) { border-color: transparent; background: transparent; box-shadow: none; }
.priority-box[hidden] { display: none; }
.priority-box { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: 18px; min-width: 245px; border: 0; border-right: 1px solid var(--line); padding: 10px 14px; background: #fff; text-align: left; }
.priority-box-label { grid-column: 1 / -1; display: flex; align-items: center; gap: 5px; margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.priority-box-label .material-symbols-rounded { font-size: 16px; color: #8a6900; }
.priority-box strong { min-width: 0; overflow: hidden; color: var(--ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.priority-box time { color: var(--ink); font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.live { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 88px; border: 0; padding: 0 13px; background: #f0f8f0; color: var(--success); font-size: 11px; font-weight: 800; letter-spacing: .03em; white-space: nowrap; }
.live i { width: 7px; height: 7px; margin: 0; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px rgba(53, 106, 61, .12); }

@media (max-width: 550px) {
  .menu-header .kitchen-header-actions { width: 100%; margin-top: 14px; }
  .menu-header .priority-box { flex: 1 1 auto; min-width: 0; }
  .menu-header .live { min-width: 80px; }
}

/* Carta móvil: control de cantidad con un área táctil amplia y lectura inmediata. */
@media (max-width: 550px) {
  .product-cart-control.has-items { align-self: stretch; display: flex; flex-direction: column; align-items: stretch; gap: 4px; padding: 6px 0; }
  .product-cart-control.has-items .product-cart-price { text-align: right; line-height: 1.1; }
  .product-cart-control.has-items .quantity-controls { display: grid; grid-template-columns: 38px minmax(28px, 1fr) 38px; align-items: stretch; width: 100%; height: 44px; gap: 4px; }
  .product-cart-control.has-items .quantity-controls button { width: 38px; height: 44px; min-height: 44px; border: 1px solid var(--ink); border-radius: 6px; background: var(--soft); color: var(--ink); touch-action: manipulation; }
  .product-cart-control.has-items .quantity-controls button:hover { background: var(--ink); color: #fff; }
  .product-cart-control.has-items .quantity-controls button:active { transform: scale(.96); }
  .product-cart-control.has-items .quantity-controls > b { display: grid; place-items: center; min-width: 28px; height: 44px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); font-size: 15px; font-variant-numeric: tabular-nums; }
  .product-cart-control.has-items .quantity-controls .material-symbols-rounded { font-size: 20px; }
}

/* El carrito queda ligeramente separado del borde para destacarse sin tapar contenido. */
.customer-menu .cart-sheet { right: 16px; bottom: 16px; left: 16px; }
.customer-menu .cart-sheet summary,
.customer-menu .cart-sheet-content { width: min(100%, 590px); }
.customer-menu .cart-sheet summary { border-radius: 10px; }
.customer-menu .cart-sheet[open] summary { border-radius: 10px 10px 0 0; }
.customer-menu .cart-sheet-content { border-bottom: 1px solid var(--ink); border-radius: 0 0 10px 10px; }

@media (max-width: 550px) {
  .customer-menu .cart-sheet summary,
  .customer-menu .cart-sheet-content { width: 100%; }
}

/* Cuenta lateral: permanece disponible después de enviar la comanda, separado del carrito. */
.bill-drawer { position: fixed; z-index: 20; top: clamp(88px, 14vh, 132px); left: 0; width: 330px; transform: translateX(-330px); transition: transform .2s ease; }
.bill-drawer.is-open { transform: translateX(0); }
.bill-drawer-panel { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; height: min(680px, calc(100dvh - 168px)); min-height: min(420px, calc(100dvh - 168px)); overflow: hidden; border: 1px solid var(--ink); background: #fff; box-shadow: 3px 5px 16px rgba(0, 0, 0, .14); }
.bill-drawer-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 16px; border-bottom: 1px solid var(--line); }
.bill-drawer-panel h2 { margin: 0; font-size: 21px; }
.bill-drawer-close { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 6px; padding: 0; background: #fff; color: var(--ink); }
.bill-drawer-close:hover { border-color: var(--ink); background: var(--soft); }
.bill-drawer-toggle { position: absolute; top: 18px; right: -43px; display: grid; place-items: center; width: 43px; height: 48px; border: 1px solid var(--ink); border-left: 0; border-radius: 0 7px 7px 0; padding: 0; background: var(--ink); color: #fff; box-shadow: 3px 3px 9px rgba(0, 0, 0, .14); }
.bill-drawer-toggle .material-symbols-rounded { font-size: 23px; }
.bill-total-block { display: grid; gap: 3px; border-bottom: 1px solid var(--line); padding: 18px 16px 15px; }
.bill-total-block span { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.bill-total-block strong { color: var(--ink); font: 700 29px/1.05 Georgia, "Times New Roman", serif; }
.bill-total-block small, .bill-share-hint { color: var(--muted); font-size: 11px; }
.bill-detail-disclosure { min-height: 0; overflow: auto; border-bottom: 1px solid var(--line); overscroll-behavior: contain; }
.bill-detail-disclosure summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px; color: var(--ink); cursor: pointer; font-size: 12px; font-weight: 700; list-style: none; }
.bill-detail-disclosure summary::-webkit-details-marker { display: none; }
.bill-detail-disclosure summary .material-symbols-rounded { color: var(--muted); font-size: 19px; transition: transform .16s ease; }
.bill-detail-disclosure[open] summary .material-symbols-rounded { transform: rotate(180deg); }
.bill-order-list { margin: 0; padding: 0; list-style: none; }
.bill-order-group + .bill-order-group { border-top: 1px solid var(--line); }
.bill-order-header { position: sticky; z-index: 1; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); padding: 9px 16px; background: var(--soft); }
.bill-order-header > strong { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.bill-order-status { display: inline-flex; align-items: center; min-height: 23px; border: 1px solid var(--line); border-radius: 999px; padding: 2px 8px; background: #fff; color: var(--muted); font-size: 10px; font-weight: 800; white-space: nowrap; }
.bill-order-group[data-bill-order-status="PREPARING"] .bill-order-status { border-color: #c99731; background: #fff8e7; color: #765208; }
.bill-order-group[data-bill-order-status="READY"] .bill-order-status { border-color: #8eb495; background: #eff8f0; color: var(--success); }
.bill-order-group[data-bill-order-status="DELIVERED"] .bill-order-status { border-color: var(--ink); background: var(--ink); color: #fff; }
.bill-item-list { margin: 0; padding: 0 16px; list-style: none; }
.bill-item-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); padding: 10px 0; font-size: 12px; }
.bill-item-list li span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bill-item-list li b { margin-right: 3px; }
.bill-item-list li strong { flex: 0 0 auto; font-size: 12px; }
.bill-split-trigger, .bill-share-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; border: 1px solid var(--ink); border-radius: 6px; padding: 0 13px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; }
.bill-split-region { position: relative; z-index: 1; flex: 0 0 auto; background: #fff; box-shadow: 0 -7px 18px rgba(17, 17, 17, .06); }
.bill-split-trigger { width: calc(100% - 32px); margin: 14px 16px; }
.bill-split-trigger:hover, .bill-share-button:hover { background: var(--soft); }
.bill-split-trigger .material-symbols-rounded, .bill-share-button .material-symbols-rounded { font-size: 18px; }
.bill-split-panel { display: grid; gap: 9px; border-top: 1px solid var(--line); padding: 14px 16px 16px; }
.bill-split-panel[hidden] { display: none; }
.bill-split-panel > label:first-child { color: var(--muted); font-size: 11px; font-weight: 700; }
.bill-people-control { display: grid; grid-template-columns: minmax(0, 1fr) 42px; min-height: 44px; }
.bill-split-panel input[type="number"] { width: 100%; min-height: 44px; appearance: textfield; border: 1px solid var(--ink); border-radius: 5px 0 0 5px; padding: 8px 10px; background: #fff; color: var(--ink); font: inherit; }
.bill-split-panel input[type="number"]::-webkit-inner-spin-button,
.bill-split-panel input[type="number"]::-webkit-outer-spin-button { margin: 0; appearance: none; }
.bill-split-panel input[type="number"]:focus { outline: 2px solid #a5a5a0; outline-offset: 1px; }
.bill-people-stepper { display: grid; grid-template-rows: 1fr 1fr; min-height: 44px; }
.bill-people-stepper button { display: grid; place-items: center; min-height: 22px; border: 1px solid var(--ink); border-left: 0; padding: 0; background: var(--soft); color: var(--ink); line-height: 1; }
.bill-people-stepper button:first-child { border-bottom: 0; border-radius: 0 5px 0 0; }
.bill-people-stepper button:last-child { border-radius: 0 0 5px 0; }
.bill-people-stepper button:hover:not(:disabled) { background: var(--ink); color: #fff; }
.bill-people-stepper button:disabled { background: #fff; color: var(--line); opacity: 1; }
.bill-people-stepper .material-symbols-rounded { font-size: 18px; }
.bill-tip-option { display: flex; align-items: center; gap: 7px; color: var(--text); font-size: 12px; }
.bill-tip-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--ink); }
.bill-per-person { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 3px; border-top: 1px solid var(--line); padding-top: 12px; }
.bill-per-person span { color: var(--muted); font-size: 12px; }
.bill-per-person strong { color: var(--ink); font-size: 19px; }
.bill-share-button { width: 100%; margin-top: 2px; background: var(--ink); color: #fff; }
.bill-share-button:hover { background: #353535; color: #fff; }
.bill-share-hint { margin: 0; text-align: center; }

@media (max-width: 819px) {
  .bill-drawer { width: min(82vw, 320px); transform: translateX(-100%); }
  .bill-drawer.is-open { top: max(64px, 10dvh); right: 0; bottom: 0; left: 0; width: 100vw; }
  .bill-drawer.is-open .bill-drawer-panel { height: 100%; max-height: none; }
  .bill-drawer.is-open .bill-drawer-toggle { right: 8px; border: 1px solid var(--ink); border-radius: 7px; }
  .bill-drawer.is-open .bill-drawer-close { display: none; }
  body.customer-menu:has(.bill-drawer.is-open)::after { position: fixed; z-index: 15; inset: 0; background: rgba(17, 17, 17, .07); content: ""; backdrop-filter: blur(2px); pointer-events: none; }
}
body.customer-menu:has(#cart[open]) .bill-drawer { visibility: hidden; opacity: 0; pointer-events: none; }

/* Detalle de plato: jerarquía de pantalla completa, con el sistema visual de la carta. */
.customer-menu .product-detail-dialog { width: min(calc(100% - 28px), 560px); height: min(860px, calc(100dvh - 28px)); max-height: calc(100dvh - 28px); overflow: hidden; background: color-mix(in srgb, var(--menu-brand-color, #FFD227) 12%, #fff); }
.customer-menu .product-detail-dialog-content { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.customer-menu .product-detail-dialog-header { z-index: 1; flex: 0 0 auto; align-items: center; justify-content: flex-start; gap: 10px; padding: 14px 18px; background: color-mix(in srgb, var(--menu-brand-color, #FFD227) 12%, #fff); }
.customer-menu .product-detail-dialog-header .dialog-close { display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 50%; padding: 0; background: transparent; color: var(--ink); }
.customer-menu .product-detail-dialog-header .dialog-close:hover { background: var(--soft); }
.customer-menu .product-detail-dialog-header .dialog-close .material-symbols-rounded { font-size: 22px; }
.customer-menu .product-detail-category { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.customer-menu .product-detail-body { display: block; flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 0; }
.customer-menu .product-detail-gallery-viewport { border-width: 0 0 1px; }
.customer-menu .product-detail-gallery-slide > img, .customer-menu .product-detail-gallery-placeholder { aspect-ratio: 16 / 10; object-fit: cover; }
.customer-menu .product-detail-gallery-nav { width: 40px; height: 40px; }.customer-menu .product-detail-gallery-prev { left: 16px; }.customer-menu .product-detail-gallery-next { right: 16px; }
.customer-menu .product-detail-gallery-slide figcaption { right: auto; bottom: 14px; left: 14px; width: fit-content; max-width: calc(100% - 28px); border: 1px solid rgba(17, 17, 17, .12); border-radius: 999px; padding: 7px 11px; background: rgba(255, 255, 255, .96); color: var(--ink); box-shadow: 0 3px 10px rgba(17, 17, 17, .12); font-size: 11px; font-weight: 700; line-height: 1; text-align: left; }
.customer-menu .product-detail-card { border: 0; padding: 0; background: color-mix(in srgb, var(--menu-brand-color, #FFD227) 8%, #fff); }
.customer-menu .product-detail-heading { padding: 21px 22px 14px; }
.customer-menu .product-detail-heading .eyebrow { display: none; }
.customer-menu .product-detail-title-row { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.customer-menu .product-detail-heading h2 { margin: 0; font-size: clamp(29px, 7vw, 38px); }
.product-like-button { display: grid; flex: 0 0 auto; place-items: center; width: 39px; height: 39px; border: 1px solid var(--line); border-radius: 50%; padding: 0; background: #fff; color: var(--ink); }.product-like-button:hover { border-color: var(--ink); background: var(--soft); }.product-like-button.is-liked { border-color: transparent; background: transparent; color: #ed4956; box-shadow: none; }.product-like-button.is-liked .material-symbols-rounded { font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 20; }.product-like-button:focus-visible { outline: 3px solid #a5a5a0; outline-offset: 2px; }.product-like-button .material-symbols-rounded { font-size: 21px; }
.product-row > .product-list-like-button { display: grid; grid-column: 1; grid-row: 2; align-self: center; justify-self: center; width: 44px; height: 48px; border: 0; border-radius: 0; background: transparent; color: var(--ink); }.product-row > .product-list-like-button:hover { border: 0; background: transparent; color: #ed4956; }.product-row > .product-list-like-button.is-liked { border: 0; border-radius: 0; background: transparent; color: #ed4956; }.product-row > .product-list-like-button .material-symbols-rounded { font-size: 22px; }.product-row > .product-cart-control { grid-column: 3; grid-row: 2; align-self: center; }.product-cart-control { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }.product-cart-control > .product-order-form { margin: 0; }.product-cart-control.has-items .quantity-controls { margin-left: auto; }
.customer-menu .product-detail-overview { margin: 0; border-bottom: 1px solid var(--line); padding: 18px 22px; background: #fafaf8; }
.customer-menu .product-detail-facts { grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); }
.customer-menu .product-detail-card .product-detail-description { margin: 0; padding: 18px 22px 0; }
.customer-menu .product-detail-card .product-detail-section { margin: 17px 22px 0; }
.customer-menu .product-detail-order-panel { z-index: 1; display: grid; flex: 0 0 auto; gap: 10px; margin-top: 0; padding: 17px 22px 20px; background: var(--ink); color: #fff; box-shadow: 0 -8px 18px rgba(17, 17, 17, .12); }
.customer-menu .product-detail-quantity { margin: 0; border: 0; padding: 0; color: #d8d8d5; font-size: 11px; }.customer-menu .product-detail-quantity strong { color: #fff; }
.customer-menu .product-detail-order-action { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 0; }
.customer-menu .product-detail-price { margin: 0; color: #fff; font: 700 25px/1 Georgia, "Times New Roman", serif; white-space: nowrap; }
.customer-menu .product-detail-order-form { flex: 0 0 132px; width: 132px; margin: 0; }.customer-menu .product-detail-order-form button { width: 132px; min-width: 0; border-radius: 4px; background: #fff; color: var(--ink); text-align: center; }.customer-menu .product-detail-order-form button:hover { background: var(--soft); }.customer-menu .product-detail-order-form button span { float: none; margin-left: 4px; vertical-align: -4px; }
.customer-menu .product-detail-order-panel .product-unavailable-state { margin: 0; color: #fff; text-align: right; }
@media (max-width: 700px) {
  .customer-menu .product-detail-dialog { width: calc(100% - 20px); height: calc(100dvh - 20px); max-height: calc(100dvh - 20px); }
  .customer-menu .product-detail-heading { padding-right: 18px; padding-left: 18px; }
  .customer-menu .product-detail-overview { padding-right: 18px; padding-left: 18px; }
  .customer-menu .product-detail-card .product-detail-description { padding-right: 18px; padding-left: 18px; }
  .customer-menu .product-detail-card .product-detail-section { margin-right: 18px; margin-left: 18px; }
  .customer-menu .product-detail-order-panel { gap: 11px; padding: 15px 18px 18px; }
  .customer-menu .product-detail-price { font-size: 22px; }
  .customer-menu .product-detail-order-form { flex-basis: 112px; width: 112px; }
  .customer-menu .product-detail-order-form button { width: 112px; }
}

/* Ritmo tipografico y modales: una sola regla para que la lectura y los margenes
   se mantengan consistentes entre las vistas publicas y las de operacion. */
.eyebrow,
.location-kicker,
.product-category-label,
.membership-role { line-height: 1.35; }

.product-detail-dialog { --dialog-max-width: 920px; }
.product-gallery-dialog { --dialog-max-width: 940px; }
.product-edit-dialog { --dialog-max-width: 820px; }
.table-picker { --dialog-max-width: 560px; }
.location-settings { --dialog-max-width: 470px; }

:is(
  .product-detail-dialog,
  .product-gallery-dialog,
  .product-edit-dialog,
  .table-picker,
  .location-settings
) {
  width: min(var(--dialog-max-width), calc(100vw - var(--dialog-viewport-gap)));
  max-width: calc(100vw - var(--dialog-viewport-gap));
  max-height: calc(100dvh - var(--dialog-viewport-gap));
  margin: auto;
  overscroll-behavior: contain;
}

.customer-name-overlay { padding: calc(var(--dialog-viewport-gap) / 2); }
.customer-name-dialog {
  width: min(100%, 410px);
  max-width: calc(100vw - var(--dialog-viewport-gap));
  max-height: calc(100dvh - var(--dialog-viewport-gap));
  overflow: auto;
  overscroll-behavior: contain;
}

@media (max-width: 700px) {
  :root { --dialog-viewport-gap: 32px; }
}

/* Escala móvil: lectura cómoda, controles alcanzables y texto que puede crecer. */
@media (max-width: 760px) {
  :root { --control-height: 48px; }
  body { font-size: 16px; }
  .settings-save,
  .save-product-button,
  .step-next-button,
  .gallery-cancel,
  .edit-product-gallery,
  .edit-product-button,
  .table-qr-link,
  .table-delete-button,
  .location-settings-trigger,
  .menu-header-action,
  .link-button,
  .order-card .actions button,
  .service-request-form button,
  .customer-feedback-form-footer button,
  .auth-form button,
  .product-detail-order-form button,
  .confirm-order button,
  .customer-name-dialog button { inline-size: min(var(--action-button-width), 100%); }
  .eyebrow, .location-kicker, .product-category-label, .membership-role { font-size: 12px; }
  .app-navigation-sections a { min-height: 48px; font-size: 13px; }
  .app-navigation-brand { font-size: 15px; }
  .account-menu summary { min-width: 44px; min-height: 48px; justify-content: center; }
  .account-menu-panel a, .account-menu-panel button { min-height: 48px; font-size: 14px; }
  .auth-intro-copy p, .auth-card > p, .auth-help { font-size: 15px !important; }
  .auth-form label, .form-field label, .settings-field label, .location-setting label { font-size: 14px; }
  .auth-form input, .form-field input:not([type="checkbox"]), .form-field select, .form-field textarea,
  .settings-field input, .settings-field select, .location-setting select { min-height: 48px; font-size: 16px; }
  .auth-form button, .save-product-button, .settings-save, .save-location-settings,
  .menu-header-action, .location-settings-trigger, .settings-back, .step-next-button,
  .gallery-cancel, .edit-product-gallery, .edit-product-button, .table-qr-link,
  .table-delete-button, .link-button, .order-card .actions button { min-height: 48px; font-size: 14px; }
  .settings-navigation a { min-height: 48px; font-size: 13px; }
  .settings-field p, .form-field small, .product-editor-description,
  .managed-product-card p, .managed-product-meta, .table-management-heading small { font-size: 13px; line-height: 1.45; }
  .product-edit-form-grid .form-field label { font-size: 14px; }
  .product-edit-form-grid .form-field input:not([type="checkbox"]),
  .product-edit-form-grid .form-field select,
  .product-edit-form-grid .single-select > summary,
  .product-edit-form-grid .tag-multiselect:not(.single-select) > summary { height: 48px; min-height: 48px; font-size: 16px; }
  .product-edit-form-grid .form-field textarea { min-height: 88px; font-size: 16px; line-height: 1.4; }
  .product-edit-form-grid .form-field small, .product-edit-dialog header p,
  .product-gallery-step-heading p, .gallery-upload-hint { font-size: 13px; }
  .product-editor-step { min-height: 48px; font-size: 13px; }
  .tag-multiselect > div label, .product-edit-form-grid .tag-multiselect > div label { min-height: 44px; font-size: 14px; }
  .product-photo-card-controls button, .photo-drag-handle, .dialog-close,
  .bill-drawer-close, .toast-close { width: 44px; height: 44px; }
  .photo-label-field input { min-height: 44px; font-size: 16px; }
  .photo-primary-choice, .photo-remove-choice { min-height: 44px; font-size: 13px; }
  .toast-message { font-size: 14px; }
  .table-status-summary { min-height: 72px; }
  .table-customer-name, .table-order-statuses small, .service-requests article span { font-size: 13px; }
  .table-order-statuses li > div, .table-order-statuses li span, .table-progress span { font-size: 13px; }
  .admin-link, .text-button { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
  .service-requests article { flex-wrap: wrap; }
  .bill-drawer-toggle { width: 48px; height: 52px; right: -48px; }
  .bill-detail-disclosure summary { min-height: 48px; font-size: 14px; }
  .bill-item-list li, .bill-item-list li strong, .bill-tip-option,
  .bill-per-person span, .bill-split-panel > label:first-child { font-size: 14px; }
  .bill-total-block small, .bill-share-hint { font-size: 13px; }
  .bill-split-trigger, .bill-share-button { min-height: 48px; font-size: 14px; }
  .bill-people-control { grid-template-columns: minmax(0, 1fr) 96px; }
  .bill-people-stepper { grid-template-columns: repeat(2, 48px); grid-template-rows: 48px; min-height: 48px; }
  .bill-people-stepper button { min-height: 48px; }
  .bill-people-stepper button:first-child { border-bottom: 1px solid var(--ink); border-radius: 0; }
  .bill-people-stepper button:last-child { border-radius: 0 5px 5px 0; }
  .bill-split-panel input[type="number"] { min-height: 48px; font-size: 16px; }
}

@media (max-width: 550px) {
  .shell { padding-bottom: calc(116px + env(safe-area-inset-bottom)); }
  .customer-brand { flex: 1 1 auto; }
  .customer-wordmark { font-size: 18px; line-height: 1.2; }
  .customer-website-link { width: 44px; height: 44px; }
  .customer-wordmark > span:last-child { min-width: 0; overflow-wrap: anywhere; }
  .table-badge, .leave-table-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
  .leave-table-link { min-width: 44px; justify-content: center; }
  .store-context-copy > p, .store-context .ordering-help { font-size: 16px; line-height: 1.55; }
  .menu-section-pager { grid-template-columns: 48px minmax(0, 1fr) 48px; }
  .menu-section-pager-button { width: 48px; height: 48px; }
  .menu-section-pager h2, .catalog-section > h2 { font-size: 15px; }
  .menu-section-counter { font-size: 12px; }
  .service-request-form button { min-height: 48px; font-size: 14px; }
  .service-request-notice { font-size: 13px; }
  .product-row { grid-template-columns: 72px minmax(0, 1fr); column-gap: 14px; row-gap: 10px; min-height: 0; }
  .product-image, .product-image-column::after { height: 72px; }
  .product-image { width: 72px; }
  .product-details { min-width: 0; min-height: 44px; }
  .product-details h3 { font-size: 18px; line-height: 1.25; }
  .product-details p, .product-detail-description { font-size: 15px; line-height: 1.5; }
  .product-details span, .product-detail-prep, .product-detail-section p { font-size: 13px; }
  .product-dietary-tags li { font-size: 12px; padding: 4px 8px; }
  .product-order { grid-column: 2; min-width: 0; }
  .product-row > .product-cart-control { grid-column: 2; grid-row: 2; }
  .product-order-form { width: 100%; }
  .product-order .product-order-form button { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 48px; border: 1px solid var(--ink); border-radius: 8px; padding: 8px 12px; background: var(--soft); text-align: left; }
  .product-order strong, .product-cart-price { font-size: 16px; }
  .product-order small { color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none; }
  .product-cart-control.has-items { padding: 0; }
  .product-cart-control.has-items .product-cart-price { text-align: left; }
  .product-cart-control.has-items .quantity-controls { grid-template-columns: 48px minmax(0, 1fr) 48px; height: 48px; }
  .product-cart-control.has-items .quantity-controls button { width: 48px; height: 48px; min-height: 48px; }
  .product-cart-control.has-items .quantity-controls > b { height: 48px; font-size: 16px; }
  .product-detail-section h3, .product-detail-quantity { font-size: 13px; }
  .product-detail-overview { margin: -17px -17px 18px; padding: 17px; }
  .product-detail-fact { min-height: 62px; }
  .product-detail-fact strong { font-size: 14px; }
  .product-detail-fact small { font-size: 11px; }
  .product-detail-order-form button { min-height: 48px; font-size: 15px; }
  .cart-sheet summary { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 2px 8px; min-height: 64px; font-size: 15px; }
  .cart-sheet summary > span:first-child, .cart-sheet summary strong { grid-column: 1; min-width: 0; }
  .cart-sheet summary .cart-sheet-toggle-icon { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .cart-sheet-content { max-height: min(76dvh, 680px); }
  .cart-sheet-content li strong, .cart-total, .optional-tip, .optional-tip strong { font-size: 15px; }
  .cart-item-line { flex-wrap: wrap; }
  .cart-sheet-content .quantity-controls { width: 100%; justify-content: flex-end; }
  .cart-sheet-content li small, .cart-total small, .optional-tip small,
  .confirm-order p, .cart-item-note-form label, .cart-item-note-hint { font-size: 13px; }
  .cart-item-note-form input { min-height: 44px; padding: 10px; font-size: 16px; }
  .cart-sheet-content .quantity-controls button { width: 44px; height: 44px; }
  .cart-sheet-content .quantity-controls > b { min-width: 24px; font-size: 16px; text-align: center; }
  .confirm-order button { min-height: 52px; font-size: 15px; }
  .customer-feedback-heading p, .customer-footer-group a, .customer-footer-group p { font-size: 14px; }
  .customer-feedback-form textarea { min-height: 88px; font-size: 16px; line-height: 1.5; }
  .customer-feedback-form-footer small, .customer-footer-group h2,
  .customer-footer-credit { font-size: 12px; }
  .customer-feedback-form-footer button { min-height: 48px; font-size: 14px; }
  .order-card li small, .table-card p { font-size: 14px; }
  .order-card .actions button { width: 100%; }
}

@media (max-width: 380px) {
  .service-actions { display: grid; grid-template-columns: 1fr; }
  .service-request-form button { width: 100%; }
  .menu-management-header-actions { grid-template-columns: 1fr; }
  .menu-management-header-actions > :first-child { grid-column: auto; }
}

/* En móvil, el acceso al garzón IA sube cuando hay un carrito pendiente. */
@media (max-width: 550px) {
  .customer-menu .service-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .customer-menu .service-actions .service-label-full { display: inline; }
  .customer-menu .service-actions .service-label-short { display: none; }
  .customer-menu .service-request-notice { grid-column: 1 / -1; }
  .customer-menu .ai-waiter-trigger {
    position: fixed;
    z-index: 25;
    bottom: calc(28px + env(safe-area-inset-bottom));
    right: max(16px, env(safe-area-inset-right));
    display: grid;
    place-items: center;
    width: 56px;
    min-width: 56px;
    height: 56px;
    min-height: 56px;
    border-color: #6130b7;
    border-radius: 50%;
    padding: 0;
    background: linear-gradient(135deg, #7c3aed 0%, #a855f7 48%, #4f46e5 100%);
    color: #fff;
    box-shadow: 0 8px 24px rgba(109, 40, 217, .36);
    transition: bottom .2s ease;
  }
  .customer-menu:has(#cart) .ai-waiter-trigger { bottom: calc(104px + env(safe-area-inset-bottom)); }
  .customer-menu .ai-waiter-trigger:hover { background: linear-gradient(135deg, #6d28d9 0%, #9333ea 48%, #4338ca 100%); }
  .customer-menu .ai-waiter-trigger .service-label-full,
  .customer-menu .ai-waiter-trigger .service-label-short { display: none; }
  .customer-menu .ai-waiter-trigger .material-symbols-rounded { font-size: 30px; }
  .customer-menu .ai-waiter-trigger .ai-waiter-floating-label {
    position: absolute;
    right: 0;
    bottom: calc(100% + 7px);
    display: block;
    width: max-content;
    border: 1px solid #8b5cf6;
    border-radius: 999px;
    padding: 6px 9px;
    background: #fff;
    color: #6d28d9;
    box-shadow: 0 4px 12px rgba(17, 17, 17, .14);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
  }
  .customer-menu .ai-waiter-trigger:focus-visible { outline: 3px solid #c4b5fd; outline-offset: 3px; }
  .customer-menu:has(dialog[open], #cart[open], .bill-drawer.is-open, .customer-name-overlay) .ai-waiter-trigger {
    visibility: hidden;
    pointer-events: none;
  }
}

/* Los campos booleanos conservan la semántica de checkbox, pero se presentan como interruptores. */
input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  flex: 0 0 auto;
  width: 42px !important;
  height: 24px;
  margin: 0 8px 0 0 !important;
  border: 1px solid #9b9b96;
  border-radius: 999px;
  background: #d8d8d5;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease;
  vertical-align: middle;
}

input[type="checkbox"]::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 2px rgba(17, 17, 17, .2);
  content: "";
  transition: transform .16s ease;
}

input[type="checkbox"]:checked {
  border-color: var(--ink);
  background: var(--ink);
}

input[type="checkbox"]:checked::after { transform: translateX(18px); }
input[type="checkbox"]:focus-visible { outline: 3px solid #a5a5a0; outline-offset: 3px; }
input[type="checkbox"]:disabled { cursor: not-allowed; opacity: .5; }

/* Banner de la carta: la imagen queda detrás del contexto y la capa oscura protege la lectura. */
.store-context.has-banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 0;
  border-radius: 12px;
  padding: 32px 28px;
  background: #222;
  color: #fff;
}

.store-context-banner {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.store-context.has-banner::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: rgba(0, 0, 0, .64);
  content: "";
}

.store-context.has-banner .store-context-copy { position: relative; z-index: 2; }

.store-context.has-banner .location-kicker,
.store-context.has-banner h1,
.store-context.has-banner p { color: #fff; }

.store-context.has-banner .ordering-help { color: #075985; }

.store-context.has-banner .location-kicker { color: rgba(255, 255, 255, .78); }
.store-context.has-banner .service-actions { border-color: rgba(255, 255, 255, .35); }
.store-context.has-banner .service-request-form button { border-color: rgba(255, 255, 255, .92); }
.store-context.has-banner .store-context-title { border-left: 8px solid #fff; padding-left: 12px; }

@media (max-width: 550px) {
  .store-context.has-banner { padding: 26px 20px; border-radius: 10px; }
}

/* En la carta del garzón, la identificación de mesa y la salida forman una columna propia. */
.customer-header:has(.customer-header-actions--waiter) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(140px, 1fr);
  align-items: stretch;
  gap: 14px;
  min-height: 104px;
}

.customer-header-actions--waiter {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  align-self: stretch;
  gap: 7px;
  width: 100%;
}

.customer-header-actions--waiter .table-badge,
.customer-header-actions--waiter .leave-table-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 8px;
  text-align: center;
}

/* Las fotografías de platos usan el mismo radio suave de las tarjetas y controles de la carta. */
.product-image,
.product-detail-gallery-viewport { border-radius: 8px; }

.bill-drawer-toggle { border-color: #c9c9c9; }
.bill-drawer.is-open .bill-drawer-toggle { border-color: #c9c9c9; }
.cart-sheet summary { border: 1px solid #c9c9c9; }
.customer-name-dialog .customer-name-ai-trigger { display: flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid #6130b7; background: #f5f3ff; color: #5b21b6; text-align: center; }.customer-name-dialog .customer-name-ai-trigger:hover { background: #ede9fe; }.customer-name-dialog .customer-name-ai-trigger .material-symbols-rounded { float: none; font-size: 19px; }
.teiblfy-menu-credit { margin: 8px 0; color: #8a8a86; font-size: 11px; line-height: 1; letter-spacing: .02em; text-align: center; }.teiblfy-menu-credit strong { color: #666662; font-weight: 800; }
.customer-menu #menu.menu-catalog { margin-top: 8px; }

/* Selector de sección: superficie de vidrio translúcida sobre la carta. */
.customer-menu .menu-section-pager { position: relative; overflow: hidden; border: 1px solid rgba(255, 255, 255, .68); border-radius: 16px; padding: 10px 12px 11px; background: rgba(255, 255, 255, .34); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .78), 0 8px 22px rgba(90, 72, 18, .10); -webkit-backdrop-filter: blur(20px) saturate(155%); backdrop-filter: blur(20px) saturate(155%); }
.customer-menu .menu-section-pager::before { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(115deg, rgba(255, 255, 255, .38), transparent 52%); }
.customer-menu .menu-section-pager > * { position: relative; z-index: 1; }
.customer-menu .menu-section-pager-button { border-color: rgba(255, 255, 255, .72); background: rgba(255, 255, 255, .45); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7); }
.customer-menu .menu-section-pager-button:hover, .customer-menu .menu-section-pager-button:focus-visible { border-color: rgba(255, 255, 255, .92); background: rgba(255, 255, 255, .7); color: var(--ink); }
.customer-menu .menu-section-pager-button.is-disabled { border-color: rgba(255, 255, 255, .42); background: rgba(255, 255, 255, .2); color: rgba(102, 102, 97, .6); box-shadow: none; }

/* Cada plato se asienta en una cavidad de vidrio más oscura; sus controles permanecen intactos. */
.customer-menu .product-row { border: 1px solid rgba(92, 75, 20, .2); border-radius: 12px; padding: 12px; background: rgba(91, 75, 27, .14); box-shadow: inset 0 2px 9px rgba(72, 56, 12, .18), inset 0 -1px 0 rgba(255, 255, 255, .28), 0 3px 8px rgba(90, 72, 18, .05); -webkit-backdrop-filter: blur(12px) saturate(135%); backdrop-filter: blur(12px) saturate(135%); }
.customer-menu .product-row .product-image-column::after { background: rgba(91, 75, 27, .3); }

/* El detalle continúa el cristal cálido y las cavidades suaves de la carta. */
.customer-menu .product-detail-dialog { --menu-detail-surface: color-mix(in srgb, var(--menu-brand-color, #FFD227) 24%, var(--paper)); border: 1px solid rgba(255, 255, 255, .62); border-radius: 18px; background: var(--menu-detail-surface); box-shadow: 0 28px 76px rgba(40, 32, 10, .3), inset 0 1px 0 rgba(255, 255, 255, .72); }
.customer-menu .product-detail-dialog-header { border-bottom-color: rgba(102, 84, 26, .16); background: rgba(255, 255, 255, .38); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72); -webkit-backdrop-filter: blur(20px) saturate(155%); backdrop-filter: blur(20px) saturate(155%); }
.customer-menu .product-detail-dialog-header .dialog-close { border: 1px solid rgba(255, 255, 255, .74); background: rgba(255, 255, 255, .42); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72); }
.customer-menu .product-detail-dialog-header .dialog-close:hover { background: rgba(255, 255, 255, .72); }
.customer-menu .product-detail-body { background: var(--menu-detail-surface); }
.customer-menu .product-detail-gallery { margin: 16px 18px 0; }
.customer-menu .product-detail-gallery-viewport { border: 1px solid rgba(94, 76, 21, .2); border-radius: 14px; background: rgba(91, 75, 27, .13); box-shadow: inset 0 2px 9px rgba(72, 56, 12, .16), inset 0 -1px 0 rgba(255, 255, 255, .28); }
.customer-menu .product-detail-gallery-nav { border-color: rgba(255, 255, 255, .76); background: rgba(255, 255, 255, .58); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .74), 0 4px 12px rgba(72, 56, 12, .14); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.customer-menu .product-detail-gallery-nav:hover:not(:disabled), .customer-menu .product-detail-gallery-nav:focus-visible { border-color: rgba(255, 255, 255, .94); background: rgba(255, 255, 255, .82); color: var(--ink); }
.customer-menu .product-detail-gallery-slide figcaption { border-color: rgba(255, 255, 255, .72); background: rgba(255, 255, 255, .62); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72), 0 3px 10px rgba(72, 56, 12, .14); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.customer-menu .product-detail-card { overflow: hidden; margin: 14px 18px 18px; border: 1px solid rgba(94, 76, 21, .2); border-radius: 14px; background: rgba(91, 75, 27, .14); box-shadow: inset 0 2px 9px rgba(72, 56, 12, .17), inset 0 -1px 0 rgba(255, 255, 255, .3); -webkit-backdrop-filter: blur(12px) saturate(135%); backdrop-filter: blur(12px) saturate(135%); }
.customer-menu .product-detail-overview { border-bottom-color: rgba(94, 76, 21, .18); background: rgba(255, 255, 255, .2); }
.customer-menu .product-detail-fact { border-color: rgba(94, 76, 21, .18); background: rgba(255, 255, 255, .32); box-shadow: inset 0 1px 5px rgba(72, 56, 12, .12), inset 0 -1px 0 rgba(255, 255, 255, .28); }
.customer-menu .product-detail-fact > .material-symbols-rounded { background: rgba(255, 255, 255, .44); }
.customer-menu .product-detail-section { border-top-color: rgba(94, 76, 21, .2); }
.customer-menu .product-detail-card .product-dietary-tags > li { border-color: rgba(87, 105, 78, .5); background: rgba(255, 255, 255, .42) !important; }
.customer-menu .product-detail-order-panel { border-top: 1px solid rgba(255, 255, 255, .2); background: linear-gradient(135deg, #30291b, #1f1c16); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .13), 0 -8px 18px rgba(40, 32, 10, .18); }

@media (max-width: 700px) {
  .customer-menu .product-detail-gallery { margin: 12px 12px 0; }
  .customer-menu .product-detail-card { margin: 12px 12px 14px; }
}

@media (max-width: 760px) {
  .store-context .ordering-help { font-size: 13px; line-height: 1.45; }
  .confirm-order button { inline-size: 100%; }
  .customer-name-dialog .customer-name-ai-trigger { inline-size: 100%; }
}

/* El Garzón IA siempre queda disponible como acceso flotante, sin depender del ancho de pantalla. */
.customer-menu .ai-waiter-trigger {
  position: fixed;
  z-index: 25;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(28px + env(safe-area-inset-bottom));
  display: grid;
  place-items: center;
  width: 56px;
  min-width: 56px;
  height: 56px;
  min-height: 56px;
  border-color: #6130b7;
  border-radius: 50%;
  padding: 0;
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 48%, #4f46e5 100%);
  color: #fff;
  box-shadow: 0 8px 24px rgba(109, 40, 217, .36);
  transition: bottom .2s ease;
}

.customer-menu:has(#cart) .ai-waiter-trigger { bottom: calc(104px + env(safe-area-inset-bottom)); }
.customer-menu .ai-waiter-trigger .service-label-full,
.customer-menu .ai-waiter-trigger .service-label-short { display: none; }
.customer-menu .ai-waiter-trigger .material-symbols-rounded { font-size: 30px; }
.customer-menu .ai-waiter-trigger .ai-waiter-floating-label {
  position: absolute;
  right: 0;
  bottom: calc(100% + 7px);
  display: block;
  width: max-content;
  border: 1px solid #8b5cf6;
  border-radius: 999px;
  padding: 6px 9px;
  background: #fff;
  color: #6d28d9;
  box-shadow: 0 4px 12px rgba(17, 17, 17, .14);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.customer-menu:has(dialog[open], #cart[open], .bill-drawer.is-open, .customer-name-overlay) .ai-waiter-trigger {
  visibility: hidden;
  pointer-events: none;
}

.customer-menu:has(.customer-name-overlay):not(:has(dialog[open], #cart[open], .bill-drawer.is-open)) .ai-waiter-trigger {
  z-index: 31;
  visibility: visible;
  pointer-events: auto;
}
