:root{--fondo: #f8fafc;--superficie: #ffffff;--superficie-suave: #f8fafc;--texto: #0f172a;--tenue: #64748b;--borde: #e2e8f0;--borde-fuerte: #cbd5e1;--primario: #2563eb;--primario-hover: #1d4ed8;--primario-suave: #eff6ff;--primario-texto: #ffffff;--ok: #15803d;--error: #b91c1c;--error-fondo: #fef2f2;--ok-fondo: #f0fdf4;--alerta-fondo: #fffbeb;--sombra: 0 1px 2px rgb(15 23 42 / .05);--radio: .75rem;color-scheme:light;font-family:Plus Jakarta Sans,Segoe UI,Roboto,sans-serif;font-size:16px}@media(prefers-color-scheme:dark){:root{--fondo: #0f172a;--superficie: #172033;--superficie-suave: #111a2b;--texto: #e2e8f0;--tenue: #94a3b8;--borde: #334155;--borde-fuerte: #475569;--primario: #60a5fa;--primario-hover: #93c5fd;--primario-suave: #172554;--primario-texto: #0f172a;--ok: #4ade80;--error: #f87171;--error-fondo: #3f1d24;--ok-fondo: #143126;--alerta-fondo: #352a16;--sombra: 0 1px 2px rgb(0 0 0 / .2);color-scheme:dark}}*{box-sizing:border-box}html{min-width:20rem}body{margin:0;background:var(--fondo);color:var(--texto);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .75rem;font-family:Poppins,Plus Jakarta Sans,Segoe UI,sans-serif;line-height:1.25;letter-spacing:-.02em}h1{font-size:clamp(1.5rem,2vw,1.875rem)}h2{font-size:1.125rem}p{margin-top:0}a{color:var(--primario)}svg{display:block}input,select,textarea,button,.boton{font:inherit;min-height:2.75rem;padding:.625rem .875rem;border:1px solid var(--borde-fuerte);border-radius:.625rem;background:var(--superficie);color:var(--texto)}input,select,textarea{width:100%;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:var(--tenue)}input[type=checkbox],input[type=radio]{width:1.125rem;min-height:1.125rem;padding:0;accent-color:var(--primario)}button,.boton{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s}button:hover:not(:disabled),.boton:hover{background:var(--superficie-suave);border-color:var(--borde-fuerte)}button:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:3px solid var(--primario);outline-offset:2px}label{display:block;margin:.75rem 0 .375rem;color:var(--tenue);font-size:.875rem;font-weight:500}label.casilla,fieldset label{display:flex;gap:.625rem;align-items:center;color:var(--texto)}.primario{background:var(--primario);color:var(--primario-texto);border-color:var(--primario);font-weight:650}button.primario:hover:not(:disabled),.boton.primario:hover{background:var(--primario-hover);border-color:var(--primario-hover)}.peligro{border-color:var(--error);color:var(--error);font-weight:600}.grande{width:100%;min-height:3.5rem;font-size:1.125rem;margin-top:.75rem}.tenue{color:var(--tenue)}.negativo{color:var(--error)}.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.cargando{padding:3rem 1rem;text-align:center;color:var(--tenue)}.etiqueta{display:inline-block;border:1px solid var(--borde);border-radius:999px;padding:.125rem .5rem;font-size:.75rem}.aviso{margin:1rem 0;padding:.75rem 1rem;border-radius:var(--radio);border:1px solid var(--borde)}.aviso--error{background:var(--error-fondo);border-color:var(--error);color:var(--error)}.aviso--ok{background:var(--ok-fondo);border-color:var(--ok)}.barra{position:relative;z-index:30;display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center;min-height:4.25rem;padding:.625rem clamp(1rem,3vw,2rem);background:var(--superficie);border-bottom:1px solid var(--borde)}.barra .marca{display:flex;align-items:center;gap:.625rem;min-height:2.75rem;color:var(--texto);text-decoration:none;font-family:Poppins,Plus Jakarta Sans,sans-serif;font-weight:700;white-space:nowrap}.barra .marca-icono{width:2.375rem;height:2.375rem;flex:none}.barra nav{display:flex;flex-wrap:wrap;gap:.25rem}.barra nav a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem .875rem;border-radius:.625rem;text-decoration:none;color:var(--tenue);font-size:.9375rem;font-weight:600}.barra nav a:hover{background:var(--superficie-suave);color:var(--texto)}.barra nav a.activo{background:var(--primario-suave);color:var(--primario)}.barra .usuario{margin-left:auto;display:flex;gap:.75rem;align-items:center;font-size:.875rem}.contenido{padding:clamp(1rem,2vw,1.5rem);max-width:88rem;margin:0 auto}.columnas{display:grid;grid-template-columns:minmax(0,2fr) minmax(18rem,1fr);gap:1.25rem;align-items:start}@media(max-width:64rem){.columnas{grid-template-columns:minmax(0,1fr)}}.pila{display:grid;gap:1.25rem}.tarjeta{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:clamp(1rem,2vw,1.5rem);overflow-x:auto}.tarjeta form>button,.acciones{margin-top:1rem}.acciones{display:flex;flex-wrap:wrap;gap:.625rem;align-items:center}.encabezado,.pagina-encabezado,.seccion-encabezado{display:flex;justify-content:space-between;align-items:center;gap:1rem}.pagina-encabezado{margin-bottom:1.5rem}.pagina-encabezado h1,.pagina-encabezado p,.seccion-encabezado h2,.seccion-encabezado p{margin-bottom:0}.pagina-encabezado p,.seccion-encabezado p{color:var(--tenue);margin-top:.375rem}.dos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.fila-form{display:flex;gap:.625rem;margin-bottom:1rem}.tabla{width:100%;border-collapse:collapse}.tabla th,.tabla td{padding:.875rem .75rem;border-bottom:1px solid var(--borde);text-align:left;vertical-align:middle}.tabla th{color:var(--tenue);font-weight:600;font-size:.75rem;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}.tabla tbody tr:last-child td{border-bottom:0}.tabla tbody tr:hover{background:var(--superficie-suave)}.tabla .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.tabla td.acciones{margin:0;white-space:nowrap}.tabla td.acciones a{display:inline-flex;align-items:center;min-height:2.75rem;margin-left:.5rem}.tabla tr.inactivo{opacity:.6}.cifra-grande{font-size:2.25rem;font-weight:700;letter-spacing:-.04em;margin:0 0 1rem}fieldset.caja{border:1px solid var(--borde);border-radius:var(--radio);margin:0 0 1rem;padding:.75rem 1rem}.centro{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;min-height:100vh;padding:1rem}.centro .tarjeta{width:100%;max-width:26rem;min-width:0;overflow-wrap:anywhere}.centro .primario{width:100%;margin-top:1rem}.logo-login{display:block;width:min(15rem,100%);height:auto;margin:0 auto 1.5rem;background:#fff;border-radius:var(--radio)}.admin-marco{display:grid;grid-template-columns:16rem minmax(0,1fr);min-height:calc(100vh - 4.25rem)}.admin-contenido{width:100%;max-width:none;padding:clamp(1.25rem,3vw,2rem)}.navegacion-admin{position:sticky;top:0;display:flex;flex-direction:column;height:calc(100dvh - 4.25rem);max-height:calc(100dvh - 4.25rem);background:var(--superficie);border-right:1px solid var(--borde);z-index:50}.admin-nav-encabezado{display:flex;align-items:center;justify-content:space-between;min-height:5rem;padding:1rem 1.25rem;border-bottom:1px solid var(--borde)}.admin-nav-encabezado>div{display:grid}.admin-nav-encabezado strong{font-family:Poppins,Plus Jakarta Sans,sans-serif}.admin-nav-encabezado span{color:var(--tenue);font-size:.75rem}.navegacion-admin nav{flex:1;overflow-y:auto;padding:1rem .75rem}.admin-grupo+.admin-grupo{margin-top:1.25rem}.admin-grupo h2{margin:0 0 .375rem;padding:0 .625rem;color:var(--tenue);font-family:inherit;font-size:.6875rem;font-weight:700;letter-spacing:.14em}.admin-grupo a{display:flex;align-items:center;gap:.75rem;min-height:2.875rem;padding:.375rem .5rem;border-radius:.625rem;color:var(--tenue);text-decoration:none;font-size:.875rem;font-weight:500}.admin-grupo a:hover{background:var(--superficie-suave);color:var(--texto)}.admin-grupo a.activo{background:var(--primario-suave);color:var(--primario);font-weight:650}.admin-icono{display:grid;place-items:center;width:2rem;height:2rem;flex:none;border:1px solid var(--borde);border-radius:.5rem;background:var(--superficie)}.admin-icono svg,.admin-menu svg,.admin-cerrar svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-grupo a.activo .admin-icono{background:var(--primario);border-color:var(--primario);color:var(--primario-texto)}.admin-usuario{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--borde)}.admin-usuario>span:last-child{display:grid;min-width:0}.admin-usuario strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.admin-usuario small{color:var(--tenue)}.admin-avatar{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex:none;border-radius:50%;background:var(--primario-suave);color:var(--primario);font-weight:700}.admin-menu,.admin-cerrar,.admin-velo{display:none}.indicadores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.indicador{display:flex;align-items:flex-start;gap:1rem;min-width:0;padding:1.25rem;border:1px solid var(--borde);border-radius:var(--radio);background:var(--superficie);box-shadow:var(--sombra)}.indicador p{margin:0;color:var(--tenue);font-size:.875rem;font-weight:600}.indicador strong{display:block;margin:.25rem 0;font-size:1.875rem;line-height:1.2;font-variant-numeric:tabular-nums}.indicador small{color:var(--tenue)}.indicador-icono{display:grid;place-items:center;width:2.5rem;height:2.5rem;flex:none;border-radius:.625rem;background:var(--ok-fondo);color:var(--ok);font-weight:700}.indicador-alerta{background:var(--alerta-fondo);color:#b45309}.accesos{overflow:hidden}.accesos-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}.accesos-grid a{position:relative;display:grid;gap:.25rem;min-height:5.5rem;padding:1rem 3rem 1rem 1rem;border:1px solid var(--borde);border-radius:.625rem;color:var(--texto);text-decoration:none}.accesos-grid a:hover{border-color:var(--primario);background:var(--primario-suave)}.accesos-grid a span:not(.acceso-flecha){color:var(--tenue);font-size:.875rem}.acceso-flecha{position:absolute;top:1rem;right:1rem;color:var(--primario);font-size:1.25rem}@media(max-width:64rem){.admin-marco{display:block;min-height:0}.admin-menu{display:inline-flex;margin:1rem 1rem 0}.navegacion-admin{position:fixed;inset:0 auto 0 0;width:min(20rem,88vw);height:100dvh;max-height:100dvh;transform:translate(-105%);visibility:hidden;transition:transform .2s ease,visibility .2s;box-shadow:0 20px 25px #0f172a26}.navegacion-admin.abierta{transform:translate(0);visibility:visible}.admin-cerrar{display:inline-flex;padding:.5rem}.admin-velo{position:fixed;inset:0;z-index:45;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#0f172a80}body.menu-admin-abierto{overflow:hidden}.admin-contenido{padding:1rem}}@media(max-width:40rem){app-root>.barra{display:grid;grid-template-columns:minmax(0,1fr) auto}app-root>.barra nav{grid-column:1 / -1;grid-row:2}app-root>.barra .usuario{grid-column:2;grid-row:1;width:auto;justify-content:flex-end;margin-left:0}.pagina-encabezado{align-items:flex-start}.indicadores,.accesos-grid{grid-template-columns:1fr}.fila-form{flex-wrap:wrap}.fila-form input{flex:1 1 12rem}.dos{grid-template-columns:1fr}}.barra-turno{z-index:20}.caja-estado{display:flex;align-items:center;gap:.75rem}.caja-estado h1{margin:0;font-size:1rem;letter-spacing:0}.caja-estado p{margin:0;color:var(--tenue);font-size:.75rem}.estado-punto{width:.625rem;height:.625rem;border-radius:50%;background:var(--ok);box-shadow:0 0 0 .25rem var(--ok-fondo)}.cajero-nombre{margin-left:auto}.barra-turno .acciones{margin:0}.cobro,.turno{font-size:1rem}.cobro input,.cobro select,.cobro button,.turno input,.turno select,.turno button{min-height:2.75rem}.cobro{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,24rem);gap:1.25rem;width:100%;max-width:100rem;margin:0 auto;padding:clamp(.75rem,2vw,1.5rem);align-items:start}.turno{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));gap:1.25rem;max-width:88rem;margin:0 auto;padding:clamp(.75rem,2vw,1.5rem);align-items:start}.venta,.pago{min-width:0;background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:clamp(.875rem,2vw,1.25rem)}.venta{overflow-x:auto}.pago{position:sticky;top:1rem}.venta-encabezado,.pago-encabezado{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.venta-encabezado h2,.venta-encabezado p,.pago-encabezado h2,.pago-encabezado p{margin-bottom:0}.venta-encabezado p,.pago-encabezado p{margin-top:.25rem;color:var(--tenue);font-size:.875rem}.contador{flex:none;padding:.25rem .625rem;border-radius:999px;background:var(--primario-suave);color:var(--primario);font-size:.75rem;font-weight:700}.pago-encabezado>span{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.625rem;background:var(--primario-suave);color:var(--primario);font-weight:700}.escaner{margin:1.25rem 0 .75rem}.escaner-campo{position:relative;display:flex;align-items:center}.escaner-campo svg{position:absolute;left:1rem;width:1.25rem;height:1.25rem;fill:none;stroke:var(--tenue);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.escaner input{min-height:3.25rem;padding-left:3rem;padding-right:4.5rem;font-size:1rem}.escaner-campo:focus-within svg{stroke:var(--primario)}.escaner kbd{position:absolute;right:.75rem;padding:.125rem .375rem;border:1px solid var(--borde);border-radius:.375rem;background:var(--superficie-suave);color:var(--tenue);font:.6875rem inherit;pointer-events:none}.resultados{list-style:none;padding:.375rem;margin:0 0 .75rem;display:grid;gap:.25rem;border:1px solid var(--borde);border-radius:var(--radio);background:var(--superficie);box-shadow:var(--sombra)}.resultados button{width:100%;justify-content:space-between;text-align:left;border-color:transparent}.resultados button strong{white-space:nowrap}.carrito{width:100%;border-collapse:collapse;margin-top:.75rem}.carrito th,.carrito td{padding:.875rem .5rem;border-bottom:1px solid var(--borde);text-align:left;vertical-align:middle}.carrito th{color:var(--tenue);font-weight:600;font-size:.75rem;letter-spacing:.035em;text-transform:uppercase}.carrito tbody tr:last-child td{border-bottom:0}.carrito .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.carrito .cantidad{width:6.5rem;font-variant-numeric:tabular-nums}.carrito tr.invalida .cantidad{border-color:var(--error)}.quitar{min-width:2.75rem;padding:.5rem;color:var(--tenue);border-color:transparent}.quitar:hover:not(:disabled){color:var(--error);background:var(--error-fondo);border-color:transparent}.carrito-vacio td{padding:3rem 1rem;text-align:center;color:var(--tenue)}.carrito-vacio span,.carrito-vacio strong,.carrito-vacio small{display:block}.carrito-vacio span{margin-bottom:.5rem;color:var(--borde-fuerte);font-size:2rem}.carrito-vacio strong{color:var(--texto)}.carrito-vacio small{margin-top:.25rem}.total{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:1rem;border-radius:.625rem;background:var(--superficie-suave);font-size:1rem}.total strong{color:var(--primario);font-size:clamp(1.5rem,3vw,1.875rem);line-height:1;font-variant-numeric:tabular-nums}.acciones-venta{margin-top:0}.subtitulo{margin-top:1.25rem}.ventas-espera{margin-top:1.25rem;padding-top:.25rem;border-top:1px solid var(--borde)}.lista-simple{list-style:none;display:grid;gap:.5rem;padding:0;margin:0}.lista-simple li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem .75rem;border:1px solid var(--borde);border-radius:.625rem}.lista-simple li>span{display:grid}.lista-simple small{color:var(--tenue)}.pago form>button:not(.grande){width:100%;margin-top:.75rem}.pago input[type=number]{font-variant-numeric:tabular-nums}.resumen{min-height:1.75rem;margin:1rem 0 0;font-size:1rem}.vueltas{color:var(--ok);font-size:1.25rem}.cifras{display:grid;grid-template-columns:auto auto;gap:.375rem 1rem}.cifras dt{color:var(--tenue)}.cifras dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.factura{border:1px solid var(--borde);border-radius:var(--radio);margin:1rem 0 0;padding:.5rem .875rem .75rem}.factura legend{padding:0 .375rem;color:var(--tenue);font-size:.875rem;font-weight:600}.factura .opcion{display:flex;gap:.625rem;align-items:center;min-height:2.75rem;margin:.125rem 0;color:var(--texto)}@media(max-width:56rem){.cobro{grid-template-columns:minmax(0,1fr)}.pago{position:static}}@media(max-width:40rem){.barra-turno .acciones{width:100%}.barra-turno .acciones button{flex:1}.cajero-nombre{margin-left:0}.carrito{display:block;min-width:0}.carrito thead{display:none}.carrito tbody{display:block}.carrito tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.625rem;align-items:center;padding:.875rem 0;border-bottom:1px solid var(--borde)}.carrito tbody tr:last-child{border-bottom:0}.carrito td{display:block;padding:0;border:0}.carrito td:first-child{grid-column:1 / 3;grid-row:1;min-width:0}.carrito td:nth-child(2){grid-column:1;grid-row:2;display:flex;align-items:center;gap:.375rem}.carrito td:nth-child(3){grid-column:2;grid-row:2}.carrito td:nth-child(4){grid-column:3;grid-row:1 / 3}.carrito tr.carrito-vacio{display:block}.carrito .carrito-vacio td{padding:2.5rem .5rem;text-align:center}.escaner kbd{display:none}.escaner input{padding-right:.875rem}}.miga{margin-bottom:1rem;font-size:.875rem}.miga a{display:inline-flex;align-items:center;min-height:2.75rem;text-decoration:none}.miga a:hover{text-decoration:underline}.papel{background:#fff;color:#000;padding:3mm;font:12px/1.35 ui-monospace,Consolas,monospace;max-width:100%}.papel p{margin:0}.papel hr{border:0;border-top:1px dashed #000;margin:1.5mm 0}.papel .centrado{text-align:center;white-space:pre-line}.papel .fuerte{font-weight:700}.papel .fila{display:flex;justify-content:space-between}.tiquete{display:none;page:tiquete}@page tiquete{margin:0}@media print{:root{color-scheme:light}body{background:#fff}.barra,button,.navegacion-admin,.admin-menu,.admin-velo,.miga{display:none!important}.admin-marco{display:block}.admin-contenido{padding:0}.tarjeta{border:0;padding:0;box-shadow:none}app-root:has(app-tiquete)>:not(app-caja),app-caja>:not(app-tiquete){display:none!important}.tiquete{display:block;width:80mm;padding:2mm 3mm 6mm;color:#000;font:12px/1.35 ui-monospace,Cascadia Mono,Consolas,monospace}.tiquete--58{width:58mm;font-size:11px}.tiquete p{margin:0}.tiquete hr{border:0;border-top:1px dashed #000;margin:1.5mm 0}.tiquete .centrado{text-align:center;white-space:pre-line}.tiquete .fuerte{font-weight:700}.tiquete .destacado{font-size:1.2em}.tiquete .fila{display:flex;justify-content:space-between;gap:2mm}.tiquete .firma{margin-top:12mm;border-top:1px solid #000;text-align:center}.tiquete .cufe{font-size:.85em;word-break:break-all}}.aviso-cuenta{margin:0;border-radius:0;border-width:0 0 1px;background:var(--alerta-fondo);padding-inline:clamp(1rem,3vw,2rem)}.aviso-cuenta a{margin-left:.5rem;font-weight:600}.plan-resumen dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;margin:0 0 1rem}.plan-resumen dt{color:var(--tenue);font-size:.875rem}.plan-resumen dd{margin:.25rem 0 0}.plan-uso,.plan-modulos,.plan-otros{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.plan-uso li{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem}.plan-uso meter{grid-column:1 / -1;width:100%;height:.5rem}app-mi-plan .tarjeta+.tarjeta{margin-top:1rem}.plan-otros li{display:grid;gap:.125rem}
