@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Serif+SC:wght@400;500;600;700&display=swap";:root{--bg-base: #0a0c10;--bg-surface: #12151c;--bg-elevated: #1a1e28;--bg-card: rgba(26, 30, 40, .7);--bg-glass: rgba(26, 30, 40, .55);--bg-input: rgba(20, 24, 34, .8);--primary: #e8a84c;--primary-light: #f0c078;--primary-dim: #c88a30;--primary-glow: rgba(232, 168, 76, .25);--primary-bg: rgba(232, 168, 76, .08);--accent: #5ca0d3;--accent-light: #7dbde8;--accent-dim: #3d7fb0;--accent-glow: rgba(92, 160, 211, .2);--success: #4ec9a0;--success-bg: rgba(78, 201, 160, .1);--warning: #e8a84c;--warning-bg: rgba(232, 168, 76, .1);--error: #e05252;--error-bg: rgba(224, 82, 82, .1);--info: #5ca0d3;--info-bg: rgba(92, 160, 211, .1);--text-primary: #e8e6e3;--text-secondary: #9a9690;--text-muted: #5e5a54;--text-inverse: #0a0c10;--border: rgba(232, 168, 76, .12);--border-hover: rgba(232, 168, 76, .25);--border-focus: rgba(232, 168, 76, .5);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, "Segoe UI", sans-serif;--font-serif: "Noto Serif SC", "STSong", serif;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px var(--primary-glow);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--sidebar-width: 260px;--header-height: 60px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);min-height:100vh;overflow-x:hidden;line-height:1.6}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(232,168,76,.03) 0%,transparent 70%),radial-gradient(ellipse at 80% 20%,rgba(92,160,211,.03) 0%,transparent 60%),radial-gradient(ellipse at 50% 80%,rgba(232,168,76,.02) 0%,transparent 50%);pointer-events:none;z-index:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-light)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.1rem}#app{display:flex;min-height:100vh;position:relative;z-index:1}.sidebar{width:var(--sidebar-width);height:100vh;position:fixed;left:0;top:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100;transition:transform var(--duration-normal) var(--ease-out)}.sidebar-header{height:var(--header-height);display:flex;align-items:center;padding:0 var(--space-lg);border-bottom:1px solid var(--border);gap:var(--space-sm)}.sidebar-header .logo{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-header .logo-icon{font-size:1.5rem}.sidebar-nav{flex:1;padding:var(--space-md) var(--space-sm);overflow-y:auto}.sidebar-nav .nav-section{margin-bottom:var(--space-lg)}.sidebar-nav .nav-section-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:0 var(--space-md);margin-bottom:var(--space-sm);font-weight:600}.nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);font-size:.93rem;-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--primary-bg);color:var(--text-primary)}.nav-item.active{background:var(--primary-bg);color:var(--primary);font-weight:500;box-shadow:inset 3px 0 0 var(--primary)}.nav-item .nav-icon{font-size:1.1rem;width:24px;text-align:center;flex-shrink:0}.nav-item .nav-badge{margin-left:auto;font-size:.7rem;padding:1px 6px;border-radius:var(--radius-full);background:var(--primary-bg);color:var(--primary);font-weight:600}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;display:flex;flex-direction:column}.main-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl);border-bottom:1px solid var(--border);background:#12151ccc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:sticky;top:0;z-index:50}.main-header .page-title{font-family:var(--font-serif);font-size:1.15rem;font-weight:600}.main-header .header-actions{display:flex;align-items:center;gap:var(--space-md)}.page-container{flex:1;padding:var(--space-xl);max-width:1400px;width:100%}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:all var(--duration-normal) var(--ease-out);overflow:hidden}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{padding:var(--space-lg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-body{padding:var(--space-lg)}.card-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border:1px solid transparent;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);font-family:var(--font-sans);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dim));color:var(--text-inverse);box-shadow:0 2px 8px var(--primary-glow)}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-light),var(--primary));box-shadow:0 4px 16px var(--primary-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover{border-color:var(--border-hover);background:var(--bg-card)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--primary-bg);color:var(--text-primary)}.btn-danger{background:var(--error-bg);color:var(--error);border-color:#e0525233}.btn-danger:hover{background:#e0525233}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:.8rem}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:1rem}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;margin-bottom:var(--space-xs);font-size:.85rem;font-weight:500;color:var(--text-secondary)}.form-label .required{color:var(--error);margin-left:2px}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:.9rem;transition:border-color var(--duration-fast) var(--ease-out);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-glow)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-select{-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='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239a9690' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-textarea{resize:vertical;min-height:80px}.grid{display:grid;gap:var(--space-lg)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:1200px){.grid-4{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-running{background:var(--info-bg);color:var(--info);animation:pulse 2s ease-in-out infinite}.badge-completed{background:var(--success-bg);color:var(--success)}.badge-failed{background:var(--error-bg);color:var(--error)}.badge-cancelled{background:#ffffff0d;color:var(--text-muted)}.loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--text-muted);text-align:center}.empty-state .empty-icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.5}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--duration-normal) var(--ease-out) both}.slide-in-right{animation:slideInRight var(--duration-normal) var(--ease-out) both}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;opacity:0;transition:opacity var(--duration-normal) var(--ease-out);pointer-events:none}.drawer-overlay.active{opacity:1;pointer-events:all}.drawer-panel{position:fixed;right:0;top:0;width:480px;max-width:90vw;height:100vh;background:var(--bg-surface);border-left:1px solid var(--border);z-index:201;transform:translate(100%);transition:transform var(--duration-slow) var(--ease-out);display:flex;flex-direction:column}.drawer-panel.active{transform:translate(0)}.drawer-header{padding:var(--space-lg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.drawer-header h3{font-size:1.1rem}.drawer-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:1.2rem;transition:all var(--duration-fast)}.drawer-close:hover{background:var(--primary-bg);color:var(--text-primary)}.drawer-body{flex:1;overflow-y:auto;padding:var(--space-lg)}.drawer-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);display:flex;gap:var(--space-sm);justify-content:flex-end;flex-shrink:0}.toast-container{position:fixed;top:var(--space-lg);right:var(--space-lg);z-index:1000;display:flex;flex-direction:column;gap:var(--space-sm)}.toast{padding:var(--space-md) var(--space-lg);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-sm);animation:slideInRight var(--duration-normal) var(--ease-out);min-width:280px;max-width:420px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--error)}.toast-info{border-left:3px solid var(--info)}.toast-warning{border-left:3px solid var(--warning)}.log-viewer{background:#0d0f14;border:1px solid var(--border);border-radius:var(--radius-md);font-family:Consolas,Fira Code,Courier New,monospace;font-size:.8rem;line-height:1.7;overflow:auto;max-height:500px;min-height:200px}.log-viewer .log-content{padding:var(--space-md);white-space:pre-wrap;word-break:break-all}.log-viewer .log-line{display:flex;gap:var(--space-sm)}.log-viewer .log-time{color:var(--text-muted);flex-shrink:0;font-size:.7rem}.log-viewer .log-text{color:var(--text-secondary)}.log-viewer .log-text.stderr{color:var(--error)}.log-viewer .log-cursor{display:inline-block;width:7px;height:14px;background:var(--primary);animation:pulse 1s ease-in-out infinite;vertical-align:middle;margin-left:2px}.stat-card{padding:var(--space-lg);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.stat-card .stat-icon{font-size:1.8rem;margin-bottom:var(--space-sm)}.stat-card .stat-value{font-family:var(--font-serif);font-size:1.8rem;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-card .stat-label{font-size:.8rem;color:var(--text-muted);margin-top:var(--space-xs)}.production-console{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-lg);background:linear-gradient(135deg,#e8a84c1f,#5ca0d31a);border:1px solid var(--border-hover);border-radius:var(--radius-lg)}.production-console h2{margin-bottom:var(--space-xs)}.production-console p{color:var(--text-secondary);max-width:620px}.section-kicker{font-size:.72rem;letter-spacing:.14em;color:var(--primary);font-weight:700;margin-bottom:var(--space-xs)}.production-actions,.project-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}@media(max-width:768px){.production-console{align-items:flex-start;flex-direction:column}}.project-card{cursor:pointer;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));opacity:0;transition:opacity var(--duration-normal)}.project-card:hover:before{opacity:1}.project-card .project-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:600;margin-bottom:var(--space-sm)}.project-card .project-meta{display:flex;gap:var(--space-lg);color:var(--text-secondary);font-size:.85rem}.project-card .project-meta span{display:flex;align-items:center;gap:var(--space-xs)}.project-card .project-latest{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border);font-size:.8rem;color:var(--text-muted)}.project-card .project-actions{margin-top:var(--space-md)}.workflow-card{cursor:pointer;position:relative;padding:var(--space-lg);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:all var(--duration-normal) var(--ease-out);overflow:hidden}.workflow-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 120%,var(--primary-glow),transparent 70%);opacity:0;transition:opacity var(--duration-normal)}.workflow-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:var(--shadow-glow)}.workflow-card:hover:after{opacity:1}.workflow-card .wf-icon{font-size:2rem;margin-bottom:var(--space-sm);position:relative;z-index:1}.workflow-card .wf-name{font-family:var(--font-serif);font-weight:600;font-size:1.05rem;margin-bottom:var(--space-xs);position:relative;z-index:1}.workflow-card .wf-desc{font-size:.8rem;color:var(--text-muted);position:relative;z-index:1}.task-table{width:100%;border-collapse:collapse}.task-table th{text-align:left;padding:var(--space-sm) var(--space-md);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border)}.task-table td{padding:var(--space-sm) var(--space-md);font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:middle}.task-table tr:hover td{background:var(--primary-bg)}.task-table .task-type-cell{display:flex;align-items:center;gap:var(--space-sm)}.markdown-body{font-family:var(--font-serif);font-size:1rem;line-height:2;color:var(--text-primary)}.markdown-body h1{font-size:1.5rem;margin:var(--space-xl) 0 var(--space-md)}.markdown-body h2{font-size:1.3rem;margin:var(--space-lg) 0 var(--space-md)}.markdown-body h3{font-size:1.15rem;margin:var(--space-lg) 0 var(--space-sm)}.markdown-body p{margin-bottom:var(--space-md)}.markdown-body blockquote{border-left:3px solid var(--primary-dim);padding-left:var(--space-md);color:var(--text-secondary);margin:var(--space-md) 0}.chapter-tree{font-size:.85rem}.chapter-tree .volume-item{margin-bottom:var(--space-sm)}.chapter-tree .volume-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;border-radius:var(--radius-sm);font-weight:600;color:var(--text-secondary);transition:all var(--duration-fast)}.chapter-tree .volume-header:hover{background:var(--primary-bg);color:var(--text-primary)}.chapter-tree .chapter-list{padding-left:var(--space-xl)}.chapter-tree .chapter-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-md);cursor:pointer;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--duration-fast)}.chapter-tree .chapter-item:hover{background:var(--primary-bg);color:var(--text-primary)}.chapter-tree .chapter-item.active{color:var(--primary);background:var(--primary-bg)}.chapter-tree .word-count{font-size:.7rem;color:var(--text-muted)}.pipeline-progress{display:flex;align-items:center;gap:0;padding:var(--space-lg) var(--space-xl);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);margin-bottom:var(--space-xl);overflow-x:auto}.pipeline-step{display:flex;align-items:center;flex-shrink:0}.pipeline-step-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative;border:2px solid var(--border);background:var(--bg-elevated);color:var(--text-muted)}.pipeline-step-dot:hover{border-color:var(--border-hover);transform:scale(1.1)}.pipeline-step.completed .pipeline-step-dot{background:var(--success);border-color:var(--success);color:#fff}.pipeline-step.active .pipeline-step-dot{background:linear-gradient(135deg,var(--primary),var(--primary-dim));border-color:var(--primary);color:#fff;box-shadow:0 0 16px var(--primary-glow);animation:pulse 2s ease-in-out infinite}.pipeline-step.pending .pipeline-step-dot{opacity:.5}.pipeline-step-label{position:absolute;top:42px;left:50%;transform:translate(-50%);font-size:.65rem;white-space:nowrap;color:var(--text-muted);font-weight:500}.pipeline-step.active .pipeline-step-label{color:var(--primary);font-weight:600}.pipeline-step.completed .pipeline-step-label{color:var(--success)}.pipeline-step-line{width:40px;height:2px;background:var(--border);flex-shrink:0}.pipeline-step.completed+.pipeline-step .pipeline-step-line,.pipeline-step.completed .pipeline-step-line{background:var(--success)}.stage-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:var(--space-xl);margin-bottom:var(--space-lg)}.stage-card-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.stage-card-header .stage-icon{font-size:2rem}.stage-card-header .stage-title{font-family:var(--font-serif);font-size:1.3rem;font-weight:600}.stage-card-header .stage-desc{font-size:.85rem;color:var(--text-muted);margin-top:2px}.stage-tasks{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.stage-task{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out)}.stage-task:hover{border-color:var(--border-hover)}.stage-task-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;transition:all var(--duration-fast)}.stage-task.completed .stage-task-check{background:var(--success);border-color:var(--success);color:#fff}.stage-task.running .stage-task-check{border-color:var(--primary);animation:pulse 1.5s ease-in-out infinite}.stage-task.failed .stage-task-check{background:var(--error);border-color:var(--error);color:#fff}.stage-task-label{flex:1;font-weight:500}.stage-task-label .task-type-tag{font-size:.7rem;color:var(--text-muted);margin-left:var(--space-sm)}.stage-task .btn{flex-shrink:0}.stage-gate{padding:var(--space-md) var(--space-lg);background:var(--primary-bg);border:1px dashed var(--border);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--space-sm);font-size:.85rem;color:var(--text-secondary);margin-bottom:var(--space-lg)}.stage-gate .gate-icon{font-size:1.1rem}.pipeline-start-panel{max-width:500px;margin:var(--space-3xl) auto;text-align:center}.pipeline-start-panel .start-icon{font-size:4rem;margin-bottom:var(--space-lg)}.pipeline-start-panel h2{margin-bottom:var(--space-md)}.pipeline-start-panel p{color:var(--text-muted);margin-bottom:var(--space-xl)}.pipeline-start-panel .form-group{text-align:left}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}
