:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;letter-spacing:0;--ink:#1f2933;--ink-strong:#18222b;--muted:#64727f;--line:#d9e1e5;--panel:#fff;--rail:#fbfcfc;--card:#fbfcfc;--input:#fff;--teal:#11787f;--teal-dark:#0c5e64;--coral:#d9604a;--green:#2f7d52;--amber:#d69a1f;--blue:#3367b0;--wash:#edf3f4;--active-soft:#e7f4f4;--code-bg:#eef7f7;--code-line:#c9d7dc;--tag-bg:#fff2ce;--tag-ink:#57410f;--chunk-bg:#fff4f1;--structure-bg:#f0f8f3;--glossary-bg:#f3f7fd;--ok-bg:#eef9f1;--ok-line:#9bd3b3;--warn-bg:#fff2ef;--warn-line:#f0b6aa;--error-bg:#fff0ec;--error-ink:#8b2f21;--shadow:0 18px 38px #1f29331a;background:#f7fafb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eef5f6;--ink:#eef5f6;--ink-strong:#fff;--muted:#a9b7bd;--line:#2d3c42;--panel:#172226;--rail:#121b1f;--card:#1c292e;--input:#11191c;--teal:#39a9b0;--teal-dark:#84d7dc;--coral:#ff8b76;--green:#82d39f;--amber:#f0c45a;--blue:#8bbcff;--wash:#202d32;--active-soft:#183438;--code-bg:#142b2e;--code-line:#34545a;--tag-bg:#3c321c;--tag-ink:#f6d98b;--chunk-bg:#34231f;--structure-bg:#1f3228;--glossary-bg:#1d2a3a;--ok-bg:#193025;--ok-line:#3d8b5f;--warn-bg:#3a211e;--warn-line:#965243;--error-bg:#3a211e;--error-ink:#ffb2a4;--shadow:0 18px 38px #00000047;background:#11191c}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--ink);background:var(--rail)}button,input,textarea,select{font:inherit;letter-spacing:0}button{cursor:pointer}code{border:1px solid var(--code-line);color:var(--teal-dark);background:var(--code-bg);border-radius:6px;padding:2px 6px}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.left-rail{border-right:1px solid var(--line);background:var(--rail);flex-direction:column;gap:20px;min-width:0;padding:22px;display:flex}.brand-block{align-items:center;gap:12px;display:flex}.brand-mark{color:#fff;background:var(--teal);border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.brand-block strong,.brand-block span{display:block}.brand-block strong{font-size:1rem}.brand-block span{color:var(--muted);font-size:.82rem}.step-stack{gap:10px;display:grid}.step-button{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--panel);text-align:left;border-radius:8px;grid-template-columns:minmax(0,1fr) 18px;gap:4px 8px;padding:14px 12px;display:grid;position:relative}.step-button span,.step-button small{overflow-wrap:anywhere;min-width:0}.step-button small{color:var(--muted)}.step-button svg{color:var(--muted);grid-area:1/2/span 2;align-self:center}.step-button.active{box-shadow:inset 4px 0 0 var(--teal);border-color:#6eb3b8}.left-rail .live-dock{box-shadow:none}.left-rail .live-dock>header{align-items:flex-start}.left-rail .dock-controls select{flex:100%;min-width:0}.left-rail .dock-controls .primary-button{flex:120px}.left-rail .transcript-mini{font-size:.86rem}.workbench{min-width:0;padding:24px}.top-bar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.top-bar h1{margin:4px 0 0;font-size:clamp(1.45rem,2vw,2.05rem);line-height:1.2}.eyebrow{color:var(--teal-dark);font-size:.86rem;font-weight:700}.top-actions,.viewer-actions,.button-row,.dock-controls,.drill-strip{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.workflow-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px;display:grid}.workflow-tabs button{border:1px solid var(--line);min-width:0;min-height:44px;color:var(--ink);background:var(--panel);overflow-wrap:anywhere;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 8px;display:flex}.workflow-tabs span{color:#fff;background:var(--muted);border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:.78rem;display:grid}.workflow-tabs button.active{border-color:var(--teal);color:var(--teal-dark);box-shadow:inset 0 -3px 0 var(--teal)}.workflow-tabs button.active span{background:var(--teal)}.workspace-grid{grid-template-columns:minmax(0,1fr) minmax(360px,42vw);align-items:start;gap:18px;display:grid}.learning-pane,.reference-pane{min-width:0}.reference-pane,.flow-stack{gap:14px;display:grid}.panel,.source-viewer,.live-dock{border:1px solid var(--line);background:var(--panel);min-width:0;box-shadow:var(--shadow);border-radius:8px}.panel{padding:18px}.panel>header,.source-viewer>header,.live-dock>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel>header{color:var(--teal-dark);justify-content:flex-start}.panel h2{color:var(--ink);margin:0;font-size:1rem}.pattern-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.pattern-card{border:1px solid var(--line);background:var(--card);border-radius:8px;gap:8px;min-width:0;padding:14px;display:grid}.pattern-card strong,.pattern-card span{overflow-wrap:anywhere}.pattern-card span{color:var(--muted);font-size:.9rem}.mini-tags{flex-wrap:wrap;gap:6px;display:flex}.mini-tags em{max-width:100%;color:var(--tag-ink);background:var(--tag-bg);overflow-wrap:anywhere;border-radius:999px;padding:4px 7px;font-size:.78rem;font-style:normal}.sentence-focus{gap:14px;display:grid}.sentence-focus.compact{gap:10px}.sentence-focus p{color:var(--ink-strong);overflow-wrap:anywhere;margin:0;font-size:clamp(1.35rem,2.5vw,2.35rem);font-weight:760;line-height:1.2}.sentence-focus.compact p{font-size:1.15rem}.chunk-row,.structure-row,.glossary{flex-wrap:wrap;gap:8px;display:flex}.chunk-row span{border-left:4px solid var(--coral);background:var(--chunk-bg);overflow-wrap:anywhere;border-radius:6px;max-width:100%;padding:8px 10px}.structure-row div{border:1px solid var(--line);background:var(--structure-bg);border-radius:6px;gap:3px;min-width:120px;padding:9px 10px;display:grid}.structure-row span,.glossary em,.prompt-box span,.transcript-box span,.source-viewer header span,.live-dock header span{color:var(--muted);font-size:.76rem;font-weight:700}.structure-row strong{color:var(--green);overflow-wrap:anywhere}.glossary span{border:1px solid var(--line);background:var(--glossary-bg);overflow-wrap:anywhere;border-radius:6px;gap:2px;min-width:138px;max-width:100%;padding:9px 10px;display:grid}.glossary.inline{flex-wrap:wrap;gap:6px;display:flex}.glossary.inline span{flex:180px;min-width:min(100%,180px);padding:7px 10px}.glossary strong{color:var(--blue)}.glossary small{color:var(--ink);font-size:.84rem;line-height:1.35}.glossary.empty{color:var(--muted)}.icon-button,.primary-button,.secondary-button,.wide-next{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:730;display:inline-flex}.icon-button{width:40px;height:40px;color:var(--ink);border-color:var(--line);background:var(--panel);flex:none;padding:0}.theme-toggle{border:1px solid var(--line);min-height:40px;color:var(--ink);background:var(--panel);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-weight:730;display:inline-flex}.icon-button.large{width:50px;height:50px}.primary-button,.secondary-button,.wide-next{min-height:40px;padding:0 14px}.primary-button{color:#fff;background:var(--teal)}.primary-button:disabled{cursor:not-allowed;opacity:.5}.primary-button.compact{min-height:36px}.secondary-button.compact{min-height:36px;padding:0 10px}.secondary-button{color:var(--teal-dark);background:var(--code-bg);border-color:#b8d7da}.wide-next{width:100%;color:var(--ink);background:var(--tag-bg);border-color:#e2c06b}.sentence-range{min-width:160px;accent-color:var(--teal);flex:220px}.prompt-box,.question-box,.transcript-box{background:var(--wash);border-radius:8px;gap:8px;padding:14px;display:grid}.prompt-box strong,.question-box{color:var(--ink);overflow-wrap:anywhere;font-size:1.05rem;line-height:1.45}.question-box{border-left:5px solid var(--coral)}.answer-input{resize:vertical;border:1px solid var(--line);width:100%;min-height:110px;color:var(--ink);background:var(--input);border-radius:8px;margin-top:12px;padding:14px;line-height:1.45}.button-row{margin-top:12px}.sentence-nav,.answer-question-card{border:1px solid var(--line);background:var(--glossary-bg);border-radius:8px;gap:10px;padding:14px;display:grid}.sentence-nav-top,.sentence-nav-controls{justify-content:space-between;align-items:center;gap:8px;display:flex}.sentence-nav-top span{min-height:28px;color:var(--teal-dark);background:var(--panel);border-radius:999px;align-items:center;padding:0 9px;font-size:.8rem;font-weight:800;display:inline-flex}.sentence-nav p{color:var(--ink-strong);overflow-wrap:anywhere;margin:0;font-size:clamp(1.15rem,2vw,1.6rem);font-weight:760;line-height:1.25}.sentence-nav-controls{justify-content:flex-end}.score-panel,.result-box{border-radius:8px;gap:8px;margin-top:12px;padding:12px;display:grid}.score-panel>div,.result-box{align-items:center;gap:8px;display:flex}.score-panel p{overflow-wrap:anywhere;margin:0}.score-panel.good,.result-box.good{border:1px solid var(--ok-line);background:var(--ok-bg)}.score-panel.needs-work,.result-box.needs-work{border:1px solid var(--warn-line);background:var(--warn-bg)}.speak-target{background:var(--glossary-bg);border-radius:8px;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;padding:14px;display:grid}.speak-target p{overflow-wrap:anywhere;margin:0;font-size:1.35rem;font-weight:760;line-height:1.25}.transcript-box{margin-top:12px}.transcript-box strong{overflow-wrap:anywhere;min-height:24px}.source-viewer{overflow:hidden}.source-viewer>header,.live-dock>header{padding:14px 14px 0}.source-viewer header strong,.live-dock header strong{display:block}.spread-pages{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:62vh;padding:0 14px 14px;display:grid;overflow:auto}.spread-pages figure{min-width:calc(240px * var(--page-zoom));margin:0}.spread-pages img{width:calc(100% * var(--page-zoom));aspect-ratio:2478/3504;border:1px solid var(--line);background:var(--input);object-fit:contain;border-radius:6px;max-width:none;display:block}.spread-pages figcaption{color:var(--muted);margin-top:6px;font-size:.78rem}.source-sentence-list{gap:8px;max-height:52vh;padding:0 14px 14px;display:grid;overflow:auto}.source-sentence-list button{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--card);text-align:left;border-radius:8px;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:10px;display:grid}.source-sentence-list button.active{border-color:var(--teal);background:var(--active-soft)}.source-sentence-list span{width:28px;height:28px;color:var(--teal-dark);background:var(--glossary-bg);border-radius:999px;place-items:center;font-size:.78rem;font-weight:800;display:grid}.source-sentence-list strong{overflow-wrap:anywhere;min-width:0;font-size:.95rem;line-height:1.35}.source-audio{border:1px solid var(--line);background:var(--card);border-radius:8px;gap:10px;margin:0 14px 14px;padding:12px;display:grid}.source-audio-status{justify-content:space-between;align-items:center;gap:10px;display:flex}.source-audio-status span,.rate-control span{color:var(--muted);font-size:.76rem;font-weight:700}.source-audio-status strong{color:var(--teal-dark)}.source-audio p{min-height:42px;color:var(--ink-strong);overflow-wrap:anywhere;margin:0;font-size:1rem;font-weight:680;line-height:1.35}.source-audio-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.materials-manager{border:1px solid var(--line);background:var(--card);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 14px 14px;padding:12px;display:flex}.materials-manager input{display:none}.materials-manager span{color:var(--muted);overflow-wrap:anywhere;font-size:.82rem;font-weight:700}.rate-control{border:1px solid var(--line);background:var(--input);border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 10px;display:inline-flex}.rate-control select{min-height:30px;color:var(--ink);background:0 0;border:0}.live-dock{padding-bottom:14px}.dock-controls,.dock-status,.live-stats,.transcript-mini,.audio-meter,.dock-error{margin:0 14px}.dock-controls select{border:1px solid var(--line);min-width:120px;min-height:36px;color:var(--ink);background:var(--input);border-radius:8px;padding:0 10px}.audio-meter{background:var(--wash);border-radius:999px;height:8px;margin-top:12px;overflow:hidden}.audio-meter span{transform-origin:0;background:linear-gradient(90deg, var(--green), var(--amber), var(--coral));width:100%;height:100%;display:block}.dock-status{justify-content:space-between;align-items:center;gap:8px;min-height:44px;display:flex}.dock-status span{color:var(--muted);overflow-wrap:anywhere;font-size:.86rem}.live-stats{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.live-stats span{border:1px solid var(--line);color:var(--muted);background:var(--card);border-radius:999px;padding:4px 7px;font-size:.74rem;font-weight:700}.transcript-mini{background:var(--card);border-radius:8px;gap:6px;padding:12px;display:grid}.transcript-mini p,.transcript-mini strong{overflow-wrap:anywhere;min-height:20px;margin:0}.transcript-mini p{color:var(--muted)}.dock-error{color:var(--error-ink);background:var(--error-bg);overflow-wrap:anywhere;border-radius:8px;margin-top:10px;padding:10px}.empty-state{min-height:100vh;color:var(--ink);text-align:center;align-content:center;place-items:center;gap:12px;padding:32px;display:grid}.empty-state h1,.empty-state p{margin:0}@media (width<=1180px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.workspace-grid,.reference-pane{grid-template-columns:minmax(0,1fr)}.spread-pages{max-height:70vh}}@media (width<=860px){.app-shell{min-height:100svh;display:block}.left-rail{border-right:0;border-bottom:1px solid var(--line);gap:14px;padding:14px 14px 10px;position:static}.brand-block{align-items:center}.brand-mark{width:36px;height:36px}.step-stack{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:8px;margin:0 -14px;padding:0 14px 4px;display:flex;overflow-x:auto}.step-button{scroll-snap-align:start;flex:0 0 min(78vw,280px)}.workbench{padding:14px}.top-bar{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:14px}.top-bar h1{font-size:1.35rem}.top-actions{justify-content:flex-end;width:100%}.workflow-tabs{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:8px;margin:0 -14px 14px;padding:0 14px 4px;display:flex;overflow-x:auto}.workflow-tabs button{scroll-snap-align:start;flex:none;min-width:116px;min-height:42px}.pattern-grid,.spread-pages{grid-template-columns:1fr}.workspace-grid,.reference-pane,.flow-stack{gap:12px}.panel{padding:14px}.source-viewer{margin-top:2px}.source-viewer>header{flex-direction:column;align-items:flex-start;padding:12px 12px 0}.live-dock>header{padding:12px 12px 0}.spread-pages{max-height:58svh;padding:0 12px 12px}.source-sentence-list{max-height:48svh;padding:0 12px 12px}.spread-pages figure{min-width:0}.spread-pages img{width:calc(100% * var(--page-zoom));margin:0 auto}.dock-controls,.dock-status,.live-stats,.transcript-mini,.audio-meter,.dock-error,.source-audio,.materials-manager{margin-left:12px;margin-right:12px}}@media (width<=560px){html{font-size:16px}.pattern-grid,.structure-row,.glossary{grid-template-columns:1fr}.panel>header,.live-dock>header{align-items:flex-start}.theme-toggle span{display:none}.button-row,.dock-controls,.drill-strip,.source-audio-controls,.materials-manager{align-items:stretch}.dock-controls select,.dock-controls .primary-button{flex:132px}.button-row .primary-button,.button-row .secondary-button,.source-audio-controls .primary-button,.source-audio-controls .secondary-button,.materials-manager .secondary-button{flex:140px}.answer-input,.dock-controls select,.rate-control select{font-size:16px}.rate-control{flex:140px;justify-content:space-between}.sentence-focus p{font-size:1.25rem}.sentence-focus.compact p,.prompt-box strong,.question-box{font-size:1rem}.chunk-row span,.structure-row div,.glossary:not(.inline) span{width:100%}.speak-target{grid-template-columns:1fr}.transcript-mini{padding:10px}}
