/* ============================================
   PAPYON — Black & Gold on White
   ============================================ */

:root {
  --gold: #C9A84C;
  --gold-light: #E2C96A;
  --gold-dark: #A88A2E;
  --gold-bg: #FAF5E8;
  --gold-bg-hover: #F5EDD4;
  --black: #1a1a1a;
  --black-soft: #2d2d2d;
  --white: #ffffff;
  --gray-50: #fafafa;
  --gray-100: #f5f5f5;
  --gray-200: #e5e5e5;
  --gray-300: #d4d4d4;
  --gray-400: #a3a3a3;
  --gray-500: #737373;
  --gray-600: #525252;
  --gray-700: #404040;
  --gray-800: #262626;
  --gray-900: #171717;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --radius: 12px;
  --radius-sm: 8px;
  --radius-lg: 16px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --shadow: 0 4px 12px rgba(0,0,0,0.08);
  --shadow-lg: 0 10px 30px rgba(0,0,0,0.12);
  --shadow-gold: 0 4px 16px rgba(201,168,76,0.25);
  --transition: 0.2s cubic-bezier(.4,0,.2,1);
}

/* ── Base ────────────────────────────────── */
* { box-sizing: border-box; }

body {
  font-family: var(--font-body);
  color: var(--black);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body.page-public {
  background: var(--white);
}

body.page-kitchen,
body.page-dashboard {
  background: var(--gray-900);
  color: #fff;
}

.gold { color: var(--gold) !important; }
.muted { color: var(--gray-500) !important; }

/* ── Utility ─────────────────────────────── */
.btn-gold {
  background: var(--gold);
  color: var(--black);
  border: none;
  font-weight: 600;
  border-radius: var(--radius-sm);
  transition: var(--transition);
  letter-spacing: 0.01em;
}
.btn-gold:hover {
  background: var(--gold-light);
  color: var(--black);
  transform: translateY(-1px);
  box-shadow: var(--shadow-gold);
}
.btn-gold:active {
  transform: translateY(0);
}

.btn-outline-gold {
  border: 1.5px solid var(--gold);
  color: var(--gold);
  background: transparent;
  font-weight: 500;
  border-radius: var(--radius-sm);
  transition: var(--transition);
}
.btn-outline-gold:hover {
  background: var(--gold);
  color: var(--black);
}

/* ── Topbar (Public) ─────────────────────── */
.page-public .sticky-topbar {
  position: sticky;
  top: 0;
  z-index: 1040;
  background: var(--white);
  border-bottom: 1px solid var(--gray-200);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.page-public .brand {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--black);
}

.page-public .brand-sub {
  color: var(--gray-500);
  font-size: 0.8rem;
  font-weight: 400;
}

.brand-icon {
  display: flex;
  align-items: center;
}

.topbar-phone-link {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--gold-dark);
  font-weight: 500;
  font-size: 0.875rem;
  text-decoration: none;
  padding: 6px 12px;
  border-radius: var(--radius-sm);
  transition: var(--transition);
}
.topbar-phone-link:hover {
  background: var(--gold-bg);
  color: var(--gold-dark);
}

.btn-cart {
  position: relative;
  background: var(--black);
  color: var(--white);
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  transition: var(--transition);
}
.btn-cart:hover {
  background: var(--black-soft);
  color: var(--gold);
  transform: scale(1.05);
}
.cart-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--gold);
  color: var(--black);
  font-size: 0.65rem;
  font-weight: 700;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* ── Topbar (Kitchen / Dashboard) ────────── */
.page-kitchen .sticky-topbar,
.page-dashboard .sticky-topbar {
  position: sticky;
  top: 0;
  z-index: 1040;
  background: var(--gray-900);
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.page-kitchen .brand,
.page-dashboard .brand {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fff;
}

.page-kitchen .brand-sub {
  color: var(--gray-400);
  font-size: 0.8rem;
}

/* ── Hero Section ────────────────────────── */
.pub-hero {
  background: var(--black);
  padding: 2rem 0;
  position: relative;
  overflow: hidden;
}
.pub-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(ellipse at 20% 50%, rgba(201,168,76,0.12) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 50%, rgba(201,168,76,0.08) 0%, transparent 60%);
  pointer-events: none;
}
.pub-hero-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  position: relative;
  z-index: 1;
}
.pub-hero-title {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 800;
  color: var(--white);
  letter-spacing: 0.06em;
  margin: 0;
}
.pub-hero-sub {
  color: var(--gold);
  font-size: 1rem;
  font-weight: 500;
  margin: 0.25rem 0 0;
  letter-spacing: 0.02em;
}
.pub-hero-info {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.pub-hours {
  color: var(--gray-400);
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pub-hours i { color: var(--gold); }
.pub-call-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--gold);
  color: var(--black);
  font-weight: 600;
  font-size: 0.85rem;
  padding: 8px 16px;
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: var(--transition);
}
.pub-call-link:hover {
  background: var(--gold-light);
  color: var(--black);
  transform: translateY(-1px);
  box-shadow: var(--shadow-gold);
}

