:root{--primary: #1E2761;--dark-bg: #12174A;--accent: #F96167;--secondary: #CADCFC;--light-bg: #F5F7FF;--text-dark: #1A1A2E;--text-light: #FFFFFF;--border: #D8DCF0;--success: #22C55E;--warn: #F59E0B;--radius: 8px;--shadow: 0 2px 10px rgba(18, 23, 74, .12);--bg: #ffffff;--text: #1A1A2E}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--light-bg);color:var(--text-dark);font-size:14px;line-height:1.5}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{background:var(--dark-bg);color:var(--text-light);padding:0 20px;height:52px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:3px solid var(--accent)}.logo{font-size:16px;font-weight:700;letter-spacing:.5px}.layout{display:flex;flex:1;overflow:hidden}.sidebar{width:250px;flex-shrink:0;background:var(--primary);color:var(--text-light);overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:12px 8px}.sidebar-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--secondary);padding:4px 8px 8px}.sidebar-empty{font-size:13px;color:var(--secondary);padding:8px;line-height:1.6}.run-item{width:100%;background:transparent;border:none;color:var(--text-light);text-align:left;padding:8px 10px;border-radius:var(--radius);cursor:pointer;transition:background .15s}.run-item:hover{background:#cadcfc26}.run-item--active{background:#f96167d9}.run-item--active:hover{background:#f96167f2}.run-item--complete{border-left:3px solid var(--success)}.run-item--complete.run-item--active{border-left-color:#fff}.run-item__top{display:flex;align-items:flex-start;gap:4px}.run-item__title{font-weight:600;font-size:13px;line-height:1.3;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.run-item__meta{font-size:11px;color:var(--secondary);margin-top:3px;display:flex;align-items:center;gap:5px}.run-item--active .run-item__meta{color:#fffc}.run-item__badge{background:var(--success);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.run-item__delete{background:none;border:none;color:#fff6;font-size:14px;line-height:1;cursor:pointer;padding:1px 3px;flex-shrink:0;border-radius:3px}.run-item__delete:hover{color:#fff;background:#ffffff26}.run-item--bg-running{border-left:3px solid #f59e0b}.run-item--bg-running .run-item__title:after{content:" ⟳";font-size:10px;color:#f59e0b;animation:spin 1.5s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.content{flex:1;overflow-y:auto;padding:24px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60%;gap:12px;color:var(--primary);text-align:center}.empty-state h2{font-size:22px}.empty-state p{color:#666}.course-header{margin-bottom:20px}.course-header__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.course-title{font-size:22px;color:var(--primary);font-weight:700}.course-subtitle{color:#555;margin-top:4px;font-size:14px}.course-meta-row{display:flex;gap:16px;align-items:center;margin-top:6px;flex-wrap:wrap}.course-path{font-size:11px;color:#888;font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px}.course-outline-stats{font-size:12px;color:var(--primary);font-weight:500}.lock-btn{display:flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;border:2px solid;cursor:pointer;flex-shrink:0}.lock-btn--locked{background:var(--success);color:#fff;border-color:var(--success)}.lock-btn--locked:hover{background:#16a34a;border-color:#16a34a}.lock-btn--unlocked{background:transparent;color:#888;border-color:#ccc}.lock-btn--unlocked:hover{border-color:var(--success);color:var(--success)}.progress-wrap{position:relative;height:8px;background:var(--border);border-radius:4px;margin-top:12px;overflow:visible}.progress-bar{height:100%;background:var(--accent);border-radius:4px;transition:width .3s}.progress-label{position:absolute;right:0;top:-18px;font-size:11px;color:#777}.panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.steps-panel,.log-panel,.files-panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.log-panel h2,.files-panel h2{font-size:14px;font-weight:700;color:var(--primary);margin-bottom:12px;display:flex;align-items:center;gap:8px}.steps-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}.steps-header h2{font-size:14px;font-weight:700;color:var(--primary);margin:0}.steps-toolbar{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.btn-mini{background:#fff;border:1.5px solid var(--border);color:#555;padding:3px 10px;font-size:11px;border-radius:5px;font-weight:500}.btn-mini:hover:not(:disabled){background:var(--light-bg);border-color:#a0a8d0;color:var(--primary)}.btn-mini--run{background:linear-gradient(135deg,#1e2761,#2e3d8f);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 1px 3px #1e276133}.btn-mini--run:hover:not(:disabled){background:linear-gradient(135deg,#2a3580,#3a4ea0);transform:translateY(-1px)}.step-row{display:flex;align-items:center;gap:8px;padding:5px 4px}.step-check{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.step-check--done{accent-color:var(--success);cursor:default;opacity:.85}.step-icon{width:18px;text-align:center;font-size:12px;color:#aaa;flex-shrink:0}.step-block--done .step-icon{background:var(--success);color:#fff;border-radius:3px;width:16px;height:16px;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}.step-block--running .step-icon{color:var(--accent);animation:pulse 1s ease-in-out infinite}.step-block--external .step-icon{color:#6366f1}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.step-label{flex:1;font-size:13px;color:var(--text-dark)}.step-block--done .step-label{color:#555;text-decoration:line-through;text-decoration-color:#bbb}.step-block--external .step-label{color:#6366f1}.step-block{border-bottom:1px solid var(--light-bg)}.step-block:last-child{border-bottom:none}.step-block--done{background:#f0fdf4;border-left:3px solid var(--success)}.step-block--none{border-left:3px solid #fca5a5}.step-block--partial{border-left:3px solid #fbbf24}.step-block--external{background:#f5f3ff;border-radius:4px;margin:2px 0}.step-block--none .step-icon{background:#fef2f2;color:#dc2626;border-radius:3px;width:16px;height:16px;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}.step-block--partial .step-icon{background:#fffbeb;color:#d97706;border-radius:3px;width:16px;height:16px;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}.complete-badge{display:inline-flex;align-items:center;background:#f0fdf4;color:#16a34a;border:1px solid #86efac;border-radius:12px;font-size:12px;font-weight:600;padding:2px 10px;white-space:nowrap}.run-wiz-pre{background:var(--light-bg);border-radius:6px;padding:8px 12px;display:flex;flex-direction:column;gap:6px}.run-wiz-pre-row{display:flex;align-items:center;gap:8px}.run-wiz-pre-label{font-size:11px;font-weight:600;color:var(--primary);min-width:100px}.run-wiz-step{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:4px;cursor:pointer}.run-wiz-step:hover{background:var(--light-bg)}.run-wiz-icon{width:16px;height:16px;border-radius:3px;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.run-wiz-icon--done{background:var(--success);color:#fff}.run-wiz-icon--partial{background:#fffbeb;color:#d97706}.run-wiz-icon--none{background:#f1f5f9;color:#94a3b8}.run-wiz-badge{font-size:10px;font-weight:600;border-radius:8px;padding:1px 7px}.run-wiz-badge--done{background:#dcfce7;color:#15803d}.run-wiz-badge--partial{background:#fffbeb;color:#d97706}.btn-info{width:20px;height:20px;border-radius:50%;background:#eef0f8;color:var(--primary);font-size:10px;font-weight:700;border:1px solid var(--border);cursor:pointer;flex-shrink:0;line-height:18px;text-align:center;padding:0;transition:background .12s}.btn-info:hover{background:var(--secondary)}.btn-info--active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-params{width:20px;height:20px;border-radius:5px;background:#eef0f8;color:#555;font-size:12px;border:1px solid var(--border);cursor:pointer;flex-shrink:0;line-height:18px;text-align:center;padding:0;transition:background .12s}.btn-params:hover{background:var(--secondary)}.btn-params--active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-ext{font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;border:1px solid var(--border);background:transparent;color:#888;cursor:pointer;flex-shrink:0;white-space:nowrap}.btn-ext:hover:not(:disabled){border-color:#6366f1;color:#6366f1}.btn-ext--active{background:#6366f1;color:#fff;border-color:#6366f1}.btn-ext--active:hover:not(:disabled){background:#4f46e5}.step-desc{font-size:12px;color:#555;background:var(--light-bg);border-left:3px solid var(--primary);padding:8px 10px 8px 12px;margin:0 0 6px 36px;border-radius:0 4px 4px 0;line-height:1.5}.step-params{display:flex;align-items:center;gap:12px;padding:8px 10px 8px 36px;background:#fafafa;border-radius:4px;margin-bottom:4px;font-size:12px;color:#444}.step-params label{display:flex;align-items:center;gap:5px;font-weight:600}.param-input{width:70px;padding:3px 7px;border:1px solid var(--border);border-radius:4px;font-size:12px;font-family:inherit}.param-hint{color:#888;font-style:italic}.modal--delete{max-width:440px}.modal-header--danger{background:#7f1d1d}.delete-warning{display:flex;gap:12px;align-items:flex-start;background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius);padding:12px 14px;margin-bottom:16px;font-size:13px;line-height:1.5}.delete-warning__icon{font-size:20px;flex-shrink:0}.delete-course-name{font-size:15px;font-weight:700;color:var(--primary);background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;word-break:break-all}.field-input--error{border-color:#f87171;box-shadow:0 0 0 2px #f8717133}.btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;padding:6px 18px;font-weight:600;border-radius:6px;border:none;box-shadow:0 1px 4px #dc26264d}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 2px 8px #dc262666;transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.log-panel{display:flex;flex-direction:column}.log{flex:1;background:var(--dark-bg);border-radius:6px;padding:10px;min-height:240px;max-height:360px;overflow-y:auto;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6}.log-line{color:#c8d8fc;white-space:pre-wrap;word-break:break-all}.log-line--ok{color:#4ade80;font-weight:700}.log-line--err{color:#f87171;font-weight:700}.log-empty{color:#56a;font-style:italic}.running-badge{font-size:11px;font-weight:600;background:var(--accent);color:#fff;padding:2px 8px;border-radius:12px}.files-empty{color:#888;font-size:13px}.files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:4px}.file-card{background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 8px;cursor:default;text-align:center;font-size:12px;color:var(--text-dark);display:flex;flex-direction:column;gap:4px;transition:border-color .15s}.file-card--viewable{cursor:pointer}.file-card--viewable:hover{border-color:var(--accent);background:#fff}.file-ext{font-weight:700;font-size:11px;color:var(--primary);text-transform:uppercase}.file-name{font-size:11px;word-break:break-all;line-height:1.3}.file-size{font-size:10px;color:#888}button{font-family:inherit;cursor:pointer;border:none;font-size:13px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:5px;transition:background .13s,box-shadow .13s,transform .1s,border-color .13s,color .13s;white-space:nowrap;line-height:1.4}button:disabled{opacity:.45;cursor:not-allowed}.btn-accent{background:linear-gradient(135deg,var(--accent) 0%,#e8535a 100%);color:#fff;padding:6px 16px;font-weight:600;box-shadow:0 1px 4px #f961674d}.btn-accent:hover:not(:disabled){background:linear-gradient(135deg,#e8535a,#d43d44);box-shadow:0 2px 8px #f9616766;transform:translateY(-1px)}.btn-accent:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-ghost{background:#fff;color:var(--primary);border:1.5px solid var(--border);padding:6px 14px;font-weight:500}.btn-ghost:hover:not(:disabled){background:var(--light-bg);border-color:var(--primary)}.btn-ghost--header{background:transparent;color:var(--secondary);border-color:#cadcfc66}.btn-ghost--header:hover:not(:disabled){background:#cadcfc26;border-color:#cadcfcb3}.btn-close{background:transparent;color:#888;font-size:20px;line-height:1;padding:2px 6px}.btn-close:hover{color:var(--accent)}.btn-run{background:linear-gradient(135deg,#1e2761,#2e3d8f);color:#fff;padding:4px 14px;font-size:12px;font-weight:600;flex-shrink:0;border-radius:6px;box-shadow:0 1px 4px #1e276140;letter-spacing:.02em}.btn-run:hover:not(:disabled){background:linear-gradient(135deg,#2a3580,#3a4ea0);box-shadow:0 2px 8px #1e276159;transform:translateY(-1px)}.btn-run:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-run--rerun{background:#fff;color:var(--primary);border:1.5px solid var(--primary);box-shadow:none}.btn-run--rerun:hover:not(:disabled){background:var(--light-bg);box-shadow:0 1px 4px #1e276126;transform:translateY(-1px)}[data-ai]:after{font-size:9px;font-weight:700;letter-spacing:0;border-radius:4px;padding:1px 5px;margin-left:4px;flex-shrink:0;line-height:1.6}[data-ai]:after{content:"✦"}.btn-run[data-ai=claude]:after{background:#ffa50047;color:#ffd580}.btn-run[data-ai=openai]:after{background:#34d39947;color:#6ee7b7}.btn-run[data-ai=tts]:after{background:#ffffff2e;color:#c4b5fd}.btn-run[data-ai=dalle]:after{background:#34d39947;color:#6ee7b7}.btn-ghost[data-ai=claude]:after,.btn-mini[data-ai=claude]:after{background:#fff3e0;color:#c05621}.btn-ghost[data-ai=openai]:after,.btn-mini[data-ai=openai]:after{background:#d1fae5;color:#065f46}.btn-ghost[data-ai=tts]:after,.btn-mini[data-ai=tts]:after{background:#ede9fe;color:#6d28d9}.btn-run--rerun[data-ai=claude]:after{background:#fff3e0;color:#c05621}.btn-run--rerun[data-ai=openai]:after{background:#d1fae5;color:#065f46}.btn-run--rerun[data-ai=tts]:after{background:#ede9fe;color:#6d28d9}.btn-run--rerun[data-ai=dalle]:after{background:#d1fae5;color:#065f46}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#12174a8c;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000038;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal--wide{max-width:860px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--primary);color:#fff;border-radius:10px 10px 0 0;flex-shrink:0;cursor:default}.modal-header:before{content:"⠿";font-size:14px;opacity:.35;margin-right:8px;flex-shrink:0;pointer-events:none}.modal-header h2{font-size:15px}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-body--fill{overflow:hidden;display:flex;flex-direction:column}.modal-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:160px;color:var(--primary)}.hint{font-size:12px;color:#888}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.field-label{display:block;font-weight:600;color:var(--primary);margin-bottom:6px}.field-hint{font-weight:400;font-size:12px;color:#666;margin-left:4px}.field-input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit;outline:none}.field-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1e27611f}.error-msg{color:#e02;font-size:13px;margin-top:8px}.path-section{margin-top:1.2rem;background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.path-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.field-sublabel{display:block;font-size:12px;font-weight:600;color:#555;margin-bottom:4px}.toggle-label{font-size:12px;color:var(--primary);cursor:pointer;display:flex;align-items:center;gap:4px}.path-preview{margin-top:10px;padding:7px 10px;background:#fff;border:1px solid var(--border);border-radius:4px;font-size:12px;word-break:break-all}.path-preview-label{color:#888}.path-preview code{color:var(--primary);font-family:monospace}.outline-meta{margin-bottom:14px}.outline-meta h3{font-size:18px;color:var(--primary)}.outline-stats{font-size:12px;color:#666;margin-top:4px}.sections-list{max-height:340px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:4px}.sec-item{padding:6px 8px;border-bottom:1px solid var(--light-bg)}.sec-item:last-child{border-bottom:none}.sec-title{font-weight:700;font-size:13px;color:var(--primary);display:flex;align-items:center;gap:8px}.sec-num{background:var(--accent);color:#fff;width:22px;height:22px;border-radius:50%;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700}.lec-list{padding-left:30px;margin-top:4px}.lec-item{font-size:12px;color:#555;padding:2px 0;display:flex;align-items:center;gap:8px}.lec-dur{font-size:10px;color:var(--primary);background:var(--secondary);padding:0 5px;border-radius:3px}.file-content{font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:var(--text-dark);background:var(--light-bg);padding:12px;border-radius:6px;max-height:60vh;overflow-y:auto}.md-preview{font-size:14px;line-height:1.7;color:var(--text-dark);max-height:70vh;overflow-y:auto;direction:ltr;text-align:left}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{margin:1em 0 .4em;font-weight:700;color:#1e293b}.md-preview h1{font-size:1.5em}.md-preview h2{font-size:1.25em}.md-preview h3{font-size:1.1em}.md-preview p{margin:.5em 0}.md-preview ul,.md-preview ol{padding-left:1.5em;margin:.5em 0}.md-preview li{margin:.2em 0}.md-preview code{background:#f1f5f9;padding:2px 5px;border-radius:3px;font-size:.9em;font-family:monospace}.md-preview pre{background:#f1f5f9;padding:12px;border-radius:6px;overflow-x:auto}.md-preview blockquote{border-left:3px solid var(--primary);margin:.5em 0;padding-left:1em;color:#64748b}.md-preview a{color:var(--primary)}.md-preview table{border-collapse:collapse;width:100%;margin:.5em 0}.md-preview th,.md-preview td{border:1px solid var(--border);padding:6px 10px}.md-preview th{background:#f8fafc;font-weight:600}.tab-bar{display:flex;gap:4px;margin-bottom:16px;border-bottom:2px solid var(--border);padding-bottom:0}.tab{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:8px 20px;font-size:13px;font-weight:600;color:#888;cursor:pointer;border-radius:4px 4px 0 0;transition:color .15s,border-color .15s}.tab:hover{color:var(--primary)}.tab--active{color:var(--primary);border-bottom-color:var(--accent);background:transparent}.btn-edit{font-size:11px;font-weight:600;padding:3px 10px;border-radius:5px;border:1.5px solid var(--border);background:#fff;color:#555;flex-shrink:0}.btn-edit:hover:not(:disabled){border-color:#a0a8d0;color:var(--primary);background:var(--light-bg)}.btn-edit:disabled{opacity:.4;cursor:not-allowed}.btn-compact{background:linear-gradient(135deg,#0d7a5f,#14a87a);color:#fff;padding:5px 16px;font-size:12px;font-weight:600;border-radius:6px;box-shadow:0 1px 4px #0d7a5f47;letter-spacing:.02em;transition:box-shadow .12s,transform .1s;white-space:nowrap}.btn-compact:hover:not(:disabled){background:linear-gradient(135deg,#096650,#0f9065);box-shadow:0 2px 8px #0d7a5f61;transform:translateY(-1px)}.btn-compact:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-compact:disabled{opacity:.45;cursor:not-allowed}.edit-textarea{width:100%;min-height:320px;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6;border:1px solid var(--border);border-radius:var(--radius);padding:10px;resize:vertical;outline:none;box-sizing:border-box}.edit-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1e27611f}.sections-list{display:flex;flex-direction:column;gap:6px;max-height:380px;overflow-y:auto}.sec-item{border:1px solid var(--border);border-radius:var(--radius)}.sec-title{display:flex;align-items:center;gap:8px;background:var(--light-bg);padding:6px 10px;font-size:12px;font-weight:600;color:var(--primary)}.sec-num{background:var(--primary);color:#fff;border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.lec-list{display:flex;flex-direction:column}.lec-item{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 14px;font-size:12px;border-top:1px solid var(--light-bg)}.lec-item>span:first-child{flex:1;color:#444}.step-toast{position:fixed;bottom:24px;right:24px;padding:12px 20px;border-radius:var(--radius);font-weight:600;font-size:14px;color:#fff;box-shadow:0 4px 16px #0003;z-index:9999;animation:slideUp .25s ease}.step-toast--ok{background:var(--success)}.step-toast--err{background:var(--accent)}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.step-block--locked .step-label{color:#bbb}.step-block--locked .step-icon{color:#ccc}.btn-run--blocked{background:#f3f4f6;color:#9ca3af;border:1.5px solid #d1d5db;box-shadow:none}.btn-run--blocked:hover:not(:disabled){background:#f3f4f6;transform:none;box-shadow:none}.compact-toggle{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:#0d7a5f;cursor:pointer;flex-shrink:0;white-space:nowrap;padding:2px 6px;border:1.5px solid #a7f3d0;border-radius:5px;background:#f0fdf9;transition:background .12s,border-color .12s}.compact-toggle:hover{background:#d1fae5;border-color:#0d7a5f}.compact-toggle input{accent-color:#0d7a5f;width:12px;height:12px}.step-resource{font-size:11px;color:#6366f1;padding:3px 10px 5px 36px;font-style:italic}.step-resource code{font-family:monospace;background:#ede9fe;padding:1px 4px;border-radius:3px}.ext-info{display:flex;gap:12px;align-items:flex-start;background:#f0fdf4;border:1px solid #86efac;border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;font-size:13px;line-height:1.5}.ext-info__icon{font-size:22px;flex-shrink:0}.ext-what{background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;font-size:13px;margin-bottom:4px;display:flex;flex-direction:column;gap:3px}.ext-what__label{font-weight:700;color:var(--primary);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.ext-what__value{color:#444}.spinner{width:36px;height:36px;border:3px solid var(--secondary);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.pptx-style-picker{flex-direction:column;align-items:flex-start;padding:.7rem .5rem}.style-cards{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}.style-card{display:flex;flex-direction:column;align-items:center;gap:.3rem;border:2px solid var(--border);border-radius:var(--radius);background:#fff;padding:.4rem;cursor:pointer;width:96px;transition:border-color .15s,box-shadow .15s}.style-card:hover{border-color:var(--primary);box-shadow:0 0 0 2px #1e276120}.style-card--selected{border-color:var(--accent);box-shadow:0 0 0 2px #f9616740}.style-card__preview{width:80px;height:52px;border-radius:4px;overflow:hidden;border:1px solid #e5e7eb;display:flex;flex-direction:column}.style-card__bar{height:12px;flex-shrink:0}.style-card__bg{flex:1;padding:4px 5px;display:flex;flex-direction:column;gap:3px;justify-content:center}.style-card__dot{width:10px;height:10px;border-radius:50%;margin-bottom:2px}.style-card__line{height:3px;border-radius:2px;width:90%}.style-card__line--short{width:65%}.style-card__name{font-size:11px;font-weight:600;color:var(--text-dark);text-align:center}.step-param-badge{font-size:10px;background:var(--primary);color:#fff;border-radius:10px;padding:1px 7px;font-weight:600;opacity:.85}.bg-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:.4rem}.bg-tpl-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 4px;border:1.5px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;transition:border-color .12s}.bg-tpl-btn:hover{border-color:var(--primary)}.bg-tpl-btn--active{border-color:var(--accent);background:#fff5f5}.bg-tpl-btn--dark.bg-tpl-btn--active{background:#1a1a2a}.bg-tpl-swatch{width:100%;height:22px;border-radius:3px;border:1px solid rgba(0,0,0,.07)}.bg-tpl-label{font-size:9.5px;font-weight:600;color:#6b7280;text-align:center;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.bg-tpl-btn--active .bg-tpl-label{color:var(--accent)}.bg-tpl-btn--dark .bg-tpl-label{color:#9ca3af}.bg-tpl-btn--dark.bg-tpl-btn--active .bg-tpl-label{color:#f87171}.icon-style-options{display:flex;gap:.4rem;flex-wrap:wrap}.icon-style-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 10px;border:1.5px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;transition:border-color .12s;min-width:72px}.icon-style-btn:hover{border-color:var(--primary)}.icon-style-btn--active{border-color:var(--accent);background:#fff5f5}.icon-style-example{font-size:13px;line-height:1.4;color:#374151}.icon-style-label{font-size:10px;font-weight:600;color:#6b7280}.icon-style-btn--active .icon-style-label{color:var(--accent)}.icon-style-btn--disabled{opacity:.4;cursor:not-allowed}.icon-style-btn--disabled:hover{border-color:#d1d5db}.bg-decor-options{display:flex;gap:.4rem;flex-wrap:wrap}.bg-decor-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:.3rem .55rem;border:2px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;min-width:52px;transition:border-color .12s}.bg-decor-btn:hover{border-color:var(--primary)}.bg-decor-btn--active{border-color:var(--accent);background:#fff5f5}.bg-decor-btn__icon{font-size:16px;line-height:1;color:var(--primary)}.bg-decor-btn--active .bg-decor-btn__icon{color:var(--accent)}.bg-decor-btn__label{font-size:10px;font-weight:600;color:#6b7280}.bg-decor-btn--active .bg-decor-btn__label{color:var(--accent)}.style-card__tag{font-size:9px;background:var(--accent);color:#fff;border-radius:10px;padding:1px 6px;font-weight:600;letter-spacing:.03em;text-align:center;max-width:88px;word-break:break-word;line-height:1.3}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.sp-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius)}.sp-stat{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px}.sp-stat--done{background:#dcfce7;color:#166534}.sp-stat--miss{background:#fee2e2;color:#991b1b}.sp-stat--compact{background:#d1fae5;color:#065f46}.vid-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:8px;white-space:nowrap;flex-shrink:0}.vid-badge--missing{background:#fef3c7;color:#92400e}.vid-badge--done{background:#dbeafe;color:#1e40af}.vid-badge--compact{background:#d1fae5;color:#065f46}.vid-badge--nocompact{background:#f1f5f9;color:#64748b}.sp-log{font-family:Consolas,monospace;font-size:11px;line-height:1.5;background:#1e2761;color:#e2e8f0;border-radius:var(--radius);padding:8px 10px;max-height:140px;overflow-y:auto}.sp-lec-item{gap:6px}.sp-lec-item--sel{background:#eff6ff!important}.sp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sp-dot--ok{background:var(--success)}.sp-dot--miss{background:#d1d5db}.sp-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;font-size:10px;font-weight:700}.sp-badge--ok{background:#dcfce7;color:#166534}.sp-badge--miss{background:#f3f4f6;color:#9ca3af}.files-panel,.files-accordion,.files-list,.files-tree{direction:ltr;text-align:left}.files-tree__folder{display:block;width:100%}.files-accordion{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.files-accordion__hdr{width:100%;text-align:left;background:var(--light-bg);border:none;padding:8px 12px;cursor:pointer;font-size:12px;font-weight:600;color:var(--text-dark);display:flex;justify-content:space-between;align-items:center;direction:ltr}.files-accordion__hdr:hover{background:var(--border)}.asset-modal{max-width:860px;height:80vh;display:flex;flex-direction:column}.asset-modal .modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.asset-modal .modal-header .tab{color:#ffffffa6;border-bottom-color:transparent}.asset-modal .modal-header .tab:hover{color:#fff}.asset-modal .modal-header .tab--active{color:#fff;border-bottom-color:#ffffffd9;background:transparent}.asset-pane{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:10px 14px;gap:8px}.asset-search-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.asset-color-row{display:flex;gap:5px;flex-wrap:wrap}.asset-color-dot{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid #ccc;transition:transform .1s}.asset-color-dot--active{transform:scale(1.25)}.asset-color-dot:hover{transform:scale(1.15)}.asset-set-chips{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.asset-chip{padding:2px 8px;border-radius:999px;border:1px solid var(--border);font-size:11px;cursor:pointer;background:#fff;color:#555;transition:background .12s,color .12s}.asset-chip--active{background:var(--primary);color:#fff;border-color:var(--primary)}.asset-chip:hover:not(.asset-chip--active){background:var(--secondary)}.asset-selected-bar{display:flex;align-items:center;gap:10px;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;padding:6px 10px;font-size:13px}.asset-icon-grid{flex:1;overflow-y:auto;overflow-x:hidden;display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:4px;padding:4px 2px}.asset-placeholder{grid-column:1/-1;color:#999;font-size:12px;padding:20px;text-align:center;line-height:1.7}.asset-icon-cell{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border-radius:6px;border:1px solid transparent;cursor:pointer;background:#fff;transition:border-color .12s,background .12s}.asset-icon-cell:hover{border-color:var(--border);background:var(--light-bg)}.asset-icon-cell--active{border-color:var(--primary);background:var(--secondary)!important}.asset-icon-label{font-size:9px;color:#888;text-align:center;word-break:break-all;line-height:1.2}.asset-bg-controls{display:flex;flex-direction:column;gap:6px}.asset-ctrl-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.asset-bg-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;padding:4px 2px}.asset-bg-cell{border-radius:6px;border:2px solid transparent;cursor:pointer;overflow:hidden;text-align:center;background:#fff;transition:border-color .12s,box-shadow .12s;display:flex;flex-direction:column}.asset-bg-cell:hover{border-color:var(--border);box-shadow:var(--shadow)}.asset-bg-cell--active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.asset-bg-label{display:block;font-size:10px;font-weight:600;color:#374151;padding:3px 6px;background:#fff}.asset-footer{font-size:10px;color:#aaa;padding-top:4px;border-top:1px solid var(--border)}.speeches-slide-list{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:#fafafa;padding:4px 0;width:100%}.speeches-section-group{padding:2px 0}.speeches-section-label{font-size:10px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;padding:5px 10px 3px;background:#f3f4f6}.speeches-section-toggle{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.speeches-section-toggle:hover{background:#e9ecf0}.speeches-lec-block{border-bottom:1px solid #f0f0f0}.speeches-lec-block:last-child{border-bottom:none}.speeches-slide-row{display:flex;align-items:center;gap:7px;padding:4px 10px;cursor:pointer;font-size:12px;transition:background .1s;-webkit-user-select:none;user-select:none}.speeches-slide-row:hover:not(.speeches-slide-row--locked){background:#f0f4ff}.speeches-slide-row--locked{cursor:default;opacity:.85}.speeches-slide-title{flex:1;color:#374151}.speeches-slide-row--done .speeches-slide-title{color:#9ca3af}.speeches-slide-badge{font-size:9px;font-weight:600;color:#16a34a;background:#dcfce7;border-radius:999px;padding:1px 6px}.speeches-expand-btn{background:none;border:none;cursor:pointer;font-size:9px;color:#9ca3af;padding:0 2px}.speeches-expand-btn:hover{color:#374151}.speeches-speech-list{background:#fff;border-top:1px solid #f0f0f0;padding:2px 0 4px 28px}.speeches-speech-row{display:flex;align-items:center;gap:7px;padding:3px 10px 3px 0;cursor:pointer;font-size:11px}.speeches-speech-row:hover{background:#fafff5}.speeches-speech-name{flex:1;color:#374151}.speeches-speech-row--disabled .speeches-speech-name{color:#9ca3af;text-decoration:line-through}.speeches-sp-status{font-size:10px;color:#6b7280;cursor:pointer;white-space:nowrap;padding:0 4px}.speeches-sp-status:hover,.asset-footer a{color:var(--primary)}.asset-source-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:4px 2px}.asset-source-card{border:2px solid var(--border);border-radius:8px;padding:10px;cursor:pointer;background:#fff;transition:border-color .12s,box-shadow .12s}.asset-source-card:hover{border-color:#9ca3af;box-shadow:var(--shadow)}.asset-source-card--active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:#fff5f5}.asset-source-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:8px}.asset-source-name{font-size:13px;font-weight:700;color:var(--text-dark)}.asset-source-style{font-size:10px;color:#6b7280;margin-top:2px;line-height:1.4}.asset-source-link{font-size:10px;color:var(--primary);white-space:nowrap;text-decoration:none;flex-shrink:0}.asset-source-link:hover{text-decoration:underline}.asset-source-examples{display:flex;gap:5px;flex-wrap:wrap}.asset-source-icon{display:flex;flex-direction:column;align-items:center;gap:2px}
