/* ── Variables ─────────────────────────────────────────────────────────────── */
:root {
  --primary: #ff4757;
  --primary-light: #ff6b81;
  --primary-dark: #e03b4b;
  --primary-glass: rgba(255,71,87,0.12);
  --primary-border: rgba(255,71,87,0.3);
  --primary-glow: 0 10px 40px -10px rgba(255,71,87,0.5);
  --primary-gradient: linear-gradient(135deg,#ff4757 0%,#ff708a 100%);

  --success: #22c55e; --warning: #f59e0b; --danger: #ef4444;
  --info: #3b82f6; --accent: #8b5cf6;

  --bg: #f8f9fc; --text: #2d3436; --muted: #8395a7;
  --glass: rgba(255,255,255,0.65);
  --glass-heavy: rgba(255,255,255,0.88);
  --glass-border: 1px solid rgba(255,255,255,0.8);
  --glass-shadow: 0 8px 32px rgba(31,38,135,0.06);
  --radius: 20px; --radius-sm: 12px;

  --mesh-1: radial-gradient(at 0% 0%,hsla(353,100%,85%,0.55) 0,transparent 55%);
  --mesh-2: radial-gradient(at 100% 0%,hsla(10,100%,90%,0.45) 0,transparent 55%);
  --mesh-3: radial-gradient(at 100% 100%,hsla(340,100%,90%,0.45) 0,transparent 55%);
}

@media (prefers-color-scheme:dark) {
  :root {
    --bg:#0d0d0d; --text:#f1f1f1; --muted:#8395a7;
    --glass:rgba(20,20,20,0.65); --glass-heavy:rgba(30,30,30,0.9);
    --glass-border:1px solid rgba(255,255,255,0.08);
    --glass-shadow:0 8px 32px rgba(0,0,0,0.4);
    --mesh-1:radial-gradient(at 0% 0%,hsla(353,70%,20%,0.3) 0,transparent 55%);
    --mesh-2:radial-gradient(at 100% 0%,hsla(340,70%,15%,0.3) 0,transparent 55%);
    --mesh-3:radial-gradient(at 100% 100%,hsla(10,70%,18%,0.3) 0,transparent 55%);
  }
}

/* ── Reset & Base ──────────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Outfit',sans-serif; background:var(--bg); color:var(--text); overflow-x:hidden; padding-bottom:80px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; }

/* ── Mesh Background ───────────────────────────────────────────────────────── */
.mesh-bg { position:fixed; inset:0; z-index:-1; background:var(--mesh-1),var(--mesh-2),var(--mesh-3); filter:blur(80px); opacity:1; animation:breathe 18s ease-in-out infinite alternate; pointer-events:none; }
@keyframes breathe { 0%{transform:scale(1)} 100%{transform:scale(1.08)} }

/* ── Glass Cards ───────────────────────────────────────────────────────────── */
.glass-card { background:var(--glass); backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%); border:var(--glass-border); box-shadow:var(--glass-shadow); border-radius:var(--radius); padding:24px; transition:box-shadow .25s; }
.glass-card:hover { box-shadow:var(--glass-shadow),0 4px 20px rgba(0,0,0,.06); }
.glass-inner { background:rgba(255,255,255,.35); border-radius:var(--radius-sm); padding:14px; border:1px solid rgba(255,255,255,.5); }

