  :root {
      --bg-body: #FFFDF9;
      --bg-card: #FFFFFF;
      --text-dark: #2A1F1D;
      --text-muted: #8C7B77;

      --food-orange: #FF6B35;
      --food-orange-light: #FFF0EB;
      --food-red: #E63946;
      --food-red-light: #FCE8EA;
      --food-yellow: #FFB627;
      --food-yellow-light: #FFF6E5;
      --food-green: #4CB944;

      --shadow-soft: 0 8px 30px rgba(255, 107, 53, 0.08);
      --radius-lg: 24px;
      --radius-md: 16px;
  }

  body {
      font-family: 'Outfit', sans-serif;
      background-color: var(--bg-body);
      color: var(--text-dark);
      padding-bottom: 90px;
  }

  /* --- Navbar Tamu Desktop (Khusus Belum Login) --- */
  .navbar-guest {
      background: var(--bg-card);
      padding: 16px 0;
      /* Padding kiri-kanan dihapus, diganti oleh container */
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
      position: sticky;
      top: 0;
      z-index: 1020;
  }

  /* Container untuk meratakan konten Navbar ke tengah */
  .navbar-guest .container {
      max-width: 1200px;
      margin: 0 auto;
  }

  .btn-outline-food {
      color: var(--food-orange);
      border: 2px solid var(--food-orange);
      background: transparent;
      padding: 8px 24px;
      border-radius: var(--radius-md);
      font-weight: 600;
      text-decoration: none;
      transition: 0.2s;
  }

  .btn-outline-food:hover {
      background: var(--food-orange-light);
      color: var(--food-orange);
  }

  .btn-food {
      color: white;
      background: var(--food-orange);
      padding: 8px 24px;
      border-radius: var(--radius-md);
      font-weight: 600;
      text-decoration: none;
      border: 2px solid var(--food-orange);
      transition: 0.2s;
  }

  .btn-food:hover {
      background: #E55B2B;
      border-color: #E55B2B;
      color: white;
  }

  /* --- Sidebar Desktop (Khusus Sudah Login) --- */
  .sidebar-desktop {
      width: 260px;
      height: 100vh;
      background: var(--bg-card);
      position: fixed;
      left: 0;
      top: 0;
      padding: 32px 24px;
      box-shadow: 2px 0 20px rgba(0, 0, 0, 0.03);
      z-index: 1000;
      display: flex;
      flex-direction: column;
  }

  .brand-logo {
      font-size: 1.5rem;
      font-weight: 800;
      color: var(--food-orange);
      display: flex;
      align-items: center;
      gap: 12px;
      text-decoration: none;
  }

  .nav-link-sidebar {
      color: var(--text-muted);
      font-weight: 500;
      padding: 14px 20px;
      border-radius: var(--radius-md);
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 16px;
      transition: 0.3s;
      text-decoration: none;
      position: relative;
  }

  .nav-link-sidebar:hover,
  .nav-link-sidebar.active {
      background-color: var(--food-orange-light);
      color: var(--food-orange);
  }

  .badge-cart-sidebar {
      background-color: var(--food-red);
      color: white;
      font-size: 0.75rem;
      padding: 2px 8px;
      border-radius: 12px;
      margin-left: auto;
      font-weight: bold;
  }

  /* --- Main Container --- */
  .buyer-wrapper {
      max-width: 100%;
      margin: 0 auto;
      padding: 0 16px;
      transition: 0.3s;
  }

  /* --- Mobile Header --- */
  .header-mobile {
      padding: 24px 0 16px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      background: var(--bg-body);
      top: 0;
      z-index: 100;
  }

  .user-avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      object-fit: cover;
      border: 2px solid var(--food-orange-light);
  }

  /* --- Search Bar --- */
  .search-box {
      background: var(--bg-card);
      border-radius: var(--radius-md);
      padding: 12px 16px;
      display: flex;
      align-items: center;
      gap: 12px;
      box-shadow: var(--shadow-soft);
      color: var(--text-muted);
      border: 1px solid rgba(255, 107, 53, 0.1);
  }

  .search-box input {
      border: none;
      background: transparent;
      width: 100%;
      outline: none;
      font-family: inherit;
  }

  /* --- Promo Banner --- */
  .promo-banner {
      background: linear-gradient(135deg, var(--food-orange), var(--food-red));
      border-radius: var(--radius-lg);
      padding: 24px;
      position: relative;
      overflow: hidden;
      margin-bottom: 24px;
      color: white;
      box-shadow: 0 12px 30px rgba(230, 57, 70, 0.2);
  }

  .promo-banner h3 {
      font-weight: 800;
      margin-bottom: 8px;
      position: relative;
      z-index: 2;
  }

  .promo-banner p {
      margin-bottom: 0;
      position: relative;
      z-index: 2;
      opacity: 0.9;
  }

  .promo-banner i {
      position: absolute;
      right: 10px;
      bottom: -30px;
      font-size: 10rem;
      color: rgba(255, 255, 255, 0.15);
      transform: rotate(-15deg);
  }

  /* --- Categories --- */
  .category-scroll {
      display: flex;
      gap: 12px;
      overflow-x: auto;
      padding-bottom: 12px;
      margin-bottom: 16px;
      scrollbar-width: none;
  }

  .category-scroll::-webkit-scrollbar {
      display: none;
  }

  .category-pill {
      background: var(--bg-card);
      padding: 10px 20px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      gap: 8px;
      font-weight: 500;
      white-space: nowrap;
      box-shadow: var(--shadow-soft);
      color: var(--text-dark);
      text-decoration: none;
      transition: 0.2s;
      border: 1px solid transparent;
  }

  .category-pill:hover,
  .category-pill.active {
      background: var(--food-yellow-light);
      color: var(--food-orange);
      border-color: var(--food-yellow);
  }

  /* --- Menu Cards --- */
  .menu-card {
      background: var(--bg-card);
      border-radius: var(--radius-md);
      padding: 12px;
      display: flex;
      flex-direction: row;
      gap: 16px;
      box-shadow: var(--shadow-soft);
      height: 100%;
      transition: 0.2s;
      border: 1px solid rgba(0, 0, 0, 0.02);
  }

  .menu-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 12px 40px rgba(255, 107, 53, 0.15);
      border-color: var(--food-orange-light);
  }

  .menu-img {
      width: 80px;
      height: 80px;
      border-radius: 12px;
      object-fit: cover;
  }

  .menu-info {
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
  }

  .btn-add {
      width: 32px;
      height: 32px;
      border-radius: 10px;
      background: var(--food-orange-light);
      color: var(--food-orange);
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.2rem;
      cursor: pointer;
      transition: 0.2s;
      font-weight: bold;
  }

  .btn-add:hover {
      background: var(--food-orange);
      color: #fff;
  }

  /* --- Bottom Nav (Mobile Only) --- */
  .bottom-nav {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(10px);
      padding: 12px 24px 20px 24px;
      box-shadow: 0 -10px 40px rgba(255, 107, 53, 0.08);
      border-top-left-radius: var(--radius-lg);
      border-top-right-radius: var(--radius-lg);
      z-index: 1000;
      display: flex;
      justify-content: space-around;
  }

  .nav-item-mobile {
      display: flex;
      flex-direction: column;
      align-items: center;
      color: var(--text-muted);
      text-decoration: none;
      font-size: 0.75rem;
      font-weight: 500;
      gap: 4px;
      position: relative;
  }

  .nav-item-mobile i {
      font-size: 1.4rem;
  }

  .nav-item-mobile.active {
      color: var(--food-orange);
  }

  .badge-cart {
      position: absolute;
      top: -4px;
      right: 0;
      background-color: var(--food-red);
      color: white;
      font-size: 0.6rem;
      padding: 2px 6px;
      border-radius: 10px;
      border: 2px solid white;
  }

  /* =========================================
           DESKTOP OVERRIDES (Layar Besar) 
           ========================================= */
  @media (min-width: 992px) {
      body {
          padding-bottom: 0;
      }

      .buyer-wrapper {
          padding: 32px 40px;
      }

      /* Jika LOGGED IN (Sidebar aktif) */
      .buyer-wrapper.auth-mode {
          margin-left: 260px;
      }

      /* Jika GUEST (Tidak ada Sidebar, buat ketengah) */
      .buyer-wrapper.guest-mode {
          margin-left: auto;
          margin-right: auto;
          max-width: 1200px;
          /* Lebar maksimal konten menyamai navbar */
      }

      .menu-card {
          flex-direction: column;
          padding: 16px;
      }

      .menu-img {
          width: 100%;
          height: 180px;
      }

      .btn-add {
          width: 40px;
          height: 40px;
      }

      .header-desktop-top {
          display: flex;
          justify-content: space-between;
          align-items: center;
          margin-bottom: 24px;
      }
  }