@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Serif+SC:wght@400;600;700&display=swap";:root{--bg-base: #09090b;--bg-primary: #0f0f12;--bg-secondary: #16161a;--bg-tertiary: #1e1e24;--bg-elevated: #24242c;--bg-hover: #2a2a34;--text-primary: #f0f0f2;--text-secondary: #9d9da8;--text-tertiary: #5c5c6a;--text-inverse: #09090b;--border: #27272f;--border-light: #1e1e26;--border-focus: #c8a45c44;--accent: #c8a45c;--accent-hover: #d4b06a;--accent-dim: #a88a3e;--accent-light: rgba(200, 164, 92, .12);--accent-glow: rgba(200, 164, 92, .25);--success: #34d399;--success-light: rgba(52, 211, 153, .12);--warning: #fbbf24;--warning-light: rgba(251, 191, 36, .12);--danger: #f87171;--danger-light: rgba(248, 113, 113, .12);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(200, 164, 92, .08);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace;--sidebar-width: 260px;--panel-width: 320px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--bg-base: #FAF8F4;--bg-primary: #F5F2EB;--bg-secondary: #F0EDE6;--bg-tertiary: #EBE7DE;--bg-elevated: #FFFFFF;--bg-hover: #E8E4DA;--text-primary: #3D3529;--text-secondary: #7A7264;--text-tertiary: #A69E90;--text-inverse: #FAF8F4;--border: #DDD8CE;--border-light: #E8E4DC;--border-focus: rgba(184, 148, 63, .25);--accent: #B8943F;--accent-hover: #A6832F;--accent-dim: #96742F;--accent-light: rgba(184, 148, 63, .1);--accent-glow: rgba(184, 148, 63, .15);--success: #2BA87A;--success-light: rgba(43, 168, 122, .1);--warning: #D49B1F;--warning-light: rgba(212, 155, 31, .1);--danger: #D45454;--danger-light: rgba(212, 84, 84, .1);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .1);--shadow-glow: 0 0 20px rgba(184, 148, 63, .06)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:var(--font-sans);font-size:14px;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s ease,color .3s ease}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}h1{font-size:24px;font-weight:600;letter-spacing:-.02em}h2{font-size:18px;font-weight:600;letter-spacing:-.01em}h3{font-size:15px;font-weight:600}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-tertiary);color:var(--text-primary)}.btn:hover{background:var(--bg-hover);border-color:var(--text-tertiary)}.btn-primary{background:var(--accent);color:var(--text-inverse);border-color:var(--accent);font-weight:600}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-glow)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#ef4444;border-color:#ef4444}.btn:disabled{opacity:.4;cursor:not-allowed}.theme-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.theme-switch-track{position:relative;width:36px;height:20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;transition:background .2s,border-color .2s}.theme-switch-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--accent);transition:transform .2s ease}.theme-switch.active .theme-switch-thumb{transform:translate(16px)}.theme-switch-label{font-size:12px;color:var(--text-tertiary);white-space:nowrap}.user-menu-trigger{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;transition:all .15s}.user-menu-trigger:hover{background:var(--bg-hover);color:var(--text-primary)}.user-menu-chevron{transition:transform .15s}.user-menu-chevron.open{transform:rotate(180deg)}.user-menu-dropdown{position:absolute;top:100%;right:0;margin-top:6px;min-width:180px;padding:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100}.user-menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:13px;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.user-menu-item:hover{background:var(--bg-hover)}.user-menu-item .theme-switch{margin-left:auto}.user-menu-item-danger{color:var(--danger)}.user-menu-item-danger:hover{background:var(--danger-light)}.user-menu-divider{height:1px;background:var(--border);margin:4px 0}.input{width:100%;padding:9px 13px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);outline:none;transition:all var(--transition-fast)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.input::placeholder{color:var(--text-tertiary)}textarea.input{resize:vertical;min-height:80px}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235c5c6a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.h-full{height:100%}.overflow-auto{overflow:auto}.flex-1{flex:1}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:99px;font-size:11px;font-weight:500;letter-spacing:.01em}.badge-blue{background:#60a5fa1f;color:#93bbfd}.badge-green{background:var(--success-light);color:var(--success)}.badge-yellow{background:var(--warning-light);color:var(--warning)}.badge-red{background:var(--danger-light);color:var(--danger)}.badge-gold{background:var(--accent-light);color:var(--accent)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,250px));gap:20px;justify-content:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);padding:28px;width:100%;max-width:480px;box-shadow:var(--shadow-lg);animation:slideUp .25s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h2{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--text-primary)}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{display:flex;flex-direction:column;gap:16px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.project-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 16px 16px;cursor:pointer;transition:all var(--transition-normal);display:flex;flex-direction:column;aspect-ratio:3 / 4;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--accent-light) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.project-card:hover{border-color:var(--accent-dim);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.project-card:hover:before{opacity:1}.project-card>*{position:relative;z-index:1}.project-card-delete{position:absolute;top:10px;right:10px;z-index:2;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-tertiary);cursor:pointer;opacity:0;transition:all var(--transition-fast)}.project-card:hover .project-card-delete{opacity:1}.project-card-delete:hover{background:var(--danger-light);color:var(--danger)}.create-card{background:transparent;border:2px dashed var(--border);border-radius:var(--radius-lg);padding:20px;cursor:pointer;transition:all var(--transition-normal);display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:3 / 4}.create-card:hover{border-color:var(--accent-dim);background:var(--accent-light)}.header{border-bottom:1px solid var(--border);padding:16px 28px;background:var(--bg-secondary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.logo{font-weight:700;letter-spacing:-.04em;font-size:20px;background:linear-gradient(135deg,var(--accent) 0%,#e8d5a0 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-5{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.form-label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text-secondary)}.form-input{width:100%;padding:8px 12px;font-size:14px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--accent)}.form-textarea{width:100%;padding:8px 12px;font-size:14px;line-height:1.8;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;resize:vertical;font-family:inherit;transition:border-color .15s}.form-textarea:focus{border-color:var(--accent)}.form-group{margin-bottom:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-tertiary)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.3}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base);position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;top:-40%;left:-20%;width:80%;height:80%;background:radial-gradient(ellipse,rgba(200,164,92,.06) 0%,transparent 70%);pointer-events:none}.auth-page:after{content:"";position:absolute;bottom:-30%;right:-10%;width:60%;height:60%;background:radial-gradient(ellipse,rgba(96,165,250,.04) 0%,transparent 70%);pointer-events:none}.auth-card{width:100%;max-width:420px;padding:40px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),var(--shadow-glow);position:relative;z-index:1;animation:slideUp .4s ease}.auth-header{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:32px}.auth-logo{width:48px;height:48px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--accent) 0%,#e8d5a0 100%);display:flex;align-items:center;justify-content:center;margin-bottom:8px;box-shadow:0 4px 20px #c8a45c33}.auth-logo svg{color:var(--text-inverse)}.auth-title{font-size:28px;font-weight:700;letter-spacing:-.04em;background:linear-gradient(135deg,var(--accent) 0%,#e8d5a0 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{color:var(--text-tertiary);font-size:14px;margin-top:4px}.auth-footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:28px}.auth-footer-text{color:var(--text-tertiary);font-size:13px}.auth-link{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none;transition:color var(--transition-fast)}.auth-link:hover{color:var(--accent-hover)}.auth-error{color:var(--danger);font-size:13px;margin-top:-4px;padding:8px 12px;background:var(--danger-light);border-radius:var(--radius-sm)}.auth-submit{width:100%;margin-top:8px;padding:10px 16px;font-size:14px;font-weight:600}.empty-state-text{font-size:16px;margin-bottom:24px}.project-title{font-size:15px;margin-bottom:4px;font-weight:600}.project-author{font-size:12px;margin-bottom:8px}.project-meta{margin-bottom:12px}.project-synopsis{font-size:13px;margin-bottom:12px}.project-date{font-size:12px}.project-card-spacer{flex:1}.badge+.badge{margin-left:4px}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px 0 16px}.pagination-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:13px}.pagination-btn:hover:not(:disabled){border-color:var(--accent-dim);color:var(--text-primary)}.pagination-btn:disabled{opacity:.3;cursor:not-allowed}.pagination-btn.active{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.main-content{flex:1;overflow:auto;padding:28px}.modal-title{margin-bottom:20px;font-weight:600}.modal-actions{display:flex;justify-content:space-between;margin-top:24px}.editor-layout{display:flex;height:100vh;overflow:hidden;background:var(--bg-base)}.chapter-nav{width:var(--sidebar-width);min-width:var(--sidebar-width);border-right:1px solid var(--border);background:var(--bg-secondary);display:flex;flex-direction:column;overflow:hidden}.chapter-nav-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border);position:relative;overflow:visible}.chapter-nav-header h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.chapter-nav-actions{display:flex;align-items:center;gap:4px}.chapter-nav-add{padding:4px}.chapter-nav-add-wrap{position:relative;display:flex}.chapter-nav-add-menu{position:absolute;top:100%;left:auto;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;z-index:100;min-width:140px;padding:4px}.chapter-nav-add-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--text-primary);font-size:13px;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.chapter-nav-add-option:hover{background:var(--bg-hover)}.chapter-nav-manage{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.chapter-nav-manage:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.chapter-nav-manage.active{background:var(--danger);color:var(--text-inverse);opacity:.8}.chapter-nav-list{flex:1;overflow-y:auto;padding:8px}.chapter-nav-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--text-tertiary);font-size:13px}.chapter-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:var(--radius-md);background:transparent;font-size:13px;color:var(--text-secondary);cursor:pointer;text-align:left;transition:all var(--transition-fast);font-family:var(--font-sans)}.chapter-nav-item-wrap{position:relative;display:flex;align-items:center}.chapter-nav-item-wrap .chapter-nav-item{flex:1}.chapter-nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.chapter-nav-item.active{background:var(--accent-light);color:var(--accent)}.chapter-nav-item:disabled{opacity:.4;cursor:not-allowed}.chapter-nav-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-nav-words{font-size:11px;color:var(--text-tertiary);flex-shrink:0}.chapter-nav-check{width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;background:transparent;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.chapter-nav-check.selectable{border-color:var(--text-tertiary)}.chapter-nav-check.selected{background:var(--danger);border-color:var(--danger)}.chapter-nav-check-dot{display:block;width:8px;height:5px;border-left:2px solid var(--text-inverse);border-bottom:2px solid var(--text-inverse);transform:rotate(-45deg) translateY(-.5px)}.chapter-nav-item.deleting{opacity:.4;text-decoration:line-through;text-decoration-color:var(--text-tertiary)}.chapter-nav-manage-bar{display:flex;flex-direction:column;gap:6px;padding:12px;border-top:1px solid var(--border);background:var(--bg-secondary)}.chapter-nav-manage-row{display:flex;align-items:center;gap:8px}.chapter-nav-delete-btn{flex:1}.chapter-nav-select-all{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.chapter-nav-select-all .chapter-nav-check{width:16px;height:16px}.chapter-nav-manage-hint{font-size:11px;color:var(--text-tertiary);text-align:center;line-height:1.4}.batch-extract-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;color:var(--text-secondary)}.batch-extract-loading .text-tertiary{font-size:12px}.batch-extract-empty{text-align:center;padding:40px 0;color:var(--text-tertiary)}.batch-extract-review{display:flex;flex-direction:column;gap:16px}.batch-extract-dot{position:absolute;top:1px;right:1px;width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px #22c55e4d;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 0 2px #22c55e4d}50%{opacity:.8;box-shadow:0 0 0 4px #22c55e1a}}.batch-summary-banner{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin-bottom:8px;border-radius:8px;background:color-mix(in srgb,#22c55e 10%,transparent);border:1px solid color-mix(in srgb,#22c55e 25%,transparent)}.batch-summary-banner-text{display:flex;align-items:center;gap:6px;font-size:12px;color:#22c55e;font-weight:500}.modal-title{display:flex;align-items:center;justify-content:space-between}.chat-editor{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-primary)}.chat-editor-header{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.chat-editor-project{font-size:14px;font-weight:600;color:var(--text-primary)}.chat-editor-chapter{font-size:12px}.editor-tabs{display:flex;gap:2px;padding:0 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.editor-tab{display:flex;align-items:center;gap:5px;padding:8px 16px;font-size:12px;font-weight:500;color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.editor-tab:hover{color:var(--text-secondary)}.editor-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;padding:0 4px;font-size:10px;font-weight:600;color:#fff;background:var(--danger);border-radius:8px;line-height:1}.chapter-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary);font-size:13px}.chapter-empty-state p:last-child{font-size:12px}.message-list{flex:1;overflow-y:auto;padding:24px}.message-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;color:var(--text-tertiary);font-size:14px}.message-empty p{max-width:300px;text-align:center;line-height:1.6}.message{display:flex;gap:10px;margin-bottom:18px;animation:msgFadeIn .3s ease}@keyframes msgFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{width:28px;height:28px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.message.user .message-avatar{background:var(--bg-elevated);color:var(--text-secondary)}.message.assistant .message-avatar{background:var(--accent-light);color:var(--accent)}.message-body{max-width:75%;min-width:0}.message.user .message-body{display:flex;flex-direction:column;align-items:flex-end}.message-content{font-size:14px;line-height:1.7;color:var(--text-primary);padding:8px 14px;border-radius:12px;word-break:break-word}.message.user .message-content{background:var(--accent);color:var(--text-inverse);border-bottom-right-radius:4px;font-size:14px}.message.assistant .message-content{background:var(--bg-elevated);border-bottom-left-radius:4px}.message-content.prose{font-family:var(--font-serif);font-size:15px;line-height:1.85;color:var(--text-primary);background:var(--bg-elevated);border-radius:12px 12px 12px 4px}.message-content.prose p{margin:0 0 8px}.message-content.prose p:last-child{margin-bottom:0}.message-content.prose ul,.message-content.prose ol{margin:4px 0 8px 20px;padding:0}.message-content.prose li{margin-bottom:2px}.message-content.prose strong{font-weight:600}.message-content.prose em{font-style:italic}.message-content.prose h1,.message-content.prose h2,.message-content.prose h3{font-weight:600;margin:12px 0 6px}.message-content.prose h1{font-size:17px}.message-content.prose h2{font-size:16px}.message-content.prose h3{font-size:15px}.message-content.prose code{font-family:var(--font-mono);font-size:13px;background:var(--bg-secondary);padding:1px 4px;border-radius:3px}.message-content.prose pre{background:var(--bg-secondary);border-radius:6px;padding:10px 12px;overflow-x:auto;margin:8px 0}.message-content.prose pre code{background:none;padding:0}.message-content.prose blockquote{border-left:3px solid var(--border);margin:8px 0;padding-left:12px;color:var(--text-secondary)}.message-content.prose table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}.message-content.prose th,.message-content.prose td{border:1px solid var(--border);padding:5px 10px;text-align:left}.message-content.prose th{background:var(--bg-secondary);font-weight:600}.message-content.prose hr{border:none;border-top:1px solid var(--border);margin:10px 0}.message.user .message-content{color:var(--text-inverse);font-size:14px}.message-cursor{display:inline-block;width:2px;height:1.1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink .8s steps(2) infinite;box-shadow:0 0 6px var(--accent-glow)}.thinking-block{margin-bottom:8px;border-left:2px solid var(--border);border-radius:0 6px 6px 0;background:#ffffff05;overflow:hidden}.thinking-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;background:none;border:none;color:var(--text-tertiary);font-size:12px;cursor:pointer;transition:color .15s}.thinking-toggle:hover{color:var(--text-secondary)}.thinking-chevron{margin-left:auto;transition:transform .2s}.thinking-chevron.open{transform:rotate(180deg)}.thinking-content{max-height:0;overflow:hidden;transition:max-height .3s ease}.thinking-content.expanded{max-height:400px;overflow-y:auto}.thinking-text{padding:0 10px 8px;font-size:12px;line-height:1.6;color:var(--text-tertiary);white-space:pre-wrap;word-break:break-word}.msg-delete-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border);font-size:12px}.msg-delete-hint{color:var(--text-secondary)}.msg-delete-actions{display:flex;gap:8px}.msg-selectable{cursor:pointer;transition:background .1s}.msg-selectable:hover{background:var(--bg-hover)}.msg-selected{background:#ef44440f}.msg-checkbox{width:20px;height:20px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:4px;transition:all .15s;color:#fff}.msg-checkbox.checked{background:var(--danger);border-color:var(--danger)}@keyframes blink{50%{opacity:0}}.chapter-content-view{flex:1;display:flex;flex-direction:column;min-height:0}.chapter-content-scroll{flex:1;overflow-y:auto;padding:0 24px 20px}.chapter-content-scroll .chapter-content-body{padding-top:4px}.chapter-content-header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-secondary);padding:20px 24px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.chapter-content-wordcount{font-size:12px;font-weight:400;color:var(--text-tertiary)}.chapter-content-save-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:400;margin-right:8px}.chapter-content-save-status.saved{color:#22c55e}.chapter-content-save-status.editing{color:var(--text-tertiary)}.chapter-content-save-status.saving{color:var(--accent)}.chapter-content-title{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.chapter-title-text{cursor:pointer;border-radius:var(--radius-sm);padding:1px 4px;transition:background var(--transition-fast)}.chapter-title-text:hover{background:var(--bg-tertiary)}.chapter-title-input{background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:1px 6px;font-size:13px;font-weight:600;color:var(--text-primary);outline:none;width:160px}.chapter-edit-actions{display:flex;gap:6px}.chapter-content-body{font-size:14px;line-height:1.8;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.chapter-content-editor{width:100%;min-height:100%;background:transparent;border:none;border-radius:0;padding:0;font-size:14px;line-height:1.8;color:var(--text-primary);resize:none;font-family:inherit;outline:none;white-space:pre-wrap;word-break:break-word}.action-card{margin-top:10px;padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border-light);border-left:3px solid var(--accent);border-radius:10px;max-width:400px}.chapter-confirm-card{margin-top:10px;padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border-light);border-left:3px solid var(--success);border-radius:10px;max-width:560px}.chapter-confirm-header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:10px}.chapter-confirm-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.style-analysis-report{display:flex;flex-direction:column;gap:10px;margin:10px 0 12px;padding:10px;border:1px solid var(--border-light);border-radius:8px;background:color-mix(in srgb,var(--bg-primary) 58%,transparent)}.style-analysis-summary{display:flex;flex-direction:column;align-items:stretch;gap:7px;color:var(--text-secondary);font-size:12px;line-height:1.5}.style-analysis-score-grid{display:flex;flex-wrap:wrap;gap:6px}.style-analysis-summary-text{color:var(--text-secondary)}.style-review-stale-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--warning-light);border-radius:8px;background:color-mix(in srgb,var(--warning-light) 55%,transparent);color:var(--warning);font-size:12px;line-height:1.5}.style-review-stale-notice span{min-width:0}.style-analysis-score{flex-shrink:0;display:inline-flex;align-items:baseline;gap:4px;min-height:22px;padding:2px 8px;border-radius:7px;font-size:11px;font-weight:700;color:var(--text-primary);background:var(--success-light)}.style-analysis-score strong{font-size:12px}.style-analysis-score em{color:currentColor;opacity:.72;font-size:10px;font-style:normal;font-weight:500}.style-analysis-score.unavailable{color:var(--text-tertiary);background:var(--bg-tertiary)}.style-analysis-score.medium{background:var(--warning-light);color:var(--warning)}.style-analysis-score.high,.style-analysis-score.failed{background:var(--danger-light);color:var(--danger)}.style-analysis-issues,.style-analysis-issue-group{display:flex;flex-direction:column;gap:8px}.style-analysis-group-title{color:var(--text-tertiary);font-size:11px;font-weight:700}.style-analysis-issue{padding-top:8px;border-top:1px solid var(--border-light)}.style-analysis-issue-head{display:flex;align-items:center;gap:5px;color:var(--text-primary);font-size:12px;font-weight:600}.style-analysis-issue-head em{margin-left:auto;color:var(--text-tertiary);font-size:11px;font-style:normal;font-weight:500}.style-analysis-issue blockquote{margin:6px 0;padding-left:8px;border-left:2px solid var(--border);color:var(--text-tertiary);font-size:12px;line-height:1.55}.style-analysis-issue p{color:var(--text-secondary);font-size:12px;line-height:1.55}.style-analysis-issue-reason{color:var(--text-tertiary)!important}.style-analysis-foreshadowing{display:inline-flex;width:fit-content;margin-top:5px;padding:2px 6px;border-radius:999px;background:var(--warning-light);color:var(--warning);font-size:11px}.style-analysis-issue-note{margin-top:8px;color:var(--text-tertiary);font-size:11px;line-height:1.5}.style-analysis-issue-actions{display:flex;justify-content:flex-end;margin-top:8px}.style-revision-error{margin-top:6px;color:var(--danger);font-size:12px}.style-revision-preview{display:flex;flex-direction:column;gap:7px;margin-top:8px;padding:9px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-tertiary)}.style-revision-label{color:var(--accent);font-size:11px;font-weight:700}.style-revision-preview p{color:var(--text-primary)}.style-revision-preview span{color:var(--text-tertiary);font-size:11px;line-height:1.5}.style-revision-preview .btn{align-self:flex-end}.style-revision-preview .btn span{color:inherit;font-size:inherit;line-height:inherit}.style-revision-preview .btn svg{color:inherit}[data-theme=light] .style-revision-preview .btn-primary{color:#fff}[data-theme=light] .style-revision-preview .btn-primary span,[data-theme=light] .style-revision-preview .btn-primary svg{color:#fff}[data-theme=light] .style-revision-preview .btn-primary:disabled{color:#ffffffe6}.style-analysis-plan{display:flex;flex-wrap:wrap;gap:5px;padding-top:8px;border-top:1px solid var(--border-light)}.style-analysis-plan span{max-width:100%;padding:3px 7px;border-radius:999px;background:var(--accent-light);color:var(--text-secondary);font-size:11px;line-height:1.4}.style-review-modal{max-width:680px;max-height:min(760px,88vh);overflow:hidden}.style-review-body{max-height:calc(88vh - 110px);overflow-y:auto;padding-right:2px}.style-review-controls{display:flex;flex-direction:column;gap:6px}.style-review-paste{min-height:180px;resize:vertical;line-height:1.65}.style-review-target-preview{max-height:240px;overflow-y:auto;padding:10px 12px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:13px;line-height:1.7;white-space:pre-wrap}.style-review-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-tertiary);font-size:12px}.style-review-running,.style-review-error{display:flex;align-items:center;gap:7px;border-radius:8px;padding:9px 10px;font-size:12px;line-height:1.5}.style-review-running{border:1px solid rgba(59,130,246,.22);background:#3b82f614;color:var(--text-secondary)}.style-review-error{border:1px solid rgba(239,68,68,.24);background:#ef444414;color:var(--danger)}.action-card-header{margin-bottom:8px}.action-card-style-review{display:flex;justify-content:flex-end;margin-top:8px}.action-card-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px}.action-card-fields{display:flex;flex-direction:column;gap:4px}.action-card-field{display:flex;gap:8px;font-size:13px;line-height:1.5}.action-card-label{color:var(--text-tertiary);flex-shrink:0;min-width:40px}.action-card-long{color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.action-card-expand{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:2px 0;text-align:left}.action-card-expand:hover{text-decoration:underline}.action-card-preview{margin-top:6px;padding:8px 10px;background:var(--bg-primary);border-radius:6px;font-size:12px;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.action-card-actions{display:flex;gap:8px;margin-top:10px;justify-content:flex-end}.action-card-status{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--text-tertiary)}.action-card-status-done{color:#10b981}.action-card-status-failed{color:var(--danger)}.action-card-status-rejected{color:var(--text-tertiary);opacity:.6}.action-card-status-executing{color:var(--accent)}.action-card-status-done,.action-card-status-rejected{opacity:.65}.extraction-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;border-left:3px solid var(--accent);padding:14px;margin-top:8px;max-width:420px;animation:extraction-glow 2s ease-in-out 1}@keyframes extraction-glow{0%{box-shadow:0 0 #6366f14d}50%{box-shadow:0 0 12px 2px #6366f133}to{box-shadow:0 0 #6366f100}}.extraction-panel-done{opacity:.6;border-left-color:var(--success)}.extraction-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.extraction-title{font-size:13px;font-weight:600;color:var(--text-primary)}.extraction-toggle-all{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary);cursor:pointer}.extraction-toggle-all input{accent-color:var(--accent)}.extraction-body{display:flex;flex-direction:column;gap:10px}.extraction-empty{font-size:12px;color:var(--text-tertiary);padding:8px 0}.extraction-section-header{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;margin-bottom:4px}.extraction-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .15s}.extraction-item:hover{background:var(--bg-hover)}.extraction-item input[type=checkbox]{margin-top:2px;accent-color:var(--accent);flex-shrink:0}.extraction-item-content{display:flex;flex-direction:column;gap:2px;font-size:12px;min-width:0}.extraction-item-name{font-weight:600;color:var(--text-primary)}.extraction-item-role{font-size:11px;color:var(--text-tertiary)}.extraction-item-change{color:var(--text-secondary)}.extraction-item-desc{color:var(--text-tertiary);font-size:11px;line-height:1.4}.extraction-item-alias{font-size:11px;color:var(--accent)}.extraction-item-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.extraction-item-tag{font-size:10px;padding:1px 5px;border-radius:3px;background:var(--bg-hover);color:var(--text-secondary)}.extraction-item-detail{font-size:11px;color:var(--text-secondary)}.extraction-role-select{font-size:10px;padding:0 2px;border:1px solid var(--border);border-radius:3px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;height:18px;line-height:1}.batch-mode-select{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.batch-mode-option{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:border-color .15s,background .15s}.batch-mode-option:hover{background:var(--bg-hover)}.batch-mode-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.batch-mode-option input[type=radio]{margin-top:3px;accent-color:var(--accent);flex-shrink:0}.batch-mode-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary)}.batch-mode-desc{display:block;font-size:11px;color:var(--text-tertiary);margin-top:2px}.extraction-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.chat-input-wrapper{padding:0 24px 20px;background:var(--bg-primary)}.active-skills-bar{display:flex;align-items:center;gap:6px;padding:6px 0 8px;font-size:11px;color:var(--accent)}.active-skill-tag{padding:2px 8px;border-radius:99px;background:var(--accent-light);font-size:11px;font-weight:500}.generation-context-preview{margin-bottom:10px;padding:10px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--bg-tertiary) 72%,transparent)}.generation-context-preview.loading{border-color:var(--border-focus)}.generation-context-header,.generation-context-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.generation-context-title{display:flex;align-items:center;gap:6px;min-width:0;color:var(--accent);font-size:12px;font-weight:600}.generation-context-refresh{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:50%;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.generation-context-refresh:hover:not(:disabled){background:var(--bg-hover);color:var(--text-secondary)}.generation-context-refresh:disabled{opacity:.45;cursor:not-allowed}.generation-context-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px}.generation-context-metric{min-width:0;padding:8px;border:1px solid var(--border-light);border-radius:8px;background:color-mix(in srgb,var(--bg-primary) 62%,transparent)}.generation-context-metric-head{display:flex;align-items:center;gap:5px;min-width:0;color:var(--text-secondary);font-size:11px}.generation-context-metric-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generation-context-metric-head strong{margin-left:auto;color:var(--text-primary);font-size:12px;font-weight:600;white-space:nowrap}.generation-context-metric-action{flex:0 0 auto;padding:1px 5px;border:1px solid var(--border-light);border-radius:5px;background:transparent;color:var(--accent);font-size:11px;line-height:1.4;cursor:pointer}.generation-context-metric-action:hover{background:var(--accent-light)}.generation-context-chips{display:flex;flex-wrap:wrap;gap:4px;min-height:20px;margin-top:7px}.generation-context-chip{max-width:100%;padding:2px 6px;border-radius:999px;background:var(--accent-light);color:var(--text-secondary);font-size:11px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generation-context-chip.muted{background:transparent;color:var(--text-tertiary);padding-left:0}.generation-context-footer{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light);color:var(--text-tertiary);font-size:11px}.generation-context-footer-meta{display:flex;align-items:center;gap:10px;min-width:0}.generation-context-details-toggle{display:inline-flex;align-items:center;gap:3px;padding:2px 4px;border:none;background:transparent;color:var(--text-tertiary);font-size:11px;cursor:pointer}.generation-context-details-toggle svg{transition:transform var(--transition-fast)}.generation-context-details-toggle.open svg{transform:rotate(180deg)}.generation-context-expanded{margin-top:8px}.generation-context-expanded.with-panel{display:grid;grid-template-columns:minmax(440px,1.35fr) minmax(360px,.65fr);gap:8px;align-items:stretch;height:min(62vh,620px)}.generation-context-details{min-height:0;padding-top:8px;border-top:1px solid var(--border-light)}.generation-context-expanded.with-panel .generation-context-details,.generation-context-expanded.with-panel .generation-context-override-panel{margin-top:0}.generation-context-expanded.with-panel .generation-context-details{overflow:auto}.generation-context-expanded.with-panel .generation-context-detail-grid{grid-template-columns:minmax(0,1fr)}.generation-context-warning-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.generation-context-warning{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:6px;background:color-mix(in srgb,var(--warning) 12%,transparent);color:var(--warning);font-size:11px;line-height:1.4}.generation-context-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.generation-context-detail-group{min-width:0;padding:8px;border:1px solid var(--border-light);border-radius:8px;background:color-mix(in srgb,var(--bg-primary) 50%,transparent)}.generation-context-detail-title{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px;color:var(--text-secondary);font-size:11px;font-weight:600}.generation-context-detail-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generation-context-detail-title em{flex:0 0 auto;font-style:normal;color:var(--text-tertiary);font-weight:500}.generation-context-detail-title-meta{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.generation-context-detail-action{border:1px solid color-mix(in srgb,var(--accent-primary) 45%,transparent);border-radius:6px;background:color-mix(in srgb,var(--accent-primary) 12%,transparent);color:var(--accent-primary);font-size:11px;font-weight:700;line-height:1;padding:5px 8px;cursor:pointer}.generation-context-detail-action:hover{background:color-mix(in srgb,var(--accent-primary) 18%,transparent);border-color:color-mix(in srgb,var(--accent-primary) 60%,transparent)}.generation-context-detail-items{display:flex;flex-direction:column;gap:5px}.generation-context-detail-item{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:6px;align-items:baseline;min-width:0;font-size:11px}.generation-context-detail-item strong,.generation-context-detail-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generation-context-detail-item strong{color:var(--text-primary);font-weight:600}.generation-context-detail-item span,.generation-context-detail-empty,.generation-context-detail-more{color:var(--text-tertiary)}.generation-context-detail-empty,.generation-context-detail-more{font-size:11px}.generation-context-override-panel{display:flex;flex-direction:column;min-height:0;padding:8px;border:1px solid var(--border-light);border-radius:8px;background:color-mix(in srgb,var(--bg-primary) 58%,transparent)}.generation-context-override-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.generation-context-override-head span{flex:0 0 auto;color:var(--text-secondary);font-size:11px;font-weight:600}.generation-context-override-head em{flex:0 0 auto;font-style:normal;color:var(--text-tertiary);font-size:11px}.generation-context-override-reset{flex:0 0 auto;padding:4px 6px;border:1px solid color-mix(in srgb,var(--accent-primary) 35%,transparent);border-radius:6px;background:color-mix(in srgb,var(--accent-primary) 10%,transparent);color:var(--accent-primary);font-size:11px;font-weight:700;line-height:1;cursor:pointer}.generation-context-override-reset:hover{background:color-mix(in srgb,var(--accent-primary) 16%,transparent)}.generation-context-override-head input{min-width:0;flex:1;height:26px;padding:0 8px;border:1px solid var(--border-light);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:12px}.generation-context-override-list{display:flex;flex-direction:column;gap:5px;max-height:260px;overflow:auto}.generation-context-expanded.with-panel .generation-context-override-list{flex:1;min-height:0;max-height:none}.generation-context-override-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px;border:1px solid var(--border-light);border-radius:6px;background:color-mix(in srgb,var(--bg-tertiary) 42%,transparent)}.generation-context-override-rule{min-width:0;display:flex;align-items:baseline;gap:6px}.generation-context-override-rule strong,.generation-context-override-rule span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.generation-context-override-rule strong{color:var(--text-primary)}.generation-context-override-rule span{color:var(--text-tertiary)}.generation-context-override-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.generation-context-override-actions button{padding:3px 6px;border:1px solid var(--border-light);border-radius:5px;background:transparent;color:var(--text-tertiary);font-size:11px;cursor:pointer}.generation-context-override-actions button:disabled{opacity:.45;cursor:not-allowed}.generation-context-override-actions button.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.generation-context-override-actions button.active.exclude{border-color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent);color:var(--warning)}.generation-context-override-state{color:var(--text-tertiary);font-size:11px}.generation-context-override-state.error{color:var(--danger)}.generation-context-error{margin-top:8px;color:var(--danger);font-size:12px}.chat-capsule{display:flex;align-items:flex-end;gap:0;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:24px;padding:6px 6px 6px 18px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.chat-capsule:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.chat-capsule-input{flex:1;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);resize:none;min-height:36px;max-height:160px;line-height:1.5;padding:6px 0}.chat-capsule-input::placeholder{color:var(--text-tertiary)}.chat-capsule-input:disabled{opacity:.5}.chat-capsule-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;padding-left:8px}.chat-skill-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.chat-skill-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.chat-skill-btn:disabled{opacity:.3;cursor:not-allowed}.chat-send-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:var(--accent);color:var(--text-inverse);cursor:pointer;transition:all var(--transition-fast)}.chat-send-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 16px var(--accent-glow)}.chat-send-btn.stop{background:var(--danger)}.chat-send-btn.stop:hover{background:color-mix(in srgb,var(--danger) 86%,black);box-shadow:0 0 16px color-mix(in srgb,var(--danger) 34%,transparent)}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.skill-trigger-wrap{position:relative}.action-menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:160px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:4px;z-index:50;animation:fadeIn .15s ease}.action-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:13px;font-family:var(--font-sans);cursor:pointer;text-align:left;transition:all var(--transition-fast)}.action-menu-item:hover{background:var(--bg-hover);color:var(--text-primary)}.action-menu-parent{position:relative}.action-menu-arrow{margin-left:auto;opacity:.4}.action-submenu{display:none;position:absolute;left:100%;top:-4px;min-width:150px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:4px;z-index:100}.action-menu-parent:hover>.action-submenu{display:block}.action-menu-parent:hover>.action-menu-item{background:var(--bg-hover);color:var(--text-primary)}.context-usage{position:relative;display:flex;align-items:center;gap:8px;padding:8px 12px 9px;font-size:13px;color:var(--text-secondary);cursor:default;border-top:1px solid var(--border);margin-top:2px}.context-usage:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:8px 10px;font-size:11px;line-height:1.5;color:var(--text-secondary);white-space:pre-line;width:max-content;max-width:220px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:200}.context-usage:hover:after{opacity:1}@media (max-width: 900px){.generation-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.generation-context-expanded.with-panel{display:block;height:auto}.generation-context-override-item{grid-template-columns:minmax(0,1fr);align-items:stretch}.generation-context-override-actions{justify-content:flex-start}}.tooltip-portal{position:fixed;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:4px 8px;font-size:11px;line-height:1.4;color:var(--text-secondary);white-space:nowrap;pointer-events:none;z-index:9999}.generate-outline-input{width:100%;resize:vertical;border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;font-size:13px;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);line-height:1.5}.generate-outline-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.generate-outline-input::placeholder{color:var(--text-tertiary)}.skills-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:780px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp .25s ease}.skills-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.skills-modal-title{font-size:16px;font-weight:600}.skills-search-bar{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border-light)}.skills-search-input{flex:1;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:13px;font-family:var(--font-sans)}.skills-search-input::placeholder{color:var(--text-tertiary)}.skills-tabs{display:flex;border-bottom:1px solid var(--border)}.skills-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-tertiary);font-size:13px;font-family:var(--font-sans);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.skills-tab:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.skills-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.skills-list{flex:1;overflow-y:auto;padding:12px 16px;max-height:480px}.skills-card-grid{display:flex;flex-direction:column;gap:8px}.skill-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:default;transition:all var(--transition-fast)}.skill-card:hover{border-color:var(--border);background:var(--bg-tertiary)}.skill-card.selected{border-color:var(--accent-dim);background:var(--accent-light)}.skill-card-main{flex:1;min-width:0;cursor:pointer;border-radius:var(--radius-sm)}.skill-card-main:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skill-card-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}.skill-card-name{font-size:13px;font-weight:600;color:var(--text-primary)}.skill-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.4;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.skill-card-meta{display:flex;align-items:center;gap:10px;font-size:11px}.skill-card-check{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:transparent;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.skill-card-check:hover{border-color:var(--accent)}.skill-card-check.checked{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.skill-card-download{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.skill-card-download:hover{background:var(--accent);color:var(--text-inverse)}.skill-card-downloaded-label{font-size:11px;color:var(--text-tertiary);flex-shrink:0;white-space:nowrap}.skills-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;color:var(--text-tertiary);font-size:14px}.skill-detail-body{flex:1;overflow-y:auto;padding:20px}.skill-detail-desc{color:var(--text-secondary);font-size:13px;margin-bottom:16px;line-height:1.5}.skill-detail-content{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;font-family:var(--font-mono);font-size:12px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;line-height:1.6;max-height:400px;overflow-y:auto}.settings-panel{width:var(--panel-width);min-width:var(--panel-width);border-left:1px solid var(--border);background:var(--bg-secondary);display:flex;flex-direction:column;overflow:hidden}.settings-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 4px}.settings-tab{flex:1;width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 8px;border:none;border-bottom:2px solid transparent;background:transparent;font-size:12px;font-weight:500;font-family:var(--font-sans);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.settings-tab:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.settings-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.settings-tab-content{flex:1;overflow-y:auto}.panel-content{padding:14px}.panel-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.panel-toolbar-actions{display:flex;align-items:center;gap:2px}.panel-count{font-size:12px;color:var(--text-tertiary);font-weight:500}.panel-search{margin-bottom:10px}.panel-search input{width:100%;height:26px;padding:0 8px;font-size:11px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);outline:none;transition:border-color .15s}.panel-search input:focus{border-color:var(--accent)}.panel-search input::placeholder{color:var(--text-tertiary)}.panel-create-form{display:flex;flex-direction:column;gap:8px;padding:14px;margin-bottom:14px;background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border)}.panel-create-actions{display:flex;justify-content:flex-end;gap:8px}.panel-create-select{position:relative}.panel-create-select .custom-select-trigger{height:38px;padding:0 12px;font-size:13px}.panel-create-select .custom-select-dropdown{top:calc(100% + 2px)}.panel-list{display:flex;flex-direction:column;gap:8px}.panel-card{padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast);background:var(--bg-primary)}.panel-card:hover{border-color:var(--border);background:var(--bg-tertiary)}.panel-card-header{display:flex;align-items:center;justify-content:space-between;gap:6px}.panel-card-name-row{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.panel-card-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.panel-card-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.panel-card-chevron{color:var(--text-tertiary);transition:transform .2s;flex-shrink:0}.panel-card-chevron.open{transform:rotate(180deg)}.panel-card-details{max-height:0;overflow:hidden;transition:max-height .25s ease}.panel-card-details.expanded{max-height:300px}.panel-card-detail{font-size:12px;color:var(--text-secondary);line-height:1.5;margin-top:6px}.panel-card-label{color:var(--text-tertiary);font-size:11px;margin-right:4px}.panel-card-sub{font-size:12px;color:var(--text-tertiary);margin-top:4px}.panel-card-body{font-size:12px;color:var(--text-secondary);line-height:1.6;margin-top:6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.panel-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:11px}.panel-card-delete{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;opacity:.4;transition:all var(--transition-fast);flex-shrink:0}.panel-card-delete:hover{opacity:1!important;background:var(--danger-light);color:var(--danger)}.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:40px 16px;color:var(--text-tertiary);font-size:13px}.panel-group{margin-bottom:14px}.char-group{margin-bottom:10px}.char-group-header{display:flex;align-items:center;gap:7px;padding:5px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:4px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.char-group-header:hover{background:var(--bg-tertiary)}.char-group-icon{flex-shrink:0}.char-group-icon.char-badge-protagonist{color:#818cf8}.char-group-icon.char-badge-main-cast{color:#a855f7}.char-group-icon.char-badge-supporting{color:#4ade80}.char-group-icon.char-badge-antagonist{color:#f87171}.char-group-icon.char-badge-other{color:#facc15}.char-group-icon.char-group-icon-world{color:#10b981}.char-group-icon.hook-icon-active{color:#818cf8}.char-group-icon.hook-icon-developing{color:#facc15}.char-group-icon.hook-icon-resolved{color:#4ade80}.char-group-icon.hook-icon-abandoned{color:#f87171}.world-rule-preview{font-size:11px;color:var(--text-tertiary);line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.char-group-chevron{color:var(--text-tertiary);transition:transform .2s;flex-shrink:0}.char-group-chevron.open{transform:rotate(180deg)}.char-group-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.char-group-count{font-size:10px;color:var(--text-tertiary);background:var(--bg-tertiary);padding:1px 6px;border-radius:99px;margin-left:auto;min-width:18px;text-align:center}.char-group-empty{font-size:11px;color:var(--text-tertiary);padding:6px 10px 6px 34px;font-style:italic}.char-card{padding:8px 10px;border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:4px;background:var(--bg-primary);transition:all var(--transition-fast)}.char-card:hover{border-color:var(--border)}.char-card-expanded{border-color:var(--border);box-shadow:0 1px 4px #0000000f}.char-card-header{display:flex;align-items:center;justify-content:space-between;gap:6px;cursor:pointer}.char-card-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.char-card-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);cursor:text;padding:1px 4px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.char-card-name:hover{background:var(--bg-tertiary)}.char-name-input{font-size:13px;font-weight:500;padding:1px 4px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);outline:none;font-family:var(--font-sans);flex:1;min-width:0}.char-card-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.char-alias-hint{font-size:10px;color:var(--text-tertiary);max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:99px;flex-shrink:0;letter-spacing:.02em}.char-badge-protagonist{background:#6366f126;color:#818cf8}.char-badge-main-cast{background:#a855f726;color:#a855f7}.char-badge-supporting{background:#22c55e26;color:#4ade80}.char-badge-antagonist{background:#ef444426;color:#f87171}.char-badge-other{background:#eab30826;color:#facc15}.char-card-body{margin-top:8px;padding-top:8px;display:flex;flex-direction:column;gap:2px}.char-card-divider{height:1px;background:var(--border-light);margin:6px 0}.char-field-row{display:flex;gap:8px}.char-field{display:flex;align-items:baseline;gap:6px;padding:3px 4px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);font-size:12px;line-height:1.5}.char-field:hover{background:var(--bg-tertiary)}.char-field-label{color:var(--text-tertiary);font-size:11px;flex-shrink:0;min-width:52px}.char-field-value{color:var(--text-secondary);word-break:break-word}.char-field-empty{color:var(--text-tertiary);font-style:italic}.char-field-input{flex:1;font-size:12px;padding:2px 6px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);outline:none;font-family:var(--font-sans);line-height:1.5}.char-field-textarea{width:100%;resize:vertical;min-height:48px}.char-field-select{flex:1;font-size:11px;padding:4px 20px 4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;outline:none;font-family:var(--font-sans);appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath fill='%23999' d='M4 5L0 1h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;transition:border-color .15s,box-shadow .15s}.char-field-select:hover{border-color:var(--accent-dim);background-color:var(--bg-elevated)}.char-field-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #c8a45c26}.char-field-readonly{cursor:default}.char-field-readonly:hover{background:transparent}.char-field-half{flex:1;min-width:0;display:flex;align-items:baseline;gap:6px}.custom-select-wrap{position:relative;flex:1;min-width:0}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 8px;font-size:11px;font-family:var(--font-sans);background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:border-color .15s,box-shadow .15s;min-width:0}.custom-select-trigger>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-trigger:hover{border-color:var(--accent-dim)}.custom-select-wrap:focus-within .custom-select-trigger{border-color:var(--accent);box-shadow:0 0 0 2px #c8a45c26}.custom-select-placeholder{color:var(--text-tertiary);font-style:italic}.custom-select-arrow{color:var(--text-tertiary);transition:transform .15s;flex-shrink:0}.custom-select-arrow.open{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;padding:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);animation:fadeIn .12s ease;display:flex;flex-direction:column;gap:1px}.custom-select-option{display:flex;align-items:center;padding:8px 10px;font-size:12px;font-family:var(--font-sans);color:var(--text-primary);background:transparent;border:none;border-radius:6px;cursor:pointer;text-align:left;white-space:nowrap;transition:all .1s}.custom-select-option:hover{background:var(--bg-hover)}.custom-select-option.selected{background:var(--accent);color:var(--text-inverse);font-weight:500}.panel-group-label{letter-spacing:.06em;color:var(--text-tertiary);padding:4px 0;margin-bottom:8px}.hook-status-select{font-size:11px;padding:2px 8px;border:1px solid var(--border);border-radius:99px;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;outline:none;font-family:var(--font-sans);transition:border-color var(--transition-fast)}.hook-status-select:focus{border-color:var(--accent)}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.editor-back-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-size:12px;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast)}.editor-back-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.toast-container{position:fixed;top:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;animation:toastIn .3s ease;box-shadow:var(--shadow-lg);min-width:240px;max-width:380px}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-success{background:#0a2e1e;border:1px solid rgba(52,211,153,.2);color:var(--success)}.toast-error{background:#2e0a0a;border:1px solid rgba(248,113,113,.2);color:var(--danger)}.toast-message{flex:1}.toast-close{background:none;border:none;color:inherit;font-size:18px;cursor:pointer;opacity:.6;padding:0 2px;line-height:1;transition:opacity var(--transition-fast)}.toast-close:hover{opacity:1}.toast-action{background:none;border:1px solid rgba(255,255,255,.2);color:inherit;font-size:12px;font-weight:600;padding:2px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.toast-action:hover{background:#ffffff1a;border-color:#ffffff59}.create-project-page{min-height:100vh;background:var(--bg-base);display:flex;flex-direction:column}.create-project-header{display:flex;align-items:center;gap:12px;padding:16px 28px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.create-project-header .logo{font-size:18px}.create-project-body{flex:1;display:flex;justify-content:center;padding:40px 28px;overflow-y:auto}.create-project-form{width:100%;max-width:640px;display:flex;flex-direction:column;gap:0}.create-project-form h2{font-size:22px;font-weight:600;margin-bottom:4px}.create-project-subtitle{color:var(--text-tertiary);font-size:14px;margin-bottom:28px}.form-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border-light)}.form-section.form-section-last{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:14px}.form-row{display:flex;gap:16px}.form-row>.form-group{flex:1}.form-hint{font-size:12px;color:var(--text-tertiary);margin-top:4px}.create-project-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.genre-combobox{position:relative}.genre-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;padding:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:200px;overflow-y:auto;animation:fadeIn .15s ease}.genre-option{display:block;width:100%;padding:7px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:13px;font-family:var(--font-sans);text-align:left;cursor:pointer;transition:all var(--transition-fast)}.genre-option:hover{background:var(--bg-hover);color:var(--text-primary)}.genre-option.active{background:var(--accent-light);color:var(--accent)}.tag-input{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);min-height:38px;cursor:text;transition:border-color var(--transition-fast)}.tag-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.tag-item{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;background:var(--accent-light);color:var(--accent);font-size:12px;font-weight:500;white-space:nowrap}.tag-remove{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--accent);cursor:pointer;padding:0;opacity:.6;transition:opacity var(--transition-fast)}.tag-remove:hover{opacity:1}.tag-input-field{flex:1;min-width:80px;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:13px;font-family:var(--font-sans);padding:2px 0}.tag-input-field::placeholder{color:var(--text-tertiary)}.skill-editor-modal{width:90vw;max-width:700px;max-height:85vh;display:flex;flex-direction:column;background:var(--bg-primary);border-radius:12px;overflow:hidden}.skill-editor-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.skill-editor-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.skill-editor-actions{display:flex;align-items:center;gap:8px}.skill-editor-body{flex:1;overflow:auto;padding:20px}.skill-editor-form{display:flex;flex-direction:column;gap:16px}.skill-editor-field{display:flex;flex-direction:column;gap:8px}.skill-editor-field-header{display:flex;align-items:center;justify-content:space-between}.skill-editor-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.skill-editor-textarea{width:100%;min-height:300px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:SF Mono,Monaco,Cascadia Code,monospace;line-height:1.6;resize:vertical}.skill-editor-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.skill-editor-preview{min-height:200px;padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);overflow:auto}.markdown-preview{color:var(--text-primary);font-size:13px;line-height:1.7}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{margin-top:16px;margin-bottom:8px;font-weight:600;color:var(--text-primary)}.markdown-preview h1{font-size:20px}.markdown-preview h2{font-size:18px}.markdown-preview h3{font-size:16px}.markdown-preview code{padding:2px 6px;background:var(--accent-light);border-radius:4px;font-family:SF Mono,Monaco,monospace;font-size:12px}.skill-editor-char-count{font-size:11px;color:var(--text-tertiary);text-align:right}.skill-editor-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border)}.skills-modal-header-actions{display:flex;align-items:center;gap:8px}.skill-card-actions{display:flex;align-items:center;gap:4px}.skill-card-edit{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:4px;transition:all var(--transition-fast)}.skill-card-edit:hover{background:var(--bg-secondary);color:var(--text-secondary)}.skills-list-rows{display:flex;flex-direction:column;gap:8px}.skill-list-item{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:all var(--transition-fast)}.skill-list-item.active{border-color:var(--accent);background:var(--accent-light)}.skill-list-item-main{display:flex;align-items:center;gap:8px;padding:10px 12px}.skill-list-item-expand{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:4px;transition:all var(--transition-fast)}.skill-list-item-expand:hover{background:var(--bg-secondary);color:var(--text-secondary)}.skill-list-item-expand svg{transition:transform var(--transition-fast)}.skill-list-item-expand.open svg{transform:rotate(90deg)}.skill-list-item-info{flex:1;display:flex;align-items:center;gap:8px;cursor:pointer}.skill-list-item-name{font-size:14px;font-weight:500;color:var(--text-primary)}.skill-list-item-actions{display:flex;align-items:center;gap:4px}.skill-list-item-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:4px;transition:all var(--transition-fast)}.skill-list-item-btn:hover{background:var(--bg-secondary);color:var(--text-secondary)}.skill-list-item-check{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:6px;transition:all var(--transition-fast)}.skill-list-item-check:hover{background:var(--bg-secondary);border-color:var(--accent)}.skill-list-item-check.checked{background:var(--accent);border-color:var(--accent);color:#fff}.skill-list-item-content{padding:12px 12px 12px 44px;border-top:1px solid var(--border);margin-top:4px}.skill-list-item-desc{font-size:13px;color:var(--text-secondary);margin:0 0 8px;line-height:1.5}.skill-list-item-text{font-size:12px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;line-height:1.6;margin:0;max-height:200px;overflow:auto}.skill-create-form{display:flex;flex-direction:column;gap:20px;padding:20px}.skill-create-field{display:flex;flex-direction:column;gap:8px}.skill-create-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.skill-create-textarea{width:100%;min-height:200px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:SF Mono,Monaco,Cascadia Code,monospace;line-height:1.6;resize:vertical}.skill-create-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.skill-create-char-count{font-size:11px;color:var(--text-tertiary);text-align:right}.skill-create-char-count.warning{color:var(--warning)}.skill-create-hint-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.skill-create-hint{color:var(--text-tertiary);font-size:11px;line-height:1.5}.skill-create-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.skill-card-actions{display:flex;align-items:center;gap:6px}.skill-card-edit-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:4px;transition:all var(--transition-fast)}.skill-card-edit-btn:hover{background:var(--bg-secondary);color:var(--text-secondary)}.skill-card-check{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--border);background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:4px;transition:all var(--transition-fast)}.skill-card-check:hover{background:var(--bg-secondary);border-color:var(--accent)}.skill-card-check.checked{background:var(--accent);border-color:var(--accent);color:#fff}.skill-card-check-sm{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--border);background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:4px;transition:all var(--transition-fast)}.skill-card-check-sm:hover{background:var(--bg-secondary);border-color:var(--accent)}.skill-card-check-sm.checked{background:var(--accent);border-color:var(--accent);color:#fff}.skill-distill-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;border:2px dashed var(--border);border-radius:8px;background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast)}.skill-distill-zone:hover{border-color:var(--accent);background:var(--bg-tertiary)}.skill-distill-zone.dragging{border-color:var(--accent);background:var(--accent-light)}.skill-distill-zone.loading{cursor:wait;opacity:.7}.skill-distill-text{display:flex;flex-direction:column;align-items:center;gap:4px}.skill-distill-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.skill-selected-files{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-primary);border-radius:6px;width:100%;max-width:400px}.skill-selected-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.skill-selected-info span:first-child{white-space:nowrap}.skill-selected-info span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
