:root{--bg:#eef2e8;--surface:#fff;--text:#0f172a;--muted:#64748b;--border:#d8e0d6;--accent:#0d9488;--accent-strong:#115e59;--accent-soft:#ccfbf1;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--shadow-sm:0 10px 22px #0f172a0f;--shadow-md:0 18px 46px #0f172a17;--shadow-lg:0 28px 80px #0f172a1f;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 7% 8%,#14b8a633,#0000 28%),radial-gradient(circle at 90% 6%,#facc1538,#0000 25%),linear-gradient(135deg,#f6f1df 0%,#eef7f4 52%,#e7ecdc 100%);font-family:Avenir Next,Aptos,Segoe UI,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}h1,h2,h3,p{margin:0}h1{z-index:1;max-width:820px;color:var(--text);letter-spacing:-.07em;margin-bottom:14px;font-size:clamp(38px,6vw,76px);font-weight:900;line-height:.95;position:relative}p{line-height:1.6}.app-shell{width:min(1320px,100% - 40px);margin:0 auto;padding:36px 0 52px}.intro-panel{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);box-shadow:var(--shadow-lg);background:radial-gradient(circle at 88% 18%,#facc1533,#0000 24%),linear-gradient(135deg,#fffffff0,#f7fafcc7);border-radius:30px;padding:34px;position:relative;overflow:hidden}.intro-panel:after{content:"";background:repeating-radial-gradient(circle,#14b8a62e 0 2px,#0000 2px 13px);border:1px solid #0f172a14;border-radius:999px;width:260px;height:260px;position:absolute;bottom:-102px;right:-72px}.eyebrow{width:fit-content;color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;background:#ecfeff;border:1px solid #0f172a1a;border-radius:999px;margin-bottom:12px;padding:7px 12px;font-size:12px;font-weight:800}.intro-panel p{max-width:700px;color:var(--muted);font-size:17px}.status-bar{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);width:fit-content;color:var(--muted);box-shadow:var(--shadow-sm);background:#ffffffc2;border-radius:999px;align-items:center;gap:10px;margin:18px 0;padding:10px 14px;font-size:14px;display:flex}.status-dot{background:var(--warning);border-radius:999px;flex:none;width:10px;height:10px;box-shadow:0 0 0 5px #f59e0b24}.status-dot.online{background:var(--success);box-shadow:0 0 0 5px #16a34a24}.status-dot.offline{background:var(--danger);box-shadow:0 0 0 5px #dc262621}.practice-layout{grid-template-columns:minmax(0,1fr) minmax(360px,430px);align-items:start;gap:22px;display:grid}.practice-layout.has-results{grid-template-columns:minmax(310px,.54fr) minmax(0,1.46fr)}.prompt-browser,.selected-panel{border:1px solid color-mix(in srgb, var(--border) 78%, transparent);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffdb;border-radius:26px}.prompt-browser{padding:22px}.selected-panel{padding:22px;position:sticky;top:20px}.practice-layout.has-results .prompt-browser{max-height:calc(100vh - 40px);position:sticky;top:20px;overflow:auto}.practice-layout.has-results .selected-panel{position:static}.section-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.section-heading h2,.section-heading h3{color:var(--text);letter-spacing:-.02em;font-size:18px}.section-heading span{color:var(--muted);font-size:13px}.section-heading.compact{margin-bottom:0}.section-heading.compact span{text-align:right;max-width:260px;line-height:1.35}.category-tabs{flex-wrap:wrap;gap:9px;margin-bottom:18px;display:flex}.category-tabs button{border:1px solid var(--border);min-height:38px;color:var(--muted);cursor:pointer;font:inherit;background:#fff;border-radius:999px;padding:0 15px;font-size:14px;font-weight:700;transition:transform .18s,border-color .18s,box-shadow .18s}.category-tabs button.active,.category-tabs button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px);box-shadow:0 8px 18px #14b8a624}.category-tabs button:disabled{cursor:not-allowed;opacity:.6;transform:none}.prompt-list{gap:10px;display:grid}.prompt-row{border:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font:inherit;background:#fff;border-radius:18px;gap:8px;padding:16px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.prompt-row:hover,.prompt-row.selected{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 14px 28px #0f766e21}.prompt-row:disabled{cursor:not-allowed;opacity:.7;transform:none}.prompt-row.selected{background:linear-gradient(135deg,#f0fdfa,#fff)}.prompt-meta{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:800}.prompt-row strong{color:var(--text);font-weight:760;line-height:1.45}.target-card,.empty-target{border:1px solid var(--border);background:linear-gradient(135deg,#ffffffeb,#f0fdfac2),#fff;border-radius:22px;min-height:156px;padding:18px}.target-card{gap:10px;display:grid}.target-card p{color:var(--text);letter-spacing:-.04em;font-size:clamp(21px,2vw,30px);font-weight:820;line-height:1.24}.empty-target{color:var(--muted);text-align:center;place-items:center;display:grid}.record-button,.stop-button{cursor:pointer;width:100%;min-height:50px;font:inherit;border-radius:18px;margin-top:14px;font-weight:850;transition:transform .18s,box-shadow .18s,filter .18s}.record-button{border:1px solid var(--accent);color:#042f2e;background:linear-gradient(135deg,#5eead4,#facc15);box-shadow:0 18px 32px #0f766e2e}.stop-button{border:1px solid var(--danger);color:#fff;background:linear-gradient(135deg,#ef4444,#991b1b);box-shadow:0 18px 32px #dc26262e}.record-button:not(:disabled):hover,.stop-button:hover{filter:saturate(1.05);transform:translateY(-1px)}.record-button:disabled{border-color:var(--border);color:var(--muted);box-shadow:none;cursor:not-allowed;background:#eef2f7;transform:none}.recording-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.recording-meta{border:1px solid var(--border);background:#fff;border-radius:18px;gap:5px;padding:13px;display:grid}.recording-meta span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.recording-meta strong{color:var(--text);text-transform:capitalize;font-size:17px}.error-message{color:var(--danger);margin-top:12px;font-size:14px}.noise-panel,.loading-panel,.live-transcript{border-radius:18px;margin-top:14px}.noise-panel{border:1px solid var(--border);background:#fff;gap:8px;padding:12px;display:grid}.noise-panel.warning{border-color:var(--warning);background:#fffbeb}.noise-panel div{justify-content:space-between;align-items:center;gap:12px;display:flex}.noise-panel span{color:var(--muted);font-size:13px}.noise-panel strong{color:var(--text);font-size:14px}.noise-panel meter{width:100%}.noise-panel p{color:#92400e;font-size:13px}.loading-panel{border:1px solid var(--accent);background:var(--accent-soft);align-items:center;gap:12px;padding:13px;display:flex}.loading-panel strong{color:var(--text);font-size:14px}.loading-panel p{color:var(--muted);font-size:13px}.loading-spinner{border:2px solid #14b8a638;border-top-color:var(--accent);border-radius:999px;flex:none;width:18px;height:18px;animation:.8s linear infinite spin}.live-transcript{border:1px solid var(--accent);background:var(--accent-soft);gap:8px;padding:14px;display:grid}.live-transcript h3,.upload-result h3{color:var(--text);letter-spacing:-.02em;margin:0;font-size:16px}.live-transcript p{color:var(--text);font-size:15px}.upload-result{background:radial-gradient(circle at 0 0,#5eead42e,#0000 36%),linear-gradient(#fffffff0,#f8fafceb);border:1px solid #0d948847;border-radius:24px;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin-top:18px;padding:14px;display:grid;box-shadow:inset 0 1px #ffffffc7}.upload-result p{color:var(--muted);font-size:14px}.warning-list,.result-header,.score-card-grid,.transcript-compare,.feedback-section,.issue-grid,.assessment-detail-grid,.technical-panel{grid-column:1/-1}.result-header{background:radial-gradient(circle at 100% 0,#facc153d,#0000 34%),#fff;border:1px solid #0f172a14;border-radius:22px;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:16px;padding:18px;display:grid}.result-header>div:first-child{align-content:center;gap:6px;display:grid}.overall-score{text-align:center;background:linear-gradient(135deg,#ccfbf1,#fef3c7);border:1px solid #0f766e2e;border-radius:20px;place-items:center;min-width:118px;padding:14px 18px;display:grid}.overall-score span{color:#115e59;letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:850}.overall-score strong{color:#0f172a;font-size:46px;line-height:1}.warning-list{border:1px solid var(--warning);background:#fffbeb;border-radius:18px;gap:8px;padding:12px;display:grid}.warning-list p{color:#92400e}.score-card-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.score-card{border:1px solid var(--border);background:#fff;border-radius:20px;align-content:start;gap:7px;min-height:132px;padding:14px;display:grid;position:relative;overflow:hidden}.score-card:after{content:"";background:#0f172a0d;border-radius:999px;width:84px;height:84px;position:absolute;inset:auto -22px -34px auto}.score-card span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:850}.score-card strong{color:var(--text);letter-spacing:-.05em;font-size:38px;line-height:1}.score-card p{z-index:1;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;position:relative;overflow:hidden}.score-card.strong{background:#f0fdf4;border-color:#16a34a57}.score-card.watch{background:#fffbeb;border-color:#f59e0b6b}.score-card.weak{background:#fef2f2;border-color:#dc26265c}.transcript-compare,.issue-grid,.assessment-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.transcript-compare div,.feedback-section,.pronunciation-section,.delivery-section,.technical-panel{border:1px solid var(--border);background:#fff;border-radius:20px;gap:10px;padding:15px;display:grid}.transcript-compare span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:850}.transcript-compare p{color:var(--text);font-size:15px}.accuracy-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.accuracy-metrics div{border:1px solid var(--border);background:#f8fafc;border-radius:15px;gap:4px;padding:10px;display:grid}.accuracy-metrics span{color:var(--muted);font-size:12px}.accuracy-metrics strong{color:var(--text);font-size:19px}.word-feedback-list,.event-list,.word-timing-list{flex-wrap:wrap;gap:8px;display:flex}.word-feedback-list{max-height:170px;padding-right:4px;overflow:auto}.word-feedback-list span,.event-list span,.word-timing-list span{min-height:34px;color:var(--text);background:#fff;border-radius:12px;gap:2px;padding:7px 9px;font-size:13px;font-weight:800;display:inline-grid}.word-feedback-list small,.event-list small,.word-timing-list small{color:var(--muted);font-size:11px;font-weight:700}.word-feedback-list .match{border:1px solid var(--success);background:#dcfce7}.word-feedback-list .substitution,.word-feedback-list .omission{border:1px solid var(--danger);background:#fee2e2}.word-feedback-list .insertion{border:1px solid var(--muted);background:#f3f4f6}.score-panel{background:linear-gradient(135deg,#f0fdfa,#fff);border:1px solid #0f766e2e;border-radius:18px;align-items:baseline;gap:4px;width:fit-content;padding:12px 16px;display:flex}.score-panel strong{color:var(--text);font-size:42px;line-height:1}.score-panel span{color:var(--muted);font-weight:800}.score-panel.compact strong{font-size:34px}.limitation-note{border-left:4px solid var(--warning);background:#fffbeb;border-radius:12px;padding:11px}.score-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.score-grid div{border:1px solid var(--border);background:#f8fafc;border-radius:15px;gap:4px;padding:10px;display:grid}.score-grid span{color:var(--muted);font-size:12px}.score-grid strong{color:var(--text);font-size:24px;line-height:1}.event-list span{border:1px solid var(--warning);background:#fffbeb}.event-list span.awkward_pause{border-color:var(--danger);background:#fee2e2}.technical-panel blockquote{border-left:4px solid var(--accent);color:var(--text);background:#f0fdfa;border-radius:14px;margin:0;padding:14px;line-height:1.5}.technical-panel dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.technical-panel dl div{border:1px solid var(--border);background:#f8fafc;border-radius:15px;gap:4px;padding:10px;display:grid}.technical-panel dt{color:var(--muted);font-size:12px}.technical-panel dd{color:var(--text);overflow-wrap:anywhere;margin:0;font-weight:800}.word-timing-list{max-height:150px;padding-top:2px;overflow:auto}.word-timing-list span{border:1px solid var(--border)}@media (width<=1120px){.practice-layout,.practice-layout.has-results{grid-template-columns:1fr}.selected-panel,.practice-layout.has-results .prompt-browser{max-height:none;position:static;overflow:visible}.score-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.app-shell{width:min(100% - 24px,1320px);padding:24px 0 36px}.intro-panel,.prompt-browser,.selected-panel{border-radius:22px;padding:18px}.status-bar{width:100%}.result-header,.transcript-compare,.issue-grid,.assessment-detail-grid,.technical-panel dl{grid-template-columns:1fr}.score-card-grid,.score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overall-score{min-width:0}.section-heading.compact{display:grid}.section-heading.compact span{text-align:left;max-width:none}}@media (width<=520px){.recording-panel,.accuracy-metrics,.score-card-grid,.score-grid{grid-template-columns:1fr}}@keyframes spin{to{transform:rotate(360deg)}}
