:root{--teal-50:#f0fdfa;--teal-100:#ccfbf1;--teal-200:#99f6e4;--teal-300:#5eead4;--teal-400:#2dd4bf;--teal-500:#14b8a6;--teal-600:#0d9488;--teal-700:#0f766e;--teal-800:#115e59;--cyan-bright:#44d5de;--cyan-bright-2:#6ee0e7;--cyan-bright-3:#2bbfc9;--cyan-bright-50:#eafbfc;--cyan-bright-100:#d4f6f9;--action-accept:var(--green-600);--action-accept-bg:var(--green-50);--action-reject:#dc2626;--action-reject-bg:#fef2f2;--action-reject-border:#fecaca;--action-custom:var(--blue-600);--action-custom-bg:var(--blue-50);--action-custom-border:var(--blue-200);--green-50:#ecfdf5;--green-100:#d1fae5;--green-200:#a7f3d0;--green-500:#10b981;--green-600:#059669;--green-700:#047857;--blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--rose-500:#f43f5e;--rose-50:#fff1f2;--amber-500:#f59e0b;--amber-50:#fffbeb;--bg:#fafaf9;--bg-sunken:#f4f4f3;--surface:#fff;--border:#e7e5e4;--border-strong:#d6d3d1;--ink-1:#0c0a09;--ink-2:#1c1917;--ink-3:#44403c;--ink-4:#78716c;--ink-5:#a8a29e;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;--font-paper:"Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", "SimSun", "Times New Roman", serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 4px 12px -2px #0f172a14, 0 2px 4px -2px #0f172a0a;--shadow-lg:0 12px 32px -8px #0f172a29, 0 4px 8px -4px #0f172a0f}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink-1);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;font-size:14px;line-height:1.5}#app{height:100%}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}.app{background:var(--bg);grid-template-rows:56px 1fr 52px;height:100vh;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:30;align-items:center;gap:16px;padding:0 20px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.brand-mark{background:linear-gradient(135deg, var(--cyan-bright) 0%, var(--teal-600) 100%);color:#fff;border-radius:7px;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid;box-shadow:inset 0 -1px #00000026,0 1px 3px #44d5de66}.brand-name{color:var(--ink-1)}.brand-tag{color:var(--ink-4);background:var(--bg-sunken);border:1px solid var(--border);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:400}.topbar-progress{flex:1;justify-content:center;align-items:center;display:flex}.detect-pill{background:var(--cyan-bright-50);border:1px solid var(--cyan-bright-2);height:32px;color:var(--teal-800);border-radius:999px;align-items:center;gap:10px;max-width:520px;padding:0 14px 0 10px;font-size:12.5px;font-weight:500;display:inline-flex}.detect-pill .stage-dot{background:var(--cyan-bright);border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite pulse;box-shadow:0 0 0 3px #44d5de40}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.detect-pill .stage-bar{background:#0d94882e;border-radius:2px;width:140px;height:4px;overflow:hidden}.detect-pill .stage-fill{background:linear-gradient(90deg, var(--cyan-bright), var(--teal-600));border-radius:2px;height:100%;transition:width .4s}.detect-pill .stage-pct{font-variant-numeric:tabular-nums;color:var(--teal-700);text-align:right;min-width:32px}.detect-pill.done{background:var(--green-50);border-color:var(--green-200);color:var(--green-700)}.detect-pill.done .stage-dot{background:var(--green-500);animation:none;box-shadow:0 0 0 3px #10b9812e}.detect-pill.idle{background:var(--bg-sunken);border-color:var(--border);color:var(--ink-4)}.detect-pill.idle .stage-dot{background:var(--ink-5);box-shadow:none;animation:none}.topbar-actions{gap:4px;display:flex}.icon-btn{border-radius:var(--r-md);width:32px;height:32px;color:var(--ink-3);background:0 0;border:1px solid #0000;place-items:center;transition:all .12s;display:grid}.icon-btn:hover{background:var(--bg-sunken);color:var(--ink-1)}.icon-btn.has-badge{position:relative}.icon-btn .badge{background:var(--rose-500);border:1.5px solid var(--surface);border-radius:50%;width:7px;height:7px;position:absolute;top:4px;right:4px}.split{grid-template-columns:minmax(360px,40%) 1fr;min-height:0;display:grid;overflow:hidden}.left-panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.right-panel{background:var(--bg-sunken);flex-direction:column;min-height:0;display:flex;position:relative}.section{border-bottom:1px solid var(--border)}.section-head{justify-content:space-between;align-items:center;padding:14px 18px 8px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);font-size:11px;font-weight:600}.section-body{padding:0 16px 16px}.upload{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);text-align:center;background:var(--bg-sunken);cursor:pointer;margin:4px 16px 16px;padding:22px 16px;transition:all .16s}.upload:hover,.upload.drag{border-color:var(--teal-500);background:var(--teal-50)}.upload-icon{background:var(--surface);border:1px solid var(--border);width:44px;height:44px;color:var(--teal-600);border-radius:12px;place-items:center;margin:0 auto 10px;display:grid}.upload-title{color:var(--ink-1);font-size:14px;font-weight:600}.upload-hint{color:var(--ink-4);margin-top:4px;font-size:12px}.upload-hint .kbd{color:var(--teal-700);font-weight:500}.upload.uploaded{background:var(--surface);border-style:solid;border-color:var(--border);text-align:left;cursor:default;align-items:center;gap:12px;padding:14px 16px;display:flex}.upload.uploaded .file-icon{background:linear-gradient(135deg, var(--teal-50), var(--teal-100));width:40px;height:40px;color:var(--teal-700);border:1px solid var(--teal-200);border-radius:8px;flex:none;place-items:center;display:grid}.file-meta{flex:1;min-width:0}.file-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.file-info{color:var(--ink-4);margin-top:2px;font-size:12px}.file-info .dot{color:var(--ink-5);margin:0 6px}.upload-progress{background:#0d948826;border-radius:2px;height:4px;margin-top:12px;overflow:hidden}.upload-progress>div{background:linear-gradient(90deg, var(--teal-500), var(--teal-600));height:100%;transition:width .3s}.rule{margin:0 16px 14px}.rule-select{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;align-items:center;gap:10px;height:40px;padding:0 12px;transition:border-color .12s;display:flex}.rule-select:hover{border-color:var(--teal-500)}.rule-select .rule-icon{background:var(--teal-50);width:26px;height:26px;color:var(--teal-700);border-radius:6px;flex:none;place-items:center;display:grid}.rule-select .rule-name{flex:1;font-weight:500}.rule-select .chev{color:var(--ink-4)}.rule-preview-link{color:var(--teal-700);background:0 0;border:none;align-items:center;gap:4px;margin-top:8px;padding:0;font-size:12px;display:inline-flex}.rule-preview-link:hover{color:var(--teal-800);text-decoration:underline}.issues-toolbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:5;align-items:center;gap:8px;padding:10px 16px 8px;display:flex;position:sticky;top:0}.search{flex:1;position:relative}.search input{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);outline:none;width:100%;height:32px;padding:0 12px 0 32px;font-size:13px;transition:all .12s}.search input:focus{border-color:var(--cyan-bright);background:var(--surface);box-shadow:0 0 0 3px #44d5de2e}.search svg{color:var(--ink-4);pointer-events:none;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.filter-select{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2378716c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 9px center;appearance:none;cursor:pointer;min-width:110px;height:32px;padding:0 28px 0 10px;font-size:13px}.issues-scroll{flex:1;min-height:0;padding:8px 0 80px;overflow-y:auto}.issues-scroll::-webkit-scrollbar{width:8px}.issues-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--surface);border-radius:4px}.group{border-bottom:1px solid var(--border)}.group-head{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface);align-items:center;gap:8px;padding:12px 16px;display:flex}.group-head:hover{background:var(--bg-sunken)}.group-caret{width:16px;height:16px;color:var(--ink-4);transition:transform .18s}.group-caret.open{transform:rotate(90deg)}.group-icon{border-radius:6px;flex:none;place-items:center;width:22px;height:22px;display:grid}.group-title{color:var(--ink-2);font-size:13.5px;font-weight:600}.group-count{font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin-left:auto;display:flex}.count-pill{background:var(--bg-sunken);height:20px;color:var(--ink-3);border:1px solid var(--border);border-radius:999px;align-items:center;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.count-pill.pending{background:var(--amber-50);color:#b45309;border-color:#fde68a}.count-pill.done{background:var(--green-50);color:var(--green-700);border-color:var(--green-200)}.issue{border-top:1px solid var(--border);cursor:pointer;padding:14px 16px 14px 44px;transition:background .12s;position:relative}.issue:first-of-type{border-top:1px solid var(--border)}.issue:hover{background:var(--bg-sunken)}.issue.active{background:var(--cyan-bright-50);box-shadow:inset 3px 0 0 var(--cyan-bright)}.issue.accepted{background:#ecfdf599}.issue.rejected{opacity:.55}.issue.custom{background:#eff6ff99}.issue-tag{color:#fff;border-radius:5px;place-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:grid;position:absolute;top:16px;left:16px}.issue-loc{color:var(--ink-4);font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;display:flex}.issue-loc .severity-dot{border-radius:50%;width:6px;height:6px}.severity-high{background:var(--rose-500)}.severity-med{background:var(--amber-500)}.severity-low{background:var(--ink-5)}.diff{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);font-size:13px;line-height:1.55;overflow:hidden}.diff-row{border-top:1px solid var(--border);display:flex}.diff-row:first-child{border-top:none}.diff-label{letter-spacing:.04em;width:44px;color:var(--ink-4);flex:none;padding:8px 0 8px 10px;font-size:11px;font-weight:600}.diff-row.before .diff-label{color:#b45309}.diff-row.after .diff-label{color:var(--green-700)}.diff-row.custom-row .diff-label{color:var(--blue-700)}.diff-text{font-family:var(--font-paper);flex:1;padding:8px 12px;font-size:14px}.diff-row.before{background:#fffbeb}.diff-row.after{background:var(--green-50)}.diff-row.custom-row{background:var(--blue-50)}.diff-row.before .changed{background:#fed7aa;border-radius:2px;padding:0 2px;-webkit-text-decoration:line-through #b4530980;text-decoration:line-through #b4530980}.diff-row.after .changed{background:var(--green-200);border-radius:2px;padding:0 2px}.diff-row.custom-row .changed{background:var(--blue-200);border-radius:2px;padding:0 2px}.issue-explain{color:var(--ink-4);gap:6px;margin-top:10px;font-size:12px;display:flex}.issue-explain svg{color:var(--teal-500);flex:none;margin-top:2px}.issue-actions{gap:6px;margin-top:12px;display:flex}.btn{border:1px solid var(--border);background:var(--surface);height:30px;color:var(--ink-2);border-radius:7px;align-items:center;gap:5px;padding:0 12px;font-size:12.5px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{background:var(--bg-sunken);border-color:var(--border-strong)}.btn:active{transform:translateY(.5px)}.btn .shortcut{font-family:var(--font-mono);background:var(--bg-sunken);color:var(--ink-4);border:1px solid var(--border);border-radius:3px;margin-left:2px;padding:1px 4px;font-size:10px}.btn-accept{background:var(--action-accept-bg);border-color:var(--green-200);color:var(--action-accept)}.btn-accept:hover{background:var(--action-accept);border-color:var(--action-accept);color:#fff}.btn-accept .shortcut{color:var(--action-accept);background:#05966914;border-color:#05966933}.btn-accept:hover .shortcut{color:#fff;background:#fff3;border-color:#ffffff4d}.btn-reject{background:var(--action-reject-bg);border-color:var(--action-reject-border);color:var(--action-reject)}.btn-reject:hover{background:var(--action-reject);border-color:var(--action-reject);color:#fff}.btn-reject .shortcut{color:var(--action-reject);background:#dc262614;border-color:#dc262633}.btn-reject:hover .shortcut{color:#fff;background:#fff3;border-color:#ffffff4d}.btn-custom{background:var(--action-custom-bg);border-color:var(--action-custom-border);color:var(--action-custom)}.btn-custom:hover{background:var(--action-custom);border-color:var(--action-custom);color:#fff}.btn-custom .shortcut{color:var(--action-custom);background:#2563eb14;border-color:#2563eb33}.btn-custom:hover .shortcut{color:#fff;background:#fff3;border-color:#ffffff4d}.btn-primary{background:var(--teal-600);border-color:var(--teal-700);color:#fff}.btn-primary:hover{background:var(--teal-700)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-sunken)}.issue-state{border-radius:6px;align-items:center;gap:8px;margin-top:12px;padding:8px 10px;font-size:12px;display:flex}.issue-state.accepted{background:var(--green-50);color:var(--green-700)}.issue-state.rejected{color:#b91c1c;background:#fef2f2}.issue-state.custom{background:var(--blue-50);color:var(--blue-700)}.issue-state .undo-link{color:inherit;opacity:.75;background:0 0;border:none;margin-left:auto;padding:0;font-size:11.5px;text-decoration:underline}.issue-state .undo-link:hover{opacity:1}.group-batch{background:var(--surface);gap:6px;padding:8px 16px 14px 44px;display:flex}.group-batch button{color:var(--ink-4);border:1px solid var(--border);background:var(--surface);border-radius:6px;height:26px;padding:0 10px;font-size:12px}.group-batch button:hover{color:var(--ink-1);background:var(--bg-sunken)}.bottombar{background:var(--surface);border-top:1px solid var(--border);z-index:20;align-items:center;gap:14px;padding:0 20px;display:flex}.progress-summary{align-items:center;gap:12px;font-size:13px;display:flex}.progress-summary .nums{font-variant-numeric:tabular-nums;font-weight:600}.progress-summary .nums .done{color:var(--green-700)}.progress-summary .nums .sep{color:var(--ink-5);margin:0 2px}.progress-track{background:var(--bg-sunken);border-radius:3px;width:220px;height:6px;position:relative;overflow:hidden}.progress-track .seg{position:absolute;top:0;bottom:0}.progress-track .seg.accepted{background:var(--green-500);left:0}.progress-track .seg.custom{background:var(--blue-500)}.progress-track .seg.rejected{background:var(--ink-5)}.undo-counter{color:var(--ink-4);background:var(--bg-sunken);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:4px 9px;font-size:12px;display:flex}.undo-counter kbd{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:10px}.bottombar .spacer{flex:1}.preview-toolbar{background:var(--bg-sunken);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 20px;display:flex}.preview-toolbar .toolbar-group{background:var(--surface);border:1px solid var(--border);border-radius:7px;align-items:center;gap:2px;padding:2px;display:flex}.toolbar-group button{min-width:28px;height:26px;color:var(--ink-3);background:0 0;border:none;border-radius:5px;align-items:center;gap:4px;padding:0 8px;font-size:12px;display:inline-flex}.toolbar-group button:hover{background:var(--bg-sunken);color:var(--ink-1)}.toolbar-group button.on{background:var(--cyan-bright-50);color:var(--cyan-bright-3);box-shadow:var(--shadow-sm)}.zoom-display{font-variant-numeric:tabular-nums;text-align:center;min-width:42px;padding:0 6px;font-size:12px}.fmt-group button b,.fmt-group button i,.fmt-group button u{font-size:13px;line-height:1}.paper.editing .hl.editable{outline:1px dashed var(--cyan-bright-3);outline-offset:2px;cursor:text;border-radius:3px}.paper.editing .hl.editable:focus{outline:2px solid var(--cyan-bright-3);background:var(--cyan-bright-50)}.editor-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 20px;display:flex}.et-group{background:var(--bg-sunken);border:1px solid var(--border);border-radius:7px;align-items:center;gap:2px;padding:2px;display:flex}.et-group button{min-width:28px;height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:4px;padding:0 7px;font-size:13px;display:inline-flex}.et-group button:hover{background:var(--surface);color:var(--ink-1)}.et-group button.on{background:var(--cyan-bright-50);color:var(--cyan-bright-3)}.et-group button:disabled{opacity:.35;cursor:not-allowed}.et-select{height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:0 4px;font-size:12px}.et-select.narrow{max-width:78px}.et-depth{color:var(--ink-4);font-variant-numeric:tabular-nums;padding:0 6px;font-size:11px}.page-setup{z-index:50;background:var(--surface);border:1px solid var(--border);width:268px;box-shadow:var(--shadow-lg,0 12px 32px #00000024);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;top:34px;left:0}.ps-row{color:var(--ink-3);align-items:center;gap:8px;font-size:12px;display:flex}.ps-row label{flex:none;width:72px}.ps-row input{border:1px solid var(--border);min-width:0;height:28px;color:var(--ink-1);background:var(--bg-sunken);border-radius:6px;flex:1;padding:0 8px;font-size:12px}.ps-row span{color:var(--ink-4)}.paper.doc-editing{flex-direction:column;display:flex}.doc-header{text-align:center;color:var(--ink-4);border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:8px;font-size:12px}.doc-footer{text-align:center;color:var(--ink-4);border-top:1px solid var(--border);margin-top:18px;padding-top:8px;font-size:12px}.doc-body{outline:none;min-height:320px}.doc-body:focus{outline:none}.auth-chip{background:var(--green-50);height:28px;color:var(--green-700);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.auth-chip .auth-link{color:var(--ink-4);cursor:pointer;border:none;border-left:1px solid var(--border);background:0 0;margin-left:4px;padding:0 0 0 6px;font-size:12px}.auth-chip .auth-link:hover{color:var(--ink-1)}.auth-field{color:var(--ink-3);flex-direction:column;gap:4px;font-size:12px;display:flex}.auth-field input{border:1px solid var(--border);background:var(--bg-sunken);height:36px;color:var(--ink-1);border-radius:8px;padding:0 12px;font-size:14px}.auth-field input:focus{outline:2px solid var(--cyan-bright-50);border-color:var(--cyan-bright-3);background:var(--surface)}.legend{color:var(--ink-4);gap:14px;margin-left:auto;font-size:12px;display:flex}.legend .swatch{align-items:center;gap:6px;display:inline-flex}.legend .dot{border-radius:3px;width:10px;height:10px}.legend .dot.green{background:var(--green-200);border:1px solid var(--green-500)}.legend .dot.blue{background:var(--blue-200);border:1px solid var(--blue-500)}.legend .dot.amber{border:1px solid var(--amber-500);background:#fde68a}.preview-scroll{background:var(--bg-sunken);flex:1;justify-content:center;align-items:flex-start;padding:40px 0;display:flex;overflow:auto}.preview-scroll::-webkit-scrollbar{width:10px;height:10px}.preview-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg-sunken);border-radius:5px}.paper{background:var(--surface);border:1px solid var(--border);width:720px;max-width:calc(100% - 80px);font-family:var(--font-paper);color:var(--ink-1);transform-origin:top;border-radius:8px;padding:64px 72px 80px;font-size:15px;line-height:1.85;transition:transform .2s;box-shadow:0 1px 2px #0000000a,0 12px 32px -12px #0000001f}.paper h1{text-align:center;letter-spacing:.02em;margin:0 0 8px;font-size:22px;font-weight:600}.paper .author{text-align:center;color:var(--ink-4);font-size:13px;font-family:var(--font-ui);margin-bottom:32px}.paper h2{margin:28px 0 12px;font-size:17px;font-weight:600}.paper p{text-indent:2em;text-align:justify;margin:0 0 14px}.paper .abstract-label{letter-spacing:.1em;font-size:13px;font-weight:600;font-family:var(--font-ui);color:var(--ink-3);text-align:center;margin:4px 0 12px}.doc-issue-anchor{border:1px dashed var(--amber-500);font-family:var(--font-ui);text-indent:0;background:#fffbeb;border-radius:6px;flex-direction:column;gap:8px;margin:10px 0 24px;padding:10px 12px;display:flex}.doc-issue-anchor-abstract{margin-top:-14px;margin-bottom:28px}.doc-issue-anchor-references{margin-top:30px;margin-bottom:0}.doc-issue-title{color:#92400e;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.doc-issue-title:before,.doc-issue-title:after{content:"";background:#f59e0b80;flex:1;height:1px}.doc-issue-title:before{flex:0 0 24px}.doc-issue-marker{width:100%;color:var(--ink-2);text-align:left;cursor:pointer;font:inherit;background:#ffffff8c;border:1px solid #0000;border-radius:6px;grid-template-columns:minmax(72px,max-content) 1fr;gap:10px;padding:8px 10px;line-height:1.45;display:grid}.doc-issue-marker:hover{background:var(--surface);border-color:#f59e0b73}.doc-issue-marker.active{border-color:var(--cyan-bright);outline:2px solid var(--cyan-bright);outline-offset:1px;background:#fde68a}.doc-issue-marker.accepted{background:var(--green-100);border-color:var(--green-500)}.doc-issue-marker.rejected{color:var(--ink-4);text-decoration:line-through}.doc-issue-marker.custom{background:var(--blue-100);border-color:var(--blue-500)}.doc-issue-loc{color:#92400e;white-space:nowrap;font-weight:600}.doc-issue-summary{min-width:0}.hl{cursor:pointer;border-radius:3px;padding:1px 2px;transition:filter .12s;position:relative}.hl:hover{filter:brightness(.95)}.hl-accepted{background:var(--green-100);box-shadow:inset 0 -2px 0 var(--green-500)}.hl-custom{background:var(--blue-100);box-shadow:inset 0 -2px 0 var(--blue-500)}.hl-pending{box-shadow:inset 0 -2px 0 var(--amber-500);cursor:pointer;background:#fef3c7}.hl-pending.focused{outline:2px solid var(--cyan-bright);outline-offset:1px;background:#fde68a}.hl-rejected{text-underline-offset:4px;-webkit-text-decoration:underline wavy #a8a29e99;text-decoration:underline wavy #a8a29e99}.hl-tooltip{z-index:80;background:var(--ink-1);color:#fff;font-family:var(--font-ui);max-width:320px;box-shadow:var(--shadow-lg);pointer-events:none;white-space:normal;border-radius:8px;padding:8px 12px;font-size:12px;line-height:1.5;position:absolute}.hl-tooltip .tt-old{color:#fda4af;text-decoration:line-through}.hl-tooltip .tt-new{color:#6ee7b7}.hl-tooltip:after{content:"";background:var(--ink-1);width:10px;height:10px;position:absolute;bottom:-5px;left:18px;transform:rotate(45deg)}.jump-fab{background:var(--ink-1);color:#fff;height:38px;box-shadow:var(--shadow-lg);z-index:10;border:none;border-radius:999px;align-items:center;gap:8px;padding:0 14px 0 12px;font-size:12.5px;font-weight:500;display:inline-flex;position:absolute;bottom:24px;right:24px}.jump-fab:hover{background:var(--teal-700)}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0c0a0966;place-items:center;animation:.16s fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);box-shadow:var(--shadow-lg), 0 0 0 1px var(--border);border-radius:14px;flex-direction:column;max-height:86vh;animation:.18s pop;display:flex}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 20px;display:flex}.modal-head .title{font-size:15px;font-weight:600}.modal-head .subtitle{color:var(--ink-4);font-size:12px}.modal-head .close{margin-left:auto}.modal-body{flex:1;padding:20px;overflow:auto}.modal-foot{border-top:1px solid var(--border);background:var(--bg-sunken);border-radius:0 0 14px 14px;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.timeline{padding-left:24px;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:6px;bottom:6px;left:7px}.tl-item{padding:8px 0 22px;position:relative}.tl-item:before{content:"";background:var(--surface);border:2px solid var(--ink-5);border-radius:50%;width:16px;height:16px;position:absolute;top:14px;left:-23px}.tl-item.ai:before{border-color:var(--green-500);background:var(--green-100)}.tl-item.custom:before{border-color:var(--blue-500);background:var(--blue-100)}.tl-item.original:before{border-color:var(--ink-4)}.tl-item.current:before{border-color:var(--cyan-bright);background:var(--cyan-bright);box-shadow:0 0 0 3px #44d5de40}.tl-meta{color:var(--ink-4);align-items:center;gap:8px;margin-bottom:6px;font-size:11.5px;display:flex}.tl-badge{border-radius:999px;align-items:center;gap:4px;height:18px;padding:0 7px;font-size:10.5px;font-weight:600;display:inline-flex}.tl-badge.ai{background:var(--green-50);color:var(--green-700);border:1px solid var(--green-200)}.tl-badge.custom{background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-200)}.tl-badge.original{background:var(--bg-sunken);color:var(--ink-3);border:1px solid var(--border)}.tl-badge.current{background:var(--cyan-bright-3);color:#fff}.tl-text{font-family:var(--font-paper);background:var(--bg-sunken);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:15px;line-height:1.7}.tl-item.current .tl-text{background:var(--cyan-bright-50);border-color:var(--cyan-bright-2)}.tl-note{color:var(--ink-4);justify-content:space-between;align-items:center;margin-top:6px;font-size:12px;display:flex}.tl-apply{color:var(--teal-700);background:0 0;border:none;border-radius:5px;padding:4px 8px;font-size:12px;font-weight:500}.tl-apply:hover{background:var(--teal-50)}.compare-body{flex:1;grid-template-columns:1fr 1fr;gap:0;min-height:0;display:grid}.compare-pane{border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.compare-pane:last-child{border-right:none}.compare-pane-head{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4);background:var(--bg-sunken);border-bottom:1px solid var(--border);padding:10px 16px;font-size:12px;font-weight:600}.compare-pane-body{font-family:var(--font-paper);flex:1;padding:20px 24px;font-size:14px;line-height:1.85;overflow:auto}.compare-pane-body p{text-indent:2em;margin:0 0 12px}.diff-nav{background:var(--bg-sunken);border-top:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 16px;font-size:12px;display:flex}.rule-cat{margin-bottom:18px}.rule-cat-title{color:var(--ink-2);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.rule-cat-title .icon{border-radius:5px;place-items:center;width:22px;height:22px;display:grid}.rule-list{color:var(--ink-3);margin:0;padding-left:18px;font-size:13px}.rule-list li{margin-bottom:6px}.shortcut-grid{grid-template-columns:1fr 1fr;gap:20px 32px;display:grid}.shortcut-row{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;padding:7px 0;font-size:13px;display:flex}.shortcut-row:last-child{border-bottom:none}.shortcut-keys{gap:4px;display:flex}.shortcut-keys kbd{font-family:var(--font-mono);background:var(--bg-sunken);border:1px solid var(--border);color:var(--ink-2);box-shadow:0 1px 0 var(--border);border-radius:5px;padding:3px 7px;font-size:11px;font-weight:500}.fsm-skeleton{color:var(--ink-4);text-align:center;padding:60px 24px}.fsm-stages{flex-direction:column;gap:10px;max-width:360px;margin:32px auto 0;display:flex}.fsm-stage{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.fsm-stage.done{color:var(--green-700);border-color:var(--green-200);background:var(--green-50)}.fsm-stage.active{color:var(--teal-700);border-color:var(--teal-300);background:var(--teal-50)}.fsm-stage.pending{color:var(--ink-5)}.fsm-stage .stage-mini{background:var(--surface);border:2px solid;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;display:grid}.fsm-stage.active .stage-mini{background:currentColor;position:relative}.fsm-stage.active .stage-mini:after{content:"";background:#fff;border-radius:50%;width:6px;height:6px;display:block}.fsm-stage.done .stage-mini{background:var(--green-500);border-color:var(--green-500);color:#fff}.skeleton-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:8px 16px;padding:14px}.sk-line{background:linear-gradient(90deg, var(--bg-sunken) 0%, #ede9e7 50%, var(--bg-sunken) 100%);background-size:200% 100%;border-radius:4px;height:10px;margin-bottom:8px;animation:1.4s linear infinite shimmer}.sk-line:last-child{margin-bottom:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.custom-input{flex-direction:column;gap:8px;margin-top:10px;display:flex}.custom-input textarea{border:1px solid var(--blue-300,#93c5fd);background:var(--blue-50);font-family:var(--font-paper);resize:vertical;border-radius:7px;outline:none;min-height:60px;padding:8px 10px;font-size:14px;line-height:1.6}.custom-input textarea:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px #3b82f626}.custom-input-actions{gap:6px;display:flex}.toasts{z-index:200;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--ink-1);color:#fff;box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;animation:.22s toastIn;display:flex}.toast.success{background:var(--green-700)}.toast.info{background:var(--teal-700)}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tweaks{background:var(--surface);border:1px solid var(--border);width:240px;box-shadow:var(--shadow-lg);z-index:150;border-radius:12px;padding:12px;font-size:12px;position:fixed;top:72px;right:16px}.tweaks-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:8px;font-size:11px;font-weight:700}.tweaks-row{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.tweaks-row label{color:var(--ink-3);font-weight:500}.tweaks-row .seg{background:var(--bg-sunken);border:1px solid var(--border);border-radius:7px;gap:0;padding:2px;display:flex}.tweaks-row .seg button{color:var(--ink-3);background:0 0;border:none;border-radius:5px;flex:1;padding:5px 8px;font-size:11.5px}.tweaks-row .seg button.on{background:var(--surface);color:var(--teal-700);box-shadow:var(--shadow-sm);font-weight:600}