@media (max-width: 576px) {
  .pub-hero { padding: 1.25rem 0; }
  .pub-hero-title { font-size: 1.5rem; }
  .pub-hero-info { gap: 0.75rem; }
  .pub-call-link { font-size: 0.8rem; padding: 6px 12px; }
}

/* ── Table Banner ────────────────────────── */
.table-banner {
  background: var(--gold);
  color: var(--black);
  padding: 10px 16px;
  font-weight: 600;
  font-size: 0.9rem;
  text-align: center;
}
.table-order-badge {
  background: var(--gold-bg);
  color: var(--gold-dark);
  border: 1px solid var(--gold);
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  font-weight: 600;
}
.quick-order-badge {
  background: var(--gray-100);
  color: var(--black);
  border: 1px solid var(--gray-200);
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
}
.quick-order-badge i {
  color: var(--gold);
}

/* ── Category Slider (mobile) ────────────── */
.cat-slider-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border-bottom: 1px solid var(--gray-200);
  background: var(--white);
  position: sticky;
  top: 60px;
  z-index: 1030;
}
.cat-slider-wrap::-webkit-scrollbar { display: none; }
.cat-slider {
  display: flex;
  gap: 4px;
  padding: 10px 16px;
  white-space: nowrap;
}

@media (min-width: 992px) {
  .cat-slider-wrap { display: none; }
}

/* ── Category Sidebar (desktop) ──────────── */
.cat-sidebar {
  position: sticky;
  top: 90px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.page-public .cat-sidebar .cat-btn,
.page-public .cat-slider .cat-btn {
  display: block;
  width: 100%;
  text-align: left;
  padding: 10px 14px;
  border: none;
  background: transparent;
  color: var(--gray-600);
  font-weight: 500;
  font-size: 0.9rem;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.page-public .cat-sidebar .cat-btn:hover {
  background: var(--gray-100);
  color: var(--black);
}
.page-public .cat-sidebar .cat-btn.active,
.page-public .cat-slider .cat-btn.active {
  background: var(--black);
  color: var(--gold);
  font-weight: 600;
}
.page-public .cat-slider .cat-btn {
  display: inline-block;
  width: auto;
  padding: 6px 14px;
  font-size: 0.82rem;
  border-radius: 20px;
}

/* ── Search Box ──────────────────────────── */
.search-box {
  position: relative;
}
.search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gray-400);
  font-size: 0.85rem;
  pointer-events: none;
}
.page-public .search-box .form-control {
  padding-left: 36px;
  background: var(--gray-100);
  border: 1px solid var(--gray-200);
  color: var(--black);
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
}
.page-public .search-box .form-control:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
  background: var(--white);
}

/* ── Section Titles ──────────────────────── */
.section-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--black);
  margin-bottom: 0.25rem;
}
.section-hint {
  color: var(--gray-500);
  font-size: 0.875rem;
  margin-bottom: 1rem;
}

/* ── Dish Cards ──────────────────────────── */
.dish-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  padding: 1rem;
  transition: var(--transition);
  height: 100%;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.dish-card:hover {
  border-color: var(--gold);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}
