:root{font-family:Avenir,Montserrat,Segoe UI,sans-serif;color:#202124;background:#f4f1eb}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{background:#15251f;color:#f7f1e5;padding:24px 18px}.brand{font-size:28px;font-weight:800;margin-bottom:28px}.sidebar nav{display:grid;gap:6px}.sidebar a{color:inherit;padding:10px 12px;text-decoration:none;border-radius:6px}.sidebar a.active,.sidebar a:hover{background:#d8f16f;color:#142019}.workspace{padding:28px}.panel,.card{background:#fffdf8;border:1px solid #d9d2c5;border-radius:8px;padding:18px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.button{align-items:center;background:#1e604e;border:0;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;gap:8px;padding:10px 14px}.button.secondary{background:#f0e7d6;color:#1f2723}.field{display:grid;gap:6px;margin-bottom:12px}.field input,.field select,.field textarea{border:1px solid #c7bdac;border-radius:6px;padding:10px 12px}.muted{color:#64625b}.error{color:#b3261e;margin:4px 0}.hint{color:#64625b;font-size:.85rem;margin:4px 0 8px}.auth-page{margin:8vh auto;max-width:380px}.auth-alt{margin-top:14px}.landing{display:flex;justify-content:center;padding:8vh 20px}.landing-hero{max-width:560px;text-align:center}.landing-actions{display:flex;gap:12px;justify-content:center;margin-top:20px}.timeline{display:grid;gap:6px;list-style:none;margin:12px 0 0;padding:0}.timeline li{border-left:3px solid #d9d2c5;color:#64625b;padding:6px 10px}.timeline li.done{border-color:#1e604e;color:#1f2723}.timeline li.current{border-color:#c98a1b;color:#1f2723;font-weight:600}.timeline li.pending{opacity:.65}@media (max-width: 820px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}}.practice-list{max-width:680px;margin:0 auto}.practice-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.practice-create-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.practice-create-panel h2{margin:0 0 1rem;font-size:1rem;color:#475569}.practice-media-grid{display:flex;flex-direction:column;gap:.5rem}.practice-media-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.875rem 1rem;cursor:pointer;transition:border-color .15s,box-shadow .15s;text-align:left}.practice-media-card:hover:not(:disabled){border-color:#6366f1;box-shadow:0 0 0 3px #eef2ff}.practice-media-title{font-weight:600;font-size:.95rem}.practice-media-meta{font-size:.8rem;color:#64748b}.session-group{margin-top:1.25rem}.session-group h2{font-size:.875rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin-bottom:.5rem}.session-row{display:flex;text-decoration:none;color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.875rem 1rem;margin-bottom:.5rem;transition:border-color .15s}.session-row:hover{border-color:#6366f1}.session-row-body{display:flex;justify-content:space-between;align-items:center;width:100%;gap:1rem}.session-row-info{display:flex;flex-direction:column;gap:.2rem}.session-row-title{font-weight:600;font-size:.9rem}.session-row-meta{font-size:.78rem;color:#64748b}.session-row-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.session-mini-bar{width:80px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.session-mini-fill{height:100%;background:#6366f1;border-radius:3px;transition:width .3s}.session-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:20px;text-transform:capitalize}.session-badge--active{background:#dbeafe;color:#1d4ed8}.session-badge--completed{background:#dcfce7;color:#15803d}.session-badge--abandoned{background:#f1f5f9;color:#64748b}.practice-view{display:flex;flex-direction:column;gap:1rem;max-width:640px;margin:0 auto;padding-bottom:2rem}.practice-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.practice-progress-wrap{flex:1;display:flex;align-items:center;gap:.5rem}.practice-progress-label{font-size:.8rem;font-weight:600;color:#64748b;white-space:nowrap}.practice-bar{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.practice-bar-fill{height:100%;background:#6366f1;border-radius:3px;transition:width .4s ease}.speed-group{display:flex;gap:.25rem}.speed-btn{font-size:.78rem;padding:3px 9px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;cursor:pointer}.speed-btn--active{background:#6366f1;color:#fff;border-color:#6366f1}.media-segment-player{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center}.sentence-card{display:flex;flex-direction:column;gap:.4rem;align-items:center}.sentence-text{font-size:1.35rem;font-weight:600;line-height:1.5;color:#1e293b;margin:0;max-width:520px}.sentence-timing{font-size:.75rem;color:#94a3b8}.play-btn{background:#6366f1;color:#fff;border:none;border-radius:9px;padding:.6rem 1.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s}.play-btn:hover:not(:disabled){background:#4f46e5}.play-btn:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.transcript-toggle{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none}.audio-recorder{display:flex;justify-content:center;padding:.5rem 0}.record-btn{display:flex;align-items:center;gap:.5rem;background:#fff;border:2px solid #6366f1;color:#6366f1;border-radius:50px;padding:.75rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s}.record-btn:hover:not(:disabled){background:#eef2ff}.record-btn:disabled{border-color:#e2e8f0;color:#94a3b8;cursor:not-allowed}.record-btn--recording{background:#fef2f2;border-color:#ef4444;color:#ef4444;animation:pulse-ring 1.4s ease infinite}.record-timer{font-variant-numeric:tabular-nums;font-weight:700}@keyframes pulse-ring{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 8px #ef444400}}.assessing-msg{text-align:center;font-size:.85rem;color:#64748b}.assessment-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.assessment-panel--empty{align-items:center;text-align:center;padding:1.5rem}.assessment-scores{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.score-ring{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:56px}.score-ring-value{font-size:1.5rem;font-weight:700;line-height:1}.score-ring-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.word-feedback-row{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.word-chip{padding:.25rem .6rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:default}.word-chip--good{background:#dcfce7;color:#15803d}.word-chip--warn{background:#fef9c3;color:#854d0e}.word-chip--error{background:#fee2e2;color:#991b1b}.assessment-guidance{text-align:center;font-size:.875rem;color:#475569;margin:0}.practice-nav{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:.5rem}.practice-complete{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}
