:root,[data-theme=dark]{--bg:#0f1117;--bg-secondary:#1a1d27;--card:#1a1d27;--card-hover:#1f2330;--border:#2a2d3a;--text:#e1e4eb;--text-secondary:#9ca3af;--muted:#6b7280;--blue:#3b82f6;--blue-hover:#2563eb;--blue-glow:#3b82f64d;--green:#22c55e;--green-dark:#16a34a;--red:#ef4444;--red-dark:#dc2626;--yellow:#f59e0b;--yellow-dark:#ca8a04;--purple:#8b5cf6;--orange:#f59e0b;--overlay:#0009;--totals-bg:#1e2130;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--z-mobile-menu:150;--z-sidebar-overlay:190;--z-sidebar:200;--z-modal:1000}[data-theme=light]{--bg:#f3f4f6;--bg-secondary:#fff;--card:#fff;--card-hover:#f9fafb;--border:#e5e7eb;--text:#111827;--text-secondary:#4b5563;--muted:#9ca3af;--blue-hover:#1d4ed8;--green-dark:#16a34a;--red-dark:#dc2626;--yellow-dark:#ca8a04;--totals-bg:#eef2f7;--overlay:#0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}:focus:not(:focus-visible){outline:none}button,a,[role=button]{cursor:pointer}button:disabled,[disabled]{cursor:not-allowed;opacity:.5}.loading-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.spinner-sm{border:2px solid var(--border);border-top-color:var(--blue);vertical-align:middle;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes seo-pulse{0%,to{opacity:.3;transform:translate(0)}50%{opacity:1;transform:translate(230%)}}.spin{animation:1s linear infinite spin}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--card);border-right:1px solid var(--border);z-index:var(--z-sidebar);flex-direction:column;width:220px;min-height:100vh;transition:width .2s;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-collapsed .sidebar{width:56px}.sidebar-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:56px;padding:16px 14px;display:flex}.logo-mark{background:linear-gradient(135deg, var(--blue), #6366f1);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.sidebar-title{letter-spacing:-.3px;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.sidebar-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:4px;display:flex}.sidebar-toggle:hover{color:var(--text);background:var(--bg)}.sidebar-collapsed .sidebar-toggle{margin-left:0}.store-switcher{border-bottom:1px solid var(--border);gap:4px;padding:8px 10px;display:flex}.store-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:0 0;border-radius:6px;flex:1;padding:6px 8px;font-size:12px;font-weight:600;transition:all .15s}.store-btn:hover{background:var(--card-hover);color:var(--text)}.store-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex;overflow-y:auto}.sidebar-link{color:#ffffff;white-space:nowrap;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.sidebar-link:hover{color:var(--text);background:rgba(255,255,255,.06)}.sidebar-link.active{color:#fff;font-weight:500;background:rgba(255,255,255,.10)}.sidebar-icon{flex-shrink:0}.sidebar-label-hidden{display:none}.sidebar-collapsed .sidebar-link{justify-content:center;padding:9px 0}.sidebar-subs{flex-direction:column;gap:0;padding:2px 0 6px 0;display:flex}.sidebar-sub{display:flex;align-items:flex-start;gap:8px;padding:6px 10px 6px 14px;border-radius:8px;margin:1px 8px;cursor:pointer;background:0 0;border:none;text-align:left;width:calc(100% - 16px);transition:background .15s}.sidebar-sub:hover{background:rgba(255,255,255,.04)}.sidebar-sub.active{background:rgba(255,255,255,.05)}.sub-dot-col{display:flex;flex-direction:column;align-items:center;flex-shrink:0;margin-top:5px}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot-line{width:1px;background:#1e2130;flex:1;min-height:8px;margin-top:2px}.status-live{background:#22C55E;animation:dot-pulse 1.8s ease-in-out infinite}.status-ok{background:#22C55E}.status-warn{background:#F59E0B}.status-error{background:#EF4444}.status-idle{background:#374151}@keyframes dot-pulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}50%{box-shadow:0 0 0 3px rgba(34,197,94,.25)}}.sub-text-col{display:flex;flex-direction:column;gap:2px;min-width:0}.sub-name{font-size:12.5px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-sub.active .sub-name{color:#e2e4ea;font-weight:500}.sub-hint{font-size:10px;color:#2e3340;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-sub.active .sub-hint{color:#4b5563}.hint-ok{color:#166534!important}.hint-warn{color:#92400e!important}.hint-error{color:#7f1d1d!important}.hint-live{color:#166534!important}.icon-badge{position:absolute;top:-2px;right:-2px;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--bg)}.badge-warn{background:#F59E0B}.badge-error{background:#EF4444}.sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:8px;padding:12px 14px;display:flex}.sidebar-theme-btn{cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px;font-size:16px}.sidebar-theme-btn:hover{background:var(--bg)}.sidebar-user{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.sidebar-logout{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:flex}.sidebar-logout:hover{color:var(--red);background:#ef44441a}.sidebar-collapsed .sidebar-footer{flex-direction:column;gap:6px;padding:8px 4px}.mobile-menu-btn{z-index:var(--z-mobile-menu);background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:6px;display:none;position:fixed;top:12px;left:12px}.sidebar-overlay{z-index:var(--z-sidebar-overlay);background:var(--overlay);display:none;position:fixed;inset:0}.app-main{flex:1;width:calc(100% - 220px);max-width:1400px;margin:0 auto 0 220px;padding:24px;transition:margin-left .2s,width .2s}.sidebar-collapsed .app-main{width:calc(100% - 56px);margin-left:56px}.desktop-only{display:flex}@media (width<=768px){.sidebar{width:240px;transform:translate(-100%);box-shadow:4px 0 24px #00000080}.sidebar.mobile-open{transform:translate(0)}.sidebar-overlay{display:block}.mobile-menu-btn{display:flex}.desktop-only{display:none}.app-main{padding:52px 16px 16px;width:100%!important;margin-left:0!important}.sidebar .sidebar-label-hidden{display:inline!important}.sidebar .sidebar-link{justify-content:flex-start!important;padding:9px 10px!important}.sidebar .sidebar-footer{flex-direction:row!important;padding:12px 14px!important}.sidebar .sidebar-title.sidebar-label-hidden{display:inline!important}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.grid-overlay{z-index:0;background-image:linear-gradient(#3b82f608 1px,#0000 1px),linear-gradient(90deg,#3b82f608 1px,#0000 1px);background-size:60px 60px;animation:4s ease-in-out infinite gridPulse;position:fixed;inset:0}@keyframes gridPulse{0%,to{opacity:.4}50%{opacity:1}}.scan-line{background:linear-gradient(90deg, transparent, var(--blue), transparent);opacity:.15;z-index:0;width:100%;height:2px;animation:6s linear infinite scanAnim;position:fixed;left:0}@keyframes scanAnim{0%{top:-2px}to{top:100vh}}.bg-animation{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.metric-float{opacity:0;color:var(--blue);white-space:nowrap;text-shadow:0 0 8px var(--blue-glow);font-family:Courier New,monospace;font-size:13px;font-weight:600;animation:linear infinite floatUp;position:absolute}@keyframes floatUp{0%{opacity:0;transform:translateY(100vh)scale(.8)}5%{opacity:.15}50%{opacity:.25}95%{opacity:.1}to{opacity:0;transform:translateY(-100px)scale(1.1)}}.data-stream{background:linear-gradient(to top, var(--blue), transparent);opacity:0;z-index:0;border-radius:2px;width:3px;animation:ease-in-out infinite streamUp;position:fixed;bottom:0}@keyframes streamUp{0%{opacity:0;height:0}30%{opacity:.2}60%{opacity:.15}to{opacity:0;height:40vh}}.login-wrapper{z-index:10;width:100%;max-width:420px;padding:20px;position:relative}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:48px 40px 40px;position:relative;overflow:hidden;box-shadow:0 0 60px #3b82f614,0 25px 50px #0006}.login-card:before{content:"";background:linear-gradient(90deg, transparent, var(--blue), transparent);height:3px;animation:3s ease-in-out infinite shimmer;position:absolute;top:0;left:0;right:0}@keyframes shimmer{0%,to{opacity:.5}50%{opacity:1}}.logo-area{text-align:center;margin-bottom:36px}.logo-icon{background:linear-gradient(135deg, var(--blue), #6366f1);width:56px;height:56px;box-shadow:0 0 30px var(--blue-glow);border-radius:14px;justify-content:center;align-items:center;margin-bottom:16px;animation:3s ease-in-out infinite iconPulse;display:inline-flex}@keyframes iconPulse{0%,to{box-shadow:0 0 20px var(--blue-glow)}50%{box-shadow:0 0 40px var(--blue-glow), 0 0 60px #3b82f626}}.logo-area h1{letter-spacing:-.5px;font-size:22px;font-weight:700}.logo-area p{color:var(--muted);margin-top:6px;font-size:13px}.form-group{margin-bottom:20px}.form-group label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:10px;outline:none;padding:12px 16px;font-size:15px;transition:border-color .2s,box-shadow .2s}.form-group input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-glow)}.form-group input::placeholder{color:var(--muted)}.btn-login{background:linear-gradient(135deg, var(--blue), #2563eb);color:#fff;cursor:pointer;letter-spacing:.3px;border:none;border-radius:10px;width:100%;margin-top:8px;padding:13px;font-size:15px;font-weight:600;transition:transform .15s,box-shadow .15s}.btn-login:hover{box-shadow:0 8px 25px var(--blue-glow);transform:translateY(-1px)}.btn-login:active{transform:translateY(0)}.btn-login:disabled{opacity:.7;cursor:not-allowed;transform:none}.error-msg{color:var(--red);text-align:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;margin-bottom:20px;padding:10px 14px;font-size:13px}.mini-chart{opacity:.3;justify-content:center;align-items:flex-end;gap:3px;height:24px;margin-top:24px;display:flex}.mini-chart .bar{background:var(--blue);border-radius:2px;width:4px;animation:1.5s ease-in-out infinite barBounce}@keyframes barBounce{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.dashboard-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.toolbar-actions{align-items:center;gap:8px;display:flex}.quick-filters{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filter-pills{gap:4px;display:flex}.pill{background:var(--card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);padding:6px 14px;font-size:13px;font-weight:500;transition:all .15s}.pill:disabled{opacity:.5;cursor:not-allowed}.pill:hover,.pill.active{color:var(--blue);border-color:var(--blue);background:#3b82f61a}.date-inputs{align-items:center;gap:8px;display:flex}.date-inputs input{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;padding:6px 10px;font-size:13px}.date-inputs input:focus{border-color:var(--blue)}.date-sep{color:var(--muted);font-size:13px}.btn-icon{background:var(--card);border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);justify-content:center;align-items:center;transition:all .15s;display:flex}.btn-icon:hover{background:var(--card-hover);color:var(--blue)}.btn-secondary{background:var(--card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s}.btn-secondary:hover{background:var(--card-hover);color:var(--text)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff;cursor:pointer;border:1px solid var(--blue);border-radius:var(--radius-md);padding:8px 20px;font-size:13px;font-weight:600;transition:all .15s}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:hover{background:var(--blue-hover)}.btn-sm{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);padding:6px 12px;font-size:12px;font-weight:500;transition:all .15s}.btn-sm:hover{background:var(--card-hover)}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-sync{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:var(--radius-md);align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.btn-sync:hover{opacity:.9}.btn-sync.syncing{opacity:.7;pointer-events:none}.btn-sync:disabled{opacity:.5;cursor:not-allowed}.last-sync-label{color:var(--muted);white-space:nowrap;font-size:11px}.sync-error-label{color:var(--red);white-space:nowrap;font-size:11px}.loading-banner{color:var(--blue);background:#3b82f61a;border:1px solid #3b82f633;border-radius:10px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 20px;font-size:13px;font-weight:500;display:flex}.sync-banner{background:#3b82f614;border:1px solid #3b82f633;border-radius:10px;margin-bottom:16px;padding:14px 20px}.sync-banner-top{align-items:center;gap:10px;margin-bottom:10px;font-size:13px;display:flex}.sync-stage{color:var(--text);flex:1;font-weight:500}.sync-pct{color:var(--blue);font-size:14px;font-weight:700}.sync-eta{color:var(--muted);font-size:12px}.sync-progress-bar{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.sync-progress-fill{background:var(--blue);border-radius:3px;height:100%;transition:width .5s}.alert{border-radius:10px;margin-bottom:16px;padding:12px 16px;font-size:13px}.alert-error{color:var(--red);background:#ef44441a;border:1px solid #ef444433}.loading-state{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:60px 0;display:flex}.kpi-group{margin-bottom:24px}.group-title{align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.group-icon{font-size:18px}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;min-height:40px;display:grid}.kpi-card-wrapper.dragging{opacity:.8}.kpi-card{background:var(--card);border:1px solid var(--border);cursor:grab;border-radius:var(--radius-lg);padding:16px;transition:all .15s}.kpi-card:hover{border-color:var(--blue);box-shadow:0 2px 12px #3b82f61a}.kpi-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.kpi-value{letter-spacing:-.5px;margin:4px 0;font-size:22px;font-weight:700}.kpi-sub{color:var(--muted);margin-bottom:6px;font-size:12px}.kpi-sparkline{height:32px}.data-table-container{margin-top:32px}.section-title{margin-bottom:16px;font-size:16px;font-weight:600}.table-scroll{border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.data-table{border-collapse:collapse;background:var(--card);width:100%;font-size:13px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg-secondary);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--card-hover)}.data-table.compact td{padding:6px 10px;font-size:12px}.td-date{color:var(--text-secondary);font-weight:500}.td-money{font-variant-numeric:tabular-nums}.td-good{color:var(--green);font-weight:600}.td-bad{color:var(--red);font-weight:600}.td-name{text-overflow:ellipsis;max-width:250px;font-weight:500;overflow:hidden}.td-name-sm{text-overflow:ellipsis;max-width:150px;color:var(--muted);font-size:12px;overflow:hidden}.td-empty{text-align:center;color:var(--muted);padding:24px!important}.breakdown-table th{text-align:right}.breakdown-table th:first-child{text-align:left}.breakdown-table td{text-align:right}.breakdown-table td:first-child{text-align:left;font-weight:500}.section-label{letter-spacing:1px;text-transform:uppercase;font-size:10px;font-weight:700}.section-label.fb{color:var(--blue)}.section-label.google{color:var(--orange)}.section-label.total{color:var(--purple)}.roas-good{color:var(--green);font-weight:600}.roas-ok{color:var(--orange);font-weight:600}.roas-bad{color:var(--red);font-weight:600}.totals-row td{border-top:2px solid var(--blue);z-index:2;background:var(--totals-bg);font-weight:700;position:sticky;top:0}.section-divider{margin-top:8px;margin-bottom:12px}.section-header-row{align-items:center;gap:10px;padding:0;display:flex}.section-icon-box{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.section-title-label{text-transform:uppercase;letter-spacing:1.2px;font-size:13px;font-weight:700}.section-line{background:var(--border);flex:1;height:1px}.pagination{justify-content:center;align-items:center;gap:8px;padding:16px 0;display:flex}.pagination button{background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:7px 14px;font-size:13px;transition:background .15s}.pagination button:hover{background:var(--card-hover)}.pagination button.active{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}.pagination button:disabled{opacity:.3;cursor:default}.pagination .page-info{color:var(--muted);font-size:13px}.monthly-report-section{margin-top:24px;margin-bottom:32px}.modal-overlay{z-index:var(--z-modal);background:var(--overlay);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{font-size:18px;font-weight:600}.modal-close{background:var(--bg);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:20px;display:flex}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.setting-field{margin-bottom:16px}.setting-field label{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:12px;font-weight:500;display:block}.setting-field input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:8px 12px;font-size:13px}.setting-field input:focus{border-color:var(--blue)}.test-buttons{gap:8px;margin:16px 0;display:flex}.test-result{border-radius:8px;margin-top:8px;padding:8px 12px;font-size:13px}.test-result.success{color:var(--green);background:#22c55e1a}.test-result.error{color:var(--red);background:#ef44441a}.ai-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.ai-tabs{gap:4px;display:flex}.tab-btn{background:var(--card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s}.tab-btn:disabled{opacity:.5;cursor:not-allowed}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--blue);border-color:var(--blue);background:#3b82f61a}.generate-btn{white-space:nowrap}.live-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.level-tabs,.period-tabs{gap:4px;display:flex}.reports-list{gap:12px;display:grid}.empty-state{text-align:center;color:var(--muted);padding:48px}.report-card{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:var(--radius-lg);padding:16px 20px;transition:all .15s}.report-card:hover{border-color:var(--blue);box-shadow:0 2px 12px #3b82f61a}.report-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.report-date{font-size:14px;font-weight:600}.btn-delete{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.btn-delete:hover{color:var(--red);background:#ef44441a}.report-toolbar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.btn-delete-report{color:var(--red);cursor:pointer;background:0 0;border:1px solid #ef44444d;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;display:flex}.btn-delete-report:hover{background:#ef44441a}.report-period{color:var(--muted);margin-bottom:8px;font-size:13px}.report-summary-chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;padding:3px 10px;font-size:12px}.btn-back{background:var(--card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);align-items:center;gap:6px;margin-bottom:20px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.btn-back:hover{color:var(--text);background:var(--card-hover)}.report-meta{align-items:center;gap:12px;margin-bottom:20px;display:flex}.report-created{font-size:14px;font-weight:600}.report-period-badge{color:var(--blue);background:#3b82f61a;border-radius:6px;padding:4px 12px;font-size:12px}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:16px;margin-bottom:24px;display:grid}.chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.chart-card h4{color:var(--text-secondary);margin-bottom:12px;font-size:13px;font-weight:600}.chart-container{height:220px}.report-table-section{margin-bottom:24px}.report-table-section h4{margin-bottom:12px;font-size:14px;font-weight:600}.analysis-text{margin-top:24px}.analysis-text h3{margin-bottom:16px;font-size:18px;font-weight:700}.markdown-content{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 28px;line-height:1.7}.markdown-content h2{border-bottom:1px solid var(--border);color:var(--blue);margin:28px 0 12px;padding-bottom:8px;font-size:18px;font-weight:700}.markdown-content h2:first-child{margin-top:0}.markdown-content h3{margin:20px 0 8px;font-size:15px;font-weight:600}.markdown-content p{color:var(--text-secondary);margin-bottom:12px}.markdown-content ul,.markdown-content ol{margin:8px 0 16px 20px}.markdown-content li{color:var(--text-secondary);margin-bottom:4px}.markdown-content strong{color:var(--text);font-weight:600}.markdown-content code{background:var(--bg);border-radius:4px;padding:2px 6px;font-size:12px}.report-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;padding-bottom:0;display:flex}.report-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 18px;font-size:13px;font-weight:500;transition:all .15s}.report-tab:hover{color:var(--text)}.report-tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.status-scale{color:var(--green-dark);background:#22c55e26}.status-monitor{color:var(--yellow-dark);background:#ca8a0426}.status-pause{color:var(--red-dark);background:#dc262626}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.trend-flat{color:var(--muted)}.overview-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px;display:grid}.overview-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg) 20px}.overview-card .oc-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px}.overview-card .oc-value{font-size:24px;font-weight:700}.overview-card .oc-compare{color:var(--muted);margin-top:4px;font-size:12px}.expandable-row{cursor:pointer}.expandable-row:hover td{background:var(--card-hover)}.expand-content{background:var(--bg);border-bottom:1px solid var(--border);padding:16px 20px}.expand-analysis{color:var(--text-secondary);margin-bottom:12px;font-size:13px;line-height:1.6}.expand-recommendation{color:var(--text);background:#3b82f614;border:1px solid #3b82f626;border-radius:8px;padding:10px 14px;font-size:13px}.expand-recommendation strong{color:var(--blue)}.funnel-container{max-width:600px;margin:0 auto}.funnel-stage{align-items:center;margin-bottom:4px;display:flex}.funnel-bar{color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:80px;height:48px;font-size:13px;font-weight:600;transition:width .5s;display:flex}.funnel-connector{text-align:center;color:var(--muted);padding:6px 0;font-size:12px}.funnel-connector .rate{color:var(--text);font-size:16px;font-weight:700}.funnel-label{color:var(--muted);text-align:right;flex-shrink:0;width:100px;padding-right:12px;font-size:12px}.funnel-value{color:var(--muted);white-space:nowrap;padding-left:12px;font-size:12px}.mini-funnel{align-items:center;gap:4px;margin-top:8px;display:flex}.mini-funnel-seg{border-radius:3px;height:6px}.action-items-list{flex-direction:column;gap:12px;display:flex}.action-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px}.action-item.critical{border-left:4px solid var(--red-dark)}.action-item.warning{border-left:4px solid var(--yellow-dark)}.action-item.info{border-left:4px solid var(--blue)}.action-item-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.severity-critical{color:var(--red-dark);background:#dc262626}.severity-warning{color:var(--yellow-dark);background:#ca8a0426}.severity-info{color:var(--blue);background:#3b82f626}.action-item-title{font-size:14px;font-weight:600}.action-item-desc{color:var(--text-secondary);margin-bottom:10px;font-size:13px;line-height:1.5}.action-item-entity{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:4px;margin-bottom:8px;padding:2px 8px;font-size:11px;display:inline-block}.action-item-rec{background:#3b82f614;border-radius:8px;padding:10px 14px;font-size:13px}.action-item-bench{color:var(--muted);margin-top:8px;font-size:12px;font-style:italic}.fatigue-icon{color:var(--red);font-size:16px}.no-fatigue{color:var(--green);font-size:16px}.chip-sm{text-transform:uppercase;background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:4px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-block}.chip-action{color:var(--blue);background:#3b82f61a;border-color:#3b82f633}.keyword-text{font-family:monospace;font-size:12px}.keyword-text.wasted{color:var(--red)}.keyword-text.opportunity{color:var(--green)}.qs-badge{border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600}.qs-good{color:var(--green);background:#22c55e26}.qs-ok{color:var(--yellow-dark);background:#ca8a0426}.qs-bad{color:var(--red-dark);background:#dc262626}.negative-chip{color:var(--red-dark);background:#dc26261a;border:1px solid #dc262633;font-family:monospace;font-size:12px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--card-hover)}.expanded-row td{padding:0!important}.expanded-content{background:var(--bg);padding:14px 20px;font-size:13px;line-height:1.6}.expanded-content p{color:var(--text-secondary);margin-bottom:8px}.expanded-content strong{color:var(--text)}.td-ok{color:var(--yellow-dark)}@media (width<=768px){.dashboard-toolbar{flex-direction:column;align-items:stretch}.quick-filters{flex-direction:column}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.charts-grid{grid-template-columns:1fr}.login-card{padding:32px 24px 28px}.ai-toolbar{flex-direction:column;align-items:stretch}.ux-device-cards{grid-template-columns:1fr!important}}.ux-filter-bar{background:var(--card);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;display:flex}.ux-period-label{color:var(--muted);font-size:13px}.ux-day-btns{gap:4px;display:flex}.ux-device-cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:20px;display:grid}.ux-device-stats{color:var(--text-secondary);flex-direction:column;gap:4px;margin-top:8px;font-size:12px;display:flex}.ux-device-stats span{align-items:center;gap:4px;display:flex}.ux-section{margin-bottom:20px}.ux-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:14px;font-weight:600}.ux-url-link{color:var(--blue);text-overflow:ellipsis;white-space:nowrap;max-width:350px;font-size:12px;text-decoration:none;display:block;overflow:hidden}.ux-url-link:hover{text-decoration:underline}.row-warning{background:#ef44440d}.badge{border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600}.badge-red{color:var(--red);background:#ef444426}.badge-yellow{color:var(--yellow);background:#f59e0b26}.badge-green{color:var(--green);background:#22c55e26}.ux-clarity-link{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:10px;margin-top:12px;padding:16px}.ux-clarity-link a{color:var(--blue);font-size:13px;font-weight:500;text-decoration:none}.ux-clarity-link a:hover{text-decoration:underline}.ux-report-type-badge{color:#fff;text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.ux-headline-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl)}.ux-headline-card h2{margin-bottom:8px;font-size:18px}.ux-headline-card p{color:var(--text-secondary);font-size:14px}.ux-overview-stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:16px;display:grid}.ux-insight-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);padding:var(--space-lg)}.ux-insight-card p{color:var(--text-secondary);margin-top:4px;font-size:13px}.ux-rec{color:var(--green);background:#22c55e14;border-radius:6px;margin-top:6px;padding:6px 10px;font-size:12px}.ux-problem-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:10px;padding:var(--space-lg)}.ux-problem-card.severity-critical{border-left:3px solid var(--red)}.ux-problem-card.severity-warning{border-left:3px solid var(--yellow)}.ux-problem-card.severity-info{border-left:3px solid var(--blue)}.ux-problem-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.severity-badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.severity-badge.severity-critical{color:var(--red);background:#ef444426}.severity-badge.severity-warning{color:var(--yellow);background:#f59e0b26}.severity-badge.severity-info{color:var(--blue);background:#3b82f626}.ux-sessions-badge{color:var(--muted);font-size:12px}.ux-issues-list{color:var(--text-secondary);padding-left:20px;font-size:13px;list-style:outside}.ux-issues-list li{margin-bottom:2px}.ux-affected{color:var(--muted);margin-top:4px;font-size:12px}.ux-action-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:10px;padding:var(--space-lg)}.ux-action-card.severity-critical{border-left:3px solid var(--red)}.ux-action-card.severity-warning{border-left:3px solid var(--yellow)}.ux-action-card.severity-info{border-left:3px solid var(--blue)}.ux-action-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.ux-action-priority{color:var(--muted);font-size:14px;font-weight:700}.ux-action-card p{color:var(--text-secondary);font-size:13px}.ux-expected-impact{color:var(--green);background:#22c55e14;border-radius:4px;margin-top:6px;padding:4px 8px;font-size:12px;display:inline-block}.ux-markdown-report{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-lg);padding:24px;font-size:13px;line-height:1.7}.ux-funnel-steps{flex-direction:column;gap:8px;margin-top:16px;display:flex}.ux-funnel-step{background:var(--bg);border-radius:8px;align-items:flex-start;gap:12px;padding:10px 14px;display:flex}.ux-funnel-label{min-width:130px;color:var(--blue);white-space:nowrap;padding-top:2px;font-size:12px;font-weight:600}.ux-funnel-text{color:var(--text-secondary);font-size:13px}.detail-panel{background:var(--bg);border-top:1px solid var(--border);border-bottom:2px solid var(--blue);padding:16px 20px}.detail-header{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;display:flex}.detail-header-name{color:var(--text);font-size:14px;font-weight:600}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.detail-item{flex-direction:column;gap:2px;display:flex}.detail-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.detail-value{color:var(--text);font-size:13px}.detail-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--border);margin-top:14px;margin-bottom:6px;padding-top:8px;font-size:11px;font-weight:600}.detail-tags{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.detail-tag{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.tag-blue{color:var(--blue);background:#3b82f61f}.tag-purple{color:var(--purple);background:#8b5cf61f}.tag-green{color:var(--green);background:#22c55e1f}.tag-red{color:var(--red);background:#ef44441f}.detail-copy{color:var(--text-secondary);background:var(--card);border-left:2px solid var(--border);border-radius:6px;margin-top:4px;padding:6px 10px;font-size:12px}.detail-code{color:var(--muted);font-family:monospace;font-size:11px}.detail-thumbnail{border:1px solid var(--border);border-radius:8px;max-width:160px}.detail-perf{flex-wrap:wrap;gap:16px;margin-top:4px;display:flex}.detail-perf-item{flex-direction:column;align-items:center;min-width:60px;display:flex}.detail-perf-label{color:var(--muted);text-transform:uppercase;font-size:10px}.detail-perf-value{color:var(--text);font-size:14px;font-weight:600}.detail-row td{background:var(--bg)!important}.row-expanded{background:var(--card-hover)!important}.expand-arrow{color:var(--muted);width:14px;margin-right:6px;font-size:10px;display:inline-block}.date-filter{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.date-filter-presets{gap:4px;display:flex}.date-filter-custom{align-items:center;gap:6px;display:flex}.date-filter-custom input[type=date]{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:4px 8px;font-size:12px}.cross-info-bar{border:1px solid var(--border);color:var(--text-secondary);background:linear-gradient(135deg,#3b82f614,#8b5cf614);border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.cross-plus{color:var(--muted);font-weight:700}.cross-arrow{color:var(--blue);font-size:18px}.cross-result{color:var(--blue);font-weight:700}.sidebar-divider{background:var(--border);height:1px;margin:6px 0}.users-page{max-width:1200px;padding:20px}.users-page .page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.users-page h1{font-size:20px;font-weight:700}.users-create-form{margin-bottom:16px;padding:16px}.users-create-form .form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.users-create-form .form-group{flex:1;min-width:140px}.users-create-form label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;display:block}.users-create-form input[type=text],.users-create-form input[type=password]{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;padding:8px 10px;font-size:13px}.checkbox-label{align-items:center;gap:6px;padding-top:18px;display:flex!important}.users-table{overflow-x:auto}.users-table table{border-collapse:collapse;width:100%}.users-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:10px 12px;font-size:12px}.users-table td{border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px}.users-table tr:hover{background:var(--card-hover)}.users-table .row-selected{background:var(--blue-glow)}.username-cell{cursor:pointer;color:var(--blue);font-weight:600}.username-cell:hover{text-decoration:underline}.role-badge{text-transform:uppercase;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.role-badge.admin{color:var(--purple);background:#8b5cf626}.role-badge.user{color:var(--muted);background:#6b728026}.actions-cell{gap:4px;display:flex}.actions-cell .btn-sm{background:0 0;border:none;border-radius:var(--radius-sm);align-items:center;padding:6px 8px;min-width:32px;min-height:32px;justify-content:center;display:flex}.actions-cell .btn-sm:hover{background:var(--card-hover);color:var(--text)}.actions-cell .btn-sm.btn-danger:hover{color:var(--red);background:#ef444426}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:var(--radius-sm);padding:8px 16px;font-size:13px;transition:all .15s}.btn:hover{background:var(--card-hover)}.modal-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:360px;max-width:90vw;padding:24px}.modal-card h3{margin-bottom:16px;font-size:16px;font-weight:700}.modal-card .form-group{margin-bottom:16px}.modal-card label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;display:block}.modal-card input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;padding:8px 10px;font-size:13px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.users-logs{margin-top:16px;padding:16px}.logs-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.logs-header h3{font-size:15px;font-weight:700}.logs-section{margin-bottom:16px}.logs-section h4{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600}.logs-table{border-collapse:collapse;width:100%}.logs-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border);padding:6px 10px;font-size:11px}.logs-table td{border-bottom:1px solid var(--border);padding:6px 10px;font-size:12px}.logs-table code{color:var(--text-secondary);font-family:monospace;font-size:11px}.logs-table .row-fail{background:#ef44440d}.status-dot{border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.status-dot.success{background:var(--green)}.status-dot.fail{background:var(--red)}.text-muted{color:var(--muted);font-size:13px}.seo-page{padding:0}.seo-header{margin-bottom:24px}.seo-title{margin:0;font-size:20px;font-weight:700}.seo-subtitle{color:var(--muted);margin:4px 0 0;font-size:13px}.seo-tabs{gap:6px;margin-bottom:24px;display:flex}.seo-tab-icon{opacity:.7;font-size:12px}.seo-section{flex-direction:column;gap:16px;display:flex}.seo-cards-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;display:grid}.seo-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .15s;overflow:hidden}.seo-card:hover{border-color:var(--blue-glow)}.seo-card-header{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 0;display:flex}.seo-card-header h3{margin:0;font-size:14px;font-weight:600}.seo-card-body{padding:16px 20px 20px}.seo-card-desc{color:var(--text-secondary);margin:0 0 14px;font-size:13px}.seo-card-empty{color:var(--muted);margin-bottom:0;font-style:italic}.seo-card>.table-scroll{border:none;border-top:1px solid var(--border);border-radius:0}.seo-card>.table-scroll .data-table{border-radius:0}.seo-options{flex-wrap:wrap;gap:16px;margin-bottom:14px;display:flex}.seo-checkbox{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.seo-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}.seo-run-btn{justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.seo-push-card{border-color:var(--yellow)}.seo-push-card-success{border-color:var(--green)}.seo-push-card-error{border-color:var(--red)}.seo-push-preview{flex-direction:column;gap:14px;display:flex}.seo-chips{flex-wrap:wrap;gap:8px;display:flex}.seo-chip{background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);border-radius:8px;padding:6px 14px;font-size:13px}.seo-chip strong{color:var(--blue);margin-right:4px}.seo-push-actions{gap:8px;display:flex}.seo-btn-push{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:var(--radius-md);align-items:center;gap:8px;padding:8px 20px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.seo-btn-push:hover{filter:brightness(1.1)}.seo-btn-push:disabled{opacity:.6;cursor:not-allowed}.seo-btn-cancel{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:var(--radius-md);padding:8px 16px;font-size:13px;transition:all .15s}.seo-btn-cancel:hover{border-color:var(--text-secondary);color:var(--text)}.seo-hint{color:var(--muted);margin:0;font-size:12px}.seo-push-result{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.seo-push-banner{border-radius:8px;align-items:center;gap:6px;padding:10px 18px;font-size:14px;display:inline-flex}.seo-push-banner.success{background:#22c55e1a}.seo-push-banner.has-errors{background:#ef44441a}.seo-push-banner-sep{margin-left:10px}.seo-fix-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media (width<=1100px){.seo-fix-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.seo-fix-grid{grid-template-columns:1fr}}.seo-fix-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:10px;min-height:150px;padding:var(--space-lg) 20px;transition:border-color .2s,box-shadow .2s;display:flex}.seo-fix-card:hover{border-color:var(--blue-glow);box-shadow:0 2px 8px #0000000f}.seo-fix-card.done{border-color:var(--green);background:#22c55e0a}.seo-fix-card.errored{border-color:var(--red);background:#ef44440a}.seo-fix-card.info-card{border-style:dashed}.seo-fix-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.seo-fix-card-header strong{font-size:14px}.seo-fix-risk{white-space:nowrap;background:#80808014;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.seo-fix-card-body{flex:1}.seo-fix-detail{color:var(--text-secondary);font-size:13px;line-height:1.7}.seo-fix-detail strong{color:var(--text)}.seo-fix-result{font-size:12px}.seo-fix-card-footer{align-items:center;gap:8px;margin-top:auto;padding-top:8px;display:flex}.seo-fix-card-footer .btn-sm{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:12px;font-weight:500}.seo-fix-card-footer .btn-sm:hover{border-color:var(--blue);color:var(--blue);background:#3b82f60f}.seo-alert{color:var(--red);background:#ef44441a;border:1px solid #ef444433;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.seo-alert-close{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:14px}.seo-alert-close:hover{opacity:1;background:#ef44441a}.seo-progress{border:1px solid var(--border);background:var(--card);border-radius:10px;margin-bottom:12px;padding:14px 16px}.seo-progress-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.seo-progress-label{align-items:center;gap:8px;display:flex}.seo-progress-label .spinner-sm{border-width:2px;width:14px;height:14px}.seo-progress-step{color:var(--muted);font-size:12px}.seo-progress-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.seo-progress-detail{color:var(--text-secondary);margin-bottom:6px;font-size:12px}.seo-progress-track{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.seo-progress-fill{border-radius:2px;height:100%;transition:width .5s}.seo-position{font-variant-numeric:tabular-nums;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.seo-position.good{color:var(--green);background:#22c55e1a}.seo-position.mid{color:var(--yellow);background:#f59e0b1a}.seo-url-cell{word-break:break-all;max-width:400px;color:var(--text-secondary);font-size:12px}.seo-cannibal-list{flex-direction:column;gap:8px;display:flex}.seo-cannibal-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;transition:border-color .15s;overflow:hidden}.seo-cannibal-item[open]{border-color:var(--red)}.seo-cannibal-item summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;list-style:none;display:flex}.seo-cannibal-item summary::-webkit-details-marker{display:none}.seo-cannibal-item summary:before{content:"▸";color:var(--muted);margin-right:8px;font-size:11px;transition:transform .15s}.seo-cannibal-item[open] summary:before{transform:rotate(90deg)}.seo-cannibal-query{font-weight:600}.seo-cannibal-meta{color:var(--muted);margin-left:auto;font-size:12px}.seo-cannibal-item .data-table{font-size:12px}.seo-cannibal-item .data-table td{padding:6px 12px}.seo-kpi-icon{margin-right:4px;font-size:10px}.seo-empty-state{text-align:center;color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px 24px}.seo-report-frame{border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;height:calc(100vh - 200px);overflow:hidden}.seo-report-frame iframe{border:none;width:100%;height:100%}.seo-history-list{flex-direction:column;gap:8px;display:flex}.seo-history-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:border-color .15s;display:flex}.seo-history-item:hover{border-color:var(--blue-glow)}.seo-history-info{flex:1;min-width:0}.seo-history-title{align-items:center;font-size:14px;font-weight:600;display:flex}.seo-history-date{color:var(--muted);margin-top:2px;font-size:12px}.seo-history-stats{color:var(--text-secondary);gap:16px;margin-top:6px;font-size:12px;display:flex}.seo-tech-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.seo-tech-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.seo-tech-item.warn{border-color:var(--red)}.seo-tech-label{color:var(--text-secondary)}.seo-tech-value{font-variant-numeric:tabular-nums;font-weight:700}.seo-tech-recommendation{color:var(--text-secondary);border-left:3px solid var(--blue);background:#3b82f614;border-radius:8px;margin:0 0 14px;padding:10px 14px;font-size:13px;line-height:1.5}.td-warn{color:var(--orange);font-weight:600}.spinner-sm{border-width:2px;width:14px;height:14px}@media (width<=768px){.seo-cards-grid{grid-template-columns:1fr}.seo-tabs{overflow-x:auto}.seo-history-stats{flex-wrap:wrap;gap:8px}}.sidebar-pw-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;display:flex}.sidebar-pw-btn:hover{background:var(--card-hover);color:var(--text)}.pw-msg{padding:6px 0;font-size:12px}.pw-msg.success{color:var(--green)}.pw-msg.error{color:var(--red)}/*$vite$:1*/.icon-glow-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.icon-glow-wrapper::before{content:'';position:absolute;inset:-6px;border-radius:14px;background:radial-gradient(circle,rgba(var(--glow-color),.35) 0%,transparent 70%);pointer-events:none;opacity:0;transition:opacity .3s ease}.icon-glow-wrapper::after{content:'';position:absolute;inset:-3px;border-radius:11px;border:1.5px solid rgba(var(--glow-color),.5);pointer-events:none;opacity:0;transition:opacity .3s ease}.sidebar-link.active .icon-glow-wrapper::before{opacity:1;animation:pulse-glow 2s ease-in-out infinite}.sidebar-link.active .icon-glow-wrapper::after{opacity:1;animation:pulse-ring 2s ease-in-out infinite}@keyframes pulse-glow{0%,100%{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}@keyframes pulse-ring{0%,100%{opacity:.3;transform:scale(.97)}50%{opacity:.9;transform:scale(1.03)}}
/* ─── Tree View styles ─── */
.tree-name-campaign{padding-left:8px!important}
.tree-name-adset{padding-left:32px!important}
.tree-name-ad{padding-left:56px!important}
.tree-row-campaign{}
.tree-row-adset{background:var(--bg-secondary)}
.tree-row-ad{background:var(--bg)}
.tree-table .tree-row-adset td{font-size:.92em}
.tree-table .tree-row-ad td{font-size:.88em;color:var(--text-secondary)}
.summary-row{background:var(--totals-bg)!important;font-weight:600;position:sticky;top:0;z-index:2}
.summary-row td{border-bottom:2px solid var(--border)!important}
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.status-active{background:var(--green)}
.status-inactive{background:var(--muted)}
.sort-header{cursor:pointer;user-select:none;white-space:nowrap}
.sort-header:hover{color:var(--blue)}
.row-good{border-left:3px solid var(--green)!important}
.row-bad{border-left:3px solid var(--red)!important}
.row-warn{border-left:3px solid var(--orange)!important}
.tree-toggle{display:inline-flex;gap:2px;margin-right:12px}
.tree-toggle .tab-btn{font-size:.85em;padding:4px 10px}
