:root { --orange:#e45322; --ink:#102944; --cream:#fffaf2; --muted:#806b5b; }
* { box-sizing:border-box; }
body { margin:0; background:#f2e9dd; color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.menu-page { width:min(100%,480px); min-height:100vh; margin:auto; background:var(--cream); overflow:hidden; }
.is-hidden { display:none; }
.hero { height:245px; padding:22px 21px; color:#fff; background:linear-gradient(115deg,#102944dc,#274e71a8),url("https://images.unsplash.com/photo-1568901346375-23c9450c58cd?auto=format&fit=crop&w=1100&q=85") center/cover; }
.hero-top,.section-heading,.social-card { display:flex; align-items:center; justify-content:space-between; }
.hero-top { font-size:11px; font-weight:800; letter-spacing:.08em; }
.round-button { width:35px; height:35px; border:0; border-radius:50%; background:#fff; color:var(--orange); font-size:17px; }
.hero-copy { margin-top:55px; }
.brand-logo { color:#fff; text-align:center; }.brand-logo strong { display:block; font-size:22px; letter-spacing:.08em; line-height:1; }.brand-mark { display:flex; flex-direction:column; align-items:center; gap:4px; width:58px; margin:0 auto 9px; transform:rotate(-36deg); }.brand-mark i { display:block; height:8px; border-radius:20px; background:#fff; transform:skewX(-16deg); }.brand-mark i:nth-child(1) { width:31px; }.brand-mark i:nth-child(2) { width:42px; }.brand-mark i:nth-child(3) { width:53px; }
.hero-logo { display:block; width:180px; margin:0 0 9px; filter:drop-shadow(0 5px 10px #07192ca0); }.hero-logo .brand-mark { width:38px; gap:3px; margin-bottom:6px; }.hero-logo .brand-mark i { height:5px; }.hero-logo .brand-mark i:nth-child(1) { width:20px; }.hero-logo .brand-mark i:nth-child(2) { width:28px; }.hero-logo .brand-mark i:nth-child(3) { width:36px; }.hero-logo strong { font-size:17px; }
.hero p { margin:0; font-size:13px; }
.open-badge { display:inline-block; margin-top:12px; padding:6px 10px; border-radius:20px; background:#dbefd9; color:#25612e; font-size:11px; font-weight:800; }
.content { padding:20px 16px 28px; }.section-heading h2 { font-size:20px; margin:0; }.search-button { border:0; background:transparent; color:#a53c1b; font-size:12px; font-weight:800; }
.tabs { display:flex; gap:8px; overflow-x:auto; margin:17px 0 12px; padding-bottom:3px; scrollbar-width:none; }
.tabs::-webkit-scrollbar { display:none; }
.tab { flex:0 0 auto; border:0; border-radius:20px; padding:8px 13px; background:#eee2d1; color:#654938; font-size:12px; font-weight:800; white-space:nowrap; transition:.2s; }.tab.active { background:var(--orange); color:#fff; box-shadow:0 5px 12px #dc4c1e40; }
.category-browser { margin-top:3px; }.category-browser-heading { display:flex; align-items:end; justify-content:space-between; margin:19px 1px 13px; }.category-browser-heading span { color:#a35b3e; font-size:9px; font-weight:900; letter-spacing:.14em; }.category-browser-heading h3 { margin:4px 0 0; font-size:22px; letter-spacing:-.4px; }.category-browser-heading b { color:#7e6a5b; font-size:10px; }.category-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }.category-card { position:relative; min-height:158px; overflow:hidden; border:0; border-radius:18px; color:#fff; text-align:left; background:#102944 center/cover; box-shadow:0 9px 20px #52341f20; cursor:pointer; transition:transform .2s,box-shadow .2s; }.category-card:hover { transform:translateY(-3px); box-shadow:0 13px 24px #52341f35; }.category-card:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#0d1f3210 15%,#0d1f32d9 100%); }.category-card-content { position:absolute; z-index:1; right:13px; bottom:12px; left:13px; }.category-card span { display:inline-grid; width:25px; height:25px; place-items:center; margin-bottom:19px; border-radius:50%; color:#102944; background:#f6c540; font-size:16px; }.category-card strong { display:block; font-size:16px; line-height:1.05; }.category-card small { display:block; margin-top:4px; color:#f2e7db; font-size:10px; }.menu-details { animation:page-in .35s ease both; }.back-to-categories { margin:18px 0 10px; padding:0; border:0; color:#a33e1d; background:transparent; font-size:12px; font-weight:900; }.menu-details .category-info { margin-top:0; }
.category-info { position:relative; margin:2px 0 8px; padding:13px 16px; overflow:hidden; border-radius:16px; color:#fff; background:linear-gradient(120deg,#102944,#315678); }.category-info:after { content:"✦"; position:absolute; right:16px; top:9px; color:#f6c540; font-size:28px; }.category-kicker { color:#f6c540; font-size:9px; font-weight:900; letter-spacing:.15em; }.category-info h3 { margin:3px 0 1px; font-size:18px; text-transform:uppercase; }.category-info p { margin:0; color:#dbe7f2; font-size:10px; }
.menu-item { display:flex; align-items:center; gap:11px; padding:11px 0; border-bottom:1px solid #f0e5d9; animation:item-in .3s ease both; }.food-image { width:66px; height:66px; border-radius:15px; object-fit:cover; }.item-details { flex:1; min-width:0; }.item-details h3 { margin:0; font-size:14px; }.item-details p { margin:4px 0 0; color:var(--muted); font-size:11px; line-height:1.35; }.price { font-size:14px; font-weight:900; color:#be3d18; white-space:nowrap; }.add-button { border:0; width:27px; height:27px; border-radius:50%; background:#f5d9ca; color:#bd411b; font-size:20px; line-height:1; }
.social-card { margin-top:17px; padding:14px; border-radius:17px; color:#fff; background:#102944; }.social-card strong { display:block; font-size:13px; }.social-card small { display:block; margin-top:3px; color:#d7e3ee; font-size:10px; }.social-links { display:flex; gap:7px; }.social-links a { width:28px; height:28px; display:grid; place-items:center; border-radius:9px; background:#fff2e9; color:#9b371d; text-decoration:none; font-size:10px; font-weight:900; }
.quick-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:12px; }.quick-actions:not(:has(#review-link:not([hidden]))) { grid-template-columns:1fr; }.quick-actions a { padding:12px 6px; border-radius:13px; text-align:center; text-decoration:none; font-size:11px; font-weight:900; }.review-link { background:#f6c540; color:#593d00; }.map-link { background:#e9dfd2; color:#49372c; }
.menu-load-status { margin:0 0 14px; padding:12px 14px; border-radius:12px; color:#f4f1ea; background:#2a1a14; font-size:13px; line-height:1.4; }
.menu-load-status[hidden] { display:none !important; }
@keyframes item-in { from { opacity:0; transform:translateX(12px); } to { opacity:1; transform:none; } }
@media (min-width:481px) { body { padding:22px; }.menu-page { border-radius:28px; box-shadow:0 18px 55px #6d482d35; min-height:760px; } } @media (prefers-reduced-motion:reduce) { *,*:before,*:after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }
body.is-menu-preview { padding: 0 !important; background: #0b0d0d; }
body.is-menu-preview .menu-page { width: min(100%, 480px) !important; max-width: 480px !important; min-height: 100dvh; margin: 0 auto !important; border-radius: 0 !important; box-shadow: none !important; }
body.is-demo-menu { padding-top: 46px; }
.demo-banner {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 8px 14px;
  color: #fff;
  background: #0f5c56;
  font-size: 13px;
  font-weight: 650;
}
.demo-banner a { color: #fff; }
body.is-menu-preview.is-demo-menu { padding-top: 0; }
.admin-backdrop { position:fixed; z-index:9; inset:0; visibility:hidden; opacity:0; background:#06132188; transition:.25s; }.admin-panel { position:fixed; z-index:10; top:0; right:0; width:min(100%,430px); height:100dvh; overflow:auto; transform:translateX(104%); color:#18304a; background:#fffaf2; box-shadow:-16px 0 45px #08142242; transition:transform .32s cubic-bezier(.2,.8,.2,1); }.admin-panel.open { transform:none; }.admin-panel.open + .admin-backdrop { visibility:visible; opacity:1; }.admin-header { display:flex; align-items:center; justify-content:space-between; padding:21px 19px; color:#fff; background:#102944; }.admin-header span { color:#f6c540; font-size:10px; font-weight:900; letter-spacing:.12em; }.admin-header h2 { margin:3px 0 0; font-size:21px; }.admin-header button { width:34px; height:34px; border:0; border-radius:50%; color:#102944; background:#fff; font-size:24px; }.admin-body { padding:18px; }.admin-section { padding:16px 0; border-bottom:1px solid #eadfd3; }.admin-section h3 { margin:0 0 10px; font-size:15px; }.inline-form { display:flex; gap:8px; }.inline-form input { min-width:0; flex:1; }.admin-panel input,.admin-panel select { width:100%; border:1px solid #d9cbbd; border-radius:10px; padding:11px 10px; color:#3c2b21; background:#fff; font:inherit; font-size:13px; }.admin-panel button { cursor:pointer; font:inherit; font-weight:800; }.inline-form button,.admin-actions button { border:0; border-radius:10px; padding:10px 12px; color:#fff; background:var(--orange); font-size:12px; }.category-list,.product-list { display:grid; gap:7px; }.manager-row { display:flex; align-items:center; gap:8px; padding:9px; border-radius:11px; background:#f1e8dd; font-size:12px; }.manager-row b { flex:1; }.manager-row button { border:0; border-radius:7px; padding:6px 8px; color:#16344f; background:#fff; font-size:11px; }.manager-row .danger { color:#a92e19; }.product-form { display:grid; gap:8px; }.file-label { display:block; color:#6e5847; font-size:12px; font-weight:700; }.file-label input { margin-top:5px; padding:7px; }.admin-actions { display:flex; justify-content:flex-end; gap:8px; }.admin-actions .muted-button { color:#5b4b3e; background:#e9dfd5; }
.admin-link { display:grid; place-items:center; text-decoration:none; }.admin-page { padding:0; background:#e9dfd5; }.admin-shell { width:min(100%,760px); min-height:100vh; margin:auto; background:#fffaf2; }.admin-page .admin-header h1 { margin:3px 0 0; font-size:21px; }.admin-page .admin-header a { padding:9px 11px; border-radius:9px; color:#102944; background:#fff; text-decoration:none; font-size:12px; font-weight:800; }.admin-page .admin-section h2 { margin:0 0 10px; font-size:15px; }.admin-page input,.admin-page select { width:100%; border:1px solid #d9cbbd; border-radius:10px; padding:11px 10px; color:#3c2b21; background:#fff; font:inherit; font-size:13px; }.admin-page button { cursor:pointer; font:inherit; font-weight:800; }
.admin-page { min-width:320px; background:#eef1f5; color:#142d49; }.admin-shell { width:100%; min-height:100dvh; background:#f7f8fa; }.admin-topbar { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 34px; color:#fff; background:#102d4b; }.admin-brand { display:flex; align-items:center; gap:9px; color:#fff; text-decoration:none; }.admin-brand .brand-mark { width:30px; margin:0; gap:2px; transform:rotate(-36deg); }.admin-brand .brand-mark i { height:4px; }.admin-brand .brand-mark i:nth-child(1) { width:16px; }.admin-brand .brand-mark i:nth-child(2) { width:22px; }.admin-brand .brand-mark i:nth-child(3) { width:29px; }.admin-brand strong { font-size:17px; letter-spacing:.08em; }.admin-brand small { padding:3px 6px; border-radius:5px; color:#f7c946; background:#ffffff18; font-size:9px; font-weight:900; letter-spacing:.1em; }.topbar-actions { display:flex; align-items:center; gap:18px; font-size:12px; }.save-status { color:#9de3bd; }.topbar-actions a { padding:10px 13px; border-radius:9px; color:#102d4b; background:#fff; text-decoration:none; font-weight:800; }.admin-layout { display:grid; grid-template-columns:310px minmax(0,1fr); min-height:calc(100dvh - 76px); }.admin-sidebar { padding:28px 20px; border-right:1px solid #dde3ea; background:#fff; }.sidebar-title span,.workspace-heading span { color:#8a99a9; font-size:10px; font-weight:900; letter-spacing:.12em; }.sidebar-title h1 { margin:5px 0 4px; font-size:24px; }.sidebar-title p { margin:0 0 20px; color:#748597; font-size:12px; }.new-category-form { display:flex; gap:7px; margin-bottom:19px; }.new-category-form input { min-width:0; padding:10px; border:1px solid #dce3eb; border-radius:9px; outline:none; font:inherit; font-size:12px; }.new-category-form input:focus,.editor-card input:focus,.editor-card select:focus { border-color:#e45322; box-shadow:0 0 0 3px #e4532215; }.new-category-form button { width:39px; border:0; border-radius:9px; color:#fff; background:#e45322; font-size:21px; }.admin-page .category-list { gap:5px; }.admin-page .manager-row { min-height:44px; padding:7px 8px 7px 11px; border:1px solid transparent; border-radius:9px; background:transparent; font-size:12px; }.admin-page .manager-row:hover { border-color:#dce3eb; background:#f7f9fb; }.admin-page .manager-row b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.admin-page .manager-row button { padding:6px 7px; border:0; border-radius:6px; color:#617386; background:#eef2f6; font-size:0; }.admin-page .manager-row button:before { font-size:14px; }.admin-page .manager-row button[data-select]:before { content:"◉"; }.admin-page .manager-row button[data-rename]:before { content:"✎"; }.admin-page .manager-row .danger:before { content:"×"; }.admin-page .manager-row .danger { color:#b83c2a; }.admin-workspace { padding:34px clamp(24px,4vw,58px); }.workspace-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:24px; }.workspace-heading h2 { margin:5px 0 0; font-size:29px; letter-spacing:-.7px; }.product-count { padding:8px 11px; border-radius:20px; color:#617386; background:#e9edf2; font-size:12px; font-weight:800; }.workspace-grid { display:grid; grid-template-columns:minmax(310px,.9fr) minmax(340px,1.1fr); gap:20px; align-items:start; }.editor-card,.products-card { padding:22px; border:1px solid #e2e7ed; border-radius:16px; background:#fff; box-shadow:0 5px 16px #0b29400b; }.card-heading { display:flex; align-items:flex-start; gap:10px; margin-bottom:19px; }.card-icon { display:grid; width:32px; height:32px; place-items:center; border-radius:9px; color:#d24c20; background:#fcede7; font-weight:900; }.card-heading h2 { margin:0; font-size:16px; }.card-heading p { margin:4px 0 0; color:#7c8b9b; font-size:11px; }.admin-page .product-form { grid-template-columns:1fr 1fr; gap:13px; }.admin-page .product-form label { display:grid; gap:6px; color:#53687b; font-size:11px; font-weight:800; }.admin-page .product-form .wide { grid-column:1/-1; }.admin-page .product-form input,.admin-page .product-form select { padding:10px; border:1px solid #dce3eb; border-radius:9px; color:#203852; font:inherit; font-size:12px; }.upload-field { padding:10px; border:1px dashed #b6c2ce; border-radius:9px; background:#f8fafc; }.admin-page .file-label input { margin:0; padding:0; border:0; }.admin-page .admin-actions { justify-content:flex-end; margin-top:3px; }.admin-page .admin-actions button { padding:10px 13px; border:0; border-radius:9px; color:#fff; background:#e45322; font-size:12px; }.admin-page .admin-actions .muted-button { color:#53687b; background:#e9edf2; }.admin-page .product-list { max-height:520px; overflow:auto; padding-right:2px; }.admin-page .product-list .manager-row { padding:10px; border:1px solid #e5ebf0; background:#fff; }.admin-page .product-list .manager-row b small { color:#e45322; }.admin-page .product-list .manager-row button[data-edit]:before { content:"✎"; }.admin-page .product-list .manager-row .danger:before { content:"×"; }
@media (max-width:840px) { .admin-topbar { padding:0 18px; }.save-status { display:none; }.admin-layout { grid-template-columns:1fr; }.admin-sidebar { border-right:0; border-bottom:1px solid #dde3ea; }.admin-page .category-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-workspace { padding:25px 18px; }.workspace-grid { grid-template-columns:1fr; } } @media (max-width:520px) { .topbar-actions { gap:0; }.admin-brand small { display:none; }.admin-page .category-list { grid-template-columns:1fr; }.workspace-heading h2 { font-size:24px; }.admin-page .product-form { grid-template-columns:1fr; }.admin-page .product-form .wide { grid-column:auto; } }
.confirm-modal { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:20px; visibility:hidden; opacity:0; background:#07192a86; backdrop-filter:blur(5px); transition:.2s; }.confirm-modal.open { visibility:visible; opacity:1; }.confirm-card { width:min(100%,390px); padding:29px; border-radius:19px; text-align:center; background:#fff; box-shadow:0 22px 70px #07172755; transform:translateY(10px) scale(.98); transition:.25s cubic-bezier(.2,.8,.2,1); }.confirm-modal.open .confirm-card { transform:none; }.confirm-icon { display:grid; width:52px; height:52px; place-items:center; margin:0 auto 15px; border-radius:50%; color:#c8452d; background:#fde8e3; font-size:25px; font-weight:900; }.confirm-card h2 { margin:0; color:#18324e; font-size:20px; }.confirm-card p { margin:9px 0 22px; color:#718194; font-size:13px; line-height:1.5; }.confirm-actions { display:flex; justify-content:center; gap:9px; }.confirm-actions button { min-width:118px; padding:11px 14px; border:0; border-radius:10px; font:inherit; font-size:12px; font-weight:900; cursor:pointer; }.confirm-actions #confirm-cancel { color:#506579; background:#edf1f5; }.confirm-actions #confirm-delete { color:#fff; background:#d94a2d; box-shadow:0 6px 13px #d94a2d33; }
.settings-card { margin-top:20px; padding:22px; border:1px solid #e2e7ed; border-radius:16px; background:#fff; box-shadow:0 5px 16px #0b29400b; }.settings-form { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.settings-form label { display:grid; gap:6px; color:#53687b; font-size:11px; font-weight:800; }.settings-form input { width:100%; padding:10px; border:1px solid #dce3eb; border-radius:9px; font:inherit; font-size:12px; }.settings-form button { grid-column:1/-1; justify-self:end; padding:10px 13px; border:0; border-radius:9px; color:#fff; background:#e45322; font:inherit; font-size:12px; font-weight:800; }.settings-form input:focus { outline:0; border-color:#e45322; box-shadow:0 0 0 3px #e4532215; }.theme-setting { grid-column:1/-1; margin:0; padding:14px; border:1px solid #dce3eb; border-radius:12px; }.theme-setting legend { padding:0 5px; color:#203852; font-size:13px; font-weight:900; }.theme-setting > p { margin:0 0 11px; color:#718194; font-size:11px; }.theme-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }.settings-form .theme-options label { display:block; cursor:pointer; }.theme-options input { position:absolute; opacity:0; pointer-events:none; }.theme-options span { display:grid; gap:3px; min-height:72px; padding:10px; border:1px solid #dce3eb; border-radius:10px; color:#203852; font-size:12px; font-weight:900; transition:.18s; }.theme-options small { color:#718194; font-size:9px; font-weight:700; line-height:1.25; }.theme-options input:checked + span { border-color:#e45322; background:#fff4ed; box-shadow:0 0 0 3px #e4532218; color:#bd411b; }.theme-options input:checked + span small { color:#9e5b43; } @media (max-width:520px) { .settings-form { grid-template-columns:1fr; }.settings-form button { grid-column:auto; justify-self:stretch; }.theme-options { grid-template-columns:1fr; }.theme-options span { min-height:0; } }
.category-card .category-card-content { display:block; width:auto; height:auto; margin:0; border-radius:0; color:inherit; background:transparent; font-size:inherit; }.category-card .category-card-content > span { display:inline-grid; width:25px; height:25px; place-items:center; margin-bottom:19px; border-radius:50%; color:#102944; background:#f6c540; font-size:11px; font-weight:900; }
.category-cards { gap:13px; }.category-card { min-height:177px; isolation:isolate; }.category-card:first-child { grid-column:1/-1; min-height:218px; }.category-card:before { content:""; position:absolute; z-index:0; width:130px; height:130px; right:-48px; top:-45px; border:1px solid #ffffff50; border-radius:50%; box-shadow:0 0 0 15px #ffffff10,0 0 0 31px #ffffff09; }.category-card:after { background:linear-gradient(155deg,#071b2a05 15%,#071b2af0 100%); }.category-card-content { z-index:2!important; }.category-card .category-card-content > .card-number { width:auto; height:auto; margin:0 0 28px; padding:5px 8px; border-radius:20px; color:#152c44; background:#f6c540; font-size:9px; letter-spacing:.1em; }.category-card strong { max-width:78%; font-size:18px; letter-spacing:-.3px; }.category-card:first-child strong { font-size:25px; }.category-card small { max-width:78%; font-size:10px; line-height:1.35; }.card-arrow { position:absolute; right:0; bottom:2px; display:grid; width:35px; height:35px; place-items:center; border:1px solid #ffffff70; border-radius:50%; color:#fff; font-size:18px; font-style:normal; transition:transform .2s,background .2s; }.category-card:hover .card-arrow { transform:rotate(45deg); background:#e45322; border-color:#e45322; }.category-card-1:after { background:linear-gradient(155deg,#a3401808 15%,#531e0fe8 100%); }.category-card-2:after { background:linear-gradient(155deg,#204e5208 15%,#0f3539e8 100%); }.category-card-3:after { background:linear-gradient(155deg,#4e351908 15%,#39230ee8 100%); }
.category-browser { margin:18px -16px 8px; padding:0 16px 12px; }.category-browser-heading { margin:0 1px 12px; }.category-browser-heading h3 { font-size:17px; }.category-cards { display:flex; gap:10px; overflow-x:auto; margin-bottom:17px; padding:3px 1px 27px; scrollbar-width:none; }.category-cards::-webkit-scrollbar { display:none; }.category-card,.category-card:first-child { display:block; flex:0 0 96px; width:96px; min-height:72px; height:72px; overflow:visible; border-radius:50%; background-position:center; box-shadow:0 4px 12px #55392322; }.category-card:before,.category-card:after { display:none; }.category-card .category-card-content { position:absolute; top:80px; right:auto; bottom:auto; left:50%; width:96px; transform:translateX(-50%); text-align:center; }.category-card strong,.category-card:first-child strong { display:block; overflow:hidden; max-width:none; color:#36291f; font-size:10px; font-weight:850; letter-spacing:0; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }.category-card small,.category-card .card-number,.card-arrow { display:none!important; }.category-card.selected { outline:3px solid #e45322; outline-offset:3px; box-shadow:0 5px 16px #e4532250; }.menu-details { margin-top:25px; }
/* Premium dark menu */
body { background:#080a0a; }.menu-page { background:#0b0d0d; color:#f5f0e8; }.hero { height:268px; position:relative; background:radial-gradient(circle at 92% 18%,#e45a2d38 0 4%,transparent 4.5%),radial-gradient(circle at 89% 18%,transparent 0 13%,#e45a2d1a 13.5% 14%,transparent 14.5%),linear-gradient(135deg,#101312,#050606); }.hero:after { content:""; position:absolute; inset:0; opacity:.32; background:repeating-radial-gradient(circle at 100% 0,transparent 0 16px,#e85b2a26 17px 18px,transparent 19px 30px); pointer-events:none; }.hero-top,.hero-copy { position:relative; z-index:1; }.hero-copy { margin-top:62px; }.hero-logo { width:195px; }.hero p { color:#b8b6af; }.open-badge { color:#d7f0d5; background:#1d3a2b; }.content { padding:18px 16px 30px; }.section-heading h2 { color:#fff; }.search-button { color:#f06835; }.category-browser { padding-bottom:9px; }.category-browser-heading span { color:#ec6d3a; }.category-browser-heading h3 { color:#fff; font-size:22px; }.category-browser-heading b { color:#8b8f8d; }.category-cards { gap:13px; padding-bottom:28px; }.category-card,.category-card:first-child { flex-basis:69px; width:69px; height:69px; min-height:69px; border:1px solid #454946; border-radius:50%; background:#141716; box-shadow:none; }.category-card .category-card-content { top:77px; width:78px; }.category-card strong,.category-card:first-child strong { color:#bfc2be; font-size:9px; }.category-icon { display:grid; width:100%; height:100%; place-items:center; color:#d9d7d1; font-size:27px; font-style:normal; }.category-card.selected { border-color:#ec6130; outline:0; background:linear-gradient(145deg,#64301e,#251816); box-shadow:0 0 0 3px #ec613022; }.category-card.selected .category-icon { color:#ff9b72; }.menu-details { margin-top:13px; }.category-info { padding:0 3px 14px; color:#fff; background:transparent; }.category-info:after { display:none; }.category-kicker { color:#ef6b3a; }.category-info h3 { margin:4px 0; font-size:22px; text-transform:none; }.category-info p { color:#989c98; }.menu-item { position:relative; min-height:135px; display:block; overflow:hidden; margin:0 0 12px; padding:17px; border:1px solid #262a29; border-radius:18px; background:linear-gradient(115deg,#141716 0%,#0d0f0f 70%); }.food-image { position:absolute; right:-2px; bottom:0; width:52%; height:100%; border-radius:0; object-fit:cover; opacity:.86; mask-image:linear-gradient(90deg,transparent 0%,#000 30%); }.menu-item:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#121514 0%,#121514e6 43%,transparent 78%); pointer-events:none; }.item-details { position:relative; z-index:1; width:58%; }.item-details h3 { color:#fff; font-size:16px; }.item-details p { color:#aaa9a3; font-size:10px; }.price { position:absolute; z-index:1; bottom:16px; left:17px; color:#f17745; font-size:14px; }.add-button { position:absolute; z-index:2; right:14px; bottom:14px; width:31px; height:31px; color:#fff; background:#e95729; }.social-card { border:1px solid #313532; background:#151817; }.social-card small { color:#aeb1ae; }.social-links a { color:#fa7443; background:#262b28; }.map-link { color:#dedbd3; background:#242826; }.review-link { color:#16110a; background:#f4c64f; }
/* Explore hero */
.hero { height:354px; }.hero-copy { margin-top:35px; }.hero .explore-title { margin:0 0 18px; color:#f6f2e9; font-size:43px; font-weight:850; letter-spacing:-1.8px; line-height:.93; }.explore-title span { color:#fff; }.hero-logo { width:142px; margin:0 0 7px; text-align:left; }.hero-logo .brand-mark { margin:0 0 4px; }.hero-logo strong { font-size:13px; }.hero p { font-size:11px; }.open-badge { margin-top:8px; padding:5px 9px; font-size:10px; }
/* Compact monochrome category strip */
.category-cards { gap:11px; overflow-x:auto; overflow-y:hidden; min-height:112px; padding:3px 1px 29px; }.category-card,.category-card:first-child { position:relative; flex:0 0 76px; width:76px; height:76px; min-height:76px; overflow:visible; border:1px solid #606563; border-radius:50%; background-color:#111; background-size:cover; background-position:center; background-blend-mode:luminosity; filter:grayscale(1) contrast(1.12); }.category-card:after { display:block; content:""; position:absolute; inset:0; border-radius:50%; background:#08100bb0; }.category-card .category-card-content { position:absolute; z-index:2!important; top:0; right:0; bottom:0; left:0; width:auto; transform:none; }.category-card .category-card-content strong,.category-card:first-child .category-card-content strong { position:absolute; top:85px; left:50%; display:block; width:94px; overflow:hidden; transform:translateX(-50%); color:#eee; font-size:10px; font-weight:850; line-height:1.15; text-align:center; text-overflow:ellipsis; white-space:nowrap; }.category-card.selected { border-color:#fff; outline:2px solid #fff; outline-offset:3px; background-color:#4b4f4d; box-shadow:0 0 0 5px #ffffff18; }.category-card.selected:after { background:#00000055; }
.hero-top { align-items:flex-start; }.hero-ribbon { display:flex; width:30px; min-height:98px; align-items:center; justify-content:center; padding:8px 0; color:#1b110d; background:#e46332; font-size:8px; font-weight:950; letter-spacing:.08em; line-height:1.35; text-align:center; writing-mode:vertical-rl; transform:rotate(180deg); }.hero-search { display:grid; width:49px; height:49px; place-items:center; margin-top:2px; margin-left:auto; border:1px solid #6e726e; border-radius:50%; color:#fff; background:transparent; font-size:31px; font-weight:300; line-height:1; }.hero-copy { margin-top:-58px; margin-left:44px; }.hero .explore-title { font-size:43px; }.hero-logo { margin-top:20px; }.category-browser { margin-top:9px; }.category-browser-heading { display:none; }.category-cards { gap:10px; min-height:97px; padding:2px 2px 23px; }.category-card,.category-card:first-child { flex:0 0 62px; width:62px; height:62px; min-height:62px; overflow:visible; border:1px solid #5a5d5a; border-radius:50%; background:#121514; filter:none; }.category-card:after { display:none; }.category-card .category-card-content { position:absolute; z-index:2!important; top:0; right:0; bottom:0; left:0; width:auto; transform:none; }.category-icon { display:grid; width:100%; height:100%; place-items:center; color:#d8d8d3; font-size:24px; font-style:normal; }.category-card .category-card-content strong,.category-card:first-child .category-card-content strong { position:absolute; top:70px; left:50%; width:78px; overflow:hidden; transform:translateX(-50%); color:#cfcec9; font-size:9px; font-weight:850; text-align:center; text-overflow:ellipsis; white-space:nowrap; }.category-card.selected { width:74px; height:74px; margin:-6px 0 0 -6px; border:1px solid #805143; border-radius:9px; outline:0; background:linear-gradient(145deg,#563427,#171716); box-shadow:inset 0 0 0 2px #ffffff12,0 3px 13px #0008; }.category-card.selected .category-icon { color:#fff0e9; font-size:29px; }.category-card.selected .category-card-content strong { top:82px; }.category-card.selected:after { display:none; }
.hero { height:420px; }.hero-top { padding-top:4px; }.hero-ribbon { width:31px; min-height:128px; margin-left:-8px; font-size:8px; }.hero-search { width:50px; height:50px; margin-top:8px; }.hero-copy { margin-top:-87px; margin-left:18px; }.hero .explore-title { font-size:45px; line-height:.98; }.hero-logo,.hero-copy > p,.hero-copy > .open-badge { display:none; }.content { position:relative; z-index:2; margin-top:-183px; padding:0 16px 30px; }.section-heading { display:none; }.category-browser { margin:0 -16px; padding:0 24px; }.category-cards { gap:17px; min-height:111px; padding:0 8px 18px; }.category-card,.category-card:first-child { flex:0 0 48px; width:48px; height:48px; min-height:48px; margin-top:10px; }.category-icon { font-size:18px; }.category-card .category-card-content strong,.category-card:first-child .category-card-content strong { top:57px; width:66px; font-size:8px; }.category-card.selected { flex-basis:61px; width:61px; height:91px; min-height:91px; margin:0; border-radius:7px; }.category-card.selected .category-icon { top:11px; height:35px; font-size:21px; }.category-card.selected .category-card-content strong { top:60px; width:61px; font-size:9px; }.menu-details { margin-top:10px; }.category-info { display:none; }.menu-item { min-height:165px; margin:0 0 16px; padding:19px; border-radius:18px; background:#101312; }.food-image { width:58%; opacity:.96; }.menu-item:after { background:linear-gradient(90deg,#101312 0%,#101312e9 44%,transparent 82%); }.item-details { width:54%; }.item-details h3 { font-size:19px; }.item-details p { font-size:11px; line-height:1.45; }.price { bottom:18px; left:19px; color:#fff; font-size:15px; }.menu-item:first-child { min-height:294px; border:0; border-radius:0; background:#080a0a; }.menu-item:first-child .food-image { width:100%; height:74%; right:0; bottom:0; opacity:1; mask-image:linear-gradient(90deg,#000 0%,#000 100%); }.menu-item:first-child:after { background:linear-gradient(180deg,#080a0a 0%,#080a0a22 31%,transparent 58%),linear-gradient(90deg,#080a0adf 0%,transparent 74%); }.menu-item:first-child .item-details { width:56%; }.menu-item:first-child .item-details h3 { font-size:22px; }.menu-item:first-child .price { bottom:18px; }
.category-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }.category-card.selected .category-icon svg { width:28px; height:28px; stroke-width:2.4; }
.category-cards { min-height:123px; }.category-card .category-card-content strong,.category-card:first-child .category-card-content strong { overflow:visible; white-space:normal; text-overflow:clip; line-height:1.2; }
.category-list-view { display:grid; gap:13px; margin:2px 0 20px; }.category-list-card { position:relative; min-height:132px; overflow:hidden; border:1px solid #313635; border-radius:16px; color:#fff; text-align:left; background:#141716 center/cover; cursor:pointer; }.category-list-card:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.74) 30%,rgba(0,0,0,.5) 52%,rgba(0,0,0,.18) 70%,rgba(0,0,0,.04) 85%,rgba(0,0,0,0) 100%); }.category-list-card span { position:absolute; z-index:1; top:18px; right:18px; bottom:18px; left:18px; }.category-list-card i { display:inline-grid; width:29px; height:29px; place-items:center; margin-bottom:13px; border:1px solid #ffffff70; border-radius:50%; color:#fff; font-style:normal; }.category-list-card i svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }.category-list-card strong { display:block; font-size:19px; }.category-list-card small { display:block; max-width:68%; margin-top:4px; color:#b9bcb8; font-size:10px; }.category-list-card b { position:absolute; right:0; bottom:0; display:grid; width:34px; height:34px; place-items:center; border:1px solid #ffffff66; border-radius:50%; color:#fff; font-size:17px; }.category-list-card:hover b { color:#101211; background:#f2eee7; }.category-list-view.is-hidden { display:none; }
.hero-copy { margin-left:61px; }.menu-search { position:fixed; z-index:40; inset:0; display:grid; place-items:start center; padding:75px 15px 20px; background:#0000009e; backdrop-filter:blur(7px); }.menu-search.is-hidden { display:none; }.search-panel { width:min(100%,448px); max-height:78dvh; overflow:auto; padding:16px; border:1px solid #3a3e3a; border-radius:17px; background:#111413; box-shadow:0 22px 65px #000a; }.search-panel-top { display:flex; align-items:center; justify-content:space-between; color:#fff; font-size:14px; }.search-panel-top button { display:grid; width:29px; height:29px; place-items:center; border:0; border-radius:50%; color:#d6d4ce; background:#292d2b; font-size:20px; }.search-panel input { width:100%; margin:14px 0 10px; padding:13px 14px; border:1px solid #414642; border-radius:11px; outline:0; color:#f4f1ea; background:#1a1e1c; font:inherit; font-size:13px; }.search-panel input:focus { border-color:#ea6332; box-shadow:0 0 0 3px #ea633225; }.search-results { display:grid; gap:7px; }.search-hint { margin:7px 2px; color:#aeb1ad; font-size:12px; }.search-result { display:flex; align-items:center; gap:10px; width:100%; padding:8px; border:1px solid #2d322f; border-radius:11px; color:#fff; text-align:left; background:#181c1a; }.search-result img { width:47px; height:47px; border-radius:8px; object-fit:cover; }.search-result span { flex:1; }.search-result strong { display:block; font-size:13px; }.search-result small { display:block; margin-top:3px; color:#aaa9a3; font-size:10px; }.search-result b { color:#ec6d3a; font-size:16px; }
.social-links a { display:grid; place-items:center; }.social-links svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }.social-links a:last-child svg { fill:currentColor; stroke:none; }
.menu-item:first-child { min-height:165px; border:1px solid #262a29; border-radius:18px; background:#101312; }.menu-item:first-child .food-image { width:58%; height:100%; right:-2px; bottom:0; border-radius:0; opacity:.96; mask-image:linear-gradient(90deg,transparent 0%,#000 30%); }.menu-item:first-child:after { background:linear-gradient(90deg,#101312 0%,#101312e9 44%,transparent 82%); }.menu-item:first-child .item-details { width:54%; }.menu-item:first-child .item-details h3 { font-size:19px; }.menu-item:first-child .price { bottom:18px; left:19px; }
.category-cards { align-items:flex-start; gap:16px; min-height:109px; padding:5px 7px 18px; }.category-card,.category-card:first-child { flex:0 0 50px; width:50px; height:50px; min-height:50px; margin-top:8px; border:1px solid #555956; border-radius:50%; background:#101211; }.category-card .category-card-content { inset:0; }.category-icon { display:grid; width:100%; height:100%; place-items:center; color:#dcddd8; font-size:19px; }.category-card .category-card-content strong,.category-card:first-child .category-card-content strong { top:59px; width:72px; color:#c8c9c3; font-size:8px; font-weight:850; }.category-card.selected { flex-basis:66px; width:66px; height:88px; min-height:88px; margin:0; border:1px solid #6f554b; border-radius:8px; background:linear-gradient(145deg,#5a3629,#181918); box-shadow:inset 0 0 0 2px #ffffff12,0 3px 12px #0008; }.category-card.selected .category-icon { position:absolute; top:9px; left:0; width:100%; height:37px; color:#fff4ec; font-size:22px; }.category-card.selected .category-card-content strong { top:58px; width:66px; color:#f2eee8; font-size:9px; }.category-card.selected:before { display:block; content:""; position:absolute; top:5px; left:5px; width:4px; height:35px; border-radius:5px; background:#e46131; box-shadow:none; }
.category-cards { align-items:flex-start; gap:18px; min-height:106px; padding:0 4px 16px; }.category-card,.category-card:first-child { flex:0 0 55px; width:55px; height:55px; min-height:55px; margin-top:7px; border-color:#484c49; border-radius:50%; }.category-icon { font-size:21px; }.category-card .category-card-content strong,.category-card:first-child .category-card-content strong { top:64px; width:72px; color:#aaa9a5; font-size:9px; }.category-card.selected { flex-basis:68px; width:68px; height:94px; min-height:94px; margin:0; border-color:#815345; border-radius:8px; background:linear-gradient(145deg,#623c2d,#171716); }.category-card.selected .category-icon { height:62px; font-size:27px; }.category-card.selected .category-card-content strong { top:69px; width:76px; color:#fff; font-size:10px; }.category-card.selected:before { display:block; content:""; position:absolute; inset:3px; border:1px solid #ffffff18; border-radius:6px; }
.new-category-form { display:grid; grid-template-columns:1fr auto; }.new-category-form input { min-width:0; }.new-category-form input:nth-child(2),.new-category-form label { grid-column:1/-1; }.new-category-form label { color:#6e7f90; font-size:10px; font-weight:800; }.new-category-form label input { width:100%; margin-top:4px; padding:7px; border:1px dashed #ccd6df; border-radius:8px; font:inherit; font-size:11px; }.new-category-form button { width:auto; padding:0 10px; font-size:11px; }.category-modal { position:fixed; z-index:31; inset:0; display:grid; place-items:center; padding:20px; visibility:hidden; opacity:0; background:#07192a86; backdrop-filter:blur(5px); transition:.2s; }.category-modal.open { visibility:visible; opacity:1; }.category-edit-card { display:grid; gap:13px; width:min(100%,460px); padding:24px; border-radius:18px; background:#fff; box-shadow:0 22px 70px #07172755; transform:translateY(10px) scale(.98); transition:.25s cubic-bezier(.2,.8,.2,1); }.category-modal.open .category-edit-card { transform:none; }.modal-heading { display:flex; align-items:flex-start; justify-content:space-between; }.modal-heading span { color:#e45322; font-size:9px; font-weight:900; letter-spacing:.12em; }.modal-heading h2 { margin:4px 0 0; color:#18324e; font-size:20px; }.modal-heading button { display:grid; width:30px; height:30px; place-items:center; border:0; border-radius:50%; color:#526579; background:#edf1f5; font-size:20px; }.category-edit-card label { display:grid; gap:6px; color:#53687b; font-size:11px; font-weight:800; }.category-edit-card input { width:100%; padding:11px; border:1px solid #dce3eb; border-radius:9px; color:#203852; font:inherit; font-size:13px; }.modal-upload { padding:10px; border:1px dashed #b6c2ce; border-radius:9px; background:#f8fafc; }.modal-upload input { margin-top:2px; padding:4px; border:0; }.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:4px; }.modal-actions button { padding:10px 13px; border:0; border-radius:9px; font:inherit; font-size:12px; font-weight:800; }.modal-actions button:first-child { color:#53687b; background:#edf1f5; }.modal-actions button:last-child { color:#fff; background:#e45322; }
.admin-page .manager-row button[data-edit-category]:before { content:"✎"; }
.admin-page .manager-row .move-category { color:#53687b; font-size:14px; line-height:1; }
.admin-page .manager-row .move-category:before { content:none; }
.admin-page .manager-row .move-category:disabled { opacity:.28; cursor:not-allowed; }
.category-position { display:inline-grid; width:18px; height:18px; place-items:center; margin-right:7px; border-radius:50%; color:#f7f8fa; background:#7c8b9b; font-size:10px; }

/* Keep category controls inside the narrow administration sidebar. */
.admin-page .category-list .manager-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr) repeat(5, 30px);
  gap:4px;
  width:100%;
  box-sizing:border-box;
}
.admin-page .category-list .manager-row b { min-width:0; }
.admin-page .category-list .manager-row button {
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  padding:0;
}
@media (max-width:520px) {
  .admin-page .category-list .manager-row { grid-template-columns:minmax(0, 1fr) repeat(5, 29px); gap:3px; }
  .admin-page .category-list .manager-row button { width:29px; height:29px; }
}
.new-category-form button { grid-column:1; justify-self:start; width:126px!important; height:34px; padding:0 12px!important; border-radius:8px!important; font-size:12px!important; }
.admin-page .admin-shell { display:none; }.admin-page.is-authenticated .admin-shell { display:block; }.admin-page.is-authenticated .admin-login { display:none; }
.admin-login-progress[hidden] { display:none; }

/* Secure account actions */
.topbar-actions button { border:0; border-radius:9px; padding:10px 12px; color:#102d4b; background:#fff; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }.topbar-actions .logout-button { color:#fff; background:#c8482e; }
.password-modal { position:fixed; z-index:32; inset:0; display:grid; place-items:center; padding:20px; visibility:hidden; opacity:0; background:#07192a86; backdrop-filter:blur(5px); transition:.2s; }.password-modal.open { visibility:visible; opacity:1; }.password-card { display:grid; gap:13px; width:min(100%,440px); padding:24px; border-radius:18px; background:#fff; box-shadow:0 22px 70px #07172755; transform:translateY(10px) scale(.98); transition:.25s cubic-bezier(.2,.8,.2,1); }.password-modal.open .password-card { transform:none; }.password-card > p { margin:0; color:#718194; font-size:12px; line-height:1.45; }.password-card label { display:grid; gap:6px; color:#53687b; font-size:11px; font-weight:800; }.password-card input { width:100%; padding:11px; border:1px solid #dce3eb; border-radius:9px; color:#203852; font:inherit; font-size:13px; }.password-message { min-height:18px; color:#c8482e!important; font-weight:800; }

/* Automatic daylight theme: 08:00–18:00 */
body.menu-light { background:#e8edf1; color:#163653; }.menu-light .menu-page { background:#fffdf9; color:#163653; }.menu-light .hero { color:#163653; background:#f7f3ed; }.menu-light .hero .explore-title,.menu-light .explore-title span { color:#163653; }.menu-light .hero-search { border-color:#8297a8; color:#163653; }.menu-light .hero-ribbon { color:#fff; background:#196aa5; }.menu-light .content { background:#fffdf9; }.menu-light .category-card,.menu-light .category-card:first-child { border-color:#b9c9d4; background:#fffdf9; }.menu-light .category-icon { color:#163653; }.menu-light .category-card .category-card-content strong,.menu-light .category-card:first-child .category-card-content strong { color:#435362; }.menu-light .category-card.selected { border-color:#1e72af; background:linear-gradient(145deg,#cce8f7,#fafdff); box-shadow:inset 0 0 0 2px #ffffff90,0 3px 12px #1e72af30; }.menu-light .category-card.selected:before { background:#237db8; }.menu-light .category-card.selected .category-icon,.menu-light .category-card.selected .category-card-content strong { color:#164f7b; }.menu-light .menu-item,.menu-light .menu-item:first-child { border:1px solid #dbe3e8; background:#fff; box-shadow:0 6px 16px #29465a0d; }.menu-light .menu-item:after,.menu-light .menu-item:first-child:after { background:linear-gradient(90deg,#fff 0%,#fffefde8 44%,transparent 82%); }.menu-light .item-details h3 { color:#163653; }.menu-light .item-details p { color:#66727c; }.menu-light .price { color:#1b6b9f; }.menu-light .social-card { border:1px solid #d8e2e8; color:#163653; background:#fff; }.menu-light .social-card small { color:#687681; }.menu-light .social-links a { color:#1e72af; background:#e8f5fc; }.menu-light .map-link { color:#385669; background:#e6edf1; }.menu-light .category-list-card { border-color:#cedbe3; }.menu-light .splash { color:#163653; background:#f5f9fb; }.menu-light .splash-logo { border-color:#d3e0e7; background:#fffdf9; box-shadow:0 18px 40px #27495f1f; }.menu-light .splash-logo strong,.menu-light .eyebrow,.menu-light .splash-tagline { color:#163653; }.menu-light .splash-logo .brand-mark i,.menu-light .loading span { background:#196aa5; }

/* Large La Brigade mark beneath the menu title */
.hero { position:relative; }.hero-top,.hero-copy { position:relative; z-index:2; }.hero-watermark { position:absolute; z-index:1; top:286px; left:50%; display:flex; flex-direction:column; align-items:flex-end; gap:12px; width:170px; transform:translateX(-50%) rotate(-36deg); opacity:.2; pointer-events:none; }.hero-watermark i { display:block; height:17px; border-radius:99px; background:#e8e5dc; transform:skewX(-16deg); box-shadow:0 1px 0 #ffffff18; }.hero-watermark i:nth-child(1) { width:95px; }.hero-watermark i:nth-child(2) { width:129px; }.hero-watermark i:nth-child(3) { width:165px; }.menu-light .hero-watermark { opacity:.38; }.menu-light .hero-watermark i { background:#1e72af; }

/* Public dark menu: use the La Brigade blue palette, never orange. */
.menu-page .hero { background:linear-gradient(135deg,#101312,#050606); }
.menu-page .hero:after { background:none; }
.menu-page .hero-ribbon { color:#fff; background:#196aa5; }
.menu-page .search-button,.menu-page .category-browser-heading span,.menu-page .category-kicker,.menu-page .social-links a { color:#4aa8dd; }
.menu-page .category-icon { color:#fff; }
.menu-page .category-icon img,
.menu-page .category-card.selected .category-icon img {
  display:block; width:26px; height:26px; object-fit:contain; pointer-events:none; mix-blend-mode:screen;
}
.menu-page .category-card.selected { border-color:#3b98ce; background:linear-gradient(145deg,#174f72,#141a1b); }
.menu-page .category-card.selected .category-icon { color:#d9f0ff; }
.menu-page .category-card.selected:before { background:#237db8; }
.menu-page .review-link { color:#fff; background:#196aa5; }

/* Official La Brigade mark: oversized, soft and decorative behind the headline. */
.hero-watermark { top:18px; right:-16px; left:auto; width:310px; opacity:.18; transform:rotate(-6deg); }
.hero-watermark svg { display:block; width:100%; height:auto; overflow:visible; color:#d8e6f0; filter:drop-shadow(0 8px 14px #0004); }
.hero-watermark svg path { stroke:currentColor; stroke-width:24; stroke-linecap:round; }
.hero-watermark i { display:none; }
.menu-light .hero-watermark { opacity:.28; }
.menu-light .hero-watermark svg { color:#196aa5; filter:drop-shadow(0 8px 15px #196aa522); }

/* Inline search below the round categories. */
.hero-corner-logo { display:grid; width:54px; height:54px; place-items:center; margin:7px 2px 0 auto; color:#e5f3fb; opacity:.88; }
.hero-corner-logo svg { width:100%; height:auto; }.hero-corner-logo path { stroke:currentColor; stroke-width:25; stroke-linecap:round; }
.menu-search { position:relative; z-index:4; inset:auto; display:block; padding:0; background:transparent; backdrop-filter:none; }
.search-panel { width:100%; max-height:none; overflow:visible; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.inline-search { display:flex; align-items:center; gap:10px; width:100%; padding:0 15px; border:1px solid #3a4241; border-radius:999px; color:#69b8e6; background:#141918; box-shadow:0 9px 22px #0004; }
.inline-search span { font-size:21px; line-height:1; }.inline-search input { width:100%; margin:0; padding:14px 0; border:0; outline:0; color:#f4f1ea; background:transparent; font:inherit; font-size:12px; }.inline-search input:focus { border:0; box-shadow:none; }
.search-results { position:relative; z-index:5; margin-top:8px; }.search-result b { color:#4aa8dd; }
.menu-light .hero-corner-logo { color:#196aa5; }.menu-light .inline-search { border-color:#c6d4de; color:#196aa5; background:#fff; box-shadow:0 8px 18px #29465a10; }.menu-light .inline-search input { color:#163653; }

/* Give the vertical category cards more presence without touching the horizontal row. */
.category-list-card { min-height:168px; }
.category-list-card span { top:21px; right:20px; bottom:20px; left:20px; }
.category-list-card i { display:none !important; }
.category-list-card strong {
  display:-webkit-box; max-width:calc(100% - 42px); overflow:hidden;
  font-size:28px; font-weight:850; letter-spacing:-.4px; line-height:1.12;
  overflow-wrap:anywhere; -webkit-box-orient:vertical; -webkit-line-clamp:2;
}
.category-list-card small { max-width:72%; margin-top:6px; font-size:12px; line-height:1.35; }
@media (max-width:520px) {
  .category-list-card strong { font-size:26px; }
}
.category-list-card.offers-entry-card.is-empty { background-image:radial-gradient(120% 90% at 20% 0%, #3a3d3b 0%, #232524 45%, #151616 100%); }
.offers-view { margin:4px 0 20px; }
.offers-heading { margin:0 0 14px; }
.offers-heading h3 { margin:3px 0 2px; color:#f5f0e8; font-size:22px; font-weight:850; line-height:1.15; }
.offers-heading p { margin:0; color:#aeb9b6; font-size:12px; }
.offers-list { display:grid; gap:14px; }
.offer-card { overflow:hidden; border:1px solid #313532; border-radius:16px; color:#f5f0e8; background:#151817; }
.offer-card-media { aspect-ratio:16 / 9; background:#101413; }
.offer-card-media img { display:block; width:100%; height:100%; object-fit:cover; }
.offer-card-body { padding:14px 16px 16px; }
.offer-card-body h4 { margin:0; font-size:18px; font-weight:850; line-height:1.2; overflow-wrap:anywhere; }
.offer-card-body p { margin:6px 0 0; color:#aeb9b6; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.offer-card-prices { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin-top:10px; }
.offer-card-prices strong { color:#66bbe8; font-size:18px; font-weight:900; }
.offer-card-prices del { color:#8a949b; font-size:13px; font-weight:700; text-decoration-thickness:1.5px; }
.offer-card-prices em { padding:4px 9px; border-radius:8px 8px 8px 3px; color:#fff; background:#b9232d; font-size:12px; font-style:normal; font-weight:900; }


/* Final daylight treatment: clean, bright and deliberately different from dark mode. */
.menu-light .menu-page .hero { background:linear-gradient(135deg,#f9fcfe 0%,#edf4f8 100%); }
.menu-light .menu-page .hero:after { background:none; }
.menu-light .hero-watermark { opacity:.16; }
.menu-light .hero-watermark svg { color:#196aa5; filter:drop-shadow(0 10px 18px #196aa51a); }
.menu-light .category-list-card { border-color:#c9d9e4; box-shadow:0 8px 20px #29465a12; }
.menu-light .category-list-card:after { background:linear-gradient(90deg,#f8fcffed 0%,#f8fcffb5 48%,#eaf4fa16 100%); }
.menu-light .category-list-card strong { color:#163653; }.menu-light .category-list-card small { color:#4f6678; }.menu-light .category-list-card i,.menu-light .category-list-card b { border-color:#8ba9bc; color:#196aa5; }.menu-light .category-list-card b { background:#fffdf9d9; }

/* Keep dish photos visible in daylight while preserving text contrast. */
.menu-light .food-image,.menu-light .menu-item:first-child .food-image { width:100%; mask-image:none; opacity:.92; }
.menu-light .menu-item:after,.menu-light .menu-item:first-child:after { background:linear-gradient(90deg,#fffdf9ef 0%,#fffdf9d2 30%,#fffdf978 52%,transparent 75%); }

/* Light product cards: compact restaurant ordering style. */
.item-title-row { display:flex; align-items:center; gap:8px; }.item-rating,.item-quantity { display:none; }
.menu-light .menu-item,.menu-light .menu-item:first-child { position:relative; display:flex; align-items:center; gap:12px; min-height:128px; margin:0 0 14px; padding:10px; overflow:visible; border:0; border-radius:20px; background:#fff; box-shadow:0 7px 19px #29465a12; }
.menu-light .food-image,.menu-light .menu-item:first-child .food-image { position:relative; right:auto; bottom:auto; flex:0 0 128px; width:128px; height:128px; border-radius:20px; opacity:1; object-fit:cover; mask-image:none; }
.menu-light .menu-item:after,.menu-light .menu-item:first-child:after { display:none; }.menu-light .item-details,.menu-light .menu-item:first-child .item-details { position:relative; z-index:1; flex:1; width:auto; min-width:0; }.menu-light .item-details h3,.menu-light .menu-item:first-child .item-details h3 { font-size:16px; line-height:1.15; }.menu-light .item-details p { display:-webkit-box; overflow:hidden; margin:5px 0; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:11px; line-height:1.3; }.menu-light .price,.menu-light .menu-item:first-child .price { position:static; display:block; margin-top:8px; color:#102d4b; font-size:16px; }.menu-light .item-rating { display:inline-block; color:#8a939b; font-size:11px; font-weight:800; white-space:nowrap; }.menu-light .item-rating::first-letter { color:#f5b928; }.menu-light .item-quantity { display:flex; align-items:center; gap:9px; margin-left:auto; }.menu-light .item-quantity button { display:grid; width:29px; height:29px; place-items:center; border:1px solid #dfe5e9; border-radius:6px; color:#102d4b; background:#fff; box-shadow:0 2px 6px #29465a14; font-size:20px; line-height:1; cursor:pointer; }.menu-light .item-quantity button:last-child { color:#fff; background:#10202c; border-color:#10202c; }.menu-light .item-quantity b { min-width:9px; color:#10202c; text-align:center; font-size:14px; }

/* Rating is visible in Dark, Light and Automatic modes. */
.menu-page .item-rating { display:inline-block; color:#c8d0d5; font-size:11px; font-weight:800; white-space:nowrap; }.menu-page .item-rating::first-letter { color:#f5b928; }

/* One consistent product-card design across Dark, Light and Automatic modes. */
.menu-page .menu-item,.menu-page .menu-item:first-child { position:relative; display:flex; align-items:center; gap:12px; min-height:128px; margin:0 0 14px; padding:10px; overflow:visible; border:0; border-radius:20px; background:#fff; box-shadow:0 7px 19px #00000018; }
.menu-page .food-image,.menu-page .menu-item:first-child .food-image { position:relative; right:auto; bottom:auto; flex:0 0 128px; width:128px; height:128px; border-radius:20px; opacity:1; object-fit:cover; mask-image:none; }
.menu-page .menu-item:after,.menu-page .menu-item:first-child:after { display:none; }.menu-page .item-details,.menu-page .menu-item:first-child .item-details { position:relative; z-index:1; flex:1; width:auto; min-width:0; }.menu-page .item-details h3,.menu-page .menu-item:first-child .item-details h3 { color:#102d4b; font-size:16px; line-height:1.15; }.menu-page .item-details p { display:-webkit-box; overflow:hidden; margin:5px 0; color:#60717f; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:11px; line-height:1.3; }.menu-page .price,.menu-page .menu-item:first-child .price { position:static; display:block; margin-top:8px; color:#102d4b; font-size:16px; }.menu-page .item-rating { color:#7e8990; }

/* Dark mode keeps the same layout with a rich charcoal-blue card palette. */
body:not(.menu-light) .menu-page .menu-item,body:not(.menu-light) .menu-page .menu-item:first-child { border:1px solid #273735; background:linear-gradient(135deg,#18201f,#101514); box-shadow:0 10px 24px #0008; }
body:not(.menu-light) .menu-page .item-details h3,body:not(.menu-light) .menu-page .menu-item:first-child .item-details h3 { color:#f5f4ef; }body:not(.menu-light) .menu-page .item-details p { color:#aeb9b6; }body:not(.menu-light) .menu-page .price,body:not(.menu-light) .menu-page .menu-item:first-child .price { color:#66bbe8; }body:not(.menu-light) .menu-page .item-rating { color:#bfc9c7; }

/* Product highlights controlled from the admin panel. */
.product-new-toggle { position:relative; padding:10px 11px; border:1px solid #dce3eb; border-radius:9px; background:#f8fafc; }.product-new-toggle span { display:block; color:#203852; font-size:12px; }.product-new-toggle small { display:block; margin-top:3px; color:#718194; font-size:9px; }.product-new-toggle input { position:absolute; top:12px; right:11px; width:18px!important; height:18px; accent-color:#196aa5; }
.item-badges { position:absolute; z-index:3; top:9px; right:9px; display:grid; justify-items:end; gap:6px; }.item-badges span { padding:7px 11px; border-radius:8px 8px 8px 3px; color:#fff; font-size:12px; font-weight:900; letter-spacing:.02em; box-shadow:0 5px 12px #0003; }.new-badge { background:#d9423d; }.discount-badge { background:#b9232d; }.price del { margin-right:7px; color:#8a949b; font-size:11px; font-weight:700; text-decoration-thickness:1.5px; }.price span { color:#1784bd; }
.admin-page .product-form .product-new-toggle input { padding:0; border:0; border-radius:0; }

/* Give the vertical La Brigade ribbon more presence in the hero. */
.hero-ribbon { width:43px; min-height:156px; font-size:10px; }

/* Clear save feedback for the settings form. */
.settings-save-feedback { grid-column:1/-1; min-height:0; margin:0; color:#168151; font-size:11px; font-weight:800; opacity:0; transform:translateY(-4px); transition:.2s; }.settings-save-feedback.visible { min-height:18px; opacity:1; transform:none; }.settings-form button.is-saved { background:#168151; animation:save-pop .38s ease both; }.settings-form button:disabled { cursor:wait; opacity:.82; }@keyframes save-pop { 50% { transform:scale(1.03); } }

/* Admin controls for visibility, backups and simple activity reporting. */
.product-availability-toggle { position:relative; padding:10px 11px; border:1px solid #dce3eb; border-radius:9px; background:#f8fafc; }.product-availability-toggle span { display:block; color:#203852; font-size:12px; }.product-availability-toggle small { display:block; margin-top:3px; color:#718194; font-size:9px; }.product-availability-toggle input { position:absolute; top:12px; right:11px; width:18px!important; height:18px; accent-color:#196aa5; }.admin-page .product-form .product-availability-toggle input { padding:0; border:0; border-radius:0; }
.analytics-card { margin-top:20px; padding:24px; border:1px solid #dbe4ec; border-radius:20px; background:#fff; box-shadow:0 12px 30px #233b5610; }.analytics-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:18px; }.analytics-summary > p { grid-column:1/-1; margin:0; color:#718194; font-size:13px; }.analytics-metric { padding:15px 12px; border:1px solid #e0e9ef; border-radius:14px; background:#f7fafc; }.analytics-metric strong { display:block; color:#196aa5; font-size:25px; line-height:1; }.analytics-metric span { display:block; margin-top:7px; color:#526b80; font-size:11px; font-weight:800; }
@media (max-width:760px) { .analytics-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Food-first promotional interstitial. */
.promo-modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:20px; background:#07100dcc; opacity:0; visibility:hidden; transition:opacity .28s ease,visibility .28s; backdrop-filter:blur(8px); }.promo-modal.open { opacity:1; visibility:visible; }.promo-card { position:relative; display:grid; grid-template-columns:1.05fr 1fr; width:min(640px,100%); overflow:hidden; border:1px solid #ffffff2b; border-radius:27px; color:#f9f7ef; background:#121b19; box-shadow:0 28px 90px #0009; transform:translateY(16px) scale(.97); transition:transform .32s cubic-bezier(.2,.8,.2,1); }.promo-modal.open .promo-card { transform:none; }.promo-image { min-height:350px; background:linear-gradient(135deg,#196aa5,#0a282a); background-position:center; background-size:cover; }.promo-image:after { content:""; display:block; width:100%; height:100%; background:linear-gradient(0deg,#07100d92,transparent 55%); }.promo-content { display:flex; flex-direction:column; align-items:flex-start; padding:38px 30px 30px; background:radial-gradient(circle at 80% 5%,#196aa533,transparent 35%),#121b19; }.promo-kicker { margin-bottom:15px; color:#64c1f4; font-size:10px; font-weight:900; letter-spacing:.18em; }.promo-content h2 { margin:0; font-size:30px; line-height:1.02; letter-spacing:-1px; }.promo-content p { margin:13px 0 0; color:#c3cfca; font-size:14px; line-height:1.45; }.promo-offer { margin:18px 0 22px; color:#69c0ed; font-size:24px; }.promo-cta { display:flex; align-items:center; justify-content:space-between; gap:22px; width:100%; padding:14px 17px; border-radius:12px; color:#fff; background:#196aa5; font-size:13px; font-weight:900; text-decoration:none; transition:transform .18s,background .18s; }.promo-cta:hover { background:#2484c3; transform:translateY(-2px); }.promo-cta span { font-size:19px; }.promo-later { align-self:center; margin-top:14px; border:0; color:#9eaba5; background:transparent; font:inherit; font-size:11px; cursor:pointer; }.promo-close { position:absolute; z-index:2; top:13px; right:13px; display:grid; width:34px; height:34px; place-items:center; border:1px solid #ffffff52; border-radius:50%; color:#fff; background:#07100d80; font-size:24px; line-height:1; cursor:pointer; }
.promo-setting { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:15px; border:1px solid #d8e3ec; border-radius:13px; background:#f7fafc; }.promo-setting legend { color:#173956; font-size:14px; font-weight:900; }.promo-setting > p { grid-column:1/-1; margin:0 0 2px; color:#6e8192; font-size:11px; }.promo-setting label { display:block; color:#587086; font-size:11px; font-weight:800; }.promo-setting input { width:100%; margin-top:6px; }.promo-switches { grid-column:1/-1; display:grid; gap:10px; }.promo-setting .promo-enabled { position:relative; grid-column:1/-1; padding:11px 48px 11px 12px; border:1px solid #d6e3ed; border-radius:10px; color:#173956; background:#fff; }.promo-setting .promo-enabled span { display:block; }.promo-setting .promo-enabled small { display:block; margin-top:4px; color:#6e8192; font-size:11px; font-weight:600; line-height:1.35; }.promo-setting .promo-enabled input { position:absolute; top:12px; right:12px; width:20px; height:20px; margin:0; accent-color:#196aa5; }.promo-setting .wide { grid-column:1/-1; }
@media (max-width:620px) { .promo-card { grid-template-columns:1fr; max-width:390px; }.promo-image { min-height:185px; }.promo-content { padding:27px 22px 22px; }.promo-content h2 { font-size:27px; }.promo-setting { grid-template-columns:1fr; } }

/* Poster version: tall, bold and discount-led. */
.promo-card { display:block; width:min(360px,100%); border:4px solid #fff; border-radius:0; background:#d8232e; }.promo-image { position:absolute; inset:0; min-height:0; background:linear-gradient(145deg,#f43b42,#9d0f1e); opacity:.44; filter:saturate(1.2) contrast(1.1); }.promo-image:after { background:linear-gradient(180deg,#df2533d9,#e91c2ed9 60%,#a80d19e8); }.promo-content { position:relative; min-height:560px; align-items:center; padding:45px 30px 25px; text-align:center; background:linear-gradient(145deg,#ed3440d9 0%,#dd1829e8 56%,#ac0e1be8 100%); }.promo-content:before { content:""; position:absolute; inset:0; opacity:.2; background:repeating-conic-gradient(from 220deg at 50% 48%,#fff 0 7deg,transparent 7deg 17deg); mix-blend-mode:screen; pointer-events:none; }.promo-content > * { position:relative; }.promo-kicker { padding:7px 12px; border:1px solid #fff9; color:#fff; background:#850e18a8; font-size:9px; }.promo-content h2 { max-width:270px; margin-top:24px; color:#fff; font-size:27px; text-transform:uppercase; }.promo-content p { max-width:250px; color:#fff; font-weight:700; }.promo-offer { display:block; margin:31px 0 28px; color:#fff; font-size:66px; line-height:.85; font-weight:1000; letter-spacing:-4px; text-shadow:0 8px 0 #8f0d16,0 16px 26px #55040c99; }.promo-cta { margin-top:auto; color:#bd1320; background:#fff; box-shadow:0 8px 0 #970d17; }.promo-cta:hover { color:#bd1320; background:#fff; }.promo-later { color:#fff; }.promo-close { border-color:#fff; color:#bc1520; background:#fff; }.menu-light .promo-card { border-color:#fff; }
@media (max-width:620px) { .promo-card { max-width:335px; }.promo-content { min-height:520px; }.promo-offer { font-size:61px; } }

/* Keep the manager's promo photo visibly present behind the offer. */
.promo-image { opacity:.92; filter:saturate(1.15) contrast(1.05); }.promo-image:after { background:linear-gradient(180deg,#a70a1680 0%,#dc1b2a62 48%,#830711b8 100%); }.promo-content { background:linear-gradient(180deg,#d81b2c35 0%,#b70b1838 100%); }.promo-content:before { opacity:.11; }

/* Let the food photo lead: no pattern above it, only a discreet reading overlay. */
.promo-image { opacity:1; filter:saturate(1.08) contrast(1.04); }.promo-image:after { background:linear-gradient(180deg,#0a121044 0%,transparent 42%,#070b0b9c 100%); }.promo-content { background:linear-gradient(180deg,#08100a32 0%,transparent 48%,#07100d61 100%); }.promo-content:before { display:none; }.promo-kicker { background:#b51520dc; }.promo-content h2,.promo-content p,.promo-offer { text-shadow:0 3px 13px #000b; }

/* Cleaner food-poster hierarchy: keep the dish visible, group the offer below. */
.promo-card { border:0; border-radius:25px; }.promo-content { min-height:535px; justify-content:flex-end; padding:28px 26px 26px; background:linear-gradient(180deg,transparent 18%,#07100d1a 42%,#07100de8 100%); }.promo-image { background-position:center center; }.promo-image:after { background:linear-gradient(180deg,#07100d18 0%,transparent 38%,#07100dca 100%); }.promo-kicker { position:absolute; top:27px; left:50%; transform:translateX(-50%); margin:0; white-space:nowrap; }.promo-content h2 { max-width:280px; margin:0; font-size:28px; line-height:1.05; }.promo-content p { max-width:270px; margin:10px 0 0; font-size:13px; }.promo-offer { margin:18px 0 14px; font-size:59px; line-height:.9; text-shadow:0 7px 0 #8d1017,0 16px 28px #0009; }.promo-later { margin-top:2px; padding:8px 14px; border:1px solid #ffffff70; border-radius:999px; color:#fff; background:#ffffff16; }.promo-close { top:16px; right:16px; }.menu-light .promo-card { border:0; }

/* Premium stage and a restrained food-photo movement. */
.promo-modal { overflow:hidden; background:radial-gradient(circle at 12% 15%,#176b9552,transparent 30%),radial-gradient(circle at 86% 82%,#c21f3542,transparent 34%),linear-gradient(135deg,#06100fef,#111a19eF); }.promo-modal:before,.promo-modal:after { content:""; position:absolute; width:58vmax; height:58vmax; border:1px solid #76bae514; border-radius:50%; pointer-events:none; }.promo-modal:before { top:-37vmax; left:-30vmax; }.promo-modal:after { right:-35vmax; bottom:-40vmax; }.promo-card { z-index:1; box-shadow:0 34px 95px #000c,0 0 0 1px #ffffff24; }.promo-image { transform:scale(1.01); transition:transform 8s cubic-bezier(.2,.7,.2,1); }.promo-modal.open .promo-image { animation:promo-photo-motion 11s cubic-bezier(.25,.65,.35,1) both; }.promo-modal.open .promo-content > * { animation:promo-content-rise .5s ease both; }.promo-modal.open .promo-content h2 { animation-delay:.08s; }.promo-modal.open .promo-content p { animation-delay:.14s; }.promo-modal.open .promo-offer { animation-delay:.2s; }.promo-modal.open .promo-later { animation-delay:.26s; }@keyframes promo-photo-motion { from { transform:scale(1.04) translate3d(-1.5%,1%,0); } to { transform:scale(1.16) translate3d(1.5%,-1%,0); } }@keyframes promo-content-rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }@media (prefers-reduced-motion:reduce) { .promo-modal.open .promo-image,.promo-modal.open .promo-content > * { animation:none; } }
/* Compact offer window: keep the menu recognisable behind the promotion. */
.hero-top { position:relative; }
.offer-button { position:relative; z-index:4; display:grid; width:74px; height:74px; place-items:center; padding:0; border:0; background:transparent; cursor:pointer; filter:drop-shadow(0 6px 7px #0008); animation:offer-badge-pulse 2.4s cubic-bezier(.45,.05,.55,.95) infinite; }
.offer-button img { display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.offer-button[hidden] { display:none !important; }

/* La Brigade masthead: horizontal signature above the menu invitation. */
.menu-page .hero { height:330px; padding:30px 42px; background:#000; }
.menu-page .hero-top { height:0; padding:0; }
.menu-page .hero-ribbon,.menu-page .hero-watermark { display:none; }
.menu-page .hero-copy { display:grid; gap:34px; margin:0; }
.menu-page .hero-logo { display:flex !important; align-items:center; gap:14px; width:auto; max-width:100%; min-width:0; margin:0; overflow:visible; color:#505154; filter:none; }
.menu-page .hero-logo .brand-mark,
.menu-page .hero-logo #hero-logo-mark { display:none !important; }
.menu-page .hero-logo strong { display:block; min-width:0; color:currentColor; font-size:clamp(22px,6vw,38px); letter-spacing:.085em; line-height:1.1; }
.menu-page .hero .explore-title { margin:0; color:#f6f1e8; font-size:58px; line-height:.92; letter-spacing:-.055em; }
.menu-page .hero .explore-title span { color:inherit; }
.menu-page .hero-copy > p,.menu-page .hero-copy > .open-badge { display:none; }
.menu-page .hero-explore {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  align-self:stretch;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  padding-right:8px;
}
.menu-page .hero-explore .explore-title { min-width:0; }
.menu-page .offer-button { position:relative; top:auto; right:auto; flex:0 0 auto; width:74px; height:74px; margin:0; }
.menu-light .menu-page .hero { background:#f8fbfd; }.menu-light .menu-page .hero-logo { color:#47718e; }.menu-light .menu-page .hero .explore-title { color:#163653; }
@media (max-width:520px) {
  .menu-page .hero { height:290px; padding:26px 27px; }
  .menu-page .hero-copy { gap:30px; }
  .menu-page .hero-logo { gap:10px; }
  .menu-page .hero-logo strong { font-size:clamp(20px,7vw,27px); }
  .menu-page .hero .explore-title { font-size:48px; }
  .menu-page .offer-button { width:68px; height:68px; }
}
.menu-light .offer-button { filter:drop-shadow(0 6px 7px #123a5a38); }
.promo-modal { padding:28px; background:radial-gradient(circle at 12% 15%,#176b953d,transparent 30%),radial-gradient(circle at 86% 82%,#c21f3533,transparent 34%),linear-gradient(135deg,#06100fa8,#111a19a8); backdrop-filter:blur(3px); }
.promo-card { width:min(330px,calc(100vw - 48px)); max-height:calc(100vh - 116px); }
.promo-content { min-height:clamp(405px,58vh,505px); padding:25px 22px 22px; }
.promo-kicker { top:22px; font-size:8px; }
.promo-content h2 { max-width:252px; font-size:24px; }
.promo-content p { max-width:244px; font-size:12px; }
.promo-offer { margin:15px 0 10px; font-size:51px; }
.promo-close { top:12px; right:12px; width:32px; height:32px; }
@media (max-width:620px) { .promo-modal { padding:18px; }.promo-card { width:min(315px,calc(100vw - 36px)); }.promo-content { min-height:min(480px,calc(100vh - 110px)); } }
@keyframes offer-badge-pulse { 0%,100% { transform:scale(1) rotate(-5deg); } 50% { transform:scale(1.14) rotate(4deg); } }
@media (prefers-reduced-motion:reduce) { .offer-button { animation:none; } }

/* Final La Brigade signature: the real three curved strokes, with room below for categories. */
.menu-page .content { margin-top:0; padding-top:0; }
.menu-page .hero-logo { color:#515257; }
.menu-page .hero-logo strong { color:#515257; }
.menu-light .menu-page .hero-logo,
.menu-light .menu-page .hero-logo strong { color:#47718e; }
@media (max-width:520px) {
  .menu-page .content { margin-top:0; }
}

/* The category rail continues the same stage as the hero — no visible colour seam. */
body:not(.menu-light) .menu-page .content { background:#000; }

/* Final responsive masthead guard.
   Older iterations used negative margins to pull categories over the hero.  Those
   rules are deliberately neutralised here: the signature, title and categories
   now remain in normal document flow on both the live host and local previews. */
.menu-page .hero {
  height:auto !important;
  min-height:0 !important;
  padding:38px 42px 26px !important;
  overflow:hidden;
}
.menu-page .hero-copy {
  position:relative !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  gap:30px !important;
  width:auto !important;
  margin:0 !important;
  transform:none !important;
}
.menu-page .hero-logo,
.menu-page .hero .explore-title {
  position:relative !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
  flex:none;
  margin:0 !important;
  transform:none !important;
}
.menu-page .hero .explore-title {
  font-size:clamp(58px,7.4vw,78px) !important;
  line-height:.9 !important;
}
.menu-page .content {
  position:relative;
  z-index:2;
  margin-top:0 !important;
  padding-top:0 !important;
}
.menu-page .category-browser { margin-top:0 !important; }
@media (max-width:520px) {
  .menu-page .hero { padding:28px 26px 22px !important; }
  .menu-page .hero-copy { gap:24px !important; }
  .menu-page .hero .explore-title { font-size:48px !important; }
  .menu-page .hero-explore { gap:8px; padding-right:6px; }
  .menu-page .offer-button { width:68px !important; height:68px !important; }
}
@media (max-width:360px) {
  .menu-page .offer-button { width:56px !important; height:56px !important; }
}
/* Super Admin visual styles live in super-admin.css */
.field-optional { color:#6b7280; font-weight:600; font-size:.82em; }
.brand-photo { display:block; max-width:140px; max-height:78px; margin:0 auto 8px; object-fit:contain; }
.menu-page .hero-logo .brand-photo { position:relative; z-index:3; flex:0 0 auto; width:auto; max-width:min(160px,42vw); max-height:72px; margin:0; object-fit:contain; object-position:left center; }
.menu-page .hero-logo .brand-photo[hidden] { display:none !important; }
@media (max-width:520px) {
  .menu-page .hero-logo .brand-photo { max-width:min(120px,36vw); max-height:56px; }
}
.restaurant-contact { margin-top:14px; padding:14px; border:1px solid #313532; border-radius:16px; background:#151817; color:#f5f0e8; }
.restaurant-contact strong { display:block; margin-bottom:8px; font-size:13px; }
.restaurant-contact p { margin:5px 0 0; color:#b9bcb8; font-size:12px; }
.restaurant-card { margin:0 0 20px; }
.settings-form .wide, .hours-setting, .qr-panel { grid-column:1 / -1; }
.hours-setting { margin:0; padding:14px; border:1px solid #dce3eb; border-radius:12px; }
.hours-setting legend { padding:0 5px; color:#203852; font-size:13px; font-weight:900; }
.hours-fields { display:grid; gap:8px; }
.hours-row { display:grid; grid-template-columns:88px 1fr 1fr auto; gap:8px; align-items:center; }
.hours-row span { color:#203852; font-size:12px; }
.hours-closed { display:flex; align-items:center; gap:6px; color:#53687b; font-size:11px; white-space:nowrap; }
.hours-closed input { width:auto !important; }
.qr-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; padding:14px; border:1px solid #dce3eb; border-radius:12px; background:#f8fafc; }
.qr-kicker { margin:0 0 8px; color:#e45322; font-size:9px; font-weight:900; letter-spacing:.12em; }
.qr-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.qr-actions button { width:auto; padding:10px 13px; border:0; border-radius:9px; color:#fff; background:#e45322; font:inherit; font-size:12px; font-weight:800; }
.qr-actions .muted-button { color:#53687b; background:#e9edf2; }
#menu-qr { width:180px; height:180px; border-radius:12px; background:#fff; }
.admin-page .product-list .product-row { display:grid; grid-template-columns:minmax(0,1fr) repeat(5,30px); gap:4px; }
.admin-page .product-list .move-product,
.admin-page .product-list .manager-row button[data-toggle-available] { font-size:13px; line-height:1; }
.admin-page .product-list .move-product:before,
.admin-page .product-list .manager-row button[data-toggle-available]:before { content:none; }
.admin-page .product-list .move-product:disabled { opacity:.28; cursor:not-allowed; }
@media (max-width:640px) {
  .hours-row { grid-template-columns:1fr 1fr; }
  .hours-row span, .hours-closed { grid-column:1 / -1; }
  .qr-panel { grid-template-columns:1fr; justify-items:center; }
  .admin-page .product-list .product-row { grid-template-columns:minmax(0,1fr) repeat(5,28px); }
}
.admin-login-card form { display:grid; gap:12px; }
.admin-login-card form[hidden] { display:none !important; }

/* Owner dashboard — light gray / charcoal / teal */
.admin-page.is-authenticated { height:100dvh; overflow:hidden; background:#f4f5f6; color:#2c3238; }
.admin-page.is-authenticated .dash-shell { display:flex; align-items:stretch; height:100dvh; min-height:0; overflow:hidden; background:#f4f5f6; color:#2c3238; }
.dash-sidebar { isolation:isolate; position:relative; display:flex; flex-direction:column; width:280px; flex:0 0 280px; align-self:stretch; height:100dvh; max-height:100dvh; min-height:0; overflow:hidden; padding:22px 16px 16px; color:#f3faf9; background-color:#061211; background-image:linear-gradient(180deg,#4fd4cc 0%,#2bb8b2 16%,#1aa7a1 38%,#127f7a 62%,#0b3a38 82%,#061211 100%); border-right:0; }
.dash-sidebar > * { position:relative; z-index:1; }
.admin-page.is-authenticated .dash-brand { display:flex; flex:0 0 auto; align-items:center; gap:12px; margin:0 4px 20px; padding:2px 4px 18px; color:#fff; border-bottom:1px solid #ffffff22; text-decoration:none; }
.admin-page.is-authenticated .dash-brand-mark { display:grid; width:40px; height:40px; flex:0 0 40px; place-items:center; overflow:hidden; border-radius:50%; background:#7ed4d0; box-shadow:0 0 0 1px #ffffff2e; }
.admin-page.is-authenticated .dash-brand-mark img { display:block; width:100%; height:100%; object-fit:cover; }
.admin-page.is-authenticated .dash-brand-mark img[hidden] { display:none !important; }
.admin-page.is-authenticated .dash-brand-mark b { color:#0f3f3c; font-size:16px; font-weight:800; line-height:1; }
.admin-page.is-authenticated .dash-brand-mark b[hidden] { display:none !important; }
.admin-page.is-authenticated .dash-brand strong { display:block; overflow:hidden; color:#fff; font-size:14px; font-weight:750; letter-spacing:0; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.admin-page.is-authenticated .dash-brand small { display:block; margin:2px 0 0; color:#d5efed; background:transparent; padding:0; font-size:11px; font-weight:600; letter-spacing:0; text-transform:none; }
.dash-brand span { display:grid; min-width:0; gap:1px; }
.dash-nav { display:grid; align-content:start; gap:2px; flex:1 1 auto; min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#ffffff44 transparent; }
.dash-nav-label { margin:12px 10px 4px; color:#c5e4e1; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.dash-nav > .dash-nav-btn:first-child { margin-bottom:6px; }
.dash-nav-btn { display:flex; align-items:center; gap:10px; width:100%; border:0; border-radius:999px; padding:9px 12px; color:#e8f7f6; background:transparent; text-align:left; font:inherit; font-size:13px; font-weight:700; line-height:1.2; cursor:pointer; outline:none; }
.dash-nav-icon { width:18px; height:18px; flex:0 0 18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.dash-nav-btn span { min-width:0; }
.dash-nav-btn .nav-badge {
  display:inline-grid; place-items:center; min-width:18px; height:18px; margin-left:auto; padding:0 5px;
  border-radius:999px; background:#e41e3f; color:#fff; font-size:11px; font-weight:800; line-height:1; letter-spacing:0;
}
.dash-nav-btn .nav-badge[hidden] { display:none !important; }
.dash-nav-btn:hover { color:#fff; background:#ffffff18; }
.dash-nav-btn:focus { outline:none; box-shadow:none; }
.dash-nav-btn:focus-visible { outline:2px solid #d5efed; outline-offset:2px; }
.dash-nav-btn.is-active { color:#127f7a; background:#fff; box-shadow:none; }
.dash-nav-btn.is-active:hover { color:#127f7a; background:#fff; }
.dash-nav-btn.is-active:focus { outline:none; box-shadow:none; }
.dash-nav-btn.is-active:focus-visible { outline:2px solid #d5efed; outline-offset:2px; }
.dash-sidebar-foot { flex:0 0 auto; margin-top:auto; display:grid; gap:8px; padding:12px 4px 0; border-top:1px solid #ffffff22; }
.dash-status-card { display:grid; gap:2px; padding:8px 10px; border-radius:10px; background:#ffffff16; }
.dash-sidebar-foot .save-status { color:#e8f7f6; font-size:12px; font-weight:750; }
.dash-status-card small { color:#d5efed; font-size:11px; font-weight:600; }
.dash-sidebar-foot .logout-button { width:100%; height:36px; padding:0 10px; border:0; border-radius:10px; color:#f4fbfa; background:transparent; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.dash-sidebar-foot .logout-button:hover { color:#f4f5f6; background:#ffffff12; }
.dash-main { flex:1 1 auto; min-width:0; min-height:0; height:100dvh; display:flex; flex-direction:column; overflow-x:hidden; overflow-y:auto; }
.dash-topbar { display:flex; align-items:center; gap:16px; padding:18px 24px; background:#fff; border-bottom:1px solid #e6e8eb; }
.dash-menu-btn { display:none; border:1px solid #e6e8eb; border-radius:10px; padding:10px 12px; background:#fff; color:#2c3238; font:inherit; font-weight:700; }
.dash-topbar-title span { display:block; color:#7b838c; font-size:10px; font-weight:800; letter-spacing:.12em; }
.dash-topbar-title h1 { margin:2px 0 0; color:#2c3238; font-size:22px; font-weight:750; }
.dash-topbar-sub { margin:6px 0 0; color:#8b939c; font-size:13px; font-weight:600; }
.dash-topbar-sub[hidden] { display:none !important; }
.dash-topbar .topbar-actions { display:flex; align-items:center; gap:10px; margin-left:auto; }
.dash-topbar .topbar-actions a, .dash-topbar .product-count { color:#127f7a; background:#e8f7f6; border:1px solid #d5efed; }
.dash-topbar .product-count[hidden] { display:none !important; }
.dash-view-menu {
  display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:0 14px;
  border:1px solid #e6e8eb !important; border-radius:999px; background:#fff !important; color:#2c3238 !important;
  text-decoration:none; font-size:13px; font-weight:700;
}
.dash-view-menu svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.dash-view-menu:hover { border-color:#1aa7a1 !important; color:#127f7a !important; }
.dash-range { display:inline-flex; align-items:center; padding:3px; border:1px solid #e6e8eb; border-radius:999px; background:#fff; }
.dash-range[hidden] { display:none !important; }
.dash-range button { border:0; border-radius:999px; padding:7px 12px; background:transparent; color:#6b7280; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.dash-range button.is-active { background:#1aa7a1; color:#fff; }
.admin-page.dash-on-overview .dash-topbar { flex-wrap:wrap; background:transparent; border-bottom:0; padding:22px 28px 6px; }
.admin-page.dash-on-overview .dash-topbar-title h1 { font-size:28px; letter-spacing:-.03em; }
.dash-view { padding:24px; }
.dash-view[hidden] { display:none !important; }
.dash-panel { display:grid; gap:16px; max-width:920px; padding:24px; border:1px solid #e6e8eb; border-radius:16px; background:#fff; box-shadow:none; }
.dash-panel + .dash-panel { margin-top:16px; }
.dash-panel .card-heading { margin-bottom:4px; }
.dash-panel .card-heading h2 { color:#2c3238; font-size:18px; font-weight:750; }
.dash-panel .card-heading p, .dash-lead { margin:0; color:#6b7280; font-size:13px; line-height:1.5; }
.dash-panel .settings-form, .dash-panel label { display:grid; gap:7px; color:#5c656e; font-size:12px; font-weight:700; }
.dash-panel input, .dash-panel select, .dash-view input, .dash-view select, #article-search {
  width:100%; padding:12px 14px; border:1px solid #e6e8eb; border-radius:10px; background:#fff; color:#2c3238; font:inherit; font-size:13px;
}
.dash-panel input:focus, .dash-panel select:focus, .dash-view input:focus, .dash-view select:focus, #article-search:focus {
  outline:0; border-color:#1aa7a1; box-shadow:0 0 0 3px #1aa7a122;
}
.dash-preview-link, .dash-primary, .dash-view .dash-primary {
  display:inline-flex; align-items:center; justify-content:center; width:fit-content; padding:11px 16px; border:0; border-radius:10px; background:#1aa7a1; color:#fff; text-decoration:none; font:inherit; font-size:13px; font-weight:750; cursor:pointer;
}
.dash-preview-link:hover, .dash-primary:hover { background:#15938e; }
.dash-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; margin-bottom:18px; }
.dash-section-heading h2 { margin:0 0 4px; color:#2c3238; font-size:22px; font-weight:750; }
.dash-section-heading .dash-lead { max-width:36rem; }
.article-card-actions button:disabled { opacity:.38; cursor:not-allowed; }
.article-card-actions button:disabled:hover { border-color:#e6e8eb; color:#2c3238; }
.article-filters { display:flex; flex-wrap:wrap; gap:8px; grid-column:1 / -1; }
.filter-chip { border:1px solid #e6e8eb; border-radius:999px; padding:7px 12px; background:#fff; color:#5c656e; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.filter-chip:hover { border-color:#bfe6e3; color:#127f7a; }
.filter-chip.is-active { color:#fff; background:#1aa7a1; border-color:#1aa7a1; }
.article-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }
.article-card { overflow:hidden; border:1px solid #e6e8eb; border-radius:16px; background:#fff; box-shadow:none; }
.article-card-media { position:relative; min-height:168px; background:#f4f5f6 center/cover no-repeat; }
.article-card-media span { display:grid; place-items:center; height:168px; color:#7b838c; font-size:12px; font-weight:700; }
.article-price { position:absolute; left:12px; bottom:12px; padding:5px 9px; border-radius:999px; background:#fff; color:#127f7a; border:1px solid #e6e8eb; font-size:13px; font-weight:800; }
.article-avail { position:absolute; top:12px; right:12px; padding:4px 8px; border-radius:999px; color:#fff; font-size:10px; font-style:normal; font-weight:750; }
.article-avail.is-on { background:#1aa7a1; }
.article-avail.is-off { background:#8a9198; }
.article-card.is-unavailable { opacity:.78; }
.article-card-body { padding:14px 16px 16px; }
.article-card-body small { color:#7b838c; font-size:11px; font-weight:700; }
.article-card-body h3 { margin:6px 0 12px; color:#2c3238; font-size:17px; font-weight:750; }
.article-card-actions { display:flex; flex-wrap:wrap; gap:6px; }
.article-card-actions button { border:1px solid #e6e8eb; border-radius:8px; padding:8px 9px; background:#fff; color:#2c3238; font:inherit; font-size:11px; font-weight:700; cursor:pointer; }
.article-card-actions button:hover { border-color:#1aa7a1; color:#127f7a; }
.article-card-actions .danger { color:#8a4a45; background:#fff; border-color:#ead4d2; }
.article-empty { grid-column:1 / -1; padding:42px 22px; border:1px dashed #d5d8dc; border-radius:16px; background:#fff; text-align:center; color:#2c3238; }
.article-empty p { color:#6b7280; }
.article-empty .dash-primary { margin:14px auto 0; }
.dash-account-actions { display:flex; flex-wrap:wrap; gap:8px; }
.dash-account-actions button { border:1px solid #e6e8eb; border-radius:10px; padding:11px 14px; background:#fff; color:#2c3238; font:inherit; font-weight:700; cursor:pointer; }
.dash-account-actions button:hover { border-color:#1aa7a1; color:#127f7a; }
.dash-backdrop { display:none !important; }
.dash-view .theme-setting, .dash-view .promo-setting, .dash-view .hours-setting { margin:0; border-color:#e6e8eb; background:#fafbfc; }
.dash-view .theme-setting legend, .dash-view .promo-setting legend, .dash-view .hours-setting legend { color:#2c3238; }
.offer-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,300px); gap:20px; align-items:start; }
#offers-form.promo-setting { margin:0; }
.dash-view .promo-setting .promo-enabled { border-color:#e6e8eb; color:#2c3238; }
.dash-view .promo-setting .promo-enabled small { color:#6b7280; }
.dash-view .promo-setting .promo-enabled input { accent-color:#1aa7a1; }
#offers-form .dash-primary, #offers-form .settings-save-feedback { grid-column:1 / -1; justify-self:start; }
.offer-preview-wrap { display:grid; gap:10px; }
.offer-preview-kicker { margin:0; color:#1aa7a1; font-size:10px; font-weight:800; letter-spacing:.12em; }
.offer-preview { overflow:hidden; border:1px solid #e6e8eb; border-radius:16px; background:#fff; }
.offer-preview-image { position:relative; height:150px; background:#f4f5f6 center/cover no-repeat; }
.offer-preview-image span { display:none; }
.offer-preview-image.is-empty span { display:grid; place-items:center; height:100%; color:#7b838c; font-size:12px; font-weight:700; }
.offer-preview-body { display:grid; gap:6px; padding:14px 16px 16px; }
.offer-preview-body span { color:#1aa7a1; font-size:10px; font-weight:800; letter-spacing:.1em; }
.offer-preview-body h3 { margin:0; color:#2c3238; font-size:18px; font-weight:750; }
.offer-preview-body p { margin:0; color:#6b7280; font-size:13px; line-height:1.45; }
.offer-preview-body strong { color:#127f7a; font-size:16px; }
.offer-preview-body small { color:#7b838c; font-size:11px; font-weight:700; }
.offer-preview.is-off { opacity:.62; }
.offer-preview-body p[hidden] { display:none; }
.dash-view .offers-popup-toggle { position:relative; display:block; margin:0 0 12px; padding:11px 48px 11px 12px; border:1px solid #e6e8eb; border-radius:10px; color:#2c3238; background:#fff; font-size:13px; font-weight:800; }
.dash-view .offers-popup-toggle small { display:block; margin-top:4px; color:#6b7280; font-size:11px; font-weight:600; line-height:1.35; }
.dash-view .offers-popup-toggle input { position:absolute; top:12px; right:12px; width:20px; height:20px; accent-color:#1aa7a1; }
#offers-list-feedback { margin:0 0 10px; }
#offers-list-feedback:not(.visible), #offer-editor[hidden] { display:none; }
.offers-admin-list { display:grid; gap:10px; }
.offers-empty { margin:6px 0 0; }
.offer-admin-row { display:grid; grid-template-columns:64px minmax(0,1fr) auto; grid-template-areas:"thumb copy status" "thumb actions actions"; gap:8px 12px; align-items:center; padding:12px; border:1px solid #e6e8eb; border-radius:12px; background:#fff; }
.offer-admin-row.is-disabled, .offer-admin-row.is-expired { background:#fafbfc; }
.offer-admin-row.is-disabled .offer-admin-thumb, .offer-admin-row.is-expired .offer-admin-thumb { opacity:.55; }
.offer-admin-thumb { grid-area:thumb; width:64px; height:64px; border-radius:10px; background:#f4f5f6 center/cover no-repeat; }
.offer-admin-thumb.is-empty { background-image:radial-gradient(120% 90% at 20% 0%, #3a3d3b 0%, #232524 45%, #151616 100%); }
.offer-admin-copy { grid-area:copy; min-width:0; }
.offer-admin-copy strong { display:block; overflow:hidden; color:#2c3238; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.offer-admin-copy small { display:block; margin-top:3px; color:#6b7280; font-size:12px; }
.offer-admin-status { grid-area:status; padding:3px 9px; border-radius:999px; font-size:11px; font-weight:800; white-space:nowrap; }
.offer-admin-status.is-active { color:#127f7a; background:#e3f6f5; }
.offer-admin-status.is-disabled { color:#6b7280; background:#eef0f2; }
.offer-admin-status.is-expired { color:#9b1c1c; background:#fde8e8; }
.offer-admin-actions { grid-area:actions; display:flex; flex-wrap:wrap; gap:6px; }
.offer-admin-actions button { padding:6px 10px; border:1px solid #e6e8eb; border-radius:8px; color:#2c3238; background:#fff; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.offer-admin-actions button:hover:not(:disabled) { border-color:#1aa7a1; color:#127f7a; }
.offer-admin-actions button:disabled { opacity:.45; cursor:default; }
.offer-admin-actions button.danger { color:#b42318; }
#offers-form .offer-editor-actions { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:10px; }
#offers-form .offer-editor-actions .muted-button { padding:9px 16px; border:1px solid #e6e8eb; border-radius:10px; color:#2c3238; background:#fff; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
#offers-form .offer-editor-actions .muted-button:hover { border-color:#1aa7a1; color:#127f7a; }
@media (max-width:900px) { .offer-layout { grid-template-columns:1fr; } }
.dash-view .theme-options span { border-color:#e6e8eb; color:#2c3238; background:#fff; }
.dash-view .theme-options input:checked + span { border-color:#1aa7a1; background:#e8f7f6; box-shadow:0 0 0 3px #1aa7a118; color:#127f7a; }
.dash-view .theme-options input:checked + span small { color:#4f8f8b; }
.dash-view .settings-form button, .dash-view .qr-actions button { background:#1aa7a1; color:#fff; }
.dash-view .settings-form button:hover, .dash-view .qr-actions button:hover { background:#15938e; }
.dash-view .settings-form button.is-saved { background:#127f7a; }
.dash-view .qr-actions .muted-button { color:#5c656e; background:#f4f5f6; }
.dash-view .qr-kicker { color:#1aa7a1; }
.dash-view .qr-panel { border-color:#e6e8eb; background:#fafbfc; }
#view-analytics .article-filters { grid-column:auto; justify-self:end; }
#view-overview { display:grid; gap:14px; padding-top:8px; }
#view-overview.dash-view { padding-top:8px; }
.ov-stack { display:grid; gap:14px; }
.ov-kpis { display:grid; gap:14px; }
.ov-kpis-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ov-kpis-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ov-kpi {
  display:grid; grid-template-columns:44px minmax(0,1fr); gap:16px; align-items:center;
  min-height:112px; padding:20px 22px; border:1px solid #eef0f2; border-radius:16px;
  background:#fff; box-shadow:0 8px 24px #2c32380a;
}
.ov-kpi-icon {
  display:grid; place-items:center; width:44px; height:44px; border-radius:50%;
  background:#e8f7f6; color:#1aa7a1;
}
.ov-kpi-icon svg {
  width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round;
}
.ov-card-head svg {
  width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round;
}
.ov-kpi-copy { min-width:0; }
.ov-kpi-copy > span { display:block; margin-top:6px; color:#5c656e; font-size:13px; font-weight:650; }
.ov-kpi strong { display:block; color:#2c3238; font-size:30px; line-height:1; font-weight:800; letter-spacing:-.03em; }
.ov-kpi small, .ov-kpi .is-error { color:#c8482e; }
.ov-split { display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:12px; }
.ov-brand { display:inline-flex; align-items:center; gap:7px; margin:0; color:#6b7280; font-size:12px; font-weight:650; line-height:1; }
.ov-brand svg {
  width:15px; height:15px; flex:0 0 15px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.ov-brand em { font-style:normal; }
.ov-brand b { color:#2c3238; font-weight:800; }
.ov-ig { color:#d62976; }
.ov-fb { color:#1877f2; }
.ov-charts { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(260px,.7fr); gap:14px; }
.ov-card {
  padding:18px 20px 16px; border:1px solid #eef0f2; border-radius:16px;
  background:#fff; box-shadow:0 8px 24px #2c32380a;
}
.ov-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.ov-card-head h2 { display:flex; align-items:center; gap:8px; margin:0; color:#2c3238; font-size:15px; font-weight:750; }
.ov-card-head span { color:#8b939c; font-size:12px; font-weight:650; white-space:nowrap; }
.ov-empty { display:grid; place-items:center; min-height:160px; margin:0; color:#7b838c; text-align:center; font-size:13px; line-height:1.45; }
.ov-empty.is-error { color:#c8482e; }
.ov-empty code { font-size:12px; }
.ov-line { display:block; width:100%; height:220px; }
.ov-line .ov-axis { stroke:#eef0f2; }
.ov-line text { fill:#8b939c; font-size:10px; }
.ov-line .ov-area { fill:#1aa7a118; }
.ov-line .ov-stroke { stroke:#1aa7a1; stroke-width:2.2; stroke-linejoin:round; stroke-linecap:round; }
.ov-line .ov-dot { fill:#fff; stroke:#1aa7a1; stroke-width:1.6; }
.ov-bars { display:grid; gap:14px; margin:8px 0 0; padding:0; list-style:none; }
.ov-bars li { display:grid; grid-template-columns:minmax(118px,auto) minmax(0,1fr) 28px; gap:10px; align-items:center; }
.ov-bar-label { display:inline-flex; align-items:center; gap:8px; color:#2c3238; font-size:13px; font-weight:700; line-height:1; }
.ov-bar-label svg {
  width:15px; height:15px; flex:0 0 15px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.ov-bar-track { height:10px; border-radius:999px; background:#eef1f2; overflow:hidden; }
.ov-bar-fill { height:100%; border-radius:inherit; background:#1aa7a1; }
.ov-bar-fill.is-empty { background:#e6e8eb; }
.ov-bars strong { color:#2c3238; font-size:13px; font-weight:800; text-align:right; }
.ov-top-note { margin:0 0 12px; color:#6b7280; font-size:12px; line-height:1.45; }
.ov-top-note:empty, .ov-top-note[hidden] { display:none; }
.ov-top-table { display:grid; gap:0; }
.ov-top-head, .ov-top-row {
  display:grid; grid-template-columns:32px minmax(0,1.3fr) minmax(80px,.55fr) 72px 82px minmax(110px,.9fr); gap:12px; align-items:center;
}
.ov-top-head { padding:0 4px 10px; color:#8b939c; font-size:12px; font-weight:650; }
.ov-top-row { padding:12px 4px; border-top:1px solid #eef0f2; }
.ov-top-row b { color:#8b939c; font-size:13px; }
.ov-top-item { display:flex; align-items:center; gap:10px; min-width:0; }
.ov-top-item img, .ov-top-fallback {
  width:36px; height:36px; flex:0 0 36px; border-radius:8px; object-fit:cover; background:#f4f5f6;
}
.ov-top-fallback { display:grid; place-items:center; color:#7b838c; font-size:13px; font-weight:800; }
.ov-top-item strong { overflow:hidden; color:#2c3238; font-size:14px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.ov-top-cat { color:#6b7280; font-size:13px; }
.ov-top-metric { color:#2c3238; font-size:13px; font-weight:750; text-align:right; }
.ov-top-clicks { display:grid; grid-template-columns:minmax(0,1fr) 28px; gap:10px; align-items:center; }
.ov-top-clicks em { color:#2c3238; font-style:normal; font-size:13px; font-weight:800; text-align:right; }
.ov-status { margin:0; color:#7b838c; font-size:12px; }
.ov-status:empty { display:none; }
@media (max-width:900px) {
  #view-analytics .article-filters { justify-self:start; }
  .ov-kpis-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ov-kpis-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ov-charts { grid-template-columns:1fr; }
  .ov-top-head, .ov-top-row { grid-template-columns:28px minmax(0,1fr) 64px 72px; }
  .ov-top-head span:nth-child(3), .ov-top-cat { display:none; }
  .ov-top-head span:nth-child(6), .ov-top-clicks { grid-column:1 / -1; }
  .ov-top-clicks { margin-top:6px; }
}
@media (max-width:560px) {
  .ov-kpis-4, .ov-kpis-3 { grid-template-columns:1fr; }
  .dash-range { width:100%; justify-content:space-between; }
  .admin-page.dash-on-overview .dash-topbar { padding:16px; }
  .ov-top-head, .ov-top-row { grid-template-columns:24px minmax(0,1fr) 56px 64px; }
}
.dash-view .new-category-form button { background:#1aa7a1; color:#fff; border:0; }
.dash-view .manager-row { border-color:#e6e8eb; background:#fff; }
.dash-view .manager-row:hover { border-color:#cfeae8; background:#f8fbfb; }
.dash-view .manager-row button { color:#5c656e; background:#f4f5f6; }
.dash-view .category-position { background:#1aa7a1; }
.dash-view .hours-row span { color:#2c3238; }
.dash-shell .settings-save-feedback.visible { display:block; color:#127f7a; font-weight:750; }
.dash-shell .settings-save-feedback.visible.is-error { color:#b42318; }
.hours-hint { margin:0 0 10px; color:#6b7280; font-size:12px; line-height:1.4; }
.menu-cover-editor { display:grid; gap:12px; }
.menu-cover-preview { position:relative; display:grid; place-items:center; aspect-ratio:2.2 / 1; max-width:560px; overflow:hidden; border:1px solid #e6e8eb; border-radius:12px; background:#1a1a1a center 38% / cover no-repeat; }
.menu-cover-preview.is-empty { background-image:radial-gradient(120% 90% at 20% 0%, #3a3d3b 0%, #232524 45%, #151616 100%); }
.menu-cover-preview span { display:none; padding:0 16px; color:#c9ccca; font-size:12px; text-align:center; }
.menu-cover-preview.is-empty span { display:block; }
.menu-cover-actions { display:flex; flex-wrap:wrap; gap:10px; }
.menu-cover-actions .danger { padding:10px 14px; border:1px solid #f1c4bf; border-radius:10px; color:#b42318; background:#fff; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.admin-page.is-authenticated .category-modal .modal-actions button:last-child,
.admin-page.is-authenticated .password-modal .modal-actions button:last-child,
.admin-page.is-authenticated #product-modal .admin-actions button:not(.muted-button) { background:#1aa7a1; }
.admin-page.is-authenticated .category-edit-card,
.admin-page.is-authenticated #product-modal .category-edit-card,
.admin-page.is-authenticated .password-card { border:1px solid #e6e8eb; box-shadow:0 16px 40px #2c323814; }
.admin-page.is-authenticated .modal-heading span { color:#1aa7a1; }
.admin-page.is-authenticated .category-modal input:focus,
.admin-page.is-authenticated .password-modal input:focus,
.admin-page.is-authenticated #product-modal input:focus,
.admin-page.is-authenticated #product-modal select:focus {
  outline:0; border-color:#1aa7a1; box-shadow:0 0 0 3px #1aa7a122;
}
#view-categories #category-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.dash-cat-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; }
.dash-cat-media { position:relative; height:168px; background:#f4f5f6; overflow:hidden; }
.dash-cat-media img { display:block; width:100%; height:100%; object-fit:cover; }
.dash-cat-media span { display:none; }
.dash-cat-media.is-empty span { display:grid; place-items:center; height:100%; color:#7b838c; font-size:13px; font-weight:700; }
.dash-cat-card .article-card-body { display:flex; flex-direction:column; gap:4px; }
.dash-cat-card .article-card-body h3 { margin:0; }
.dash-cat-count { margin:0 0 8px; color:#6b7280; font-size:13px; }
.dash-cat-card .article-card-actions { margin-top:auto; }
#product-modal .product-form { grid-template-columns:1fr 1fr; }
@media (max-width:520px) {
  .admin-page.is-authenticated .dash-brand small { display:block; }
}
@media (max-width:900px) {
  .dash-menu-btn { display:inline-flex; }
  .dash-sidebar { position:fixed; z-index:40; inset:0 auto 0 0; width:min(280px,86vw); height:100dvh; max-height:100dvh; transform:translateX(-105%); transition:transform .25s ease; box-shadow:8px 0 28px #0f3f3c55; }
  .dash-nav-open .dash-sidebar { transform:none; }
  .dash-nav-open .dash-backdrop { display:block !important; position:fixed; z-index:35; inset:0; background:#2c323866; }
  .dash-nav-open .dash-main { overflow:hidden; }
  .dash-sidebar-foot .save-status { display:block; }
  .dash-toolbar { grid-template-columns:1fr; }
  .dash-topbar { padding:14px 16px; gap:10px; }
  .dash-topbar-title { min-width:0; }
  .dash-topbar-title h1 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dash-topbar .topbar-actions { flex:0 1 auto; min-width:0; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
  .dash-view { padding:16px; }
  #product-modal .product-form { grid-template-columns:1fr; }
}
.private-feedback-btn { display:block; width:100%; margin-top:10px; padding:10px; border:0; background:transparent; color:#9aa4ad; font:inherit; font-size:12px; font-weight:700; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.menu-light .private-feedback-btn { color:#5c6b78; }
.feedback-modal { position:fixed; z-index:110; inset:0; display:grid; align-items:end; justify-items:center; padding:0; background:#07100dcc; opacity:0; visibility:hidden; transition:opacity .22s ease,visibility .22s; }
.feedback-modal.open { opacity:1; visibility:visible; }
.feedback-card { width:min(440px,100%); max-height:min(92dvh,720px); overflow:auto; padding:22px 20px 24px; border-radius:20px 20px 0 0; color:#f4f1ea; background:#141a19; box-shadow:0 -12px 40px #0007; }
.feedback-card h2 { margin:0 28px 8px 0; font-size:22px; }
.feedback-card > p { margin:0 0 16px; color:#b7c0bc; font-size:13px; line-height:1.45; }
.feedback-close { position:absolute; top:14px; right:14px; width:34px; height:34px; border:1px solid #ffffff30; border-radius:50%; color:#fff; background:#0004; font-size:22px; line-height:1; cursor:pointer; }
.feedback-card { position:relative; }
.feedback-card label, .feedback-stars legend { display:block; margin:0 0 6px; color:#d5ddd9; font-size:12px; font-weight:800; }
.feedback-card label span { font-weight:600; color:#8f9a96; }
.feedback-card textarea { width:100%; margin-top:6px; padding:11px; border:1px solid #2c3836; border-radius:12px; color:#f4f1ea; background:#0d1211; font:inherit; resize:vertical; }
.feedback-stars { margin:0 0 14px; padding:0; border:0; }
.feedback-stars div { display:flex; gap:6px; }
.feedback-stars button { width:42px; height:42px; border:1px solid #2c3836; border-radius:12px; color:#6d7672; background:#0d1211; font-size:22px; cursor:pointer; }
.feedback-stars button.is-on { color:#f0c14b; border-color:#8a6f24; background:#2a2414; }
.feedback-problem { display:flex; align-items:center; gap:10px; margin:12px 0 16px; font-weight:700; }
.feedback-problem input { width:18px; height:18px; accent-color:#1aa7a1; }
.feedback-submit { width:100%; border:0; border-radius:12px; padding:13px; color:#fff; background:#1aa7a1; font:inherit; font-weight:800; cursor:pointer; }
.feedback-submit:disabled { opacity:.55; cursor:wait; }
#feedback-status { min-height:1.2em; margin:10px 0 0; color:#9ad6d2; font-size:12px; }
#feedback-status.is-error { color:#f0a3a0; }
.feedback-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.upload-preview { margin-top:8px; }
.upload-preview img {
  display:block; max-width:180px; max-height:110px; object-fit:contain; border:1px solid #e6e8eb; border-radius:10px;
  background-color:#f4f5f6;
  background-image:linear-gradient(45deg,#eceef0 25%,transparent 25%),linear-gradient(-45deg,#eceef0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eceef0 75%),linear-gradient(-45deg,transparent 75%,#eceef0 75%);
  background-size:14px 14px; background-position:0 0,0 7px,7px -7px,-7px 0;
}
#product-modal .upload-preview { grid-column:1 / -1; }
#view-reviews .article-filters { grid-column:auto; justify-self:end; }
#view-reviews .feedback-inbox { display:grid; gap:12px; margin-bottom:20px; }
#view-reviews .feedback-db-error { margin:0 0 12px; padding:10px 12px; border-radius:10px; background:#fde8e8; color:#9b1c1c; font-size:13px; font-weight:700; }
#view-reviews .feedback-card-admin { padding:16px; border:1px solid #e6e8eb; border-radius:14px; background:#fff; }
#view-reviews .feedback-card-admin.is-unread { border-color:#1aa7a1; box-shadow:inset 3px 0 0 #1aa7a1; }
#view-reviews .feedback-card-admin.is-problem { border-color:#ead4d2; }
#view-reviews .feedback-card-flags { display:flex; align-items:center; gap:8px; }
#view-reviews .feedback-unread { padding:3px 8px; border-radius:999px; background:#e41e3f; color:#fff; font-size:11px; font-style:normal; font-weight:800; }
#view-reviews .feedback-delete { color:#8a4a45; }
#view-reviews .feedback-card-top { display:flex; justify-content:space-between; gap:10px; align-items:center; }
#view-reviews .feedback-stars-read { letter-spacing:1px; color:#d5d8dc; }
#view-reviews .feedback-stars-read i.is-on { color:#1aa7a1; font-style:normal; }
#view-reviews .feedback-stars-read i { font-style:normal; }
#view-reviews .feedback-card-admin time { color:#7b838c; font-size:12px; }
#view-reviews .feedback-card-admin p { margin:10px 0 12px; color:#2c3238; font-size:14px; line-height:1.45; }
#view-reviews .feedback-card-admin p span { color:#7b838c; }
#view-reviews .feedback-card-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
#view-reviews .feedback-card-meta b { color:#8a4a45; font-size:12px; }
#view-reviews .feedback-card-meta small, #view-reviews .feedback-card-meta em { color:#7b838c; font-size:12px; font-style:normal; font-weight:700; }
@media (min-width:640px) {
  .feedback-modal { align-items:center; padding:20px; }
  .feedback-card { border-radius:20px; }
}
@media (max-width:900px) {
  #view-reviews .article-filters { justify-self:start; }
}

.menu-page .menu-item {
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.menu-page .article-detail { margin:4px 0 18px; }
.menu-page .article-detail-back {
  margin:0 0 12px;
  padding:0;
  border:0;
  color:#9fd0ef;
  background:transparent;
  font:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.menu-page .article-detail-card {
  overflow:hidden;
  border:1px solid #313532;
  border-radius:20px;
  background:#151817;
}
.menu-page .article-detail-media {
  position:relative;
  width:100%;
  aspect-ratio:4 / 3;
  background:#101413;
}
.menu-page .article-detail-media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.menu-page .article-detail-media.is-empty {
  background:
    linear-gradient(135deg,#1a2220 0%,#101413 100%);
}
.menu-page .article-detail-body { padding:16px 16px 18px; }
.menu-page .article-detail-category {
  margin:0 0 6px;
  color:#4aa8dd;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.menu-page .article-detail-title-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.menu-page .article-detail-title-row h2 {
  margin:0;
  color:#f5f0e8;
  font-size:24px;
  font-weight:850;
  line-height:1.15;
}
.menu-page .article-detail-rating {
  flex:0 0 auto;
  margin-top:4px;
  color:#f5f0e8;
  font-size:15px;
  font-weight:800;
  white-space:nowrap;
}
.menu-page .article-detail-price {
  display:block;
  margin:10px 0 12px;
  color:#66bbe8;
  font-size:20px;
  font-weight:900;
}
.menu-page .article-detail-price del {
  margin-right:8px;
  color:#8a949b;
  font-size:13px;
}
.menu-page .article-detail-desc {
  margin:0 0 16px;
  color:#c4c9c5;
  font-size:14px;
  line-height:1.45;
}
.menu-page .article-rate {
  display:grid;
  gap:12px;
  margin-top:2px;
}
.menu-page .article-rate[hidden] { display:none !important; }
.menu-page .article-rate-stars {
  display:flex;
  gap:8px;
}
.menu-page .article-rate-stars button {
  width:42px;
  height:42px;
  border:1px solid #2c3836;
  border-radius:12px;
  color:#6d7672;
  background:#0d1211;
  font-size:22px;
  cursor:pointer;
}
.menu-page .article-rate-stars button.is-on {
  color:#f0c14b;
  border-color:#8a6f24;
  background:#2a2414;
}
.menu-page .article-rate-send {
  width:100%;
  min-height:46px;
  padding:12px 14px;
  border:0;
  border-radius:14px;
  color:#fff;
  background:#196aa5;
  font:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
.menu-light .article-detail-back { color:#1e72af; }
.menu-light .article-detail-card { border-color:#d8e2e8; background:#fff; }
.menu-light .article-detail-media,
.menu-light .article-detail-media.is-empty { background:#eef4f8; }
.menu-light .article-detail-title-row h2 { color:#163653; }
.menu-light .article-detail-rating { color:#163653; }
.menu-light .article-detail-price { color:#1b6b9f; }
.menu-light .article-detail-desc { color:#4f6678; }
.menu-light .article-rate-stars button { border-color:#d8e2e8; color:#8a939b; background:#f4f8fb; }
.menu-light .article-rate-stars button.is-on { color:#d4a017; border-color:#e6c56a; background:#fff6d9; }
@media (max-width:480px) {
  .menu-page .article-detail-title-row h2 { font-size:22px; }
  .menu-page .article-detail-media { aspect-ratio:1 / 1; }
}

/* Public menu footer: compact contact, social, and action cards. */
.menu-page .menu-footer {
  display:grid;
  gap:10px;
  margin-top:18px;
}
.menu-page .menu-footer [hidden] { display:none !important; }
.menu-page .menu-footer .menu-card {
  margin:0;
  padding:14px 14px 12px;
  border:1px solid #313532;
  border-radius:16px;
  background:#151817;
  color:#f5f0e8;
}
.menu-page .menu-footer .menu-card > strong,
.menu-page .menu-footer .menu-card-copy strong {
  display:block;
  margin:0;
  color:#f5f0e8;
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
}
.menu-page .menu-footer .menu-card-copy small {
  display:block;
  margin-top:3px;
  color:#a8aeaa;
  font-size:11px;
  line-height:1.35;
}
.menu-page .menu-footer .social-card {
  display:grid;
  gap:12px;
  align-items:stretch;
  justify-content:stretch;
}
.menu-page .menu-footer .social-links {
  display:flex;
  gap:8px;
  width:100%;
}
.menu-page .menu-footer .social-links a {
  display:flex;
  flex:1 1 0;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:auto;
  min-width:0;
  height:42px;
  padding:0 10px;
  border:1px solid #2c3230;
  border-radius:12px;
  color:#9fd0ef;
  background:#1b201e;
  font-size:12px;
  font-weight:800;
}
.menu-page .menu-footer .social-links a span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.menu-page .menu-footer .social-links svg { width:16px; height:16px; flex:0 0 auto; }
.menu-page .restaurant-contact { display:grid; }
.menu-page .restaurant-contact > strong { margin-bottom:4px; }
.menu-page .contact-row {
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  padding:10px 0 2px;
  border:0;
  color:#d7dcd8;
  font-size:13px;
  line-height:1.4;
  text-decoration:none;
  background:transparent;
}
.menu-page .contact-row + .contact-row {
  margin-top:8px;
  padding-top:10px;
  border-top:1px solid #262b29;
}
.menu-page .contact-icon {
  display:grid;
  width:22px;
  height:22px;
  flex:0 0 22px;
  place-items:center;
  margin-top:1px;
  color:#8d9692;
}
.menu-page .contact-icon svg {
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.menu-page .contact-hours-copy {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
}
.menu-page .hours-status {
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  line-height:1;
}
.menu-page .hours-status.is-open { color:#d7f0d5; background:#1d3a2b; }
.menu-page .hours-status.is-closed { color:#f3d6d2; background:#3a2220; }
.menu-page .hours-today { color:#c4c9c5; font-size:13px; font-weight:700; }
.menu-page .contact-row[href] [data-contact-text] {
  color:#9fd0ef;
  font-weight:700;
  overflow-wrap:anywhere;
}
.menu-page .menu-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:2px 0 0;
}
.menu-page .menu-actions > :not([hidden]) {
  flex:1 1 calc(50% - 4px);
  min-width:min(100%,148px);
}
.menu-page .menu-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:12px 14px;
  border:1px solid #313532;
  border-radius:14px;
  color:#f5f0e8;
  background:#1b201e;
  font:inherit;
  font-size:13px;
  font-weight:800;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
}
.menu-page .map-link { color:#e8efe9; background:#1b201e; }
.menu-page .private-feedback-btn {
  width:auto;
  margin:0;
  color:#fff;
  background:#196aa5;
  border-color:#196aa5;
  text-decoration:none;
}
.menu-page .review-link { color:#fff; background:#196aa5; border-color:#196aa5; }
.menu-light .menu-footer .menu-card {
  border-color:#d8e2e8;
  background:#fff;
  color:#163653;
}
.menu-light .menu-footer .menu-card > strong,
.menu-light .menu-footer .menu-card-copy strong { color:#163653; }
.menu-light .menu-footer .menu-card-copy small { color:#687681; }
.menu-light .menu-footer .social-links a {
  border-color:#d8e2e8;
  color:#1e72af;
  background:#e8f5fc;
}
.menu-light .contact-row { color:#3d5364; }
.menu-light .contact-row + .contact-row { border-top-color:#e4edf2; }
.menu-light .contact-icon { color:#7b8d9a; }
.menu-light .hours-status.is-open { color:#1d5a32; background:#dbefd9; }
.menu-light .hours-status.is-closed { color:#8a3d36; background:#f6e4e1; }
.menu-light .hours-today { color:#4f6678; }
.menu-light .contact-row[href] [data-contact-text] { color:#1e72af; }
.menu-light .menu-action {
  border-color:#d8e2e8;
  color:#385669;
  background:#e6edf1;
}
.menu-light .private-feedback-btn,
.menu-light .review-link {
  color:#fff;
  background:#196aa5;
  border-color:#196aa5;
}

/* Dashboard public-menu design picker */
.dash-view[data-view="menu"] .dash-panel { max-width: 1100px; }
.template-picker {
  margin: 0;
  padding: 16px;
  border: 1px solid #e6e8eb;
  border-radius: 14px;
}
.template-picker legend {
  padding: 0 6px;
  color: #2c3238;
  font-size: 14px;
  font-weight: 800;
}
.template-picker > p {
  margin: 0 0 12px;
  color: #6b7280;
  font-size: 12px;
  line-height: 1.45;
}
.template-picker-status {
  margin: 0 0 12px;
  padding: 8px 10px;
  border-radius: 10px;
  color: #8a5a12;
  background: #fff6e0;
  font-size: 12px;
  font-weight: 700;
}
.template-picker-status[hidden] { display: none; }
.template-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.template-card {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #e6e8eb;
  border-radius: 16px;
  background: #f7f8fa;
}
.template-card.is-selected { border-color: #2c3238; box-shadow: 0 0 0 3px #2c323818; }
.template-card.is-current { border-color: #1aa7a1; }
.template-card.is-pending { border-color: #d39b1f; box-shadow: 0 0 0 3px #d39b1f22; }
.phone-frame {
  width: min(100%, 280px);
  height: 560px;
  margin: 0 auto;
  overflow: hidden;
  border: 10px solid #1a1d21;
  border-radius: 32px;
  background: #0b0d0d;
  box-shadow: inset 0 0 0 2px #3a3f46, 0 10px 24px #0b12201a;
}
.phone-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #0b0d0d;
}
.phone-frame-lg {
  width: min(100%, 390px);
  height: min(78dvh, 760px);
}
.template-card-meta { display: grid; gap: 8px; }
.template-card-meta label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.template-card-meta input { margin-top: 4px; accent-color: #1aa7a1; }
.template-card-meta b { display: block; color: #2c3238; font-size: 15px; }
.template-card-meta small { display: block; margin-top: 2px; color: #6b7280; font-size: 12px; line-height: 1.4; }
.template-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.template-tags em {
  display: none;
  width: max-content;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  font-style: normal;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.template-card.is-selected [data-tag="selected"] { display: inline-flex; color: #2c3238; background: #e9edf2; }
.template-card.is-current [data-tag="live"] { display: inline-flex; color: #127f7a; background: #e8f7f6; }
.template-card.is-pending [data-tag="selected"] { color: #8a5a12; background: #fff6e0; }
.template-preview-modal {
  position: fixed;
  z-index: 40;
  inset: 0;
  display: none;
  place-items: center;
  padding: 20px;
  background: #07192acc;
}
.template-preview-modal.open { display: grid; }
.template-preview-modal-card {
  display: grid;
  gap: 14px;
  width: min(100%, 460px);
  padding: 16px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 70px #07172755;
}
.template-preview-modal-card .modal-heading { margin-bottom: 0; }
.template-preview-modal-card .phone-frame { margin: 0 auto; }
@media (max-width: 860px) {
  .template-options { grid-template-columns: 1fr; }
  .phone-frame { height: 520px; }
}

/* Category circle navigation: owner photos fill the same circle as the packaged icons. */
.menu-page .category-card .category-icon.has-photo { overflow: hidden; border-radius: 50%; }
.menu-page .category-card .category-icon.has-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 50%; mix-blend-mode: normal;
}
.menu-page .category-card.selected .category-icon.has-photo {
  top: 16px; left: 50%; width: 44px; height: 44px; transform: translateX(-50%); box-shadow: 0 0 0 1px #ffffff40;
}

/* Category form: card photo and circle image, each with its own preview. */
.category-image-fields { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 12px; }
.category-image-field { display: grid; align-content: start; gap: 8px; min-width: 0; margin: 0; padding: 12px; border: 1px solid #e6e8eb; border-radius: 12px; }
.category-image-field legend { padding: 0 4px; color: #2c3238; font-size: 13px; font-weight: 800; }
.category-image-hint { margin: 0; color: #6b7280; font-size: 12px; line-height: 1.35; }
.cat-preview-card {
  position: relative; overflow: hidden; aspect-ratio: 2.69 / 1; border: 1px solid #313635; border-radius: 14px;
  color: #fff; background: #141716 center / cover no-repeat;
}
.cat-preview-card:after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.74) 30%, rgba(0,0,0,.5) 52%, rgba(0,0,0,.18) 70%, rgba(0,0,0,.04) 85%, rgba(0,0,0,0) 100%); }
.cat-preview-card-copy { position: absolute; z-index: 1; top: 12px; left: 12px; right: 12px; }
.cat-preview-card-copy strong { display: block; overflow: hidden; font-size: 17px; font-weight: 850; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.cat-preview-card-copy small { display: block; max-width: 72%; margin-top: 4px; color: #dcdfdb; font-size: 10px; line-height: 1.3; }
.cat-preview-card em { display: none; position: absolute; z-index: 1; right: 10px; bottom: 8px; color: #9aa19d; font-size: 10px; font-style: normal; font-weight: 700; }
.cat-preview-card.is-empty em { display: block; }
.cat-preview-circle-row { display: grid; justify-items: center; gap: 6px; padding: 12px 8px 10px; border-radius: 12px; background: #0b0d0d; }
.cat-preview-circle,
.dash-cat-circle {
  display: grid; overflow: hidden; place-items: center; width: 55px; height: 55px; border: 1px solid #484c49; border-radius: 50%;
  color: #fff; background: #101211;
}
.cat-preview-circle img.is-photo,
.dash-cat-circle img.is-photo { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.cat-preview-circle img.is-icon,
.dash-cat-circle img.is-icon { width: 26px; height: 26px; object-fit: contain; mix-blend-mode: screen; }
.cat-preview-circle svg,
.dash-cat-circle svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.cat-preview-circle-label { max-width: 100%; overflow: hidden; color: #aaa9a5; font-size: 10px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.category-circle-reset { justify-self: start; padding: 0; border: 0; color: #1a7f7a; background: none; font: inherit; font-size: 12px; font-weight: 700; text-decoration: underline; cursor: pointer; }
.dash-cat-circle { position: absolute; left: 10px; bottom: 10px; width: 44px; height: 44px; box-shadow: 0 2px 8px #0005; font-style: normal; }
.dash-cat-circle img.is-icon { width: 21px; height: 21px; }
.dash-cat-circle svg { width: 20px; height: 20px; }
@media (max-width: 560px) {
  .category-image-fields { grid-template-columns: 1fr; }
}
