@font-face{font-family:바탕;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:Batang;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:새바탕;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:한컴바탕;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:함초롬바탕;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:함초롱바탕;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:HY신명조;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:신명조;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:휴먼명조;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:명조;src:url(/fonts/NotoSerifKR-Regular.woff2) format("woff2")}@font-face{font-family:HY견명조;src:url(/fonts/NotoSerifKR-Bold.woff2) format("woff2")}@font-face{font-family:HYMyeongJo-Extra;src:url(/fonts/NotoSerifKR-Bold.woff2) format("woff2")}@font-face{font-family:돋움;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:Dotum;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:새돋움;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:한컴돋움;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:함초롬돋움;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:함초롱돋움;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:굴림;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:Gulim;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:새굴림;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:HY중고딕;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:중고딕;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:HY그래픽;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:HY그래픽M;src:url(/fonts/NotoSansKR-Regular.woff2) format("woff2")}@font-face{font-family:HY견고딕;src:url(/fonts/NotoSansKR-Bold.woff2) format("woff2")}@font-face{font-family:HYGothic-Extra;src:url(/fonts/NotoSansKR-Bold.woff2) format("woff2")}@font-face{font-family:견고딕;src:url(/fonts/NotoSansKR-Bold.woff2) format("woff2")}@font-face{font-family:HY헤드라인M;src:url(/fonts/NotoSansKR-Bold.woff2) format("woff2")}@font-face{font-family:HYHeadLine M;src:url(/fonts/NotoSansKR-Bold.woff2) format("woff2")}@font-face{font-family:양재튼튼체B;src:url(/fonts/NotoSansKR-Bold.woff2) format("woff2")}@font-face{font-family:돋움체;src:url(/fonts/D2Coding-Regular.woff2) format("woff2")}@font-face{font-family:굴림체;src:url(/fonts/D2Coding-Regular.woff2) format("woff2")}@font-face{font-family:바탕체;src:url(/fonts/D2Coding-Regular.woff2) format("woff2")}@font-face{font-family:궁서;src:url(/fonts/GowunBatang-Regular.woff2) format("woff2")}@font-face{font-family:궁서체;src:url(/fonts/GowunBatang-Regular.woff2) format("woff2")}@font-face{font-family:새궁서;src:url(/fonts/GowunBatang-Regular.woff2) format("woff2")}@font-face{font-family:맑은 고딕;src:url(/fonts/Pretendard-Regular.woff2) format("woff2")}@font-face{font-family:Malgun Gothic;src:url(/fonts/Pretendard-Regular.woff2) format("woff2")}@font-face{font-family:"Latin Modern Math";src:url(/fonts/LatinModernMath-Regular.woff2) format("woff2")}:root{color-scheme:only light;--bg: #f6f7fb;--surface: #ffffff;--ink: #1c1e26;--ink-soft: #5b5f6e;--line: #e3e5ee;--accent: #4f46e5;--accent-soft: #eef0ff;--danger: #d33;--radius: 12px;--shadow: 0 1px 3px rgb(20 22 40 / 8%), 0 8px 24px rgb(20 22 40 / 6%);font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}button{font:inherit;cursor:pointer}input,textarea{font:inherit;color:inherit}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.navbar{display:flex;align-items:center;gap:16px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;color:var(--ink);text-decoration:none}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:16px}.navbar-sub{color:var(--ink-soft);font-size:13px}.home{flex:1;min-height:0;overflow-y:auto;max-width:980px;width:100%;margin:0 auto;padding:40px 24px 80px}.hero h1{font-size:34px;line-height:1.3;margin:0 0 12px;letter-spacing:-.5px}.hero h1 em{color:var(--accent);font-style:normal}.hero p{color:var(--ink-soft);max-width:640px;margin:0 0 28px}.dropzone{border:2px dashed #c6c9dd;border-radius:var(--radius);background:var(--surface);padding:48px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone-active{border-color:var(--accent);background:var(--accent-soft)}.dropzone-icon{font-size:34px;color:var(--accent)}.dropzone-title{font-size:17px;font-weight:600;margin-top:6px}.dropzone-sub{color:var(--ink-soft);font-size:13px;margin-top:4px}.dropzone-loading{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:600}.spinner{width:18px;height:18px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.home-error{margin-top:16px;padding:12px 16px;border-radius:8px;background:#fdecec;color:#a02525;font-size:14px}.blank-row{display:flex;gap:10px;margin:26px 0 0;flex-wrap:wrap;justify-content:center}.blank-btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 14px;font-size:14px;color:var(--ink)}.blank-btn:hover{border-color:var(--accent);color:var(--accent)}.format-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;justify-content:center}.format-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 13px;font-size:12.5px;color:var(--ink-soft)}.format-chip b{color:var(--ink);margin-right:7px;font-weight:700}.workspace{flex:1;display:flex;flex-direction:column;min-height:0}.ws-header{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.ws-filename{font-size:15px;margin:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:16px 20px 24px}.ws-body>*{flex:1;min-height:0}.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 14px;font-size:14px;color:var(--ink);text-decoration:none}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#4338ca;color:#fff}.mode-tabs{display:flex;gap:2px;padding:3px;background:var(--bg);border:1px solid var(--line);border-radius:9px}.mode-tab{border:0;background:transparent;border-radius:7px;padding:4px 12px;font-size:13px;color:var(--ink-soft)}.mode-tab-active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:var(--shadow)}.format-badge{flex:none;font-size:11px;font-weight:700;letter-spacing:.4px;padding:3px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent)}.ws-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:10px}.toolbar-spacer{flex:1}.toolbar-label{color:var(--ink-soft);font-size:13px}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 13px;font-size:13px;color:var(--ink)}.chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chip:disabled{opacity:.5;cursor:default}.chip-active{background:var(--accent);border-color:var(--accent);color:#fff}.chip-active:hover:not(:disabled){color:#fff}.ws-error{padding:10px 14px;border-radius:8px;margin-bottom:10px;background:#fdecec;color:#a02525;font-size:13px}.ws-hint{color:var(--ink-soft);font-size:12px;margin:8px 0 0}.convert-menu{position:relative;display:flex;align-items:center;gap:10px}.convert-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:260px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.convert-ai{display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}.convert-ai-off{color:var(--ink-soft)}.convert-item{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;border:0;background:none;border-radius:8px;padding:8px 10px;font-size:14px;color:var(--ink)}.convert-item:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.convert-item:disabled{opacity:.5}.convert-item-all{font-weight:600;color:var(--accent);border-bottom:1px solid var(--line);border-radius:8px 8px 0 0;margin-bottom:4px}.convert-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;background:var(--accent);color:#fff}.convert-status{font-size:12px;color:var(--ink-soft);max-width:260px}.md-workspace{display:flex;flex-direction:column;min-height:0}.md-panes{flex:1;min-height:0;display:grid;gap:14px}.md-panes-split{grid-template-columns:1fr 1fr}.md-panes-edit,.md-panes-preview{grid-template-columns:1fr}.md-editor{width:100%;height:100%;min-height:320px;resize:none;border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:var(--surface);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;line-height:1.7}.md-editor:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.md-preview{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);padding:18px 26px;background:var(--surface)}.prose h1,.prose h2,.prose h3{line-height:1.35}.prose table{border-collapse:collapse}.prose th,.prose td{border:1px solid var(--line);padding:6px 12px}.prose code{background:var(--accent-soft);padding:1px 5px;border-radius:4px;font-size:.9em}.prose blockquote{border-left:3px solid var(--accent);margin-left:0;padding-left:14px;color:var(--ink-soft)}.sheet-workspace{display:flex;flex-direction:column;min-height:0}.sheet-scroll{flex:1;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.sheet-grid{border-collapse:collapse;min-width:100%}.sheet-grid th,.sheet-grid td{border:1px solid var(--line);padding:0}.sheet-grid thead th{background:var(--bg);font-size:12px;font-weight:600;color:var(--ink-soft);padding:6px 10px;position:sticky;top:0;z-index:2}.sheet-rowhead{background:var(--bg);font-size:12px;font-weight:600;color:var(--ink-soft);padding:0 10px;text-align:center;min-width:40px}.sheet-grid td input{border:0;width:100%;min-width:96px;padding:6px 10px;font-size:13px;background:transparent}.sheet-grid td input:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}.sheet-rowdel{border:0!important}.sheet-rowdel button{border:0;background:none;color:var(--ink-soft);font-size:14px;padding:0 8px}.sheet-rowdel button:hover{color:var(--danger)}.pdf-workspace{display:flex;flex-direction:column;min-height:0}.pdf-panes{flex:1;min-height:0;display:flex;gap:14px}.pdf-pages{flex:1;overflow:auto;text-align:center;background:#e8eaf2;border-radius:var(--radius);padding:20px}.pdf-page{display:block;margin:0 auto 16px;background:#fff;box-shadow:var(--shadow);border-radius:2px;max-width:100%}.pdf-text-panel{flex:0 0 380px;min-height:0}.pptx-workspace{display:flex;gap:16px;min-height:0}.pptx-thumbs{flex:0 0 200px;overflow:auto;display:flex;flex-direction:column;gap:8px}.pptx-thumb{display:flex;gap:8px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:10px 12px;font-size:13px}.pptx-thumb-active{border-color:var(--accent);background:var(--accent-soft)}.pptx-thumb-num{color:var(--ink-soft);font-size:11px;font-weight:700}.pptx-thumb-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pptx-thumb-add{justify-content:center;color:var(--accent);border-style:dashed}.pptx-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.pptx-canvas{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:16 / 9;max-height:62vh;padding:36px 44px;display:flex;flex-direction:column}.pptx-title-input{border:0;font-size:30px;font-weight:800;width:100%;background:transparent;letter-spacing:-.5px}.pptx-title-input:focus{outline:none}.pptx-divider{height:3px;background:var(--accent);border-radius:2px;margin:10px 0 18px;width:100%}.pptx-bullets-input{flex:1;border:0;resize:none;background:transparent;font-size:17px;line-height:1.9}.pptx-bullets-input:focus{outline:none}.pptx-actions{display:flex;justify-content:flex-end}.word-workspace{display:flex;flex-direction:column;min-height:0}.word-paper-wrap{flex:1;overflow:auto;background:#e8eaf2;border-radius:var(--radius);padding:28px 16px}.word-paper{max-width:820px;min-height:100%;margin:0 auto;background:#fff;box-shadow:var(--shadow);border-radius:4px;padding:64px 72px;outline:none}.html-editor{display:flex;flex-direction:column;min-height:0}.html-editor .word-paper-wrap{flex:1}.word-paper table{border-collapse:collapse;margin:12px 0}.word-paper th,.word-paper td{border:1px solid #b9bccd;padding:6px 12px;min-width:48px}.word-paper th{background:var(--accent-soft)}.word-paper img{max-width:100%}.word-paper img.hwp-eq{vertical-align:middle;margin:0 2px;border-radius:3px}.word-paper img.hwp-eq:hover{outline:2px solid var(--accent-soft)}.word-paper .hwp-tab{white-space:pre}.word-paper .hwp-textbox{display:inline-block;border:1px solid #9aa0b8;border-radius:4px;padding:1px 10px;margin:0 3px;background:#fafbff}.word-paper table.hwp-table td{vertical-align:top}.hwp-workspace{display:flex;flex-direction:column;min-height:0}.hwp-panes{flex:1;min-height:0;display:flex;gap:14px}.hwp-pages{flex:1;overflow:auto;text-align:center;background:#e8eaf2;border-radius:var(--radius);padding:20px}.hwp-page{display:inline-block;margin:0 auto 16px;background:#fff;box-shadow:var(--shadow);max-width:100%}.hwp-page svg{max-width:100%;height:auto;display:block}.hwp-para-panel{flex:0 0 380px;overflow:auto;display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px}.hwp-para-input{width:100%;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.6}.hwp-para-input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.hwp-table-grid{border-collapse:collapse;width:100%;border:1px solid var(--accent);border-radius:4px}.hwp-table-grid td{border:1px solid var(--line);padding:0;vertical-align:top}.hwp-table-void{background:var(--bg)}.hwp-cell-input{display:block;width:100%;border:0;resize:none;padding:6px 8px;font-size:12px;line-height:1.5;background:transparent}.hwp-cell-input:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}@media(max-width:860px){.md-panes-split{grid-template-columns:1fr}.pdf-panes,.hwp-panes,.pptx-workspace{flex-direction:column}.pdf-text-panel,.hwp-para-panel{flex:0 0 240px}.pptx-thumbs{flex:none;flex-direction:row}.navbar-sub{display:none}}.chip-primary{background:var(--accent);border-color:var(--accent);color:#fff}.chip-primary:hover:not(:disabled){color:#fff;opacity:.92}.chip-danger{border-color:var(--danger);color:var(--danger)}.toolbar-sep{width:1px;height:20px;background:var(--line);margin:0 4px}.pptx-canvas-wrap{flex:1;overflow:hidden;padding:12px;display:flex;justify-content:center;align-items:center}.pptx-slide{position:relative;flex:none;box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden}.pptx-slide-ro{pointer-events:none;border-radius:4px}.pptx-thumb .pptx-slide{margin-top:4px}.pptx-sh{position:absolute}.pptx-sh-img{object-fit:contain}.pptx-sh-table{border:1px dashed #b6bacb;color:#8a8fa3;font-size:11px;display:flex;align-items:center;justify-content:center}.pptx-sh-text{display:flex;flex-direction:column;overflow:hidden}.pptx-sh-editable:hover{outline:1px dashed var(--accent);cursor:move}.pptx-sh-editing{outline:2px solid var(--accent);overflow:visible;z-index:5}.pptx-sh-body{min-height:1em}.pptx-sh-editing .pptx-sh-body{background:#fff;cursor:text}.pptx-sh-body:focus{outline:none}.pptx-para{line-height:1.25;white-space:pre-wrap;word-break:break-word}.pdf-page-wrap{position:relative;margin:0 auto 18px;box-shadow:var(--shadow);background:#fff}.pdf-page-crosshair{cursor:crosshair}.pdf-page-wrap .pdf-page{display:block}.pdf-annot{position:absolute}.pdf-annot-hl{background:#ffeb3b66;mix-blend-mode:multiply}.pdf-annot-white{background:#fff;box-shadow:0 0 0 1px #0000000f}.pdf-annot-text{color:#d91c1c;line-height:1.35;white-space:pre-wrap;min-width:20px;cursor:move}.pdf-annot-selected{outline:2px solid var(--accent)}.pdf-annot-editing{border:2px solid var(--accent);background:#ffffffeb;resize:both;padding:0;margin:0;overflow:auto}.hwp-page{position:relative}.hwp-page-editable{cursor:text}.hwp-page-editable:hover{outline:2px solid var(--accent-soft)}.hwp-float-editor{position:absolute;z-index:10;width:330px;background:var(--surface);border:1px solid var(--accent);border-radius:10px;box-shadow:var(--shadow);padding:8px}.hwp-float-editor textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 8px;resize:vertical;font-size:13px}.hwp-float-actions{display:flex;align-items:center;gap:6px;margin-top:6px}.hwp-float-kind{font-size:11px;color:var(--ink-soft);font-weight:700}.hwp-float-rowheight{display:flex;align-items:center;gap:5px;margin-top:6px}.hwp-float-mm{width:52px;text-align:right;border:1px solid var(--line);border-radius:6px;padding:3px 6px;font-size:12px}.hwp-float-unit{font-size:11px;color:var(--ink-soft)}.hwp-ai-chat{flex:0 0 320px;min-height:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.hwp-ai-chat-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px}.hwp-ai-chat-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:12px}.hwp-ai-chat-list .ws-hint{margin:0;line-height:1.6}.hwp-ai-msg{max-width:92%;padding:8px 11px;border-radius:12px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.hwp-ai-msg-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.hwp-ai-msg-assistant{align-self:flex-start;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:4px}.hwp-ai-msg-busy{color:var(--ink-soft)}.hwp-ai-attach{display:flex;align-items:center;gap:6px;margin:0 12px 6px;padding:5px 10px;background:var(--accent-soft);color:var(--accent);border-radius:8px;font-size:12px}.hwp-ai-attach-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hwp-ai-attach-remove{border:0;background:none;color:var(--accent);font-size:15px;line-height:1;padding:0 2px}.hwp-ai-chat-input{display:flex;align-items:flex-end;gap:6px;padding:10px 12px;border-top:1px solid var(--line)}.hwp-ai-chat-input textarea{flex:1;min-width:0;resize:none;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;line-height:1.45}.hwp-ai-chat-input textarea:focus{outline:none;border-color:var(--accent)}.hwp-full-body{flex:1;min-height:0;display:flex;gap:12px}.hwp-full-body .hwp-editor-frame{flex:1;min-width:0}.hwp-full-body .hwp-ai-chat{margin:0}.sheet-formula-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--surface)}.sheet-cell-ref{min-width:52px;text-align:center;font-size:12px;font-weight:700;color:var(--ink-soft);border:1px solid var(--line);border-radius:6px;padding:3px 6px;background:var(--bg)}.sheet-formula-input{flex:1;border:1px solid var(--line);border-radius:6px;padding:4px 10px;font-size:13px}.sheet-formula-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.sheet-head-sel{background:var(--accent-soft)!important;color:var(--accent)}.sheet-cell-sel input{background:var(--accent-soft)}.sheet-tabs{display:flex;gap:2px;padding:4px 8px 6px;border-top:1px solid var(--line);background:var(--surface)}.sheet-tab{border:1px solid var(--line);border-radius:6px 6px 0 0;background:var(--bg);padding:3px 12px;font-size:12.5px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px}.sheet-tab-active{background:var(--surface);color:var(--accent);font-weight:700;border-color:var(--accent)}.sheet-tab-add{color:var(--accent);font-weight:700}.sheet-tab-x{color:var(--ink-soft)}.sheet-tab-x:hover{color:var(--danger)}.word-style-select{border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:4px 10px;font-size:12.5px;color:var(--ink)}.hwp-full-editor{display:flex;flex-direction:column;min-height:0;flex:1}.hwp-editor-frame{flex:1;min-height:0;width:100%;border:0;background:#fff}.pptx-tbl{border-collapse:collapse;table-layout:fixed}.pptx-tbl td{border:1px solid #cdd1e0;padding:2px 6px;vertical-align:middle;overflow:hidden}.pptx-sh-selected{outline:2px solid var(--accent)}.pptx-sh-imgwrap{overflow:visible}.pptx-sh-img-inner{width:100%;height:100%;object-fit:fill;pointer-events:none;display:block}.pptx-handle{position:absolute;width:10px;height:10px;z-index:6;background:#fff;border:2px solid var(--accent);border-radius:50%}.pptx-handle-nw{left:-6px;top:-6px;cursor:nwse-resize}.pptx-handle-ne{right:-6px;top:-6px;cursor:nesw-resize}.pptx-handle-sw{left:-6px;bottom:-6px;cursor:nesw-resize}.pptx-handle-se{right:-6px;bottom:-6px;cursor:nwse-resize}.word-preview-wrap{flex:1;min-height:0;overflow:auto;background:#e8eaf2;border-radius:var(--radius);padding:18px 0}.word-preview .docx-wrapper{background:transparent;padding:0}.word-preview .docx-wrapper>section.docx{box-shadow:var(--shadow);margin-bottom:18px}.word-color-input{width:30px;height:28px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer}.ribbon{--office: #4f46e5;--office-soft: #eef0ff;border-bottom:1px solid var(--line);background:var(--surface);border-radius:var(--radius) var(--radius) 0 0}.ribbon[data-app=word]{--office: #2b579a;--office-soft: #e8eefa}.ribbon[data-app=excel]{--office: #217346;--office-soft: #e6f2ec}.ribbon[data-app=ppt]{--office: #b7472a;--office-soft: #fbeae5}.ribbon-tabs{display:flex;align-items:stretch;gap:2px;padding:0 8px;background:var(--office);border-radius:var(--radius) var(--radius) 0 0}.ribbon-apptab{display:flex;align-items:center;padding:0 14px;color:#fff;font-weight:800;font-size:14px;letter-spacing:.5px}.ribbon-tab{border:0;background:transparent;color:#ffffffe0;padding:8px 16px;font-size:13.5px;border-radius:6px 6px 0 0}.ribbon-tab:hover{background:#ffffff24;color:#fff}.ribbon-tab-active{background:var(--surface);color:var(--office);font-weight:700}.ribbon-tab-active:hover{background:var(--surface);color:var(--office)}.ribbon-tabs .toolbar-spacer{flex:1}.ribbon-save{align-self:center;margin:4px 6px;border:1px solid rgb(255 255 255 / 45%);background:#ffffff1f;color:#fff;border-radius:6px;padding:5px 14px;font-size:13px;font-weight:600}.ribbon-save:hover:not(:disabled){background:#fff;color:var(--office)}.ribbon-save:disabled{opacity:.5}.ribbon-band{display:flex;align-items:stretch;gap:2px;padding:6px 10px 4px;overflow-x:auto;min-height:86px}.rb-group{display:flex;flex-direction:column;padding:0 10px;border-right:1px solid var(--line)}.rb-group:last-child{border-right:0}.rb-group-content{flex:1;display:flex;align-items:center;gap:3px}.rb-group-label{text-align:center;font-size:10.5px;color:var(--ink-soft);padding:3px 0 1px}.rb-col{display:flex;flex-direction:column;gap:2px}.rb-row{display:flex;align-items:center;gap:3px}.rb-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:transparent;border-radius:5px;padding:4px 7px;font-size:12.5px;color:var(--ink);min-height:26px}.rb-btn:hover:not(:disabled){background:var(--office-soft);border-color:var(--office)}.rb-btn:disabled{opacity:.4;cursor:default}.rb-btn-active{background:var(--office-soft);border-color:var(--office);color:var(--office)}.rb-btn-danger:hover:not(:disabled){background:#fdecec;border-color:var(--danger);color:var(--danger)}.rb-btn-icon{font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;min-width:16px}.rb-btn-lg{flex-direction:column;gap:4px;padding:6px 10px;min-width:56px;align-self:stretch;justify-content:center}.rb-btn-lg .rb-btn-icon{font-size:22px}.rb-btn-lg .rb-btn-label{font-size:11px;line-height:1.2;text-align:center;white-space:pre-line}.rb-select{border:1px solid var(--line);border-radius:5px;background:var(--surface);padding:3px 6px;font-size:12.5px;color:var(--ink);max-width:120px}.rb-select:hover{border-color:var(--office)}.rb-color{width:26px;height:24px;padding:1px;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer}.office-statusbar{--office: #4f46e5;display:flex;align-items:center;gap:16px;padding:3px 14px;font-size:11.5px;color:#fff;background:var(--office);border-radius:0 0 var(--radius) var(--radius)}.office-statusbar[data-app=word]{--office: #2b579a}.office-statusbar[data-app=excel]{--office: #217346}.office-statusbar[data-app=ppt]{--office: #b7472a}.office-statusbar .toolbar-spacer{flex:1}.office-frame{display:flex;flex-direction:column;min-height:0;flex:1}.office-frame>.office-body{flex:1;min-height:0;display:flex}.rb-note{font-size:11px;color:var(--ink-soft);line-height:1.5;padding:2px 4px}.sheet-fx{font-size:12px;font-style:italic;color:var(--ink-soft);font-weight:700}.ws-view-toggle{margin-left:auto;display:flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.ws-view-toggle button{border:0;background:transparent;padding:6px 14px;font-size:13px;color:var(--ink-soft)}.ws-view-toggle button+button{border-left:1px solid var(--line)}.ws-view-toggle .ws-view-active{background:var(--accent);color:#fff}.dj-frame{flex:1;min-height:0;display:flex;flex-direction:column}.dj-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--line);font-size:13px}.dj-select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-size:12.5px}.dj-check{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink-soft)}.dj-muted{color:var(--ink-soft);font-size:12.5px}.chip-sm{padding:3px 9px;font-size:12px}.dj-body{flex:1;min-height:0;display:flex}.dj-left{width:380px;min-width:300px;border-right:1px solid var(--line);background:var(--surface);overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.dj-panel-title{font-size:13px;font-weight:700;margin-top:6px}.dj-count{background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:1px 8px;font-size:11.5px;margin-left:4px}.dj-blocks{display:flex;flex-direction:column;gap:4px}.dj-block{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;background:var(--bg)}.dj-block-badge{flex:none;font-size:10.5px;font-weight:700;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin-top:2px}.dj-block-heading .dj-block-badge{color:var(--accent);border-color:var(--accent)}.dj-block-table .dj-block-badge{color:#217346;border-color:#21734655}.dj-block-text{white-space:pre-wrap;word-break:break-word;line-height:1.45}.dj-block-editable{cursor:text}.dj-block-editable:hover{background:#fff8d8;border-radius:4px}.dj-block-edit{flex:1;border:1px solid var(--accent);border-radius:6px;padding:4px 6px;font-size:12.5px;resize:vertical}.dj-blockref{font-size:10.5px;color:var(--ink-soft);margin-left:6px}.dj-issues{display:flex;flex-direction:column;gap:4px;font-size:12.5px}.dj-issue{display:flex;gap:7px;align-items:flex-start;padding:5px 8px;border-radius:7px;background:var(--bg)}.dj-issue-dot{flex:none;width:8px;height:8px;border-radius:50%;margin-top:6px}.dj-issue-info .dj-issue-dot{background:#7a8}.dj-issue-warn .dj-issue-dot{background:#e6a23c}.dj-issue-error .dj-issue-dot{background:var(--danger)}.dj-right{flex:1;min-width:0;display:flex;flex-direction:column}.dj-tabs{display:flex;gap:2px;padding:8px 14px 0;background:var(--surface);border-bottom:1px solid var(--line)}.dj-tab{border:1px solid transparent;border-bottom:0;background:transparent;padding:7px 14px;font-size:13px;color:var(--ink-soft);border-radius:8px 8px 0 0}.dj-tab-active{background:var(--bg);border-color:var(--line);color:var(--ink);font-weight:600}.dj-tab-body{flex:1;min-height:0;overflow-y:auto;padding:18px 22px}.dj-info{max-width:760px}.dj-info-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dj-info-head h3{margin:0}.dj-doctype{background:var(--accent);color:#fff;border-radius:14px;padding:3px 12px;font-size:12.5px;font-weight:600}.dj-doctype-unknown{background:var(--line);color:var(--ink-soft)}.dj-summary{color:var(--ink-soft)}.dj-kv,.dj-fields{border-collapse:collapse;font-size:13px;margin:10px 0}.dj-kv th,.dj-fields th{text-align:left;padding:5px 14px 5px 0;color:var(--ink-soft);font-weight:600;white-space:nowrap;vertical-align:top}.dj-kv td,.dj-fields td{padding:5px 0}.dj-fields tr{border-bottom:1px solid var(--line)}.dj-field-missing td{color:var(--danger);font-weight:700}.dj-outline{margin:6px 0;padding-left:20px;font-size:13.5px}.dj-exam-head{font-size:13.5px;font-weight:600;margin-bottom:12px}.dj-questions{max-width:860px;display:flex;flex-direction:column;gap:12px}.dj-passage{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 10px 10px 0;padding:10px 14px;margin-top:8px;font-size:13px}.dj-passage-label{font-weight:700;margin-bottom:4px}.dj-passage-body{white-space:pre-wrap;color:var(--ink-soft);max-height:220px;overflow-y:auto}.dj-q{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:8px}.dj-q-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.dj-q-num{font-weight:800;color:var(--accent);font-size:14px}.dj-q-type{font-size:11px;font-weight:700;border-radius:5px;padding:1px 7px;border:1px solid var(--line);color:var(--ink-soft)}.dj-q-type-choice{color:#2b579a;border-color:#2b579a55}.dj-q-type-essay{color:#b7472a;border-color:#b7472a55}.dj-q-pts{font-size:12px;color:var(--ink-soft)}.dj-q-diff{font-size:11.5px;font-weight:700;border-radius:5px;padding:1px 7px}.dj-q-diff-하{background:#e5f6e9;color:#217346}.dj-q-diff-중{background:#fdf3e0;color:#b07f1a}.dj-q-diff-상{background:#fdeaea;color:#c0392b}.dj-q-stem{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13.5px;resize:vertical;background:var(--bg)}.dj-q-choices{display:flex;flex-direction:column;gap:4px;margin-top:6px}.dj-q-choice{display:flex;gap:8px;align-items:center;font-size:13px}.dj-q-choice input{flex:1;border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:13px;background:var(--bg)}.dj-q-meta{display:flex;flex-direction:column;gap:6px;margin-top:8px;font-size:12.5px}.dj-q-meta label{display:flex;gap:8px;align-items:flex-start;color:var(--ink-soft);font-weight:600}.dj-q-meta input,.dj-q-meta textarea{flex:1;border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:13px;font-weight:400;background:#fbfcf4;resize:vertical}.dj-q-diffreason{margin-top:6px;font-size:12.5px;color:var(--ink-soft)}.dj-cbt{max-width:780px}.dj-cbt-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;position:sticky;top:-18px;background:var(--bg);padding:8px 0;z-index:2;border-bottom:1px solid var(--line);margin-bottom:8px}.dj-cbt-score{font-weight:800;color:var(--accent)}.dj-cbt-q{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:10px}.dj-cbt-correct{border-color:#21734688}.dj-cbt-wrong{border-color:#c0392b88}.dj-cbt-stem{font-size:14px;margin-bottom:10px;white-space:pre-wrap}.dj-cbt-mark-o{color:#217346;font-weight:800;margin-left:8px}.dj-cbt-mark-x{color:#c0392b;font-weight:800;margin-left:8px}.dj-cbt-choices{display:flex;flex-direction:column;gap:6px}.dj-cbt-choice{display:flex;gap:10px;align-items:baseline;text-align:left;border:1px solid var(--line);border-radius:9px;background:var(--bg);padding:8px 12px;font-size:13.5px}.dj-cbt-choice:hover:not(:disabled){border-color:var(--accent)}.dj-cbt-choice-picked{border-color:var(--accent);background:var(--accent-soft)}.dj-cbt-choice-answer{border-color:#217346;background:#e5f6e9}.dj-cbt-answer-input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13.5px;resize:vertical}.dj-cbt-solution{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px;font-size:13px}.dj-cbt-expl{color:var(--ink-soft);white-space:pre-wrap;margin-top:4px}.dj-json{display:flex;flex-direction:column;height:100%}.dj-json-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dj-json-pre{flex:1;min-height:0;overflow:auto;margin:0;background:#14161f;color:#d5dae8;border-radius:10px;padding:14px;font-size:12px;line-height:1.5}.dj-empty{max-width:480px;margin:60px auto;text-align:center}.dj-format-dist{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-4px 0 12px}.dj-format-chip{font-size:11.5px;font-weight:700;border-radius:12px;padding:2px 10px;background:var(--accent-soft);color:var(--accent)}.dj-format-hard{background:#fdeee0;color:#c05621}.dj-q-hard{font-size:11px;font-weight:700;border-radius:5px;padding:1px 7px;background:#fdeee0;color:#c05621;border:1px solid #c0562144}.dj-q-converted{font-size:11px;font-weight:700;border-radius:5px;padding:1px 7px;background:#e5f6e9;color:#217346;border:1px solid #21734644}.dj-q-variant{margin-top:10px;border:1px solid #21734655;border-radius:10px;background:#f4faf5;padding:10px 12px;font-size:13px}.dj-q-variant-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.dj-q-variant-stem{white-space:pre-wrap;margin-bottom:6px}.dj-q-variant-choices{display:flex;flex-direction:column;gap:2px;color:var(--ink-soft);margin-bottom:6px}.dj-q-variant-note{font-size:12px;color:#217346;margin-top:4px}.dj-cbt-hard-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px dashed #c05621aa;background:#fdf6f0;color:#9c4a1c;border-radius:9px;padding:8px 12px;margin-bottom:10px;font-size:12.5px}.dj-cbt-multi-hint{font-size:11px;font-weight:700;color:#2b579a;border:1px solid #2b579a55;border-radius:5px;padding:1px 6px;margin-left:6px}.dj-exam-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dj-cbt-viewmode{display:flex;margin-left:10px;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface)}.dj-cbt-viewmode button{border:0;background:transparent;padding:4px 12px;font-size:12px;color:var(--ink-soft)}.dj-cbt-viewmode button+button{border-left:1px solid var(--line)}.dj-cbt-viewmode .dj-cbt-viewmode-active{background:var(--accent);color:#fff}.dj-cbt-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0 2px}.dj-cbt-dots{display:flex;gap:4px;flex-wrap:wrap}.dj-cbt-dot{min-width:30px;height:30px;padding:0 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:12px;color:var(--ink-soft)}.dj-cbt-dot:hover{border-color:var(--accent)}.dj-cbt-dot-done{background:var(--accent-soft);color:var(--accent);font-weight:700}.dj-cbt-dot-cur{border-color:var(--accent);outline:2px solid var(--accent-soft);color:var(--accent);font-weight:800}.dj-cbt-dot-o{background:#e5f6e9;border-color:#21734688;color:#217346}.dj-cbt-dot-x{background:#fdeaea;border-color:#c0392b88;color:#c0392b}.doc-viewer{display:flex;flex-direction:column;min-height:0;flex:1}.doc-viewer>.pdf-pages,.doc-viewer>.hwp-pages,.doc-viewer>.word-paper-wrap,.doc-viewer>.word-preview-wrap,.doc-viewer>.sheet-scroll{flex:1;min-height:0}.viewer-grid td{padding:6px 10px;font-size:13px;min-width:96px;white-space:pre-wrap}.viewer-deck{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:18px;background:#e8eaf2;border-radius:var(--radius);padding:24px}.viewer-slide{position:relative;width:min(860px,100%);aspect-ratio:16 / 9;background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow);padding:34px 44px;overflow:hidden}.viewer-slide h3{margin:0 0 14px;font-size:24px;letter-spacing:-.4px}.viewer-slide ul{margin:0;padding-left:22px;font-size:15px;line-height:1.9}.viewer-slide-num{position:absolute;right:14px;bottom:10px;font-size:11px;font-weight:700;color:var(--ink-soft)}.embed{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.embed-bar{display:flex;align-items:center;gap:10px;flex:none;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--line);font-size:13px}.embed-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.embed-mode{color:var(--ink-soft);font-size:12px}.embed-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 14px 14px}.embed-body>*{flex:1;min-height:0}.embed-center{margin:auto;text-align:center;color:var(--ink-soft);display:flex;align-items:center;gap:10px}.viewer-styled td{border:1px solid #eef0f6;font-size:12.5px;overflow:hidden}
