: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}.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}.media-player{display:flex;flex-direction:column;gap:.75rem}.scrubber{position:relative;padding:8px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.scrubber-track{position:relative;height:8px;background:#e2e8f0;border-radius:4px;overflow:visible}.scrubber-progress{position:absolute;left:0;top:0;height:100%;background:#c7d2fe;border-radius:4px;pointer-events:none}.sentence-seg{position:absolute;top:0;height:100%;border-radius:2px;opacity:.75;transition:opacity .1s;cursor:pointer;min-width:4px}.sentence-seg:hover{opacity:1;transform:scaleY(1.3)}.sentence-seg--active{opacity:1;transform:scaleY(1.4);outline:2px solid #6366f1;z-index:2}.sentence-seg--good{background:#22c55e}.sentence-seg--warn{background:#f59e0b}.sentence-seg--poor{background:#ef4444}.sentence-seg:not(.sentence-seg--good):not(.sentence-seg--warn):not(.sentence-seg--poor){background:#94a3b8}.scrubber-head{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;background:#6366f1;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 4px #0000004d;pointer-events:none;z-index:3}.scrubber-times{display:flex;justify-content:space-between;font-size:.72rem;color:#94a3b8;margin-top:-4px}.player-controls-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.perf-panel{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;margin-top:.5rem}.perf-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.perf-title{font-weight:600;font-size:.875rem}.perf-overall{font-size:.8rem;font-weight:700;padding:2px 10px;border-radius:20px}.perf-row{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;border:none;background:#fff;cursor:pointer;width:100%;text-align:left;border-bottom:1px solid #f1f5f9;transition:background .1s}.perf-row:hover{background:#f8fafc}.perf-row--active{background:#eef2ff!important}.perf-num{font-size:.75rem;font-weight:700;color:#94a3b8;min-width:18px}.perf-text{flex:1;font-size:.82rem;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.perf-meta{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.perf-attempts{font-size:.72rem;color:#94a3b8}.perf-score{font-size:.8rem;font-weight:700;min-width:28px;text-align:right}.score-good{color:#15803d}.score-warn{color:#92400e}.score-poor{color:#991b1b}.end-session-btn{display:block;width:100%;padding:.65rem;background:#f8fafc;border:none;border-top:1px solid #e2e8f0;color:#94a3b8;font-size:.8rem;cursor:pointer}.end-session-btn:hover{background:#f1f5f9;color:#475569}
