:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111827;background:#f5f7fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg: #f5f7fa;--surface: #ffffff;--surface-soft: #f9fafb;--ink: #111827;--muted: #697282;--faint: #9aa2af;--line: #dfe3ea;--line-strong: #c8ced8;--teal: #0f766e;--teal-soft: #e4f5f2;--amber: #b45309;--amber-soft: #fff3d7;--coral: #dc2626;--coral-soft: #ffe8e4;--shadow: 0 18px 55px rgba(17, 24, 39, .09)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:linear-gradient(180deg,#ffffffeb,#f5f7fafa),var(--bg)}body{min-width:320px}button,textarea,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}.app-shell{display:grid;grid-template-columns:276px minmax(0,1fr);min-height:100vh;color:var(--ink)}.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:20px;border-right:1px solid var(--line);background:#ffffffd1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-lockup{display:flex;align-items:center;gap:12px;padding-bottom:4px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;background:#111827;color:#fff;font-weight:800}.brand-lockup strong,.brand-lockup span,.stat span,.stat strong,.bucket-button span,.bucket-button small,.prompt-row span,.prompt-row small,.rep-row span{display:block}.brand-lockup strong{font-size:.98rem}.brand-lockup span,.bucket-button small,.prompt-row small,.rep-row span,.empty-line{color:var(--muted);font-size:.82rem}.mode-list,.bucket-list,.rail-stats,.surface-list,.prompt-list,.rep-list,.repeat-list,.rewrite-stack{display:grid;gap:8px}.rail-label,.kicker{color:var(--faint);font-size:.72rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.mode-button,.bucket-button,.primary-action,.secondary-action,.icon-action,.record-button,.text-button,.timer-options button,.prompt-row{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink);transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}.mode-button{display:flex;align-items:center;gap:10px;min-height:40px;padding:9px 10px;text-align:left}.mode-button:hover,.bucket-button:hover,.prompt-row:hover,.icon-action:hover,.secondary-action:hover,.text-button:hover,.timer-options button:hover{background:#f0f3f7}.mode-button.active,.bucket-button.active{background:#111827;color:#fff}.bucket-list{gap:10px}.bucket-button{padding:10px;text-align:left}.bucket-button.active small{color:#ffffffad}.rail-stats{margin-top:auto}.stat{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.stat span{color:var(--muted);font-size:.72rem}.stat strong{margin-top:2px;font-size:1rem}.stat-teal{color:var(--teal)}.stat-amber{color:var(--amber)}.stat-coral{color:var(--coral)}.workspace{width:min(1320px,100%);margin:0 auto;padding:22px}.topbar,.surface-head,.practice-toolbar,.recorder-strip,.practice-footer,.action-row,.lower-layout,.train-layout,.review-layout,.sharpen-layout{display:flex;gap:14px}.topbar{align-items:center;justify-content:space-between;margin-bottom:16px}.topbar h1,.surface-head h1,.surface-head h2{margin:3px 0 0;letter-spacing:0}.topbar h1{font-size:1.55rem}.topbar-metrics{display:flex;gap:10px}.topbar-metrics .stat{min-width:132px}.train-layout{align-items:stretch;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(340px,.72fr);gap:14px}.lower-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);margin-top:14px}.surface{border:1px solid var(--line);border-radius:8px;background:#ffffffe6;box-shadow:var(--shadow);overflow:hidden}.surface-head{align-items:flex-start;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line)}.surface-head.compact{align-items:center}.prompt-head{align-items:stretch}.prompt-head p{max-width:780px;margin:10px 0 0;color:var(--muted);line-height:1.58}.timer-block{min-width:122px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);text-align:center}.timer-block span{color:var(--muted);font-size:.76rem}.timer-block strong{display:block;margin-top:4px;font-size:1.75rem;font-variant-numeric:tabular-nums}.practice-toolbar,.practice-footer{align-items:center;justify-content:space-between;padding:14px 18px}.timer-options{display:flex;gap:8px;flex-wrap:wrap}.timer-options button{min-width:58px;padding:8px 10px;border-color:var(--line);background:var(--surface)}.timer-options button.selected{background:var(--ink);color:#fff}.action-row{align-items:center;flex-wrap:wrap}.primary-action,.secondary-action,.record-button,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 13px;font-weight:700}.primary-action{background:var(--teal);color:#fff}.secondary-action{border-color:var(--line);background:var(--surface)}.icon-action{display:grid;place-items:center;width:40px;height:40px;border-color:var(--line);background:var(--surface)}.record-button{margin-left:auto;background:var(--ink);color:#fff}.record-button.stop{background:var(--coral)}.recorder-strip{align-items:center;margin:0 18px;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.recorder-strip strong,.recorder-strip span{display:block}.recorder-strip span{margin-top:2px;color:var(--muted);font-size:.84rem}.signal-bars{display:flex;align-items:center;gap:3px;width:82px;height:32px}.signal-bars span{width:4px;height:8px;border-radius:999px;background:#c8ced8}.signal-bars.active span{animation:pulse-bar .9s ease-in-out infinite;animation-delay:calc(var(--i) * .05s);background:var(--teal)}@keyframes pulse-bar{0%,to{height:8px}50%{height:28px}}.transcript-area{width:calc(100% - 36px);min-height:255px;margin:14px 18px 0;resize:vertical;padding:15px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);line-height:1.65;outline:none}.transcript-area:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1f}.transcript-area::placeholder{color:var(--faint)}.inline-status{margin:10px 18px 0;padding:10px 12px;border:1px solid #c9e8e2;border-radius:8px;background:var(--teal-soft);color:var(--teal);line-height:1.45}.inline-status.warn{border-color:#f5dca8;background:var(--amber-soft);color:var(--amber)}.coach-surface{display:flex;flex-direction:column}.score-pill{display:grid;place-items:center;min-width:58px;height:44px;border-radius:8px;background:var(--surface-soft);font-size:1.25rem;font-weight:800}.score-pill.good,.metric-tile strong.good,.rep-row b.good{color:var(--teal)}.score-pill.warn,.metric-tile strong.warn,.rep-row b.warn{color:var(--amber)}.score-pill.bad,.metric-tile strong.bad,.rep-row b.bad{color:var(--coral)}.coach-focus{margin:18px;padding:14px;border:1px solid #c9e8e2;border-radius:8px;background:var(--teal-soft)}.coach-focus span,.rewrite-stack span{display:block;color:var(--teal);font-size:.74rem;font-weight:800;text-transform:uppercase}.coach-focus strong{display:block;margin-top:6px;line-height:1.45}.diagnostic-grid,.metrics-grid,.snapshot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 18px 18px}.diagnostic,.metric-tile{min-height:74px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.diagnostic span,.metric-tile span{display:block;color:var(--muted);font-size:.74rem;text-transform:capitalize}.diagnostic strong,.metric-tile strong{display:block;margin-top:8px;font-size:1.35rem}.diagnostic-good{border-color:#c9e8e2;background:var(--teal-soft)}.diagnostic-warn{border-color:#f5dca8;background:var(--amber-soft)}.diagnostic-bad{border-color:#ffc6bd;background:var(--coral-soft)}.surface-list{margin:0 18px 14px}.suggestion-row,.repeat-row,.rep-row{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-top:1px solid var(--line);color:var(--muted);line-height:1.45}.suggestion-row:first-child,.repeat-row:first-child,.rep-row:first-child{border-top:0}.text-button{margin:0 18px 18px;align-self:flex-start;border-color:var(--line);background:var(--surface)}.metrics-grid{margin-top:0;padding-bottom:18px}.queue-surface,.recent-surface{min-height:252px}.prompt-list,.rep-list{padding:6px 18px 18px}.prompt-row{width:100%;padding:12px;border-color:var(--line);background:var(--surface);text-align:left}.prompt-row.active{border-color:#8ccdc6;background:var(--teal-soft)}.rep-row{justify-content:space-between}.rep-row strong{display:block;margin-bottom:3px}.rep-row b{font-size:1.2rem}.empty-panel{display:grid;place-items:center;min-height:220px;padding:24px;color:var(--muted);text-align:center;line-height:1.5}.empty-panel strong,.empty-panel span{display:block}.empty-panel strong{margin-top:10px;color:var(--ink)}.empty-line{padding:18px 0}.review-layout,.sharpen-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr)}.review-layout .recent-surface{grid-column:1 / -1}.chart-wrap{height:380px;padding:16px}.snapshot-grid{margin-top:18px}.rewrite-stack{padding:18px}.rewrite-stack div{padding:16px 0;border-top:1px solid var(--line)}.rewrite-stack div:first-child{border-top:0;padding-top:0}.rewrite-stack strong{display:block;margin-top:8px;font-size:1.45rem;line-height:1.4}.rewrite-stack p{margin:8px 0 0;color:var(--muted);line-height:1.7}.repeat-list{padding:6px 18px 18px}.repeat-row b{display:grid;flex:0 0 auto;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--ink);color:#fff;font-size:.78rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:1120px){.app-shell{grid-template-columns:1fr}.rail{position:static;height:auto;display:grid;grid-template-columns:1fr;border-right:0;border-bottom:1px solid var(--line)}.mode-list,.bucket-list,.rail-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.rail-label{grid-column:1 / -1}.train-layout,.lower-layout,.review-layout,.sharpen-layout{grid-template-columns:1fr}}@media(max-width:760px){.workspace{padding:14px}.rail{padding:14px;gap:12px}.mode-list,.bucket-list,.topbar-metrics,.diagnostic-grid,.metrics-grid,.snapshot-grid{grid-template-columns:1fr}.mode-list,.rail-stats,.bucket-list{grid-template-columns:repeat(3,minmax(0,1fr))}.topbar,.surface-head,.practice-toolbar,.recorder-strip,.practice-footer{flex-direction:column;align-items:stretch}.topbar-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.mode-button,.bucket-button{min-height:44px;padding:8px}.mode-button{justify-content:center}.bucket-button small{display:none}.rail-stats .stat{min-height:48px}.record-button{margin-left:0}.timer-block{width:100%}.transcript-area{min-height:210px}}
