:root{
  /* -------- Brand palette (warm, original — saffron + charcoal) -------- */
  --bg:            #FBF7F1;     /* warm cream page bg */
  --surface:       #FFFFFF;
  --surface-2:     #F4EEE4;     /* subtle warm section bg */
  --ink:           #1B1B1F;
  --ink-2:         #3A3A42;
  --muted:         #6B6B75;
  --line:          #E7DFD1;
  --brand:         #E23E2B;     /* saffron red */
  --brand-2:       #F59522;     /* amber highlight */
  --brand-ink:     #B02615;
  --gold:          #C9A227;
  --success:       #1D9C60;
  --success-bg:    #E3F5EB;
  --danger:        #D0323F;
  --egg:           #F0A93B;
  --shadow-sm:     0 2px 6px rgba(20,20,25,.06);
  --shadow:        0 8px 24px rgba(20,20,25,.08);
  --shadow-lg:     0 22px 60px rgba(20,20,25,.14);
  --radius:        14px;
  --radius-lg:     22px;
  --font-display:  'Fraunces', 'Playfair Display', Georgia, serif;
  --font-body:     'Manrope', 'Segoe UI', system-ui, sans-serif;
}

*{ box-sizing:border-box; }
html,body{ background:var(--bg); color:var(--ink); font-family:var(--font-body); }
body{ padding-top:74px; -webkit-font-smoothing:antialiased; }
a{ color:var(--ink); text-decoration:none; }
a:hover{ color:var(--brand); }

.font-display{ font-family:var(--font-display); font-weight:600; letter-spacing:-.01em; }

/* ============ NAVBAR ============ */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:1030;
  background:rgba(255,255,255,.85);
  backdrop-filter:saturate(150%) blur(16px);
  -webkit-backdrop-filter:saturate(150%) blur(16px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s;
}
.site-nav.scrolled{ box-shadow:var(--shadow-sm); }
.site-nav .brand{
  font-family:var(--font-display);
  font-weight:700; font-size:1.6rem; color:var(--ink); letter-spacing:-.02em;
  display:flex; align-items:center; gap:.5rem;
}
.site-nav .brand .dot{
  width:10px; height:10px; border-radius:50%; background:var(--brand);
  box-shadow:0 0 0 4px rgba(226,62,43,.15);
}
.site-nav .nav-link{
  color:var(--ink-2); font-weight:500; padding:.5rem .9rem !important; border-radius:999px;
}
.site-nav .nav-link:hover{ color:var(--brand); background:rgba(226,62,43,.06); }

