*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 222 47% 6%;--foreground: 213 31% 91%;--card: 222 47% 8%;--card-foreground: 213 31% 91%;--primary: 217 91% 60%;--primary-foreground: 222 47% 11%;--secondary: 217 32% 17%;--secondary-foreground: 213 31% 91%;--muted: 222 20% 15%;--muted-foreground: 215 20% 65%;--border: 217 32% 17%;--input: 217 32% 17%;--ring: 224 76% 48%;--radius: .6rem}body{background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}*{border-color:hsl(var(--border))}.fixed{position:fixed}.flex{display:flex}.table{display:table}.hidden{display:none}.border{border-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.running{animation-play-state:running}.\[-\:T\]{-: T}.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media (max-width: 1200px){.stats-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.stats-cards{grid-template-columns:1fr}}.stat-card{background:var(--card-bg);border-radius:12px;border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;transition:transform .2s,box-shadow .2s;min-width:0}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000040}.stat-card.empty{grid-column:1 / -1;justify-content:center;align-items:center;text-align:center;padding:2rem}.stat-top{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem .5rem;gap:1rem}.stat-content{flex:1;min-width:0}.stat-label{font-size:.8rem;color:var(--text-muted);margin-bottom:6px;letter-spacing:.3px}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-detail{font-size:.7rem;color:var(--text-muted);margin-top:6px}.stat-hint{font-size:.75rem;color:var(--text-muted);margin-top:.5rem}.stat-icon-badge{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#7c3aed26;color:#a78bfa}.stat-sparkline{margin-top:auto;width:100%;height:50px}.stat-sparkline .recharts-tooltip-cursor{stroke:#7c3aed4d}.activity-chart{background:var(--card-bg);border-radius:12px;padding:1.5rem;border:1px solid var(--border-color)}.activity-chart .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.section-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.round-status{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.round-status .status-badge{padding:.25rem .5rem;border-radius:4px;font-weight:500}.round-status .status-badge.running{background:#10b98126;color:#10b981}.round-status .status-badge.completed{background:#3b82f626;color:#3b82f6}.round-status .session-count{color:var(--text-muted)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted)}.loading-state .spinner.small{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:.5rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;text-align:center;color:var(--text-muted)}.empty-state p{margin:.25rem 0}.empty-state .hint{font-size:.875rem;opacity:.7}.chart-container{width:100%;height:250px}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border-color)}.recharts-text{fill:var(--text-muted)}.recharts-legend-item-text{color:var(--text-secondary)!important}.recharts-tooltip-wrapper{outline:none}@media (max-width: 768px){.activity-chart{padding:1rem}.chart-container{height:200px}}@media (max-width: 480px){.chart-container{height:180px}.section-title{font-size:1rem}}.report-download-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--btn-bg);color:var(--text-secondary);border:1px solid var(--btn-border);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;box-shadow:none}.report-download-btn:hover:not(:disabled){background:var(--btn-bg-hover);color:var(--text-primary);border-color:var(--btn-border-hover);transform:none;box-shadow:none}.report-download-btn:active:not(:disabled){transform:none}.report-download-btn:disabled{opacity:.4;cursor:not-allowed}.report-download-btn.downloading{background:#1a1f27;color:var(--text-muted);border-color:#64648c40}.download-icon{width:18px;height:18px}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.click-results{background:var(--card-bg);border-radius:12px;padding:20px;border:1px solid var(--border-color)}.click-results .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.click-results .section-title{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary)}.round-selector{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.round-select-group{display:flex;align-items:center;gap:8px}@media (max-width: 768px){.round-selector{flex-direction:column;gap:8px;width:100%;align-items:stretch}.round-select-group{width:100%}.round-select{min-width:0;flex:1;font-size:.75rem}}.round-select-group label{font-size:.875rem;color:var(--text-secondary);font-weight:500}.round-select{padding:6px 12px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;min-width:200px;cursor:pointer}.round-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #3b82f633}.round-select option{background:var(--bg-secondary);color:var(--text-primary)}.click-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:20px}.summary-card{background:transparent;border-radius:8px;padding:12px;text-align:center;border:1px solid var(--border-color)}.summary-card.success,.summary-card.warning,.summary-card.info,.summary-card.error{border-color:#64648c26}.summary-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.summary-label{font-size:.75rem;color:var(--text-secondary);margin-top:4px}.tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--border-color);padding-bottom:8px}.tab{background:var(--btn-bg);border:1px solid var(--btn-border);padding:8px 16px;font-size:.875rem;color:var(--text-secondary);cursor:pointer;border-radius:8px;transition:all .15s}.tab:hover,.tab.active{background:var(--btn-bg-hover);color:var(--text-primary);border-color:var(--btn-border-hover)}.click-results .filters{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}@media (max-width: 768px){.click-results .filters{flex-direction:column}}.click-results .search-input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem}.click-results .filter-select{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;min-width:160px}.results-table-wrapper{overflow-x:auto;margin-bottom:16px}.results-table{width:100%;border-collapse:collapse;font-size:.875rem}.results-table th,.results-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color)}.results-table th{background:var(--bg-secondary);font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.results-table tbody tr:hover{background:var(--bg-secondary)}.results-table tr.success{border-left:3px solid #10b981}.results-table tr.no_matching_ad{border-left:3px solid #3b82f6}.results-table tr.no_sponsored_ads{border-left:3px solid #f59e0b}.results-table tr.captcha,.results-table tr.error{border-left:3px solid #ef4444}.time-cell{white-space:nowrap;color:var(--text-secondary);font-size:.8rem}.keyword-cell{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.country-cell{font-weight:500;text-align:center}.ip-cell{font-family:monospace;font-size:.8rem;color:var(--text-secondary)}.domain-cell{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.count-cell{text-align:center;font-size:.8rem}.dwell-cell{text-align:right;font-size:.8rem}.result-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.result-badge.success{background:#10b98133;color:#10b981}.result-badge.warning{background:#f59e0b33;color:#f59e0b}.result-badge.info{background:#3b82f633;color:#3b82f6}.result-badge.error,.result-badge.captcha{background:#ef444433;color:#ef4444}.click-results .pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:16px}.click-results .page-btn{padding:6px 14px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:.875rem}.click-results .page-btn:disabled{opacity:.5;cursor:not-allowed}.click-results .page-info{color:var(--text-secondary);font-size:.875rem}.ip-stats-list{margin-top:16px}.ip-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.ip-card{background:var(--bg-secondary);border-radius:10px;padding:16px;border:1px solid var(--border-color)}.ip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ip-address{font-family:monospace;font-size:1rem;font-weight:600;color:var(--text-primary)}.ip-rate{padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:600}.ip-rate.good{background:#10b98133;color:#10b981}.ip-rate.bad{background:#ef444433;color:#ef4444}.ip-stats{display:flex;gap:24px;margin-bottom:12px}.ip-stat{display:flex;flex-direction:column}.ip-stat .stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase}.ip-stat .stat-value{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.ip-keywords{font-size:.8rem;color:var(--text-secondary);margin-bottom:8px}.keywords-label{font-weight:500;margin-right:4px}.keywords-list{color:var(--text-primary)}.ip-recent{font-size:.75rem;color:var(--text-secondary);border-top:1px solid var(--border-color);padding-top:8px;margin-top:8px}.recent-label{display:block;margin-bottom:4px}.recent-domain{display:inline-block;background:var(--card-bg);padding:2px 6px;border-radius:4px;margin-right:4px;color:var(--text-secondary)}.click-results .loading-state,.click-results .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary)}.click-results .spinner.small{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.competitor-intel{background:var(--card-bg);border-radius:12px;padding:20px;border:1px solid var(--border-color)}.competitor-intel .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.competitor-intel .section-title{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary)}.whitelist-info{font-size:.8rem;color:var(--text-secondary);background:var(--bg-secondary);padding:4px 10px;border-radius:4px;border:1px solid var(--border-color)}.competitor-intel .tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--border-color);padding-bottom:8px}.competitor-intel .tab{background:var(--btn-bg);border:1px solid var(--btn-border);padding:8px 16px;font-size:.875rem;color:var(--text-secondary);cursor:pointer;border-radius:8px;transition:all .15s}.competitor-intel .tab:hover,.competitor-intel .tab.active{background:var(--btn-bg-hover);color:var(--text-primary);border-color:var(--btn-border-hover)}.keywords-list,.competitors-list{display:flex;flex-direction:column;gap:8px}.keyword-item,.competitor-item{background:var(--bg-secondary);border-radius:8px;padding:12px 16px;cursor:pointer;border:1px solid var(--border-color);transition:all .2s}.keyword-item:hover,.competitor-item:hover{border-color:#64648c59}.keyword-item.expanded,.competitor-item.expanded{border-color:#64648c59;background:var(--card-bg)}.keyword-header,.competitor-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.keyword-name,.competitor-domain{font-weight:600;color:var(--text-primary);font-size:.95rem}.keyword-stats,.competitor-stats{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.stat{font-size:.75rem;padding:2px 8px;border-radius:12px;background:var(--card-bg);color:var(--text-secondary)}.stat.rate.good{background:#10b98126;color:#10b981}.stat.rate.bad{background:#ef444426;color:#ef4444}.stat.searches{background:#3b82f626;color:#3b82f6}.stat.appearances{background:#8b5cf626;color:#8b5cf6}.stat.clicks{background:#10b98126;color:#10b981}.stat.competitors,.stat.keywords{background:#f59e0b26;color:#f59e0b}.expand-icon{font-size:.7rem;color:var(--text-secondary);margin-left:8px}.keyword-competitors,.competitor-keywords{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.competitors-header,.keywords-header{display:flex;justify-content:space-between;padding:8px 12px;background:var(--bg-secondary);border-radius:6px;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.competitor-row,.keyword-row{display:flex;justify-content:space-between;padding:8px 12px;border-radius:4px;font-size:.875rem}.competitor-row:hover,.keyword-row:hover{background:var(--bg-secondary)}.competitor-row .domain,.keyword-row .keyword{color:var(--text-primary)}.competitor-row .appearances,.keyword-row .appearances{color:var(--text-secondary);font-weight:500}.top-clicked-list{background:var(--bg-secondary);border-radius:8px;overflow:hidden}.top-clicked-header{display:grid;grid-template-columns:60px 1fr 80px;padding:12px 16px;background:var(--card-bg);font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}.top-clicked-row{display:grid;grid-template-columns:60px 1fr 80px;padding:12px 16px;border-bottom:1px solid var(--border-color);transition:background .2s}.top-clicked-row:last-child{border-bottom:none}.top-clicked-row:hover{background:var(--card-bg)}.top-clicked-row .rank{font-weight:600;color:var(--text-secondary)}.top-clicked-row:nth-child(2) .rank{color:#fbbf24}.top-clicked-row:nth-child(3) .rank{color:#9ca3af}.top-clicked-row:nth-child(4) .rank{color:#b45309}.top-clicked-row .domain{color:var(--text-primary);font-weight:500}.top-clicked-row .clicks{text-align:right;font-weight:600;color:var(--text-primary)}.competitor-intel .loading-state,.competitor-intel .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary)}.competitor-intel .hint{font-size:.875rem;margin-top:8px}.competitor-intel .spinner.small{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.keyword-header,.competitor-header{flex-direction:column;align-items:flex-start}.keyword-stats,.competitor-stats{margin-top:8px}.competitor-intel .tabs{flex-wrap:wrap}}.donut-breakdown{background:var(--card-bg);border-radius:12px;padding:1.5rem;border:1px solid var(--border-color);display:flex;flex-direction:column;height:100%}.donut-chart{flex-shrink:0}.donut-table{display:flex;flex-direction:column;gap:2px;padding:0 4px}.donut-row{display:flex;align-items:center;gap:8px;font-size:.8rem;padding:7px 10px;border-radius:6px;cursor:default;transition:background .15s}.donut-row:hover{background:#151a1f}.donut-label{flex:1;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.donut-count{color:var(--text-primary);font-weight:700;text-align:right}.donut-pct{color:var(--text-muted);text-align:right;min-width:42px}.donut-sub-detail{font-size:.65rem;color:var(--text-muted);margin-top:6px;padding:8px 10px 0;border-top:1px solid var(--border-color);line-height:1.4}.whitelist-toggle-tab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:1000;background:var(--accent-color);color:#fff;border:none;padding:12px 8px;border-radius:8px 0 0 8px;cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed;font-size:.8rem;font-weight:600;letter-spacing:1px;transition:right .2s ease,padding .2s ease;box-shadow:-2px 0 8px #0000004d}.whitelist-toggle-tab:hover{padding:12px 14px;background:#2563eb}.whitelist-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0009;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.whitelist-modal{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;width:800px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;animation:slideIn .2s ease}@keyframes slideIn{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.whitelist-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.whitelist-header h2{margin:0;font-size:1.1rem;color:var(--text-primary)}.whitelist-close{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:0 4px;line-height:1}.whitelist-close:hover{color:var(--text-primary)}.whitelist-body{display:flex;gap:12px;padding:20px;flex:1;min-height:0}.whitelist-panel{flex:1;display:flex;flex-direction:column;min-width:0}.whitelist-panel label{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.whitelist-textarea{flex:1;min-height:300px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;font-family:Consolas,Monaco,monospace;font-size:.85rem;line-height:1.6;resize:none;outline:none}.whitelist-textarea:focus{border-color:var(--accent-color)}.whitelist-textarea::-moz-placeholder{color:var(--text-secondary);opacity:.5}.whitelist-textarea::placeholder{color:var(--text-secondary);opacity:.5}.whitelist-actions{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:0 4px}.whitelist-list{flex:1;min-height:300px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;overflow-y:auto;padding:4px}.whitelist-item{padding:6px 10px;font-family:Consolas,Monaco,monospace;font-size:.85rem;color:var(--text-primary);cursor:pointer;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .1s}.whitelist-item:hover{background:#3b82f61a}.whitelist-item.selected{background:var(--accent-color);color:#fff}.whitelist-empty{padding:20px;text-align:center;color:var(--text-secondary);font-size:.85rem}.whitelist-btn{padding:8px 16px;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .15s}.whitelist-btn:disabled{opacity:.4;cursor:not-allowed}.whitelist-btn.transfer{background:linear-gradient(180deg,#2a2f36,#1e2328);color:var(--text-secondary);border-color:#646e8259;font-size:1.2rem;padding:8px 20px}.whitelist-btn.transfer:hover:not(:disabled){background:linear-gradient(180deg,#323840,#262c32);color:var(--text-primary);border-color:#646e828c}.whitelist-btn.remove{background:linear-gradient(180deg,#2a2f36,#1e2328);color:var(--text-secondary);border-color:#646e8259}.whitelist-btn.remove:hover:not(:disabled){background:linear-gradient(180deg,#323840,#262c32);color:var(--text-primary);border-color:#646e828c}.whitelist-btn.cancel{background:linear-gradient(180deg,#2a2f36,#1e2328);color:var(--text-secondary);border-color:#646e8259}.whitelist-btn.cancel:hover{background:linear-gradient(180deg,#323840,#262c32);color:var(--text-primary);border-color:#646e828c}.whitelist-btn.save{background:linear-gradient(180deg,#2a2f36,#1e2328);color:var(--text-secondary);border-color:#646e8259;min-width:100px}.whitelist-btn.save:hover:not(:disabled){background:linear-gradient(180deg,#323840,#262c32);color:var(--text-primary);border-color:#646e828c;background:#059669}.whitelist-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid var(--border-color)}.whitelist-count{font-size:.8rem;color:var(--text-secondary)}.whitelist-footer-buttons{display:flex;gap:8px}.whitelist-loading{padding:60px 20px;text-align:center;color:var(--text-secondary)}.dashboard{padding:1rem;min-height:100vh;background:var(--bg-primary)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.dashboard-status{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.status-indicator{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);background:var(--card-bg);padding:.5rem .75rem;border-radius:8px;border:1px solid var(--border-color)}.status-indicator.auth{color:#f59e0b}.status-dot{width:8px;height:8px;border-radius:50%;background:#6b7280}.status-indicator.connected .status-dot{background:#10b981;box-shadow:0 0 8px #10b98180}.status-indicator.disconnected .status-dot{background:#ef4444}.status-indicator.auth .status-dot{background:#f59e0b}.round-fab{position:fixed;bottom:30px;left:50%;transform:translate(-50%);z-index:1000;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px #0006;padding:0}.round-fab.idle{background:linear-gradient(180deg,#1e3a2a,#16291e);border:2px solid rgba(16,185,129,.4);color:#10b981}.round-fab.idle:hover:not(:disabled){background:linear-gradient(180deg,#254a34,#1e3a2a);border-color:#10b981b3;color:#34d399;box-shadow:0 4px 24px #10b98140}.round-fab.running{background:linear-gradient(180deg,#3a1e1e,#291616);border:2px solid rgba(239,68,68,.4);color:#ef4444}.round-fab.running:hover:not(:disabled){background:linear-gradient(180deg,#4a2525,#3a1e1e);border-color:#ef4444b3;color:#f87171;box-shadow:0 4px 24px #ef444440}.round-fab:disabled{opacity:.3;cursor:not-allowed}.dashboard-row-chart{display:flex;gap:1rem;align-items:stretch}.dashboard-row-chart .chart-section{flex:3;min-width:0;display:flex}.dashboard-row-chart .chart-section>*{flex:1}.dashboard-row-chart .donut-section{flex:1;min-width:220px;display:flex}.dashboard-row-chart .donut-section>*{flex:1}@media (max-width: 900px){.dashboard-row-chart{flex-direction:column}}.last-updated{font-size:.75rem;color:var(--text-muted)}.theme-toggle{background:var(--btn-bg);border:1px solid var(--btn-border);padding:.5rem .75rem;border-radius:8px;cursor:pointer;font-size:1.25rem;transition:all .15s}.theme-toggle:hover{background:var(--btn-bg-hover);border-color:var(--btn-border-hover)}.api-warning{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:1rem;margin-bottom:1.5rem;text-align:center}.api-warning p{color:#ef4444;margin:0 0 .5rem}.api-warning code{background:var(--card-bg);padding:.25rem .5rem;border-radius:4px;font-size:.875rem;color:var(--text-primary)}.dashboard-content{display:flex;flex-direction:column;gap:1.5rem}.dashboard-section{width:100%}.dashboard-section.full-width{grid-column:1 / -1}.dashboard-grid{display:grid;grid-template-columns:3fr 2fr;gap:1.5rem}@media (max-width: 1200px){.dashboard-grid{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.dashboard{padding:.75rem}.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-status{width:100%;justify-content:flex-start}.dashboard-grid{grid-template-columns:1fr}.dashboard-content{gap:1rem}}@media (max-width: 480px){.dashboard{padding:.5rem}.status-indicator{font-size:.75rem;padding:.375rem .5rem}}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:1rem;color:var(--text-muted)}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-layout{display:flex;min-height:100vh;background:var(--bg-primary)}.app-main{flex:1;min-width:0}.app-header{background:var(--card-bg);border-bottom:1px solid var(--border-color);padding:1rem 1.5rem;text-align:center}.app-header h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0}.app-header p{font-size:.875rem;color:var(--text-muted);margin:.25rem 0 0}
