:root{--color-fondo: #fdf1e3;--color-texto: #3a322c;--color-tarjeta: #ffffff;--color-acierto: #2e7d32;--color-fallo: #c62828;--color-boton: #ffffff;--color-boton-borde: #ece1d3;--color-boton-sombra: #ddd0bd;--color-primario: #ff8c42;--color-primario-sombra: #d96a1f;--color-mano-izquierda: #3d8ea3;--color-estrella: #ffb703;--color-estrella-vacia: #e6d9c6;--color-texto-cuerpo: #5a5148;--color-texto-tenue: #8a7f72;--radio: 16px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:Nunito,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--color-fondo);color:var(--color-texto)}#app{max-width:640px;min-height:100dvh;margin:0 auto;padding:16px;display:flex;flex-direction:column;align-items:center;gap:20px}#barra-superior{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:32px}#acciones-superiores{display:flex;align-items:center;gap:16px}.boton-atras{padding:7px 16px;border:none;border-radius:999px;background:var(--color-tarjeta);box-shadow:0 2px 0 var(--color-boton-sombra);font-size:.9rem;color:var(--color-texto);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s ease,box-shadow .1s ease}.boton-atras:active{transform:translateY(2px);box-shadow:0 0 0 var(--color-boton-sombra)}#indicador-nivel{padding:6px 16px;border-radius:999px;background:var(--color-tarjeta);box-shadow:0 2px 0 var(--color-boton-sombra);font-size:.85rem;color:#8a7f72}#portada-titulo{margin:0;font-size:2.4rem;font-weight:800;letter-spacing:-.02em;line-height:1.05;text-align:center}#portada-objetivo{margin:0;max-width:460px;text-align:center;color:var(--color-texto-tenue);font-size:1.05rem;line-height:1.45}#portada-info{display:grid;grid-template-columns:.85fr 1.15fr;gap:22px 28px;width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:22px 24px;box-shadow:0 4px 0 var(--color-boton-sombra)}.info-col h2{margin:0 0 10px;font-size:.95rem;font-weight:800;color:var(--color-texto);text-align:left}.info-col p{margin:0;color:var(--color-texto-cuerpo);line-height:1.5}#portada-sesion-lista{counter-reset:paso;list-style:none;margin:0;padding:0}#portada-sesion-lista li{counter-increment:paso;position:relative;padding-left:32px;color:var(--color-texto-cuerpo);line-height:1.4}#portada-sesion-lista li+li{margin-top:10px}#portada-sesion-lista li:before{content:counter(paso);position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--color-primario);color:#fff;font-size:.75rem;font-weight:800;display:flex;align-items:center;justify-content:center}#portada-medidas{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:18px;border-top:2px solid var(--color-boton-borde)}#portada-medidas-titulo{font-size:.9rem;font-weight:800;color:var(--color-texto);margin-right:4px}#portada-medidas-lista{display:flex;flex-wrap:wrap;gap:8px}.medida-chip{padding:5px 13px;border-radius:999px;background:var(--color-fondo);font-size:.85rem;font-weight:600;color:var(--color-texto-tenue)}@media (max-width: 600px){#menu-clave{gap:16px}#portada-titulo{font-size:1.9rem}#portada-objetivo{font-size:.98rem}#portada-info{grid-template-columns:1fr;gap:18px;padding:18px}#portada-info p,#portada-sesion-lista li{font-size:.92rem}#portada-medidas{padding-top:14px}.boton-clave{min-height:168px}.miniatura-clave{width:104px;margin-bottom:12px}}#menu-programa,#practica-nivel,#practica-curso,#practica-lista,#practica-ejercicio{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%}#programa-titulo{margin:0;font-size:2.2rem;font-weight:800;letter-spacing:-.02em;text-align:center}.boton-programa{min-height:130px}#practica-lista-ejercicios{display:flex;flex-direction:column;gap:10px;width:100%}.ejercicio-fila{display:flex;align-items:flex-start;gap:14px;width:100%;padding:14px 16px;border:none;border-radius:var(--radio);background:var(--color-tarjeta);box-shadow:0 4px 0 var(--color-boton-sombra),inset 0 0 0 2px var(--color-boton-borde);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s ease,box-shadow .1s ease}.ejercicio-fila:active{transform:translateY(4px);box-shadow:0 0 0 var(--color-boton-sombra),inset 0 0 0 2px var(--color-boton-borde)}.ejercicio-numero{flex:0 0 26px;height:26px;border-radius:50%;background:var(--color-primario);color:#fff;font-size:.8rem;font-weight:800;display:flex;align-items:center;justify-content:center}.ejercicio-texto{display:flex;flex-direction:column;gap:3px}.ejercicio-cabecera{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.ejercicio-clase{padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:800;color:var(--color-tarjeta);background:var(--color-texto-tenue);white-space:nowrap}.clase-teoria{background:#6a7f9c}.clase-dibujada{background:var(--color-primario)}.clase-lectura{background:#4f9a72}.clase-referencia{background:#a3846a}#ejercicio-teoria h3{margin:16px 0 8px;font-size:.95rem;font-weight:800}#ejercicio-teoria dl{margin:0}#ejercicio-teoria dt{font-weight:800;color:var(--color-texto)}#ejercicio-teoria dd{margin:2px 0 10px;color:var(--color-texto-cuerpo);line-height:1.5}.ejercicio-nombre{font-size:1rem;font-weight:800;color:var(--color-texto)}#ejercicio-referencia{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:22px 20px;box-shadow:0 6px 0 var(--color-boton-sombra);text-align:center}#ejercicio-teoria{width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:18px 22px;box-shadow:0 4px 0 var(--color-boton-sombra)}#ejercicio-teoria p{margin:0;color:var(--color-texto-cuerpo);line-height:1.55}#ejercicio-lectura{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:22px 20px;box-shadow:0 6px 0 var(--color-boton-sombra)}.referencia-fuente{display:flex;flex-direction:column;gap:2px;padding-top:10px}.referencia-fuente+.referencia-fuente{border-top:2px solid var(--color-boton-borde);margin-top:4px}.referencia-etiqueta{font-size:.8rem;font-weight:800;color:var(--color-texto-tenue)}.referencia-metodo{font-size:1.05rem;color:var(--color-texto)}.referencia-donde{font-size:1.15rem;font-weight:800;color:var(--color-primario)}.lectura-sesion{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;width:100%;padding:12px 18px;border:2px solid var(--color-boton-borde);border-radius:var(--radio);background:var(--color-boton);box-shadow:0 3px 0 var(--color-boton-sombra);font-family:inherit;cursor:pointer}.lectura-sesion:active{transform:translateY(2px);box-shadow:0 1px 0 var(--color-boton-sombra)}.lectura-papel{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;color:#fff;background:var(--color-texto-tenue)}.lectura-papel-nuevas{background:var(--color-primario)}#ejercicio-titulo{margin:0;font-size:1.5rem;font-weight:800;text-align:center}#ejercicio-contenido{display:flex;flex-direction:column;gap:18px;width:100%}.ficha-ejercicio{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.ficha-ejercicio+.ficha-ejercicio{padding-top:20px;border-top:2px solid var(--color-boton-borde)}.ficha-titulo{margin:0;align-self:flex-start;font-size:1.1rem;font-weight:800;color:var(--color-texto)}.ficha-partitura{display:flex;justify-content:center;width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:12px;box-shadow:0 6px 0 var(--color-boton-sombra)}.ficha-teoria,.ficha-indicaciones,.ficha-referencia,.ficha-lectura{width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:18px 22px;box-shadow:0 4px 0 var(--color-boton-sombra)}.ficha-referencia,.ficha-lectura{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.ficha-teoria p,.ficha-indicaciones ul{margin:0;color:var(--color-texto-cuerpo);line-height:1.5}.ficha-indicaciones ul{padding-left:18px}.ficha-indicaciones li+li{margin-top:6px}.ficha-teoria h3,.ficha-indicaciones h3{margin:16px 0 8px;font-size:.95rem;font-weight:800}.ficha-indicaciones h3{margin-top:0}.ficha-teoria ul{margin:12px 0 0;padding-left:20px;color:var(--color-texto-cuerpo);line-height:1.5}.ficha-teoria li+li{margin-top:8px}.ficha-teoria dl{margin:0}.ficha-teoria dt{font-weight:800;color:var(--color-texto)}.ficha-teoria dd{margin:2px 0 10px;color:var(--color-texto-cuerpo);line-height:1.5}#ejercicio-partitura{width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:12px;box-shadow:0 6px 0 var(--color-boton-sombra)}.arbol-figuras{margin-top:14px;padding-top:16px;border-top:2px solid var(--color-boton-borde)}#ejercicio-partitura:empty{display:none}#ejercicio-fuente{display:flex;flex-direction:column;align-items:center;gap:8px}.ejercicio-aviso{margin:0;font-size:.85rem;color:var(--color-texto-tenue);text-align:center}#ejercicio-indicaciones{width:100%;background:var(--color-tarjeta);border-radius:var(--radio);padding:16px 20px;box-shadow:0 4px 0 var(--color-boton-sombra)}#ejercicio-indicaciones h3{margin:0 0 8px;font-size:.95rem;font-weight:800}#ejercicio-indicaciones ul{margin:0;padding-left:18px;color:var(--color-texto-cuerpo);line-height:1.45}#ejercicio-indicaciones li+li{margin-top:6px}#menu-clave,#menu-nivel{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%}#menu-clave>h2,#menu-nivel>h2{margin:0;font-size:1.25rem;text-align:center}.menu-opciones{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;width:100%}.boton-menu{flex:0 0 calc(50% - 7px)}.boton-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:88px;padding:16px 12px;border:none;border-radius:var(--radio);background:var(--color-boton);box-shadow:0 4px 0 var(--color-boton-sombra),inset 0 0 0 2px var(--color-boton-borde);color:var(--color-texto);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;transition:transform .1s ease,box-shadow .1s ease}.boton-menu:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--color-boton-sombra),inset 0 0 0 2px var(--color-boton-borde)}.boton-menu:disabled{background:var(--color-boton-borde);box-shadow:inset 0 0 0 2px var(--color-boton-sombra);color:var(--color-texto-tenue);cursor:not-allowed}.boton-clave{min-height:200px;gap:2px;box-shadow:0 5px 0 var(--color-primario),inset 0 0 0 2px var(--color-boton-borde)}.boton-clave:active{transform:translateY(5px);box-shadow:0 0 0 var(--color-primario),inset 0 0 0 2px var(--color-boton-borde)}.miniatura-clave{display:block;width:132px;margin-bottom:16px}.menu-nombre{font-size:1.1rem;font-weight:700}.menu-rango{font-size:.85rem;color:#8a7f72;line-height:1.3}#espacio{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}.boton-espacio{padding:6px 14px;font-family:inherit;font-size:.8rem;font-weight:700;border:none;border-radius:999px;background:var(--color-tarjeta);box-shadow:0 2px 0 var(--color-boton-sombra);color:var(--color-texto);cursor:pointer;-webkit-user-select:none;user-select:none;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boton-espacio.activo{background:var(--color-primario);box-shadow:none;color:#fff;cursor:default}#selector-idioma{display:flex;gap:8px;margin-left:10px}.boton-idioma{padding:6px 14px;font-size:.8rem;font-weight:700;border:none;border-radius:999px;background:var(--color-boton);box-shadow:inset 0 0 0 2px var(--color-boton-borde);color:var(--color-texto);cursor:pointer;-webkit-user-select:none;user-select:none}.boton-idioma.activo{background:var(--color-primario);box-shadow:none;color:#fff}#marcador{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.marcador-item{display:inline-flex;align-items:baseline;gap:6px;padding:8px 16px;border-radius:999px;background:var(--color-tarjeta);box-shadow:0 2px 0 var(--color-boton-sombra);font-size:.9rem;color:#8a7f72}.marcador-item strong{font-size:1.2rem}.marcador-aciertos strong{color:var(--color-acierto)}.marcador-fallos strong{color:var(--color-fallo)}.marcador-racha strong{color:var(--color-primario)}#indicador-ejercicio{font-size:.95rem;color:#7a6f62}#progreso-puntos{display:flex;align-items:center;gap:9px}.punto{width:16px;height:16px;border-radius:50%;background:var(--color-boton-sombra);transition:transform .15s ease}.punto.limpio{background:var(--color-acierto)}.punto.con-fallo{background:var(--color-tarjeta);box-shadow:inset 0 0 0 4px var(--color-fallo)}.punto.actual{background:var(--color-primario);transform:scale(1.35)}#memorizacion{display:flex;flex-direction:column;align-items:center;gap:8px}#memorizacion-texto{font-size:1.05rem;color:var(--color-texto);margin:0}#contador-regresivo{width:64px;height:64px;border-radius:50%;background:var(--color-primario);color:#fff;font-size:1.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 0 var(--color-primario-sombra)}#contenedor-pentagrama{position:relative;width:100%;max-width:560px;background:var(--color-tarjeta);border-radius:var(--radio);box-shadow:0 6px 0 var(--color-boton-sombra);padding:8px}#pentagrama{width:100%;display:flex;justify-content:center}#pentagrama svg{display:block;width:100%;height:auto;border-radius:calc(var(--radio) - 4px)}#pentagrama.fallo svg{background-color:#fdecea}#pentagrama.acierto svg{background-color:#eaf6ea}#feedback-icono{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:5rem;font-weight:700;opacity:0;pointer-events:none;transition:opacity .15s ease}#feedback-icono.visible{opacity:1}#feedback-icono.acierto{color:var(--color-acierto)}#feedback-icono.fallo{color:var(--color-fallo)}#botones{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;width:100%}.boton-nota{flex:0 0 calc(25% - 9px);min-height:68px;padding:12px 0;font-size:1.4rem;border:none;border-radius:var(--radio);background:var(--color-boton);box-shadow:0 4px 0 var(--color-boton-sombra),inset 0 0 0 2px var(--color-boton-borde);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s ease,box-shadow .1s ease}.boton-nota:active{transform:translateY(4px);box-shadow:0 0 0 var(--color-boton-sombra),inset 0 0 0 2px var(--color-boton-borde)}.boton-nota.fallo{background:var(--color-fallo);color:#fff;box-shadow:0 4px #8e1c1c,inset 0 0 0 2px #8e1c1c}.boton-nota:disabled{opacity:.5;cursor:default}.oculto{display:none!important}body[data-estado=inicio] #controles,body[data-estado=menu-clave] #menu-clave,body[data-estado=terminado] #resultado{margin-top:auto}body[data-estado=inicio] #controles,body[data-estado=menu-clave] #menu-clave,body[data-estado=terminado] #resultado{margin-bottom:auto}body[data-estado=menu-nivel] #menu-nivel,body[data-estado=practica-nivel] #practica-nivel,body[data-estado=practica-curso] #practica-curso,body[data-estado=practica-lista] #practica-lista,body[data-estado=practica-ejercicio] #practica-ejercicio{margin-top:12px}body[data-estado=menu-programa] #menu-programa{margin-top:auto;margin-bottom:auto}.boton-control{padding:16px 32px;font-size:1.2rem;border:none;border-radius:var(--radio);background:var(--color-primario);color:#fff;box-shadow:0 4px 0 var(--color-primario-sombra);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s ease,box-shadow .1s ease}.boton-control:active{transform:translateY(4px);box-shadow:0 0 0 var(--color-primario-sombra)}.boton-control.compacto{padding:8px 20px;font-size:.95rem;background:var(--color-tarjeta);color:#8a7f72;box-shadow:0 2px 0 var(--color-boton-sombra)}.boton-control.compacto:active{transform:translateY(2px);box-shadow:0 0 0 var(--color-boton-sombra)}#ejercicio-navegacion{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:4px}.ejercicio-paso{flex:0 0 auto}.ejercicio-posicion{flex:1 1 auto;text-align:center;font-size:.9rem;font-weight:800;color:var(--color-texto-tenue)}#controles{display:flex;align-items:center;gap:16px}.boton-secundario{padding:8px 4px;font-size:.85rem;border:none;background:none;color:#a89b8b;text-decoration:underline;cursor:pointer;-webkit-user-select:none;user-select:none}#zona-ejercicio{width:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;gap:24px}@media (min-width: 600px){.boton-nota{flex:0 0 calc((100% - 72px) / 7);font-size:1.25rem}}#zona-ejercicio.pausada{opacity:.4}#resultado{text-align:center;background:var(--color-tarjeta);border-radius:var(--radio);padding:28px 24px;box-shadow:0 6px 0 var(--color-boton-sombra);width:100%;max-width:420px;transition:max-width .1s ease}#resultado.ancho{max-width:560px}#tabla-sesion-contenedor{overflow-x:auto;margin:12px 0 16px}#tabla-sesion{width:100%;border-collapse:collapse;font-size:.85rem}#tabla-sesion th,#tabla-sesion td{padding:6px 8px;text-align:center;border-bottom:1px solid var(--color-boton-borde);white-space:nowrap}#tabla-sesion thead tr{background:var(--color-fondo);color:#7a6f62}#tabla-sesion tfoot tr{font-weight:700;background:var(--color-fondo)}#tabla-sesion tfoot td{border-bottom:none}#resultado h2{margin-top:0}#resultado-estrellas{font-size:2.5rem;letter-spacing:10px;margin:4px 0 12px}.estrella{color:var(--color-estrella-vacia)}.estrella.llena{color:var(--color-estrella)}#leyenda-estrellas{font-size:.85rem;color:#a89b8b;margin:0 0 12px}#resultado-precision{font-size:1.6rem;font-weight:700;color:var(--color-primario);margin:8px 0}#resultado-detalle,#resultado-tiempo,#resultado-racha{color:#7a6f62;margin:2px 0}#boton-continuar{margin-top:20px}#identidad{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:18px}.identidad-fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}.identidad-nombre{font-weight:800;color:var(--color-texto)}.campo-codigo{padding:9px 14px;font-family:inherit;font-size:1rem;color:var(--color-texto);background:var(--color-boton);border:2px solid var(--color-boton-borde);border-radius:var(--radio);min-width:130px}.campo-codigo:focus{outline:none;border-color:var(--color-primario)}.campo-ancho{min-width:200px}.enlace-discreto{padding:4px 6px;font-family:inherit;font-size:.9rem;font-weight:700;color:var(--color-texto-tenue);background:none;border:none;text-decoration:underline;cursor:pointer}.enlace-discreto:hover{color:var(--color-primario)}.aviso{margin:0;font-size:.92rem;color:var(--color-texto-tenue);text-align:center}.codigo-nuevo:not(:empty){padding:10px 16px;font-weight:800;color:var(--color-texto);background:var(--color-boton);border-radius:var(--radio);box-shadow:0 3px 0 var(--color-boton-sombra)}#progreso,#profesora,#progreso-contenido,#profesora-contenido{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.bloque-progreso{display:flex;flex-direction:column;gap:14px;width:100%}.bloque-titulo{margin:12px 0 0;padding-bottom:6px;font-size:1.25rem;font-weight:800;color:var(--color-texto);border-bottom:2px solid var(--color-boton-borde)}.bloque-progreso+.bloque-progreso .bloque-titulo{margin-top:22px}.seccion-titulo{margin:6px 0 0;font-size:1rem;color:var(--color-texto-tenue)}.tabla-datos{width:100%;border-collapse:collapse;background:var(--color-tarjeta);border-radius:var(--radio);overflow:hidden;box-shadow:0 4px 0 var(--color-boton-sombra);font-size:.92rem}.tabla-datos th,.tabla-datos td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--color-boton-borde)}.tabla-datos th{font-size:.8rem;color:var(--color-texto-tenue);text-transform:uppercase;letter-spacing:.03em}.tabla-datos tr:last-child td{border-bottom:none}.ficha-alumno{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding:14px 18px;background:var(--color-tarjeta);border-radius:var(--radio);box-shadow:0 4px 0 var(--color-boton-sombra)}.alumno-cabecera{display:flex;align-items:baseline;gap:10px}.alumno-cabecera code{padding:2px 8px;font-size:.85rem;color:var(--color-texto-tenue);background:var(--color-boton-borde);border-radius:999px}.alumno-resumen{margin:0;font-size:.9rem;color:var(--color-texto-tenue)}.alumno-etiqueta{font-size:.9rem;color:var(--color-texto-tenue)}
