.studio-root{--st-bg0:#070b13;--st-bg1:#0a0f1c;--st-bg2:#0c111d;--st-bg3:#11192b;--st-bg4:#161d2e;--st-preview-bg:#080d18;--st-log-bg:#080c15;--st-border:#16203a;--st-border2:#283449;--st-border3:#2c3a59;--st-text:#e6eaf2;--st-text-dim:#9fb0cc;--st-text-mute:#5a6275;--st-accent:#8b6dff;--st-accent-2:#6d8bff;--st-accent-ink:#b3a0ff;--st-on-accent:#fff;--st-good:#46c98a;--st-warn:#e0a13a;--st-bad:#f06363;--st-info:#5b9dff;--st-user-bg:#2a3550;--st-user-text:#eaf0ff;--st-user-border:#39476a;--st-bot-bg:#11192b;--st-bot-text:#dbe2ee;--st-bot-border:#1d2740;--st-choice-bg:#2a2150;--st-choice-text:#d9ccff;--st-choice-border:#5b4aa0;--st-opt-bg:#1c2740;--st-opt-text:#dce4f3;--st-opt-border:#3a4a72;--st-shadow:0 10px 30px #00000073}.studio-root[data-theme=light]{--st-bg0:#eef1f8;--st-bg1:#fff;--st-bg2:#fff;--st-bg3:#f3f6fc;--st-bg4:#eef1f9;--st-preview-bg:#f6f8fd;--st-log-bg:#f0f3fa;--st-border:#e3e8f3;--st-border2:#d3dbec;--st-border3:#c4cee3;--st-text:#1a2336;--st-text-dim:#4d5a76;--st-text-mute:#8a96ac;--st-accent:#6d4bff;--st-accent-2:#4b6dff;--st-accent-ink:#5a3df0;--st-on-accent:#fff;--st-good:#1f9d63;--st-warn:#b9791a;--st-bad:#d6453f;--st-info:#2e6fd6;--st-user-bg:#e6ecfb;--st-user-text:#1a2336;--st-user-border:#c9d6f5;--st-bot-bg:#f3f6fc;--st-bot-text:#1a2336;--st-bot-border:#e3e8f3;--st-choice-bg:#ece6ff;--st-choice-text:#4a2fc0;--st-choice-border:#c9bbf5;--st-opt-bg:#eef2fb;--st-opt-text:#2a3656;--st-opt-border:#cdd9f0;--st-shadow:0 10px 30px #1e285024}.studio-choice{cursor:pointer;background:var(--st-choice-bg);color:var(--st-choice-text);border:1px solid var(--st-choice-border);white-space:normal;overflow-wrap:anywhere;text-align:left;border-radius:8px;min-width:0;max-width:100%;padding:6px 13px;font-size:12.5px;font-weight:600;line-height:1.3;transition:filter .12s,transform 60ms}.studio-choice:hover:not(:disabled){filter:brightness(1.08)}.studio-choice:active:not(:disabled){transform:translateY(1px)}.studio-choice:focus-visible{outline:2px solid var(--st-accent);outline-offset:2px}.studio-choice:disabled{opacity:.5;cursor:not-allowed}.studio-choice--primary{color:#fff;background:linear-gradient(135deg, var(--st-accent), var(--st-accent-2));border-color:var(--st-accent);box-shadow:0 2px 10px -2px var(--st-accent);order:-1;padding:8px 16px;font-size:13px;font-weight:800}.studio-choice--primary:hover:not(:disabled){filter:brightness(1.06)}.studio-opt{cursor:pointer;background:var(--st-opt-bg);color:var(--st-opt-text);border:1px solid var(--st-opt-border);border-radius:6px;padding:4px 11px;font-size:12px;font-weight:500}.studio-opt:hover{filter:brightness(1.06);border-color:var(--st-accent)}.studio-resizer{cursor:col-resize;z-index:5;background:0 0;flex:0 0 7px;align-self:stretch;width:7px;position:relative}.studio-resizer:after{content:"";background:var(--st-border);width:1px;transition:background .12s,width .12s;position:absolute;top:0;bottom:0;left:3px}.studio-resizer:hover:after,.studio-resizer.dragging:after{background:var(--st-accent);width:2px;left:2.5px}.studio-resizer-h{cursor:row-resize;z-index:5;background:0 0;flex:0 0 7px;align-self:stretch;height:7px;position:relative}.studio-resizer-h:after{content:"";background:var(--st-border);height:1px;transition:background .12s,height .12s;position:absolute;top:3px;left:0;right:0}.studio-resizer-h:hover:after,.studio-resizer-h.dragging:after{background:var(--st-accent);height:2px;top:2.5px}.studio-pipeline .step-block{cursor:pointer;transition:background .12s,box-shadow .12s}.studio-pipeline .step-block:hover:not(.step-block--selected){background:var(--st-bg3);box-shadow:0 0 0 1px var(--st-border2) inset}.studio-pipeline .step-block--selected{background:var(--st-bg3);border-color:var(--st-accent);box-shadow:0 0 0 2px var(--st-accent), inset 4px 0 0 0 var(--st-accent)}.studio-pipeline-head{color:var(--st-text-mute);letter-spacing:1px;align-items:center;gap:6px;margin-bottom:10px;padding-left:4px;font-size:11px;font-weight:700;display:flex}.studio-pipeline{flex-direction:column;gap:7px;display:flex}.studio-pipeline .step-block{background:var(--st-bg2);border:1px solid var(--st-border);border-left:3px solid var(--st-border3);box-shadow:none;border-radius:10px;margin:0;padding:6px 9px;transition:border-color .15s,background .15s,box-shadow .15s}.studio-pipeline .step-block:last-child{border-bottom:1px solid var(--st-border)}.studio-pipeline .step-block:hover{background:var(--st-bg3)}.studio-pipeline .step-block--done{border-left-color:var(--st-good)}.studio-pipeline .step-block--partial{border-left-color:var(--st-warn)}.studio-pipeline .step-block--none{border-left-color:var(--st-border3)}.studio-pipeline .step-block--external{border-left-color:var(--st-accent)}.studio-pipeline .step-block--running{border-color:var(--st-info);box-shadow:0 0 0 1px var(--st-info)}.studio-pipeline .step-block--locked{opacity:.5}.studio-pipeline .step-row{align-items:center;gap:6px;display:flex}.studio-pipeline .step-icon{color:var(--st-text-dim)}.studio-pipeline .step-block--done .step-icon{color:var(--st-good)}.studio-pipeline .step-block--partial .step-icon{color:var(--st-warn)}.studio-pipeline .step-block--none .step-icon{color:var(--st-text-mute)}.studio-pipeline .step-block--running .step-icon{color:var(--st-info)}.studio-pipeline .step-block--external .step-icon{color:var(--st-accent-ink)}.studio-pipeline .step-label{color:var(--st-text);font-size:12.5px;font-weight:500;text-decoration:none}.studio-pipeline .step-block--done .step-label{color:var(--st-text-dim);text-decoration:none}.studio-pipeline .step-block--external .step-label{color:var(--st-accent-ink)}.studio-pipeline .step-block--locked .step-label,.studio-pipeline .step-block--locked .step-icon{color:var(--st-text-mute)}.studio-pipeline .step-param-badge{background:var(--st-bg4);color:var(--st-text-dim);border:1px solid var(--st-border2);border-radius:5px;padding:1px 6px;font-size:10px}.studio-pipeline .btn-info,.studio-pipeline .btn-params,.studio-pipeline .btn-edit,.studio-pipeline .btn-mini{background:var(--st-bg4);color:var(--st-text-dim);border:1px solid var(--st-border3);border-radius:7px}.studio-pipeline .btn-info:hover,.studio-pipeline .btn-params:hover,.studio-pipeline .btn-edit:hover:not(:disabled),.studio-pipeline .btn-mini:hover:not(:disabled){filter:brightness(1.12);border-color:var(--st-accent);color:var(--st-text)}.studio-pipeline .btn-info--active,.studio-pipeline .btn-params--active{background:var(--st-accent);border-color:var(--st-accent);color:var(--st-on-accent)}.studio-pipeline .btn-edit:disabled,.studio-pipeline .btn-mini:disabled{opacity:.4}.studio-pipeline .btn-run{background:var(--st-accent);color:var(--st-on-accent);box-shadow:none;border:none;border-radius:8px}.studio-pipeline .btn-run:hover:not(:disabled){filter:brightness(1.08);box-shadow:none;transform:none}.studio-pipeline .btn-run--rerun{color:var(--st-accent);border:1px solid var(--st-accent);background:0 0}.studio-pipeline .btn-run--rerun:hover:not(:disabled){background:color-mix(in srgb, var(--st-accent) 14%, transparent)}.studio-pipeline .btn-run:disabled{opacity:.38;box-shadow:none}.studio-pipeline .step-desc{color:var(--st-text-dim);background:var(--st-bg1);border:1px solid var(--st-border);border-radius:7px;margin-top:6px;padding:7px 9px;font-size:11.5px}.studio-pipeline .step-resource{color:var(--st-text-dim);font-size:11px}.studio-pipeline .step-resource code{background:var(--st-bg4);color:var(--st-accent-ink)}.studio-root .overlay{background:#04070ea8!important}.studio-root[data-theme=light] .overlay{background:#28325057!important}.studio-root[data-theme=light] .modal,.studio-root[data-theme=light] .modal-body{color:#1a1a2e!important}.studio-root .modal-header h2{color:#fff!important}.studio-editor-embed .overlay{-webkit-backdrop-filter:none!important;background:0 0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important}.studio-editor-embed .modal{width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;box-shadow:none!important;border:none!important;border-radius:0!important;display:block!important;position:static!important;inset:auto!important;transform:none!important}.studio-editor-embed .modal-header{display:none!important}.studio-editor-embed .modal-body{overflow:visible!important}.overlay{-webkit-backdrop-filter:blur(3px);background:#0f142d8c!important}.modal{border:1px solid #12174a12;border-radius:18px!important;box-shadow:0 1px 2px #12174a0f,0 44px 84px -30px #12174a85!important}.modal-header{background:linear-gradient(115deg,#1b2358 0%,#2c3a82 100%)!important;border-bottom:none!important;border-radius:18px 18px 0 0!important;padding:16px 22px!important}.modal-header h2{letter-spacing:.2px;font-weight:700}.modal-header:before{opacity:.45!important}.modal-body{padding:22px!important}.sections-list{border-color:#e7ebf7!important;border-radius:14px!important}.sec-item{overflow:hidden;border-radius:11px!important}.sec-title{border-radius:9px;background:linear-gradient(#f8faff,#ecf1fc)!important;padding:10px 12px!important}.sec-num{box-shadow:0 0 0 4px #1e27611a}.lec-item{border-radius:8px;transition:background .12s;padding:4px 8px!important}.lec-item:hover{background:#f4f8fe}.sp-toolbar{box-shadow:0 1px 2px #12174a0a;background:#fff!important;border:1px solid #e7ebf7!important;border-radius:13px!important;padding:11px 13px!important}.tab--active{border-bottom-width:2.5px!important}.field-input{border-radius:11px!important}.field-input:focus{box-shadow:0 0 0 3px #1e276124!important}.btn-accent,.btn-ghost,.btn-mini{border-radius:11px!important}.btn-ghost{border-color:#dce2f1!important}.btn-ghost:hover:not(:disabled){box-shadow:0 2px 6px #12174a14}.path-section{border-radius:12px!important}:root{--primary:#1e2761;--dark-bg:#12174a;--accent:#f96167;--secondary:#cadcfc;--light-bg:#eef2fb;--text-dark:#1a1a2e;--text-light:#fff;--border:#dde2ef;--success:#22c55e;--warn:#f59e0b;--radius:12px;--shadow:0 1px 2px #12174a0d, 0 12px 28px -14px #12174a3d;--bg:#fff;--text:#1a1a2e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:linear-gradient(165deg,#eef2fb 0%,#e1e8f6 100%) fixed;font-family:Segoe UI,Calibri,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.55}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{background:var(--dark-bg);color:var(--text-light);border-bottom:3px solid var(--accent);flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 20px;display:flex}.logo{letter-spacing:.5px;font-size:16px;font-weight:700}.layout{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--primary);width:250px;color:var(--text-light);flex-direction:column;flex-shrink:0;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.sidebar-label{text-transform:uppercase;letter-spacing:1px;color:var(--secondary);padding:4px 8px 8px;font-size:11px;font-weight:600}.sidebar-empty{color:var(--secondary);padding:8px;font-size:13px;line-height:1.6}.run-item{width:100%;color:var(--text-light);text-align:left;border-radius:var(--radius);cursor:pointer;background:0 0;border:none;padding:8px 10px;transition:background .15s}.run-item:hover{background:#cadcfc26}.run-item--complete{border-left:3px solid var(--success)}.run-item--complete.run-item--active{border-left-color:#fff}.run-item__top{align-items:flex-start;gap:4px;display:flex}.run-item__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:13px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.run-item__meta{color:var(--secondary);align-items:center;gap:5px;margin-top:3px;font-size:11px;display:flex}.run-item--active .run-item__meta{color:#fffc}.run-item__badge{background:var(--success);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:700}.run-item__delete{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:1px 3px;font-size:14px;line-height:1}.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:" ⟳";color:#f59e0b;font-size:10px;animation:1.5s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.content{flex:1;padding:24px;overflow-y:auto}.empty-state{height:60%;color:var(--primary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state h2{font-size:22px}.empty-state p{color:#666}.course-header{margin-bottom:20px}.course-header__row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.course-title{color:var(--primary);font-size:22px;font-weight:700}.course-subtitle{color:#555;margin-top:4px;font-size:14px}.course-meta-row{flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px;display:flex}.course-path{color:#888;white-space:nowrap;text-overflow:ellipsis;max-width:400px;font-family:monospace;font-size:11px;overflow:hidden}.course-outline-stats{color:var(--primary);font-size:12px;font-weight:500}.lock-btn{cursor:pointer;border:2px solid;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:4px 12px;font-size:12px;font-weight:600;display:flex}.lock-btn--locked{background:var(--success);color:#fff;border-color:var(--success)}.lock-btn--locked:hover{background:#16a34a;border-color:#16a34a}.lock-btn--unlocked{color:#888;background:0 0;border-color:#ccc}.lock-btn--unlocked:hover{border-color:var(--success);color:var(--success)}.progress-wrap{background:var(--border);border-radius:4px;height:8px;margin-top:12px;position:relative;overflow:visible}.progress-bar{background:var(--accent);border-radius:4px;height:100%;transition:width .3s}.progress-label{color:#777;font-size:11px;position:absolute;top:-18px;right:0}.panels{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.steps-panel,.log-panel,.files-panel{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:16px}.log-panel h2,.files-panel h2{color:var(--primary);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.steps-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.steps-header h2{color:var(--primary);margin:0;font-size:14px;font-weight:700}.steps-toolbar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.btn-mini{border:1.5px solid var(--border);color:#555;background:#fff;border-radius:5px;padding:3px 10px;font-size:11px;font-weight:500}.btn-mini:hover:not(:disabled){background:var(--light-bg);color:var(--primary);border-color:#a0a8d0}.btn-mini--run{color:#fff;background:linear-gradient(135deg,#1e2761 0%,#2e3d8f 100%);border-color:#0000;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{align-items:center;gap:8px;padding:5px 4px;display:flex}.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{text-align:center;color:#aaa;flex-shrink:0;width:18px;font-size:12px}.step-block--done .step-icon{background:var(--success);color:#fff;border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:900;display:inline-flex}.step-block--running .step-icon{color:var(--accent);animation:1s ease-in-out infinite pulse}.step-block--external .step-icon{color:#6366f1}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.step-label{color:var(--text-dark);flex:1;font-size:13px}.step-block--done .step-label{color:#555;-webkit-text-decoration:line-through #bbb;text-decoration:line-through #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{border-left:3px solid var(--success);background:#f0fdf4}.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{color:#dc2626;background:#fef2f2;border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:900;display:inline-flex}.step-block--partial .step-icon{color:#d97706;background:#fffbeb;border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:900;display:inline-flex}.complete-badge{color:#16a34a;white-space:nowrap;background:#f0fdf4;border:1px solid #86efac;border-radius:12px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.run-wiz-pre{background:var(--light-bg);border-radius:6px;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.run-wiz-pre-row{align-items:center;gap:8px;display:flex}.run-wiz-pre-label{color:var(--primary);min-width:100px;font-size:11px;font-weight:600}.run-wiz-step{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:5px 4px;display:flex}.run-wiz-step:hover{background:var(--light-bg)}.run-wiz-icon{border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:900;display:inline-flex}.run-wiz-icon--done{background:var(--success);color:#fff}.run-wiz-icon--partial{color:#d97706;background:#fffbeb}.run-wiz-icon--none{color:#94a3b8;background:#f1f5f9}.run-wiz-badge{border-radius:8px;padding:1px 7px;font-size:10px;font-weight:600}.run-wiz-badge--done{color:#15803d;background:#dcfce7}.run-wiz-badge--partial{color:#d97706;background:#fffbeb}.btn-info{width:20px;height:20px;color:var(--primary);border:1px solid var(--border);cursor:pointer;text-align:center;background:#eef0f8;border-radius:50%;flex-shrink:0;padding:0;font-size:10px;font-weight:700;line-height:18px;transition:background .12s}.btn-info:hover{background:var(--secondary)}.btn-info--active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-params{color:#555;border:1px solid var(--border);cursor:pointer;text-align:center;background:#eef0f8;border-radius:5px;flex-shrink:0;width:20px;height:20px;padding:0;font-size:12px;line-height:18px;transition:background .12s}.btn-params:hover{background:var(--secondary)}.btn-params--active{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-ext{border:1px solid var(--border);color:#888;cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:600}.btn-ext:hover:not(:disabled){color:#6366f1;border-color:#6366f1}.btn-ext--active{color:#fff;background:#6366f1;border-color:#6366f1}.btn-ext--active:hover:not(:disabled){background:#4f46e5}.step-desc{color:#555;background:var(--light-bg);border-left:3px solid var(--primary);border-radius:0 4px 4px 0;margin:0 0 6px 36px;padding:8px 10px 8px 12px;font-size:12px;line-height:1.5}.step-params{color:#444;background:#fafafa;border-radius:4px;align-items:center;gap:12px;margin-bottom:4px;padding:8px 10px 8px 36px;font-size:12px;display:flex}.step-params label{align-items:center;gap:5px;font-weight:600;display:flex}.param-input{border:1px solid var(--border);border-radius:4px;width:70px;padding:3px 7px;font-family:inherit;font-size:12px}.param-hint{color:#888;font-style:italic}.modal--delete{max-width:440px}.modal-header--danger{background:#7f1d1d}.delete-warning{border-radius:var(--radius);background:#fef2f2;border:1px solid #fca5a5;align-items:flex-start;gap:12px;margin-bottom:16px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.delete-warning__icon{flex-shrink:0;font-size:20px}.delete-course-name{color:var(--primary);background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;padding:10px 14px;font-size:15px;font-weight:700}.field-input--error{border-color:#f87171;box-shadow:0 0 0 2px #f8717133}.btn-danger{color:#fff;background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);border:none;border-radius:6px;padding:6px 18px;font-weight:600;box-shadow:0 1px 4px #dc26264d}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c 0%,#991b1b 100%);transform:translateY(-1px);box-shadow:0 2px 8px #dc262666}.btn-danger:active:not(:disabled){box-shadow:none;transform:translateY(0)}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.log-panel{flex-direction:column;display:flex}.log{background:var(--dark-bg);border-radius:6px;flex:1;min-height:240px;max-height:360px;padding:10px;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6;overflow-y:auto}.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{background:var(--accent);color:#fff;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600}.files-empty{color:#888;font-size:13px}.files-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:4px;display:grid}.file-card{background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);cursor:default;text-align:center;color:var(--text-dark);flex-direction:column;gap:4px;padding:10px 8px;font-size:12px;transition:border-color .15s;display:flex}.file-card--viewable{cursor:pointer}.file-card--viewable:hover{border-color:var(--accent);background:#fff}.file-ext{color:var(--primary);text-transform:uppercase;font-size:11px;font-weight:700}.file-name{word-break:break-all;font-size:11px;line-height:1.3}.file-size{color:#888;font-size:10px}button{cursor:pointer;white-space:nowrap;border:none;border-radius:6px;justify-content:center;align-items:center;gap:5px;font-family:inherit;font-size:13px;line-height:1.4;transition:background .13s,box-shadow .13s,transform .1s,border-color .13s,color .13s;display:inline-flex}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 0%,#d43d44 100%);transform:translateY(-1px);box-shadow:0 2px 8px #f9616766}.btn-accent:active:not(:disabled){box-shadow:none;transform:translateY(0)}.btn-ghost{color:var(--primary);border:1.5px solid var(--border);background:#fff;padding:6px 14px;font-weight:500}.btn-ghost:hover:not(:disabled){background:var(--light-bg);border-color:var(--primary)}.btn-ghost--header{color:var(--secondary);background:0 0;border-color:#cadcfc66}.btn-ghost--header:hover:not(:disabled){background:#cadcfc26;border-color:#cadcfcb3}.btn-close{color:#888;background:0 0;padding:2px 6px;font-size:20px;line-height:1}.btn-close:hover{color:var(--accent)}.btn-run{color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#1e2761 0%,#2e3d8f 100%);border-radius:6px;flex-shrink:0;padding:4px 14px;font-size:12px;font-weight:600;box-shadow:0 1px 4px #1e276140}.btn-run:hover:not(:disabled){background:linear-gradient(135deg,#2a3580 0%,#3a4ea0 100%);transform:translateY(-1px);box-shadow:0 2px 8px #1e276159}.btn-run:active:not(:disabled){box-shadow:none;transform:translateY(0)}.btn-run--rerun{color:var(--primary);border:1.5px solid var(--primary);box-shadow:none;background:#fff}.btn-run--rerun:hover:not(:disabled){background:var(--light-bg);transform:translateY(-1px);box-shadow:0 1px 4px #1e276126}[data-ai]:after{letter-spacing:0;content:"✦";border-radius:4px;flex-shrink:0;margin-left:4px;padding:1px 5px;font-size:9px;font-weight:700;line-height:1.6}.btn-run[data-ai=claude]:after{color:#ffd580;background:#ffa50047}.btn-run[data-ai=openai]:after{color:#6ee7b7;background:#34d39947}.btn-run[data-ai=tts]:after{color:#c4b5fd;background:#ffffff2e}.btn-run[data-ai=dalle]:after{color:#6ee7b7;background:#34d39947}.btn-ghost[data-ai=claude]:after,.btn-mini[data-ai=claude]:after{color:#c05621;background:#fff3e0}.btn-ghost[data-ai=openai]:after,.btn-mini[data-ai=openai]:after{color:#065f46;background:#d1fae5}.btn-ghost[data-ai=tts]:after,.btn-mini[data-ai=tts]:after{color:#6d28d9;background:#ede9fe}.btn-run--rerun[data-ai=claude]:after{color:#c05621;background:#fff3e0}.btn-run--rerun[data-ai=openai]:after{color:#065f46;background:#d1fae5}.btn-run--rerun[data-ai=tts]:after{color:#6d28d9;background:#ede9fe}.btn-run--rerun[data-ai=dalle]:after{color:#065f46;background:#d1fae5}.overlay{z-index:100;background:#12174a8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;flex-direction:column;width:100%;max-width:520px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000038}.modal--wide{max-width:860px}.modal-header{border-bottom:1px solid var(--border);background:var(--primary);color:#fff;cursor:default;border-radius:10px 10px 0 0;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.modal-header:before{content:"⠿";opacity:.35;pointer-events:none;flex-shrink:0;margin-right:8px;font-size:14px}.modal-header h2{font-size:15px}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-body--fill{flex-direction:column;display:flex;overflow:hidden}.modal-center{min-height:160px;color:var(--primary);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.hint{color:#888;font-size:12px}.modal-footer{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.field-label{color:var(--secondary,var(--primary));margin-bottom:6px;font-weight:600;display:block}.field-hint{color:#666;margin-left:4px;font-size:12px;font-weight:400}.field-input{border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:14px}.field-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1e27611f}.error-msg{color:#e02;margin-top:8px;font-size:13px}.path-section{background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);margin-top:1.2rem;padding:12px 14px}.path-section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.field-sublabel{color:#555;margin-bottom:4px;font-size:12px;font-weight:600;display:block}.toggle-label{color:var(--primary);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.path-preview{border:1px solid var(--border);word-break:break-all;background:#fff;border-radius:4px;margin-top:10px;padding:7px 10px;font-size:12px}.path-preview-label{color:#888}.path-preview code{color:var(--primary);font-family:monospace}.outline-meta{margin-bottom:14px}.outline-meta h3{color:var(--primary);font-size:18px}.outline-stats{color:#666;margin-top:4px;font-size:12px}.sections-list{border:1px solid var(--border);border-radius:var(--radius);max-height:340px;padding:4px;overflow-y:auto}.sec-item{border-bottom:1px solid var(--light-bg);padding:6px 8px}.sec-item:last-child{border-bottom:none}.sec-title{color:var(--primary);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.lec-list{margin-top:4px;padding-left:30px}.lec-item{color:#555;align-items:center;gap:8px;padding:2px 0;font-size:12px;display:flex}.lec-dur{color:var(--primary);background:var(--secondary);border-radius:3px;padding:0 5px;font-size:10px}.file-content{white-space:pre-wrap;word-break:break-all;color:var(--text-dark);background:var(--light-bg);border-radius:6px;max-height:60vh;padding:12px;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6;overflow-y:auto}.md-preview{color:var(--text-dark);text-align:left;direction:ltr;max-height:70vh;font-size:14px;line-height:1.7;overflow-y:auto}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{color:#1e293b;margin:1em 0 .4em;font-weight:700}.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{margin:.5em 0;padding-left:1.5em}.md-preview li{margin:.2em 0}.md-preview code{background:#f1f5f9;border-radius:3px;padding:2px 5px;font-family:monospace;font-size:.9em}.md-preview pre{background:#f1f5f9;border-radius:6px;padding:12px;overflow-x:auto}.md-preview blockquote{border-left:3px solid var(--primary);color:#64748b;margin:.5em 0;padding-left:1em}.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{border-bottom:2px solid var(--border);gap:4px;margin-bottom:16px;padding-bottom:0;display:flex}.tab{color:#888;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:4px 4px 0 0;margin-bottom:-2px;padding:8px 20px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s}.tab:hover{color:var(--primary)}.tab--active{color:var(--primary);border-bottom-color:var(--accent);background:0 0}.btn-edit{border:1.5px solid var(--border);color:#555;background:#fff;border-radius:5px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:600}.btn-edit:hover:not(:disabled){color:var(--primary);background:var(--light-bg);border-color:#a0a8d0}.btn-edit:disabled{opacity:.4;cursor:not-allowed}.btn-compact{color:#fff;letter-spacing:.02em;white-space:nowrap;background:linear-gradient(135deg,#0d7a5f 0%,#14a87a 100%);border-radius:6px;padding:5px 16px;font-size:12px;font-weight:600;transition:box-shadow .12s,transform .1s;box-shadow:0 1px 4px #0d7a5f47}.btn-compact:hover:not(:disabled){background:linear-gradient(135deg,#096650 0%,#0f9065 100%);transform:translateY(-1px);box-shadow:0 2px 8px #0d7a5f61}.btn-compact:active:not(:disabled){box-shadow:none;transform:translateY(0)}.btn-compact:disabled{opacity:.45;cursor:not-allowed}.edit-textarea{border:1px solid var(--border);border-radius:var(--radius);resize:vertical;box-sizing:border-box;outline:none;width:100%;min-height:320px;padding:10px;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6}.edit-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1e27611f}.sections-list{flex-direction:column;gap:6px;max-height:380px;display:flex;overflow-y:auto}.sec-item{border:1px solid var(--border);border-radius:var(--radius)}.sec-title{background:var(--light-bg);color:var(--primary);align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-weight:600;display:flex}.sec-num{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:inline-flex}.lec-list{flex-direction:column;display:flex}.lec-item{border-top:1px solid var(--light-bg);align-items:center;gap:8px;padding:4px 10px 4px 14px;font-size:12px;display:flex}.lec-item>span:first-child{color:#444;flex:1}.step-toast{border-radius:var(--radius);color:#fff;z-index:9999;padding:12px 20px;font-size:14px;font-weight:600;animation:.25s slideUp;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #0003}.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{color:#9ca3af;box-shadow:none;background:#f3f4f6;border:1.5px solid #d1d5db}.btn-run--blocked:hover:not(:disabled){box-shadow:none;background:#f3f4f6;transform:none}.compact-toggle{color:#0d7a5f;cursor:pointer;white-space:nowrap;background:#f0fdf9;border:1.5px solid #a7f3d0;border-radius:5px;flex-shrink:0;align-items:center;gap:4px;padding:2px 6px;font-size:11px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.compact-toggle:hover{background:#d1fae5;border-color:#0d7a5f}.compact-toggle input{accent-color:#0d7a5f;width:12px;height:12px}.step-resource{color:#6366f1;padding:3px 10px 5px 36px;font-size:11px;font-style:italic}.step-resource code{background:#ede9fe;border-radius:3px;padding:1px 4px;font-family:monospace}.ext-info{border-radius:var(--radius);background:#f0fdf4;border:1px solid #86efac;align-items:flex-start;gap:12px;margin-bottom:14px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.ext-info__icon{flex-shrink:0;font-size:22px}.ext-what{background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:3px;margin-bottom:4px;padding:10px 14px;font-size:13px;display:flex}.ext-what__label{color:var(--primary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.ext-what__value{color:#444}.spinner{border:3px solid var(--secondary);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-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{flex-wrap:wrap;gap:.6rem;margin-top:.4rem;display:flex}.style-card{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;flex-direction:column;align-items:center;gap:.3rem;width:96px;padding:.4rem;transition:border-color .15s,box-shadow .15s;display:flex}.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{border:1px solid #e5e7eb;border-radius:4px;flex-direction:column;width:80px;height:52px;display:flex;overflow:hidden}.style-card__bar{flex-shrink:0;height:12px}.style-card__bg{flex-direction:column;flex:1;justify-content:center;gap:3px;padding:4px 5px;display:flex}.style-card__dot{border-radius:50%;width:10px;height:10px;margin-bottom:2px}.style-card__line{border-radius:2px;width:90%;height:3px}.style-card__line--short{width:65%}.style-card__name{color:var(--text-dark);text-align:center;font-size:11px;font-weight:600}.step-param-badge{background:var(--primary);color:#fff;opacity:.85;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:600}.bg-template-grid{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:.4rem;display:grid}.bg-tpl-btn{cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:6px;flex-direction:column;align-items:center;gap:3px;padding:5px 4px;transition:border-color .12s;display:flex}.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{border:1px solid #00000012;border-radius:3px;width:100%;height:22px}.bg-tpl-label{color:#6b7280;text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:9.5px;font-weight:600;line-height:1.2;overflow:hidden}.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{flex-wrap:wrap;gap:.4rem;display:flex}.icon-style-btn{cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:6px;flex-direction:column;align-items:center;gap:2px;min-width:72px;padding:5px 10px;transition:border-color .12s;display:flex}.icon-style-btn:hover{border-color:var(--primary)}.icon-style-btn--active{border-color:var(--accent);background:#fff5f5}.icon-style-example{color:#374151;font-size:13px;line-height:1.4}.icon-style-label{color:#6b7280;font-size:10px;font-weight:600}.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{flex-wrap:wrap;gap:.4rem;display:flex}.bg-decor-btn{border:2px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;flex-direction:column;align-items:center;gap:2px;min-width:52px;padding:.3rem .55rem;transition:border-color .12s;display:flex}.bg-decor-btn:hover{border-color:var(--primary)}.bg-decor-btn--active{border-color:var(--accent);background:#fff5f5}.bg-decor-btn__icon{color:var(--primary);font-size:16px;line-height:1}.bg-decor-btn--active .bg-decor-btn__icon{color:var(--accent)}.bg-decor-btn__label{color:#6b7280;font-size:10px;font-weight:600}.bg-decor-btn--active .bg-decor-btn__label{color:var(--accent)}.style-card__tag{background:var(--accent);color:#fff;letter-spacing:.03em;text-align:center;word-break:break-word;border-radius:10px;max-width:88px;padding:1px 6px;font-size:9px;font-weight:600;line-height:1.3}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.sp-toolbar{background:var(--light-bg);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.sp-stat{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700}.sp-stat--done{color:#166534;background:#dcfce7}.sp-stat--miss{color:#991b1b;background:#fee2e2}.sp-stat--compact{color:#065f46;background:#d1fae5}.vid-badge{white-space:nowrap;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:600}.vid-badge--missing{color:#92400e;background:#fef3c7}.vid-badge--done{color:#1e40af;background:#dbeafe}.vid-badge--compact{color:#065f46;background:#d1fae5}.vid-badge--nocompact{color:#64748b;background:#f1f5f9}.sp-log{color:#e2e8f0;border-radius:var(--radius);background:#1e2761;max-height:140px;padding:8px 10px;font-family:Consolas,monospace;font-size:11px;line-height:1.5;overflow-y:auto}.sp-lec-item{gap:6px}.sp-lec-item--sel{background:#eff6ff!important}.sp-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.sp-dot--ok{background:var(--success)}.sp-dot--miss{background:#d1d5db}.sp-badge{border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:inline-flex}.sp-badge--ok{color:#166534;background:#dcfce7}.sp-badge--miss{color:#9ca3af;background:#f3f4f6}.files-panel,.files-accordion,.files-list,.files-tree{text-align:left;direction:ltr}.files-tree__folder{width:100%;display:block}.files-accordion{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.files-accordion__hdr{text-align:left;background:var(--light-bg);cursor:pointer;width:100%;color:var(--text-dark);direction:ltr;border:none;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.files-accordion__hdr:hover{background:var(--border)}.asset-modal{flex-direction:column;max-width:860px;height:80vh;display:flex}.asset-modal .modal-body{flex-direction:column;flex:1;display:flex;overflow:hidden}.asset-modal .modal-header .tab{color:#ffffffa6;border-bottom-color:#0000}.asset-modal .modal-header .tab:hover{color:#fff}.asset-modal .modal-header .tab--active{color:#fff;background:0 0;border-bottom-color:#ffffffd9}.asset-pane{flex-direction:column;gap:8px;height:100%;padding:10px 14px;display:flex;overflow:hidden}.asset-search-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.asset-color-row{flex-wrap:wrap;gap:5px;display:flex}.asset-color-dot{cursor:pointer;border:2px solid #ccc;border-radius:50%;width:20px;height:20px;transition:transform .1s}.asset-color-dot--active{transform:scale(1.25)}.asset-color-dot:hover{transform:scale(1.15)}.asset-set-chips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.asset-chip{border:1px solid var(--border);cursor:pointer;color:#555;background:#fff;border-radius:999px;padding:2px 8px;font-size:11px;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{background:#f0fdf4;border:1px solid #86efac;border-radius:6px;align-items:center;gap:10px;padding:6px 10px;font-size:13px;display:flex}.asset-icon-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:4px;padding:4px 2px;display:grid;overflow:hidden auto}.asset-placeholder{color:#999;text-align:center;grid-column:1/-1;padding:20px;font-size:12px;line-height:1.7}.asset-icon-cell{cursor:pointer;background:#fff;border:1px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;transition:border-color .12s,background .12s;display:flex}.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{color:#888;text-align:center;word-break:break-all;font-size:9px;line-height:1.2}.asset-bg-controls{flex-direction:column;gap:6px;display:flex}.asset-ctrl-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.asset-bg-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;padding:4px 2px;display:grid;overflow-y:auto}.asset-bg-cell{cursor:pointer;text-align:center;background:#fff;border:2px solid #0000;border-radius:6px;flex-direction:column;transition:border-color .12s,box-shadow .12s;display:flex;overflow:hidden}.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{color:#374151;background:#fff;padding:3px 6px;font-size:10px;font-weight:600;display:block}.asset-footer{color:#aaa;border-top:1px solid var(--border);padding-top:4px;font-size:10px}.speeches-slide-list{border:1px solid var(--border);background:#fafafa;border-radius:6px;width:100%;max-height:260px;padding:4px 0;overflow-y:auto}.speeches-section-group{padding:2px 0}.speeches-section-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;background:#f3f4f6;padding:5px 10px 3px;font-size:10px;font-weight:700}.speeches-section-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:flex}.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{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:4px 10px;font-size:12px;transition:background .1s;display:flex}.speeches-slide-row:hover:not(.speeches-slide-row--locked){background:#f0f4ff}.speeches-slide-row--locked{cursor:default;opacity:.85}.speeches-slide-title{color:#374151;flex:1}.speeches-slide-row--done .speeches-slide-title{color:#9ca3af}.speeches-slide-badge{color:#16a34a;background:#dcfce7;border-radius:999px;padding:1px 6px;font-size:9px;font-weight:600}.speeches-expand-btn{cursor:pointer;color:#9ca3af;background:0 0;border:none;padding:0 2px;font-size:9px}.speeches-expand-btn:hover{color:#374151}.speeches-speech-list{background:#fff;border-top:1px solid #f0f0f0;padding:2px 0 4px 28px}.speeches-speech-row{cursor:pointer;align-items:center;gap:7px;padding:3px 10px 3px 0;font-size:11px;display:flex}.speeches-speech-row:hover{background:#fafff5}.speeches-speech-name{color:#374151;flex:1}.speeches-speech-row--disabled .speeches-speech-name{color:#9ca3af;text-decoration:line-through}.speeches-sp-status{color:#6b7280;cursor:pointer;white-space:nowrap;padding:0 4px;font-size:10px}.speeches-sp-status:hover,.asset-footer a{color:var(--primary)}.asset-source-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:4px 2px;display:grid;overflow-y:auto}.asset-source-card{border:2px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;padding:10px;transition:border-color .12s,box-shadow .12s}.asset-source-card:hover{box-shadow:var(--shadow);border-color:#9ca3af}.asset-source-card--active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:#fff5f5}.asset-source-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.asset-source-name{color:var(--text-dark);font-size:13px;font-weight:700}.asset-source-style{color:#6b7280;margin-top:2px;font-size:10px;line-height:1.4}.asset-source-link{color:var(--primary);white-space:nowrap;flex-shrink:0;font-size:10px;text-decoration:none}.asset-source-link:hover{text-decoration:underline}.asset-source-examples{flex-wrap:wrap;gap:5px;display:flex}.asset-source-icon{flex-direction:column;align-items:center;gap:2px;display:flex}:root{--accent:#6d5ef0;--accent-2:#574fd6;--danger:#e5484d;--surface:#fff;--surface-2:#f6f8fc;--text-mut:#6b7192;--text-muted:#6b7192;--text-secondary:#555b74;--text-disabled:#9aa2ba}.btn-accent{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);box-shadow:0 1px 4px #6d5ef04d}.btn-accent:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-2) 0%, #453cc0 100%);box-shadow:0 2px 8px #6d5ef06b}.btn-run,.btn-mini--run{box-shadow:0 1px 4px #6d5ef047;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%)!important}.btn-run:hover:not(:disabled),.btn-mini--run:hover:not(:disabled){box-shadow:0 2px 8px #6d5ef066;background:linear-gradient(135deg, var(--accent-2) 0%, #453cc0 100%)!important}.run-item--active{background:#6d5ef0e6}.run-item--active:hover{background:#6d5ef0}.style-card--selected{box-shadow:0 0 0 2px #6d5ef040}.app[data-theme=dark]{--bg:#141a2e;--text:#e6ebf5;--text-dark:#e6ebf5;--light-bg:#1e2740;--border:#2c3552;--secondary:#9fb0d8;--surface:#1a2137;--surface-2:#232c47;--text-mut:#96a1c0;--text-muted:#96a1c0;--text-secondary:#b6c0dc;--text-disabled:#5b6683;color:var(--text);background:#0e1322!important}.app[data-theme=dark] .steps-panel,.app[data-theme=dark] .log-panel,.app[data-theme=dark] .files-panel,.app[data-theme=dark] .card,.app[data-theme=dark] .panel{background:var(--surface)!important;border-color:var(--border)!important}.app[data-theme=dark] .steps-header h2,.app[data-theme=dark] .log-panel h2,.app[data-theme=dark] .files-panel h2,.app[data-theme=dark] .course-title,.app[data-theme=dark] .content h1,.app[data-theme=dark] .content h2,.app[data-theme=dark] .content h3{color:var(--text)!important}.app[data-theme=dark] .course-subtitle,.app[data-theme=dark] .course-path,.app[data-theme=dark] .step-desc,.app[data-theme=dark] .field-hint,.app[data-theme=dark] .field-sublabel,.app[data-theme=dark] .hint,.app[data-theme=dark] .param-hint,.app[data-theme=dark] .file-size,.app[data-theme=dark] .files-empty,.app[data-theme=dark] .empty-state p,.app[data-theme=dark] .tab,.app[data-theme=dark] .progress-label,.app[data-theme=dark] .outline-stats,.app[data-theme=dark] .step-block--done .step-label{color:var(--text-mut)!important}.app[data-theme=dark] .btn-ghost,.app[data-theme=dark] .btn-run--rerun,.app[data-theme=dark] .btn-mini,.app[data-theme=dark] .btn-edit,.app[data-theme=dark] .content .field-input{background:var(--surface-2)!important;color:var(--text)!important;border-color:var(--border)!important}.app[data-theme=dark] .btn-ghost:hover:not(:disabled),.app[data-theme=dark] .btn-mini:hover:not(:disabled),.app[data-theme=dark] .btn-run--rerun:hover:not(:disabled){background:var(--light-bg)!important}.app[data-theme=dark] .step-block{background:var(--surface-2);border-color:var(--border)}.app[data-theme=dark] .step-block:hover{background:var(--light-bg)}.app[data-theme=dark] .step-label{color:var(--text)}.app[data-theme=dark] .tab-bar{border-bottom-color:var(--border)}.app[data-theme=dark] .tab--active{color:var(--text)!important}[data-theme=dark] .modal{color:#e6ebf5!important;background:#171d33!important;border-color:#2c3552!important}[data-theme=dark] .modal-body{color:#e6ebf5!important;background:#171d33!important}[data-theme=dark] .modal-header h2{color:#fff!important}[data-theme=dark] .modal input:not([type=checkbox]):not([type=radio]),[data-theme=dark] .modal textarea,[data-theme=dark] .modal select,[data-theme=dark] .modal .field-input,[data-theme=dark] .modal pre{color:#e6ebf5!important;background:#10152a!important;border-color:#2c3552!important}[data-theme=dark] .modal .btn-mini,[data-theme=dark] .modal .btn-ghost,[data-theme=dark] .modal .btn-edit,[data-theme=dark] .modal .btn-run--rerun{color:#e6ebf5!important;background:#222c47!important;border-color:#2c3552!important}[data-theme=dark] .modal .sections-list,[data-theme=dark] .modal .sec-item{border-color:#2c3552!important}[data-theme=dark] .modal .sec-title{color:#e6ebf5!important;background:#202a49!important}[data-theme=dark] .modal .lec-item{border-color:#232c47!important}[data-theme=dark] .modal .lec-item:hover{background:#202844!important}[data-theme=dark] .modal .lec-item>span:first-child{color:#cfd6e6!important}[data-theme=dark] .modal .sp-lec-item--sel{background:#2b3168!important}[data-theme=dark] .modal .sp-stat--done{color:#4ade80!important;background:#113a24!important}[data-theme=dark] .modal .sp-stat--miss{color:#f87171!important;background:#3a1620!important}[data-theme=dark] .modal .sp-toolbar{background:#10152a!important;border-color:#2c3552!important}[data-theme=dark] .modal .hint,[data-theme=dark] .modal .field-hint,[data-theme=dark] .modal .field-sublabel,[data-theme=dark] .modal .param-hint,[data-theme=dark] .modal .step-desc,[data-theme=dark] .modal .outline-stats,[data-theme=dark] .modal .course-subtitle{color:#96a1c0!important}[data-theme=dark] .modal .md-preview code,[data-theme=dark] .modal .md-preview pre,[data-theme=dark] .modal .md-preview th,[data-theme=dark] .modal .path-preview{color:#e6ebf5!important;background:#10152a!important;border-color:#2c3552!important}[data-theme=dark] .modal .style-card,[data-theme=dark] .modal .file-card,[data-theme=dark] .modal .asset-chip{color:#e6ebf5!important;background:#202844!important;border-color:#2c3552!important}.app:not([data-theme=dark]) .modal,.app:not([data-theme=dark]) .modal-body{color:#1a1a2e}.modal .sections-list>.sec-item{flex-shrink:0!important;overflow:visible!important}.modal .sec-title{flex-shrink:0;min-height:2.3em;line-height:1.5}.modal .lec-list>*{flex-shrink:0}.app{--file-text:#161d2e;--file-mut:#74819a}.app[data-theme=dark]{--file-text:#e6ebf5;--file-mut:#9aa3bf}[data-theme=dark] .delete-warning{color:#fecaca!important;background:#3a1620!important;border-color:#7f1d1d!important}[data-theme=dark] .delete-warning strong{color:#fee2e2!important}[data-theme=dark] .delete-course-name{color:#e6ebf5!important;background:#10152a!important;border-color:#2c3552!important}[data-theme=dark] .modal--delete .field-label,[data-theme=dark] .modal--delete .field-input{color:#e6ebf5!important}[data-theme=dark] .modal--delete .field-input{background:#10152a!important;border-color:#2c3552!important}@media (width<=820px){.app{height:100dvh}.layout{flex-direction:column;overflow:hidden}.sidebar{box-sizing:border-box;border-right:none;border-bottom:2px solid var(--accent,#4338ca);-webkit-overflow-scrolling:touch;touch-action:pan-y;flex-shrink:0;width:100%;max-height:34vh}.content{-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:12px;overflow-x:hidden}.panels{gap:10px;flex-direction:column!important;height:auto!important;overflow:visible!important}.panels>.steps-panel,.panels>.log-panel{flex:auto!important;width:100%!important;min-width:0!important}.panels>.log-panel{min-height:300px;overflow:hidden}.panels>div{display:none!important}.step-block{flex-wrap:wrap}.app-header{flex-wrap:wrap;gap:6px;height:auto;min-height:52px;padding:8px 12px}.app-header>div{flex-wrap:wrap;row-gap:6px}.logo{font-size:14px}.course-path{max-width:100%}}@media (width<=600px){.overlay{padding:8px}.modal,.modal--wide{max-width:100%;max-height:94dvh}.modal-header{padding:11px 14px}.modal-header h2{font-size:14px}.modal-header:before{display:none}.modal-body{-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:14px}.modal-footer{flex-wrap:wrap}}@media (width<=480px){.content{padding:9px}.sidebar{max-height:28vh}}