/* ── Navbar ────────────────────────────────────────────────────────────────── */
.navbar { position:fixed; top:0; left:0; right:0; z-index:1000; background:var(--glass-heavy); backdrop-filter:blur(40px); -webkit-backdrop-filter:blur(40px); border-bottom:var(--glass-border); box-shadow:var(--glass-shadow); }
.nav-inner { display:flex; align-items:center; gap:16px; max-width:1400px; margin:0 auto; padding:0 24px; height:64px; }
.nav-logo { display:flex; align-items:center; gap:8px; font-size:1.25rem; font-weight:700; color:var(--primary); }
.nav-logo i { font-size:1.3rem; }
.nav-links { display:none; gap:8px; }
@media(min-width:768px){ .nav-links{display:flex;} }
.nav-link { padding:8px 14px; border-radius:10px; font-weight:500; transition:.2s; }
.nav-link:hover { background:var(--primary-glass); color:var(--primary); }
.nav-actions { margin-left:auto; display:flex; align-items:center; gap:10px; }
.nav-cart { position:relative; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:var(--primary-glass); color:var(--primary); font-size:1.1rem; transition:.2s; }
.nav-cart:hover { background:var(--primary-border); }
.cart-badge { position:absolute; top:-4px; right:-4px; background:var(--primary); color:#fff; font-size:10px; font-weight:700; width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.nav-user-menu { position:relative; }
.nav-user-btn { display:flex; align-items:center; gap:8px; padding:6px 12px; border-radius:12px; background:transparent; border:var(--glass-border); cursor:pointer; font-family:inherit; font-size:.9rem; color:var(--text); transition:.2s; }
.nav-user-btn:hover { background:var(--glass); }
.dropdown-menu { display:none; position:absolute; right:0; top:calc(100%+8px); background:var(--glass-heavy); backdrop-filter:blur(20px); border:var(--glass-border); border-radius:var(--radius-sm); padding:8px; min-width:180px; box-shadow:0 20px 40px rgba(0,0,0,.12); z-index:200; }
.nav-user-menu:hover .dropdown-menu { display:block; }
.dropdown-menu a { display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:8px; font-size:.88rem; color:var(--text); transition:.15s; }
.dropdown-menu a:hover { background:var(--primary-glass); }
.dropdown-menu a.text-danger { color:var(--danger); }
.dropdown-divider { height:1px; background:rgba(0,0,0,.06); margin:6px 0; }
.nav-mobile-toggle { display:flex; align-items:center; margin-left:auto; background:none; border:none; cursor:pointer; font-size:1.2rem; color:var(--text); }
@media(min-width:768px){ .nav-mobile-toggle{display:none;} }

/* ── Main Content ──────────────────────────────────────────────────────────── */
.main-content { padding-top:64px; min-height:100vh; }
@media(min-width:992px){ body{padding-bottom:0;} }

/* ── Buttons ───────────────────────────────────────────────────────────────── */
.btn { display:inline-flex; align-items:center; gap:6px; padding:10px 20px; border-radius:12px; font-family:inherit; font-size:.9rem; font-weight:600; cursor:pointer; border:none; transition:.2s; }
.btn-primary { background:var(--primary-gradient); color:#fff; }
.btn-primary:hover { transform:translateY(-1px); box-shadow:var(--primary-glow); }
.btn-outline { background:transparent; border:1px solid rgba(0,0,0,.12); color:var(--text); }
.btn-outline:hover { background:var(--glass); }
.btn-success { background:#22c55e; color:#fff; }
.btn-danger { background:#ef4444; color:#fff; }
.btn-warning { background:#f59e0b; color:#fff; }
.btn-block { width:100%; justify-content:center; }
.btn-sm { padding:7px 14px; font-size:.82rem; }
.btn-xs { padding:4px 10px; font-size:.78rem; border-radius:8px; }
.btn-primary-sm { background:var(--primary-gradient); color:#fff; padding:7px 14px; border-radius:10px; font-size:.85rem; font-weight:600; }
.btn-outline-sm { border:1px solid var(--primary-border); color:var(--primary); padding:7px 14px; border-radius:10px; font-size:.85rem; font-weight:600; }
.btn-primary-sm:hover,.btn-outline-sm:hover { opacity:.85; }
.btn-text { background:none; border:none; cursor:pointer; font-family:inherit; font-size:.85rem; font-weight:600; }
.btn-icon { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--glass); border:var(--glass-border); cursor:pointer; font-size:.9rem; transition:.2s; }
.btn-icon:hover { background:var(--primary-glass); color:var(--primary); }

/* ── Form Controls ─────────────────────────────────────────────────────────── */
.form-label { display:block; font-size:.85rem; font-weight:600; margin-bottom:5px; color:var(--muted); }
.form-control { width:100%; padding:11px 14px; border:1.5px solid rgba(0,0,0,.08); border-radius:12px; background:var(--glass-heavy); color:var(--text); font-family:inherit; font-size:.9rem; transition:.2s; }
.form-control:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-glass); }
textarea.form-control { resize:vertical; }
select.form-control { cursor:pointer; }
.form-group { margin-bottom:16px; }
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-vertical .form-group:last-child { margin-bottom:0; }
.input-icon-wrap { position:relative; display:flex; align-items:center; }
.input-icon-wrap > i { position:absolute; left:14px; color:var(--muted); font-size:.85rem; pointer-events:none; }
.input-icon-wrap > .form-control { padding-left:38px; }
.input-icon-wrap.flex-1 { flex:1; }
.input-eye { position:absolute; right:12px; background:none; border:none; cursor:pointer; color:var(--muted); }
.checkbox-label { display:flex; align-items:center; gap:8px; font-size:.88rem; cursor:pointer; }
.input-row { display:flex; gap:8px; }

/* ── Alerts ────────────────────────────────────────────────────────────────── */
.alert { padding:12px 16px; border-radius:12px; font-size:.88rem; display:flex; align-items:center; gap:8px; }
.alert-danger { background:rgba(239,68,68,.1); border:1px solid rgba(239,68,68,.25); color:#b91c1c; }
.alert-success { background:rgba(34,197,94,.1); border:1px solid rgba(34,197,94,.25); color:#15803d; }
.alert-warning { background:rgba(245,158,11,.1); border:1px solid rgba(245,158,11,.25); color:#b45309; }
.alert-info { background:rgba(59,130,246,.1); border:1px solid rgba(59,130,246,.25); color:#1d4ed8; }

/* ── Badges ────────────────────────────────────────────────────────────────── */
.badge { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:20px; font-size:.75rem; font-weight:600; }
.badge-primary { background:rgba(255,71,87,.12); color:var(--primary); }
.badge-success { background:rgba(34,197,94,.12); color:#16a34a; }
.badge-danger { background:rgba(239,68,68,.12); color:#dc2626; }
.badge-warning { background:rgba(245,158,11,.12); color:#d97706; }
.badge-info { background:rgba(59,130,246,.12); color:#2563eb; }
.badge-accent { background:rgba(139,92,246,.12); color:#7c3aed; }
.badge-muted { background:rgba(131,149,167,.12); color:var(--muted); }
.badge-lg { padding:5px 14px; font-size:.82rem; }
.btn-badge { cursor:pointer; border:none; font-family:inherit; }

/* ── Avatar ────────────────────────────────────────────────────────────────── */
.avatar-xs { width:32px; height:32px; border-radius:10px; background:var(--primary-gradient); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; flex-shrink:0; }
.avatar-sm { width:40px; height:40px; border-radius:12px; background:var(--primary-gradient); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1rem; flex-shrink:0; }
.avatar-md { width:52px; height:52px; border-radius:14px; background:var(--primary-gradient); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.2rem; flex-shrink:0; }
.avatar-xl { width:72px; height:72px; border-radius:18px; background:var(--primary-gradient); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.8rem; flex-shrink:0; margin:0 auto 12px; }

/* ── Hero ──────────────────────────────────────────────────────────────────── */
.hero { display:grid; grid-template-columns:1fr; min-height:520px; padding:100px 24px 60px; max-width:1400px; margin:0 auto; align-items:center; gap:40px; }
@media(min-width:768px){ .hero{grid-template-columns:1fr 1fr;padding-top:120px;} }
.hero h1 { font-size:clamp(2rem,5vw,3.2rem); font-weight:800; line-height:1.2; }
.hero p { color:var(--muted); font-size:1.05rem; margin:16px 0 28px; }
.text-primary { color:var(--primary); }
.hero-search-wrap { display:flex; gap:8px; background:var(--glass-heavy); border:var(--glass-border); border-radius:16px; padding:8px; box-shadow:var(--glass-shadow); max-width:520px; }
.hero-input { flex:1; border:none; background:transparent; padding:8px 12px; font-family:inherit; font-size:.95rem; color:var(--text); outline:none; }
.hero-visual { display:none; }
@media(min-width:768px){ .hero-visual{display:flex;justify-content:center;align-items:center;} }
.hero-food-grid { position:relative; width:min(92vw,460px); height:360px; }
.hero-photo-card { position:absolute; border-radius:18px; overflow:hidden; border:var(--glass-border); box-shadow:var(--glass-shadow); }
.hero-photo-card img { width:100%; height:100%; object-fit:cover; display:block; }
.hero-photo-tag { position:absolute; left:12px; bottom:12px; display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; font-size:.74rem; font-weight:700; background:rgba(0,0,0,.62); color:#fff; }
.hero-photo-1 { width:240px; height:170px; top:8px; left:8px; transform:rotate(-4deg); }
.hero-photo-2 { width:220px; height:158px; top:52px; right:8px; transform:rotate(6deg); }
.hero-photo-3 { width:250px; height:174px; bottom:8px; left:84px; transform:rotate(-2deg); }
.food-circle { position:absolute; width:72px; height:72px; border-radius:50%; background:var(--glass-heavy); border:var(--glass-border); box-shadow:var(--glass-shadow); display:flex; align-items:center; justify-content:center; font-size:1.5rem; animation:heroFloat 4.2s ease-in-out infinite; z-index:3; }
.food-1 { top:-10px; right:128px; animation-delay:0s; }
.food-2 { top:128px; right:-10px; animation-delay:.8s; }
.food-3 { bottom:-8px; left:16px; animation-delay:1.6s; }
.food-4 { top:86px; left:-12px; animation-delay:2.4s; }
@keyframes heroFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

/* ── Section ───────────────────────────────────────────────────────────────── */
.section { padding:40px 0; }
.section-alt { background:linear-gradient(to bottom,transparent,rgba(255,71,87,.03),transparent); }
.container { max-width:1400px; margin:0 auto; padding:0 24px; }
.section-title { font-size:1.4rem; font-weight:700; margin-bottom:20px; }
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.see-all { color:var(--primary); font-weight:600; font-size:.88rem; display:flex; align-items:center; gap:4px; }
.page-hero-sm { padding-top:20px; margin-bottom:28px; }
.page-hero-sm h1 { font-size:1.8rem; font-weight:800; }
.page-hero-sm p { color:var(--muted); }
.page-title { font-size:1.6rem; font-weight:700; margin-bottom:24px; }

/* ── Categories ────────────────────────────────────────────────────────────── */
.categories-scroll { display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
.categories-scroll::-webkit-scrollbar { display:none; }
.category-chip { flex-shrink:0; padding:8px 18px; border-radius:20px; background:var(--glass); border:var(--glass-border); font-size:.85rem; font-weight:600; transition:.2s; white-space:nowrap; }
.category-chip:hover,.category-chip.active { background:var(--primary-gradient); color:#fff; border-color:transparent; }

/* ── Restaurant Grid ───────────────────────────────────────────────────────── */
.restaurant-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.restaurant-card { overflow:hidden; transition:.25s; cursor:pointer; display:block; }
.restaurant-card:hover { transform:translateY(-4px); box-shadow:var(--glass-shadow),0 12px 40px rgba(0,0,0,.08); }
.restaurant-cover { height:160px; overflow:hidden; border-radius:14px; margin-bottom:14px; background:var(--primary-glass); position:relative; }
.restaurant-cover img { width:100%; height:100%; object-fit:cover; }
.cover-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3rem; color:var(--primary); opacity:.4; }
.cover-placeholder-lg { width:100%; height:280px; display:flex; align-items:center; justify-content:center; font-size:5rem; color:var(--primary); opacity:.3; background:var(--primary-glass); }
.market-cover { background:rgba(59,130,246,.08); color:#2563eb; }
.closed-badge { position:absolute; top:10px; left:10px; background:rgba(0,0,0,.65); color:#fff; padding:4px 10px; border-radius:8px; font-size:.75rem; font-weight:600; }
.free-delivery-badge { position:absolute; top:10px; right:10px; background:rgba(34,197,94,.9); color:#fff; padding:4px 10px; border-radius:8px; font-size:.75rem; font-weight:600; }
.restaurant-info h3 { font-size:1rem; font-weight:700; margin-bottom:4px; }
.rest-header { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.rest-logo { width:40px; height:40px; border-radius:10px; object-fit:cover; }
.rest-meta { display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--muted); flex-wrap:wrap; }
.rating { display:flex; align-items:center; gap:3px; font-weight:600; color:var(--text); }
.dot { color:var(--muted); }
.results-header { margin-bottom:14px; font-size:.9rem; color:var(--muted); }

/* ── Restaurant Detail ─────────────────────────────────────────────────────── */
.restaurant-detail-page { padding-top:64px; }
.rest-detail-cover { height:260px; position:relative; overflow:hidden; }
.rest-detail-cover img { width:100%; height:100%; object-fit:cover; }
.rest-detail-cover-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.5)); }
.rest-detail-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-top:-40px; position:relative; z-index:10; }
.rest-detail-info { display:flex; align-items:flex-start; gap:14px; flex:1; }
.rest-detail-logo { width:64px; height:64px; border-radius:16px; object-fit:cover; border:3px solid #fff; box-shadow:0 4px 12px rgba(0,0,0,.12); }
.rest-detail-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.badge-rating,.badge-info,.badge-success { padding:5px 12px; border-radius:20px; font-size:.78rem; font-weight:600; display:inline-flex; align-items:center; gap:5px; }
.badge-rating { background:rgba(245,158,11,.12); color:#d97706; }
.badge-info { background:rgba(59,130,246,.1); color:#2563eb; }
.badge-success { background:rgba(34,197,94,.12); color:#16a34a; }
.badge-danger { background:rgba(239,68,68,.12); color:#dc2626; }
.rest-detail-body { display:grid; grid-template-columns:1fr; gap:20px; padding:20px 0 40px; }
@media(min-width:992px){ .rest-detail-body{grid-template-columns:1fr 340px;} }
.rest-detail-actions { display:flex; align-items:flex-start; padding-top:12px; }
.btn-icon-lg { width:44px; height:44px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--glass); border:var(--glass-border); cursor:pointer; font-size:1.2rem; transition:.2s; }
.btn-icon-lg:hover { background:var(--primary-glass); color:var(--primary); }
.btn-icon-lg.active { color:var(--danger); background:rgba(239,68,68,.1); }

/* ── Menu ──────────────────────────────────────────────────────────────────── */
.menu-cats { display:flex; gap:8px; overflow-x:auto; padding-bottom:4px; margin-bottom:20px; scrollbar-width:none; }
.menu-cats::-webkit-scrollbar { display:none; }
.menu-cat-btn { flex-shrink:0; padding:7px 16px; border-radius:20px; border:var(--glass-border); background:var(--glass); font-family:inherit; font-size:.83rem; font-weight:600; cursor:pointer; transition:.2s; color:var(--text); }
.menu-cat-btn.active,.menu-cat-btn:hover { background:var(--primary-gradient); color:#fff; border-color:transparent; }
.menu-layout-switch { margin-left:auto; display:inline-flex; align-items:center; gap:6px; padding:4px; border-radius:12px; background:var(--glass); border:var(--glass-border); }
.layout-btn { width:34px; height:34px; border:0; border-radius:8px; background:transparent; color:var(--muted); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.2s; }
.layout-btn:hover { background:var(--primary-glass); color:var(--primary); }
.layout-btn.active { background:var(--primary-gradient); color:#fff; box-shadow:var(--primary-glow); }
.menu-group-title { font-size:1.1rem; font-weight:700; margin:20px 0 12px; }
.product-list { display:grid; gap:12px; grid-template-columns:1fr; }
.menu-section.cols-1 .product-list { grid-template-columns:1fr; }
.menu-section.cols-2 .product-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.menu-section.cols-3 .product-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
.product-card { display:flex; align-items:center; gap:14px; padding:16px; transition:.2s; cursor:default; }
.product-card:hover { transform:translateX(4px); }
.product-info { flex:1; }
.product-badges { display:flex; gap:6px; margin-bottom:6px; }
.product-info h4 { font-size:.95rem; font-weight:600; margin-bottom:4px; }
.product-img { width:80px; height:80px; border-radius:12px; overflow:hidden; flex-shrink:0; }
.product-img img { width:100%; height:100%; object-fit:cover; }
.product-price-row { display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
.price-main,.price-new { font-size:1rem; font-weight:700; color:var(--primary); }
.price-old { font-size:.85rem; color:var(--muted); text-decoration:line-through; margin-right:6px; }
.btn-add-cart { width:34px; height:34px; border-radius:10px; background:var(--primary-gradient); color:#fff; border:none; cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center; transition:.2s; }
.btn-add-cart:hover { transform:scale(1.1); box-shadow:var(--primary-glow); }
@media(max-width:991px){
  .menu-section.cols-2 .product-list,
  .menu-section.cols-3 .product-list { grid-template-columns:1fr; }
}

/* ── Order Summary Sticky ──────────────────────────────────────────────────── */
.order-summary-sticky { position:sticky; top:88px; align-self:start; max-height:calc(100vh - 104px); overflow:auto; padding-right:4px; }
.summary-row { display:flex; justify-content:space-between; align-items:center; padding:6px 0; font-size:.9rem; }
.summary-total { font-size:1.05rem; font-weight:700; }
.summary-divider { height:1px; background:rgba(0,0,0,.07); margin:8px 0; }
.empty-cart-msg { text-align:center; padding:30px 0; color:var(--muted); }
.empty-cart-msg i { font-size:2.5rem; display:block; margin-bottom:10px; }
@media(max-width:991px){ .order-summary-sticky{position:static;max-height:none;overflow:visible;padding-right:0;} }

/* ── Reviews ───────────────────────────────────────────────────────────────── */
.review-item { padding:14px 0; border-bottom:1px solid rgba(0,0,0,.05); }
.review-item:last-child { border-bottom:none; }
.review-header { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.stars { display:flex; align-items:center; gap:2px; }

/* ── How Works ─────────────────────────────────────────────────────────────── */
.how-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin-top:8px; }
.how-step { text-align:center; padding:28px 20px; }
.how-icon { width:56px; height:56px; border-radius:16px; background:var(--primary-glass); color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin:0 auto 14px; }
.how-step h3 { font-size:1rem; font-weight:700; margin-bottom:6px; }
.how-step p { font-size:.85rem; color:var(--muted); }

/* ── Footer ────────────────────────────────────────────────────────────────── */
.site-footer { background:var(--glass-heavy); backdrop-filter:blur(20px); border-top:var(--glass-border); padding:40px 24px 24px; }
.footer-inner { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:28px; }
@media(min-width:640px){ .footer-inner{grid-template-columns:1fr 1fr;} }
.footer-brand p { color:var(--muted); font-size:.85rem; margin-top:8px; }
.footer-links { display:flex; gap:32px; }
.footer-links div { display:flex; flex-direction:column; gap:8px; }
.footer-links h6 { font-weight:700; margin-bottom:4px; }
.footer-links a { font-size:.85rem; color:var(--muted); transition:.15s; }
.footer-links a:hover { color:var(--primary); }
.footer-bottom { max-width:1400px; margin:24px auto 0; padding-top:16px; border-top:1px solid rgba(0,0,0,.06); font-size:.82rem; color:var(--muted); text-align:center; }

/* ── Cart ──────────────────────────────────────────────────────────────────── */
.cart-layout { display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:900px){ .cart-layout{grid-template-columns:1fr 340px;} }
.cart-restaurant-header { display:flex; align-items:center; gap:10px; font-size:1rem; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid rgba(0,0,0,.07); }
.cart-item { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid rgba(0,0,0,.05); }
.cart-item-img { width:52px; height:52px; border-radius:10px; object-fit:cover; }
.cart-item-info { flex:1; }
.cart-item-info h4 { font-size:.9rem; font-weight:600; }
.cart-item-price { font-size:.82rem; color:var(--muted); }
.cart-item-qty { display:flex; align-items:center; gap:8px; }
.qty-btn { width:28px; height:28px; border-radius:8px; border:1px solid rgba(0,0,0,.1); background:var(--glass); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:.8rem; transition:.15s; }
.qty-btn:hover { background:var(--primary-glass); color:var(--primary); }
.qty-num { font-weight:700; min-width:20px; text-align:center; }
.cart-item-total { font-weight:700; font-size:.92rem; min-width:70px; text-align:right; }
.cart-item-remove { background:none; border:none; cursor:pointer; color:var(--muted); font-size:.85rem; padding:4px; border-radius:6px; transition:.15s; }
.cart-item-remove:hover { color:var(--danger); background:rgba(239,68,68,.08); }
.cart-item-extras { display:flex; flex-wrap:wrap; gap:4px; margin:4px 0 2px; }
.cart-extra-tag { font-size:.75rem; background:var(--primary-glass); color:var(--primary); padding:2px 8px; border-radius:20px; white-space:nowrap; }
.cart-extra-price { font-weight:700; }
.cart-summary { position:sticky; top:80px; }
.coupon-form { display:flex; gap:8px; }

/* ── Checkout ──────────────────────────────────────────────────────────────── */
.checkout-layout { display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:900px){ .checkout-layout{grid-template-columns:1fr 360px;} }
.section-card-title { font-size:1rem; font-weight:700; margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.address-list { display:flex; flex-direction:column; gap:10px; }
.address-option { cursor:pointer; }
.address-option input { display:none; }
.address-card { padding:14px 16px; border:2px solid rgba(0,0,0,.07); border-radius:12px; transition:.2s; }
.address-option:has(input:checked) .address-card { border-color:var(--primary); background:var(--primary-glass); }
.address-header { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.payment-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.payment-option input { display:none; }
.payment-card { padding:14px; border:2px solid rgba(0,0,0,.07); border-radius:12px; display:flex; align-items:center; gap:8px; font-size:.88rem; font-weight:600; cursor:pointer; transition:.2s; }
.payment-option:has(input:checked) .payment-card { border-color:var(--primary); background:var(--primary-glass); color:var(--primary); }
.checkout-restaurant { display:flex; align-items:center; gap:8px; padding-bottom:12px; border-bottom:1px solid rgba(0,0,0,.06); margin-bottom:14px; font-weight:600; }
.checkout-items { max-height:300px; overflow-y:auto; }
.checkout-item { display:flex; align-items:center; gap:8px; padding:6px 0; font-size:.88rem; }
.checkout-item-qty { color:var(--muted); width:24px; }
.checkout-item-name { flex:1; }
.checkout-item-price { font-weight:600; }
.sticky-summary { position:sticky; top:80px; }

/* ── Success ───────────────────────────────────────────────────────────────── */
.success-page { text-align:center; padding:30px; }
.success-icon { font-size:4rem; color:var(--success); margin-bottom:16px; }
.success-icon i { animation:popIn .4s cubic-bezier(.34,1.56,.64,1); }
@keyframes popIn { 0%{transform:scale(0)} 100%{transform:scale(1)} }
.order-no-badge { display:inline-block; background:var(--primary-glass); color:var(--primary); padding:6px 20px; border-radius:20px; font-weight:700; margin:12px auto; }
.success-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }
.success-info-item { background:var(--glass); border:var(--glass-border); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:4px; }
.success-info-item i { font-size:1.2rem; color:var(--primary); }
.success-info-item .label { font-size:.75rem; color:var(--muted); }
.success-info-item .value { font-weight:700; }
.success-address { display:flex; align-items:center; gap:12px; background:var(--glass); border:var(--glass-border); border-radius:14px; padding:14px; margin:12px 0; text-align:left; }
.success-address i { font-size:1.2rem; color:var(--primary); }
.success-items { margin:16px 0; }
.success-item { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid rgba(0,0,0,.05); font-size:.9rem; }
.success-actions { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:20px; }

/* ── Auth ──────────────────────────────────────────────────────────────────── */
.auth-page { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:80px 16px 40px; }
.auth-card { width:100%; max-width:440px; }
.auth-logo { text-align:center; margin-bottom:24px; }
.auth-logo i { font-size:2.5rem; color:var(--primary); }
.auth-logo h1 { font-size:1.5rem; font-weight:800; margin:6px 0 4px; }
.auth-logo p { color:var(--muted); font-size:.88rem; }
.auth-form { display:flex; flex-direction:column; gap:14px; }
.auth-links { text-align:center; margin-top:16px; font-size:.88rem; color:var(--muted); }
.auth-links a { color:var(--primary); font-weight:600; }
.auth-divider { position:relative; text-align:center; margin:16px 0; }
.auth-divider::before,.auth-divider::after { content:''; position:absolute; top:50%; width:calc(50% - 50px); height:1px; background:rgba(0,0,0,.08); }
.auth-divider::before { left:0; } .auth-divider::after { right:0; }
.auth-divider span { background:var(--glass); padding:0 12px; font-size:.78rem; color:var(--muted); }
.demo-accounts { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.demo-btn { padding:8px 10px; border-radius:10px; border:var(--glass-border); background:var(--glass); cursor:pointer; font-family:inherit; font-size:.8rem; font-weight:600; display:flex; align-items:center; gap:6px; transition:.2s; color:var(--text); }
.demo-btn:hover { background:var(--primary-glass); color:var(--primary); }
.form-check-row { display:flex; align-items:center; justify-content:space-between; }

/* ── Filter Bar ────────────────────────────────────────────────────────────── */
.filter-bar { padding:16px; margin-bottom:20px; }
.filter-form { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.w-auto { width:auto!important; }
.flex-1 { flex:1; }
.flex-1.min-w { min-width:200px; }

/* ── Empty State ───────────────────────────────────────────────────────────── */
.empty-state { text-align:center; padding:48px 24px; }
.empty-state i { font-size:3rem; color:var(--muted); display:block; margin-bottom:14px; }
.empty-state h3 { font-size:1.1rem; font-weight:700; margin-bottom:6px; }
.empty-state p { color:var(--muted); font-size:.9rem; }
.empty-state-sm { text-align:center; padding:28px 16px; color:var(--muted); }
.empty-state-sm i { font-size:2rem; display:block; margin-bottom:8px; }

/* ── Error Page ────────────────────────────────────────────────────────────── */
.error-page { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:80px 24px; }
.error-card { text-align:center; max-width:480px; width:100%; padding:48px 32px; }
.error-code { font-size:5rem; font-weight:800; color:var(--primary); line-height:1; }

/* ── Toast ─────────────────────────────────────────────────────────────────── */
.toast-container { position:fixed; bottom:24px; right:24px; z-index:9999; display:flex; flex-direction:column; gap:8px; }
.toast { padding:12px 18px; border-radius:12px; font-size:.88rem; font-weight:600; display:flex; align-items:center; gap:8px; min-width:240px; max-width:360px; animation:slideIn .3s ease; box-shadow:0 8px 24px rgba(0,0,0,.12); }
.toast-success { background:#22c55e; color:#fff; }
.toast-danger { background:#ef4444; color:#fff; }
.toast-info { background:#3b82f6; color:#fff; }
@keyframes slideIn { from{transform:translateX(100%);opacity:0} to{transform:translateX(0);opacity:1} }

/* ── Modal ─────────────────────────────────────────────────────────────────── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.4); backdrop-filter:blur(4px); z-index:5000; display:flex; align-items:center; justify-content:center; padding:24px; }
.modal-box { max-width:480px; width:100%; }
.modal-actions { display:flex; gap:10px; margin-top:16px; }

/* ── Ekstra Seçim Modalı ────────────────────────────────────────────────────── */
.ekstra-modal-box { display:flex; max-width:780px; width:100%; min-height:420px; border-radius:20px; overflow:hidden; background:#fff; }
.ekstra-modal-left { flex:0 0 320px; background-size:cover; background-position:center; }
.ekstra-modal-right { flex:1; display:flex; flex-direction:column; }
.ekstra-modal-right .modal-header { padding:20px 24px 12px; border-bottom:1px solid #f0f0f0; display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.ekstra-modal-right .modal-body { padding:8px 24px; }
.ekstra-modal-right .modal-footer { padding:16px 24px; border-top:1px solid #f0f0f0; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.ekstra-seci-header { font-size:.72rem; font-weight:700; letter-spacing:.08em; color:var(--muted); padding:12px 0 6px; }
.ekstra-seci-row { display:flex; align-items:center; gap:12px; padding:12px 14px; border:1.5px solid #f0f0f0; border-radius:10px; margin-bottom:8px; cursor:pointer; transition:all .15s; }
.ekstra-seci-row:hover { border-color:var(--primary); background:#fff8f0; }
.ekstra-seci-row input[type=checkbox] { width:18px; height:18px; accent-color:var(--primary); cursor:pointer; flex-shrink:0; }
.ekstra-seci-name { flex:1; font-size:.95rem; }
.ekstra-seci-price { font-weight:700; color:var(--primary); font-size:.95rem; white-space:nowrap; }
.ekstra-modal-total { font-size:1.5rem; font-weight:800; color:var(--text); }
@media(max-width:640px) {
  .ekstra-modal-box { flex-direction:column; }
  .ekstra-modal-left { flex:0 0 180px; }
}

/* ── Utility ───────────────────────────────────────────────────────────────── */
.text-primary { color:var(--primary)!important; }
.text-success { color:var(--success)!important; }
.text-danger { color:var(--danger)!important; }
.text-warning { color:var(--warning)!important; }
.text-muted { color:var(--muted)!important; }
.text-sm { font-size:.875rem!important; }
.text-xs { font-size:.78rem!important; }
.text-center { text-align:center; }
.fw-600 { font-weight:600; }
.fw-700 { font-weight:700; }
.mt-1 { margin-top:4px; }
.mt-2 { margin-top:8px; }
.mt-3 { margin-top:12px; }
.mt-4 { margin-top:16px; }
.mb-2 { margin-bottom:8px; }
.mb-3 { margin-bottom:12px; }
.mb-4 { margin-bottom:16px; }
.mb-6 { margin-bottom:24px; }
.ml-1 { margin-left:4px; }
.ml-2 { margin-left:8px; }
.ml-auto { margin-left:auto; }
.font-mono { font-family:monospace; }
.rounded { border-radius:10px; }
