:root{--ink: #172033;--muted: #64748b;--soft: #eef3f8;--panel: rgba(255, 255, 255, .92);--line: #d9e3ee;--line-strong: #c2cfdd;--navy: #0d1b2a;--navy-2: #163456;--blue: #2e7dba;--cyan: #00a8cc;--green: #23b26d;--orange: #f4a261;--red: #e63946;--shadow-sm: 0 6px 18px rgba(15, 23, 42, .08);--shadow-md: 0 14px 38px rgba(15, 23, 42, .12);--shadow-lg: 0 28px 80px rgba(6, 20, 34, .24);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--soft);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(90deg,rgba(13,27,42,.035) 1px,transparent 1px),linear-gradient(rgba(13,27,42,.035) 1px,transparent 1px),linear-gradient(135deg,#f6f9fc,#edf3f9,#f8fbfd);background-size:36px 36px,36px 36px,auto}button,input,select{font:inherit}button{border:0;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease,border-color .16s ease}button:active{transform:translateY(1px)}input,select{background:#f8fafc;border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);min-height:44px;padding:0 12px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;width:100%}input:focus,select:focus{background:#fff;border-color:var(--blue);box-shadow:0 0 0 4px #2e7dba24;outline:none}.login-screen{align-items:center;background:linear-gradient(135deg,#0d1b2afa,#153150f5),repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 1px,transparent 1px 42px);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-panel{animation:rise-in .42s ease both;background:#fffffff5;border:1px solid rgba(255,255,255,.65);border-radius:12px;box-shadow:var(--shadow-lg);max-width:460px;padding:34px;width:100%}.brand-mark{align-items:center;background:linear-gradient(135deg,#00b4d8,#7bdff2);border-radius:10px;box-shadow:0 10px 24px #00b4d840;color:var(--navy);display:flex;font-weight:900;height:52px;justify-content:center;letter-spacing:0;width:52px}.brand-mark.small{height:40px;width:40px}.login-panel h1{font-size:36px;letter-spacing:0;margin:18px 0 4px}.login-panel p{color:var(--muted);margin:0 0 24px}.scan-login-note{align-items:center;background:#e0f2fe;border:1px solid #bae6fd;border-radius:10px;color:#075985;display:flex;gap:10px;margin-bottom:18px;padding:12px}.login-form,.form-grid,.stack{display:grid;gap:14px}label{color:#475569;display:grid;font-size:13px;gap:6px}.primary-btn,.secondary-btn,.compact-form button,.order-panel button,.ticket-card button,.kitchen-ticket button,.form-grid button{align-items:center;border-radius:8px;display:inline-flex;gap:8px;justify-content:center;min-height:44px;padding:0 14px}.primary-btn,.compact-form button,.order-panel button,.ticket-card button,.kitchen-ticket button,.form-grid button:not(.secondary-btn){background:linear-gradient(135deg,var(--navy-2),var(--blue));box-shadow:0 10px 22px #2e7dba33;color:#fff}.primary-btn:hover,.compact-form button:hover,.order-panel button:hover,.ticket-card button:hover,.kitchen-ticket button:hover,.form-grid button:not(.secondary-btn):hover{box-shadow:0 14px 28px #2e7dba47;transform:translateY(-1px)}.secondary-btn{background:#e8f0f7;color:var(--navy-2)}.secondary-btn:hover,.demo-grid button:hover,.row-actions button:hover,.icon-btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.primary-btn:disabled,.menu-grid button:disabled{opacity:.55}.error{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;padding:10px}.demo-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.demo-grid button{background:#e8f0f7;border-radius:8px;color:var(--navy-2);min-height:38px}.app-shell{display:grid;grid-template-columns:276px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,#0d1b2afa,#122b46fa),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:auto,28px 28px;color:#fff;display:flex;flex-direction:column;padding:20px;position:sticky;top:0;height:100vh}.sidebar-brand{align-items:center;display:flex;gap:12px;margin-bottom:28px}.sidebar-brand strong{letter-spacing:0}.sidebar-brand span{color:#9fb2c8;display:block;font-size:13px}.sidebar nav{display:grid;gap:8px}.sidebar nav button,.logout-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:10px;color:#cbd5e1;display:flex;gap:10px;min-height:44px;padding:0 12px;text-align:left}.sidebar nav button:hover,.logout-btn:hover{background:#ffffff14;color:#fff}.sidebar nav button.active{background:#2e7dba52;border-color:#7bdff252;box-shadow:inset 3px 0 0 var(--cyan);color:#fff}.logout-btn{margin-top:auto}.workspace{display:grid;grid-template-rows:auto 1fr;min-width:0}.topbar{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd1;border-bottom:1px solid rgba(217,227,238,.85);display:flex;justify-content:space-between;padding:18px 26px;position:sticky;top:0;z-index:5}.topbar span{color:var(--muted);font-size:13px}.topbar h2{margin:2px 0 0}.live-status{align-items:center;display:inline-flex;gap:7px}.live-status i{animation:pulse 1.5s ease-in-out infinite;background:var(--green);border-radius:999px;box-shadow:0 0 0 5px #23b26d24;display:inline-block;height:8px;width:8px}.role-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.role-pills span{background:#e0f2fe;border:1px solid #bae6fd;border-radius:999px;color:#075985;padding:6px 10px}.panel{animation:fade-in .24s ease both;padding:26px}.panel-title,.section-head{align-items:center;display:flex;justify-content:space-between}.panel-title{margin-bottom:14px}.panel-title>div{align-items:center;display:flex;gap:10px}.panel-title svg{color:var(--blue)}.panel-title h2,h3{margin:0}.segmented{background:#dfe8f1d1;border:1px solid rgba(194,207,221,.8);border-radius:12px;display:flex;flex-wrap:wrap;gap:4px;margin-bottom:18px;padding:4px}.segmented button{background:transparent;border-radius:9px;color:#475569;min-height:44px;padding:0 12px}.segmented button:hover{background:#ffffff8a}.segmented button.active{background:#fff;color:var(--navy);box-shadow:var(--shadow-sm)}.icon-btn{align-items:center;background:#fff;border:1px solid var(--line-strong);border-radius:9px;display:flex;height:44px;justify-content:center;width:44px}.stat-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat,.card{background:var(--panel);border:1px solid rgba(217,227,238,.92);border-radius:12px;box-shadow:var(--shadow-sm)}.stat{border-left:4px solid var(--navy-2);display:grid;gap:8px;padding:17px;position:relative;overflow:hidden}.stat:after{background:linear-gradient(90deg,rgba(46,125,186,.08),transparent);content:"";top:0;right:0;bottom:0;left:0;opacity:0;position:absolute;transition:opacity .16s ease}.stat:hover:after{opacity:1}.stat.blue{border-left-color:var(--blue)}.stat.green{border-left-color:var(--green)}.stat.orange{border-left-color:var(--orange)}.stat svg{color:var(--blue)}.stat span{color:var(--muted);font-size:13px}.stat strong{font-size:25px}.card{padding:18px}.card:hover{box-shadow:var(--shadow-md)}.split{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.split.wide-left{grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr)}.compact-form{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;margin:14px 0}.compact-form button{white-space:nowrap}.button-row,.row-actions{display:flex;flex-wrap:wrap;gap:8px}.row-actions button{align-items:center;background:#e8f0f7;border-radius:8px;color:var(--navy-2);display:flex;height:44px;justify-content:center;width:44px}.row-actions button:last-child{background:#fee2e2;color:#991b1b}.role-checks{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-layout{display:grid;gap:18px;grid-template-columns:minmax(280px,.8fr) minmax(340px,1.2fr)}.inline-card-form{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.menu-board{display:grid;gap:12px;margin-top:14px}.menu-section{border:1px solid var(--line);border-radius:12px;overflow:hidden}.menu-section header{align-items:center;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;display:flex;justify-content:space-between;padding:11px 12px}.menu-section header span{color:#cbd5e1;font-size:13px}.menu-admin-row{align-items:center;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:11px 12px;transition:background .15s ease}.sortable-item{touch-action:none}.sortable-item.dragging{background:#fff;box-shadow:var(--shadow-md);opacity:.94;position:relative;z-index:4}.drag-handle{align-items:center;background:#e8f0f7;border-radius:8px;color:var(--muted);display:flex;height:44px;justify-content:center;touch-action:none;width:44px}.empty-dropzone{align-items:center;background:#f8fafc;border:1px dashed var(--line-strong);color:var(--navy-2);display:flex;gap:8px;justify-content:center;min-height:54px;width:100%}.menu-admin-row:hover{background:#f8fafc}.menu-admin-row+.menu-admin-row{border-top:1px solid var(--line)}.menu-admin-row span{color:var(--muted);display:block;font-size:13px;margin-top:2px}.checkbox{align-items:center;display:flex;gap:8px}.checkbox input{accent-color:var(--blue);min-height:auto;width:18px}.data-table{display:grid;gap:8px;margin-top:14px}.data-row{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;display:grid;gap:10px;grid-template-columns:repeat(var(--cols),minmax(0,1fr));padding:10px;transition:background .15s ease,border-color .15s ease,transform .15s ease}.data-row:hover:not(.header){background:#fff;border-color:#bfdbfe;transform:translateY(-1px)}.data-row.header{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;font-size:13px;font-weight:700}.data-row span{min-width:0;overflow-wrap:anywhere}.status-pill{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;justify-content:center;min-width:64px;padding:5px 9px}.status-pill.ok{background:#dcfce7;color:#166534}.status-pill.bad{background:#fee2e2;color:#991b1b}.empty-line,.empty-state{color:var(--muted)}.empty-state{align-items:center;display:grid;gap:8px;justify-items:center;min-height:260px;text-align:center}.empty-state svg{color:var(--blue)}.ticket-card{background:linear-gradient(180deg,#f8fafc,#fff);border:1px dashed var(--blue);border-radius:12px;display:grid;gap:10px;margin-top:14px;padding:14px}.ticket-card.valid{border-color:#16a34a}.ticket-card.invalid{border-color:#dc2626}.ticket-card button:disabled{cursor:not-allowed;opacity:.56}.scan-page{align-items:center;background:linear-gradient(135deg,#0d1b2afa,#163456f2),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:auto,28px 28px;display:flex;min-height:100vh;padding:16px}.scan-panel{background:#fffffff7;border:1px solid rgba(255,255,255,.7);border-radius:12px;box-shadow:var(--shadow-lg);display:grid;gap:16px;margin:0 auto;max-width:560px;padding:18px;width:100%}.scan-panel-head{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding-bottom:14px}.scan-panel-head h1{margin:4px 0 0}.scan-panel-head p{color:var(--muted);margin:2px 0 0}.scan-message{align-items:center;background:#eef6fb;border:1px solid #cfe4f3;border-radius:12px;color:var(--navy-2);display:grid;gap:8px;justify-items:center;padding:22px;text-align:center}.scan-message.danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.ticket-photo{border-radius:10px;box-shadow:var(--shadow-sm);height:140px;object-fit:cover;width:140px}.photo-input{display:grid;gap:10px}.photo-actions{display:flex;flex-wrap:wrap;gap:8px}.file-button{align-items:center;background:#e8f0f7;border-radius:8px;color:var(--navy-2);cursor:pointer;display:inline-flex;gap:8px;min-height:44px;padding:0 12px;transition:transform .16s ease,box-shadow .16s ease}.file-button:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.file-button input{display:none}.input-with-icon{align-items:center;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr)}.input-with-icon svg{color:var(--muted)}.photo-preview{align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:10px;display:flex;flex-wrap:wrap;gap:10px;padding:10px}.photo-preview img{border-radius:8px;height:76px;object-fit:cover;width:76px}.scanner-toggle{justify-self:start;margin-bottom:12px;width:auto}.qr-reader-shell{max-width:480px;position:relative;width:100%}.qr-reader-status{align-items:center;background:#eef6fb;border:1px solid #cfe4f3;border-radius:10px;color:var(--navy-2);display:flex;font-size:13px;gap:8px;margin:8px 0 10px;min-height:40px;padding:0 12px}.qr-reader{aspect-ratio:1 / 1;background:#0f172a;border:1px solid var(--line);border-radius:12px;margin:12px 0;overflow:hidden;padding:0;width:100%}.qr-reader video{display:block;height:100%;object-fit:cover;width:100%}.qr-reader canvas{display:none}.qr-overlay{top:12px;right:12px;bottom:12px;left:12px;pointer-events:none;position:absolute}.qr-overlay span{border:2px solid rgba(0,180,216,.92);border-radius:18px;box-shadow:0 0 0 999px #0d1b2a2e,0 0 24px #00b4d847;display:block;height:min(62vw,260px);left:50%;max-height:calc(100% - 38px);max-width:calc(100% - 38px);position:absolute;top:50%;transform:translate(-50%,-50%);width:min(62vw,260px)}.modal-backdrop{align-items:center;background:#0d1b2a85;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:18px;position:fixed;z-index:30}.modal-panel{animation:rise-in .22s ease both;background:#fff;border:1px solid rgba(217,227,238,.92);border-radius:12px;box-shadow:var(--shadow-lg);display:grid;gap:16px;max-height:min(86vh,760px);max-width:620px;overflow:auto;padding:18px;width:min(100%,620px)}.modal-panel.scan-success{border-color:#16a34abf;box-shadow:0 0 0 5px #22c55e2e,0 0 36px #16a34a6b,var(--shadow-lg)}.modal-panel.scan-danger{border-color:#dc2626c7;box-shadow:0 0 0 5px #ef44442e,0 0 36px #dc26266b,var(--shadow-lg)}.modal-panel>header{align-items:center;display:flex;gap:12px;justify-content:space-between}.scan-message{align-items:center;border-radius:10px;display:grid;gap:8px;justify-items:center;min-height:190px;padding:18px;text-align:center}.scan-message.danger{background:#fef2f2;color:#991b1b}.ticket-card code{background:var(--navy);border-radius:8px;color:#e2e8f0;overflow-wrap:anywhere;padding:10px}.qr-box{align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);display:flex;justify-content:center;justify-self:start;min-height:198px;padding:8px;width:198px}.qr-box img{display:block;max-width:180px;width:100%}.service-grid{display:grid;gap:18px;grid-template-columns:minmax(230px,.85fr) minmax(320px,1.15fr) minmax(260px,.85fr)}.mesa-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.mesa-grid.compact{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}.mesa{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:12px;color:#14532d;display:grid;min-height:86px;place-items:center;transition:transform .16s ease,box-shadow .16s ease}.mesa:hover:not(.readonly){box-shadow:var(--shadow-sm);transform:translateY(-2px)}.mesa.readonly{cursor:default}.mesa.ocupada{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.mesa.reservada{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.search{margin:14px 0}.menu-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.menu-grid button{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--line);border-radius:12px;color:var(--ink);display:grid;gap:4px;min-height:96px;padding:12px;text-align:left}.menu-grid button:hover:not(:disabled){border-color:#93c5fd;box-shadow:var(--shadow-sm);transform:translateY(-2px)}.menu-grid span{color:var(--muted);font-size:13px}.order-head,.order-row,.order-total{border-bottom:1px solid var(--line);display:flex;gap:10px;justify-content:space-between;padding:10px 0}.order-total{font-size:25px;font-weight:800}.order-panel button{margin-top:10px;width:100%}.kitchen-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.kitchen-ticket{background:#fff;border:2px solid var(--orange);border-radius:12px;box-shadow:var(--shadow-sm);display:grid;gap:12px;padding:16px}.kitchen-ticket.enviada{animation:attention 1.8s ease-in-out infinite}.kitchen-ticket.lista{border-color:var(--green)}.kitchen-ticket header,.kitchen-ticket footer,.kitchen-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.kitchen-ticket header span{background:#fff7ed;border-radius:999px;color:#9a3412;padding:5px 8px}.kitchen-ticket.lista header span{background:#dcfce7;color:#166534}.kitchen-ticket footer{justify-content:stretch}.kitchen-ticket footer button{flex:1;min-height:38px}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.72);opacity:.62}}@keyframes attention{0%,to{box-shadow:var(--shadow-sm)}50%{box-shadow:0 0 0 5px #f4a26124,var(--shadow-md)}}@media(max-width:1180px){.stat-grid,.split,.split.wide-left,.service-grid,.catalog-layout{grid-template-columns:1fr}}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{gap:12px;height:auto;padding:12px;position:static}.sidebar-brand{margin-bottom:0}.sidebar nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.sidebar nav button,.logout-btn{flex:0 0 auto}.logout-btn{margin-top:0}.topbar,.panel-title,.section-head{align-items:flex-start;flex-direction:column;gap:12px}.data-row.header{display:none}.data-row{grid-template-columns:1fr}.data-row span:before{color:var(--muted);content:attr(data-label);display:block;font-size:12px;font-weight:700;margin-bottom:2px}.row-actions{justify-content:flex-start}}@media(max-width:620px){.panel{padding:14px}.login-panel{padding:22px}.demo-grid,.compact-form,.role-checks,.menu-admin-row,.mesa-grid,.menu-grid{grid-template-columns:1fr}.compact-form button,.scanner-toggle{width:100%}.menu-admin-row .row-actions{justify-content:flex-start}.segmented{display:grid;grid-template-columns:1fr}.qr-box{justify-self:stretch;width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
