:root{--fondo: #0f172a;--superficie: #1e293b;--texto: #f8fafc;--texto-tenue: #94a3b8;--acento: #16a34a;--acento-oscuro: #15803d;--peligro: #dc2626;--advertencia: #f59e0b;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--fondo);color:var(--texto);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:18px}.pantalla{min-height:100dvh;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem 1.25rem calc(2rem + env(safe-area-inset-bottom));max-width:480px;margin:0 auto}.pantalla-centrada{justify-content:center}.titulo-app{text-align:center;font-size:2rem;margin:0 0 1rem}.formulario-login{display:flex;flex-direction:column;gap:1.25rem}.campo{display:flex;flex-direction:column;gap:.4rem;font-size:1rem;color:var(--texto-tenue)}.campo input{font-size:1.25rem;padding:.9rem 1rem;border-radius:.75rem;border:2px solid var(--superficie);background:var(--superficie);color:var(--texto)}.campo input:focus{outline:3px solid var(--acento)}.menu-principal{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.boton-grande,.boton-fichaje{font-size:1.4rem;font-weight:700;padding:1.25rem;border-radius:1rem;border:none;cursor:pointer;color:#fff}.boton-grande{background:var(--acento)}.boton-grande:active{background:var(--acento-oscuro)}.boton-fichaje{background:var(--acento);min-height:30dvh;font-size:1.8rem;letter-spacing:.02em}.boton-fichaje:active{background:var(--acento-oscuro)}.boton-fichaje-alterno{background:var(--superficie);color:var(--texto);border:2px solid var(--acento);min-height:14dvh;font-size:1.4rem}.boton-fichaje-alterno:active{background:var(--acento-oscuro);color:#fff}.boton-fichaje:disabled{background:var(--superficie);color:var(--texto-tenue)}.boton-secundario{background:var(--acento);color:#fff;border:none;padding:.6rem 1rem;border-radius:.6rem;font-weight:600}.boton-link{background:none;border:none;color:var(--texto-tenue);font-size:1rem;text-decoration:underline}.encabezado{display:flex;justify-content:space-between;align-items:flex-start}.nombre-empleado{font-size:1.3rem;font-weight:700;margin:0}.escuela-asignada{margin:.2rem 0 0;color:var(--texto-tenue)}.horario-programado{margin:.1rem 0 0;color:var(--texto-tenue);font-size:.85rem}.fecha-hora{text-transform:capitalize;color:var(--texto-tenue);margin:0}.estado-conectividad{display:flex;flex-direction:column;gap:.3rem;font-size:.95rem}.pendientes-badge{color:var(--advertencia)}.sincronizado-badge{color:var(--acento)}.aviso{background:#f59e0b26;border:1px solid var(--advertencia);color:var(--advertencia);padding:.9rem 1rem;border-radius:.75rem;margin:0}.mensaje-error{background:#dc262626;border:1px solid var(--peligro);color:#fca5a5;padding:.9rem 1rem;border-radius:.75rem;margin:0}.tarjeta-resultado{background:var(--superficie);border-radius:1rem;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;text-align:center;margin-top:auto}.tarjeta-recordatorio{background:var(--superficie);border-radius:1rem;padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;text-align:center;margin-top:1.5rem;font-size:.9rem}.lista-fichajes-semana{background:var(--superficie);border-radius:1rem;margin-top:1.5rem;overflow:hidden}.lista-fichajes-titulo{font-size:1rem;font-weight:700;margin:0;padding:1rem 1.25rem .75rem}.lista-fichajes-semana ul{list-style:none;margin:0;padding:0}.lista-fichajes-semana li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;align-items:baseline;padding:.85rem 1.25rem;border-top:1px solid rgba(148,163,184,.2);font-size:.9rem}.lista-fichajes-fecha{color:var(--texto-tenue);text-transform:capitalize}.lista-fichajes-estado{color:var(--acento);font-size:.8rem;grid-column:2}.lista-fichajes-vacio{color:var(--texto-tenue);font-size:.9rem;margin:0;padding:0 1.25rem 1rem}.resultado-titulo{font-size:1.4rem;font-weight:700;margin:0}.estado-ok{color:var(--acento);font-weight:600}.estado-pendiente{color:var(--advertencia);font-weight:600}.estado-envio{font-weight:600;font-size:.95em}.estado-envio-pendiente,.estado-envio-error{color:var(--advertencia)}.estado-envio-sincronizando{color:var(--texto-tenue)}.estado-envio-sincronizado{color:var(--acento)}.estado-envio-error_permanente{color:var(--peligro)}.banner-instalar{background:var(--superficie);padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.9rem}.actualizar-app-flotante{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:20;display:flex;flex-direction:column;gap:.15rem;min-width:11rem;padding:.8rem 1rem;border:0;border-radius:.85rem;background:var(--acento);box-shadow:0 .5rem 1.5rem #00000059;color:#fff;font:inherit;font-size:.82rem;text-align:left}.actualizar-app-flotante strong{font-size:1rem}.actualizar-app-flotante:disabled{background:var(--superficie);color:var(--texto-tenue)}.banner-instalar-ok{background:var(--acento);color:#fff;justify-content:flex-start}.aviso-ubicacion{display:flex;flex-direction:column;gap:.6rem}.aviso-ubicacion p{margin:0}
