:root,[data-theme=dark]{--c-primary:#c9a86a;--c-primary-hover:#d4af37;--c-primary-active:#b8944f;--c-primary-soft:#2a2416;--c-accent:#d4af37;--c-accent-soft:#2e2616;--c-ring:#c9a86a40;--c-bg:#0b0b0c;--c-surface:#141416;--c-surface-2:#1c1c1e;--c-surface-3:#252529;--c-text:#f5f1e8;--c-text-muted:#a8a29a;--c-text-subtle:#6e6a64;--c-border:#232326;--c-border-strong:#2f2f33;--c-success:#7ab892;--c-success-soft:#1a2a20;--c-warning:#c9a86a;--c-warning-soft:#2a2416;--c-danger:#d98b7a;--c-danger-soft:#2a1e1c;--c-info:#8aa8c8;--c-info-soft:#1a232e;--c-neutral:#8a8680;--c-neutral-soft:#1e1e20;--shadow-xs:0 1px 2px 0 #0006;--shadow-sm:0 1px 3px 0 #00000080, 0 1px 2px -1px #0006;--shadow:0 4px 12px -2px #00000080, 0 2px 8px -2px #0006;--shadow-md:0 10px 28px -8px #0009, 0 4px 12px -4px #00000080;--shadow-lg:0 24px 48px -14px #000000b3, 0 10px 20px -8px #00000080;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:9999px;--transition:.16s cubic-bezier(.4, 0, .2, 1);--sidebar-width:264px;--sidebar-width-collapsed:76px;--header-height:64px;--mobile-nav-height:64px;--touch-target:44px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Plus Jakarta Sans", var(--font-sans)}[data-theme=light]{--c-bg:#f5f1ec;--c-surface:#fff;--c-surface-2:#f2efe8;--c-surface-3:#e8e0d0;--c-text:#1a1206;--c-text-muted:#6b5d4a;--c-text-subtle:#9a8f7e;--c-border:#e8e0d0;--c-border-strong:#d4cab5;--c-primary:#9c7a2e;--c-primary-hover:#b8944f;--c-primary-active:#8a6b22;--c-primary-soft:#f2e6c9;--c-accent:#9c7a2e;--c-accent-soft:#f2e6c9;--c-ring:#9c7a2e33;--c-success:#2d6a4f;--c-success-soft:#d8ede2;--c-warning:#8a6b22;--c-warning-soft:#f2e6c9;--c-danger:#9b2226;--c-danger-soft:#f8d7da;--c-info:#2a5f8a;--c-info-soft:#d6e4f0;--c-neutral:#6b5d4a;--c-neutral-soft:#f2efe8;--shadow-xs:0 1px 2px 0 #1a12060d;--shadow-sm:0 1px 3px 0 #1a120614, 0 1px 2px -1px #1a12060f;--shadow:0 4px 10px -2px #1a120614, 0 2px 6px -2px #1a12060f;--shadow-md:0 8px 24px -6px #1a120624, 0 4px 10px -4px #1a120614;--shadow-lg:0 20px 40px -12px #1a120638, 0 8px 16px -8px #1a12061a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--c-text);background-color:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;overscroll-behavior-y:none;font-size:14.5px;line-height:1.55}@media (prefers-color-scheme:dark){body{--lightningcss-light: ;--lightningcss-dark:initial}}h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--c-text);text-wrap:balance;font-weight:700;line-height:1.2}p{margin:0}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none}img,svg{display:block}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-12{width:3rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-12{height:3rem}.w-full{width:100%}.justify-start{justify-content:flex-start}.text-green-600{color:var(--c-success)}.text-red-600{color:var(--c-danger)}.text-yellow-600{color:var(--c-warning)}.text-gray-300{color:var(--c-text-subtle)}.text-sm{font-size:13px}.font-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:1.6s ease-in-out infinite pulse}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--c-border-strong);background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:var(--c-text-subtle)}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}.skip-link{z-index:9999;background:var(--c-primary);color:#0a0a0a;border-radius:0 0 8px 8px;padding:10px 16px;font-size:13px;font-weight:700;text-decoration:none;position:absolute;top:-100%;left:12px}.skip-link:focus{top:0}.mesa-card:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;box-shadow:var(--shadow-md)}.skeleton{background:linear-gradient(90deg, var(--c-surface-2) 25%, var(--c-surface-3) 50%, var(--c-surface-2) 75%);background-size:200% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@supports (padding:max(0px)){.safe-area-bottom{padding-bottom:max(16px, env(safe-area-inset-bottom))}.safe-area-top{padding-top:max(16px, env(safe-area-inset-top))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.loading-screen{background:var(--c-bg);min-height:100dvh;color:var(--c-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.page-loading{color:var(--c-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.spinner{border:3px solid var(--c-primary-soft);border-top-color:var(--c-primary);border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}.btn{border-radius:var(--radius-sm);min-height:var(--touch-target);white-space:nowrap;transition:background-color var(--transition), border-color var(--transition), color var(--transition), transform var(--transition), box-shadow var(--transition);-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;line-height:1;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--c-primary), var(--c-accent));color:#0a0a0a;letter-spacing:.01em;border-color:#d4af3740;font-weight:700;box-shadow:0 1px 8px #c9a86a40}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--c-primary-hover), #e8c47a);color:#070708;box-shadow:0 4px 14px #c9a86a59}.btn-secondary{background-color:var(--c-surface);color:var(--c-text);border-color:var(--c-border-strong)}.btn-secondary:hover:not(:disabled){background-color:var(--c-surface-3);border-color:var(--c-text-subtle)}.btn-success{background-color:var(--c-success);color:#fff}.btn-success:hover:not(:disabled){background-color:color-mix(in srgb, var(--c-success) 88%, black)}.btn-danger{background-color:var(--c-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:color-mix(in srgb, var(--c-danger) 88%, black)}.btn-ghost{color:var(--c-text-muted);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--c-surface-3);color:var(--c-text)}.btn-sm{border-radius:7px;min-height:34px;padding:6px 12px;font-size:13px}.btn-icon{width:36px;min-width:36px;min-height:36px;padding:8px}.input{border:1.5px solid var(--c-border);border-radius:var(--radius-sm);background-color:var(--c-surface);width:100%;color:var(--c-text);min-height:var(--touch-target);transition:border-color var(--transition), box-shadow var(--transition), background-color var(--transition);padding:10px 14px;font-size:14px}.input::placeholder{color:var(--c-text-subtle)}.input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft);outline:none}.input:disabled{background-color:var(--c-surface-3);color:var(--c-text-muted);cursor:not-allowed}.input-sm{min-height:36px;padding:7px 12px;font-size:13px}.input-error{border-color:var(--c-danger)}.input-error:focus{border-color:var(--c-danger);box-shadow:0 0 0 3px var(--c-danger-soft)}.label{color:var(--c-text-muted);letter-spacing:.01em;margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.required{color:var(--c-danger)}.form-group{min-width:0;margin-bottom:16px}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-checkbox{align-items:center;gap:10px;display:flex}.error-text{color:var(--c-danger);margin-top:6px;font-size:12.5px}.form-error{border-radius:var(--radius-sm);background-color:var(--c-danger-soft);color:var(--c-danger);border:1px solid color-mix(in srgb, var(--c-danger) 25%, transparent);margin-bottom:16px;padding:12px 14px;font-size:13.5px;font-weight:500}.checkbox-label{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--c-text);align-items:center;gap:10px;font-size:14px;display:inline-flex}.checkbox-label input{opacity:0;width:0;height:0;position:absolute}.checkbox-custom{border:2px solid var(--c-border-strong);width:20px;height:20px;transition:all var(--transition);background-color:var(--c-surface);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.checkbox-custom:after{content:"";width:10px;height:10px;transition:transform var(--transition);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);background:#fff;border-radius:3px;transform:scale(0)}.checkbox-label input:checked+.checkbox-custom{background-color:var(--c-primary);border-color:var(--c-primary)}.checkbox-label input:checked+.checkbox-custom:after{transform:scale(1)}.checkbox-label input:focus-visible+.checkbox-custom{outline:2px solid var(--c-primary);outline-offset:2px}.password-input-wrapper{position:relative}.password-toggle{width:34px;height:34px;color:var(--c-text-subtle);transition:color var(--transition), background-color var(--transition);border-radius:7px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle:hover:not(:disabled){color:var(--c-text);background-color:var(--c-surface-3)}.card{background-color:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.badge{border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-success{background-color:var(--c-success-soft);color:var(--c-success)}.badge-warning{background-color:var(--c-warning-soft);color:var(--c-warning)}.badge-danger{background-color:var(--c-danger-soft);color:var(--c-danger)}.badge-info{background-color:var(--c-info-soft);color:var(--c-info)}.badge-neutral{background-color:var(--c-neutral-soft);color:var(--c-neutral)}.table-container{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th,.table td{text-align:left;border-bottom:1px solid var(--c-border);vertical-align:middle;padding:13px 16px}.table th{text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-muted);background-color:var(--c-surface-2);z-index:1;white-space:nowrap;font-size:11.5px;font-weight:600;position:sticky;top:0}.table tbody tr{transition:background-color var(--transition)}.table tbody tr:hover{background-color:var(--c-surface-2)}.table tbody tr:last-child td{border-bottom:none}.toast-container{top:calc(var(--header-height) + 14px);z-index:2000;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 32px);display:flex;position:fixed;right:16px}.toast{background-color:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-md);cursor:pointer;pointer-events:auto;border-left-width:4px;align-items:flex-start;gap:12px;padding:13px 16px;animation:.25s cubic-bezier(.16,1,.3,1) toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translate(24px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}.toast-success{border-left-color:var(--c-success)}.toast-error{border-left-color:var(--c-danger)}.toast-warning{border-left-color:var(--c-warning)}.toast-info{border-left-color:var(--c-info)}.toast-message{color:var(--c-text);flex:1;font-size:13.5px;font-weight:500}.toast-close{width:26px;height:26px;color:var(--c-text-subtle);transition:background-color var(--transition), color var(--transition);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-close:hover{background-color:var(--c-surface-3);color:var(--c-text)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1500;background-color:#0c12188c;justify-content:center;align-items:center;padding:16px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background-color:var(--c-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:520px;max-height:90dvh;animation:.28s cubic-bezier(.16,1,.3,1) modalUp;display:flex;overflow:hidden}@keyframes modalUp{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex}.modal-title{font-size:17px;font-weight:700;font-family:var(--font-display)}.modal-close{width:34px;height:34px;color:var(--c-text-muted);transition:background-color var(--transition), color var(--transition);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal-close:hover{background-color:var(--c-surface-3);color:var(--c-text)}.modal-body{flex:1;padding:22px;overflow-y:auto}.modal-footer{border-top:1px solid var(--c-border);background-color:var(--c-surface-2);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.detail-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.detail-item{flex-direction:column;gap:4px;min-width:0;display:flex}.detail-full{grid-column:1/-1}.detail-label{text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-muted);font-size:11.5px;font-weight:600}.detail-value{color:var(--c-text);word-break:break-word;font-size:14.5px;font-weight:600}.layout{background:var(--c-bg);min-height:100dvh;display:flex}.sidebar{width:var(--sidebar-width);color:#e8e0d0;z-index:400;background:radial-gradient(90% 40% at 50% 0,#c9a86a1a,#0000 60%),linear-gradient(#0e0e10 0%,#070708 100%);border-right:1px solid #c9a86a1f;flex-direction:column;flex-shrink:0;height:100dvh;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:sticky;top:0}.sidebar-header{align-items:center;gap:12px;padding:22px 22px 18px;display:flex}.sidebar-brand{align-items:center;gap:12px;min-width:0;display:flex}.sidebar-logo{color:#0a0a0a;background:linear-gradient(135deg,#c9a86a,#d4af37 55%,#e8c88a);border:1px solid #d4af3759;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 14px #c9a86a4d,inset 0 1px #ffffff59}.sidebar-title{color:#fff;letter-spacing:-.01em;font-size:19px;font-weight:800;font-family:var(--font-display);line-height:1.1}.sidebar-subtitle{color:#d7e6e099;font-size:11px;font-weight:500}.sidebar-close{color:#d7e6e0cc;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;margin-left:auto;display:none}.sidebar-close:hover{background:#ffffff1a}.sidebar-nav{flex:1;padding:8px 14px;overflow-y:auto}.sidebar-nav ul{flex-direction:column;gap:2px;display:flex}.nav-link{color:#d7e6e0d1;transition:background-color var(--transition), color var(--transition);border-radius:10px;align-items:center;gap:13px;padding:11px 13px;font-size:14px;font-weight:600;display:flex;position:relative}.nav-link svg{opacity:.85;flex-shrink:0}.nav-link:hover{color:#fff;background:#ffffff14;text-decoration:none}.nav-link.active{color:#fff;background:#ffffff1f;font-weight:700}.nav-link.active:before{content:"";background:linear-gradient(#e8c88a,#d4af37);border-radius:0 4px 4px 0;width:3.5px;position:absolute;top:20%;bottom:20%;left:-14px;box-shadow:0 0 8px #d4af3780}.sidebar-nav-label{text-transform:uppercase;letter-spacing:.09em;color:#d7e6e066;padding:14px 13px 6px;font-size:10.5px;font-weight:700}.sidebar-footer{border-top:1px solid #ffffff14;flex-direction:column;gap:10px;padding:16px 14px;display:flex}.user-info{border-radius:10px;align-items:center;gap:12px;padding:8px;display:flex}.user-avatar{background:linear-gradient(135deg, var(--c-accent), #c08a2c);color:#221a0a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:800;display:flex;box-shadow:0 2px 8px #00000040}.user-details{flex-direction:column;min-width:0;display:flex}.user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.user-role{color:#d7e6e099;text-transform:capitalize;font-size:11.5px}.sidebar-footer .btn{color:#d7e6e0d9}.sidebar-footer .btn:hover:not(:disabled){color:#fff;background:#ffffff14}.sidebar-version{letter-spacing:.04em;color:#e8e0d073;border-top:1px solid #c9a86a14;justify-content:center;align-items:center;gap:6px;margin-top:4px;padding:8px 4px 2px;font-size:10.5px;font-weight:500;display:flex}.sidebar-version span{white-space:nowrap}.version-dot{opacity:.5}.sidebar-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:350;background:#060c0a80;animation:.2s fadeIn;position:fixed;inset:0}.main-wrapper{flex-direction:column;flex:1;min-width:0;display:flex}.header{z-index:300;height:var(--header-height);background:color-mix(in srgb, var(--c-surface) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--c-border);align-items:center;gap:14px;padding:0 24px;display:flex;position:sticky;top:0}.header-menu-btn{width:40px;height:40px;color:var(--c-text);transition:background-color var(--transition);border-radius:10px;justify-content:center;align-items:center;display:none}.header-menu-btn:hover{background-color:var(--c-surface-3)}.header-title{flex:1;min-width:0}.header-title h1{font-size:18px;font-weight:800;font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.header-actions{align-items:center;gap:10px;display:flex}.page-subtitle{color:var(--c-text-muted);margin-top:4px;font-size:14px}.mesa-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.mesa-summary-item{border:1px solid var(--c-border);background:var(--c-surface-1);min-height:72px;color:var(--c-primary);border-radius:8px;align-items:center;gap:12px;padding:14px 16px;display:flex}.mesa-summary-item span{gap:2px;display:grid}.mesa-summary-item strong{color:var(--c-text);font-size:22px;line-height:1}.mesa-summary-item small{color:var(--c-text-muted);font-size:12px}.mesas-toolbar{border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.mesas-toolbar-title{color:var(--c-text);font-family:var(--font-display);margin:0;font-size:16px;font-weight:800}.mesas-toolbar-meta{color:var(--c-text-muted);margin:4px 0 0;font-size:12.5px}.mesas-filters{align-items:center;gap:8px;min-width:min(100%,540px);display:flex}.mesas-filters select{flex-shrink:0;width:180px}.mesas-search{flex:1;align-items:center;min-width:180px;display:flex;position:relative}.mesas-search svg{color:var(--c-text-subtle);pointer-events:none;position:absolute;left:12px}.mesas-search .input{padding-left:36px}.mesa-number{background:var(--c-primary-soft);min-width:34px;height:30px;color:var(--c-primary);font-family:var(--font-display);border-radius:7px;justify-content:center;align-items:center;padding:0 8px;font-size:14px;display:inline-flex}.mesa-description{color:var(--c-text);font-weight:600}.mesa-capacity{color:var(--c-text-muted);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.mesa-capacity svg{color:var(--c-primary)}.mesas-access-denied{min-height:260px}.mesas-access-denied svg{color:var(--c-warning)}.permission-explainer{border-left:3px solid var(--c-primary);background:var(--c-surface-2);color:var(--c-text-muted);grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px;padding:10px 12px;font-size:12px;display:grid}.permission-explainer span{gap:2px;display:grid}.permission-explainer strong{color:var(--c-text);font-size:13px}.connection-status{background-color:var(--c-surface-2);border:1px solid var(--c-border);border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.user-menu-wrapper{position:relative}.header-user-btn{border:2px solid var(--c-border-strong);width:40px;height:40px;transition:border-color var(--transition), transform var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex}.header-user-btn:hover{border-color:var(--c-primary)}.user-avatar-sm{background:linear-gradient(135deg, var(--c-primary), var(--c-primary-active));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:flex}.user-dropdown{background-color:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow-md);z-index:500;padding:6px;animation:.18s cubic-bezier(.16,1,.3,1) dropdownIn;position:absolute;top:calc(100% + 8px);right:0}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.dropdown-header{border-bottom:1px solid var(--c-border);flex-direction:column;margin-bottom:4px;padding:10px 12px;display:flex}.dropdown-name{color:var(--c-text);font-size:14px;font-weight:700}.dropdown-role{color:var(--c-text-muted);text-transform:capitalize;font-size:12px}.dropdown-item{width:100%;color:var(--c-text);transition:background-color var(--transition);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;font-weight:500;display:flex}.dropdown-item:hover{background-color:var(--c-surface-3)}.main-content{outline:none;flex:1;padding:26px 28px 40px}.mobile-nav{z-index:380;height:var(--mobile-nav-height);background:color-mix(in srgb, var(--c-surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--c-border);padding-bottom:env(safe-area-inset-bottom);display:none;position:fixed;bottom:0;left:0;right:0}.mobile-nav-list{align-items:stretch;height:100%;display:flex}.mobile-nav-item-wrap{flex:1;display:flex}.mobile-nav-item{color:var(--c-text-subtle);transition:color var(--transition);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:600;display:flex;position:relative}.mobile-nav-item svg{width:22px;height:22px}.mobile-nav-item.active{color:var(--c-primary)}.mobile-nav-item.active:before{content:"";background:var(--c-primary);border-radius:0 0 4px 4px;width:40%;height:3px;position:absolute;top:0}.page-container{max-width:1200px;margin:0 auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;display:flex}.page-title{letter-spacing:-.02em;font-size:24px;font-weight:800}.header-left{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.header-right,.header-actions{align-items:center;gap:10px;display:flex}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:48px 24px;display:flex}.empty-state svg{color:var(--c-text-subtle);opacity:.7;margin-bottom:8px}.empty-state h3{margin:0;font-size:16px;font-weight:700}.empty-state p{color:var(--c-text-muted);font-size:13.5px}.search-bar{border-bottom:1px solid var(--c-border);color:var(--c-text-subtle);align-items:center;gap:10px;padding:12px 16px;display:flex}.search-bar .input{min-height:0;box-shadow:none;border:none;padding:4px 0}.search-bar .input:focus{box-shadow:none}.filter-group{color:var(--c-text-muted);align-items:center;gap:10px;display:flex}.edit-form{align-items:center;gap:8px;display:flex}.edit-actions{gap:6px;display:flex}.form-hint{color:var(--c-text-muted);margin-top:4px;font-size:12px;display:block}.color-cell{align-items:center;gap:10px;display:flex}.color-swatch{border:1.5px solid var(--c-border-strong);border-radius:7px;flex-shrink:0;width:22px;height:22px}.mono{font-family:var(--font-mono);font-size:12px}.color-picker{flex-wrap:wrap;gap:10px;display:flex}.color-dot{border:2px solid var(--c-border-strong);cursor:pointer;border-radius:50%;width:32px;height:32px;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s}.color-dot:hover{transform:scale(1.1)}.color-dot.active{border-color:var(--c-text);box-shadow:0 0 0 3px var(--c-ring);transform:scale(1.1)}.table-actions{align-items:center;gap:4px;display:flex}.reservas-toolbar{border-bottom:1px solid var(--c-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.reservas-toggles{align-items:center;gap:16px;display:flex}.checkbox-sm .checkbox-custom{width:18px;height:18px}.checkbox-sm{color:var(--c-text-muted);font-size:13px}.pagination{border-top:1px solid var(--c-border);justify-content:center;align-items:center;gap:14px;padding:14px 16px;display:flex}.pagination-info{color:var(--c-text-muted);font-size:13px;font-weight:500}.mapa-page{max-width:1400px;margin:0 auto}.date-nav{align-items:center;gap:6px;display:flex}.current-date{background-color:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-sm);color:var(--c-text);text-transform:capitalize;align-items:center;gap:8px;min-height:38px;padding:8px 14px;font-size:13.5px;font-weight:600;display:inline-flex}.connection-bar{background-color:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text-muted);align-items:center;gap:10px;margin-bottom:20px;padding:10px 16px;font-size:13px;display:flex}.connection-indicator{border-radius:50%;flex-shrink:0;width:8px;height:8px}.connection-indicator.connected{background-color:var(--c-success);box-shadow:0 0 0 4px var(--c-success-soft);animation:2.4s ease-in-out infinite pulse}.connection-indicator.disconnected{background-color:var(--c-warning);box-shadow:0 0 0 4px var(--c-warning-soft)}.header-connection{width:10px;height:10px;margin-right:2px}.header-connection.connected{box-shadow:0 0 0 4px var(--c-success-soft)}.header-connection.disconnected{box-shadow:0 0 0 4px var(--c-warning-soft)}.mapa-filters{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);border-left:3px solid var(--c-accent);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.mapa-filters .filter-group{align-items:center;gap:8px;display:flex}.estado-pills{flex-wrap:wrap;gap:6px;display:flex}.pill{background:var(--c-surface-3);border:1px solid var(--c-border);color:var(--c-text-muted);border-radius:9999px;padding:6px 12px;font-size:12.5px;font-weight:600;transition:all .12s}.pill:hover{border-color:var(--c-accent);color:var(--c-text)}.pill.active{background:var(--c-primary);color:#0a0a0a;border-color:var(--c-primary);box-shadow:0 2px 8px #c9a86a40}.mesa-disabled{opacity:.45;filter:grayscale(.3)}.mesa-disabled .mesa-badge{background:var(--c-neutral-soft)!important;color:var(--c-neutral)!important}.reserva-list{flex-direction:column;gap:6px;margin-top:8px;display:flex}.reserva-row{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;transition:border-color .12s;display:flex}.reserva-row:hover{border-color:#c9a86a40}.reserva-row-main{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-size:12.5px;font-weight:600;display:inline-flex;overflow:hidden}.mapa-container{flex-direction:column;gap:24px;display:flex}.local-section{background-color:var(--c-surface);border:1px solid var(--c-border);border-top:3px solid var(--local-color,var(--c-primary));border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.local-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.local-color-indicator{border-radius:4px;flex-shrink:0;width:12px;height:12px}.local-title{margin:0;font-size:16px;font-weight:700}.local-count{color:var(--c-text-muted);background-color:var(--c-surface-3);border-radius:var(--radius-full);margin-left:auto;padding:4px 12px;font-size:12.5px;font-weight:600}.mesas-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.mesa-card{background-color:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--radius);cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);flex-direction:column;gap:12px;padding:16px;display:flex;position:relative;overflow:hidden}.mesa-card:before{content:"";background:var(--estado-color);height:3px;position:absolute;top:0;left:0;right:0}.mesa-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.mesa-card:active{transform:translateY(0)}.mesa-card.estado-livre{--estado-color:var(--c-success)}.mesa-card.estado-reservada{--estado-color:var(--c-warning)}.mesa-card.estado-ocupada{--estado-color:var(--c-danger)}.mesa-card.estado-chega-agora{--estado-color:var(--c-info)}.mesa-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.mesa-numero{font-family:var(--font-display);color:var(--c-text);font-size:15.5px;font-weight:800}.mesa-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);padding:3px 10px;font-size:10.5px;font-weight:700}.mesa-badge.estado-livre{background-color:var(--c-success-soft);color:var(--c-success)}.mesa-badge.estado-reservada{background-color:var(--c-warning-soft);color:var(--c-warning)}.mesa-badge.estado-ocupada{background-color:var(--c-danger-soft);color:var(--c-danger)}.mesa-badge.estado-chega-agora{background-color:var(--c-info-soft);color:var(--c-info)}.mesa-info{flex-direction:column;gap:8px;display:flex}.mesa-capacidade{color:var(--c-text-muted);align-items:center;gap:8px;font-size:12.5px;font-weight:500;display:flex}.reserva-info{background-color:var(--c-surface-2);border:1px dashed var(--c-border-strong);border-radius:9px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.reserva-cliente,.reserva-hora{color:var(--c-text);align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:600;display:flex}.reserva-cliente span,.reserva-hora span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reserva-notas{color:var(--c-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-style:italic;display:-webkit-box;overflow:hidden}.historico-info{color:var(--c-text-subtle);font-size:12px}.historico-label{color:var(--c-text-muted);font-weight:600}.chega-agora-alert{background-color:var(--c-info-soft);color:var(--c-info);border-radius:9px;align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;font-weight:600;display:flex}.login-page{background:radial-gradient(65% 50% at 20% 0,#c9a86a1f,#0000 60%),radial-gradient(70% 60% at 90% 100%,#c9a86a0f,#0000 55%),linear-gradient(160deg,#070708 0%,#0f0f10 55%,#0a0a0b 100%);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-container{width:100%;max-width:420px}.login-card{background-color:var(--c-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid color-mix(in srgb, var(--c-surface) 70%, transparent);padding:38px 34px 30px}.login-brand{align-items:center;gap:14px;margin-bottom:8px;display:flex}.login-logo{color:#0a0a0a;background:linear-gradient(135deg,#e8c88a,#d4af37 60%,#b8944f);border:1px solid #d4af3759;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;box-shadow:0 8px 20px #c9a86a59,inset 0 1px #fff6}.login-header h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800}.login-header p{color:var(--c-text-muted);margin-top:4px;font-size:14px}.login-form{flex-direction:column;margin-top:26px;display:flex}.login-form .btn-primary{margin-top:6px}.login-footer{text-align:center;color:var(--c-text-subtle);margin-top:22px;font-size:12px}.combobox{position:relative}.combobox-input-wrap{align-items:center;display:flex;position:relative}.combobox-icon{width:16px;height:16px;color:var(--c-text-subtle);pointer-events:none;position:absolute;left:12px}.combobox-input{padding-left:36px!important}.combobox-list{background:var(--c-surface);border:1px solid var(--c-border-strong);max-height:220px;box-shadow:var(--shadow-md);z-index:10;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.combobox-empty{color:var(--c-text-muted);text-align:center;padding:12px;font-size:13px}.combobox-option{text-align:left;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;transition:background .12s;display:flex}.combobox-option:hover{background:var(--c-surface-3)}.combobox-option-name{color:var(--c-text);font-size:13.5px;font-weight:600}.combobox-option-phone{color:var(--c-text-muted);font-size:12.5px;font-family:var(--font-mono)}.cliente-picked{background:var(--c-primary-soft);border:1px solid #c9a86a40;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.cliente-picked-info{flex-direction:column;gap:2px;display:flex}.cliente-picked-name{align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:inline-flex}.cliente-picked-phone{color:var(--c-text-muted);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.suggestion-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.suggestion-label{color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}.suggestion-chip{background:var(--c-surface-3);border:1px solid var(--c-border);color:var(--c-text);border-radius:9999px;padding:4px 10px;font-size:12.5px;transition:all .12s}.suggestion-chip:hover{background:var(--c-primary-soft);color:var(--c-accent);border-color:#c9a86a59}.inline-warning{background:var(--c-warning-soft);color:var(--c-text);border:1px solid #c9a86a40;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;font-size:12.5px;display:flex}.inline-warning svg{color:var(--c-accent);flex-shrink:0}.input-warning{border-color:var(--c-accent)!important;box-shadow:0 0 0 3px #c9a86a2e!important}.page-header{border-bottom:1px solid var(--c-border);padding-bottom:14px}.card{border:1px solid #c9a86a1a}.mesa-card{border-color:#c9a86a14}.mesa-card:hover{border-color:#c9a86a2e}.local-section{border-top-width:2px}.connection-bar{border-color:#c9a86a24}@media (width<=1024px){.main-content{padding:22px 20px 90px}.sidebar{box-shadow:var(--shadow-lg);position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.sidebar-close,.header-menu-btn{display:flex}.mobile-nav{display:block}}@media (width<=768px){:root{--header-height:58px}.mesa-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.mesas-toolbar{flex-direction:column;align-items:stretch;gap:12px;padding:16px}.mesas-filters{flex-wrap:wrap;min-width:0}.mesas-filters select,.mesas-search{flex:100%;width:100%}.mesas-page .page-header{align-items:flex-start}.mesas-page .header-actions,.mesas-page .header-actions .btn{width:100%}.permission-explainer{grid-template-columns:repeat(2,minmax(0,1fr))}.header{padding:0 16px}.main-content{padding:18px 16px 96px}.page-header{margin-bottom:18px}.page-title{font-size:20px}.form-row{grid-template-columns:1fr}.mesas-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.mesa-card{gap:8px;padding:12px}.mesa-numero{font-size:14px}.detail-grid{grid-template-columns:1fr}.login-container{max-width:100%}.login-card{padding:28px 22px 24px}.header-title h1{font-size:16px}}@media (width<=420px){.mesas-grid{grid-template-columns:1fr 1fr}.date-nav .btn{padding:6px 9px}.current-date{padding:7px 10px;font-size:12px}}@media (width>=1025px){.sidebar-overlay,.mobile-nav,.header-menu-btn{display:none!important}}input[type=date],input[type=datetime-local],input[type=time],select{appearance:auto}@media (width<=768px){.input,.input-sm,select,textarea{font-size:16px!important}.main-content{padding:12px 12px 88px}.page-header{gap:10px;margin-bottom:12px}.page-title{font-size:18px}.card{border-radius:12px}.mesas-grid{gap:8px}.mesa-card{border-radius:10px;gap:6px;padding:10px}.modal{max-height:92dvh;margin:8px}.modal-body{padding:16px}.modal-header,.modal-footer{padding:12px 16px}.table th,.table td{padding:10px 12px;font-size:13px}.btn{padding:8px 14px;font-size:13.5px}.header{height:56px;padding:0 12px}.login-card{padding:20px 16px 16px}.login-page{padding:16px}}@media (width>=769px) and (width<=1024px){.main-content{padding:16px 18px 90px}.mesas-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}.stats-page{--stats-blue:#2563eb;--stats-green:#059669;--stats-amber:#d97706;--stats-red:#dc2626}.stats-header{align-items:flex-end;margin-bottom:18px}.stats-header .page-title{margin-top:4px}.eyebrow{color:var(--c-primary);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex}.stats-actions,.stats-date-fields,.stats-presets,.chart-legend,.row-between{align-items:center;gap:8px;display:flex}.stats-actions svg,.stats-date-fields svg,.panel-heading h2 svg{width:16px;height:16px}.stats-toolbar{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:18px;padding:12px;display:flex}.stats-presets{flex-wrap:wrap}.stats-presets .pill{border:1px solid var(--c-border);cursor:pointer}.stats-date-fields label{color:var(--c-text-muted);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.stats-date-fields input{border:1px solid var(--c-border);background:var(--c-surface-2);min-height:34px;color:var(--c-text);border-radius:6px;padding:5px 8px}.stats-refreshing{color:var(--c-text-muted);margin:-8px 0 12px;font-size:12px}.stats-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.stats-kpi{border:1px solid var(--c-border);border-top:3px solid var(--kpi-color);background:var(--c-surface-1);border-radius:8px;align-items:flex-start;gap:10px;min-width:0;padding:14px;display:flex}.stats-kpi>div:last-child{min-width:0}.stats-kpi span,.stats-kpi small{color:var(--c-text-muted);font-size:11px;display:block}.stats-kpi strong{color:var(--c-text);white-space:nowrap;margin:3px 0;font-size:20px;line-height:1.1;display:block}.kpi-icon{width:32px;height:32px;color:var(--kpi-color);background:color-mix(in srgb, var(--kpi-color) 12%, transparent);border-radius:7px;flex:0 0 32px;place-items:center;display:grid}.kpi-icon svg{width:17px;height:17px}.tone-green{--kpi-color:var(--stats-green)}.tone-blue{--kpi-color:var(--stats-blue)}.tone-primary{--kpi-color:var(--c-primary)}.tone-amber{--kpi-color:var(--stats-amber)}.tone-red{--kpi-color:var(--stats-red)}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.stats-grid-main{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.stats-panel{min-width:0;padding:16px}.panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-heading h2{color:var(--c-text);align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.panel-heading p,.table-note{color:var(--c-text-muted);margin:4px 0 0;font-size:12px}.daily-chart{border-bottom:1px solid var(--c-border);align-items:end;gap:4px;height:180px;padding:10px 0 0;display:flex;overflow-x:auto}.daily-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;min-width:24px;height:100%;display:flex}.daily-bars{justify-content:center;align-items:end;gap:2px;width:100%;height:calc(100% - 20px);display:flex}.daily-bars span,.daily-bars i{background:var(--stats-blue);border-radius:3px 3px 0 0;width:9px;min-height:3px;display:block}.daily-bars i{background:var(--stats-amber)}.daily-column small,.hour-column small{color:var(--c-text-muted);white-space:nowrap;font-size:9px}.chart-legend{color:var(--c-text-muted);flex-wrap:wrap;margin-top:12px;font-size:11px}.chart-legend span{align-items:center;gap:5px;display:inline-flex}.chart-legend b{border-radius:2px;width:10px;height:10px;display:inline-block}.legend-blue{background:var(--stats-blue)}.legend-amber{background:var(--stats-amber)}.legend-green{background:var(--stats-green)}.chart-range{margin-left:auto}.funnel{gap:16px;padding-top:4px;display:grid}.metric-row{color:var(--c-text-muted);gap:6px;font-size:13px;display:grid}.metric-row strong{color:var(--c-text)}.progress{background:var(--c-surface-3);border-radius:99px;height:7px;overflow:hidden}.progress span{border-radius:inherit;background:var(--stats-blue);min-width:2px;height:100%;display:block}.stat-highlight{border-top:1px solid var(--c-border);gap:2px;margin-top:22px;padding-top:14px;display:grid}.stat-highlight strong{color:var(--stats-green);font-size:26px}.stat-highlight span{color:var(--c-text-muted);font-size:12px}.local-row,.channel-row{gap:9px;margin-bottom:16px;display:flex}.local-dot{border-radius:50%;flex:0 0 10px;width:10px;height:10px;margin-top:4px}.local-row-content{flex:1;min-width:0}.local-row-content small,.channel-row small{color:var(--c-text-muted);margin-top:5px;font-size:11px;display:block}.walk-in-note{color:var(--stats-amber)!important}.channel-row{gap:3px;display:grid}.channel-row .progress{margin-top:2px}.hour-chart{border-bottom:1px solid var(--c-border);align-items:end;gap:3px;height:150px;padding-top:10px;display:flex}.hour-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}.hour-bars{justify-content:center;align-items:end;gap:1px;width:100%;height:calc(100% - 20px);display:flex}.hour-bars span,.hour-bars i{background:var(--stats-blue);border-radius:2px 2px 0 0;width:5px;min-height:3px;display:block}.hour-bars i{background:var(--stats-amber)}.stats-table-card{padding:0;overflow:hidden}.stats-table-card .panel-heading{padding:16px 16px 0}.stats-table-card .table{min-width:720px}.stats-table-card .total-row{background:var(--c-surface-2);font-weight:800}.text-success{color:var(--c-success)!important}.text-danger{color:var(--c-danger)!important}.stats-empty{padding:20px 0}.spin{animation:.8s linear infinite stats-spin}@keyframes stats-spin{to{transform:rotate(360deg)}}@media (width<=1100px){.stats-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-grid,.stats-grid-main{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-wide{grid-column:1/-1}}@media (width<=680px){.stats-header{align-items:flex-start}.stats-actions{width:100%}.stats-actions .btn{flex:1;justify-content:center}.stats-date-fields{flex-wrap:wrap;width:100%}.stats-date-fields label{flex:1}.stats-date-fields input{width:100%;min-width:0}.stats-date-fields .btn{width:100%}.stats-kpis,.stats-grid,.stats-grid-main{grid-template-columns:1fr}.stats-wide{grid-column:auto}.chart-range{width:100%;margin-left:0}.daily-chart{height:150px}.panel-heading h2{font-size:14px}}
