:root{color-scheme:light;--ink: #17283a;--muted: #607286;--line: #d6e0ea;--surface: #ffffff;--surface-soft: #f4f7fb;--brand: #153a63;--brand-strong: #0d2b4b;--brand-soft: #e8f1fb;--accent: #146c60;--danger: #a83232;--warning: #9a5b0a;--focus: #3f82ca;--shadow: 0 12px 34px rgb(23 40 58 / 10%);--radius: 1rem;--space: clamp(.75rem, 1.3vw, 1.2rem);--font-scale: 1;--control-height: 2.65rem;--sidebar-width: clamp(16rem, 23vw, 20rem);font-family:Inter,Pretendard,Noto Sans KR,Apple SD Gothic Neo,Segoe UI,sans-serif;font-size:calc(16px * var(--font-scale));background:var(--surface-soft);color:var(--ink)}*{box-sizing:border-box}html{min-width:20rem;min-height:100%;background:var(--surface-soft);scroll-behavior:smooth}body{min-width:20rem;min-height:100dvh;margin:0;background:var(--surface-soft);color:var(--ink);line-height:1.55;overflow-x:clip}body[data-font-scale=small]{--font-scale: .92}body[data-font-scale=large]{--font-scale: 1.1}body[data-density=normal]{--space: clamp(.65rem, 1vw, 1rem);--control-height: 2.45rem}body[data-density=compact]{--space: clamp(.5rem, .8vw, .75rem);--control-height: 2.25rem}button,input,select,textarea{color:var(--ink);font:inherit}button,select,input[type=file]{min-height:var(--control-height)}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 68%,transparent);outline-offset:2px}.hidden{display:none!important}.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;z-index:1000;inset:0 auto auto 0;transform:translateY(-120%);padding:.75rem 1rem;color:#fff;background:var(--brand-strong)}.skip-link:focus{transform:translateY(0)}.app-header{position:sticky;z-index:50;top:0;min-width:0;min-height:4.25rem;display:flex;align-items:center;gap:.8rem;padding:.55rem clamp(.75rem,2vw,1.5rem);border-bottom:1px solid #284d73;background:var(--brand);color:#fff}.brand{min-width:0;display:flex;align-items:center;gap:.7rem}.brand img{flex:0 0 auto;border-radius:.55rem}.brand div{min-width:0;display:grid}.brand strong,.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand strong{font-size:1rem}.brand span{color:#d5e5f5;font-size:.75rem}.header-actions{min-width:0;margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:.5rem}.icon-button{min-width:var(--control-height);border:1px solid var(--line);border-radius:.65rem;background:#fff;color:var(--ink);font-size:1.25rem}.app-header .icon-button{border-color:#ffffff5c;background:#ffffff1f;color:#fff}.primary-button,.secondary-button,.file-button{min-height:var(--control-height);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem .9rem;border-radius:.65rem;font-weight:700;text-align:center}.primary-button{border:1px solid var(--brand);background:var(--brand);color:#fff}.primary-button:hover:not(:disabled){border-color:var(--brand-strong);background:var(--brand-strong)}.secondary-button,.file-button{border:1px solid var(--line);background:#fff;color:var(--ink)}.secondary-button:hover:not(:disabled),.file-button:hover{border-color:#91a8bf;background:#f7fafd}.app-header .secondary-button{border-color:#ffffff59;background:#ffffff1a;color:#fff}.app-header .secondary-button:hover{background:#fff3}.compact{min-height:2.25rem;padding:.35rem .65rem;font-size:.82rem}.status-badge{max-width:13rem;padding:.3rem .55rem;overflow:hidden;border:1px solid rgb(255 255 255 / 30%);border-radius:999px;color:#e6f0fa;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.status-badge[data-state=saved]{color:#c8f3e6}.status-badge[data-state=error]{color:#ffe0e0}.privacy-notice{min-width:0;display:flex;align-items:center;justify-content:center;gap:.55rem;padding:.45rem 1rem;border-bottom:1px solid #b8cbe0;background:#eaf3fc;color:#274661;font-size:.78rem;text-align:center}.privacy-notice button{min-height:1.8rem;padding:.2rem .55rem;border:1px solid #8eabc6;border-radius:999px;background:#fff;color:#274661}.app-layout{min-width:0;min-height:calc(100dvh - 4.25rem);display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);align-items:start}.question-sidebar{position:sticky;top:4.25rem;min-width:0;height:calc(100dvh - 4.25rem);display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:.65rem;padding:var(--space);border-right:1px solid var(--line);background:#fff}.sidebar-heading{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar-heading div{min-width:0;display:flex;align-items:baseline;gap:.45rem}.sidebar-heading span{color:var(--muted);font-size:.8rem}.search-field input,.select-field select,.settings-grid select,.form-stack input,.form-stack select,.form-stack textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:.65rem;background:#fff}.search-field input{height:var(--control-height);padding:0 .75rem}.filter-row{min-width:0;display:flex;gap:.35rem;padding-bottom:.15rem;overflow-x:auto;scrollbar-width:thin}.filter-row button{flex:0 0 auto;min-height:2.05rem;padding:.25rem .65rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.78rem;font-weight:700}.filter-row button.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.question-list{min-height:0;display:flex;flex-direction:column;gap:.35rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.question-list button{width:100%;min-width:0;min-height:3.7rem;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.55rem;padding:.65rem;border:1px solid transparent;border-radius:.7rem;background:transparent;color:var(--ink);text-align:left}.question-list button:hover{background:var(--surface-soft)}.question-list button.active{border-color:#a9c4de;background:var(--brand-soft)}.question-list .question-index{min-width:1.75rem;padding-top:.05rem;color:var(--muted);font-size:.75rem}.question-list .question-copy{min-width:0}.question-list strong,.question-list small{display:block;overflow:hidden;text-overflow:ellipsis}.question-list strong{font-size:.86rem;line-height:1.35;white-space:normal}.question-list small{margin-top:.18rem;color:var(--muted);font-size:.7rem;white-space:nowrap}.sidebar-backdrop{display:none}.practice-main{width:min(100%,100rem);min-width:0;margin:0 auto;padding:var(--space)}.question-card,.panel,.mode-bar,.question-navigation{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 4px 18px #17283a0d}.question-card{padding:clamp(1rem,2vw,1.5rem)}.question-meta{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.type-badge,.time-badge{display:inline-flex;align-items:center;min-height:1.7rem;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800}.type-badge{background:var(--brand-soft);color:var(--brand)}.time-badge{background:#edf7f4;color:var(--accent)}.danger-link{min-height:auto;margin-left:auto;padding:.2rem .4rem;background:transparent;color:var(--danger);font-size:.78rem;text-decoration:underline}.question-card h1{margin:.7rem 0 0;color:#11283f;font-size:clamp(1.35rem,2.3vw,2rem);line-height:1.34;overflow-wrap:anywhere;word-break:keep-all}.question-translation{margin:.45rem 0 0;color:var(--muted);font-size:clamp(.9rem,1.2vw,1rem);overflow-wrap:anywhere}.question-actions{min-width:0;display:grid;grid-template-columns:minmax(7.5rem,.55fr) minmax(12rem,1.4fr) minmax(8.5rem,.7fr) auto auto;align-items:end;gap:.65rem;margin-top:1rem}.select-field,.range-field{min-width:0;display:grid;gap:.25rem}.select-field span,.range-field span,.settings-grid label>span,.form-stack label>span{color:var(--muted);font-size:.72rem;font-weight:700}.select-field select,.settings-grid select,.form-stack select,.form-stack input{height:var(--control-height);padding:0 .65rem}.range-field input{width:100%;min-width:0;height:var(--control-height);margin:0}.mode-bar{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin-top:var(--space);padding:.4rem}.mode-bar button{min-width:0;min-height:var(--control-height);padding:.45rem .65rem;border-radius:.65rem;background:transparent;color:var(--muted);font-weight:800;overflow-wrap:anywhere}.mode-bar button.active{background:var(--brand);color:#fff}.practice-grid{min-width:0;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(18rem,.7fr);align-items:start;gap:var(--space);margin-top:var(--space)}.panel{padding:clamp(.9rem,1.4vw,1.25rem)}.panel-heading{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.panel-heading h2,.history-heading h3{margin:0;color:#18334e}.panel-heading h2{font-size:1.05rem}.panel-heading p,.text-practice-card p,.muted{color:var(--muted);font-size:.78rem}.panel-heading p{margin:.15rem 0 0}.keyword-panel,.guide-panel,.text-practice-card{min-width:0;margin-top:.85rem;padding:.75rem;border:1px solid #cbdceb;border-radius:.75rem;background:#f5f9fd}.keyword-panel>strong,.guide-panel>strong,.text-practice-card>strong{color:#294963;font-size:.8rem}.keyword-chips{min-width:0;display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.keyword-chip{max-width:100%;padding:.3rem .55rem;border:1px solid #afcbe1;border-radius:999px;background:#fff;color:#294963;font-size:.75rem;font-weight:800;overflow-wrap:anywhere}.keyword-chip.matched{border-color:#77b9a9;background:#e9f8f4;color:#135c52}.guide-panel p{margin:.35rem 0 0;color:#38536d;white-space:pre-wrap}.answer-label{display:block;margin-top:.9rem;color:#294963;font-size:.8rem;font-weight:800}#answerInput{width:100%;min-width:0;min-height:clamp(13rem,30dvh,24rem);margin-top:.35rem;padding:.9rem;resize:vertical;border:1px solid #b8c8d8;border-radius:.8rem;background:#fff;color:#152a3e;font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.75}#answerInput::placeholder{color:#8596a8}.answer-footer{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-top:.55rem}#answerMetrics{color:var(--muted);font-size:.75rem}.evaluation-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;margin-top:1rem;padding:.8rem;border:1px solid #d1ded8;border-radius:.8rem;background:#f3faf7}.score-ring{width:4.3rem;height:4.3rem;display:grid;place-content:center;border:.4rem solid #b8d8cf;border-radius:50%;background:#fff;text-align:center}.score-ring strong{font-size:1.25rem;line-height:1}.score-ring span{color:var(--muted);font-size:.65rem}.evaluation-card p,.evaluation-card ul{margin:.25rem 0 0;color:#465e56;font-size:.78rem}.evaluation-card ul{padding-left:1.15rem}.recording-timer{flex:0 0 auto;color:var(--danger);font-variant-numeric:tabular-nums;font-weight:800}.level-meter{height:.65rem;margin-top:1rem;overflow:hidden;border-radius:999px;background:#dfe7ef}.level-meter span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f9d85,#d9a441,#c94848);transition:width 70ms linear}.record-actions,.button-row{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin-top:.75rem}.record-button{min-height:var(--control-height);padding:.55rem .9rem;border:1px solid #b53434;border-radius:.65rem;background:#b53434;color:#fff;font-weight:800}.record-button.recording{animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{50%{box-shadow:0 0 0 .35rem #b534342e}}.text-practice-card p{margin:.3rem 0 0}.history-heading{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.history-heading h3{font-size:.95rem}.history-heading span{color:var(--muted);font-size:.75rem}.recording-list{min-width:0;display:grid;gap:.5rem;margin-top:.55rem}.recording-item{min-width:0;display:grid;gap:.45rem;padding:.65rem;border:1px solid var(--line);border-radius:.7rem;background:#fbfcfe}.recording-item header{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.recording-item small{min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recording-item audio{width:100%;min-width:0;height:2.5rem}.recording-item button{min-height:1.9rem;padding:.2rem .45rem;border-radius:.45rem;background:#f3e9e9;color:var(--danger);font-size:.72rem;font-weight:700}.empty-state{padding:1rem;border:1px dashed #bbc9d7;border-radius:.7rem;color:var(--muted);font-size:.78rem;text-align:center}.question-navigation{min-width:0;display:grid;grid-template-columns:minmax(7rem,auto) minmax(0,1fr) minmax(7rem,auto);align-items:center;gap:.65rem;margin-top:var(--space);padding:.65rem}.question-navigation span{min-width:0;color:var(--muted);font-size:.8rem;text-align:center}.app-dialog{width:min(46rem,calc(100vw - 1.5rem));max-width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem);padding:0;overflow:hidden;border:0;border-radius:1rem;background:transparent;box-shadow:var(--shadow)}.app-dialog::backdrop{background:#0e1d2b7f;backdrop-filter:blur(2px)}.dialog-shell{max-height:calc(100dvh - 1.5rem);display:grid;grid-template-rows:auto minmax(0,1fr) auto;margin:0;border:1px solid var(--line);border-radius:1rem;background:#fff}.dialog-shell>header,.dialog-shell>footer{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem}.dialog-shell>header{border-bottom:1px solid var(--line)}.dialog-shell>footer{justify-content:flex-end;border-top:1px solid var(--line)}.dialog-shell h2,.dialog-shell h3,.dialog-shell p{margin:0}.dialog-shell h2{font-size:1.1rem}.dialog-shell header p,.dialog-content section>p{color:var(--muted);font-size:.78rem}.dialog-content{min-width:0;overflow-y:auto;padding:1rem}.dialog-content section+section{margin-top:1.15rem;padding-top:1rem;border-top:1px solid var(--line)}.dialog-content h3{margin-bottom:.45rem;font-size:.9rem}.settings-grid{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.settings-grid label,.form-stack label{min-width:0;display:grid;gap:.3rem}.file-button{position:relative;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.support-list{margin:0;padding-left:1.2rem;color:#41556a;font-size:.8rem}.compact-dialog{width:min(38rem,calc(100vw - 1.5rem))}.form-stack{display:grid;gap:.8rem}.form-stack textarea{min-height:5.5rem;padding:.65rem;resize:vertical}.toast{position:fixed;z-index:200;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));max-width:min(38rem,calc(100vw - 2rem));transform:translate(-50%);padding:.7rem 1rem;border-radius:.7rem;background:#102b43;color:#fff;box-shadow:var(--shadow);font-size:.82rem;text-align:center}.print-root{display:none}@media(max-width:78rem){.question-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.question-actions>button{width:100%}}@media(max-width:68rem){.practice-grid{grid-template-columns:minmax(0,1fr)}.recording-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.recording-workspace>.panel-heading,.recording-workspace>.level-meter,.recording-workspace>.record-actions,.recording-workspace>.muted{grid-column:1}.recording-workspace>.text-practice-card,.recording-workspace>.history-heading,.recording-workspace>.recording-list{grid-column:2}}@media(max-width:56rem){.app-layout{grid-template-columns:minmax(0,1fr)}.question-sidebar{position:fixed;z-index:80;top:0;left:0;width:min(88vw,21rem);height:100dvh;transform:translate(-105%);transition:transform .18s ease;box-shadow:var(--shadow)}body.sidebar-open{overflow:hidden}body.sidebar-open .question-sidebar{transform:translate(0)}.sidebar-backdrop{position:fixed;z-index:70;inset:0;display:block;visibility:hidden;background:#0d1f2f7a;opacity:0;transition:opacity .18s ease,visibility .18s ease}body.sidebar-open .sidebar-backdrop{visibility:visible;opacity:1}.recording-workspace{display:block}.question-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.voice-select-field{grid-column:span 2}.brand span{display:none}}@media(max-width:42rem){.app-header{min-height:3.75rem;gap:.45rem;padding-inline:.55rem}.brand img{width:30px;height:30px}.brand strong{font-size:.9rem}.header-actions .status-badge,#installBtn{display:none}.header-actions .secondary-button{min-width:2.65rem;width:2.65rem;padding:0;overflow:hidden;font-size:0}.header-actions .secondary-button:before{content:"\2699";font-size:1.1rem}.privacy-notice{align-items:flex-start;text-align:left}.privacy-notice strong{display:none}.practice-main{padding:.55rem}.question-card,.panel{border-radius:.8rem}.question-actions,.settings-grid{grid-template-columns:minmax(0,1fr)}.voice-select-field{grid-column:auto}.mode-bar{grid-template-columns:minmax(0,1fr)}.mode-bar button{min-height:2.35rem}.panel-heading{align-items:center}.panel-heading #showGuideBtn{min-width:2.65rem;max-width:7.5rem;padding-inline:.55rem;font-size:.75rem}.evaluation-card{grid-template-columns:minmax(0,1fr)}.score-ring{width:3.8rem;height:3.8rem}.question-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}.question-navigation span{grid-column:1 / -1;grid-row:1}.question-navigation button{grid-row:2}.app-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.dialog-shell{height:100dvh;max-height:100dvh;border-radius:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{@page{size:A4;margin:11mm}body{min-width:0;background:#fff;color:#000}body>:not(.print-root){display:none!important}.print-root{display:block;color:#000;font-family:Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:9.5pt;line-height:1.45}.print-root h1{margin:0 0 5mm;font-size:16pt}.print-question{break-inside:avoid;margin:0 0 5mm;padding:0 0 4mm;border-bottom:.2mm solid #999}.print-question h2{margin:0 0 1.5mm;color:#000;font-size:11pt}.print-question p{margin:1mm 0;color:#000;white-space:pre-wrap}.print-keywords{font-weight:700}}
