        :root {
            /* 主色系统 - 现代蓝紫渐变 */
            --brand: #6366f1;
            --brand-dark: #4f46e5;
            --brand-soft: #e0e7ff;
            --brand-hover: #818cf8;

            /* 浅色主题：背景与文字 */
            --bg: #faf8f0;
            --bg-elevated: #ffffff;
            --card: #ffffff;
            --card-2: #f8f9fa;
            --text: #1e293b;
            --text-sub: #475569;
            --muted: #94a3b8;
            --border: #e2e8f0;
            --border-soft: #f1f5f9;

            /* 状态色 */
            --st-ok: #10b981;
            --st-ok-soft: #d1fae5;
            --st-run: #f59e0b;
            --st-run-soft: #fef3c7;
            --st-pause: #6366f1;
            --st-pause-soft: #e0e7ff;
            --st-err: #ef4444;
            --st-err-soft: #fee2e2;
            --st-info: #3b82f6;
            --st-info-soft: #dbeafe;

            /* 输入框背景 */
            --input-bg: #ffffff;

            /* 按钮色系 */
            --btn-primary: #6366f1;
            --btn-primary-hover: #818cf8;
            --btn-primary-disabled: #c7d2fe;
            --btn-warning: #f59e0b;
            --btn-warning-hover: #d97706;
            --btn-danger: #ef4444;
            --btn-danger-hover: #dc2626;
            --btn-success: #10b981;
            --btn-success-hover: #059669;
            --btn-default: #94a3b8;
            --btn-default-hover: #64748b;

            /* 状态徽章 */
            --badge-running-bg: #dbeafe;
            --badge-running-fg: #2563eb;
            --badge-paused-bg: #fef3c7;
            --badge-paused-fg: #d97706;
            --badge-completed-bg: #d1fae5;
            --badge-completed-fg: #059669;
            --badge-error-bg: #fee2e2;
            --badge-error-fg: #dc2626;
            --badge-interrupted-bg: #f3e8ff;
            --badge-interrupted-fg: #9333ea;
            --badge-pending-bg: #f1f5f9;
            --badge-pending-fg: #64748b;
            --badge-success-bg: #d1fae5;
            --badge-success-fg: #065f46;
            --badge-done-bg: #d1fae5;
            --badge-done-fg: #065f46;

            /* 阴影系统 */
            --shadow-soft: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
            --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.08), 0 2px 4px -1px rgba(0,0,0,0.04);
            --shadow-hover: 0 10px 15px -3px rgba(0,0,0,0.10), 0 4px 6px -2px rgba(0,0,0,0.05);
            --shadow-brand: 0 4px 12px rgba(99,102,241,0.25);

            /* 圆角系统 */
            --r-sm: 6px;
            --r-btn: 8px;
            --r-card: 12px;
            --r-modal: 16px;

            /* 过渡时间 */
            --t: 0.2s ease;

            /* 导航高度 */
            --nav-h: 60px;

            /* 骨架屏动画 */
            --skeleton-bg: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 37%, #f1f5f9 63%);
        }

        /* 暗黑主题变量 */
        [data-theme="dark"] {
            --bg: #0f172a;
            --bg-elevated: #1e293b;
            --card: #1e293b;
            --card-2: #334155;
            --text: #f1f5f9;
            --text-sub: #cbd5e1;
            --muted: #64748b;
            --border: #334155;
            --border-soft: #1e293b;
            --input-bg: #334155;
            --st-ok-soft: rgba(16,185,129,0.15);
            --st-run-soft: rgba(245,158,11,0.15);
            --st-pause-soft: rgba(99,102,241,0.15);
            --st-err-soft: rgba(239,68,68,0.15);
            --st-info-soft: rgba(59,130,246,0.15);
            --skeleton-bg: linear-gradient(90deg, #334155 25%, #475569 37%, #334155 63%);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        html { background: var(--bg); scroll-behavior: smooth; }
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
            background: var(--bg);
            color: var(--text);
            padding: 20px;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            transition: background-color var(--t), color var(--t);
        }
        .container {
            max-width: 1600px;
            width: 100%;
            margin: 0 auto;
            padding: 0 16px;
        }
        [data-theme="dark"] body { color-scheme: dark; }
        h1 {
            text-align: center;
            color: #2c3e50;
            margin-bottom: 30px;
            font-size: 26px;
            font-weight: 700;
            letter-spacing: 0.5px;
        }
        .card {
            background: white;
            border-radius: 12px;
            padding: 24px;
            margin-bottom: 20px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.06);
            border: 1px solid #eef1f5;
        }
        .form-group {
            margin-bottom: 16px;
        }
        label {
            display: block;
            margin-bottom: 6px;
            font-weight: 500;
            color: #555;
            font-size: 14px;
        }
        textarea, input[type="number"] {
            width: 100%;
            padding: 10px 12px;
            border: 1px solid #ddd;
            border-radius: 8px;
            font-size: 14px;
            font-family: inherit;
            transition: border-color 0.2s;
        }
        textarea:focus, input[type="number"]:focus {
            outline: none;
            border-color: #4a90d9;
        }
        textarea {
            min-height: 100px;
            resize: vertical;
        }
        .row {
            display: flex;
            gap: 16px;
            flex-wrap: wrap;
        }
        .row .form-group {
            flex: 1;
            min-width: 140px;
        }
        .ai-desc {
            margin-top: 6px;
            padding: 6px 10px;
            background: #e8f4fd;
            border: 1px solid #bee5eb;
            border-radius: 4px;
            font-size: 12px;
            color: #0c5460;
            line-height: 1.5;
        }
        .btn {
            padding: 10px 24px;
            border: none;
            border-radius: var(--r-btn);
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all var(--t);
            box-shadow: var(--shadow-soft);
            display: inline-flex;
            align-items: center;
            gap: 8px;
            line-height: 1.5;
        }
        .btn:hover {
            transform: translateY(-1px);
            box-shadow: var(--shadow-md);
        }
        .btn:active {
            transform: translateY(0);
        }
        .btn-primary {
            background: linear-gradient(135deg, var(--btn-primary) 0%, var(--brand-hover) 100%);
            color: white;
            box-shadow: var(--shadow-brand);
        }
        .btn-primary:hover {
            background: linear-gradient(135deg, var(--brand-hover) 0%, var(--btn-primary) 100%);
            box-shadow: var(--shadow-hover);
        }
        .btn-primary:disabled {
            background: var(--btn-primary-disabled);
            cursor: not-allowed;
            box-shadow: none;
            transform: none;
        }
        .btn-warning {
            background: linear-gradient(135deg, var(--btn-warning) 0%, var(--btn-warning-hover) 100%);
            color: white;
        }
        .btn-warning:hover {
            background: linear-gradient(135deg, var(--btn-warning-hover) 0%, var(--btn-warning) 100%);
        }
        .btn-danger {
            background: linear-gradient(135deg, var(--btn-danger) 0%, var(--btn-danger-hover) 100%);
            color: white;
        }
        .btn-danger:hover {
            background: linear-gradient(135deg, var(--btn-danger-hover) 0%, var(--btn-danger) 100%);
        }
        .btn-success {
            background: linear-gradient(135deg, var(--btn-success) 0%, var(--btn-success-hover) 100%);
            color: white;
        }
        .btn-success:hover {
            background: linear-gradient(135deg, var(--btn-success-hover) 0%, var(--btn-success) 100%);
        }
        .btn-default {
            background: var(--btn-default);
            color: white;
        }
        .btn-default:hover {
            background: var(--btn-default-hover);
        }
        .btn-sm {
            padding: 6px 12px;
            font-size: 12px;
        }
        .btn-group {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        .status-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 16px;
            padding-bottom: 12px;
            border-bottom: 1px solid #eee;
        }
        .status-title {
            font-size: 18px;
            font-weight: 600;
            color: #2c3e50;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 300px;
        }
        .status-badge {
            padding: 4px 12px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 500;
        }
        .badge-running { background: var(--badge-running-bg); color: var(--badge-running-fg); }
        .badge-paused { background: var(--badge-paused-bg); color: var(--badge-paused-fg); }
        .badge-completed { background: var(--badge-completed-bg); color: var(--badge-completed-fg); }
        .badge-error { background: var(--badge-error-bg); color: var(--badge-error-fg); }
        .badge-interrupted { background: var(--badge-interrupted-bg); color: var(--badge-interrupted-fg); }
        .badge-pending { background: var(--badge-pending-bg); color: var(--badge-pending-fg); }
        .progress-section {
            margin-bottom: 20px;
        }
        .progress-bar {
            width: 100%;
            height: 24px;
            background: #e9ecef;
            border-radius: 12px;
            overflow: hidden;
            margin-top: 8px;
        }
        .progress-fill {
            height: 100%;
            background: linear-gradient(90deg, #4a90d9, #67b8de);
            border-radius: 12px;
            transition: width 0.3s;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            padding-right: 10px;
            color: white;
            font-size: 12px;
            font-weight: 500;
        }
        .progress-info {
            display: flex;
            justify-content: space-between;
            font-size: 13px;
            color: #666;
            margin-top: 4px;
        }
        .info-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
            gap: 12px;
            margin-bottom: 20px;
        }
        .info-item {
            padding: 12px;
            background: #f8f9fa;
            border-radius: 8px;
        }
        .info-label {
            font-size: 12px;
            color: #888;
            margin-bottom: 4px;
        }
        .info-value {
            font-size: 16px;
            font-weight: 600;
            color: #2c3e50;
        }
        .section-title {
            font-size: 16px;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 12px;
            padding-bottom: 8px;
            border-bottom: 2px solid #4a90d9;
            display: inline-block;
        }
        .log-box {
            background: #1e1e1e;
            color: #d4d4d4;
            padding: 12px;
            border-radius: 8px;
            font-family: 'Consolas', 'Monaco', monospace;
            font-size: 12px;
            max-height: 200px;
            overflow-y: auto;
            line-height: 1.6;
        }
        .chapters-list {
            max-height: 300px;
            overflow-y: auto;
            border: 1px solid #eee;
            border-radius: 8px;
        }
        .chapter-item {
            padding: 10px 14px;
            border-bottom: 1px solid #f0f0f0;
            display: flex;
            justify-content: space-between;
            align-items: center;
            cursor: pointer;
            transition: background 0.2s;
        }
        .chapter-item:hover { background: #f8f9fa; }
        .chapter-item:last-child { border-bottom: none; }
        .chapter-item .chk-chapter {
            flex: 0 0 auto;
            margin: 0 10px 0 0;
            width: 15px;
            height: 15px;
            cursor: pointer;
            accent-color: #3498db;
        }
        .chapter-name {
            flex: 1;
            font-size: 14px;
            color: #333;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .chapter-words {
            font-size: 12px;
            color: #888;
        }
        .tabs {
            display: flex;
            gap: 4px;
            margin-bottom: 16px;
            border-bottom: 2px solid #eee;
        }
        .tab {
            padding: 10px 20px;
            cursor: pointer;
            font-size: 14px;
            color: #666;
            border-bottom: 2px solid transparent;
            margin-bottom: -2px;
            transition: all 0.2s;
        }
        .tab.active {
            color: #4a90d9;
            border-bottom-color: #4a90d9;
            font-weight: 500;
        }
        .tab-content { display: none; }
        .tab-content.active { display: block; }
        .modal {
            display: none;
            position: fixed;
            top: 0; left: 0;
            width: 100%; height: 100%;
            background: rgba(0,0,0,0.5);
            z-index: 1000;
            justify-content: center;
            align-items: center;
        }
        .modal.active { display: flex; }
        .modal-content {
            background: white;
            border-radius: 12px;
            padding: 24px;
            max-width: 800px;
            width: 90%;
            max-height: 80vh;
            overflow-y: auto;
        }
        .modal-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 16px;
            padding-bottom: 12px;
            border-bottom: 1px solid #eee;
        }
        .modal-title {
            font-size: 18px;
            font-weight: 600;
        }
        .modal-close {
            background: none;
            border: none;
            font-size: 24px;
            cursor: pointer;
            color: #888;
        }
        .chapter-content {
            line-height: 1.8;
            font-size: 15px;
            white-space: pre-wrap;
        }
        .tasks-list {
            max-height: 400px;
            overflow-y: auto;
        }
        .task-item {
            padding: 12px 16px;
            border: 1px solid #eee;
            border-radius: 8px;
            margin-bottom: 8px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .task-item:hover { border-color: #4a90d9; }
        .task-item.active { border-color: #4a90d9; background: #f0f7ff; }
        .task-item-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
        }
        .task-delete-btn {
            background: none;
            border: none;
            color: #999;
            cursor: pointer;
            font-size: 14px;
            padding: 2px 6px;
            border-radius: 4px;
            transition: all 0.2s;
            opacity: 0;
        }
        .task-item:hover .task-delete-btn { opacity: 1; }
        .task-delete-btn:hover { background: #ffebee; color: #e74c3c; }
        .task-item-actions {
            display: flex;
            align-items: center;
            gap: 2px;
            flex-shrink: 0;
        }
        .task-pin-btn {
            background: none;
            border: none;
            color: #bbb;
            cursor: pointer;
            font-size: 14px;
            padding: 2px 6px;
            border-radius: 4px;
            transition: all 0.2s;
            opacity: 0;
        }
        .task-item:hover .task-pin-btn { opacity: 1; }
        .task-pin-btn:hover { background: #fff8e1; color: #f5a623; }
        .task-pin-btn.active { opacity: 1; color: #f5a623; }
        .task-item.pinned {
            border-color: #ffe082;
            background: #fffbeb;
            box-shadow: inset 3px 0 0 #f5a623;
        }
        .task-item.pinned.active { background: #fff7d6; border-color: #f5a623; }
        .pin-icon { margin-right: 2px; }
        .task-group.pinned-group .task-group-title { color: #f5a623; border-bottom-color: #ffe082; }
        .task-idea {
            font-size: 14px;
            font-weight: 500;
            color: #333;
            margin-bottom: 4px;
            flex: 1;
        }
        .task-meta {
            font-size: 12px;
            color: #888;
            display: flex;
            gap: 12px;
        }
        .task-points {
            color: #d97706;
            font-weight: 600;
        }
        .task-group { margin-bottom: 10px; }
        .task-group-title {
            font-size: 13px;
            font-weight: 600;
            color: #4a90d9;
            margin: 12px 4px 6px;
            padding-bottom: 4px;
            border-bottom: 1px solid #e8eef7;
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .task-group-title:first-child { margin-top: 2px; }
        .task-group-count {
            font-size: 11px;
            font-weight: 400;
            color: #999;
            background: #f5f5f5;
            padding: 1px 8px;
            border-radius: 10px;
        }
        .tasks-filter {
            display: flex;
            gap: 8px;
            margin-bottom: 14px;
            flex-wrap: wrap;
            padding: 4px 0 8px;
            border-bottom: 1px solid #f0f0f0;
        }
        .filter-tab {
            padding: 5px 13px;
            border: 1px solid #ddd;
            background: #fff;
            color: #555;
            border-radius: 16px;
            cursor: pointer;
            font-size: 12px;
            transition: all 0.2s;
            display: inline-flex;
            align-items: center;
            gap: 5px;
        }
        .filter-tab:hover { border-color: #4a90d9; color: #4a90d9; }
        .filter-tab.active { background: #4a90d9; color: #fff; border-color: #4a90d9; }
        .filter-count {
            font-size: 11px;
            background: rgba(0, 0, 0, 0.08);
            padding: 0 7px;
            border-radius: 10px;
            line-height: 16px;
        }
        .filter-tab.active .filter-count { background: rgba(255, 255, 255, 0.25); }
        .tasks-pagination {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            margin-top: 14px;
            padding-top: 12px;
            border-top: 1px solid #f0f0f0;
            flex-wrap: wrap;
        }
        .page-btn {
            min-width: 34px;
            height: 30px;
            padding: 0 10px;
            border: 1px solid #ddd;
            background: #fff;
            color: #555;
            border-radius: 6px;
            cursor: pointer;
            font-size: 12px;
            transition: all 0.2s;
        }
        .page-btn:hover:not(:disabled) { border-color: #4a90d9; color: #4a90d9; }
        .page-btn.active { background: #4a90d9; color: #fff; border-color: #4a90d9; }
        .page-btn:disabled { opacity: 0.4; cursor: not-allowed; }
        .page-ellipsis { color: #999; padding: 0 4px; line-height: 30px; }
        .page-info { font-size: 12px; color: #999; margin-left: 6px; }
        .history-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: 12px;
        }
        .history-card {
            padding: 16px;
            border: 1px solid #eee;
            border-radius: 8px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .history-card:hover {
            border-color: #4a90d9;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }
        .history-title {
            font-size: 15px;
            font-weight: 600;
            color: #2c3e50;
            margin-bottom: 8px;
        }
        .history-meta {
            font-size: 12px;
            color: #888;
        }
        .outline-box {
            background: #f8f9fa;
            padding: 16px;
            border-radius: 8px;
            font-size: 13px;
            line-height: 1.7;
            max-height: none;
            overflow-y: visible;
        }
        .outline-box h4 { margin-top: 12px; color: #2c3e50; }
        .outline-box ul { padding-left: 20px; }
        .score-display {
            font-size: 36px;
            font-weight: 700;
            color: #4a90d9;
            text-align: center;
        }
        .score-label {
            text-align: center;
            color: #888;
            font-size: 13px;
            margin-top: 4px;
        }
        /* 工具栏 */
        .toolbar {
            padding: 8px 10px;
            margin-bottom: 10px;
            background: #f8f9fa;
            border-radius: 8px;
            display: flex;
            gap: 6px;
            align-items: center;
            flex-wrap: wrap;
        }
        .input-mini {
            width: 70px;
            padding: 5px 8px;
            font-size: 12px;
            border: 1px solid #ddd;
            border-radius: 6px;
            transition: border-color 0.2s;
        }
        .input-mini:focus { outline: none; border-color: #4a90d9; }
        /* 次级按钮。历史坑：这里只写了 color:#fff、从不写 background，于是不带
           .blue/.green/.orange/.ghost 的裸用法会落到浏览器默认的浅灰按钮底色上，
           变成白字灰底、几乎看不见（「← 返回章节」「上一页/下一页」都踩过）。
           现在给默认一套主题次级配色，实心色由修饰类在后面覆盖。 */
        .btn-mini {
            padding: 5px 12px;
            font-size: 12px;
            border: 1px solid var(--border);
            border-radius: 6px;
            cursor: pointer;
            background: var(--card-2);
            color: var(--text-sub);
            transition: color 0.16s, border-color 0.16s, background 0.16s, transform 0.1s;
            white-space: nowrap;
        }
        .btn-mini:hover { color: var(--brand); border-color: var(--brand); background: var(--brand-soft); }
        .btn-mini:active { transform: scale(0.97); }
        /* 实心色按钮：保持白字，边框透明（与次级按钮同尺寸）。
           色值按 WCAG AA 压深过一档，白字对比度均 ≥4.5:1（12px 小字也达标）：
           蓝 4.91、绿 5.04、橙 4.82、红 5.44。hover 用 brightness 压暗而不是
           opacity——半透明会把白字一起淡化，反而掉回 4.5 以下。 */
        .btn-mini.blue, .btn-mini.green, .btn-mini.orange, .btn-mini.red { color: #fff; border-color: transparent; }
        .btn-mini.blue { background: #2676ad; }
        .btn-mini.green { background: #1a7f45; }
        .btn-mini.orange { background: #b25a0d; }
        .btn-mini.red { background: #c0392b; }
        .btn-mini.blue:hover, .btn-mini.green:hover, .btn-mini.orange:hover, .btn-mini.red:hover { color: #fff; border-color: transparent; filter: brightness(0.92); }
        .btn-mini.ghost { background: #fff; color: #555; border: 1px solid #ddd; }
        .btn-mini.ghost:hover { background: #f0f7ff; border-color: #4a90d9; color: #4a90d9; }
        /* 章节批量操作工具栏 */
        .batch-toolbar { padding: 8px 12px; align-items: center; }
        .batch-sel-all {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            font-size: 13px;
            color: #555;
            cursor: pointer;
            user-select: none;
        }
        .batch-sel-all input { cursor: pointer; accent-color: #3498db; }
        .batch-sel-info {
            font-size: 12px;
            color: #999;
            margin: 0 4px;
            white-space: nowrap;
        }
        .batch-sel-info.active { color: #27ae60; font-weight: 600; }
        .batch-progress { padding: 0 4px; margin-bottom: 10px; }
        .batch-progress-bar {
            height: 6px;
            background: #eee;
            border-radius: 3px;
            overflow: hidden;
        }
        .batch-progress-fill {
            height: 100%;
            width: 0;
            background: linear-gradient(90deg, #27ae60, #2ecc71);
            border-radius: 3px;
            transition: width 0.3s ease;
        }
        .batch-progress-text {
            margin-top: 6px;
            font-size: 12px;
            color: #666;
        }
        .batch-credit {
            margin-left: auto;
            font-size: 12px;
            font-weight: 600;
            color: #b8860b;
            white-space: nowrap;
        }
        .batch-cost-meta {
            margin-top: 8px;
            display: flex;
            justify-content: space-between;
            gap: 8px;
            font-size: 12px;
            color: #666;
        }
        .batch-cost-meta b { color: #e67e22; }
        .batch-cost-log {
            margin-top: 6px;
            max-height: 180px;
            overflow-y: auto;
            border: 1px solid #f0f0f0;
            border-radius: 6px;
            background: #fafbfc;
            padding: 4px 10px;
        }
        .batch-cost-row {
            display: flex;
            justify-content: space-between;
            padding: 4px 0;
            font-size: 12px;
            color: #555;
            border-bottom: 1px dashed #eee;
        }
        .batch-cost-row:last-child { border-bottom: none; }
        .batch-cost-row .cost { color: #e74c3c; font-weight: 600; }
        /* 章节细纲项 */
        .outline-item {
            margin-bottom: 6px;
            border: 1px solid #eee;
            border-radius: 8px;
            overflow: hidden;
            transition: box-shadow 0.2s, border-color 0.2s;
        }
        .outline-item:hover { border-color: #c5dae8; }
        .outline-item-header {
            padding: 9px 14px;
            background: #fafbfc;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .outline-item-header.clickable { cursor: pointer; }
        .outline-item-title { font-weight: 500; font-size: 13px; color: #2c3e50; }
        .outline-tag {
            font-size: 11px;
            padding: 2px 9px;
            border-radius: 10px;
            color: #fff;
        }
        .outline-item-detail {
            padding: 10px 14px;
            font-size: 13px;
            line-height: 1.7;
            background: #fff;
        }
        .outline-item-detail p { margin-bottom: 4px; }
        .outline-item-empty {
            padding: 6px 14px;
            font-size: 12px;
            color: #aaa;
            background: #fafafa;
        }
        .outline-section {
            border-top: 3px solid #2c3e50;
            margin-top: 24px;
            padding-top: 16px;
        }
        .outline-section-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 8px;
            flex-wrap: wrap;
            gap: 8px;
        }
        .outline-section-head h3 { color: #2c3e50; margin: 0; font-size: 16px; }
        .outline-section-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
        .outline-tip { color: #888; font-size: 12px; margin-bottom: 12px; }
        .empty-hint { color: #888; text-align: center; padding: 20px; }
        .load-more-wrap { text-align: center; padding: 10px; }

        /* ===== B 路线润色对比样式 ===== */
        .polish-compare-list {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        .polish-compare-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 16px;
            background: #fafafa;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .polish-compare-item:hover {
            background: #f0f7ff;
            border-color: #1976d2;
            transform: translateX(4px);
        }
        .polish-compare-item .pc-num {
            font-weight: 600;
            color: #333;
            min-width: 80px;
        }
        .polish-compare-item .pc-arrow {
            color: #1976d2;
            font-weight: bold;
        }
        .polish-compare-item .pc-hint {
            color: #888;
            font-size: 13px;
        }
        .polish-compare-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 12px;
        }
        .pc-panel {
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            max-height: 70vh;
        }
        .pc-panel.pc-draft { border-color: #ff9800; }
        .pc-panel.pc-polished { border-color: #1976d2; }
        .pc-panel-header {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 14px;
            background: #f5f5f5;
            border-bottom: 1px solid #e0e0e0;
            font-size: 13px;
        }
        .pc-panel.pc-draft .pc-panel-header { background: #fff3e0; }
        .pc-panel.pc-polished .pc-panel-header { background: #e3f2fd; }
        .pc-tag {
            font-weight: 600;
            padding: 2px 10px;
            border-radius: 4px;
            font-size: 12px;
            color: #fff;
        }
        .pc-tag.sol-tag { background: #ff9800; }
        .pc-tag.opus-tag { background: #1976d2; }
        .pc-words { color: #666; font-size: 12px; }
        .pc-diff { font-size: 12px; font-weight: 600; }
        .pc-content {
            padding: 14px 18px;
            overflow-y: auto;
            white-space: pre-wrap;
            font-size: 14px;
            line-height: 1.8;
            color: #333;
            flex: 1;
        }
        @media (max-width: 1100px) {
            .polish-compare-grid { grid-template-columns: 1fr; }
        }
        /* 可编辑大纲样式 */
        .outline-textarea {
            width: 100%;
            padding: 8px 10px;
            font-size: 13px;
            font-family: inherit;
            border: 1px solid #ddd;
            border-radius: 6px;
            resize: vertical;
            line-height: 1.6;
            transition: border-color 0.2s;
        }
        .outline-textarea:focus { outline: none; border-color: #4a90d9; }
        .outline-textarea-sm {
            width: 100%;
            padding: 6px 8px;
            font-size: 12px;
            font-family: inherit;
            border: 1px solid #ddd;
            border-radius: 4px;
            resize: vertical;
            line-height: 1.5;
            margin-top: 4px;
            transition: border-color 0.2s;
        }
        .outline-textarea-sm:focus { outline: none; border-color: #4a90d9; }
        .outline-title-input {
            font-weight: 500;
            font-size: 13px;
            color: #2c3e50;
            border: none;
            background: transparent;
            padding: 0;
            width: 70%;
            outline: none;
        }
        .outline-title-input:focus { background: #fff; padding: 2px 4px; border-radius: 3px; }
        .outline-tag-input {
            font-size: 11px;
            padding: 2px 9px;
            border-radius: 10px;
            color: #fff;
            border: none;
            outline: none;
            cursor: pointer;
        }
        .inner-tabs {
            display: flex;
            gap: 4px;
            margin-bottom: 16px;
            border-bottom: 2px solid #e8ecf0;
            padding-bottom: 4px;
        }
        .inner-tab {
            padding: 6px 14px;
            font-size: 13px;
            border-radius: 6px 6px 0 0;
            cursor: pointer;
            color: #666;
            background: transparent;
            transition: all 0.2s;
        }
        .inner-tab:hover {
            background: #f5f7fa;
            color: #333;
        }
        .inner-tab.active {
            background: #4a90d9;
            color: #fff;
        }
        .inner-tab-content {
            display: none;
        }
        .inner-tab-content.active {
            display: block;
        }
        .pagination-wrap {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            padding: 12px;
            margin-top: 8px;
            border-top: 1px solid #eee;
        }
        .edit-group {
            margin-bottom: 16px;
        }
        .edit-actions {
            display: flex;
            justify-content: flex-end;
            margin-top: 6px;
        }
        .btn-mini.disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }
        
        .navbar {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
            padding: 12px 24px;
            z-index: 1000;
            box-shadow: 0 2px 10px rgba(0,0,0,0.15);
            display: flex;
            align-items: center;
            gap: 24px;
        }
        .navbar-brand {
            color: white;
            font-size: 18px;
            font-weight: 600;
            margin-right: 20px;
        }
        .navbar-nav {
            display: flex;
            gap: 8px;
            list-style: none;
            margin: 0;
            padding: 0;
        }
        .navbar-item {
            color: rgba(255,255,255,0.85);
            padding: 8px 16px;
            border-radius: 6px;
            cursor: pointer;
            font-size: 14px;
            transition: all 0.2s;
            white-space: nowrap;
        }
        .navbar-item:hover {
            background: rgba(255,255,255,0.1);
            color: white;
        }
        .navbar-item.active {
            background: rgba(74, 144, 217, 0.8);
            color: white;
        }
        .navbar-divider {
            width: 1px;
            height: 24px;
            background: rgba(255,255,255,0.2);
            margin: 0 8px;
        }
        .navbar-sub {
            position: absolute;
            top: 100%;
            left: 0;
            right: 0;
            background: #fff;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            padding: 12px 24px;
            display: none;
            gap: 12px;
            flex-wrap: wrap;
            border-bottom: 2px solid #4a90d9;
        }
        .navbar-sub.active {
            display: flex;
        }
        .navbar-sub-item {
            color: #555;
            padding: 6px 12px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 13px;
            transition: all 0.2s;
            border: 1px solid #e0e0e0;
        }
        .navbar-sub-item:hover {
            background: #4a90d9;
            color: white;
            border-color: #4a90d9;
        }
        body {
            padding-top: 60px;
        }
        .view {
            display: none;
            padding: 20px 0;
        }
        .view.active {
            display: block;
        }
        .view-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 20px;
        }
        .view-title {
            font-size: 22px;
            font-weight: 600;
            color: #2c3e50;
        }
        .view-actions {
            display: flex;
            gap: 10px;
        }
        .full-width {
            max-width: 1000px;
            margin: 0 auto;
        }
        /* 全局终审卡片 */
        .gr-card {
            border: 1px solid #e3e8ef;
            border-radius: 10px;
            padding: 14px 16px;
            margin-bottom: 12px;
            background: #fff;
            box-shadow: 0 1px 4px rgba(0,0,0,0.04);
        }
        .gr-head {
            display: flex;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
            margin-bottom: 8px;
        }
        .gr-badge {
            padding: 2px 10px;
            border-radius: 12px;
            font-size: 12px;
            font-weight: 600;
        }
        .gr-badge.midterm { background: #e3f2fd; color: #1565c0; }
        .gr-badge.full { background: #fff3e0; color: #e65100; }
        .gr-scope { font-size: 14px; font-weight: 600; color: #2c3e50; }
        .gr-score { font-size: 14px; font-weight: 700; }
        .gr-score.pass { color: #27ae60; }
        .gr-score.fail { color: #e74c3c; }
        .gr-summary { font-size: 13px; color: #555; line-height: 1.6; margin: 4px 0 10px; }
        .gr-issue {
            border-left: 3px solid #ddd;
            padding: 8px 12px;
            margin: 6px 0;
            background: #fafbfc;
            border-radius: 0 6px 6px 0;
            font-size: 13px;
            line-height: 1.6;
        }
        .gr-issue.high { border-left-color: #e74c3c; background: #fff5f5; }
        .gr-issue.medium { border-left-color: #f39c12; background: #fffaf3; }
        .gr-issue.low { border-left-color: #3498db; background: #f5fbff; }
        .gr-issue-tag {
            display: inline-block;
            padding: 1px 8px;
            border-radius: 10px;
            font-size: 11px;
            font-weight: 600;
            margin-right: 6px;
        }
        .gr-issue-tag.high { background: #ffebee; color: #c62828; }
        .gr-issue-tag.medium { background: #fff3e0; color: #ef6c00; }
        .gr-issue-tag.low { background: #e3f2fd; color: #1565c0; }
        .gr-issue-loc { color: #888; font-size: 12px; }
        .gr-issue-suggest { color: #2e7d32; margin-top: 4px; }
        /* 改文记录卡片 */
        .pr-card {
            border: 1px solid #e3e8ef;
            border-radius: 10px;
            padding: 14px 16px;
            margin-bottom: 12px;
            background: #fff;
            box-shadow: 0 1px 4px rgba(0,0,0,0.04);
        }
        .pr-head {
            display: flex;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
            margin-bottom: 8px;
        }
        .pr-badge {
            padding: 2px 10px;
            border-radius: 12px;
            font-size: 12px;
            font-weight: 600;
        }
        .pr-badge.midterm { background: #e3f2fd; color: #1565c0; }
        .pr-badge.full { background: #fff3e0; color: #e65100; }
        .pr-scope { font-size: 14px; font-weight: 600; color: #2c3e50; }
        .pr-stat { font-size: 13px; color: #555; }
        .pr-stat strong { color: #2c3e50; }
        .pr-stat.patched { color: #27ae60; }
        .pr-stat.skipped { color: #f39c12; }
        .pr-stat.issues { color: #e74c3c; }
        .pr-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
            margin-top: 10px;
        }
        .pr-table th, .pr-table td {
            padding: 8px 10px;
            text-align: left;
            border-bottom: 1px solid #eef1f5;
        }
        .pr-table th {
            background: #f8f9fa;
            color: #666;
            font-weight: 600;
            font-size: 12px;
        }
        .pr-table tr:last-child td { border-bottom: none; }
        .pr-ch-status {
            display: inline-block;
            padding: 1px 8px;
            border-radius: 10px;
            font-size: 11px;
            font-weight: 600;
        }
        .pr-ch-status.changed { background: #e8f5e9; color: #2e7d32; }
        .pr-ch-status.skipped { background: #fff3e0; color: #ef6c00; }
        .pr-ch-status.error { background: #ffebee; color: #c62828; }

        /* 全局终审：5 维质量雷达图 */
        .gr-radar-wrap {
            display: flex;
            gap: 16px;
            align-items: flex-start;
            padding: 10px 0 6px;
            border-top: 1px dashed #e3e8ef;
            margin-top: 8px;
            flex-wrap: wrap;
        }
        .gr-radar { flex: 0 0 260px; }
        .gr-radar svg { display: block; margin: 0 auto; }
        .gr-dim-details {
            flex: 1 1 280px;
            min-width: 240px;
            font-size: 12px;
            color: #444;
        }
        .gr-dim-details > summary {
            cursor: pointer;
            font-weight: 600;
            color: #2c3e50;
            padding: 4px 0;
            list-style: none;
        }
        .gr-dim-details > summary::before { content: "▸ "; color: #3498db; }
        .gr-dim-details[open] > summary::before { content: "▾ "; }
        .gr-dim-row {
            padding: 6px 0;
            border-bottom: 1px solid #f0f3f7;
        }
        .gr-dim-row:last-child { border-bottom: none; }
        .gr-dim-score {
            display: inline-block;
            margin-left: 6px;
            padding: 1px 7px;
            border-radius: 10px;
            font-size: 11px;
            font-weight: 600;
            background: #e3f2fd;
            color: #1565c0;
        }
        .gr-dim-score.low { background: #ffebee; color: #c62828; }
        .gr-dim-score.mid { background: #fff3e0; color: #ef6c00; }
        .gr-dim-reason { color: #c62828; margin-top: 2px; }
        .gr-dim-improve { color: #2e7d32; margin-top: 2px; }
        .pr-delta { font-size: 12px; color: #888; }
        .pr-delta.up { color: #27ae60; }
        .pr-delta.down { color: #e74c3c; }
        .pr-summary { font-size: 12px; color: #666; margin-top: 4px; line-height: 1.5; }
        .pr-error { font-size: 12px; color: #c62828; margin-top: 4px; }
        /* 用量统计表格 */
        .usage-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 13px;
            margin-top: 6px;
        }
        .usage-table th, .usage-table td {
            padding: 8px 10px;
            text-align: left;
            border-bottom: 1px solid #eef1f5;
        }
        .usage-table th {
            background: #f8f9fa;
            color: #666;
            font-weight: 600;
            font-size: 12px;
        }
        .usage-table tr:last-child td { border-bottom: none; }
        .usage-table td.cost { font-weight: 600; color: #2c3e50; }
        .usage-provider { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
        .usage-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }

        /* ==========================================================
           writer-layout v1 · 三栏编辑器布局（仿「作家助手」界面）
           · 命名空间完全隔离于旧样式：不覆盖任何 .card/.tab 等类
           · 旧功能锚点（#chaptersList / #outlineBox / #tab-* / modal）保持原样，不移动不改名
           · 新布局通过「镜像容器 + MutationObserver 同步」从旧锚点读数据，保证 JS 写入不失效
        ========================================================== */
        .writer-shell {
            width: 100%;
            margin-top: 12px;
            border-radius: 14px;
            border: 1px solid #e6e8ed;
            background: #fdfaf3;
            box-shadow: 0 2px 14px rgba(30, 40, 70, 0.04);
            overflow: hidden;
            font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;
            color: #263238;
        }
        /* ── 顶栏工具条 ── */
        .writer-topbar {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 16px;
            border-bottom: 1px solid #e6dfce;
            background: linear-gradient(180deg, #fdfaf3 0%, #f5efe3 100%);
            height: 52px;
            box-sizing: border-box;
            position: relative;
        }
        .writer-tb-group {
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .writer-tb-divider {
            width: 1px;
            height: 20px;
            background: #e3e5ea;
            margin: 0 4px;
        }
        .writer-tb-btn {
            height: 32px;
            min-width: 32px;
            padding: 0 10px;
            border: 1px solid transparent;
            background: transparent;
            border-radius: 6px;
            font-size: 13px;
            color: #4c5666;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            transition: all .15s;
            white-space: nowrap;
            font-weight: 500;
        }
        .writer-tb-icon { display: inline-flex; align-items: center; justify-content: center; }
        .writer-tb-icon svg { width: 14px; height: 14px; display: block; }
        .writer-tb-btn:hover { background: #eef2f7; border-color: #dde3ec; }
        .writer-tb-btn.primary { color: #2c7be5; }
        .writer-tb-btn.danger { color: #e55353; }
        .writer-tb-btn.has-caret::after {
            content: "▾";
            margin-left: 2px;
            font-size: 11px;
            color: #98a2b3;
        }
        /* 右上红色发布按钮（红箭头 + 深灰字） */
        .writer-publish-btn {
            margin-left: auto;
            height: 34px;
            padding: 0 14px 0 10px;
            border-radius: 18px;
            border: 1px solid #e5dfce;
            background: #f8f3e9;
            font-size: 13px;
            font-weight: 600;
            color: #263238;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all .18s;
            box-shadow: 0 1px 2px rgba(0,0,0,.04);
        }
        .writer-publish-btn:hover { border-color: #ff5c5c; box-shadow: 0 2px 8px rgba(255,92,92,.18); transform: translateY(-1px); }
        .writer-publish-btn::before {
            content: "➚";
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            background: linear-gradient(135deg, #ef4444, #ff3d3d);
            color: white;
            font-size: 12px;
            font-weight: 700;
            transform: translateY(-0.5px);
        }
        /* 新增：实时生成进度条 + 日志面板 */
        .writer-gen-panel {
            border-top: 1px solid #e6dfce;
            background: #fdfaf3;
            padding: 14px 20px 16px;
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
        .wgp-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .wgp-title {
            font-size: 13px;
            font-weight: 700;
            color: #2e3338;
            letter-spacing: .5px;
        }
        .wgp-stats {
            font-size: 12px;
            color: #6a727d;
            font-weight: 500;
        }
        .wgp-progress {
            width: 100%;
            height: 10px;
            background: #eef0f4;
            border-radius: 6px;
            overflow: hidden;
        }
        .wgp-progress-bar {
            height: 100%;
            background: linear-gradient(90deg,#a577ff 0%,#8b5cf6 45%,#34d399 100%);
            border-radius: 6px;
            transition: width .4s ease-out;
        }
        .wgp-live {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            padding: 8px 10px;
            background: linear-gradient(135deg,#fffaf3,#fff3e2);
            border: 1px solid #ffd9b3;
            border-radius: 6px;
        }
        .wgp-live-label {
            font-size: 11px;
            font-weight: 700;
            color: #f97316;
            white-space: nowrap;
            padding-top: 2px;
        }
        .wgp-live-body {
            font-size: 12px;
            color: #4a5159;
            line-height: 1.55;
            white-space: pre-wrap;
            word-break: break-word;
            flex: 1;
            min-height: 20px;
        }
        .wgp-timeline {
            border: 1px solid #eef0f4;
            border-radius: 6px;
            padding: 9px 12px;
            background: #fafbfc;
        }
        /* 节点较多时内部滚动，始终停在最新节点 */
        .wgp-timeline-body { display: grid; gap: 7px; margin-top: 7px; max-height: 300px; overflow-y: auto; padding-right: 2px; }
        .wgp-timeline-more { text-align: center; font-size: 10px; color: #9aa2ad; }
        .wgp-timeline-item { position: relative; display: flex; gap: 8px; align-items: flex-start; font-size: 11px; color: #4a5159; }
        /* 时间轴竖线：从当前图标底部连到下一个节点 */
        .wgp-timeline-item::before {
            content: ''; position: absolute; left: 8px; top: 18px; bottom: -7px; width: 1px; background: #e7eaf0;
        }
        .wgp-timeline-item:last-child::before { display: none; }
        .wgp-timeline-main { flex: 1; min-width: 0; }
        .wgp-timeline-item strong { display: block; font-size: 12px; color: #2e3338; }
        .wgp-timeline-item small { display: block; margin-top: 2px; color: #7a828d; word-break: break-word; }
        .wgp-timeline-time { display: block; margin-top: 3px; font-size: 10px; color: #9aa2ad; }
        .wgp-timeline-icon {
            position: relative; z-index: 1;
            display: inline-flex; align-items: center; justify-content: center;
            width: 17px; height: 17px; border-radius: 50%;
            background: #e7eaf0; color: #687180; font-weight: 700; flex: 0 0 17px;
        }
        .wgp-timeline-item.done { opacity: .8; }
        .wgp-timeline-item.done .wgp-timeline-icon { background: #d1fae5; color: #047857; }
        .wgp-timeline-item.error strong { color: #b91c1c; }
        .wgp-timeline-item.error .wgp-timeline-icon { background: #fee2e2; color: #b91c1c; }
        .wgp-timeline-item.active .wgp-timeline-icon { background: #dbeafe; color: #1d4ed8; animation: wgp-timeline-pulse 1.6s ease-in-out infinite; }
        .wgp-timeline-item.active strong { color: #1d4ed8; }
        @keyframes wgp-timeline-pulse {
            0%, 100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, .38); }
            50% { box-shadow: 0 0 0 5px rgba(37, 99, 235, 0); }
        }
        .writer-memory-row { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid #eef0f4; font-size: 12px; }
        .writer-memory-row span { color: #7a828d; text-align: right; }
        .wgp-log {
            border: 1px solid #eef0f4;
            border-radius: 6px;
            overflow: hidden;
        }
        .wgp-log.collapsed .wgp-log-body { display: none; }
        .wgp-log-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 8px 12px;
            background: #fafbfc;
            border-bottom: 1px solid #eef0f4;
        }
        .wgp-log-title {
            font-size: 12px;
            font-weight: 700;
            color: #2e3338;
        }
        .wgp-log-toggle {
            border: 1px solid #e6dfce;
            background: #f8f3e9;
            border-radius: 5px;
            padding: 3px 9px;
            font-size: 11px;
            cursor: pointer;
            color: #4a5159;
            font-weight: 500;
        }
        .wgp-log-body {
            height: 180px;
            overflow-y: auto;
            padding: 10px 14px;
            background: #0b0f17;
            color: #c7cad1;
            font-family: Consolas, Monaco, 'Courier New', monospace;
            font-size: 11.5px;
            line-height: 1.6;
        }
        .wgp-log-body .log-line {
            padding: 2px 0;
            border-bottom: 1px dashed rgba(255,255,255,.04);
        }
        .wgp-log-body .log-time {
            color: #8f959e;
            margin-right: 8px;
        }
        .wgp-log-body .log-info { color: #7fd1ff; }
        .wgp-log-body .log-warn { color: #ffd166; }
        .wgp-log-body .log-err  { color: #ff7a7a; }
        .wgp-log-body .log-ok   { color: #7fe6c1; }

        /* ── 主体三栏 ── */
        .writer-body {
            display: flex;
            align-items: stretch;
            height: calc(100vh - 170px);
            min-height: 640px;
            background: #f0ece3;
        }
        /* 左栏：章节树 */
        .writer-sidebar-left {
            width: 280px;
            flex: 0 0 280px;
            border-right: 1px solid #e6e8ed;
            background: #f8f3e9;
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }
        .writer-sl-header {
            padding: 14px 14px 8px;
            display: flex;
            flex-direction: column;
            gap: 10px;
            border-bottom: 1px solid #eef0f4;
        }
        .writer-sl-btns {
            display: flex;
            gap: 6px;
        }
        .writer-sl-create {
            flex: 1;
            height: 30px;
            border-radius: 6px;
            border: 1px solid #2c7be5;
            background: linear-gradient(180deg, #3b8ef5, #2c7be5);
            color: white;
            font-weight: 600;
            font-size: 13px;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            transition: all .15s;
        }
        .writer-sl-create:hover { filter: brightness(1.08); box-shadow: 0 2px 6px rgba(44,123,229,.3); }
        .writer-sl-create.sec {
            background: #f8f3e9;
            border-color: #e6dfce;
            color: #4c5666;
        }
        .writer-sl-search {
            position: relative;
        }
        .writer-sl-search input {
            width: 100%;
            height: 32px;
            border-radius: 6px;
            border: 1px solid #e0d9c9;
            background: #fffdf7;
            padding: 0 10px 0 32px;
            font-size: 12.5px;
            outline: none;
            box-sizing: border-box;
            transition: all .15s;
            color: #444;
        }
        .writer-sl-search input:focus { border-color: #2c7be5; box-shadow: 0 0 0 3px rgba(44,123,229,.12); }
        .writer-sl-search::before {
            content: "🔍";
            position: absolute;
            left: 9px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 12px;
            opacity: .6;
        }
        .writer-sl-tabs {
            display: flex;
            gap: 2px;
            padding: 0 8px;
            border-bottom: 1px solid #eef0f4;
            background: #fafbfc;
        }
        .writer-sl-tab {
            padding: 8px 10px;
            font-size: 12.5px;
            color: #717a8a;
            cursor: pointer;
            border-bottom: 2px solid transparent;
            margin-bottom: -1px;
            font-weight: 500;
            transition: all .15s;
            user-select: none;
            display: inline-flex;
            align-items: center;
            gap: 5px;
        }
        .writer-sl-tab svg { width: 14px; height: 14px; flex: 0 0 auto; }
        .writer-sl-tab:hover { color: #333; }
        .writer-sl-tab.active {
            color: #2c7be5;
            border-bottom-color: #2c7be5;
            font-weight: 600;
        }
        .writer-sl-filter {
            padding: 6px 12px;
            display: flex;
            align-items: center;
            gap: 6px;
            border-bottom: 1px solid #eef0f4;
            font-size: 12px;
            color: #6f7a8a;
        }
        .writer-sl-filter select {
            padding: 3px 6px;
            border-radius: 4px;
            border: 1px solid #dde2ea;
            font-size: 12px;
            background: #fff;
            color: #444;
            outline: none;
        }
        .writer-sl-filter .spacer { flex: 1; }
        .writer-sl-filter .sort-btn {
            padding: 3px 6px;
            border-radius: 4px;
            border: 1px solid transparent;
            background: transparent;
            color: #6f7a8a;
            cursor: pointer;
            font-size: 12px;
        }
        .writer-sl-filter .sort-btn:hover { background: #eef2f7; }
        .writer-sl-list {
            flex: 1;
            overflow-y: auto;
            padding: 6px 8px 10px;
        }
        /* 章节 item 样式（镜像 + 原有样式覆盖增强） */
        .writer-sl-list .chapter-item {
            padding: 10px 10px;
            border-radius: 6px;
            margin-bottom: 2px;
            border-left: 3px solid transparent;
            cursor: pointer;
            transition: all .12s;
            position: relative;
            border-bottom: none;
        }
        .writer-sl-list .chapter-item:hover {
            background: #eef3fb;
        }
        .writer-sl-list .chapter-item.active {
            background: #e8f0ff;
            border-left-color: #2c7be5;
            font-weight: 600;
        }
        .writer-sl-list .chapter-item .chapter-name {
            font-size: 13px;
            color: #263238;
            margin-bottom: 2px;
            line-height: 1.35;
        }
        .writer-sl-list .chapter-item .chapter-words {
            font-size: 11px;
            color: #98a2b3;
            font-weight: 400;
        }
        .writer-sl-list .chapter-item .chapter-status {
            position: absolute;
            right: 10px;
            top: 10px;
            font-size: 10px;
            padding: 2px 6px;
            border-radius: 10px;
            background: #e8f5e9;
            color: #2e7d32;
        }
        .writer-sl-footer {
            padding: 8px 12px;
            border-top: 1px solid #e6dfce;
            background: #f8f3e9;
        }
        .writer-sl-footer .create-ch-bottom {
            width: 100%;
            height: 32px;
            border-radius: 6px;
            border: 1px dashed #d5cdb8;
            background: #fffdf7;
            color: #71695a;
            font-size: 12.5px;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            transition: all .15s;
        }
        .writer-sl-footer .create-ch-bottom:hover {
            border-color: #2c7be5;
            color: #2c7be5;
            background: #f0ece3;
        }
        /* 中栏：正文阅读区 */
        .writer-center {
            flex: 1 1 auto;
            display: flex;
            flex-direction: column;
            background: #f0ece3; /* 米色纸感，与作家助手一致 */
            min-width: 0;
            position: relative;
        }
        .writer-center-scroll {
            flex: 1;
            overflow-y: auto;
            display: flex;
            justify-content: center;
        }
        .writer-paper {
            width: 100%;
            max-width: 840px;
            background: #f0ece3;
            padding: 60px 70px 140px;
            min-height: 100%;
            box-sizing: border-box;
            box-shadow: none;
            border-left: none;
            border-right: none;
        }
        .writer-chapter-title {
            font-family: 'Source Han Serif CN', 'Noto Serif CJK SC', 'SimSun', 'Songti SC', serif;
            font-size: 26px;
            font-weight: 700;
            text-align: center;
            color: #263238;
            letter-spacing: 1px;
            line-height: 1.4;
            margin-bottom: 32px;
            padding-bottom: 20px;
            border-bottom: 1px dashed #d6c49e;
        }
        .writer-prose {
            font-family: 'Source Han Serif CN', 'Noto Serif CJK SC', 'SimSun', 'Songti SC', serif;
            font-size: 18px;
            line-height: 2.0;
            color: #333;
            letter-spacing: 0.5px;
        }
        .writer-prose p {
            margin: 0 0 14px;
            text-indent: 2em;
            text-align: justify;
        }
        .writer-prose p.dialog {
            text-indent: 2em;
        }
        .writer-empty-tip {
            padding: 80px 20px;
            text-align: center;
            color: #9a8d6d;
            font-size: 14px;
            line-height: 2;
        }
        .writer-empty-tip h3 {
            font-family: serif;
            color: #6b5a3c;
            font-size: 18px;
            margin-bottom: 12px;
        }
        /* 中栏底部字数栏（固定底部） */
        .writer-center-footer {
            position: sticky;
            bottom: 0;
            left: 0;
            right: 0;
            height: 40px;
            background: rgba(251, 246, 234, 0.95);
            backdrop-filter: blur(8px);
            border-top: 1px solid #e6d9ba;
            padding: 0 24px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 12px;
            color: #6b5a3c;
        }
        .writer-footer-left, .writer-footer-right {
            display: inline-flex;
            align-items: center;
            gap: 14px;
        }
        .writer-footer-right .writer-jc-btn {
            padding: 3px 10px;
            border-radius: 14px;
            border: 1px solid #e2d3ae;
            background: transparent;
            color: #6b5a3c;
            font-size: 11.5px;
            cursor: pointer;
        }
        .writer-footer-right .writer-jc-btn:hover { background: #f3e8c8; }
        .writer-footer-plan { color: #6b5a3c; font-weight: 500; }
        .writer-footer-plan .writer-plan-num { color: #2c7be5; font-weight: 600; }
        .writer-footer-words { color: #6b5a3c; font-weight: 500; }
        .writer-footer-words .writer-words-num { color: #2e7d32; font-weight: 600; }
        /* 右栏：竖排图标工具列 */
        .writer-sidebar-right {
            width: 60px;
            flex: 0 0 60px;
            background: #f8f3e9;
            border-left: 1px solid #e6e8ed;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
            padding: 16px 0;
        }
        .writer-sr-item {
            width: 44px;
            height: 44px;
            border-radius: 10px;
            border: 1px solid transparent;
            background: transparent;
            cursor: pointer;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 2px;
            transition: all .15s;
            color: #6b7280;
            position: relative;
            padding: 0;
            font-size: 18px;
        }
        .writer-sr-item:hover {
            background: #eef2f7;
            border-color: #dde3ec;
            color: #2c3e50;
        }
        .writer-sr-item.active {
            background: #e8f0ff;
            border-color: #2c7be5;
            color: #2c7be5;
        }
        .writer-sr-item .sr-label {
            font-size: 10px;
            font-weight: 500;
        }
        .writer-sr-divider {
            width: 30px;
            height: 1px;
            background: #e6e8ed;
            margin: 4px 0;
        }
        /* 新增：生成信息展开面板（右侧滑出，仿作家助手风格） */
        .writer-geninfo-panel {
            position: absolute;
            top: 52px;
            right: 60px;
            bottom: 0;
            width: 50%;
            max-width: calc(100% - 60px - 280px);
            background: rgba(255, 255, 255, 0.85);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(230, 232, 237, 0.8);
            border-radius: 12px;
            display: flex;
            flex-direction: column;
            z-index: 8;
            box-shadow: -4px 0 20px rgba(30,40,70,.12);
            animation: slideInRight .2s ease-out;
            overflow: hidden;
        }
        /* Stage1 人工闸门不依赖隐藏旧 tab；右侧面板中的独立编辑器保留真实事件。 */
        #stage1HumanGateDialog[hidden], #stage1GateRevisionHost[hidden], #writerContentBody[hidden] { display: none !important; }
        #stage1HumanGateDialog { position: fixed; inset: 0; z-index: 12000; display: grid; place-items: center; padding: 18px; }
        .stage1-gate-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .62); }
        .stage1-gate-card { position: relative; width: min(560px, 100%); max-height: calc(100vh - 36px); overflow-y: auto; padding: 24px; border-radius: 16px; background: var(--card, #fff); color: var(--text, #1f2937); box-shadow: 0 18px 55px rgba(0, 0, 0, .22); }
        .stage1-gate-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
        .stage1-gate-head h2 { font-size: 19px; margin: 0; }
        .stage1-gate-head button { border: 0; background: none; color: inherit; cursor: pointer; font-size: 24px; }
        .stage1-gate-lead, .stage1-gate-question { line-height: 1.65; font-size: 14px; }
        .stage1-gate-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
        .stage1-gate-stats span { padding: 8px 12px; border-radius: 8px; background: var(--card-2, #f1f5f9); font-size: 13px; }
        .stage1-gate-stats strong { font-size: 16px; }
        .stage1-gate-question { padding: 10px 12px; border-left: 3px solid #d97706; background: var(--card-2, #f8fafc); }
        .stage1-gate-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
        .stage1-gate-actions button { padding: 9px 14px; border-radius: 8px; border: 1px solid var(--border, #d1d5db); background: var(--card, #fff); color: var(--text, #1f2937); cursor: pointer; }
        .stage1-gate-actions .stage1-gate-sol { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }
        .stage1-gate-actions button:disabled { opacity: .5; cursor: not-allowed; }
        .stage1-gate-revision-host { flex: 1; overflow-y: auto; padding: 14px; min-height: 0; }
        .stage1-gate-revision-host .setting-text-block { line-height: 1.6; margin-bottom: 14px; overflow-wrap: anywhere; }
        .stage1-gate-revision-host button { margin: 6px 6px 6px 0; cursor: pointer; }
        .stage1-gate-revision-host textarea, .stage1-gate-revision-host input[type="text"] { max-width: 100%; }
        @keyframes slideInRight { from { transform: translateX(16px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
        .writer-geninfo-head {
            padding: 16px 20px;
            border-bottom: 1px solid rgba(238, 240, 244, 0.6);
            background: linear-gradient(180deg, rgba(253, 253, 254, 0.9) 0%, rgba(246, 248, 251, 0.8) 100%);
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex: 0 0 auto;
        }
        .writer-geninfo-title {
            font-size: 15px;
            font-weight: 700;
            color: #1f2329;
        }
        .writer-geninfo-close {
            width: 30px;
            height: 30px;
            border-radius: 6px;
            border: 1px solid #e3e6ec;
            background: #fff;
            color: #8f959e;
            cursor: pointer;
            font-size: 14px;
            line-height: 1;
            transition: all .15s;
        }
        .writer-geninfo-close:hover { background: #eef2f7; color: #1f2329; }
        .writer-geninfo-body {
            flex: 1;
            overflow-y: auto;
            overflow-x: hidden;
            padding: 12px;
        }
        .writer-geninfo-row {
            display: grid;
            grid-template-columns: 72px 1fr auto;
            gap: 10px;
            align-items: center;
            margin-bottom: 12px;
        }
        .writer-geninfo-label {
            font-size: 12.5px;
            color: #6a727d;
            font-weight: 600;
        }
        .writer-geninfo-progress {
            height: 8px;
            border-radius: 10px;
            background: #f1f3f7;
            overflow: hidden;
        }
        .writer-geninfo-pg-inner {
            height: 100%;
            background: linear-gradient(90deg, #3b82f6, #a78bfa);
            border-radius: 10px;
            transition: width .4s;
        }
        .writer-geninfo-pg-inner.chapter {
            background: linear-gradient(90deg, #34d399, #10b981);
        }
        .writer-geninfo-num {
            font-size: 12px;
            color: #4a5159;
            font-weight: 600;
            white-space: nowrap;
        }
        .writer-geninfo-divider {
            height: 1px;
            background: #eef0f4;
            margin: 12px 0;
        }
        .writer-geninfo-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
        }
        .writer-geninfo-cell {
            background: linear-gradient(180deg, #fafcff 0%, #f4f7fb 100%);
            border: 1px solid #e5e9f0;
            border-radius: 10px;
            padding: 12px 14px;
        }
        .writer-geninfo-cell-label {
            font-size: 11.5px;
            color: #8f959e;
            margin-bottom: 4px;
            font-weight: 600;
        }
        .writer-geninfo-cell-value {
            font-size: 17px;
            font-weight: 800;
            color: #1f2329;
            font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', sans-serif;
        }
        .writer-geninfo-subtitle {
            font-size: 13.5px;
            font-weight: 700;
            color: #1f2329;
            margin-bottom: 8px;
        }
        .writer-geninfo-provider-box {
            border: 1px solid #eef0f4;
            border-radius: 8px;
            background: #fbfcfe;
            overflow: hidden;
        }
        .writer-geninfo-provider-box .usage-table {
            margin-top: 0;
            border-radius: 0;
        }

        /* ===== 顶栏浮层面板（字体/背景/查找替换） ===== */
        .writer-pop-panel {
            position: absolute;
            top: 52px;
            left: 16px;
            width: 320px;
            background: #fff;
            border: 1px solid #e6e8ed;
            border-radius: 10px;
            box-shadow: 0 12px 32px rgba(30, 40, 70, .12);
            z-index: 20;
            overflow: hidden;
            animation: popDown .18s ease-out;
        }
        @keyframes popDown { from { transform: translateY(-8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
        .writer-pop-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 10px 14px;
            border-bottom: 1px solid #eef0f4;
            background: linear-gradient(180deg, #fdfaf3 0%, #f5efe3 100%);
        }
        .writer-pop-title { font-size: 13px; font-weight: 700; color: #1f2329; }
        .writer-pop-body { padding: 14px; display: flex; flex-direction: column; gap: 12px; }
        .writer-pop-row { display: flex; align-items: center; gap: 10px; }
        .writer-pop-label { font-size: 12.5px; color: #6a727d; font-weight: 600; width: 36px; flex: 0 0 36px; }
        .writer-pop-controls { flex: 1; display: flex; align-items: center; gap: 6px; }
        .writer-pop-controls select {
            flex: 1; height: 30px; padding: 0 8px; border: 1px solid #dde3ec;
            border-radius: 6px; background: #fff; font-size: 13px; color: #1f2329; outline: none;
        }
        .writer-pop-controls select:focus { border-color: #2c7be5; }
        .writer-pop-btn {
            height: 30px; min-width: 36px; padding: 0 10px;
            border: 1px solid #dde3ec; background: #fff; border-radius: 6px;
            font-size: 12.5px; color: #4a5159; cursor: pointer; transition: all .15s;
            white-space: nowrap;
        }
        .writer-pop-btn:hover { background: #eef2f7; border-color: #c5cdd9; }
        .writer-pop-btn.reset { color: #8f959e; }
        .writer-pop-btn.danger { color: #e55353; border-color: #f3c8c8; }
        .writer-pop-btn.danger:hover { background: #fdeaea; }
        .writer-pop-value {
            min-width: 46px; text-align: center; font-size: 12.5px;
            color: #1f2329; font-weight: 700;
        }

        /* 背景主题网格 */
        .writer-bg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
        .writer-bg-item {
            display: flex; flex-direction: column; align-items: center; gap: 6px;
            padding: 10px 6px; border: 2px solid #e6e8ed; border-radius: 8px;
            cursor: pointer; transition: all .15s; background: #fff;
        }
        .writer-bg-item:hover { border-color: #c5cdd9; }
        .writer-bg-item.active { border-color: #2c7be5; box-shadow: 0 0 0 2px rgba(44,123,229,.15); }
        .writer-bg-preview { width: 100%; height: 36px; border-radius: 4px; border: 1px solid #eef0f4; }
        .writer-bg-item span { font-size: 12px; color: #4a5159; font-weight: 600; }

        /* 查找替换 */
        .writer-search-panel { width: 360px; }
        .writer-search-row { position: relative; }
        .writer-search-row input {
            width: 100%; height: 32px; padding: 0 56px 0 10px;
            border: 1px solid #dde3ec; border-radius: 6px; font-size: 13px; outline: none;
        }
        .writer-search-row input:focus { border-color: #2c7be5; }
        .writer-search-count {
            position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
            font-size: 11px; color: #8f959e; font-weight: 600;
        }
        .writer-search-actions { display: flex; gap: 6px; flex-wrap: wrap; }
        .writer-search-actions .writer-pop-btn { flex: 1; min-width: 64px; }

        /* 侧边内容面板（大纲/角色/设定）内容样式继承 geninfo，额外加 prose 排版 */
        .writer-content-panel .writer-geninfo-body { padding: 14px 18px 24px; }
        .writer-content-panel .outline-box,
        .writer-content-panel .setting-bible-box { font-size: 13px; line-height: 1.7; color: #2e3338; }
        .writer-content-panel .outline-box h3,
        .writer-content-panel .setting-bible-box h3 { font-size: 15px; margin: 12px 0 6px; color: #1f2329; }
        .writer-content-panel .empty-hint { text-align: center; padding: 30px 10px; color: #8f959e; font-size: 13px; }

        /* 正文高亮（查找命中） */
        .writer-prose mark.writer-search-hit {
            background: #fff3a0; color: inherit; padding: 0 2px; border-radius: 2px;
        }
        .writer-prose mark.writer-search-hit.current {
            background: #ff9a3c; color: #fff;
        }
        /* ===== 背景主题：paper(米色纸感) / white(纯白) / green(护眼绿) / dark(夜间) ===== */
        .writer-center.theme-paper { background: #f0ece3; }
        .writer-center.theme-paper .writer-center-footer { background: rgba(240,236,227,0.95); border-top-color: #e6d9ba; }
        .writer-center.theme-white { background: #ffffff; }
        .writer-center.theme-white .writer-prose { color: #333; }
        .writer-center.theme-white .writer-chapter-title { color: #263238; border-bottom-color: #d6d6d6; }
        .writer-center.theme-white .writer-center-footer { background: rgba(255,255,255,0.95); border-top-color: #e0e0e0; }
        .writer-center.theme-green { background: #cce8cf; }
        .writer-center.theme-green .writer-prose { color: #2d4a2f; }
        .writer-center.theme-green .writer-chapter-title { color: #1a3a1f; border-bottom-color: #8fbf98; }
        .writer-center.theme-green .writer-center-footer { background: rgba(204,232,207,0.95); border-top-color: #8fbf98; }
        .writer-center.theme-dark { background: #2b2b2b; }
        .writer-center.theme-dark .writer-prose { color: #c8c8c8; }
        .writer-center.theme-dark .writer-chapter-title { color: #e0e0e0; border-bottom-color: #555; }
        .writer-center.theme-dark .writer-empty-tip { color: #888; }
        .writer-center.theme-dark .writer-center-footer { background: rgba(43,43,43,0.95); border-top-color: #444; color: #aaa; }
        .writer-center.theme-dark .writer-prose p { color: #c8c8c8; }
        .writer-center.theme-dark .writer-prose b,
        .writer-center.theme-dark .writer-prose strong { color: #e8c57a; }
        .writer-center.theme-dark .writer-prose em,
        .writer-center.theme-dark .writer-prose i { color: #d0b070; }
        .writer-center.theme-dark .writer-prose blockquote { border-left-color: #555; background: #333; color: #b0b0b0; }
        .writer-center.theme-dark .writer-prose blockquote p { color: #b0b0b0; }
        .writer-center.theme-dark .writer-prose .chapter-title { color: #e0e0e0; }
        .writer-center.theme-dark .writer-prose p.dialog { color: #b8b8b8; }
        .writer-center.theme-dark mark.writer-search-hit { background: #4a4a20; color: #ffe066; }
        .writer-center.theme-dark mark.writer-search-hit.current { background: #cc7722; color: #fff; }
        /* writer-body 同步主题 */
        .writer-body.theme-dark { background: #252525; }
        .writer-body.theme-white { background: #f0f0f0; }
        .writer-body.theme-green { background: #b8dcc0; }
        .writer-body.theme-paper { background: #f0ece3; }
        /* writer-shell 边框主题适配 */
        .writer-shell.theme-dark { border-color: #3a3a3a; }
        .writer-shell.theme-white { border-color: #d6d6d6; }
        .writer-shell.theme-green { border-color: #8fbf98; }
        .writer-shell.theme-paper { border-color: #e6dfce; }
        /* topbar 主题适配 */
        .writer-shell.theme-dark .writer-topbar { background: linear-gradient(180deg, #2a2a2a 0%, #252525 100%); border-bottom-color: #3a3a3a; }
        .writer-shell.theme-white .writer-topbar { background: linear-gradient(180deg, #fafafa 0%, #f0f0f0 100%); border-bottom-color: #e0e0e0; }
        .writer-shell.theme-green .writer-topbar { background: linear-gradient(180deg, #c8e8cc 0%, #b8dcc0 100%); border-bottom-color: #8fbf98; }
        .writer-shell.theme-dark .writer-topbar-btn,
        .writer-shell.theme-dark .writer-topbar-info { color: #aaa; }
        .writer-shell.theme-dark .writer-topbar-btn b,
        .writer-shell.theme-dark .writer-topbar-info b { color: #ddd; }
        /* 侧栏主题适配 */
        .writer-shell.theme-dark .writer-sidebar-left { background: #2a2a2a; border-right-color: #3a3a3a; }
        .writer-shell.theme-dark .writer-sidebar-right { background: #2a2a2a; border-left-color: #3a3a3a; }
        .writer-shell.theme-dark .writer-sl-footer { background: #333; border-top-color: #3a3a3a; }
        .writer-shell.theme-dark .writer-chapter-item { color: #aaa; }
        .writer-shell.theme-dark .writer-chapter-item:hover { background: #333; }
        .writer-shell.theme-dark .writer-chapter-item.active { background: #3a3a3a; color: #e0e0e0; }
        .writer-shell.theme-dark .writer-chapter-item .ch-title { color: #ccc; }
        .writer-shell.theme-dark .writer-sl-tab { color: #888; border-bottom-color: #3a3a3a; }
        .writer-shell.theme-dark .writer-sl-tab.active { color: #e0e0e0; border-bottom-color: #e0a040; }
        .writer-shell.theme-dark .writer-sl-search input { background: #333; border-color: #444; color: #ccc; }
        .writer-shell.theme-dark .create-ch-bottom { background: #333; border-color: #555; color: #888; }
        .writer-shell.theme-dark .create-ch-bottom:hover { background: #3a3a3a; border-color: #e0a040; color: #e0a040; }
        .writer-shell.theme-dark .wgp-log-toggle { background: #333; border-color: #444; color: #aaa; }
        .writer-shell.theme-dark .writer-publish-btn { background: #333; border-color: #555; color: #ddd; }
        .writer-shell.theme-dark .writer-publish-btn:hover { border-color: #ff5c5c; }
        .writer-shell.theme-dark .writer-sl-create.sec { background: #333; border-color: #555; color: #aaa; }
        .writer-shell.theme-white .writer-sidebar-left { background: #f5f5f5; border-right-color: #e0e0e0; }
        .writer-shell.theme-white .writer-sidebar-right { background: #f5f5f5; border-left-color: #e0e0e0; }
        .writer-shell.theme-white .writer-sl-footer { background: #f0f0f0; border-top-color: #e0e0e0; }
        .writer-shell.theme-green .writer-sidebar-left { background: #b8dcc0; border-right-color: #8fbf98; }
        .writer-shell.theme-green .writer-sidebar-right { background: #b8dcc0; border-left-color: #8fbf98; }
        .writer-shell.theme-green .writer-sl-footer { background: #a8ccb0; border-top-color: #8fbf98; }
        /* 发布弹窗（蓝边白底+蓝色info圆标+前往粘贴主按钮） */
        .writer-modal-mask {
            position: fixed;
            inset: 0;
            background: rgba(20, 30, 50, 0.35);
            backdrop-filter: blur(3px);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 99999;
            animation: fadeInMask .18s ease-out;
        }
        @keyframes fadeInMask { from { opacity: 0; } to { opacity: 1; } }
        .writer-modal {
            width: 440px;
            max-width: 92vw;
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 18px 48px rgba(20, 30, 60, 0.22);
            border: 1px solid #e2e8f0;
            overflow: hidden;
            animation: popIn .2s ease-out;
        }
        @keyframes popIn { from { transform: scale(.94); opacity: 0; } to { transform: scale(1); opacity: 1; } }
        .writer-modal-body {
            padding: 22px 22px 18px;
            display: flex;
            gap: 14px;
            align-items: flex-start;
        }
        .writer-modal-icon {
            flex: 0 0 28px;
            width: 28px;
            height: 28px;
            border-radius: 50%;
            background: linear-gradient(135deg, #377dff, #1b66ff);
            color: white;
            font-weight: 700;
            font-size: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: Georgia, serif;
            margin-top: 1px;
            box-shadow: 0 2px 6px rgba(27,102,255,.28);
        }
        .writer-modal-main { flex: 1; min-width: 0; }
        .writer-modal-title {
            font-size: 16px;
            font-weight: 600;
            color: #162033;
            margin-bottom: 6px;
        }
        .writer-modal-desc {
            font-size: 13px;
            color: #5b6577;
            line-height: 1.6;
            margin-bottom: 12px;
        }
        .writer-modal-checkbox {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 12.5px;
            color: #717a8a;
            cursor: pointer;
            user-select: none;
            margin-bottom: 4px;
        }
        .writer-modal-checkbox input { width: 14px; height: 14px; accent-color: #2c7be5; }
        .writer-modal-footer {
            padding: 12px 22px 18px;
            display: flex;
            justify-content: flex-end;
            gap: 10px;
            border-top: 1px solid #eef1f5;
            background: #fbfcfe;
        }
        .writer-modal-btn {
            height: 34px;
            padding: 0 16px;
            border-radius: 6px;
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            border: 1px solid #d5dae3;
            background: #fff;
            color: #4c5666;
            transition: all .15s;
        }
        .writer-modal-btn:hover { background: #eef2f7; }
        .writer-modal-btn.primary {
            background: linear-gradient(180deg, #3b8ef5, #2c7be5);
            border-color: #2c7be5;
            color: white;
            box-shadow: 0 2px 6px rgba(44,123,229,.3);
        }
        .writer-modal-btn.primary:hover { filter: brightness(1.08); }

        /* 滚动条美化 */
        .writer-sidebar-left::-webkit-scrollbar,
        .writer-sl-list::-webkit-scrollbar,
        .writer-center-scroll::-webkit-scrollbar { width: 8px; }
        .writer-sidebar-left::-webkit-scrollbar-thumb,
        .writer-sl-list::-webkit-scrollbar-thumb,
        .writer-center-scroll::-webkit-scrollbar-thumb {
            background: #d1d5dc; border-radius: 10px;
        }
        .writer-sidebar-left::-webkit-scrollbar-thumb:hover,
        .writer-sl-list::-webkit-scrollbar-thumb:hover,
        .writer-center-scroll::-webkit-scrollbar-thumb:hover { background: #bfc5cf; }

        /* ============================================================
         * 主页 .home-* 命名空间（作家助手首页风格）
         * 左右结构：左导航(220px固定) + 右内容区(自适应)
         * 右内容区内：顶部 banner+签到/邀请 → 4 个功能快捷卡片 → 作品网格
         * ============================================================ */
        #home-shell { display: flex; width: 100%; min-height: calc(100vh - 170px); background: var(--bg); border-radius: 12px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
        .home-left-nav { width: 140px; flex: 0 0 140px; background: #f0ece3; border-right: 1px solid #e6dfce; display: flex; flex-direction: column; padding: 20px 0; }
        .home-nav-top-profile { padding: 8px 20px 18px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #f2f4f7; margin-bottom: 8px; }
        .home-nav-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, #60a5fa, #3b82f6); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 600; }
        .home-nav-profile-meta { flex:1; min-width:0; }
        .home-nav-profile-name { font-size: 14px; font-weight: 600; color: #1f2329; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .home-nav-profile-sub { font-size: 12px; color: #8f959e; margin-top: 2px; }
        .home-nav-section-title { padding: 14px 20px 6px; font-size: 12px; color: #8f959e; letter-spacing: 0.5px; }
        .home-nav-item { padding: 12px 22px; display: flex; align-items: center; gap: 10px; cursor: pointer; color: #4a5159; font-size: 14px; border-left: 3px solid transparent; transition: background .15s, color .15s, border-color .15s; }
        .home-nav-item:hover { background: #f7f9fc; color: #1f2329; }
        .home-nav-item.active { background: #eaf2ff; color: #2563eb; border-left-color: #2563eb; font-weight: 600; }
        .home-nav-item-icon { width: 18px; text-align: center; font-size: 16px; }
        .home-nav-bottom-icons { margin-top: auto; padding: 14px 20px 8px; border-top: 1px solid #f2f4f7; display: flex; justify-content: space-between; align-items: center; }
        .home-nav-bottom-icons span { width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; color: #6a727d; cursor: pointer; transition: background .15s; }
        .home-nav-bottom-icons span:hover { background: #f0f3f8; color: #2563eb; }

        .home-right-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; padding: 16px 20px 72px; gap: 14px; overflow: hidden; }

        /* 顶部 hero 行：左侧 banner+签到 右侧邀请 */
        .home-top-hero-row { display: grid; grid-template-columns: 1.8fr 1fr; gap: 14px; }
        .home-banner-card { background: var(--card-warm); border-radius: var(--r-card); padding: 0; overflow: hidden; box-shadow: var(--shadow-soft); }
        .home-banner-top { height: 68px; background: linear-gradient(90deg, #2563eb 0%, #6366f1 50%, #a78bfa 100%); position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; }
        .home-banner-slogan { color: #fff; }
        .home-banner-slogan .s1 { font-size: 20px; font-weight: 800; letter-spacing: 1px; }
        .home-banner-slogan .s2 { font-size: 14px; font-weight: 700; letter-spacing: 1px; margin-top: 1px; opacity: .92; }
        .home-banner-girl { display: flex; align-items: center; opacity: .85; }
        .home-banner-task-bar { padding: 10px 18px 14px; background: #fffdf7; display: flex; align-items: flex-start; gap: 18px; }
        .home-banner-task-title { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text); font-weight: 600; margin-bottom: 8px; white-space: nowrap; }
        .home-banner-task-title .count { color: var(--st-err); font-weight: 700; }
        .home-week-row { flex: 1; display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
        .home-week-cell { display: flex; flex-direction: column; align-items: center; gap: 3px; }
        .home-week-day { font-size: 11px; color: var(--muted); }
        .home-week-box { width: 38px; height: 34px; border-radius: var(--r-sm); background: var(--brand-soft); color: var(--brand); font-weight: 700; font-size: 12px; display: flex; align-items: center; justify-content: center; border: 1px solid #bfdbfe; }
        .home-week-box.todo { background: #faf8f0; color: var(--muted); border-color: var(--border); }
        .home-week-sign-btn { margin-top: 3px; padding: 3px 8px; border-radius: var(--r-btn); background: var(--brand); color: #fff; font-size: 11px; font-weight: 600; cursor: pointer; border: none; transition: background var(--t); }
        .home-week-sign-btn:hover { background: var(--brand-hover); }
        .home-week-sign-btn.sign-future { background: #e5e7eb; color: var(--muted); cursor: default; font-size: 10px; }
        .home-week-sign-btn.sign补签 { background: #fff; color: var(--text-sub); border: 1px solid var(--border); font-size: 10px; padding: 2px 6px; }
        .home-share-pwd-btn { margin-top: 8px; padding: 4px 10px; border-radius: var(--r-btn); background: #fff3d9; color: #b57817; font-size: 11px; font-weight: 600; cursor: pointer; border: 1px solid #ffe6b1; white-space: nowrap; }
        .home-invite-card { background: var(--card-warm); border-radius: var(--r-card); padding: 14px 16px; box-shadow: var(--shadow-soft); position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; }
        .home-invite-header { display: flex; align-items: center; justify-content: space-between; }
        .home-invite-tag { padding: 3px 8px; border-radius: var(--r-sm); background: var(--accent-soft); color: #7c3aed; font-size: 11px; font-weight: 600; }
        .home-invite-title { font-size: 14px; font-weight: 700; color: var(--text); margin-top: 6px; }
        .home-invite-sub { font-size: 12px; color: var(--muted); margin-top: 3px; line-height: 1.5; }
        .home-invite-gift { position: absolute; right: 12px; top: 36px; font-size: 48px; opacity: .85; }
        .home-invite-cta { margin-top: auto; display: flex; gap: 8px; }
        .home-invite-cta-btn { flex: 1; padding: 7px 10px; border-radius: var(--r-btn); border: 1px solid var(--brand); background: #fff; color: var(--brand); font-size: 12px; font-weight: 600; cursor: pointer; transition: background var(--t); }
        .home-invite-cta-btn:hover { background: var(--brand-soft); }
        .home-invite-cta-btn.primary { background: var(--brand); color: #fff; }
        .home-invite-cta-btn.primary:hover { background: var(--brand-hover); }

        /* 快捷功能卡片行：2 卡（新建+导入）—— 等高等宽、白底+主题色描边 */
        .home-quick-actions-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
        .home-action-card { background: #fff; border-radius: var(--r-card); padding: 18px 20px; box-shadow: var(--shadow-soft); display: flex; align-items: center; gap: 14px; cursor: pointer; transition: all var(--t); position: relative; border: 1.5px solid var(--brand-soft); }
        .home-action-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); border-color: var(--brand); }
        .home-action-card.active { box-shadow: 0 0 0 2px var(--brand), var(--shadow-hover); border-color: var(--brand); }
        .home-action-icon { width: 44px; height: 44px; border-radius: var(--r-card); display: flex; align-items: center; justify-content: center; font-size: 22px; flex: 0 0 44px; color: var(--brand); background: linear-gradient(135deg, var(--brand-soft) 0%, rgba(99,102,241,0.1) 100%); box-shadow: 0 2px 8px rgba(99,102,241,0.15); transition: all var(--t); }
        .home-action-card:hover .home-action-icon { background: linear-gradient(135deg, var(--brand) 0%, var(--brand-hover) 100%); color: #fff; box-shadow: var(--shadow-brand); transform: scale(1.05); }
        .home-action-new .home-action-icon { color: var(--brand); background: linear-gradient(135deg, var(--brand-soft) 0%, rgba(99,102,241,0.1) 100%); }
        .home-action-import .home-action-icon { color: var(--accent); background: var(--accent-soft); }
        .home-action-idea .home-action-icon { color: var(--st-run); background: #fff3e0; }
        .home-action-tpl .home-action-icon { color: var(--accent); background: var(--accent-soft); }
        .home-action-body { flex: 1; min-width: 0; }
        .home-action-title-row { display: flex; align-items: center; justify-content: space-between; }
        .home-action-title { font-size: 15px; font-weight: 700; color: var(--text); }
        .home-action-title .caret { font-size: 11px; color: var(--muted); margin-left: 6px; transition: transform var(--t); display: inline-block; }
        .home-action-card.active .home-action-title .caret { transform: rotate(180deg); color: var(--brand); }
        .home-action-sub { font-size: 12px; color: var(--muted); margin-top: 4px; line-height: 1.5; }
        .home-action-idea .home-idea-input-wrap { margin-top: 10px; }
        .home-idea-textarea { width: 100%; min-height: 76px; max-height: 130px; border: 1px solid #e0e5ec; border-radius: 8px; padding: 10px 12px; font-size: 13px; line-height: 1.7; resize: vertical; background: #fafbfd; transition: border-color .15s, box-shadow .15s; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; }
        .home-idea-textarea::placeholder { color: #c2c8d2; font-weight: 400; opacity: 1; }
        .home-idea-textarea:focus { outline: none; border-color: #93c5fd; background: #fff; box-shadow: 0 0 0 3px rgba(37,99,235,.10); }
        .home-idea-cta-row { margin-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
        .home-idea-meta { font-size: 12px; color: #8f959e; }
        .home-idea-start-btn { padding: 7px 14px; border-radius: var(--r-btn); background: var(--brand); color: #fff; border: none; cursor: pointer; font-size: 13px; font-weight: 600; box-shadow: var(--shadow-brand); transition: transform var(--t), background var(--t); }
        .home-idea-start-btn:hover { transform: translateY(-1px); background: var(--brand-hover); }
        .home-idea-start-btn:active { transform: translateY(0); }

        /* ===== 新建展开：创作设置面板（作家助手风格） ===== */
        #homeCreatePanel { display: none; background: #f8f3e9; border-radius: 12px; padding: 22px 24px 26px; box-shadow: 0 1px 2px rgba(0,0,0,.03); animation: popDown .25s ease-out; }
        #homeCreatePanel.open { display: block; }
        .home-create-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid #f2f4f7; }
        .home-create-title { font-size: 18px; font-weight: 800; color: #1f2329; display: flex; align-items: center; gap: 10px; }
        .home-create-title .tag { background: linear-gradient(135deg, #3b82f6, #a78bfa); color: #fff; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 6px; }
        .home-create-close { color: #8f959e; cursor: pointer; font-size: 20px; line-height: 1; padding: 4px 8px; border-radius: 6px; transition: background .15s, color .15s; }
        .home-create-close:hover { background: #f4f6fa; color: #2563eb; }

        .home-create-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
        .home-create-grid .full-row { grid-column: 1 / -1; }

        .home-field-card { background: #fafbfd; border: 1px solid #eaeef4; border-radius: 10px; padding: 14px 16px; }
        .home-field-label { display: block; font-size: 13px; font-weight: 700; color: #1f2329; margin-bottom: 8px; }
        .home-field-label .hint { font-weight: 400; color: #8f959e; margin-left: 6px; font-size: 12px; }
        .home-field-row { display: flex; gap: 10px; flex-wrap: wrap; }
        .home-field-row > * { flex: 1; min-width: 0; }
        .home-field-input, .home-field-select, .home-field-textarea { width: 100%; border: 1px solid #dbe1ea; background: #fff; border-radius: 8px; padding: 9px 12px; font-size: 13px; color: #1f2329; font-family: inherit; transition: border-color .15s, box-shadow .15s; }
        .home-field-input::placeholder, .home-field-textarea::placeholder { color: #b0b6bf; }
        .home-field-input:focus, .home-field-select:focus, .home-field-textarea:focus { outline: none; border-color: #93c5fd; box-shadow: 0 0 0 3px rgba(37,99,235,.10); }
        .home-field-textarea { min-height: 100px; max-height: 180px; resize: vertical; line-height: 1.6; font-size: 13px; }

        .home-option-chips { display: flex; gap: 8px; flex-wrap: wrap; }
        .home-option-chip { padding: 7px 14px; border-radius: 20px; background: #fff; border: 1px solid #dbe1ea; cursor: pointer; font-size: 13px; color: #4a5159; transition: background .15s, color .15s, border-color .15s; user-select: none; }
        .home-option-chip:hover { background: #eef3ff; }
        .home-option-chip.active { background: var(--brand); color: #fff; border-color: var(--brand); font-weight: 600; box-shadow: var(--shadow-brand); }

        .home-idea-counter { font-size: 12px; color: #8f959e; text-align: right; margin-top: 6px; }

        .home-advanced-toggle { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 13px; color: #2563eb; font-weight: 600; padding: 6px 0; user-select: none; }
        .home-advanced-toggle .chev { transition: transform .2s; display: inline-block; }
        .home-advanced-toggle.open .chev { transform: rotate(180deg); }
        #homeAdvancedWrap { display: none; margin-top: 10px; }
        #homeAdvancedWrap.open { display: block; animation: popDown .2s ease-out; }

        .home-checkbox-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 13px; color: #4a5159; cursor: pointer; }
        .home-checkbox-row input[type=checkbox] { width: 16px; height: 16px; cursor: pointer; accent-color: #2563eb; }

        /* 创作设置 · 高级配置 Stage 开关单行样式 */
        .stage-switch-row { display: flex; align-items: center; gap: 8px; padding: 4px 2px; font-size: 13px; color: #4a5159; cursor: pointer; }
        .stage-switch-row input[type=checkbox] { width: 16px; height: 16px; cursor: pointer; accent-color: #2563eb; }

        .home-create-footer { margin-top: 22px; padding-top: 18px; border-top: 1px solid #f2f4f7; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
        .home-create-tip { font-size: 12px; color: #8f959e; }
        .home-cta-button { padding: 11px 26px; border-radius: var(--r-btn); background: var(--brand); color: #fff; border: none; cursor: pointer; font-size: 15px; font-weight: 700; box-shadow: var(--shadow-brand); transition: transform var(--t), background var(--t), box-shadow var(--t); display: inline-flex; align-items: center; gap: 8px; }
        .home-cta-button:hover { transform: translateY(-1px); background: var(--brand-hover); box-shadow: var(--shadow-hover); }
        .home-cta-button:active { transform: translateY(0); }

        /* 作品区 header + 网格 —— 筛选标签下划线选中态 */
        .home-works-header { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px; margin-top: 2px; }
        .home-works-filter { display: flex; align-items: center; gap: 8px; }
        .home-works-filter-label { font-size: 15px; font-weight: 700; color: var(--text); cursor: pointer; }
        .home-works-filter-label .caret { font-size: 11px; color: var(--muted); margin-left: 4px; }
        .home-works-tabs { display: flex; gap: 4px; margin-left: 12px; }
        .home-works-tab { padding: 6px 12px; border-radius: var(--r-sm); font-size: 13px; color: var(--muted); cursor: pointer; background: transparent; border: none; border-bottom: 2px solid transparent; transition: background var(--t), color var(--t), border-color var(--t); }
        .home-works-tab:hover { background: #faf8f0; color: var(--text-sub); }
        .home-works-tab.active { color: var(--brand); border-bottom-color: var(--brand); font-weight: 700; background: transparent; }
        .home-works-right { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--muted); }
        .home-works-right .item { padding: 4px 8px; border-radius: var(--r-sm); cursor: pointer; transition: background var(--t), color var(--t); display: flex; align-items: center; gap: 4px; font-size: 12px; }
        .home-works-right .item:hover { background: var(--brand-soft); color: var(--brand); }

        .home-works-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; padding: 4px; }
        @media (max-width: 1180px) { .home-works-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); } }
        @media (max-width: 600px)  { .home-works-grid { grid-template-columns: 1fr; } }
        .home-works-pager { position: relative; width: 100%; margin-top: 16px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 4px; flex-wrap: wrap; background: transparent; border-top: 1px solid var(--border); z-index: 1; }
        .home-works-pager:empty { display: none; }
        .home-pager-btn, .home-pager-num { border: 1px solid #d8dce4; background: #fff; color: #4a5159; border-radius: 6px; padding: 5px 12px; font-size: 13px; cursor: pointer; transition: all .15s; }
        .home-pager-btn:hover:not(.disabled), .home-pager-num:hover:not(.active) { border-color: #3b82f6; color: #3b82f6; background: #f0f5ff; }
        .home-pager-btn.disabled { opacity: .4; cursor: not-allowed; }
        .home-pager-num.active { background: var(--brand); color: #fff; border-color: transparent; font-weight: 600; box-shadow: var(--shadow-brand); }
        .home-pager-info { color: #8a909a; font-size: 12px; padding: 0 8px; }
        /* ============ 作品卡片（简洁风格，全面接入设计变量） ============ */
        .home-work-card { width: 100%; padding: 16px 18px; background: var(--card); border: 1px solid var(--border); border-radius: var(--r-card); box-shadow: var(--shadow-soft); cursor: pointer; position: relative; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; display: flex; flex-direction: column; overflow: visible; }
        .home-work-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); border-color: var(--brand-soft); }
        /* 顶部状态栏 */
        .card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
        .status-left { display: flex; align-items: center; gap: 8px; }
        .status-line { width: 3px; height: 16px; border-radius: 2px; background: var(--muted); }
        .status-text { font-size: 14px; font-weight: 600; color: var(--text-sub); line-height: 1.3; }
        .status-tag { padding: 3px 9px; border-radius: 20px; font-size: 12px; font-weight: 500; display: inline-flex; align-items: center; gap: 4px; background: var(--card-2); color: var(--muted); }
        /* 状态变体颜色：统一取自 --st-* 设计变量，与全局报表/看板一致 */
        .home-work-card[data-status="running"] .status-line { background: var(--st-run); }
        .home-work-card[data-status="running"] .status-text { color: var(--st-run); }
        .home-work-card[data-status="running"] .status-tag { background: var(--st-run-soft); color: var(--st-run); }
        .home-work-card[data-status="running"] .progress-inner { background: var(--st-run); }
        .home-work-card[data-status="running"] .btn-main { background: var(--st-run-soft); color: var(--st-run); }
        .home-work-card[data-status="running"] .btn-main:hover { background: var(--st-run); color: #fff; }
        .home-work-card[data-status="running"] .btn-main svg { fill: currentColor; }
        .home-work-card[data-status="paused"] .status-line { background: var(--st-pause); }
        .home-work-card[data-status="paused"] .status-text { color: var(--st-pause); }
        .home-work-card[data-status="paused"] .status-tag { background: var(--st-pause-soft); color: var(--st-pause); }
        .home-work-card[data-status="paused"] .progress-inner { background: var(--st-pause); }
        .home-work-card[data-status="paused"] .btn-main { background: var(--st-ok-soft); color: var(--st-ok); }
        .home-work-card[data-status="paused"] .btn-main:hover { background: var(--st-ok); color: #fff; }
        .home-work-card[data-status="error"] .status-line { background: var(--st-err); }
        .home-work-card[data-status="error"] .status-text { color: var(--st-err); }
        .home-work-card[data-status="error"] .status-tag { background: var(--st-err-soft); color: var(--st-err); }
        .home-work-card[data-status="error"] .progress-inner { background: var(--st-err); }
        .home-work-card[data-status="error"] .btn-main { background: var(--st-run-soft); color: var(--st-run); }
        .home-work-card[data-status="error"] .btn-main:hover { background: var(--st-run); color: #fff; }
        .home-work-card[data-status="done"] .status-line { background: var(--st-ok); }
        .home-work-card[data-status="done"] .status-text { color: var(--st-ok); }
        .home-work-card[data-status="done"] .status-tag { background: var(--st-ok-soft); color: var(--st-ok); }
        .home-work-card[data-status="done"] .progress-inner { background: var(--st-ok); }
        .home-work-card[data-status="done"] .card-operate { justify-content: flex-end; }
        /* 左上角警示三角（出错状态） */
        .card-warning-badge { position: absolute; top: -6px; left: -6px; width: 20px; height: 20px; background: var(--st-err); clip-path: polygon(50% 0, 100% 100%, 0 100%); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 10px; font-weight: 700; z-index: 3; }
        /* 标题 */
        .card-title { font-size: 15px; font-weight: 600; color: var(--text); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 10px; word-break: break-all; min-height: 2.9em; }
        /* 进度条 */
        .progress-wrap { width: 100%; height: 4px; background: var(--card-2); border-radius: 4px; margin-bottom: 14px; overflow: hidden; }
        .progress-inner { height: 100%; width: 3%; background: var(--muted); border-radius: 4px; transition: width .4s ease; }
        /* 数据信息：单行紧凑排布 */
        .info-list { display: flex; align-items: center; gap: 14px; margin-bottom: 0; flex-wrap: wrap; }
        .info-item { display: flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--muted); line-height: 1.3; }
        .info-item .icon { display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; opacity: .85; }
        .info-num { color: var(--text-sub); font-weight: 600; }
        /* 底部操作区 */
        .card-operate { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
        .operate-btn { width: 34px; height: 34px; border: none; border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all .15s ease; padding: 0; }
        .operate-btn svg { width: 16px; height: 16px; }
        .btn-main { background: var(--st-run-soft); color: var(--st-run); }
        .btn-main:hover { background: var(--st-run); color: #fff; }
        .btn-del { background: var(--card-2); color: var(--muted); }
        .btn-del:hover { background: var(--st-err-soft); color: var(--st-err); }
        .btn-view { background: var(--brand-soft); color: var(--brand); }
        .btn-view:hover { background: var(--brand); color: #fff; }

        .home-work-empty { grid-column: 1 / -1; padding: 40px 20px; text-align: center; color: var(--muted); font-size: 13px; }

        /* 悬浮墨水消耗提示（挂在 body 下的共享 tooltip） */
        #homeInkTip { position: fixed; z-index: 500; padding: 5px 10px; background: #1f2329; color: #fff; font-size: 12px; border-radius: 6px; white-space: nowrap; opacity: 0; pointer-events: none; transform: translateY(4px); transition: opacity .15s ease, transform .15s ease; box-shadow: 0 4px 12px rgba(0,0,0,.18); }
        #homeInkTip.show { opacity: 1; transform: translateY(0); }

        /* ===== 全局美化弹窗（fancy alert） ===== */
        .fancy-mask {
            display: none;
            position: fixed; inset: 0; z-index: 9999;
            background: rgba(20, 24, 40, .48);
            backdrop-filter: blur(4px);
            align-items: center; justify-content: center;
            animation: fadeInMask .22s ease-out;
        }
        .fancy-mask.open { display: flex; }
        @keyframes fancyBoxIn {
            0%   { opacity: 0; transform: translateY(18px) scale(.94); }
            60%  { opacity: 1; transform: translateY(-3px) scale(1.01); }
            100% { opacity: 1; transform: translateY(0) scale(1); }
        }
        .fancy-box {
            width: min(420px, 86vw);
            background: linear-gradient(180deg, #ffffff 0%, #fafbfd 100%);
            border-radius: 18px;
            padding: 26px 28px 22px;
            box-shadow:
                0 30px 70px rgba(20, 28, 60, .28),
                0 0 0 1px rgba(255,255,255,.6) inset;
            position: relative;
            animation: fancyBoxIn .36s cubic-bezier(.22, 1, .36, 1);
            text-align: center;
        }
        .fancy-icon {
            width: 64px; height: 64px;
            border-radius: 50%;
            margin: 2px auto 18px;
            display: flex; align-items: center; justify-content: center;
            font-size: 32px; line-height: 1;
            box-shadow: 0 10px 22px rgba(0,0,0,.08);
            background: linear-gradient(135deg, #fff5da, #ffe8ad);
            color: #e59b00;
            transition: all .3s;
        }
        .fancy-icon.type-err  { background: linear-gradient(135deg, #ffe3e3, #ffb8b8); color: #d94141; }
        .fancy-icon.type-ok   { background: linear-gradient(135deg, #d9f7e7, #9ae8c3); color: #12986c; }
        .fancy-icon.type-info { background: linear-gradient(135deg, #dfe9ff, #b8c9ff); color: #3c62de; }
        .fancy-icon.type-warn { background: linear-gradient(135deg, #fff5da, #ffe8ad); color: #e59b00; }
        .fancy-body { margin-bottom: 20px; }
        .fancy-title {
            font-size: 18px; font-weight: 800; color: #1f2329;
            margin-bottom: 8px; letter-spacing: .3px;
        }
        .fancy-msg {
            font-size: 14px; line-height: 1.65; color: #525a64;
            white-space: pre-wrap; word-break: break-word;
        }
        .fancy-btn {
            min-width: 150px;
            padding: 11px 22px;
            border: none;
            border-radius: 12px;
            background: linear-gradient(135deg, #3b82f6 0%, #a78bfa 100%);
            color: #fff;
            font-size: 14.5px; font-weight: 700; letter-spacing: .6px;
            cursor: pointer;
            box-shadow: 0 8px 18px rgba(94, 75, 255, .32),
                        0 0 0 1px rgba(255,255,255,.3) inset;
            transition: transform .12s, box-shadow .18s, filter .15s;
        }
        .fancy-btn:hover   { transform: translateY(-1px); filter: brightness(1.05); box-shadow: 0 12px 24px rgba(94, 75, 255, .38); }
        .fancy-btn:active  { transform: translateY(0); filter: brightness(.98); }
        /* 不同类型按钮配色（可选：默认保留紫蓝主色） */
        .fancy-btn.type-err  { background: linear-gradient(135deg, #ff6868, #d94141); box-shadow: 0 8px 18px rgba(217, 65, 65, .28); }
        .fancy-btn.type-ok   { background: linear-gradient(135deg, #34d399, #10b981); box-shadow: 0 8px 18px rgba(30, 163, 123, .28); }
        .fancy-btn.type-warn { background: linear-gradient(135deg, #ffb347, #f97316); box-shadow: 0 8px 18px rgba(255, 139, 31, .28); }
        .fancy-btn.type-info { background: linear-gradient(135deg, #3b82f6 0%, #a78bfa 100%); }

        /* ===== 创作设置 Modal（玻璃拟态浮层） ===== */
        @keyframes modalSlideUp { from { opacity:0; transform: translateY(24px) scale(.97); } to { opacity:1; transform: translateY(0) scale(1); } }
        .home-modal-close { width:34px; height:34px; border-radius: 10px; border:none; background:#f4f6fa; color:#6a727d; cursor:pointer; font-size:18px; line-height:1; display:flex; align-items:center; justify-content:center; transition: background .15s, color .15s, transform .1s; }
        .home-modal-close:hover { background: #e7ecf7; color:#2563eb; transform: translateY(-1px); }

        /* 大纲手动输入框 */
        .home-outline-row { display:flex; align-items:center; gap: 12px; flex-wrap:wrap; }
        .home-outline-manual { flex: 0 0 140px; display:flex; align-items:center; gap: 6px; padding: 2px 10px 2px 2px; background:#fff; border:1px solid #dbe1ea; border-radius: 10px; }
        .home-outline-manual .label { padding: 6px 10px; font-size: 12px; font-weight:700; color:#2563eb; background:#eef4ff; border-radius: 8px; }
        .home-outline-manual input { flex:1; border:none; outline:none; background:transparent; padding: 6px 4px; font-size: 15px; font-weight:700; color:#1f2329; width: 62px; }

        /* 顶栏（navbar）改造 */
        .navbar { height: 60px; background: var(--card); border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 24px; position: sticky; top:0; z-index: 50; box-shadow: var(--shadow-soft); }
        .navbar-brand { font-size: 17px; font-weight: 800; color: var(--text); display:flex; align-items:center; gap: 10px; }
        .navbar-brand .logo-dot { width: 34px; height: 34px; border-radius: var(--r-btn); background: var(--brand); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-brand); }
        .navbar-nav { display:flex; align-items:center; gap: 4px; margin: 0 0 0 28px; padding: 0; list-style: none; }
        .navbar-item { padding: 8px 18px; border-radius: var(--r-btn); cursor:pointer; color: var(--text-sub); font-size: 14px; font-weight: 600; transition: background var(--t), color var(--t); }
        .navbar-item:hover { background: var(--brand-soft); color: var(--brand); }
        .navbar-item.active { background: var(--brand-soft); color: var(--brand); }
        .navbar-user { margin-left: auto; display:flex; align-items:center; gap: 14px; }
        .navbar-user-btns { display:flex; align-items:center; gap: 8px; }
        .navbar-icon-btn { width:36px; height:36px; border-radius: var(--r-btn); background:var(--card-2); color:var(--text-sub); display:flex; align-items:center; justify-content:center; cursor:pointer; position: relative; transition: background var(--t), color var(--t), transform var(--t); font-size: 16px; border:none; }
        .navbar-icon-btn:hover { background: var(--brand-soft); color: var(--brand); transform: translateY(-1px); }
        .navbar-icon-btn .dot { position:absolute; top:7px; right:7px; width:8px; height:8px; border-radius:50%; background: var(--st-err); border: 2px solid #fff; }
        .navbar-user-card { display:flex; align-items:center; gap: 10px; padding: 5px 10px 5px 5px; background:var(--card); border: 1px solid var(--border); border-radius: var(--r-card); cursor:pointer; transition: box-shadow var(--t), transform var(--t); }
        .navbar-user-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
        .navbar-user-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--brand); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-brand); }
        .navbar-user-meta { display:flex; flex-direction:column; line-height: 1.2; }
        .navbar-user-name { font-size: 13px; font-weight: 700; color: var(--text); }
        .navbar-user-sub { font-size: 11px; color: var(--muted); display:flex; align-items:center; gap: 4px; }
        .navbar-check-tag { color: var(--st-run); font-weight:700; }

        /* 首页统一尺寸：左侧导航宽度，所有关联布局（navbar padding / pager left / grid template /）共享此变量。
           与 enhancements.css 的 --compact-sidebar: 190px 保持一致，避免 navbar/pager 与 sidebar 左边界错位 50px。 */
        :root {
            --home-left-nav-w: 190px;
            /* 品牌色系（仿管理员后台：indigo → violet 渐变） */
            --brand: #6366f1;           /* 主色：indigo */
            --brand-dark: #4f46e5;      /* 主色深 */
            --brand-soft: #e0e7ff;      /* 主色浅底 */
            --brand-hover: #818cf8;     /* 主色 hover */
            --accent: #8b5cf6;          /* 辅助色：violet */
            --accent-soft: #f5f3ff;     /* 辅助色浅底 */
            /* 状态色 */
            --st-run: #f97316;          /* 生成中：橙 */
            --st-err: #ef4444;          /* 出错：红 */
            --st-ok: #10b981;           /* 正常/完成：绿 */
            --st-pause: #8b5cf6;        /* 暂停：紫 */
            --st-run-soft: #fff3e8;     /* 生成中浅底 */
            --st-err-soft: #fee8eb;     /* 出错浅底 */
            --st-ok-soft: #e8f8f0;      /* 完成浅底 */
            --st-pause-soft: #efeafc;   /* 暂停浅底 */
            /* 中性色（仿后台冷灰蓝系） */
            --bg: #f1f5f9;              /* 页面底色：冷灰蓝 */
            --bg-alt: #f1f5f9;          /* 备用底色 */
            --card: #ffffff;            /* 卡片白底 */
            --card-warm: #ffffff;       /* 白卡片 */
            --card-2: #f8fafc;          /* 卡片内嵌次级底色（图标底、分隔块等） */
            --text: #0f172a;            /* 主文字 */
            --text-sub: #64748b;        /* 次文字 */
            --muted: #94a3b8;           /* 弱文字 */
            --border: #e2e8f0;          /* 冷色边框 */
            --border-cool: #e2e8f0;     /* 冷色边框 */
            /* 圆角规范 */
            --r-card: 12px;
            --r-btn: 8px;
            --r-modal: 16px;
            --r-sm: 6px;
            /* 阴影规范 */
            --shadow-soft: 0 1px 3px rgba(15,23,42,.05);
            --shadow-md: 0 2px 8px rgba(15,23,42,.06);
            --shadow-hover: 0 8px 20px rgba(99,102,241,.12);
            --shadow-brand: 0 4px 12px rgba(99,102,241,.22);
            /* 动效 */
            --t: .2s ease;
        }

        /* 左侧栏：宽度 240px，暖白底，紧凑布局 */
        .home-left-nav { width: var(--home-left-nav-w); flex: 0 0 var(--home-left-nav-w); background: var(--card); border-right: 1px solid var(--border); display: flex; flex-direction: column; padding: 22px 12px; gap: 6px; }
        .home-nav-item { padding: 12px 18px; display: flex; align-items: center; gap: 12px; cursor: pointer; color: var(--text-sub); font-size: 14px; font-weight: 600; border-radius: var(--r-btn); border: 1px solid transparent; transition: background var(--t), color var(--t); }
        .home-nav-item:hover { background: var(--brand-soft); color: var(--brand); }
        .home-nav-item.active { background: var(--brand-soft); color: var(--brand); border-color: transparent; font-weight: 700; }
        .home-nav-item-icon { width: 34px; height: 34px; border-radius: var(--r-btn); background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); display: flex; align-items: center; justify-content: center; font-size: 18px; color: var(--text-sub); transition: all var(--t); box-shadow: 0 2px 4px rgba(0,0,0,0.06); }
        .home-nav-item:hover .home-nav-item-icon { background: linear-gradient(135deg, var(--brand) 0%, var(--brand-hover) 100%); color:#fff; box-shadow: var(--shadow-brand); transform: translateY(-1px); }
        .home-nav-item.active .home-nav-item-icon { background: linear-gradient(135deg, var(--brand) 0%, var(--brand-hover) 100%); color:#fff; box-shadow: var(--shadow-brand); }

        /* 编辑器（work view）保存/导出按钮 & 可编辑样式 */
        .writer-edit-toolbar { position: absolute; right: 24px; top: 16px; display:flex; align-items:center; gap: 8px; z-index: 3; }
        .writer-edit-action-btn { padding: 8px 16px; border-radius: 10px; border:none; cursor:pointer; font-size: 13px; font-weight: 700; display:flex; align-items:center; gap: 6px; transition: transform .1s, box-shadow .15s; box-shadow: 0 2px 6px rgba(30,35,80,.08); }
        .writer-edit-action-btn:hover { transform: translateY(-1px); box-shadow: 0 5px 12px rgba(30,35,80,.14); }
        .writer-edit-action-btn.save { background: linear-gradient(135deg, #34d399, #10b981); color:#fff; }
        .writer-edit-action-btn.export { background: linear-gradient(135deg, #3b82f6, #2563eb); color:#fff; }
        .writer-edit-action-btn.editmode { background: linear-gradient(135deg, #a577ff, #8b5cf6); color:#fff; }
        .writer-center.editable .writer-content-area { background:#fffef7; outline: 2px dashed #dbe1ea; outline-offset: -6px; border-radius: 10px; }

        /* 旧锚点隐藏层（作为数据真实承载 + 回退） */
        .home-original-anchor-layer { display: none !important; }

        /* 顶部导航：固定 + 与左侧导航（240px = 150×1.6）对齐 + 铺满 */
        .navbar.navbar-fixed {
            position: fixed; top: 0; left: 0; right: 0; z-index: 150;
            width: 100%; height: 60px;
            padding: 0 24px 0 var(--home-left-nav-w); /* padding-left=左导航宽度（CSS 变量统一），对齐文字 */
            border-radius: 0 !important;
        }
        .navbar.navbar-fixed .navbar-nav { margin-left: 18px; }
        /* 容器 + 视图 + home/writer shell 全部铺满屏幕（去除圆角、box-shadow，min-height=100vh - navbar） */
        body { padding: 0 !important; margin: 0; }
        .container {
            max-width: 100% !important; width: 100%; padding-top: 60px; padding-left: 0; padding-right: 0; margin: 0;
        }
        .view {
            min-height: calc(100vh - 60px); width: 100%; max-width: 100%; padding: 0; margin: 0;
        }
        #home-shell {
            width: 100%; min-height: calc(100vh - 60px);
            background: #faf8f0;
            border-radius: 0 !important;
            box-shadow: none !important;
            overflow: hidden;
        }
        #writer-shell {
            width: 100%; min-height: calc(100vh - 60px);
            border-radius: 0 !important;
            box-shadow: none !important;
        }

        @media (max-width: 1180px) {
            #home-shell { flex-direction: column; }
            .home-left-nav { position: static; top: auto; width: 100%; flex: 0 0 auto; border-right: none; border-bottom: 1px solid #ebeef3; flex-direction: row; padding: 10px 16px; overflow-x: auto; align-items: center; gap: 4px; height: auto; min-height: 0; }
            .home-nav-item { padding: 10px 18px; border-radius: 10px; flex: 0 0 auto; white-space: nowrap; transform: none !important; box-shadow: none !important; }
            .home-nav-item.active { border-color: transparent; }
            .home-nav-item-icon { width:28px; height:28px; font-size:15px; transform: none !important; }
            .home-top-hero-row { grid-template-columns: 1fr; }
            .home-quick-actions-row { grid-template-columns: 1fr; }
            .home-create-grid { grid-template-columns: 1fr; }
            .navbar { padding: 0 14px; height: 56px; }
            .navbar-brand { font-size: 15px; }
            .navbar-user-meta { display: none; }
            .writer-edit-toolbar { right: 14px; top: 12px; }
        }

        /* ============================================================
         * 暗色主题（科技感） · [data-theme="dark"]
         * 深空蓝黑背景 + 蓝紫霓光高光 + 玻璃拟态卡片
         * 仅新增覆盖层，不修改以上任何浅色基线规则（浅色为默认基线）
         * writer 阅读区自身的 4 套主题（paper/white/green/dark）不受影响
         * ============================================================ */
        [data-theme="dark"] {
            --btn-primary: #3b82f6; --btn-primary-hover: #60a5fa; --btn-primary-disabled: #2c3e58;
            --btn-warning: #fbbf24; --btn-warning-hover: #fcd34d;
            --btn-danger: #f87171; --btn-danger-hover: #fb9494;
            --btn-success: #34d399; --btn-success-hover: #6ee7b7;
            --btn-default: #6b7684; --btn-default-hover: #838fa0;
            --badge-running-bg: rgba(59,130,246,.18); --badge-running-fg: #8fc0ff;
            --badge-paused-bg: rgba(139,92,246,.20); --badge-paused-fg: #cbb6ff;
            --badge-completed-bg: rgba(52,211,153,.18); --badge-completed-fg: #7fe6c1;
            --badge-error-bg: rgba(248,113,113,.18); --badge-error-fg: #ffa1a1;
            --badge-interrupted-bg: rgba(167,139,250,.18); --badge-interrupted-fg: #d0bcff;
            --badge-pending-bg: rgba(148,163,184,.16); --badge-pending-fg: #aeb8c6;
            --badge-success-bg: rgba(52,211,153,.18); --badge-success-fg: #7fe6c1;
            --badge-done-bg: rgba(52,211,153,.18); --badge-done-fg: #7fe6c1;

            --brand: #818cf8; --brand-dark: #6366f1; --brand-soft: rgba(129,140,248,.18); --brand-hover: #a5b4fc;
            --accent: #a78bfa; --accent-soft: rgba(167,139,250,.18);
            --st-run: #ff9d5c; --st-err: #ff6b81; --st-ok: #34e0a1; --st-pause: #a78bfa;
            --st-run-soft: rgba(255,157,92,.16); --st-pause-soft: rgba(167,139,250,.18);
            --st-err-soft: rgba(255,107,129,.16); --st-ok-soft: rgba(52,224,161,.16);

            --bg: #0a0c13; --bg-alt: #10131c; --card: #141824; --card-2: #1a1f2e; --card-warm: #141824;
            --text: #e7e9ee; --text-sub: #a6adba; --muted: #707a8a;
            --border: #262c3d; --border-cool: #262c3d;
            --overlay: rgba(4,6,14,.62); --input-bg: #10131c; --scroll-thumb: #2c3346;

            --shadow-soft: 0 1px 3px rgba(0,0,0,.45);
            --shadow-md: 0 2px 12px rgba(0,0,0,.55);
            --shadow-hover: 0 8px 24px rgba(129,140,248,.24);
            --shadow-brand: 0 0 0 1px rgba(129,140,248,.35), 0 4px 18px rgba(129,140,248,.32);
            --glow-brand: 0 0 14px rgba(129,140,248,.45), 0 0 30px rgba(167,139,250,.22);
        }
        [data-theme="dark"] html,
        [data-theme="dark"] { color-scheme: dark; }
        [data-theme="dark"] body { background: radial-gradient(circle at 15% 0%, #131a2e 0%, #0a0c13 46%, #070811 100%); color: var(--text); }
        [data-theme="dark"] .container { background: transparent; }

        /* 通用卡片 / 表单 / 按钮 */
        [data-theme="dark"] .card { background: var(--card); border-color: var(--border); box-shadow: var(--shadow-md); }
        [data-theme="dark"] .ai-desc { background: rgba(59,130,246,.12); border-color: rgba(59,130,246,.3); color: #9fd3ff; }
        [data-theme="dark"] textarea, [data-theme="dark"] input[type="number"],
        [data-theme="dark"] input[type="text"], [data-theme="dark"] select {
            background: var(--input-bg); border-color: var(--border); color: var(--text);
        }
        [data-theme="dark"] textarea::placeholder, [data-theme="dark"] input::placeholder { color: var(--muted); }
        [data-theme="dark"] textarea:focus, [data-theme="dark"] input[type="number"]:focus { border-color: var(--brand); box-shadow: var(--glow-brand); }
        [data-theme="dark"] label { color: var(--text-sub); }
        [data-theme="dark"] h1 { color: var(--text); }
        [data-theme="dark"] .section-title { color: var(--text); border-bottom-color: var(--brand); }

        /* 状态页遗留卡片 */
        [data-theme="dark"] .status-header { border-bottom-color: var(--border); }
        [data-theme="dark"] .status-title { color: var(--text); }
        [data-theme="dark"] .progress-bar { background: #1b2130; }
        [data-theme="dark"] .progress-fill { background: linear-gradient(90deg, var(--brand), var(--accent)); box-shadow: 0 0 10px rgba(79,140,255,.4); }
        [data-theme="dark"] .progress-info { color: var(--text-sub); }
        [data-theme="dark"] .info-item { background: var(--card-2); }
        [data-theme="dark"] .info-label { color: var(--muted); }
        [data-theme="dark"] .info-value { color: var(--text); }
        [data-theme="dark"] .chapters-list { border-color: var(--border); }
        [data-theme="dark"] .chapter-item { border-bottom-color: var(--border); }
        [data-theme="dark"] .chapter-item:hover { background: var(--card-2); }
        [data-theme="dark"] .chapter-name { color: var(--text); }
        [data-theme="dark"] .chapter-words { color: var(--muted); }
        [data-theme="dark"] .batch-sel-all { color: var(--text-sub); }
        [data-theme="dark"] .batch-sel-info { color: var(--muted); }
        [data-theme="dark"] .batch-sel-info.active { color: #2ecc71; }
        [data-theme="dark"] .batch-progress-bar { background: #1b2130; }
        [data-theme="dark"] .batch-progress-text { color: var(--text-sub); }
        [data-theme="dark"] .batch-credit { color: #fbbf24; }
        [data-theme="dark"] .batch-cost-meta { color: var(--text-sub); }
        [data-theme="dark"] .batch-cost-log { border-color: var(--border); background: var(--card-2); }
        [data-theme="dark"] .batch-cost-row { color: var(--text-sub); border-bottom-color: var(--border); }
        [data-theme="dark"] .batch-cost-row .cost { color: #ff6b6b; }
        [data-theme="dark"] .tabs { border-bottom-color: var(--border); }
        [data-theme="dark"] .tab { color: var(--text-sub); }
        [data-theme="dark"] .tab.active { color: var(--brand); border-bottom-color: var(--brand); }
        [data-theme="dark"] .modal { background: rgba(4,6,14,.66); }
        [data-theme="dark"] .modal-content { background: var(--card); color: var(--text); box-shadow: var(--shadow-md); }
        [data-theme="dark"] .modal-header { border-bottom-color: var(--border); }
        [data-theme="dark"] .modal-close { color: var(--muted); }
        [data-theme="dark"] .task-item { border-color: var(--border); background: var(--card); }
        [data-theme="dark"] .task-item:hover { border-color: var(--brand); }
        [data-theme="dark"] .task-item.active { border-color: var(--brand); background: var(--brand-soft); }
        [data-theme="dark"] .task-idea { color: var(--text); }
        [data-theme="dark"] .task-meta { color: var(--muted); }
        [data-theme="dark"] .task-points { color: #fbbf24; }
        [data-theme="dark"] .task-group-title { color: var(--brand); border-bottom-color: var(--border); }
        [data-theme="dark"] .task-group-count { background: var(--card-2); color: var(--muted); }
        [data-theme="dark"] .task-item.pinned { border-color: #6b5623; background: rgba(245,166,35,.10); box-shadow: inset 3px 0 0 var(--st-run); }
        [data-theme="dark"] .task-item.pinned.active { background: rgba(245,166,35,.16); border-color: var(--st-run); }
        [data-theme="dark"] .tasks-filter { border-bottom-color: var(--border); }
        [data-theme="dark"] .filter-tab { background: var(--card); border-color: var(--border); color: var(--text-sub); }
        [data-theme="dark"] .filter-tab:hover { border-color: var(--brand); color: var(--brand); }
        [data-theme="dark"] .filter-tab.active { background: var(--brand); border-color: var(--brand); color: #fff; }
        [data-theme="dark"] .filter-count { background: rgba(0,0,0,.28); }
        [data-theme="dark"] .tasks-pagination { border-top-color: var(--border); }
        [data-theme="dark"] .page-btn { background: var(--card); border-color: var(--border); color: var(--text-sub); }
        [data-theme="dark"] .page-btn:hover:not(:disabled) { border-color: var(--brand); color: var(--brand); }
        [data-theme="dark"] .page-btn.active { background: var(--brand); border-color: var(--brand); color: #fff; }
        [data-theme="dark"] .page-info, [data-theme="dark"] .page-ellipsis { color: var(--muted); }
        [data-theme="dark"] .history-card { border-color: var(--border); background: var(--card); }
        [data-theme="dark"] .history-card:hover { border-color: var(--brand); box-shadow: var(--shadow-hover); }
        [data-theme="dark"] .history-title { color: var(--text); }
        [data-theme="dark"] .history-meta { color: var(--muted); }
        [data-theme="dark"] .outline-box, [data-theme="dark"] .toolbar { background: var(--card-2); }
        [data-theme="dark"] .outline-box h4 { color: var(--text); }
        [data-theme="dark"] .score-display { color: var(--brand); }
        [data-theme="dark"] .score-label, [data-theme="dark"] .outline-tip, [data-theme="dark"] .empty-hint { color: var(--muted); }
        [data-theme="dark"] .input-mini { background: var(--input-bg); border-color: var(--border); color: var(--text); }
        [data-theme="dark"] .btn-mini.ghost { background: var(--card); color: var(--text-sub); border-color: var(--border); }
        [data-theme="dark"] .btn-mini.ghost:hover { background: var(--brand-soft); border-color: var(--brand); color: var(--brand); }
        [data-theme="dark"] .outline-item { border-color: var(--border); }
        [data-theme="dark"] .outline-item:hover { border-color: var(--brand); }
        [data-theme="dark"] .outline-item-header { background: var(--card-2); }
        [data-theme="dark"] .outline-item-title { color: var(--text); }
        [data-theme="dark"] .outline-item-detail { background: var(--card); color: var(--text-sub); }
        [data-theme="dark"] .outline-item-empty { background: var(--card-2); color: var(--muted); }
        [data-theme="dark"] .outline-section { border-top-color: var(--border); }
        [data-theme="dark"] .outline-section-head h3 { color: var(--text); }
        [data-theme="dark"] .load-more-wrap { color: var(--muted); }
        [data-theme="dark"] .inner-tabs { border-bottom-color: var(--border); }
        [data-theme="dark"] .inner-tab { color: var(--text-sub); }
        [data-theme="dark"] .inner-tab:hover { background: var(--card-2); color: var(--text); }
        [data-theme="dark"] .inner-tab.active { background: var(--brand); color: #fff; }
        [data-theme="dark"] .pagination-wrap { border-top-color: var(--border); }
        [data-theme="dark"] .outline-textarea, [data-theme="dark"] .outline-textarea-sm { background: var(--input-bg); border-color: var(--border); color: var(--text); }
        [data-theme="dark"] .outline-title-input { color: var(--text); }
        [data-theme="dark"] .outline-title-input:focus { background: var(--input-bg); }
        [data-theme="dark"] .polish-compare-item { background: var(--card-2); border-color: var(--border); }
        [data-theme="dark"] .polish-compare-item:hover { background: var(--brand-soft); border-color: var(--brand); }
        [data-theme="dark"] .polish-compare-item .pc-num { color: var(--text); }
        [data-theme="dark"] .polish-compare-item .pc-hint { color: var(--muted); }
        [data-theme="dark"] .pc-panel { border-color: var(--border); }
        [data-theme="dark"] .pc-panel-header { background: var(--card-2); border-bottom-color: var(--border); }
        [data-theme="dark"] .pc-panel.pc-draft .pc-panel-header { background: rgba(255,157,92,.14); }
        [data-theme="dark"] .pc-panel.pc-polished .pc-panel-header { background: rgba(79,140,255,.14); }
        [data-theme="dark"] .pc-words { color: var(--muted); }
        [data-theme="dark"] .pc-content { color: var(--text-sub); }

        /* 全局终审 / 改文记录 / 用量表格 */
        [data-theme="dark"] .gr-card, [data-theme="dark"] .pr-card { background: var(--card); border-color: var(--border); box-shadow: var(--shadow-md); }
        [data-theme="dark"] .gr-scope, [data-theme="dark"] .pr-scope, [data-theme="dark"] .pr-stat strong { color: var(--text); }
        [data-theme="dark"] .gr-summary, [data-theme="dark"] .pr-stat, [data-theme="dark"] .pr-summary { color: var(--text-sub); }
        [data-theme="dark"] .gr-badge.midterm, [data-theme="dark"] .pr-badge.midterm { background: rgba(79,140,255,.18); color: #9fd3ff; }
        [data-theme="dark"] .gr-badge.full, [data-theme="dark"] .pr-badge.full { background: rgba(255,157,92,.18); color: #ffc999; }
        [data-theme="dark"] .gr-score.pass { color: var(--st-ok); }
        [data-theme="dark"] .gr-score.fail { color: var(--st-err); }
        [data-theme="dark"] .gr-issue { background: var(--card-2); border-left-color: var(--border); }
        [data-theme="dark"] .gr-issue.high { border-left-color: var(--st-err); background: rgba(255,107,129,.10); }
        [data-theme="dark"] .gr-issue.medium { border-left-color: var(--st-run); background: rgba(255,157,92,.10); }
        [data-theme="dark"] .gr-issue.low { border-left-color: var(--brand); background: rgba(79,140,255,.10); }
        [data-theme="dark"] .gr-issue-tag.high { background: rgba(255,107,129,.2); color: #ffb3bd; }
        [data-theme="dark"] .gr-issue-tag.medium { background: rgba(255,157,92,.2); color: #ffcda3; }
        [data-theme="dark"] .gr-issue-tag.low { background: rgba(79,140,255,.2); color: #9fd3ff; }
        [data-theme="dark"] .gr-issue-loc { color: var(--muted); }
        [data-theme="dark"] .gr-issue-suggest { color: var(--st-ok); }
        [data-theme="dark"] .pr-table th, [data-theme="dark"] .usage-table th { background: var(--card-2); color: var(--text-sub); }
        [data-theme="dark"] .pr-table td, [data-theme="dark"] .usage-table td,
        [data-theme="dark"] .pr-table th, [data-theme="dark"] .usage-table th { border-bottom-color: var(--border); }
        [data-theme="dark"] .pr-ch-status.changed { background: rgba(52,224,161,.16); color: #7fe6c1; }
        [data-theme="dark"] .pr-ch-status.skipped { background: rgba(255,157,92,.16); color: #ffc999; }
        [data-theme="dark"] .pr-ch-status.error { background: rgba(255,107,129,.16); color: #ffb3bd; }
        [data-theme="dark"] .gr-radar-wrap { border-top-color: var(--border); }
        [data-theme="dark"] .gr-dim-details { color: var(--text-sub); }
        [data-theme="dark"] .gr-dim-details > summary { color: var(--text); }
        [data-theme="dark"] .gr-dim-row { border-bottom-color: var(--border); }
        [data-theme="dark"] .gr-dim-score { background: rgba(79,140,255,.18); color: #9fd3ff; }
        [data-theme="dark"] .gr-dim-score.low { background: rgba(255,107,129,.18); color: #ffb3bd; }
        [data-theme="dark"] .gr-dim-score.mid { background: rgba(255,157,92,.18); color: #ffc999; }
        [data-theme="dark"] .gr-dim-reason { color: #ffb3bd; }
        [data-theme="dark"] .gr-dim-improve { color: var(--st-ok); }
        [data-theme="dark"] .pr-delta { color: var(--muted); }
        [data-theme="dark"] .pr-delta.up { color: var(--st-ok); }
        [data-theme="dark"] .pr-delta.down { color: var(--st-err); }
        [data-theme="dark"] .pr-error { color: #ffb3bd; }
        [data-theme="dark"] .usage-table td.cost { color: var(--text); }
        /* ===== 顶部导航栏（app-shell，独立于 writer 阅读区自身主题） ===== */
        [data-theme="dark"] .navbar { background: rgba(15,18,28,.86); backdrop-filter: blur(10px); border-bottom-color: var(--border); box-shadow: 0 1px 0 rgba(79,140,255,.12), var(--shadow-md); }
        [data-theme="dark"] .navbar-brand { color: var(--text); }
        [data-theme="dark"] .navbar-brand .logo-dot { box-shadow: var(--glow-brand); }
        [data-theme="dark"] .navbar-item { color: var(--text-sub); }
        [data-theme="dark"] .navbar-item:hover { background: var(--brand-soft); color: var(--brand); }
        [data-theme="dark"] .navbar-item.active { background: var(--brand-soft); color: var(--brand); box-shadow: inset 0 0 0 1px rgba(79,140,255,.3); }
        [data-theme="dark"] .navbar-icon-btn { background: var(--card-2); color: var(--text-sub); }
        [data-theme="dark"] .navbar-icon-btn:hover { background: var(--brand-soft); color: var(--brand); }
        [data-theme="dark"] .navbar-icon-btn .dot { border-color: var(--card-2); }
        [data-theme="dark"] .navbar-user-card { background: var(--card-2); }
        [data-theme="dark"] .navbar-user-card:hover { box-shadow: var(--shadow-hover); }
        [data-theme="dark"] .navbar-user-name { color: var(--text); }
        [data-theme="dark"] .navbar-user-sub { color: var(--muted); }
        [data-theme="dark"] .theme-toggle-btn { background: var(--card-2); color: var(--text-sub); }
        [data-theme="dark"] .theme-toggle-btn:hover { background: var(--brand-soft); color: var(--brand); }

        /* ===== 首页 home-shell / 卡片 ===== */
        [data-theme="dark"] #home-shell { background: var(--bg); }
        [data-theme="dark"] .home-left-nav { background: #0d1019; border-right-color: var(--border); }
        [data-theme="dark"] .home-nav-item { color: var(--text-sub); }
        [data-theme="dark"] .home-nav-item:hover { background: var(--brand-soft); color: var(--brand); }
        [data-theme="dark"] .home-nav-item.active { background: var(--brand-soft); color: var(--brand); }
        [data-theme="dark"] .home-nav-item-icon { background: var(--card-2); color: var(--text-sub); }
        [data-theme="dark"] .home-banner-card, [data-theme="dark"] .home-invite-card { background: var(--card); box-shadow: var(--shadow-md); }
        [data-theme="dark"] .home-banner-top {
            background:
                linear-gradient(90deg, #1f4fd8 0%, #5b3fd6 50%, #8b5cf6 100%),
                repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 22px),
                repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 22px);
            background-blend-mode: overlay, normal, normal;
        }
        [data-theme="dark"] .home-banner-task-bar { background: var(--card); }
        [data-theme="dark"] .home-banner-task-title { color: var(--text); }
        [data-theme="dark"] .home-week-day { color: var(--muted); }
        [data-theme="dark"] .home-week-box { background: var(--brand-soft); color: var(--brand); border-color: rgba(79,140,255,.35); }
        [data-theme="dark"] .home-week-box.todo { background: var(--card-2); color: var(--muted); border-color: var(--border); }
        [data-theme="dark"] .home-share-pwd-btn { background: rgba(251,191,36,.14); color: #ffd479; border-color: rgba(251,191,36,.3); }
        [data-theme="dark"] .home-invite-tag { background: var(--accent-soft); color: var(--accent); }
        [data-theme="dark"] .home-invite-title { color: var(--text); }
        [data-theme="dark"] .home-invite-sub { color: var(--muted); }
        [data-theme="dark"] .home-invite-cta-btn { background: var(--card); border-color: var(--brand); color: var(--brand); }
        [data-theme="dark"] .home-invite-cta-btn:hover { background: var(--brand-soft); }
        [data-theme="dark"] .home-invite-cta-btn.primary { background: var(--brand); color: #fff; }
        [data-theme="dark"] .home-action-card { background: var(--card); border-color: rgba(79,140,255,.25); box-shadow: var(--shadow-soft); }
        [data-theme="dark"] .home-action-card:hover { border-color: var(--brand); box-shadow: var(--shadow-hover); }
        [data-theme="dark"] .home-action-card.active { box-shadow: 0 0 0 2px var(--brand), var(--shadow-hover); }
        [data-theme="dark"] .home-action-idea .home-action-icon { background: var(--st-run-soft); color: var(--st-run); }
        [data-theme="dark"] .home-action-title { color: var(--text); }
        [data-theme="dark"] .home-action-sub { color: var(--muted); }
        [data-theme="dark"] .home-idea-textarea { background: var(--input-bg); border-color: var(--border); color: var(--text); }
        [data-theme="dark"] .home-idea-textarea:focus { background: var(--input-bg); border-color: var(--brand); box-shadow: var(--glow-brand); }
        [data-theme="dark"] .home-idea-meta { color: var(--muted); }
        [data-theme="dark"] #homeCreatePanel { background: var(--card-2); }
        [data-theme="dark"] .home-create-header { border-bottom-color: var(--border); }
        [data-theme="dark"] .home-create-title { color: var(--text); }
        [data-theme="dark"] .home-create-close { color: var(--muted); }
        [data-theme="dark"] .home-create-close:hover { background: var(--card); color: var(--brand); }
        [data-theme="dark"] .home-field-card { background: var(--card); border-color: var(--border); }
        [data-theme="dark"] .home-field-label { color: var(--text); }
        [data-theme="dark"] .home-field-label .hint { color: var(--muted); }
        [data-theme="dark"] .home-field-input, [data-theme="dark"] .home-field-select, [data-theme="dark"] .home-field-textarea {
            background: var(--input-bg); border-color: var(--border); color: var(--text);
        }
        [data-theme="dark"] .home-field-input::placeholder, [data-theme="dark"] .home-field-textarea::placeholder { color: var(--muted); }
        [data-theme="dark"] .home-field-input:focus, [data-theme="dark"] .home-field-select:focus, [data-theme="dark"] .home-field-textarea:focus {
            border-color: var(--brand); box-shadow: var(--glow-brand);
        }
        [data-theme="dark"] .home-option-chip { background: var(--card); border-color: var(--border); color: var(--text-sub); }
        [data-theme="dark"] .home-option-chip:hover { background: var(--brand-soft); }
        [data-theme="dark"] .home-option-chip.active { background: var(--brand); color: #fff; border-color: var(--brand); }
        [data-theme="dark"] .home-idea-counter { color: var(--muted); }
        [data-theme="dark"] .home-create-footer { border-top-color: var(--border); }
        [data-theme="dark"] .home-create-tip { color: var(--muted); }
        [data-theme="dark"] .home-works-header { color: var(--text); }
        [data-theme="dark"] .home-works-filter-label { color: var(--text); }
        [data-theme="dark"] .home-works-tab { color: var(--muted); }
        [data-theme="dark"] .home-works-tab:hover { background: var(--card-2); color: var(--text-sub); }
        [data-theme="dark"] .home-works-tab.active { color: var(--brand); border-bottom-color: var(--brand); }
        [data-theme="dark"] .home-works-right { color: var(--muted); }
        [data-theme="dark"] .home-works-right .item:hover { background: var(--brand-soft); color: var(--brand); }
        [data-theme="dark"] .home-works-pager { background: var(--bg); border-top-color: var(--border); }
        [data-theme="dark"] .home-pager-btn, [data-theme="dark"] .home-pager-num { background: var(--card); border-color: var(--border); color: var(--text-sub); }
        [data-theme="dark"] .home-pager-btn:hover:not(.disabled), [data-theme="dark"] .home-pager-num:hover:not(.active) { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
        [data-theme="dark"] .home-pager-num.active { background: var(--brand); color: #fff; }
        [data-theme="dark"] .home-pager-info { color: var(--muted); }
        [data-theme="dark"] .home-work-empty { color: var(--muted); }

        /* 作品卡片：渐变描边 + 悬浮微光，状态色改用渐变变量 */
        [data-theme="dark"] .home-work-card { background: var(--card); box-shadow: var(--shadow-md); border: 1px solid var(--border); }
        [data-theme="dark"] .home-work-card:hover { box-shadow: var(--shadow-hover); border-color: rgba(79,140,255,.4); }
        [data-theme="dark"] .card-title { color: var(--text); }
        [data-theme="dark"] .card-operate { border-top-color: var(--border); }
        [data-theme="dark"] .info-item { color: var(--muted); }
        [data-theme="dark"] .info-num { color: var(--text-sub); }
        [data-theme="dark"] .progress-wrap { background: #1b2130; }
        [data-theme="dark"] #homeInkTip { background: #232a3d; box-shadow: 0 6px 18px rgba(0,0,0,.5), 0 0 0 1px var(--border) inset; }
        [data-theme="dark"] .home-work-card[data-status="running"] .status-text { color: var(--st-run); }
        [data-theme="dark"] .home-work-card[data-status="running"] .status-tag { background: var(--st-run-soft); color: var(--st-run); }
        [data-theme="dark"] .home-work-card[data-status="running"] .progress-inner,
        [data-theme="dark"] .home-work-card[data-status="running"] .status-line { background: linear-gradient(90deg, var(--st-run), #ffcf8f); box-shadow: 0 0 8px rgba(255,157,92,.4); }
        [data-theme="dark"] .home-work-card[data-status="running"] .btn-main { background: var(--st-run-soft); color: var(--st-run); }
        [data-theme="dark"] .home-work-card[data-status="running"] .btn-main:hover { background: var(--st-run); color: #10131c; }
        [data-theme="dark"] .home-work-card[data-status="running"] .btn-main svg { fill: var(--st-run); }
        [data-theme="dark"] .home-work-card[data-status="paused"] .status-text { color: var(--st-pause); }
        [data-theme="dark"] .home-work-card[data-status="paused"] .status-tag { background: var(--st-pause-soft); color: var(--st-pause); }
        [data-theme="dark"] .home-work-card[data-status="paused"] .status-line,
        [data-theme="dark"] .home-work-card[data-status="paused"] .progress-inner { background: linear-gradient(90deg, var(--st-pause), var(--accent)); box-shadow: 0 0 8px rgba(167,139,250,.4); }
        [data-theme="dark"] .home-work-card[data-status="paused"] .btn-main { background: var(--st-ok-soft); color: var(--st-ok); }
        [data-theme="dark"] .home-work-card[data-status="paused"] .btn-main:hover { background: var(--st-ok); color: #10131c; }
        [data-theme="dark"] .home-work-card[data-status="error"] .status-text { color: var(--st-err); }
        [data-theme="dark"] .home-work-card[data-status="error"] .status-tag { background: var(--st-err-soft); color: var(--st-err); }
        [data-theme="dark"] .home-work-card[data-status="error"] .status-line,
        [data-theme="dark"] .home-work-card[data-status="error"] .progress-inner { background: linear-gradient(90deg, var(--st-err), #ff9d9d); box-shadow: 0 0 8px rgba(255,107,129,.4); }
        [data-theme="dark"] .home-work-card[data-status="error"] .btn-main { background: var(--st-run-soft); color: var(--st-run); }
        [data-theme="dark"] .home-work-card[data-status="error"] .btn-main:hover { background: var(--st-run); color: #10131c; }
        [data-theme="dark"] .home-work-card[data-status="done"] .status-text { color: var(--st-ok); }
        [data-theme="dark"] .home-work-card[data-status="done"] .status-tag { background: var(--st-ok-soft); color: var(--st-ok); }
        [data-theme="dark"] .home-work-card[data-status="done"] .status-line,
        [data-theme="dark"] .home-work-card[data-status="done"] .progress-inner { background: linear-gradient(90deg, var(--st-ok), #7fffd4); }
        [data-theme="dark"] .card-warning-badge { background: var(--st-err); box-shadow: 0 0 8px rgba(255,107,129,.5); }
        [data-theme="dark"] .btn-main { background: var(--st-run-soft); color: var(--st-run); }
        [data-theme="dark"] .btn-main:hover { background: rgba(255,157,92,.26); }
        [data-theme="dark"] .btn-del { background: var(--st-err-soft); color: var(--st-err); }
        [data-theme="dark"] .btn-del:hover { background: rgba(255,107,129,.26); }
        [data-theme="dark"] .btn-view { background: var(--brand-soft); color: var(--brand); }
        [data-theme="dark"] .btn-view:hover { background: rgba(79,140,255,.26); }
        /* ===== 弹窗（fancy alert / create modal） ===== */
        [data-theme="dark"] .fancy-mask { background: rgba(3,5,12,.68); }
        [data-theme="dark"] .fancy-box {
            background: linear-gradient(180deg, #171b28 0%, #10131c 100%);
            box-shadow: 0 30px 70px rgba(0,0,0,.55), 0 0 0 1px rgba(79,140,255,.18) inset;
            color: var(--text);
        }
        [data-theme="dark"] .fancy-title { color: var(--text); }
        [data-theme="dark"] .fancy-msg { color: var(--text-sub); }
        [data-theme="dark"] .fancy-btn { box-shadow: 0 8px 20px rgba(79,140,255,.4), 0 0 0 1px rgba(255,255,255,.08) inset; }
        [data-theme="dark"] .home-modal-close { color: var(--muted); }
        [data-theme="dark"] .home-modal-close:hover { background: var(--card-2); color: var(--text); }

        /* ===== writer-shell 外层容器/工具条（阅读区自身 4 主题不在此列） ===== */
        [data-theme="dark"] .writer-shell { background: var(--card); border-color: var(--border); box-shadow: var(--shadow-md); color: var(--text); }
        [data-theme="dark"] .writer-topbar { background: linear-gradient(180deg, #171b28 0%, #10131c 100%); border-bottom-color: var(--border); }
        [data-theme="dark"] .writer-tb-btn { color: var(--text-sub); }
        [data-theme="dark"] .writer-tb-btn:hover { background: var(--card-2); color: var(--text); }
        [data-theme="dark"] .writer-publish-btn { background: var(--card-2); border-color: var(--border); color: var(--text-sub); }
        [data-theme="dark"] .writer-publish-btn:hover { border-color: var(--st-err); }
        [data-theme="dark"] .writer-gen-panel { background: var(--card); border-top-color: var(--border); }
        [data-theme="dark"] .wgp-live { background: linear-gradient(135deg, var(--card-2), var(--card)); border-color: rgba(255,157,92,.3); }
        [data-theme="dark"] .writer-sidebar-left { background: #0d1019; border-right-color: var(--border); }
        [data-theme="dark"] .writer-sl-search input { background: var(--input-bg); border-color: var(--border); color: var(--text); }
        [data-theme="dark"] .writer-sl-tabs { background: var(--card-2); border-bottom-color: var(--border); }
        [data-theme="dark"] .writer-sl-tab { color: var(--text-sub); }
        [data-theme="dark"] .writer-sl-tab.active { color: var(--brand); border-bottom-color: var(--brand); }
        [data-theme="dark"] .writer-sl-filter { border-bottom-color: var(--border); }
        [data-theme="dark"] .writer-sl-filter select { background: var(--input-bg); border-color: var(--border); color: var(--text); }
        [data-theme="dark"] .writer-sl-filter .sort-btn { color: var(--muted); }
        [data-theme="dark"] .writer-sl-filter .sort-btn:hover { background: var(--card-2); color: var(--text); }
        [data-theme="dark"] .writer-sl-list .chapter-item.active { background: var(--brand-soft); border-left-color: var(--brand); }
        [data-theme="dark"] .writer-sl-list .chapter-item:hover { background: var(--card-2); }
        [data-theme="dark"] .writer-sl-list .chapter-item .chapter-name { color: var(--text); }
        [data-theme="dark"] .writer-sl-list .chapter-item .chapter-words { color: var(--muted); }
        [data-theme="dark"] .writer-sl-footer { background: var(--card-2); border-top-color: var(--border); }
        [data-theme="dark"] .writer-sidebar-right { background: #0d1019; border-left-color: var(--border); }
        [data-theme="dark"] .writer-sr-item { color: var(--muted); }
        [data-theme="dark"] .writer-sr-item:hover { background: var(--card-2); color: var(--text); }
        [data-theme="dark"] .writer-sr-item.active { background: var(--brand-soft); border-color: var(--brand); color: var(--brand); }
        [data-theme="dark"] .writer-sr-divider { background: var(--border); }
        [data-theme="dark"] .writer-geninfo-panel { background: var(--card); border-left-color: var(--border); }
        [data-theme="dark"] .writer-geninfo-head { background: linear-gradient(180deg, var(--card-2) 0%, var(--card) 100%); border-bottom-color: var(--border); }
        [data-theme="dark"] .writer-geninfo-title, [data-theme="dark"] .writer-geninfo-cell-value, [data-theme="dark"] .writer-geninfo-subtitle { color: var(--text); }
        [data-theme="dark"] .writer-geninfo-close { background: var(--card); border-color: var(--border); color: var(--muted); }
        [data-theme="dark"] .writer-geninfo-close:hover { background: var(--card-2); color: var(--text); }
        [data-theme="dark"] .writer-geninfo-label, [data-theme="dark"] .writer-geninfo-num, [data-theme="dark"] .writer-geninfo-cell-label { color: var(--text-sub); }
        [data-theme="dark"] .writer-geninfo-progress { background: #1b2130; }
        [data-theme="dark"] .writer-geninfo-divider { background: var(--border); }
        [data-theme="dark"] .writer-geninfo-cell { background: var(--card-2); border-color: var(--border); }
        [data-theme="dark"] .writer-geninfo-provider-box { background: var(--card-2); border-color: var(--border); }
        [data-theme="dark"] .writer-pop-panel { background: var(--card); border-color: var(--border); box-shadow: var(--shadow-md); }
        [data-theme="dark"] .writer-pop-head { background: linear-gradient(180deg, var(--card-2) 0%, var(--card) 100%); border-bottom-color: var(--border); }
        [data-theme="dark"] .writer-pop-title, [data-theme="dark"] .writer-pop-value { color: var(--text); }
        [data-theme="dark"] .writer-pop-label { color: var(--text-sub); }
        [data-theme="dark"] .writer-pop-controls select, [data-theme="dark"] .writer-pop-btn { background: var(--input-bg); border-color: var(--border); color: var(--text-sub); }
        [data-theme="dark"] .writer-pop-btn:hover { background: var(--card-2); border-color: var(--brand); }
        [data-theme="dark"] .writer-bg-item { border-color: var(--border); background: var(--card-2); }
        [data-theme="dark"] .writer-bg-item:hover { border-color: var(--brand); }
        [data-theme="dark"] .writer-bg-item.active { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(79,140,255,.24); }
        [data-theme="dark"] .writer-bg-item span { color: var(--text-sub); }
        [data-theme="dark"] .writer-search-row input { background: var(--input-bg); border-color: var(--border); color: var(--text); }
        [data-theme="dark"] .writer-content-panel .outline-box,
        [data-theme="dark"] .writer-content-panel .setting-bible-box { color: var(--text-sub); }
        [data-theme="dark"] .writer-modal-mask { background: rgba(4,6,14,.6); }
        [data-theme="dark"] .writer-modal { background: var(--card); border-color: var(--border); box-shadow: var(--shadow-md); color: var(--text); }
        [data-theme="dark"] .writer-modal-title { color: var(--text); }
        [data-theme="dark"] .writer-modal-desc { color: var(--text-sub); }
        [data-theme="dark"] .writer-modal-checkbox { color: var(--text-sub); }
        [data-theme="dark"] .writer-modal-footer { background: var(--card-2); border-top-color: var(--border); }
        [data-theme="dark"] .writer-modal-btn { background: var(--card); border-color: var(--border); color: var(--text-sub); }
        [data-theme="dark"] .writer-modal-btn:hover { background: var(--card-2); }
        [data-theme="dark"] .writer-edit-action-btn.save { background: linear-gradient(135deg, var(--st-ok), #10b981); }
        [data-theme="dark"] .writer-edit-action-btn.export { background: linear-gradient(135deg, var(--brand), var(--brand-dark)); }
        [data-theme="dark"] .writer-edit-action-btn.editmode { background: linear-gradient(135deg, var(--accent), #8b5cf6); }
        [data-theme="dark"] .writer-sidebar-left::-webkit-scrollbar-thumb,
        [data-theme="dark"] .writer-sl-list::-webkit-scrollbar-thumb,
        [data-theme="dark"] .writer-center-scroll::-webkit-scrollbar-thumb { background: var(--scroll-thumb); }

        /* 数据展示（字数/成本/进度百分比）· 等宽数字字体，强化"数据流"科技感 */
        [data-theme="dark"] .info-num, [data-theme="dark"] .writer-geninfo-num, [data-theme="dark"] .writer-geninfo-cell-value,
        [data-theme="dark"] .usage-table td.cost, [data-theme="dark"] .card-title + .info-list .info-num {
            font-family: 'Consolas', 'SF Mono', 'Cascadia Code', monospace;
            font-variant-numeric: tabular-nums;
        }
        /* 主题切换按钮（浅色基线样式，暗色覆盖已在上方定义） */
        .theme-toggle-btn {
            width: 36px; height: 36px; border-radius: var(--r-btn, 8px);
            background: #faf8f0; color: var(--text-sub, #4a5159);
            border: none; cursor: pointer; font-size: 16px;
            display: flex; align-items: center; justify-content: center;
            transition: background .2s ease, color .2s ease, transform .2s ease;
        }
        .theme-toggle-btn:hover { background: var(--brand-soft, #dbeafe); color: var(--brand, #2563eb); transform: translateY(-1px); }

        /* 主题切换过渡：核心容器加平滑过渡，避免切换时颜色跳变 */
        body, .navbar, .card, .home-work-card, .home-banner-card, .home-invite-card,
        .home-action-card, .writer-shell, .writer-topbar, .writer-sidebar-left,
        .writer-sidebar-right, .fancy-box, .modal-content {
            transition: background-color .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease;
        }

        /* ========== 大纲编辑器样式 ========== */
        .writer-outline-editor {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            display: flex;
            flex-direction: column;
            background: var(--bg);
            z-index: 10;
        }

        .writer-outline-editor-bar {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 20px;
            background: var(--card);
            border-bottom: 1px solid var(--border);
            flex-shrink: 0;
        }

        #writerOutlineEditorBody {
            flex: 1;
            overflow-y: auto;
            padding: 20px;
            background: var(--bg);
        }

        /* 确保编辑器内的大纲内容正常显示 */
        #writerOutlineEditorBody .inner-tabs {
            display: flex;
            gap: 8px;
            margin-bottom: 16px;
            border-bottom: 1px solid var(--border);
            padding-bottom: 8px;
        }

        #writerOutlineEditorBody .inner-tab {
            padding: 8px 16px;
            cursor: pointer;
            border-radius: 6px 6px 0 0;
            background: transparent;
            color: var(--text-sub);
            transition: all 0.2s ease;
        }

        #writerOutlineEditorBody .inner-tab:hover {
            background: var(--card-2);
            color: var(--text);
        }

        #writerOutlineEditorBody .inner-tab.active {
            background: var(--brand-soft);
            color: var(--brand);
            font-weight: 600;
        }

        #writerOutlineEditorBody .inner-tab-content {
            background: var(--card);
            border-radius: 8px;
            padding: 20px;
            margin-bottom: 16px;
        }

        /* 暗色主题适配 */
        [data-theme="dark"] .writer-outline-editor {
            background: var(--bg);
        }

        [data-theme="dark"] .writer-outline-editor-bar {
            background: var(--card);
            border-bottom-color: var(--border);
        }

        [data-theme="dark"] #writerOutlineEditorBody {
            background: var(--bg);
        }

        [data-theme="dark"] #writerOutlineEditorBody .inner-tab-content {
            background: var(--card);
        }

        /* ========== 工具面板样式优化 ========== */
        /* 工具面板空状态 */
        .writer-tool-empty {
            padding: 48px 24px;
            text-align: center;
            color: var(--text-sub);
        }
        .writer-tool-empty svg {
            width: 48px;
            height: 48px;
            margin: 0 auto 16px;
            opacity: 0.3;
        }
        .writer-tool-empty p {
            font-size: 13px;
            line-height: 1.6;
            margin: 0;
        }

        /* 工具面板区块 */
        .writer-tool-section {
            margin-bottom: 24px;
        }
        .writer-tool-section:last-child {
            margin-bottom: 0;
        }
        .writer-tool-section-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 0 12px 0;
            border-bottom: 1px solid var(--border);
            margin-bottom: 16px;
        }
        .writer-tool-section-title {
            font-size: 14px;
            font-weight: 600;
            color: var(--text);
            margin: 0;
        }
        .writer-tool-section-body {
            padding: 0;
        }

        /* 工具面板摘要卡片 */
        .writer-tool-summary {
            background: var(--card-2);
            border: 1px solid var(--border);
            border-radius: 8px;
            padding: 16px;
            margin-bottom: 16px;
            transition: all 0.2s ease;
        }
        .writer-tool-summary:hover {
            border-color: var(--brand);
            box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
        }
        .writer-tool-summary-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            margin-bottom: 12px;
        }
        .writer-tool-summary-title {
            font-size: 14px;
            font-weight: 600;
            color: var(--text);
            margin: 0 0 4px 0;
        }
        .writer-tool-summary-subtitle {
            font-size: 12px;
            color: var(--text-sub);
            margin: 0;
        }
        .writer-tool-summary-body {
            font-size: 13px;
            line-height: 1.6;
            color: var(--text-body);
        }
        .writer-tool-summary-body p {
            margin: 0 0 8px 0;
        }
        .writer-tool-summary-body p:last-child {
            margin-bottom: 0;
        }

        /* 角色卡片列表 - 改为2列网格布局 */
        .writer-tool-character-list {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 16px;
        }

        /* 角色卡片 */
        .writer-tool-character-card {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 10px;
            padding: 16px;
            transition: all 0.2s ease;
            display: flex;
            flex-direction: column;
        }
        .writer-tool-character-card:hover {
            border-color: var(--brand);
            box-shadow: 0 4px 12px rgba(37, 99, 235, 0.12);
            transform: translateY(-2px);
        }

        /* 角色卡片头部 */
        .writer-tool-character-header {
            display: flex;
            align-items: flex-start;
            gap: 12px;
            margin-bottom: 14px;
        }

        /* 角色头像 */
        .writer-tool-character-avatar {
            width: 48px;
            height: 48px;
            border-radius: 10px;
            background: var(--brand-soft);
            color: var(--brand);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            font-weight: 600;
            flex-shrink: 0;
        }

        /* 角色基本信息 */
        .writer-tool-character-info {
            flex: 1;
            min-width: 0;
        }
        .writer-tool-character-name {
            font-size: 15px;
            font-weight: 600;
            color: var(--text);
            margin: 0 0 4px 0;
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .writer-tool-character-role {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 11px;
            font-weight: 600;
            background: var(--brand-soft);
            color: var(--brand);
        }
        .writer-tool-character-role.villain {
            background: #fee2e2;
            color: #dc2626;
        }
        .writer-tool-character-role.supporting {
            background: #e0f2fe;
            color: #0284c7;
        }

        /* 角色属性标签 */
        .writer-tool-character-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            margin-bottom: 12px;
        }
        .writer-tool-character-tag {
            padding: 3px 8px;
            border-radius: 4px;
            font-size: 11px;
            background: var(--card-2);
            color: var(--text-sub);
            border: 1px solid var(--border);
        }

        /* 角色描述 */
        .writer-tool-character-desc {
            font-size: 12px;
            line-height: 1.6;
            color: var(--text-body);
            margin-bottom: 12px;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        /* 角色目标 */
        .writer-tool-character-goal {
            padding: 10px;
            border-radius: 6px;
            background: var(--card-2);
            border-left: 3px solid var(--brand);
        }
        .writer-tool-character-goal-label {
            font-size: 11px;
            font-weight: 600;
            color: var(--text-sub);
            margin-bottom: 4px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .writer-tool-character-goal-text {
            font-size: 12px;
            line-height: 1.5;
            color: var(--text-body);
            margin: 0;
        }

        /* 设定圣经展示 */
        .writer-tool-setting-box {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 10px;
            padding: 20px;
            max-height: calc(100vh - 300px);
            overflow-y: auto;
        }
        .writer-tool-setting-box::-webkit-scrollbar {
            width: 6px;
        }
        .writer-tool-setting-box::-webkit-scrollbar-track {
            background: var(--card-2);
            border-radius: 3px;
        }
        .writer-tool-setting-box::-webkit-scrollbar-thumb {
            background: var(--border);
            border-radius: 3px;
        }
        .writer-tool-setting-box::-webkit-scrollbar-thumb:hover {
            background: var(--text-sub);
        }

        .writer-tool-setting-section {
            margin-bottom: 24px;
        }
        .writer-tool-setting-section:last-child {
            margin-bottom: 0;
        }
        .writer-tool-setting-section h3 {
            font-size: 15px;
            font-weight: 600;
            color: var(--text);
            margin: 0 0 12px 0;
            padding-bottom: 8px;
            border-bottom: 2px solid var(--brand);
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .writer-tool-setting-section h3::before {
            content: '';
            width: 4px;
            height: 16px;
            background: var(--brand);
            border-radius: 2px;
        }
        .writer-tool-setting-section h4 {
            font-size: 14px;
            font-weight: 600;
            color: var(--text);
            margin: 16px 0 8px 0;
        }
        .writer-tool-setting-section p {
            font-size: 13px;
            line-height: 1.7;
            color: var(--text-body);
            margin: 0 0 12px 0;
        }
        .writer-tool-setting-section ul,
        .writer-tool-setting-section ol {
            font-size: 13px;
            line-height: 1.7;
            color: var(--text-body);
            margin: 0 0 12px 0;
            padding-left: 24px;
        }
        .writer-tool-setting-section li {
            margin-bottom: 6px;
        }
        .writer-tool-setting-section code {
            padding: 2px 6px;
            border-radius: 3px;
            background: var(--card-2);
            color: var(--brand);
            font-size: 12px;
            font-family: 'SF Mono', Monaco, Consolas, monospace;
        }

        /* 编辑大纲按钮优化 */
        .writer-edit-outline-btn {
            padding: 8px 16px;
            border-radius: 6px;
            font-size: 13px;
            font-weight: 500;
            background: var(--brand);
            color: #ffffff;
            border: none;
            cursor: pointer;
            transition: all 0.2s ease;
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }
        .writer-edit-outline-btn:hover {
            background: var(--brand-hover);
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
        }
        .writer-edit-outline-btn:active {
            transform: translateY(0);
        }
        .writer-edit-outline-btn svg {
            width: 14px;
            height: 14px;
        }

        /* 暗色主题适配 */
        [data-theme="dark"] .writer-tool-character-avatar {
            background: rgba(37, 99, 235, 0.15);
        }
        [data-theme="dark"] .writer-tool-character-role {
            background: rgba(37, 99, 235, 0.15);
        }
        [data-theme="dark"] .writer-tool-character-role.villain {
            background: rgba(220, 38, 38, 0.15);
            color: #fca5a5;
        }
        [data-theme="dark"] .writer-tool-character-role.supporting {
            background: rgba(2, 132, 199, 0.15);
            color: #7dd3fc;
        }
        [data-theme="dark"] .writer-tool-character-goal {
            background: rgba(37, 99, 235, 0.08);
        }
        [data-theme="dark"] .writer-tool-setting-box::-webkit-scrollbar-track {
            background: rgba(255, 255, 255, 0.05);
        }
        [data-theme="dark"] .writer-tool-setting-box::-webkit-scrollbar-thumb {
            background: rgba(255, 255, 255, 0.15);
        }
        [data-theme="dark"] .writer-tool-setting-box::-webkit-scrollbar-thumb:hover {
            background: rgba(255, 255, 255, 0.25);
        }

        /* 角色改名编辑器 */
        .writer-character-name-editor {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 6px;
            padding: 8px 0 0;
            background: transparent;
            border: 0;
            border-radius: 0;
            animation: none;
        }
        
        @keyframes slideDown {
            from {
                opacity: 0;
                transform: translateY(-8px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .writer-tool-character-edit-icon {
            display: none;
        }
        .writer-character-name-editor select,
        .writer-character-name-editor input[type="text"] {
            flex: 1 1 150px;
            min-width: 0;
            height: 30px;
            padding: 0 9px;
            border: 1px solid var(--border);
            border-radius: 6px;
            background: var(--input-bg);
            color: var(--text);
            font-size: 12px;
            transition: all 0.2s ease;
        }
        .writer-character-name-editor > select,
        .writer-character-name-editor > input[type="text"] {
            display: inline-flex;
        }
        .writer-character-name-actions {
            display: inline-flex;
            gap: 6px;
            margin-top: 0;
            margin-left: auto;
        }
        .writer-character-name-editor select:focus,
        .writer-character-name-editor input[type="text"]:focus {
            outline: none;
            border-color: var(--brand);
            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
        }
        .writer-character-name-editor button {
            padding: 6px 12px;
            border-radius: 6px;
            font-size: 12px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.2s ease;
            border: none;
        }
        .writer-character-name-editor button:first-of-type {
            background: var(--brand);
            color: #ffffff;
        }
        .writer-character-name-editor button:first-of-type:hover {
            background: var(--brand-hover);
            transform: translateY(-1px);
            box-shadow: 0 2px 8px rgba(37, 99, 235, 0.2);
        }
        .writer-character-name-editor button:last-of-type {
            background: var(--card-2);
            color: var(--text);
            border: 1px solid var(--border);
        }
        .writer-character-name-editor button:last-of-type:hover {
            background: var(--card);
            border-color: var(--brand);
        }
        .writer-character-name-editor button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            transform: none !important;
        }
        .writer-character-save-name,
        .writer-character-generate-name {
            height: 30px;
            padding: 0 11px;
            border-radius: 6px;
            font-size: 11px;
            white-space: nowrap;
        }
        .writer-character-save-name {
            background: var(--brand) !important;
            color: #fff !important;
            border: 1px solid var(--brand) !important;
        }
        .writer-character-generate-name {
            background: transparent !important;
            color: var(--text-sub) !important;
            border: 1px solid var(--border) !important;
        }
        .writer-character-save-name:hover,
        .writer-character-generate-name:hover {
            transform: translateY(-1px);
            border-color: var(--brand) !important;
        }

        /* 响应式优化 - 移动端单列显示 */
        @media (max-width: 768px) {
            .writer-tool-character-list {
                grid-template-columns: 1fr;
            }
            .writer-character-name-actions {
                width: 100%;
                margin-left: 0;
            }
            .writer-character-save-name,
            .writer-character-generate-name {
                flex: 1;
            }
        }

        /* 大纲编辑器人物区域：轻量化，避免灰色块与正文背景冲突 */
        #writerOutlineEditorBody .outline-editor-character {
            margin: 0 0 14px;
            padding: 16px;
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 8px;
            box-shadow: 0 2px 8px rgba(15, 23, 42, .04);
        }
        #writerOutlineEditorBody .outline-editor-character-head {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 14px;
            padding-bottom: 12px;
            border-bottom: 1px solid var(--border-soft);
        }
        #writerOutlineEditorBody .outline-editor-avatar {
            display: grid;
            place-items: center;
            width: 36px;
            height: 36px;
            flex: 0 0 36px;
            border-radius: 8px;
            background: var(--brand-soft);
            color: var(--brand-dark);
            font-size: 16px;
            font-weight: 700;
        }
        #writerOutlineEditorBody .outline-editor-character-head strong {
            display: block;
            color: var(--text);
            font-size: 14px;
            line-height: 1.3;
        }
        #writerOutlineEditorBody .outline-editor-character-head small {
            display: block;
            margin-top: 2px;
            color: var(--muted);
            font-size: 11px;
        }
        #writerOutlineEditorBody .outline-editor-name-row {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
            margin-bottom: 12px;
        }
        #writerOutlineEditorBody .outline-editor-name-row select,
        #writerOutlineEditorBody .outline-editor-name-row input {
            min-width: 150px;
            height: 34px;
            padding: 0 10px;
            border: 1px solid var(--border);
            border-radius: 6px;
            background: var(--input-bg);
            color: var(--text);
            font-size: 13px;
            box-sizing: border-box;
        }
        #writerOutlineEditorBody .outline-editor-name-row input {
            display: none;
        }
        #writerOutlineEditorBody .outline-editor-name-row select:focus,
        #writerOutlineEditorBody .outline-editor-name-row input:focus,
        #writerOutlineEditorBody .outline-editor-fields input:focus,
        #writerOutlineEditorBody .outline-editor-fields textarea:focus {
            outline: none;
            border-color: var(--brand);
            box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent);
        }
        #writerOutlineEditorBody .outline-editor-name-row button {
            height: 34px;
            padding: 0 12px;
            border-radius: 6px;
            font-size: 12px;
            font-weight: 600;
            cursor: pointer;
        }
        #writerOutlineEditorBody .outline-editor-save-name {
            border: 1px solid var(--brand);
            background: var(--brand);
            color: #fff;
        }
        #writerOutlineEditorBody .outline-editor-generate-name {
            border: 1px solid var(--border);
            background: var(--card-2);
            color: var(--text-sub);
        }
        #writerOutlineEditorBody .outline-editor-name-row button:hover {
            filter: brightness(.97);
            transform: translateY(-1px);
        }
        #writerOutlineEditorBody .outline-editor-fields {
            display: grid;
            grid-template-columns: minmax(140px, .45fr) minmax(240px, 1fr);
            gap: 12px;
        }
        #writerOutlineEditorBody .outline-editor-fields label {
            display: flex;
            flex-direction: column;
            gap: 6px;
            color: var(--text-sub);
            font-size: 11px;
            font-weight: 600;
        }
        #writerOutlineEditorBody .outline-editor-fields input,
        #writerOutlineEditorBody .outline-editor-fields textarea {
            width: 100%;
            min-height: 34px;
            padding: 8px 10px;
            border: 1px solid var(--border);
            border-radius: 6px;
            background: var(--input-bg);
            color: var(--text);
            font: inherit;
            font-size: 13px;
            line-height: 1.6;
            resize: vertical;
            box-sizing: border-box;
        }
        #writerOutlineEditorBody .outline-editor-character .edit-actions {
            margin-top: 10px;
            text-align: right;
        }
        #writerOutlineEditorBody .outline-editor-character .edit-actions .btn-mini {
            color: var(--text-sub);
            background: transparent;
            border: 1px solid var(--border);
        }
        [data-theme="dark"] #writerOutlineEditorBody .outline-editor-character {
            box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
        }
        [data-theme="dark"] #writerOutlineEditorBody .outline-editor-avatar {
            color: var(--brand-hover);
        }
        @media (max-width: 700px) {
            #writerOutlineEditorBody .outline-editor-fields {
                grid-template-columns: 1fr;
            }
            #writerOutlineEditorBody .outline-editor-name-row select,
            #writerOutlineEditorBody .outline-editor-name-row input {
                flex: 1 1 100%;
                min-width: 0;
            }
        }
