: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;min-height:100dvh}button,textarea,input{font:inherit}button{cursor:pointer}button:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(15,118,110,.28);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.52}.app-shell{display:grid;grid-template-columns:276px minmax(0,1fr);min-height:100vh;color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:10px;left:10px;z-index:100;display:flex;align-items:center;min-height:44px;padding:10px 14px;border-radius:8px;background:var(--ink);color:#fff;transform:translateY(-160%);transition:transform .16s ease}.skip-link:focus{transform:translateY(0)}.mobile-header,.mobile-nav{display:none}.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:44px;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}.workspace-title,.surface-head h1,.surface-head h2{margin:3px 0 0;letter-spacing:0}.workspace-title{font-size:1.55rem;font-weight:800}.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{display:block}.prompt-copy{width:100%}.prompt-meta-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.prompt-head p{max-width:780px;margin:10px 0 0;color:var(--muted);line-height:1.58}.timer-block{display:flex;align-items:baseline;gap:9px;min-width:112px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);text-align:right}.timer-block span{color:var(--muted);font-size:.76rem}.timer-block strong{display:block;font-size:1.35rem;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;min-height:44px;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:44px;padding:9px 13px;font-weight:700}.coach-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 18px 18px}.coach-actions .primary-action,.coach-actions .secondary-action{min-height:44px}.primary-action{background:var(--teal);color:#fff}.secondary-action{border-color:var(--line);background:var(--surface)}.icon-action{display:grid;place-items:center;width:44px;height:44px;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}.chart-loading{display:grid;height:100%;place-items:center;color:var(--muted)}.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){html{scroll-padding-top:calc(112px + env(safe-area-inset-top))}body{background:var(--bg)}.app-shell{display:block;min-height:100dvh}.rail{display:none}.mobile-header{position:sticky;top:0;z-index:20;display:block;padding:calc(9px + env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid var(--line);background:#fffffff5;box-shadow:0 10px 28px #1118270f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.mobile-header .brand-lockup{gap:9px;padding:0}.mobile-header .brand-mark{width:36px;height:36px}.mobile-header .brand-lockup strong{font-size:.94rem}.mobile-header .brand-lockup span{font-size:.72rem}.mobile-progress{display:flex;align-items:baseline;gap:7px;color:var(--teal);white-space:nowrap}.mobile-progress strong{font-size:.96rem}.mobile-progress span{color:var(--muted);font-size:.72rem}.mobile-buckets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px;padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft)}.mobile-buckets .bucket-button{min-height:44px;padding:7px 8px;border-radius:8px;text-align:center}.mobile-buckets .bucket-button small{display:none}.workspace{width:100%;padding:12px 14px calc(86px + env(safe-area-inset-bottom))}.topbar{display:none}.train-layout,.lower-layout,.review-layout,.sharpen-layout{gap:12px}.diagnostic-grid,.metrics-grid,.snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.surface{border-radius:14px;box-shadow:0 12px 32px #11182712}.surface-head{padding:16px}.practice-surface,.coach-surface,.review-layout>.surface,.sharpen-layout>.surface{scroll-margin-top:calc(112px + env(safe-area-inset-top))}.prompt-head{display:block}.prompt-meta-row{align-items:center}.prompt-head h1{max-width:13ch;margin-top:10px;font-size:clamp(1.75rem,8vw,2.1rem);line-height:1.04}.prompt-head p{margin-top:10px;font-size:.96rem;line-height:1.48}.timer-block{width:auto;min-width:102px;padding:8px 10px}.timer-block strong{font-size:1.18rem}.practice-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px 16px}.timer-options{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr));gap:4px}.timer-options button,.primary-action,.secondary-action,.record-button,.text-button,.icon-action{min-height:44px}.timer-options button{min-width:44px;padding:8px 6px}.practice-toolbar .action-row{display:grid;grid-template-columns:minmax(76px,1fr) 44px;gap:6px}.practice-toolbar .secondary-action{width:100%}.icon-action{width:44px;height:44px}.recorder-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:0 16px;padding:12px}.signal-bars{display:none}.recorder-strip span{font-size:.76rem;line-height:1.35}.record-button{min-width:104px;margin-left:0;padding-inline:12px}.transcript-area{width:calc(100% - 32px);min-height:168px;margin:12px 16px 0;padding:14px;font-size:1rem;line-height:1.55}.inline-status{margin-inline:16px}.practice-footer{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:12px 16px 16px}.practice-footer .primary-action,.practice-footer .secondary-action{width:100%;min-height:48px}.coach-empty{display:none}.coach-focus{margin:16px}.coach-actions{margin:0 16px 16px}.coach-actions .primary-action,.coach-actions .secondary-action{min-height:48px}.diagnostic-grid,.metrics-grid,.snapshot-grid,.surface-list,.text-button{margin-right:16px;margin-left:16px}.diagnostic,.metric-tile{min-height:70px}.lower-layout{margin-top:12px}.prompt-list,.rep-list{padding-right:16px;padding-left:16px}.prompt-row{min-height:52px}.prompt-row:nth-child(n+4){display:none}.chart-wrap{height:280px;padding:10px}.rewrite-stack strong{font-size:1.2rem}.mobile-nav{position:fixed;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));left:10px;z-index:30;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:6px;border:1px solid rgba(200,206,216,.92);border-radius:15px;background:#fffffff5;box-shadow:0 16px 42px #1118272e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:opacity .16s ease,transform .16s ease}.mobile-nav .mode-button{min-height:48px;justify-content:center;gap:6px;padding:8px}.mobile-nav .mode-button.active{background:var(--ink);color:#fff}body:has(.transcript-area:focus) .mobile-nav{pointer-events:none;visibility:hidden;opacity:0;transform:translateY(calc(100% + 20px));transition:none}}
