:root{--bg-base:#f8fafc;--bg-surface:#fff;--bg-surface-raised:#fff;--bg-muted:#f1f5f9;--bg-subtle:#f8fafc;--border-subtle:#e2e8f0;--border-hover:#cbd5e1;--border-focus:#2563eb;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--color-brand:#0f172a;--color-brand-blue:#2563eb;--color-brand-blue-hover:#1d4ed8;--color-brand-blue-subtle:#eff6ff;--color-emerald:#059669;--color-emerald-bg:#ecfdf5;--color-emerald-border:#a7f3d0;--color-emerald-hover:#047857;--color-rose:#e11d48;--color-rose-bg:#fff1f2;--color-rose-border:#fecdd3;--color-rose-hover:#be123c;--color-amber:#d97706;--color-amber-bg:#fffbeb;--color-amber-border:#fde68a;--font-family-sans:var(--font-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-family-display:var(--font-display),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--shadow-xs:0 1px 2px 0 rgba(15,23,42,.05);--shadow-sm:0 1px 3px 0 rgba(15,23,42,.08),0 1px 2px -1px rgba(15,23,42,.08);--shadow-md:0 4px 12px -2px rgba(15,23,42,.08),0 2px 6px -2px rgba(15,23,42,.04);--shadow-lg:0 12px 28px -4px rgba(15,23,42,.12),0 4px 8px -2px rgba(15,23,42,.04);--shadow-modal:0 20px 40px -8px rgba(15,23,42,.2);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-full:9999px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);font-family:var(--font-family-sans);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:700;letter-spacing:-.015em}a{color:inherit;text-decoration:none}.mobile-topbar{display:none;background:#fff;border-bottom:1px solid var(--border-subtle);position:-webkit-sticky;position:sticky;top:0;z-index:40;height:56px;padding:0 1rem;align-items:center;justify-content:space-between;box-shadow:var(--shadow-xs)}.mobile-hamburger-btn{background:#f8fafc;border:1px solid var(--border-subtle);border-radius:8px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.25rem;color:var(--text-primary);transition:all .15s ease}.mobile-hamburger-btn:hover{background:#f1f5f9}.mobile-brand-link{display:flex;align-items:center;gap:.5rem;text-decoration:none}.mobile-topbar-actions{display:flex;align-items:center;gap:.65rem}.btn-icon-logout{background:#fef2f2;border:1px solid #fecaca;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .15s ease}.btn-icon-logout:hover{background:#fee2e2}:root{--sidebar-width:260px}html[data-sidebar-collapsed=true]{--sidebar-width:70px}.main-content{min-width:0;transition:margin-left .22s cubic-bezier(.16,1,.3,1),width .22s cubic-bezier(.16,1,.3,1)}.sidebar-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:90;animation:fadeIn .2s ease}.app-sidebar{position:fixed;top:0;left:0;bottom:0;height:100vh;height:100dvh;width:var(--sidebar-width);background:#fff;border-right:1px solid var(--border-subtle);z-index:50;display:flex;flex-direction:column;overflow:hidden;box-shadow:1px 0 3px rgba(0,0,0,.02);transition:width .22s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1)}.sidebar-header{flex-shrink:0;padding:1.15rem 1.15rem .95rem;justify-content:space-between;border-bottom:1px solid #f1f5f9;gap:.5rem;transition:padding .22s ease}.sidebar-brand,.sidebar-header{display:flex;align-items:center}.sidebar-brand{gap:.65rem;text-decoration:none;min-width:0}.sidebar-title{font-family:var(--font-family-display);font-weight:800;font-size:1.05rem;letter-spacing:.02em;color:var(--color-brand);white-space:nowrap}.sidebar-subtitle{font-size:.65rem;font-weight:700;letter-spacing:.12em;color:var(--text-muted)}.sidebar-close-btn{display:none;background:transparent;border:1px solid var(--border-subtle);width:30px;height:30px;font-size:.9rem}.sidebar-close-btn,.sidebar-collapse-btn{border-radius:6px;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary)}.sidebar-collapse-btn{display:flex;width:28px;height:28px;background:#f8fafc;border:1px solid var(--border-subtle);font-size:.85rem;font-weight:800;transition:all .15s ease;line-height:1;flex-shrink:0}.sidebar-collapse-btn:hover{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.sidebar-nav{flex:1 1 auto;min-height:0;padding:1.15rem .85rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transition:padding .22s ease}.sidebar-nav::-webkit-scrollbar{width:5px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#94a3b8}.sidebar-section{display:flex;flex-direction:column;gap:.25rem}.sidebar-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:0 .65rem .4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-link{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:10px;color:var(--text-secondary);text-decoration:none;font-size:.88rem;font-weight:600;transition:all .15s ease;border:1px solid transparent}.sidebar-link:hover{background:var(--bg-muted);color:var(--text-primary)}.sidebar-link-active{background:#eff6ff!important;color:#2563eb!important;font-weight:700;border-color:#bfdbfe!important}.sidebar-icon{font-size:1.15rem;width:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-link-text{white-space:nowrap}.sidebar-footer{flex-shrink:0;margin-top:auto;padding:1rem .85rem;border-top:1px solid #f1f5f9;background:#fafafa;display:flex;flex-direction:column;gap:.75rem;transition:padding .22s ease}.sidebar-user-card{display:flex;align-items:center;gap:.65rem}.sidebar-avatar{width:36px;height:36px;border-radius:10px;background:#2563eb;color:#fff;font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;min-width:0;flex:1 1}.sidebar-user-name{font-size:.85rem;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:.25rem}.sidebar-logout-btn{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid #e2e8f0;padding:.4rem .75rem;border-radius:8px;font-size:.8rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.sidebar-logout-btn:hover{background:#fef2f2;color:#dc2626;border-color:#fecaca}.sidebar-collapsed .sidebar-header{padding:.85rem .45rem;justify-content:center;flex-direction:column;gap:.6rem}.sidebar-collapsed .sidebar-brand{justify-content:center}.sidebar-collapsed .brand-text-block,.sidebar-collapsed .sidebar-link-text,.sidebar-collapsed .sidebar-logout-btn span,.sidebar-collapsed .sidebar-section-title,.sidebar-collapsed .sidebar-user-info{display:none!important}.sidebar-collapsed .sidebar-section{gap:.45rem;padding-bottom:.5rem;border-bottom:1px solid #f1f5f9;margin-bottom:.25rem;align-items:center}.sidebar-collapsed .sidebar-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.sidebar-collapsed .sidebar-nav{padding:.75rem .35rem;align-items:center}.sidebar-collapsed .sidebar-link{width:44px;height:44px;padding:0;justify-content:center;border-radius:10px}.sidebar-collapsed .sidebar-icon{font-size:1.25rem;width:auto;margin:0}.sidebar-collapsed .sidebar-footer{padding:.75rem .35rem;align-items:center}.sidebar-collapsed .sidebar-user-card{justify-content:center}.sidebar-collapsed .sidebar-footer-actions{flex-direction:column;width:100%;gap:.5rem;align-items:center}.sidebar-collapsed .sidebar-logout-btn{padding:6px;width:38px;height:38px;justify-content:center}.clock-status-collapsed{width:12px;height:12px;border-radius:50%;background:#059669;box-shadow:0 0 0 3px #a7f3d0;margin:0 auto .4rem;cursor:help;animation:pulseDot 2s infinite}@keyframes pulseDot{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(5,150,105,.7)}70%{transform:scale(1);box-shadow:0 0 0 6px rgba(5,150,105,0)}to{transform:scale(.95);box-shadow:0 0 0 0 rgba(5,150,105,0)}}@media (min-width:1025px){body:has(.app-sidebar) .main-content{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width))}}@media (max-width:1024px){.mobile-topbar{display:flex}.app-sidebar{transform:translateX(-100%);z-index:100;width:280px;max-width:85vw;box-shadow:var(--shadow-xl)}.app-sidebar.sidebar-open{transform:translateX(0)}.sidebar-close-btn{display:flex}.sidebar-collapse-btn{display:none!important}}.role-badge{font-size:.65rem;font-weight:700;padding:.12rem .45rem;border-radius:4px;letter-spacing:.05em;text-transform:uppercase}.role-super_admin{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.role-manager{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.role-accueil{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.role-staff{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}@media (max-width:768px){.navbar-container{padding:.5rem .85rem;gap:.5rem}.navbar-links{order:3;width:100%;overflow-x:auto;padding-top:.4rem;border-top:1px solid var(--border-subtle);gap:.25rem}.nav-link{font-size:.78rem;padding:.35rem .6rem}.user-name{display:none}}.notif-bell-wrapper{position:relative;display:inline-flex;align-items:center}.notif-bell-btn{background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .15s ease}.notif-bell-btn:hover{border-color:var(--border-hover);color:var(--text-primary);background:#e2e8f0}.notif-badge-count{position:absolute;top:-4px;right:-4px;background:var(--color-rose);color:#fff;font-size:.65rem;font-weight:800;padding:.1rem .35rem;border-radius:var(--radius-full);line-height:1;border:2px solid #fff}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-width:90vw;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;z-index:100}.notif-dropdown-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;background:var(--bg-muted)}.notif-dropdown-body{max-height:340px;overflow-y:auto}.notif-empty{padding:2rem 1rem;text-align:center;color:var(--text-muted);font-size:.825rem}.notif-item{padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);display:flex;align-items:flex-start;gap:.65rem;cursor:pointer;transition:background .15s ease}.notif-item:hover{background:var(--bg-muted)}.notif-unread{background:#eff6ff}.notif-item-msg{font-size:.825rem;color:var(--text-primary);line-height:1.35}.notif-item-time{font-size:.7rem;color:var(--text-muted);margin-top:.2rem}.main-content{flex:1 1;display:flex;flex-direction:column}.page-container{margin:0 auto;padding:2rem 1.25rem;width:100%}.page-header{margin-bottom:1.75rem}.page-title{font-size:1.6rem;font-weight:800;color:var(--text-primary)}.page-welcome{font-size:.9rem;color:var(--text-secondary);margin-top:.25rem}.flex-between{justify-content:space-between;gap:1rem}.flex-between,.header-actions{display:flex;align-items:center;flex-wrap:wrap}.header-actions{gap:.65rem}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .65rem;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;margin-bottom:.5rem}.badge-admin{background:#fef2f2;border-color:#fecaca;color:#dc2626}.badge-accueil{background:#eff6ff;border-color:#bfdbfe;color:#2563eb}.badge-staff{background:#ecfdf5;border-color:#a7f3d0;color:#059669}.badge-dot{width:6px;height:6px;border-radius:50%;background-color:currentColor}.live-header-status{display:flex;align-items:center;gap:.65rem;margin-bottom:.4rem}.realtime-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.725rem;font-weight:600;padding:.15rem .55rem;border-radius:var(--radius-full)}.realtime-pill-online{background:var(--color-emerald-bg);color:var(--color-emerald);border:1px solid var(--color-emerald-border)}.realtime-pill-offline{background:var(--bg-muted);color:var(--text-muted);border:1px solid var(--border-subtle)}.live-dot-pulse{width:6px;height:6px;border-radius:50%;background:var(--color-emerald);box-shadow:0 0 6px var(--color-emerald)}.stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}@media (max-width:640px){.stats-strip{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}}.stat-box{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.15rem 1.25rem;display:flex;flex-direction:column;gap:.35rem;box-shadow:var(--shadow-xs)}@media (max-width:640px){.stat-box{padding:.65rem .8rem;gap:.2rem}.stat-value{font-size:1.35rem!important}.stat-label{font-size:.68rem!important}}.stat-label{font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.75rem;font-weight:800;font-family:var(--font-family-display);line-height:1.1;color:var(--text-primary)}.text-emerald{color:var(--color-emerald)!important}.text-rose{color:var(--color-rose)!important}.text-primary{color:var(--color-brand-blue)!important}.text-muted{color:var(--text-muted)!important}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem;gap:1.5rem;align-items:stretch}@media (max-width:1024px){.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media (max-width:640px){.dashboard-grid{grid-template-columns:1fr;gap:1rem}}.dashboard-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:18px;padding:1.65rem 1.5rem;display:flex;flex-direction:column;height:100%;min-height:240px;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1);text-decoration:none;color:inherit}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:#bfdbfe;box-shadow:var(--shadow-md);transform:translateY(-3px);background:#fff}.card-interactive:hover .card-arrow{transform:translateX(4px)}.card-top-row{justify-content:space-between;margin-bottom:1rem}.card-icon,.card-top-row{display:flex;align-items:center}.card-icon{font-size:1.6rem;width:48px;height:48px;justify-content:center;background:var(--bg-muted);border-radius:var(--radius-md);border:1px solid var(--border-subtle);flex-shrink:0}.card-status-pill{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:var(--radius-full);letter-spacing:.02em}.pill-active{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.pill-warning{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.pill-info{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.pill-neutral{background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border-subtle)}.card-title{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin-bottom:.45rem}.card-description{font-size:.88rem;color:var(--text-secondary);line-height:1.55;flex:1 1;margin-bottom:1.25rem}.card-link-hint{color:var(--color-brand-blue);font-size:.85rem;font-weight:700;margin-top:auto;padding-top:.95rem;border-top:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between}.card-arrow{transition:transform .15s ease;font-size:1.1rem}.live-dashboard-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem}@media (max-width:960px){.live-dashboard-layout{grid-template-columns:1fr}}.dashboard-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.section-header{margin-bottom:1.15rem;display:flex;align-items:baseline;justify-content:space-between}.section-header h2{font-size:1.15rem;font-weight:700}.section-hint{font-size:.75rem;color:var(--text-muted)}.tables-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:.85rem;gap:.85rem}.table-mini-card{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:.95rem;display:flex;flex-direction:column;gap:.65rem;transition:all .15s ease}.table-mini-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-xs)}.table-mini-free{border-left:4px solid var(--color-emerald);background:#f0fdf4}.table-mini-occupied{border-left:4px solid var(--color-rose);background:#fff1f2}.table-mini-blocked{border-left:4px solid var(--color-amber);background:#fffbeb}.table-mini-top{display:flex;align-items:center;justify-content:space-between}.table-mini-name{font-size:.925rem;font-weight:700;color:var(--text-primary)}.table-status-dot{width:8px;height:8px;border-radius:50%}.dot-free{background-color:var(--color-emerald)}.dot-occupied{background-color:var(--color-rose)}.dot-blocked{background-color:var(--color-amber)}.table-mini-buttons{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:.25rem;gap:.25rem}.btn-mini-status{background:#fff;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);font-size:.7rem;font-weight:600;padding:.35rem 0;cursor:pointer;transition:all .1s ease}.btn-mini-status:hover{color:var(--text-primary);border-color:var(--border-hover)}.btn-mini-free-active{background:var(--color-emerald)!important;color:#fff!important;border-color:var(--color-emerald)!important;font-weight:700}.btn-mini-occupied-active{background:var(--color-rose)!important;color:#fff!important;border-color:var(--color-rose)!important;font-weight:700}.btn-mini-blocked-active{background:var(--color-amber)!important;color:#fff!important;border-color:var(--color-amber)!important;font-weight:700}.tables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1.25rem;gap:1.25rem}.table-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.35rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-sm)}.table-card-free{border-top:4px solid var(--color-emerald)}.table-card-occupied{border-top:4px solid var(--color-rose)}.table-card-blocked{border-top:4px solid var(--color-amber)}.table-card-top{display:flex;align-items:center;justify-content:space-between}.table-name-badge{display:flex;align-items:center;gap:.5rem}.table-name{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.table-status-pill{font-size:.75rem;font-weight:700;padding:.2rem .55rem;border-radius:var(--radius-full)}.status-free{background:var(--color-emerald-bg);color:var(--color-emerald);border:1px solid var(--color-emerald-border)}.status-occupied{background:var(--color-rose-bg);color:var(--color-rose);border:1px solid var(--color-rose-border)}.status-blocked{background:var(--color-amber-bg);color:var(--color-amber);border:1px solid var(--color-amber-border)}.table-status-actions{display:flex;flex-direction:column;gap:.4rem}.table-action-label{font-size:.75rem;color:var(--text-muted);font-weight:600}.status-button-group{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:.35rem;gap:.35rem}.btn-status-toggle{background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.45rem 0;cursor:pointer;transition:all .1s ease}.btn-status-toggle:hover{background:#e2e8f0;color:var(--text-primary)}.btn-status-free-active{background:var(--color-emerald)!important;color:#fff!important;border-color:var(--color-emerald)!important}.btn-status-occupied-active{background:var(--color-rose)!important;color:#fff!important;border-color:var(--color-rose)!important}.btn-status-blocked-active{background:var(--color-amber)!important;color:#fff!important;border-color:var(--color-amber)!important}.table-card-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border-subtle)}.reservations-live-list{display:flex;flex-direction:column;gap:.75rem}.res-live-card{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:.95rem;display:flex;align-items:center;gap:.85rem;transition:all .15s ease}.res-live-card:hover{border-color:var(--border-hover);background:#fff;box-shadow:var(--shadow-xs)}.res-time-block{display:flex;flex-direction:column;align-items:center;min-width:65px;padding-right:.75rem;border-right:1px solid var(--border-subtle)}.res-time{font-size:1.05rem;font-weight:800;color:var(--text-primary)}.res-party-size{font-size:.75rem;color:var(--text-secondary)}.res-details-block{flex:1 1}.res-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.res-phone{font-size:.9rem;font-weight:700}.res-status-pill{font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:var(--radius-full);text-transform:uppercase}.res-status-seated{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}.res-status-completed{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.res-status-confirmed{background:var(--color-emerald-bg);color:var(--color-emerald);border:1px solid var(--color-emerald-border)}.res-status-pending{background:var(--color-amber-bg);color:var(--color-amber);border:1px solid var(--color-amber-border)}.res-status-cancelled,.res-status-noshow{background:var(--bg-muted);color:var(--text-muted);border:1px solid var(--border-subtle)}.pointage-wrapper{max-width:480px;width:100%;margin:0 auto;padding:2rem 1.25rem}.pointage-main-card{background:#fff;border:1px solid var(--border-subtle);border-radius:24px;padding:2rem 1.75rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:1.5rem}.pointage-header-box{text-align:center;display:flex;flex-direction:column;align-items:center}.pointage-live-clock{font-size:2.5rem;font-weight:800;font-family:var(--font-family-display);color:var(--color-brand);letter-spacing:-.02em;line-height:1;margin-top:.5rem}.pointage-live-date{font-size:.85rem;color:var(--text-secondary);font-weight:500;text-transform:capitalize;margin-top:.35rem}.clock-actions-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}@media (max-width:420px){.clock-actions-grid{grid-template-columns:1fr}}.btn-clock-action{border-radius:18px;padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s ease;border:none;box-shadow:var(--shadow-sm);text-align:center}.btn-clock-in{background:linear-gradient(135deg,#059669,#047857);color:#fff}.btn-clock-in:hover:not(:disabled){background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 8px 20px -4px rgba(5,150,105,.4);transform:translateY(-2px)}.btn-clock-out{background:linear-gradient(135deg,#e11d48,#be123c);color:#fff}.btn-clock-out:hover:not(:disabled){background:linear-gradient(135deg,#f43f5e,#e11d48);box-shadow:0 8px 20px -4px rgba(225,29,72,.4);transform:translateY(-2px)}.btn-clock-action:disabled{opacity:.6;cursor:not-allowed;transform:none}.clock-action-icon{font-size:2rem;line-height:1}.clock-action-title{font-size:1.1rem;font-weight:800;letter-spacing:.01em}.clock-action-hint{font-size:.75rem;opacity:.9;font-weight:500}.recent-clocks-section{background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.25rem}.section-title-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem}.section-title-row h3{font-size:.95rem;font-weight:700}.section-title-sub{font-size:.72rem;color:var(--text-muted)}.clocks-list{display:flex;flex-direction:column;gap:.65rem}.clock-item{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.75rem .85rem;justify-content:space-between}.clock-item,.clock-item-left{display:flex;align-items:center}.clock-item-left{gap:.65rem}.clock-pill{font-size:.68rem;font-weight:800;padding:.2rem .5rem;border-radius:var(--radius-full)}.pill-in{background:var(--color-emerald-bg);color:var(--color-emerald);border:1px solid var(--color-emerald-border)}.pill-out{background:var(--color-rose-bg);color:var(--color-rose);border:1px solid var(--color-rose-border)}.clock-method-tag{font-size:.72rem;color:var(--text-secondary);font-weight:500}.clock-item-right{display:flex;flex-direction:column;align-items:flex-end}.clock-time{font-size:.95rem;font-weight:700;color:var(--text-primary)}.clock-date{font-size:.7rem;color:var(--text-muted)}.pending-sync-banner{background:var(--color-amber-bg);border:1px solid var(--color-amber-border);border-radius:var(--radius-md);padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.pending-sync-info{display:flex;align-items:center;gap:.65rem}.btn-sync-now{background:var(--color-amber);color:#fff;border:none;border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.78rem;font-weight:700;cursor:pointer}.ops-login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg-base)}.ops-login-card{background:#fff;border:1px solid var(--border-subtle);border-radius:20px;padding:2.5rem 2rem;max-width:420px;width:100%;box-shadow:var(--shadow-lg)}.ops-login-header{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:1.5rem}.ops-login-logo-wrapper{display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem}.ops-login-logo-img{width:64px;height:64px;object-fit:cover;border-radius:14px;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.ops-login-title{font-size:1.5rem;font-weight:800;color:var(--text-primary);margin-bottom:.25rem}.ops-login-sub{font-size:.85rem;color:var(--text-secondary)}.ops-input-wrapper{position:relative;display:flex;align-items:center}.ops-input-field{width:100%;height:46px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0 40px 0 14px;color:var(--text-primary);font-size:.9rem;font-family:var(--font-family-sans);outline:none;transition:all .15s ease}.ops-input-field:focus{border-color:var(--color-brand-blue);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.ops-toggle-eye{position:absolute;right:12px;background:transparent;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:4px}.ops-toggle-eye:hover{color:var(--text-primary)}.btn-ops-submit{width:100%;height:46px;background:var(--color-brand);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.925rem;font-weight:700;font-family:var(--font-family-sans);cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem}.btn-ops-submit:hover:not(:disabled){background:#1e293b;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-ops-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.ops-demo-fill{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--border-subtle);text-align:center}.ops-demo-btn{background:var(--bg-muted);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.8rem;font-weight:600;padding:.55rem .85rem;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;width:100%}.ops-demo-btn:hover{border-color:var(--color-brand-blue);color:var(--color-brand-blue);background:#eff6ff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;font-family:var(--font-family-sans);cursor:pointer;transition:all .15s ease;border:1px solid transparent;text-decoration:none;white-space:nowrap}.btn-primary{background-color:var(--color-brand);color:#fff}.btn-primary:hover:not(:disabled){background-color:#1e293b;box-shadow:var(--shadow-sm)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-logout{background:#fff;border-color:var(--border-subtle);color:var(--text-secondary)}.btn-logout:hover{border-color:#fecaca;color:#dc2626;background:#fef2f2}.btn-sm{padding:.4rem .75rem;font-size:.78rem;border-radius:var(--radius-sm)}.btn-lg{padding:.85rem 1.5rem;font-size:.95rem;border-radius:var(--radius-md)}.btn-block{width:100%}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.form-label{font-size:.825rem;font-weight:600}.form-input,.form-label{color:var(--text-primary)}.form-input{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.7rem .95rem;font-size:.9rem;font-family:var(--font-family-sans);outline:none;transition:all .15s ease;width:100%}.form-input:focus{border-color:var(--color-brand-blue);box-shadow:0 0 0 3px rgba(37,99,235,.15)}select.form-input{cursor:pointer}.alert{padding:.85rem 1.15rem;border-radius:var(--radius-sm);font-size:.875rem;display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem}.alert-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.alert-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.spinner{width:22px;height:22px;border:2.5px solid var(--border-subtle);border-top-color:var(--color-brand-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{text-align:center;color:var(--text-muted);font-size:.875rem;gap:.5rem}.empty-state,.loading-state{padding:3rem 0;display:flex;flex-direction:column;align-items:center}.loading-state{justify-content:center;gap:.75rem;color:var(--text-secondary)}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-backdrop,.modal-card{display:flex;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.75rem;max-width:500px;width:100%;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);flex-direction:column;overflow-x:hidden;overscroll-behavior:contain;box-shadow:var(--shadow-modal);margin:auto}.modal-card::-webkit-scrollbar{width:5px}.modal-card::-webkit-scrollbar-track{background:transparent}.modal-card::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-card::-webkit-scrollbar-thumb:hover{background:#94a3b8}.modal-header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.15rem;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.modal-title{font-size:1.25rem;font-weight:700}.modal-subtitle{font-size:.82rem;color:var(--text-secondary);margin-top:.25rem}.modal-actions{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:.65rem;margin-top:1.25rem;padding-top:.85rem;border-top:1px solid #f1f5f9}@media (max-width:640px){.modal-backdrop{padding:.5rem;align-items:center}.modal-card{padding:1.15rem;max-height:calc(100dvh - 1rem);border-radius:16px}.modal-title{font-size:1.1rem}.modal-actions{flex-direction:column-reverse;gap:.5rem}.modal-actions a,.modal-actions button{width:100%;justify-content:center}}.menu-modal-grid{display:grid;grid-template-columns:1.15fr 1fr;grid-gap:1.5rem;gap:1.5rem;align-items:start}.menu-preview-box{background:#fff;padding:1.25rem;border-radius:16px;color:#0f172a;position:-webkit-sticky;position:sticky;top:1rem;border:1px solid #e2e8f0;box-shadow:0 10px 25px -5px rgba(0,0,0,.08)}@media (max-width:768px){.menu-modal-grid{grid-template-columns:1fr;gap:1.25rem}.menu-preview-box{position:static;padding:1rem;border-radius:12px}}.required{color:var(--color-rose)}.highlight-name{color:var(--text-primary);font-weight:700}.realtime-banner{padding:.75rem 1.15rem;border-radius:var(--radius-sm);font-size:.85rem;display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem}.realtime-banner-disconnected{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.admin-menu-tree{display:flex;flex-direction:column;gap:1.5rem}.admin-category-card{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}.category-card-header{background:#f8fafc;border-bottom:1px solid var(--border-subtle);padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.category-meta{display:flex;align-items:center;gap:.65rem}.category-order-badge{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;font-weight:800;font-size:.75rem;padding:.15rem .5rem;border-radius:var(--radius-full)}.category-name{font-size:1.15rem;font-weight:800;color:var(--text-primary);margin:0}.category-count{font-size:.8rem;color:var(--text-secondary);font-weight:500}.category-actions{display:flex;align-items:center;gap:.5rem}.category-empty-hint{padding:2rem 1.25rem;text-align:center;color:var(--text-muted);font-size:.88rem}.admin-items-list{display:flex;flex-direction:column}.admin-item-row{padding:1rem 1.25rem;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;transition:background .15s ease}.admin-item-row:last-child{border-bottom:none}.admin-item-row:hover{background:#f8fafc}.item-row-main{display:flex;align-items:flex-start;gap:.85rem;flex:1 1;min-width:200px}.item-row-info{display:flex;flex-direction:column;gap:.25rem}.item-row-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--text-primary)}.item-order-pill{font-size:.7rem;color:var(--text-muted);font-weight:600}.item-row-desc{font-size:.82rem;color:var(--text-secondary);line-height:1.4;margin:0}.item-row-meta{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.item-price-section{display:flex;align-items:center;gap:.65rem}.item-raw-price{font-size:.95rem;font-weight:800;color:var(--text-primary);font-family:var(--font-family-display)}.price-toggle-pill{font-size:.75rem;font-weight:700;padding:.25rem .65rem;border-radius:var(--radius-full);cursor:pointer;border:1px solid transparent;transition:all .15s ease}.toggle-visible{background:#ecfdf5;color:#059669;border-color:#a7f3d0}.toggle-visible:hover{background:#d1fae5}.toggle-hidden{background:#fff1f2;color:#e11d48;border-color:#fecdd3}.toggle-hidden:hover{background:#ffe4e6}.item-row-actions{display:flex;align-items:center;gap:.35rem}.complaints-filters-bar{background:#fff;border:1px solid var(--border-subtle);border-radius:14px;padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem;box-shadow:var(--shadow-xs)}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-label{font-size:.8rem;font-weight:700;color:var(--text-secondary)}.filter-select{height:38px;padding:0 .85rem;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-primary)}.complaint-card{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-sm)}.complaint-header-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.75rem}.complaint-desc-box{color:var(--text-primary);font-size:.95rem;line-height:1.5;background:#fff1f2;padding:1rem 1.15rem;border-radius:10px;border:1px solid #fecdd3;border-left:4px solid #e11d48}.complaint-notes-box{background:#eff6ff;border:1px solid #bfdbfe;padding:.85rem 1rem;border-radius:8px;font-size:.85rem;color:#1e3a8a}.pointages-filters-card{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;box-shadow:var(--shadow-xs)}.filters-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.filters-row-label{font-size:.82rem;font-weight:700;color:var(--text-secondary);white-space:nowrap}.period-pills-scroller{display:flex;align-items:center;gap:.45rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.2rem}.period-pill{font-size:.8rem;font-weight:600;padding:.35rem .85rem;border-radius:var(--radius-full);background:#f8fafc;border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .15s ease}.period-pill:hover{background:#f1f5f9;color:var(--text-primary)}.period-pill-active{background:#eff6ff!important;color:#2563eb!important;border-color:#bfdbfe!important;font-weight:700}.custom-date-range-row{align-items:center}.custom-date-range-row,.filters-dropdowns-row{display:flex;gap:1rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid #f1f5f9}.filters-dropdowns-row{align-items:flex-end}.filter-field{display:flex;flex-direction:column;gap:.35rem;flex:1 1;min-width:170px}.field-label{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.filter-input,.filter-select{height:40px;padding:0 .85rem;background:#fff;border:1px solid var(--border-subtle);border-radius:8px;font-size:.85rem;color:var(--text-primary);width:100%}.filter-input:focus,.filter-select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.filter-reset-wrapper{margin-bottom:2px}.pointages-table-wrapper{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;box-shadow:var(--shadow-sm)}.pointages-table{width:100%;border-collapse:collapse;min-width:780px}.pointages-table th{background:#f8fafc;padding:.85rem 1rem;font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--border-subtle);position:-webkit-sticky;position:sticky;top:0;z-index:10}.pointages-table td{padding:.95rem 1rem;border-bottom:1px solid #f1f5f9;font-size:.85rem;vertical-align:middle}.pointages-table tbody tr:last-child td{border-bottom:none}.pointages-table tbody tr:hover{background:#f8fafc}.user-cell{gap:.65rem}.user-avatar-mini,.user-cell{display:flex;align-items:center}.user-avatar-mini{width:32px;height:32px;border-radius:8px;background:#2563eb;color:#fff;font-weight:700;font-size:.85rem;justify-content:center;flex-shrink:0}.user-info-text{display:flex;flex-direction:column}.user-display-name{font-size:.88rem;font-weight:700;color:var(--text-primary)}.user-email-text{font-size:.72rem;color:var(--text-muted)}.clock-type-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:800;padding:.2rem .55rem;border-radius:var(--radius-full)}.badge-type-in{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.badge-type-out{background:#fff1f2;color:#e11d48;border:1px solid #fecdd3}.time-cell{display:flex;flex-direction:column}.time-main{font-size:.95rem;font-weight:800;color:var(--text-primary);font-family:var(--font-family-display)}.date-sub{font-size:.72rem;color:var(--text-muted)}.method-badge{font-size:.72rem;font-weight:600;padding:.15rem .5rem;border-radius:6px;display:inline-flex;align-items:center;gap:.25rem}.method-geoloc{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.method-offline_sync{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.method-manual{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.coords-subtext{font-size:.75rem;color:var(--text-muted);font-family:monospace}.justification-pill-box{display:inline-flex;align-items:center;gap:.35rem;background:#eff6ff;border:1px solid #bfdbfe;padding:.25rem .6rem;border-radius:8px;max-width:240px}.justification-icon{font-size:.85rem}.justification-text{font-size:.78rem;font-weight:600;color:#1e3a8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.justification-empty{color:var(--text-muted);font-size:.85rem}.btn-edit-justification{background:#fff;border:1px solid var(--border-subtle);border-radius:8px;padding:.35rem .65rem;font-size:.78rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-edit-justification:hover{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.modal-clock-summary{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:.75rem;gap:.75rem;background:#f8fafc;border:1px solid var(--border-subtle);border-radius:12px;padding:.85rem;margin-bottom:1.25rem}.summary-item{display:flex;flex-direction:column;gap:.2rem}.summary-label{font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase}.preset-motifs-section{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem}.preset-title{font-size:.75rem;font-weight:700;color:var(--text-secondary)}.preset-chips{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.preset-chip{background:#f1f5f9;border:1px solid var(--border-subtle);border-radius:var(--radius-full);padding:.25rem .65rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.preset-chip:hover{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.badge-status-ontime{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:700;padding:.18rem .5rem;border-radius:6px;background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.badge-status-late{border-radius:6px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.badge-status-early,.badge-status-late{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:800;padding:.18rem .5rem}.badge-status-early{border-radius:6px;background:#fffbeb;color:#b45309;border:1px solid #fde68a}.badge-status-overtime{gap:.25rem;border-radius:6px;background:#f5f3ff;color:#5b21b6;border:1px solid #ddd6fe}.badge-status-overtime,.badge-status-working{display:inline-flex;align-items:center;font-size:.72rem;font-weight:800;padding:.18rem .5rem}.badge-status-working{gap:.35rem;border-radius:6px;background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.badge-status-missing{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:700;padding:.18rem .5rem;border-radius:6px;background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.pulse-dot{width:6px;height:6px;border-radius:50%;background:#2563eb;animation:pulseAnimation 1.5s infinite}@keyframes pulseAnimation{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.3);opacity:1}to{transform:scale(.95);opacity:.8}}.time-paired-cell{display:flex;flex-direction:column;gap:.25rem}.time-paired-header{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap}.time-paired-sub{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--text-muted)}.session-motif-container{display:flex;flex-direction:column;gap:.35rem}.session-motif-row{display:flex;align-items:flex-start;gap:.35rem;font-size:.76rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.25rem .45rem;max-width:260px}.session-motif-label{font-weight:700;font-size:.68rem;padding:.1rem .3rem;border-radius:4px;flex-shrink:0}.session-motif-label-in{background:#ecfdf5;color:#065f46}.session-motif-label-out{background:#fff1f2;color:#9f1239}.session-motif-missing-badge{font-size:.7rem;font-weight:700;color:#d97706;background:#fef3c7;padding:.15rem .4rem;border-radius:4px}.session-motif-missing-badge,.view-mode-toggle{display:inline-flex;align-items:center;gap:.2rem}.view-mode-toggle{background:#e2e8f0;padding:.2rem;border-radius:10px}.view-mode-btn{border:none;background:transparent;padding:.35rem .75rem;font-size:.78rem;font-weight:700;color:#475569;border-radius:8px;cursor:pointer;transition:all .15s ease}.view-mode-btn-active{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(0,0,0,.1)}.worked-duration-badge{padding:.25rem .6rem;border-radius:6px;font-weight:800;font-size:.85rem;background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0;font-family:var(--font-family-display)}.team-badge,.worked-duration-badge{display:inline-flex;align-items:center}.team-badge{gap:.3rem;font-size:.76rem;font-weight:700;padding:.2rem .6rem;border-radius:6px}.team-jour{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.team-nuit{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.rotation-countdown-pill{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:var(--radius-full);width:-moz-fit-content;width:fit-content}.pill-rotation-active{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.pill-rotation-warning{background:#fffbeb;color:#b45309;border:1px solid #fde68a;animation:pulseWarning 2s ease-in-out infinite}.pill-rotation-expired{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}.pill-neutral{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}@keyframes pulseWarning{0%,to{opacity:1}50%{opacity:.75}}.btn-action-pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:700;padding:.35rem .65rem;border-radius:8px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-action-rotate{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.btn-action-rotate:hover{background:#dbeafe;border-color:#93c5fd}.btn-action-extend{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.btn-action-extend:hover{background:#dcfce7;border-color:#86efac}.zones-accordions-list{display:flex;flex-direction:column;gap:1rem}.zone-accordion-card{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-xs);transition:all .2s ease}.zone-accordion-header{padding:.95rem 1.25rem;background:#fff;display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-bottom:1px solid #f1f5f9;flex-wrap:wrap;gap:.75rem}.zone-accordion-header:hover{background:#f8fafc}.zone-header-left{display:flex;align-items:center;gap:.65rem}.zone-toggle-icon{font-size:.72rem;color:var(--text-muted);width:14px}.zone-title-text{font-size:.98rem;font-weight:800;color:var(--text-primary)}.zone-count-badge{font-size:.72rem;font-weight:700;color:var(--text-muted);background:#f1f5f9;padding:.15rem .5rem;border-radius:var(--radius-full)}.zone-header-right{display:flex;align-items:center;gap:.65rem}.zone-status-pills{display:flex;align-items:center;gap:.35rem}.zone-pill-free{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;border-radius:6px}.zone-pill-free,.zone-pill-occupied{font-size:.72rem;font-weight:700;padding:.15rem .45rem}.zone-pill-occupied{background:#fff1f2;color:#9f1239;border:1px solid #fecdd3;border-radius:6px}.zone-pill-blocked{font-size:.72rem;font-weight:700;background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;padding:.15rem .45rem;border-radius:6px}.btn-add-table-zone{font-size:.72rem;font-weight:700;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;padding:.25rem .55rem;border-radius:6px;cursor:pointer;transition:all .15s ease}.btn-add-table-zone:hover{background:#dbeafe}.zone-accordion-body{padding:1rem 1.25rem;background:#fafafa}.zone-empty-hint{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#fff;border:1px dashed var(--border-subtle);border-radius:10px;font-size:.82rem;color:var(--text-muted)}.dense-tables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));grid-gap:.65rem;gap:.65rem}@media (max-width:480px){.dense-tables-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:.45rem}}.dense-table-tile{background:#fff;border-radius:12px;padding:.55rem .45rem;display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:82px;cursor:pointer;transition:all .15s ease;border:1.5px solid transparent;box-shadow:var(--shadow-xs);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.dense-table-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.dense-table-tile:active{transform:scale(.96)}.tile-free{background:#fff;border-color:#a7f3d0}.tile-free:hover{background:#f0fdf4;border-color:#059669}.tile-occupied{background:#fff1f2;border-color:#fecdd3}.tile-occupied:hover{background:#ffe4e6;border-color:#e11d48}.tile-blocked{background:#f1f5f9;border-color:#cbd5e1;opacity:.75}.tile-top-indicator{display:flex;align-items:center;justify-content:space-between;width:100%}.tile-dot{width:7px;height:7px;border-radius:50%}.dot-free{background:#059669;box-shadow:0 0 0 2px rgba(5,150,105,.2)}.dot-occupied{background:#e11d48;box-shadow:0 0 0 2px rgba(225,29,72,.2)}.dot-blocked{background:#64748b}.tile-capacity{font-size:.65rem;font-weight:700;color:var(--text-muted)}.tile-name{font-size:.85rem;font-weight:800;color:var(--text-primary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin:.2rem 0}.tile-status-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.tile-free .tile-status-label{color:#059669}.tile-occupied .tile-status-label{color:#e11d48}.tile-blocked .tile-status-label{color:#64748b}.btn-quick-status-tile{height:48px;border-radius:10px;font-size:.85rem;font-weight:800;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;border:1.5px solid transparent}.status-tile-free{background:#f8fafc;color:#059669;border-color:#e2e8f0}.status-tile-free:hover{background:#ecfdf5;border-color:#a7f3d0}.status-tile-free-active{background:#ecfdf5!important;color:#065f46!important;border-color:#059669!important;box-shadow:0 0 0 3px rgba(5,150,105,.15)}.status-tile-occupied{background:#f8fafc;color:#e11d48;border-color:#e2e8f0}.status-tile-occupied:hover{background:#fff1f2;border-color:#fecdd3}.status-tile-occupied-active{background:#fff1f2!important;color:#9f1239!important;border-color:#e11d48!important;box-shadow:0 0 0 3px rgba(225,29,72,.15)}.status-tile-blocked{background:#f8fafc;color:#475569;border-color:#e2e8f0}.status-tile-blocked:hover{background:#f1f5f9;border-color:#cbd5e1}.status-tile-blocked-active{background:#f1f5f9!important;color:#1e293b!important;border-color:#475569!important;box-shadow:0 0 0 3px rgba(71,85,105,.15)}.report-type-card{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;cursor:pointer;text-align:left;transition:all .15s ease}.report-type-card:hover{background:#f1f5f9;border-color:#cbd5e1}.report-type-card-active{background:#eff6ff!important;border-color:#2563eb!important;box-shadow:0 0 0 2px rgba(37,99,235,.15)}.report-type-card strong{font-size:.88rem;color:var(--text-primary);display:block}.report-type-card p{margin:.15rem 0 0;font-size:.72rem;color:var(--text-muted)}.printable-document-sheet{background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:2.5rem;box-shadow:0 4px 20px rgba(0,0,0,.06);max-width:960px;margin:0 auto;font-family:inherit;color:#0f172a;box-sizing:border-box}@media (max-width:768px){.printable-document-sheet{padding:1.15rem .85rem;border-radius:10px}.doc-header{flex-direction:column;align-items:flex-start;gap:.85rem}.doc-header-meta{text-align:left!important}.doc-footer-signatures{grid-template-columns:1fr!important;gap:1rem!important}}.doc-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}.doc-restaurant-name{font-size:1.5rem;font-weight:900;color:#0f172a;letter-spacing:.06em;margin:0 0 .2rem}.doc-restaurant-tagline{font-size:.75rem;font-weight:700;color:#2563eb;letter-spacing:.12em;display:block;margin-bottom:.35rem}.doc-restaurant-address{font-size:.75rem;color:#64748b;display:block}.doc-header-meta{text-align:right;display:flex;flex-direction:column;gap:.25rem}.doc-badge-official{font-size:.68rem;font-weight:800;background:#0f172a;color:#fff;padding:.2rem .55rem;border-radius:4px;display:inline-block;margin-bottom:.35rem;letter-spacing:.05em}.doc-meta-item{font-size:.78rem;color:#475569}.doc-meta-label{color:#64748b;margin-right:.35rem}.doc-divider{height:2px;background:#0f172a;margin:1.25rem 0}.doc-title-box{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #2563eb;padding:.85rem 1.15rem;border-radius:6px;margin-bottom:1.5rem}.doc-main-title{font-size:1.15rem;font-weight:900;color:#0f172a;margin:0;letter-spacing:.02em}.doc-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:1.25rem}.doc-kpi-item{background:#f8fafc;border:1px solid #e2e8f0;padding:.65rem .85rem;border-radius:6px;text-align:center}.doc-kpi-item span{font-size:.7rem;color:#64748b;display:block;text-transform:uppercase;font-weight:700}.doc-kpi-item strong{font-size:1.15rem;font-weight:800;color:#0f172a;display:block;margin-top:.15rem}.doc-table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1.25rem;border-radius:8px;border:1px solid #e2e8f0;background:#fff}.doc-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.82rem;margin-bottom:0}.doc-table th{background:#f1f5f9;color:#1e293b;font-weight:800;text-transform:uppercase;font-size:.72rem;letter-spacing:.04em;padding:.65rem .75rem;border:1px solid #cbd5e1;text-align:left;white-space:nowrap}.doc-table td{padding:.55rem .75rem;border:1px solid #e2e8f0;color:#1e293b}.doc-table tr:nth-child(2n) td{background:#fafafa}.doc-status-tag{display:inline-block;font-size:.68rem;font-weight:800;padding:.15rem .45rem;border-radius:4px}.doc-status-tag.status-confirmed,.doc-status-tag.status-resolved,.doc-status-tag.status-seated{background:#dcfce7;color:#166534}.doc-status-tag.status-in_progress,.doc-status-tag.status-open,.doc-status-tag.status-pending{background:#fef3c7;color:#92400e}.doc-status-tag.status-cancelled,.doc-status-tag.status-no_show,.doc-status-tag.status-rejected{background:#ffe4e6;color:#9f1239}.doc-footer-signatures{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;margin-top:2rem;padding-top:1.25rem;border-top:1px dashed #cbd5e1;page-break-inside:avoid;break-inside:avoid}.doc-signature-box{border:1px solid #e2e8f0;border-radius:6px;padding:.85rem;background:#fafafa}.doc-signature-label{font-size:.75rem;font-weight:700;color:#475569;display:block}.doc-signature-space{height:50px}.doc-signature-name{font-size:.72rem;color:#64748b;display:block;border-top:1px solid #cbd5e1;padding-top:.35rem}.doc-page-footer{display:flex;justify-content:space-between;align-items:center;font-size:.7rem;color:#94a3b8;margin-top:1.5rem;border-top:1px solid #f1f5f9;padding-top:.5rem}@media print{body{background:#fff!important;color:#000!important;font-size:11pt!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.btn,.header-actions,.navbar,.navbar-container,.no-print,.page-header,.sidebar,.sidebar-overlay,button{display:none!important}.page-container,.printable-document-sheet,.reports-screen-container{padding:0!important;margin:0!important;max-width:100%!important}.printable-document-sheet{border:none!important;box-shadow:none!important;width:100%!important}.doc-table-responsive{overflow:visible!important;border:none!important;margin-bottom:1rem!important}.doc-table{min-width:100%!important;width:100%!important}@page{size:A4 portrait;margin:10mm}}.fast-booking-modal{max-width:620px;width:100%;max-height:calc(100vh - 1.5rem);max-height:calc(100dvh - 1.5rem);background:#fff;border-radius:20px;box-shadow:0 25px 50px -12px rgba(15,23,42,.25);border:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden;margin:auto;animation:fastModalSlideIn .18s cubic-bezier(.16,1,.3,1)}@media (max-width:640px){.fast-booking-modal{max-height:calc(100dvh - 1rem);border-radius:16px}}@keyframes fastModalSlideIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.fast-mode-toggle-bar{display:flex;background:#f1f5f9;padding:4px;border-radius:12px;gap:4px;margin-bottom:1.25rem}.fast-mode-toggle-btn{flex:1 1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem .85rem;border-radius:10px;border:none;font-size:.88rem;font-weight:700;color:#64748b;background:transparent;cursor:pointer;transition:all .15s ease}.fast-mode-toggle-btn.active{background:#fff;color:#0f172a;box-shadow:0 2px 6px rgba(0,0,0,.08)}.fast-mode-toggle-btn.active-walkin{background:#059669;color:#fff;box-shadow:0 2px 8px rgba(5,150,105,.3)}.fast-mode-toggle-btn.active-res{background:#2563eb;color:#fff;box-shadow:0 2px 8px rgba(37,99,235,.3)}.fast-section-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:.85rem 1rem;margin-bottom:1rem}.fast-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.fast-section-title{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#475569;display:flex;align-items:center;gap:.4rem}.fast-guest-pills{display:flex;gap:.4rem;flex-wrap:wrap}.fast-guest-pill{flex:1 1;min-width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;font-size:1rem;font-weight:800;color:#1e293b;cursor:pointer;transition:all .12s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fast-guest-pill:hover{border-color:#2563eb;background:#eff6ff;transform:translateY(-1px)}.fast-guest-pill:active{transform:scale(.94)}.fast-guest-pill.active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 3px 8px rgba(15,23,42,.25)}.fast-smart-suggest{display:flex;align-items:center;justify-content:space-between;background:#ecfdf5;border:1.5px solid #a7f3d0;border-radius:10px;padding:.55rem .85rem;margin-bottom:.75rem;font-size:.82rem;color:#065f46;font-weight:600}.fast-smart-suggest-btn{background:#059669;color:#fff;border:none;border-radius:6px;padding:.25rem .6rem;font-size:.78rem;font-weight:800;cursor:pointer;transition:background .12s}.fast-smart-suggest-btn:hover{background:#047857}.fast-zone-select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:.55rem;gap:.55rem}.fast-zone-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.75rem .5rem;background:#fff;border:1.5px solid #cbd5e1;border-radius:12px;cursor:pointer;transition:all .15s ease;text-align:center}.fast-zone-card:hover{border-color:#2563eb;background:#eff6ff;transform:translateY(-2px);box-shadow:0 4px 10px rgba(37,99,235,.12)}.fast-zone-card:active{transform:scale(.96)}.fast-zone-card.active{border-color:#059669;background:#ecfdf5;box-shadow:0 4px 12px rgba(5,150,105,.15)}.fast-zone-card-name{font-size:.88rem;font-weight:800;color:#0f172a}.fast-zone-card-count{font-size:.72rem;font-weight:700;color:#059669;background:#d1fae5;padding:.15rem .45rem;border-radius:999px}.fast-back-zone-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;font-size:.75rem;font-weight:700;color:#475569;cursor:pointer;transition:all .12s ease}.fast-back-zone-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.fast-tables-container{display:flex;flex-direction:column;gap:.65rem;max-height:240px;overflow-y:auto;padding-right:4px}.fast-table-square-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));grid-gap:.6rem;gap:.6rem;max-height:250px;overflow-y:auto;padding:2px}.fast-table-square-tile{display:flex;flex-direction:column;justify-content:space-between;align-items:center;aspect-ratio:1/1;min-height:85px;padding:.5rem;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .15s cubic-bezier(.16,1,.3,1);text-align:center;position:relative}.fast-table-square-tile:hover{border-color:#059669;background:#ecfdf5;transform:translateY(-2px);box-shadow:0 4px 10px rgba(5,150,105,.12)}.fast-table-square-tile:active{transform:scale(.95)}.fast-table-square-tile.active{background:#059669;border-color:#047857;color:#fff;box-shadow:0 4px 12px rgba(5,150,105,.3)}.fast-table-square-tile.active .fast-table-square-cap{background:hsla(0,0%,100%,.25);color:#fff}.fast-table-square-tile.active .fast-table-square-name{color:#fff}.fast-table-square-tile.active .fast-table-square-status{color:#d1fae5}.fast-table-square-top{display:flex;justify-content:space-between;align-items:center;width:100%}.fast-table-square-cap{font-size:.68rem;font-weight:700;color:#475569;background:#f1f5f9;padding:.1rem .35rem;border-radius:4px}.fast-table-square-name{font-size:.95rem;font-weight:800;color:#0f172a;margin:auto 0}.fast-table-square-status{font-size:.68rem;font-weight:700;color:#059669}.fast-table-square-tile.booked-conflict{background:#fff1f2!important;border-color:#fecdd3!important;opacity:.65;cursor:not-allowed!important}.fast-table-square-tile.booked-conflict:hover{transform:none!important;box-shadow:none!important}.fast-table-square-status.text-conflict{color:#e11d48!important;font-weight:800!important}.fast-slot-pill.slot-blocked{background:#fee2e2!important;border-color:#fca5a5!important;color:#991b1b!important;opacity:.6;cursor:not-allowed!important;text-decoration:line-through}.fast-zone-group{display:flex;flex-direction:column;gap:.35rem}.fast-zone-title{font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.03em}.fast-table-pills{display:flex;flex-wrap:wrap;gap:.4rem}.fast-table-pill{display:flex;align-items:center;gap:.35rem;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;padding:.4rem .65rem;font-size:.82rem;font-weight:700;color:#334155;cursor:pointer;transition:all .12s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fast-table-pill:hover{border-color:#94a3b8;background:#f1f5f9}.fast-table-pill:active{transform:scale(.95)}.fast-table-pill.active{background:#059669;border-color:#047857;color:#fff;box-shadow:0 2px 6px rgba(5,150,105,.25)}.fast-table-pill.active .fast-pill-badge{background:hsla(0,0%,100%,.25);color:#fff}.fast-pill-badge{font-size:.68rem;font-weight:600;background:#f1f5f9;color:#64748b;padding:.1rem .35rem;border-radius:4px}.fast-slots-grid{display:flex;gap:.35rem;flex-wrap:wrap}.fast-slot-pill{padding:.4rem .6rem;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;font-size:.82rem;font-weight:700;color:#1e293b;cursor:pointer;transition:all .12s ease}.fast-slot-pill:hover{border-color:#2563eb;background:#eff6ff}.fast-slot-pill:active{transform:scale(.95)}.fast-tag-chip.active{background:#2563eb;border-color:#1d4ed8;color:#fff}.toast-floating-container{position:fixed;top:1.25rem;right:1.25rem;z-index:999999;display:flex;flex-direction:column;gap:.65rem;max-width:440px;width:calc(100% - 2.5rem);pointer-events:none}.toast-alert-card{pointer-events:auto;display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1.15rem;border-radius:12px;background:#fff;box-shadow:0 10px 25px -5px rgba(0,0,0,.2),0 8px 10px -6px rgba(0,0,0,.1);border:1.5px solid #e2e8f0;animation:toastSlideIn .25s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-alert-card.toast-error{background:#fef2f2;border-color:#fecdd3;color:#991b1b;animation:toastWiggle .4s ease}@keyframes toastWiggle{0%{transform:translateY(-10px) translateX(0);opacity:0}30%{transform:translateY(0) translateX(-6px);opacity:1}60%{transform:translateY(0) translateX(6px)}80%{transform:translateY(0) translateX(-3px)}to{transform:translateY(0) translateX(0)}}.toast-alert-card.toast-success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.toast-alert-card.toast-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.toast-alert-card.toast-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.toast-icon{font-size:1.35rem;flex-shrink:0;line-height:1;margin-top:2px}.toast-content{flex:1 1}.toast-title{display:block;font-size:.88rem;font-weight:800;margin-bottom:.15rem;color:inherit}.toast-message{margin:0;font-size:.82rem;line-height:1.4;color:inherit}.toast-close-btn{background:transparent;border:none;font-size:.9rem;font-weight:700;color:#94a3b8;cursor:pointer;padding:.2rem;border-radius:4px;line-height:1;transition:color .12s ease}.toast-close-btn:hover{color:#0f172a}.modal-feedback-alert{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem;border-radius:10px;margin-bottom:.85rem;font-size:.82rem;font-weight:700;animation:toastWiggle .3s ease}.modal-feedback-alert.alert-error{background:#fff1f2;border:1.5px solid #fda4af;color:#9f1239}.modal-feedback-alert.alert-success{background:#ecfdf5;border:1.5px solid #6ee7b7;color:#065f46}.fast-slot-pill.active{background:#2563eb;border-color:#1d4ed8;color:#fff;box-shadow:0 2px 6px rgba(37,99,235,.25)}.gcal-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.05)}.gcal-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid #f1f5f9}.gcal-view-selector{display:flex;background:#f1f5f9;padding:.25rem;border-radius:10px;gap:.25rem}.gcal-view-btn{padding:.35rem .85rem;border-radius:8px;font-size:.82rem;font-weight:700;color:#475569;background:transparent;border:none;cursor:pointer;transition:all .15s ease}.gcal-view-btn:hover{color:#0f172a;background:hsla(0,0%,100%,.6)}.gcal-view-btn.active{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(0,0,0,.1)}.gcal-month-container{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff}.gcal-month-weekdays-header{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid #e2e8f0;text-align:center}.gcal-month-weekday-cell{padding:.65rem .25rem;font-size:.8rem;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.04em}.gcal-month-days-grid{display:grid;grid-template-columns:repeat(7,1fr);background:#e2e8f0;grid-gap:1px;gap:1px}.gcal-month-day-cell{background:#fff;min-height:125px;padding:.45rem;display:flex;flex-direction:column;transition:background .15s ease;cursor:pointer;position:relative}.gcal-month-day-cell:hover{background:#f8fafc}.gcal-month-day-cell.other-month{background:#f8fafc;opacity:.5}.gcal-month-day-cell.is-today{background:#f0fdf4}.gcal-day-top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.gcal-day-number{font-size:.88rem;font-weight:800;color:#1e293b;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%}.gcal-month-day-cell.is-today .gcal-day-number{background:#059669;color:#fff}.gcal-day-count-badge{font-size:.68rem;font-weight:700;padding:.1rem .35rem;border-radius:999px;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.gcal-events-list{display:flex;flex-direction:column;gap:.25rem;overflow-y:auto;max-height:110px;padding-right:2px}.gcal-event-chip{display:flex;align-items:center;gap:.35rem;padding:.25rem .45rem;border-radius:6px;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .12s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid transparent;text-align:left}.gcal-event-chip:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.1);z-index:2}.gcal-event-chip.chip-confirmed{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.gcal-event-chip.chip-seated{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.gcal-event-chip.chip-completed{background:#f8fafc;color:#475569;border-color:#e2e8f0}.gcal-event-chip.chip-pending{background:#fffbeb;color:#b45309;border-color:#fde68a}.gcal-event-chip.chip-cancelled{background:#f1f5f9;color:#64748b;border-color:#e2e8f0;text-decoration:line-through}.gcal-chip-time{font-weight:800;flex-shrink:0}.gcal-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcal-chip-table{font-size:.65rem;padding:.05rem .25rem;background:rgba(0,0,0,.06);border-radius:4px;flex-shrink:0}.gcal-week-container{border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto;background:#fff}.gcal-week-header{display:grid;grid-template-columns:80px repeat(7,1fr);background:#f8fafc;border-bottom:2px solid #e2e8f0;position:-webkit-sticky;position:sticky;top:0;z-index:5}.gcal-week-header-day{padding:.65rem .35rem;text-align:center;border-left:1px solid #e2e8f0}.gcal-week-header-day.is-today{background:#ecfdf5}.gcal-week-row{display:grid;grid-template-columns:80px repeat(7,1fr);border-bottom:1px solid #f1f5f9;min-height:52px}.gcal-week-time-label{padding:.5rem;font-size:.75rem;font-weight:800;color:#64748b;text-align:center;background:#f8fafc;border-right:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center}.gcal-week-cell{padding:.25rem;border-left:1px solid #f1f5f9;display:flex;flex-direction:column;gap:.25rem;position:relative;transition:background .12s ease}.gcal-week-cell:hover{background:#f8fafc}.gcal-add-slot-btn{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:none;background:rgba(37,99,235,.05);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#2563eb;transition:opacity .15s ease}.gcal-week-cell:hover .gcal-add-slot-btn{opacity:1}.fast-tag-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;border-radius:999px;border:1.5px solid #e2e8f0;background:#fff;font-size:.76rem;font-weight:700;color:#475569;cursor:pointer;transition:all .12s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fast-tag-chip:hover{border-color:#cbd5e1;background:#f8fafc}.fast-tag-chip.active{background:#fef3c7;border-color:#f59e0b;color:#92400e}.fast-servers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:.5rem;gap:.5rem}.fast-server-card{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .12s ease;text-align:left}.fast-server-card:hover{border-color:#94a3b8;background:#f8fafc}.fast-server-card.active{background:#eff6ff;border-color:#2563eb;box-shadow:0 2px 6px rgba(37,99,235,.15)}.fast-server-avatar{width:28px;height:28px;border-radius:50%;background:#e2e8f0;color:#1e293b;font-weight:800;font-size:.75rem;display:flex;align-items:center;justify-content:center}.fast-server-card.active .fast-server-avatar{background:#2563eb;color:#fff}.fast-submit-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.85rem 1.25rem;border-radius:12px;border:none;font-size:1rem;font-weight:800;color:#fff;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 12px rgba(0,0,0,.15)}.fast-submit-btn-walkin{background:#059669}.fast-submit-btn-walkin:hover{background:#047857;transform:translateY(-1px)}.fast-submit-btn-res{background:#2563eb}.fast-submit-btn-res:hover{background:#1d4ed8;transform:translateY(-1px)}.fast-submit-btn:active{transform:scale(.98)}.day-view-container{display:flex;flex-direction:column;gap:1rem}.day-nav-bar{justify-content:space-between;flex-wrap:wrap;gap:.75rem;background:#fff;padding:.85rem 1.25rem;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 1px 3px rgba(0,0,0,.04)}.day-nav-bar,.day-nav-left{display:flex;align-items:center}.day-nav-left{gap:.5rem}.day-nav-title{font-size:1.2rem;font-weight:800;color:#0f172a;margin:0}.day-nav-right,.day-nav-title{display:flex;align-items:center;gap:.5rem}.day-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:.65rem;gap:.65rem}.day-kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.2rem;box-shadow:0 1px 2px rgba(0,0,0,.03)}.day-kpi-label{font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.day-kpi-value{font-size:1.35rem;font-weight:800;line-height:1.2}.day-zone-filter-strip{display:flex;align-items:center;gap:.45rem;overflow-x:auto;padding:.4rem .2rem;scrollbar-width:thin}.day-zone-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:999px;border:1.5px solid #e2e8f0;background:#fff;font-size:.78rem;font-weight:700;color:#334155;cursor:pointer;white-space:nowrap;transition:all .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.day-zone-pill:hover{border-color:#cbd5e1;background:#f8fafc}.day-zone-pill.active{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 2px 8px rgba(37,99,235,.25)}.day-zone-pill-count{font-size:.7rem;font-weight:800;padding:.1rem .45rem;border-radius:999px;background:rgba(0,0,0,.06)}.day-zone-pill.active .day-zone-pill-count{background:hsla(0,0%,100%,.25);color:#fff}.day-mode-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;background:#f8fafc;padding:.6rem 1rem;border-radius:12px;border:1px solid #e2e8f0}.day-grouping-selector{display:inline-flex;background:#e2e8f0;padding:.2rem;border-radius:10px;gap:.2rem}.day-grouping-btn{padding:.4rem .85rem;border-radius:8px;border:none;font-size:.78rem;font-weight:700;color:#475569;background:transparent;cursor:pointer;transition:all .12s ease;display:inline-flex;align-items:center;gap:.35rem}.day-grouping-btn.active{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(0,0,0,.1)}.day-zone-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.03);margin-bottom:1rem;transition:border-color .15s ease}.day-zone-card:hover{border-color:#cbd5e1}.day-zone-header{padding:.85rem 1.25rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;flex-wrap:wrap}.day-zone-header,.day-zone-header-title{display:flex;align-items:center;gap:.5rem}.day-zone-header-title{font-size:1.05rem;font-weight:800;color:#0f172a;margin:0}.day-zone-header-badges{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.day-zone-badge{font-size:.74rem;font-weight:700;padding:.2rem .6rem;border-radius:6px;border:1px solid transparent}.day-zone-res-list{padding:.75rem 1rem;display:flex;flex-direction:column;gap:.6rem}.day-res-card{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.15rem;border-radius:12px;cursor:pointer;flex-wrap:wrap;gap:.75rem;transition:all .12s ease}.day-res-card:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.05)}.day-res-card-seated{background:#eef2ff;border:1.5px solid #818cf8}.day-res-card-confirmed{background:#fff;border:1.5px solid #bfdbfe}.day-res-card-pending{background:#fffbeb;border:1.5px solid #fde68a}.day-res-card-completed{background:#f8fafc;border:1.5px solid #e2e8f0;opacity:.85}.day-res-card-cancelled{background:#f8fafc;border:1.5px solid #cbd5e1;opacity:.6}.easytable-wrapper{gap:1rem;align-items:flex-start}@media (max-width:1100px){.easytable-wrapper{flex-direction:column}}.easytable-sidebar{width:320px;min-width:320px;border:1px solid #e2e8f0;border-radius:16px;padding:1rem;gap:1rem;box-shadow:0 1px 4px rgba(0,0,0,.04)}@media (max-width:1100px){.easytable-sidebar{width:100%;min-width:100%}}.easytable-mini-cal{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.75rem}.easytable-mini-cal-header{margin-bottom:.5rem}.easytable-mini-cal-title{font-size:.85rem;font-weight:800;color:#0f172a;text-transform:capitalize}.easytable-mini-cal-weekday{font-size:.65rem;font-weight:700;color:#64748b;padding:.2rem 0}.easytable-mini-cal-day{font-size:.72rem;font-weight:600;color:#334155;padding:.3rem 0;border-radius:6px;border:none;background:transparent;cursor:pointer;transition:all .1s ease}.easytable-mini-cal-day:hover{background:#e2e8f0}.easytable-mini-cal-day.active{background:#059669!important;color:#fff!important;font-weight:800}.easytable-mini-cal-day.is-today{border:1.5px solid #059669}.easytable-mini-cal-day.other-month{color:#cbd5e1}.easytable-stats-box{background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;padding:.75rem}.easytable-stats-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f5f9;padding-bottom:.4rem;margin-bottom:.5rem;font-size:.78rem;font-weight:800;color:#0f172a}.easytable-stats-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem;font-size:.75rem}.easytable-stats-row{display:flex;justify-content:space-between;padding:.15rem 0;color:#475569}.easytable-stats-row strong{color:#0f172a}.easytable-arrival-list{display:flex;flex-direction:column;gap:.45rem;max-height:480px;overflow-y:auto;padding-right:4px}.easytable-arrival-item{display:flex;align-items:center;justify-content:space-between;padding:.45rem .65rem;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:.75rem;cursor:pointer;transition:all .12s ease}.easytable-arrival-item:hover{border-color:#94a3b8;background:#f8fafc;transform:translateX(2px)}.easytable-arrival-item.is-seated{background:#eef2ff;border-color:#c7d2fe}.easytable-main{gap:.85rem}.easytable-toolbar{gap:.75rem;padding:.85rem 1.25rem;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 1px 3px rgba(0,0,0,.03)}.easytable-title{font-size:1.25rem;font-weight:800;color:#0f172a;margin:0;text-transform:capitalize}.easytable-service-filter{display:inline-flex;background:#f1f5f9;padding:.2rem;border-radius:10px;gap:.2rem}.easytable-service-btn{padding:.35rem .75rem;border-radius:8px;border:none;font-size:.75rem;font-weight:700;color:#475569;background:transparent;cursor:pointer;transition:all .12s ease}.easytable-service-btn.active{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(0,0,0,.1)}.timeline-scroll-container{border:1.5px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}.timeline-horizontal-scroll{overflow-x:auto;position:relative;width:100%;scrollbar-width:thin}.timeline-corner-cell{background:#f8fafc;border-right:2px solid #e2e8f0;padding:.65rem .85rem;font-size:.78rem;align-items:center;justify-content:space-between}.timeline-slot-header-cell{padding:.35rem .15rem}.timeline-slot-label{font-size:.75rem;font-weight:800;color:#1e293b;display:block}.timeline-slot-count{font-size:.65rem;font-weight:700;color:#64748b;background:#f1f5f9;padding:1px 4px;border-radius:4px;display:inline-block;margin-top:1px}.timeline-now-line{box-shadow:0 0 6px rgba(37,99,235,.6)}.timeline-now-badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:.66rem;font-weight:800;padding:2px 6px;border-radius:4px;box-shadow:0 2px 6px rgba(37,99,235,.4)}.timeline-zone-separator{position:-webkit-sticky;position:sticky;left:0;background:#f8fafc;border-top:1.5px solid #e2e8f0;border-bottom:1.5px solid #e2e8f0;padding:.45rem 1rem;font-size:.85rem;color:#0f172a;align-items:center;justify-content:space-between;z-index:15}.timeline-table-row{transition:background .12s ease}.timeline-table-row:hover{background:#fafafa}.timeline-table-cell{padding:.45rem .85rem;align-items:center;justify-content:space-between}.timeline-table-name{font-size:.84rem}.timeline-table-cap{font-size:.72rem;font-weight:700;color:#64748b;background:#f1f5f9;padding:.1rem .4rem;border-radius:4px}.timeline-track-slot{border-right:1px solid #f8fafc}.timeline-track-slot:hover{background:#ecfdf5}.timeline-booking-bar{top:4px;bottom:4px;border-radius:8px;padding:.25rem .55rem;transition:all .15s ease;box-shadow:0 1.5px 4px rgba(0,0,0,.08);font-size:.74rem;font-weight:700;z-index:12;border:1px solid rgba(0,0,0,.1)}.timeline-booking-bar:hover{box-shadow:0 4px 10px rgba(0,0,0,.15);z-index:18}.timeline-booking-bar-seated{background:#eef2ff;border-color:#818cf8;color:#312e81}.timeline-booking-bar-confirmed-1{background:#0d9488;border-color:#0f766e;color:#fff}.timeline-booking-bar-confirmed-2{background:#2563eb;border-color:#1d4ed8;color:#fff}.timeline-booking-bar-confirmed-3{background:#d97706;border-color:#b45309;color:#fff}.timeline-booking-bar-confirmed-4{background:#7c3aed;border-color:#6d28d9;color:#fff}.timeline-booking-bar-completed{background:#f1f5f9;border-color:#cbd5e1;color:#64748b;opacity:.85}.clock-barrier-overlay{position:fixed;inset:0;z-index:99990;background:#0f172a;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .25s ease}.clock-barrier-card,.clock-barrier-overlay{display:flex;overflow-y:auto;-webkit-overflow-scrolling:touch}.clock-barrier-card{background:#fff;border:1px solid #e2e8f0;border-radius:24px;width:100%;max-width:520px;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:2rem 1.75rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.35);flex-direction:column;gap:1.25rem;text-align:center;animation:modalPop .25s cubic-bezier(.16,1,.3,1)}@media (max-width:640px){.clock-barrier-card{padding:1.25rem 1rem;border-radius:18px;max-height:calc(100dvh - 1rem)}}.clock-barrier-header{display:flex;flex-direction:column;align-items:center}.clock-barrier-time-display{font-family:var(--font-display),monospace;font-size:2.75rem;font-weight:800;color:#0f172a;letter-spacing:-.02em;margin:.5rem 0 .15rem}.live-shift-navbar-pill{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:999px;background:#ecfdf5;border:1.5px solid #a7f3d0;font-size:.78rem;font-weight:800;color:#065f46}.btn-clockout-pill{padding:.25rem .6rem;border-radius:8px;background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;font-size:.72rem;font-weight:800;cursor:pointer;transition:all .12s ease}.btn-clockout-pill:hover{background:#ef4444;color:#fff}.public-booking-layout{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b 50%,#0f172a);color:#f8fafc;padding:1.5rem 1rem 3rem;display:flex;flex-direction:column;align-items:center}.public-booking-container{width:100%;max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.restaurant-hero-card{background:rgba(30,41,59,.7);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid hsla(0,0%,100%,.1);border-radius:24px;padding:2rem 1.5rem 1.5rem;box-shadow:0 20px 40px -15px rgba(0,0,0,.5);display:flex;flex-direction:column;align-items:center;text-align:center}.restaurant-badge{display:inline-flex;align-items:center;gap:.35rem;background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#60a5fa;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.restaurant-name{font-size:2.5rem;font-weight:800;color:#fff;margin:.5rem 0 .25rem;letter-spacing:-.02em}.tagline-plage{font-size:.82rem;font-weight:700;color:#94a3b8;letter-spacing:.25em;text-transform:uppercase}.restaurant-info{font-size:.85rem;color:#cbd5e1;margin-top:.5rem}.public-tab-switcher{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem;background:rgba(15,23,42,.6);padding:.35rem;border-radius:14px;width:100%;max-width:480px;margin-top:1.25rem;border:1px solid hsla(0,0%,100%,.08)}.tab-btn{padding:.65rem 1rem;border-radius:10px;border:none;background:transparent;color:#94a3b8;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s ease}.tab-btn-active{background:#2563eb;color:#fff;box-shadow:0 4px 12px rgba(37,99,235,.35)}.booking-steps-bar{justify-content:center;gap:.5rem;margin-bottom:1.25rem}.booking-steps-bar,.step-item{display:flex;align-items:center}.step-item{gap:.4rem;font-size:.78rem;font-weight:700;color:#64748b}.step-num{width:22px;height:22px;border-radius:50%;background:#334155;color:#94a3b8;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800}.step-completed .step-num{background:#059669;color:#fff}.step-completed .step-text{color:#10b981}.step-active .step-num{background:#2563eb;color:#fff}.step-active .step-text{color:#60a5fa}.step-divider{width:24px;height:2px;background:#334155}.booking-form-card{background:#fff;color:#0f172a;border-radius:20px;padding:2rem 1.75rem;box-shadow:0 20px 40px -10px rgba(0,0,0,.35)}.form-card-title{font-size:1.35rem;font-weight:800;color:#0f172a;margin:0 0 .25rem}.form-card-subtitle{font-size:.85rem;color:#64748b;margin:0 0 1.5rem}.public-booking-form{display:flex;flex-direction:column;gap:1.15rem}.booking-confirmation-card{color:#0f172a;border-radius:20px;padding:2rem 1.75rem;box-shadow:0 20px 40px -10px rgba(0,0,0,.35)}.success-badge-large{font-size:3rem;margin-bottom:.5rem}.confirmation-title{font-size:1.35rem;font-weight:800;color:#059669;margin:0 0 .35rem}.confirmation-subtitle{font-size:.88rem;color:#64748b;margin:0 0 1.5rem}.confirmation-recap{display:flex;flex-direction:column;gap:.65rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:1.15rem;text-align:left;margin-bottom:1.5rem}.recap-item{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.recap-label{color:#64748b;font-weight:600}.recap-value{color:#0f172a;font-weight:800}.recap-status-pill{padding:.2rem .6rem;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.75rem;font-weight:800}.confirmation-notice{font-size:.82rem;color:#475569;margin-bottom:1rem}.public-menu-container{display:flex;flex-direction:column;gap:1.25rem;width:100%}.menu-header-card{background:rgba(30,41,59,.7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.1);border-radius:20px;padding:1.5rem;text-align:center}.menu-badge{background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);color:#fbbf24;padding:.2rem .65rem;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:uppercase}.menu-title{font-size:1.5rem;font-weight:800;color:#fff;margin:.4rem 0 .2rem}.menu-subtitle{font-size:.82rem;color:#94a3b8;margin:0}.menu-category-section{display:flex;flex-direction:column;gap:.75rem}.category-title{font-size:1.15rem;font-weight:800;color:#f8fafc;border-bottom:2px solid hsla(0,0%,100%,.1);padding-bottom:.4rem;margin:.5rem 0 0}.menu-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:.85rem;gap:.85rem}.menu-item-card{background:rgba(30,41,59,.6);border:1px solid hsla(0,0%,100%,.08);border-radius:16px;padding:1rem 1.15rem;transition:transform .15s ease,background .15s ease}.menu-item-card:hover{transform:translateY(-2px);background:rgba(30,41,59,.85);border-color:hsla(0,0%,100%,.18)}.item-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.item-name{color:#fff;margin:0}.item-name,.item-price{font-size:.95rem;font-weight:800}.item-price{color:#fbbf24;white-space:nowrap}.item-description{font-size:.8rem;color:#94a3b8;margin:.35rem 0 0;line-height:1.35}.cgu-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(15,23,42,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:1rem;overflow:hidden;animation:fadeIn .2s ease}.cgu-modal-card{position:relative;background:#fff;color:#0f172a;border-radius:24px;width:100%;max-width:540px;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);display:flex;flex-direction:column;padding:1.5rem 1.5rem 1.25rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.5),0 0 0 1px rgba(0,0,0,.05);animation:modalPop .25s cubic-bezier(.16,1,.3,1);overflow:hidden}.cgu-modal-close{position:absolute;top:1rem;right:1rem;width:34px;height:34px;border-radius:50%;background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;font-size:.95rem;font-weight:700;transition:all .15s ease}.cgu-modal-close:hover{background:#e2e8f0;color:#0f172a}.cgu-header{text-align:center;margin-bottom:.85rem;padding-right:1.75rem;padding-left:1.75rem;flex-shrink:0}.cgu-badge{display:inline-flex;align-items:center;gap:.35rem;background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb;padding:.2rem .65rem;border-radius:999px;font-size:.72rem;font-weight:800;margin-bottom:.35rem;letter-spacing:.5px}.cgu-title{font-size:1.3rem;font-weight:900;color:#0f172a;margin:0 0 .25rem;letter-spacing:-.02em}.cgu-subtitle{font-size:.8rem;color:#64748b;margin:0;line-height:1.4}.cgu-scroll-box{flex:1 1 auto;min-height:120px;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:1rem 1.15rem;margin-bottom:.85rem;font-size:.82rem;line-height:1.55;color:#334155;outline:none}.cgu-scroll-box h4{font-size:.88rem;font-weight:800;color:#0f172a;margin:.75rem 0 .25rem}.cgu-scroll-box h4:first-child{margin-top:0}.cgu-scroll-box p{margin:0 0 .5rem}.cgu-footer{flex-shrink:0;display:flex;flex-direction:column;gap:.75rem}.cgu-single-agreement-box{display:flex;gap:.75rem;align-items:flex-start;padding:.85rem 1rem;border-radius:14px;border:1.5px solid #fecaca;border-left:5px solid #ef4444;background:#fef2f2;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cgu-single-agreement-box.cgu-agreement-checked{border:2px solid #059669;border-left-width:5px;background:#f0fdf4}.cgu-checkbox-input{width:20px;height:20px;min-width:20px;margin-top:.15rem;cursor:pointer;accent-color:#059669}.cgu-agreement-inner{display:flex;flex-direction:column;gap:.25rem;flex:1 1}.cgu-accepted-badge-row{display:flex;justify-content:flex-end;margin-bottom:.1rem}.cgu-accepted-badge{font-size:.72rem;font-weight:800;background:#dcfce7;color:#15803d;padding:.1rem .45rem;border-radius:999px}.cgu-dynamic-agreement-text{font-size:.82rem;line-height:1.45;color:#991b1b}.cgu-agreement-checked .cgu-dynamic-agreement-text{color:#1e293b}.cgu-actions-row{display:flex;gap:.75rem;align-items:center}.cgu-btn-back{padding:.8rem 1.15rem;font-size:.85rem;white-space:nowrap}.cgu-btn-confirm{flex:1 1;padding:.8rem 1.25rem;font-size:.88rem;white-space:nowrap;text-align:center;justify-content:center}@media (max-width:640px){.cgu-backdrop{padding:.5rem;align-items:flex-end}.cgu-modal-card{border-radius:22px 22px 14px 14px;padding:1.25rem 1rem 1rem;max-height:calc(100dvh - 1rem)}.cgu-header{margin-bottom:.65rem;padding-left:.5rem;padding-right:2rem;text-align:left}.cgu-title{font-size:1.15rem}.cgu-subtitle{font-size:.78rem}.cgu-scroll-box{padding:.85rem;min-height:110px;margin-bottom:.65rem;font-size:.8rem}.cgu-single-agreement-box{padding:.75rem .85rem;gap:.65rem}.cgu-dynamic-agreement-text{font-size:.78rem}.cgu-actions-row{flex-direction:column-reverse;gap:.45rem;width:100%}.cgu-btn-confirm{width:100%;padding:.85rem;font-size:.9rem;font-weight:800}.cgu-btn-back{width:100%;padding:.55rem;font-size:.82rem;text-align:center;justify-content:center;background:transparent;border:none;color:#64748b}}.public-error-container{min-height:100vh;background:#0f172a;display:flex;align-items:center;justify-content:center;padding:1.5rem}.public-error-card{background:#1e293b;border:1px solid hsla(0,0%,100%,.1);border-radius:24px;padding:2.5rem 2rem;text-align:center;max-width:460px;box-shadow:0 25px 50px -12px rgba(0,0,0,.5)}.error-icon{font-size:3rem;margin-bottom:.75rem}.error-title{font-size:1.5rem;font-weight:800;color:#fff;margin:0 0 .5rem}.error-subtitle{font-size:.88rem;color:#94a3b8;margin:0 0 1.5rem}.error-subtitle code{background:rgba(0,0,0,.3);padding:.15rem .4rem;border-radius:4px;color:#f87171}.config-form-container{display:flex;flex-direction:column;gap:1.5rem}.config-grid{display:grid;grid-template-columns:1.35fr 1fr;grid-gap:1.5rem;gap:1.5rem;align-items:flex-start}@media (max-width:1024px){.config-grid{grid-template-columns:1fr}}.config-card{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;padding:1.5rem;box-shadow:0 4px 12px rgba(0,0,0,.03)}.config-card-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem;border-bottom:1px solid #f1f5f9;padding-bottom:.85rem}.config-card-icon{font-size:1.6rem;background:#eff6ff;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.config-card-title{font-size:1.15rem;font-weight:800;color:#0f172a;margin:0 0 .2rem}.config-card-subtitle{font-size:.82rem;color:#64748b;margin:0}.map-picker-wrapper{display:flex;flex-direction:column;gap:.65rem}.map-picker-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.65rem 1rem;flex-wrap:wrap}.map-picker-info{display:flex;align-items:center;gap:.6rem}.map-picker-icon{font-size:1.35rem}.range-slider{height:8px;border-radius:4px;background:#e2e8f0;outline:none;accent-color:#2563eb}.public-link-card{background:#fff;border:1px solid var(--border-subtle);border-radius:20px;padding:1.5rem;box-shadow:0 4px 16px rgba(0,0,0,.04);display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s ease,box-shadow .2s ease}.public-link-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px rgba(0,0,0,.08)}.public-link-card-header{display:flex;align-items:center;gap:.85rem;padding-bottom:.85rem;border-bottom:2px solid #f1f5f9;margin-bottom:1rem}.public-link-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.public-link-title{font-size:1.15rem;font-weight:800;color:#0f172a;margin:0 0 .25rem}.public-link-desc{font-size:.85rem;color:#64748b;line-height:1.45;margin:0 0 1rem}.public-link-url-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:.55rem .75rem;margin-bottom:1rem;overflow:hidden}.public-link-url-text{font-size:.78rem;font-family:monospace;font-weight:600;color:#2563eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.qr-preview-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:1.25rem;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:1.25rem;text-align:center}.qr-image{width:170px;height:170px;border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.06);background:#fff;padding:.35rem}.qr-hint{font-size:.72rem;color:#94a3b8;margin-top:.65rem}.public-link-actions{display:flex;gap:.5rem;flex-wrap:wrap}.text-link-preview{font-size:.78rem;font-weight:700;color:#2563eb;text-decoration:underline;transition:opacity .15s ease}.text-link-preview:hover{opacity:.8}.admin-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1.25rem;gap:1.25rem;padding:1.25rem}.admin-dish-tile{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 8px rgba(0,0,0,.03);transition:transform .2s ease,box-shadow .2s ease}.admin-dish-tile:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.06)}.dish-tile-media{height:150px;background:#f1f5f9;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.dish-tile-img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.admin-dish-tile:hover .dish-tile-img{transform:scale(1.05)}.dish-tile-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:#94a3b8}.dish-tile-placeholder span:first-child{font-size:2rem}.dish-tile-order{top:10px;left:10px;background:rgba(15,23,42,.75);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.7rem;padding:.2rem .5rem;border-radius:6px}.dish-tile-order,.dish-tile-price-badge{position:absolute;color:#fff;font-weight:800}.dish-tile-price-badge{bottom:10px;right:10px;background:rgba(15,23,42,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.82rem;padding:.3rem .65rem;border-radius:20px;border:1px solid hsla(0,0%,100%,.15)}.dish-tile-body{padding:1rem;display:flex;flex-direction:column;flex:1 1;justify-content:space-between}.dish-tile-title{font-size:1rem;font-weight:800;color:#0f172a;margin:0 0 .35rem;line-height:1.3}.dish-tile-desc{font-size:.82rem;color:#64748b;line-height:1.4;margin:0 0 1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dish-tile-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid #f1f5f9;padding-top:.75rem;margin-top:auto}.pill-toggle{border:none;border-radius:20px;padding:.25rem .65rem;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .15s ease}.pill-toggle-active{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.pill-toggle-muted{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.public-portal-wrapper{min-height:100vh;background:#faf9f5;color:#0f172a;font-family:var(--font-sans),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;display:flex;flex-direction:column}.portal-hero{position:relative;background:#fff;padding:3rem 1.25rem 2.25rem;text-align:center;border-bottom:1px solid #e2e8f0;overflow:hidden;box-shadow:0 2px 12px rgba(15,23,42,.03)}.portal-hero-overlay{display:none}.portal-hero-content{position:relative;max-width:760px;margin:0 auto;z-index:2;display:flex;flex-direction:column;align-items:center}.portal-badge-strip{display:inline-flex;align-items:center;gap:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:30px;padding:.35rem 1rem;font-size:.78rem;font-weight:700;color:#334155;margin-bottom:.85rem}.badge-live-dot{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 6px rgba(22,163,74,.5)}.portal-hero-title{font-size:2.6rem;font-weight:800;color:#0f172a;letter-spacing:-.03em;margin:0 0 .6rem}.portal-hero-subtitle{font-size:.98rem;color:#475569;line-height:1.6;margin:0 0 1.75rem;max-width:580px}@media (max-width:640px){.portal-hero{padding:2.25rem 1rem 1.75rem}.portal-hero-title{font-size:1.85rem;margin-bottom:.45rem}.portal-hero-subtitle{font-size:.88rem;margin-bottom:1.25rem}}.portal-nav-switcher{display:grid;grid-template-columns:1fr 1fr;grid-gap:.35rem;gap:.35rem;background:#f1f5f9;padding:.35rem;border-radius:50px;border:1px solid #e2e8f0;width:100%;max-width:440px}.portal-nav-btn{background:transparent;border:none;color:#64748b;font-size:.88rem;font-weight:700;padding:.7rem .85rem;border-radius:40px;cursor:pointer;transition:all .2s ease;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:.4rem}.portal-nav-btn:hover{color:#0f172a}.portal-nav-btn-active{background:#0f172a;color:#fff;box-shadow:0 2px 8px rgba(15,23,42,.2)}@media (max-width:480px){.portal-nav-btn{font-size:.8rem;padding:.6rem .5rem}}.portal-main-container{max-width:1200px;width:100%;margin:0 auto;padding:2rem 1.25rem 4rem;flex:1 1}@media (max-width:640px){.portal-main-container{padding:1.25rem .85rem 3.5rem}}.menu-filters-bar{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2.25rem}.search-input-wrapper{position:relative;max-width:620px;margin:0 auto;width:100%}.search-icon{position:absolute;left:1.25rem;top:50%;transform:translateY(-50%);font-size:1.15rem;color:#94a3b8;pointer-events:none}.search-input{width:100%;background:#fff;border:1px solid #cbd5e1;border-radius:50px;padding:.95rem 2.85rem .95rem 3.25rem;font-size:.95rem;color:#0f172a;outline:none;box-shadow:0 2px 8px rgba(0,0,0,.03);transition:border-color .2s ease,box-shadow .2s ease}.search-input:focus{border-color:#0f172a;box-shadow:0 0 0 3px rgba(15,23,42,.08)}.search-clear-btn{position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);background:#f1f5f9;border:none;color:#64748b;cursor:pointer;font-size:.85rem;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.category-pills-bar{display:flex;align-items:center;gap:.5rem;overflow-x:auto;padding:.35rem .25rem;scrollbar-width:none;justify-content:flex-start;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}@media (min-width:768px){.category-pills-bar{justify-content:center;flex-wrap:wrap}}.category-pills-bar::-webkit-scrollbar{display:none}.category-pill{background:#fff;border:1px solid #e2e8f0;color:#475569;font-size:.86rem;font-weight:700;padding:.55rem 1.15rem;border-radius:30px;cursor:pointer;white-space:nowrap;transition:all .2s ease;box-shadow:0 1px 4px rgba(0,0,0,.03);flex-shrink:0}.category-pill:hover{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}.category-pill-active{background:#0f172a;color:#fff;border-color:#0f172a;box-shadow:0 2px 8px rgba(15,23,42,.15)}.portal-empty-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:3rem 1.5rem;text-align:center;max-width:520px;margin:1.5rem auto 3rem;box-shadow:0 4px 16px rgba(0,0,0,.03)}.portal-empty-icon{font-size:3rem;margin-bottom:.85rem;display:inline-block}.portal-empty-title{font-size:1.25rem;font-weight:800;color:#0f172a;margin:0 0 .5rem}.portal-empty-desc{font-size:.9rem;color:#64748b;line-height:1.6;margin:0 auto 1.25rem;max-width:420px}.categories-stack{display:flex;flex-direction:column;gap:3.5rem}.category-showcase-block{display:flex;flex-direction:column;gap:1.5rem}.category-showcase-header{display:flex;align-items:baseline;gap:.75rem;border-bottom:1.5px solid #e2e8f0;padding-bottom:.85rem}.category-showcase-title{font-size:1.5rem;font-weight:800;color:#0f172a;letter-spacing:-.3px;margin:0}.category-showcase-count{font-size:.82rem;color:#475569;background:#f1f5f9;padding:.2rem .65rem;border-radius:20px;font-weight:700}.dishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));grid-gap:1.75rem;gap:1.75rem}.luxury-dish-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(0,0,0,.03);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.luxury-dish-card:hover{transform:translateY(-3px);border-color:#cbd5e1;box-shadow:0 8px 24px rgba(15,23,42,.06)}.dish-card-media-wrapper{position:relative;height:200px;background:#f8fafc;overflow:hidden;display:flex;align-items:center;justify-content:center}.dish-card-img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.luxury-dish-card:hover .dish-card-img{transform:scale(1.05)}.dish-card-fallback-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:#64748b;text-align:center;background:#f8fafc;width:100%;height:100%}.dish-fallback-icon{font-size:2.8rem}.dish-fallback-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#64748b}.dish-card-price-pill{position:absolute;bottom:12px;right:12px;background:#0f172a;color:#fff;font-size:.9rem;font-weight:800;padding:.35rem .85rem;border-radius:20px;box-shadow:0 2px 8px rgba(15,23,42,.25);border:1px solid hsla(0,0%,100%,.15)}.dish-card-hover-hint{position:absolute;inset:0;background:rgba(15,23,42,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;color:#fff;font-size:.85rem;font-weight:700}.luxury-dish-card:hover .dish-card-hover-hint{opacity:1}.dish-card-content{padding:1.25rem;display:flex;flex-direction:column;flex:1 1;justify-content:space-between}.dish-card-name{font-size:1.15rem;font-weight:800;color:#0f172a;margin:0 0 .5rem;line-height:1.35}.dish-card-desc{font-size:.85rem;color:#64748b;line-height:1.5;margin:0 0 1.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dish-card-action-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid #f1f5f9;padding-top:.85rem;margin-top:auto}.dish-card-tag{font-size:.72rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.btn-dish-order{background:#f1f5f9;border:1px solid #e2e8f0;color:#0f172a;font-size:.82rem;font-weight:700;cursor:pointer;padding:.35rem .75rem;border-radius:8px;transition:all .15s ease}.btn-dish-order:hover{background:#0f172a;color:#fff;border-color:#0f172a}.floating-booking-cta{position:fixed;bottom:24px;right:24px;z-index:100}.floating-cta-btn{background:#0f172a;color:#fff;border:none;border-radius:50px;padding:.95rem 1.6rem;font-size:.95rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:.5rem;box-shadow:0 6px 20px rgba(15,23,42,.25);transition:transform .2s ease,box-shadow .2s ease}.floating-cta-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.35);background:#1e293b}.dish-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.65);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.dish-modal-backdrop,.dish-modal-card{overflow-y:auto;-webkit-overflow-scrolling:touch}.dish-modal-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;max-width:540px;width:100%;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);margin:auto;position:relative;box-shadow:0 20px 40px -10px rgba(15,23,42,.2);animation:modalPop .2s ease-out}@media (max-width:640px){.dish-modal-card{border-radius:16px;max-height:calc(100dvh - 1rem)}}.dish-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #e2e8f0;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;font-size:1rem;font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,.06);transition:all .15s ease}.dish-modal-close:hover{background:#f1f5f9;color:#0f172a}.dish-modal-media{height:270px;background:#f8fafc;display:flex;align-items:center;justify-content:center}.dish-modal-img{width:100%;height:100%;object-fit:cover}.dish-modal-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#64748b;font-size:2.8rem}.dish-modal-body{padding:1.75rem}.dish-modal-title{font-size:1.35rem;font-weight:800;color:#0f172a;margin:0}.dish-modal-price{font-size:1.05rem;font-weight:800;color:#0f172a;background:#f8fafc;padding:.35rem .85rem;border-radius:20px;border:1px solid #e2e8f0;white-space:nowrap}.dish-modal-description{font-size:.95rem;color:#475569;line-height:1.6;margin:0}.booking-section-wrapper{max-width:660px;margin:0 auto}.booking-card-container{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:2.5rem;box-shadow:0 4px 20px rgba(15,23,42,.04)}.booking-card-header{text-align:center;margin-bottom:2rem}.booking-card-title{font-size:1.75rem;font-weight:900;color:#0f172a;margin:0 0 .35rem}.booking-card-subtitle{font-size:.92rem;color:#64748b;margin:0}.portal-booking-form{display:flex;flex-direction:column;gap:1.35rem}.portal-booking-form .form-label{color:#0f172a;font-size:.88rem;font-weight:700}.portal-booking-form .form-input{background:#f8fafc;border:1.5px solid #e2e8f0;color:#0f172a;border-radius:12px;padding:.8rem 1rem;font-size:.92rem}.portal-booking-form .form-input:focus{border-color:#0f172a;box-shadow:0 0 0 3px rgba(15,23,42,.08)}.btn-submit-booking{width:100%;padding:1rem;font-size:.98rem;font-weight:800;border-radius:12px;background:#0f172a;color:#fff;border:none;cursor:pointer;box-shadow:0 4px 14px rgba(15,23,42,.2);transition:background .2s ease,transform .15s ease}.btn-submit-booking:hover:not(:disabled){background:#1e293b;transform:translateY(-1px)}.btn-submit-booking:disabled{opacity:.65;cursor:not-allowed}.booking-confirmation-card{background:#fff;border:1.5px solid #bbf7d0;border-radius:24px;padding:2.5rem;text-align:center;box-shadow:0 14px 40px rgba(16,185,129,.1)}.confirmation-badge-circle{width:64px;height:64px;border-radius:50%;background:#dcfce7;color:#15803d;font-size:2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.confirmation-heading{font-size:1.6rem;font-weight:900;color:#0f172a;margin:0 0 .5rem}.confirmation-subheading{font-size:.95rem;color:#475569;margin:0 0 1.75rem}.confirmation-summary-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.85rem;gap:.85rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:1.25rem;text-align:left;margin-bottom:1.5rem}.conf-summary-cell{display:flex;flex-direction:column;gap:.2rem}.conf-label{font-size:.75rem;font-weight:700;color:#64748b;text-transform:uppercase}.conf-val{font-size:.95rem;color:#0f172a;font-weight:800}.confirmation-alert-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:.85rem 1rem;color:#1e40af;font-size:.85rem;display:flex;align-items:center;gap:.65rem;text-align:left}.portal-footer{text-align:center;padding:2.5rem 1.5rem;border-top:1px solid #e2e8f0;margin-top:auto;background:#fff}.dash-wrapper{gap:1.75rem;max-width:1440px;margin:0 auto;padding:.5rem 0 3.5rem}.dash-header-row,.dash-wrapper{display:flex;flex-direction:column}.dash-header-row{gap:1.25rem}@media (min-width:900px){.dash-header-row{flex-direction:row;align-items:flex-end;justify-content:space-between}}.dash-title-block{display:flex;flex-direction:column;gap:.4rem}.dash-top-meta{display:flex;align-items:center;gap:.6rem;font-size:.82rem;font-weight:600;color:var(--text-secondary)}.dash-live-badge{display:inline-flex;align-items:center;gap:.35rem;background:var(--color-emerald-bg);color:var(--color-emerald);border:1px solid var(--color-emerald-border);padding:.2rem .6rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:700}.dash-main-title{font-size:1.85rem;font-weight:800;color:var(--text-primary);letter-spacing:-.025em;margin:0}.dash-main-sub{font-size:.92rem;color:var(--text-secondary)}.dash-filter-pill-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;background:#fff;padding:.35rem;border-radius:14px;border:1px solid var(--border-subtle);box-shadow:0 1px 3px rgba(15,23,42,.05)}.dash-tab-btn{background:transparent;border:none;border-radius:10px;padding:.45rem .85rem;font-size:.84rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s ease-in-out}.dash-tab-btn:hover{background:var(--bg-muted);color:var(--text-primary)}.dash-tab-btn.active{background:#0f172a;color:#fff;box-shadow:0 2px 6px rgba(15,23,42,.15)}.dash-custom-date-box{display:flex;align-items:center;gap:.35rem;padding:0 .35rem;border-left:1px solid var(--border-subtle)}.dash-date-picker{border:1px solid var(--border-subtle);border-radius:8px;padding:.35rem .5rem;font-size:.8rem;font-weight:500;color:var(--text-primary);background:#f8fafc;outline:none}.dash-date-picker:focus{border-color:var(--color-brand-blue);background:#fff}.dash-btn-refresh{display:inline-flex;align-items:center;gap:.35rem;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:10px;padding:.45rem .75rem;font-size:.82rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s}.dash-btn-refresh:hover{background:#fff;color:var(--text-primary);border-color:var(--border-hover)}.dash-kpis-banner{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.25rem;gap:1.25rem}.dash-metric-card{background:#fff;border:1px solid var(--border-subtle);border-radius:18px;padding:1.35rem 1.25rem;box-shadow:0 2px 8px -2px rgba(15,23,42,.05);display:flex;flex-direction:column;gap:.85rem;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative}.dash-metric-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px -4px rgba(15,23,42,.08);border-color:var(--border-hover)}.dash-card-top-line{display:flex;align-items:center;justify-content:space-between}.dash-card-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.dash-metric-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem}.dash-ic-emerald{background:#ecfdf5;color:#059669}.dash-ic-indigo{background:#eef2ff;color:#4f46e5}.dash-ic-amber{background:#fffbeb;color:#d97706}.dash-ic-rose{background:#fff1f2;color:#e11d48}.dash-number-row{display:flex;align-items:baseline;gap:.5rem}.dash-big-num{font-size:2.1rem;font-weight:900;color:var(--text-primary);line-height:1;letter-spacing:-.03em}.dash-num-unit{font-size:.85rem;font-weight:600;color:var(--text-muted)}.dash-card-bottom-line{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--text-secondary);border-top:1px solid #f1f5f9;padding-top:.65rem}.dash-pill-mini{font-size:.74rem;font-weight:700;padding:.2rem .55rem;border-radius:var(--radius-full)}.dash-pill-ok{background:#ecfdf5;color:#047857}.dash-pill-alert{background:#fff1f2;color:#be123c}.dash-pill-neutral{background:#f1f5f9;color:#475569}.dash-main-columns{display:grid;grid-template-columns:1fr;grid-gap:1.5rem;gap:1.5rem}@media (min-width:1080px){.dash-main-columns{grid-template-columns:1.25fr .75fr}}.dash-panel{background:#fff;border:1px solid var(--border-subtle);border-radius:18px;padding:1.5rem;box-shadow:0 2px 8px -2px rgba(15,23,42,.05);display:flex;flex-direction:column;gap:1.25rem}.dash-panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.dash-panel-title{font-size:1.05rem;font-weight:800;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;margin:0}.dash-link-action{font-size:.82rem;font-weight:700;color:var(--color-brand-blue);text-decoration:none;display:inline-flex;align-items:center;gap:.25rem;transition:color .15s}.dash-link-action:hover{color:var(--color-brand-blue-hover);text-decoration:underline}.dash-activity-list{display:flex;flex-direction:column;gap:.65rem}.dash-activity-row{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:#f8fafc;border:1px solid var(--border-subtle);border-radius:12px;transition:all .15s}.dash-activity-row:hover{background:#fff;border-color:#cbd5e1;box-shadow:0 2px 6px rgba(15,23,42,.04)}.dash-act-left{display:flex;align-items:center;gap:.75rem}.dash-act-icon{font-size:1.25rem}.dash-act-details{display:flex;flex-direction:column;gap:.15rem}.dash-act-main{font-size:.88rem;font-weight:700;color:var(--text-primary)}.dash-act-sub{font-size:.78rem;color:var(--text-muted)}.dash-empty-box{padding:2.25rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.65rem;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px}.dash-empty-icon{font-size:2.25rem;margin-bottom:.25rem}.dash-empty-text{font-size:.9rem;font-weight:600;color:var(--text-secondary)}.dash-empty-subtext{font-size:.8rem;color:var(--text-muted);max-width:320px}.dash-empty-actions{display:flex;gap:.5rem;margin-top:.5rem}.dash-btn-action-sm{font-size:.8rem;font-weight:700;padding:.45rem .85rem;border-radius:8px;background:#0f172a;color:#fff;text-decoration:none;transition:background .15s}.dash-btn-action-sm:hover{background:#1e293b}.dash-btn-action-outline{font-size:.8rem;font-weight:700;padding:.45rem .85rem;border-radius:8px;background:#fff;border:1px solid var(--border-subtle);color:var(--text-primary);text-decoration:none;transition:all .15s}.dash-btn-action-outline:hover{background:var(--bg-muted)}.dash-room-gauge-wrap{display:flex;flex-direction:column;gap:1rem}.dash-gauge-track{height:14px;width:100%;background:#e2e8f0;border-radius:var(--radius-full);display:flex;overflow:hidden}.dash-gauge-fill-occupied{background:#e11d48;height:100%;transition:width .3s}.dash-gauge-fill-free{background:#059669;height:100%;transition:width .3s}.dash-gauge-fill-blocked{background:#d97706;height:100%;transition:width .3s}.dash-gauge-stats-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem;gap:.75rem;text-align:center}.dash-gauge-stat-box{background:#f8fafc;border:1px solid var(--border-subtle);border-radius:10px;padding:.6rem .4rem;display:flex;flex-direction:column;gap:.2rem}.dash-gauge-stat-val{font-size:1.15rem;font-weight:800;color:var(--text-primary)}.dash-gauge-stat-lbl{font-size:.74rem;font-weight:600;color:var(--text-secondary)}.dash-satisfaction-summary{display:flex;align-items:center;gap:1.25rem;padding-bottom:.75rem;border-bottom:1px solid #f1f5f9}.dash-big-star-score{font-size:2.75rem;font-weight:900;color:var(--text-primary);line-height:1}.dash-star-bars-col{display:flex;flex-direction:column;gap:.45rem}.dash-star-meter-row{display:flex;align-items:center;gap:.6rem;font-size:.8rem}.dash-star-meter-label{width:35px;font-weight:700;color:var(--text-secondary)}.dash-star-meter-track{flex:1 1;height:8px;background:#f1f5f9;border-radius:var(--radius-full);overflow:hidden}.dash-star-meter-fill{height:100%;background:#f59e0b;border-radius:var(--radius-full);transition:width .3s}.dash-star-meter-num{width:25px;text-align:right;font-weight:700;color:var(--text-primary)}.dash-modules-section{display:flex;flex-direction:column;gap:1.25rem;margin-top:.5rem}.dash-modules-header{display:flex;align-items:baseline;justify-content:space-between}.dash-modules-title{font-size:1.3rem;font-weight:800;color:var(--text-primary);margin:0}.dash-domain-block{display:flex;flex-direction:column;gap:.75rem}.dash-domain-heading{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);display:flex;align-items:center;gap:.4rem}.dash-domain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.dash-module-tile{background:#fff;border:1px solid var(--border-subtle);border-radius:16px;padding:1.2rem;display:flex;flex-direction:column;gap:.65rem;text-decoration:none;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:all .2s ease}.dash-module-tile:hover{transform:translateY(-2px);border-color:var(--color-brand-blue);box-shadow:0 6px 16px -2px rgba(15,23,42,.08)}.dash-tile-top{display:flex;align-items:center;justify-content:space-between}.dash-tile-icon-box{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:#f8fafc;border:1px solid var(--border-subtle)}.dash-tile-title{font-size:.98rem;font-weight:800;color:var(--text-primary);margin:0}.dash-tile-desc{font-size:.82rem;color:var(--text-secondary);line-height:1.4;margin:0;flex:1 1}.dash-tile-footer{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:700;color:var(--color-brand-blue);padding-top:.45rem;border-top:1px solid #f1f5f9}.rich-editor-toolbar{box-shadow:inset 0 1px 2px rgba(0,0,0,.02)}.toolbar-btn{background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.2rem .5rem;font-size:.78rem;font-weight:600;color:#334155;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;line-height:1.2}.toolbar-btn:hover{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.color-picker-dot{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #cbd5e1;cursor:pointer;padding:0;transition:transform .15s ease,box-shadow .15s ease}.color-picker-dot:hover{transform:scale(1.18);box-shadow:0 0 0 2px #2563eb}.color-picker-wrapper{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .45rem;background:#fff;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;font-size:.75rem;color:#475569;transition:all .15s ease}.color-picker-wrapper:hover{background:#f8fafc;border-color:#94a3b8}.color-input-native{width:18px;height:18px;border:none;background:transparent;cursor:pointer;padding:0}.dish-desc-compact-container{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.85rem}.dish-compact-pills-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.dish-mini-pill{display:inline-flex;align-items:center;gap:.25rem;background:#f1f5f9;color:#334155;font-size:.72rem;font-weight:600;padding:.2rem .5rem;border-radius:6px;border:1px solid #e2e8f0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-mini-pill-more{font-size:.7rem;color:#64748b;font-weight:700;background:#e2e8f0;padding:.15rem .4rem;border-radius:10px}.dish-desc-full-container{display:flex;flex-direction:column;gap:.85rem;margin-top:.5rem}.dish-full-intro-text{font-size:.95rem;color:#334155;line-height:1.55;font-weight:500;margin:0;padding-bottom:.35rem}.dish-full-option-block{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.75rem .9rem;transition:all .15s ease}.dish-full-option-block:hover{border-color:#cbd5e1;background:#f1f5f9}.dish-full-option-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.45rem}.dish-full-option-icon{font-size:1.1rem}.dish-full-option-title{font-size:.84rem;color:#0f172a;font-weight:700;text-transform:capitalize}.dish-full-chips-grid{display:flex;flex-wrap:wrap;gap:.4rem}.dish-full-chip{display:inline-flex;align-items:center;background:#fff;color:#1e293b;border:1px solid #cbd5e1;border-radius:8px;padding:.25rem .6rem;font-size:.78rem;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.04)}.print-sheet-backdrop{position:fixed;inset:0;background:#0f172a;z-index:2000;display:flex;flex-direction:column;overflow:hidden}.print-sheet-toolbar{background:#fff;border-bottom:1px solid #e2e8f0;padding:.85rem 1.5rem;justify-content:space-between;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:10}.print-sheet-toolbar,.print-toolbar-left{display:flex;align-items:center;gap:1rem}.print-toolbar-right{display:flex;align-items:center;gap:.75rem}.print-sheet-scrollable-area{flex:1 1;overflow-y:auto;padding:2rem 1rem;display:flex;justify-content:center;background:#334155}.a4-print-container{width:210mm;min-height:297mm;background:#fff;padding:10mm;box-shadow:0 10px 30px rgba(0,0,0,.35);box-sizing:border-box}.a4-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8mm;gap:8mm}.table-cutout-card{border:1.5px dashed #94a3b8;border-radius:12px;padding:12px 14px;background:#fff;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;box-sizing:border-box;page-break-inside:avoid;break-inside:avoid;min-height:82mm}.cutout-scissor-mark{position:absolute;top:-8px;right:12px;font-size:11px;color:#94a3b8;background:#fff;padding:0 4px}.cutout-header{margin-bottom:4px;display:flex;flex-direction:column;align-items:center}.cutout-brand{font-size:12px;font-weight:900;color:#0f172a;letter-spacing:.08em}.cutout-subbrand{font-size:8px;font-weight:700;color:#d97706;letter-spacing:.05em}.cutout-table-badge{background:#0f172a;color:#fff;padding:4px 14px;border-radius:20px;margin:4px 0 6px;display:inline-flex;align-items:center;gap:6px}.cutout-table-name{font-size:14px;font-weight:900;letter-spacing:.04em}.cutout-zone-name{font-size:10px;color:#93c5fd;font-weight:600;border-left:1px solid #334155;padding-left:6px}.cutout-qr-box{width:135px;height:135px;background:#fff;display:flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;border-radius:8px;padding:4px;margin:2px 0 6px}.cutout-qr-img{width:100%;height:100%;object-fit:contain;display:block}.cutout-footer{display:flex;flex-direction:column;align-items:center}.cutout-stars{font-size:11px;letter-spacing:2px;margin-bottom:2px}.cutout-cta{font-size:8.5px;font-weight:600;color:#475569;line-height:1.25;margin:0;max-width:160px}@media print{@page{size:A4 portrait;margin:8mm}body{background:#fff!important;color:#000!important;padding:0!important;margin:0!important}.admin-sidebar,.alert,.no-print,.page-header,.print-sheet-toolbar,.sidebar,header,nav{display:none!important}.print-sheet-backdrop{position:static!important;margin:0!important;z-index:auto!important;inset:auto!important}.print-sheet-backdrop,.print-sheet-scrollable-area{background:transparent!important;padding:0!important;overflow:visible!important}.print-sheet-scrollable-area{display:block!important}.a4-print-container{box-shadow:none!important;padding:0!important;width:100%!important;min-height:auto!important}.a4-cards-grid{display:grid!important;grid-template-columns:repeat(2,1fr)!important;grid-gap:6mm!important;gap:6mm!important}.table-cutout-card{border:1.5px dashed #475569!important;box-shadow:none!important;break-inside:avoid!important;page-break-inside:avoid!important}}.easytable-wrapper{display:flex;width:100%;align-items:stretch;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px -2px rgba(15,23,42,.06);height:clamp(520px,calc(100vh - 200px),880px);min-height:480px;position:relative}.easytable-sidebar{width:290px;min-width:290px;max-width:290px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;z-index:20}.easytable-sidebar-header{padding:.75rem .85rem;border-bottom:1px solid #f1f5f9;background:#fafafa}.easytable-mini-cal{padding:.65rem .75rem;border-bottom:1px solid #f1f5f9}.easytable-mini-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.easytable-mini-cal-month{font-size:.82rem;font-weight:800;color:#1e293b}.easytable-mini-cal-nav{display:flex;align-items:center;gap:.25rem}.easytable-mini-cal-btn{background:transparent;border:1px solid #e2e8f0;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;cursor:pointer;color:#475569;line-height:1}.easytable-mini-cal-btn:hover{background:#f1f5f9;color:#0f172a}.easytable-mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;text-align:center}.easytable-mini-cal-dayname{font-size:.65rem;font-weight:700;color:#94a3b8;padding:2px 0;text-transform:uppercase}.easytable-mini-cal-cell{font-size:.72rem;font-weight:600;padding:4px 0;border-radius:4px;cursor:pointer;color:#334155;border:1px solid transparent;position:relative;transition:all .15s ease}.easytable-mini-cal-cell:hover{background:#f1f5f9}.easytable-mini-cal-cell.other-month{color:#cbd5e1}.easytable-mini-cal-cell.selected{background:#059669!important;color:#fff!important;font-weight:800}.easytable-mini-cal-cell.is-today{border-color:#059669;color:#059669;font-weight:800}.easytable-mini-cal-cell.has-res:after{content:"";position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:3px;height:3px;border-radius:50%;background:#2563eb}.easytable-mini-cal-cell.selected.has-res:after{background:#fff}.easytable-stats-box{padding:.65rem .85rem;border-bottom:1px solid #f1f5f9;background:#f8fafc}.easytable-stats-title{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:800;text-transform:uppercase;color:#64748b;letter-spacing:.05em;margin-bottom:.4rem}.easytable-stats-table{width:100%;font-size:.72rem;border-collapse:collapse}.easytable-stats-table th{text-align:left;font-weight:700;color:#475569;padding:2px 4px}.easytable-stats-table td{padding:2px 4px;color:#1e293b;font-weight:600}.easytable-stats-table tr:hover td{background:#f1f5f9}.easytable-arrivals-container{flex:1 1;overflow-y:auto;padding:.5rem}.easytable-arrival-time-header{font-size:.72rem;font-weight:800;color:#0f172a;background:#f1f5f9;padding:3px 8px;border-radius:4px;margin:.4rem 0 .25rem;display:flex;justify-content:space-between;align-items:center}.easytable-arrival-card{padding:.45rem .6rem;border-radius:6px;margin-bottom:.35rem;border:1px solid #e2e8f0;background:#fff;cursor:pointer;transition:all .15s ease}.easytable-arrival-card:hover{border-color:#94a3b8;transform:translateX(2px);box-shadow:0 2px 4px rgba(0,0,0,.04)}.easytable-arrival-card.seated{background:#eef2ff;border-color:#c7d2fe}.easytable-arrival-top{display:flex;justify-content:space-between;align-items:center;gap:.25rem}.easytable-arrival-name{font-size:.75rem;font-weight:800;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.easytable-arrival-size{font-size:.72rem;font-weight:800;color:#475569;display:flex;align-items:center;gap:2px}.easytable-arrival-details{display:flex;align-items:center;justify-content:space-between;margin-top:2px;font-size:.68rem;color:#64748b}.easytable-arrival-tag{font-size:.64rem;font-weight:700;padding:1px 5px;border-radius:4px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.easytable-main{flex:1 1;display:flex;flex-direction:column;height:100%;width:100%;min-height:0;min-width:0;overflow:hidden;background:#fff;position:relative}.easytable-toolbar{justify-content:space-between;padding:.65rem 1rem;background:#fff;border-bottom:1px solid #e2e8f0;gap:1rem}.easytable-toolbar,.easytable-toolbar-left{display:flex;align-items:center;flex-wrap:wrap}.easytable-toolbar-left{gap:.75rem}.easytable-toolbar-right{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.timeline-scroll-container{flex:1 1;height:100%;min-height:0;overflow-x:auto;overflow-y:auto;position:relative;background:#fff}.timeline-ruler-row{top:0;z-index:25;background:#f8fafc;box-shadow:0 1px 3px rgba(0,0,0,.04)}.timeline-corner-cell,.timeline-ruler-row{display:flex;position:-webkit-sticky;position:sticky;border-bottom:2px solid #e2e8f0}.timeline-corner-cell{left:0;z-index:26;width:140px;min-width:140px;max-width:140px;background:#f1f5f9;border-right:2px solid #cbd5e1;padding:.4rem .65rem;font-size:.72rem;font-weight:800;color:#475569;flex-direction:column;justify-content:center;text-transform:uppercase;letter-spacing:.04em}.timeline-slots-header{display:flex;position:relative}.timeline-slot-header-cell{width:65px;min-width:65px;max-width:65px;border-right:1px solid #e2e8f0;padding:.25rem .2rem;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.timeline-slot-header-cell.is-hour{background:#f1f5f9;border-right-color:#cbd5e1}.timeline-slot-time-label{font-size:.75rem;font-weight:800;color:#1e293b;letter-spacing:-.02em}.timeline-booking-bar:hover{letter-spacing:-.02em}.timeline-slot-count-badge{font-size:.65rem;font-weight:700;color:#64748b;background:#e2e8f0;padding:0 4px;border-radius:8px;margin-top:1px}.timeline-slot-count-badge.has-res{background:#dbeafe;color:#1d4ed8;font-weight:800}.timeline-now-line{position:absolute;top:0;bottom:0;width:2px;background:#2563eb;z-index:28;pointer-events:none;box-shadow:0 0 8px rgba(37,99,235,.6)}.timeline-now-badge{position:-webkit-sticky;position:sticky;top:2px;left:-28px;background:#2563eb;color:#fff;font-size:.65rem;font-weight:900;padding:1px 5px;border-radius:10px;white-space:nowrap;box-shadow:0 2px 5px rgba(37,99,235,.4);transform:translateX(-40%);display:inline-flex;align-items:center;gap:2px}.timeline-zone-separator{display:flex;background:#f1f5f9;border-top:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;font-size:.75rem;font-weight:800;color:#334155;-webkit-user-select:none;-moz-user-select:none;user-select:none}.timeline-zone-label{position:-webkit-sticky;position:sticky;left:0;z-index:12;width:140px;min-width:140px;max-width:140px;padding:.35rem .65rem;background:#e2e8f0;border-right:2px solid #cbd5e1;display:flex;align-items:center;gap:.35rem}.timeline-zone-filler{flex:1 1;background:#f1f5f9}.timeline-table-row{display:flex;min-height:48px;border-bottom:1px solid #f1f5f9;position:relative;transition:background .15s ease}.timeline-table-row:hover{background:#f8fafc}.timeline-table-cell{position:-webkit-sticky;position:sticky;left:0;z-index:10;width:140px;min-width:140px;max-width:140px;background:#fff;border-right:2px solid #e2e8f0;padding:.4rem .65rem;display:flex;flex-direction:column;justify-content:center;box-shadow:2px 0 4px rgba(0,0,0,.02)}.timeline-table-row:hover .timeline-table-cell{background:#f8fafc}.timeline-table-name{font-size:.82rem;font-weight:800;color:#0f172a;display:flex;align-items:center;justify-content:space-between}.timeline-table-capacity{font-size:.68rem;font-weight:600;color:#64748b;background:#f1f5f9;padding:0 4px;border-radius:4px}.timeline-table-track{display:flex;position:relative;flex:1 1}.timeline-track-slot{width:65px;min-width:65px;max-width:65px;border-right:1px solid #f1f5f9;height:100%;cursor:pointer;transition:background .1s ease;position:relative}.timeline-track-slot.is-hour{border-right-color:#e2e8f0;background-color:rgba(241,245,249,.25)}.timeline-track-slot:hover{background-color:#eff6ff}.timeline-track-slot:hover:after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.85rem;font-weight:800;color:#3b82f6}.timeline-booking-bar{position:absolute;top:5px;bottom:5px;border-radius:6px;padding:.2rem .45rem;display:flex;align-items:center;justify-content:space-between;gap:.35rem;cursor:pointer;z-index:15;box-shadow:0 1px 4px rgba(0,0,0,.1);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;overflow:hidden;white-space:nowrap}.timeline-booking-bar:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,.15);z-index:22;filter:brightness(1.03)}.timeline-bar-left{display:flex;align-items:center;gap:.35rem;min-width:0;overflow:hidden}.timeline-bar-time{font-size:.68rem;font-weight:800;opacity:.85}.timeline-bar-name{font-size:.75rem;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-unassigned-section{background:#f8fafc;border-top:2px solid #cbd5e1;padding:.65rem .85rem}.timeline-unassigned-header{font-size:.78rem;font-weight:800;color:#475569;display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.timeline-unassigned-grid{display:flex;flex-wrap:wrap;gap:.5rem}.timeline-unassigned-card{background:#fff;border:1.5px dashed #94a3b8;border-radius:8px;padding:.4rem .7rem;font-size:.75rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .15s ease}.timeline-unassigned-card:hover{border-color:#2563eb;background:#eff6ff;transform:translateY(-1px)}.timeline-bar-blue{background:#2563eb!important;border:1px solid #1d4ed8!important;color:#fff!important}.timeline-bar-blue:hover{background:#1d4ed8!important}.timeline-bar-red{background:#dc2626!important;border:1px solid #b91c1c!important;color:#fff!important;box-shadow:0 0 0 1px rgba(220,38,38,.35),0 2px 6px rgba(220,38,38,.25)!important}.timeline-bar-red:hover{background:#b91c1c!important}.timeline-bar-gray{background:#64748b!important;border:1px solid #475569!important;color:#f8fafc!important;opacity:.88}.timeline-bar-gray:hover{opacity:1;background:#475569!important}.timeline-bar-cancelled{background:repeating-linear-gradient(45deg,#fef3c7,#fef3c7 6px,#fde68a 0,#fde68a 12px)!important;border:1.5px dashed #d97706!important;color:#92400e!important;opacity:.85}.timeline-bar-cancelled:hover{opacity:1}.timeline-legend-bar{display:flex;align-items:center;gap:1.5rem;padding:.65rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.85rem;flex-wrap:wrap;font-size:.8rem;font-weight:600;color:#334155}.timeline-legend-item{display:flex;align-items:center;gap:.45rem}.timeline-legend-swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0}.timeline-live-cockpit{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:.65rem;gap:.65rem;margin-bottom:.85rem}.cockpit-meta-card{background:#0f172a;color:#fff;border-radius:10px;padding:.65rem .85rem;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 2px 6px rgba(15,23,42,.15);border:1px solid #1e293b}.cockpit-meta-header{display:flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:800;letter-spacing:.04em;color:#94a3b8}.cockpit-live-dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b981;animation:cockpitPulse 2s infinite}@keyframes cockpitPulse{0%{transform:scale(.95);opacity:.75}50%{transform:scale(1.15);opacity:1}to{transform:scale(.95);opacity:.75}}.cockpit-live-clock{margin-left:auto;font-size:.76rem;color:#38bdf8;font-weight:900}.cockpit-meta-body{display:flex;align-items:baseline;justify-content:space-between;margin-top:.35rem;flex-wrap:wrap;gap:.35rem}.cockpit-meta-stat strong{font-size:1.15rem;font-weight:900;color:#f8fafc;margin-right:.35rem}.cockpit-meta-stat span{font-size:.72rem;color:#94a3b8;font-weight:600}.cockpit-meta-badge{font-size:.68rem;color:#cbd5e1;background:hsla(0,0%,100%,.1);padding:.15rem .45rem;border-radius:6px}.cockpit-stat-card{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:.6rem .85rem;cursor:pointer;transition:all .15s ease;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 1px 3px rgba(0,0,0,.05);position:relative;overflow:hidden}.cockpit-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.08)}.cockpit-stat-card.is-active{box-shadow:0 0 0 2px currentColor}.cockpit-card-header{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:800;letter-spacing:.03em}.cockpit-card-value{display:flex;align-items:baseline;gap:.45rem;margin:.25rem 0 .15rem}.cockpit-number{font-size:1.45rem;font-weight:900;line-height:1}.cockpit-sub{font-size:.74rem;font-weight:700;opacity:.85}.cockpit-card-hint{font-size:.68rem;font-weight:600;color:#64748b;display:flex;align-items:center;gap:.25rem}.cockpit-stat-card.card-blue{border-left:4px solid #2563eb}.cockpit-stat-card.card-blue.is-active,.cockpit-stat-card.card-blue:hover{border-color:#2563eb;background:#eff6ff}.cockpit-stat-card.card-blue .cockpit-card-header,.cockpit-stat-card.card-blue .cockpit-number{color:#1d4ed8}.cockpit-stat-card.card-red{border-left:4px solid #dc2626}.cockpit-stat-card.card-red.is-active,.cockpit-stat-card.card-red:hover{border-color:#dc2626;background:#fef2f2}.cockpit-stat-card.card-red .cockpit-card-header,.cockpit-stat-card.card-red .cockpit-number{color:#b91c1c}.cockpit-alert-badge{margin-left:auto;background:#fee2e2;color:#991b1b;border:1px solid #f87171;font-size:.65rem;font-weight:800;padding:1px 5px;border-radius:6px;animation:overstayAlert 1.5s infinite alternate}.cockpit-stat-card.card-gray{border-left:4px solid #64748b}.cockpit-stat-card.card-gray.is-active,.cockpit-stat-card.card-gray:hover{border-color:#64748b;background:#f8fafc}.cockpit-stat-card.card-gray .cockpit-card-header,.cockpit-stat-card.card-gray .cockpit-number{color:#334155}.cockpit-stat-card.card-amber{border-left:4px solid #d97706}.cockpit-stat-card.card-amber.is-active,.cockpit-stat-card.card-amber:hover{border-color:#d97706;background:#fffbeb}.cockpit-stat-card.card-amber .cockpit-card-header,.cockpit-stat-card.card-amber .cockpit-number{color:#b45309}.timeline-quick-release-btn{background:#10b981;color:#fff;border:none;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:2px;margin-left:4px;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:all .12s ease;flex-shrink:0}.timeline-quick-release-btn:hover{background:#059669;transform:scale(1.05)}.timeline-overstay-pulse{background:#991b1b!important;color:#fef2f2!important;border:1.5px solid #ef4444!important;animation:overstayAlert 1.5s infinite alternate!important}@keyframes overstayAlert{0%{box-shadow:0 0 3px rgba(239,68,68,.4)}to{box-shadow:0 0 9px rgba(239,68,68,.9)}}.planning-accordions-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.planning-accordion-item{background:#fff;border:1px solid #e2e8f0;border-radius:9px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.03);transition:all .2s ease}.planning-accordion-item.is-unassigned{border-color:#fdba74;background:#fffbf5}.planning-accordion-header{display:flex;align-items:center;justify-content:space-between;padding:.45rem .85rem;background:#f8fafc;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:.8rem;font-weight:700;color:#1e293b;transition:background .15s ease;gap:.5rem;flex-wrap:wrap}.planning-accordion-header:hover{background:#f1f5f9}.planning-accordion-header.is-unassigned{background:#fff7ed;color:#9a3412}.planning-accordion-header.is-unassigned:hover{background:#ffedd5}.planning-accordion-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.planning-active-badge{font-size:.7rem;font-weight:800;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;padding:2px 7px;border-radius:6px}.planning-count-pill{font-size:.7rem;font-weight:700;background:#f1f5f9;color:#475569;padding:2px 6px;border-radius:4px}.planning-live-pill{font-size:.72rem;font-weight:800;background:#0f172a;color:#f8fafc;padding:1px 6px;border-radius:4px;letter-spacing:.02em}.planning-accordion-preview{display:flex;align-items:center;gap:.75rem;font-size:.75rem;font-weight:600;color:#64748b;margin-left:auto;margin-right:.5rem;flex-wrap:wrap}.cockpit-summary-item{display:inline-flex;align-items:center;gap:.25rem}.cockpit-alert-mini{font-size:.68rem;font-weight:900;color:#dc2626;background:#fee2e2;padding:1px 5px;border-radius:4px;animation:cockpitPulse 1.8s infinite}.planning-accordion-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.planning-reset-btn{font-size:.68rem;font-weight:800;background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:4px;padding:2px 6px;cursor:pointer}.planning-reset-btn:hover{background:#fca5a5}.planning-chevron{font-size:.72rem;font-weight:800;color:#64748b;background:#fff;border:1px solid #e2e8f0;padding:2px 7px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.portal-tables-selector{margin-top:1.25rem;display:flex;flex-direction:column;gap:.75rem}.portal-tables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:.65rem;gap:.65rem;max-height:290px;overflow-y:auto;padding:.25rem;-webkit-overflow-scrolling:touch}.portal-table-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.85rem .6rem;border-radius:12px;border:1.5px solid #e2e8f0;background:#fff;cursor:pointer;transition:all .15s ease;text-align:center;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.02)}.portal-table-card:hover:not(.portal-table-card-occupied):not(.portal-table-card-unsuitable){border-color:#0f172a;transform:translateY(-2px);box-shadow:0 4px 12px rgba(15,23,42,.06)}.portal-table-card-available{border-color:#86efac;background:#f0fdf4}.portal-table-card-available:hover{border-color:#16a34a;background:#dcfce7}.portal-table-card-selected{border-color:#1e3a8a!important;background:#eff6ff!important;box-shadow:0 0 0 2px #1e3a8a!important}.portal-table-card-occupied{opacity:.65}.portal-table-card-occupied,.portal-table-card-unsuitable{border-color:#e2e8f0;background:#f8fafc;cursor:not-allowed}.portal-table-card-unsuitable{opacity:.5}.portal-table-card-name{font-size:.95rem;font-weight:800;color:#0f172a;margin-bottom:.15rem}.portal-table-card-zone{font-size:.72rem;color:#64748b;margin-bottom:.35rem}.portal-table-card-badge{font-size:.7rem;font-weight:700;padding:.2rem .5rem;border-radius:6px;display:inline-flex;align-items:center;gap:.25rem}.portal-badge-green{background:#dcfce7;color:#15803d}.portal-badge-blue{background:#dbeafe;color:#1e40af}.portal-badge-gray{background:#f1f5f9;color:#64748b}.planning-accordion-content{padding:.65rem .85rem;border-top:1px solid #e2e8f0;background:#fff}.planning-accordion-content.is-unassigned{padding:.4rem .65rem;border-top:1px solid #fed7aa;background:#fffbf5}.timeline-unassigned-slider-wrapper{display:flex;align-items:center;gap:.4rem;width:100%}.timeline-unassigned-slider-track{display:flex;gap:.5rem;overflow-x:auto;scroll-behavior:smooth;flex:1 1;padding:2px;scrollbar-width:none;-ms-overflow-style:none}.timeline-unassigned-slider-track::-webkit-scrollbar{display:none}.unassigned-nav-arrow,.unassigned-track-arrow{flex:0 0 28px;width:28px;height:28px;border-radius:6px;border:1.5px solid #fdba74;background:#fff;color:#ea580c;font-size:.72rem;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.unassigned-nav-arrow:hover,.unassigned-track-arrow:hover{background:#ffedd5;border-color:#ea580c;color:#9a3412}.unassigned-header-nav-btns{display:flex;align-items:center;gap:.25rem}.timeline-unassigned-top-card{flex:0 0 auto;white-space:nowrap;background:#fff;border:1.5px dashed #f97316;border-radius:7px;padding:.2rem .55rem;display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;transition:all .15s ease;font-size:.74rem;height:32px}.timeline-unassigned-top-card:hover{background:#ffedd5;border-color:#ea580c;transform:translateY(-1px);box-shadow:0 2px 5px rgba(234,88,12,.15)}.unassigned-top-time{background:#f1f5f9;color:#0f172a;font-weight:800;padding:1px 5px;border-radius:4px}.unassigned-top-name{color:#0f172a;font-weight:800;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unassigned-top-guests{color:#64748b;font-weight:600}.unassigned-top-phone{color:#94a3b8;font-size:.68rem}.unassigned-top-action{background:#ea580c;color:#fff;border:none;border-radius:5px;font-size:.68rem;font-weight:800;padding:2px 7px;cursor:pointer}.unassigned-top-action:hover{background:#c2410c}.unassigned-badge-pulse{background:#ea580c;color:#fff;font-size:.68rem;font-weight:900;padding:2px 6px;border-radius:6px;animation:cockpitPulse 1.8s infinite}.timeline-table-cell{position:-webkit-sticky!important;position:sticky!important;left:0!important;z-index:25!important;background:#fff!important;border-right:2px solid #e2e8f0!important;box-shadow:2px 0 5px rgba(0,0,0,.04)!important}.timeline-table-row:hover .timeline-table-cell{background:#f8fafc!important}.timeline-corner-cell{z-index:35!important;background:#fff!important}.timeline-corner-cell,.timeline-zone-label{position:-webkit-sticky!important;position:sticky!important;left:0!important}.timeline-zone-label{z-index:25!important;background:#e2e8f0!important}.timeline-booking-bar{z-index:5!important}.timeline-booking-bar:hover{z-index:8!important}