:root {
  --bg: #f4eee8;
  --panel: #fffdfb;
  --panel-soft: #faf5f0;
  --ink: #24150e;
  --ink-2: #5c4437;
  --muted: #9a8274;
  --line: #e9ded5;
  --accent: #c98b42;
  --accent-soft: #f8ebdc;
  --danger: #be3e4e;
  --danger-soft: #fff0f2;
  --success: #258557;
  --success-soft: #eaf7f0;
  --radius: 16px;
  --radius-lg: 24px;
  --shadow-sm: 0 2px 7px rgba(45,28,20,.05);
  --shadow: 0 14px 38px rgba(45,28,20,.09);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { min-height: 100dvh; background: var(--bg); color: var(--ink); -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }

.section-kicker, .hero-kicker { color: var(--accent); font-size: 11px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.button { min-height: 44px; padding: 0 17px; border: 1px solid transparent; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; cursor: pointer; transition: .18s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { background: var(--ink); color: #fff; box-shadow: 0 8px 20px rgba(36,21,14,.15); }
.button.secondary { border-color: var(--line); background: #fff; color: var(--ink-2); }
.button.danger { border-color: #f0c8ce; background: var(--danger-soft); color: var(--danger); }
.button.wide { width: 100%; }
.input { width: 100%; min-height: 46px; padding: 10px 13px; border: 1.5px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); outline: none; transition: .18s ease; }
.input:focus { border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 15%, transparent); }
.textarea { resize: vertical; min-height: 94px; }
.field { display: grid; gap: 7px; }
.field > span { color: var(--ink-2); font-size: 12px; font-weight: 800; }
.field small { color: var(--muted); font-weight: 600; }
.text-link { color: var(--muted); font-size: 12px; font-weight: 700; text-align: center; text-decoration: none; }
.toast { position: fixed; z-index: 100; left: 50%; bottom: 24px; max-width: min(90vw, 440px); padding: 12px 16px; border-radius: 12px; background: #24150e; color: #fff; box-shadow: var(--shadow); font-size: 13px; font-weight: 700; opacity: 0; transform: translate(-50%, 18px); pointer-events: none; transition: .22s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.empty-state { min-height: 180px; padding: 24px; display: grid; place-items: center; align-content: center; gap: 8px; border: 1.5px dashed var(--line); border-radius: var(--radius); color: var(--muted); text-align: center; }
.empty-state span { font-size: 30px; }
.empty-state strong { color: var(--ink); }

/* Public QR menu */
.menu-page { background: #1a100b; }
.menu-hero { position: relative; overflow: hidden; min-height: 390px; padding: 20px clamp(20px,5vw,72px) 64px; color: #fff; background: radial-gradient(circle at 82% 14%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 30%), radial-gradient(circle at 15% 92%, rgba(255,255,255,.06), transparent 35%), linear-gradient(140deg,#110b08,#342015 72%,#1b100b); }
.menu-hero::after { content: ''; position: absolute; inset: auto -8% -120px 35%; height: 260px; border: 1px solid rgba(255,255,255,.06); border-radius: 50%; transform: rotate(-8deg); }
.menu-topline { position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mini-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-size: 13px; font-weight: 800; text-decoration: none; }
.mini-brand-mark { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.08); color: #f5bd77; font-family: Georgia, serif; font-size: 19px; }
.live-menu-badge { padding: 7px 10px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.9); font-size: 10px; font-weight: 800; }
.live-menu-badge i { width: 7px; height: 7px; border-radius: 50%; background: #49d485; box-shadow: 0 0 0 5px rgba(73,212,133,.12); }
.hero-content { position: relative; z-index: 1; max-width: 760px; margin: 78px auto 0; display: grid; justify-items: center; gap: 12px; text-align: center; }
.business-logo { width: 92px; height: 92px; margin-bottom: 4px; border-radius: 24px; object-fit: cover; border: 1px solid rgba(255,255,255,.16); box-shadow: 0 18px 45px rgba(0,0,0,.25); }
.hero-content h1 { max-width: 760px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px,8vw,78px); font-weight: 500; letter-spacing: -.045em; line-height: .98; }
.hero-content p { max-width: 540px; color: rgba(255,255,255,.9); font-size: clamp(14px,2vw,17px); line-height: 1.6; }
.contact-actions { margin-top: 12px; display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.contact-link { min-height: 40px; padding: 0 14px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; display: inline-flex; align-items: center; gap: 7px; background: rgba(255,255,255,.07); color: #fff; font-size: 11px; font-weight: 800; text-decoration: none; }
.category-nav { position: sticky; z-index: 10; top: 0; border-bottom: 1px solid rgba(255,255,255,.06); background: rgba(25,15,10,.92); backdrop-filter: blur(16px); }
.category-chips { max-width: 1180px; margin: 0 auto; padding: 12px 20px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.category-chips::-webkit-scrollbar { display: none; }
.category-chip { min-height: 38px; padding: 0 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 999px; background: rgba(255,255,255,.04); color: rgba(255,255,255,.9); font-size: 11px; font-weight: 800; white-space: nowrap; cursor: pointer; }
.category-chip.active { border-color: color-mix(in srgb, var(--accent) 65%, transparent); background: color-mix(in srgb, var(--accent) 20%, transparent); color: #ffd8a7; }
.menu-main { min-height: 500px; padding: 46px max(20px,calc((100vw - 1180px)/2)) 80px; background: #20130d; }
.menu-intro { margin-bottom: 28px; display: flex; align-items: end; justify-content: space-between; gap: 18px; color: #fff; }
.menu-intro h2 { margin-top: 5px; font-family: Georgia, serif; font-size: clamp(29px,4vw,42px); font-weight: 500; }
.menu-intro p { max-width: 420px; color: rgba(255,255,255,.86); font-size: 12px; line-height: 1.6; text-align: right; }
.menu-status { min-height: 260px; display: grid; place-items: center; align-content: center; gap: 12px; color: rgba(255,255,255,.86); }
.loader { width: 34px; height: 34px; border: 3px solid rgba(255,255,255,.1); border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.category-list { display: grid; gap: 18px; }
.menu-category { overflow: hidden; border: 1px solid rgba(255,255,255,.08); border-radius: 22px; background: #2a1911; box-shadow: 0 18px 42px rgba(0,0,0,.12); }
.category-heading { width: 100%; min-height: 110px; padding: 22px; border: 0; display: grid; grid-template-columns: 66px minmax(0,1fr) auto; align-items: center; gap: 16px; background: linear-gradient(100deg,rgba(255,255,255,.025),rgba(255,255,255,.005)); color: #fff; text-align: left; cursor: pointer; }
.category-cover { width: 66px; height: 66px; overflow: hidden; border-radius: 16px; display: grid; place-items: center; background: #180e09; color: var(--accent); font-family: Georgia,serif; font-size: 25px; }
.category-cover img { width: 100%; height: 100%; object-fit: cover; }
.category-heading-copy { display: grid; gap: 5px; }
.category-heading-copy h3 { font-family: Georgia,serif; font-size: clamp(22px,3vw,31px); font-weight: 500; }
.category-heading-copy span { color: rgba(255,255,255,.86); font-size: 11px; }
.category-toggle { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; display: grid; place-items: center; color: var(--accent); transition: transform .2s; }
.menu-category.open .category-toggle { transform: rotate(180deg); }
.product-list { display: none; padding: 0 18px 18px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.menu-category.open .product-list { display: grid; }
.menu-product { min-height: 118px; padding: 14px; display: grid; grid-template-columns: 78px minmax(0,1fr) auto; align-items: center; gap: 13px; border: 1px solid rgba(255,255,255,.06); border-radius: 16px; background: rgba(255,255,255,.035); }
.product-photo { width: 78px; height: 82px; overflow: hidden; border-radius: 12px; display: grid; place-items: center; background: #1a0f0a; color: rgba(255,255,255,.18); font-size: 26px; }
.product-photo img { width: 100%; height: 100%; object-fit: cover; }
.menu-product-copy { min-width: 0; display: grid; gap: 6px; }
.menu-product-copy strong { color: #fff; font-size: 14px; }
.menu-product-copy p { color: rgba(255,255,255,.84); font-size: 11px; line-height: 1.45; }
.product-price { color: #efb96f; font-family: Georgia,serif; font-size: 20px; font-weight: 700; white-space: nowrap; }
.sold-out { opacity: .55; }
.sold-out .product-price { padding: 5px 8px; border-radius: 999px; background: rgba(190,62,78,.16); color: #f5a7b2; font-family: inherit; font-size: 9px; text-transform: uppercase; }
.menu-footer { padding: 46px 20px; display: grid; justify-items: center; gap: 7px; background: #130b07; color: rgba(255,255,255,.8); text-align: center; }
.menu-footer strong { color: #fff; font-family: Georgia,serif; font-size: 21px; }
.menu-footer p, .menu-footer small { max-width: 560px; font-size: 11px; line-height: 1.5; }

/* Login */
.login-layout { min-height: 100dvh; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(380px,.9fr); }
.login-showcase { padding: clamp(38px,7vw,100px); display: grid; align-content: center; gap: 18px; color: #fff; background: radial-gradient(circle at 15% 18%,rgba(201,139,66,.24),transparent 30%),linear-gradient(145deg,#140c08,#3a2418); }
.login-showcase h1 { max-width: 680px; font-family: Georgia,serif; font-size: clamp(46px,6vw,78px); font-weight: 500; line-height: 1; letter-spacing: -.04em; }
.login-showcase p { max-width: 580px; color: rgba(255,255,255,.62); font-size: 16px; line-height: 1.6; }
.login-points { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
.login-points span { padding: 9px 11px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; background: rgba(255,255,255,.05); color: rgba(255,255,255,.74); font-size: 11px; font-weight: 800; }
.login-card { width: min(430px,calc(100% - 36px)); margin: auto; padding: 34px; display: grid; gap: 20px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow); }
.login-card h2 { margin-top: 5px; font-size: 28px; }
.login-card p { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.login-icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--accent-soft); font-size: 24px; }

/* Admin */
.admin-page { background: #f5f0eb; }
.admin-shell { min-height: 100dvh; display: grid; grid-template-columns: 240px minmax(0,1fr); }
.admin-sidebar { position: sticky; top: 0; height: 100dvh; padding: 22px 14px; display: flex; flex-direction: column; gap: 24px; background: #24150e; color: #fff; }
.admin-brand { padding: 0 8px; display: flex; align-items: center; gap: 11px; color: #fff; text-decoration: none; }
.admin-brand > span { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: var(--accent); color: #fff; font-weight: 900; }
.admin-brand div { display: grid; gap: 2px; }
.admin-brand small { color: rgba(255,255,255,.42); font-size: 9px; }
.admin-nav { display: grid; gap: 5px; }
.admin-nav-item { width: 100%; min-height: 43px; padding: 0 12px; border: 0; border-radius: 11px; display: flex; align-items: center; gap: 10px; background: transparent; color: rgba(255,255,255,.58); font-size: 12px; font-weight: 800; text-decoration: none; text-align: left; cursor: pointer; }
.admin-nav-item > span { width: 22px; color: rgba(255,255,255,.36); font-size: 16px; text-align: center; }
.admin-nav-item:hover, .admin-nav-item.active { background: rgba(255,255,255,.08); color: #fff; }
.admin-nav-item.active > span { color: #efb96f; }
.admin-nav-item.logout { margin-top: auto; color: #e6a4ae; }
.admin-workspace { min-width: 0; padding: 26px clamp(18px,3vw,42px) 60px; }
.admin-header { margin-bottom: 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.admin-header h1 { margin-top: 4px; font-size: clamp(25px,3vw,35px); }
.admin-header-actions { display: flex; gap: 8px; }
.admin-view { display: none; }
.admin-view.active { display: block; }
.summary-grid { margin-bottom: 16px; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.summary-card { padding: 17px; display: grid; gap: 5px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow-sm); }
.summary-card small { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.summary-card strong { font-size: 24px; }
.menu-admin-layout { display: grid; grid-template-columns: 310px minmax(0,1fr); gap: 16px; align-items: start; }
.admin-card { border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-sm); }
.card-heading { min-height: 78px; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); }
.card-heading h2 { margin-top: 3px; font-size: 18px; }
.icon-button { width: 38px; height: 38px; border: 0; border-radius: 12px; display: grid; place-items: center; background: var(--ink); color: #fff; font-size: 21px; cursor: pointer; }
.admin-list { padding: 10px; display: grid; gap: 6px; }
.category-admin-item { width: 100%; padding: 10px; border: 1px solid transparent; border-radius: 12px; display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 10px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.category-admin-item:hover, .category-admin-item.active { border-color: var(--line); background: var(--panel-soft); }
.category-admin-thumb { width: 40px; height: 40px; overflow: hidden; border-radius: 10px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); font-weight: 900; }
.category-admin-thumb { padding: 0; border: 0; cursor: pointer; }
.category-admin-thumb img { width: 100%; height: 100%; object-fit: cover; }
.category-admin-copy { min-width: 0; display: grid; gap: 2px; }
.category-admin-copy { padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.category-admin-copy strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.category-admin-copy small { color: var(--muted); font-size: 9px; }
.row-actions { display: flex; gap: 4px; }
.row-icon { width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--muted); cursor: pointer; }
.row-icon.danger { color: var(--danger); }
.search-box { min-width: 210px; min-height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; display: flex; align-items: center; gap: 7px; background: var(--panel-soft); color: var(--muted); }
.search-box input { width: 100%; border: 0; outline: none; background: transparent; color: var(--ink); font-size: 12px; }
.product-admin-grid { padding: 14px; display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 10px; }
.product-admin-grid > .empty-state { grid-column: 1 / -1; }
.product-admin-card { min-width: 0; padding: 11px; display: grid; grid-template-columns: 62px minmax(0,1fr); gap: 11px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.product-admin-image { width: 62px; height: 70px; overflow: hidden; border-radius: 10px; display: grid; place-items: center; background: var(--panel-soft); color: var(--muted); font-size: 20px; }
.product-admin-image img { width: 100%; height: 100%; object-fit: cover; }
.product-admin-body { min-width: 0; display: grid; gap: 6px; }
.product-admin-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.product-admin-head strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.product-admin-price { color: var(--accent); font-family: Georgia,serif; font-size: 17px; font-weight: 700; }
.product-admin-meta { display: flex; gap: 5px; flex-wrap: wrap; }
.status-pill { padding: 4px 6px; border-radius: 999px; background: var(--success-soft); color: var(--success); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.status-pill.off { background: var(--danger-soft); color: var(--danger); }
.product-admin-actions { margin-top: auto; display: flex; gap: 5px; }
.product-admin-actions button { min-height: 30px; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink-2); font-size: 9px; font-weight: 800; cursor: pointer; }
.product-admin-actions button.danger { color: var(--danger); }

.settings-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(320px,.6fr); gap: 16px; align-items: start; }
.settings-main, .settings-side { padding-bottom: 18px; }
.settings-main .form-grid, .settings-side > :not(.card-heading) { margin-inline: 18px; }
.settings-main .form-grid { margin-top: 18px; }
.settings-side { display: grid; gap: 14px; }
.settings-side .card-heading { margin-inline: 0; }
.settings-side .button.wide { width: calc(100% - 36px); }
.form-grid { display: grid; gap: 13px; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
.form-grid .full { grid-column: 1 / -1; }
.logo-preview { height: 150px; margin: 0 18px; overflow: hidden; border: 1.5px dashed var(--line); border-radius: 15px; display: grid; place-items: center; background: var(--panel-soft); color: var(--muted); font-weight: 900; }
.logo-preview img { width: 100%; height: 100%; object-fit: contain; }
.upload-field { min-height: 76px; padding: 13px; border: 1.5px dashed var(--line); border-radius: 13px; display: grid; place-items: center; gap: 3px; background: var(--panel-soft); color: var(--ink-2); text-align: center; cursor: pointer; }
.upload-field input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.upload-field span { font-size: 11px; font-weight: 900; }
.upload-field small { color: var(--muted); font-size: 9px; }
.color-input { width: 100%; height: 46px; padding: 4px; border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer; }
.switch-row { display: flex; gap: 16px; flex-wrap: wrap; }
.switch-field { min-height: 46px; display: flex; align-items: center; gap: 9px; color: var(--ink-2); font-size: 12px; font-weight: 800; }
.switch-field input { width: 18px; height: 18px; accent-color: var(--accent); }

/* Dialogs */
.editor-dialog { width: min(620px,calc(100% - 24px)); max-height: 92dvh; margin: auto; padding: 0; border: 0; border-radius: 20px; background: transparent; box-shadow: var(--shadow); }
.editor-dialog::backdrop { background: rgba(29,18,13,.56); backdrop-filter: blur(5px); }
.editor-card { padding: 22px; display: grid; gap: 16px; background: #fff; }
.dialog-heading { display: flex; justify-content: space-between; gap: 12px; }
.dialog-heading h2 { margin-top: 4px; font-size: 24px; }
.dialog-close { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: var(--panel-soft); color: var(--ink); font-size: 21px; cursor: pointer; }
.dialog-actions { padding-top: 14px; display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--line); }

@media (max-width: 900px) {
  .product-list { grid-template-columns: 1fr; }
  .login-layout { grid-template-columns: 1fr; }
  .login-showcase { min-height: 40dvh; padding: 42px 24px; }
  .login-showcase h1 { font-size: 44px; }
  .login-card { margin-block: 32px; }
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: sticky; z-index: 20; height: auto; padding: 9px; flex-direction: row; align-items: center; overflow-x: auto; }
  .admin-brand div { display: none; }
  .admin-brand > span { width: 38px; height: 38px; }
  .admin-nav { display: flex; }
  .admin-nav-item { width: auto; white-space: nowrap; }
  .admin-nav-item.logout { margin: 0 0 0 auto; }
  .menu-admin-layout, .settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .menu-hero { min-height: 340px; padding-inline: 18px; }
  .hero-content { margin-top: 58px; }
  .menu-intro { align-items: start; flex-direction: column; }
  .menu-intro p { text-align: left; }
  .menu-main { padding-inline: 13px; }
  .category-heading { min-height: 92px; padding: 13px; grid-template-columns: 54px minmax(0,1fr) 34px; gap: 11px; }
  .category-cover { width: 54px; height: 54px; border-radius: 13px; }
  .category-heading-copy h3 { font-size: 21px; }
  .product-list { padding: 0 10px 10px; }
  .menu-product { min-height: 102px; padding: 10px; grid-template-columns: 62px minmax(0,1fr) auto; gap: 10px; }
  .product-photo { width: 62px; height: 70px; }
  .product-price { font-size: 17px; }
  .login-showcase { display: none; }
  .login-card { margin-block: 24px; padding: 25px; }
  .admin-sidebar { gap: 5px; }
  .admin-brand { padding: 0; }
  .admin-nav-item { min-height: 38px; padding-inline: 9px; font-size: 10px; }
  .admin-nav-item > span { display: none; }
  .admin-workspace { padding: 18px 12px 50px; }
  .admin-header { align-items: flex-start; flex-direction: column; }
  .admin-header-actions { width: 100%; }
  .admin-header-actions .button { flex: 1; min-width: 0; padding-inline: 10px; font-size: 10px; }
  .summary-grid { grid-template-columns: repeat(3,1fr); }
  .summary-card { padding: 12px; }
  .summary-card strong { font-size: 19px; }
  .card-heading { align-items: flex-start; flex-direction: column; }
  .category-manager .card-heading { flex-direction: row; }
  .search-box { width: 100%; min-width: 0; }
  .product-admin-grid { grid-template-columns: 1fr; padding: 10px; }
  .form-grid.two { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
  .editor-card { padding: 18px; }
}

@media (max-width: 390px) {
  .live-menu-badge { display: none; }
  .menu-product { grid-template-columns: 54px minmax(0,1fr); }
  .product-photo { width: 54px; height: 62px; }
  .product-price { grid-column: 2; justify-self: start; }
  .summary-card small { font-size: 7px; }
  .admin-brand { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Yalçın Babaoğlu Restaurant · v3 public menu */
.menu-page { padding-bottom: 74px; background: #120b07; color: #fff; }
.menu-page .toast { bottom: 92px; }
.menu-hero { min-height: 300px; padding-bottom: 44px; background:
  radial-gradient(circle at 84% 10%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 30%),
  radial-gradient(circle at 8% 100%, rgba(255,255,255,.05), transparent 34%),
  linear-gradient(140deg,#0c0806,#2c190f 74%,#160c08);
}
.hero-content { margin-top: 48px; }
.hero-content h1 { font-size: clamp(38px,6vw,66px); }
.category-nav { top: 0; }
.menu-main { padding-top: 36px; background: #1a0f0a; }
.menu-intro { margin-bottom: 22px; }
.category-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.menu-category { border-color: rgba(219,145,71,.24); border-radius: 19px; background: #24150e; box-shadow: 0 18px 40px rgba(0,0,0,.18); scroll-margin-top: 72px; }
.menu-category.open { grid-column: 1 / -1; }
.category-heading { position: relative; isolation: isolate; min-height: 206px; padding: 24px; overflow: hidden; grid-template-columns: minmax(0,1fr) auto 40px; align-items: end; gap: 10px; background: #140c08; }
.category-heading::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(8,5,3,.96) 0%,rgba(8,5,3,.66) 47%,rgba(8,5,3,.08) 100%),linear-gradient(0deg,rgba(8,5,3,.88),transparent 65%); }
.category-cover { position: absolute; z-index: -2; inset: 0; width: auto; height: auto; border-radius: 0; background: #160d08; color: rgba(255,255,255,.22); font-size: 70px; overflow: hidden; }
.category-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.18); }
.category-heading-copy { position: relative; z-index: 1; align-self: end; }
.category-heading-copy .section-kicker { color: #f0a06f; font-size: 9px; letter-spacing: .22em; }
.category-heading-copy h3 { max-width: 430px; margin-top: 2px; color: #fff; font-size: clamp(25px,3vw,38px); font-weight: 600; line-height: .98; text-wrap: balance; text-transform: uppercase; text-shadow: 0 2px 18px rgba(0,0,0,.4); }
.category-heading-copy > span:last-child { color: rgba(255,255,255,.88); font-size: 10px; }
.category-cta { position: relative; z-index: 1; min-height: 36px; padding: 0 13px; border: 1px solid rgba(239,185,111,.35); border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: #efc188; background: rgba(20,12,8,.54); font-size: 9px; font-weight: 900; white-space: nowrap; backdrop-filter: blur(8px); }
.category-toggle { position: relative; z-index: 1; width: 36px; height: 36px; border-color: rgba(239,185,111,.35); color: #efc188; background: rgba(20,12,8,.54); }
.menu-category.open .category-heading { min-height: 174px; border-bottom: 1px solid rgba(255,255,255,.07); }
.product-list { padding: 14px; background: #21130d; }
.menu-product { min-height: 82px; padding: 14px 15px; grid-template-columns: minmax(0,1fr) auto; gap: 12px; border-color: rgba(255,255,255,.075); background: rgba(255,255,255,.028); }
.menu-product.with-photo { grid-template-columns: 58px minmax(0,1fr) auto; }
.product-photo { width: 58px; height: 58px; }
.menu-product-copy strong { font-size: 14px; }
.menu-product-copy p { font-size: 10px; }
.product-price { color: #f0bd78; font-size: 17px; }
.ask-price .product-price { font-family: inherit; font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }

.contact-section { padding: 58px max(20px,calc((100vw - 1180px)/2)) 38px; display: grid; gap: 18px; background: #170d09; color: #fff; }
.contact-heading { display: grid; gap: 7px; }
.contact-heading h2 { font-family: Georgia,serif; font-size: clamp(29px,4vw,42px); font-weight: 500; }
.contact-heading p { max-width: 560px; color: rgba(255,255,255,.84); font-size: 12px; line-height: 1.6; }
.contact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.contact-card, .address-card { min-height: 84px; padding: 15px; border: 1px solid rgba(255,255,255,.08); border-radius: 16px; display: flex; align-items: center; gap: 12px; background: #26150e; color: #fff; text-decoration: none; }
.contact-card:hover { border-color: color-mix(in srgb,var(--accent) 55%,transparent); }
.contact-card-icon { width: 44px; height: 44px; flex: 0 0 auto; border-radius: 13px; display: grid; place-items: center; background: rgba(255,255,255,.06); color: #f2b16f; font-size: 19px; }
.contact-card > span:nth-child(2), .address-card > div { min-width: 0; display: grid; gap: 4px; }
.contact-card small, .address-card small { color: #ed9465; font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.contact-card strong, .address-card strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; }
.contact-card i { margin-left: auto; color: rgba(255,255,255,.68); font-size: 22px; font-style: normal; }
.contact-empty { grid-column: 1 / -1; padding: 18px; border: 1px dashed rgba(255,255,255,.12); border-radius: 15px; color: rgba(255,255,255,.8); font-size: 11px; text-align: center; }
.address-card { min-height: 76px; }
.address-card strong { color: rgba(255,255,255,.94); font-weight: 600; line-height: 1.5; }
.menu-footer { padding-bottom: 36px; }

.bottom-menu { position: fixed; z-index: 50; inset: auto 0 0; min-height: 68px; padding: 7px max(16px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); border-top: 1px solid rgba(255,255,255,.08); display: grid; grid-template-columns: repeat(3,1fr); background: rgba(17,10,7,.96); box-shadow: 0 -12px 35px rgba(0,0,0,.25); backdrop-filter: blur(18px); }
.bottom-menu-item { min-height: 48px; border: 0; display: grid; place-items: center; align-content: center; gap: 3px; background: transparent; color: rgba(255,255,255,.76); cursor: pointer; }
.bottom-menu-item span { font-size: 18px; line-height: 1; }
.bottom-menu-item strong { font-size: 8px; letter-spacing: .13em; }
.bottom-menu-item.active { color: #efbd7c; }

.search-dialog { width: min(620px,calc(100% - 24px)); max-height: min(82dvh,760px); margin: auto; padding: 0; border: 0; border-radius: 22px; overflow: hidden; background: #24150e; color: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.48); }
.search-dialog::backdrop { background: rgba(8,5,3,.72); backdrop-filter: blur(7px); }
.search-sheet { padding: 22px; display: grid; gap: 16px; }
.search-sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.search-sheet-head h2 { margin-top: 4px; font-family: Georgia,serif; font-size: 29px; font-weight: 500; }
.search-close { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; background: rgba(255,255,255,.05); color: #fff; font-size: 22px; cursor: pointer; }
.public-search { min-height: 50px; padding: 0 14px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; display: flex; align-items: center; gap: 10px; background: rgba(255,255,255,.05); color: #efbd7c; }
.public-search input { width: 100%; border: 0; outline: none; background: transparent; color: #fff; }
.public-search input::placeholder { color: rgba(255,255,255,.7); }
.search-results { max-height: 50dvh; display: grid; gap: 7px; overflow-y: auto; }
.search-result { min-height: 62px; padding: 11px 13px; border: 1px solid rgba(255,255,255,.07); border-radius: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: rgba(255,255,255,.025); color: #fff; text-align: left; cursor: pointer; }
.search-result span { min-width: 0; display: grid; gap: 3px; }
.search-result small { color: #db8f60; font-size: 8px; font-weight: 900; text-transform: uppercase; }
.search-result strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.search-result b { color: #f0bd78; font-family: Georgia,serif; font-size: 15px; white-space: nowrap; }
.search-empty { padding: 28px 16px; color: rgba(255,255,255,.78); font-size: 11px; text-align: center; }

/* Phone-first admin refinements */
@media (max-width: 760px) {
  .menu-hero { min-height: 250px; padding: 16px 16px 32px; }
  .hero-content { margin-top: 34px; gap: 9px; }
  .hero-content h1 { font-size: clamp(34px,10vw,48px); }
  .hero-content p { font-size: 13px; }
  .category-nav { top: 0; }
  .category-chips { padding: 10px 12px; }
  .menu-main { padding: 27px 12px 48px; }
  .menu-intro { margin-bottom: 18px; }
  .menu-intro h2 { font-size: 28px; }
  .category-list { grid-template-columns: 1fr; gap: 12px; }
  .menu-category.open { grid-column: auto; }
  .category-heading, .menu-category.open .category-heading { min-height: 172px; padding: 18px; grid-template-columns: minmax(0,1fr) auto 36px; }
  .category-heading::before { background: linear-gradient(90deg,rgba(8,5,3,.95),rgba(8,5,3,.54) 64%,rgba(8,5,3,.14)),linear-gradient(0deg,rgba(8,5,3,.8),transparent 68%); }
  .category-heading-copy h3 { max-width: 260px; font-size: clamp(24px,8vw,34px); }
  .category-cta { min-height: 34px; padding-inline: 10px; font-size: 8px; }
  .category-toggle { width: 34px; height: 34px; }
  .product-list { padding: 9px; grid-template-columns: 1fr; gap: 7px; }
  .menu-product { min-height: 72px; padding: 12px; }
  .menu-product.with-photo { grid-template-columns: 50px minmax(0,1fr) auto; }
  .product-photo { width: 50px; height: 50px; }
  .menu-product-copy strong { font-size: 13px; }
  .product-price { font-size: 15px; }
  .contact-section { padding: 44px 12px 28px; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-card { min-height: 70px; padding: 12px; }
  .menu-footer { padding: 32px 16px; }
  .search-dialog { width: 100%; max-height: 88dvh; margin: auto 0 0; border-radius: 22px 22px 0 0; }

  .admin-shell { display: block; }
  .admin-sidebar { position: fixed; z-index: 80; inset: auto 0 0; width: 100%; height: calc(70px + env(safe-area-inset-bottom)); padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,255,255,.09); flex-direction: row; align-items: stretch; gap: 3px; overflow: visible; box-shadow: 0 -10px 30px rgba(36,21,14,.17); }
  .admin-brand { display: none; }
  .admin-nav { min-width: 0; flex: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; }
  .admin-nav-item, .admin-nav-item.logout { width: auto; min-width: 0; min-height: 54px; margin: 0; padding: 5px 4px; border-radius: 10px; flex-direction: column; justify-content: center; gap: 3px; font-size: 8px; line-height: 1.1; text-align: center; white-space: normal; }
  .admin-nav-item > span { width: auto; display: block; font-size: 15px; }
  .admin-nav-item.logout { flex: 0 0 58px; }
  .admin-workspace { padding: 16px 10px 92px; }
  .admin-header { margin-bottom: 13px; align-items: flex-start; flex-direction: column; gap: 10px; }
  .admin-header h1 { font-size: 23px; }
  .admin-header-actions { width: 100%; gap: 6px; }
  .admin-header-actions .button { min-height: 40px; flex: 1; padding-inline: 8px; font-size: 9px; }
  .summary-grid { margin-bottom: 10px; gap: 6px; }
  .summary-card { padding: 10px; border-radius: 12px; }
  .summary-card small { font-size: 7px; }
  .summary-card strong { font-size: 18px; }
  .menu-admin-layout, .settings-grid { gap: 10px; }
  .admin-card { border-radius: 15px; }
  .card-heading { min-height: 60px; padding: 12px 13px; }
  .card-heading h2 { font-size: 16px; }
  .category-manager .admin-list { padding: 8px; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  .category-manager .admin-list::-webkit-scrollbar { display: none; }
  .category-admin-item { min-width: 185px; padding: 8px; grid-template-columns: 36px minmax(0,1fr) auto; gap: 7px; border-color: var(--line); background: #fff; }
  .category-admin-thumb { width: 36px; height: 36px; }
  .row-icon { width: 26px; height: 26px; }
  .product-manager .card-heading { min-height: 106px; align-items: stretch; flex-direction: column; }
  .product-admin-grid { padding: 8px; grid-template-columns: 1fr; gap: 7px; }
  .product-admin-card { min-height: 88px; padding: 9px; grid-template-columns: 52px minmax(0,1fr); gap: 9px; }
  .product-admin-image { width: 52px; height: 60px; }
  .product-admin-body { gap: 4px; }
  .product-admin-actions button { min-height: 27px; padding-inline: 8px; }
  .settings-main .form-grid, .settings-side > :not(.card-heading) { margin-inline: 12px; }
  .settings-main .form-grid { margin-top: 12px; }
  .settings-side .button.wide { width: calc(100% - 24px); }
  .logo-preview { height: 110px; margin-inline: 12px; }
  .editor-dialog { width: 100%; max-height: 94dvh; margin: auto 0 0; border-radius: 20px 20px 0 0; }
  .editor-card { padding: 15px; gap: 12px; }
  .dialog-heading h2 { font-size: 21px; }
  .product-editor .form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .product-editor .form-grid .full { grid-column: 1 / -1; }
  .input { min-height: 42px; }
  .upload-field { min-height: 63px; }
}

@media (max-width: 430px) {
  .category-heading, .menu-category.open .category-heading { min-height: 156px; padding: 16px 14px; grid-template-columns: minmax(0,1fr) 33px; }
  .category-heading-copy h3 { max-width: 240px; font-size: 25px; }
  .category-cta { display: none; }
  .category-toggle { width: 33px; height: 33px; }
  .menu-product { grid-template-columns: minmax(0,1fr) auto; }
  .product-price { white-space: normal; text-align: right; }
  .admin-header-actions .button.secondary { display: none; }
}

/* v4 logo and standalone contact panel */
.menu-topline { justify-content: flex-start; }
.mini-brand { gap: 11px; font-size: 13px; }
.mini-brand-logo { width: 44px; height: 44px; padding: 4px; border: 1px solid rgba(255,255,255,.14); border-radius: 13px; object-fit: contain; background: rgba(255,255,255,.055); box-shadow: 0 10px 28px rgba(0,0,0,.2); }
.contact-dialog { width: min(720px,calc(100% - 24px)); max-height: min(90dvh,820px); margin: auto; padding: 0; border: 0; border-radius: 24px; overflow: hidden; background: #1f120c; color: #fff; box-shadow: 0 34px 100px rgba(0,0,0,.52); }
.contact-dialog::backdrop { background: rgba(8,5,3,.76); backdrop-filter: blur(8px); }
.contact-sheet { padding: 24px; display: grid; gap: 14px; overflow-y: auto; }
.contact-sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.contact-sheet-head h2 { margin-top: 4px; font-family: Georgia,serif; font-size: 32px; font-weight: 500; }
.contact-sheet-head p { max-width: 510px; margin-top: 6px; color: rgba(255,255,255,.86); font-size: 11px; line-height: 1.55; }
.contact-business { min-height: 74px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.08); border-radius: 16px; display: flex; align-items: center; gap: 12px; background: linear-gradient(100deg,rgba(201,88,67,.14),rgba(255,255,255,.025)); }
.contact-business img { width: 52px; height: 52px; flex: 0 0 auto; object-fit: contain; }
.contact-business div { min-width: 0; display: grid; gap: 4px; }
.contact-business strong { overflow: hidden; font-family: Georgia,serif; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
.contact-business small { color: rgba(255,255,255,.78); font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.contact-action-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.contact-action, .contact-address-link { min-height: 76px; padding: 13px; border: 1px solid rgba(255,255,255,.08); border-radius: 15px; display: flex; align-items: center; gap: 11px; background: rgba(255,255,255,.035); color: #fff; text-decoration: none; transition: .18s ease; }
.contact-action:hover, .contact-address-link:hover { border-color: color-mix(in srgb,var(--accent) 58%,transparent); background: rgba(255,255,255,.055); }
.contact-action > span, .contact-address-link > span { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.06); color: #f0b673; font-size: 18px; }
.contact-action.whatsapp > span { color: #59d382; }
.contact-action div, .contact-address-link div { min-width: 0; display: grid; gap: 3px; }
.contact-action small, .contact-address-link small { color: #df8b5e; font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.contact-action strong, .contact-address-link strong { font-size: 12px; line-height: 1.4; }
.contact-action i, .contact-address-link i { margin-left: auto; color: rgba(255,255,255,.68); font-size: 21px; font-style: normal; }
.contact-address-link { min-height: 82px; }
.contact-address-link strong { color: rgba(255,255,255,.94); font-weight: 600; }
.hours-card { padding: 15px; border: 1px solid rgba(255,255,255,.08); border-radius: 16px; background: rgba(255,255,255,.025); }
.hours-heading { padding-bottom: 11px; border-bottom: 1px solid rgba(255,255,255,.07); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hours-heading div { display: flex; align-items: center; gap: 8px; }
.hours-heading div span { color: #edaa6e; font-size: 17px; }
.hours-heading strong { font-size: 13px; }
.hours-heading small { padding: 5px 8px; border-radius: 999px; background: rgba(55,187,111,.1); color: #62d494; font-size: 8px; font-weight: 900; text-transform: uppercase; }
.hours-list { padding-top: 8px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 22px; }
.hours-list > div { min-height: 34px; padding: 0 4px; border-bottom: 1px solid rgba(255,255,255,.045); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hours-list span { color: rgba(255,255,255,.84); font-size: 10px; }
.hours-list strong { color: #f0c086; font-size: 10px; }

@media (max-width: 620px) {
  .mini-brand-logo { width: 40px; height: 40px; }
  .contact-dialog { width: 100%; max-height: 92dvh; margin: auto 0 0; border-radius: 22px 22px 0 0; }
  .contact-sheet { padding: 18px 14px calc(18px + env(safe-area-inset-bottom)); gap: 11px; }
  .contact-sheet-head h2 { font-size: 28px; }
  .contact-action-grid { grid-template-columns: 1fr; gap: 7px; }
  .contact-action, .contact-address-link { min-height: 68px; padding: 11px; }
  .contact-action > span, .contact-address-link > span { width: 39px; height: 39px; }
  .contact-business { min-height: 66px; padding: 9px 11px; }
  .contact-business img { width: 46px; height: 46px; }
  .contact-business strong { font-size: 16px; }
  .hours-card { padding: 12px; }
  .hours-list { grid-template-columns: 1fr; }
  .hours-list > div { min-height: 31px; }
}

/* v5 · balanced phone layout for the public menu and administration */
@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: hidden; }

  /* Public menu: shorter first screen, comfortable but restrained type. */
  .menu-hero { min-height: 218px; padding: 12px 14px 24px; }
  .menu-topline { min-height: 42px; }
  .mini-brand { min-width: 0; gap: 9px; font-size: 12px; }
  .mini-brand-logo { width: 38px; height: 38px; border-radius: 11px; }
  .hero-content { margin-top: 24px; gap: 7px; }
  .hero-content .hero-kicker { font-size: 9px; letter-spacing: .16em; }
  .hero-content h1 { max-width: 355px; font-size: clamp(31px,8.7vw,38px); line-height: .96; }
  .hero-content p { font-size: 12px; line-height: 1.45; }
  .category-chips { padding: 8px 11px; gap: 6px; }
  .category-chip { min-height: 34px; padding-inline: 13px; font-size: 10px; }
  .menu-main { padding: 24px 12px 42px; }
  .menu-intro { margin-bottom: 15px; gap: 7px; }
  .menu-intro h2 { font-size: 28px; line-height: 1.05; }
  .menu-intro p { font-size: 10px; line-height: 1.45; }
  .category-list { gap: 10px; }
  .category-heading, .menu-category.open .category-heading { min-height: 138px; padding: 14px; grid-template-columns: minmax(0,1fr) 32px; gap: 8px; }
  .category-heading-copy h3 { max-width: 245px; font-size: 23px; line-height: 1; }
  .category-heading-copy > span:last-child { font-size: 9px; }
  .category-cta { display: none; }
  .category-toggle { width: 32px; height: 32px; }
  .product-list { padding: 8px; gap: 6px; }
  .menu-product { min-height: 66px; padding: 10px; gap: 9px; }
  .menu-product.with-photo { grid-template-columns: 46px minmax(0,1fr) auto; }
  .product-photo { width: 46px; height: 46px; border-radius: 10px; }
  .menu-product-copy { gap: 3px; }
  .menu-product-copy strong { font-size: 12px; }
  .menu-product-copy p { font-size: 9px; }
  .product-price { font-size: 14px; }
  .bottom-menu { min-height: 62px; padding-top: 5px; padding-bottom: calc(5px + env(safe-area-inset-bottom)); }
  .bottom-menu-item { min-height: 46px; }
  .bottom-menu-item span { font-size: 17px; }

  /* Login: remove the large empty areas and equalise all controls. */
  .login-layout { min-height: 100dvh; padding: 16px 12px; display: grid; place-items: center; }
  .login-showcase { display: none; }
  .login-card { width: min(100%,420px); margin: 0; padding: 21px; gap: 13px; border-radius: 20px; align-content: start; }
  .login-icon { width: 44px; height: 44px; border-radius: 13px; font-size: 20px; }
  .login-card .section-kicker { font-size: 9px; }
  .login-card h2 { margin-top: 3px; font-size: 27px; line-height: 1.1; }
  .login-card p { margin-top: 4px; font-size: 11px; }
  .login-card .field { gap: 6px; }
  .login-card .field > span { font-size: 11px; }
  .login-card .input, .login-card .button { min-height: 48px; }
  .login-card .button { font-size: 13px; }
  .login-card .text-link { padding: 4px; font-size: 11px; }

  /* Admin: category-first navigation and readable, finger-sized controls. */
  .admin-workspace { padding: 14px 10px 88px; }
  .admin-header { margin-bottom: 12px; gap: 9px; }
  .admin-header h1 { font-size: 22px; line-height: 1.12; }
  .admin-header .section-kicker { font-size: 9px; }
  .admin-header-actions { gap: 7px; }
  .admin-header-actions .button { min-height: 44px; font-size: 11px; }
  .summary-grid { margin-bottom: 10px; gap: 7px; }
  .summary-card { min-height: 62px; padding: 10px 11px; gap: 3px; }
  .summary-card small { font-size: 8px; }
  .summary-card strong { font-size: 20px; }
  .menu-admin-layout, .settings-grid { gap: 10px; }
  .admin-card { border-radius: 16px; }
  .card-heading { min-height: 62px; padding: 12px; }
  .card-heading .section-kicker { font-size: 8px; }
  .card-heading h2 { font-size: 17px; }
  .icon-button { width: 38px; height: 38px; }
  .category-manager .admin-list { padding: 8px; gap: 7px; }
  .category-admin-item { min-width: 176px; min-height: 58px; padding: 8px; grid-template-columns: 38px minmax(0,1fr) auto; gap: 7px; }
  .category-admin-thumb { width: 38px; height: 38px; }
  .category-admin-copy strong { font-size: 12px; }
  .category-admin-copy small { font-size: 9px; }
  .row-icon { width: 32px; height: 32px; font-size: 14px; }
  .product-manager .card-heading { min-height: 104px; gap: 10px; }
  .search-box { min-height: 44px; }
  .search-box input { font-size: 13px; }
  .product-admin-grid { padding: 8px; gap: 8px; }
  .product-admin-card { min-height: 104px; padding: 10px; grid-template-columns: 56px minmax(0,1fr); gap: 10px; }
  .product-admin-image { width: 56px; height: 64px; }
  .product-admin-body { gap: 5px; }
  .product-admin-head strong { font-size: 14px; white-space: normal; line-height: 1.25; }
  .product-admin-price { font-size: 17px; }
  .status-pill { padding: 4px 7px; font-size: 8px; }
  .product-admin-actions { gap: 6px; }
  .product-admin-actions button { min-height: 36px; padding-inline: 12px; font-size: 10px; }
  .admin-sidebar { height: calc(68px + env(safe-area-inset-bottom)); padding: 6px 7px calc(6px + env(safe-area-inset-bottom)); }
  .admin-nav-item, .admin-nav-item.logout { min-height: 54px; font-size: 9px; }
  .admin-nav-item > span { font-size: 16px; }
  .admin-nav-item.logout { flex-basis: 60px; }
  .settings-main .form-grid, .settings-side > :not(.card-heading) { margin-inline: 12px; }
  .settings-main .form-grid { margin-top: 12px; }
  .settings-side { padding-bottom: 14px; }
  .field > span { font-size: 11px; }
  .input { min-height: 46px; font-size: 13px; }
  .editor-card { max-height: 94dvh; overflow-y: auto; }
}

/* Compact contact sheet: all information stays visible without giant cards. */
@media (max-width: 620px) {
  .contact-dialog { max-height: 88dvh; }
  .contact-sheet { max-height: 88dvh; padding: 14px 12px calc(14px + env(safe-area-inset-bottom)); gap: 8px; }
  .contact-sheet-head { gap: 10px; }
  .contact-sheet-head h2 { margin-top: 2px; font-size: 25px; line-height: 1.05; }
  .contact-sheet-head p { margin-top: 4px; font-size: 10px; line-height: 1.4; }
  .search-close { width: 36px; height: 36px; flex: 0 0 auto; }
  .contact-business { min-height: 54px; padding: 7px 9px; gap: 9px; }
  .contact-business img { width: 40px; height: 40px; }
  .contact-business strong { font-size: 14px; }
  .contact-business small { font-size: 8px; }
  .contact-action-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
  .contact-action, .contact-address-link { min-height: 60px; padding: 9px; gap: 8px; }
  .contact-action > span, .contact-address-link > span { width: 36px; height: 36px; border-radius: 10px; font-size: 16px; }
  .contact-action small, .contact-address-link small { font-size: 7px; }
  .contact-action strong, .contact-address-link strong { font-size: 11px; line-height: 1.25; }
  .contact-action i { display: none; }
  .contact-address-link { min-height: 60px; }
  .contact-address-link i { font-size: 17px; }
  .hours-card { padding: 10px; }
  .hours-heading { padding-bottom: 8px; }
  .hours-heading strong { font-size: 12px; }
  .hours-heading small { padding: 4px 7px; font-size: 7px; }
  .hours-list { padding-top: 6px; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 14px; }
  .hours-list > div { min-height: 27px; padding: 0 2px; }
  .hours-list span, .hours-list strong { font-size: 9px; }
}

@media (max-width: 380px) {
  .hero-content h1 { font-size: 30px; }
  .category-heading-copy h3 { max-width: 220px; font-size: 21px; }
  .contact-action-grid { grid-template-columns: 1fr; }
  .contact-action { min-height: 54px; }
  .hours-list { grid-template-columns: 1fr; }
  .admin-nav-item, .admin-nav-item.logout { font-size: 8px; }
}

/* v6 · exact mobile control sizing and a truly centred contact dialog */
@media (max-width: 760px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

  .login-layout {
    min-height: 100dvh;
    padding: 18px 14px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .login-card {
    width: min(390px,calc(100% - 12px));
    height: auto !important;
    min-height: 0 !important;
    max-height: none;
    margin: 0 !important;
    padding: 20px !important;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px !important;
  }
  .login-card > * { flex: 0 0 auto; }
  .login-card .login-icon { width: 42px; height: 42px; }
  .login-card h2 { font-size: 25px; }
  .login-card .field { gap: 6px; }
  .login-card .input,
  .login-card .button {
    width: 100%;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px;
    padding-block: 0 !important;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1;
  }
  .login-card .input { padding-inline: 13px !important; }
  .login-card .button { padding-inline: 14px !important; }
  .login-card .text-link { min-height: 28px; display: grid; place-items: center; }
}

@media (max-width: 620px) {
  .contact-dialog {
    inset: 0;
    width: min(430px,calc(100% - 28px));
    max-height: calc(100dvh - 28px);
    margin: auto !important;
    border-radius: 22px;
  }
  .contact-sheet { max-height: calc(100dvh - 28px); }
  .search-dialog {
    inset: 0;
    width: min(430px,calc(100% - 28px));
    max-height: calc(100dvh - 28px);
    margin: auto !important;
    border-radius: 22px;
  }
}

/* v7 · crisp category chevron */
.category-toggle {
  position: relative;
  font-size: 0;
  line-height: 0;
  background: rgba(18,10,6,.7);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025), 0 5px 16px rgba(0,0,0,.2);
}
.category-toggle::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 7px;
  background: currentColor;
  -webkit-clip-path: polygon(0 0,50% 64%,100% 0,100% 36%,50% 100%,0 36%);
  clip-path: polygon(0 0,50% 64%,100% 0,100% 36%,50% 100%,0 36%);
  transform: translate(-50%,-50%);
  transform-origin: center;
  transition: transform .2s ease;
}
.menu-category.open .category-toggle { transform: none; }
.menu-category.open .category-toggle::before { transform: translate(-50%,-50%) rotate(180deg); }

/* v10 · warm white public menu theme */
.menu-page {
  color-scheme: light;
  background: #f8f4f0;
  color: #2b1a12;
}
.menu-hero {
  color: #2b1a12;
  background:
    radial-gradient(circle at 84% 10%, color-mix(in srgb,var(--accent) 18%,transparent), transparent 34%),
    radial-gradient(circle at 8% 100%, rgba(139,90,55,.08), transparent 36%),
    linear-gradient(140deg,#fffdfa,#f4e9df 74%,#fbf5ef);
}
.menu-hero::after { border-color: rgba(72,42,27,.1); }
.mini-brand { color: #2b1a12; }
.mini-brand-logo {
  border-color: rgba(72,42,27,.13);
  background: rgba(255,255,255,.82);
  box-shadow: 0 10px 28px rgba(72,42,27,.12);
}
.live-menu-badge {
  border-color: rgba(72,42,27,.12);
  background: rgba(255,255,255,.72);
  color: #5f493d;
}
.hero-content h1 { color: #2b1a12; }
.hero-content p { color: #665044; }
.menu-page .hero-kicker { color: #9b521f; }

.category-nav {
  border-bottom-color: #e8ddd4;
  background: rgba(255,252,249,.96);
  box-shadow: 0 8px 24px rgba(61,39,28,.06);
}
.category-chip {
  border-color: #e4d8cf;
  background: #fff;
  color: #4e392e;
}
.category-chip.active {
  border-color: #d7a56f;
  background: #f8e8d5;
  color: #744018;
}

.menu-main { background: #f8f4f0; }
.menu-intro { color: #2b1a12; }
.menu-intro p { color: #6f5b4f; }
.menu-page .menu-intro .section-kicker { color: #9b521f; }
.menu-status { color: #705b4f; }
.loader {
  border-color: #e6d9cf;
  border-top-color: var(--accent);
}

.menu-category {
  border-color: #e3d4c8;
  background: #fff;
  box-shadow: 0 16px 34px rgba(70,43,29,.1);
}
.category-heading {
  color: #2b1a12;
  background: #fff;
}
.category-heading::before {
  background:
    linear-gradient(90deg,rgba(255,253,249,.94) 0%,rgba(255,253,249,.7) 40%,rgba(255,253,249,.28) 70%,rgba(255,253,249,.06) 100%),
    linear-gradient(0deg,rgba(255,253,249,.55),transparent 55%);
}
.category-cover { background: #eadfd6; color: #9b6c4a; }
.menu-page .category-heading-copy .section-kicker { color: #97551f; }
.category-heading-copy h3 { color: #2b1a12; text-shadow: none; }
.category-heading-copy > span:last-child { color: #665044; }
.category-cta,
.category-toggle {
  border-color: #d6b89e;
  background: rgba(255,253,249,.92);
  color: #87451e;
  box-shadow: 0 5px 16px rgba(75,47,31,.1);
}
.menu-category.open .category-heading { border-bottom-color: #e8ddd4; }
.product-list { background: #fbf7f3; }
.menu-product {
  border-color: #e8ddd4;
  background: #fff;
  box-shadow: 0 4px 14px rgba(66,42,29,.045);
}
.product-photo { background: #f2e8df; color: #a37b61; }
.menu-product-copy strong { color: #2b1a12; }
.menu-product-copy p { color: #715c50; }
.product-price { color: #97551f; }
.sold-out { opacity: .72; }
.sold-out .product-price { color: #ad3445; }

.contact-section {
  border-top: 1px solid #e9ddd4;
  background: #fffaf6;
  color: #2b1a12;
}
.contact-heading p { color: #705b4f; }
.contact-card,
.address-card {
  border-color: #e6d9cf;
  background: #fff;
  color: #2b1a12;
  box-shadow: 0 7px 20px rgba(66,42,29,.05);
}
.contact-card-icon { background: #f7eadd; color: #9b571f; }
.contact-card small,
.address-card small { color: #94501f; }
.contact-card i { color: #7b6659; }
.contact-empty { border-color: #dfd1c6; color: #705b4f; }
.address-card strong { color: #3a271e; }

.menu-footer {
  border-top: 1px solid #eadfd6;
  background: #fffaf6;
  color: #705b4f;
}
.menu-footer strong { color: #2b1a12; }

.bottom-menu {
  border-top-color: #e3d6cc;
  background: rgba(255,252,249,.97);
  box-shadow: 0 -10px 30px rgba(57,36,25,.1);
}
.bottom-menu-item { color: #6a564a; }
.bottom-menu-item.active { color: #97551f; }

.search-dialog,
.contact-dialog {
  border: 1px solid #e2d4ca;
  background: #fbf8f5;
  color: #2b1a12;
  box-shadow: 0 30px 90px rgba(48,29,20,.26);
}
.search-dialog::backdrop,
.contact-dialog::backdrop { background: rgba(35,22,15,.52); }
.search-close {
  border-color: #dfd1c6;
  background: #fff;
  color: #38251c;
}
.public-search {
  border-color: #dfd1c6;
  background: #fff;
  color: #9b571f;
}
.public-search input { color: #2b1a12; }
.public-search input::placeholder { color: #8b776b; }
.search-result {
  border-color: #e6d9cf;
  background: #fff;
  color: #2b1a12;
}
.search-result small { color: #97551f; }
.search-result b { color: #97551f; }
.search-empty { color: #705b4f; }

.contact-sheet-head p { color: #705b4f; }
.contact-business {
  border-color: #e4d4c8;
  background: linear-gradient(100deg,#f9e9de,#fff);
}
.contact-business strong { color: #2b1a12; }
.contact-business small { color: #715c50; }
.contact-action,
.contact-address-link {
  border-color: #e5d8ce;
  background: #fff;
  color: #2b1a12;
  box-shadow: 0 5px 16px rgba(66,42,29,.04);
}
.contact-action:hover,
.contact-address-link:hover { background: #fffaf6; }
.contact-action > span,
.contact-address-link > span { background: #f7eadd; color: #9b571f; }
.contact-action.whatsapp > span { background: #eaf7ef; color: #21854d; }
.contact-action small,
.contact-address-link small { color: #94501f; }
.contact-action strong,
.contact-address-link strong { color: #2b1a12; }
.contact-action i,
.contact-address-link i { color: #806b5e; }
.contact-address-link strong { color: #3a271e; }
.hours-card {
  border-color: #e5d8ce;
  background: #fff;
  box-shadow: 0 5px 16px rgba(66,42,29,.04);
}
.hours-heading { border-bottom-color: #eadfd6; }
.hours-heading div span { color: #9b571f; }
.hours-heading strong { color: #2b1a12; }
.hours-heading small { background: #eaf7ef; color: #207f4a; }
.hours-list > div { border-bottom-color: #eee4dc; }
.hours-list span { color: #675247; }
.hours-list strong { color: #8f4f1e; }

.menu-page .empty-state {
  border-color: #dfd1c6;
  color: #705b4f;
}
.menu-page .empty-state strong { color: #2b1a12; }
.menu-page .toast {
  border: 1px solid #e3d6cc;
  background: #fff;
  color: #2b1a12;
  box-shadow: 0 16px 42px rgba(55,35,24,.18);
}