:root{--panel:#14141a;--line:#242431;--muted:#b6b7bd;--txt:#fff;--primary:#00d084;--danger:#ff5c5c;--r:16px;--shadow:0 12px 32px #00000059}*{box-sizing:border-box}#root,body,html{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica Neue,Arial;margin:0}.login{align-items:center;display:flex;flex-direction:column;min-height:100vh;padding:24px 16px;position:relative}.login:before{background:#000000a6;content:"";inset:0;position:absolute}.login__brand,.login__foot,.login__form{position:relative;z-index:1}.login__form{grid-gap:14px;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);background:#14141a80;border:1px solid #ffffff26;border-radius:18px;box-shadow:0 12px 32px #00000059;box-shadow:var(--shadow);display:grid;gap:14px;padding:18px;width:min(440px,92vw)}.login__brand{margin:10px 0 16px;text-align:center}.login__logo{height:68px;margin:0 auto 8px;object-fit:contain;width:68px}.login__brand h1{color:#fff;font-size:22px;font-weight:800;margin:0}.muted{color:#d5d6da;font-size:13px;opacity:.9}.field{grid-gap:6px;display:grid;gap:6px}.field span{color:#f1f1f3;font-size:14px}.field input{background:#0f0f168c;border:1px solid #ffffff2e;border-radius:12px;color:#fff;font-size:16px;height:50px;padding:0 14px;width:100%}.field input::placeholder{color:#bbb}.field input:focus{border-color:#ffffff59;box-shadow:0 0 0 3px #ffffff1f}.passwrap{position:relative}.passwrap .toggle{background:#1e1e28b3;border:1px solid #ffffff29;border-radius:10px;color:#eee;cursor:pointer;font-size:12px;padding:6px 10px;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.btn{align-items:center;border:1px solid #0000;border-radius:12px;cursor:pointer;display:flex;font-size:16px;font-weight:800;height:52px;justify-content:center}.btn--primary{background:#00d084;background:var(--primary);box-shadow:0 10px 24px #00d08440;color:#072316;transition:filter .15s ease,transform .15s ease}.btn--primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn[disabled]{cursor:not-allowed;opacity:.7}.alert{background:#ff5c5c2e;border:1px solid #ff5c5c80;border-radius:12px;color:#ffd1d1;font-size:14px;padding:10px 12px}.login__links{align-items:center;color:#d9d9df;display:flex;font-size:14px;gap:8px;justify-content:space-between;margin-top:6px}.login__links a{color:#e4e7ff;text-decoration:none}.login__links a:hover{text-decoration:underline}.login__foot{color:#d2d2d7;font-size:12px;margin-top:18px;text-shadow:0 1px 2px #0006}@media (max-width:480px){.login__brand h1{font-size:20px}.login__form{padding:16px}.btn--primary{height:54px}}.role-layout{align-items:center;background:radial-gradient(circle at top,#0f766e73,#0000 55%),radial-gradient(circle at bottom,#0f172ae6,#020617);color:#f9fafb;color:var(--txt,#f9fafb);display:flex;justify-content:flex-start;min-height:100vh;padding:32px 16px 40px}.role-card{background:#111827;background:var(--panel,#111827);border:1px solid #1f2937;border:1px solid var(--line,#1f2937);border-radius:18px;border-radius:var(--r,18px);box-shadow:0 18px 45px #0000008c;box-shadow:var(--shadow,0 18px 45px #0000008c);margin:0 auto;max-width:960px;padding:20px 22px 24px;width:100%}.role-card__header{align-items:flex-start;border-bottom:1px solid #94a3b859;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.role-card__title{font-size:22px;font-weight:700}.role-card__subtitle{color:#9ca3af;color:var(--muted,#9ca3af);font-size:14px;margin-top:4px}.role-card__badge{background:#0f766e26;border:1px solid #10b98166;border-radius:999px;color:#6ee7b7;font-size:12px;padding:4px 10px;white-space:nowrap}.role-card__body{margin-top:10px}.role-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.role-tile{align-items:center;background:linear-gradient(145deg,#0f766ef2,#064e3bfa);border:1px solid #94a3b873;border-radius:16px;box-shadow:0 12px 25px #0f172ab3;color:#f9fafb;cursor:pointer;display:flex;gap:12px;padding:12px 14px;position:relative;text-align:left;transition:transform .16s ease-out,box-shadow .16s ease-out,border-color .16s ease-out,background .16s ease-out}.role-tile:hover{background:linear-gradient(145deg,#10b981,#064e3b);border-color:#2dd4bfe6;box-shadow:0 16px 35px #0f172ad9;transform:translateY(-2px) scale(1.01)}.role-tile__icon{align-items:center;background:#0f172ae6;border-radius:14px;box-shadow:inset 0 0 0 1px #94a3b866;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.role-tile__icon svg{height:22px;width:22px}.role-tile__text{display:flex;flex-direction:column;gap:2px}.role-tile__label{font-size:14px;font-weight:600}.role-tile__desc{color:#d1fae5;font-size:12px}.role-card__footer{align-items:center;color:#9ca3af;color:var(--muted,#9ca3af);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;justify-content:space-between;margin-top:16px}.role-card__hint{opacity:.9}.role-card__user{font-weight:500}@media (max-width:768px){.role-layout{padding:24px 12px 28px}.role-card{padding:18px 16px 20px}.role-card__title{font-size:20px}}@media (max-width:480px){.role-grid{grid-template-columns:1fr}}.gi-container{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0 auto;max-width:920px;padding:16px}.gi-title{font-size:22px;font-weight:700;margin:4px 0 16px}.gi-field{grid-gap:6px;display:grid;gap:6px;margin-bottom:12px}.gi-input,.gi-textarea{background:#fff;border:1px solid #d0d7de;border-radius:10px;font-size:16px;outline:none;padding:12px;width:100%}.gi-input:focus,.gi-textarea:focus{border-color:#9ad0ff;box-shadow:0 0 0 3px #0d6efd26}.gi-banner{background:#fff3cd;border:1px solid #ffe69c;border-radius:10px;color:#664d03;margin-top:10px;padding:12px}.gi-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.gi-btn{appearance:none;border:none;border-radius:12px;box-shadow:0 2px 10px #00000014;cursor:pointer;font-size:16px;font-weight:600;padding:12px 14px;transition:transform .04s,box-shadow .2s}.gi-btn:active{transform:translateY(1px)}.gi-btn.primary{background:#0d6efd;color:#fff}.gi-btn.secondary{background:#0f766e;color:#fff}.gi-btn.whatsapp{background:#25d366;color:#fff}.gi-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-top:16px}.preview-card{align-items:center;aspect-ratio:3/5;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 2px 10px #0000000d;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;padding:6px;width:100%}@media (max-width:900px){.gi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.gi-title{font-size:20px}.gi-actions{gap:8px}.gi-btn{font-size:15px;width:100%}.gi-grid{grid-template-columns:1fr}}.capture-area{align-items:center;background:#0000;display:flex;height:500px;justify-content:center;width:300px}.gi-btn.ghost{background:#f6f8fa;color:#0a0a0a}.reservas-page{background:#000;box-sizing:border-box;color:#e5e7eb;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;padding:24px}.reservas-title{font-size:24px;font-weight:700;margin-bottom:4px}.reservas-subtitle{color:#9ca3af;font-size:13px;margin-bottom:16px;max-width:520px}.leyenda-estados{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.leyenda-item{align-items:center;display:inline-flex;font-size:13px;gap:6px}.leyenda-color{border:1px solid #0f172acc;border-radius:999px;height:14px;width:14px}.leyenda-disponible{background:#0f0}.leyenda-reservada{background:#ff0}.leyenda-prepagada{background:red}.mapa-reservas-wrapper{align-items:flex-start;display:flex;justify-content:center;overflow-x:auto;overflow-y:auto;padding:8px 0;width:100%}.mapa-reservas{background:#000;border:1px solid #10b98166;border-radius:18px;box-shadow:0 0 18px #10b98159,0 0 60px #000;height:1120px;margin:8px auto 24px;overflow:visible;position:relative;width:720px}.zona-boton{--neon-color:var(--estado-color,#0f0);align-items:center;background-color:#020617;border:1px solid #0f172af2;border-radius:6px;box-shadow:0 0 4px #000000e6,0 0 12px var(--neon-color),0 10px 24px #000000e6;color:#f9fafb;cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:4px 8px;position:absolute;text-align:center;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,border-color .18s ease}.zona-boton:hover{border-color:#fff;box-shadow:0 0 10px #fff,0 0 28px var(--neon-color),0 14px 30px #000;filter:brightness(1.06);transform:translateY(-2px) scale(1.04)}.zona-boton--mesa{border-radius:5px}.zona-boton--lounge{border-radius:10px}.zona-boton--mesa .zona-numero,.zona-numero{font-size:14px;font-weight:700}.zona-boton--lounge .zona-numero{font-size:18px;font-weight:800}.modal-overlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:40}.modal{background:#020617;border:1px solid #4b5563;border-radius:16px;box-shadow:0 20px 40px #000000d9;color:#f9fafb;max-width:400px;padding:20px;width:100%}.modal h2{font-size:18px;margin:0 0 4px}.modal-subtitle{color:#9ca3af;font-size:12px;margin:0 0 12px}.modal-form{gap:10px}.modal-form,.modal-form label{display:flex;flex-direction:column}.modal-form label{font-size:13px;gap:4px}.modal-form input,.modal-form select{background:#020617;border:1px solid #4b5563;border-radius:8px;color:#f9fafb;font-size:13px;padding:6px 8px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.btn-primary,.btn-secondary{border:none;border-radius:999px;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px}.btn-primary{background:linear-gradient(90deg,#0f8,#00c06b);box-shadow:0 0 12px #22c55e80;color:#020617}.btn-secondary{background:#111827;color:#e5e7eb}@media (max-width:768px){.reservas-page{padding:12px}.reservas-title{font-size:20px}.reservas-subtitle{font-size:12px}.mapa-reservas-wrapper{justify-content:center}}@media (max-width:480px){.modal{max-width:90%}}.scan-layout{background:radial-gradient(1200px 500px at 50% -10%,#00b2ff26,#0000 60%),linear-gradient(180deg,#0b0f14,#0a0e12);color:#eaf3ff;display:grid;grid-template-columns:1fr;min-height:100vh;padding:20px 16px 40px}.scan-layout .scan-header{align-items:center;display:flex;font-weight:700;gap:10px;letter-spacing:.4px;margin:4px 0 16px;opacity:.9}.scan-layout .brand-dot{background:#22d3ee;border-radius:50%;box-shadow:0 0 18px #22d3eecc,0 0 40px #22d3ee66;height:10px;width:10px}.scan-layout .scan-camera,.scan-layout .scan-result{margin:0 auto;max-width:940px}.scan-layout .scan-instructions h2{font-size:22px;margin:8px 0 6px}.scan-layout .scan-instructions p{margin:0 0 14px;opacity:.8}.scan-layout .qr-reader-surface{padding:14px;position:relative}.scan-layout .qr-box,.scan-layout .qr-reader-surface{background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;box-shadow:0 10px 30px #00000059}.scan-layout .qr-box{padding:16px}.scan-layout .qr-frame{display:grid;inset:14px;pointer-events:none;position:absolute}.scan-layout .qr-frame .corner{border:3px solid #22d3ee;border-radius:4px;filter:drop-shadow(0 0 6px rgba(34,211,238,.8));height:28px;position:absolute;width:28px}.scan-layout .qr-frame .corner.tl{border-bottom:0;border-right:0;left:10px;top:10px}.scan-layout .qr-frame .corner.tr{border-bottom:0;border-left:0;right:10px;top:10px}.scan-layout .qr-frame .corner.bl{border-right:0;border-top:0;bottom:10px;left:10px}.scan-layout .qr-frame .corner.br{border-left:0;border-top:0;bottom:10px;right:10px}.scan-layout .scan-tips{font-size:12px;margin-top:10px;opacity:.8}.scan-layout .scan-card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;box-shadow:0 10px 30px #00000059;margin:40px auto;max-width:520px;padding:18px;text-align:center}.scan-layout .scan-title{font-size:18px;font-weight:800;margin-bottom:8px}.scan-layout .scan-msg{margin:8px 0 12px;opacity:.8}.scan-layout .result-card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:18px;box-shadow:0 12px 36px #00000073,inset 0 0 40px #22d3ee0d;margin-top:16px;padding:20px}.scan-layout .result-card.valid{border-color:#10b98173}.scan-layout .result-card.used{border-color:#ef444473}.scan-layout .result-card.invalid{border-color:#f59e0b73}.scan-layout .result-status{margin:6px 0 16px;text-align:center}.scan-layout .icon.big{font-size:52px;line-height:1;text-shadow:0 8px 30px #0006}.scan-layout .status-text{font-size:18px;font-weight:800;margin-top:4px}.scan-layout .result-body{grid-gap:12px;display:grid;gap:12px;padding:4px 0 10px}.scan-layout .row{grid-gap:4px;display:grid;gap:4px}.scan-layout .grid2{gap:10px;grid-template-columns:1fr 1fr}.scan-layout .label{font-size:12px;opacity:.75}.scan-layout .value{font-size:16px;font-weight:600}.scan-layout .value.big{font-size:24px;letter-spacing:.2px}.scan-layout .result-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:12px}.scan-layout .result-actions .btn{height:44px;min-width:140px;padding:10px 14px}.scan-layout .badge{border:1px solid #fff3;border-radius:999px;display:inline-block;font-size:12px;padding:3px 10px}.scan-layout .badge.success{background:#10b98126;border-color:#10b98159;color:#c9ffe8}.scan-layout .badge.danger{background:#ef44442e;border-color:#ef444466;color:#ffe0e0}.scan-layout .badge.warn{background:#f59e0b2e;border-color:#f59e0b66;color:#fff0d0}.scan-layout .badge.neutral{background:#94a3b82e;border-color:#94a3b866;color:#e5edf6}.scan-layout .btn{background:#ffffff0f;border:1px solid #fff3;border-radius:12px;color:#eaf3ff;cursor:pointer;font-weight:700;letter-spacing:.3px;padding:10px 16px}.scan-layout .btn:hover{background:#ffffff1a}.scan-layout .btn.primary{background:linear-gradient(180deg,#22d3ee59,#22d3ee33);border-color:#22d3ee73}.scan-layout .btn.primary:disabled{background:#94a3b82e;border-color:#94a3b859;box-shadow:none;color:#cbd5e1}.scan-layout .btn.ghost{background:#0000}@media (min-width:980px){.scan-layout{align-items:start;gap:24px;grid-template-columns:1.1fr .9fr}.scan-layout .scan-camera{position:sticky;top:20px}}@media (max-width:420px){.scan-layout .result-actions .btn{flex:1 1 100%;min-width:0}}.admin-entradas{padding:20px}.admin-entradas table{border-collapse:collapse;margin-top:12px;width:100%}.admin-entradas td,.admin-entradas th{border:1px solid #e5e7eb;padding:8px;text-align:left}.admin-entradas th{background:#f3f4f6}.admin-entradas .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.admin-entradas button{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;margin-right:8px;padding:6px 10px}.admin-entradas button.danger{background:#ef4444}
/*# sourceMappingURL=main.b5231d7a.css.map*/