:root{--c-bg:#faf8f4;--c-surface:#fff;--c-surface2:#f5f2ec;--c-border:#141e3217;--c-text:#18202e;--c-text-2:#4a5568;--c-text-3:#8896aa;--c-teal:#0f7a6e;--c-teal-lt:#e3f3f1;--c-teal-dk:#0a5e55;--c-amber:#d97706;--c-amber-lt:#fef3c7;--c-red:#dc2626;--c-red-lt:#fee2e2;--c-green:#16a34a;--c-green-lt:#dcfce7;--c-label:#7c4d2a;--r-card:20px;--r-pill:999px;--r-chip:10px;--shadow-card:0 2px 12px #0f172a12, 0 1px 3px #0f172a0d;--shadow-hover:0 6px 24px #0f172a1a;color:var(--c-text);background-color:var(--c-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Manrope,Segoe UI Variable,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:15px;line-height:1.55}*,:before,:after{box-sizing:border-box;margin:0;padding:0}button,input,textarea{font:inherit}button{cursor:pointer}p{margin:0}h1,h2,h3,h4{letter-spacing:-.03em;line-height:1.2}body{min-height:100vh}.app-shell{max-width:900px;margin:0 auto;padding:36px 24px 72px}.privacy-shell{max-width:920px;margin:0 auto;padding:36px 24px 72px}.coach-layout,.results-stack{gap:20px;display:grid}.intake-card,.progress-card,.result-header,.issues-card,.coach-summary-card,.transcript-card,.practice-card,.history-card,.empty-result-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:28px}.small-label{text-transform:uppercase;letter-spacing:.12em;color:var(--c-label);margin-bottom:4px;font-size:.68rem;font-weight:700;display:block}.section-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.section-header h3{margin-bottom:4px;font-size:1.15rem;font-weight:700}.section-header p{color:var(--c-text-2);font-size:.875rem}.intro-copy h1{letter-spacing:-.05em;margin-bottom:8px;font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:.95}.intro-copy p{color:var(--c-text-2);font-size:1.05rem}.intake-rules{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.intake-rules span{border-radius:var(--r-pill);background:var(--c-surface2);border:1px solid var(--c-border);color:var(--c-text-2);padding:6px 12px;font-size:.8rem;font-weight:600}.capture-layout{grid-template-columns:1fr 1.2fr;align-items:stretch;gap:20px;margin-top:10px;display:grid}.upload-dropzone{border:2px dashed var(--c-border);background:var(--c-surface2);cursor:pointer;border-radius:16px;align-content:start;gap:6px;padding:28px;transition:border-color .15s;display:grid;position:relative}.upload-dropzone:hover{border-color:var(--c-teal)}.upload-dropzone-icon{background:linear-gradient(180deg, var(--c-teal-lt), #f2fbfa);width:44px;height:44px;color:var(--c-teal);border:1px solid #0f7a6e24;border-radius:14px;justify-content:center;align-items:center;margin-bottom:6px;display:inline-flex}.upload-dropzone-arrow{font-size:1.15rem;font-weight:800;line-height:1}.upload-dropzone input{opacity:0;cursor:pointer;position:absolute;top:0;bottom:0;left:0;right:0}.upload-dropzone .small-label{color:var(--c-teal)}.upload-dropzone strong{font-size:1.05rem}.upload-dropzone p{color:var(--c-text-2);font-size:.875rem}.recorder-card{background:var(--c-surface2);border:1px solid var(--c-border);border-radius:16px;gap:12px;padding:24px;display:grid}.recorder-topline{justify-content:space-between;align-items:flex-start;display:flex}.recorder-topline strong{font-weight:700;display:block}.rec-badge{border-radius:var(--r-pill);background:var(--c-surface2);border:1px solid var(--c-border);color:var(--c-text-3);padding:5px 12px;font-size:.78rem;font-weight:700}.rec-badge.active{background:var(--c-red-lt);color:var(--c-red);border-color:#0000}.waveform{background:#eef0f3;border-radius:12px;width:100%;height:64px}.rec-progress-row{align-items:center;gap:10px;display:flex}.rec-bar-shell{background:#e2e5ea;border-radius:999px;flex:1;height:6px;overflow:hidden}.rec-bar-fill{background:var(--c-text-3);border-radius:999px;height:100%;transition:width .9s,background .3s}.rec-bar-fill.valid{background:var(--c-teal)}.rec-time{color:var(--c-text-3);white-space:nowrap;font-size:.8rem;font-weight:700}.rec-time.valid{color:var(--c-teal)}.rec-hint{color:var(--c-text-3);font-size:.82rem}.rec-hint.valid{color:var(--c-teal);font-weight:600}.consent-row{border:1px solid var(--c-border);color:var(--c-text-2);background:#f8f5ef;border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin-top:10px;padding:14px 16px;font-size:.875rem;display:grid}.consent-row a{color:var(--c-teal-dk);font-weight:700}.consent-row a:hover{color:var(--c-teal)}.privacy-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);gap:24px;padding:32px;display:grid}.privacy-back-link{color:var(--c-teal-dk);font-weight:700;text-decoration:none}.privacy-back-link:hover{color:var(--c-teal)}.privacy-header{gap:10px;display:grid}.privacy-header h1{letter-spacing:-.05em;font-size:clamp(2rem,5vw,3rem);font-weight:800}.privacy-header p,.privacy-section p{color:var(--c-text-2);font-size:.96rem}.privacy-section{border-top:1px solid var(--c-border);gap:10px;padding-top:16px;display:grid}.privacy-section h2{font-size:1.05rem;font-weight:800}.privacy-section a{color:var(--c-teal-dk);font-weight:700}.submit-row{justify-content:space-between;align-items:center;gap:16px;margin-top:8px;display:flex}.selected-file-copy strong{font-size:.925rem;display:block}.selected-file-copy p{color:var(--c-text-2);margin-top:2px;font-size:.8rem}.primary-button,.secondary-button,.ghost-button,.inline-button,.rec-start-button{border-radius:var(--r-pill);white-space:nowrap;border:none;padding:10px 20px;font-size:.875rem;font-weight:700;transition:transform .12s,background .12s,opacity .12s}.primary-button{background:var(--c-text);color:#fff}.secondary-button,.rec-start-button{background:var(--c-teal);color:#fff}.ghost-button{background:var(--c-surface2);color:var(--c-text);border:1px solid var(--c-border)}.inline-button{color:var(--c-teal);border:1px solid var(--c-teal);background:0 0;padding:6px 12px;font-size:.8rem}.inline-button.destructive{color:var(--c-red);border-color:var(--c-red)}.primary-button:hover,.secondary-button:hover,.rec-start-button:hover{transform:translateY(-1px)}.ghost-button:hover{background:var(--c-teal-lt)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled,.rec-start-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button-row{flex-wrap:wrap;gap:8px;display:flex}.progress-card{gap:16px;display:grid}.progress-milestones{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.milestone{color:var(--c-text-3);border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:8px 10px;font-size:.78rem;display:flex}.milestone.done{color:var(--c-teal);background:var(--c-teal-lt)}.milestone.active{color:var(--c-text);background:var(--c-surface2);border-color:var(--c-border);font-weight:700}.milestone-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px}.milestone-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.progress-bar-shell{background:#e2e5ea;border-radius:999px;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--c-teal), var(--c-amber));border-radius:999px;height:100%}.progress-current-label{color:var(--c-text-2);font-size:.82rem;font-weight:600}.result-header{gap:16px;display:grid}.result-main{align-items:flex-end;gap:20px;display:flex}.score-block{align-items:flex-end;gap:4px;line-height:1;display:flex}.score-big{letter-spacing:-.06em;color:var(--c-text);font-size:clamp(4rem,10vw,5.5rem);font-weight:800;line-height:.85}.score-denom{color:var(--c-text-3);margin-bottom:8px;font-size:1.5rem;font-weight:600}.result-text h2{font-size:1.4rem;font-weight:800}.result-text p{color:var(--c-text-2);margin-top:4px;font-size:.925rem}.result-pills{flex-wrap:wrap;gap:8px;display:flex}.result-pill{border-radius:var(--r-pill);background:var(--c-surface2);border:1px solid var(--c-border);color:var(--c-text-2);padding:6px 12px;font-size:.8rem;font-weight:600}.pill-positive{background:var(--c-green-lt);color:var(--c-green);border-color:#0000}.pill-negative{background:var(--c-red-lt);color:var(--c-red);border-color:#0000}.result-highlight{border:1px solid var(--c-border);background:linear-gradient(90deg,#0f7a6e0f,#d977060f);border-radius:14px;gap:4px;padding:14px 16px;display:grid}.celebration-note{color:var(--c-text);font-size:.95rem;font-weight:600}.result-subcopy{color:var(--c-text-2);font-size:.875rem}.result-strengths{background:var(--c-green-lt);border:1px solid #16a34a26;border-radius:12px;padding:12px 14px}.result-strengths ul{color:var(--c-text);gap:3px;margin-top:4px;padding-left:16px;font-size:.875rem;display:grid}.result-recurring-habit{background:#fff8ed;border:1px solid #f59e0b47;border-radius:12px;gap:4px;padding:12px 14px;display:grid}.result-recurring-habit strong{color:#92400e;font-size:.92rem}.result-recurring-habit p{color:var(--c-text-2);font-size:.86rem}.issue-list{gap:12px;display:grid}.issue-card{border:1px solid var(--c-border);background:var(--c-surface);border-radius:16px;overflow:hidden}.issue-card.priority-severe{border-left:3px solid var(--c-red)}.issue-card.priority-moderate{border-left:3px solid var(--c-amber)}.issue-card.priority-minor{border-left:3px solid var(--c-teal)}.issue-card-header{text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;transition:background .12s;display:flex}.issue-card-header:hover{background:var(--c-surface2)}.issue-card-title{align-items:center;gap:10px;display:flex}.issue-rank{background:var(--c-surface2);width:28px;height:28px;color:var(--c-text-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:800;display:inline-flex}.issue-word{font-size:1.05rem;font-weight:700;display:block}.issue-ipa{color:var(--c-text-3);margin-top:1px;font-family:monospace;font-size:.78rem;display:block}.issue-card-right{align-items:center;gap:12px;display:flex}.issue-score{text-align:right;min-width:36px;font-size:1.15rem;font-weight:800}.score-hard{color:var(--c-red)}.score-medium{color:var(--c-amber)}.score-easy{color:var(--c-teal)}.issue-chevron{color:var(--c-text-3);font-size:.7rem}.issue-body{border-top:1px solid var(--c-border);gap:12px;padding:0 16px 16px;display:grid}.issue-problem{color:var(--c-text);padding-top:12px;font-size:.9rem}.issue-tip{color:var(--c-text-2);font-size:.875rem;font-style:italic}.issue-syllables{flex-wrap:wrap;gap:6px;display:flex}.syl-chip{background:var(--c-surface2);border:1px solid var(--c-border);color:var(--c-text-2);border-radius:8px;padding:4px 10px;font-family:monospace;font-size:.78rem;font-weight:600}.syl-chip.stressed{background:var(--c-teal-lt);border-color:var(--c-teal);color:var(--c-teal-dk);font-weight:800}.issue-drill{background:var(--c-surface2);border-radius:10px;padding:10px 12px}.issue-drill p{color:var(--c-text-2);margin-top:4px;font-size:.875rem}.drill-list{gap:6px;margin-top:6px;padding-left:18px;list-style:decimal;display:grid}.drill-list li{justify-content:space-between;align-items:center;gap:8px;font-size:.875rem;display:flex}.drill-hear{padding:4px 10px;font-size:.75rem}.issue-actions{flex-wrap:wrap;gap:8px;display:flex}.coach-summary-card{gap:16px;display:grid}.summary-heading h3{margin-top:4px;font-size:1.15rem;font-weight:700}.coach-paragraph{color:var(--c-text);font-size:.95rem;line-height:1.7}.coach-pattern{background:var(--c-amber-lt);border:1px solid #d9770633;border-radius:12px;padding:12px 16px}.coach-pattern p{color:#92400e;margin-top:4px;font-size:.875rem}.summary-columns{grid-template-columns:1fr 1fr;gap:12px;display:grid}.summary-columns>div{background:var(--c-surface2);border:1px solid var(--c-border);border-radius:12px;padding:14px}.summary-columns strong{margin-bottom:8px;font-size:.875rem;font-weight:700;display:block}.summary-columns ul{color:var(--c-text-2);gap:4px;padding-left:16px;font-size:.875rem;display:grid}.transcript-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.transcript-click-hint{color:var(--c-text-2);margin-top:6px;font-size:.86rem;font-weight:600}.filter-row{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border-radius:var(--r-pill);background:var(--c-surface2);border:1px solid var(--c-border);color:var(--c-text-2);padding:6px 14px;font-size:.8rem;font-weight:600;transition:background .12s}.filter-chip.active{background:var(--c-text);color:#fff;border-color:#0000}.filter-chip:hover:not(.active){background:var(--c-teal-lt);color:var(--c-teal)}.transcript-search{border:1px solid var(--c-border);background:var(--c-surface);border-radius:10px;min-width:160px;padding:8px 12px;font-size:.875rem}.transcript-flow{background:var(--c-surface2);border:1px solid var(--c-border);border-radius:14px;flex-wrap:wrap;gap:7px;min-height:64px;padding:16px;display:flex}.word-pill{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:6px 11px;font-size:.875rem;font-weight:700;transition:transform .1s,box-shadow .1s,background .1s}.word-pill:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000024}.word-pill.severe{color:#991b1b;background:#fee2e2;border-color:#ef4444;box-shadow:inset 0 -2px #991b1b24}.word-pill.moderate{color:#92400e;background:#fef3c7;border-color:#f59e0b;box-shadow:inset 0 -2px #92400e1f}.word-pill.minor{color:#1e40af;box-shadow:none;background:#fff;border-color:#3b82f6}.word-pill.selected{outline:2px solid var(--c-text);outline-offset:1px;box-shadow:0 0 0 2px #18202e1f}.word-drawer.severe{border-color:#ef444473}.word-drawer.moderate{border-color:#f59e0b73}.word-drawer.minor{border-color:#3b82f673}.word-drawer{border:1px solid var(--c-border);background:var(--c-surface);border-radius:14px;gap:12px;margin-top:12px;padding:16px;display:grid}.word-drawer.excellent{border-color:#86efac}.word-drawer.good{border-color:#bef264}.word-drawer.watch{border-color:#fcd34d}.word-drawer.needs-practice{border-color:#fca5a5}.word-drawer-header{justify-content:space-between;align-items:flex-start;display:flex}.word-drawer-header h4{margin-top:2px;font-size:1.2rem;font-weight:800}.word-drawer-header strong{font-size:1.3rem;font-weight:800}.word-detail-grid{gap:8px;display:grid}.word-detail-grid p{font-size:.9rem}.word-detail-grid strong{color:var(--c-text-2);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:700}.collapse-block{margin-top:16px}.word-analysis-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:12px;display:grid}.analysis-card{border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;border-radius:12px;padding:12px;transition:border-color .12s,box-shadow .12s,transform .12s}.analysis-card:hover{border-color:#0f7a6e57;transform:translateY(-1px);box-shadow:0 4px 12px #0f7a6e14}.analysis-card.selected{border-color:#0f7a6e85;box-shadow:0 0 0 2px #0f7a6e1f}.analysis-topline{justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.analysis-card p,.analysis-card small{color:var(--c-text-2);font-size:.8rem}.sentence-list{gap:10px;margin-top:4px;list-style:none;display:grid}.sentence-item{border:1px solid var(--c-border);background:var(--c-surface2);border-radius:12px;padding:14px 16px}.sentence-body{gap:10px;display:grid}.sentence-text{font-size:.95rem;line-height:1.65}.sentence-actions{gap:8px;display:flex}.focus-word{background:var(--c-teal-lt);color:var(--c-teal-dk);border-radius:4px;padding:0 2px;font-style:normal;font-weight:700}.section-kicker{text-transform:uppercase;letter-spacing:.1em;color:var(--c-text-3);margin-bottom:4px;font-size:.68rem;font-weight:700;display:block}.section-copy{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.history-header{margin-bottom:16px}.history-list{gap:8px;display:grid}.history-item{border:1px solid var(--c-border);background:var(--c-surface2);cursor:pointer;border-radius:12px;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px 14px;transition:border-color .12s;display:grid}.history-item:hover{border-color:var(--c-teal)}.history-item.active{border-color:var(--c-teal);background:var(--c-teal-lt)}.history-core strong{font-size:1.1rem;font-weight:800;display:block}.history-core p{color:var(--c-text-3);margin-top:2px;font-size:.78rem}.history-meta{flex-wrap:wrap;gap:6px;display:flex}.history-meta span{border-radius:var(--r-pill);background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-text-2);padding:4px 8px;font-size:.75rem;font-weight:600}.history-actions{gap:6px;display:flex}.empty-history{text-align:center;color:var(--c-text-2);padding:24px 0}.empty-history h4{margin:8px 0 4px;font-size:1rem}.empty-history p{font-size:.875rem}.empty-result-card{text-align:center;padding:40px 24px}.empty-illustration{border:1px solid var(--c-border);background:linear-gradient(135deg,#e9f5f4,#fef3c7);border-radius:20px;width:72px;height:72px;margin:0 auto 16px}.empty-result-card h2{margin-bottom:8px;font-size:1.3rem;font-weight:800}.empty-result-card p{color:var(--c-text-2);max-width:480px;margin:0 auto;font-size:.925rem}.error-text{color:var(--c-red);margin-top:8px;font-size:.875rem}.positive-text{color:var(--c-green)}.negative-text{color:var(--c-red)}@media (max-width:720px){.app-shell,.privacy-shell{padding:18px 14px 52px}.capture-layout,.summary-columns{grid-template-columns:1fr}.submit-row{flex-direction:column;align-items:stretch}.submit-row .primary-button{width:100%}.result-main{flex-direction:column;gap:8px}.progress-milestones{grid-template-columns:repeat(2,1fr)}.history-item{grid-template-columns:1fr auto}.history-actions{display:none}}@media (max-width:480px){.intake-card,.result-header,.issues-card,.coach-summary-card,.transcript-card,.practice-card,.history-card,.progress-card,.empty-result-card,.privacy-card{border-radius:16px;padding:18px}.word-pill{padding:5px 9px;font-size:.8rem}}
