/* ================================================================
   CANTINA HAUS — DESIGN SYSTEM CSS
   Two-colour: Obsidian (#0A0908) + Dune (#F2EBE2)
   Accent: Ember (#C4622D) — CTAs only
   Fonts: Bricolage Grotesque (display) + DM Sans (body)
   ================================================================ */
:root{--obsidian:#0A0908;--obs-90:#1A1816;--obs-80:#2A2724;--obs-60:#4A4642;--obs-40:#7A7571;--obs-20:#C0BAB5;--dune:#F2EBE2;--dune-d:#E3D9CD;--dune-dd:#C9BFB4;--ember:#C4622D;--ember-l:#D97847;--ember-d:#A34E22;--ember-ghost:rgba(196,98,45,.12);--success:#2E7D52;--success-bg:rgba(46,125,82,.10);--warning:#B07F20;--warning-bg:rgba(176,127,32,.10);--error:#C0392B;--error-bg:rgba(192,57,43,.10);--info-bg:rgba(10,9,8,.06);--font-d:'Bricolage Grotesque',sans-serif;--font-b:'DM Sans',sans-serif;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--sh-sm:0 1px 3px rgba(10,9,8,.08),0 1px 2px rgba(10,9,8,.06);--sh-md:0 4px 16px rgba(10,9,8,.10),0 2px 6px rgba(10,9,8,.06);--sh-lg:0 12px 40px rgba(10,9,8,.14),0 4px 12px rgba(10,9,8,.08);--sh-panel:0 24px 64px rgba(10,9,8,.18);--ease:cubic-bezier(.22,1,.36,1)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);background:#F7F3EF;color:var(--obsidian);-webkit-font-smoothing:antialiased;min-height:100vh}
/* BUTTONS */
.btn{font-family:var(--font-b);font-weight:600;font-size:.85rem;letter-spacing:-.01em;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.375rem;border-radius:var(--r-md);transition:all 200ms var(--ease);text-decoration:none;white-space:nowrap;vertical-align:middle;justify-content:center}
.btn-primary{background:var(--obsidian);color:var(--dune);padding:.65rem 1.375rem}.btn-primary:hover{background:var(--obs-80);transform:translateY(-1px);box-shadow:var(--sh-md)}.btn-primary:active{transform:none;box-shadow:none}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-ember{background:var(--ember);color:#fff;padding:.65rem 1.375rem}.btn-ember:hover{background:var(--ember-d);transform:translateY(-1px);box-shadow:0 6px 20px rgba(196,98,45,.28)}
.btn-ghost{background:transparent;color:var(--obsidian);padding:.6rem 1.25rem;border:1.5px solid var(--dune-d)}.btn-ghost:hover{background:var(--dune);border-color:var(--dune-dd)}
.btn-danger{background:var(--error-bg);color:var(--error);padding:.6rem 1.25rem;border:1.5px solid rgba(192,57,43,.2)}.btn-danger:hover{background:rgba(192,57,43,.18)}
.btn-sm{padding:.38rem .75rem;font-size:.76rem}.btn-lg{padding:.875rem 2rem;font-size:.95rem}.btn-full{width:100%;padding:.875rem}
.btn-icon{width:34px;height:34px;padding:0;border:1.5px solid var(--dune-d);background:transparent;color:var(--obs-60);border-radius:var(--r-sm)}.btn-icon:hover{background:var(--dune-d);color:var(--obsidian)}.btn-icon.danger{color:var(--error);border-color:rgba(192,57,43,.25)}.btn-icon.danger:hover{background:var(--error-bg)}
/* FORMS */
.form-group{margin-bottom:.875rem}
.form-label{display:block;font-size:.72rem;font-weight:600;color:var(--obs-60);letter-spacing:.05em;text-transform:uppercase;margin-bottom:.35rem}.form-label .req{color:var(--ember)}
.form-input,.form-select,.form-textarea{width:100%;background:var(--dune);border:1.5px solid var(--dune-d);color:var(--obsidian);border-radius:var(--r-md);padding:.7rem .875rem;font-family:var(--font-b);font-size:.875rem;transition:border-color 200ms,box-shadow 200ms;outline:none;-webkit-appearance:none}
.form-input::placeholder,.form-textarea::placeholder{color:var(--obs-20)}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--obsidian);box-shadow:0 0 0 3px rgba(10,9,8,.07)}
.form-input.is-error,.form-select.is-error{border-color:var(--error);box-shadow:0 0 0 3px var(--error-bg)}.form-input.is-ok{border-color:var(--success)}
.form-textarea{resize:vertical;min-height:80px}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%237A7571' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem;cursor:pointer}
.field-hint{font-size:.72rem;color:var(--obs-40);margin-top:.3rem}.field-error{font-size:.72rem;color:var(--error);margin-top:.3rem;font-weight:500}
.checkbox-row{display:flex;align-items:center;gap:.625rem;padding:.5rem 0}
.checkbox-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--obsidian);cursor:pointer;flex-shrink:0}
.checkbox-label{font-size:.85rem;font-weight:500;color:var(--obsidian);cursor:pointer}.checkbox-hint{font-size:.73rem;color:var(--obs-40);margin-left:auto}
/* BADGES */
.badge{display:inline-flex;align-items:center;gap:.28rem;padding:.2rem .6rem;border-radius:999px;font-size:.65rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.badge-pending{background:var(--warning-bg);color:var(--warning)}.badge-preparing{background:rgba(37,99,235,.10);color:#1D4ED8}.badge-served{background:var(--success-bg);color:var(--success)}.badge-cancelled{background:var(--error-bg);color:var(--error)}.badge-active{background:var(--success-bg);color:var(--success)}.badge-inactive{background:var(--info-bg);color:var(--obs-40)}.badge-featured{background:var(--ember-ghost);color:var(--ember-d)}
/* FLASH */
.flash{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;border-radius:var(--r-md);font-size:.83rem;font-weight:500;margin-bottom:1.25rem}
.flash svg{width:15px;height:15px;flex-shrink:0}.flash-close{margin-left:auto;background:none;border:none;cursor:pointer;color:currentColor;opacity:.6;font-size:1.1rem;line-height:1;padding:0}.flash-close:hover{opacity:1}
.flash-ok{background:var(--success-bg);border:1px solid rgba(46,125,82,.2);color:var(--success)}.flash-err{background:var(--error-bg);border:1px solid rgba(192,57,43,.2);color:var(--error)}
/* ADMIN SHELL */
.admin-shell{display:flex;min-height:100vh;background:var(--dune)}
.admin-sb{width:252px;background:var(--obsidian);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto}
.sb-logo{padding:1.25rem;border-bottom:1px solid var(--obs-80);display:flex;align-items:center;gap:.625rem;text-decoration:none}
.sb-logo-mark{width:30px;height:30px;background:var(--ember);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sb-logo-mark svg{width:15px;height:15px;color:#fff}
.sb-logo-name{font-family:var(--font-d);font-size:.95rem;font-weight:700;letter-spacing:-.025em;color:var(--dune);line-height:1;display:block}.sb-logo-sub{font-size:.58rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--obs-40);display:block;margin-top:2px}
.sb-nav{flex:1;padding:.875rem .75rem;display:flex;flex-direction:column;gap:1px;overflow-y:auto}
.sb-sec{font-size:.58rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--obs-60);padding:.875rem .625rem .375rem}
.sb-link{display:flex;align-items:center;gap:.6rem;padding:.58rem .75rem;border-radius:var(--r-sm);font-size:.81rem;font-weight:500;color:var(--obs-40);text-decoration:none;transition:all 180ms var(--ease);border:none;background:transparent;width:100%;text-align:left;cursor:pointer}
.sb-link svg{width:15px;height:15px;flex-shrink:0;opacity:.65;transition:opacity 180ms}
.sb-link:hover{background:var(--obs-80);color:var(--obs-20)}.sb-link:hover svg{opacity:1}
.sb-link.active{background:rgba(196,98,45,.14);color:var(--ember-l);font-weight:600}.sb-link.active svg{opacity:1;color:var(--ember-l)}
.sb-badge{margin-left:auto;background:var(--ember);color:#fff;font-size:.6rem;font-weight:700;padding:.15rem .42rem;border-radius:999px}
.sb-footer{padding:.875rem 1.25rem;border-top:1px solid var(--obs-80)}
.sb-user{display:flex;align-items:center;gap:.625rem}.sb-avatar{width:30px;height:30px;background:var(--obs-80);border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--dune);flex-shrink:0}
.sb-uname{font-size:.78rem;font-weight:600;color:var(--obs-20)}.sb-urole{font-size:.63rem;color:var(--obs-60)}
.sb-logout{width:26px;height:26px;background:transparent;border:none;cursor:pointer;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--obs-60);transition:all 180ms;margin-left:auto;text-decoration:none}.sb-logout:hover{background:var(--obs-80);color:#f87171}.sb-logout svg{width:14px;height:14px}
#sb-overlay{display:none;position:fixed;inset:0;background:rgba(10,9,8,.55);z-index:998}
#sb-toggle{display:none;position:fixed;top:.75rem;left:.875rem;z-index:1000;width:36px;height:36px;background:var(--obsidian);border:none;border-radius:var(--r-sm);cursor:pointer;align-items:center;justify-content:center;color:var(--dune);box-shadow:var(--sh-md)}
@media(max-width:900px){.admin-sb{position:fixed;top:0;left:0;height:100vh;z-index:999;transform:translateX(-100%);transition:transform 320ms var(--ease)}.admin-sb.open{transform:none}#sb-overlay.open{display:block}#sb-toggle{display:flex}.admin-main{margin-left:0!important}}
.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}
.admin-topbar{background:var(--dune);border-bottom:1px solid var(--dune-d);padding:.875rem 1.75rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.admin-topbar h1{font-family:var(--font-d);font-size:1.25rem;font-weight:700;letter-spacing:-.03em;color:var(--obsidian)}.topbar-sub{font-size:.76rem;color:var(--obs-40);margin-top:.1rem}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}
.admin-content{flex:1;padding:1.75rem;background:var(--dune)}
/* STAT CARDS */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:.875rem;margin-bottom:1.75rem}
.stat-card{background:var(--dune);border:1px solid var(--dune-d);border-radius:var(--r-lg);padding:1.125rem 1.375rem}
.stat-card.dark{background:var(--obsidian);border-color:var(--obsidian)}
.stat-eyebrow{font-size:.67rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--obs-40);margin-bottom:.625rem;display:flex;align-items:center;justify-content:space-between}.stat-card.dark .stat-eyebrow{color:var(--obs-60)}
.stat-val{font-family:var(--font-d);font-size:2rem;font-weight:800;letter-spacing:-.045em;color:var(--obsidian);line-height:1}.stat-card.dark .stat-val{color:var(--dune)}
.stat-lbl{font-size:.75rem;color:var(--obs-40);margin-top:.25rem}.stat-card.dark .stat-lbl{color:var(--obs-60)}
.stat-trend{display:inline-flex;align-items:center;gap:.2rem;font-size:.67rem;font-weight:700;padding:.18rem .45rem;border-radius:999px}
.trend-up{background:var(--success-bg);color:var(--success)}.trend-warn{background:var(--warning-bg);color:var(--warning)}
/* ADMIN CARDS */
.ac{background:var(--dune);border:1px solid var(--dune-d);border-radius:var(--r-lg);overflow:hidden;margin-bottom:1.375rem}.ac:last-child{margin-bottom:0}
.ac-hd{display:flex;align-items:center;padding:1rem 1.375rem;border-bottom:1px solid var(--dune-d);gap:.75rem}.ac-hd h2{font-family:var(--font-d);font-size:.95rem;font-weight:700;letter-spacing:-.02em;color:var(--obsidian)}.ac-hd-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.ac-body{padding:1.375rem}
/* TABLE */
.at{width:100%;border-collapse:collapse;font-size:.81rem}.at thead tr{background:var(--dune-d)}
.at th{text-align:left;padding:.625rem 1rem;font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--obs-40);white-space:nowrap;border-bottom:1px solid var(--dune-dd)}.at th:first-child{padding-left:1.375rem}.at th:last-child{padding-right:1.375rem}
.at td{padding:.8rem 1rem;border-bottom:1px solid var(--dune-d);vertical-align:middle;color:var(--obs-60)}.at td:first-child{padding-left:1.375rem}.at td:last-child{padding-right:1.375rem}.at tr:last-child td{border-bottom:none}.at tr:hover td{background:rgba(10,9,8,.015)}
.td-p{font-weight:600;color:var(--obsidian)!important}.td-mono{font-family:monospace;font-size:.78rem}.td-muted{font-size:.75rem;color:var(--obs-40)!important}
.at-actions{display:flex;gap:.375rem;align-items:center}
/* FILTER TABS */
.ftabs{display:flex;gap:.35rem;flex-wrap:wrap}
.ftab{font-family:var(--font-b);font-size:.76rem;font-weight:600;background:transparent;border:1.5px solid var(--dune-d);color:var(--obs-60);border-radius:999px;padding:.33rem .8rem;cursor:pointer;transition:all 180ms var(--ease);text-decoration:none}.ftab:hover{border-color:var(--obs-20);color:var(--obsidian)}.ftab.active{background:var(--obsidian);color:var(--dune);border-color:var(--obsidian)}
.live-dot{display:inline-flex;align-items:center;gap:.375rem;font-size:.7rem;font-weight:600;color:var(--obs-40)}.live-dot span{width:6px;height:6px;background:var(--success);border-radius:50%;animation:pulsedot 2s ease-in-out infinite;flex-shrink:0}@keyframes pulsedot{0%,100%{opacity:1}50%{opacity:.3}}
.empty-state{padding:3.5rem 2rem;text-align:center}.es-icon{font-size:2.75rem;opacity:.22;margin-bottom:.875rem}.es-title{font-family:var(--font-d);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--obsidian);margin-bottom:.35rem}.es-sub{font-size:.82rem;color:var(--obs-40);line-height:1.5}
/* SETTINGS */
.settings-grid{display:grid;grid-template-columns:210px 1fr;gap:1.75rem;align-items:start}@media(max-width:700px){.settings-grid{grid-template-columns:1fr}}
.settings-nav{display:flex;flex-direction:column;gap:1px}.sn-link{display:block;padding:.55rem .75rem;border-radius:var(--r-sm);font-size:.81rem;font-weight:500;color:var(--obs-60);text-decoration:none;cursor:pointer;background:transparent;border:none;width:100%;text-align:left;transition:all 180ms}.sn-link:hover{background:var(--dune-d);color:var(--obsidian)}.sn-link.active{background:var(--obsidian);color:var(--dune);font-weight:600}
.sp{background:var(--dune);border:1px solid var(--dune-d);border-radius:var(--r-lg);overflow:hidden;margin-bottom:1.25rem}.sp-hd{padding:1rem 1.375rem;border-bottom:1px solid var(--dune-d)}.sp-hd h3{font-family:var(--font-d);font-size:.92rem;font-weight:700;letter-spacing:-.02em;color:var(--obsidian)}.sp-hd p{font-size:.75rem;color:var(--obs-40);margin-top:.2rem;line-height:1.5}.sp-body{padding:1.375rem;display:flex;flex-direction:column;gap:.875rem}.sp-ft{padding:.875rem 1.375rem;border-top:1px solid var(--dune-d);display:flex;justify-content:flex-end;gap:.5rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}@media(max-width:480px){.grid2{grid-template-columns:1fr}}
.upload-zone{border:2px dashed var(--dune-dd);border-radius:var(--r-lg);padding:2rem;text-align:center;cursor:pointer;transition:all 200ms var(--ease)}.upload-zone:hover{border-color:var(--obs-40);background:var(--dune-d)}.uz-icon{font-size:1.75rem;margin-bottom:.625rem}.uz-title{font-size:.85rem;font-weight:600;color:var(--obsidian);margin-bottom:.25rem}.uz-sub{font-size:.75rem;color:var(--obs-40)}
.img-preview{display:flex;align-items:center;gap:1.25rem;padding:.875rem;background:var(--dune-d);border-radius:var(--r-lg);margin-bottom:.875rem}.img-preview-thumb{width:60px;height:60px;background:var(--dune-dd);border-radius:var(--r-md);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.img-preview-thumb img{width:100%;height:100%;object-fit:cover}.img-preview-name{font-size:.82rem;font-weight:600;color:var(--obsidian);margin-bottom:.2rem}.img-preview-meta{font-size:.73rem;color:var(--obs-40)}
/* MENU ITEM ADMIN CARDS */
.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.iac{background:var(--dune);border:1px solid var(--dune-d);border-radius:var(--r-lg);overflow:hidden;transition:all 220ms var(--ease)}.iac:hover{border-color:var(--obs-20);box-shadow:var(--sh-md)}
.iac-img{height:155px;background:var(--dune-d);display:flex;align-items:center;justify-content:center;font-size:2.25rem;position:relative;overflow:hidden}.iac-img img{width:100%;height:100%;object-fit:cover}.iac-badges{position:absolute;top:.5rem;left:.5rem;display:flex;gap:.3rem;flex-wrap:wrap}
.iac-body{padding:.875rem 1rem}.iac-cat{font-size:.63rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--obs-40);margin-bottom:.22rem}.iac-name{font-family:var(--font-d);font-size:.95rem;font-weight:700;letter-spacing:-.02em;color:var(--obsidian);margin-bottom:.22rem;line-height:1.3}.iac-desc{font-size:.75rem;color:var(--obs-40);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.625rem}.iac-foot{display:flex;align-items:center;justify-content:space-between}.iac-price{font-family:var(--font-d);font-size:1.05rem;font-weight:700;letter-spacing:-.025em;color:var(--obsidian)}
/* PROMO CARDS */
.deal-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.deal-card{background:var(--dune);border:1px solid var(--dune-d);border-radius:var(--r-lg);padding:1.125rem 1.25rem;display:flex;flex-direction:column;gap:.625rem;transition:all 220ms var(--ease)}.deal-card:hover{border-color:var(--obs-20);box-shadow:var(--sh-sm)}.deal-card.inactive{opacity:.65;border-style:dashed}
.deal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.deal-badge-text{display:inline-block;background:var(--ember-ghost);border:1px solid rgba(196,98,45,.2);color:var(--ember-d);font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.18rem .45rem;border-radius:var(--r-sm)}
.deal-name{font-family:var(--font-d);font-size:.95rem;font-weight:700;letter-spacing:-.02em;color:var(--obsidian);line-height:1.3}.deal-desc-text{font-size:.77rem;color:var(--obs-40);line-height:1.5}
.deal-prices{display:flex;align-items:baseline;gap:.5rem}.deal-orig{font-size:.8rem;color:var(--obs-40);text-decoration:line-through}.deal-price{font-family:var(--font-d);font-size:1.2rem;font-weight:700;color:var(--obsidian);letter-spacing:-.025em}.deal-discount{background:var(--success-bg);color:var(--success);font-size:.67rem;font-weight:700;padding:.18rem .45rem;border-radius:999px}
.deal-meta-row{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;color:var(--obs-40)}.deal-actions{display:flex;gap:.35rem}
/* CATEGORIES */
.cat-list{display:flex;flex-direction:column}.cat-row{display:flex;align-items:center;gap:1rem;padding:.875rem 1.375rem;border-bottom:1px solid var(--dune-d);transition:background 180ms}.cat-row:last-child{border-bottom:none}.cat-row:hover{background:rgba(10,9,8,.02)}
.cat-drag{color:var(--obs-20);cursor:grab;flex-shrink:0}.cat-ico{width:34px;height:34px;background:var(--dune-d);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0}
.cat-name{font-weight:600;font-size:.85rem;color:var(--obsidian)}.cat-slug{font-family:monospace;font-size:.72rem;color:var(--obs-40);margin-top:.1rem}.cat-count{font-size:.72rem;color:var(--obs-60);margin-left:auto}.cat-actions{display:flex;gap:.35rem}
/* ADMIN USERS */
.au-row{display:flex;align-items:center;gap:.875rem;padding:.875rem 1.375rem;border-bottom:1px solid var(--dune-d);transition:background 180ms}.au-row:last-child{border-bottom:none}.au-row:hover{background:rgba(10,9,8,.02)}
.au-avatar{width:36px;height:36px;background:var(--obs-80);border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:var(--dune);flex-shrink:0}.au-name{font-weight:600;font-size:.85rem;color:var(--obsidian)}.au-email{font-size:.75rem;color:var(--obs-40);margin-top:.1rem}.au-role{margin-left:auto;display:flex;align-items:center;gap:.625rem}
/* QUICK ACTIONS */
.qa-list{display:flex;flex-direction:column}.qa-item{display:flex;align-items:center;gap:.875rem;padding:.8rem 1.375rem;text-decoration:none;transition:background 180ms;border-bottom:1px solid var(--dune-d);cursor:pointer}.qa-item:last-child{border-bottom:none}.qa-item:hover{background:rgba(10,9,8,.02)}
.qa-ico{width:34px;height:34px;background:var(--dune-d);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.qa-ico svg{width:15px;height:15px;color:var(--obs-60)}.qa-title{font-size:.83rem;font-weight:600;color:var(--obsidian)}.qa-sub{font-size:.72rem;color:var(--obs-40);margin-top:.1rem}.qa-arr{margin-left:auto;color:var(--obs-20)}.qa-arr svg{width:13px;height:13px}
/* DASHBOARD LAYOUT */
.dash-cols{display:grid;grid-template-columns:1fr 280px;gap:1.375rem}@media(max-width:1000px){.dash-cols{grid-template-columns:1fr}}.dash-side{display:flex;flex-direction:column;gap:1.25rem}
/* RECEIPT */
.receipt-page{background:#fff;min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem}
.receipt{width:320px;font-family:'Courier New',monospace;font-size:.82rem}.rcpt-hd{text-align:center;padding-bottom:.875rem;border-bottom:1px dashed #ccc;margin-bottom:.875rem}.rcpt-name{font-family:var(--font-d);font-size:1.15rem;font-weight:800;color:var(--obsidian);letter-spacing:-.03em}.rcpt-addr{font-size:.7rem;color:var(--obs-40);margin-top:.2rem}.rcpt-meta{font-size:.7rem;color:var(--obs-40);margin-top:.625rem}.rcpt-items{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.875rem}.rcpt-row{display:flex;justify-content:space-between;font-size:.8rem}.rcpt-qty{color:var(--obs-40);margin-right:.3rem}.rcpt-totals{border-top:1px dashed #ccc;padding-top:.75rem;display:flex;flex-direction:column;gap:.3rem}.rcpt-sub-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--obs-60)}.rcpt-total-row{display:flex;justify-content:space-between;font-size:.98rem;font-weight:700;color:var(--obsidian);margin-top:.2rem}.rcpt-ft{text-align:center;margin-top:1rem;font-size:.68rem;color:var(--obs-40)}
@media print{body{background:#fff}.receipt-page{padding:0}.no-print{display:none!important}}
/* CUSTOMER MENU */
.menu-bg{background:var(--dune);min-height:100vh}
.ch-nav{position:sticky;top:0;z-index:100;background:rgba(242,235,226,.94);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border-bottom:1px solid var(--dune-d);height:62px;display:flex;align-items:center;padding:0 1.375rem;gap:.875rem}
.ch-logo{display:flex;align-items:center;gap:.55rem;text-decoration:none;flex-shrink:0}.ch-logo-mark{width:54px;height:54px;background:var(--obsidian);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ch-logo-mark svg{width:17px;height:17px}.ch-logo-name{font-family:var(--font-d);font-size:1.8rem;font-weight:700;letter-spacing:-.025em;color:var(--obsidian);line-height:1}.ch-logo-tag{display:block;font-size:1rem;font-weight:600;color:var(--obs-60);letter-spacing:.1em;text-transform:uppercase;margin-top:1px}
.ch-logo-img{height:56px;max-width:120px;object-fit:contain;display:block;border-radius:4px}.ch-spacer{flex:1}
.table-chip{display:flex;align-items:center;gap:.3rem;background:var(--info-bg);border:1px solid var(--dune-d);border-radius:999px;padding:.28rem .7rem;font-size:.72rem;font-weight:600;color:var(--obs-60)}.table-chip strong{color:var(--obsidian)}
.cart-btn{position:relative;width:42px;height:42px;background:var(--obsidian);border:none;border-radius:var(--r-md);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--dune);transition:all 200ms var(--ease);flex-shrink:0}.cart-btn:hover{background:var(--obs-80);transform:scale(1.04)}.cart-btn svg{width:19px;height:19px}.cart-badge{position:absolute;top:-4px;right:-4px;width:17px;height:17px;background:var(--ember);border-radius:999px;font-size:.62rem;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid var(--dune)}
/* PROMO STRIP */
.promo-strip{background:var(--obsidian);padding:1rem 1.375rem}.promo-scroll{display:flex;gap:.875rem;overflow-x:auto;scrollbar-width:none;max-width:1200px;margin:0 auto}.promo-scroll::-webkit-scrollbar{display:none}
.promo-card{background:var(--obs-80);border:1px solid var(--obs-60);border-radius:var(--r-lg);padding:.875rem 1.125rem;min-width:210px;flex-shrink:0}.promo-pill{display:inline-flex;align-items:center;background:var(--ember-ghost);border:1px solid rgba(196,98,45,.25);color:var(--ember-l);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .48rem;border-radius:var(--r-sm);margin-bottom:.4rem}.promo-card-name{font-family:var(--font-d);font-size:.95rem;font-weight:700;color:var(--dune);letter-spacing:-.02em;line-height:1.25;margin-bottom:.25rem}.promo-card-desc{font-size:.72rem;color:var(--obs-40);margin-bottom:.375rem}.promo-prices{display:flex;align-items:baseline;gap:.4rem}.promo-orig{font-size:.75rem;color:var(--obs-60);text-decoration:line-through}.promo-deal{font-family:var(--font-d);font-size:1.15rem;font-weight:700;color:var(--ember-l);letter-spacing:-.025em}
/* FILTER BAR */
.fbar{background:var(--dune);border-bottom:1px solid var(--dune-d);overflow-x:auto;scrollbar-width:none}.fbar::-webkit-scrollbar{display:none}.fbar-inner{display:flex;gap:.35rem;padding:.625rem 1.375rem;width:max-content}
.cat-pill{font-family:var(--font-b);font-size:.78rem;font-weight:600;background:transparent;border:1.5px solid var(--dune-d);color:var(--obs-60);border-radius:999px;padding:.35rem .875rem;cursor:pointer;transition:all 180ms var(--ease);white-space:nowrap;display:flex;align-items:center;gap:.3rem}.cat-pill:hover{border-color:var(--obs-20);color:var(--obsidian)}.cat-pill.active{background:var(--obsidian);color:var(--dune);border-color:var(--obsidian)}
/* MENU GRID */
.menu-body{max-width:1200px;margin:0 auto;padding:1.75rem 1.375rem 6rem}.menu-sec{margin-bottom:2.75rem;transition:opacity .2s}.menu-sec[style*="display:none"]{margin-bottom:0}
.sec-head{display:flex;align-items:center;gap:.625rem;margin-bottom:1.125rem}.sec-ico{font-size:1.05rem;width:34px;height:34px;background:var(--dune-d);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sec-lbl{font-family:var(--font-d);font-size:1.15rem;font-weight:700;letter-spacing:-.025em;color:var(--obsidian)}.sec-rule{flex:1;height:1px;background:var(--dune-d)}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.875rem}
.mc{background:var(--dune);border:1px solid var(--dune-d);border-radius:var(--r-lg);overflow:hidden;transition:all 250ms var(--ease);cursor:pointer}.mc:hover{border-color:var(--obs-20);transform:translateY(-3px);box-shadow:var(--sh-lg)}
.mc-img{position:relative;aspect-ratio:4/3;background:var(--dune-d);overflow:hidden}.mc-img img{width:100%;height:100%;object-fit:cover;transition:transform 400ms var(--ease)}.mc:hover .mc-img img{transform:scale(1.04)}.mc-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.75rem}.mc-fade{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,9,8,.25) 0%,transparent 55%);pointer-events:none}.mc-feat{position:absolute;top:.5rem;left:.5rem;background:var(--obsidian);color:var(--dune);font-size:.61rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.25rem .55rem;border-radius:var(--r-sm)}
.mc-body{padding:.875rem 1rem}.mc-name{font-family:var(--font-d);font-size:.95rem;font-weight:700;letter-spacing:-.02em;color:var(--obsidian);margin-bottom:.25rem;line-height:1.3}.mc-desc{font-size:.76rem;color:var(--obs-40);line-height:1.5;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mc-foot{display:flex;align-items:center;justify-content:space-between}.mc-price{font-family:var(--font-d);font-size:1.05rem;font-weight:700;letter-spacing:-.025em;color:var(--obsidian)}.mc-add{width:34px;height:34px;background:var(--obsidian);color:var(--dune);border:none;border-radius:var(--r-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 180ms var(--ease);flex-shrink:0}.mc-add:hover{background:var(--ember);transform:scale(1.08)}.mc-add svg{width:15px;height:15px}.mc-add:disabled{opacity:.4;cursor:not-allowed;transform:none}
/* CART PANEL */
/* ─── CART OVERLAY ─── */
#cart-overlay{
  position:fixed;top:0;left:0;right:0;bottom:0;
  background:rgba(10,9,8,.5);
  z-index:9000;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s,visibility .3s;
}
#cart-overlay.open{opacity:1;visibility:visible}

/* ─── CART PANEL: right-side drawer on desktop, bottom-sheet on mobile ─── */
#cart-panel{
  position:fixed;
  top:0;right:0;
  width:400px;max-width:100vw;height:100vh;
  background:#F2EBE2;
  display:flex;flex-direction:column;
  transform:translateX(110%);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
  z-index:9001;
  box-shadow:-12px 0 48px rgba(10,9,8,.18);
  overflow:hidden;
}
#cart-panel.open{transform:translateX(0)!important}

@media(max-width:640px){
  #cart-panel{
    top:auto;bottom:0;left:0;right:0;
    width:100%;height:90vh;
    transform:translateY(110%);
    border-radius:20px 20px 0 0;
    box-shadow:0 -8px 48px rgba(10,9,8,.18);
  }
  #cart-panel.open{transform:translateY(0)!important}
}

.cart-drag-bar{display:none;padding:.625rem 0 0;justify-content:center;flex-shrink:0}
.cart-drag-handle{width:40px;height:4px;background:#C9BFB4;border-radius:999px}
@media(max-width:640px){.cart-drag-bar{display:flex}}

.cart-hd{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #E3D9CD;flex-shrink:0}
.cart-hd-left{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}
.cart-title{font-family:var(--font-d);font-size:1.1rem;font-weight:700;letter-spacing:-.025em;color:#0A0908}
.cart-tbl{font-size:.7rem;font-weight:600;color:#C4622D;background:rgba(196,98,45,.12);padding:.2rem .55rem;border-radius:999px}
.cart-close-btn{width:32px;height:32px;border:none;background:#E3D9CD;border-radius:8px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;color:#0A0908;flex-shrink:0;transition:background .15s}
.cart-close-btn:hover{background:#C9BFB4}

.cart-items-wrap{flex:0 0 auto;overflow-y:auto;padding:.875rem 1.25rem;max-height:38vh;min-height:60px;scrollbar-width:thin}
@media(max-width:640px){.cart-items-wrap{max-height:30vh}}
.cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;text-align:center;min-height:80px;color:#0A0908}

.ci{display:grid;grid-template-columns:1fr auto;gap:.5rem;padding:.7rem 0;border-bottom:1px solid #E3D9CD}
.ci:last-child{border-bottom:none}
.ci-name{font-weight:600;font-size:.85rem;color:#0A0908;margin-bottom:.2rem}
.ci-qty-row{display:flex;align-items:center;gap:.35rem;margin-top:.25rem}
.qb{width:24px;height:24px;background:#E3D9CD;border:none;cursor:pointer;border-radius:6px;font-size:.9rem;display:flex;align-items:center;justify-content:center;color:#0A0908;font-family:var(--font-b);transition:background .15s}
.qb:hover{background:#C9BFB4}
.qb:disabled{opacity:.35;cursor:not-allowed}
.qv{font-size:.85rem;font-weight:700;color:#0A0908;min-width:20px;text-align:center}
.ci-rm{width:22px;height:22px;background:none;border:none;cursor:pointer;color:#7A7571;display:flex;align-items:center;justify-content:center;transition:color .15s;border-radius:5px}
.ci-rm:hover{color:#C0392B}
.ci-rm svg{width:13px;height:13px}
.ci-price{font-family:var(--font-d);font-size:.95rem;font-weight:700;color:#0A0908;letter-spacing:-.02em}

.cart-form-wrap{flex:1;overflow-y:auto;padding:1rem 1.25rem 1.5rem;border-top:1px solid #E3D9CD;scrollbar-width:thin}
@media(max-width:640px){.cart-form-wrap{padding:.875rem 1.125rem 1.25rem}}

.cart-total-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75rem}
.cart-total-lbl{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#2A2724}
.cart-total-amt{font-family:var(--font-d);font-size:1.6rem;font-weight:800;letter-spacing:-.04em;color:#0A0908}
.cart-divider{border:none;border-top:1px solid #E3D9CD;margin-bottom:.875rem}

.cf-lbl{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#2A2724;margin-bottom:.3rem;margin-top:.75rem}
.cf-lbl:first-of-type,.cart-form-wrap>.cf-lbl:first-child{margin-top:0}
.cf-input{display:block;width:100%;background:#F2EBE2;border:1.5px solid #E3D9CD;border-radius:10px;padding:.65rem .875rem;font-family:var(--font-b);font-size:.875rem;color:#0A0908;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}
.cf-input::placeholder{color:#7A7571}
.cf-input:focus{border-color:#0A0908;box-shadow:0 0 0 3px rgba(10,9,8,.07)}
.cf-input.is-error{border-color:#C0392B}

.ot-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;margin-top:.3rem}
.ot-btn{padding:.55rem .25rem;background:#E3D9CD;border:1.5px solid transparent;border-radius:10px;cursor:pointer;font-family:var(--font-b);font-size:.72rem;font-weight:600;color:#4A4642;transition:all .18s;text-align:center}
.ot-btn:hover{background:#F2EBE2;border-color:#C9BFB4;color:#0A0908}
.ot-btn.active{background:#F2EBE2;border-color:#0A0908;color:#0A0908}

.pay-row{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin-top:.3rem}
.pay-btn{padding:.55rem .5rem;background:#E3D9CD;border:1.5px solid transparent;border-radius:10px;cursor:pointer;font-family:var(--font-b);font-size:.78rem;font-weight:600;color:#4A4642;transition:all .18s;text-align:center}
.pay-btn:hover{background:#F2EBE2;border-color:#C9BFB4;color:#0A0908}
.pay-btn.active{background:#F2EBE2;border-color:#0A0908;color:#0A0908}

.place-order-btn{display:block;width:100%;margin-top:1rem;padding:.9rem;background:#0A0908;color:#F2EBE2;border:none;border-radius:12px;font-family:var(--font-b);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,transform .15s}
.place-order-btn:hover{background:#2A2724;transform:translateY(-1px)}
.place-order-btn:active{transform:none}
.place-order-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

}
.total-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem}.total-lbl{font-size:.75rem;font-weight:600;color:var(--obs-60);letter-spacing:.05em;text-transform:uppercase}.total-amt{font-family:var(--font-d);font-size:1.5rem;font-weight:800;letter-spacing:-.04em;color:var(--obsidian)}
.order-type-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.3rem}.ot-tab{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.55rem .3rem;background:var(--dune-d);border:1.5px solid transparent;border-radius:var(--r-md);cursor:pointer;font-family:var(--font-b);font-size:.7rem;font-weight:600;color:var(--obs-60);transition:all 180ms var(--ease)}.ot-tab .ot-ico{font-size:1rem}.ot-tab:hover{background:var(--dune);border-color:var(--dune-dd);color:var(--obsidian)}.ot-tab.active{background:var(--dune);border-color:var(--obsidian);color:var(--obsidian)}
.payment-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.pay-tab{padding:.5rem;background:var(--dune-d);border:1.5px solid transparent;border-radius:var(--r-md);cursor:pointer;font-family:var(--font-b);font-size:.72rem;font-weight:600;color:var(--obs-60);transition:all 180ms var(--ease);text-align:center}.pay-tab:hover{background:var(--dune);border-color:var(--dune-dd);color:var(--obsidian)}.pay-tab.active{background:var(--dune);border-color:var(--obsidian);color:var(--obsidian)}
.hidden{display:none!important}
/* ITEM PANEL */
#item-overlay{position:fixed;inset:0;background:rgba(10,9,8,.52);opacity:0;pointer-events:none;transition:opacity 300ms;z-index:1001;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}#item-overlay.open{opacity:1;pointer-events:all}
/* Desktop: centered modal */
#item-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-40%) scale(.96);width:100%;max-width:540px;max-height:88vh;background:var(--dune);border-radius:var(--r-xl);border:1px solid var(--dune-d);box-shadow:var(--sh-panel);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:transform 320ms var(--ease),opacity 280ms;z-index:1002;overflow:hidden}
#item-panel.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:all}
/* Mobile: bottom sheet */
@media(max-width:700px){
  #item-panel{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;max-height:94vh;border-radius:var(--r-xl) var(--r-xl) 0 0;border-bottom:none;transform:translateY(100%);opacity:1;pointer-events:none}
  #item-panel.open{transform:translateY(0);opacity:1;pointer-events:all}
}
.ip-handle{padding:.625rem 0 0;display:none;justify-content:center;flex-shrink:0}.ip-handle-bar{width:38px;height:4px;background:var(--dune-dd);border-radius:999px}@media(max-width:700px){.ip-handle{display:flex}}.ip-img{height:220px;background:var(--dune-d);display:flex;align-items:center;justify-content:center;font-size:4.5rem;flex-shrink:0;overflow:hidden;position:relative}.ip-img img{width:100%;height:100%;object-fit:cover}@media(min-width:701px){.ip-img{height:200px}}.ip-back{position:absolute;top:.75rem;left:.75rem;width:34px;height:34px;background:rgba(242,235,226,.92);backdrop-filter:blur(8px);border:none;border-radius:999px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--obsidian);transition:all 180ms;z-index:2}.ip-back:hover{background:var(--dune)}.ip-back svg{width:14px;height:14px}@media(min-width:701px){.ip-back{top:.875rem;right:.875rem;left:auto}}
.ip-body{padding:1.25rem 1.375rem;overflow-y:auto;flex:1}.ip-cat{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ember);margin-bottom:.375rem}.ip-name{font-family:var(--font-d);font-size:1.4rem;font-weight:800;letter-spacing:-.035em;color:var(--obsidian);margin-bottom:.5rem}.ip-desc{font-size:.85rem;color:var(--obs-60);line-height:1.7}
.ip-foot{padding:1rem 1.375rem;border-top:1px solid var(--dune-d);display:flex;align-items:center;gap:.875rem;flex-shrink:0}.ip-price{font-family:var(--font-d);font-size:1.2rem;font-weight:800;color:var(--obsidian);letter-spacing:-.03em;flex-shrink:0}
.stepper{display:flex;align-items:center;gap:.3rem;background:var(--dune-d);border-radius:var(--r-md);padding:.2rem}.step-btn{width:30px;height:30px;background:transparent;border:none;cursor:pointer;border-radius:var(--r-sm);font-size:1rem;display:flex;align-items:center;justify-content:center;color:var(--obsidian);transition:background 150ms;font-family:var(--font-b);font-weight:600}.step-btn:hover{background:var(--dune)}.step-btn:disabled{opacity:.3;cursor:not-allowed}.step-val{font-family:var(--font-d);font-size:.95rem;font-weight:700;color:var(--obsidian);min-width:26px;text-align:center}
/* FAB */
#mobile-fab{position:fixed;bottom:1.375rem;right:1.375rem;z-index:800}.fab{width:54px;height:54px;background:var(--obsidian);color:var(--dune);border:none;cursor:pointer;border-radius:999px;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-lg);transition:all 200ms var(--ease);position:relative}.fab:hover{background:var(--obs-80);transform:scale(1.06)}.fab svg{width:21px;height:21px}.fab-badge{position:absolute;top:-4px;right:-4px;width:19px;height:19px;background:var(--ember);color:#fff;border-radius:999px;font-size:.64rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--dune)}
/* TOAST */
#toast-container{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:5000;display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:none}.toast{background:var(--obsidian);color:#fff;padding:.625rem 1.125rem .625rem .875rem;border-radius:999px;font-size:.78rem;font-weight:500;display:flex;align-items:center;gap:.5rem;box-shadow:var(--sh-lg);white-space:nowrap;max-width:calc(100vw - 2rem);animation:toastIn .28s var(--ease) both,toastOut .28s var(--ease) 2.4s both}.toast-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.toast.success .toast-dot{background:#4ade80}.toast.error .toast-dot{background:#f87171}.toast.info .toast-dot{background:var(--ember-l)}@keyframes toastIn{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{to{opacity:0;transform:translateY(-8px) scale(.96)}}
/* ORDER MODAL */
#order-modal{position:fixed;inset:0;background:rgba(10,9,8,.52);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:3000;display:flex;align-items:center;justify-content:center;padding:1.25rem;opacity:0;pointer-events:none;transition:opacity 280ms}#order-modal.open{opacity:1;pointer-events:all}
.modal-card{background:var(--dune);border:1px solid var(--dune-d);border-radius:var(--r-xl);padding:2rem;max-width:380px;width:100%;text-align:center;box-shadow:var(--sh-panel);transform:scale(.94) translateY(12px);transition:transform 300ms var(--ease)}#order-modal.open .modal-card{transform:none}.modal-icon{font-size:2.25rem;margin-bottom:.875rem}.modal-title{font-family:var(--font-d);font-size:1.3rem;font-weight:800;letter-spacing:-.03em;color:var(--obsidian);margin-bottom:.5rem}.modal-ord{display:inline-block;font-family:monospace;font-size:1rem;font-weight:700;color:var(--obsidian);background:var(--dune-d);padding:.35rem .875rem;border-radius:var(--r-md);margin-bottom:.75rem}.modal-msg{font-size:.85rem;color:var(--obs-60);line-height:1.6;margin-bottom:1.25rem}
/* LOGIN */
.login-page{min-height:100vh;background:var(--obsidian);display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden}.login-glow{position:absolute;top:0;left:50%;transform:translateX(-50%);width:600px;height:400px;background:radial-gradient(ellipse,rgba(196,98,45,.08) 0%,transparent 70%);pointer-events:none}
.login-card{background:var(--obs-90);border:1px solid var(--obs-80);border-radius:var(--r-xl);padding:2.25rem;width:100%;max-width:400px;position:relative}.login-logo{display:flex;align-items:center;gap:.7rem;margin-bottom:1.875rem}.login-logo-mark{width:38px;height:38px;background:var(--ember);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center}.login-logo-mark svg{width:19px;height:19px;color:#fff}.login-logo-name{font-family:var(--font-d);font-size:1.05rem;font-weight:700;letter-spacing:-.025em;color:var(--dune)}.login-logo-sub{font-size:.6rem;color:var(--obs-60);letter-spacing:.1em;text-transform:uppercase}
.login-h1{font-family:var(--font-d);font-size:1.625rem;font-weight:800;letter-spacing:-.035em;color:var(--dune);margin-bottom:.375rem}.login-sub{font-size:.82rem;color:var(--obs-40);margin-bottom:1.75rem}
.login-form-group{margin-bottom:.875rem}.login-lbl{font-size:.7rem;font-weight:600;color:var(--obs-40);letter-spacing:.07em;text-transform:uppercase;display:block;margin-bottom:.35rem}.login-inp{width:100%;background:var(--obs-80);border:1.5px solid var(--obs-60);color:var(--dune);border-radius:var(--r-md);padding:.7rem .875rem;font-family:var(--font-b);font-size:.875rem;outline:none;transition:border-color 200ms,box-shadow 200ms}.login-inp::placeholder{color:var(--obs-60)}.login-inp:focus{border-color:var(--ember);box-shadow:0 0 0 3px rgba(196,98,45,.10)}
.login-err{background:var(--error-bg);border:1px solid rgba(192,57,43,.25);color:#f87171;border-radius:var(--r-md);padding:.7rem .875rem;font-size:.8rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.login-err svg{flex-shrink:0}
.login-btn{background:var(--ember);color:#fff;font-family:var(--font-b);font-weight:600;font-size:.875rem;border:none;border-radius:var(--r-md);padding:.825rem;width:100%;cursor:pointer;transition:all 200ms var(--ease);margin-top:.625rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.login-btn:hover{background:var(--ember-d);transform:translateY(-1px);box-shadow:0 6px 20px rgba(196,98,45,.28)}.login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.login-footer{text-align:center;margin-top:1.5rem;font-size:.72rem;color:var(--obs-60)}
/* SPINNER + ANIMATION */
.spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spinning .65s linear infinite;display:inline-block;flex-shrink:0}@keyframes spinning{to{transform:rotate(360deg)}}
.appear{animation:appear .45s var(--ease) both}@keyframes appear{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--dune-d);border-radius:4px}

/* ================================================================
   MOBILE & RESPONSIVE IMPROVEMENTS (patch)
   ================================================================ */

/* Menu grid — 2 col on small tablets, 1 col on phones */
@media(max-width:640px){
  .menu-grid{grid-template-columns:repeat(2,1fr);gap:.625rem}
  .mc-img{aspect-ratio:1/1}
  .mc-name{font-size:.88rem}
  .mc-desc{display:none}
  .mc-price{font-size:.95rem}
  .menu-body{padding:1.25rem 1rem 5rem}
  .fbar-inner{padding:.5rem 1rem}
}
@media(max-width:380px){
  .menu-grid{grid-template-columns:1fr}
  .mc-img{aspect-ratio:4/3}
  .mc-desc{display:-webkit-box}
}

/* Cart panel — make sure form items are compact on small screens */
@media(max-width:640px){
  .cart-hd{padding:.875rem 1.125rem}
  .cart-items-list{padding:.625rem 1.125rem}
  .cart-ft{padding:.875rem 1.125rem}
  .total-amt{font-size:1.25rem}
  .order-type-tabs .ot-tab{font-size:.65rem;padding:.45rem .2rem}
  .payment-tabs .pay-tab{font-size:.68rem;padding:.4rem .25rem}
}

/* Promo strip — smaller on mobile */
@media(max-width:640px){
  .promo-strip{padding:.75rem 1rem}
  .promo-card{min-width:190px;padding:.75rem .875rem}
  .promo-card-name{font-size:.88rem}
  .promo-deal{font-size:1rem}
}

/* Nav — compact on small phones */
@media(max-width:380px){
  .ch-nav{padding:0 .875rem;gap:.5rem}
  .ch-logo-tag{display:none}
  .table-chip{display:none}
}

/* Admin sidebar mobile toggle button position with topbar */
@media(max-width:900px){
  .admin-topbar{padding-left:3.5rem}
}

/* Admin content mobile padding */
@media(max-width:900px){
  .admin-content{padding:1.25rem 1rem}
  .dash-cols{gap:1rem}
  .stat-grid{grid-template-columns:1fr 1fr;gap:.625rem}
  .stat-val{font-size:1.625rem}
}
@media(max-width:480px){
  .stat-grid{grid-template-columns:1fr 1fr}
  .at th,.at td{padding:.6rem .75rem;font-size:.75rem}
  .at th:first-child,.at td:first-child{padding-left:1rem}
  .at th:last-child,.at td:last-child{padding-right:1rem}
}

/* Item panel image — full width on all screens */
.ip-img img{width:100%;height:100%;object-fit:cover;display:block}

/* Ensure item panel footer always visible */
.ip-foot{position:sticky;bottom:0;background:var(--dune);z-index:2}

/* FAB — don't show on desktop, only mobile */
@media(min-width:641px){
  #mobile-fab{display:none!important}
}

/* Smooth appear for menu sections */
.menu-sec{transition:opacity .3s}

/* Better focus states for accessibility */
.mc:focus-visible{outline:2px solid var(--ember);outline-offset:2px}
.mc-add:focus-visible,.cart-btn:focus-visible,.cat-pill:focus-visible{outline:2px solid var(--ember);outline-offset:2px}

/* Order modal overlay click area */
#order-modal{cursor:pointer}
#order-modal .modal-card{cursor:default}

/* ─── ORDER CONFIRM MODAL ─── */
#order-modal{
  position:fixed;inset:0;
  background:rgba(10,9,8,.55);
  display:flex;align-items:center;justify-content:center;
  padding:1.25rem;
  z-index:9100;
  opacity:0;visibility:hidden;
  transition:opacity .28s,visibility .28s;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
#order-modal.open{opacity:1;visibility:visible}
.confirm-card{
  background:#F2EBE2;border:1px solid #E3D9CD;border-radius:24px;
  padding:2rem;max-width:380px;width:100%;text-align:center;
  box-shadow:0 24px 64px rgba(10,9,8,.18);
  transform:scale(.94) translateY(10px);
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
#order-modal.open .confirm-card{transform:none}
.confirm-title{font-family:var(--font-d);font-size:1.3rem;font-weight:800;letter-spacing:-.03em;color:#0A0908;margin-bottom:.5rem}
.confirm-num{font-family:monospace;font-size:1rem;font-weight:700;color:#0A0908;background:#E3D9CD;padding:.35rem .875rem;border-radius:8px;display:inline-block;margin-bottom:.75rem}
.confirm-msg{font-size:.85rem;color:#7A7571;line-height:1.6;margin-bottom:1.25rem}
.confirm-btn{display:block;width:100%;padding:.875rem;background:#0A0908;color:#F2EBE2;border:none;border-radius:12px;font-family:var(--font-b);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}
.confirm-btn:hover{background:#2A2724}

/* ─── SITE FOOTER ─── */
.site-footer{border-top:1px solid #E3D9CD;background:#F2EBE2;padding:2rem 1.5rem;margin-top:2rem}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.footer-logo-wrap{margin-bottom:.25rem;display:flex;align-items:center}
.footer-logo-img{height:40px;max-width:150px;object-fit:contain;display:block}
.footer-brand{font-family:var(--font-d);font-size:1rem;font-weight:700;letter-spacing:-.025em;color:#0A0908;margin-bottom:.25rem}
.footer-info{font-size:.8rem;color:#7A7571;margin-top:.15rem}
.footer-copy{font-size:.8rem;color:#7A7571}

/* ─── ITEM PANEL: ip-add-btn ─── */
.ip-add-btn{flex:1;padding:.825rem;background:#C4622D;color:#fff;border:none;border-radius:10px;font-family:var(--font-b);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s}
.ip-add-btn:hover{background:#A34E22}
.ip-add-btn:disabled{opacity:.5;cursor:not-allowed}
