*{margin:0;padding:0;box-sizing:border-box}:root{--primary:#2c5aa0;--bg:#f5f5f5;--panel-bg:#fff;--border:#e0e0e0;--text:#333;--text-secondary:#666;--editor-bg:#fafafa;--shadow:0 2px 8px rgba(0,0,0,0.08);--success:#27ae60;--warning:#f39c12;--danger:#e74c3c}
html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;overflow-x:hidden}#app,#app-skeleton{height:100vh;height:100dvh}#app{display:flex;flex-direction:column;min-height:0}.browser-compat-notice{position:fixed;top:0;left:0;right:0;z-index:99999;background:#fef2f2;color:#991b1b;padding:16px 20px;font-size:14px;text-align:center;font-family:system-ui,sans-serif}
h1.logo{font-size:18px;font-weight:600;margin:0;padding:0;line-height:inherit}
.header{height:56px;background:var(--panel-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;box-shadow:var(--shadow);z-index:100;position:relative;flex-shrink:0;min-width:0;overflow:hidden}
.logo{font-size:18px;font-weight:600;color:var(--primary);display:flex;align-items:center;gap:8px;white-space:nowrap;flex-shrink:0;overflow:hidden;text-overflow:ellipsis}.logo svg{width:24px;height:24px}
.toolbar{display:flex;align-items:center;gap:12px;flex:1 1 0%;width:0;min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding-right:8px}.toolbar::-webkit-scrollbar{display:none}
.btn{padding:6px 14px;border:1px solid var(--border);background:var(--panel-bg);border-radius:6px;cursor:pointer;font-size:13px;transition:all 0.2s;display:flex;align-items:center;gap:4px;color:var(--text);touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:36px;position:relative;white-space:nowrap}.btn:hover{background:var(--bg);border-color:var(--primary);color:var(--primary)}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);flex-shrink:0!important}.btn-primary:hover{background:#1e4a8a;color:#fff}.btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn .badge{position:absolute;top:-6px;right:-6px;width:16px;height:16px;background:var(--danger);color:#fff;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center}.btn .badge.online{background:var(--success)}
.select-wrapper{position:relative}select{padding:6px 28px 6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel-bg);font-size:13px;cursor:pointer;appearance:none;color:var(--text)}.select-wrapper::after{content:"\25BC";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--text-secondary);pointer-events:none}
#btn-export{position:relative}.export-menu{position:fixed;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:9999;min-width:180px;display:none;overflow:hidden}.export-menu.show{display:block}.export-menu-item{padding:10px 16px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background 0.2s}.export-menu-item:hover{background:var(--bg)}.export-menu-divider{height:1px;background:var(--border);margin:4px 0}
.main{display:flex;flex:1;min-height:0;overflow:hidden}.mobile-workspace-tabs{display:none}
.editor-panel{width:50%;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:var(--editor-bg);position:relative}#editor{display:block;flex:1;min-height:0;width:100%;resize:none;border:0;outline:0;padding:16px;background:var(--editor-bg);color:var(--text);font:14px/1.6 "SF Mono",Monaco,"Cascadia Code",Consolas,"Courier New",monospace}
.panel-label{padding:8px 16px;font-size:12px;color:var(--text-secondary);background:var(--panel-bg);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.CodeMirror{flex:1;height:auto;padding-left:2px;font-family:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace;font-size:14px;line-height:1.6;background:var(--editor-bg)}.CodeMirror-gutters{background:var(--editor-bg);border-right:1px solid var(--border)}
.preview-panel{width:50%;display:flex;flex-direction:column;background:var(--bg);position:relative;overflow:hidden}
.preview-container{flex:1;overflow:auto;padding:20px}
.preview-wrapper{background:var(--panel-bg);min-height:100%;transition:width 0.3s ease;box-shadow:var(--shadow);position:relative;margin:0 auto}.preview-wrapper.mobile{width:375px}.preview-wrapper.desktop{width:100%;max-width:800px}.preview-wrapper.wide{width:100%;max-width:100%}
.preview-content{padding:40px 30px;font-size:15px;line-height:1.75;color:#333}
.wechat-article h1{font-size:24px;font-weight:700;margin:0 0 20px 0;padding-bottom:12px;border-bottom:2px solid var(--theme-color,#2c5aa0);line-height:1.4;color:#333}
.wechat-article h2{font-size:20px;font-weight:600;margin:30px 0 16px 0;padding-left:12px;border-left:4px solid var(--theme-color,#2c5aa0);line-height:1.4;color:#333}
.wechat-article h3{font-size:17px;font-weight:600;margin:24px 0 12px 0;color:var(--theme-color,#2c5aa0);line-height:1.4}
.wechat-article p{margin:0 0 16px 0;text-align:justify;line-height:1.75}
.wechat-article blockquote{margin:20px 0;padding:16px 20px;background:var(--blockquote-bg,#f0f4f8);border-left:4px solid var(--theme-color,#2c5aa0);border-radius:0 4px 4px 0;color:#555;font-size:14px}
.wechat-article code{font-family:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace;background:var(--code-bg,#f4f4f5);padding:2px 6px;border-radius:3px;font-size:0.9em;color:var(--code-color,#d73a49)}
.wechat-article pre{background:var(--pre-bg,#f6f8fa);border-radius:8px;padding:16px;overflow-x:auto;margin:16px 0;border:1px solid #e0e0e0}.wechat-article pre code{background:none;padding:0;color:inherit;font-size:0.9em}
.wechat-article table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}
.wechat-article th{border:1px solid #e0e0e0;padding:10px 12px;text-align:left;background:var(--theme-color,#2c5aa0);color:#fff;font-weight:600}
.wechat-article td{border:1px solid #e0e0e0;padding:10px 12px;text-align:left}
.wechat-article a{color:var(--theme-color,#2c5aa0);text-decoration:none;border-bottom:1px solid transparent}
.wechat-article img{max-width:100%;height:auto;border-radius:4px;margin:16px 0;display:block}
.wechat-article hr{border:none;border-top:1px solid #e0e0e0;margin:30px 0}
.wechat-article ul,.wechat-article ol{margin:0 0 16px 0;padding-left:24px}.wechat-article li{margin:6px 0}
/* PDF 分页保护 */
.wechat-article pre,.wechat-article blockquote,.wechat-article table,.wechat-article img,.wechat-article figure{page-break-inside:avoid!important;break-inside:avoid!important}
.wechat-article h1,.wechat-article h2,.wechat-article h3,.wechat-article h4,.wechat-article h5,.wechat-article h6{page-break-after:avoid!important;break-after:avoid!important;page-break-inside:avoid!important;break-inside:avoid!important}
.wechat-article thead{display:table-header-group}.wechat-article tr{page-break-inside:avoid!important;break-inside:avoid!important}
.wechat-article li{page-break-inside:avoid!important;break-inside:avoid!important}.wechat-article p{orphans:3;widows:3}
.wechat-article pre{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}
.status-bar{padding:6px 16px;font-size:12px;color:var(--text-secondary);background:var(--panel-bg);border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.status-bar span{display:flex;align-items:center;gap:16px}
.status-bar .saved-indicator{color:var(--success);display:flex;align-items:center;gap:4px;opacity:0.5;transition:opacity 0.3s}.status-bar .saved-indicator.active{opacity:1}.status-bar .saved-indicator::before{content:"\2713";font-size:10px}
.sync-status{display:flex;align-items:center;gap:4px;cursor:pointer}.sync-status.syncing{color:var(--warning)}.sync-status.synced{color:var(--success)}.sync-status.offline{color:var(--danger)}
.settings-panel{position:absolute;top:56px;right:0;width:320px;background:var(--panel-bg);border-left:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:-2px 4px 12px rgba(0,0,0,0.1);padding:20px;z-index:50;display:none;max-height:calc(100vh - 56px);overflow-y:auto}.settings-panel.show{display:block}
.setting-item{margin-bottom:16px}.setting-label{font-size:13px;font-weight:600;margin-bottom:8px;display:block;color:var(--text)}
.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.theme-option{padding:10px;border:2px solid var(--border);border-radius:8px;cursor:pointer;text-align:center;font-size:13px;transition:all 0.2s}.theme-option:hover{border-color:var(--primary)}.theme-option.active{border-color:var(--primary);background:rgba(44,90,160,0.05)}
.theme-color-dot{width:16px;height:16px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle}
.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all 0.2s}.color-option:hover{transform:scale(1.1)}.color-option.active{border-color:#333;box-shadow:0 0 0 2px #fff,0 0 0 4px #333}
.ocr-panel{position:absolute;top:56px;right:0;width:360px;background:var(--panel-bg);border-left:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:-2px 4px 12px rgba(0,0,0,0.1);padding:20px;z-index:50;display:none;max-height:calc(100vh - 56px);overflow-y:auto}.ocr-panel.show{display:block}
.ocr-dropzone{border:2px dashed var(--border);border-radius:8px;padding:24px;text-align:center;cursor:pointer;transition:all 0.2s;margin-bottom:16px}.ocr-dropzone:hover{border-color:var(--primary);background:rgba(44,90,160,0.03)}.ocr-dropzone.dragover{border-color:var(--primary);background:rgba(44,90,160,0.05)}
.ocr-result{font-family:"SF Mono",monospace;font-size:13px;line-height:1.6;background:var(--editor-bg);padding:12px;border-radius:6px;border:1px solid var(--border);max-height:300px;overflow-y:auto;white-space:pre-wrap}
.ocr-progress{margin-top:12px}.ocr-progress-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.ocr-progress-fill{height:100%;background:var(--primary);width:0%;transition:width 0.3s}.ocr-lang-select{margin-bottom:12px}
.sync-panel{position:absolute;top:56px;right:0;width:320px;background:var(--panel-bg);border-left:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:-2px 4px 12px rgba(0,0,0,0.1);padding:20px;z-index:50;display:none;max-height:calc(100vh - 56px);overflow-y:auto}.sync-panel.show{display:block}
.sync-room-input{display:flex;gap:8px;margin:12px 0 8px}.sync-room-input input{flex:1;min-width:0;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--panel-bg);color:var(--text)}
.sync-auth-notice{padding:10px 12px;border-radius:6px;background:var(--bg);font-size:12px;line-height:1.6;color:var(--text-secondary)}.sync-auth-notice.login-required{border-left:3px solid var(--warning)}.sync-auth-notice.authenticated{border-left:3px solid var(--success)}.sync-auth-notice a{display:inline-block;margin-left:4px;color:var(--primary);font-weight:600}.sync-room-help{font-size:11px;line-height:1.55;color:var(--text-secondary);margin-bottom:10px}.sync-role-badge{padding:2px 7px;border-radius:999px;font-size:11px;font-weight:500;vertical-align:middle}.sync-role-badge.editor{color:var(--success);background:rgba(39,174,96,.12)}.sync-role-badge.viewer{color:var(--warning);background:rgba(243,156,18,.14)}
.sync-qr{text-align:center;margin:16px 0}.sync-qr canvas{border:1px solid var(--border);border-radius:8px;padding:8px}
.sync-peers{margin-top:16px}.sync-peer{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;background:var(--bg);margin-bottom:6px}
.sync-peer-avatar{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}.sync-peer-name{font-size:13px;font-weight:500}.sync-peer-status{font-size:11px;color:var(--text-secondary);margin-left:auto}
.upload-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(44,90,160,0.08);backdrop-filter:blur(2px);display:none;justify-content:center;align-items:center;z-index:200;pointer-events:none}.upload-overlay.active{display:flex}
.upload-zone{background:white;padding:40px 60px;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,0.15);text-align:center;pointer-events:auto;border:2px dashed var(--primary);animation:uploadPulse 2s infinite}
@keyframes uploadPulse{0%,100%{border-color:var(--primary)}50%{border-color:#7aa3e0}}
.toast{position:fixed;top:70px;left:50%;transform:translateX(-50%) translateY(-20px);background:#333;color:#fff;padding:10px 20px;border-radius:6px;font-size:14px;opacity:0;transition:all 0.3s;pointer-events:none;z-index:10000;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.import-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:none;justify-content:center;align-items:center;z-index:999}.import-overlay.show{display:flex}
.import-modal{background:var(--panel-bg);padding:30px 40px;border-radius:12px;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,0.2);max-width:500px;width:90%}
.import-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.import-option{padding:16px 12px;border:2px dashed var(--border);border-radius:8px;cursor:pointer;transition:all 0.2s;font-size:13px}.import-option:hover{border-color:var(--primary);background:rgba(44,90,160,0.03)}
.url-import{margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
.pdf-progress{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel-bg);padding:24px 32px;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,0.2);display:none;z-index:300;text-align:center}.pdf-progress.show{display:block}
.copy-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:none;justify-content:center;align-items:center;z-index:999}.copy-overlay.show{display:flex}.copy-modal{background:var(--panel-bg);padding:30px 40px;border-radius:12px;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,0.2)}
.ad-slot{margin:0 auto;max-width:970px;text-align:center;transition:all 0.3s ease;height:0;overflow:hidden;padding:0;opacity:0;flex-shrink:0}.ad-slot.has-ad{height:auto;max-height:120px;padding:8px 12px;background:#f8f9fa;border-bottom:1px solid var(--border);opacity:1;margin:0 auto}
.ad-label{font-size:11px;color:#bbb;display:block;margin-bottom:0;opacity:0;transition:opacity 0.3s,margin 0.3s;height:0;overflow:hidden}.ad-slot.has-ad .ad-label{opacity:1;margin-bottom:4px;height:auto}
.ad-content{display:flex;justify-content:center;align-items:center;overflow:hidden;max-height:90px}
.ad-content ins{display:block!important;max-height:90px;overflow:hidden}
#app-skeleton{transition:opacity 0.3s ease}#app-skeleton.fade-out{opacity:0;pointer-events:none}#app{transition:opacity 0.3s ease}
.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}
.history-panel{position:absolute;top:56px;right:0;width:320px;background:var(--panel-bg);border-left:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:-2px 4px 12px rgba(0,0,0,0.1);padding:20px;z-index:50;display:none;max-height:calc(100vh - 56px);overflow-y:auto}.history-panel.show{display:block}
.history-item{padding:12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all 0.2s;display:flex;justify-content:space-between;align-items:center}.history-item:hover{border-color:var(--primary);background:rgba(44,90,160,0.03)}.history-item.active{border-color:var(--primary);background:rgba(44,90,160,0.05)}
.history-item-time{font-size:13px;font-weight:500}.history-item-info{font-size:11px;color:var(--text-secondary)}.history-actions{display:flex;gap:8px;margin-top:16px}
.comments-panel{position:absolute;top:56px;right:0;width:320px;background:var(--panel-bg);border-left:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:-2px 4px 12px rgba(0,0,0,0.1);padding:20px;z-index:50;display:none;max-height:calc(100vh - 56px);overflow-y:auto}.comments-panel.show{display:block}
.CodeMirror-gutter.comment-gutter{width:20px}.comment-marker{width:16px;height:16px;border-radius:50%;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;box-shadow:0 1px 3px rgba(0,0,0,0.2);transition:transform 0.2s}.comment-marker:hover{transform:scale(1.2)}
.comment-detail-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel-bg);padding:20px;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,0.2);z-index:1000;max-width:400px;width:90%;animation:popupIn 0.2s ease}@keyframes popupIn{from{opacity:0;transform:translate(-50%,-50%) scale(0.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.voice-btn{position:relative}.voice-btn.listening{animation:pulse 1.5s infinite;background:var(--danger)!important;color:#fff!important;border-color:var(--danger)!important}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(231,76,60,0.4)}50%{box-shadow:0 0 0 8px rgba(231,76,60,0)}}
.collab-cursor{position:absolute;width:2px;height:20px;pointer-events:none;z-index:10;transition:top 0.1s,left 0.1s}.collab-cursor-label{position:absolute;top:-20px;left:0;padding:2px 6px;border-radius:3px;font-size:11px;color:#fff;white-space:nowrap;font-weight:500}
.noscript-notice{position:fixed;top:0;left:0;right:0;background:var(--danger);color:#fff;padding:12px;text-align:center;font-size:14px;z-index:9999}
.upload-progress{position:fixed;top:60px;right:20px;background:var(--panel-bg);padding:12px 16px;border-radius:8px;box-shadow:var(--shadow);display:none;align-items:center;gap:10px;z-index:150;font-size:13px;max-width:min(520px,calc(100vw - 40px));border:1px solid var(--border)}.upload-progress.show{display:flex}.upload-progress-track{width:120px;height:5px;background:var(--border);border-radius:3px;overflow:hidden;flex:0 0 auto}.upload-progress-fill,#upload-progress-fill{height:100%;background:var(--primary);width:0;transition:width .2s}.upload-actions{display:flex;gap:6px;align-items:center}.upload-action{border:1px solid var(--border);background:var(--panel-bg);color:var(--text);border-radius:5px;padding:4px 8px;font:inherit;cursor:pointer;text-decoration:none;white-space:nowrap}.upload-action:hover{border-color:var(--primary);color:var(--primary)}.upload-action[hidden]{display:none}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[role="button"]:focus-visible,[role="radio"]:focus-visible{outline:3px solid #f2b84b;outline-offset:2px}.geo-content{background:#fff;border-top:1px solid #d9e1ec;color:#263445}.geo-inner{width:min(960px,calc(100% - 32px));margin:0 auto;padding:48px 0 56px;line-height:1.8}.geo-inner h2{font-size:28px;line-height:1.35;color:#18365f;margin-bottom:16px}.geo-inner h3{font-size:20px;color:#244c83;margin:30px 0 10px}.geo-inner p,.geo-inner li,.geo-inner dd{font-size:16px}.geo-inner ol,.geo-inner ul{padding-left:24px}.geo-inner li{margin:8px 0}.geo-inner a{color:#1d4f91;text-decoration:underline;text-underline-offset:3px}.geo-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:24px}.faq-list dt{font-weight:700;margin-top:18px}.faq-list dd{margin:4px 0 0}.maintenance{margin-top:32px;padding-top:18px;border-top:1px solid #d9e1ec;color:#526173}
@media(max-width:1024px){.toolbar .btn-text{display:none}.toolbar .select-wrapper{display:none}.toolbar{gap:6px}}
@media(max-width:768px){.header{height:auto;min-height:48px;flex-wrap:nowrap;padding:6px 12px;padding-top:max(6px,env(safe-area-inset-top))}.mobile-workspace-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:6px 12px;background:var(--panel-bg);border-bottom:1px solid var(--border)}.mobile-workspace-tab{min-height:44px;border:1px solid var(--border);border-radius:7px;background:var(--panel-bg);color:var(--text);font:600 14px/1 inherit;touch-action:manipulation}.mobile-workspace-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.main{flex-direction:column}.editor-panel,.preview-panel{width:100%;height:100%;min-height:0}.main[data-mobile-pane="editor"] .preview-panel,.main[data-mobile-pane="preview"] .editor-panel{display:none}.editor-panel{border-right:none;border-bottom:0}.toolbar{gap:4px;flex-wrap:nowrap;padding:4px 8px;height:auto;min-height:44px}.logo{font-size:16px}.preview-wrapper.mobile{width:100%}.preview-container{padding:12px}.preview-content{padding:28px 20px}.import-options{grid-template-columns:repeat(2,1fr)}.settings-panel,.ocr-panel,.sync-panel,.history-panel,.comments-panel{position:fixed;width:100%;top:calc(48px + env(safe-area-inset-top));left:0;right:0;bottom:0;max-height:none;border-left:none;padding-bottom:max(20px,env(safe-area-inset-bottom))}.export-menu{left:0!important;right:0;width:100%;border-radius:0}.toolbar .btn{padding:6px 9px;font-size:11px;min-width:44px;min-height:44px;justify-content:center}.toolbar .btn .btn-text{display:none}.toolbar .btn svg{width:16px;height:16px}.status-bar{padding-bottom:max(6px,env(safe-area-inset-bottom))}}
@media(max-width:480px){.header{padding:4px 8px;flex-wrap:wrap;height:auto;min-height:40px}.btn{padding:4px 6px;font-size:11px;min-height:32px}.logo{font-size:13px;gap:4px}.logo svg{width:18px;height:18px}.import-options{grid-template-columns:1fr}.toolbar{gap:4px}.geo-inner{width:min(100% - 24px,960px);padding:36px 0 44px}.geo-inner h2{font-size:24px}.geo-inner h3{font-size:19px}.geo-inner p,.geo-inner li,.geo-inner dd{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}}
@media print{.header,.toolbar,.settings-panel,.ocr-panel,.sync-panel,.history-panel,.comments-panel,.export-menu,.ad-slot,.status-bar,.upload-progress{display:none!important}.editor-panel{display:none}.preview-panel{width:100%;height:auto}.preview-container{padding:0}.preview-wrapper{box-shadow:none;max-width:100%}}
@media(prefers-color-scheme:dark){:root{--primary:#5b8dd9;--bg:#1a1a2e;--panel-bg:#16213e;--border:#2a3a5c;--text:#e0e0e0;--text-secondary:#a0a0a0;--editor-bg:#1a1a2e;--shadow:0 2px 8px rgba(0,0,0,0.3);--success:#2ecc71;--warning:#f1c40f;--danger:#e74c3c}body{background:var(--bg);color:var(--text)}.CodeMirror{background:var(--editor-bg);color:var(--text)}.CodeMirror-gutters{background:var(--editor-bg);border-right-color:var(--border)}.CodeMirror-cursor{border-left-color:var(--text)}.CodeMirror-selected{background:rgba(91,141,217,0.2)}.CodeMirror-activeline-background{background:rgba(91,141,217,0.08)}.btn{background:var(--panel-bg);color:var(--text);border-color:var(--border)}.btn:hover{background:var(--bg);border-color:var(--primary);color:var(--primary)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:#4a7ac8;color:#fff}.select-wrapper select{background:var(--panel-bg);color:var(--text);border-color:var(--border)}.toast{background:#2a2a4a;color:#e0e0e0}.upload-zone{background:var(--panel-bg);border-color:var(--primary)}.import-modal,.pdf-progress,.settings-panel,.ocr-panel,.sync-panel,.history-panel,.comments-panel,.copy-modal,.comment-detail-popup{background:var(--panel-bg);color:var(--text)}.import-option{border-color:var(--border)}.import-option:hover{border-color:var(--primary);background:rgba(91,141,217,0.08)}.import-overlay,.copy-overlay{background:rgba(0,0,0,0.7)}.skeleton{background:linear-gradient(90deg,#1e2a4a 25%,#2a3a5c 50%,#1e2a4a 75%);background-size:200% 100%}.wechat-article h1,.wechat-article h2,.wechat-article h3{color:var(--text)}.wechat-article p{color:var(--text)}.wechat-article blockquote{background:#1e2a4a;border-left-color:var(--primary);color:var(--text-secondary)}.wechat-article code{background:#2a3a5c;color:#e06c75}.wechat-article pre{background:#1e2a4a;border-color:var(--border)}.wechat-article pre code{color:var(--text)}.wechat-article th{background:var(--primary);color:#fff}.wechat-article td{border-color:var(--border)}.wechat-article a{color:var(--primary)}.wechat-article hr{border-top-color:var(--border)}.sync-peer{background:var(--bg)}.upload-progress{background:var(--panel-bg)}.noscript-notice{background:var(--danger);color:#fff}.theme-option{border-color:var(--border)}.theme-option.active{border-color:var(--primary);background:rgba(91,141,217,0.1)}.color-option.active{border-color:var(--text);box-shadow:0 0 0 2px var(--panel-bg),0 0 0 4px var(--text)}.history-item{border-color:var(--border)}.history-item:hover{border-color:var(--primary);background:rgba(91,141,217,0.08)}.history-item.active{border-color:var(--primary);background:rgba(91,141,217,0.12)}.ad-slot.has-ad{background:#1e2a4a;border-color:var(--border)}.ad-label{color:var(--text-secondary)}.upload-overlay{background:rgba(91,141,217,0.1)}.hljs{background:var(--editor-bg);color:var(--text)}.geo-content{background:var(--panel-bg);border-color:var(--border);color:var(--text)}.geo-inner h2,.geo-inner h3{color:#8cb5ef}.geo-inner a{color:#9cc4ff}.maintenance{border-color:var(--border);color:var(--text-secondary)}}