/* ============ BUTTONS ============ */
.btn{ border-radius:999px; font-weight:600; letter-spacing:.01em; }
.btn-brand{ background:var(--brand); color:#fff; border:1px solid var(--brand); }
.btn-brand:hover{ background:var(--brand-ink); color:#fff; border-color:var(--brand-ink); }
.btn-outline-brand{ color:var(--brand); border:1px solid var(--brand); background:transparent; }
.btn-outline-brand:hover{ background:var(--brand); color:#fff; }
.btn-ghost{ background:transparent; color:var(--ink); }
.btn-ghost:hover{ background:rgba(0,0,0,.05); }

/* ============ HERO / CAROUSEL ============ */
.hero-slider .carousel-item{
  height:340px; border-radius:var(--radius-lg); overflow:hidden;
}
.hero-slider .carousel-item .slide{
  height:100%; display:flex; align-items:center; padding:2.5rem 2rem;
  border-radius:var(--radius-lg); position:relative; color:#fff;
}
.hero-slider .slide::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(0,0,0,.55), rgba(0,0,0,.15) 60%);
  border-radius:var(--radius-lg);
}
.hero-slider .slide > *{ position:relative; z-index:2; }
.hero-slider .slide h2{
  font-family:var(--font-display); font-size:2.5rem; line-height:1.1; margin-bottom:.5rem;
}
.hero-slider .badge-pill{
  display:inline-block; background:#fff; color:var(--brand);
  padding:.35rem .9rem; border-radius:999px; font-weight:600; font-size:.85rem;
  margin-bottom:1rem;
}
.slide-a{ background: radial-gradient(120% 120% at 0% 0%, #F5B33E 0%, #E23E2B 60%, #7A1A0D 100%); }
.slide-b{ background: radial-gradient(120% 120% at 100% 0%, #2A9D8F 0%, #1B4B48 60%, #0B1F1E 100%); }
.slide-c{ background: radial-gradient(120% 120% at 50% 0%, #C9A227 0%, #7B4D0A 60%, #2A1602 100%); }
.slide-d{ background: radial-gradient(120% 120% at 0% 100%, #3A6EA5 0%, #22355F 60%, #0E1836 100%); }

/* ============ SEARCH & FILTERS ============ */
.search-bar{
  background:var(--surface); border:1px solid var(--line); border-radius:999px;
  padding:.35rem .5rem .35rem 1.25rem; display:flex; align-items:center; gap:.5rem;
  box-shadow:var(--shadow-sm);
}
.search-bar input{ border:0; outline:0; background:transparent; flex:1; min-width:0; height:44px; }
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.chip{
  border:1px solid var(--line); background:#fff; border-radius:999px;
  padding:.45rem .95rem; font-weight:500; font-size:.9rem; cursor:pointer; color:var(--ink-2);
  transition:.2s;
}
.chip:hover{ border-color:var(--brand); color:var(--brand); }
.chip.active{ background:var(--ink); color:#fff; border-color:var(--ink); }
.chip.veg.active{ background:var(--success); border-color:var(--success); }
.chip.nonveg.active{ background:var(--danger); border-color:var(--danger); }

/* ============ FOOD TYPE ICONS (veg/non-veg squares) ============ */
.ft-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; border:1.5px solid var(--success); background:#fff;
}
.ft-icon i{ width:8px; height:8px; border-radius:50%; background:var(--success); display:block; }
.ft-icon.ft-nonveg{ border-color:var(--danger); }
.ft-icon.ft-nonveg i{ width:0; height:0; background:transparent;
  border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:8px solid var(--danger); border-radius:0; }
.ft-icon.ft-egg{ border-color:var(--egg); }
.ft-icon.ft-egg i{ background:var(--egg); border-radius:50%; }
.ft-icon.ft-both{ border-color:var(--brand); }
.ft-icon.ft-both i{ background:var(--brand); border-radius:50%; }

/* ============ RESTAURANT CARD ============ */
.rest-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; transition:.25s; box-shadow:var(--shadow-sm); height:100%;
  display:flex; flex-direction:column;
}
.rest-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:transparent; }
.rest-card .cover{
  aspect-ratio: 16/10; position:relative; background:#eee; overflow:hidden;
}
.rest-card .cover img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.rest-card:hover .cover img{ transform:scale(1.05); }
.rest-card .logo{
  position:absolute; left:14px; bottom:-24px; width:60px; height:60px; border-radius:14px;
  background:#fff; box-shadow:var(--shadow); border:2px solid #fff; overflow:hidden;
}
.rest-card .logo img{ width:100%; height:100%; object-fit:cover; }
.rest-card .badge-offer{
  position:absolute; left:14px; top:14px; background:#fff; color:var(--brand);
  padding:.35rem .7rem; border-radius:999px; font-weight:700; font-size:.78rem;
  box-shadow:var(--shadow-sm);
}
.rest-card .status-dot{
  position:absolute; right:14px; top:14px; background:rgba(0,0,0,.55); color:#fff;
  padding:.3rem .65rem; border-radius:999px; font-size:.75rem; font-weight:600;
}
.rest-card .status-dot.closed{ background:rgba(208,50,63,.9); }
.rest-card .body{ padding:2rem 1.15rem 1.15rem; flex:1; display:flex; flex-direction:column; }
.rest-card h3{ font-family:var(--font-display); font-weight:600; font-size:1.2rem; margin:0; }
.rest-card .cuisine{ color:var(--muted); font-size:.88rem; margin-top:.2rem; }
.rest-card .meta{
  display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-top:.75rem;
  color:var(--ink-2); font-size:.85rem; align-items:center;
}
.rest-card .rating-pill{
  background:var(--success); color:#fff; font-weight:700; font-size:.78rem;
  padding:.15rem .5rem; border-radius:6px; display:inline-flex; align-items:center; gap:.25rem;
}
.rest-card .services{
  margin-top:auto; padding-top:.85rem; border-top:1px dashed var(--line);
  display:flex; gap:.75rem; font-size:.78rem; color:var(--muted); flex-wrap:wrap;
}
.rest-card .services span.on{ color:var(--success); font-weight:600; }
.rest-card .services span.off{ color:var(--muted); text-decoration:line-through; }

/* ============ RESTAURANT DETAILS PAGE ============ */
.rest-hero{
  height:280px; border-radius:var(--radius-lg); position:relative; overflow:hidden;
  background:#333;
}
.rest-hero img{ width:100%; height:100%; object-fit:cover; }
.rest-hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.75) 100%);
}
.rest-header-card{
  background:var(--surface); border-radius:var(--radius-lg); box-shadow:var(--shadow);
  padding:1.5rem; margin-top:-60px; position:relative; z-index:2;
}

.category-nav{
  position:sticky; top:74px; z-index:10; background:var(--bg); padding:.75rem 0;
  border-bottom:1px solid var(--line); margin-bottom:1rem;
}
.category-nav .chips{ overflow-x:auto; flex-wrap:nowrap; padding-bottom:.25rem; }
.category-nav .chip{ white-space:nowrap; }

.menu-item{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.1rem; display:flex; gap:1rem; align-items:flex-start; transition:.2s;
}
.menu-item:hover{ box-shadow:var(--shadow); border-color:transparent; }
.menu-item .mi-body{ flex:1; min-width:0; }
.menu-item .mi-name{ font-weight:600; font-size:1.05rem; margin:.25rem 0; }
.menu-item .mi-desc{ color:var(--muted); font-size:.88rem; margin:.25rem 0; line-height:1.45; }
.menu-item .price{ font-weight:700; }
.menu-item .price .old{ text-decoration:line-through; color:var(--muted); font-weight:500; font-size:.85rem; margin-left:.4rem; }
.menu-item .thumb{
  width:130px; aspect-ratio:1; border-radius:var(--radius); background:#eee; overflow:hidden; position:relative; flex-shrink:0;
}
.menu-item .thumb img{ width:100%; height:100%; object-fit:cover; }
.menu-item .badges{ display:flex; gap:.35rem; flex-wrap:wrap; margin-top:.35rem; }
.badge-soft{
  font-size:.7rem; padding:.2rem .55rem; border-radius:999px; font-weight:600;
  background:var(--surface-2); color:var(--ink-2);
}
.badge-recommended{ background:#FFF3E0; color:#B45309; }
.badge-bestseller{ background:#FEE2E2; color:#B02615; }
.badge-popular{ background:#E0F2FE; color:#075985; }

/* Add-to-cart button on card */
.add-btn-wrap{ position:absolute; left:50%; bottom:8px; transform:translateX(-50%); white-space:nowrap; }
.add-btn{
  background:#fff; border:1.5px solid var(--brand); color:var(--brand);
  font-weight:700; padding:.35rem 1rem; white-space:nowrap; border-radius:999px; letter-spacing:.02em;
  box-shadow:var(--shadow-sm); transition:.2s;
}
.add-btn:hover{ background:var(--brand); color:#fff; }
.qty-selector{
  display:inline-flex; align-items:center; background:#fff; border:1.5px solid var(--brand);
  border-radius:999px; overflow:hidden; box-shadow:var(--shadow-sm);
}
.qty-selector button{
  background:transparent; border:0; color:var(--brand); width:36px; height:36px; font-weight:700; font-size:1.1rem;
}
.qty-selector button:hover{ background:var(--brand); color:#fff; }
.qty-selector .q{ min-width:28px; text-align:center; font-weight:700; color:var(--brand); }

/* ============ FLOATING CART ============ */
.floating-cart{
  position:fixed; right:24px; bottom:24px; z-index:1020;
  background:var(--ink); color:#fff; padding:.9rem 1.4rem; border-radius:999px;
  display:none; align-items:center; gap:.85rem; box-shadow:var(--shadow-lg);
  font-weight:600; cursor:pointer; transition:.2s;
}
.floating-cart:hover{ transform:translateY(-2px); background:var(--brand); color:#fff; }
.floating-cart.show{ display:inline-flex; }
.floating-cart .bag{
  background:rgba(255,255,255,.15); border-radius:50%; width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
}
.floating-cart .count{
  background:var(--brand); border-radius:999px; padding:.15rem .55rem; font-size:.8rem; margin-left:.35rem;
}

/* ============ OFFCANVAS CART ============ */
.offcanvas{ border-left:1px solid var(--line); }
.cart-item{
  display:flex; gap:.85rem; padding:.85rem 0; border-bottom:1px dashed var(--line);
}
.cart-item .th{ width:56px; height:56px; border-radius:10px; overflow:hidden; flex-shrink:0; background:#eee; }
.cart-item .th img{ width:100%; height:100%; object-fit:cover; }
.summary-row{ display:flex; justify-content:space-between; padding:.35rem 0; color:var(--ink-2); }
.summary-row.total{ font-weight:700; font-size:1.1rem; color:var(--ink); border-top:1px dashed var(--line); margin-top:.5rem; padding-top:.85rem; }

/* ============ FORMS ============ */
.form-control, .form-select{
  border-radius:12px; border:1px solid var(--line); padding:.7rem 1rem; background:#fff;
}
.form-control:focus, .form-select:focus{ border-color:var(--brand); box-shadow:0 0 0 4px rgba(226,62,43,.12); }
.form-check-input:checked{ background-color:var(--brand); border-color:var(--brand); }
.form-label{ font-weight:500; color:var(--ink-2); font-size:.9rem; }

/* ============ SECTION TITLES ============ */
.section-title{
  display:flex; align-items:end; justify-content:space-between; margin:2.5rem 0 1.25rem;
}
.section-title h2{ font-family:var(--font-display); font-size:1.9rem; margin:0; letter-spacing:-.02em; }
.section-title p{ color:var(--muted); margin:.35rem 0 0; }

/* ============ SKELETON ============ */
.sk{
  background:linear-gradient(90deg, #eee 25%, #f5f5f5 37%, #eee 63%);
  background-size:400% 100%; animation: sk 1.2s ease-in-out infinite; border-radius:8px;
}
@keyframes sk{ 0%{background-position:100% 50%} 100%{background-position:0 50%} }

/* ============ ADMIN / DASHBOARD ============ */
.dash-shell{ display:grid; grid-template-columns: 260px 1fr; min-height:calc(100vh - 74px); }
.dash-sidebar{
  background:var(--ink); color:#fff; padding:1.5rem 1rem; position:sticky; top:74px; height:calc(100vh - 74px); overflow-y:auto;
}
.dash-sidebar .brand{ font-family:var(--font-display); font-size:1.35rem; color:#fff; margin-bottom:1.5rem; display:flex; align-items:center; gap:.5rem; }
.dash-sidebar a{
  display:flex; align-items:center; gap:.65rem; color:#c9c9d0; padding:.65rem .85rem; border-radius:12px; margin-bottom:.15rem;
  font-weight:500; font-size:.95rem;
}
.dash-sidebar a:hover{ background:rgba(255,255,255,.06); color:#fff; }
.dash-sidebar a.active{ background:var(--brand); color:#fff; }
.dash-main{ padding:1.75rem 1.75rem 3rem; }
.stat-card{
  background:#fff; border-radius:var(--radius); padding:1.1rem 1.25rem; border:1px solid var(--line); box-shadow:var(--shadow-sm);
}
.stat-card .label{ color:var(--muted); font-size:.85rem; }
.stat-card .val{ font-family:var(--font-display); font-size:1.85rem; font-weight:600; }
.stat-card .delta{ font-size:.8rem; color:var(--success); font-weight:600; }

table.data-table{ width:100%; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
table.data-table th{ background:var(--surface-2); color:var(--ink-2); font-weight:600; font-size:.85rem; padding:.85rem 1rem; text-align:left; }
table.data-table td{ padding:.85rem 1rem; border-top:1px solid var(--line); vertical-align:middle; }
table.data-table tr:hover td{ background:#fdfaf4; }

.status-badge{ padding:.25rem .65rem; border-radius:999px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.st-pending{ background:#FEF3C7; color:#92400E; }
.st-accepted{ background:#DBEAFE; color:#1E3A8A; }
.st-preparing{ background:#FCE7F3; color:#9D174D; }
.st-ready{ background:#DCFCE7; color:#065F46; }
.st-completed{ background:#E5E7EB; color:#374151; }
.st-cancelled, .st-rejected{ background:#FEE2E2; color:#B02615; }

.auth-shell{
  min-height:100vh; display:grid; grid-template-columns:1fr 1fr;
  background:var(--bg);
}
.auth-shell .art{
  background:radial-gradient(120% 120% at 0% 0%, #F5B33E 0%, #E23E2B 55%, #7A1A0D 100%);
  color:#fff; padding:3rem; display:flex; flex-direction:column; justify-content:space-between;
}
.auth-shell .art h1{ font-family:var(--font-display); font-size:2.6rem; line-height:1.1; }
.auth-shell .art .quote{ opacity:.85; font-size:.95rem; }
.auth-shell .form-wrap{ display:flex; align-items:center; justify-content:center; padding:2rem; }
.auth-shell .form-wrap .card{ width:100%; max-width:420px; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:2rem; background:#fff; }

@media (max-width: 991.98px){
  .auth-shell{ grid-template-columns:1fr; }
  .auth-shell .art{ padding:2rem; min-height:220px; }
  .dash-shell{ grid-template-columns:1fr; }
  .dash-sidebar{ position:fixed; z-index:1050; top:0; left:-100%; height:100vh; width:280px; transition:.25s; }
  .dash-sidebar.show{ left:0; }
  body.dash-open{ overflow:hidden; }
  .rest-hero{ height:220px; }
  .hero-slider .carousel-item{ height:260px; }
  .hero-slider .slide h2{ font-size:1.75rem; }
  .menu-item{ flex-direction:column; }
  .menu-item .thumb{ width:100%; aspect-ratio:16/9; }
}

/* Footer */
footer.site-footer{
  background:var(--ink); color:#c9c9d0; padding:3rem 0 1.5rem; margin-top:4rem;
}
footer.site-footer h5{ color:#fff; font-family:var(--font-display); font-weight:600; }
footer.site-footer a{ color:#c9c9d0; }
footer.site-footer a:hover{ color:#fff; }
footer .foot-bottom{ border-top:1px solid rgba(255,255,255,.08); margin-top:2rem; padding-top:1rem; font-size:.85rem; }

/* Utility */
.text-brand{ color:var(--brand) !important; }
.bg-surface-2{ background:var(--surface-2) !important; }
.rounded-xl{ border-radius:var(--radius) !important; }
.rounded-2xl{ border-radius:var(--radius-lg) !important; }
.shadow-soft{ box-shadow:var(--shadow) !important; }

/* Sticky footer + mobile fixes */
body.site{ min-height:100vh; display:flex; flex-direction:column; }
body.site > footer.site-footer{ margin-top:auto; }
html, body{ overflow-x:hidden; }
@media (max-width: 767.98px){
  .hero-slider .carousel-control-prev, .hero-slider .carousel-control-next{ display:none; }
  .hero-slider .carousel-indicators{ margin-bottom:.4rem; }
  .hero-slider .carousel-item{ height:270px; }
  .hero-slider .carousel-item .slide{ padding:1.5rem 1.25rem 2.5rem; align-items:flex-start; }
  .hero-slider .slide h2{ font-size:1.45rem; }
  .hero-slider .slide p{ font-size:.9rem; }
  .hero-slider .badge-pill{ margin-bottom:.6rem; font-size:.75rem; }
}
