:root{--color-text: #1a1a2e;--color-text-secondary: #475467;--color-text-muted: #667085;--color-text-placeholder: #adb5bd;--color-bg: #f0f2f5;--color-surface: #fff;--color-surface-alt: #f9fafb;--color-surface-hover: #f2f4f7;--color-border: #e4e7ec;--color-border-light: #f2f4f7;--color-border-input: #d0d5dd;--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-primary-dark: #4338ca;--color-primary-bg: #eef2ff;--color-primary-border: #c7d2fe;--color-primary-disabled: #c7d2fe;--color-success: #059669;--color-success-bg: #ecfdf5;--color-success-light: #d1fae5;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-warning: #b45309;--color-warning-bg: #fffbeb;--color-diff-added-bg: #dcfce7;--color-diff-added-text: #166534;--color-diff-removed-bg: #fee2e2;--color-diff-removed-text: #991b1b;--color-diff-block-added: #f0fdf4;--color-diff-block-removed: #fef2f2;--color-radius: 6px;--color-radius-lg: 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}[data-theme=dark]{--color-text: #e4e7ec;--color-text-secondary: #98a2b3;--color-text-muted: #667085;--color-text-placeholder: #667085;--color-bg: #111827;--color-surface: #1f2937;--color-surface-alt: #1a2332;--color-surface-hover: #283444;--color-border: #374151;--color-border-light: #283444;--color-border-input: #4b5563;--color-primary: #818cf8;--color-primary-hover: #6366f1;--color-primary-dark: #a5b4fc;--color-primary-bg: rgba(99, 102, 241, .15);--color-primary-border: #4f46e5;--color-primary-disabled: #4338ca;--color-success: #34d399;--color-success-bg: rgba(5, 150, 105, .15);--color-success-light: rgba(5, 150, 105, .25);--color-error: #f87171;--color-error-bg: rgba(220, 38, 38, .15);--color-warning: #fbbf24;--color-warning-bg: rgba(180, 83, 9, .15);--color-diff-added-bg: rgba(34, 197, 94, .2);--color-diff-added-text: #86efac;--color-diff-removed-bg: rgba(239, 68, 68, .2);--color-diff-removed-text: #fca5a5;--color-diff-block-added: rgba(34, 197, 94, .1);--color-diff-block-removed: rgba(239, 68, 68, .1)}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3{margin:0 0 .5rem}button{border-radius:var(--color-radius);border:1px solid var(--color-border-input);padding:.5em 1em;font-size:.875rem;font-weight:500;font-family:inherit;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all .15s}button:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-text-muted)}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border-input);border-radius:var(--color-radius);font-size:.875rem;font-family:inherit;background:var(--color-surface);color:var(--color-text)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}label{display:block;margin-bottom:.75rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary)}label input,label textarea,label select{margin-top:.25rem}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:0 1px 3px #0000000d}.app-header h1{font-size:1.25rem;color:var(--color-text);margin:0}.header-actions{display:flex;gap:.5rem}.header-actions button{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.header-actions button:hover:not(:disabled){background:var(--color-primary-hover)}.app-body{display:flex;flex:1;gap:0;overflow:hidden}.sidebar{width:300px;min-width:300px;background:var(--color-surface);border-right:1px solid var(--color-border);padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:0;transition:width .3s ease,min-width .3s ease,padding .3s ease}.sidebar-toggle{align-self:flex-end;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:var(--color-text-muted);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;flex-shrink:0;margin-bottom:.75rem}.sidebar-toggle:hover{background:var(--color-surface-hover);color:var(--color-text-secondary)}.sidebar-content{display:flex;flex-direction:column;gap:1rem;opacity:1;transition:opacity .2s ease .1s;overflow:hidden}.sidebar--collapsed{width:48px;min-width:48px;padding:.5rem;overflow:hidden}.sidebar--collapsed .sidebar-toggle{align-self:center;margin-bottom:0}.sidebar--collapsed .sidebar-content{opacity:0;pointer-events:none;transition:opacity .15s ease}.ai-settings{padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.ai-settings h3{font-size:.9rem;color:var(--color-text);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.ai-settings-warning{font-size:.8rem;color:var(--color-warning);background:var(--color-warning-bg);padding:.5rem .75rem;border-radius:6px;margin-top:.25rem}.stage-panel h3{font-size:.9rem;color:var(--color-text);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.stage-panel{border-top:1px solid var(--color-border);padding-top:1rem}.stage-row{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;flex-wrap:wrap}.stage-btn{flex:1;text-align:left;background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}.stage-btn:hover:not(:disabled){background:var(--color-primary-hover)}.stage-btn:disabled{background:var(--color-primary-disabled);border-color:var(--color-primary-disabled)}.stage-substep{width:100%;font-size:.75rem;color:var(--color-text-muted);padding:.2rem .5rem;margin-top:.15rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.stage-error{width:100%;font-size:.75rem;color:var(--color-error);background:var(--color-error-bg);padding:.4rem .5rem;border-radius:4px;margin-top:.25rem}.stage-row-combo{margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.stage-btn-combo{text-align:center;background:var(--color-success);border-color:var(--color-success)}.stage-btn-combo:hover:not(:disabled){background:#047857}.stage-btn-combo:disabled{background:#a7f3d0;border-color:#a7f3d0}.stage-btn-cancel{text-align:center;background:var(--color-error);border-color:var(--color-error)}.stage-btn-cancel:hover:not(:disabled){background:#b91c1c}.status-badge{font-size:.7rem;padding:.15em .5em;border-radius:10px;font-weight:600;text-transform:uppercase;white-space:nowrap}.badge-idle{background:var(--color-surface-hover);color:var(--color-text-muted)}.badge-running{background:var(--color-warning-bg);color:var(--color-warning);animation:pulse 1.5s infinite}.badge-done{background:var(--color-success-bg);color:var(--color-success)}.badge-error{background:var(--color-error-bg);color:var(--color-error)}.main-content{flex:1;padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.content-editor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--color-radius-lg);overflow:hidden}.editor-toolbar-row{display:flex;align-items:center;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.editor-toolbar{display:flex;gap:2px;padding:.5rem;flex:1}.toolbar-btn-html{margin-left:auto;margin-right:.5rem;font-family:monospace;font-size:.8rem}.html-source-editor{width:100%;min-height:300px;padding:1rem;font-family:SF Mono,Fira Code,Fira Mono,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.6;color:var(--color-text);background:var(--color-surface-alt);border:none;border-radius:0;resize:vertical;tab-size:2;white-space:pre-wrap;word-wrap:break-word}.toolbar-btn{padding:.3em .6em;font-size:.8rem;font-weight:700;border:1px solid transparent;background:transparent;color:var(--color-text-secondary);border-radius:4px}.toolbar-btn:hover{background:var(--color-surface-hover)}.toolbar-btn.active{background:var(--color-primary);color:#fff}.toolbar-link-wrapper{position:relative}.link-popover{position:absolute;top:100%;left:0;z-index:10;display:flex;gap:4px;padding:6px;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:6px;box-shadow:0 4px 12px #00000026;margin-top:4px;min-width:280px}.link-popover-input{flex:1;padding:.3rem .5rem;font-size:.8rem;border:1px solid var(--color-border-input);border-radius:4px;min-width:180px}.link-popover-btn{padding:.3em .6em;font-size:.8rem;font-weight:600;border:1px solid var(--color-border-input);border-radius:4px;cursor:pointer}.link-popover-ok{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.link-popover-ok:hover{background:var(--color-primary-hover)}.link-popover-cancel{background:var(--color-surface-alt);color:var(--color-text-muted)}.link-popover-cancel:hover{background:var(--color-surface-hover)}.editor-area .tiptap{padding:1rem;min-height:300px;outline:none;font-size:.95rem;line-height:1.7}.editor-area .tiptap h2{font-size:1.4rem;margin:1.5rem 0 .5rem;color:var(--color-text)}.editor-area .tiptap h3{font-size:1.15rem;margin:1.2rem 0 .4rem;color:var(--color-text-secondary)}.editor-area .tiptap p{margin:0 0 .75rem}.editor-area .tiptap ul,.editor-area .tiptap ol{padding-left:1.5rem;margin:0 0 .75rem}.editor-area .tiptap a{color:var(--color-primary);text-decoration:underline;cursor:pointer}.editor-area .tiptap a:hover{color:var(--color-primary-hover)}.editor-area .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--color-text-placeholder);pointer-events:none;height:0}.notes-text{font-size:.85rem;color:var(--color-text-secondary);white-space:pre-wrap;margin-bottom:.75rem;padding:.75rem;background:var(--color-surface-alt);border-radius:6px}.link-table{width:100%;border-collapse:collapse;font-size:.8rem}.link-table th{text-align:left;padding:.4rem .5rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.link-table td{padding:.4rem .5rem;border-bottom:1px solid var(--color-border-light)}.link-url{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-ok td{color:#059669}.link-bad td{color:#dc2626}.diff-view{background:var(--color-surface);display:flex;flex-direction:column;height:100%}.diff-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);flex-shrink:0}.diff-header h3{font-size:.9rem;margin:0}.diff-header-right{display:flex;align-items:center;gap:.75rem}.diff-stats{font-size:.8rem}.stat-added{color:#059669;font-weight:600}.stat-removed{color:#dc2626;font-weight:600}.diff-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--color-border-input);border-radius:6px;background:var(--color-surface);color:var(--color-text-muted);font-size:1.1rem;line-height:1;cursor:pointer}.diff-close-btn:hover{background:var(--color-surface-hover);color:var(--color-text-secondary)}.diff-panels{display:grid;grid-template-columns:1fr 1fr;flex:1;min-height:0}.diff-panel{display:flex;flex-direction:column;min-height:0}.diff-left{border-right:1px solid var(--color-border)}.diff-label{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);padding:.5rem 1rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border-light);flex-shrink:0}.diff-content{padding:1rem;font-size:.95rem;line-height:1.7;overflow-y:auto;flex:1}.diff-content-html{white-space:normal;word-wrap:break-word}.diff-content-html h2{font-size:1.4rem;margin:1.5rem 0 .5rem;color:var(--color-text)}.diff-content-html h3{font-size:1.15rem;margin:1.2rem 0 .4rem;color:var(--color-text-secondary)}.diff-content-html p{margin:0 0 .75rem}.diff-content-html ul,.diff-content-html ol{padding-left:1.5rem;margin:0 0 .75rem}.diff-content-html li{margin-bottom:.25rem}mark.diff-added{background:var(--color-diff-added-bg);color:var(--color-diff-added-text);padding:1px 3px;border-radius:3px;text-decoration:none}mark.diff-removed{background:var(--color-diff-removed-bg);color:var(--color-diff-removed-text);padding:1px 3px;border-radius:3px;text-decoration:line-through}.diff-block-added{background:var(--color-diff-block-added);border-left:3px solid #22c55e;padding-left:.75rem!important}.diff-block-removed{background:var(--color-diff-block-removed);border-left:3px solid #ef4444;padding-left:.75rem!important}span.diff-added{background:var(--color-diff-added-bg);color:var(--color-diff-added-text);padding:1px 2px;border-radius:2px}span.diff-removed{background:var(--color-diff-removed-bg);color:var(--color-diff-removed-text);padding:1px 2px;border-radius:2px;text-decoration:line-through}.diff-empty{color:var(--color-text-placeholder);font-style:italic}.diff-view--embedded{height:auto;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.diff-view--embedded .diff-panels{max-height:450px;overflow-y:auto}.article-settings-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--color-radius-lg);overflow:hidden}.article-settings-header{display:flex;align-items:center;padding:.6rem 1rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);font-weight:600;font-size:.9rem;color:var(--color-text)}.article-settings-section .input-form{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:1rem}.article-settings-section .input-form label{margin-bottom:0}.article-settings-section .input-form-topic{grid-column:1 / -1}.article-settings-section .content-editor{border:none;border-radius:0;border-top:1px solid var(--color-border)}.working-content-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.working-content-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.working-content-header-left{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:var(--color-text)}.stage-results-area{display:flex;flex-direction:column;gap:.75rem}.stage-result-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--color-radius-lg);overflow:hidden}.stage-result-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none}.stage-result-header:hover{background:var(--color-surface-hover)}.stage-result-panel--collapsed .stage-result-header{border-bottom:none}.stage-result-header-left{display:flex;align-items:center;gap:.5rem}.stage-result-chevron{font-size:.7rem;color:var(--color-text-muted);width:1em}.stage-result-title{font-weight:600;font-size:.9rem;color:var(--color-text)}.stage-result-header-right{display:flex;align-items:center;gap:.35rem}.stage-copy-btn{font-size:.75rem;padding:.2em .5em;background:var(--color-primary-bg);border-color:var(--color-primary-border);color:var(--color-primary-dark)}.stage-copy-btn:hover:not(:disabled){background:#e0e7ff}.stage-apply-btn{background:var(--color-success-bg);border-color:#6ee7b7;color:var(--color-success)}.stage-apply-btn:hover:not(:disabled){background:var(--color-success-light)}.stage-result-body{max-height:500px;overflow-y:auto}.stage-placeholder{padding:2rem;text-align:center;color:var(--color-text-placeholder);font-size:.9rem;font-style:italic}.stage-running-substep{padding:1.5rem 2rem;color:var(--color-text-muted);font-size:.85rem;animation:pulse 1.5s ease-in-out infinite}.stage-result-error{padding:1rem;color:var(--color-error);background:var(--color-error-bg);font-size:.85rem}.stage-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);background:var(--color-surface-alt)}.stage-tab{padding:.5rem 1rem;border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;font-size:.8rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:color .15s,border-color .15s}.stage-tab:hover{color:var(--color-primary-dark);background:transparent}.stage-tab--active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary);background:transparent}.stage-content-render{padding:1rem}.stage-html-content{font-size:.95rem;line-height:1.7}.stage-html-content h2{font-size:1.4rem;margin:1.5rem 0 .5rem;color:var(--color-text)}.stage-html-content h3{font-size:1.15rem;margin:1.2rem 0 .4rem;color:var(--color-text-secondary)}.stage-html-content p{margin:0 0 .75rem}.stage-html-content ul,.stage-html-content ol{padding-left:1.5rem;margin:0 0 .75rem}.stage-html-content li{margin-bottom:.25rem}.stage-verify-notes{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.stage-verify-notes h4{font-size:.9rem;margin:0 0 .75rem;color:var(--color-text)}.stage-comparison{padding:0}.link-report{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--color-radius-lg);overflow:hidden}.link-report-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none}.link-report-header:hover{background:var(--color-surface-hover)}.link-report-header-left{display:flex;align-items:center;gap:.5rem}.link-report-title{font-weight:600;font-size:.9rem;color:var(--color-text)}.link-report-badges{display:flex;gap:.35rem;margin-left:.5rem}.link-badge{font-size:.7rem;padding:.15em .5em;border-radius:10px;font-weight:600}.link-badge-total{background:var(--color-surface-hover);color:var(--color-text-secondary)}.link-badge-ok{background:var(--color-success-bg);color:var(--color-success)}.link-badge-broken{background:var(--color-error-bg);color:var(--color-error)}.link-badge-redirect{background:var(--color-warning-bg);color:var(--color-warning)}.link-report-body{padding:1rem;max-height:400px;overflow-y:auto}.link-report-body .link-table{margin-top:0}.link-report-body .link-table a{color:var(--color-primary);text-decoration:none;font-size:.8rem}.link-report-body .link-table a:hover{text-decoration:underline}.link-redirect td{color:var(--color-warning)}.theme-toggle{display:flex;align-items:center;gap:.25rem;padding:.3em .6em;font-size:.8rem;font-weight:600}.stage-progress-bar{height:3px;background:var(--color-border-light);overflow:hidden}.stage-progress-bar-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.toolbar-btn[title]{position:relative}
