       /* --- PARTICLES ANIMATION --- */
       .particles-container {
           position: fixed;
           top: 0;
           left: 0;
           width: 100%;
           height: 100%;
           pointer-events: none;
           z-index: 0;
           overflow: hidden;
       }


       .particle {
           position: absolute;
           background: radial-gradient(circle, var(--gold) 0%, transparent 70%);
           border-radius: 50%;
           opacity: 0.6;
           animation: float-particle linear infinite;
       }


       @keyframes float-particle {
           0% {
               transform: translateY(0) scale(1) rotate(0deg);
               opacity: 0;
           }


           20% {
               opacity: 0.8;
           }


           80% {
               opacity: 0.5;
           }


           100% {
               transform: translateY(-100vh) scale(0.5) rotate(360deg);
               opacity: 0;
           }
       }


       /* --- IMAGE FLOAT ANIMATION --- */
       @keyframes gentle-float {


           0%,
           100% {
               transform: translateY(0px);
           }


           50% {
               transform: translateY(-6px);
           }
       }


       @keyframes pulse-glow {


           0%,
           100% {
               box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
           }


           50% {
               box-shadow: 0 8px 25px rgba(255, 214, 10, 0.15);
           }
       }


       @keyframes fade-in-up {
           from {
               opacity: 0;
               transform: translateY(15px);
           }


           to {
               opacity: 1;
               transform: translateY(0);
           }
       }


       /* --- IMMERSIVE MODE & TOAST --- */
       .immersive-mode .sticky-header,
       .immersive-mode .bottom-bar,
       .immersive-mode .book-nav {
           opacity: 0 !important;
           pointer-events: none !important;
           transform: translateY(-20px);
       }


       .immersive-mode .bottom-bar {
           transform: translateY(20px);
       }


       .sticky-header,
       .bottom-bar,
       .book-nav {
           transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
       }


       #piterToast {
           position: fixed;
           top: 50%;
           left: 50%;
           transform: translateX(-50%) translateY(-30%) scale(0.8);
           background: rgba(10, 10, 15, 0.95);
           backdrop-filter: blur(20px);
           color: white;
           padding: 40px;
           border-radius: 40px;
           z-index: 5000;
           opacity: 0;
           visibility: hidden;
           transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
           box-shadow: 0 30px 100px rgba(0, 0, 0, 0.9), 0 0 40px var(--accent-glow);
           border: 2px solid var(--accent);
           text-align: center;
           max-width: 300px;
           width: 80%;
       }


       #piterToast.show {
           opacity: 1;
           visibility: visible;
           transform: translateX(-50%) translateY(-50%) scale(1);
       }
      
       .toast-icon {
           width: 80px;
           height: 80px;
           background: var(--accent);
           border-radius: 50%;
           display: flex;
           align-items: center;
           justify-content: center;
           margin: 0 auto 20px;
           box-shadow: 0 0 30px var(--accent-glow);
           animation: pulse-glow 2s infinite;
       }


       .toast-icon i {
           width: 40px;
           height: 40px;
           color: white;
       }
      
       .toast-title {
           font-size: 20px;
           font-weight: 900;
           margin-bottom: 8px;
           color: var(--accent);
           text-transform: uppercase;
           letter-spacing: 2px;
       }
      
       .toast-body {
           font-size: 14px;
           color: white;
           opacity: 0.9;
           font-weight: 600;
           line-height: 1.4;
       }


       .toggle-immersive {
           position: fixed;
           top: 25px;
           right: 25px;
           width: 48px;
           height: 48px;
           border-radius: 50%;
           background: rgba(0, 0, 0, 0.6);
           backdrop-filter: blur(8px);
           display: flex;
           align-items: center;
           justify-content: center;
           cursor: pointer;
           transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
           color: var(--gold);
           z-index: 2000;
           border: 1px solid rgba(255, 255, 255, 0.1);
           box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
       }


       .toggle-immersive:hover {
           background: var(--gold);
           color: black;
           transform: scale(1.1) rotate(5deg);
       }


       .immersive-mode .toggle-immersive {
           background: var(--gold);
           color: black;
           border-color: black;
       }


       .img-float {
           animation: gentle-float 4s ease-in-out infinite;
       }


       .img-pulse {
           animation: pulse-glow 3s ease-in-out infinite;
       }


       @keyframes theme-rgb-pulse {
           0% {
               box-shadow: 0 0 5px var(--gold);
           }


           50% {
               box-shadow: 0 0 20px var(--gold), 0 0 30px var(--accent);
               opacity: 0.9;
           }


           100% {
               box-shadow: 0 0 5px var(--gold);
           }
       }


       .theme-pulse {
           animation: theme-rgb-pulse 2s infinite;
       }


       .anim-fade-in {
           animation: fade-in-up 0.6s ease both;
       }


       /* --- BACK BUTTON --- */
       .btn-back-landing {
           display: flex;
           align-items: center;
           gap: 6px;
           background: rgba(255, 255, 255, 0.08);
           border: 1px solid rgba(255, 255, 255, 0.12);
           color: var(--text);
           padding: 6px 14px;
           border-radius: 20px;
           font-size: 11px;
           font-weight: 600;
           cursor: pointer;
           transition: all 0.3s ease;
           text-decoration: none;
       }


       .btn-back-landing:hover {
           background: var(--accent);
           color: white;
           transform: scale(1.05);
       }


       .btn-back-landing i {
           width: 14px;
           height: 14px;
       }


       *,
       *::before,
       *::after {
           box-sizing: border-box;
           margin: 0;
           padding: 0;
       }


       :root {
           --bg: #030305;
           --surface: #0a0a0c;
           --surface-2: #121214;
           --surface-3: #1a1a1c;
           --text: #ffffff;
           --text-secondary: #e5e5e7;
           --text-muted: #a1a1a6;
           --accent: #d946ef; /* Neon Pink/Purple from Manager View */
           --accent-glow: rgba(217, 70, 239, 0.4);
           --gold: #d946ef; /* Using accent as gold for neon effect */
           --radius: 20px;
           --radius-sm: 12px;
           --transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
           --font-title: 'Playfair Display', serif;
           --font-body: 'Inter', sans-serif;
       }


       html {
           scroll-behavior: smooth;
       }


       body {
           font-family: var(--font-body, 'Inter'), -apple-system, BlinkMacSystemFont, sans-serif;
           background: var(--bg);
           color: var(--text);
           overflow-x: hidden;
           overflow-y: auto;
           height: 100dvh;
           display: flex;
           flex-direction: column;
           -webkit-font-smoothing: antialiased;
       }


       /* ====== LANDING OVERLAY ====== */
       .landing-overlay {
           position: fixed;
           inset: 0;
           z-index: 9999;
           display: flex;
           align-items: center;
           justify-content: center;
           background: var(--bg);
           transition: opacity 0.5s ease, transform 0.5s ease;
       }


       .landing-overlay.dismiss {
           opacity: 0;
           transform: scale(1.05);
           pointer-events: none;
       }


       .landing-bg {
           position: absolute;
           inset: 0;
           background: radial-gradient(ellipse at 50% 0%, rgba(255, 59, 48, 0.08) 0%, transparent 60%),
               radial-gradient(ellipse at 80% 100%, rgba(255, 214, 10, 0.05) 0%, transparent 50%);
       }


       .landing-card {
           position: relative;
           z-index: 1;
           width: 100%;
           max-width: 400px;
           padding: 0 24px;
           animation: landingIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
       }


       @keyframes landingIn {
           from {
               opacity: 0;
               transform: translateY(50px) scale(0.97);
           }


           to {
               opacity: 1;
               transform: translateY(0) scale(1);
           }
       }


       .landing-logo {
           width: 50px;
           height: 50px;
           margin: 0 auto 10px;
           background: linear-gradient(135deg, var(--accent), #ff6b35);
           border-radius: 16px;
           display: flex;
           align-items: center;
           justify-content: center;
           box-shadow: 0 4px 15px var(--accent-glow);
           transform: rotate(6deg);
           opacity: 0.8;
       }


       .landing-logo i {
           color: white;
           width: 24px;
           height: 24px;
       }


       .landing-title {
           font-family: 'Playfair Display', serif;
           font-size: 26px;
           font-weight: 700;
           text-align: center;
           margin-bottom: 4px;
           letter-spacing: -0.5px;
           opacity: 0.9;
       }


       .landing-mesa {
           display: flex;
           align-items: center;
           justify-content: center;
           gap: 6px;
           color: var(--text-muted);
           font-size: 12px;
           margin-bottom: 12px;
           opacity: 0.7;
       }


       .landing-mesa i {
           width: 12px;
           height: 12px;
           color: var(--accent);
       }


       .landing-options {
           background: var(--surface);
           border: 1px solid rgba(255, 255, 255, 0.06);
           border-radius: 20px;
           padding: 20px;
       }


       .landing-q {
           text-align: center;
           color: var(--text-secondary);
           font-size: 14px;
           margin-bottom: 16px;
           font-weight: 500;
       }


       .landing-btn {
           display: flex;
           align-items: center;
           gap: 14px;
           width: 100%;
           padding: 16px;
           border-radius: 14px;
           border: none;
           cursor: pointer;
           text-align: left;
           transition: var(--transition);
           text-decoration: none;
       }


       .landing-btn:active {
           transform: scale(0.97);
       }


       .landing-btn-app {
           background: linear-gradient(135deg, #0a84ff, #0050ff);
           color: white;
           margin-bottom: 10px;
       }


       .landing-btn-app:hover {
           box-shadow: 0 4px 20px rgba(10, 132, 255, 0.3);
           transform: translateY(-1px);
       }


       .landing-btn-web {
           background: var(--surface-2);
           border: 1px solid rgba(255, 255, 255, 0.08) !important;
           color: var(--text);
       }


       .landing-btn-web:hover {
           background: var(--surface-3);
       }


       .landing-btn-icon {
           width: 44px;
           height: 44px;
           border-radius: 12px;
           display: flex;
           align-items: center;
           justify-content: center;
           flex-shrink: 0;
       }


       .landing-btn-app .landing-btn-icon {
           background: rgba(255, 255, 255, 0.15);
       }


       .landing-btn-web .landing-btn-icon {
           background: rgba(255, 255, 255, 0.06);
       }


       .landing-btn-icon i {
           width: 22px;
           height: 22px;
       }


       .landing-btn-label h3 {
           font-size: 15px;
           font-weight: 700;
           margin-bottom: 2px;
       }


       .landing-btn-label p {
           font-size: 11px;
           opacity: 0.6;
       }


       .landing-footer {
           text-align: center;
           margin-top: 24px;
           font-size: 10px;
           color: var(--text-muted);
       }


       .landing-footer span {
           color: var(--accent);
           font-weight: 700;
       }


       /* --- QUICK ACTIONS GRID --- */
       .landing-actions {
           display: grid;
           grid-template-columns: repeat(3, 1fr);
           gap: 12px;
           margin-top: 16px;
           padding-top: 16px;
           border-top: 1px solid rgba(255, 255, 255, 0.08);
       }


       .action-item {
           display: flex;
           flex-direction: column;
           align-items: center;
           gap: 8px;
           background: linear-gradient(145deg, rgba(255, 214, 10, 0.15) 0%, rgba(255, 59, 48, 0.05) 100%);
           border: 2px solid rgba(255, 214, 10, 0.8);
           padding: 16px 5px;
           border-radius: 20px;
           cursor: pointer;
           transition: all 0.2s;
           text-align: center;
           box-shadow: 0 8px 25px rgba(255, 214, 10, 0.4), inset 0 2px 10px rgba(255,255,255,0.2);
           animation: button-glow-extreme 1.2s infinite alternate;
       }


       @keyframes button-glow-extreme {
           0% { box-shadow: 0 8px 20px rgba(255, 214, 10, 0.4); border-color: rgba(255, 214, 10, 0.6); transform: scale(1); }
           100% { box-shadow: 0 8px 35px rgba(255, 59, 48, 0.7), 0 0 25px rgba(255, 214, 10, 0.9); border-color: rgba(255, 59, 48, 1); transform: scale(1.03); }
       }


       .action-item:hover {
           background: rgba(255, 214, 10, 0.25);
           transform: translateY(-6px) scale(1.05);
       }


       .action-item:active {
           transform: scale(0.92);
       }


       .action-img {
           width: 75px;
           height: 75px;
           object-fit: contain;
           filter: drop-shadow(0 8px 12px rgba(0,0,0,0.6));
           animation: bounce-icon-fast 1.5s ease-in-out infinite;
       }


       @keyframes bounce-icon-fast {
           0%, 100% { transform: translateY(0) scale(1); }
           50% { transform: translateY(-8px) scale(1.1); }
       }


       .action-item:hover .action-img {
           animation: none;
           transform: scale(1.2);
       }


       .action-label {
           font-size: 13px;
           font-weight: 900;
           color: #fff;
           text-transform: uppercase;
           letter-spacing: 1px;
           text-shadow: 0 2px 10px rgba(255,255,255,0.7), 0 2px 4px rgba(0,0,0,0.8);
       }


       .action-timer {
           font-size: 16px;
           font-family: monospace;
           background: #ff3b30;
           color: white;
           padding: 4px 12px;
           border-radius: 8px;
           margin-top: 6px;
           display: none;
           font-weight: 900;
           letter-spacing: 2px;
           box-shadow: 0 0 15px rgba(255, 59, 48, 0.9);
           animation: flash-timer 1s infinite alternate;
       }


       @keyframes flash-timer {
           0% { opacity: 1; transform: scale(1); box-shadow: 0 0 15px rgba(255, 59, 48, 0.9); }
           100% { opacity: 0.6; transform: scale(1.05); box-shadow: 0 0 25px rgba(255, 59, 48, 1); }
       }


       .action-item.disabled {
           opacity: 0.85;
           pointer-events: none;
           filter: grayscale(0.4);
           animation: none;
           border-color: rgba(255, 255, 255, 0.2);
           background: rgba(0,0,0,0.4);
           box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
       }


       /* Efecto Glow dinámico para el botón presionado durante el cooldown */
       .action-item.disabled.glow-mesero {
           box-shadow: 0 0 30px rgba(52, 199, 89, 0.8), inset 0 0 15px rgba(52, 199, 89, 0.4) !important;
           border-color: #34c759 !important;
           filter: grayscale(0) !important;
       }
       .action-item.disabled.glow-cuenta {
           box-shadow: 0 0 30px rgba(10, 132, 255, 0.8), inset 0 0 15px rgba(10, 132, 255, 0.4) !important;
           border-color: #0a84ff !important;
           filter: grayscale(0) !important;
       }
       .action-item.disabled.glow-reclamo {
           box-shadow: 0 0 30px rgba(255, 59, 48, 0.8), inset 0 0 15px rgba(255, 59, 48, 0.4) !important;
           border-color: #ff3b30 !important;
           filter: grayscale(0) !important;
       }


       .action-item.disabled .action-img {
           animation: none;
           transform: scale(0.9);
       }


       .action-item.disabled .action-timer {
           display: inline-block;
       }


       /* --- OPTIONS MODAL --- */
       .options-overlay {
           position: fixed;
           inset: 0;
           background: rgba(0,0,0,0.85);
           backdrop-filter: blur(15px);
           z-index: 11000;
           display: flex;
           align-items: center;
           justify-content: center;
           opacity: 0;
           visibility: hidden;
           transition: all 0.4s ease;
       }
       .options-overlay.visible {
           opacity: 1;
           visibility: visible;
       }
       .options-card {
           background: rgba(20, 20, 25, 0.85);
           border: 1px solid rgba(255, 255, 255, 0.1);
           border-top: 1px solid rgba(255, 255, 255, 0.2);
           border-radius: 30px;
           width: 90%;
           max-width: 350px;
           padding: 35px 20px;
           text-align: center;
           box-shadow: 0 30px 60px rgba(0,0,0,0.9), inset 0 2px 20px rgba(255,255,255,0.03);
           transform: translateY(30px) scale(0.9);
           transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
       }
       .options-overlay.visible .options-card {
           transform: translateY(0) scale(1);
       }
       .options-title {
           font-family: 'Playfair Display', serif;
           font-size: 26px;
           margin-bottom: 30px;
           color: #fff;
           text-shadow: 0 2px 10px rgba(255, 214, 10, 0.5);
           letter-spacing: 1px;
           font-weight: 900;
       }
       .options-grid {
           display: flex;
           flex-direction: column;
           gap: 12px;
       }
       .opt-btn {
           background: linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
           border: 1px solid rgba(255,255,255,0.15);
           color: white;
           padding: 18px;
           border-radius: 20px;
           font-size: 15px;
           font-weight: 800;
           cursor: pointer;
           transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
           text-transform: uppercase;
           letter-spacing: 1px;
           box-shadow: 0 4px 15px rgba(0,0,0,0.2);
           position: relative;
           overflow: hidden;
       }
       .opt-btn::before {
           content: '';
           position: absolute;
           top: 0; left: -100%;
           width: 100%; height: 100%;
           background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
           transition: all 0.4s ease;
       }
       .opt-btn:hover::before {
           left: 100%;
       }
       .opt-btn:hover {
           background: linear-gradient(135deg, var(--accent), #ff6b35);
           border-color: transparent;
           transform: translateY(-4px);
           box-shadow: 0 10px 25px rgba(255, 59, 48, 0.4);
       }
       .opt-btn:active {
           transform: scale(0.95);
       }
       .btn-cancel-opt {
           margin-top: 25px;
           background: rgba(255, 59, 48, 0.1);
           border: 1px solid rgba(255, 59, 48, 0.3);
           color: #ff3b30;
           padding: 14px 35px;
           border-radius: 16px;
           font-size: 14px;
           font-weight: 800;
           cursor: pointer;
           transition: all 0.3s ease;
           text-transform: uppercase;
           letter-spacing: 1.5px;
       }
       .btn-cancel-opt:hover {
           background: #ff3b30;
           color: white;
           transform: translateY(-2px);
           box-shadow: 0 8px 20px rgba(255, 59, 48, 0.4);
       }


       /* ====== STICKY HEADER ====== */
       .sticky-header {
           flex-shrink: 0;
           z-index: 100;
           padding: 10px 20px;
           background: rgba(10, 10, 10, 0.85);
           backdrop-filter: blur(20px) saturate(180%);
           -webkit-backdrop-filter: blur(20px) saturate(180%);
           border-bottom: 1px solid rgba(255, 255, 255, 0.06);
       }


       .header-inner {
           display: flex;
           align-items: center;
           justify-content: space-between;
           max-width: 600px;
           margin: 0 auto;
       }


       .header-brand {
           display: flex;
           align-items: center;
           gap: 10px;
       }


       .header-logo {
           width: 32px;
           height: 32px;
           background: var(--accent);
           border-radius: 8px;
           display: flex;
           align-items: center;
           justify-content: center;
           transform: rotate(3deg);
       }


       .header-logo i {
           width: 18px;
           height: 18px;
           color: white;
       }


       .header-name {
           font-weight: 700;
           font-size: 15px;
           letter-spacing: -0.3px;
       }


       .header-mesa {
           font-size: 11px;
           color: var(--text-muted);
       }


       .header-app-btn {
           padding: 8px 16px;
           background: var(--accent);
           color: white;
           border: none;
           border-radius: 20px;
           font-size: 11px;
           font-weight: 700;
           text-transform: uppercase;
           letter-spacing: 0.5px;
           cursor: pointer;
           text-decoration: none;
           transition: var(--transition);
       }


       .header-app-btn:hover {
           transform: scale(1.05);
           box-shadow: 0 4px 12px var(--accent-glow);
       }


       /* ====== BOTTOM BAR ====== */
       .bottom-bar {
           flex-shrink: 0;
           z-index: 80;
           background: rgba(20, 20, 20, 0.92);
           backdrop-filter: blur(20px);
           -webkit-backdrop-filter: blur(20px);
           border-top: 1px solid rgba(255, 255, 255, 0.06);
           padding: 10px 20px calc(10px + env(safe-area-inset-bottom, 0px));
       }


       .bottom-inner {
           display: flex;
           align-items: center;
           gap: 12px;
           max-width: 600px;
           margin: 0 auto;
       }


       .bottom-icon {
           width: 44px;
           height: 44px;
           background: var(--accent);
           border-radius: 14px;
           display: flex;
           align-items: center;
           justify-content: center;
           flex-shrink: 0;
       }


       .bottom-icon i {
           width: 22px;
           height: 22px;
           color: white;
       }


       .bottom-text {
           flex: 1;
           min-width: 0;
       }


       .bottom-text h4 {
           font-size: 14px;
           font-weight: 700;
           margin-bottom: 1px;
       }


       .bottom-text p {
           font-size: 11px;
           color: var(--text-muted);
       }


       .bottom-app-link {
           padding: 10px 20px;
           background: white;
           color: var(--bg);
           border-radius: 12px;
           font-size: 12px;
           font-weight: 800;
           text-decoration: none;
           text-transform: uppercase;
           letter-spacing: 0.5px;
           transition: var(--transition);
           flex-shrink: 0;
       }


       .bottom-app-link:hover {
           transform: scale(1.05);
       }


       /* ====== FLIPBOOK CSS ====== */
       .book-container {
           flex: 1;
           display: flex;
           justify-content: center;
           align-items: center;
           width: 100vw;
           min-height: 480px;
           /* Evita que el zoom colapse el libro */
           perspective: 2000px;
           background-size: cover;
           background-position: center;
           background-attachment: fixed;
           transition: background-image 0.5s ease;
           overflow: hidden;
           position: relative;
           padding: 20px 0;
       }


       .bg-overlay {
           position: fixed;
           top: 0;
           left: 0;
           right: 0;
           bottom: 0;
           background: rgba(0, 0, 0, 0.6);
           z-index: -1;
       }


       .flipbook {
           z-index: 10;
       }


       .page {
           background-color: var(--surface);
           color: var(--text);
           background-size: cover;
           background-position: center;
           position: relative;
           box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.8);
           overflow: hidden;
           border: 1px solid rgba(217, 70, 239, 0.05); /* Subtle neon border */
       }


       /* --- Fix for Transition Invisibility --- */
       .stPageFlip--flipping .page {
           background-color: var(--bg) !important; /* Force background during flip */
       }


       /* Sombra del lomo del libro */
       .page.--left {
           box-shadow: inset -30px 0 50px rgba(0, 0, 0, 0.7);
       }


       .page.--right {
           box-shadow: inset 30px 0 50px rgba(0, 0, 0, 0.7);
       }


       /* Loader */
       #loader {
           position: fixed;
           inset: 0;
           background: var(--bg);
           z-index: 8000;
           display: flex;
           flex-direction: column;
           align-items: center;
           justify-content: center;
           color: var(--gold);
       }


       .spinner {
           width: 50px;
           height: 50px;
           border: 3px solid rgba(255, 214, 10, 0.3);
           border-radius: 50%;
           border-top-color: var(--gold);
           animation: spin 1s ease-in-out infinite;
       }


       @keyframes spin {
           to {
               transform: rotate(360deg);
           }
       }


       /* ====== MENU SECTIONS (Adapted for Flipbook) ====== */
       .menu-page-content {
           padding: 24px 20px;
           height: 100%;
           display: flex;
           flex-direction: column;
           overflow: hidden;
       }


       .section-header {
           display: flex;
           align-items: center;
           gap: 10px;
           margin-bottom: 24px;
           padding-bottom: 12px;
           border-bottom: 1px solid rgba(255, 255, 255, 0.06);
       }


       .section-icon {
           width: 36px;
           height: 36px;
           border-radius: var(--radius-sm);
           background: linear-gradient(135deg, var(--accent), #ff6b35);
           display: flex;
           align-items: center;
           justify-content: center;
       }


       .section-icon i {
           width: 18px;
           height: 18px;
           color: white;
       }


       .section-title {
           font-size: 22px;
           font-weight: 800;
           letter-spacing: -0.5px;
           font-family: 'Playfair Display', serif;
       }


       .page-scroll-area {
           flex: 1;
           overflow-y: auto;
           padding-right: 8px;
           /* Scrollbar styling for pages */
           scrollbar-width: thin;
           scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
       }


       /* Product Card inside Page */
       .product-card {
           display: flex;
           gap: 16px;
           padding: 20px 0;
           border-bottom: 1px solid rgba(255, 255, 255, 0.04);
           animation: cardIn 0.5s ease both;
       }


       .product-card:last-child {
           border-bottom: none;
       }


       .product-info {
           flex: 1;
           min-width: 0;
           display: flex;
           flex-direction: column;
           justify-content: center;
       }


       .product-name {
           font-size: 16px;
           font-weight: 700;
           line-height: 1.3;
           margin-bottom: 4px;
           letter-spacing: -0.2px;
           font-family: 'Playfair Display', serif;
       }


       .product-desc {
           font-size: 13px;
           color: var(--text-muted);
           line-height: 1.4;
           display: -webkit-box;
           -webkit-line-clamp: 2;
           -webkit-box-orient: vertical;
           overflow: hidden;
           margin-bottom: 10px;
       }


       .product-price {
           font-size: 18px;
           font-weight: 800;
           color: var(--accent);
           letter-spacing: -0.3px;
       }


       .product-price-currency {
           font-size: 13px;
           font-weight: 600;
           color: var(--text-secondary);
       }


       .product-img {
           width: 130px;
           height: 130px;
           flex-shrink: 0;
           border-radius: 12px;
           overflow: hidden;
           background: var(--surface-2);
       }


       .product-img img {
           width: 100%;
           height: 100%;
           object-fit: cover;
       }


       .product-img-placeholder {
           width: 100%;
           height: 100%;
           display: flex;
           align-items: center;
           justify-content: center;
           background: linear-gradient(135deg, var(--surface-2), var(--surface-3));
       }


       .product-img-placeholder i {
           width: 28px;
           height: 28px;
           color: var(--text-muted);
       }


       /* Controles direccionales adicionales */
       .book-nav {
           position: fixed;
           top: 50%;
           transform: translateY(-50%);
           width: 50px;
           height: 50px;
           background: rgba(255, 255, 255, 0.1);
           backdrop-filter: blur(5px);
           border: 1px solid rgba(255, 255, 255, 0.2);
           color: white;
           border-radius: 50%;
           display: flex;
           align-items: center;
           justify-content: center;
           cursor: pointer;
           z-index: 100;
           transition: all 0.3s ease;
       }


       .book-nav:hover {
           background: var(--accent);
           transform: translateY(-50%) scale(1.1);
       }


       .book-nav.prev {
           left: 20px;
       }


       .book-nav.next {
           right: 20px;
       }


       @media (max-width: 768px) {
           .book-nav {
               width: 36px;
               height: 36px;
               background: rgba(0, 0, 0, 0.35);
               border: 1px solid rgba(255,255,255,0.15);
               backdrop-filter: blur(4px);
           }
           .book-nav.prev { left: 4px; }
           .book-nav.next { right: 4px; }
       }


       /* Page counter pill */
       .page-counter {
           position: fixed;
           bottom: 80px;
           left: 50%;
           transform: translateX(-50%);
           background: rgba(0,0,0,0.55);
           backdrop-filter: blur(6px);
           color: #fff;
           font-size: 12px;
           font-weight: 600;
           padding: 5px 16px;
           border-radius: 20px;
           z-index: 101;
           letter-spacing: 0.5px;
           pointer-events: none;
           transition: opacity 0.3s ease;
       }
       .immersive-mode .page-counter {
           opacity: 0 !important;
       }


       .page-footer-num {
           position: absolute;
           bottom: 12px;
           width: 100%;
           text-align: center;
           font-size: 11px;
           color: var(--text-muted);
           font-family: monospace;
           z-index: 20;
       }


       /* ======== VIEW TOGGLE ======== */
       .view-toggle {
           display: flex;
           background: rgba(255,255,255,0.08);
           border-radius: 10px;
           padding: 3px;
           gap: 2px;
       }
       .view-toggle button {
           background: transparent;
           border: none;
           color: var(--text-muted);
           padding: 6px 12px;
           border-radius: 8px;
           cursor: pointer;
           font-size: 12px;
           font-weight: 700;
           display: flex;
           align-items: center;
           gap: 5px;
           transition: all 0.25s ease;
       }
       .view-toggle button.active {
           background: var(--gold);
           color: #000;
           box-shadow: 0 2px 8px rgba(0,0,0,0.3);
       }
       .view-toggle button i { width: 16px; height: 16px; }


       /* ======== GRID MODE ======== */
       .grid-container {
           display: none;
           position: fixed;
           top: 60px;
           left: 0;
           right: 0;
           bottom: 60px;
           overflow-y: auto;
           padding: 12px;
           z-index: 50;
           background: var(--bg);
           -webkit-overflow-scrolling: touch;
       }
       .grid-container.visible { display: block; }


       .grid-cat-tabs {
           display: flex;
           gap: 10px;
           overflow-x: auto;
           padding: 8px 4px 16px;
           scrollbar-width: none;
       }
       .grid-cat-tabs::-webkit-scrollbar { display: none; }
       .grid-cat-tab {
           background: rgba(255,255,255,0.03);
           border: 1px solid rgba(255,255,255,0.1);
           color: #aaa;
           padding: 8px 20px;
           border-radius: 999px;
           font-size: 13px;
           font-weight: 600;
           white-space: nowrap;
           cursor: pointer;
           transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
       }
       .grid-cat-tab.active {
           background: var(--gold);
           color: #000;
           border-color: var(--gold);
           box-shadow: 0 4px 15px rgba(255, 215, 0, 0.3);
           font-weight: 800;
       }
       .grid-products {
           display: grid;
           grid-template-columns: repeat(2, 1fr);
           gap: 16px;
           padding-bottom: 90px;
           max-width: 600px;
           margin: 0 auto;
       }
       @media (min-width: 768px) {
           .grid-products {
               grid-template-columns: repeat(3, 1fr);
               gap: 24px;
               max-width: 800px;
           }
       }
       @media (min-width: 1024px) {
           .grid-products {
               grid-template-columns: repeat(4, 1fr);
               max-width: 1200px;
           }
       }
       .grid-product-card {
           background: linear-gradient(145deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 100%);
           border-radius: 20px;
           overflow: hidden;
           border: 1px solid rgba(255,255,255,0.06);
           transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
           position: relative;
           box-shadow: 0 8px 24px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.05);
           display: flex;
           flex-direction: column;
           width: 100%;
       }
       .grid-product-card:active { transform: scale(0.96); }
       .grid-card-img-wrap {
           position: relative;
           overflow: hidden;
           background: rgba(255,255,255,0.02);
           border-bottom: 1px solid rgba(255,255,255,0.05);
           padding: 10px;
           display: flex;
           align-items: center;
           justify-content: center;
       }
       .grid-card-cat-badge {
           position: absolute;
           top: 10px;
           left: 10px;
           background: var(--gold, #FFA000);
           color: #000;
           font-size: 10px;
           font-weight: 900;
           padding: 4px 10px;
           border-radius: 20px;
           text-transform: uppercase;
           letter-spacing: 0.5px;
           z-index: 2;
           box-shadow: 0 4px 10px rgba(0,0,0,0.3);
       }
       .grid-product-img {
           width: 100%;
           aspect-ratio: 1;
           object-fit: cover;
           border-radius: 50%;
           border: 2px solid rgba(255,255,255,0.1);
           max-height: 180px;
           box-shadow: 0 5px 15px rgba(0,0,0,0.5);
           background: transparent;
       }
       .grid-product-body {
           padding: 14px 12px;
           display: flex;
           flex-direction: column;
           flex: 1;
       }
       .grid-product-name {
           font-size: 14px;
           font-weight: 800;
           color: var(--text);
           line-height: 1.3;
           margin-bottom: 6px;
       }
       .grid-product-desc {
           font-size: 11px;
           color: rgba(255,255,255,0.5);
           line-height: 1.4;
           margin-bottom: 12px;
           display: -webkit-box;
           -webkit-line-clamp: 2;
           -webkit-box-orient: vertical;
           overflow: hidden;
           font-weight: 500;
           flex: 1;
       }
       .grid-product-footer {
           display: flex;
           justify-content: space-between;
           align-items: center;
           margin-top: auto;
       }
       .grid-product-price {
           font-size: 18px;
           font-weight: 900;
           color: var(--gold);
       }
       .grid-add-btn {
           width: 34px;
           height: 34px;
           border-radius: 50%;
           background: var(--gold);
           color: #000;
           border: none;
           font-size: 20px;
           font-weight: 900;
           cursor: pointer;
           display: flex;
           align-items: center;
           justify-content: center;
           transition: transform 0.15s ease;
       }
       .grid-add-btn:active { transform: scale(0.85); }


       /* ======== FAB BUTTONS ======== */
       .fab-group {
           position: fixed;
           bottom: 30px;
           right: 20px;
           display: flex;
           flex-direction: column;
           align-items: flex-end;
           gap: 15px;
           z-index: 1000;
       }
       .fab-btn {
           height: 52px;
           padding: 0 24px;
           border-radius: 26px;
           border: none;
           display: flex;
           align-items: center;
           justify-content: center;
           gap: 10px;
           cursor: pointer;
           box-shadow: 0 10px 30px rgba(0,0,0,0.6), 0 0 20px rgba(34, 197, 94, 0.4);
           transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
           font-weight: 800;
           font-size: 13px;
           text-transform: uppercase;
           letter-spacing: 1px;
           position: relative;
       }
       .fab-btn:hover {
           transform: scale(1.05) translateY(-5px);
           box-shadow: 0 15px 40px rgba(0,0,0,0.7), 0 0 30px rgba(34, 197, 94, 0.6);
       }
       .fab-btn:active { transform: scale(0.95); }
       .fab-btn i { width: 22px; height: 22px; }
       .fab-mesero {
           background: linear-gradient(135deg, #22c55e, #16a34a);
           color: white;
       }
       .fab-mesero::after {
           content: '';
           position: absolute;
           inset: -4px;
           border-radius: 30px;
           border: 2px solid #22c55e;
           opacity: 0.4;
           animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
       }
      
       .fab-disabled {
           opacity: 0.6 !important;
           filter: grayscale(0.8) !important;
           cursor: not-allowed !important;
           box-shadow: none !important;
           transform: none !important;
       }


       .fab-disabled::after {
           display: none !important;
       }
       @keyframes pulse-ring {
           0% { transform: scale(1); opacity: 0.8; }
           100% { transform: scale(1.2); opacity: 0; }
       }
       .fab-cart {
           background: var(--gold);
           color: #000;
           position: relative;
       }
       .fab-badge {
           position: absolute;
           top: -4px;
           right: -4px;
           background: #ef4444;
           color: white;
           font-size: 11px;
           font-weight: 900;
           width: 20px;
           height: 20px;
           border-radius: 50%;
           display: none;
           align-items: center;
           justify-content: center;
       }
       .fab-badge.visible { display: flex; }


       /* ======== CART DRAWER ======== */
       .cart-drawer {
           position: fixed;
           bottom: 0;
           left: 0;
           right: 0;
           max-height: 70vh;
           background: var(--bg);
           border-top: 2px solid var(--gold);
           border-radius: 20px 20px 0 0;
           z-index: 300;
           transform: translateY(100%);
           transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
           display: flex;
           flex-direction: column;
       }
       .cart-drawer.open { transform: translateY(0); }
       .cart-drawer-header {
           display: flex;
           justify-content: space-between;
           align-items: center;
           padding: 16px 20px;
           border-bottom: 1px solid rgba(255,255,255,0.08);
       }
       .cart-drawer-header h3 {
           font-size: 16px;
           font-weight: 800;
           color: var(--text);
       }
       .cart-drawer-close {
           background: none;
           border: none;
           color: var(--text-muted);
           cursor: pointer;
       }
       .cart-drawer-items {
           flex: 1;
           overflow-y: auto;
           padding: 10px 20px;
       }
       .cart-item {
           display: flex;
           align-items: center;
           padding: 10px 0;
           border-bottom: 1px solid rgba(255,255,255,0.05);
           gap: 12px;
       }
       .cart-item-img {
           width: 50px;
           height: 50px;
           border-radius: 10px;
           object-fit: cover;
           background: rgba(255,255,255,0.04);
       }
       .cart-item-info { flex: 1; }
       .cart-item-name { font-size: 13px; font-weight: 700; color: var(--text); }
       .cart-item-price { font-size: 12px; color: var(--gold); font-weight: 800; }
       .cart-item-qty {
           display: flex;
           align-items: center;
           gap: 8px;
       }
       .cart-qty-btn {
           width: 28px;
           height: 28px;
           border-radius: 50%;
           border: 1px solid rgba(255,255,255,0.15);
           background: transparent;
           color: var(--text);
           font-size: 16px;
           font-weight: 900;
           cursor: pointer;
           display: flex;
           align-items: center;
           justify-content: center;
       }
       .cart-item-qty span {
           font-size: 14px;
           font-weight: 800;
           color: var(--text);
           min-width: 20px;
           text-align: center;
       }
       .cart-drawer-footer {
           padding: 16px 20px;
           border-top: 1px solid rgba(255,255,255,0.08);
       }
       .cart-total {
           display: flex;
           justify-content: space-between;
           margin-bottom: 12px;
           font-size: 16px;
           font-weight: 900;
           color: var(--text);
       }
       .cart-total span:last-child { color: var(--gold); }
       .cart-checkout-btn {
           width: 100%;
           padding: 14px;
           border-radius: 14px;
           border: none;
           background: var(--gold);
           color: #000;
           font-size: 15px;
           font-weight: 900;
           cursor: pointer;
           transition: all 0.3s ease;
       }
       .cart-checkout-btn:disabled {
           opacity: 0.5;
           cursor: not-allowed;
       }
       .cart-checkout-btn:not(:disabled):hover {
           transform: scale(1.02);
           box-shadow: 0 4px 15px rgba(255,215,0,0.4);
       }
       .cart-checkout-btn.sending {
           pointer-events: none;
           opacity: 0.7;
       }
       /* Cart item note input */
       .cart-item-note {
           width: 100%;
           padding: 6px 10px;
           background: rgba(255,255,255,0.05);
           border: 1px solid rgba(255,255,255,0.1);
           border-radius: 8px;
           color: var(--text);
           font-size: 11px;
           margin-top: 6px;
           outline: none;
           transition: border-color 0.2s;
       }
       .cart-item-note::placeholder { color: var(--text-muted); }
       .cart-item-note:focus { border-color: var(--gold); }
       .cart-item-delete {
           background: none;
           border: none;
           color: #ef4444;
           cursor: pointer;
           padding: 4px;
           border-radius: 50%;
           transition: background 0.2s;
       }
       .cart-item-delete:hover { background: rgba(239,68,68,0.15); }
       /* Add to cart animation */
       @keyframes add-bounce {
           0% { transform: scale(1); }
           50% { transform: scale(1.3); }
           100% { transform: scale(1); }
       }
       .cart-add-anim { animation: add-bounce 0.3s ease; }
       /* Success overlay */
       .order-success-overlay {
           position: fixed;
           inset: 0;
           background: rgba(0,0,0,0.85);
           z-index: 600;
           display: none;
           align-items: center;
           justify-content: center;
           backdrop-filter: blur(8px);
       }
       .order-success-overlay.visible { display: flex; }
       .order-success-card {
           background: var(--bg);
           border: 2px solid var(--gold);
           border-radius: 24px;
           padding: 40px 30px;
           text-align: center;
           max-width: 320px;
           width: 90%;
           box-shadow: 0 20px 60px rgba(0,0,0,0.8);
       }
       .order-success-icon {
           font-size: 60px;
           margin-bottom: 16px;
       }
       .order-success-title {
           font-size: 20px;
           font-weight: 900;
           color: var(--gold);
           margin-bottom: 8px;
       }
       .order-success-desc {
           font-size: 13px;
           color: var(--text-muted);
           margin-bottom: 24px;
           line-height: 1.5;
       }
       .order-success-btn {
           padding: 12px 30px;
           border-radius: 12px;
           border: none;
           background: var(--gold);
           color: #000;
           font-size: 14px;
           font-weight: 800;
           cursor: pointer;
       }


       /* ======== CONFIRM DIALOG ======== */
       .confirm-overlay {
           position: fixed;
           inset: 0;
           background: rgba(0,0,0,0.7);
           z-index: 500;
           display: none;
           align-items: center;
           justify-content: center;
           backdrop-filter: blur(4px);
       }
       .confirm-overlay.visible { display: flex; }
       .confirm-box {
           background: var(--bg);
           border: 1px solid rgba(255,255,255,0.1);
           border-radius: 20px;
           padding: 30px;
           max-width: 320px;
           width: 90%;
           text-align: center;
       }
       .confirm-box h3 {
           font-size: 18px;
           font-weight: 900;
           color: var(--text);
           margin-bottom: 8px;
       }
       .confirm-box p {
           font-size: 13px;
           color: var(--text-muted);
           margin-bottom: 20px;
       }
       .confirm-actions {
           display: flex;
           gap: 10px;
       }
       .confirm-actions button {
           flex: 1;
           padding: 12px;
           border-radius: 12px;
           font-size: 14px;
           font-weight: 800;
           cursor: pointer;
           border: none;
           transition: opacity 0.2s;
       }
       .confirm-no {
           background: rgba(255,255,255,0.08);
           color: var(--text);
       }
       .confirm-yes {
           background: var(--gold);
           color: #000;
       }


       /* ----------------------------------------------------
          FUTURISTIC CYBER GRID ANIMATED BACKGROUND
          ---------------------------------------------------- */
       body::before {
           content: '';
           position: fixed;
           top: -50px; left: -50px; right: -50px; bottom: -50px;
           background-color: #030305;
           background-image:
               linear-gradient(rgba(217, 70, 239, 0.08) 1.5px, transparent 1.5px),
               linear-gradient(90deg, rgba(217, 70, 239, 0.08) 1.5px, transparent 1.5px);
           background-size: 50px 50px;
           z-index: -2;
           animation: bg-pan 25s linear infinite;
       }
       body::after {
           content: '';
           position: fixed;
           top: 0; left: 0; width: 100vw; height: 100vh;
           background: radial-gradient(circle at center, transparent 0%, rgba(0, 0, 0, 0.4) 50%, #000 100%);
           z-index: -1;
           pointer-events: none;
       }
       @keyframes bg-pan {
           from { transform: translate3d(0, 0, 0); }
           to { transform: translate3d(-50px, -50px, 0); }
       }
      
       /* Glow circles for images */
       .img-glow-accent {
           border: 3px solid var(--accent);
           box-shadow: 0 0 20px var(--accent-glow), inset 0 0 15px var(--accent-glow);
       }


       /* Títulos más grandes en el Flipbook */
       .section-title {
           font-size: 28px !important;
           letter-spacing: 2px !important;
       }



