:root{--teal:#0ea5a0;--teal-deep:#078f8a;--magenta:#e6007e;--dark:#1d1d1f;--grey:#6e6e73;--light-bg:#f5f5f7;--border:rgba(0,0,0,.07);--glass-bg:hsla(0,0%,100%,.66);--glass-bg-strong:hsla(0,0%,100%,.82);--glass-border:hsla(0,0%,100%,.65);--glass-blur:22px;--pending:#b8860b;--confirmed:#0ea5a0;--checked-in:#1a7f37;--checked-out:#6b6b6b;--cancelled:#d0342c;--radius-lg:22px;--radius-md:16px;--radius-sm:10px;--shadow-soft:0 10px 30px rgba(20,20,30,.08),0 1px 3px rgba(20,20,30,.05);--shadow-lift:0 18px 40px rgba(20,20,30,.12),0 2px 6px rgba(20,20,30,.06);--ease:cubic-bezier(0.2,0.8,0.2,1)}*{box-sizing:border-box}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--dark);background:radial-gradient(at 8% 8%,rgba(14,165,160,.16) 0,transparent 45%),radial-gradient(at 92% 15%,rgba(230,0,126,.1) 0,transparent 45%),radial-gradient(at 25% 95%,rgba(14,165,160,.1) 0,transparent 50%),radial-gradient(at 95% 90%,rgba(230,0,126,.08) 0,transparent 50%),var(--light-bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}a{color:inherit}.container{max-width:1100px;margin:0 auto;padding:0 20px 40px}.brand{font-size:18px;font-weight:700;text-decoration:none;letter-spacing:-.01em}.brand span{color:var(--magenta)}.app-shell{display:flex;min-height:100vh;padding:16px;gap:16px;align-items:flex-start}.sidebar{width:220px;flex-shrink:0;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:16px;height:calc(100vh - 32px);overflow:hidden;transition:width .18s var(--ease)}.sidebar.collapsed{width:64px}.sidebar .brand-row{padding:20px 18px;border-bottom:1px solid var(--border)}.sidebar.collapsed .brand-row{padding:20px 10px}.sidebar-toggle{background:hsla(0,0%,100%,.5);border:1px solid var(--border);border-radius:8px;width:24px;height:24px;cursor:pointer;color:var(--grey);font-size:12px;line-height:1;flex-shrink:0;transition:background .15s ease,transform .15s ease}.sidebar-toggle:hover{background:rgba(14,165,160,.12);transform:scale(1.05)}.sidebar nav{flex:1 1;padding:10px 8px;overflow-y:auto;overflow-x:hidden}.sidebar nav .nav-parent,.sidebar nav a{width:100%;padding:10px 12px;margin:2px 0;font-size:13px;text-decoration:none;color:var(--dark);background:none;border:none;border-radius:11px;text-align:left;cursor:pointer;font-family:inherit;white-space:nowrap;text-overflow:ellipsis;transition:background .15s ease,color .15s ease,transform .1s ease}.sidebar nav .nav-link-content,.sidebar nav .nav-parent,.sidebar nav a{display:flex;align-items:center;gap:10px;overflow:hidden}.sidebar nav .nav-icon{flex-shrink:0;color:var(--teal)}.sidebar nav .nav-parent.active .nav-icon,.sidebar nav a.active .nav-icon{color:var(--teal-deep)}.sidebar nav .nav-parent:hover,.sidebar nav a:hover{background:rgba(14,165,160,.09)}.sidebar nav .nav-parent:active,.sidebar nav a:active{transform:scale(.98)}.sidebar.collapsed nav .nav-parent,.sidebar.collapsed nav a{justify-content:center;padding:10px 4px}.sidebar nav .nav-parent{justify-content:space-between}.sidebar nav .nav-parent.active,.sidebar nav a.active{color:var(--teal-deep);font-weight:700;background:linear-gradient(135deg,rgba(14,165,160,.18),rgba(14,165,160,.05));box-shadow:inset 0 0 0 1px rgba(14,165,160,.16)}.sidebar nav a.nav-child{padding-left:28px;font-size:12.5px}.sidebar.collapsed nav a.nav-child{padding-left:4px}.sidebar nav .nav-section{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--grey);padding:14px 12px 4px}.sidebar .user-box{border-top:1px solid var(--border);padding:14px 18px;font-size:12px;color:var(--grey)}.sidebar .user-box .name{color:var(--dark);font-weight:600;font-size:13px;margin-bottom:8px}.main-content{flex:1 1;min-width:0}.main-content .container{padding-top:8px;max-width:1200px}.modal-overlay{position:fixed;inset:0;background:rgba(20,20,25,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overflow-y:auto;animation:overlayFadeIn .18s ease}.modal-card{background:var(--glass-bg-strong);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:100%;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lift);animation:modalPop .2s var(--ease);margin:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:hsla(0,0%,100%,.6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.modal-header h3{margin:0;font-size:16px;letter-spacing:-.01em}.modal-close{background:rgba(0,0,0,.05);border:none;border-radius:50%;width:26px;height:26px;font-size:18px;line-height:1;cursor:pointer;color:var(--grey);transition:background .15s ease,transform .15s ease}.modal-close:hover{background:rgba(0,0,0,.1);transform:scale(1.05)}.modal-body{padding:22px}.shift-blocked{max-width:480px;margin:60px auto;text-align:center;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:40px 28px;animation:fadeInUp .3s var(--ease)}.user-chip{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--grey)}.btn{background:linear-gradient(135deg,var(--teal),var(--teal-deep));color:#fff;border:none;padding:9px 18px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 3px 10px rgba(14,165,160,.32);transition:transform .15s var(--ease),box-shadow .15s var(--ease),opacity .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px rgba(14,165,160,.4)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-outline{background:hsla(0,0%,100%,.55);color:var(--teal-deep);border:1.5px solid rgba(14,165,160,.45);box-shadow:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-outline:hover:not(:disabled){background:rgba(14,165,160,.1)}.btn-danger{background:linear-gradient(135deg,#e2534a,#c62828);box-shadow:0 3px 10px rgba(198,40,40,.32)}.btn-danger:hover:not(:disabled){box-shadow:0 8px 18px rgba(198,40,40,.4)}.btn-sm{padding:6px 12px;font-size:12px}section{padding:28px 0;animation:fadeIn .35s var(--ease) both}section h1{font-size:22px;margin:0 0 20px;letter-spacing:-.01em}.login-card{max-width:380px;margin:80px auto;background:var(--glass-bg-strong);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:32px;animation:fadeInUp .4s var(--ease)}.login-card h1{font-size:20px;margin-top:0}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--grey);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}.field input,.field select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:hsla(0,0%,100%,.6);transition:box-shadow .15s ease,border-color .15s ease,background .15s ease;font-family:inherit}.field input:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(14,165,160,.15);background:hsla(0,0%,100%,.85)}.alert{padding:11px 16px;border-radius:12px;font-size:13px;margin-bottom:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeInUp .25s var(--ease)}.alert-error{background:rgba(211,47,47,.08);color:#b91c1c;border:1px solid rgba(211,47,47,.22)}.account-tree{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:6px 0}.account-tree-type-header{display:flex;align-items:center;gap:8px;padding:10px 14px;font-weight:700;cursor:pointer;border-top:1px solid var(--glass-border)}.account-tree-type-header:first-child{border-top:none}.account-tree-row{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:13px;border-top:1px dashed var(--glass-border);transition:background .15s ease}.account-tree-row:hover{background:hsla(0,0%,100%,.35)}.account-tree-toggle{background:none;border:none;cursor:pointer;font-size:12px;color:var(--grey);width:16px;flex-shrink:0}.account-tree-code{color:var(--grey);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:60px}.account-tree-name{flex:1 1;font-weight:600}table{width:100%;border-collapse:collapse;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft)}td,th{text-align:left;padding:12px 14px;font-size:13px;border-bottom:1px solid var(--border)}th{background:hsla(0,0%,100%,.35);font-weight:600;color:var(--grey);text-transform:uppercase;font-size:11px;letter-spacing:.04em}tbody tr{transition:background .15s ease}tbody tr:hover{background:rgba(14,165,160,.06)}tr:last-child td{border-bottom:none}.status-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.status-PENDING{background:rgba(184,134,11,.15);color:#8a6508}.status-CONFIRMED{background:rgba(14,165,160,.15);color:#0b7d79}.status-CHECKED_IN{background:rgba(26,127,55,.15);color:#166534}.status-CHECKED_OUT{background:hsla(0,0%,42%,.15);color:#52525b}.status-CANCELLED{background:rgba(208,52,44,.15);color:#b91c1c}.status-PREPARING{background:rgba(184,134,11,.15);color:#8a6508}.status-READY{background:rgba(14,165,160,.15);color:#0b7d79}.status-SERVED{background:hsla(0,0%,42%,.15);color:#52525b}.status-IN_PROGRESS{background:rgba(184,134,11,.15);color:#8a6508}.status-DONE{background:rgba(26,127,55,.15);color:#166534}.actions{display:flex;gap:6px;flex-wrap:wrap}.empty-state{text-align:center;color:var(--grey);padding:40px 0}.pos-layout{display:grid;grid-template-columns:1fr 340px;grid-gap:20px;gap:20px;align-items:start}.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.menu-item-btn{background:var(--glass-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:12px;text-align:left;cursor:pointer;font-size:13px;transition:transform .15s var(--ease),box-shadow .15s var(--ease),border-color .15s ease}.menu-item-btn:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:var(--shadow-soft)}.menu-item-btn:active{transform:scale(.98)}.menu-item-btn .name{font-weight:600;margin-bottom:4px}.menu-item-btn .price{color:var(--teal-deep);font-weight:700}.cart-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:16px;position:-webkit-sticky;position:sticky;top:16px}.cart-line{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.cart-line:last-child{border-bottom:none}.qty-controls{display:flex;align-items:center;gap:6px}.qty-controls button{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:hsla(0,0%,100%,.7);cursor:pointer;transition:background .15s ease,transform .1s ease}.qty-controls button:hover{background:rgba(14,165,160,.12)}.qty-controls button:active{transform:scale(.92)}.category-heading{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--grey);margin:18px 0 8px}.category-heading:first-child{margin-top:0}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:14px;gap:14px}.board-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:14px;transition:transform .18s var(--ease),box-shadow .18s var(--ease)}.board-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}.board-card .order-ref{font-size:12px;color:var(--grey);margin-bottom:8px}.board-item{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px dashed var(--border);font-size:13px}.board-item:last-child{border-bottom:none}.room-grid-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:12px;gap:12px}.room-tile{border-radius:var(--radius-sm);padding:14px;color:#fff;font-weight:700;text-align:center;box-shadow:var(--shadow-soft);transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.room-tile:hover{transform:translateY(-2px) scale(1.02);box-shadow:var(--shadow-lift)}.room-tile small{display:block;font-weight:400;font-size:11px;margin-top:4px;opacity:.9}.room-VACANT_CLEAN{background:linear-gradient(135deg,#1a7f37,#146129)}.room-VACANT_DIRTY{background:linear-gradient(135deg,#b8860b,#93690a)}.room-OCCUPIED{background:linear-gradient(135deg,#0ea5a0,#078f8a)}.room-MAINTENANCE{background:linear-gradient(135deg,#d0342c,#a32020)}.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));grid-gap:10px;gap:10px;margin-bottom:4px}.table-tile{border:none;border-radius:var(--radius-sm);padding:12px 8px;color:#fff;font-weight:700;font-size:13px;text-align:center;cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .15s var(--ease),box-shadow .15s var(--ease),outline-color .15s ease;outline:2px solid transparent;outline-offset:2px}.table-tile:hover{transform:translateY(-2px) scale(1.03);box-shadow:var(--shadow-lift)}.table-tile:active{transform:scale(.97)}.table-tile.selected{outline-color:var(--dark)}.table-tile .amount{display:block;font-weight:400;font-size:11px;margin-top:3px;opacity:.9}.table-tile-free{background:linear-gradient(135deg,#1a7f37,#146129)}.table-tile-occupied{background:linear-gradient(135deg,#d0342c,#a32020)}.shift-card{max-width:420px;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:24px}.stat-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;border-bottom:1px solid var(--border)}.stat-row:last-child{border-bottom:none}.receipt,.stat-row .value{font-weight:700}.receipt{position:fixed;top:-10000px;left:-10000px;width:80mm;padding:2mm 3mm;font-family:Courier New,monospace;font-size:12px;color:#000}.receipt h2{font-size:16px;font-weight:700;text-align:center;margin:0 0 6px}.receipt .meta{font-size:11px;font-weight:700;margin-bottom:8px}.receipt .meta-center{font-size:11px;font-weight:700;text-align:center;margin-bottom:6px}.receipt table{width:100%;border-collapse:collapse;box-shadow:none}.receipt td,.receipt th{padding:2px 0;font-size:12px;font-weight:700;border:none}.receipt hr{border:none;border-top:1px dashed #000}.receipt .total-line{font-weight:700;font-size:14px}@page{size:80mm 297mm;margin:0}@media print{.app-shell{display:none}.receipt{position:static}}.panel{background:var(--glass-bg-strong);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:24px;margin-bottom:20px;animation:fadeInUp .3s var(--ease)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header h1{font-size:22px;margin:0}.console-table{width:100%;border-collapse:collapse;font-size:14px}.console-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--grey);padding:8px 10px}.console-table td,.console-table th{border-bottom:1px solid var(--border)}.console-table td{padding:10px}.console-table tr:last-child td{border-bottom:none}.console-table tr:hover td{background:rgba(0,0,0,.02)}.key-reveal{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:rgba(0,0,0,.05);border-radius:10px;padding:12px 14px;word-break:break-all;font-size:13px;margin-top:8px}.alert-info{background:rgba(14,165,160,.12);color:#0b7d79}