.dish-card .dish-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  background: var(--gold-bg);
  color: var(--gold-dark);
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 6px;
  flex-shrink: 0;
}
.dish-card .dish-name {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--black);
  line-height: 1.3;
}
.dish-card .dish-desc {
  color: var(--gray-500);
  font-size: 0.8rem;
  line-height: 1.4;
  margin-top: 4px;
  flex-grow: 1;
}
.dish-card .dish-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 0.75rem;
}
.dish-card .dish-price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--black);
}
.dish-card .dish-price .from-label {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 0.7rem;
  color: var(--gray-500);
}
.dish-card .dish-add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 10px 0;
  margin-top: 10px;
  background: var(--black);
  color: var(--white);
  border: none;
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: var(--transition);
  cursor: pointer;
}
.dish-card .dish-add-btn:hover {
  background: var(--gold);
  color: var(--black);
  transform: none;
}

/* Allergen superscripts on dish cards */
.dish-card .allergen-line {
  margin-top: 6px;
  line-height: 1;
}
.dish-card .allergen-sup {
  font-size: 0.65rem;
  color: var(--gray-400);
  font-weight: 500;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: var(--transition);
  vertical-align: super;
}
.dish-card .allergen-sup:hover {
  color: var(--gold-dark);
}
/* Allergen superscript - letter (EU) */
.dish-card .allergen-sup .a-letter {
  font-weight: 600;
  color: var(--gray-500);
}
/* Allergen superscript - number (additive) */
.dish-card .allergen-sup .a-number {
  font-weight: 500;
  color: var(--gray-400);
}

/* Allergen info bar / link */
.allergen-info-bar {
  text-align: center;
  padding: 0.5rem 0;
}
.allergen-info-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  color: var(--gray-400);
  font-size: 0.78rem;
  font-weight: 500;
  cursor: pointer;
  padding: 6px 14px;
  border-radius: var(--radius-sm);
  transition: var(--transition);
}
.allergen-info-link:hover {
  color: var(--gold-dark);
  background: var(--gold-bg);
}
.allergen-info-link i {
  font-size: 0.85rem;
}

/* Allergen modal content */
.allergen-section-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--black);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--gold-bg);
}
.allergen-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 6px;
}
.allergen-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  transition: var(--transition);
}
.allergen-row:hover {
  background: var(--gray-50);
}
.allergen-row .a-id {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 22px;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  flex-shrink: 0;
}
.allergen-row .a-id.a-id-letter {
  background: var(--gold-bg);
  color: var(--gold-dark);
  border: 1px solid rgba(201,168,76,0.3);
}
.allergen-row .a-id.a-id-number {
  background: var(--gray-100);
  color: var(--gray-600);
  border: 1px solid var(--gray-200);
}
.allergen-row .a-name {
  font-size: 0.82rem;
  color: var(--gray-700);
  font-weight: 400;
}

/* Tag badges */
.dish-card .tag-badge {
  font-size: 0.7rem;
  padding: 2px 7px;
  border-radius: 4px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

/* Variant pills (for pizza sizes etc.) */
.variant-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition);
  border: 1px solid var(--gray-200);
  background: var(--gray-50);
  color: var(--gray-700);
}
.variant-pill.active,
.variant-pill:hover {
  border-color: var(--gold);
  background: var(--gold-bg);
  color: var(--gold-dark);
}
.variant-pill .vp-price {
  font-weight: 700;
}

/* Featured dish card accent */
.dish-card.featured {
  border-color: var(--gold);
  background: linear-gradient(135deg, var(--white) 0%, var(--gold-bg) 100%);
}
.dish-card.featured::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-light));
}

/* Unavailable dish */
.dish-card.unavailable {
  opacity: 0.5;
  pointer-events: none;
}

/* ── Cart Offcanvas ──────────────────────── */
.offcanvas-cart {
  background: var(--white);
  color: var(--black);
  border-left: 1px solid var(--gray-200);
  max-width: 420px;
  width: 100%;
}
.offcanvas-cart .offcanvas-header {
  border-bottom: 1px solid var(--gray-200);
  padding: 1rem 1.25rem;
}
.offcanvas-cart .offcanvas-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.1rem;
}

.cart-footer {
  border-top: 1px solid var(--gray-200);
  background: var(--gray-50);
}

