:root{--bg-body: #080a10;--bg-primary: #0c0e16;--bg-card: #121520;--bg-card-solid: #121520;--bg-card-hover: #181c2a;--bg-input: #0e1018;--border: #1e2235;--border-light: #272b40;--text-primary: #e8eaf2;--text-secondary: #8890a8;--text-muted: #4a506a;--accent: #6366f1;--accent-hover: #818cf8;--accent-glow: rgba(99,102,241,.15);--green: #10b981;--green-bg: rgba(16,185,129,.08);--red: #ef4444;--red-bg: rgba(239,68,68,.08);--orange: #f59e0b;--orange-bg: rgba(245,158,11,.08);--blue: #3b82f6;--blue-bg: rgba(59,130,246,.08);--cyan: #06b6d4;--purple: #a855f7;--pink: #ec4899;--error: #ef4444;--warning: #f59e0b;--running: #3b82f6;--gradient-accent: linear-gradient(135deg, #6366f1, #8b5cf6);--gradient-green: linear-gradient(135deg, #10b981, #34d399);--gradient-red: linear-gradient(135deg, #ef4444, #f87171);--shadow-card: 0 1px 3px rgba(0,0,0,.3), 0 0 0 1px var(--border);--shadow-glow: 0 0 20px rgba(99,102,241,.1)}[data-theme=light]{--bg-body: #f0f2f8;--bg-primary: #f7f8fc;--bg-card: #ffffff;--bg-card-solid: #ffffff;--bg-card-hover: #eef0f6;--bg-input: #ffffff;--border: #e0e3ec;--border-light: #d0d4e0;--text-primary: #1a1d2e;--text-secondary: #5c6072;--text-muted: #9498ae;--accent: #6366f1;--accent-hover: #4f46e5;--accent-glow: rgba(99,102,241,.1);--green: #059669;--green-bg: rgba(5,150,105,.08);--red: #dc2626;--red-bg: rgba(220,38,38,.08);--orange: #d97706;--orange-bg: rgba(217,119,6,.08);--blue: #2563eb;--blue-bg: rgba(37,99,235,.08);--cyan: #0891b2;--purple: #9333ea;--pink: #db2777;--error: #dc2626;--warning: #d97706;--running: #2563eb;--gradient-accent: linear-gradient(135deg, #6366f1, #8b5cf6);--gradient-green: linear-gradient(135deg, #059669, #34d399);--gradient-red: linear-gradient(135deg, #dc2626, #f87171);--shadow-card: 0 1px 3px rgba(0,0,0,.06), 0 0 0 1px var(--border);--shadow-glow: 0 0 20px rgba(99,102,241,.06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,sans-serif;background:var(--bg-body);color:var(--text-primary);min-height:100vh;font-size:13px;-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}[data-theme=light] ::-webkit-scrollbar-thumb{background:#c4c8d8}.theme-toggle-btn{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;color:var(--text-secondary);font-size:12.5px;transition:all .15s;width:100%;border:none;background:none;text-align:left;font-family:inherit}.theme-toggle-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.theme-toggle-btn svg{width:16px;height:16px;flex-shrink:0}.app-layout{display:flex;min-height:100vh}.dataviz-content{margin-left:240px;flex:1;min-height:100vh;padding:24px 28px;max-width:calc(100vw - 240px);overflow-x:hidden}.sidebar{width:240px;background:var(--bg-primary);border-right:1px solid var(--border);position:fixed;height:100vh;display:flex;flex-direction:column;z-index:50}.sidebar-brand{padding:20px 20px 16px;border-bottom:1px solid var(--border)}.sidebar-brand h1{font-size:16px;font-weight:800;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.5px}.sidebar-brand .subtitle{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-top:2px}.sidebar-nav{padding:12px 10px;flex:1}.nav-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);padding:12px 10px 6px}.nav-btn{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;color:var(--text-secondary);font-size:12.5px;transition:all .15s;width:100%;border:none;background:none;text-align:left;font-family:inherit}.nav-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.nav-btn.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #6366f14d}.nav-btn svg{width:16px;height:16px;flex-shrink:0}.nav-btn .badge{margin-left:auto;font-size:10px;padding:1px 7px;border-radius:10px;background:var(--bg-body)}.nav-btn.active .badge{background:#fff3}.sidebar-footer{padding:14px 20px;border-top:1px solid var(--border);display:none}.sidebar-footer a{font-size:11px;color:var(--text-muted);text-decoration:none;display:flex;align-items:center;gap:6px}.sidebar-footer a:hover{color:var(--accent-hover)}.main-area{flex:1;margin-left:240px}.topbar{padding:16px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg-primary);position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar h2{font-size:18px;font-weight:700;letter-spacing:-.3px}.topbar-controls{display:flex;gap:8px;align-items:center}.date-input{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:7px 12px;color:var(--text-primary);font-size:12px;font-family:inherit;outline:none}.date-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.period-btn{padding:6px 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:11.5px;cursor:pointer;font-family:inherit;transition:all .15s}.period-btn:hover{border-color:var(--accent);color:var(--text-primary)}.period-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.content{padding:24px 32px 48px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:28px}.kpi-card{background:var(--bg-card-solid);border:1px solid var(--border);border-radius:12px;padding:18px 20px;position:relative;overflow:hidden;transition:all .2s}.kpi-card:hover{border-color:var(--border-light);transform:translateY(-1px);box-shadow:var(--shadow-glow)}.kpi-card .kpi-label{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.kpi-card .kpi-value{font-size:26px;font-weight:800;letter-spacing:-.5px;line-height:1.1}.kpi-card .kpi-sub{font-size:11px;color:var(--text-secondary);margin-top:6px;display:flex;align-items:center;gap:4px}.kpi-card .kpi-sub .up{color:var(--green)}.kpi-card .kpi-sub .down{color:var(--red)}.kpi-card .kpi-accent{position:absolute;top:0;left:0;right:0;height:3px}.kpi-card .kpi-icon{position:absolute;top:14px;right:16px;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.chart-grid.full{grid-template-columns:1fr}.chart-card{background:var(--bg-card-solid);border:1px solid var(--border);border-radius:12px;padding:20px 22px}.chart-card h3{font-size:13px;font-weight:600;margin-bottom:4px}.chart-card .chart-subtitle{font-size:11px;color:var(--text-muted);margin-bottom:16px}.chart-container{position:relative;width:100%}.chart-container canvas{width:100%!important}.waterfall-table{width:100%;border-collapse:separate;border-spacing:0}.waterfall-table th{text-align:left;padding:8px 14px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-body);border-bottom:1px solid var(--border);position:sticky;top:0}.waterfall-table th:not(:first-child){text-align:right}.waterfall-table td{padding:9px 14px;font-size:12.5px;border-bottom:1px solid var(--border)}.waterfall-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;font-family:Inter,monospace}.waterfall-table tr:hover td{background:var(--bg-card-hover)}.waterfall-table .row-header{color:var(--green);font-weight:600}.waterfall-table .row-expense{color:var(--red)}.waterfall-table .row-subtotal{font-weight:700;border-top:2px solid var(--border-light);background:#6366f108}.waterfall-table .row-total{font-weight:800;font-size:13px;border-top:2px solid var(--accent);background:#6366f10f}.waterfall-table .positive{color:var(--green)}.waterfall-table .negative{color:var(--red)}.waterfall-table .pct{color:var(--text-muted);font-size:11px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.loading-text{color:var(--text-muted);font-size:13px}.ai-layout{display:flex;height:calc(100vh - 57px);overflow:hidden}.ai-results{flex:1;overflow-y:auto;padding:24px 28px}.ai-chat-panel{width:380px;min-width:380px;border-left:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg-primary)}.ai-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ai-msg{max-width:92%;padding:10px 14px;border-radius:12px;font-size:12.5px;line-height:1.55;word-wrap:break-word}.ai-msg.user,.ai-msg.error{white-space:pre-wrap}.ai-msg.assistant strong{font-weight:600;color:var(--text-primary)}.ai-msg.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.ai-msg.assistant{align-self:flex-start;background:var(--bg-card-solid);border:1px solid var(--border);border-bottom-left-radius:4px;color:var(--text-primary)}.ai-msg.error{align-self:flex-start;background:var(--red-bg);border:1px solid rgba(239,68,68,.2);color:var(--red)}.ai-msg.thinking{align-self:flex-start;background:var(--bg-card-solid);border:1px solid var(--border);color:var(--text-muted);font-style:italic}.ai-msg.thinking:after{content:"";display:inline-block;width:12px;animation:dots 1.4s infinite}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.ai-input-area{padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:flex-end}.ai-input-area textarea{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--text-primary);font-size:12.5px;font-family:inherit;resize:none;outline:none;min-height:42px;max-height:120px;line-height:1.4}.ai-input-area textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.ai-input-area textarea::placeholder{color:var(--text-muted)}.ai-send-btn{width:38px;height:38px;border-radius:10px;border:none;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.ai-send-btn:hover{background:var(--accent-hover)}.ai-send-btn:disabled{opacity:.4;cursor:not-allowed}.ai-send-btn svg{width:16px;height:16px}.ai-suggestions{padding:8px 16px 0;display:flex;flex-wrap:wrap;gap:6px}.ai-chip{padding:6px 12px;border-radius:20px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s;font-family:inherit;white-space:nowrap}.ai-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.ai-welcome{text-align:center;padding:60px 24px;color:var(--text-muted)}.ai-welcome h3{font-size:16px;color:var(--text-primary);margin-bottom:8px;font-weight:700}.ai-welcome p{font-size:12.5px;line-height:1.6}.ai-result-card{background:var(--bg-card-solid);border:1px solid var(--border);border-radius:12px;padding:20px 22px;margin-bottom:16px}.ai-result-card h3{font-size:13px;font-weight:600;margin-bottom:4px}.ai-result-card .chart-subtitle{font-size:11px;color:var(--text-muted);margin-bottom:16px}.ai-data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.ai-data-table th{text-align:left;padding:8px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-body);border-bottom:1px solid var(--border);position:sticky;top:0}.ai-data-table td{padding:7px 12px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.ai-data-table tr:hover td{background:var(--bg-card-hover)}.ai-data-table td.num{text-align:right;font-family:Inter,monospace}.toggle-sql{font-size:11px;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px;margin-top:10px;background:none;border:none;font-family:inherit}.toggle-sql:hover{color:var(--accent)}.sql-block{background:var(--bg-body);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-top:8px;font-size:11px;font-family:SFMono-Regular,Fira Code,monospace;color:var(--text-secondary);white-space:pre-wrap;overflow-x:auto;line-height:1.5}.ai-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.mobile-topbar,.sidebar-overlay{display:none}@media (max-width: 1200px){.chart-grid{grid-template-columns:1fr}.ai-chat-panel{width:320px;min-width:320px}}@media (max-width: 768px){.mobile-topbar{display:flex;align-items:center;gap:12px;position:fixed;top:0;left:0;right:0;z-index:60;height:52px;padding:0 16px;background:var(--bg-primary);border-bottom:1px solid var(--border)}.burger-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:4px;display:flex;align-items:center}.mobile-brand{font-size:16px;font-weight:800;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:100;transform:translate(-100%);transition:transform .25s ease;overflow-y:auto}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.main-area{margin-left:0}.dataviz-content{margin-left:0;max-width:100vw;padding:68px 12px 24px}.content{padding:16px 12px 48px}.topbar{padding:12px 16px}.topbar h2{font-size:15px}.topbar-controls{flex-wrap:wrap;gap:6px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}.kpi-card{padding:14px}.kpi-card .kpi-value{font-size:20px}.kpi-card .kpi-label{font-size:9.5px}.kpi-card .kpi-icon{display:none}.chart-grid{grid-template-columns:1fr;gap:12px}.chart-card{padding:14px}.chart-card h3{font-size:12px}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.waterfall-table,.job-table,.ai-data-table{min-width:600px}.waterfall-table td,.waterfall-table th,.job-table td,.job-table th{padding:6px 8px;font-size:11px}.page-header{flex-direction:column;align-items:flex-start;gap:10px}.page-header h1{font-size:17px}.ai-layout{flex-direction:column-reverse;height:auto}.ai-chat-panel{width:100%;min-width:100%;max-height:50vh;border-left:none;border-top:1px solid var(--border)}.ai-results{padding:16px 12px}.ai-kpi-grid{grid-template-columns:repeat(2,1fr)}.detail-panel{width:100vw}.ai-modify-dialog{width:95vw;max-width:95vw}.modal-panel{max-width:95vw;width:95vw}.search-input{width:100%}.table-header{flex-direction:column;align-items:stretch}.table-controls{width:100%}.section-stats{flex-wrap:wrap;gap:6px}.action-group{flex-wrap:wrap}.dest-tag{max-width:140px;font-size:10px}.freq-tag{font-size:10px}.error-text{max-width:160px;font-size:10px}.toast-container{left:12px;right:12px;top:60px}}@media (max-width: 768px){.responsive-page-header>div{flex-direction:column;align-items:stretch}.header-controls,.date-controls,.date-range-inputs{width:100%}.date-range-inputs input[type=date]{flex:1 1 0;min-width:0;max-width:none}.granularity-btns{justify-content:flex-start}}@media (max-width: 480px){.kpi-grid{grid-template-columns:1fr}.kpi-card .kpi-value{font-size:22px}.dataviz-content{padding:60px 8px 16px}.content{padding:12px 8px 40px}.ai-chip{font-size:10px;padding:4px 8px}}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:10px;font-size:10.5px;font-weight:600;text-transform:uppercase;white-space:nowrap;letter-spacing:.3px}.status-badge.success{background:#22c55e1f;color:var(--green)}.status-badge.error{background:#ef44441f;color:var(--red)}.status-badge.running{background:#3b82f61f;color:var(--blue)}.status-badge.idle{background:#55577026;color:var(--text-secondary)}.status-badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.status-badge.running .dot{animation:pulse 1.5s infinite}.table-container{background:var(--bg-card-solid);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:20px}.table-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);gap:10px;flex-wrap:wrap}.table-header h2{font-size:14px;font-weight:600;white-space:nowrap}.table-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.search-input{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:7px 12px;color:var(--text-primary);font-size:12.5px;width:200px}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{outline:none;border-color:var(--accent)}.filter-select{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:7px 10px;color:var(--text-primary);font-size:12.5px}table.job-table{width:100%;border-collapse:collapse}.job-table th{text-align:left;padding:7px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-primary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.job-table th:hover{color:var(--text-secondary)}.job-table th.sorted{color:var(--accent-hover)}.job-table td{padding:8px 12px;font-size:12px;border-bottom:1px solid var(--border);vertical-align:middle}.job-table tr:hover td{background:var(--bg-card-hover)}.job-table tr:last-child td{border-bottom:none}.job-table tbody tr:nth-child(2n) td{background:#ffffff03}.job-table tbody tr:nth-child(2n):hover td{background:var(--bg-card-hover)}.btn{padding:4px 10px;border-radius:5px;font-size:11px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);transition:all .12s;white-space:nowrap}.btn:hover{background:var(--bg-card-hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{color:var(--red);border-color:#ef44444d}.btn.danger:hover{background:#ef44441a}.btn:disabled{opacity:.3;cursor:not-allowed}.action-group{display:flex;gap:4px}.toggle{position:relative;display:inline-block;width:28px;height:16px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle .slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:16px;transition:.2s}.toggle .slider:before{content:"";position:absolute;height:12px;width:12px;left:2px;bottom:2px;background:var(--text-muted);border-radius:50%;transition:.2s}.toggle input:checked+.slider{background:var(--accent)}.toggle input:checked+.slider:before{transform:translate(12px);background:#fff}.toggle:hover .slider{background:var(--bg-card-hover);border:1px solid var(--text-muted)}.toggle:hover input:checked+.slider{background:var(--accent-hover);border:none}tr.disabled-job td{opacity:.4}tr.disabled-job:hover td{opacity:.6}tr.disabled-job td.toggle-cell{opacity:1}.domain-tag{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;background:#6366f11a;color:var(--accent-hover)}.mono{font-family:SF Mono,Fira Code,monospace;font-size:11.5px}.ts{color:var(--text-muted);font-size:11.5px;font-family:SF Mono,monospace}.ts-rel{color:var(--text-secondary);font-size:11.5px}.error-text{color:var(--red);font-size:11px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-box{margin-top:6px;padding:8px 10px;background:#ef444414;border:1px solid rgba(239,68,68,.15);border-radius:5px;font-size:11px;color:var(--red);font-family:monospace;white-space:pre-wrap;word-break:break-all;max-height:120px;overflow-y:auto}.detail-panel{position:fixed;right:0;top:0;width:520px;height:100vh;background:var(--bg-card-solid);border-left:1px solid var(--border);z-index:100;overflow-y:auto;box-shadow:-4px 0 24px #00000080}.detail-panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card-solid);z-index:10}.detail-tabs{display:flex;border-bottom:1px solid var(--border);position:sticky;top:52px;background:var(--bg-card-solid);z-index:9}.detail-tab{padding:8px 16px;font-size:12px;cursor:pointer;border-bottom:2px solid transparent;color:var(--text-secondary);transition:all .15s}.detail-tab:hover{color:var(--text-primary)}.detail-tab.active{border-bottom-color:var(--accent);color:var(--text-primary)}.detail-section{padding:14px 16px;border-bottom:1px solid var(--border)}.detail-section h3{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px}.detail-row .label{color:var(--text-secondary)}.history-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.history-item:last-child{border-bottom:none}.toast-container{position:fixed;top:16px;right:16px;z-index:200;display:flex;flex-direction:column;gap:6px}.toast{padding:10px 16px;border-radius:6px;font-size:12px;background:var(--bg-card-solid);border:1px solid var(--border);box-shadow:0 4px 12px #0000004d;animation:slideIn .2s ease}.toast.success{border-left:3px solid var(--green)}.toast.error{border-left:3px solid var(--red)}.page-header{margin-bottom:20px;display:flex;justify-content:space-between;align-items:flex-end}.page-header h1{font-size:20px;font-weight:700}.page-header p{color:var(--text-secondary);font-size:12.5px;margin-top:3px}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:12px}.section-card{background:var(--bg-card-solid);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:16px}.section-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border);transition:background .12s}.section-header:hover{background:var(--bg-card-hover)}.section-stats{display:flex;gap:12px;align-items:center}.section-stat{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary)}.section-stat .ct{font-weight:600}.section-stat .ct.success{color:var(--green)}.section-stat .ct.error{color:var(--red)}.section-stat .ct.running{color:var(--blue)}.freq-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;background:#ffffff0f;color:var(--text-secondary);white-space:nowrap;font-weight:500}.dest-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-family:SF Mono,Fira Code,monospace;background:#6366f114;color:var(--accent-hover);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-tag{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-family:SF Mono,Fira Code,monospace;background:#22c55e14;color:var(--green);white-space:nowrap;margin:1px 2px 1px 0}.btn-icon{padding:5px 8px;border-radius:5px;cursor:pointer;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);transition:all .12s;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-icon.run:hover{color:var(--green);border-color:#22c55e4d}.btn-icon.stop:hover,.btn-icon.del:hover{color:var(--red);border-color:#ef44444d}.ai-modify-wrap{position:relative}.ai-modify-btn,.ai-download-btn{position:absolute;top:6px;z-index:10;width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card-solid);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s;opacity:0}.ai-modify-btn{right:6px}.ai-download-btn{right:38px;font-size:13px}.ai-modify-wrap:hover .ai-modify-btn,.ai-modify-wrap:hover .ai-download-btn{opacity:1}.ai-modify-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow);box-shadow:0 0 12px #6366f133}.ai-download-btn:hover{border-color:var(--green);color:var(--green);background:#10b98114;box-shadow:0 0 12px #10b98133}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px}.modal-panel{background:var(--bg-card-solid);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 64px #00000080;padding:24px 28px}.ai-modify-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;width:500px;max-width:92vw;max-height:80vh;background:var(--bg-card-solid);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column}.ai-modify-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:199;background:#00000073}.ai-modify-dialog header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.ai-modify-dialog header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);flex:1}.ai-modify-dialog .body{padding:16px 20px;flex:1;overflow-y:auto}.ai-modify-dialog .footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.ai-modify-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-input);color:var(--text-primary);font-size:13px;font-family:Inter,sans-serif;outline:none;resize:none;transition:border-color .15s;box-sizing:border-box}.ai-modify-input:focus{border-color:var(--accent)}.ai-modify-input::placeholder{color:var(--text-muted)}.ai-btn-sm{padding:7px 16px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);transition:all .12s;font-family:Inter,sans-serif}.ai-btn-sm:hover{background:var(--bg-card-hover);color:var(--text-primary)}.ai-btn-sm.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.ai-btn-sm.primary:hover{background:var(--accent-hover)}.ai-btn-sm.danger{color:var(--red);border-color:#ef44444d}.ai-btn-sm.danger:hover{background:#ef444414}.ai-btn-sm:disabled{opacity:.5;cursor:not-allowed}.ai-modify-history{margin-top:12px;display:flex;flex-direction:column;gap:6px}.ai-history-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text-secondary)}.ai-history-item .idx{width:20px;height:20px;border-radius:50%;background:var(--accent-glow);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:10px;flex-shrink:0}.ai-history-item .desc{flex:1}.ai-modify-preview{margin-top:12px;padding:10px 14px;background:var(--green-bg);border:1px solid rgba(16,185,129,.2);border-radius:8px;font-size:12px;color:var(--green)}.ai-modify-error{margin-top:12px;padding:10px 14px;background:var(--red-bg);border:1px solid rgba(239,68,68,.2);border-radius:8px;font-size:12px;color:var(--red)}.mktperf{max-width:1200px;margin:0 auto}.mktperf-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.mktperf-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.mktperf-subtitle{font-size:12px;color:var(--text-muted);margin-top:4px}.mktperf-date-input{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text-primary);font-size:13px;font-family:inherit}.mktperf-kpis{margin-bottom:20px}.mktperf-kpis-scroll{display:flex;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--bg-card-solid);border:1px solid var(--border);border-radius:12px;scrollbar-width:none}.mktperf-kpis-scroll::-webkit-scrollbar{display:none}.mktperf-kpi{flex:1 0 auto;min-width:100px;padding:14px 16px;text-align:center;border-right:1px solid var(--border)}.mktperf-kpi:last-child{border-right:none}.mktperf-kpi-label{font-size:9.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;white-space:nowrap}.mktperf-kpi-value{font-size:16px;font-weight:700;color:var(--text-primary);white-space:nowrap;font-variant-numeric:tabular-nums}.mktperf-channels{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.mktperf-channel{background:var(--bg-card-solid);border:1px solid var(--border);border-radius:12px;padding:14px 16px;border-left:3px solid var(--accent);transition:border-color .2s}.mktperf-ch-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.mktperf-ch-identity{display:flex;align-items:center;gap:10px}.mktperf-ch-name{font-size:13px;font-weight:600;color:var(--text-primary)}.mktperf-ch-sub{font-size:10px;color:var(--text-muted)}.mktperf-ch-spend{text-align:right;min-width:100px}.mktperf-ch-spend-value{font-size:14px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.mktperf-ch-spend-bar{height:4px;border-radius:2px;background:var(--bg-body);overflow:hidden;margin-top:4px;min-width:60px}.mktperf-ch-spend-bar>div{height:100%;border-radius:2px;transition:width .5s}.mktperf-ch-metrics{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.mktperf-ch-metric{text-align:center;padding:4px 2px}.mktperf-ch-metric-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;display:block;margin-bottom:2px}.mktperf-ch-metric-value{font-size:12.5px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.mktperf-funnel-card{margin-top:20px;background:var(--bg-card-solid);border:1px solid var(--border);border-radius:12px;padding:20px 24px}.mktperf-funnel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.mktperf-funnel-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.mktperf-funnel-reset{font-size:10px;color:#6366f1;background:#6366f114;border:none;border-radius:6px;padding:4px 10px;cursor:pointer;font-weight:600;font-family:inherit}.mktperf-funnel-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.mktperf-funnel-steps{display:flex;align-items:flex-end;gap:0;width:100%;min-height:200px}.mktperf-funnel-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:0}.mktperf-funnel-conv{font-size:10px;font-weight:700;margin-bottom:4px;text-align:center;line-height:1.3}.mktperf-funnel-value{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:4px;text-align:center}.mktperf-funnel-bar{width:100%;max-width:120px;transition:height .5s;display:flex;align-items:center;justify-content:center;min-height:28px}.mktperf-funnel-bar-pct{font-size:9px;color:#ffffffb3;font-weight:600}.mktperf-funnel-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:6px;text-align:center}@media (max-width: 768px){.mktperf-header{flex-direction:column;align-items:flex-start}.mktperf-date-input{width:100%}.mktperf-title{font-size:17px}.mktperf-kpis-scroll{flex-wrap:wrap}.mktperf-kpi{min-width:calc(50% - 1px);flex:1 1 calc(50% - 1px);border-bottom:1px solid var(--border)}.mktperf-kpi:nth-last-child(-n+2){border-bottom:none}.mktperf-kpi-value{font-size:18px}.mktperf-ch-metrics{grid-template-columns:repeat(2,1fr);gap:8px}.mktperf-ch-metric{text-align:left;padding:6px 8px;background:var(--bg-body);border-radius:6px;display:flex;justify-content:space-between;align-items:center}.mktperf-ch-metric-label{display:inline;margin-bottom:0;margin-right:8px}.mktperf-ch-metric-value{font-size:13px}.mktperf-ch-header{margin-bottom:12px}.mktperf-ch-spend-value{font-size:15px}.mktperf-funnel-card{padding:16px 12px}.mktperf-funnel-steps{flex-direction:column;align-items:stretch;gap:6px;min-height:auto}.mktperf-funnel-step{flex-direction:row;align-items:center;gap:10px;background:var(--bg-body);border-radius:8px;padding:10px 12px}.mktperf-funnel-label{margin-top:0;min-width:70px;text-align:left;order:-2}.mktperf-funnel-value{margin-bottom:0;min-width:50px;font-size:14px;order:-1}.mktperf-funnel-bar{flex:1;max-width:none;height:28px!important;border-radius:6px!important}.mktperf-funnel-conv{margin-bottom:0;min-width:45px;font-size:11px}.mktperf-funnel-filters{gap:6px}}@media (max-width: 480px){.mktperf-kpi{min-width:100%;flex:1 1 100%}.mktperf-kpi:not(:last-child){border-bottom:1px solid var(--border)}.mktperf-kpi:last-child{border-bottom:none}.mktperf-ch-metrics{grid-template-columns:1fr}.mktperf-channel{padding:12px}.mktperf-funnel-card{padding:12px 8px}}
