*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--surface2: #22263a;--border: #2e3347;--text: #e8eaf0;--text-muted: #7c8099;--accent: #5b6ef5;--accent-hover: #4a5ce0;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--sidebar-w: 240px}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5}button{cursor:pointer;border:none;background:none;color:inherit;font:inherit}input{font:inherit}ul{list-style:none}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-muted)}.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem;width:340px;display:flex;flex-direction:column;gap:1.25rem}.login-card h1{font-size:1.25rem;font-weight:600;text-align:center}.login-card form{display:flex;flex-direction:column;gap:.75rem}.login-card input{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.625rem .875rem;color:var(--text);outline:none;transition:border-color .15s}.login-card input:focus{border-color:var(--accent)}.login-card button[type=submit]{background:var(--accent);color:#fff;border-radius:8px;padding:.625rem;font-weight:500;transition:background .15s}.login-card button[type=submit]:hover{background:var(--accent-hover)}.login-card button:disabled{opacity:.6;cursor:not-allowed}.login-card .error{color:var(--danger);font-size:.85rem}.dashboard{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.sidebar-header{padding:1rem;border-bottom:1px solid var(--border)}.sidebar-title{font-weight:600;font-size:.95rem}.sidebar-search{padding:.75rem;border-bottom:1px solid var(--border)}.sidebar-search input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.4rem .65rem;color:var(--text);outline:none}.sidebar-nav{flex:1;padding:.5rem 0;overflow-y:auto}.sidebar-category{margin-bottom:.25rem}.category-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.4rem 1rem;color:var(--text-muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.category-header:hover{color:var(--text)}.sidebar-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.4rem 1rem .4rem 1.25rem;border-radius:0;color:var(--text-muted);transition:background .1s,color .1s;text-align:left}.sidebar-item:hover{background:var(--surface2);color:var(--text)}.sidebar-item.active{background:var(--surface2);color:var(--text);font-weight:500}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-live,.status-active{background:var(--success)}.status-in-progress{background:var(--warning)}.status-paused,.status-not-live,.status-offline,.status-draft{background:var(--text-muted)}.sidebar-status-tabs{display:flex;gap:4px;padding:0 12px 10px}.status-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 6px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:11px;cursor:pointer;transition:background .15s,color .15s}.status-tab:hover{background:var(--surface2);color:var(--text)}.status-tab.active{background:var(--surface2);color:var(--text);border-color:var(--accent);font-weight:500}.status-tab-count{font-size:10px;opacity:.65}.location-group{list-style:none}.location-group-header{width:100%;display:flex;align-items:center;gap:6px;padding:5px 12px;background:transparent;border:none;color:var(--text-muted);font-size:12.5px;cursor:pointer;border-radius:6px;text-align:left;transition:background .15s,color .15s}.location-group-header:hover{background:var(--surface2);color:var(--text)}.location-group-name{flex:1;font-weight:500}.location-group-count{font-size:10px;background:var(--surface2);border-radius:10px;padding:1px 6px;color:var(--text-muted)}.location-group-chevron{font-size:10px}.location-group-items{padding-left:0;list-style:none}.sidebar-item-indent{padding-left:26px!important}.sidebar-item-name{flex:1}.inprog-badge{font-size:11px;opacity:.75;flex-shrink:0}.sidebar-footer{padding:.75rem 1rem;border-top:1px solid var(--border)}.logout-btn{width:100%;padding:.4rem;border-radius:6px;color:var(--text-muted);font-size:.85rem;text-align:left}.logout-btn:hover{color:var(--danger)}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.tunnel-bar{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.tunnel-label{font-size:12px;color:var(--text-muted);font-weight:600;white-space:nowrap}.tunnel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:background .3s}.tunnel-unknown{background:var(--text-muted)}.tunnel-online{background:var(--success);box-shadow:0 0 6px #22c55e99}.tunnel-offline{background:var(--danger)}.tunnel-input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;color:var(--text);font:inherit;font-size:12px;outline:none;min-width:0}.tunnel-input:focus{border-color:var(--accent)}.tunnel-btn{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--text-muted);white-space:nowrap;transition:color .15s,border-color .15s}.tunnel-btn:hover{color:var(--text);border-color:var(--accent)}.tunnel-btn:disabled{opacity:.5;cursor:not-allowed}.main-content{flex:1;overflow-y:auto;padding:1.5rem 2rem}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.pill{padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500}.pill-live{background:#16402a;color:#34d399}.pill-paused{background:#2e2a1a;color:#fbbf24}.pill-notlive{background:#1e1e2e;color:#94a3b8}.project-view,.campaign-detail{max-width:860px}.project-header{margin-bottom:28px}.project-title-row{display:flex;align-items:center;gap:12px;margin-bottom:6px}.project-title-row h1{font-size:1.5rem;font-weight:700}.project-desc{color:var(--text-muted);font-size:14px;margin-bottom:8px}.project-meta{display:flex;gap:16px;font-size:13px;color:var(--text-muted)}.section-header{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.loading-inline{color:var(--text-muted);font-size:14px;padding:12px 0}.empty-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;color:var(--text-muted);text-align:center}.campaign-list{display:flex;flex-direction:column;gap:10px}.campaign-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,background .15s}.campaign-card:hover{border-color:var(--accent);background:var(--surface2)}.cc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.cc-name{font-weight:600;font-size:14px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-status{font-size:13px;white-space:nowrap}.cc-meta{font-size:12px;color:var(--text-muted)}.cc-alert{font-size:12px;color:#fbbf24;margin-top:6px}.cc-icon-btn{background:none;border:none;cursor:pointer;padding:2px 4px;font-size:13px;opacity:.4;transition:opacity .15s;border-radius:4px;line-height:1}.cc-icon-btn:hover{opacity:1;background:var(--surface)}.campaign-card-editing{cursor:default;border-color:var(--accent)!important}.cc-edit-row{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.cc-edit-actions{display:flex;gap:8px}.campaign-card-danger{cursor:default;border-color:var(--danger)!important;background:#ef44440d!important}.btn-danger{background:var(--danger);color:#fff;padding:6px 16px;border-radius:6px;font-size:13px;font-weight:600;border:none;cursor:pointer}.btn-danger:hover{background:#dc2626}.cc-expanded{border-top:1px solid var(--border);margin-top:10px;padding-top:12px}.cc-insights-block{background:var(--bg);border-radius:6px;padding:10px 12px}.cc-insights-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.btn-primary{background:var(--accent);color:#fff;padding:6px 14px;border-radius:7px;font-size:13px;font-weight:500;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface2);color:var(--text-muted);padding:6px 14px;border-radius:7px;font-size:13px}.btn-secondary:hover{color:var(--text)}.back-btn{color:var(--text-muted);font-size:13px;margin-bottom:16px;padding:0}.back-btn:hover{color:var(--text)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;width:400px}.modal h2{font-size:1.1rem;margin-bottom:16px}.modal-fields{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.detail-header{margin-bottom:24px}.steps-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.step-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .15s}.step-item.step-done{border-color:#16402a}.step-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer}.step-header:hover{background:var(--surface2)}.step-header-left{display:flex;align-items:center;gap:10px}.step-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted);flex-shrink:0}.step-check-done{background:#16402a;border-color:#34d399;color:#34d399;font-size:12px}.step-icon{font-size:16px}.step-title{font-size:14px;font-weight:500}.step-arrow{color:var(--text-muted);font-size:11px}.step-body{padding:14px 16px;border-top:1px solid var(--border)}.step-locked{font-size:13px;color:#fbbf24;padding:8px 0}.step-fields{display:flex;flex-direction:column;gap:12px}.step-field{display:flex;flex-direction:column;gap:5px}.step-field label{font-size:12px;color:var(--text-muted);font-weight:500}.step-input{background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:8px 10px;color:var(--text);outline:none;font:inherit;transition:border-color .15s;width:100%}.step-input:focus{border-color:var(--accent)}.step-textarea{background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:8px 10px;color:var(--text);outline:none;font:inherit;resize:vertical;width:100%;min-height:80px;transition:border-color .15s}.step-textarea:focus{border-color:var(--accent)}.step-ai-btn{background:var(--accent);color:#fff;padding:8px 16px;border-radius:7px;font-size:13px;font-weight:500;margin-top:10px;width:100%;transition:background .15s}.step-ai-btn:hover{background:var(--accent-hover)}.step-ai-btn:disabled{opacity:.5;cursor:not-allowed}.step-save-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:7px 14px;border-radius:7px;font-size:13px;transition:background .15s}.step-save-btn:hover{background:var(--border)}.step-save-btn.btn-approve{background:#16402a;border-color:#34d399;color:#34d399}.step-save-btn.btn-approve:hover{background:#1a4f34}.step-result{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:12px}.step-result-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px}.step-result-content{font-size:13px;line-height:1.6;white-space:pre-wrap}.feedback-row{margin-top:12px}.feedback-input{background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:8px 10px;color:var(--text);font:inherit;width:100%;min-height:60px;resize:vertical;outline:none}.feedback-input:focus{border-color:var(--accent)}.quickstart-box{background:linear-gradient(135deg,#1a1f35,#1e2540);border:1px solid var(--accent);border-radius:10px;padding:16px;margin-bottom:20px}.qs-title{font-weight:700;font-size:15px;margin-bottom:4px}.qs-sub{font-size:13px;color:var(--text-muted)}.newinfo-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-top:24px}.newinfo-header{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 16px;cursor:pointer}.newinfo-header:hover{background:var(--surface2)}.newinfo-title{font-weight:600;font-size:14px;margin-bottom:2px}.newinfo-sub{font-size:12px;color:var(--text-muted)}.newinfo-body{padding:14px 16px;border-top:1px solid var(--border)}.hook-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:7px;border:1px solid var(--border);cursor:pointer;transition:background .1s}.hook-row:hover{background:var(--surface2)}.hook-row.hook-active{background:var(--surface2);border-color:var(--accent)}.provider-btn{padding:6px 14px;border-radius:7px;border:1px solid var(--border);font-size:13px;color:var(--text-muted);transition:all .15s}.provider-btn:hover{border-color:var(--accent);color:var(--text)}.provider-btn.provider-active{border-color:var(--accent);background:#5b6ef526;color:var(--text)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-top:10px}.img-card{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.img-card:hover .img-actions{opacity:1}.generated-img{width:100%;display:block;aspect-ratio:9/16;object-fit:cover}.img-actions{position:absolute;bottom:0;left:0;right:0;display:flex;gap:4px;padding:6px;background:linear-gradient(transparent,#000000bf);opacity:0;transition:opacity .2s}.img-btn{flex:1;background:#ffffff26;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:5px;padding:4px;font-size:13px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s}.img-btn:hover{background:#ffffff4d}.img-btn-delete:hover{background:#ef444480}.sidebar-meta-section{padding:8px 0;border-top:1px solid var(--border);margin-top:auto}.meta-connect-view{max-width:860px}.meta-header{margin-bottom:24px}.meta-connect-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;max-width:540px}.meta-connect-title{font-weight:600;font-size:15px;margin-bottom:12px}.meta-connect-steps{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;color:var(--text-muted)}.meta-connect-steps a{color:var(--accent)}.meta-connect-steps code{background:var(--surface2);padding:1px 5px;border-radius:4px;font-size:12px;color:var(--text)}.meta-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:7px;padding:10px 12px;font-size:13px;color:var(--danger)}.meta-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px}.meta-stat{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.meta-stat-val{font-size:1.4rem;font-weight:700}.meta-stat-label{font-size:12px;color:var(--text-muted);margin-top:2px}.meta-insights{padding:12px 0 4px;border-top:1px solid var(--border);margin-top:8px}.meta-insights-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mi-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:2px}.mi-val{font-size:14px;font-weight:600}.mapping-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}.mapping-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px;width:100%;max-width:860px}.meta-mapping h2{font-size:1.15rem;font-weight:700}.mapping-table{display:flex;flex-direction:column;gap:6px}.mapping-header{display:grid;grid-template-columns:24px 2fr 1.5fr 1fr;gap:10px;padding:0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.mapping-row{display:grid;grid-template-columns:24px 2fr 1.5fr 1fr;gap:10px;align-items:start;background:var(--surface2);border-radius:8px;padding:10px;transition:opacity .15s}.mapping-meta-name{display:flex;flex-direction:column;gap:2px}.mapping-meta-name span:first-child{font-size:13px;font-weight:500}.mapping-adsets{font-size:11px;color:var(--text-muted)}.mapping-row-wrapper{display:flex;flex-direction:column;gap:6px}.new-project-inline{display:flex;gap:8px;align-items:center;padding:10px 12px;background:#5b6ef514;border:1px solid rgba(91,110,245,.25);border-radius:8px;flex-wrap:wrap}.new-project-inline .step-input{flex:1;min-width:140px}.split-toggle{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none}.split-toggle input[type=checkbox]{accent-color:var(--accent);width:13px;height:13px;cursor:pointer}.adset-rows{display:flex;flex-direction:column;gap:4px;padding-left:16px}.adset-row{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:10px;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.adset-name{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checklist{display:flex;flex-direction:column;gap:8px}.check-row{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}.check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.api-keys-box{background:#5b6ef512;border:1px solid rgba(91,110,245,.25);border-radius:10px;padding:16px;margin-bottom:14px}.api-keys-title{font-size:13px;font-weight:600;margin-bottom:10px}.video-anim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:8px}.video-anim-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface);display:flex;flex-direction:column;gap:4px}.video-anim-img-wrap{position:relative;border-radius:6px;overflow:hidden}.video-anim-img{width:100%;aspect-ratio:9/16;object-fit:cover;display:block}.video-anim-idx{position:absolute;top:6px;left:6px;background:#0000008c;color:#fff;font-size:11px;padding:2px 7px;border-radius:10px}.video-anim-preview{width:100%;aspect-ratio:9/16;border-radius:6px;margin-top:6px;background:#000}.spin-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warning);margin-left:5px;animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.vo-section{border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:12px;background:var(--surface)}.srt-preview{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;font-size:11px;font-family:monospace;color:var(--text-muted);white-space:pre-wrap;max-height:160px;overflow-y:auto;margin-top:8px}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.settings-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:440px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-weight:600;font-size:15px}.settings-close{color:var(--text-muted);font-size:16px;line-height:1;padding:4px 8px;border-radius:6px}.settings-close:hover{background:var(--surface2);color:var(--text)}.settings-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px}.settings-section{border:1px solid var(--border);border-radius:10px;padding:14px}.settings-section-title{font-size:13px;font-weight:600;margin-bottom:4px}.settings-hint{font-size:11px;color:var(--text-muted);margin-bottom:2px}.settings-footer{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:14px 20px;border-top:1px solid var(--border)}.api-keys-missing{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:8px;padding:14px;font-size:13px;color:var(--warning);line-height:1.5}.chat-fab{position:fixed;bottom:24px;right:24px;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #5b6ef573;z-index:900;transition:background .15s,transform .15s}.chat-fab:hover{background:var(--accent-hover);transform:scale(1.05)}.chat-fab-open{background:var(--surface2);color:var(--text-muted);box-shadow:none}.chat-panel{position:fixed;bottom:82px;right:24px;width:380px;height:520px;max-height:calc(100vh - 120px);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px #00000073;z-index:899;display:flex;flex-direction:column;overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.chat-header-title{font-weight:600;font-size:14px}.chat-header-ctx{font-size:12px;color:var(--text-muted)}.chat-clear{color:var(--text-muted);font-size:14px;padding:4px 6px;border-radius:6px}.chat-clear:hover{background:var(--surface2);color:var(--danger)}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.chat-empty{text-align:center;padding-top:20px}.chat-empty-title{font-size:13px;color:var(--text-muted);margin-bottom:14px}.chat-suggestions{display:flex;flex-direction:column;gap:6px}.chat-suggestion{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--text-muted);text-align:left;cursor:pointer;transition:border-color .15s,color .15s}.chat-suggestion:hover{border-color:var(--accent);color:var(--text)}.chat-msg{display:flex}.chat-msg-user{justify-content:flex-end}.chat-msg-assistant{justify-content:flex-start}.chat-msg-bubble{max-width:85%;padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.chat-msg-user .chat-msg-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-msg-assistant .chat-msg-bubble{background:var(--surface2);color:var(--text);border-bottom-left-radius:4px}.chat-loading{display:flex;gap:5px;align-items:center;padding:10px 14px}.chat-loading span{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:chat-bounce 1.2s infinite}.chat-loading span:nth-child(2){animation-delay:.2s}.chat-loading span:nth-child(3){animation-delay:.4s}@keyframes chat-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0;align-items:flex-end}.chat-input{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font:inherit;font-size:13px;resize:none;outline:none;line-height:1.4}.chat-input:focus{border-color:var(--accent)}.chat-send{width:36px;height:36px;border-radius:8px;background:var(--accent);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.chat-send:hover:not(:disabled){background:var(--accent-hover)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.step-check{transition:background .15s,color .15s}.step-check-manual{cursor:pointer}.step-check-manual:hover{background:#5b6ef533;color:var(--accent);border-color:var(--accent)}.btn-meta-create{padding:4px 12px;border-radius:20px;border:1px solid #1877f2;color:#1877f2;font-size:12px;font-weight:500;background:#1877f214;transition:background .15s;cursor:pointer;white-space:nowrap}.btn-meta-create:hover{background:#1877f22e}.meta-wizard{max-width:560px;width:100%;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:600;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:0;flex-shrink:0}.modal-body{flex:1;overflow-y:auto;padding:16px 0 4px}.modal-hint{font-size:12px;color:var(--text-muted);margin-bottom:12px;line-height:1.5}.field-hint{font-size:11px;color:var(--text-muted);margin-top:3px;display:block}.wizard-steps{display:flex;align-items:flex-start;gap:0;margin:12px 0 4px;flex-shrink:0}.wizard-step-dot{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;cursor:default}.wizard-step-dot.done{cursor:pointer}.wizard-step-dot:after{content:"";position:absolute;top:11px;left:50%;right:-50%;height:2px;background:var(--border)}.wizard-step-dot:last-child:after{display:none}.wizard-step-dot.done:after{background:var(--accent)}.wizard-step-num{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--surface);position:relative;z-index:1;transition:all .2s}.wizard-step-dot.active .wizard-step-num{border-color:var(--accent);background:var(--accent);color:#fff}.wizard-step-dot.done .wizard-step-num{border-color:var(--success);background:var(--success);color:#fff;font-size:13px}.wizard-step-label{font-size:10px;color:var(--text-muted);margin-top:4px;text-align:center;white-space:nowrap}.wizard-step-dot.active .wizard-step-label{color:var(--accent)}.wizard-step-dot.done .wizard-step-label{color:var(--success)}.video-ad-row{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.shot-gen-row{display:flex;align-items:flex-start;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;transition:border-color .15s}.shot-gen-row:hover{border-color:var(--accent)}
