:root{--azul:#1d6fb8;--azul-osc:#163d6e;--verde:#4fa83d;--verde-osc:#2f7d22;--verde-claro:#e7f4e2;--celeste:#e8f2fb;--tinta:#1b2533;--gris:#6b7685;--linea:#e3e8ef;--fondo:#f5f8fb;--rojo:#b83a2e;--rojo-claro:#f8e9e7;--amarillo:#fff6d6;--mp:#009ee3}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Montserrat,system-ui,sans-serif;color:var(--tinta);background:var(--fondo);line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
a{color:var(--azul)}
[hidden]{display:none!important}
.envoltura{max-width:560px;margin:0 auto;padding:0 16px}
.envoltura.ancha{max-width:1100px}

/* Marca */
.logo{display:flex;align-items:center;gap:10px}
.logo svg{width:52px;height:52px;flex:none}
.logo-txt{line-height:1.05}
.logo-txt b{display:block;font-size:22px;font-weight:900;color:var(--azul);letter-spacing:-.01em}
.logo-txt span{display:block;font-size:15px;font-weight:800;color:var(--verde);margin-top:2px}

.hero{background:linear-gradient(160deg,#fff 0%,var(--celeste) 100%);border-bottom:1px solid var(--linea);padding:26px 0 24px;text-align:center}
.hero .logo{justify-content:center}
.hero h1{font-size:24px;font-weight:900;color:var(--azul-osc);margin-top:14px;line-height:1.2}
.etiqueta{display:inline-block;font-size:12px;font-weight:700;color:var(--azul-osc);background:#fff;border:1px solid var(--linea);padding:5px 12px;border-radius:999px;margin-top:10px}
.datos-carrera{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.dato{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:7px 11px;font-size:13px;font-weight:700;color:var(--azul-osc)}

.banda{margin-top:16px;border-radius:14px;padding:12px 14px;font-size:14px;font-weight:700}
.banda.preventa{background:var(--amarillo);color:#7a5a00;border:1px solid #f1df9e}
.banda.cerrada{background:var(--rojo-claro);color:var(--rojo)}
.banda.prueba{background:var(--celeste);color:var(--azul-osc);font-weight:600;font-size:13px}

/* Piezas */
.titulo{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);margin:22px 0 10px}
.tarjeta{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:16px}
.tarjeta+.tarjeta{margin-top:12px}
.boton{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:14px;padding:15px;font-weight:800;font-size:16px;cursor:pointer;background:var(--verde);color:#fff;text-decoration:none;min-height:52px;box-shadow:0 6px 16px rgba(79,168,61,.25)}
.boton:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.boton.azul{background:var(--azul);box-shadow:0 6px 16px rgba(29,111,184,.22)}
.boton.mp{background:var(--mp);box-shadow:0 6px 16px rgba(0,158,227,.28)}
.boton.sec{background:#fff;color:var(--azul);border:1.5px solid var(--linea);box-shadow:none}
.boton.chico{width:auto;display:inline-flex;padding:8px 13px;min-height:38px;font-size:13px;border-radius:10px;box-shadow:none}
.boton.peligro{background:var(--rojo-claro);color:var(--rojo);box-shadow:none}
.acciones{display:flex;flex-direction:column;gap:10px;margin:20px 0 30px}
.aviso{margin-top:12px;padding:11px 14px;border-radius:12px;font-size:14px;font-weight:700}
.aviso.ok{background:var(--verde-claro);color:var(--verde-osc)}
.aviso.error{background:var(--rojo-claro);color:var(--rojo)}
.nota{font-size:12.5px;color:var(--gris);margin-top:8px;font-weight:500}
.vacio{padding:26px;text-align:center;color:var(--gris)}
footer.pie{padding:26px 0 36px;text-align:center;font-size:12px;color:var(--gris)}
footer.pie a{color:var(--gris)}

/* Distancias */
.dist{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#fff;border:1.5px solid var(--linea);border-radius:14px;margin-bottom:10px}
.dist b{font-size:18px;font-weight:900}
.dist small{display:block;font-size:12.5px;color:var(--gris);font-weight:600;margin-top:2px}
.dist .der{text-align:right}
.precio{font-size:18px;font-weight:900;color:var(--azul)}
.tachado{font-size:12px;color:var(--gris);text-decoration:line-through;font-weight:600}
.libres{display:inline-block;margin-top:4px;font-size:11.5px;font-weight:800;padding:3px 8px;border-radius:999px;background:var(--verde-claro);color:var(--verde-osc)}
.libres.pocos{background:var(--amarillo);color:#7a5a00}
.libres.agotada{background:var(--rojo-claro);color:var(--rojo)}
.dist.agotada{opacity:.6}

/* Sponsors */
.sponsors{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.sponsor{display:grid;place-items:center;height:76px;background:#fff;border:1.5px dashed #c9d3df;border-radius:12px;font-size:13px;font-weight:800;color:#97a3b2;text-decoration:none;padding:8px;text-align:center}
.sponsor.con-logo{border-style:solid;border-color:var(--linea)}
.sponsor img{max-width:100%;max-height:58px;object-fit:contain}

/* Formulario */
.pasos{display:flex;gap:6px;margin-top:18px}
.pasos span{flex:1;height:5px;border-radius:9px;background:var(--linea)}
.pasos span.on{background:var(--verde)}
.opcion{display:flex;align-items:center;gap:12px;width:100%;padding:14px;border:2px solid var(--linea);border-radius:14px;background:#fff;margin-bottom:10px;cursor:pointer;text-align:left}
.opcion .radio{width:22px;height:22px;border-radius:50%;border:2px solid #c3ccd8;flex:none;display:grid;place-items:center}
.opcion.sel{border-color:var(--verde);background:var(--verde-claro)}
.opcion.sel .radio{border-color:var(--verde)}
.opcion.sel .radio::after{content:"";width:11px;height:11px;border-radius:50%;background:var(--verde)}
.opcion .txt{flex:1}
.opcion .txt b{font-size:15px;font-weight:800;display:block}
.opcion .txt small{display:block;font-size:12.5px;color:var(--gris);font-weight:600}
.opcion:disabled{cursor:not-allowed;opacity:.55}
.persona{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:16px;margin-top:14px}
.persona-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.persona-cab b{font-size:16px;font-weight:900;color:var(--azul-osc)}
.campo{margin-top:12px}
.campo label{display:block;font-size:12.5px;font-weight:700;color:var(--gris);margin-bottom:5px}
.campo input,.campo select,.campo textarea{width:100%;font-size:16px;font-weight:600;padding:12px 13px;border:1.5px solid var(--linea);border-radius:11px;background:#fff}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--azul)}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.pildoras{display:flex;flex-wrap:wrap;gap:8px}
.pildora{border:2px solid var(--linea);background:#fff;border-radius:12px;padding:10px 14px;font-weight:800;font-size:15px;cursor:pointer;min-width:64px}
.pildora small{display:block;font-size:11px;font-weight:600;color:var(--gris)}
.pildora.sel{border-color:var(--verde);background:var(--verde-claro)}
.pildora:disabled{cursor:not-allowed;opacity:.45}
.auto{font-size:13px;font-weight:700;color:var(--verde-osc);margin-top:8px}
.recuadro{border:1.5px dashed var(--azul);border-radius:12px;padding:12px;margin-top:12px;background:var(--celeste)}
.recuadro b{font-size:14px;color:var(--azul-osc)}
.subir{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.subir input{font-size:14px}
.deslinde{max-height:230px;overflow:auto;background:#fafbfc;border:1px solid var(--linea);border-radius:12px;padding:14px;font-size:13.5px;white-space:pre-wrap;color:#3a4553}
.check{display:flex;gap:12px;align-items:flex-start;width:100%;padding:14px;border:2px solid var(--linea);border-radius:14px;background:#fff;cursor:pointer;text-align:left;margin-top:12px}
.check .caja{width:24px;height:24px;border-radius:7px;border:2px solid #c3ccd8;flex:none;display:grid;place-items:center;color:#fff;font-weight:900;font-size:15px}
.check.on{border-color:var(--verde);background:var(--verde-claro)}
.check.on .caja{background:var(--verde);border-color:var(--verde)}
.check b{font-size:14px;font-weight:800}
.renglon{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:600;padding:7px 0}
.renglon span{color:var(--gris)}
.renglon.libre b{color:var(--verde-osc)}
.total{border-top:1px solid var(--linea);margin-top:6px;padding-top:12px;font-size:18px;font-weight:900}
.total b{color:var(--azul)}

/* Pago de prueba */
.mp-cab{background:var(--mp);color:#fff;padding:16px 0}
.mp-cab b{font-size:18px;font-weight:900}
.mp-cab small{display:block;font-size:12px;opacity:.9;font-weight:600}
.monto{font-size:34px;font-weight:900;color:var(--tinta);margin-top:6px}

/* Comprobante */
.ok{text-align:center;padding:30px 0 6px}
.ok-icono{width:84px;height:84px;border-radius:50%;background:var(--verde);color:#fff;font-size:46px;font-weight:900;display:grid;place-items:center;margin:0 auto 14px;box-shadow:0 10px 26px rgba(79,168,61,.35)}
.ok h1{font-size:26px;font-weight:900;color:var(--azul-osc)}
.ok p{font-size:15px;font-weight:600;color:var(--gris);margin-top:6px}
.ticket{margin-top:14px;background:#fff;border:1px solid var(--linea);border-radius:18px;overflow:hidden}
.ticket-cab{background:var(--azul);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.ticket-cab b{font-size:15px;font-weight:800}
.ticket-cab .num{font-size:26px;font-weight:900}
.ticket-cuerpo{padding:10px 16px 12px}
.ticket-cuerpo .renglon{padding:4px 0;font-size:13.5px}

/* Panel */
.cab-panel{background:var(--azul-osc);color:#fff;padding:14px 0}
.cab-panel .fila-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cab-panel small{font-size:11px;font-weight:700;opacity:.75;letter-spacing:.05em;text-transform:uppercase;display:block}
.cab-panel b{font-size:18px;font-weight:900}
.cab-panel select{color:var(--tinta);background:#fff;border:0;border-radius:10px;padding:9px 12px;font-weight:700;font-size:14px;max-width:100%}
.pestanas{display:flex;gap:6px;overflow-x:auto;padding:12px 0 2px}
.pestana{border:0;background:#fff;border:1px solid var(--linea);border-radius:999px;padding:9px 15px;font-weight:800;font-size:14px;cursor:pointer;white-space:nowrap}
.pestana.on{background:var(--azul);border-color:var(--azul);color:#fff}
.numeros{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.numero{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:14px}
.numero span{font-size:12px;font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.04em}
.numero b{display:block;font-size:26px;font-weight:900;color:var(--azul-osc);margin-top:2px}
.cupo{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:14px;margin-top:10px}
.cupo .arriba{display:flex;justify-content:space-between;font-weight:800}
.barra{height:12px;background:var(--linea);border-radius:99px;overflow:hidden;margin-top:8px}
.barra i{display:block;height:100%;background:var(--verde);border-radius:99px}
.barra i.lleno{background:var(--rojo)}
.cupo small{display:block;color:var(--gris);font-weight:600;font-size:12.5px;margin-top:6px}
.bloqueo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border:2px solid var(--verde);border-radius:14px;padding:14px;margin-top:14px}
.bloqueo.cerrada{border-color:var(--rojo)}
.bloqueo b{font-size:16px;font-weight:900}
.bloqueo small{display:block;color:var(--gris);font-weight:600;font-size:12.5px}
.herramientas{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}
.herramientas input,.herramientas select{border:1.5px solid var(--linea);border-radius:10px;padding:10px 12px;font-size:15px;background:#fff}
.herramientas input{flex:1;min-width:200px}
.tabla-caja{overflow-x:auto;margin-top:12px;background:#fff;border:1px solid var(--linea);border-radius:14px}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{text-align:left;padding:9px 11px;border-bottom:1px solid var(--linea);white-space:nowrap}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--gris);background:#fafbfc}
tr:last-child td{border-bottom:0}
.sello{display:inline-block;font-size:11.5px;font-weight:800;padding:3px 8px;border-radius:999px;background:#f1f3f6;color:var(--gris)}
.sello.si{background:var(--verde-claro);color:var(--verde-osc)}
.acred{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.acred-fila{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid var(--linea);border-radius:14px;padding:12px 14px}
.acred-fila.hecho{border-color:var(--verde);background:var(--verde-claro)}
.acred-fila .n{font-size:24px;font-weight:900;color:var(--azul);min-width:54px;text-align:center}
.acred-fila .quien{flex:1;min-width:0}
.acred-fila .quien b{display:block;font-size:16px}
.acred-fila .quien small{color:var(--gris);font-weight:600;font-size:12.5px}
.tilde{border:0;border-radius:12px;padding:12px 16px;font-weight:900;font-size:15px;cursor:pointer;background:var(--azul);color:#fff;min-width:118px}
.acred-fila.hecho .tilde{background:#fff;color:var(--verde-osc);border:2px solid var(--verde)}
.buscar-grande{width:100%;border:2px solid var(--azul);border-radius:14px;padding:15px 16px;font-size:18px;font-weight:700;margin-top:14px}
.config .fila3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 10px}
.dist-editar{border:1px solid var(--linea);border-radius:12px;padding:10px 12px;margin-top:10px;background:#fafbfc}
.dist-editar .grilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.dist-editar label{font-size:11.5px;font-weight:700;color:var(--gris);display:block}
.dist-editar input[type=text],.dist-editar input[type=number]{width:100%;border:1.5px solid var(--linea);border-radius:9px;padding:8px 9px;font-size:14px;font-weight:600;background:#fff}
.marcas{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:13.5px;font-weight:700}
.marcas label{display:flex;gap:6px;align-items:center;color:var(--tinta);font-size:13.5px}
.login{max-width:380px;margin:60px auto}

@media (max-width:520px){
  .fila,.config .fila3{grid-template-columns:1fr}
  .hero h1{font-size:21px}
}
@media print{
  .cab-panel,.pestanas,.herramientas,.acciones,.no-imprimir{display:none!important}
  body{background:#fff}
}
