:root{--rojo: #B5432E;--rojo-oscuro: #9A3826;--negro: #1F1F1F;--blanco: #FAF7F2;--amarillo: #E0A526;--amarillo-suave: #F0D79A;--gris: #D8D3C9;--gris-texto: #6B6B6B;--azul: #2F6B85;--azul-oscuro: #234F63;--radio: 14px;--sombra: 0 2px 10px rgba(31, 31, 31, .08);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--negro);-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--blanco);color:var(--negro);min-height:100vh}#root{max-width:1100px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{margin:0 0 .4em;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.25rem}p{line-height:1.5}a{color:var(--rojo)}.app-header{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--negro);color:var(--blanco);position:sticky;top:0;z-index:10}.app-header .marca{font-weight:700;letter-spacing:.3px}.app-header .marca small{display:block;font-weight:400;opacity:.7;font-size:.7rem}.btn-volver{background:transparent;border:none;color:var(--blanco);font-size:1.4rem;cursor:pointer;padding:0 4px;line-height:1}.btn-inicio{margin-left:auto;background:transparent;border:1px solid rgba(250,247,242,.35);color:var(--blanco);font-size:.85rem;font-weight:600;cursor:pointer;padding:8px 12px;border-radius:8px;white-space:nowrap;flex:none}.btn-inicio:hover{background:#faf7f21f}.contenido{flex:1;padding:20px 18px 40px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid transparent;border-radius:var(--radio);font-size:1.05rem;font-weight:600;padding:16px 20px;cursor:pointer;width:100%;transition:filter .12s ease,transform .05s ease;text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-principal{background:var(--rojo);color:#fff;box-shadow:var(--sombra)}.btn-principal:hover:not(:disabled){filter:brightness(1.05)}.btn-grande{font-size:1.25rem;padding:22px 20px}.btn-secundario{background:transparent;color:var(--negro);border-color:var(--negro)}.btn-secundario:hover:not(:disabled){background:#1f1f1f0d}.btn-fantasma{background:transparent;color:var(--gris-texto);border:none;font-weight:500;padding:12px}.acciones{display:flex;flex-direction:column;gap:12px;margin-top:24px}.card{background:#fff;border:1px solid var(--gris);border-radius:var(--radio);padding:16px;box-shadow:var(--sombra)}.card+.card{margin-top:12px}.dato{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--gris)}.dato:last-child{border-bottom:none}.dato .etq{color:var(--gris-texto)}.dato .val{font-weight:600;text-align:right}label{display:block;font-weight:600;margin:14px 0 6px}label .opcional{font-weight:400;color:var(--gris-texto);font-size:.85em}input,select{width:100%;padding:14px;font-size:1rem;border:2px solid var(--gris);border-radius:10px;background:#fff;color:var(--negro)}input:focus,select:focus{outline:none;border-color:var(--negro)}.campo-error{color:var(--rojo);font-size:.9rem;margin-top:6px}.badge-pago{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:700}.badge-pago.pendiente{background:var(--amarillo);color:var(--negro)}.badge-pago.parcial{background:var(--amarillo-suave);color:var(--negro)}.badge-pago.pagado{background:var(--gris);color:var(--gris-texto)}.resumen-dia{text-align:center;padding:28px 16px;background:#fff;border-radius:var(--radio);border:1px solid var(--gris);box-shadow:var(--sombra);margin-bottom:24px}.resumen-dia .numero{font-size:3rem;font-weight:800;color:var(--rojo);line-height:1}.resumen-dia .etiqueta{color:var(--gris-texto);margin-top:6px}.resumen-dia .fecha{font-size:.9rem;color:var(--gris-texto);text-transform:capitalize}.tabs{display:flex;gap:8px;margin-bottom:18px}.tabs button{flex:1;padding:14px;border:2px solid var(--gris);background:#fff;border-radius:10px;font-weight:600;font-size:1rem;cursor:pointer;color:var(--negro)}.tabs button.activa{border-color:var(--rojo);background:var(--rojo);color:#fff}.lista{list-style:none;margin:0;padding:0}.lista li{margin-bottom:10px}.item-sel{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:14px 16px;border:2px solid var(--gris);background:#fff;border-radius:10px;cursor:pointer;font-size:1rem;color:var(--negro)}.item-sel:hover{border-color:var(--negro)}.item-sel .sub{display:block;color:var(--gris-texto);font-size:.85rem;margin-top:2px}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-header button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--negro);padding:4px 12px}.cal-titulo{font-weight:700;text-transform:capitalize}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-dow{text-align:center;font-size:.75rem;color:var(--gris-texto);padding:6px 0;font-weight:600}.cal-dia{aspect-ratio:1;border:1px solid var(--gris);background:#fff;border-radius:8px;font-size:1rem;cursor:pointer;color:var(--negro)}.cal-dia:hover:not(:disabled){border-color:var(--negro)}.cal-dia:disabled{color:var(--gris);background:transparent;border-color:transparent;cursor:default}.cal-dia.sel{background:var(--rojo);color:#fff;border-color:var(--rojo);font-weight:700}.cal-dia.hoy{border-color:var(--negro);font-weight:700}.cal-dia.feriado,.cal-dia.feriado:disabled{background:var(--gris);color:var(--gris-texto);border-color:var(--gris)}.grilla-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -18px;padding:0 18px}.grilla{border-collapse:separate;border-spacing:4px;width:100%}.grilla th{font-size:.9rem;padding:8px 4px;color:var(--negro)}.grilla th.hora,.grilla td.hora{font-size:.8rem;color:var(--gris-texto);white-space:nowrap;text-align:right;padding-right:8px;font-variant-numeric:tabular-nums}.celda{width:100%;min-width:84px;padding:12px 6px;border-radius:8px;border:2px solid var(--gris);font-size:.95rem;text-align:center}.celda.libre{background:#fff;color:var(--negro);cursor:pointer;font-weight:600}.celda.libre:hover{border-color:var(--rojo)}.celda.libre.sel{background:var(--rojo);color:#fff;border-color:var(--rojo)}.celda.ocupada,.celda.bloqueada{background:var(--gris);color:var(--gris-texto);border-color:var(--gris);cursor:default}.separador-jornada td{padding:4px 0;text-align:center;color:var(--gris-texto);font-size:.75rem}.atajo{width:100%;text-align:left;padding:14px 16px;margin-bottom:16px;border:2px dashed var(--rojo);background:#fff;color:var(--rojo);border-radius:10px;font-weight:600;cursor:pointer}.toggle-duracion{display:flex;gap:10px;align-items:center;margin:16px 0;padding:12px 14px;background:#fff;border:1px solid var(--gris);border-radius:10px;font-size:.92rem}.toggle-duracion input{width:auto}.aviso{padding:14px 16px;border-radius:10px;margin-bottom:16px;font-size:.95rem}.aviso.error{background:#fdecea;color:#8a2418;border:1px solid #f3b5ab}.aviso.info{background:#fff;border:1px solid var(--gris);color:var(--gris-texto)}.cargando{text-align:center;color:var(--gris-texto);padding:40px 0}.check-ok{width:76px;height:76px;border-radius:50%;background:var(--rojo);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2.4rem;margin:10px auto 20px}.centro{text-align:center}.progreso-txt{font-size:1.1rem;color:var(--gris-texto);margin:8px 0 24px}.stepper{display:flex;gap:6px;margin-bottom:20px}.stepper .paso{flex:1;height:5px;border-radius:3px;background:var(--gris)}.stepper .paso.activo{background:var(--rojo)}.agenda-nav{display:flex;align-items:center;gap:8px;margin-bottom:12px}.agenda-nav .flecha{background:#fff;border:2px solid var(--gris);border-radius:10px;width:46px;height:46px;font-size:1.4rem;cursor:pointer;color:var(--negro);flex:none}.agenda-nav .flecha:hover{border-color:var(--negro)}.agenda-nav .fecha-actual{flex:1;text-align:center;font-weight:700;text-transform:capitalize}.agenda-salto{display:flex;gap:8px;align-items:center;margin-bottom:16px}.agenda-salto input[type=date]{width:auto;flex:1}.agenda-salto .btn-fantasma{width:auto}.agenda-total{margin-top:0;color:var(--gris-texto)}.celda-agenda{width:100%;min-width:96px;min-height:46px;padding:8px 6px;border-radius:8px;border:2px solid transparent;font-size:.85rem;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;word-break:break-word}.celda-agenda.vacia{background:transparent}.celda-agenda.bloqueada{background:var(--gris);border-color:var(--gris)}.celda-agenda.ocupada{cursor:pointer;font-weight:600;color:var(--negro);background:#fff;border-color:var(--gris)}.celda-agenda.ocupada:hover{border-color:var(--negro)}.celda-agenda.pago-pendiente{background:var(--amarillo);border-color:var(--amarillo)}.celda-agenda.pago-parcial{background:var(--amarillo-suave);border-color:var(--amarillo-suave)}.celda-agenda.teorica{background:var(--azul);border-color:var(--azul-oscuro);color:#fff;font-weight:600;cursor:pointer}.celda-agenda.teorica:hover{border-color:var(--azul-oscuro);filter:brightness(1.08)}.celda-teorica-contenido{display:flex;flex-direction:column;align-items:center;gap:3px;line-height:1.1}.celda-teorica-titulo{font-weight:700}.celda-teorica-cuenta{font-size:.72rem;font-weight:700;background:#ffffff47;border-radius:999px;padding:1px 8px}.celda-agenda.realizada{opacity:.55}.celda-agenda.cont{min-height:40px}.modal-fondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f1f1f80;display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal{background:#fff;width:100%;max-width:560px;border-radius:18px 18px 0 0;padding:22px 20px 28px;max-height:88vh;overflow-y:auto}.modal h2{margin-bottom:2px}.modal-sub{margin-top:0;color:var(--gris-texto)}.btn-motivo{flex-direction:column;gap:2px;text-align:center}.btn-motivo small{font-weight:400;color:var(--gris-texto)}@media (min-width: 560px){.modal-fondo{align-items:center}.modal{border-radius:18px}}.insc-encab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.insc-encab .sub{display:block;color:var(--gris-texto);font-size:.85rem;margin-top:2px}.lista-pagos{list-style:none;margin:8px 0 0;padding:0}.lista-pagos li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--gris)}.lista-pagos li:last-child{border-bottom:none}.lista-pagos li span{color:var(--gris-texto)}.fila-clase{display:flex;justify-content:space-between;align-items:center;gap:10px}.fila-clase .sub{display:block;color:var(--gris-texto);font-size:.85rem;margin-top:2px}.estado-clase{font-size:.8rem;font-weight:700;white-space:nowrap;padding:4px 10px;border-radius:999px;border:2px solid var(--gris)}.estado-clase.agendada{border-color:var(--negro);color:var(--negro)}.estado-clase.realizada{background:var(--negro);color:#fff;border-color:var(--negro)}.estado-clase.cancelada{color:var(--gris-texto);border-color:var(--gris)}.filtros{margin-bottom:16px}.filtro-fechas{display:flex;gap:10px}.filtro-fechas label{flex:1;margin-top:0;font-size:.85rem;color:var(--gris-texto);font-weight:600}.filtro-fechas input{margin-top:4px}.filtro-selects{display:flex;gap:10px;margin-top:10px}.filtro-selects select{flex:1}.resumen-caja{background:#fff;border:1px solid var(--gris);border-radius:var(--radio);box-shadow:var(--sombra);padding:16px 18px;margin-bottom:16px}.resumen-linea{display:flex;justify-content:space-between;align-items:baseline;font-size:1.05rem}.resumen-linea strong{font-size:1.2rem}.resumen-desglose{font-size:.78rem;color:var(--gris-texto);margin:2px 0 10px}.resumen-linea.saldo{border-top:2px solid var(--gris);margin-top:6px;padding-top:12px}.resumen-linea.saldo strong{font-size:1.5rem}.monto-ingreso{color:var(--negro);font-weight:700}.monto-egreso{color:var(--rojo);font-weight:700}.mov-fila{display:flex;justify-content:space-between;align-items:center;gap:10px}.mov-info{min-width:0}.mov-info .sub{display:block;color:var(--gris-texto);font-size:.8rem;margin-top:2px}.mov-derecha{display:flex;align-items:center;gap:12px;white-space:nowrap}.mov-borrar{background:none;border:none;cursor:pointer;font-size:1.1rem;opacity:.55;padding:4px}.mov-borrar:hover{opacity:1}.tabla-egresados{width:100%;border-collapse:collapse}.tabla-egresados th,.tabla-egresados td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--gris);font-size:.92rem}.tabla-egresados th{color:var(--gris-texto);font-size:.78rem;text-transform:uppercase;letter-spacing:.3px}.fila-egresado{cursor:pointer}.fila-egresado:hover{background:#1f1f1f0a}.lic-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.lic-badge.con{background:var(--negro);color:#fff}.lic-badge.sin{background:var(--gris);color:var(--gris-texto)}.lic-encab{display:flex;justify-content:space-between;align-items:center;gap:10px}.btn-chico{width:auto;padding:8px 14px;font-size:.9rem}.pap-fila{display:flex;justify-content:space-between;align-items:center;gap:12px}.pap-info{min-width:0}.pap-info .sub{display:block;color:var(--gris-texto);font-size:.82rem;margin-top:2px}.pap-plazo{display:block;color:var(--amarillo);font-weight:700;font-size:.78rem;margin-top:4px}.pin-dots{display:flex;justify-content:center;gap:16px;margin:24px 0}.pin-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--negro)}.pin-dot.lleno{background:var(--rojo);border-color:var(--rojo)}.teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:300px;margin:0 auto}.tecla{aspect-ratio:1;border:2px solid var(--gris);background:#fff;border-radius:14px;font-size:1.6rem;font-weight:600;cursor:pointer;color:var(--negro)}.tecla:hover:not(:disabled){border-color:var(--negro)}.tecla:active{background:#1f1f1f0d}.tecla:disabled{opacity:.5}.tecla-borrar{font-size:1.3rem}.inst-encab{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.btn-salir{width:auto;color:var(--rojo)}.recordatorio{background:#fff;border:1px solid var(--gris);border-left:4px solid var(--amarillo);border-radius:10px;padding:12px 14px;margin-top:8px}.recordatorio strong{font-size:.8rem;color:var(--gris-texto);text-transform:uppercase;letter-spacing:.3px}.recordatorio p{margin:6px 0 4px}.nota-input{width:100%;min-height:80px;padding:12px;font-size:1rem;border:2px solid var(--gris);border-radius:10px;font-family:inherit;resize:vertical}.nota-input:focus{outline:none;border-color:var(--negro)}.nota-acciones{display:flex;gap:8px;margin-top:8px}.nota-pie{display:flex;justify-content:space-between;align-items:center;margin-top:6px}.btn-editar{background:none;border:none;color:var(--rojo);cursor:pointer;font-size:.85rem;font-weight:600;padding:2px 4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header-logo-chip{width:34px;height:34px;border-radius:8px;background:var(--blanco);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}.header-logo-chip img{width:100%;height:100%;object-fit:cover}.landing-logo{width:100%;max-width:320px;margin:0 auto;padding:20px;background:#fff;border-radius:var(--radio);border:1px solid var(--gris);box-shadow:var(--sombra)}.landing-logo img{width:100%;height:auto;display:block}.print-header{display:none}@media print{.no-print,.app-header{display:none!important}body,#root{background:#fff;max-width:none}.contenido{padding:0}.print-header{display:block;margin-bottom:16px}.print-header h2{margin-bottom:4px}.print-header p{color:#444;margin:0}.tabla-egresados th{color:#000}.lic-badge.con{background:#fff;color:#000;border:1px solid #000}.lic-badge.sin{background:#fff;color:#666;border:1px solid #999}.grilla-wrap{overflow:visible;margin:0;padding:0}}.contrato-doc{background:#fff;border:1px solid var(--gris);border-radius:var(--radio);padding:24px 22px;margin-top:16px;color:var(--negro)}.contrato-encab{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:2px solid var(--negro)}.contrato-logo{width:52px;height:auto;flex:none}.contrato-encab strong{display:block;font-size:1.05rem}.contrato-fecha{color:var(--gris-texto);font-size:.85rem;text-transform:capitalize;margin-top:2px}.contrato-seccion{margin-top:18px;padding-top:14px;border-top:1px dashed var(--gris)}.contrato-seccion:first-of-type{border-top:none}.contrato-seccion p{margin:8px 0;line-height:1.5}.contrato-fila{display:flex;justify-content:space-between;padding:4px 0}.contrato-etiqueta{margin:0 0 8px;font-weight:600;color:var(--gris-texto)}.contrato-num{font-weight:700}.contrato-cursos{list-style:none;margin:10px 0 0;padding:0}.contrato-cursos li{display:flex;gap:10px;padding:8px 0;border-top:1px dashed var(--gris);line-height:1.4}.contrato-cursos li:first-child{border-top:none}.contrato-check{flex:none;width:22px;height:22px;border:2px solid var(--negro);border-radius:4px;display:flex;align-items:center;justify-content:center;font-weight:800;margin-top:2px}.contrato-clausulas{margin:8px 0;padding-left:20px}.contrato-clausulas li{margin-bottom:8px;line-height:1.5}.contrato-pago p{font-weight:700;letter-spacing:.2px}.contrato-firmas{display:flex;gap:32px;margin-top:56px}.contrato-firma{flex:1;text-align:center}.contrato-linea{border-top:1px solid var(--negro);margin-bottom:6px}.contrato-firma span{font-size:.85rem;color:var(--gris-texto)}@page{size:letter;margin:10mm}@media print{.contrato-doc{border:none;padding:0;font-size:9pt;line-height:1.25}.contrato-encab{padding-bottom:8px;gap:10px}.contrato-logo{width:36px}.contrato-encab strong{font-size:11pt}.contrato-fecha{font-size:8pt;margin-top:1px}.contrato-seccion{margin-top:8px;padding-top:6px}.contrato-seccion p{margin:4px 0;line-height:1.25}.contrato-fila{padding:2px 0}.contrato-etiqueta{margin-bottom:4px}.contrato-cursos{margin-top:6px}.contrato-cursos li{padding:4px 0;gap:8px;line-height:1.25}.contrato-check{width:16px;height:16px;border-width:1.5px}.contrato-clausulas{margin:4px 0;padding-left:16px}.contrato-clausulas li{margin-bottom:4px;line-height:1.25}.contrato-firmas{margin-top:20px;gap:20px;page-break-inside:avoid}.contrato-firma span{font-size:7.5pt}}
