*{box-sizing:border-box;margin:0;padding:0}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #eef2ff;--success: #22c55e;--danger: #ef4444;--bg: #f1f5f9;--surface: #ffffff;--border: #e2e8f0;--text: #1e293b;--muted: #64748b;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 12px rgba(0,0,0,.1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Noto Sans SC,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6}a{text-decoration:none;color:inherit}.app-header{height:56px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.header-left{display:flex;align-items:center;gap:28px}.logo{font-size:15px;font-weight:700;color:var(--primary);white-space:nowrap}nav{display:flex;gap:2px}nav a{padding:5px 12px;border-radius:var(--radius);color:var(--muted);font-size:13px;font-weight:500;transition:all .15s}nav a:hover{background:var(--primary-light);color:var(--primary)}nav a.router-link-active{background:var(--primary-light);color:var(--primary)}.header-right{display:flex;align-items:center;gap:8px}.api-key-input{width:220px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;outline:none;transition:border-color .15s}.api-key-input:focus{border-color:var(--primary)}.model-select{padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--surface);cursor:pointer;outline:none}.writer-page{display:flex;height:calc(100vh - 56px);overflow:hidden}.step-sidebar{width:185px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;padding:10px 6px}.step-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius);cursor:pointer;margin-bottom:1px;transition:all .15s;color:var(--muted);-webkit-user-select:none;user-select:none}.step-item:hover:not(.disabled){background:#f8fafc;color:var(--text)}.step-item.active{background:var(--primary-light);color:var(--primary);font-weight:600}.step-item.completed{color:var(--text)}.step-item.disabled{opacity:.4;cursor:not-allowed}.step-num{width:22px;height:22px;border-radius:50%;background:var(--border);color:var(--muted);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.step-item.active .step-num{background:var(--primary);color:#fff}.step-item.completed .step-num{background:var(--success);color:#fff}.step-label{font-size:13.5px;line-height:1.3}.main-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:22px 24px;gap:14px;min-width:0}.step-header{padding-bottom:12px;border-bottom:1px solid var(--border)}.step-header h2{font-size:19px;font-weight:700;margin-bottom:3px}.step-header p{color:var(--muted);font-size:13px}.input-form{background:var(--surface);border-radius:12px;padding:22px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-row{display:flex;flex-direction:column;gap:5px}.form-row.span-2{grid-column:span 2}.form-row label{font-size:13.5px;font-weight:500;color:var(--text)}.form-row input,.form-row select{padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius);font-size:13.5px;font-family:inherit;outline:none;background:var(--surface);transition:border-color .15s}.form-row input:focus,.form-row select:focus{border-color:var(--primary)}.input-lg{font-size:15px;padding:10px 12px}.ai-step-area{display:flex;flex-direction:column;gap:12px;flex:1}.result-section,.prompt-section{background:var(--surface);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.section-label{padding:9px 14px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:8px}.prompt-label{cursor:pointer}.prompt-label:hover{background:#f1f5f9}.label-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.badge-done{background:#dcfce7;color:#15803d;padding:1px 8px;border-radius:99px;font-size:11px;font-weight:600}.result-textarea{width:100%;padding:14px 16px;border:none;outline:none;font-size:13.5px;line-height:1.75;resize:vertical;font-family:inherit;min-height:260px;color:var(--text)}.prompt-textarea{width:100%;padding:12px 14px;border:none;outline:none;font-size:13.5px;line-height:1.65;resize:vertical;font-family:Monaco,Menlo,Consolas,monospace;min-height:180px;color:#374151;background:#fafafa}.loading-state{display:flex;align-items:center;gap:12px;padding:48px;color:var(--muted);justify-content:center;font-size:14px}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.title-select-row{background:var(--surface);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:7px}.title-select-row label{font-size:13.5px;font-weight:600}.title-select-row input{padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius);font-size:13.5px;outline:none;font-family:inherit}.title-select-row input:focus{border-color:var(--primary)}.action-bar{display:flex;gap:8px;align-items:center;padding:14px 0 4px;border-top:1px solid var(--border);flex-wrap:wrap}.ml-auto{margin-left:auto}.btn-primary{padding:8px 18px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:13.5px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.btn-lg{padding:10px 28px;font-size:15px}.btn-secondary{padding:8px 14px;background:#f1f5f9;color:var(--text);border:none;border-radius:var(--radius);font-size:13.5px;cursor:pointer;font-family:inherit}.btn-secondary:hover{background:var(--border)}.btn-outline{padding:8px 14px;background:transparent;color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius);font-size:13.5px;cursor:pointer;font-family:inherit;transition:all .15s}.btn-outline:hover{background:var(--primary-light)}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.btn-text{background:none;border:none;color:var(--primary);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;font-family:inherit}.btn-text:hover{background:var(--primary-light)}.btn-danger{padding:6px 12px;background:transparent;color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius);font-size:13px;cursor:pointer;font-family:inherit}.btn-danger:hover{background:#fef2f2}.error-bar{background:#fef2f2;color:var(--danger);padding:10px 14px;border-radius:var(--radius);font-size:13px;border:1px solid #fee2e2}.preview-area{display:flex;flex-direction:column;gap:14px}.preview-section{background:var(--surface);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.preview-section-header{padding:10px 14px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:13px;font-weight:600}.preview-content{padding:14px 16px;font-size:13.5px;line-height:1.75;white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto;font-family:inherit}.empty-preview{text-align:center;padding:60px;color:var(--muted);background:var(--surface);border-radius:12px}.drafts-page,.prompts-page{padding:24px;max-width:860px;margin:0 auto}.page-header{margin-bottom:20px}.page-header h2{font-size:21px;font-weight:700;margin-bottom:3px}.page-header p{color:var(--muted);font-size:13px}.draft-list,.prompt-list{display:flex;flex-direction:column;gap:10px}.draft-card{background:var(--surface);border-radius:12px;padding:14px 18px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;transition:box-shadow .15s}.draft-card:hover{box-shadow:var(--shadow-md)}.draft-info h3{font-size:14px;font-weight:600;margin-bottom:3px}.draft-date{font-size:12px;color:var(--muted)}.draft-actions{display:flex;gap:8px}.empty-state{text-align:center;padding:60px 24px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:16px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow)}.prompt-card{background:var(--surface);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.prompt-card-header{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;cursor:pointer;transition:background .15s}.prompt-card-header:hover{background:#f8fafc}.step-badge{display:inline-block;background:var(--primary-light);color:var(--primary);padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:700;margin-right:10px}.prompt-name{font-size:13.5px;font-weight:500}.prompt-editor{padding:16px 18px;border-top:1px solid var(--border)}.prompt-desc{color:var(--muted);font-size:13.5px;margin-bottom:10px}.editor-area{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.editor-area label{font-size:12px;color:var(--muted)}.editor-area textarea{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-family:Monaco,Menlo,monospace;font-size:13.5px;line-height:1.55;resize:vertical;outline:none}.editor-area textarea:focus{border-color:var(--primary)}.editor-actions{display:flex;gap:8px;margin-bottom:10px}.variables-hint{font-size:11.5px;color:var(--muted);background:#f8fafc;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);line-height:1.7}.page-loading{padding:48px;text-align:center;color:var(--muted)}.toast{position:fixed;bottom:24px;right:24px;background:var(--success);color:#fff;padding:10px 20px;border-radius:var(--radius);font-size:13.5px;box-shadow:var(--shadow-md);z-index:9999;animation:fadeIn .2s ease}.preview-content{padding:20px 24px;background:#fafafa;border:1px solid #e5e5e5;border-radius:0 0 8px;line-height:1.8;min-height:120px}.preview-content.prose h1,.preview-content.prose h2,.preview-content.prose h3{margin-top:1.5em;margin-bottom:.8em;color:#222}.preview-content.prose ul,.preview-content.prose ol{padding-left:1.5em}.preview-section{margin-bottom:32px}.preview-section-header{font-size:18px;font-weight:600;color:#333}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
