.recorder-banner{text-align:center;font-family:var(--font-display);min-height:2.5rem;margin:16px 0;font-size:1.5rem;font-weight:700;line-height:1.25}.recorder-banner.countdown{color:#f2c46d}.recorder-banner.recording{color:var(--danger)}.recorder-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;font-size:1rem;display:flex}.recorder-controls label{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:inline-flex}.recorder-controls select,.recorder-controls input,.recorder-controls button{border:1px solid var(--border);background:var(--card);min-height:44px;color:var(--text);border-radius:999px;padding:8px 16px;font-size:1rem}.recorder-controls button{cursor:pointer;font-weight:600}.recorder-controls button:disabled{opacity:.4;cursor:default}.recorder-controls .recorder-start{background:var(--violet);border-color:var(--violet);color:#fff}.recorder-controls .recorder-start[aria-pressed=true]{background:var(--danger);border-color:var(--danger)}.recorder-progress{text-align:center;color:var(--muted);margin-top:16px}.recorder-custom{border-top:1px solid var(--border);align-items:flex-end;margin-top:16px;padding-top:16px}.recorder-custom label{flex-direction:column;align-items:flex-start;gap:6px}.recorder-custom input{border-radius:14px;min-width:min(16rem,100%)}.recorder-preview{color:var(--muted);font-weight:700}.recorder-files{margin-top:12px}.trainer{border-top:1px solid var(--border);text-align:center;margin-top:24px;padding-top:16px}.trainer h2{font-family:var(--font-display);margin-bottom:4px;font-size:1.25rem;font-weight:700}.trainer-note{color:var(--muted);max-width:40rem;margin:8px auto}.trainer-progress{color:var(--muted);flex-direction:column;align-items:center;gap:6px;margin-top:12px;display:flex}.trainer-progress progress{width:min(24rem,100%);accent-color:var(--violet)}.trainer-error{color:var(--danger);margin-top:12px;font-weight:600}.trainer-report{gap:6px;max-width:40rem;margin:16px auto 0;display:grid}.trainer-score{font-family:var(--font-display);font-size:2rem;font-weight:700}.trainer-score span{color:var(--muted);font-size:1rem;font-weight:600}.trainer-report ul{margin:0;padding:0;list-style:none}