/* Cart items */
.cart-item {
  display: flex;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--gray-100);
  align-items: flex-start;
}
.cart-item:last-child { border-bottom: none; }
.cart-item .ci-qty {
  background: var(--gold-bg);
  color: var(--gold-dark);
  font-weight: 700;
  font-size: 0.8rem;
  min-width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  flex-shrink: 0;
}
.cart-item .ci-name {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--black);
}
.cart-item .ci-variant {
  font-size: 0.75rem;
  color: var(--gray-500);
}
.cart-item .ci-mods {
  font-size: 0.72rem;
  color: var(--gray-500);
  font-style: italic;
}
.cart-item .ci-extras {
  font-size: 0.72rem;
  color: var(--gold-dark);
}
.cart-item .ci-removed {
  font-size: 0.72rem;
  color: #dc3545;
  text-decoration: line-through;
}
.cart-item .ci-price {
  margin-left: auto;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--black);
  white-space: nowrap;
}
.cart-item .ci-actions {
  display: flex;
  gap: 4px;
  margin-top: 4px;
}
.cart-item .ci-actions button {
  background: var(--gray-100);
  border: none;
  color: var(--gray-600);
  font-size: 0.72rem;
  padding: 2px 8px;
  border-radius: 4px;
  cursor: pointer;
  transition: var(--transition);
}
.cart-item .ci-actions button:hover {
  background: var(--gray-200);
  color: var(--black);
}
.cart-item .ci-actions .ci-delete:hover {
  background: #fde8e8;
  color: #dc3545;
}

/* Cart empty */
.cart-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--gray-400);
}
.cart-empty i { font-size: 2.5rem; display: block; margin-bottom: 0.75rem; }

/* ── Order Type Buttons ──────────────────── */
.order-type-btn {
  background: var(--gray-100);
  border: 1.5px solid var(--gray-200);
  color: var(--gray-600);
  font-weight: 500;
  border-radius: var(--radius-sm);
  transition: var(--transition);
}
.order-type-btn.active,
.order-type-btn:hover {
  background: var(--black);
  border-color: var(--black);
  color: var(--gold);
}

/* ── Payment Options ─────────────────────── */
.pay-option {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 14px;
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--gray-600);
  transition: var(--transition);
}
.pay-option input { display: none; }
.pay-option.active,
.pay-option:hover {
  border-color: var(--gold);
  background: var(--gold-bg);
  color: var(--gold-dark);
}

/* ── Form Controls (Public) ──────────────── */
.page-public .form-control {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  color: var(--black);
  border-radius: var(--radius-sm);
}
.page-public .form-control:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
  background: var(--white);
}
.page-public .form-control::placeholder {
  color: var(--gray-400);
}

/* ── Modals (Public) ─────────────────────── */
.modal-papyon {
  background: var(--white);
  color: var(--black);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.modal-papyon .modal-header {
  border-bottom: 1px solid var(--gray-200);
  padding: 1rem 1.25rem;
}
.modal-papyon .modal-title {
  font-family: var(--font-display);
  font-weight: 700;
}
.modal-papyon .modal-footer {
  border-top: 1px solid var(--gray-200);
}

/* Ingredient checkboxes in modal */
.ing-check {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: var(--transition);
}
.ing-check:hover {
  background: var(--gray-100);
}
.ing-check input[type="checkbox"] {
  accent-color: var(--gold);
  width: 16px;
  height: 16px;
}
.ing-check .ing-name {
  font-weight: 500;
  font-size: 0.9rem;
}
.ing-check .ing-price {
  margin-left: auto;
  font-size: 0.8rem;
  color: var(--gray-500);
  font-weight: 500;
}

/* ── Order Tracking Screen ───────────────── */
.ot-screen {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: var(--white);
  overflow-y: auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 2rem 1rem;
}
.ot-screen-inner {
  max-width: 500px;
  width: 100%;
}
.ot-logo {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 800;
  color: var(--black);
  letter-spacing: 0.06em;
}
.ot-header-sub {
  color: var(--gold);
  font-weight: 500;
}
.ot-call-btn {
  border-radius: var(--radius);
  font-size: 1rem;
  line-height: 1.5;
}
.ot-call-btn small {
  font-weight: 400;
  opacity: 0.85;
}

/* Pipeline steps */
.ot-pipeline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0.5rem 0;
}
.ot-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.ot-step-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gray-200);
  border: 2px solid var(--gray-300);
  transition: var(--transition);
}
.ot-step.reached .ot-step-dot {
  background: var(--gold);
  border-color: var(--gold);
  box-shadow: 0 0 0 4px rgba(201,168,76,0.2);
}
.ot-step.current .ot-step-dot {
  background: var(--gold);
  border-color: var(--gold-dark);
  box-shadow: 0 0 0 4px rgba(201,168,76,0.3);
  animation: pulse-dot 2s infinite;
}
@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 4px rgba(201,168,76,0.2); }
  50% { box-shadow: 0 0 0 8px rgba(201,168,76,0.1); }
}
.ot-step-label {
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--gray-500);
  white-space: nowrap;
}
.ot-step.reached .ot-step-label,
.ot-step.current .ot-step-label {
  color: var(--gold-dark);
  font-weight: 600;
}
.ot-step-line {
  flex: 1;
  height: 2px;
  background: var(--gray-200);
  min-width: 20px;
  margin: 0 4px;
  margin-bottom: 22px;
  transition: var(--transition);
}
.ot-step-line.reached {
  background: var(--gold);
}

