*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #1e1e1e;--bg-secondary: #252526;--bg-tertiary: #2d2d2d;--bg-hover: #2a2d2e;--bg-active: #37373d;--border-color: #3c3c3c;--border-light: #4c4c4c;--text-primary: #d4d4d4;--text-secondary: #858585;--text-muted: #808080;--accent-blue: #4fc1ff;--accent-green: #89d185;--accent-orange: #ce9178;--accent-purple: #c586c0;--accent-red: #f48771;--accent-yellow: #dcdcaa;--success: #388a34;--success-hover: #4db149;--primary: #0e639c;--primary-hover: #1177bb}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);overflow:hidden;font-size:13px}html,body,#root{height:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#4c4c4c;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#5c5c5c}.app{height:100vh;display:flex;flex-direction:column;background-color:var(--bg-primary)}.toolbar{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:0 12px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);height:52px;flex-shrink:0}.toolbar-left,.toolbar-center,.toolbar-right{display:flex;align-items:center;gap:8px}.toolbar-right{margin-left:auto}.toolbar-center-hint{font-size:12px;color:var(--text-secondary)}.toolbar-brand{display:flex;align-items:center;gap:8px}.toolbar-logo{width:18px;height:18px;color:#cfe6f8}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:1px solid transparent;color:var(--text-primary);cursor:pointer;border-radius:6px;font-size:13px;transition:all .2s}.toolbar-btn:hover{background-color:var(--bg-hover)}.toolbar-btn.primary{background-color:var(--primary);color:#fff}.toolbar-btn.primary:hover{background-color:var(--primary-hover)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn.has-alert{border-color:#f4877173;box-shadow:inset 0 0 0 1px #f4877133}.toolbar-divider{width:1px;height:24px;background-color:var(--border-color)}.engine-select{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:6px 10px;border-radius:4px;font-size:13px;cursor:pointer}.engine-select:hover{border-color:var(--accent-blue)}.main-container{display:flex;flex:1;min-height:0;overflow:hidden;padding:10px}.sidebar-tabs{display:flex;flex-direction:column;height:100%;background-color:var(--bg-secondary)}.sidebar-actions{display:flex;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--border-color);min-width:0}.sidebar-logo{width:20px;height:20px;flex-shrink:0;object-fit:contain}.sidebar-logo-btn{border:none;background:transparent;display:inline-flex;align-items:center;cursor:pointer;border-radius:8px;padding:4px;position:relative}.sidebar-logo-btn:hover{background:var(--bg-hover)}.sidebar-logo-btn:active{transform:translateY(1px)}.sidebar-action-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:8px;height:32px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0 10px}.sidebar-action-btn.project{flex:1 1 auto;min-width:0;overflow:hidden}.sidebar-action-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sidebar-action-icons{display:inline-flex;gap:6px;flex-shrink:0}.sidebar-action-btn.icon{width:32px;padding:0;justify-content:center}.sidebar-action-btn:hover{background-color:var(--bg-hover)}.sidebar-action-btn.has-alert{border-color:#f4877173;box-shadow:inset 0 0 0 1px #f4877133}.sidebar-tabs-header{display:flex;border-bottom:1px solid var(--border-color);flex-shrink:0;background-color:var(--bg-tertiary)}.sidebar-tab{flex:1;padding:14px 12px;background:none;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px}.sidebar-tab:hover{color:var(--text-primary);background-color:var(--bg-hover)}.sidebar-tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue);background-color:var(--bg-secondary)}.sidebar-tabs-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.sidebar-outline-bottom{border-top:1px solid var(--border-color);background:var(--bg-primary);min-height:150px;overflow:hidden;display:flex;flex-direction:column}.sidebar-outline-toggle{height:28px;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 10px;color:var(--text-secondary);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.sidebar-outline-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-outline-toggle svg{transition:transform .2s ease}.sidebar-outline-wrap{overflow:hidden;transition:max-height .24s ease,opacity .2s ease;opacity:1;background:var(--bg-primary)}.sidebar-outline-wrap.is-resizing{transition:none}.sidebar-outline-wrap.collapsed{opacity:0;pointer-events:none}.sidebar-outline-resize-handle{height:8px;cursor:row-resize;background:var(--bg-primary);border-top:1px solid var(--border-color)}.sidebar-outline-resize-handle:hover{background:#4fc1ff2e}.sidebar-user-foot{margin-top:auto;width:100%;border:0;border-top:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-size:11px;text-align:left;padding:8px 10px;cursor:default;display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-user-foot:hover{background:var(--bg-hover)}.sidebar-user-foot-main{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{border:1px solid var(--border-color);border-radius:999px;padding:1px 7px;font-size:10px;line-height:1.3;color:var(--text-secondary);background:var(--bg-tertiary);flex-shrink:0}.sidebar-user-role.owner{border-color:#f2c94ca6;color:#f2c94c}.sidebar-user-role.editor{border-color:#4fc1ff99;color:#8ed2ff}.sidebar-user-role.reader{border-color:#7ec69999;color:#8cddaf}.sidebar-user-context-menu{position:fixed;z-index:2000;border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;padding:6px;min-width:150px;box-shadow:0 12px 24px #00000059}.sidebar-user-context-item{width:100%;border:1px solid transparent;background:transparent;color:var(--text-primary);border-radius:6px;padding:7px 10px;text-align:left;cursor:pointer;font-size:12px}.sidebar-user-context-item:hover{background:var(--bg-hover);border-color:var(--border-color)}.sidebar-user-context-item.danger{color:#f48771}.sidebar-outline-bottom .document-outline{height:100%;min-height:0}.sidebar-chats{flex:1;display:flex;flex-direction:column;min-height:0;gap:10px;padding:10px}.sidebar-chats-header{display:flex;justify-content:flex-end}.sidebar-chats-header.files-like{padding-bottom:2px}.sidebar-chats-separator{height:1px;background:var(--border-color)}.sidebar-chats-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px}.sidebar-chats-list.file-like{gap:6px;padding-top:6px}.sidebar-chat-item{border:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px;color:var(--text-primary);text-align:left;display:flex;align-items:center;gap:6px;padding:6px;cursor:pointer}.sidebar-chat-item:hover{background:var(--bg-hover);border-color:var(--border-hover)}.sidebar-chat-item.active{border-color:#4fc1ff99;background:#4fc1ff1f}.sidebar-chat-item.renaming,.sidebar-chat-item.renaming:hover,.sidebar-chat-item.renaming.active{background:var(--bg-tertiary);border-color:var(--border-color)}.sidebar-chat-main{border:0;background:transparent;color:inherit;text-align:left;min-width:0;flex:1;display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:2px 0}.sidebar-chat-actions{display:inline-flex;gap:4px}.sidebar-chat-action{width:24px;height:24px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.sidebar-chat-action:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-chat-action:active,.sidebar-action-btn:active,.chat-dock-action:active{transform:translateY(1px)}.sidebar-chat-action.danger:hover{border-color:#f4877199;color:#f48771}.sidebar-chat-rename-input{flex:1;min-width:0;height:24px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;padding:0 8px;font-size:12px}.sidebar-chat-rename-input::selection{background:#4fc1ff52}.sidebar-chat-item.renaming .sidebar-chat-actions{flex-shrink:0}.sidebar-chat-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 960px){.sidebar-tab{padding:10px 8px;min-height:42px;font-size:11px;letter-spacing:.03em}.sidebar-outline-bottom{min-height:120px}.sidebar-chats{padding:8px;gap:8px}.sidebar-chat-item{padding:7px}}.file-explorer{flex:1;overflow-y:auto;padding:8px 0;height:100%;display:flex;flex-direction:column}.file-explorer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.file-explorer-header h3{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.file-explorer-actions{display:flex;gap:4px}.file-list{flex:1;overflow-y:auto;padding:4px 0}.file-list.external-drop-active{background:#4fc1ff14;outline:1px dashed rgba(79,193,255,.6);outline-offset:-6px}.btn-icon{background:none;border:none;color:var(--text-secondary);cursor:pointer;width:18px;height:18px;padding:2px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon svg{width:12px;height:12px}.btn-icon:hover{color:var(--text-primary);background-color:var(--bg-hover)}.btn-icon.delete:hover{color:var(--accent-red);background-color:#f487711a}.file-item{display:flex;align-items:center;padding:8px 12px;min-height:30px;cursor:pointer;border-left:3px solid transparent;transition:all .15s;gap:8px;margin:1px 4px;border-radius:4px;min-width:0}.file-item:hover{background-color:var(--bg-hover)}.file-item.active{background-color:var(--bg-active);border-left-color:var(--accent-blue)}.folder-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer;transition:all .15s;gap:6px;margin:1px 4px;border-radius:4px;min-width:0}.folder-item{position:relative}.folder-item[draggable=true]{cursor:grab}.folder-item.drag-over,.folder-item:hover{outline:none}.folder-item:hover{background-color:var(--bg-hover)}.folder-toggle{display:flex;align-items:center;justify-content:center;width:16px;height:16px;cursor:pointer;color:var(--text-secondary)}.folder-toggle:hover{color:var(--text-primary)}.file-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.file-name{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);min-width:0}.file-presence{display:inline-flex;gap:4px;margin-right:4px}.file-presence-dot{width:7px;height:7px;border-radius:999px;display:inline-block;box-shadow:0 0 0 1px #00000059}.file-rename-input{flex:1;min-width:0;height:24px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;padding:0 6px;outline:none;box-shadow:none}.file-rename-input:focus,.file-rename-input:focus-visible{border-color:var(--border-color);outline:none;box-shadow:none}.file-rename-input::selection{background:#4fc1ff52}.file-actions{display:flex;align-items:center;gap:4px;min-width:22px;visibility:hidden;opacity:0;transition:opacity .15s ease}.file-item.creating{background-color:#4fc1ff14}.file-item:hover .file-actions{visibility:visible;opacity:1}.file-item.renaming,.folder-item.renaming,.file-item.renaming:hover,.folder-item.renaming:hover,.file-item.renaming.active{background:transparent;border-left-color:transparent}.file-item.renaming .file-actions{visibility:hidden!important;opacity:0!important}.no-files{padding:20px;text-align:center;color:var(--text-secondary);font-size:13px}.file-context-menu{position:fixed;z-index:3000;min-width:160px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 24px #00000073;padding:6px;display:flex;flex-direction:column;gap:4px}.file-context-item{height:30px;border:none;border-radius:6px;background:transparent;color:var(--text-primary);text-align:left;padding:0 10px;cursor:pointer;font-size:13px}.file-context-item:hover{background:var(--bg-hover)}.file-context-item.danger{color:#ffb3a4}.file-context-item.danger:hover{background:#f4877126}.editor-container{flex:1;min-height:0;display:flex;flex-direction:column;background-color:var(--bg-primary);position:relative}.file-preview-surface{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#1b1f27;overflow:auto;padding:12px}.file-preview-frame{width:100%;height:100%;border:1px solid var(--border-color);border-radius:8px;background:#2a2f38}.file-preview-image{max-width:100%;max-height:100%;object-fit:contain;border:1px solid var(--border-color);border-radius:8px;background:#11151c}.collab-bar{height:36px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);display:flex;align-items:center;gap:8px;padding:0 8px 0 0;min-width:0;overflow:hidden}.collab-status-slot{width:58px;min-width:58px;display:flex;justify-content:flex-start;align-items:center;padding-left:10px;flex:0 0 58px}.collab-opened-wrap{display:flex;align-items:center;gap:0;min-width:0;flex:1 1 auto}.collab-opened-viewport{position:relative;min-width:0;flex:1;overflow:hidden}.collab-opened-fade{position:absolute;top:0;bottom:0;width:16px;z-index:2;pointer-events:none;opacity:0;transition:opacity .14s ease}.collab-opened-fade.visible{opacity:1}.collab-opened-fade.left{left:0;background:linear-gradient(to right,#14181fe6,#14181f00)}.collab-opened-fade.right{right:0;background:linear-gradient(to left,#14181fe6,#14181f00)}.collab-opened{display:flex;align-items:center;gap:6px;overflow:auto hidden;min-width:0;padding:0 2px;scrollbar-width:none}.collab-opened::-webkit-scrollbar{width:0;height:0}.collab-opened-empty{font-size:11px;color:var(--text-secondary);white-space:nowrap}.collab-opened-file{border:1px solid var(--border-color);border-radius:3px;height:22px;min-width:0;max-width:260px;padding:0 6px;background:var(--bg-tertiary);color:var(--text-secondary);cursor:grab;display:inline-flex;align-items:center;gap:5px;flex-shrink:0;position:relative}.collab-opened-file:active{cursor:grabbing}.collab-opened-file:hover{background:var(--bg-hover);color:var(--text-primary)}.collab-opened-file.active{border-color:#4fc1ff99;background:#4fc1ff29;color:#d6ecff}.collab-opened-file.temporary .collab-opened-name{font-style:italic;opacity:.86}.collab-opened-file.drop-before:before,.collab-opened-file.drop-after:after{content:"";position:absolute;top:2px;bottom:2px;width:2px;border-radius:999px;background:#7ec6ff;box-shadow:0 0 0 1px #7ec6ff2e}.collab-opened-file.drop-before:before{left:-4px}.collab-opened-file.drop-after:after{right:-4px}.collab-opened-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collab-opened-cursor{font-size:10px;color:#d2e7fab8}.collab-opened-close{width:18px;height:18px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;color:#d2e7fa9e;flex-shrink:0}.collab-opened-close:hover{background:#ffffff14;color:#e9f4ff}.collab-presence{display:flex;align-items:center;min-width:fit-content;justify-content:flex-end;flex:0 0 auto;margin-left:auto}.collab-chips{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:fit-content;flex-wrap:nowrap}.collab-chip{border:1px solid;border-radius:999px;width:22px;height:22px;font-size:11px;font-weight:700;color:#d7ebff;background:#4fc1ff1f;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px}.collab-status{border:1px solid var(--border-color);border-radius:999px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--bg-tertiary);flex-shrink:0}.collab-status.connected{border-color:#7ec699b3;color:#7ec699}.collab-status.connecting,.collab-status.reconnecting{border-color:#f2c94cb3;color:#f2c94c}.collab-status.offline{border-color:#f48771b3;color:#f48771}.collab-diagnostics-toggle{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:999px;height:24px;padding:0 8px;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.collab-diagnostics-toggle.open{border-color:#f2c94cb3;background:#f2c94c24}.collab-diagnostics-toggle.pulse{animation:collab-notice-pulse .9s ease-out}.collab-diagnostics-count{min-width:16px;height:16px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#f2c94c47;color:#f2c94c;font-weight:700;font-size:10px;line-height:1}.collab-diagnostics{min-height:30px;border-bottom:1px solid var(--border-color);background:#f2c94c14;display:flex;align-items:center;gap:10px;padding:0 10px}.collab-diagnostics-title{font-size:11px;color:var(--text-secondary);font-weight:700}.collab-diagnostics-list{display:inline-flex;gap:8px;overflow:hidden;flex:1}.collab-diagnostic-item{border:1px solid transparent;background:transparent;border-radius:6px;padding:2px 6px;font-size:11px;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer}.collab-diagnostic-item:hover{border-color:var(--border-color);background:#ffffff0a}.collab-clear{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:6px;height:24px;padding:0 8px;font-size:11px;cursor:pointer}.collab-overflow{position:relative}.collab-overflow-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:999px;height:24px;min-width:34px;padding:0 8px;font-size:11px;cursor:pointer}.collab-overflow-btn.open{border-color:#4fc1ff8c;background:#4fc1ff24}.collab-overflow-menu{position:absolute;right:0;top:28px;z-index:20;min-width:180px;max-width:260px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);box-shadow:0 12px 26px #00000059;padding:6px;display:flex;flex-direction:column;gap:4px}.collab-overflow-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px}.collab-overflow-initial{width:18px;height:18px;border-radius:999px;border:1px solid;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#d7ebff;flex:0 0 18px}.collab-overflow-item:hover{background:var(--bg-hover)}.collab-overflow-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@keyframes collab-notice-pulse{0%{box-shadow:0 0 #f2c94c8c}to{box-shadow:0 0 0 10px #f2c94c00}}.latex-editor{flex:1;min-height:0;display:flex;overflow:hidden;position:relative;height:100%}.editor-inner{flex:1;min-height:0;position:relative;overflow:hidden;height:100%}.editor-cm-host{position:absolute;top:0;right:0;bottom:0;left:0}.editor-inner .cm-editor{height:100%;background:transparent;color:var(--text-primary)}.editor-inner .cm-scroller{overflow:auto;font-family:JetBrains Mono,Consolas,monospace;font-size:14px;line-height:22.4px}.editor-inner .cm-gutters{background:var(--bg-primary);border-right:1px solid var(--border-color);color:var(--text-secondary)}.editor-inner .cm-lineNumbers .cm-gutterElement{padding:0 10px 0 12px;min-width:34px;line-height:inherit;position:relative;cursor:pointer}.editor-inner .cm-lineNumbers .cm-gutterElement:before{content:"▸";position:absolute;left:2px;top:0;color:#c8d4e69e;opacity:0;transition:opacity .12s ease}.editor-inner .cm-lineNumbers .cm-gutterElement[data-foldable="1"]:hover:before{opacity:1}.editor-inner .cm-lineNumbers .cm-gutterElement[data-foldable="1"][data-collapsed="1"]:before{content:"▾";opacity:1}.editor-inner .cm-content{padding:16px 0;caret-color:#fff!important}.editor-inner .cm-line{padding:0 16px;line-height:inherit}.editor-inner .cm-line.cm-wrap-indent-line{padding-left:calc(16px + var(--cm-wrap-indent, 0ch));text-indent:calc(-1 * var(--cm-wrap-indent, 0ch))}.editor-inner .cm-editor,.editor-inner .cm-content{caret-color:#fff!important}.editor-inner .cm-selectionBackground,.editor-inner .cm-line::selection,.editor-inner .cm-line *::selection{background:#6e9ccd45!important}.editor-inner .cm-focused .cm-selectionBackground{background:#6e9ccd57!important}.editor-inner .cm-cursor,.editor-inner .cm-dropCursor,.editor-inner .cm-focused .cm-cursor{border-left:2px solid #e8f3ff!important}.latex-editor.vim-normal .cm-cursor{border-left-color:transparent!important}.editor-inner .cm-activeLine,.editor-inner .cm-activeLineGutter{background:transparent!important}.editor-inner .cm-tooltip{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:8px;box-shadow:0 10px 24px #00000059}.editor-inner .cm-tooltip.cm-tooltip-autocomplete{padding:4px;min-width:260px;max-width:min(520px,calc(100vw - 32px))}.editor-inner .cm-tooltip-autocomplete>ul{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;max-height:min(320px,45vh);padding:2px}.editor-inner .cm-tooltip-autocomplete>ul>li{display:flex;align-items:center;gap:4px;border-radius:6px;color:var(--text-primary);border:1px solid transparent;min-height:28px;padding:5px 8px}.editor-inner .cm-tooltip-autocomplete>ul>li[aria-selected=true]{background:var(--bg-hover);border-color:#4fc1ff61;color:#e7f5ff}.editor-inner .cm-tooltip-autocomplete>ul>li .cm-completionLabel{color:inherit}.editor-inner .cm-tooltip-autocomplete>ul>li .cm-completionMatchedText{color:var(--accent-blue);text-decoration:none;font-weight:700}.editor-inner .cm-tooltip-autocomplete>ul>li .cm-completionDetail{color:var(--text-secondary);margin-left:auto;opacity:.92}.editor-inner .cm-tooltip-autocomplete>ul>li[aria-selected=true] .cm-completionDetail{color:#a6dcfff5}.editor-inner .cm-tooltip-autocomplete>ul>li .cm-completionIcon{display:none}.editor-inner .cm-tooltip-autocomplete>ul::-webkit-scrollbar{width:8px}.editor-inner .cm-tooltip-autocomplete>ul::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:999px}.editor-inner .cm-tooltip-autocomplete ul li[role=presentation]{color:var(--text-secondary);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:4px 8px 3px}.editor-inner .cm-tooltip.cm-completionInfo{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:8px;padding:8px 10px;max-width:min(480px,calc(100vw - 32px))}.latex-editor.font-small .cm-scroller{font-size:13px;line-height:20.8px}.latex-editor.font-large .cm-scroller{font-size:15px;line-height:24px}.latex-editor.font-xlarge .cm-scroller{font-size:17px;line-height:27.2px}.editor-inner .cm-content .comment{color:#6a9955!important}.editor-inner .cm-content .keyword{color:#569cd6}.editor-inner .cm-content .environment{color:#c586c0}.editor-inner .cm-content .math{color:#dcdcaa}.editor-inner .cm-content .reference{color:#4ec9b0}.editor-inner .cm-content .brace{color:#9cdcfe}.editor-inner .cm-content .brace-invalid{color:#f48771;background:#f4877129;border-radius:2px}.editor-inner .cm-content .number{color:#b5cea8}.editor-inner .cm-hidden-line-placeholder{display:inline-block;color:var(--text-secondary);letter-spacing:.08em}.editor-inner .cm-line.cm-line-hidden{display:none}.editor-inner .cm-content .string{color:#ce9178}.editor-inner .cm-content .typst-heading{color:#86d6ff;font-weight:600}.editor-inner .cm-content .typst-directive{color:#f2c94c}.editor-inner .cm-content .typst-macro{color:#79c2ff}.editor-inner .cm-content .find-highlight{background-color:#ffc8001f;border-radius:2px}.editor-inner .cm-content .find-highlight-current{background-color:#ffaa008c;outline:2px solid #ffad14}.editor-inner .cm-content .spell-underline{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:#f48771;text-underline-offset:2px}.editor-inner .cm-content .compile-error-highlight{background:#f487712e;border-radius:2px}.editor-inner .cm-content .compile-warning-highlight{background:#ffc35629;border-radius:2px}.editor-inner .cm-content .unicode-unsupported{text-decoration-line:underline;text-decoration-style:wavy;text-decoration-color:#ffc356f2;text-underline-offset:2px;background:#ffc35614;border-radius:2px}.editor-inner .cm-content .bib-entry-type{color:#86d6ff;font-weight:600}.editor-inner .cm-content .bib-entry-key{color:#f2c94c}.editor-inner .cm-content .bib-field-name{color:#9cdcfe}.editor-inner .cm-content .bib-equals{color:#b5cea8}.editor-inner .cm-content .bib-string{color:#ce9178}.editor-inner .cm-content .bib-field-invalid{background:#f4877133;border-radius:2px}.inline-hint-widget{margin-left:8px;display:inline-block;max-width:min(72ch,78vw);pointer-events:none;vertical-align:baseline;text-align:left}.inline-hint-widget.block{margin-left:0;display:block;max-width:min(84ch,calc(100vw - 96px));padding-left:calc(16px + var(--inline-hint-indent, 0ch))}.inline-hint-text{display:inline-block;color:#c8d0e0a8;white-space:pre-wrap;overflow-wrap:anywhere;font-family:JetBrains Mono,Consolas,monospace;font-size:inherit;line-height:inherit}.inline-hint-line{display:block}.inline-hint-widget.inline .inline-hint-line{display:inline}.inline-hint-status-widget{margin-left:0;display:block;padding-left:calc(16px + var(--inline-status-indent, 0ch));font-size:12px;line-height:inherit;vertical-align:baseline;white-space:nowrap;color:#c8d0e0a6}.inline-hint-status-spacer{display:inline-block;width:1ch}.inline-hint-status-text{display:inline-block;position:relative;left:2px}.inline-hint-status-widget.error{color:#f8b2a5}.remote-cursor-widget{position:relative;display:inline-block;width:0;pointer-events:none;z-index:7}.remote-cursor-widget .remote-cursor-caret{position:absolute;left:-1px;top:-.06em;width:2px;height:1.22em;border-radius:2px;background:var(--remote-cursor-color, #4fc1ff)}.remote-cursor-widget .remote-cursor-label{position:absolute;left:2px;top:-1.55em;padding:1px 6px;border-radius:10px;font-size:10px;line-height:1.3;color:#0f1218;background:var(--remote-cursor-color, #4fc1ff);white-space:nowrap}.editor-error-rail{position:absolute;top:0;right:2px;bottom:0;width:8px;pointer-events:none;z-index:6}.editor-error-dot{position:absolute;left:1px;width:6px;height:6px;margin-top:-3px;border-radius:999px;background:#f04f4f;box-shadow:0 0 0 1px #2808088c}.editor-suggestion-menu{position:absolute;z-index:50;min-width:220px;max-width:320px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);box-shadow:0 8px 22px #00000059;padding:8px}.editor-suggestion-title{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.editor-suggestion-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow:auto}.editor-suggestion-item,.editor-suggestion-action{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:12px;text-align:left;padding:6px 8px;cursor:pointer}.editor-suggestion-item:hover,.editor-suggestion-action:hover{background:var(--bg-hover)}.editor-suggestion-actions{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}.editor-suggestion-empty{font-size:12px;color:var(--text-secondary);padding:6px 4px}.git-panel{flex:1;min-height:0;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:10px;background:var(--bg-secondary)}.git-loading,.git-init{min-height:180px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-tertiary);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);gap:8px;padding:12px}.git-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.git-header h4{margin:0;display:inline-flex;align-items:center;font-size:14px;color:var(--text-primary)}.git-branch{border:1px solid var(--border-color);border-radius:999px;padding:2px 8px;color:var(--text-secondary);font-size:11px;display:inline-flex;align-items:center}.git-error{border:1px solid rgba(244,135,113,.45);background:#f487711f;color:#f4b7aa;border-radius:8px;padding:8px;font-size:12px}.git-remote-ok{border:1px solid rgba(126,198,153,.45);background:#7ec6991f;color:#9fd8b6;border-radius:8px;padding:8px;font-size:12px}.git-remote-box{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);padding:8px;display:flex;flex-direction:column;gap:8px}.git-remote-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.git-remote-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.git-status,.git-changes,.git-staged,.git-last-commit,.git-log{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary)}.git-status{padding:10px;display:flex;flex-direction:column;gap:10px}.git-last-commit,.git-changes,.git-staged,.git-log{padding:8px}.changes-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.change-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px;border-radius:6px}.log-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px;border-radius:6px}.change-item:hover,.log-entry:hover{background:var(--bg-hover)}.git-file-status{width:8px;height:8px;border-radius:999px}.git-file-status.modified{background:#f2c94c}.git-file-status.untracked{background:#79c2ff}.git-file-status.staged{background:#7ec699}.stage-all-btn,.toggle-log-btn,.rollback-btn,.commit-btn{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;height:28px;padding:0 10px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.stage-all-btn:hover,.toggle-log-btn:hover,.rollback-btn:hover,.commit-btn:hover{background:var(--bg-hover)}.git-commit-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.commit-input{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;height:30px;padding:0 10px}.commit-input:focus,.commit-input:focus-visible,.commit-input:invalid{outline:none;border-color:var(--border-color);box-shadow:none}.commit-msg,.log-msg,.git-status,.change-item{color:var(--text-primary);font-size:12px}.log-main{min-width:0;display:flex;flex-direction:column;gap:4px}.log-head{display:flex;align-items:baseline;gap:8px;min-width:0}.log-msg{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-hash,.commit-hash{color:var(--accent-blue);font-family:JetBrains Mono,Consolas,monospace;font-size:11px}.log-meta{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;color:var(--text-secondary);font-size:11px}.log-actions{display:inline-flex;align-items:center;justify-content:flex-end}.git-rollback-confirm{border:1px solid rgba(242,201,76,.45);background:#f2c94c1f;border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.git-rollback-title{color:var(--text-primary);font-size:12px;font-weight:600}.git-rollback-message{color:var(--text-secondary);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.git-rollback-actions{display:inline-flex;align-items:center;gap:8px}.preview-container{background-color:var(--bg-secondary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;height:100%;overflow:hidden}.pdf-viewer-content{height:100%;display:flex;flex-direction:column;min-height:0}.pdf-toolbar{height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 10px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.pdf-toolbar-left,.pdf-toolbar-center,.pdf-toolbar-right{display:flex;align-items:center;gap:8px}.pdf-toolbar-center{flex:1;justify-content:center}.pdf-toolbar-right{justify-content:flex-end}.pdf-zoom-stepper{display:inline-flex;align-items:center;gap:4px}.pdf-zoom-trigger{min-width:106px;font-weight:600}.pdf-tabs-inline{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.pdf-tab{height:30px;width:42px;min-width:42px;border:none;border-right:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;position:relative}.pdf-tab:last-child{border-right:none}.pdf-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.pdf-tab.active{color:var(--accent-blue);background:#4fc1ff1f}.pdf-tab.alert{color:#f4b27a}.pdf-tab-dot{position:absolute;top:0;right:0;transform:translate(35%,-35%);width:6px;height:6px;border-radius:999px;background:#f48771}.pdf-zoom-menu{position:relative}.pdf-zoom-menu summary{list-style:none;display:flex;align-items:center;justify-content:center}.pdf-zoom-menu summary::-webkit-details-marker{display:none}.pdf-zoom-dropdown{position:absolute;top:34px;left:0;z-index:20;min-width:140px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 20px #00000059}.pdf-toolbar-btn{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;height:28px;padding:0 10px;cursor:pointer;font-size:12px}.pdf-toolbar-btn.history-btn.flash{animation:historyFlash .17s ease-out;border-color:var(--accent-blue);box-shadow:0 0 0 2px #4fc1ff33}.pdf-toolbar-btn.icon{display:inline-flex;align-items:center;justify-content:center;width:30px;padding:0}.pdf-live-layer.is-loading{filter:blur(3px);opacity:.52;transition:filter .16s ease,opacity .16s ease}.pdf-toolbar-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.pdf-toolbar-btn.compile{display:inline-flex;align-items:center;gap:6px}.compile-icon{width:12px;height:12px}.btn-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .85s linear infinite}.pdf-toolbar-select{height:28px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;padding:0 8px;font-size:12px}.pdf-page-indicator{font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:var(--text-secondary);min-width:68px;text-align:center;cursor:pointer}.pdf-page-indicator-input{min-width:46px;max-width:72px;height:22px;border:1px solid var(--border-color);border-radius:5px;background:var(--bg-secondary);color:var(--text-primary);cursor:text}.pdf-pages-scroll,.pdf-canvas-shell{flex:1;min-height:0;overflow:auto;background:#525659;padding:12px}.pdf-canvas-shell{display:flex;align-items:flex-start;justify-content:center}.pdf-page-wrap{margin:0 auto 14px;width:fit-content;position:relative;overflow:visible}.pdf-live-layer{position:relative;width:fit-content;height:fit-content;will-change:transform}.pdf-page-canvas{display:block;background:#fff;box-shadow:0 6px 18px #00000059;position:relative;z-index:1;transition:filter .16s ease,opacity .16s ease}.pdf-viewer-content.is-rendering .pdf-page-canvas{filter:blur(3px);opacity:.52}.pdf-viewer-content.is-rendering .pdf-text-layer,.pdf-viewer-content.is-rendering .textLayer,.pdf-viewer-content.is-rendering .pdf-annotation-layer,.pdf-viewer-content.is-rendering .annotationLayer{visibility:hidden}.pdf-text-layer,.textLayer,.pdf-annotation-layer,.annotationLayer{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden}.pdf-text-layer,.textLayer{z-index:2;position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:clip;opacity:1;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-webkit-user-select:text;user-select:text;caret-color:CanvasText;--min-font-size: 1;--text-scale-factor: calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv: calc(1 / var(--min-font-size))}.pdf-text-layer span,.pdf-text-layer br,.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.textLayer>:not(.markedContent),.textLayer .markedContent span:not(.markedContent),.pdf-text-layer>:not(.markedContent),.pdf-text-layer .markedContent span:not(.markedContent){z-index:1;--font-height: 0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x: 1;--rotate: 0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}.textLayer .markedContent,.pdf-text-layer .markedContent{display:contents}.pdf-text-layer ::selection,.textLayer ::selection{background:#4fc1ff59}.pdf-text-layer br::selection,.textLayer br::selection{background:transparent}.pdf-annotation-layer,.annotationLayer{z-index:3;pointer-events:none;transform-origin:0 0}.pdf-annotation-layer section,.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;transform-origin:0 0}.pdf-annotation-layer a,.annotationLayer a{position:absolute;display:block;width:100%;height:100%;pointer-events:auto;cursor:pointer;transition:outline-color .12s ease,box-shadow .12s ease}.pdf-annotation-layer a:hover,.annotationLayer a:hover{outline:1px solid rgba(79,193,255,.58);box-shadow:inset 0 0 0 1px #4fc1ff47}.pdf-annotation-layer a:active,.annotationLayer a:active{outline:1px solid rgba(79,193,255,.7)}.pdf-logs-panel{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;background:var(--bg-secondary);padding:10px}.pdf-log-toolbar{display:flex;justify-content:flex-end}.pdf-log-filter{position:relative}.pdf-log-filter .pdf-toolbar-btn{border:none;background:transparent;color:var(--text-secondary);padding:0;height:auto}.pdf-log-filter .pdf-toolbar-btn:hover{color:var(--text-primary);background:transparent}.pdf-log-filter-trigger{display:inline-flex;align-items:center;gap:6px;font-size:12px}.pdf-log-filter-arrow{font-size:11px;opacity:.8}.pdf-log-filter-menu{position:absolute;right:0;top:34px;z-index:20;min-width:190px;display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);box-shadow:0 8px 20px #00000059}.pdf-log-alert{border:1px solid var(--border-color);border-radius:8px;padding:10px;font-size:12px}.pdf-log-alert.ok{background:#5aaa7814;color:#99d5a8}.pdf-log-alert.error{background:#f487711f;border-color:#f4877173;color:#f8b2a5}.pdf-log-alert-title{font-weight:700;margin-bottom:4px}.pdf-log-alert-message{color:var(--text-primary);white-space:pre-wrap}.pdf-log-alert-loc{margin-top:6px;font-family:JetBrains Mono,Consolas,monospace;color:var(--text-secondary)}.pdf-log-alert-loc-wrap{margin-top:6px}.pdf-log-empty{border:1px dashed var(--border-color);border-radius:8px;padding:14px 12px;text-align:center;color:var(--text-secondary);font-size:14px;background:var(--bg-tertiary)}.pdf-log-stream{border:1px solid var(--border-color);border-radius:8px;background:#1f2328;overflow:auto;min-height:0}.pdf-log-stream.raw{padding:0}.pdf-raw-log{margin:0;font-family:JetBrains Mono,Consolas,monospace;font-size:12px;color:#dce2ea;white-space:pre;overflow-wrap:normal;word-break:normal;-moz-tab-size:4;tab-size:4;padding:10px}.pdf-log-row{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:start;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px}.pdf-log-row:last-child{border-bottom:none}.pdf-log-badge{display:inline-flex;justify-content:center;align-items:center;width:38px;height:20px;border-radius:5px;font-size:10px;font-weight:700;letter-spacing:.4px}.pdf-log-row.error .pdf-log-badge{background:#e25c5c33;color:#f4a7a7}.pdf-log-row.warning .pdf-log-badge{background:#dda6472e;color:#f1d08f}.pdf-log-row.info .pdf-log-badge{background:#6495ed2e;color:#9ec0ff}.pdf-log-body{display:flex;flex-direction:column;gap:3px}.pdf-log-top-row{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:10px;align-items:start}.pdf-log-main-col{min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;column-gap:8px;row-gap:2px}.pdf-log-fix-col{display:flex;justify-content:center;align-items:center}.pdf-ai-fix-btn{min-width:84px}.pdf-log-text{white-space:pre-wrap;overflow-wrap:anywhere;color:#dce2ea}.pdf-log-loc{font-family:JetBrains Mono,Consolas,monospace;color:#8da0b6;white-space:nowrap}.pdf-log-detail{color:#b9c3cf;font-size:12px;white-space:pre-wrap}.pdf-log-loc-link{border:none;background:transparent;color:#8dc4ff;cursor:pointer;padding:0;text-align:left;font-family:JetBrains Mono,Consolas,monospace;font-size:12px;text-decoration:underline dotted;white-space:nowrap}@media (max-width: 980px){.pdf-log-top-row{grid-template-columns:minmax(0,1fr);gap:6px}.pdf-log-fix-col{justify-content:flex-start}}.pdf-log-loc-link:hover{color:#c2e1ff;text-decoration-style:solid}.pdf-log-loc-link:active{transform:translateY(1px)}.pdf-log-actions{display:inline-flex;align-items:center;gap:8px}.pdf-log-show-more{border:none;background:transparent;color:#9ec0ff;cursor:pointer;text-align:left;font-size:11px;text-decoration:underline;width:fit-content;padding:0}.pager-flash{display:inline-block;animation:pagerFlash .17s ease-out}@keyframes pagerFlash{0%{transform:translateY(0)}50%{transform:translateY(-1px)}to{transform:translateY(0)}}.pdf-footer{height:38px;flex-shrink:0;border-top:1px solid var(--border-color);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;gap:8px}.error-panel{background-color:#2d1f1f;border-top:2px solid #f48771;max-height:300px;display:flex;flex-direction:column;flex-shrink:0}.error-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f487711a;border-bottom:1px solid rgba(244,135,113,.3)}.error-title{display:flex;align-items:center;gap:10px;color:#f48771;font-weight:600;font-size:14px}.error-icon{width:20px;height:20px}.error-actions{display:flex;gap:8px}.error-btn{background:none;border:none;color:#a0a0a0;cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.error-btn:hover{background-color:#ffffff1a;color:#fff}.error-main-message{padding:12px 16px;color:#ffb4a9;font-size:13px;line-height:1.5;border-bottom:1px solid rgba(244,135,113,.2)}.error-log-container{flex:1;overflow:hidden;display:flex;flex-direction:column}.error-log-header{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#0003;color:#858585;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.05)}.error-log-content{flex:1;overflow:auto;padding:12px 16px;background-color:#1a1a1a}.error-log-content pre{margin:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:11px;line-height:1.6;color:#d4d4d4;white-space:pre-wrap;word-wrap:break-word}.error-log-content pre div{padding:1px 0}.log-error-line{color:#f48771;font-weight:500;background-color:#f487711a;padding:2px 4px!important;margin:2px 0;border-radius:2px}.log-warning-line{color:#fc0;background-color:#ffcc001a;padding:2px 4px!important;margin:2px 0;border-radius:2px}.log-file-line{color:#4fc1ff}.pdf-viewer-content{flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden}.pdf-viewer-content .pdf-viewer{flex:1;min-height:0}.pdf-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a0a0a0;text-align:center;padding:40px;height:100%;background-color:#525659}.pdf-placeholder svg{width:64px;height:64px;margin-bottom:20px;opacity:.4;color:#fff}.pdf-placeholder h3{font-size:18px;font-weight:500;color:#fff;margin-bottom:8px}.pdf-placeholder p{font-size:14px;color:#a0a0a0;max-width:280px;line-height:1.5}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes historyFlash{0%{transform:translateY(0)}50%{transform:translateY(-1px)}to{transform:translateY(0)}}.typst-preview-root{display:flex;flex-direction:column;height:100%;background:#2d2f34}.typst-toolbar{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-bottom:1px solid #1f2023;background:#34363b}.typst-status{color:#d6d9df;font-size:12px}.typst-stage{position:relative;flex:1;overflow:auto;padding:16px}.typst-pages-scroll{display:flex;flex-direction:column;gap:16px}.typst-page-wrap{display:flex;justify-content:center}.typst-page-wrap.single{min-height:calc(100% - 8px);align-items:flex-start}.typst-page{max-width:100%}.typst-page svg{display:block;width:100%;height:auto;box-shadow:0 12px 30px #00000047;background:#fff}.typst-page a{cursor:pointer;text-decoration:underline dotted rgba(79,193,255,.6)}.typst-page a:hover{outline:1px solid rgba(79,193,255,.5)}.typst-placeholder{height:100%;display:flex;align-items:center;justify-content:center;color:#c4c8ce;font-size:14px}.typst-error{position:absolute;left:16px;right:16px;bottom:16px;background:#a82d2de6;border:1px solid rgba(255,160,160,.5);color:#fff;font-size:12px;padding:8px 10px;border-radius:6px}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:0 16px;background-color:var(--primary);color:#fff;font-size:12px;height:26px}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:16px}.find-replace{position:absolute;top:44px;right:12px;z-index:40;width:min(760px,calc(100% - 24px));background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 10px 24px #00000059;padding:8px;display:flex;flex-direction:column;gap:8px}.find-row,.replace-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}.find-input{flex:1;background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:7px 10px;border-radius:8px;font-size:12px;outline:none;min-width:120px}.find-input:focus{border-color:var(--accent-blue)}.match-count{font-size:11px;color:var(--text-secondary);min-width:58px;text-align:center}.find-btn{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);width:28px;height:28px;padding:0;border-radius:999px;cursor:pointer;font-size:11px;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.find-btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--border-hover)}.find-btn:disabled{opacity:.4;cursor:not-allowed}.find-btn.active{border-color:#4fc1ff8c;background:#4fc1ff24}.find-btn.icon-toggle{border-radius:8px}.find-btn.icon-only{border-radius:999px;background:var(--primary);border-color:var(--primary);color:#fff}.find-btn.icon-only:disabled{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-secondary)}.find-close{background:none;border:none;color:var(--text-secondary);width:28px;height:28px;border-radius:8px;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.find-close:hover{color:var(--accent-red);background:#f4877126}.find-replace.compact .find-row,.find-replace.compact .replace-row{flex-wrap:wrap}.find-replace.compact .find-input{min-width:180px}.find-replace.compact .match-count{min-width:auto}.find-replace.compact .find-btn,.find-replace.compact .find-close{width:auto;min-width:28px;padding:0 10px;border-radius:8px}.spell-check-panel{position:absolute;bottom:0;left:0;right:0;background-color:var(--bg-secondary);border-top:1px solid var(--border-color);max-height:180px;overflow-y:auto;z-index:10}.spell-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color);background-color:#f487711a}.spell-title{font-size:13px;font-weight:500;color:var(--accent-red)}.spell-error{padding:12px 16px}.spell-word{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:14px}.spell-word-text{color:var(--accent-red);font-weight:500;padding:4px 8px;background-color:#f487711a;border-radius:4px}.spell-nav{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px}.spell-suggestions{display:flex;flex-wrap:wrap;gap:8px}.suggestion-btn{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--accent-blue);padding:6px 12px;border-radius:4px;cursor:pointer;font-size:13px}.suggestion-btn:hover{background-color:var(--primary);border-color:var(--primary);color:#fff}.spell-toggle{font-size:10px;color:var(--text-secondary)}.spell-errors-list{max-height:150px;overflow-y:auto;padding:8px}.spell-error-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:4px;margin-bottom:4px;background-color:var(--bg-tertiary)}.spell-error-word{color:var(--accent-red);font-weight:500;font-size:13px}.spell-error-line{color:var(--text-secondary);font-size:11px}.spell-more{text-align:center;padding:8px;color:var(--text-secondary);font-size:12px}.projects-panel{position:absolute;top:60px;left:16px;width:320px;max-height:calc(100vh - 100px);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 32px #0006;z-index:1000;overflow:hidden}.projects-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color);background-color:var(--bg-tertiary)}.projects-header h3{font-size:14px;font-weight:600;margin:0}.projects-header-actions{display:flex;align-items:center;gap:8px}.projects-new-btn{display:flex;align-items:center;gap:6px;background-color:var(--primary);color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .15s}.projects-new-btn:hover{background-color:var(--primary-hover)}.projects-new-btn.icon-only{width:30px;height:30px;padding:0;justify-content:center}.projects-close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s}.projects-close-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.projects-list{max-height:400px;overflow-y:auto;padding:8px}.project-item{display:flex;align-items:center;padding:12px;cursor:pointer;border-radius:6px;margin-bottom:4px;transition:all .15s;gap:12px}.project-item:hover{background-color:var(--bg-hover)}.project-item.active{background-color:var(--bg-active)}.project-item.renaming,.project-item.renaming:hover,.project-item.renaming.active{background:transparent}.project-info{flex:1;display:flex;flex-direction:column;gap:4px}.project-name{font-size:14px;font-weight:500;color:var(--text-primary)}.project-rename-input{width:100%;min-width:0;font-size:14px;font-weight:500;color:var(--text-primary);background-color:var(--bg-tertiary);border:1px solid var(--accent-blue);border-radius:4px;padding:3px 6px;outline:none}.project-rename-input::selection{background:#4fc1ff52}.project-date{font-size:11px;color:var(--text-secondary)}.project-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.project-item:hover .project-actions{opacity:1}.project-item.renaming .project-actions{opacity:0;pointer-events:none}.project-edit-btn,.project-delete-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center}.project-edit-btn:hover{color:var(--accent-blue);background-color:#4fc1ff1a}.project-delete-btn{font-size:18px}.project-delete-btn:hover{color:var(--accent-red);background-color:#f487711a}.notification{position:fixed;bottom:40px;left:50%;transform:translate(-50%);background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);padding:12px 20px;border-radius:8px;font-size:14px;z-index:10000;box-shadow:0 8px 32px #0006;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.resizable-container{display:flex;flex:1;min-height:0;overflow:hidden;position:relative;gap:10px}.panel-left{flex-shrink:0;background-color:var(--bg-secondary);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:12px}.panel-center{flex:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;background-color:var(--bg-primary);position:relative;border:1px solid var(--border-color);border-radius:12px}.panel-right{flex-shrink:0;background-color:#525659;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:12px}.resize-handle{width:8px;cursor:col-resize;flex-shrink:0;position:relative;background-color:transparent;transition:background-color .2s;border-radius:8px}.resize-handle:hover,.resize-handle.active{background-color:var(--accent-blue)}.resize-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;cursor:col-resize}.tools-panel{position:fixed;top:62px;right:14px;width:420px;max-height:calc(100vh - 90px);overflow:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 14px 30px #00000073;z-index:1200}.tools-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color)}.tools-header-actions{display:inline-flex;gap:6px}.tools-header h3{margin:0;font-size:14px}.tools-close{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;width:24px;height:24px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.tools-close:hover{background:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.tools-close:active{transform:translateY(1px)}.tools-close:focus-visible{outline:none;box-shadow:0 0 0 2px #4fc1ff2e}.tools-section{padding:12px 14px;border-bottom:1px solid var(--border-color)}.tools-section.compact{padding-top:10px;padding-bottom:10px}.tools-section h4{margin:0 0 8px;font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tool-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:4px}.tool-card span{font-size:11px;color:var(--text-secondary)}.tool-card strong{font-size:15px;color:var(--text-primary)}.tools-log{margin:0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:8px;font-size:12px;max-height:140px;overflow:auto;white-space:pre-wrap;word-break:break-word}.tools-log.error{border-color:#f4877180;color:#ffb3a4}.tools-error-box{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);padding:10px;display:flex;flex-direction:column;gap:6px}.tools-error-box.error{border-color:#f48771b3;background:#f4877114}.tools-error-main{font-size:14px;color:var(--text-primary);line-height:1.35}.tools-error-location{font-size:12px;color:#ffb3a4}.tools-error-location.muted{color:var(--text-secondary)}.tools-log-rows{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);max-height:220px;overflow:auto}.tools-log-row{display:flex;gap:8px;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.04)}.tools-log-row:last-child{border-bottom:none}.tools-log-row.error{background:#f4877114}.tools-log-row.warning{background:#d69d851a}.tools-log-badge{width:28px;flex-shrink:0;font-size:10px;border-radius:4px;text-align:center;height:16px;line-height:16px;margin-top:2px;background:#ffffff14;color:var(--text-secondary)}.tools-log-row.error .tools-log-badge{background:#f4877140;color:#ffd1c7}.tools-log-row.warning .tools-log-badge{background:#d69d8540;color:#f3d7c9}.tools-log-body{min-width:0;display:flex;flex-direction:column;gap:2px}.tools-log-text{font-size:12px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.tools-log-loc{font-size:10px;color:var(--text-secondary)}.shortcuts-panel{position:fixed;top:62px;right:14px;width:330px;max-height:calc(100vh - 90px);overflow:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 14px 30px #00000073;z-index:1200}.settings-panel{position:fixed;top:62px;right:14px;width:420px;max-height:calc(100vh - 90px);overflow:hidden;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 14px 30px #00000073;z-index:1200;display:flex;flex-direction:column}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color)}.settings-header h3{margin:0;font-size:14px}.settings-tabs{display:flex;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.settings-tab{flex:1;height:36px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer}.settings-tab.active{color:var(--text-primary);border-bottom-color:var(--accent-blue)}.settings-content{padding:12px;overflow:auto}.settings-group{border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);padding:10px;display:flex;flex-direction:column;gap:10px}.settings-group h4{margin:0;font-size:13px;color:var(--text-primary)}.settings-group p{margin:0;font-size:12px;color:var(--text-secondary)}.settings-toggle-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:8px 0}.settings-control-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.settings-mainfile-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.settings-mainfile-input-wrap{display:flex;align-items:center;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);overflow:hidden}.settings-mainfile-input{border:none;border-radius:0;background:transparent}.settings-mainfile-input:focus{outline:none}.settings-mainfile-ext{padding:0 10px;font-size:12px;color:var(--text-secondary);border-left:1px solid var(--border-color);background:var(--bg-tertiary);line-height:30px}.settings-inline-select{min-width:150px}.settings-toggle-title{font-size:13px;color:var(--text-primary);margin-bottom:2px}.settings-toggle-row .tool-muted,.settings-control-row .tool-muted{max-width:360px;line-height:1.35}.settings-switch{width:44px;height:24px;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-tertiary);padding:2px;display:inline-flex;align-items:center;justify-content:flex-start;flex-shrink:0;cursor:pointer;transition:background .2s,border-color .2s}.settings-switch-knob{width:18px;height:18px;border-radius:999px;background:#c2cad8;transform:translate(0);transition:transform .2s ease}.settings-switch.on{border-color:#4fc1ffa6;background:#4fc1ff33}.settings-switch.on .settings-switch-knob{transform:translate(20px);background:#eaf6ff}.file-pattern-list{max-height:220px;overflow:auto;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);padding:6px;display:flex;flex-direction:column;gap:6px}.file-pattern-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);padding:6px 8px}.file-pattern-item code{font-size:12px;color:var(--text-primary)}.file-pattern-remove{width:22px;height:22px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;padding:0;font-size:15px}.file-pattern-remove:hover{color:#f38a8a;border-color:#f38a8a}.file-pattern-add{display:flex;gap:8px}.file-pattern-input{flex:1;height:32px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);padding:0 10px;font-size:12px}.file-pattern-input:focus,.file-pattern-input:focus-visible,.file-pattern-input:invalid{outline:none;border-color:var(--border-color);box-shadow:none}.file-pattern-actions{display:flex;gap:8px}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color)}.shortcuts-header h3{margin:0;font-size:14px}.shortcuts-close{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;width:24px;height:24px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.shortcuts-close:hover{background:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.shortcuts-close:focus-visible{outline:none;box-shadow:0 0 0 2px #4fc1ff2e}.shortcuts-list{display:flex;flex-direction:column;gap:4px;padding:10px}.shortcut-item{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center;padding:8px;border-radius:6px;background:var(--bg-tertiary);border:1px solid var(--border-color);font-size:12px}.shortcut-item kbd{font-family:JetBrains Mono,Consolas,monospace;font-size:11px;border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:4px;padding:2px 6px;color:var(--text-primary);justify-self:start}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000075;z-index:1400;display:flex;align-items:center;justify-content:center;padding:20px}.admin-overlay{padding:0;align-items:stretch;justify-content:stretch}.confirm-panel{width:min(460px,100%);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 14px 32px #0000007a;padding:16px;display:flex;flex-direction:column;gap:12px}.confirm-title{font-size:16px;font-weight:600;color:var(--text-primary)}.confirm-message{font-size:13px;color:var(--text-secondary);line-height:1.45}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-btn{height:32px;border-radius:7px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);padding:0 12px;font-size:12px;cursor:pointer}.confirm-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.confirm-btn.danger{background:#8f3d33;border-color:#ab4b3f;color:#fff}.tools-history{display:flex;flex-direction:column;gap:6px}.history-item{display:grid;grid-template-columns:auto auto 1fr;gap:8px;font-size:12px;padding:6px 8px;border-radius:6px;background:var(--bg-tertiary)}.history-item.ok{border-left:3px solid #4fc1ff}.history-item.fail{border-left:3px solid #f48771}.tool-muted{color:var(--text-secondary);font-size:12px}.tools-spell-controls{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin-bottom:10px}.tools-spell-select{height:28px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:6px;padding:0 8px;font-size:12px}.tools-spell-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}.tools-spell-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary)}.tools-spell-actions{display:flex;gap:6px}.tools-ai-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.tools-ai-custom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:8px}.tools-ai-custom .file-pattern-input{min-width:0}.tools-ai-preview-wrap{border:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:8px}.tools-ai-preview{white-space:pre-wrap;max-height:140px;overflow:auto;font-size:12px;color:var(--text-primary)}.tools-ai-preview-actions{display:flex;gap:8px}.editor-with-chat{display:grid;grid-template-rows:minmax(0,1fr) 8px 220px;min-height:0;height:100%}.chat-resize-handle{height:8px;cursor:row-resize;background:transparent;border-radius:6px;touch-action:none;-webkit-user-select:none;user-select:none;transition:background .15s ease;position:relative}.chat-resize-handle:before{content:"";position:absolute;top:50%;left:50%;width:56px;height:2px;border-radius:999px;background:#aabed247;transform:translate(-50%,-50%);transition:background .15s ease,width .15s ease}.chat-resize-handle:hover:before{background:#8cbadc7a}.chat-resize-handle:active:before{width:48px;background:#4fc1ffbf}.chat-dock{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:16px;box-shadow:none;display:flex;flex-direction:column;gap:8px;padding:8px;margin:0 8px 8px;min-height:0;height:calc(100% - 8px);overflow:hidden}.chat-dock.is-collapsed{gap:0;padding:0;justify-content:center;margin:0 8px 8px;border:0;background:transparent;border-radius:0;box-shadow:none;height:100%}.chat-dock-header{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border-color);padding-bottom:6px;font-size:12px;color:var(--text-secondary)}.chat-dock-header-spacer{min-height:1px}.chat-dock-header-actions{display:inline-flex;gap:8px;margin-left:auto}.chat-dock-action{height:26px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);font-size:12px;padding:0 8px;cursor:pointer}.chat-dock-action.icon{width:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}.chat-dock-action:hover{background:var(--bg-hover)}.chat-dock-action:disabled{opacity:.5;cursor:not-allowed}.chat-dock-collapsed{border-top:1px solid var(--border-color);padding:6px 8px;display:flex;justify-content:flex-end}.chat-dock-messages{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px}.chat-msg{max-width:100%}.chat-msg.user{margin-left:auto;width:min(100%,76%);border:1px solid var(--border-color);border-radius:8px;padding:8px;background:var(--bg-tertiary)}.chat-msg.assistant{margin-right:auto;width:min(100%,96%);padding:2px 0;border:0;background:transparent}.chat-role{display:block;font-size:11px;color:var(--text-secondary);margin-bottom:4px}.chat-msg.assistant .chat-role{display:none}.chat-content{white-space:pre-wrap;font-size:13px}.chat-dock-input-row{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:center;margin-top:auto;padding-top:0;border-top:0}.chat-dock-input-row .file-pattern-input{min-width:0}.chat-input-wrap{position:relative;min-width:0;padding:0}.chat-input-wrap .file-pattern-input{width:100%;height:42px;border-radius:21px;padding-right:46px}.chat-input-wrap .chat-send-btn{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.chat-dock.is-collapsed .chat-dock-input-row{margin-top:0;padding:0;border-top:0}.chat-dock.is-collapsed .chat-input-wrap{padding:6px}.chat-dock-input-row .file-pattern-input:focus,.chat-dock-input-row .file-pattern-input:focus-visible{outline:none;border-color:var(--border-color);box-shadow:none}.chat-send-btn{width:30px;height:30px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.chat-send-btn:hover{background:var(--bg-hover);border-color:var(--border-color);color:var(--text-primary)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 900px){.editor-with-chat{grid-template-rows:minmax(0,1fr) 8px minmax(170px,220px)}.chat-dock{margin:0 6px 6px;padding:6px;border-radius:14px}.chat-dock-messages{max-height:none}.chat-dock-input-row{grid-template-columns:minmax(0,1fr)}.chat-dock-header{flex-direction:row;align-items:center}}@media (max-width: 960px){.tools-panel{right:8px;left:8px;width:auto;max-height:calc(100vh - 72px)}}.no-project{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:24px 24px 32px;text-align:center}.no-project h2{font-size:44px;background:linear-gradient(135deg,#4fc1ff,#00d4aa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.no-project p{color:var(--text-secondary);font-size:22px;margin-bottom:24px}.no-project-actions button{padding:12px 24px;background-color:var(--primary);border:none;color:#fff;border-radius:6px;font-size:14px;cursor:pointer}.no-project-actions button:hover{background-color:var(--primary-hover)}.no-project-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;min-height:40px}.welcome-topbar{width:min(1220px,100%);display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-height:56px;margin-bottom:14px}.welcome-headline{text-align:left}.welcome-layout{width:min(1220px,100%);display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}.welcome-left-panel{display:flex;flex-direction:column;gap:12px}.welcome-main-panel{min-width:0;width:min(900px,100%);display:flex;flex-direction:column;gap:16px}.welcome-user-chip{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid var(--border-color);background:transparent;background-image:none;background-color:transparent;color:var(--text-secondary);border-radius:999px;height:50px;padding:0 16px;font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.welcome-user-chip:hover{background:var(--bg-tertiary);border-color:var(--border-hover)}.welcome-user-chip:focus-visible{outline:none;box-shadow:0 0 0 3px #a0aab838}.welcome-user-menu-wrap{position:relative}.welcome-user-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:12px;padding:10px;box-shadow:0 14px 32px #00000073;z-index:40}.welcome-user-menu-item{width:100%;height:44px;display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;background:transparent;color:var(--text-primary);border-radius:9px;padding:0 12px;font-size:17px;cursor:pointer}.welcome-user-menu-item:hover{background:var(--bg-hover);border-color:var(--border-color)}.welcome-user-menu-item.danger{color:#f48771}.welcome-user-menu-item.danger:hover{background:#f487711f;border-color:#f487715c}.welcome-primary-btn,.welcome-secondary-btn{border:1px solid var(--border-color);border-radius:10px;height:48px;padding:0 20px;font-size:18px;cursor:pointer}.welcome-primary-btn{background:linear-gradient(180deg,#4fc1ff59,#4fc1ff33);color:#eaf6ff;border-color:#4fc1ff8c}.welcome-secondary-btn{background:var(--bg-secondary);color:var(--text-primary)}.invite-notifier-wrap{position:fixed;right:24px;top:86px;z-index:35;display:flex;flex-direction:column;gap:8px}.invite-notifier-toggle{border:1px solid rgba(79,193,255,.55);background:var(--bg-secondary);color:var(--text-primary);border-radius:999px;height:48px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:17px}.invite-notifier-count{min-width:24px;height:24px;border-radius:999px;background:#4fc1ff33;color:#bfeaff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.invite-notifier-panel{width:min(460px,calc(100vw - 40px));border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:14px;padding:12px;box-shadow:0 16px 36px #00000059;display:flex;flex-direction:column;gap:8px}.invite-notifier-item{border:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:12px;padding:12px;display:flex;align-items:center;gap:8px}.invite-notifier-text{min-width:0;flex:1;text-align:left}.invite-notifier-text span{display:block;color:var(--text-primary);font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invite-notifier-text small{color:var(--text-secondary);font-size:15px}.invite-notifier-actions{display:inline-flex;gap:6px}.auth-screen{flex:1;min-height:0;display:grid;grid-template-columns:7fr 3fr;gap:18px;padding:24px;border-radius:0;background:#000;border:0}.auth-art{position:relative;min-height:420px;padding:0;border-radius:16px;border:1px solid var(--border-color);background:var(--bg-secondary);overflow:hidden}.auth-art-image{width:100%;height:100%;object-fit:cover;display:block}.auth-panel{display:grid;place-items:center;padding:32px;border-radius:16px;border:1px solid var(--border-color);background:var(--bg-secondary)}.auth-card{width:min(460px,100%);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:14px;padding:34px;box-shadow:0 18px 36px #03080f59;text-align:left}.auth-card h3{margin:0;color:var(--text-primary);font-size:28px}.auth-card p{margin:8px 0 0;color:var(--text-secondary);font-size:14px}.auth-form-row{margin-top:20px}.auth-input{width:100%;height:48px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-tertiary);color:var(--text-primary);padding:0 14px;font-size:14px;outline:none}.auth-input:focus{border-color:#4fc1ffb8;box-shadow:0 0 0 3px #4fc1ff29}.auth-submit-row{margin-top:28px}.auth-submit{width:100%;height:50px;border:1px solid var(--primary-hover);border-radius:10px;background:var(--primary);color:var(--text-primary);font-size:15px;font-weight:600;cursor:pointer}.auth-submit:hover{background:var(--primary-hover)}.auth-submit:disabled{opacity:.65;cursor:not-allowed}.auth-error{margin-top:10px;color:var(--accent-red);font-size:13px}@media (max-width: 900px){.auth-screen{grid-template-columns:1fr;gap:14px;padding:16px}.auth-art{min-height:220px;padding:0}.auth-panel{padding:18px 14px}.auth-card{padding:24px}}@media (max-width: 980px){.welcome-topbar{flex-direction:column;align-items:flex-start}.welcome-project-toolbar{grid-template-columns:1fr;align-items:stretch}.welcome-layout{grid-template-columns:1fr}.welcome-left-panel{width:100%}.welcome-search-wrap{width:100%;justify-self:stretch}.new-project-github-row.split,.new-project-actions,.new-project-github-actions{grid-template-columns:1fr}.welcome-search-input{min-width:0;width:100%}.invite-notifier-wrap{position:static;width:min(560px,100%);margin-top:10px}}.welcome-projects{margin-top:0;width:100%;text-align:left;min-height:360px}.welcome-projects h3{margin:0 0 10px;font-size:24px;color:var(--text-secondary);font-weight:600}.welcome-project-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-bottom:14px;width:100%;box-sizing:border-box}.welcome-split-row{width:100%;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.welcome-filter-group{display:inline-flex;gap:10px}.welcome-filter-btn{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:999px;height:48px;width:168px;padding:0 14px;font-size:17px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.welcome-filter-btn.active{color:#dff2ff;border-color:#4fc1ff99;background:#4fc1ff29}.welcome-new-project-btn{width:100%;justify-content:flex-start;border-radius:10px;border-color:var(--border-color);background:var(--bg-secondary);color:var(--text-primary)}.welcome-new-project-btn:hover{background:var(--bg-hover);border-color:var(--border-hover)}.welcome-new-project-btn.active{border-color:var(--border-hover);background:var(--bg-hover);color:var(--text-primary)}.welcome-search-wrap{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:10px;height:48px;padding:0 14px;width:100%;min-width:0;justify-self:stretch}.welcome-search-input{border:none;outline:none;background:transparent;color:var(--text-primary);font-size:17px;min-width:0;width:100%}.welcome-project-list{display:flex;flex-direction:column;gap:12px}.welcome-project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:stretch;width:100%}.welcome-project-actions{display:inline-flex;gap:8px;align-items:center;flex-shrink:0}.welcome-project-action{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:16px;padding:10px 12px;border-radius:10px;cursor:pointer;white-space:nowrap}.welcome-project-action.icon{width:46px;height:46px;padding:0;display:inline-flex;align-items:center;justify-content:center}.welcome-project-action:hover{color:var(--text-primary);background:var(--bg-hover)}.welcome-project-action.active{border-color:#4fc1ffad;background:#4fc1ff29;color:#d8f1ff}.welcome-project-action.passive{opacity:.78;cursor:default}.welcome-project-action.danger:hover{border-color:#f48771b3;color:#f48771}.no-project .welcome-project-item{flex:1;min-width:0;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;outline:none}.no-project .welcome-project-item:focus-visible{border-color:#4fc1ffa6;box-shadow:0 0 0 2px #4fc1ff38}.welcome-project-rename-input{width:100%;height:46px;font-size:18px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:0 14px;outline:none}.welcome-project-rename-input:focus{border-color:#4fc1ffcc;box-shadow:0 0 0 2px #4fc1ff2e}.welcome-project-rename-input::selection{background:#4fc1ff52}.no-project .welcome-project-item:hover{background:var(--bg-hover);border-color:var(--border-hover)}.share-invite-row{width:100%}.no-project .welcome-project-item.share-invite-item{padding:0;background:var(--bg-secondary);border-color:var(--border-color)}.no-project .welcome-project-item.share-invite-item:hover{background:var(--bg-secondary);border-color:var(--border-color)}.share-invite-input{width:100%;border:0;background:transparent;height:46px;box-sizing:border-box;padding:0 14px;font-size:17px}.share-invite-input:focus,.share-invite-input:focus-visible{outline:none;border-color:transparent;box-shadow:none}.welcome-project-item small{color:var(--text-secondary);font-size:15px}.welcome-project-item span{font-size:20px}.new-project-menu{margin-top:14px;margin-bottom:8px;border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:12px;padding:16px;width:min(900px,100%)}.new-project-menu.share-panel{overflow:hidden;transform-origin:top;transition:max-height .24s ease,opacity .2s ease,transform .2s ease,margin .2s ease,padding .2s ease,border-color .2s ease}.new-project-menu.share-panel.share-open{max-height:1400px;opacity:1;transform:translateY(0)}.new-project-menu.share-panel .new-project-section{transition:opacity .16s ease,transform .16s ease}.new-project-menu.share-panel.share-switching .new-project-section{opacity:0;transform:translateY(4px)}.new-project-menu.share-panel.share-closed{max-height:0;opacity:0;transform:translateY(-6px);margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-color:transparent;pointer-events:none}.new-project-inline-menu{margin-top:0;width:100%}.new-project-modal{width:min(620px,calc(100vw - 32px));border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:12px;padding:14px;box-shadow:0 26px 60px #00000073}.admin-modal{width:min(560px,calc(100vw - 32px));border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:12px;padding:16px;box-shadow:0 26px 60px #00000073}.admin-page-modal{width:100vw;height:100vh;max-height:100vh;overflow:auto;border:0;background:var(--bg-secondary);border-radius:0;padding:24px;box-shadow:none}.admin-page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.admin-page-header h3{margin:0;color:var(--text-primary);font-size:27px}.admin-page-actions{display:inline-flex;align-items:center;gap:12px}.admin-page-actions .file-pattern-input{min-width:440px;height:56px;font-size:20px}.admin-page-grid{display:grid;grid-template-columns:1fr;gap:20px}.admin-section{border:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:12px;padding:18px}.admin-section h4{margin:0 0 14px;color:var(--text-primary);font-size:24px}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;min-width:820px}.admin-table th,.admin-table td{border-bottom:1px solid var(--border-color);text-align:left;padding:12px;color:var(--text-primary);font-size:20px}.admin-table th{color:var(--text-secondary);font-weight:700}.admin-row-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;align-items:center;gap:18px}.admin-row-main-actions{display:grid;grid-template-columns:auto minmax(240px,300px) auto;align-items:center;gap:16px;min-width:0}.admin-row-danger-action{margin-left:0}.admin-actions-cell{min-width:860px}.admin-actions-cell-right{text-align:right}.admin-mini-input{width:250px;height:56px;font-size:20px}.admin-muted{margin:0;color:var(--text-secondary);font-size:20px}.admin-modal-subtitle{margin:0 0 12px;color:var(--text-secondary);font-size:13px}.admin-form-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:18px}.admin-page-modal .file-pattern-input{height:56px;font-size:20px}.admin-page-modal .new-project-btn{height:56px;font-size:20px;padding:0 16px}.new-project-modal-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:10px}.new-project-modal-header h3{margin:0;font-size:16px;color:var(--text-primary)}.new-project-toggle{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:8px;height:34px;padding:0 12px;font-size:12px;cursor:pointer;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px}.new-project-toggle:hover{background:var(--bg-hover)}.new-project-section{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.new-project-section:last-child{margin-bottom:0}.new-project-label{font-size:12px;font-weight:700;color:var(--text-secondary)}.new-project-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.new-project-choice{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:8px;height:32px;padding:0 12px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%}.new-project-choice.active{border-color:#4fc1ffb3;box-shadow:0 0 0 2px #4fc1ff24}.new-project-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}.new-project-btn{border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);border-radius:8px;height:34px;padding:0 12px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%}.new-project-btn:hover{background:var(--bg-hover)}.new-project-btn.primary{border-color:#4fc1ff80;background:linear-gradient(180deg,#4fc1ff4d,#4fc1ff2e);color:#eaf6ff}.new-project-btn.primary:hover{filter:brightness(1.04)}.new-project-btn.danger{border-color:#f4877180;color:#f48771}.new-project-github{display:flex;flex-direction:column;gap:10px}.new-project-github-row{display:grid;grid-template-columns:1fr;gap:10px}.new-project-github-row.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.new-project-github-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:center}.new-project-github-actions>.new-project-btn:first-child:last-child{grid-column:1 / -1}.new-project-github-row.split .file-pattern-input{min-width:0;width:100%}.admin-projects-table th:nth-child(3),.admin-projects-table td:nth-child(3){min-width:280px;white-space:nowrap}.new-project-menu{--share-actions-width: 100px}.new-project-menu .welcome-project-row{grid-template-columns:minmax(0,1fr) var(--share-actions-width)}.new-project-menu .welcome-project-actions{width:var(--share-actions-width);justify-content:flex-end}.new-project-menu .share-section-title-row{grid-template-columns:1fr}.pdf-viewer-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;background-color:#525659;color:#fff;gap:16px;flex:1}.pdf-viewer-placeholder.compiling{background-color:var(--bg-secondary)}.pdf-viewer-placeholder svg{width:64px;height:64px;opacity:.4;color:#fff}.pdf-viewer-placeholder.compiling svg{width:48px;height:48px;opacity:1}.pdf-viewer-placeholder h3{font-size:18px;font-weight:500;color:#fff;margin:0}.pdf-viewer-placeholder p{font-size:14px;color:#a0a0a0;max-width:280px;text-align:center;line-height:1.5;margin:0}.document-outline{flex:1;overflow-y:auto;padding:12px 8px;background-color:var(--bg-primary);display:flex;flex-direction:column;gap:2px}.outline-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;color:var(--text-secondary)}.outline-empty svg{margin-bottom:16px;opacity:.3}.outline-empty p{font-size:14px;margin:0 0 8px}.outline-item{display:flex;align-items:center;gap:5px;padding:3px 5px;border-radius:6px;cursor:pointer;transition:all .15s ease;font-size:13px;line-height:1.4;border-left:3px solid transparent}.outline-item:hover{background-color:var(--bg-hover);border-left-color:var(--accent-blue)}.outline-item.level-0{padding-left:12px;font-weight:600;font-size:14px}.outline-item.level-1{padding-left:12px;font-weight:600;font-size:13px}.outline-item.level-2{padding-left:24px}.outline-item.level-3{padding-left:36px}.outline-item.level-4{padding-left:48px}.outline-item.level-5{padding-left:60px}.outline-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px}.outline-icon svg{width:16px;height:16px}.outline-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.outline-line{font-size:11px;color:var(--text-secondary);font-family:JetBrains Mono,monospace;flex-shrink:0}
