:root {
  color-scheme: dark;
  --bg: #090806;
  --surface: #12100d;
  --surface-soft: #191611;
  --surface-raised: #211c15;
  --text: #fffaf0;
  --muted: #b7ad9c;
  --gold: #d9a520;
  --gold-soft: #f1cd68;
  --line: rgba(236, 199, 94, .2);
  --danger: #ff867f;
  --success: #72d4a6;
  --shadow: 0 24px 60px rgba(0, 0, 0, .42);
  --radius: 24px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.product-media video,.product-detail-media video{width:100%;height:100%;display:block;object-fit:cover;background:var(--surface-raised)}
.product-media .product-video{position:absolute;inset:0}
.product-media .media-badge{top:8px;left:8px;right:auto;bottom:auto}
.video-play-control{position:absolute;z-index:6;top:50%;left:50%;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transform:translate(-50%,-50%);padding:9px 12px;border:1px solid rgba(255,255,255,.82);border-radius:999px;background:rgba(8,7,6,.86);color:#fff;box-shadow:0 8px 26px rgba(0,0,0,.42);font-size:12px;font-weight:900;line-height:1;white-space:nowrap;cursor:pointer;touch-action:manipulation;backdrop-filter:blur(8px)}
.video-play-control>span{display:grid;width:25px;height:25px;place-items:center;padding-left:2px;border-radius:50%;background:var(--gold-soft);color:#171006;font-size:11px}
.video-play-control:focus-visible{outline:3px solid var(--gold-soft);outline-offset:3px}
.category-media .video-play-control{top:47%}
.product-media .video-play-control{padding:8px}
.product-media .video-play-control b{display:none}
.product-media .video-play-control>span{width:28px;height:28px}
.category-video.is-playing+.media-badge,.product-video.is-playing+.media-badge{opacity:.62}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; min-width: 320px; background: var(--bg); color: var(--text); }
button, input, textarea { font: inherit; }
button { color: inherit; }
button, a, input, textarea { -webkit-tap-highlight-color: transparent; }
img, video { display: block; max-width: 100%; }

.app-shell { min-height: 100dvh; max-width: 760px; margin: 0 auto; padding: 84px 16px 126px; position: relative; overflow: hidden; }
.app-shell::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .035; background: url("../media/brand/brava-gastro-pattern.svg") center/480px; }
.topbar { position: fixed; z-index: 30; top: 0; left: 50%; width: min(100%, 760px); transform: translateX(-50%); height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 8px 18px; background: rgba(9, 8, 6, .88); border-bottom: 1px solid rgba(217, 165, 32, .12); backdrop-filter: blur(18px); }
.brand-button { width: 110px; height: 52px; overflow: hidden; display: flex; align-items: center; border: 0; background: transparent; padding: 0; cursor: pointer; }
.brand-button img { width: 110px; height: 52px; object-fit: contain; object-position: left center; transform: scale(1.35); transform-origin: left center; }
.placeholder-image { object-fit: contain !important; padding: 12%; background: radial-gradient(circle, rgba(217,165,32,.13), rgba(9,8,6,.96) 68%); }
.table-context { min-height: 34px; display: flex; align-items: center; gap: 8px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 700; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px rgba(114, 212, 166, .1); }

.view { display: none; animation: view-in .28s ease both; }
.view.active { display: block; }
@keyframes view-in { from { opacity: 0; transform: translateY(8px); } }

.hero-card { min-height: 550px; border-radius: 30px; position: relative; overflow: hidden; border: 1px solid rgba(217, 165, 32, .24); box-shadow: var(--shadow); }
.hero-slides, .hero-slide { position: absolute; inset: 0; }
.hero-slide { opacity: 0; pointer-events: none; transition: opacity .45s ease; }
.hero-slide.active { opacity: 1; pointer-events: auto; }
.hero-slide img, .hero-slide video { width: 100%; height: 100%; object-fit: cover; }
.hero-slide video { object-fit: contain; background: #030303; }
.hero-shade { position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(5,4,3,.1) 30%, rgba(5,4,3,.88) 86%, #090806 112%); }
.hero-dots { position: absolute; z-index: 4; left: 50%; bottom: 13px; display: flex; align-items: center; gap: 6px; transform: translateX(-50%); }
.hero-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: rgba(255,255,255,.55); transition: width .2s ease, background .2s ease; cursor: pointer; }
.hero-dot.active { width: 20px; background: #e0ac3c; }
.hero-copy { position: absolute; left: 0; right: 0; bottom: 0; padding: 32px 24px 28px; }
.eyebrow { display: block; color: var(--gold-soft); font-size: 11px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.hero-copy h1 { max-width: 500px; margin: 10px 0 12px; font-size: clamp(38px, 9vw, 62px); line-height: .98; }
.hero-copy p { max-width: 490px; color: #e5ddce; line-height: 1.55; }
.primary-button { min-height: 50px; border: 0; border-radius: 15px; padding: 13px 18px; background: linear-gradient(135deg, var(--gold-soft), var(--gold)); color: #171006; font-weight: 900; cursor: pointer; box-shadow: 0 10px 28px rgba(217, 165, 32, .16); }
.primary-button:disabled { background: #4b4438; color: #9d9588; box-shadow: none; cursor: not-allowed; }
.full-button { width: 100%; margin-top: 14px; }

.section-block { padding-top: 40px; scroll-margin-top: 80px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 18px; margin-bottom: 18px; }
.section-heading h2, .view-toolbar h1, .sheet-content h2 { margin: 5px 0 0; font-size: clamp(30px, 7vw, 42px); }
.text-button { min-height: 42px; border: 0; background: transparent; padding: 8px 0; color: var(--gold-soft); font-weight: 800; cursor: pointer; }
.danger-text { color: var(--danger); }
.search-box { min-height: 50px; display: flex; align-items: center; gap: 10px; padding: 0 14px; margin: 0 0 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; color: var(--gold-soft); }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); }
.search-box input::placeholder { color: #877e72; }
.hidden { display: none !important; }

.category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.category-card { min-height: 238px; position: relative; overflow: hidden; border: 1px solid rgba(217,165,32,.15); border-radius: 22px; padding: 0; background: var(--surface); text-align: left; cursor: pointer; box-shadow: 0 13px 28px rgba(0,0,0,.24); }
.category-card img, .category-card video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.category-card:hover img { transform: scale(1.035); }
.category-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.03), rgba(5,4,3,.9)); }
.category-card-copy { position: absolute; z-index: 2; left: 14px; right: 14px; bottom: 14px; }
.category-card h3 { margin: 0 0 3px; font-size: 22px; line-height: 1.05; }
.category-card small { color: #ddd3c2; font-size: 11px; font-weight: 750; }
.media-badge { display: inline-flex; align-items: center; gap: 5px; margin-bottom: 8px; padding: 5px 7px; border-radius: 999px; background: rgba(9,8,6,.7); color: var(--gold-soft); font-size: 9px; font-weight: 900; letter-spacing: .08em; }

.view-toolbar { display: flex; align-items: center; gap: 14px; margin: 8px 0 18px; }
.icon-button { width: 46px; height: 46px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); font-size: 22px; cursor: pointer; }
.category-feature { height: 190px; margin-bottom: 18px; position: relative; overflow: hidden; border-radius: 22px; border: 1px solid var(--line); }
.category-feature img, .category-feature video { width: 100%; height: 100%; object-fit: cover; }
.category-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,4,3,.7), transparent 70%); pointer-events: none; }
.result-meta { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
.product-list { display: grid; gap: 12px; }
.product-card { width: 100%; min-height: 142px; display: grid; grid-template-columns: 1fr 132px; padding: 0; overflow: hidden; border: 1px solid rgba(217,165,32,.14); border-radius: 20px; background: var(--surface); text-align: left; cursor: pointer; }
.product-copy { padding: 17px 15px; display: flex; flex-direction: column; min-width: 0; }
.product-copy h3 { margin: 5px 0 7px; font-family: inherit; font-size: 17px; line-height: 1.15; letter-spacing: -.01em; }
.product-copy p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; margin: 0 0 10px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.product-price { margin-top: auto; color: var(--gold-soft); font-size: 16px; font-weight: 900; }
.product-media { position: relative; min-height: 142px; background: var(--surface-raised); }
.product-media img { width: 100%; height: 100%; object-fit: cover; }
.favorite-button, .detail-favorite { width: 38px; height: 38px; display: grid; place-items: center; position: absolute; z-index: 2; top: 9px; right: 9px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(9,8,6,.72); font-size: 21px; cursor: pointer; }
.favorite-button.active, .detail-favorite.active { color: var(--gold-soft); border-color: var(--gold); }
.product-tag { align-self: flex-start; padding: 4px 7px; border-radius: 999px; background: rgba(217,165,32,.1); color: var(--gold-soft); font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.empty-state { padding: 42px 22px; border: 1px dashed var(--line); border-radius: 22px; color: var(--muted); text-align: center; }
.empty-state img { width: 150px; height: 100px; object-fit: contain; margin: 0 auto 16px; }
.view-lead { color: var(--muted); line-height: 1.55; }

.bottom-nav { position: fixed; z-index: 35; left: 50%; bottom: 0; transform: translateX(-50%); width: min(100%, 760px); min-height: 76px; display: grid; grid-template-columns: repeat(4, 1fr); padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: rgba(14,12,9,.94); border-top: 1px solid var(--line); backdrop-filter: blur(20px); }
.bottom-nav button { min-height: 56px; display: grid; place-items: center; gap: 1px; border: 0; background: transparent; color: #8f877b; cursor: pointer; }
.bottom-nav button span { font-size: 22px; line-height: 1; }
.bottom-nav button small { font-size: 10px; font-weight: 850; }
.bottom-nav button.active { color: var(--gold-soft); }
.selection-bar { position: fixed; z-index: 34; left: 50%; bottom: 86px; transform: translateX(-50%); width: min(calc(100% - 28px), 704px); min-height: 52px; display: flex; justify-content: space-between; align-items: center; padding: 12px 17px; border: 1px solid rgba(255,222,120,.4); border-radius: 16px; background: #c9971b; color: #140e05; font-weight: 850; box-shadow: 0 14px 36px rgba(0,0,0,.38); cursor: pointer; }

dialog { color: var(--text); }
dialog::backdrop { background: rgba(0,0,0,.74); backdrop-filter: blur(5px); }
.bottom-sheet { width: min(100%, 620px); max-height: 94dvh; margin: auto auto 0; padding: 0; border: 0; background: transparent; }
.sheet-card { position: relative; max-height: 94dvh; overflow: auto; border: 1px solid var(--line); border-radius: 28px 28px 0 0; background: var(--surface); box-shadow: var(--shadow); }
.compact-sheet { padding-top: 12px; }
.sheet-close { width: 42px; height: 42px; position: absolute; z-index: 5; top: 12px; right: 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(9,8,6,.8); font-size: 25px; cursor: pointer; }
.product-detail-media { height: min(42dvh, 390px); position: relative; background: var(--surface-raised); }
.product-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.sheet-content { padding: 24px 20px calc(26px + env(safe-area-inset-bottom)); }
.detail-heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.detail-heading h2 { margin: 5px 0 0; line-height: 1.04; }
.detail-heading > strong { color: var(--gold-soft); font-size: 20px; white-space: nowrap; }
.detail-description { color: var(--muted); line-height: 1.6; }
.offer-notice { padding: 12px 14px; margin: 15px 0; border-radius: 14px; background: rgba(217,165,32,.09); border: 1px solid var(--line); color: #e6d5a4; font-size: 13px; line-height: 1.4; }
.offer-notice.blocked { border-color: rgba(255,134,127,.3); background: rgba(255,134,127,.08); color: #ffc3be; }
.modifier-groups { display: grid; gap: 14px; }
.modifier-group { padding: 15px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface-soft); }
.modifier-group-head { display: flex; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.modifier-group-head strong { font-size: 14px; }
.modifier-group-head small { color: var(--muted); }
.modifier-options { display: grid; gap: 8px; }
.modifier-option { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; border-radius: 12px; background: #0e0c09; }
.modifier-option label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.modifier-option input { accent-color: var(--gold); }
.modifier-option small { color: var(--gold-soft); }
.choice-counter { display: flex; align-items: center; gap: 8px; }
.choice-counter button { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-raised); cursor: pointer; }
.selection-items { display: grid; gap: 10px; margin-top: 18px; }
.selection-row { padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.selection-row-main { display: flex; justify-content: space-between; gap: 14px; }
.selection-row small { display: block; margin-top: 6px; color: var(--muted); line-height: 1.4; }
.selection-controls { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.selection-controls button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-raised); cursor: pointer; }
.selection-summary { display: flex; justify-content: space-between; padding-top: 18px; margin-top: 18px; border-top: 1px solid var(--line); }
.selection-summary strong { color: var(--gold-soft); }
.intent-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 18px 0; }
.intent-grid label { min-height: 62px; display: flex; align-items: center; gap: 9px; padding: 11px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); font-size: 13px; cursor: pointer; }
.intent-grid input { accent-color: var(--gold); }
.field-label { display: grid; gap: 8px; color: var(--muted); font-size: 12px; font-weight: 800; }
.field-label textarea { resize: vertical; border: 1px solid var(--line); border-radius: 14px; outline: 0; padding: 12px; background: #0e0c09; color: var(--text); }
.toast { position: fixed; z-index: 100; left: 50%; bottom: 150px; transform: translate(-50%, 18px); width: max-content; max-width: calc(100% - 32px); padding: 11px 15px; border: 1px solid var(--line); border-radius: 12px; background: #272017; color: var(--text); opacity: 0; pointer-events: none; transition: .2s ease; box-shadow: var(--shadow); font-size: 13px; font-weight: 750; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (min-width: 620px) {
  .app-shell { padding-inline: 24px; }
  .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .category-card { min-height: 260px; }
  .product-list { grid-template-columns: 1fr 1fr; }
  .product-card { grid-template-columns: 1fr 120px; }
}

@media (max-width: 370px) {
  .app-shell { padding-inline: 11px; }
  .hero-card { min-height: 500px; }
  .hero-copy { padding-inline: 18px; }
  .category-card { min-height: 215px; }
  .product-card { grid-template-columns: 1fr 112px; }
  .intent-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Rediseño fiel a la maqueta BRAVA */
body { background: #030303; }
.app-shell { max-width: 460px; padding: 74px 16px 88px; background: #080806; border-inline: 1px solid rgba(255,255,255,.12); }
.app-shell::before { opacity: .018; background-size: 360px; }
.topbar { width: min(100%, 460px); height: 74px; display: grid; grid-template-columns: 88px 1fr auto; gap: 8px; padding: 7px 16px; border-inline: 1px solid rgba(255,255,255,.12); background: rgba(8,8,6,.96); }
.brand-button { width: 82px; height: 58px; }
.brand-button img { width: 82px; height: 58px; transform: scale(1.42); }
.table-context { justify-self: center; min-height: auto; padding: 0; border: 0; color: #f2eee6; font-size: 12px; font-weight: 500; white-space: nowrap; }
.table-context .status-dot { display: none; }
.language-chip { min-width: 48px; min-height: 38px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; background: #11110f; color: #e9ca6a; font-size: 12px; cursor: pointer; }

.hero-card { min-height: 0; height: auto; aspect-ratio: 16 / 9; margin: 0 -16px; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); border-radius: 0; box-shadow: none; }
.hero-slide img, .hero-slide video { object-position: center 52%; }
.hero-shade { background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.28)); }
.media-mute { width: 40px; height: 40px; display: grid; place-items: center; position: absolute; z-index: 3; left: 16px; bottom: 12px; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; background: rgba(5,5,4,.82); color: #fff; font-size: 20px; cursor: pointer; }
.hero-copy { display: none; }

.section-block { padding-top: 12px; scroll-margin-top: 76px; }
.section-heading { margin-bottom: 8px; }
.section-heading h1 { margin: 0; color: #e0ac3c; font-size: 28px; font-weight: 400; line-height: 1.1; }
.menu-type-switch { display: grid; grid-template-columns: .82fr 1.55fr; gap: 8px; margin: 0 0 10px; }
.menu-type-switch button { min-height: 38px; padding: 7px 10px; border: 1px solid rgba(218,166,41,.5); border-radius: 11px; background: #11110f; color: #d9c99f; font-size: 10px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; cursor: pointer; }
.menu-type-switch button.active { border-color: #e0ac3c; background: linear-gradient(135deg,#e8bd57,#c99423); color: #171006; }
.menu-section-description { margin:-2px 2px 11px; color:#aaa49a; font-size:11px; line-height:1.42; }
.search-box { min-height: 42px; margin-bottom: 12px; padding-inline: 13px; border-color: rgba(255,255,255,.2); border-radius: 22px; background: linear-gradient(110deg,#10100e,#171715); color: #fff; }
.search-box input { font-size: 13px; }
.search-box input::placeholder { color: #aaa49a; }

.category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.category-card { min-height: 116px; height: 116px; border-color: rgba(255,255,255,.22); border-radius: 10px; box-shadow: none; }
.category-card::after { background: linear-gradient(180deg,transparent 30%,rgba(4,4,3,.9)); }
.category-card-copy { left: 8px; right: 8px; bottom: 7px; }
.category-card h3 { margin-bottom: 1px; font-size: 16px; font-weight: 400; line-height: 1.02; text-shadow: 0 1px 4px #000; }
.category-card small { font-size: 10px; font-weight: 450; }
.media-badge { position: absolute; right: -1px; bottom: 66px; width: 26px; height: 26px; overflow: hidden; display: grid; place-items: center; margin: 0; padding: 0; border: 1px solid #fff; font-size: 0; }
.media-badge::after { content: "▶"; font-size: 10px; }

.category-card { min-height: 0; height: auto; display: block; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.category-media { width: 100%; aspect-ratio: 1 / 1; display: block; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 14px; background: #12110e; }
.category-card .category-media img,
.category-card .category-media video { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; border-radius: inherit; }
.category-card::after { display: none; }
.category-card-copy { position: static; display: block; padding: 8px 3px 10px; }
.category-card h3 { margin: 0 0 3px; color: #f0c65e; font-size: 17px; line-height: 1.08; text-shadow: none; }
.category-card small { color: #a9a197; font-size: 10px; }
.category-media .media-badge { top: 8px; right: 8px; bottom: auto; }

.view-toolbar { gap: 10px; margin: 10px 0 14px; }
.view-toolbar .eyebrow { display: none; }
.view-toolbar h1 { margin: 0; color: #e0ac3c; font-size: 28px; font-weight: 400; line-height: 1.05; }
.icon-button { width: 38px; height: 38px; border: 0; background: transparent; color: #e2b13e; }
.filter-chips { display: flex; gap: 8px; overflow-x: auto; margin: 0 0 12px; padding-bottom: 2px; scrollbar-width: none; }
.filter-chips::-webkit-scrollbar { display: none; }
.filter-chip { flex: 0 0 auto; min-height: 31px; padding: 5px 12px; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: #141412; color: #e8e4dc; font-size: 11px; cursor: pointer; }
.filter-chip.active { border-color: #daa629; color: #f2ce67; background: #1c180d; }
.result-meta { margin-bottom: 8px; font-size: 11px; }
.product-list { grid-template-columns: 1fr; gap: 7px; }
.product-card { min-height: 128px; height: 128px; grid-template-columns: 148px minmax(0,1fr); position: relative; border-color: rgba(255,255,255,.18); border-radius: 10px; background: linear-gradient(110deg,#151512,#10100e); }
.product-media { min-height: 128px; height: 128px; order: 0; }
.product-media img { object-fit: cover; }
.product-copy { order: 1; padding: 10px 36px 8px 10px; }
.product-copy h3 { margin: 3px 0 3px; padding-right: 2px; font-family: Georgia,"Times New Roman",serif; font-size: 18px; font-weight: 400; line-height: 1.03; }
.product-copy p { order: 4; -webkit-line-clamp: 2; margin: 4px 0 0; color: #dfdcd5; font-size: 10.5px; line-height: 1.25; }
.product-price { order: 3; margin: 0; color: #fff; font-size: 14px; font-weight: 500; }
.product-tag { padding: 3px 6px; border-radius: 4px; background: #d4a234; color: #171006; font-size: 8px; letter-spacing: 0; text-transform: none; }
.favorite-button { top: 9px; right: 8px; width: 30px; height: 30px; border: 0; background: transparent; font-size: 22px; }

.bottom-nav { width: min(100%,460px); min-height: 68px; padding: 5px 8px calc(5px + env(safe-area-inset-bottom)); border-inline: 1px solid rgba(255,255,255,.12); background: rgba(8,8,6,.97); }
.bottom-nav button { min-height: 52px; color: #a69b83; }
.bottom-nav button span { font-size: 21px; }
.bottom-nav button.active { color: #d9a52d; }
.selection-bar { bottom: 76px; width: min(calc(100% - 24px),436px); }

.secondary-button { min-height: 50px; border: 1px solid #d3a12c; border-radius: 13px; padding: 12px 18px; background: transparent; color: #f2eee4; cursor: pointer; }
#productDialog.bottom-sheet { width: min(100%,460px); height: 100dvh; max-height: 100dvh; margin: auto; }
#productDialog::backdrop { background: rgba(0,0,0,.9); backdrop-filter: none; }
#productDialog .sheet-card { height: 100dvh; max-height: 100dvh; border-radius: 18px; background: #080806; }
#productDialog .sheet-close { top: 14px; left: 14px; right: auto; }
.product-detail-media { height: min(50dvh,490px); }
.product-detail-media::after { content: ""; position: absolute; inset: 58% 0 0; background: linear-gradient(transparent,#080806); pointer-events: none; }
.detail-share { width: 42px; height: 42px; display: grid; place-items: center; position: absolute; z-index: 5; top: 14px; right: 62px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; background: rgba(8,8,6,.75); color: #fff; font-size: 20px; cursor: pointer; }
.detail-favorite { z-index: 5; top: 14px; right: 14px; width: 42px; height: 42px; }
#productDialog .sheet-content { margin-top: -38px; position: relative; z-index: 3; padding: 18px 24px 32px; }
.detail-heading { display: flex; flex-direction: column; gap: 4px; }
.detail-heading h2 { margin: 5px 0 0; color: #e0ac3c; font-size: 34px; font-weight: 400; }
.detail-heading > strong { color: #fff; font-size: 21px; font-weight: 500; }
.detail-description { padding-bottom: 14px; border-bottom: 1px solid rgba(218,166,41,.65); color: #f0ede7; font-size: 14px; line-height: 1.42; }
.modifier-groups { margin-top: 14px; }
.full-button { margin-top: 12px; }

@media (min-width:620px) {
  .app-shell { padding-inline: 16px; }
  .category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .category-card { min-height: 0; height: auto; }
  .product-list { grid-template-columns: 1fr; }
  .product-card { grid-template-columns: 148px minmax(0,1fr); }
}

@media (max-width:370px) {
  .app-shell { padding-inline: 11px; }
  .hero-card { min-height: 0; height: auto; aspect-ratio: 16 / 9; margin-inline: -11px; }
  .topbar { grid-template-columns: 76px 1fr auto; padding-inline: 10px; }
  .brand-button,.brand-button img { width: 72px; }
  .table-context { font-size: 10px; }
  .language-chip { min-width: 43px; }
  .category-card { min-height: 0; height: auto; }
  .product-card { grid-template-columns: 126px minmax(0,1fr); }
  .product-copy h3 { font-size: 16px; }
}

/* Flujo simplificado de atención en mesa */
#waiterDialog .sheet-card { max-width: 460px; margin-inline: auto; background: #0c0b08; }
#waiterDialog .sheet-content h2 { margin-bottom: 4px; color: #f6f1e8; font-size: 32px; }
#waiterContext { margin-bottom: 14px; }
.waiter-actions { display: grid; gap: 8px; }
.waiter-action { min-height: 70px; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 11px; padding: 11px 13px; border: 1px solid rgba(255,255,255,.16); border-radius: 14px; background: #13120f; cursor: pointer; transition: .18s ease; }
.waiter-action:has(input:checked) { border-color: #dfaa34; background: rgba(223,170,52,.09); box-shadow: inset 0 0 0 1px rgba(223,170,52,.12); }
.waiter-action input { position: absolute; opacity: 0; pointer-events: none; }
.waiter-action-icon { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(218,166,41,.45); border-radius: 50%; color: #ebbe56; font-size: 17px; }
.waiter-action b,.waiter-action small { display: block; }
.waiter-action b { color: #f4efe6; font-size: 14px; }
.waiter-action small { margin-top: 3px; color: #9f978b; font-size: 10px; }
.context-options,.order-preview { margin-top: 10px; padding: 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 13px; background: #11100d; }
.context-options > span { display: block; margin-bottom: 9px; color: #c6bfb2; font-size: 11px; }
.compact-options { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.compact-options label { cursor: pointer; }
.compact-options input { position: absolute; opacity: 0; }
.compact-options span { min-height: 38px; display: grid; place-items: center; padding: 7px; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; color: #bdb5a8; font-size: 11px; text-align: center; }
.compact-options input:checked + span { border-color: #dca730; background: rgba(220,167,48,.1); color: #f0c55e; }
#waiterNoteField { margin-top: 10px; }
.order-preview { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.order-preview span { color: #b6aea1; font-size: 11px; }
.order-preview strong { color: #efc45d; }
.waiter-status { padding: 10px 0 4px; text-align: center; }
.waiter-status-icon { width: 66px; height: 66px; display: grid; place-items: center; margin: 0 auto 16px; border: 1px solid #dca730; border-radius: 50%; background: rgba(220,167,48,.1); color: #f0c45a; font-size: 30px; }
.waiter-status h3 { margin: 7px 0 8px; color: #f5efe5; font-family: Georgia,"Times New Roman",serif; font-size: 25px; font-weight: 400; }
.waiter-status p { max-width: 300px; margin: 0 auto 18px; color: #a9a195; font-size: 12px; line-height: 1.45; }
.waiter-progress { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin: 18px 0; }
.waiter-progress span { min-height: 5px; border-radius: 999px; background: #2b2924; }
.waiter-progress span.done { background: #dca730; }

/* Modos públicos: catálogo de restaurante y carta delivery */
body.restaurant-mode #waiterNavButton,
body.restaurant-mode #detailWaiter,
body.restaurant-mode #addConfiguredProduct,
body.restaurant-mode #modifierGroups,
body.restaurant-mode #selectionBar,
body.delivery-mode #waiterNavButton,
body.delivery-mode #detailWaiter,
body.delivery-mode #surveyNavButton { display: none !important; }
body.restaurant-mode .bottom-nav { grid-template-columns: repeat(4,1fr); }
body.delivery-mode .bottom-nav { grid-template-columns: repeat(3,1fr); }
body.delivery-mode .table-context { cursor: pointer; color: #f1cc68; }
.public-mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin: 7px 0 12px; padding: 4px; border: 1px solid rgba(255,255,255,.15); border-radius: 13px; background: #11110f; }
.public-mode-switch button { min-height: 37px; border: 0; border-radius: 9px; background: transparent; color: #aaa194; font-size: 11px; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; cursor: pointer; }
.public-mode-switch button.active { background: linear-gradient(135deg,#e8bd57,#c99423); color: #171006; box-shadow: 0 5px 15px rgba(0,0,0,.22); }

.delivery-gate { width: min(100%,460px); max-width: 460px; height: 100dvh; max-height: 100dvh; margin: auto; padding: 0; border: 0; background: #080806; color: var(--text); }
.delivery-gate::backdrop { background: #030303; backdrop-filter: none; }
.delivery-gate-card { min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; padding: max(28px,env(safe-area-inset-top)) 24px max(30px,env(safe-area-inset-bottom)); border: 1px solid rgba(255,255,255,.12); background: radial-gradient(circle at 50% 12%,rgba(217,165,32,.13),transparent 270px),#080806; }
.delivery-gate-logo { width: 118px; height: 72px; margin: 0 auto 14px; object-fit: contain; }
.delivery-gate-card > .eyebrow { text-align: center; }
.delivery-gate-card h2 { margin: 7px 0 7px; color: #e5b64b; font-size: 31px; font-weight: 400; line-height: 1.05; text-align: center; }
.delivery-gate-card > .view-lead { margin: 0 auto 20px; max-width: 320px; font-size: 13px; text-align: center; }
.delivery-person-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.delivery-field { display: grid; gap: 7px; color: #c9c1b4; font-size: 11px; font-weight: 800; }
.delivery-field input { width: 100%; min-height: 47px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.19); border-radius: 12px; outline: 0; background: #11110f; color: #fff; }
.delivery-field input:focus { border-color: #d9a52d; box-shadow: 0 0 0 3px rgba(217,165,45,.1); }
.delivery-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 16px 0; padding: 0; border: 0; }
.delivery-methods legend { width: 100%; margin-bottom: 8px; color: #c9c1b4; font-size: 11px; font-weight: 800; }
.delivery-methods label { cursor: pointer; }
.delivery-methods input { position: absolute; opacity: 0; }
.delivery-methods span { min-height: 76px; display: flex; flex-direction: column; justify-content: center; padding: 11px; border: 1px solid rgba(255,255,255,.17); border-radius: 13px; background: #11110f; }
.delivery-methods b,.delivery-methods small { display: block; }
.delivery-methods b { color: #f3eee5; font-size: 12px; }
.delivery-methods small { margin-top: 4px; color: #999185; font-size: 9px; line-height: 1.35; }
.delivery-methods input:checked + span { border-color: #d9a52d; background: rgba(217,165,45,.1); box-shadow: inset 0 0 0 1px rgba(217,165,45,.08); }
.form-error { margin: 10px 0 0; color: var(--danger); font-size: 11px; }
.delivery-summary { margin: 12px 0 4px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 13px; background: #11100d; color: #cfc7b9; font-size: 11px; line-height: 1.5; }
.delivery-summary b { display: block; color: #f0c75f; font-size: 12px; }
.delivery-fees { display: grid; gap: 8px; margin-top: 17px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
.delivery-fee-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; color: #bdb5a8; font-size: 12px; }
.delivery-fee-row strong { color: #f0ebe2; font-weight: 650; }
.selection-summary.final-total { margin-top: 0; border-top: 0; font-size: 15px; }
.selection-summary.final-total strong { font-size: 20px; }
#requestSelection { background: linear-gradient(135deg,#79d68e,#32a852); color: #07170b; box-shadow: 0 10px 28px rgba(50,168,82,.18); }
#deliveryBackToRestaurant { color: #c5bcae; }

/* Encuesta emocional ultrarrápida */
.survey-sheet { max-width: 460px; margin-inline: auto; background: #0c0b08; }
.survey-sheet h2 { margin-bottom: 7px; color: #f1c75f; font-size: 30px; font-weight: 400; line-height: 1.08; }
.emotion-rating { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; margin: 21px 0 10px; }
.emotion-rating button { min-width: 0; min-height: 84px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 7px 2px; border: 1px solid rgba(255,255,255,.15); border-radius: 13px; background: #13120f; cursor: pointer; transition: transform .16s ease,border-color .16s ease,background .16s ease; }
.emotion-rating button span { font-size: clamp(27px,8vw,38px); line-height: 1; filter: saturate(.92); }
.emotion-rating button small { overflow: hidden; width: 100%; color: #aaa195; font-size: 8px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.emotion-rating button:hover,.emotion-rating button:focus-visible { transform: translateY(-3px); border-color: #d9a52d; outline: 0; }
.emotion-rating button.selected { transform: translateY(-4px) scale(1.04); border-color: #e4b13b; background: rgba(217,165,45,.13); box-shadow: 0 8px 22px rgba(0,0,0,.25); }
.emotion-rating button:disabled { cursor: progress; opacity: .58; }
.survey-feedback { min-height: 18px; margin: 8px 0 0; color: #c9c1b4; font-size: 11px; text-align: center; }
.survey-feedback.error { color: var(--danger); }
.survey-thanks { padding-top: 8px; text-align: center; }
.survey-selected-face { display: block; margin: 0 auto 15px; font-size: 68px; line-height: 1; }
.survey-thanks .field-label { margin-top: 18px; text-align: left; }
.survey-thanks textarea { min-height: 105px; }

@media (max-width:370px) {
  .emotion-rating { gap: 4px; }
  .emotion-rating button { min-height: 76px; }
  .emotion-rating button small { font-size: 7px; }
}

@media (max-height:700px) {
  .delivery-gate-card { justify-content: flex-start; overflow-y: auto; }
}

@media (max-width:370px) {
  .delivery-gate-card { padding-inline: 18px; }
  .delivery-gate-card h2 { font-size: 27px; }
  .delivery-person-grid { grid-template-columns: 1fr; }
}

/* Cabecera BRAVA con identidad central */
.app-shell { padding-top: 170px; }
.topbar {
  height: 170px;
  grid-template-columns: 1fr auto 1fr;
  padding-inline: 16px;
}
.brand-button {
  width: 160px;
  height: 150px;
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
}
.brand-button img {
  width: 160px;
  height: 100px;
  object-position: center;
  transform: scale(1.45);
  transform-origin: center;
}
.table-context {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  max-width: 94px;
  overflow: hidden;
}
.table-context span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.language-chip {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
}
body.restaurant-mode .table-context { visibility: hidden; }

@media (max-width:370px) {
  .app-shell { padding-top: 162px; }
  .topbar { height: 162px; grid-template-columns: 1fr auto 1fr; }
  .brand-button { width: 146px; height: 142px; }
  .brand-button img { width: 146px; height: 92px; }
  .brand-button img { transform: scale(1.42); }
  .table-context { max-width: 76px; }
}

/* Escritorio: interpretación responsive de la maqueta BRAVA */
@media (min-width:900px) {
  html { background: #030303; }
  body {
    background:
      radial-gradient(circle at 50% -12%, rgba(218,166,41,.13), transparent 34rem),
      linear-gradient(90deg, #030303, #070706 50%, #030303);
  }

  .app-shell {
    width: min(calc(100% - 32px), 1280px);
    max-width: 1280px;
    min-height: 100dvh;
    padding: 216px 38px 54px;
    overflow: visible;
    border-inline: 1px solid rgba(255,255,255,.09);
    background: rgba(8,8,6,.88);
    box-shadow: 0 0 80px rgba(0,0,0,.48);
  }
  .app-shell::before { opacity: .025; background-size: 540px; }

  .topbar {
    width: min(calc(100% - 32px),1280px);
    height: 200px;
    grid-template-columns: 1fr auto 1fr;
    padding: 8px 30px;
    border: 1px solid rgba(255,255,255,.1);
    border-top: 0;
    background: rgba(8,8,6,.9);
    box-shadow: 0 16px 42px rgba(0,0,0,.28);
  }
  .brand-button {
    width: 260px;
    height: 180px;
  }
  .brand-button img {
    width: 260px;
    height: 118px;
    transform: scale(1.5);
  }
  .table-context { display: none; }
  .language-chip { min-width: 56px; min-height: 42px; }

  .public-mode-switch {
    width: 420px;
    margin: 0 auto 28px;
    border-radius: 16px;
    background: rgba(17,17,15,.92);
  }
  .public-mode-switch button { min-height: 42px; font-size: 12px; }

  .bottom-nav {
    top: 69px;
    bottom: auto;
    left: max(30px, calc(50% - 600px));
    width: 350px;
    min-height: 62px;
    transform: none;
    padding: 0;
    border: 0;
    background: transparent;
    backdrop-filter: none;
  }
  .bottom-nav button {
    min-height: 62px;
    position: relative;
    border-radius: 12px;
    color: #9e9585;
  }
  .bottom-nav button::after {
    content: "";
    position: absolute;
    right: 22%;
    bottom: 3px;
    left: 22%;
    height: 2px;
    border-radius: 999px;
    background: transparent;
  }
  .bottom-nav button span { font-size: 20px; }
  .bottom-nav button small { font-size: 11px; }
  .bottom-nav button.active { color: #edc65f; }
  .bottom-nav button.active::after { background: #d9a52d; }

  #homeView.active {
    display: grid;
    grid-template-columns: minmax(0,1.08fr) minmax(430px,.92fr);
    gap: 34px;
    align-items: start;
  }
  #homeView .hero-card {
    position: sticky;
    top: 218px;
    aspect-ratio: 16 / 10;
    margin: 0;
    border: 1px solid rgba(218,166,41,.28);
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(0,0,0,.38);
  }
  #homeView .hero-slide img,
  #homeView .hero-slide video { object-position: center; }
  #homeView .section-block { padding-top: 0; }
  #homeView .section-heading { margin-bottom: 13px; }
  #homeView .section-heading h1 { font-size: clamp(36px,3.3vw,50px); }
  #homeView .menu-type-switch { gap: 10px; margin-bottom: 12px; }
  #homeView .menu-type-switch button { min-height: 45px; font-size: 11px; }
  #homeView .menu-section-description { min-height: 39px; margin-bottom: 14px; font-size: 12px; }
  #homeView .search-box { min-height: 48px; margin-bottom: 16px; }
  #homeView .category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
  #homeView .category-media { border-radius: 17px; }
  #homeView .category-card-copy { padding: 10px 4px 13px; }
  #homeView .category-card h3 { font-size: 20px; }
  #homeView .category-card small { font-size: 11px; }

  #categoryView.active,
  #favoritesView.active { display: block; max-width: 1180px; margin-inline: auto; }
  #categoryView .view-toolbar,
  #favoritesView .view-toolbar { margin: 2px 0 20px; }
  #categoryView .view-toolbar h1,
  #favoritesView .view-toolbar h1 { font-size: clamp(38px,4vw,52px); }
  #categoryView > .search-box { max-width: 760px; min-height: 48px; }
  #categoryView .filter-chips { margin-bottom: 16px; }
  #categoryView .filter-chip { min-height: 36px; padding-inline: 15px; font-size: 12px; }
  #categoryView .result-meta { margin-bottom: 12px; font-size: 12px; }
  #categoryView .product-list,
  #favoritesView .product-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  #categoryView .product-card,
  #favoritesView .product-card {
    min-height: 168px;
    height: 168px;
    grid-template-columns: 180px minmax(0,1fr);
    border-radius: 16px;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  }
  #categoryView .product-card:hover,
  #favoritesView .product-card:hover {
    transform: translateY(-2px);
    border-color: rgba(218,166,41,.48);
    box-shadow: 0 16px 34px rgba(0,0,0,.24);
  }
  #categoryView .product-media,
  #favoritesView .product-media { min-height: 168px; height: 168px; }
  #categoryView .product-copy,
  #favoritesView .product-copy { padding: 15px 42px 13px 16px; }
  #categoryView .product-copy h3,
  #favoritesView .product-copy h3 { margin-top: 5px; font-size: 22px; line-height: 1.06; }
  #categoryView .product-copy p,
  #favoritesView .product-copy p { -webkit-line-clamp: 3; font-size: 11.5px; line-height: 1.35; }
  #categoryView .product-price,
  #favoritesView .product-price { font-size: 16px; }

  #productDialog.bottom-sheet {
    width: min(calc(100% - 64px),1120px);
    height: min(760px,calc(100dvh - 64px));
    max-height: calc(100dvh - 64px);
    margin: auto;
  }
  #productDialog .sheet-card {
    width: 100%;
    height: 100%;
    max-height: 100%;
    display: grid;
    grid-template-columns: minmax(0,1.12fr) minmax(390px,.88fr);
    overflow: hidden;
    border-radius: 26px;
    background: #080806;
  }
  #productDialog .product-detail-media {
    width: 100%;
    height: 100%;
    min-height: 0;
  }
  #productDialog .product-detail-media::after {
    inset: 0;
    background: linear-gradient(90deg,transparent 72%,#080806 100%);
  }
  #productDialog .sheet-content {
    height: 100%;
    margin: 0;
    overflow-y: auto;
    padding: 70px 40px 40px;
  }
  body.restaurant-mode #productDialog .sheet-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  #productDialog .detail-heading { gap: 7px; }
  #productDialog .detail-heading h2 { font-size: clamp(38px,4vw,50px); line-height: 1; }
  #productDialog .detail-description { font-size: 15px; line-height: 1.55; }
  #productDialog .sheet-close { top: 20px; left: 20px; }
  #productDialog .detail-share { top: 20px; right: 70px; }
  #productDialog .detail-favorite { top: 20px; right: 20px; }

  .selection-bar {
    right: max(30px,calc(50% - 600px));
    left: auto;
    bottom: 26px;
    width: 380px;
    transform: none;
  }

  .delivery-gate {
    width: min(calc(100% - 48px),680px);
    max-width: 680px;
    height: auto;
    max-height: calc(100dvh - 48px);
    margin: auto;
    border-radius: 26px;
  }
  .delivery-gate-card {
    min-height: 0;
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    padding: 38px 54px 42px;
  }
}

/* Paleta Huerto Mediterraneo: luminosa, culinaria y de alto contraste */
:root {
  color-scheme: light;
  --bg: #f3eadc;
  --surface: #fffaf2;
  --surface-soft: #f2e4d0;
  --surface-raised: #ead5b9;
  --text: #2d241b;
  --muted: #6d6052;
  --gold: #a9432d;
  --gold-soft: #b85235;
  --line: rgba(78, 57, 37, .2);
  --danger: #a72f2b;
  --success: #47724c;
  --shadow: 0 22px 54px rgba(75, 50, 29, .16);
  --text-on-dark: #fffaf3;
}

html { background: #e8dccb; }
body {
  background:
    radial-gradient(circle at 50% -8%, rgba(197, 138, 54, .2), transparent 34rem),
    linear-gradient(90deg, #e9ddcc, #f7f0e5 50%, #e9ddcc);
  color: var(--text);
}
.app-shell {
  border-color: rgba(73, 54, 35, .16);
  background: rgba(250, 244, 234, .96);
  box-shadow: 0 0 72px rgba(77, 54, 34, .12);
}
.app-shell::before { opacity: .045; }
.topbar {
  border-color: rgba(73, 54, 35, .16);
  background: rgba(255, 250, 241, .96);
  box-shadow: 0 12px 32px rgba(77, 54, 34, .09);
}
.brand-button img { filter: saturate(1.15) contrast(1.12); }
.language-chip {
  border-color: rgba(69, 91, 60, .3);
  background: #eef0df;
  color: #39513a;
}
.table-context { color: #4f5f47; }

.public-mode-switch {
  border-color: rgba(78, 57, 37, .2);
  background: #eadfcd;
  box-shadow: inset 0 1px 2px rgba(76, 52, 30, .06);
}
.public-mode-switch button { color: #695a49; }
.public-mode-switch button.active,
.menu-type-switch button.active {
  border-color: #a9432d;
  background: linear-gradient(135deg, #c45c3d, #a9432d);
  color: #fffaf3;
  box-shadow: 0 7px 18px rgba(139, 52, 35, .2);
}
.section-heading h1,
.view-toolbar h1,
.category-card h3,
.detail-heading h2 { color: #983f2d; }
.menu-type-switch button {
  border-color: rgba(73, 96, 62, .42);
  background: #f7f1e6;
  color: #40543c;
}
.menu-section-description,
.result-meta,
.view-lead { color: var(--muted); }
.search-box {
  border-color: rgba(78, 57, 37, .22);
  background: #fffdf8;
  color: #4d6948;
  box-shadow: 0 7px 20px rgba(77, 54, 34, .07);
}
.search-box input { color: var(--text); }
.search-box input::placeholder { color: #817362; }

.category-media {
  border-color: rgba(78, 57, 37, .2);
  background: #eadbc5;
  box-shadow: 0 9px 22px rgba(75, 50, 29, .12);
}
.category-card small { color: #6d6052; }
.filter-chip {
  border-color: rgba(78, 57, 37, .2);
  background: #fffaf2;
  color: #5f5346;
}
.filter-chip.active {
  border-color: #a9432d;
  background: #f7dfd3;
  color: #873522;
}
.product-card {
  border-color: rgba(78, 57, 37, .18);
  background: linear-gradient(110deg, #fffdf8, #f8efe2);
  box-shadow: 0 8px 22px rgba(75, 50, 29, .1);
}
.product-media { background: #ead5b9; }
.product-copy h3 { color: #30261d; }
.product-copy p { color: #6b5f52; }
.product-price { color: #42613e; font-weight: 800; }
.product-tag { background: #d49336; color: #2c1e0d; }
.icon-button {
  border-color: rgba(78, 57, 37, .2);
  background: #fffaf2;
  color: #983f2d;
}

.bottom-nav {
  border-color: rgba(78, 57, 37, .18);
  background: rgba(255, 250, 241, .97);
  box-shadow: 0 -9px 26px rgba(75, 50, 29, .08);
}
.bottom-nav button { color: #726759; }
.bottom-nav button.active { color: #a9432d; }
.bottom-nav button.active::after { background: #a9432d; }
.selection-bar {
  border-color: rgba(115, 56, 38, .28);
  background: #a9432d;
  color: #fffaf3;
  box-shadow: 0 14px 30px rgba(115, 56, 38, .24);
}

.sheet-card,
#productDialog .sheet-card,
#waiterDialog .sheet-card,
.survey-sheet { background: #fffaf2; }
#productDialog .product-detail-media::after {
  background: linear-gradient(transparent, #fffaf2);
}
.detail-heading > strong,
.detail-description { color: var(--text); }
.detail-description { border-color: rgba(169, 67, 45, .35); }
.modifier-group,
.selection-row,
.intent-grid label,
.waiter-action,
.context-options,
.order-preview {
  border-color: rgba(78, 57, 37, .18);
  background: #f5ead9;
}
.modifier-option,
.field-label textarea {
  border-color: rgba(78, 57, 37, .18);
  background: #fffdf8;
  color: var(--text);
}
.secondary-button { color: #873522; }
.offer-notice { color: #76551f; }

.delivery-gate { background: #f8f0e4; }
.delivery-gate::backdrop { background: rgba(63, 49, 34, .65); }
.delivery-gate-card {
  border-color: rgba(78, 57, 37, .18);
  background: radial-gradient(circle at 50% 12%, rgba(197, 138, 54, .2), transparent 270px), #f8f0e4;
}
.delivery-gate-card h2 { color: #983f2d; }
.delivery-field,
.delivery-methods legend { color: #625648; }
.delivery-field input,
.delivery-methods span,
.delivery-summary {
  border-color: rgba(78, 57, 37, .2);
  background: #fffaf2;
  color: var(--text);
}
.delivery-methods b { color: var(--text); }
.delivery-methods small { color: #746858; }
.delivery-methods input:checked + span {
  border-color: #a9432d;
  background: #f7dfd3;
}
.delivery-fees { border-color: rgba(78, 57, 37, .18); }
.delivery-fee-row { color: #665a4c; }
.delivery-fee-row strong { color: var(--text); }

.waiter-action b,
.waiter-status h3 { color: var(--text); }
.waiter-action small,
.waiter-status p,
.context-options > span,
.order-preview span { color: var(--muted); }
.waiter-action:has(input:checked) {
  border-color: #a9432d;
  background: #f7dfd3;
}
.emotion-rating button {
  border-color: rgba(78, 57, 37, .18);
  background: #f5ead9;
}
.emotion-rating button small { color: #6d6052; }
.emotion-rating button.selected {
  border-color: #a9432d;
  background: #f7dfd3;
}
.toast { background: #39513a; color: #fffaf3; }

/* Salvaguardas de contraste para controles sobre fondos oscuros */
.sheet-close,
.detail-favorite,
.detail-share,
.media-mute,
.media-badge { color: var(--text-on-dark); }
html[data-theme="light"] .public-mode-switch button.active,
html[data-theme="light"] .menu-type-switch button.active,
html[data-theme="hybrid"] .public-mode-switch button.active,
html[data-theme="hybrid"] .menu-type-switch button.active,
html[data-theme="light"] .selection-bar,
html[data-theme="hybrid"] .selection-bar { color: var(--text-on-dark); }
html[data-theme="light"] .compact-options input:checked + span,
html[data-theme="hybrid"] .compact-options input:checked + span {
  border-color: #a9432d;
  background: #a9432d;
  color: var(--text-on-dark);
}

button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(169, 67, 45, .28);
  outline-offset: 2px;
}

@media (min-width: 900px) {
  html { background: #e8dccb; }
  body {
    background:
      radial-gradient(circle at 50% -12%, rgba(197, 138, 54, .22), transparent 34rem),
      linear-gradient(90deg, #e7dac8, #f7f0e5 50%, #e7dac8);
  }
  .app-shell { background: rgba(250, 244, 234, .94); }
  .topbar { background: rgba(255, 250, 241, .96); }
  .public-mode-switch { background: #eadfcd; }
  #productDialog .product-detail-media::after {
    background: linear-gradient(90deg, transparent 72%, #fffaf2 100%);
  }
}

/* Tema oscuro original BRAVA */
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #090806;
  --surface: #12100d;
  --surface-soft: #191611;
  --surface-raised: #211c15;
  --text: #fffaf0;
  --muted: #b7ad9c;
  --gold: #d9a520;
  --gold-soft: #f1cd68;
  --line: rgba(236, 199, 94, .2);
  --danger: #ff867f;
  --success: #72d4a6;
  --shadow: 0 24px 60px rgba(0, 0, 0, .42);
  --text-on-dark: #fffaf0;
  background: #030303;
}
html[data-theme="dark"] body {
  background:
    radial-gradient(circle at 50% -12%, rgba(218,166,41,.13), transparent 34rem),
    linear-gradient(90deg, #030303, #070706 50%, #030303);
  color: var(--text);
}
html[data-theme="dark"] .app-shell {
  border-color: rgba(255,255,255,.12);
  background: #080806;
  box-shadow: 0 0 80px rgba(0,0,0,.48);
}
html[data-theme="dark"] .app-shell::before { opacity: .018; }
html[data-theme="dark"] .topbar {
  border-color: rgba(255,255,255,.12);
  background: rgba(8,8,6,.96);
  box-shadow: none;
}
html[data-theme="dark"] .brand-button img { filter: none; }
html[data-theme="dark"] .language-chip {
  border-color: rgba(255,255,255,.15);
  background: #11110f;
  color: #e9ca6a;
}
html[data-theme="dark"] .table-context { color: #f2eee6; }
html[data-theme="dark"] .public-mode-switch {
  border-color: rgba(255,255,255,.15);
  background: #11110f;
  box-shadow: none;
}
html[data-theme="dark"] .public-mode-switch button { color: #aaa194; }
html[data-theme="dark"] .public-mode-switch button.active,
html[data-theme="dark"] .menu-type-switch button.active {
  border-color: #e0ac3c;
  background: linear-gradient(135deg,#e8bd57,#c99423);
  color: #171006;
  box-shadow: 0 5px 15px rgba(0,0,0,.22);
}
html[data-theme="dark"] .section-heading h1,
html[data-theme="dark"] .view-toolbar h1,
html[data-theme="dark"] .category-card h3,
html[data-theme="dark"] .detail-heading h2 { color: #e0ac3c; }
html[data-theme="dark"] .menu-type-switch button {
  border-color: rgba(218,166,41,.5);
  background: #11110f;
  color: #d9c99f;
}
html[data-theme="dark"] .menu-section-description,
html[data-theme="dark"] .result-meta,
html[data-theme="dark"] .view-lead { color: #aaa49a; }
html[data-theme="dark"] .search-box {
  border-color: rgba(255,255,255,.2);
  background: linear-gradient(110deg,#10100e,#171715);
  color: #fff;
  box-shadow: none;
}
html[data-theme="dark"] .search-box input { color: #fff; }
html[data-theme="dark"] .search-box input::placeholder { color: #aaa49a; }
html[data-theme="dark"] .category-media {
  border-color: rgba(255,255,255,.22);
  background: #12110e;
  box-shadow: none;
}
html[data-theme="dark"] .category-card small { color: #a9a197; }
html[data-theme="dark"] .filter-chip {
  border-color: rgba(255,255,255,.22);
  background: #141412;
  color: #e8e4dc;
}
html[data-theme="dark"] .filter-chip.active {
  border-color: #daa629;
  background: #1c180d;
  color: #f2ce67;
}
html[data-theme="dark"] .product-card {
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(110deg,#151512,#10100e);
  box-shadow: none;
}
html[data-theme="dark"] .product-media { background: #211c15; }
html[data-theme="dark"] .product-copy h3 { color: #fffaf0; }
html[data-theme="dark"] .product-copy p { color: #dfdcd5; }
html[data-theme="dark"] .product-price { color: #fff; font-weight: 500; }
html[data-theme="dark"] .product-tag { background: #d4a234; color: #171006; }
html[data-theme="dark"] .icon-button { border-color: var(--line); background: transparent; color: #e2b13e; }
html[data-theme="dark"] .bottom-nav {
  border-color: rgba(255,255,255,.12);
  background: rgba(8,8,6,.97);
  box-shadow: none;
}
html[data-theme="dark"] .bottom-nav button { color: #a69b83; }
html[data-theme="dark"] .bottom-nav button.active { color: #d9a52d; }
html[data-theme="dark"] .bottom-nav button.active::after { background: #d9a52d; }
html[data-theme="dark"] .selection-bar {
  border-color: rgba(255,222,120,.4);
  background: #c9971b;
  color: #140e05;
  box-shadow: 0 14px 36px rgba(0,0,0,.38);
}
html[data-theme="dark"] .sheet-card,
html[data-theme="dark"] #productDialog .sheet-card,
html[data-theme="dark"] #waiterDialog .sheet-card,
html[data-theme="dark"] .survey-sheet { background: #0c0b08; }
html[data-theme="dark"] #productDialog .product-detail-media::after { background: linear-gradient(transparent,#080806); }
html[data-theme="dark"] .detail-heading > strong { color: #fff; }
html[data-theme="dark"] .detail-description { color: #f0ede7; border-color: rgba(218,166,41,.65); }
html[data-theme="dark"] .modifier-group,
html[data-theme="dark"] .selection-row,
html[data-theme="dark"] .intent-grid label,
html[data-theme="dark"] .waiter-action,
html[data-theme="dark"] .context-options,
html[data-theme="dark"] .order-preview {
  border-color: rgba(255,255,255,.16);
  background: #13120f;
}
html[data-theme="dark"] .modifier-option,
html[data-theme="dark"] .field-label textarea {
  border-color: var(--line);
  background: #0e0c09;
  color: var(--text);
}
html[data-theme="dark"] .secondary-button { color: #f2eee4; }
html[data-theme="dark"] .offer-notice { color: #e6d5a4; }
html[data-theme="dark"] .delivery-gate { background: #080806; }
html[data-theme="dark"] .delivery-gate::backdrop { background: #030303; }
html[data-theme="dark"] .delivery-gate-card {
  border-color: rgba(255,255,255,.12);
  background: radial-gradient(circle at 50% 12%,rgba(217,165,32,.13),transparent 270px),#080806;
}
html[data-theme="dark"] .delivery-gate-card h2 { color: #e5b64b; }
html[data-theme="dark"] .delivery-field,
html[data-theme="dark"] .delivery-methods legend { color: #c9c1b4; }
html[data-theme="dark"] .delivery-field input,
html[data-theme="dark"] .delivery-methods span,
html[data-theme="dark"] .delivery-summary {
  border-color: rgba(255,255,255,.19);
  background: #11110f;
  color: #fff;
}
html[data-theme="dark"] .delivery-methods b { color: #f3eee5; }
html[data-theme="dark"] .delivery-methods small { color: #999185; }
html[data-theme="dark"] .delivery-methods input:checked + span { border-color: #d9a52d; background: rgba(217,165,45,.1); }
html[data-theme="dark"] .delivery-fees { border-color: rgba(255,255,255,.13); }
html[data-theme="dark"] .delivery-fee-row { color: #bdb5a8; }
html[data-theme="dark"] .delivery-fee-row strong { color: #f0ebe2; }
html[data-theme="dark"] .waiter-action b,
html[data-theme="dark"] .waiter-status h3 { color: #f4efe6; }
html[data-theme="dark"] .waiter-action small,
html[data-theme="dark"] .waiter-status p,
html[data-theme="dark"] .context-options > span,
html[data-theme="dark"] .order-preview span { color: #a9a195; }
html[data-theme="dark"] .waiter-action:has(input:checked) { border-color: #dfaa34; background: rgba(223,170,52,.09); }
html[data-theme="dark"] .emotion-rating button { border-color: rgba(255,255,255,.15); background: #13120f; }
html[data-theme="dark"] .emotion-rating button small { color: #aaa195; }
html[data-theme="dark"] .emotion-rating button.selected { border-color: #e4b13b; background: rgba(217,165,45,.13); }
html[data-theme="dark"] .toast { background: #272017; color: var(--text); }
html[data-theme="dark"] button:focus-visible,
html[data-theme="dark"] input:focus-visible,
html[data-theme="dark"] textarea:focus-visible { outline-color: rgba(217,165,32,.34); }

/* Tema hibrido: marco nocturno y contenido luminoso */
html[data-theme="hybrid"] .topbar {
  border-color: rgba(255,255,255,.12);
  background: rgba(8,8,6,.97);
  box-shadow: 0 13px 34px rgba(33,24,15,.2);
}
html[data-theme="hybrid"] .brand-button img { filter: none; }
html[data-theme="hybrid"] .language-chip {
  border-color: rgba(255,255,255,.17);
  background: #151510;
  color: #efc85f;
}
html[data-theme="hybrid"] .table-context { color: #f2eee6; }
html[data-theme="hybrid"] .bottom-nav {
  border-color: rgba(255,255,255,.12);
  background: rgba(8,8,6,.97);
  box-shadow: 0 -9px 28px rgba(36,26,16,.18);
}
html[data-theme="hybrid"] .bottom-nav button { color: #b4aa99; }
html[data-theme="hybrid"] .bottom-nav button.active { color: #efc85f; }
html[data-theme="hybrid"] .bottom-nav button.active::after { background: #d9a52d; }

@media (min-width: 900px) {
  html[data-theme="dark"] .app-shell { background: rgba(8,8,6,.88); }
  html[data-theme="dark"] .topbar { background: rgba(8,8,6,.9); }
  html[data-theme="dark"] .public-mode-switch { background: rgba(17,17,15,.92); }
  html[data-theme="dark"] #productDialog .product-detail-media::after { background: linear-gradient(90deg,transparent 72%,#080806 100%); }
}

/* Navegacion de regreso prioritaria y consistente */
.back-button,
.sheet-close {
  width: auto;
  min-width: 106px;
  height: 48px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border: 2px solid rgba(255,250,243,.82);
  border-radius: 999px;
  background: linear-gradient(135deg,#c45c3d,#983824);
  color: #fffaf3;
  box-shadow: 0 9px 24px rgba(86,37,24,.3),0 0 0 3px rgba(169,67,45,.13);
  font-family: Inter,ui-sans-serif,system-ui,sans-serif;
  cursor: pointer;
  transition: transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.back-button span,
.sheet-close span { font-size: 23px; font-weight: 500; line-height: 1; transform: translateY(-1px); }
.back-button b,
.sheet-close b { font-size: 10px; font-weight: 900; letter-spacing: .075em; text-transform: uppercase; }
.back-button:hover,
.sheet-close:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: 0 12px 28px rgba(86,37,24,.36),0 0 0 4px rgba(169,67,45,.16); }
.back-button:active,
.sheet-close:active { transform: translateY(1px); }
.back-button:focus-visible,
.sheet-close:focus-visible { outline: 3px solid rgba(196,92,61,.38); outline-offset: 3px; }
.sheet-close { top: 12px; right: auto; left: 12px; z-index: 8; }
.compact-sheet .sheet-content { padding-top: 76px; }
.view-toolbar .back-button { flex: 0 0 auto; }

.delivery-back-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 2px solid #a9432d;
  border-radius: 14px;
  background: transparent;
  color: #873522;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .035em;
}
.delivery-back-button span { font-size: 21px; line-height: 1; }
#deliveryBackToRestaurant.delivery-back-button { color: #873522; }
html[data-theme="dark"] #deliveryBackToRestaurant.delivery-back-button {
  border-color: #e3b044;
  background: #15120d;
  color: #f4d47c;
}
html[data-theme="dark"] .back-button {
  border-color: rgba(255,250,243,.82);
  background: linear-gradient(135deg,#c45c3d,#983824);
  color: #fffaf3;
}
html[data-theme="light"] .primary-button:not(:disabled),
html[data-theme="hybrid"] .primary-button:not(:disabled) { color: #fffaf3; }

@media (max-width: 370px) {
  .back-button,
  .sheet-close { min-width: 96px; height: 46px; min-height: 46px; padding-inline: 12px; }
  .back-button b,
  .sheet-close b { font-size: 9px; }
}

/* Mosaico culinario vectorial: paprika, azafran, oliva, salvia, cobre y crema */
.app-shell::before {
  opacity: .32;
  background-image: url("../media/brand/brava-culinary-pattern.svg?v=2");
  background-position: center top;
  background-size: 520px auto;
  background-repeat: repeat;
  mix-blend-mode: normal;
}
html[data-theme="dark"] .app-shell {
  background:
    linear-gradient(rgba(18,16,14,.24),rgba(18,16,14,.24)),
    #12100e;
}
html[data-theme="dark"] .app-shell::before { opacity: .54; }
html[data-theme="hybrid"] .app-shell::before { opacity: .34; }
html[data-theme="light"] .app-shell::before { opacity: .25; }
html[data-theme="dark"] .topbar,
html[data-theme="hybrid"] .topbar {
  background-color: #12100e;
  background-image:
    linear-gradient(rgba(18,16,14,.68),rgba(18,16,14,.76)),
    url("../media/brand/brava-culinary-pattern.svg?v=2");
  background-position: center,center 31%;
  background-size: auto,560px auto;
}
@media (min-width: 900px) {
  .app-shell::before { background-size: 640px auto; }
  html[data-theme="dark"] .app-shell { background-color: #12100e; }
}

/* Superficies de lectura sobre el mosaico */
html[data-theme="dark"] .section-heading h1,
html[data-theme="dark"] .view-toolbar,
html[data-theme="dark"] .menu-section-description,
html[data-theme="dark"] .result-meta,
html[data-theme="dark"] .view-lead {
  border: 1px solid rgba(242,228,201,.14);
  background: rgba(18,16,14,.86);
  box-shadow: 0 8px 22px rgba(18,16,14,.18);
  backdrop-filter: blur(6px);
}
html[data-theme="dark"] .section-heading h1 {
  display: inline-block;
  padding: 5px 10px 7px;
  margin-left: -5px;
  border-radius: 12px;
}
html[data-theme="dark"] .menu-section-description,
html[data-theme="dark"] .result-meta,
html[data-theme="dark"] .view-lead {
  padding: 9px 11px;
  border-radius: 12px;
  color: #f2e4c9;
}
html[data-theme="dark"] .view-toolbar {
  padding: 8px;
  border-radius: 18px;
}

/* Fondos fotograficos contextuales BRAVA */
.app-shell {
  background-color: #f5ead9;
  background-image:
    linear-gradient(rgba(250,244,234,.78),rgba(250,244,234,.84)),
    url("../media/backgrounds/brava-acceso-v1.webp");
  background-position: center,center top;
  background-size: auto,min(460px, 100vw) auto;
  background-attachment: scroll;
  background-repeat: no-repeat,repeat-y;
}
.app-shell::before {
  display: none;
}
.topbar {
  background-color: #f8f0e4;
  background-image:
    linear-gradient(rgba(250,244,234,.86),rgba(250,244,234,.92)),
    url("../media/backgrounds/brava-acceso-v1.webp");
  background-position: center,center 34%;
  background-size: auto,560px auto;
}
#menuSection {
  margin-inline: -16px;
  padding: 20px 16px 30px;
  border-block: 1px solid rgba(255,255,255,.18);
  background-color: #15120f;
  background-position: center,center top;
  background-size: auto,100% auto;
  background-repeat: no-repeat,repeat-y;
}
.app-shell[data-menu-context="food"] #menuSection {
  background-image:
    linear-gradient(rgba(248,241,230,.72),rgba(248,241,230,.78)),
    url("../media/backgrounds/brava-gastronomia-v1.webp");
}
.app-shell[data-menu-context="drink"] #menuSection {
  background-image:
    linear-gradient(rgba(235,242,239,.74),rgba(235,242,239,.8)),
    url("../media/backgrounds/brava-bebestibles-v1.webp");
}
#menuSection .category-card-copy {
  margin-top: -5px;
  padding: 10px 8px 11px;
  border: 1px solid rgba(78,57,37,.16);
  border-top: 0;
  border-radius: 0 0 13px 13px;
  background: rgba(255,250,242,.94);
  backdrop-filter: blur(6px);
}
html[data-theme="dark"] .app-shell {
  background-color: #090806;
  background-image:
    linear-gradient(rgba(8,8,6,.64),rgba(8,8,6,.72)),
    url("../media/backgrounds/brava-acceso-v1.webp");
}
html[data-theme="dark"] .topbar,
html[data-theme="hybrid"] .topbar {
  background-color: #090806;
  background-image:
    linear-gradient(rgba(8,8,6,.66),rgba(8,8,6,.78)),
    url("../media/backgrounds/brava-acceso-v1.webp");
}
html[data-theme="dark"] .app-shell[data-menu-context="food"] #menuSection {
  background-image:
    linear-gradient(rgba(8,8,6,.3),rgba(8,8,6,.5)),
    url("../media/backgrounds/brava-gastronomia-v1.webp");
}
html[data-theme="dark"] .app-shell[data-menu-context="drink"] #menuSection {
  background-image:
    linear-gradient(rgba(4,10,14,.26),rgba(4,10,14,.48)),
    url("../media/backgrounds/brava-bebestibles-v1.webp");
}
html[data-theme="dark"] #menuSection .category-card-copy {
  border-color: rgba(242,228,201,.13);
  background: rgba(18,16,14,.92);
}
html[data-theme="dark"] .app-shell[data-view-context="category"] {
  background-position: center,center top;
  background-size: auto,min(460px, 100vw) auto;
  background-attachment: scroll;
  background-repeat: no-repeat,repeat-y;
}
html[data-theme="dark"] .app-shell[data-view-context="category"][data-menu-context="food"] {
  background-image:
    linear-gradient(rgba(8,8,6,.48),rgba(8,8,6,.7)),
    url("../media/backgrounds/brava-gastronomia-v1.webp");
}
html[data-theme="dark"] .app-shell[data-view-context="category"][data-menu-context="drink"] {
  background-image:
    linear-gradient(rgba(4,10,14,.42),rgba(4,10,14,.68)),
    url("../media/backgrounds/brava-bebestibles-v1.webp");
}
@media (min-width: 620px) {
  #menuSection {
    margin-inline: -24px;
    padding-inline: 24px;
  }
}
@media (max-width: 370px) {
  #menuSection {
    margin-inline: -11px;
    padding-inline: 11px;
  }
}

/* Tipografia de alta legibilidad para la carta movil */
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
body { font-size: 16px; }
.public-mode-switch button {
  min-height: 42px;
  font-size: 12.5px;
  letter-spacing: .035em;
}
.section-heading h1 { font-size: 31px; line-height: 1.12; }
.menu-type-switch button {
  min-height: 44px;
  padding-inline: 11px;
  font-size: 11.5px;
  line-height: 1.25;
  letter-spacing: .03em;
}
.menu-section-description {
  font-size: 13.5px;
  line-height: 1.52;
}
.search-box { min-height: 48px; }
.search-box input { font-size: 15px; line-height: 1.4; }
.category-card h3 {
  font-family: Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.012em;
}
.category-card small {
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
}
.filter-chip {
  min-height: 36px;
  padding: 7px 13px;
  font-size: 12.5px;
  font-weight: 700;
}
.result-meta { font-size: 13px; line-height: 1.4; }
.product-card {
  min-height: 150px;
  height: 150px;
  grid-template-columns: 140px minmax(0,1fr);
}
.product-media {
  min-height: 150px;
  height: 150px;
}
.product-copy { padding: 11px 38px 10px 12px; }
.product-copy h3 {
  margin: 4px 0;
  font-family: Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.015em;
}
.product-copy p {
  margin-top: 5px;
  font-size: 12.5px;
  line-height: 1.38;
}
.product-price { font-size: 15.5px; font-weight: 750; }
.product-tag {
  padding: 4px 7px;
  font-size: 9.5px;
  font-weight: 850;
}
.view-toolbar h1 { font-size: 30px; line-height: 1.1; }
.detail-heading h2 { font-size: 36px; line-height: 1.08; }
.detail-heading > strong { font-size: 22px; font-weight: 750; }
.detail-description { font-size: 15.5px; line-height: 1.58; }
.modifier-group-head strong,
.selection-row-main,
.intent-grid label { font-size: 14px; line-height: 1.4; }
.modifier-group-head small,
.modifier-option,
.selection-row small,
.field-label { font-size: 13px; line-height: 1.45; }
.primary-button,
.secondary-button { font-size: 15px; line-height: 1.3; }
.bottom-nav button small { font-size: 11.5px; letter-spacing: .01em; }
.back-button b,
.sheet-close b { font-size: 11px; }

@media (max-width: 370px) {
  .section-heading h1 { font-size: 29px; }
  .menu-type-switch button { font-size: 10.5px; }
  .product-card { grid-template-columns: 122px minmax(0,1fr); }
  .product-copy { padding-left: 10px; }
  .product-copy h3 { font-size: 18px; }
  .product-copy p { font-size: 12px; }
}

@media (min-width: 900px) {
  #homeView .menu-type-switch button { font-size: 12.5px; }
  #homeView .menu-section-description { font-size: 14px; }
  #homeView .category-card h3 { font-size: 22px; }
  #homeView .category-card small { font-size: 13px; }
  #categoryView .product-copy h3,
  #favoritesView .product-copy h3 { font-size: 23px; }
  #categoryView .product-copy p,
  #favoritesView .product-copy p { font-size: 13px; line-height: 1.45; }
}