/* ── Pill (general) ──────────────────────── */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.78rem;
  background: var(--gray-100);
  color: var(--gray-600);
  border: 1px solid var(--gray-200);
  transition: var(--transition);
}
.pill:hover {
  background: var(--gray-200);
  color: var(--black);
}

/* ============================================
   KITCHEN STYLES (dark theme)
   ============================================ */
.page-kitchen .k-login-card {
  background: var(--gray-800);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-lg);
}
.page-kitchen .k-login-icon {
  font-size: 3rem;
  color: var(--gold);
  display: block;
}
.page-kitchen .k-toolbar { }
.page-kitchen .k-fire-icon {
  font-size: 1.5rem;
  color: #f97316;
}

.page-kitchen .k-search-group {
  max-width: 220px;
}
.page-kitchen .k-search-group .input-group-text {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.1);
  color: var(--gray-400);
}
.page-kitchen .k-search-group .form-control {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.1);
  color: #fff;
}

/* Filter bar */
.k-filter-bar { }
.k-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  color: var(--gray-400);
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition);
}
.k-filter-btn:hover {
  background: rgba(255,255,255,0.1);
  color: #fff;
}
.k-filter-btn.active {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--black);
  font-weight: 600;
}
.k-filter-count {
  background: rgba(255,255,255,0.15);
  padding: 1px 6px;
  border-radius: 10px;
  font-size: 0.72rem;
  font-weight: 700;
}
.k-filter-btn.active .k-filter-count {
  background: rgba(0,0,0,0.2);
}

