:root{--bg:#0c0e12;--surface:#151922;--surface2:#1c2230;--border:#2a3344;--text:#eef1f6;--muted:#8b95a8;--accent:#1ed760;--accent-dim:#159944;--spotify:#1db954;--danger:#ff6b6b;--ok:#4ade80}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;padding:0;font-family:DM Sans,system-ui,sans-serif}body{flex-direction:column;min-height:100vh;display:flex}body>:not(.site-footer){flex:1}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:920px;margin:0 auto;padding:2rem 1.25rem 4rem}.hero-title{letter-spacing:-.02em;margin:0 0 .5rem;font-family:Instrument Serif,Georgia,serif;font-size:clamp(2rem,5vw,3rem);font-weight:400}.subtitle{color:var(--muted);margin:0 0 2rem;line-height:1.5}.nav{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.nav a{color:var(--muted);font-size:.9rem;text-decoration:none}.nav a:hover,.nav a.active{color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:1rem;padding:1.25rem}.card h2,.card h3{margin:0 0 .75rem;font-size:1.1rem}.btn{cursor:pointer;border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .12s,opacity .12s;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#041208}.btn-spotify{background:var(--spotify);color:#fff}.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.input{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:10px;margin-bottom:.75rem;padding:.75rem 1rem;font-size:1rem}.grid{gap:.75rem;display:grid}.track-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.track-row:last-child{border-bottom:none}.muted{color:var(--muted);font-size:.875rem}.badge{text-transform:uppercase;letter-spacing:.06em;background:var(--surface2);color:var(--muted);border-radius:6px;padding:.2rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.error{color:var(--danger)}.success{color:var(--ok)}.lesson-progress{background:var(--surface2);border-radius:99px;height:6px;margin-bottom:1.5rem;overflow:hidden}.lesson-progress>div{background:linear-gradient(90deg, var(--accent-dim), var(--accent));height:100%;transition:width .3s}.option-grid{gap:.6rem;margin-top:1.25rem;display:grid}.option-btn{text-align:left;background:var(--surface2);border:2px solid var(--border);color:var(--text);cursor:pointer;border-radius:12px;padding:1rem 1.1rem;font-size:1rem;transition:border-color .15s,background .15s}.option-btn:hover:not(:disabled){border-color:var(--accent)}.option-btn.correct{border-color:var(--ok);background:#4ade801a}.option-btn.wrong{border-color:var(--danger);background:#ff6b6b14}.prompt-word{margin:.5rem 0 0;font-family:Instrument Serif,Georgia,serif;font-size:2.5rem}.lesson-shell{max-width:1100px}.lesson-grid{grid-template-columns:1fr 1fr;align-items:start;gap:1rem;display:grid}@media (max-width:860px){.lesson-grid{grid-template-columns:1fr}}.lyrics-card h3{margin-top:0}.lyrics-scroll{max-height:420px;padding-right:.5rem;font-size:1.05rem;line-height:1.75;overflow-y:auto}.lyric-line{margin:0 0 .65rem}.lyric-word{border-radius:4px;padding:0 2px}.lyric-lesson{color:#b8f5cc;background:#1ed7602e;font-weight:600}.lyric-current{color:#fff3c4;background:#ffc83259;font-weight:700;box-shadow:0 0 0 2px #ffc83280}.lyrics-legend{flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;display:flex}.lyrics-legend .lyric-lesson,.lyrics-legend .lyric-current{padding:.15rem .45rem;font-size:.75rem}.player-card h3{margin-top:0}.player-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.player-status{min-height:1.25rem;margin:.5rem 0 0}.spotify-embed{border:none;border-radius:12px;width:100%;height:80px;margin-top:1rem}.placement-steps{color:var(--muted);margin:0 0 1.25rem;padding-left:1.25rem;line-height:1.6}.confidence-row{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.confidence-btn{background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:999px;padding:.45rem .9rem;font-size:.85rem;transition:border-color .15s,color .15s,background .15s}.confidence-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.confidence-btn.active{border-color:var(--accent);color:var(--text);background:#1ed7601f}.results-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;display:grid}.stat-block{flex-direction:column;gap:.35rem;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem}.stat-value{font-family:Instrument Serif,Georgia,serif;font-size:1.75rem}.install-card h2{margin-top:0}.install-step-label{margin:0 0 .35rem;font-size:.95rem;font-weight:600}.install-step-hint{margin:0 0 .75rem;font-size:.85rem;line-height:1.45}.install-qr-caption{margin:.5rem 0 0;font-size:.75rem}.install-details{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}.install-details summary{cursor:pointer;font-size:.85rem}.provisional-cefr{background:var(--surface2);border-color:var(--accent-dim);color:var(--accent);margin-left:auto}.install-actions{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}.install-grid{grid-template-columns:1fr auto;align-items:start;gap:1.5rem;margin-top:1rem;display:grid}@media (max-width:640px){.install-grid{grid-template-columns:1fr}}.resume-code{word-break:break-all;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:.75rem;font-size:.85rem;display:block}.qr-wrap{text-align:center}.qr-wrap .qr-code{border:1px solid var(--border);background:var(--surface2);border-radius:12px;padding:.75rem;display:inline-block}.link-btn{color:var(--accent);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;padding:0}.pitch-banner{background:var(--surface);border-bottom:1px solid var(--border);font-size:.8rem;line-height:1.45}.pitch-banner-inner{max-width:920px;margin:0 auto;padding:.55rem 1.25rem}.pitch-banner-text{color:var(--muted);margin:0}.pitch-banner-text a{color:var(--text);text-underline-offset:2px;text-decoration:underline}.pitch-badge{vertical-align:middle;color:var(--accent);background:#1ed7601f;margin-right:.35rem;font-size:.65rem}.pitch-banner-es{margin:.25rem 0 0;font-size:.75rem}.site-footer{border-top:1px solid var(--border);margin-top:auto}.site-footer-inner{text-align:center;max-width:920px;margin:0 auto;padding:1.25rem 1.25rem 2rem}.site-footer p{margin:0;font-size:.8rem}.about-list{margin:0;padding-left:1.25rem;line-height:1.65}.about-list li+li{margin-top:.65rem}.about-es{border-color:#2a3344cc}.login-page{background:radial-gradient(ellipse 120% 80% at 50% -20%, #78c8dc1f, transparent 55%), radial-gradient(ellipse 90% 60% at 100% 50%, #b48cdc1a, transparent 50%), radial-gradient(ellipse 80% 50% at 0% 80%, #ffc88c14, transparent 45%), var(--bg);flex:1;display:flex}.login-shell{flex-direction:column;justify-content:center;width:100%;max-width:420px;min-height:calc(100vh - 5rem);margin:0 auto;padding:2.5rem 1.25rem 3rem;display:flex;position:relative}.login-shell-loading{text-align:center;justify-content:center;align-items:center}.login-panel{text-align:center;flex-direction:column;align-items:center;gap:.25rem;display:flex}.login-panel-admin{text-align:left;align-items:stretch}.login-panel-admin .hero-title,.login-panel-admin .subtitle{text-align:left}.glite-mark{background:var(--text);width:72px;height:72px;color:var(--bg);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1.5rem;font-size:1.65rem;display:flex;box-shadow:0 12px 40px #00000059}.login-title{letter-spacing:-.02em;margin:0 0 .75rem;font-family:DM Sans,system-ui,sans-serif;font-size:clamp(1.5rem,4vw,1.75rem);font-weight:700;line-height:1.2}.login-subtitle{max-width:22rem;color:var(--muted);margin:0 0 1.5rem;font-size:.95rem;line-height:1.5}.login-message{width:100%;margin:0 0 1rem}.login-apple-wrap,.login-apple-block{width:100%;max-width:320px;margin-bottom:1.5rem}.login-apple-block .btn-apple{justify-content:center;width:100%}.login-apple-note{text-align:left;margin:.75rem 0 0;font-size:.8rem;line-height:1.45}.login-apple-setup{border-top:1px solid var(--border);text-align:left;margin-top:.75rem;padding-top:.75rem}.login-apple-setup summary{cursor:pointer;font-size:.8rem}.login-apple-steps{margin:.75rem 0 0;padding-left:1.25rem;font-size:.78rem;line-height:1.5}.login-apple-steps li+li{margin-top:.5rem}.login-apple-steps code{word-break:break-all;font-size:.72rem}.login-apple-readme{margin:.75rem 0 0;font-size:.75rem}.login-signed-in{margin:-.5rem 0 1.25rem}.login-admin-link{margin:0 0 2rem;font-size:.8rem}.login-admin-link a{color:var(--muted);text-decoration:none}.login-admin-link a:hover{color:var(--text);text-decoration:underline}.login-spotify-section{text-align:center;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#151922b8;border-radius:1rem;width:100%;padding:1.5rem 1.25rem}.login-spotify-copy{margin:0 0 1rem;font-size:.9rem;line-height:1.5}.login-cta{border-radius:999px;justify-content:center;width:100%;padding:.85rem 1.25rem}.login-busy-overlay{pointer-events:none;background:#0c0e1273;border-radius:1rem;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.login-busy-spinner{border:3px solid #ffffff26;border-top-color:var(--text);border-radius:50%;width:2rem;height:2rem;animation:.8s linear infinite login-spin}@keyframes login-spin{to{transform:rotate(360deg)}}.login-spotify-icon{color:var(--spotify);margin-bottom:.5rem;font-size:2rem}.login-spotify-section h2{margin:0 0 .5rem;font-size:1.25rem}.login-spotify-status{margin:.75rem 0}.login-spotify-hint{margin:.75rem 0 0}.login-actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.login-skip{margin-top:.75rem}.login-admin-form{max-width:100%}.login-admin-hint{text-align:center;margin-top:1rem}.btn-apple{color:#fff;background:#000;border:1px solid #ffffff1f}.btn-apple-primary{border-radius:999px;justify-content:center;gap:.5rem;width:100%;min-height:50px;padding:.85rem 1.25rem;font-size:1rem;font-weight:600}.btn-apple:disabled{opacity:.55}
