.fav-btn[data-v-92f716f7]{background:none;border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.8em;padding:3px 10px;border-radius:4px}.fav-btn[data-v-92f716f7]:hover,.learn-btn[data-v-92f716f7]{color:var(--accent);border-color:var(--accent)}.theme-switcher[data-v-92f716f7]{display:flex;align-items:center;gap:6px}.sw-label[data-v-92f716f7]{font-size:.8em;color:var(--text-2)}.theme-dot[data-v-92f716f7]{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:all .15s}.theme-dot[data-v-92f716f7]:hover{transform:scale(1.15)}.theme-dot.active[data-v-92f716f7]{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.theme-dot.light[data-v-92f716f7]{background:#f3f5f8}.theme-dot.warm[data-v-92f716f7]{background:#f6f1e7}.theme-dot.dark[data-v-92f716f7]{background:#2a3446}.theme-dot.night[data-v-92f716f7]{background:#12141c}.cat-header[data-v-eac0b2a5]{padding:12px 14px 4px;font-size:.8em;color:var(--text-2)}.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;-webkit-box-shadow:2px 3px 5px rgba(0,0,0,.2);-moz-box-shadow:2px 3px 5px rgba(0,0,0,.2);box-shadow:2px 3px 5px #0003;border-radius:3px;border:1px solid silver;background:#fff;font-size:90%;font-family:monospace;max-height:20em;overflow-y:auto;box-sizing:border-box}.CodeMirror-hint{margin:0;padding:0 4px;border-radius:2px;white-space:pre;color:#000;cursor:pointer}li.CodeMirror-hint-active{background:#08f;color:#fff}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:#49483efc}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:#49483efc}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0px}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-comment.cm-attribute{color:#97b757}.cm-s-monokai span.cm-comment.cm-def{color:#bc9262}.cm-s-monokai span.cm-comment.cm-tag{color:#bc6283}.cm-s-monokai span.cm-comment.cm-type{color:#5998a6}.cm-s-monokai span.cm-property,.cm-s-monokai span.cm-attribute{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-variable-3,.cm-s-monokai span.cm-type{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:solid thin #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:#ffffff1a}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:#ffffff1a}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:#ffffff1a}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-operator,.cm-s-dracula span.cm-keyword{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-variable-3,.cm-s-dracula span.cm-type{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:#ffffff1a}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:transparent}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:transparent}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.err-head[data-v-26785124]{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.ai-toggle[data-v-26785124]{cursor:pointer;font-size:.78em;color:var(--text-3);border:1px solid var(--border);border-radius:12px;padding:1px 10px;-webkit-user-select:none;user-select:none;flex-shrink:0}.ai-toggle[data-v-26785124]:hover{color:var(--accent);border-color:var(--accent)}.ai-toggle.on[data-v-26785124]{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.err-hints[data-v-26785124]{margin:4px 0 8px;display:flex;flex-direction:column;gap:4px}.err-hint[data-v-26785124]{display:flex;align-items:baseline;gap:8px;background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 30%,transparent);border-radius:5px;padding:5px 8px;font-size:.82em;line-height:1.5}.err-hint-line[data-v-26785124]{flex-shrink:0;font-weight:600;color:var(--warning)}.err-hint-text[data-v-26785124]{color:var(--text)}.err-ai-loading[data-v-26785124]{color:var(--text-2);font-size:.82em;margin:4px 0 8px}.err-ai[data-v-26785124]{margin:6px 0 8px;padding:8px 10px;background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:6px;font-size:.82em}.err-ai summary[data-v-26785124]{cursor:pointer;font-weight:600;color:var(--accent)}.err-ai-cached[data-v-26785124]{color:var(--success);font-weight:400;font-size:.8em;margin-left:4px}.err-ai .md-body[data-v-26785124]{margin-top:6px}.err-pre[data-v-26785124]{margin:0;font-family:Consolas,Courier New,monospace;font-size:.92em;white-space:pre-wrap;word-break:break-word}.err-pre[data-v-26785124] .ai-word-click{color:var(--accent);font-weight:600;cursor:pointer;border-radius:3px;padding:0 1px;transition:color .15s,background-color .15s}.err-pre[data-v-26785124] .ai-word-click:hover{color:#fff;background-color:var(--accent)}.editor-col[data-v-65cdb37a]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;background:var(--bg)}.editor-col[data-v-65cdb37a]:fullscreen{width:100%;height:100%;background:var(--bg)}.editor-header[data-v-65cdb37a]{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.tab-bar[data-v-65cdb37a]{display:flex;align-items:center;gap:2px;padding:6px 8px 0;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0}.tab[data-v-65cdb37a]{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg);border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;cursor:pointer;font-size:.8em;color:var(--text-2);white-space:nowrap;max-width:180px;-webkit-user-select:none;user-select:none}.tab[data-v-65cdb37a]:hover{color:var(--text);background:var(--surface-2)}.tab.active[data-v-65cdb37a]{color:var(--accent);background:var(--surface-2);border-color:var(--border)}.tab-icon[data-v-65cdb37a]{flex-shrink:0}.tab-title[data-v-65cdb37a]{overflow:hidden;text-overflow:ellipsis}.tab-close[data-v-65cdb37a]{font-size:.75em;color:var(--text-3);padding:0 3px;border-radius:3px;flex-shrink:0}.tab-close[data-v-65cdb37a]:hover{color:#fff;background:var(--accent)}.tab-new[data-v-65cdb37a]{background:none;border:1px dashed var(--border);color:var(--text-2);border-radius:6px 6px 0 0;cursor:pointer;font-size:1.1em;padding:1px 10px;flex-shrink:0}.tab-new[data-v-65cdb37a]:hover{color:var(--accent);border-color:var(--accent)}.header-left[data-v-65cdb37a]{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0}.title-input[data-v-65cdb37a]{background:transparent;border:1px solid transparent;color:var(--text);font-size:1em;padding:4px 8px;border-radius:4px;flex:1 1 160px;max-width:380px;min-width:80px}.title-input[data-v-65cdb37a]:focus{border-color:var(--border);background:var(--surface-2);outline:none}.title-input[data-v-65cdb37a]::placeholder{color:var(--text-3)}.info-toggle-btn[data-v-65cdb37a]{background:none;border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.8em;padding:4px 10px;border-radius:4px;flex-shrink:0}.info-toggle-btn[data-v-65cdb37a]:hover{color:var(--text);border-color:var(--text-3)}.toolbar[data-v-65cdb37a]{display:flex;align-items:center;gap:8px;flex-shrink:0}.more-wrap[data-v-65cdb37a]{position:relative;flex-shrink:0}.more-menu[data-v-65cdb37a]{position:absolute;right:0;top:calc(100% + 6px);min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px var(--shadow);padding:4px;z-index:50;display:flex;flex-direction:column;gap:2px}.more-item[data-v-65cdb37a]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 10px;background:none;border:none;border-radius:4px;color:var(--text);font-size:.85em;cursor:pointer;text-align:left;white-space:nowrap}.more-item[data-v-65cdb37a]:hover{background:var(--hover-bg);color:var(--accent)}.more-item kbd[data-v-65cdb37a]{font-family:Consolas,Monaco,monospace;font-size:.78em;color:var(--text-3);border:1px solid var(--border);border-radius:3px;padding:0 4px;background:var(--surface-2)}.more-item:hover kbd[data-v-65cdb37a]{color:var(--text-2)}.editor-area[data-v-65cdb37a]{flex:1;overflow:hidden}.editor-area[data-v-65cdb37a] .CodeMirror{height:100%;font-size:16px}.editor-area[data-v-65cdb37a] .CodeMirror,.editor-area[data-v-65cdb37a] .CodeMirror-gutters{background:var(--code-bg)!important;color:var(--text)}.editor-area[data-v-65cdb37a] .CodeMirror-gutters{border-right:1px solid var(--border)}.editor-area[data-v-65cdb37a] .CodeMirror-linenumber{color:var(--text-3)}.editor-area[data-v-65cdb37a] .CodeMirror-cursor{border-left-color:var(--accent)}.input-area[data-v-65cdb37a]{border-top:1px solid var(--border);padding:8px 16px;flex-shrink:0}.input-area label[data-v-65cdb37a]{font-size:.8em;color:var(--text-2);display:block;margin-bottom:2px}.input-area textarea[data-v-65cdb37a]{width:100%;height:60px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-family:Consolas,Courier New,monospace;font-size:.9em;resize:vertical}.tutor-on[data-v-65cdb37a],.ai-on[data-v-65cdb37a]{background:var(--accent)!important;color:#fff!important}.tutor-panel[data-v-df4e6486]{position:fixed;top:72px;right:16px;z-index:999;width:340px;max-height:calc(100vh - 96px);background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 30px var(--shadow);display:flex;flex-direction:column;overflow:hidden}.tutor-head[data-v-df4e6486]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}.tutor-title[data-v-df4e6486]{color:var(--accent);font-size:.9em;font-weight:600}.tutor-close[data-v-df4e6486]{background:none;border:none;color:var(--text-2);font-size:1em;cursor:pointer}.tutor-close[data-v-df4e6486]:hover{color:var(--accent)}.tutor-head-actions[data-v-df4e6486]{display:flex;align-items:center;gap:6px}.tutor-mini-btn[data-v-df4e6486]{background:none;border:1px solid var(--border);color:var(--text-2);font-size:.85em;cursor:pointer;border-radius:4px;padding:0 7px;line-height:18px}.tutor-mini-btn[data-v-df4e6486]:hover{color:var(--accent);border-color:var(--accent)}.tutor-body[data-v-df4e6486]{padding:12px 14px;overflow-y:auto;font-size:.85em;color:var(--text)}.tutor-problem[data-v-df4e6486]{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:10px}.tutor-line[data-v-df4e6486]{margin:2px 0;word-break:break-all}.tutor-desc[data-v-df4e6486]{color:var(--text-2);font-size:.9em}.tutor-hint[data-v-df4e6486]{color:var(--text-2);margin:6px 0 12px;line-height:1.5}.tutor-status[data-v-df4e6486]{display:flex;align-items:center;gap:6px;margin-bottom:10px}.tutor-status .dot[data-v-df4e6486]{width:8px;height:8px;border-radius:50%;display:inline-block}.tutor-wait .dot[data-v-df4e6486]{background:var(--warning);animation:tutor-blink-df4e6486 1s infinite}.tutor-live .dot[data-v-df4e6486],.tutor-ok .dot[data-v-df4e6486]{background:var(--success)}@keyframes tutor-blink-df4e6486{50%{opacity:.3}}.tutor-share-tip[data-v-df4e6486]{color:var(--text-2);margin-bottom:8px;line-height:1.5}.tutor-devices[data-v-df4e6486]{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px}.tutor-dev[data-v-df4e6486]{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text);font-size:.82em}.tutor-select[data-v-df4e6486]{flex:1;min-width:0;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 6px;font-size:.82em}.tutor-select[data-v-df4e6486]:focus{outline:none;border-color:var(--accent)}.tutor-btn[data-v-df4e6486]{display:inline-block;border:none;border-radius:4px;cursor:pointer;font-size:.85em;font-weight:600;padding:8px 14px;transition:all .15s}.tutor-btn-main[data-v-df4e6486]{background:var(--accent);color:#fff;width:100%;margin-bottom:6px}.tutor-btn-main[data-v-df4e6486]:hover{background:var(--accent-2)}.tutor-btn-ghost[data-v-df4e6486]{background:var(--surface-2);color:var(--text);width:100%}.tutor-btn-ghost[data-v-df4e6486]:hover{background:var(--hover-bg)}.tutor-btn-mini[data-v-df4e6486]{background:var(--surface-2);color:var(--text);padding:4px 10px;margin-top:6px}.tutor-btn-mini[data-v-df4e6486]:hover{background:var(--hover-bg)}.tutor-btn[data-v-df4e6486]:disabled{background:var(--surface-2);color:var(--text-3);cursor:not-allowed}.tutor-row[data-v-df4e6486]{display:flex;gap:8px}.tutor-row .tutor-btn[data-v-df4e6486]{flex:1}.tutor-remote[data-v-df4e6486]{width:100%;max-height:180px;border-radius:6px;margin:10px 0;background:#000}.tutor-section-title[data-v-df4e6486]{color:var(--accent);font-size:.85em;font-weight:600;margin:10px 0 6px;border-top:1px solid var(--border);padding-top:8px}.tutor-material[data-v-df4e6486]{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:8px}.tutor-material-title[data-v-df4e6486]{color:var(--text);font-weight:600;margin-bottom:4px}.tutor-material-meta[data-v-df4e6486]{color:var(--text-2);font-size:.8em;margin-bottom:4px}.tutor-material-link[data-v-df4e6486]{color:var(--success);word-break:break-all;font-size:.9em}.tutor-material-video[data-v-df4e6486]{width:100%;border-radius:4px;margin:4px 0;background:#000}.tutor-material-img[data-v-df4e6486]{max-width:100%;border-radius:4px;margin:4px 0}.tutor-material-desc[data-v-df4e6486]{color:var(--text-2);margin-top:4px}.tutor-empty[data-v-df4e6486]{color:var(--text-3);text-align:center;padding:18px 0}.tutor-meta[data-v-df4e6486]{color:var(--text-3);font-size:.8em;margin-top:8px;text-align:right}.tutor-min[data-v-df4e6486]{position:fixed;top:72px;right:16px;z-index:999;display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 30px var(--shadow);padding:6px 8px;color:var(--text);font-size:.82em;max-width:calc(100vw - 32px)}.tutor-min-dot[data-v-df4e6486]{width:8px;height:8px;border-radius:50%;background:var(--success);flex:none}.tutor-min-text[data-v-df4e6486]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tutor-min-badge[data-v-df4e6486]{background:var(--accent);color:#fff;border-radius:10px;font-size:.75em;padding:0 7px;line-height:16px;flex:none}.ai-sec-title[data-v-0948830e]{margin:14px 0 6px;font-weight:600;color:var(--text);border-left:3px solid var(--accent);padding-left:8px}.ai-steps[data-v-0948830e]{margin:8px 0;padding-left:22px;color:var(--text)}.ai-steps li[data-v-0948830e]{margin:4px 0}.ai-example[data-v-0948830e]{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:8px 12px;margin:8px 0}.ai-example-title[data-v-0948830e]{color:var(--text-2);font-size:.8em;margin-bottom:4px}.ai-example-code[data-v-0948830e]{margin:0;font-family:Consolas,Courier New,monospace;font-size:.85em;white-space:pre-wrap;word-break:break-all;color:var(--text)}.ai-video a[data-v-0948830e]{color:var(--accent);text-decoration:none}.ai-video a[data-v-0948830e]:hover{text-decoration:underline}.ai-diag-panel[data-v-31611b79]{position:absolute;top:0;bottom:0;right:0;z-index:30;width:320px;min-width:300px;background:var(--surface);border-left:1px solid var(--border);box-shadow:-8px 0 24px var(--shadow);display:flex;flex-direction:column;overflow:hidden}.ai-drag[data-v-31611b79]{position:absolute;left:-2px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:40}.ai-drag[data-v-31611b79]:hover{background:color-mix(in srgb,var(--accent) 35%,transparent)}.ai-diag-header[data-v-31611b79]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);flex-shrink:0}.ai-diag-title[data-v-31611b79]{color:var(--accent);font-weight:600;font-size:.92em}.ai-diag-switch[data-v-31611b79]{cursor:pointer;font-size:.8em;color:var(--text-2);padding:2px 8px;border:1px solid var(--border);border-radius:4px;margin-left:auto}.ai-diag-switch[data-v-31611b79]:hover{color:var(--accent);border-color:var(--accent)}.ai-diag-close[data-v-31611b79]{background:none;border:none;color:var(--text-2);font-size:1em;cursor:pointer;line-height:1;padding:2px 6px}.ai-diag-close[data-v-31611b79]:hover{color:var(--accent)}.ai-diag-body[data-v-31611b79]{flex:1;overflow-y:auto;padding:12px 14px;font-size:.82em}.ai-diag-empty[data-v-31611b79]{color:var(--text-3);padding:10px 0;line-height:1.6}.ai-diag-error[data-v-31611b79]{color:var(--danger);padding:8px 0;line-height:1.6}.ai-quota[data-v-31611b79]{font-size:.8em;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border-soft);border-radius:6px;padding:6px 10px;margin-bottom:10px}.ai-quota.exempt[data-v-31611b79]{color:var(--success)}.ai-sec[data-v-31611b79]{margin-bottom:14px}.ai-sec-title[data-v-31611b79]{font-weight:600;color:var(--text);font-size:.88em;margin:4px 0 6px;border-left:3px solid var(--accent);padding-left:8px}.ai-suggestion[data-v-31611b79]{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:6px;padding:8px 10px;color:var(--text);line-height:1.6;margin-bottom:6px}.ai-kp-list[data-v-31611b79]{display:flex;flex-direction:column;gap:4px}.ai-kp-item[data-v-31611b79]{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border-soft);border-radius:6px;cursor:pointer;transition:all .12s;background:var(--surface)}.ai-kp-item[data-v-31611b79]:hover{border-color:var(--accent);background:var(--hover-bg)}.ai-kp-name[data-v-31611b79]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.ai-kp-score[data-v-31611b79]{color:var(--accent);font-size:.75em;flex:none}.ai-kp-tag[data-v-31611b79]{color:var(--text-3);font-size:.72em;flex:none;font-family:Consolas,Monaco,monospace}.quota-modal[data-v-92f89f8d]{width:min(480px,90vw);height:auto;min-height:0}.quota-body[data-v-92f89f8d]{padding:20px 24px;font-size:.95em;line-height:1.7;color:var(--text)}.quota-text[data-v-92f89f8d]{margin:6px 0}.quota-actions[data-v-92f89f8d]{display:flex;gap:10px;margin-top:18px}.wx-overlay[data-v-a68e4ef1]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px}.wx-inner[data-v-a68e4ef1]{background:#0f172a59}.wx-modal[data-v-a68e4ef1]{width:min(540px,92vw);max-height:82vh;min-height:200px;background:var(--surface);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 40px var(--shadow)}.wx-header[data-v-a68e4ef1]{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--border)}.wx-header h2[data-v-a68e4ef1]{font-size:1em;font-weight:600;color:var(--text);margin:0;display:flex;align-items:center;gap:6px}.wx-depth[data-v-a68e4ef1]{font-size:.72rem;font-weight:600;color:var(--text-3)}.wx-close[data-v-a68e4ef1]{margin-left:auto;background:none;border:none;color:var(--text-2);font-size:1.2em;cursor:pointer;line-height:1;padding:4px 8px;border-radius:4px}.wx-close[data-v-a68e4ef1]:hover{color:var(--accent);background:color-mix(in srgb,var(--text) 12%,transparent)}.wx-body[data-v-a68e4ef1]{flex:1;overflow-y:auto;padding:16px;font-size:.92em;line-height:1.7}.wx-state[data-v-a68e4ef1]{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 0;color:var(--text-2);font-size:.9em}.wx-error[data-v-a68e4ef1]{color:var(--danger)}.wx-spinner[data-v-a68e4ef1]{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:wx-spin-a68e4ef1 .8s linear infinite}@keyframes wx-spin-a68e4ef1{to{transform:rotate(360deg)}}.wx-word[data-v-a68e4ef1]{font-size:1.7rem;font-weight:800;color:var(--accent);margin-bottom:12px;text-transform:capitalize;cursor:pointer}.wx-row[data-v-a68e4ef1]{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;line-height:1.6}.wx-label[data-v-a68e4ef1]{flex-shrink:0;min-width:42px;font-size:.72rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}.wx-phonetic[data-v-a68e4ef1]{font-weight:700;color:var(--text);font-family:Consolas,Courier New,monospace}.wx-meaning[data-v-a68e4ef1],.wx-root[data-v-a68e4ef1]{font-size:.98rem;color:var(--text)}.wx-block[data-v-a68e4ef1]{margin-top:8px}.wx-list[data-v-a68e4ef1]{margin:6px 0 0;padding:0;list-style:none}.wx-list li[data-v-a68e4ef1]{display:flex;align-items:flex-start;gap:8px;margin-bottom:7px;line-height:1.55;font-size:.95rem;color:var(--text)}.wx-item-text[data-v-a68e4ef1]{flex:1;min-width:0}.wx-clickable[data-v-a68e4ef1]{color:var(--accent);font-weight:600;cursor:pointer;transition:color .15s,background-color .15s;border-radius:3px;padding:0 1px}.wx-clickable[data-v-a68e4ef1]:hover{color:#fff;background-color:var(--accent)}.wx-speak-btn[data-v-a68e4ef1]{flex-shrink:0;width:26px;height:26px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);border-radius:50%;cursor:pointer;font-size:.72rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.wx-speak-btn[data-v-a68e4ef1]:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.wx-tip[data-v-a68e4ef1]{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border);font-size:.78rem;color:var(--text-3);text-align:center}.pv[data-v-87a0465e]{flex:1;overflow-y:auto;padding:18px 22px}.pv-empty[data-v-87a0465e]{color:var(--text-2);text-align:center;padding:60px 0;display:flex;flex-direction:column;gap:12px;align-items:center}.pv-top[data-v-87a0465e]{display:flex;align-items:center;gap:24px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px}.ring[data-v-87a0465e]{width:96px;height:96px;border-radius:50%;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--accent) 0deg,var(--surface-2) 0)}.ring[data-v-87a0465e]:before{content:"";position:absolute;width:72px;height:72px;border-radius:50%;background:var(--surface)}.ring-txt[data-v-87a0465e]{position:relative;z-index:1;font-size:1.25em;font-weight:700;color:var(--accent)}.pv-levels[data-v-87a0465e]{flex:1;min-width:0}.lv-row[data-v-87a0465e]{display:flex;align-items:center;gap:10px;font-size:.9em}.lv-row+.lv-row[data-v-87a0465e]{margin-top:8px}.lv-label[data-v-87a0465e]{color:var(--text-2);width:64px;flex-shrink:0}.lv-val[data-v-87a0465e]{color:var(--text)}.lv-gap[data-v-87a0465e]{margin-top:10px;font-size:.8em;color:var(--text-2);background:var(--surface-2);border-radius:6px;padding:8px 10px}.lv-names[data-v-87a0465e]{color:var(--accent)}.lv-gap.done[data-v-87a0465e]{color:var(--success)}.pv-stats[data-v-87a0465e]{display:flex;gap:10px;margin-top:14px}.stat[data-v-87a0465e]{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;text-align:center}.stat b[data-v-87a0465e]{display:block;font-size:1.3em;color:var(--text)}.stat span[data-v-87a0465e]{font-size:.75em;color:var(--text-2)}.stat.ok b[data-v-87a0465e]{color:var(--success)}.stat.mid b[data-v-87a0465e]{color:var(--warning)}.stat.new b[data-v-87a0465e]{color:var(--text-3)}.pv-due[data-v-87a0465e]{margin-top:14px;display:flex;align-items:center;gap:8px;font-size:.82em;color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--warning) 40%,var(--border));border-radius:8px;padding:10px 14px}.due-dot[data-v-87a0465e]{width:8px;height:8px;border-radius:50%;background:var(--warning);flex-shrink:0}.pv-queues[data-v-87a0465e]{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.q-sec[data-v-87a0465e]{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.q-title[data-v-87a0465e]{display:flex;align-items:center;gap:8px;font-size:.9em;color:var(--text);margin-bottom:8px}.q-dot[data-v-87a0465e]{width:9px;height:9px;border-radius:50%}.q-dot.review[data-v-87a0465e]{background:var(--warning)}.q-dot.learning[data-v-87a0465e]{background:var(--accent)}.q-dot.preview[data-v-87a0465e]{background:var(--success)}.q-dot.locked[data-v-87a0465e]{background:var(--text-3)}.q-empty[data-v-87a0465e]{color:var(--text-3);font-size:.8em;padding:6px 0}.q-item[data-v-87a0465e]{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s;border:1px solid transparent}.q-item[data-v-87a0465e]:hover{background:var(--hover-bg)}.q-item.locked[data-v-87a0465e]{cursor:default}.q-item.locked[data-v-87a0465e]:hover{background:transparent}.q-name[data-v-87a0465e]{flex:1;min-width:0;font-size:.85em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.q-status[data-v-87a0465e]{font-size:.72em;padding:2px 8px;border-radius:10px;flex-shrink:0}.q-status.ok[data-v-87a0465e]{background:var(--success-bg);color:var(--success)}.q-status.mid[data-v-87a0465e]{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.q-status.bad[data-v-87a0465e]{background:var(--danger-bg);color:var(--danger)}.q-status.new[data-v-87a0465e]{background:var(--surface-2);color:var(--text-3)}.q-go[data-v-87a0465e]{font-size:.75em;color:var(--accent);flex-shrink:0}.q-lock-reason[data-v-87a0465e]{font-size:.7em;color:var(--text-3);flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}.btn-ghost[data-v-87a0465e]{background:none;border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.8em;padding:6px 16px;border-radius:6px}.btn-ghost[data-v-87a0465e]:hover{color:var(--accent);border-color:var(--accent)}@media (max-width: 720px){.pv-queues[data-v-87a0465e]{grid-template-columns:1fr}}.ft-prose[data-v-fb469cc8]{white-space:normal}.ft-code[data-v-fb469cc8]{font-family:Consolas,Courier New,monospace;font-size:.88em;line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin:6px 0;color:var(--text)}.sheet[data-v-97b5a47f]{display:flex;flex-direction:column;height:100%}.q-list[data-v-97b5a47f]{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:14px}.sheet-q[data-v-97b5a47f]{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.q-meta[data-v-97b5a47f]{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:.75em;color:var(--text-3)}.q-idx[data-v-97b5a47f]{color:var(--accent);font-weight:600}.q-kp[data-v-97b5a47f]{color:var(--text-2)}.q-diff[data-v-97b5a47f]{margin-left:auto}.q-stem[data-v-97b5a47f]{font-size:.95em;line-height:1.6;color:var(--text);margin-bottom:10px}.q-options[data-v-97b5a47f]{display:flex;flex-direction:column;gap:6px}.opt[data-v-97b5a47f]{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--border);border-radius:6px;padding:8px 10px;cursor:pointer;transition:all .15s;background:var(--surface)}.opt[data-v-97b5a47f]:hover{border-color:var(--accent)}.opt.active[data-v-97b5a47f]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.opt input[data-v-97b5a47f]{display:none}.opt-letter[data-v-97b5a47f]{width:20px;height:20px;border-radius:50%;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:.75em;color:var(--text-2);flex-shrink:0;margin-top:1px}.opt.active .opt-letter[data-v-97b5a47f]{background:var(--accent);color:#fff;border-color:var(--accent)}.opt-text[data-v-97b5a47f]{font-size:.9em;flex:1;min-width:0}.q-fill[data-v-97b5a47f]{display:flex;flex-direction:column;gap:8px}.fill-input[data-v-97b5a47f]{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:9px 10px;font-size:.9em}.fill-input[data-v-97b5a47f]:focus{outline:none;border-color:var(--accent)}.self-mark[data-v-97b5a47f]{display:flex;align-items:center;gap:6px;font-size:.8em;color:var(--text-2);cursor:pointer}.self-mark input[data-v-97b5a47f]{accent-color:var(--accent)}.sheet-actions[data-v-97b5a47f]{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0}.btn[data-v-97b5a47f]{padding:9px 20px;border-radius:6px;font-size:.9em;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s}.btn-primary[data-v-97b5a47f]{background:var(--accent);color:#fff}.btn-primary[data-v-97b5a47f]:hover{background:var(--accent-2)}.btn-primary[data-v-97b5a47f]:disabled{opacity:.5;cursor:not-allowed}.btn-ghost[data-v-97b5a47f]{background:none;color:var(--text-2);border-color:var(--border)}.btn-ghost[data-v-97b5a47f]:hover{color:var(--accent);border-color:var(--accent)}.sheet-error[data-v-97b5a47f]{color:var(--danger);font-size:.85em;padding:0 16px}.res-head[data-v-97b5a47f]{display:flex;align-items:center;gap:16px;padding:18px 16px 10px}.ring[data-v-97b5a47f]{width:84px;height:84px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--success) calc(var(--pct) * 1%),var(--surface-2) 0)}.ring[data-v-97b5a47f]:before{content:"";position:absolute;width:64px;height:64px;border-radius:50%;background:var(--surface)}.ring[data-v-97b5a47f]{position:relative}.ring-txt[data-v-97b5a47f]{position:relative;z-index:1;font-size:1.1em;font-weight:700;color:var(--success)}.res-stats[data-v-97b5a47f]{flex:1;min-width:0}.res-title[data-v-97b5a47f]{font-size:1em;font-weight:600;color:var(--text)}.res-line[data-v-97b5a47f]{font-size:.8em;color:var(--text-2);margin-top:4px}.res-q[data-v-97b5a47f]{border:1px solid var(--border);border-radius:8px;padding:10px 12px}.res-q.ok[data-v-97b5a47f]{border-left:3px solid var(--success)}.res-q.bad[data-v-97b5a47f]{border-left:3px solid var(--danger)}.res-q-head[data-v-97b5a47f]{display:flex;gap:8px;align-items:flex-start}.flag[data-v-97b5a47f]{font-weight:700;flex-shrink:0}.res-q.ok .flag[data-v-97b5a47f]{color:var(--success)}.res-q.bad .flag[data-v-97b5a47f]{color:var(--danger)}.res-q-stem[data-v-97b5a47f]{font-size:.85em;color:var(--text);display:block;flex:1;min-width:0}.res-opt[data-v-97b5a47f]{font-size:.8em;color:var(--text-2);margin-top:4px;margin-left:20px}.ok-txt[data-v-97b5a47f]{color:var(--success)}.dhm-overlay[data-v-5ec00de1]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:20px}.dhm[data-v-5ec00de1]{width:min(720px,96vw);height:min(80vh,720px);background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 60px var(--shadow);display:flex;flex-direction:column;overflow:hidden}.dhm-head[data-v-5ec00de1]{display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;height:50px}.dhm-title[data-v-5ec00de1]{font-size:1em;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dhm.large[data-v-5ec00de1]{width:min(96vw,1200px);height:min(94vh,900px)}.dhm-size[data-v-5ec00de1]{background:none;border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.95em;line-height:1;padding:3px 9px;border-radius:4px;flex-shrink:0}.dhm-size[data-v-5ec00de1]:hover{color:var(--accent);border-color:var(--accent)}.dhm-back[data-v-5ec00de1],.dhm-close[data-v-5ec00de1]{background:none;border:none;cursor:pointer;color:var(--text-2);font-size:1em;padding:4px 8px;border-radius:4px;flex-shrink:0}.dhm-back[data-v-5ec00de1]:hover{color:var(--accent);background:var(--surface-2)}.dhm-close[data-v-5ec00de1]:hover{color:var(--danger);background:var(--surface-2)}.dhm-body[data-v-5ec00de1]{flex:1;overflow-y:auto;padding:14px 16px}.dhm-summary[data-v-5ec00de1]{font-size:.88em;color:var(--text-2);margin-bottom:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.dhm-list[data-v-5ec00de1]{display:flex;flex-direction:column;gap:10px}.dhm-item[data-v-5ec00de1]{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px;cursor:pointer;transition:all .15s}.dhm-item[data-v-5ec00de1]:hover{border-color:var(--accent);box-shadow:0 2px 10px var(--shadow)}.dhm-main[data-v-5ec00de1]{flex:1;min-width:0}.dhm-title2[data-v-5ec00de1]{font-size:.92em;color:var(--text);font-weight:600}.dhm-meta[data-v-5ec00de1]{font-size:.75em;color:var(--text-2);margin-top:4px}.dhm-score[data-v-5ec00de1]{font-size:.8em;font-weight:600;padding:4px 10px;border-radius:12px;background:var(--surface-2);color:var(--text-2);flex-shrink:0}.dhm-score.good[data-v-5ec00de1]{background:var(--success-bg);color:var(--success)}.badge[data-v-5ec00de1]{font-size:.72em;padding:3px 10px;border-radius:12px;flex-shrink:0}.badge.new[data-v-5ec00de1]{background:var(--accent);color:#fff}.badge.mid[data-v-5ec00de1]{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.badge.ok[data-v-5ec00de1]{background:var(--success-bg);color:var(--success)}.dhm-arrow[data-v-5ec00de1]{color:var(--accent);font-size:1.1em;flex-shrink:0}.dhm-qlist[data-v-5ec00de1]{display:flex;flex-direction:column;gap:12px}.dhm-q[data-v-5ec00de1]{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface)}.dhm-q.ok[data-v-5ec00de1]{border-left:3px solid var(--success)}.dhm-q.bad[data-v-5ec00de1]{border-left:3px solid var(--danger)}.dhm-q-head[data-v-5ec00de1]{display:flex;gap:8px;align-items:center;margin-bottom:6px}.flag[data-v-5ec00de1]{font-weight:700;flex-shrink:0}.dhm-q.ok .flag[data-v-5ec00de1]{color:var(--success)}.dhm-q.bad .flag[data-v-5ec00de1]{color:var(--danger)}.dhm-q-kp[data-v-5ec00de1]{font-size:.75em;color:var(--text-2)}.dhm-q-stem[data-v-5ec00de1]{font-size:.88em;line-height:1.6;color:var(--text);margin-bottom:8px}.dhm-q-opts[data-v-5ec00de1]{display:flex;flex-direction:column;gap:4px;margin:8px 0 6px}.opt[data-v-5ec00de1]{font-size:.84em;color:var(--text-2);line-height:1.5;padding:3px 8px;border-radius:6px;border:1px solid transparent}.opt.picked[data-v-5ec00de1]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.opt.right[data-v-5ec00de1]{border-color:var(--success);color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}.dhm-opt[data-v-5ec00de1]{font-size:.82em;color:var(--text-2);margin-top:4px}.ok-txt[data-v-5ec00de1]{color:var(--success)}.dhm-empty[data-v-5ec00de1]{color:var(--text-2);text-align:center;padding:60px 0;font-size:.85em}.dv[data-v-4cb20572]{flex:1;overflow-y:auto;padding:18px 22px}.dv-head[data-v-4cb20572]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.dv-head h3[data-v-4cb20572]{font-size:1em;color:var(--text)}.dv-head-actions[data-v-4cb20572]{display:flex;align-items:center;gap:8px}.dv-empty[data-v-4cb20572]{color:var(--text-2);text-align:center;padding:60px 0;font-size:.85em}.dv-list[data-v-4cb20572]{display:flex;flex-direction:column;gap:10px}.dv-item[data-v-4cb20572]{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px;cursor:pointer;transition:all .15s}.dv-item[data-v-4cb20572]:hover{border-color:var(--accent);box-shadow:0 2px 10px var(--shadow)}.dv-item.submitted[data-v-4cb20572]{opacity:.72}.dv-item.submitted[data-v-4cb20572]:hover{border-color:var(--border);box-shadow:none;cursor:default}.dv-main[data-v-4cb20572]{flex:1;min-width:0}.dv-title[data-v-4cb20572]{font-size:.95em;color:var(--text);font-weight:600}.dv-meta[data-v-4cb20572]{font-size:.75em;color:var(--text-2);margin-top:4px}.dv-state[data-v-4cb20572]{display:flex;align-items:center;gap:8px;flex-shrink:0}.badge[data-v-4cb20572]{font-size:.72em;padding:3px 10px;border-radius:12px}.badge.new[data-v-4cb20572]{background:var(--accent);color:#fff}.badge.mid[data-v-4cb20572]{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.badge.ok[data-v-4cb20572]{background:var(--success-bg);color:var(--success)}.dv-arrow[data-v-4cb20572]{color:var(--accent);font-size:1.1em}.btn-ghost[data-v-4cb20572]{background:none;border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.8em;padding:5px 14px;border-radius:6px}.btn-ghost[data-v-4cb20572]:hover{color:var(--accent);border-color:var(--accent)}.pr[data-v-b1ae58c4]{flex:1;overflow-y:auto;padding:18px 22px}.pr-head[data-v-b1ae58c4]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.pr-head h3[data-v-b1ae58c4]{font-size:1em;color:var(--text)}.pr-empty[data-v-b1ae58c4]{color:var(--text-2);text-align:center;padding:60px 0;display:flex;flex-direction:column;gap:12px;align-items:center}.diff-pick[data-v-b1ae58c4]{display:flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:3px}.dp-label[data-v-b1ae58c4]{font-size:.78em;color:var(--text-2);padding:0 8px}.dp-btn[data-v-b1ae58c4]{background:none;border:none;cursor:pointer;font-size:.8em;color:var(--text-2);padding:5px 12px;border-radius:6px;transition:all .15s}.dp-btn[data-v-b1ae58c4]:hover{color:var(--text)}.dp-btn.active[data-v-b1ae58c4]{background:var(--accent);color:#fff}.pr-groups[data-v-b1ae58c4]{display:flex;flex-direction:column;gap:14px}.pr-sec[data-v-b1ae58c4]{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.pr-sec-title[data-v-b1ae58c4]{display:flex;align-items:center;gap:8px;font-size:.9em;color:var(--text);margin-bottom:6px}.dot[data-v-b1ae58c4]{width:9px;height:9px;border-radius:50%}.dot.review[data-v-b1ae58c4]{background:var(--warning)}.dot.learning[data-v-b1ae58c4]{background:var(--accent)}.dot.preview[data-v-b1ae58c4]{background:var(--success)}.dot.locked[data-v-b1ae58c4]{background:var(--text-3)}.pr-none[data-v-b1ae58c4]{color:var(--text-3);font-size:.8em;padding:6px 0}.pr-kp[data-v-b1ae58c4]{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.pr-kp[data-v-b1ae58c4]:hover{background:var(--hover-bg)}.pr-kp.locked[data-v-b1ae58c4]{cursor:default;opacity:.65}.pr-kp.locked[data-v-b1ae58c4]:hover{background:transparent}.pr-kp-name[data-v-b1ae58c4]{flex:1;min-width:0;font-size:.85em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pr-kp-level[data-v-b1ae58c4]{font-size:.7em;color:var(--text-3);flex-shrink:0}.pr-kp-diff[data-v-b1ae58c4]{font-size:.72em;color:var(--text-2);background:var(--surface-2);border-radius:10px;padding:2px 8px;flex-shrink:0}.pr-kp-status[data-v-b1ae58c4]{font-size:.7em;padding:2px 8px;border-radius:10px;flex-shrink:0}.pr-kp-status.ok[data-v-b1ae58c4]{background:var(--success-bg);color:var(--success)}.pr-kp-status.mid[data-v-b1ae58c4]{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.pr-kp-status.bad[data-v-b1ae58c4]{background:var(--danger-bg);color:var(--danger)}.pr-kp-status.new[data-v-b1ae58c4]{background:var(--surface-2);color:var(--text-3)}.pr-go[data-v-b1ae58c4]{font-size:.75em;color:var(--accent);flex-shrink:0}.pr-lock[data-v-b1ae58c4]{font-size:.7em;color:var(--text-3);flex-shrink:0;max-width:40%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.km[data-v-740bff8c]{flex:1;display:flex;overflow:hidden}.km-list[data-v-740bff8c]{width:280px;min-width:240px;overflow-y:auto;border-right:1px solid var(--border);background:var(--surface);padding:8px}.km-item[data-v-740bff8c]{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.km-item[data-v-740bff8c]:hover{background:var(--hover-bg)}.km-item.active[data-v-740bff8c]{background:var(--active-bg)}.km-item.locked[data-v-740bff8c]{opacity:.6}.km-seq[data-v-740bff8c]{width:24px;height:24px;border-radius:6px;flex-shrink:0;background:var(--surface-2);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;font-size:.72em;font-weight:600}.km-item.active .km-seq[data-v-740bff8c]{background:var(--accent);color:#fff}.km-name[data-v-740bff8c]{flex:1;min-width:0;font-size:.85em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.km-tag[data-v-740bff8c]{font-size:.68em;padding:2px 8px;border-radius:10px;flex-shrink:0}.km-tag.review[data-v-740bff8c]{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.km-tag.learning[data-v-740bff8c]{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.km-tag.preview[data-v-740bff8c]{background:var(--success-bg);color:var(--success)}.km-tag.locked[data-v-740bff8c]{background:var(--surface-2);color:var(--text-3)}.km-detail[data-v-740bff8c]{flex:1;overflow-y:auto;padding:18px 22px}.km-hint[data-v-740bff8c]{color:var(--text-3);text-align:center;padding:80px 0;font-size:.85em}.km-empty[data-v-740bff8c]{color:var(--text-3);text-align:center;padding:40px 0;font-size:.82em}.km-head[data-v-740bff8c]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.km-title[data-v-740bff8c]{font-size:1.05em;color:var(--text);font-weight:600}.km-sub[data-v-740bff8c]{font-size:.78em;color:var(--text-2);margin-top:4px}.km-sub .ok[data-v-740bff8c]{color:var(--success)}.km-sub .mid[data-v-740bff8c]{color:var(--warning)}.km-sub .bad[data-v-740bff8c]{color:var(--danger)}.km-sub .new[data-v-740bff8c]{color:var(--text-3)}.btn-start[data-v-740bff8c]{background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.82em;padding:8px 18px;font-weight:600;flex-shrink:0}.btn-start[data-v-740bff8c]:hover{background:var(--accent-2)}.btn-start[data-v-740bff8c]:disabled{background:var(--surface-2);color:var(--text-3);cursor:not-allowed}.km-lock[data-v-740bff8c]{font-size:.8em;color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--warning) 35%,var(--border));border-radius:6px;padding:8px 12px;margin-bottom:12px}.km-loading[data-v-740bff8c],.km-error[data-v-740bff8c]{color:var(--text-2);text-align:center;padding:40px 0;font-size:.85em}.km-error[data-v-740bff8c]{color:var(--danger)}.km-sec[data-v-740bff8c]{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-bottom:14px}.km-sec-title[data-v-740bff8c]{font-size:.9em;color:var(--accent);margin-bottom:8px}.km-summary[data-v-740bff8c]{font-size:.85em;color:var(--text)}.km-steps[data-v-740bff8c]{margin:8px 0 0 18px;font-size:.82em;color:var(--text-2);line-height:1.8}.km-ex+.km-ex[data-v-740bff8c]{margin-top:12px}.km-ex-head[data-v-740bff8c]{display:flex;align-items:center;gap:8px}.km-ex-head b[data-v-740bff8c]{font-size:.85em;color:var(--text)}.km-ex-diff[data-v-740bff8c]{font-size:.7em;color:var(--text-2);background:var(--surface-2);border-radius:10px;padding:2px 8px}.km-ex-desc[data-v-740bff8c]{font-size:.78em;color:var(--text-2);margin-top:4px}.km-code[data-v-740bff8c]{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-top:8px;overflow-x:auto;font-family:Consolas,Courier New,monospace;font-size:.78em;line-height:1.6;color:var(--text)}.km-q[data-v-740bff8c]{display:flex;gap:8px;padding:6px 0;border-bottom:1px dashed var(--border-soft);font-size:.82em}.km-q[data-v-740bff8c]:last-child{border-bottom:none}.km-q-idx[data-v-740bff8c]{color:var(--accent);font-weight:600;flex-shrink:0}.km-q-stem[data-v-740bff8c]{color:var(--text)}.lc-overlay[data-v-88f0d6ee]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:20px}.lc[data-v-88f0d6ee]{width:min(960px,96vw);height:min(88vh,860px);background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 60px var(--shadow);display:flex;flex-direction:column;overflow:hidden}.lc-head[data-v-88f0d6ee]{display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;height:52px}.lc-title[data-v-88f0d6ee]{font-size:1.05em;color:var(--accent);white-space:nowrap}.lc-tabs[data-v-88f0d6ee]{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto}.lc-tab[data-v-88f0d6ee]{padding:8px 14px;cursor:pointer;font-size:.85em;color:var(--text-2);border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap;-webkit-user-select:none;user-select:none}.lc-tab[data-v-88f0d6ee]:hover{color:var(--text)}.lc-tab.active[data-v-88f0d6ee]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.lc.large[data-v-88f0d6ee]{width:min(96vw,1400px);height:min(94vh,940px)}.lc-size[data-v-88f0d6ee]{background:none;border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.95em;line-height:1;padding:3px 9px;border-radius:4px;flex-shrink:0}.lc-size[data-v-88f0d6ee]:hover{color:var(--accent);border-color:var(--accent)}.lc-close[data-v-88f0d6ee]{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:1.1em;padding:4px 10px;border-radius:4px;flex-shrink:0}.lc-close[data-v-88f0d6ee]:hover{color:var(--danger);background:var(--surface-2)}.lc-body[data-v-88f0d6ee]{flex:1;overflow:hidden;display:flex;flex-direction:column}:root{--bg: #f3f5f8;--surface: #ffffff;--surface-2: #eef1f5;--border: #d8dee6;--border-soft: rgba(216, 222, 230, .4);--hover-bg: #e8edf3;--active-bg: #e0e8f2;--text: #26323f;--text-2: #5b6b7a;--text-3: #8a97a5;--accent: #e0455e;--accent-2: #c23152;--success: #2e7d32;--success-bg: #e6f4ea;--danger: #c62828;--danger-bg: #fdecea;--warning: #b26a00;--overlay: rgba(15, 23, 42, .45);--code-bg: #ffffff;--code-activeline: rgba(38, 50, 63, .06);--shadow: rgba(30, 40, 60, .2)}[data-theme=warm]{--bg: #f6f1e7;--surface: #fdfaf3;--surface-2: #efe7d6;--border: #e0d5bd;--border-soft: rgba(224, 213, 189, .45);--hover-bg: #ede3cd;--active-bg: #e7dcc2;--text: #3d3831;--text-2: #6e675c;--text-3: #98907f;--accent: #6f9a5e;--accent-2: #5b8349;--success: #4c7a3d;--success-bg: #eaf2e3;--danger: #b0563a;--danger-bg: #f7e9e0;--warning: #a06a1f;--overlay: rgba(61, 56, 49, .4);--code-bg: #fdfaf3;--code-activeline: rgba(61, 56, 49, .06);--shadow: rgba(61, 56, 49, .25)}[data-theme=dark]{--bg: #232b3a;--surface: #2a3446;--surface-2: #33405a;--border: #3d4b63;--border-soft: rgba(61, 75, 99, .35);--hover-bg: #303b52;--active-bg: #36435f;--text: #d9e1ec;--text-2: #93a2b5;--text-3: #66748a;--accent: #e9607a;--accent-2: #cf4a64;--success: #6fbf73;--success-bg: #1f3a2a;--danger: #ef7d7d;--danger-bg: #3a2328;--warning: #e0a94e;--overlay: rgba(0, 0, 0, .5);--code-bg: #2a3446;--code-activeline: rgba(255, 255, 255, .06);--shadow: rgba(0, 0, 0, .4)}[data-theme=night]{--bg: #12141c;--surface: #1a1d27;--surface-2: #242836;--border: #2f3545;--border-soft: rgba(47, 53, 69, .4);--hover-bg: #20242f;--active-bg: #262b39;--text: #c7ccd9;--text-2: #8d93a6;--text-3: #5f6577;--accent: #7c9bff;--accent-2: #5d7fe0;--success: #7fd88a;--success-bg: #16261c;--danger: #ff8b8b;--danger-bg: #2c1719;--warning: #e6b85c;--overlay: rgba(0, 0, 0, .6);--code-bg: #1a1d27;--code-activeline: rgba(255, 255, 255, .05);--shadow: rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column}#app{height:100vh;display:flex;flex-direction:column}header{background:var(--surface);padding:10px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);flex-shrink:0}header h1{font-size:1.2em;color:var(--accent)}header .info{font-size:.8em;color:var(--text-2);display:flex;align-items:center;gap:12px}#app-main{display:flex;flex:1;overflow:hidden;position:relative}.splitter{width:5px;cursor:col-resize;flex-shrink:0;background:transparent;position:relative;z-index:5}.splitter:hover,.splitter:active{background:color-mix(in srgb,var(--accent) 35%,transparent)}body.dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}body.dragging .info-panel,body.dragging .ai-diag-panel{transition:none!important}.sidebar{width:280px;min-width:280px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-tabs{display:flex;border-bottom:1px solid var(--border)}.sidebar-tab{flex:1;padding:10px;text-align:center;cursor:pointer;font-size:.85em;color:var(--text-2);border-bottom:2px solid transparent;transition:all .15s;-webkit-user-select:none;user-select:none}.sidebar-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.sidebar-tab:hover{color:var(--text)}.sidebar-content{flex:1;overflow-y:auto}.sidebar-content.hidden{display:none}.search-box{padding:10px}.search-box input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);color:var(--text);font-size:.85em}.search-box input::placeholder{color:var(--text-3)}.problem-item,.code-item{padding:10px 14px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border-left:3px solid transparent;transition:all .15s;border-bottom:1px solid var(--border-soft)}.problem-item:hover,.code-item:hover{background:var(--hover-bg)}.problem-item.active,.code-item.active{background:var(--active-bg);border-left-color:var(--accent)}.problem-item.active{box-shadow:inset 0 0 16px color-mix(in srgb,var(--accent) 10%,transparent)}.problem-item .pid,.code-item .pid{color:var(--text-2);font-size:.85em;margin-right:8px}.code-item .info{flex:1;min-width:0}.code-item .title{font-size:.9em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.code-item .meta{font-size:.7em;color:var(--text-3);margin-top:2px}.difficulty,.tag{font-size:.7em;padding:2px 8px;border-radius:4px;white-space:nowrap}.tag{background:var(--surface-2);color:var(--text-2);margin-right:4px}.difficulty.easy{background:var(--success-bg);color:var(--success)}.difficulty.medium{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.difficulty.hard{background:var(--danger-bg);color:var(--danger)}.actions{display:flex;gap:4px}.icon-btn{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:.85em;padding:2px 6px;border-radius:3px}.icon-btn:hover{color:var(--accent);background:color-mix(in srgb,var(--text) 12%,transparent)}.empty-state{padding:30px;text-align:center;color:var(--text-3);font-size:.85em}.main{flex:1;display:flex;flex-direction:row;overflow:hidden}.info-panel{width:380px;min-width:320px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .2s,min-width .2s}.info-panel.collapsed{width:0;min-width:0}.info-panel.collapsed>*{display:none}.info-tabs{display:flex;border-bottom:1px solid var(--border);align-items:center;flex-shrink:0}.info-tab{padding:10px 16px;cursor:pointer;font-size:.8em;color:var(--text-2);border-bottom:2px solid transparent;transition:all .15s;-webkit-user-select:none;user-select:none}.info-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.info-tab:hover{color:var(--text)}.info-body{flex:1;overflow-y:auto;padding:14px 16px;font-size:.85em;line-height:1.6}.info-body.hidden{display:none}.info-body .desc-title{font-size:1.1em;color:var(--accent);margin-bottom:8px}.info-body .desc-meta{color:var(--text-2);font-size:.85em;margin-bottom:12px}.info-body .desc-meta span{margin-right:16px}.info-body .desc-text{color:var(--text)}.info-body .problem-image{margin:10px 0}.info-body .problem-image img{max-width:100%;max-height:300px;border:1px solid var(--border);border-radius:6px;cursor:zoom-in;display:block;background:var(--surface-2)}.info-body .problem-image-hint{display:block;color:var(--text-3);font-size:.75em;margin-top:4px}.info-body .sample-block{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:8px 12px;margin:8px 0}.info-body .sample-block strong{color:var(--text-2);font-size:.85em;display:block;margin-bottom:4px}.info-body .sample-block pre{margin:0;font-family:Consolas,Courier New,monospace;font-size:.9em}.info-body .ai-parse{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.info-body .ai-parse-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.info-body .ai-parse-label{color:var(--accent);font-size:.9em;font-weight:600}.ai-level{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:.8em}.ai-level:focus{outline:none;border-color:var(--accent)}.ai-level:disabled{opacity:.6;cursor:not-allowed}.ai-cache-badge{color:var(--success);font-size:.75em}.ai-error{color:var(--danger);font-size:.85em}.ai-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px}.ai-modal{width:min(680px,92vw);height:min(70vh,560px);min-height:360px;background:var(--surface);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 40px var(--shadow)}.ai-modal-header{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--border)}.ai-modal-title{color:var(--accent);font-size:1em;font-weight:600}.problem-image-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px}.problem-image-modal img{max-width:94vw;max-height:94vh;border-radius:6px;box-shadow:0 8px 40px #0006;background:var(--surface)}.problem-image-close{position:fixed;top:16px;right:20px;background:#00000073;color:#fff;border:none;border-radius:50%;width:38px;height:38px;font-size:18px;cursor:pointer}.ai-modal-close{margin-left:auto;background:none;border:none;color:var(--text-2);font-size:1.1em;cursor:pointer;line-height:1;padding:4px 8px;border-radius:4px}.ai-modal-close:hover{color:var(--accent);background:color-mix(in srgb,var(--text) 12%,transparent)}.ai-modal-body{flex:1;overflow-y:auto;padding:16px;font-size:.9em;line-height:1.7}.ai-modal-loading{color:var(--text-2);text-align:center;padding:24px}.ai-modal-hint{color:var(--text-3);text-align:center;padding:24px;font-size:.85em}.ai-modal-result{font-size:.9em}.ai-modal.large{width:min(96vw,1200px);height:min(94vh,900px)}.ai-size-btn{background:none;border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.95em;line-height:1;padding:3px 9px;border-radius:4px}.ai-size-btn:hover{color:var(--accent);border-color:var(--accent)}.desc-textarea{width:100%;height:160px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:8px;font-size:.9em;resize:vertical;font-family:inherit;line-height:1.5}.desc-textarea:focus{outline:none;border-color:var(--accent)}.desc-actions{margin-top:8px;display:flex;gap:8px;align-items:center}.desc-saved{color:var(--success);font-size:.8em}.review-item{padding:10px 0;border-bottom:1px solid var(--border-soft)}.review-item:last-child{border-bottom:none}.review-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.review-author{color:var(--accent);font-size:.9em;font-weight:600}.review-time{color:var(--text-3);font-size:.75em}.review-content{color:var(--text);white-space:pre-wrap}.review-form{margin-top:12px}.review-form textarea{width:100%;height:60px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:8px;font-size:.85em;resize:vertical;font-family:inherit}.review-form textarea:focus{outline:none;border-color:var(--accent)}.review-form .form-row{display:flex;align-items:center;gap:8px;margin-top:6px}.review-form .name-input{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:.8em;width:100px}.review-form .name-input:focus{outline:none;border-color:var(--accent)}.review-form .submit-btn{padding:6px 16px;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8em}.review-form .submit-btn:hover{background:var(--accent-2)}.review-form .submit-btn:disabled{background:var(--surface-2);color:var(--text-3);cursor:not-allowed}.btn{padding:8px 18px;border:none;border-radius:4px;cursor:pointer;font-size:.85em;font-weight:600;transition:all .15s}.btn-run{background:var(--surface-2);color:var(--text)}.btn-run:hover{background:var(--hover-bg)}.btn-save{background:var(--accent);color:#fff}.btn-save:hover{background:var(--accent-2)}.btn:disabled{background:var(--surface-2);color:var(--text-3);opacity:.6;cursor:not-allowed}.output-panel{margin:8px 16px;padding:12px;border-radius:6px;font-family:Consolas,Courier New,monospace;font-size:.9em;white-space:pre-wrap;max-height:200px;overflow-y:auto}.output-panel.success{background:color-mix(in srgb,var(--success) 20%,transparent);border:1px solid var(--success)}.output-panel.error{background:color-mix(in srgb,var(--danger) 20%,transparent);border:1px solid var(--danger)}.CodeMirror-activeline-background,.CodeMirror-activeline .CodeMirror-activeline-gutter{background:var(--code-activeline)!important}.CodeMirror-selected{background:color-mix(in srgb,var(--accent) 30%,transparent)!important}.CodeMirror-focused .CodeMirror-selected{background:color-mix(in srgb,var(--accent) 40%,transparent)!important}.md-body{line-height:1.7;word-break:break-word}.md-body h1,.md-body h2,.md-body h3,.md-body h4{margin:14px 0 8px;color:var(--text);font-weight:600}.md-body h1{font-size:1.25em}.md-body h2{font-size:1.15em}.md-body h3{font-size:1.05em}.md-body p{margin:8px 0}.md-body ul,.md-body ol{margin:8px 0;padding-left:22px}.md-body li{margin:3px 0}.md-body code{background:var(--surface-2);padding:2px 5px;border-radius:3px;font-family:Consolas,Courier New,monospace;font-size:.92em}.md-body pre{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;overflow-x:auto;margin:8px 0}.md-body pre code{background:none;padding:0;border-radius:0;font-size:.9em}.md-body blockquote{border-left:3px solid var(--accent);margin:8px 0;padding:2px 12px;color:var(--text-2);background:var(--surface-2);border-radius:0 4px 4px 0}.md-body table{border-collapse:collapse;margin:10px 0}.md-body th,.md-body td{border:1px solid var(--border);padding:6px 10px}.md-body th{background:var(--surface-2)}.md-body a{color:var(--accent)}.md-body hr{border:none;border-top:1px solid var(--border);margin:12px 0}.md-body img{max-width:100%;border-radius:4px}@media (max-width: 900px){.sidebar{width:200px;min-width:200px}.info-panel{width:260px;min-width:240px}}