/* Status dots */
.k-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dot-new { background: #3b82f6; }
.dot-in { background: #f59e0b; }
.dot-done { background: #22c55e; }
.dot-handed { background: #8b5cf6; }
.dot-canceled { background: #ef4444; }

/* Kitchen order cards */
.k-order-card {
  background: var(--gray-800);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
  padding: 1rem;
  cursor: pointer;
  transition: var(--transition);
}
.k-order-card:hover {
  border-color: var(--gold);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
.k-order-card .k-code {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--gold);
}

/* Kitchen modal */
.k-modal-content {
  background: var(--gray-800);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-lg);
}

/* ============================================
   DASHBOARD STYLES (dark theme)
   ============================================ */
.dash-nav {
  background: var(--gray-900) !important;
}
.dash-sidebar {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.dash-nav-btn {
  display: block;
  width: 100%;
  text-align: left;
  padding: 10px 14px;
  border: none;
  background: transparent;
  color: var(--gray-400);
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: var(--transition);
}
.dash-nav-btn:hover {
  background: rgba(255,255,255,0.05);
  color: #fff;
}
.dash-nav-btn.active {
  background: rgba(201,168,76,0.15);
  color: var(--gold);
  font-weight: 600;
}

.dash-section { }
.dash-card {
  background: var(--gray-800);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.dash-stat-card {
  background: var(--gray-800);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  min-width: 120px;
  text-align: center;
}
.dash-stat-value {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--gold);
}

/* Dashboard form controls */
.page-dashboard .form-control,
.page-dashboard .form-select {
  background: rgba(255,255,255,0.05);
  border-color: rgba(255,255,255,0.1);
  color: #fff;
}
.page-dashboard .form-control:focus,
.page-dashboard .form-select:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
  background: rgba(255,255,255,0.08);
}

/* Nav tabs for dashboard */
.nav-tabs-dark .nav-link {
  color: var(--gray-400);
  border: none;
  border-bottom: 2px solid transparent;
  padding: 8px 16px;
  font-size: 0.875rem;
  font-weight: 500;
}
.nav-tabs-dark .nav-link:hover {
  color: #fff;
  border-color: rgba(255,255,255,0.2);
}
.nav-tabs-dark .nav-link.active {
  color: var(--gold);
  border-color: var(--gold);
  background: transparent;
}

/* ============================================
   ANIMATIONS
   ============================================ */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.dish-card {
  animation: fadeInUp 0.35s ease both;
}
.dish-card:nth-child(1) { animation-delay: 0.02s; }
.dish-card:nth-child(2) { animation-delay: 0.04s; }
.dish-card:nth-child(3) { animation-delay: 0.06s; }
.dish-card:nth-child(4) { animation-delay: 0.08s; }
.dish-card:nth-child(5) { animation-delay: 0.10s; }
.dish-card:nth-child(6) { animation-delay: 0.12s; }

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 767px) {
  .dish-card { padding: 0.85rem; }
  .dish-card .dish-name { font-size: 0.88rem; }
  .dish-card .dish-add-btn { padding: 9px 0; font-size: 0.82rem; }
  .section-title { font-size: 1.2rem; }
  .bottom-cart-bar { padding: 12px 16px; }
  .bottom-cart-total { font-size: 1rem; }
}

/* ============================================
   SCROLLBAR (Public)
   ============================================ */
.page-public ::-webkit-scrollbar {
  width: 6px;
}
.page-public ::-webkit-scrollbar-track {
  background: var(--gray-100);
}
.page-public ::-webkit-scrollbar-thumb {
  background: var(--gray-300);
  border-radius: 3px;
}
.page-public ::-webkit-scrollbar-thumb:hover {
  background: var(--gray-400);
}

/* Kitchen dark scrollbar */
.page-kitchen ::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.2);
}

/* ============================================
   PRINT
   ============================================ */
@media print {
  .sticky-topbar,
  .cat-slider-wrap,
  .cat-sidebar,
  .btn-cart,
  .offcanvas { display: none !important; }
}

/* ── Toast Notifications ──────────────── */
/* ── Bottom Cart Bar (sticky) ────────────── */
.bottom-cart-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  background: var(--black);
  color: var(--white);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
  transition: var(--transition);
  animation: slideUpBar 0.3s ease;
}
@keyframes slideUpBar {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.bottom-cart-bar:hover {
  background: #1a1a1a;
}
.bottom-cart-bar:active {
  transform: scale(0.99);
}
.bottom-cart-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.bottom-cart-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  background: var(--gold);
  color: var(--black);
  font-weight: 700;
  font-size: 0.85rem;
  border-radius: 20px;
}
.bottom-cart-label {
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.02em;
}
.bottom-cart-right {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bottom-cart-total {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--gold);
}
.bottom-cart-right i {
  font-size: 0.85rem;
  opacity: 0.6;
}

/* Add bottom padding to page so content isn't hidden behind bottom bar */
body.page-public {
  padding-bottom: 70px;
}

.toast-notification {
  background: var(--black);
  color: var(--white);
  padding: 12px 20px;
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
  font-weight: 500;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s ease;
  margin-top: 8px;
  border-left: 3px solid var(--gold);
}
.toast-notification.show {
  opacity: 1;
  transform: translateY(0);
}
.toast-notification i { color: var(--gold); margin-right: 6px; }

/* ── Cart Item Styles ─────────────────── */
.cart-item {
  padding: 12px 0;
  border-bottom: 1px solid var(--gray-200);
}
.cart-item:last-child { border-bottom: none; }
.cart-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.cart-item-name { font-weight: 600; font-size: 0.95rem; }
.cart-item-price { font-weight: 700; color: var(--gold-dark); white-space: nowrap; }
.cart-item-variant { font-size: 0.82rem; color: var(--gray-500); margin-top: 2px; }
.cart-extras { font-size: 0.8rem; margin-top: 2px; }
.cart-item-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
}
.qty-control {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.qty-btn {
  width: 32px;
  height: 32px;
  border: none;
  background: var(--gray-100);
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: background var(--transition);
}
.qty-btn:hover { background: var(--gray-200); }
.qty-val {
  width: 36px;
  text-align: center;
  font-weight: 600;
  font-size: 0.9rem;
}
