#app-wrapper,#splash-screen,body,html{background-color:var(--bg-dark)}#modal,#splash-screen{display:flex;position:fixed}:root{--gold:#c5a059;--gold-bright:#e3c485;--bg-dark:#050505;--card-bg:#0F0F0F;--ease-fluid:cubic-bezier(0.16, 1, 0.3, 1);--ease-spring:cubic-bezier(0.175, 0.885, 0.32, 1.275);--sab:max(20px, env(safe-area-inset-bottom));--sat:max(16px, env(safe-area-inset-top))}body {
    max-width: 100vw;
    overflow-x: hidden;
    color: #e5e5e5;
    font-family: 'Inter', sans-serif;
    -webkit-tap-highlight-color: transparent;
    scroll-behavior: smooth;
    /* Adições de Elite para Fontes: */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overscroll-behavior-y: none;
}.menu-card,.quick-add-btn,a,button,input[type=checkbox]{touch-action:manipulation}.serif{font-family:'Cormorant Garamond',serif}.gold-text{color:var(--gold)}.bg-card{background-color:var(--card-bg)}::-webkit-scrollbar{width:0;height:0;background:0 0}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.btn-glow,body.locked{overflow:hidden}:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:4px}.active-scale{transition:transform .2s cubic-bezier(.16, 1, .3, 1)}.active-scale:active{transform:scale(.96)}.out-of-stock{filter:grayscale(1);opacity:.6;pointer-events:none}.page-fade{animation:.4s ease-out fadeIn}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,100%{transform:translateX(0)}25%,75%{transform:translateX(-5px)}50%{transform:translateX(5px)}}.animate-shake{animation:.4s ease-in-out shake}#splash-screen{inset:0;z-index:999999;flex-direction:column;align-items:center;justify-content:center;transition:opacity .5s,transform .5s}#splash-screen.hidden-splash{opacity:0;pointer-events:none;transform:scale(1.05)}.splash-logo-anim{animation:1.5s cubic-bezier(.16,1,.3,1) forwards splashPop}@keyframes splashPop{0%{opacity:0;transform:translateY(20px) scale(.9);filter:blur(8px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}#app-wrapper{min-height:100vh;transition:all .5s var(--ease-fluid);transform-origin:center left;position:relative;z-index:10;padding-bottom:calc(130px + var(--sab));overscroll-behavior-y:none;box-sizing:border-box}.texture-overlay{display:none}#sticky-nav{position:sticky;top:0;z-index:30;background:#050505;transition:background .4s}.scroll-snap-x{scroll-snap-type:x mandatory;scroll-padding-left:2rem}.cat-sep{width:1px;height:14px;background:rgba(255,255,255,.1);margin:auto 2px;flex-shrink:0}.category-pill{scroll-snap-align:center;padding:7px 18px;border-radius:8px;font-size:11px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);transition:.3s;white-space:nowrap;border:1px solid transparent;background:0 0}.menu-card{opacity:0;transform:translateY(20px);transition:opacity .4s,transform .4s,background .3s}.menu-card.reveal{opacity:1;transform:translateY(0)}#modal{background:#0c0c0c;box-shadow:0 -20px 40px rgba(0,0,0,.9);transition:transform .45s cubic-bezier(.16, 1, .3, 1);will-change:transform;z-index:100;border-top:1px solid rgba(255,255,255,.05);flex-direction:column}@media (max-width:768px){body.drawer-open #app-wrapper{transform:scale(.92) translateY(calc(var(--sat) + 10px));border-radius:32px;opacity:.3;pointer-events:none;will-change:transform,opacity}#sticky-nav{border-bottom:1px solid rgba(255,255,255,.02);padding-top:8px;padding-bottom:8px}#modal{top:auto;bottom:0;left:0;right:0;height:92dvh;transform:translateY(100%);border-top-left-radius:36px;border-top-right-radius:36px}@supports not (height:92dvh){#modal{height:92vh}}body.drawer-open #modal{transform:translateY(0)}}.menu-grid{display:grid;grid-template-columns:1fr;gap:0;width:100%;transition:all .5s var(--ease-fluid);align-items:start}@media (min-width:768px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.texture-overlay{display:block;position:fixed;inset:0;pointer-events:none;z-index:9999;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.02) 0,transparent 100%)}#sticky-nav{background:rgba(5,5,5,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.05);padding-top:12px;padding-bottom:12px}}@media (min-width:1024px){.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}@media (min-width:769px){body.drawer-open #app-wrapper{padding-right:660px;opacity:1}body.drawer-open .menu-grid{grid-template-columns:1fr;gap:16px;max-width:600px;margin-left:0}#modal{top:0;bottom:0;right:0;width:660px;transform:translateX(100%);border-top:none;border-left:1px solid rgba(255,255,255,.1);border-top-left-radius:40px;border-bottom-left-radius:40px;background:rgba(12,12,12,.98);backdrop-filter:blur(30px) saturate(1.2);-webkit-backdrop-filter:blur(30px) saturate(1.2)}body.drawer-open #modal{transform:translateX(0);box-shadow:-30px 0 80px rgba(0,0,0,.9)}.img-breathe{transition:transform .8s cubic-bezier(.16, 1, .3, 1);will-change:transform}.menu-card:hover .img-breathe{transform:scale(1.08)}.bottom-action-bar{background:linear-gradient(to top,#0c0c0c 60%,rgba(12,12,12,0))}}.bottom-action-bar{padding-bottom:calc(var(--sab) + 16px);padding-top:20px;border-top:1px solid rgba(255,255,255,.02)}.drag-area{touch-action:pan-y}.handle-pulse{animation:3s ease-in-out infinite handlePulse}@keyframes handlePulse{0%,100%{opacity:.3;width:40px}50%{opacity:.8;width:48px}}.glass-panel {
    background: rgba(15, 15, 15, 0.4); /* Fundo ligeiramente mais escuro para contraste */
    border: 1px solid rgba(255, 255, 255, 0.08); /* Borda mais fina e elegante */
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4); /* Profundidade */
    backdrop-filter: blur(24px) saturate(180%); /* O Segredo: Blur alto + Saturação */
    -webkit-backdrop-filter: blur(24px) saturate(180%);
}.extra-checkbox{appearance:none;width:22px;height:22px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:rgba(0,0,0,.3);transition:all .2s var(--ease-spring);position:relative;cursor:pointer}.extra-checkbox:checked{background:var(--gold);border-color:var(--gold);transform:scale(1.1)}.extra-checkbox:checked::after{content:'';position:absolute;top:40%;left:50%;width:5px;height:10px;border:solid #000;border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg)}.modifier-option{user-select:none;transition:.25s cubic-bezier(.16, 1, .3, 1)}.modifier-option.selected{background:var(--gold)!important;color:#050505!important;border-color:var(--gold)!important;box-shadow:0 4px 15px rgba(197,160,89,.3)!important;font-weight:700!important;transform:translateY(-2px)}#cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:35;opacity:0;pointer-events:none;transition:opacity .3s}#cart-overlay.visible{opacity:1;pointer-events:auto}#order-summary-bar{transform:translateY(150%) translateX(-50%);transition:transform .4s var(--ease-spring);bottom:calc(var(--sab) + 16px);z-index:40}#order-summary-bar.visible{transform:translateY(0) translateX(-50%)}body.drawer-open #order-summary-bar{opacity:0;pointer-events:none;transform:translateY(150%) translateX(-50%)}.cart-expand-content{max-height:0;opacity:0;overflow:hidden;transition:max-height .4s,opacity .3s;will-change:max-height,opacity}.cart-expand-content.expanded{max-height:60vh;opacity:1;overflow-y:auto}.btn-glow{position:relative;z-index:1}.btn-glow::before{content:'';position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(to right,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);animation:3s infinite shimmer;z-index:-1}@keyframes shimmer{0%,50%{left:-100%}100%{left:200%}}.modal-container{max-height:90vh;display:flex;flex-direction:column}.modal-scroll-area{overflow-y:auto;flex-grow:1;overscroll-behavior-y:none}.modal-scroll-area::-webkit-scrollbar{width:4px}.modal-scroll-area::-webkit-scrollbar-thumb{background:var(--gold);border-radius:10px}.tab-btn.active{background:rgba(197,160,89,.15)!important;color:var(--gold)!important;border-right:3px solid var(--gold)}.tab-btn.active svg{color:var(--gold);opacity:1}.kitchen-card{animation:.3s ease-out slideIn}@keyframes slideIn{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.staff-panel-card{background-color:#121212;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:16px 16px;border:1px solid rgba(255,255,255,.05);border-radius:1.5rem;padding:2rem;margin-bottom:3rem;box-shadow:0 10px 30px rgba(0,0,0,.5)}@media (max-width:768px){.staff-panel-card{padding:1.5rem}}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:rgba(255,255,255,.1);transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.toggle-slider{background-color:var(--gold)}input:checked+.toggle-slider:before{transform:translateX(20px);background-color:#000}
/* ========================================================
   ESTILOS PREMIUM - GATEWAYS DE PAGAMENTO NATIVOS
======================================================== */
.apple-pay-btn {
    -webkit-appearance: none;
    appearance: none;
    /* Respeita a altura mínima estrita de 44px da Apple */
    min-height: 44px; 
    border-radius: 6px; /* Guidelines Apple preferem cantos curtos */
    box-shadow: inset 0px 1px 0px rgba(255,255,255,0.1);
}

.apple-pay-btn:active {
    transform: scale(0.97);
    background-color: #1c1c1e !important;
}

.mbway-btn {
    -webkit-appearance: none;
    appearance: none;
    min-height: 44px;
    border-radius: 6px;
    background-image: linear-gradient(180deg, #FFFFFF 0%, #F5F5F5 100%);
}

.mbway-btn:active {
    transform: scale(0.97);
    background-image: linear-gradient(180deg, #EBEBEB 0%, #DFDFDF 100%);
}


/* ========================================================
   POS FLOOR PLAN 2.5D
======================================================== */
.floor-bg {
    background-color: #111;
    background-image: 
        linear-gradient(90deg, rgba(255,255,255,0.01) 1px, transparent 1px),
        linear-gradient(rgba(255,255,255,0.01) 1px, transparent 1px),
        radial-gradient(circle at 50% 50%, #1a1a1a 0%, #050505 100%);
    background-size: 50px 50px, 50px 50px, 100% 100%;
    background-position: center center;
    box-shadow: inset 0 0 100px rgba(0,0,0,0.9);
    transition: transform 0.1s ease-out; /* Panning suave */
}

/* 2.5D Mesas Realistas */
.table-node {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 
        10px 20px 25px -5px rgba(0, 0, 0, 0.8), 
        inset 0 2px 4px rgba(255, 255, 255, 0.1),
        inset 0 -4px 10px rgba(0, 0, 0, 0.5);
    background: linear-gradient(135deg, #2a2a2a 0%, #151515 100%);
    border: 2px solid rgba(255, 255, 255, 0.2);
    z-index: 10;
}

/* Formatos de Mesas */
.table-round { border-radius: 50%; }
.table-square { border-radius: 16px; }
.table-rect { border-radius: 16px; }

/* Cadeiras */
.chair {
    position: absolute;
    background: #0f0f0f;
    border: 1px solid #333;
    box-shadow: 5px 10px 15px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,255,255,0.05);
    border-radius: 8px;
    z-index: 5;
    transition: all 0.3s ease;
}

/* Status das Mesas (Dinâmico via JS) */
.table-node.status-ocupado {
    border-color: rgba(59, 130, 246, 0.6); /* Azul */
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.2), 10px 20px 25px -5px rgba(0, 0, 0, 0.8), inset 0 2px 4px rgba(255, 255, 255, 0.1);
}
.table-node.status-novopedido {
    border-color: rgba(239, 68, 68, 0.8); /* Vermelho */
    box-shadow: 0 0 20px rgba(239, 68, 68, 0.4), 10px 20px 25px -5px rgba(0, 0, 0, 0.8), inset 0 2px 4px rgba(255, 255, 255, 0.1);
}
.table-node.status-pronto {
    border-color: rgba(34, 197, 94, 0.8); /* Verde */
    box-shadow: 0 0 20px rgba(34, 197, 94, 0.3), 10px 20px 25px -5px rgba(0, 0, 0, 0.8), inset 0 2px 4px rgba(255, 255, 255, 0.1);
}
.table-node.status-selected {
    border-color: var(--gold);
    transform: scale(1.05) translateY(-5px);
    box-shadow: 0 0 30px rgba(197, 160, 89, 0.4), 15px 30px 35px -5px rgba(0, 0, 0, 0.9), inset 0 2px 4px rgba(255, 255, 255, 0.2);
    z-index: 20;
}

/* =========================================================================
     CSS ENGINE: ISOLATED HARDWARE-LOOK QWERTY INTERFACE
     ========================================================================= */
.eq-key {
    height: 48px; /* Altura ergonómica de precisão cirúrgica para touchscreens */
    border: none;
    background-color: #313135; /* Cinza oficial Apple Keyboard Dark Mode */
    color: #FFFFFF;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 19px; /* Letras grandes e nítidas, sem risco de transbordo */
    font-weight: 500;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); /* Relevo 3D mecânico */
    outline: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.05s ease, transform 0.05s ease;
}

/* Teclas de Comando (LMP e Apagar) */
.eq-key.eq-special {
    background-color: #202022;
    color: #A1A1AA;
    font-weight: 600;
}

/* Tecla de Espaço */
.eq-key.eq-space {
    background-color: #313135;
    color: rgba(255, 255, 255, 0.3);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.15em;
}

/* Feedback de Toque Físico Bruto */
.eq-key:active {
    transform: scale(0.93);
    background-color: var(--gold, #c5a059) !important;
    color: #050505 !important;
    font-weight: 700 !important;
    box-shadow: none;
}

.eq-key.eq-special:active {
    background-color: #FFFFFF !important;
    color: #000000 !important;
}

/* ========================================================
   SCROLLBARS PREMIUM (Visíveis apenas quando necessário)
======================================================== */
::-webkit-scrollbar {
    width: 3px;  /* Ultra fina */
    height: 3px;
}
::-webkit-scrollbar-track {
    background: transparent; 
}
::-webkit-scrollbar-thumb {
    background: rgba(197, 160, 89, 0.25); /* Dourado muito suave */
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(197, 160, 89, 0.8); /* Brilha quando o rato passa por cima */
}


/* =======================================================
   ESTILOS GLOBAIS - NAVEGAÇÃO ELITE V12
======================================================= */
/* Ocultar scrollbar mantendo a funcionalidade (Horizontal) */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Efeito de clique tátil (Micro-interação) */
.active-scale {
    transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s, color 0.3s;
}
.active-scale:active {
    transform: scale(0.96);
}

/* Sombras premium adicionais */
.shadow-elite {
    box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.4), inset 0 1px 1px rgba(255, 255, 255, 0.08);
}
.shadow-gold-subtle {
    box-shadow: 0 0 15px rgba(197, 160, 89, 0.15), inset 0 1px 1px rgba(255, 255, 255, 0.1);
}

/* FIX: Permite arrastar as mesas no Tablet/Mobile sem que o ecrã faça scroll */
.draggable-table {
    touch-action: none; 
    user-select: none;
    -webkit-user-select: none;
}


/* =========================================================================
   QREMENTA OS - ELITE TABLE ENGINE
========================================================================= */
@keyframes hudFloat {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(-4px); }
}
.hud-active { animation: hudFloat 3s ease-in-out infinite; }

.hud-critical {
    border-color: rgba(197, 160, 89, 0.8) !important;
    box-shadow: 0 0 15px rgba(197, 160, 89, 0.4), inset 0 0 8px rgba(197, 160, 89, 0.2);
}
.hud-critical .hud-timer {
    color: #c5a059 !important;
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.table-radial-menu {
    position: fixed;

    opacity: 0;

    pointer-events: none;

    transform:
        translate(-50%, -50%)
        scale(0.7);

    transform-origin: center;

    transition:
        opacity 0.18s ease,
        transform 0.22s cubic-bezier(
            0.175,
            0.885,
            0.32,
            1.275
        );

    z-index: 999999;
}

.table-radial-menu.show {

    opacity: 1;

    pointer-events: auto;

    transform:
        translate(-50%, -50%)
        scale(1);
}

.table-radial-menu.hide {

    opacity: 0;

    pointer-events: none;

    transform:
        translate(-50%, -50%)
        scale(0.7);
}

/* =========================================================================
   ANTI-SCROLL NATIVO NO MAPA (FIX PARA IPAD/TABLETS)
========================================================================= */
#floor-viewport, #floor-canvas {
    touch-action: none !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
}

/* =========================================================================
   SONAR DE LOTAÇÃO (TABLE RADAR)
========================================================================= */
.table-node {
    transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                filter 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.3s ease, 
                box-shadow 0.3s ease;
}

.radar-dimmed {
    opacity: 0.15 !important;
    filter: grayscale(1) !important;
    transform: scale(0.95);
    pointer-events: none;
}

.radar-highlight {
    z-index: 60 !important;
    box-shadow: 0 0 40px rgba(197, 160, 89, 0.4) !important;
    border-color: rgba(197, 160, 89, 0.9) !important;
    transform: scale(1.05);
}

* {
    -webkit-tap-highlight-color: transparent !important;
}