:root{--ink:#14213d;--muted:#667085;--line:#e4e7ec;--paper:#fff;--bg:#f6f3ed;--orange:#f79009;--blue:#2e90fa;--green:#12b76a;--teal:#0f9f9a}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif}
.hero{padding:32px max(24px,calc((100vw - 1440px)/2));display:flex;justify-content:space-between;align-items:end;background:linear-gradient(120deg,#fff 0,#f4ead8 100%);border-bottom:1px solid var(--line)}
.hero-copy{min-width:0;max-width:1120px}
h1{font-family:Georgia,"Noto Serif SC",serif;font-size:42px;margin:4px 0}
.eyebrow,.step{color:var(--orange);font-weight:800;letter-spacing:.12em}
.roadmap-note{display:flex;align-items:center;flex-wrap:wrap;gap:5px 14px;margin-top:14px;color:#667085;font-size:11px;line-height:1.55}
.roadmap-note span:not(.roadmap-label)::before{content:"•";margin-right:6px;color:#98a2b3}
.roadmap-label{padding:2px 6px;border-radius:5px;background:#fff4e5;color:#b54708;font-size:10px;font-weight:800;letter-spacing:.08em}
.status{font-size:13px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff}
.status.is-connected{border-color:#a9d7b7;background:#f3fbf5;color:#176b35}
.status.is-degraded{border-color:#efc16c;background:#fff8e8;color:#a64b00}
main{max-width:1440px;margin:20px auto 60px;padding:0 20px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:18px;box-shadow:0 8px 30px rgba(16,24,40,.04)}
.filter-bar,.filters,.selection{display:flex;gap:16px;align-items:end;flex-wrap:wrap}
.series-field{display:grid;gap:5px}
.series-field select{min-width:190px}
.series-mode-button{height:41px;white-space:nowrap}
.series-mode-button.is-active{background:#fff4e5;color:#b54708;box-shadow:inset 0 0 0 1px #fedf89}
.section-filter-row{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin:4px 0 14px}
.section-filter-row label{display:grid;gap:5px}
.section-filter-row select{min-width:190px}
.section-filter-row #marketMapPeriod{min-width:250px}
.section-filter-row .hint{align-self:center;margin-top:18px}
label{font-size:13px;font-weight:700;display:flex;gap:8px;align-items:center}
select,input{min-width:160px;border:1px solid #d0d5dd;border-radius:9px;padding:10px;background:#fff;color:var(--ink)}
.filters #q{width:190px}
button{border:0;border-radius:9px;padding:11px 18px;background:var(--ink);color:#fff;font-weight:700;cursor:pointer}
button:hover{background:#243b64}
button:disabled{cursor:not-allowed;opacity:.5}
button.secondary{padding:7px 10px;background:#eef2f6;color:var(--ink)}
button.secondary:hover:not(:disabled){background:#dce4ee}
.asin-field{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:700}
.field-label{white-space:nowrap}
.asin-dropdown{position:relative}
.asin-trigger{width:280px;height:41px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;border:1px solid #d0d5dd;border-radius:9px;background:#fff;color:var(--ink);font-weight:400;text-align:left}
.asin-trigger:hover:not(:disabled),.asin-trigger[aria-expanded="true"]{background:#fff;border-color:#98a2b3}
.asin-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.asin-chevron{font-size:18px;line-height:1;color:var(--muted);transition:transform .15s ease}
.asin-trigger[aria-expanded="true"] .asin-chevron{transform:rotate(180deg)}
.asin-menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:320px;padding:8px;background:#fff;border:1px solid #d0d5dd;border-radius:10px;box-shadow:0 14px 32px rgba(16,24,40,.16)}
.asin-menu-head{display:flex;align-items:center;justify-content:space-between;padding:5px 7px 9px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}
.text-button{padding:3px 6px;background:transparent;color:#175cd3;font-size:12px}
.text-button:hover:not(:disabled){background:#eff8ff}
.asin-options{max-height:260px;overflow:auto;padding-top:5px}
.asin-option{display:flex;align-items:center;gap:9px;padding:7px;border-radius:7px;font-size:13px;font-weight:400;cursor:pointer}
.asin-option>span:nth-child(2){flex:1}
.asin-option-series{max-width:110px;overflow:hidden;padding:2px 6px;border-radius:999px;background:#eef2f6;color:#667085;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.asin-option:hover{background:#f2f4f7}
.asin-option input{min-width:0;width:15px;height:15px;margin:0;accent-color:var(--ink)}
.asin-empty{padding:18px 8px;text-align:center;color:var(--muted);font-size:13px}
.section-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-bottom:12px}
.section-head>div{display:flex;align-items:center;gap:12px}
.section-head h2{font-size:21px}
.section-head p,.hint{color:var(--muted);font-size:13px}
.collapsible-panel{padding:0}
.collapsible-panel details{padding:20px}
.collapsible-summary{margin:0;cursor:pointer;list-style:none;user-select:none}
.collapsible-summary::-webkit-details-marker{display:none}
.collapsible-panel details[open] .collapsible-summary{margin-bottom:12px}
.collapsible-summary-meta{display:flex;align-items:center;gap:12px}
.collapsible-action{display:inline-flex;min-width:92px;height:40px;align-items:center;justify-content:center;gap:9px;padding:0 15px;border-radius:9px;background:var(--ink);color:#fff;font-size:13px;font-weight:800;box-shadow:0 3px 10px rgba(20,33,61,.12);transition:background .18s ease,transform .18s ease}
.collapsible-summary:hover .collapsible-action{background:#243b64}
.collapsible-summary:focus-visible{outline:3px solid rgba(46,144,250,.3);outline-offset:4px;border-radius:8px}
.collapse-label{display:none}
.collapsible-arrow{font-size:19px;line-height:1;transition:transform .18s ease}
.collapsible-panel details[open] .expand-label{display:none}
.collapsible-panel details[open] .collapse-label{display:inline}
.collapsible-panel details[open] .collapsible-arrow{transform:rotate(180deg)}
.analysis-collapsible{min-width:0;margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.analysis-collapsible-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;cursor:pointer;list-style:none;user-select:none}
.analysis-collapsible-summary::-webkit-details-marker{display:none}
.analysis-collapsible-summary h3{margin:0;font-size:18px}
.analysis-collapsible-summary:hover{background:#f8fafc}
.analysis-collapsible-summary:focus-visible{outline:3px solid rgba(46,144,250,.3);outline-offset:-3px}
.analysis-collapsible-action{min-width:82px;height:34px;padding:0 13px;font-size:12px}
.analysis-collapsible[open]>.analysis-collapsible-summary{border-bottom:1px solid var(--line)}
.analysis-collapsible[open] .expand-label{display:none}
.analysis-collapsible[open] .collapse-label{display:inline}
.analysis-collapsible[open] .collapsible-arrow{transform:rotate(180deg)}
.analysis-collapsible-content{padding:8px 12px 12px}
.chart{height:320px}
.chart.large{height:500px}
.market-map-tooltip{display:grid;gap:7px;min-width:245px;color:#344054;font-size:12px;line-height:1.35}
.market-map-tooltip-title{overflow:hidden;color:var(--ink);font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.market-map-tooltip-row{display:flex;align-items:baseline;justify-content:space-between;gap:18px}
.market-map-tooltip-row span,.market-map-tooltip-target>span{color:#667085}
.market-map-tooltip-row b,.market-map-tooltip-target b{color:var(--ink);font-variant-numeric:tabular-nums}
.market-map-tooltip-row.is-primary b{font-size:14px}
.market-map-tooltip-divider{height:1px;margin:1px 0;background:#eaecf0}
.market-map-tooltip-target{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;padding:7px 8px;border-radius:7px;background:#f6f8fb}
.market-map-tooltip-target small{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:11px}
.market-map-tooltip-target i{color:#7b8495;font-style:normal}
.warnings:empty{display:none}
.warnings{background:#fffaeb;border:1px solid #fedf89;color:#93370d;border-radius:12px;padding:12px;margin:12px 0}
.notice,.disclaimer{padding:12px 14px;border-radius:10px;font-size:13px;margin:14px 0}
.notice{background:#f2f4f7;color:#475467}
.disclaimer{background:#fff4ed;border-left:4px solid var(--orange);font-weight:800}
.range-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.range-card{min-width:0;padding:14px 16px 11px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}
.range-card-head,.range-domain,.chart-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.range-card-head{font-size:13px}
.range-card-head output{color:var(--teal);font-weight:800;font-variant-numeric:tabular-nums}
.range-domain{color:var(--muted);font-size:11px;margin-top:4px;font-variant-numeric:tabular-nums}
.dual-range{position:relative;height:28px;margin-top:8px}
.range-rail{position:absolute;left:0;right:0;top:12px;height:5px;border-radius:999px;background:#e3e8ef;overflow:hidden}
.range-fill{position:absolute;height:100%;left:0;right:0;background:var(--teal)}
.dual-range input[type="range"]{position:absolute;inset:0;width:100%;height:28px;min-width:0;margin:0;padding:0;border:0;background:transparent;appearance:none;pointer-events:none}
.dual-range input[type="range"]::-webkit-slider-runnable-track{height:5px;background:transparent}
.dual-range input[type="range"]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7px;border:2px solid var(--teal);border-radius:50%;background:#fff;appearance:none;box-shadow:0 1px 4px rgba(16,24,40,.2);pointer-events:all;cursor:grab}
.dual-range input[type="range"]::-moz-range-track{height:5px;background:transparent}
.dual-range input[type="range"]::-moz-range-thumb{width:16px;height:16px;border:2px solid var(--teal);border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(16,24,40,.2);pointer-events:all;cursor:grab}
.brand-filter-card{display:flex;flex-direction:column}
button.brand-filter-trigger{display:flex;width:100%;min-width:0;height:36px;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:7px 10px;border:1px solid #cfd6e1;background:#fff;color:#344054;font-size:12px;font-weight:700;box-shadow:0 1px 2px rgba(16,24,40,.04);text-align:left}
button.brand-filter-trigger:hover,button.brand-filter-trigger:focus-visible,button.brand-filter-trigger.is-active{border-color:#67c7c1;background:#f1fbfa;color:#087f7b;box-shadow:0 0 0 3px rgba(15,159,154,.1)}
.brand-filter-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand-filter-chevron{flex:0 0 auto;color:#667085;font-size:15px;line-height:1;transition:transform .14s ease}
.brand-filter-trigger[aria-expanded="true"] .brand-filter-chevron{transform:rotate(180deg)}
.brand-filter-popover{width:min(380px,calc(100vw - 24px))}
.brand-filter-summary-options{display:grid;gap:6px;margin-bottom:10px}
.brand-filter-master{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border:1px solid #eaecf0;border-radius:8px;background:#f9fafb;color:#344054;font-weight:700;cursor:pointer}
.brand-filter-master>span{display:flex;align-items:center;gap:8px;min-width:0}
.brand-filter-master small,.brand-filter-option small{color:#98a2b3;font-size:10px;font-weight:600}
.brand-filter-master input,.brand-filter-option input{width:14px;min-width:14px;height:14px;margin:0;accent-color:var(--teal)}
.brand-filter-divider{height:1px;margin:10px 0;background:#eaecf0}
.brand-filter-search{width:100%;min-width:0;margin-bottom:8px;padding:7px 9px;font-size:12px}
.brand-filter-options{display:grid;gap:2px;max-height:230px;overflow:auto;padding-right:3px}
.brand-filter-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:6px;color:#344054;cursor:pointer}
.brand-filter-option.is-search-hidden,.brand-filter-no-results[hidden]{display:none}
.brand-filter-option:hover{background:#f2f4f7}
.brand-filter-option>span{display:flex;align-items:center;gap:8px;min-width:0}
.brand-filter-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand-filter-no-results{padding:12px 8px;color:#98a2b3;text-align:center}
.candidate-visual{border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:14px 16px 4px;background:#fff}
.chart-heading h3{margin:0 0 3px;font-size:16px}
.chart-heading p{margin:0;color:var(--muted);font-size:12px}
.candidate-chart-title-wrap{position:relative;min-width:0}
.candidate-chart-title-line{display:flex;align-items:center;gap:7px}
.candidate-chart-title-line h3{margin:0}
.candidate-chart-help{position:relative}
.candidate-chart-help>summary{display:grid;width:20px;height:20px;place-items:center;border:1px solid #98a2b3;border-radius:50%;background:#fff;color:#667085;font-size:12px;font-weight:900;line-height:1;cursor:pointer;list-style:none;transition:border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease}
.candidate-chart-help>summary::-webkit-details-marker{display:none}
.candidate-chart-help>summary:hover,.candidate-chart-help>summary:focus-visible,.candidate-chart-help[open]>summary{border-color:var(--teal);background:#eef9f7;color:#087f7b;box-shadow:0 0 0 3px rgba(15,159,154,.1)}
.candidate-chart-help-popover{position:absolute;z-index:25;top:28px;left:0;width:min(560px,calc(100vw - 72px));padding:13px 14px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;box-shadow:0 14px 34px rgba(16,24,40,.18);text-align:left}
.candidate-chart-help-popover strong{display:block;margin-bottom:7px;font-size:13px}
.candidate-chart-help-popover p{margin:6px 0!important;color:#667085!important;font-size:11px!important;line-height:1.65}
.encoding-key{text-align:right}
.group-legend{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px 12px;color:var(--muted);max-width:760px}
.group-legend-item{display:inline-flex;align-items:center;gap:5px;min-width:0;padding:2px 5px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:11px;white-space:nowrap;box-shadow:none;cursor:pointer}
.group-legend-item:hover,.group-legend-item:focus-visible{border-color:#d0d5dd;background:#fff}
.group-legend-item.is-hidden{opacity:.42;filter:grayscale(.65)}
.group-legend-item.is-hidden .group-swatch{background:transparent}
.group-legend-item strong{color:var(--ink);font-size:11px}
.group-swatch{width:10px;height:10px;border-radius:50%;background:var(--swatch);border:1px solid rgba(20,33,61,.14);flex:0 0 auto}
.candidate-chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:9px;border-top:1px solid #f0f2f5}
.candidate-chart-select-all{display:inline-flex;align-items:center;gap:7px;color:#475467;font-size:12px;font-weight:700;cursor:pointer}
.candidate-chart-select-all input{width:15px;height:15px;min-width:0;margin:0;accent-color:var(--ink);cursor:pointer}
.candidate-brush-toolbar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}
button.candidate-brush-button{display:inline-flex;min-width:0;align-items:center;gap:5px;padding:6px 9px;border:1px solid transparent;font-size:11px;white-space:nowrap;box-shadow:none}
button.candidate-brush-button:hover:not(:disabled),button.candidate-brush-button:focus-visible,button.candidate-brush-button.is-active{border-color:#9adbd6;background:#eaf8f6;color:#087f7b}
button.candidate-hold-button[aria-pressed="true"]{border-color:#e9b949;background:linear-gradient(110deg,#fff9e8,#ecfbf8);color:#8a5a00;box-shadow:0 0 0 2px rgba(233,185,73,.13),0 2px 10px rgba(15,159,154,.12)}
.candidate-held-count:empty{display:none}
.candidate-held-count{display:inline-grid;min-width:17px;height:17px;place-items:center;padding:0 4px;border-radius:999px;background:#fff;color:#8a5a00;font-size:9px;box-shadow:inset 0 0 0 1px rgba(212,160,23,.3)}
.group-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--group-color) 13%,white);color:#344054;font-size:11px;font-weight:800}
.group-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--group-color)}
.candidate-cpa-value{display:block;font-variant-numeric:tabular-nums}
.candidate-cpa-source{display:block;margin-top:2px;color:#667085;font-size:10px;line-height:1.2}
.candidate-cpa-source.is-missing{color:#a66f00}
.chart.candidate-bubble{height:430px}
.table-wrap{overflow:auto;max-height:420px;border:1px solid var(--line);border-radius:10px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{position:sticky;top:0;background:#f9fafb;z-index:1}
.candidate-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;margin:0 2px 7px;color:#667085;font-size:12px}
.candidate-table-toolbar[hidden]{display:none}
.candidate-table-toolbar .text-button{padding:3px 5px;font-size:12px}
.candidate-table-filter-state,.candidate-table-column-actions{display:flex;align-items:center;gap:8px}
.candidate-table-column-actions>span{color:#98a2b3;font-size:11px}
button.candidate-column-config-button{min-width:0;padding:7px 11px;font-size:12px;white-space:nowrap}
.candidate-column-head{display:inline-flex;align-items:center;gap:3px}
.candidate-column-drag-handle{display:inline-flex;width:13px;align-items:center;justify-content:center;color:#b0b8c5;font-size:13px;line-height:1;letter-spacing:-4px;cursor:grab;user-select:none}
.candidate-column-drag-handle:active{cursor:grabbing}
.candidate-table th[data-candidate-column]{transition:box-shadow .12s ease,opacity .12s ease}
.candidate-table th[data-candidate-column].is-dragging{opacity:.45}
.candidate-table th[data-candidate-column].drop-before{box-shadow:inset 3px 0 0 var(--teal)}
.candidate-table th[data-candidate-column].drop-after{box-shadow:inset -3px 0 0 var(--teal)}
table.candidate-table thead button.candidate-sort-button,table.candidate-table thead button.candidate-filter-button{min-width:0!important;margin:0!important;border:0!important;background:transparent!important;color:var(--ink)!important;box-shadow:none!important;font:inherit!important}
table.candidate-table thead button.candidate-sort-button{display:inline-flex;align-items:center;gap:3px;padding:4px 3px!important;border-radius:5px!important;font-weight:800!important;text-align:left}
table.candidate-table thead button.candidate-sort-button:hover,table.candidate-table thead button.candidate-sort-button:focus-visible{background:#eef7f6!important;color:#087f7b!important}
.sort-indicator{display:inline-block;min-width:9px;color:#0f9f99;font-size:11px}
table.candidate-table thead button.candidate-filter-button{display:inline-grid;width:24px;height:24px;place-items:center;flex:0 0 24px;padding:0!important;border-radius:6px!important;color:#98a2b3!important}
table.candidate-table thead button.candidate-filter-button::before{content:"";width:12px;height:12px;background:currentColor;clip-path:polygon(4% 8%,96% 8%,61% 48%,61% 87%,42% 97%,42% 48%)}
table.candidate-table thead button.candidate-filter-button:hover,table.candidate-table thead button.candidate-filter-button:focus-visible{background:#f2f4f7!important;color:#667085!important}
table.candidate-table thead button.candidate-filter-button.is-active{background:#e8f6f4!important;color:#087f7b!important;box-shadow:inset 0 0 0 1px #9adbd6!important}
.candidate-filter-popover{position:fixed;z-index:30;width:min(350px,calc(100vw - 24px));padding:13px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(16,24,40,.18);color:var(--ink);font-size:12px}
.candidate-filter-popover[hidden]{display:none}
.candidate-filter-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}
.candidate-filter-title strong{font-size:13px}
.candidate-filter-close{min-width:0;padding:1px 4px;border:0;background:transparent;color:#98a2b3;font-size:18px;line-height:1;box-shadow:none}
.candidate-filter-close:hover{background:transparent;color:var(--ink);box-shadow:none}
.candidate-filter-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.candidate-filter-fields.one{grid-template-columns:1fr}
.candidate-filter-fields label{display:grid;gap:4px;color:#667085;font-size:11px}
.candidate-filter-fields input,.candidate-filter-fields select{width:100%;min-width:0;padding:7px 8px;font-size:12px}
.candidate-filter-check{display:flex!important;grid-column:1/-1;align-items:center;gap:7px;color:#475467!important}
.candidate-filter-check input{width:14px;min-width:14px;height:14px;margin:0;accent-color:var(--teal)}
.candidate-filter-preset-block{margin-top:11px;padding-top:10px;border-top:1px solid #eaecf0}
.candidate-filter-preset-label{display:block;margin-bottom:7px;color:#667085;font-size:11px;font-weight:700}
.candidate-filter-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.candidate-filter-presets button{min-width:0;padding:6px 8px;border:1px solid #d0d5dd;background:#f9fafb;color:#475467;font-size:11px;font-weight:700;box-shadow:none;text-align:left}
.candidate-filter-presets button:hover,.candidate-filter-presets button:focus-visible{border-color:#9adbd6;background:#eef9f7;color:#087f7b;box-shadow:none}
.candidate-filter-options{display:grid;gap:7px;max-height:190px;overflow:auto}
.candidate-filter-options label{display:flex;align-items:center;gap:8px;color:#344054}
.candidate-filter-options input{width:14px;min-width:14px;height:14px;margin:0;accent-color:var(--teal)}
.candidate-filter-empty{padding:8px 0;color:#98a2b3}
.candidate-filter-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;padding-top:11px;border-top:1px solid #eaecf0}
.candidate-filter-actions button{min-width:0;padding:7px 10px;font-size:12px}
.candidate-filter-actions .filter-reset{background:transparent;color:#667085;box-shadow:none}
.brand-filter-popover .candidate-filter-actions .filter-reset.is-active{border-color:#9adbd6;background:#eaf8f6;color:#087f7b;font-weight:700}
.candidate-filter-actions .filter-apply{background:var(--ink);color:#fff}
.candidate-column-popover{width:min(310px,calc(100vw - 24px))}
.candidate-column-note{margin:0 0 10px;color:#667085;font-size:11px;line-height:1.5}
.candidate-column-options{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;max-height:250px;overflow:auto}
.candidate-column-options label{display:flex;align-items:center;gap:7px;min-width:0;padding:6px 7px;border-radius:6px;color:#344054;font-size:12px;font-weight:500;cursor:pointer}
.candidate-column-options label:hover{background:#f2f4f7}
.candidate-column-options input{width:14px;min-width:14px;height:14px;margin:0;accent-color:var(--teal)}
.candidate-column-options span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.candidate-column-options small{margin-left:auto;color:#98a2b3;font-size:10px}
.candidate-table .selection-column,.candidate-table td:first-child{width:48px;text-align:center}
.candidate-select-all,.candidate-table td:first-child input{width:15px;height:15px;min-width:0;margin:0;accent-color:var(--ink);cursor:pointer}
.selected-keywords-panel{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.selected-keywords-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.selected-keywords-head>div{display:flex;align-items:baseline;gap:8px}
.selected-keywords-head strong{font-size:13px}
.selected-keywords-head span{color:var(--muted);font-size:11px}
.selected-keyword-chips{display:flex;align-items:center;flex-wrap:wrap;gap:7px;max-height:116px;overflow:auto}
.selected-keyword-chip{display:inline-flex;align-items:center;gap:7px;max-width:300px;padding:6px 9px;border:1px solid #d0d5dd;border-radius:999px;background:#fff;color:#344054;font-size:12px;font-weight:600}
.selected-keyword-chip span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selected-keyword-chip .remove-mark{color:#98a2b3;font-size:15px;line-height:1}
.selected-keyword-chip:hover{border-color:#98a2b3;background:#f2f4f7;color:var(--ink)}
.selected-keyword-chip.is-held{border-color:#e9b949;background:linear-gradient(110deg,#fffaf0,#effbf9);box-shadow:0 0 0 2px rgba(15,159,154,.1),0 2px 8px rgba(212,160,23,.12)}
.selected-keyword-chip .held-mark{color:#b7791f;font-size:10px;font-weight:900}
.selected-keyword-empty{padding:3px 0;color:var(--muted);font-size:12px}
.selection{justify-content:space-between;margin-top:14px}
.analysis-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}
.rank-trend-block{margin:5px 0 12px;padding:3px 0 11px;border-bottom:1px solid var(--line)}
.rank-trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:7px}
.rank-trend-head h3{margin:0 0 4px;font-size:18px}
.rank-trend-head p{margin:0}
.rank-chart-controls{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.rank-chart-controls label{display:grid;gap:5px;color:#475467;font-size:11px}
.rank-chart-controls select{min-width:116px;padding:8px 10px}
.rank-chart-controls input[type="date"],.ad-chart-controls input[type="date"]{min-width:138px;padding:8px 10px}
.custom-date-control[hidden]{display:none}
.rank-chart-controls label:first-child select{min-width:175px}
.ad-history-block{grid-column:1/-1;margin-top:0;padding:3px 0 11px;border-bottom:1px solid var(--line)}
.ad-history-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 16px;margin-bottom:7px}
.ad-history-head h3{margin:0 0 4px;font-size:18px}
.ad-history-head p{margin:0}
.ad-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ad-title-line h3{margin:0}
.ad-history-head .ad-dimension-note{grid-column:1/-1;overflow-x:auto;max-width:none;padding:6px 9px;border-left:2px solid #7fc9c3;border-radius:0 6px 6px 0;background:#f5faf9;color:#596579;font-size:11px;line-height:1.55;white-space:nowrap}
.ad-dimension-note strong{color:#344054}
.ad-dimension-select{min-width:88px;padding:5px 28px 5px 10px;border-color:#cfd7e3;border-radius:8px;background-color:#fff;color:var(--ink);font-size:12px;font-weight:700}
.ad-chart-controls{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.ad-chart-controls label{display:grid;gap:5px;color:#475467;font-size:11px}
.ad-chart-controls select{min-width:132px;padding:8px 10px}
.ad-chart-controls label:first-child select{min-width:175px}
.ad-chart{height:320px}
.ad-series-summary-tooltip{position:fixed;z-index:45;width:230px;padding:12px 13px;border:1px solid #d8dee8;border-radius:10px;background:rgba(255,255,255,.98);box-shadow:0 12px 30px rgba(16,24,40,.16);color:#344054;font-size:12px;pointer-events:none}
.ad-series-summary-tooltip[hidden]{display:none}
.ad-series-summary-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 7px;padding-bottom:9px;border-bottom:1px solid #eaecf0}
.ad-series-summary-swatch{grid-row:1/3;width:9px;height:9px;border-radius:50%;background:var(--series-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--series-color) 14%,transparent)}
.ad-series-summary-head strong{overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.ad-series-summary-head small{color:#667085;font-size:10px}
.ad-series-summary-values{display:grid;gap:7px;padding-top:9px}
.ad-series-summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.ad-series-summary-row span{color:#667085}
.ad-series-summary-row strong{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}
.ad-series-summary-row strong.is-up{color:#0f9f69}
.ad-series-summary-row strong.is-down{color:#d64545}
.ad-series-summary-foot{margin-top:9px;padding-top:8px;border-top:1px dashed #e1e6ee;color:#7b8495;font-size:10px;line-height:1.4}
.ad-detail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 0 9px}
.ad-detail-head h4{margin:0 0 3px;font-size:15px}
.ad-detail-head p{margin:0}
.ad-attribution-note{color:#667085;font-size:11px;text-align:right}
.ad-detail-help-area{display:flex;align-items:center;gap:8px;align-self:flex-end}
.ad-detail-help{position:relative;flex:none;line-height:1}
.ad-detail-help-button{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;padding:0;border:1px solid #98a2b3;border-radius:50%;background:#fff;color:#667085;font-size:13px;font-weight:700;cursor:help}
.ad-detail-help-button:hover,.ad-detail-help-button:focus-visible{border-color:#3b82f6;color:#2563eb;outline:2px solid #dbeafe;outline-offset:2px}
.ad-detail-help-tooltip{position:absolute;right:0;top:100%;z-index:50;width:min(380px,calc(100vw - 64px));box-sizing:border-box;padding:14px 16px;border:1px solid #d8dee8;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.14);color:#344054;font-size:12px;line-height:1.65;text-align:left;visibility:hidden;opacity:0;pointer-events:none}
.ad-detail-help-tooltip strong{display:block;color:var(--ink);font-size:13px}
.ad-detail-head .ad-detail-help-tooltip p{margin:8px 0 0}
.ad-detail-help:hover .ad-detail-help-tooltip,.ad-detail-help:focus-within .ad-detail-help-tooltip{visibility:visible;opacity:1;pointer-events:auto}
.ad-detail-table-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:28px;margin:-2px 2px 7px;color:#667085;font-size:12px}
.ad-detail-table-toolbar[hidden]{display:none}
.ad-detail-table-toolbar .text-button{padding:3px 5px;font-size:12px}
.ad-detail-wrap{max-height:360px}
.ad-detail-table{min-width:1320px;font-variant-numeric:tabular-nums}
.ad-detail-table th:not(:first-child),.ad-detail-table td:not(:first-child){text-align:right}
.ad-detail-table th:first-child{min-width:310px}
.ad-detail-table th:nth-child(2){min-width:84px}
.ad-detail-column-head{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px;width:100%}
.ad-detail-table th:first-child .ad-detail-column-head{justify-content:flex-start}
table.ad-detail-table thead button.ad-detail-sort-button,table.ad-detail-table thead button.ad-detail-filter-button{min-width:0!important;margin:0!important;border:0!important;background:transparent!important;color:var(--ink)!important;box-shadow:none!important;font:inherit!important}
table.ad-detail-table thead button.ad-detail-sort-button{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;padding:4px 2px!important;border-radius:5px!important;font-weight:800!important;white-space:nowrap}
table.ad-detail-table th:first-child button.ad-detail-sort-button{justify-content:flex-start;text-align:left}
table.ad-detail-table thead button.ad-detail-sort-button:hover,table.ad-detail-table thead button.ad-detail-sort-button:focus-visible{background:#eef7f6!important;color:#087f7b!important}
table.ad-detail-table thead button.ad-detail-filter-button{display:inline-grid;width:21px;height:22px;place-items:center;flex:0 0 21px;padding:0!important;border-radius:6px!important;color:#98a2b3!important}
table.ad-detail-table thead button.ad-detail-filter-button::before{content:"";width:11px;height:11px;background:currentColor;clip-path:polygon(4% 8%,96% 8%,61% 48%,61% 87%,42% 97%,42% 48%)}
table.ad-detail-table thead button.ad-detail-filter-button:hover,table.ad-detail-table thead button.ad-detail-filter-button:focus-visible{background:#f2f4f7!important;color:#667085!important}
table.ad-detail-table thead button.ad-detail-filter-button.is-active{background:#e8f6f4!important;color:#087f7b!important;box-shadow:inset 0 0 0 1px #9adbd6!important}
.ad-detail-filter-popover{z-index:35}
.ad-detail-row.is-search-term{background:#fff}
.ad-detail-row.is-target{background:#f8fafc}
.ad-detail-row.is-ad-group{background:#fcfcfd;color:#475467}
.ad-detail-row.is-total{background:#f2f4f7;font-weight:800}
.ad-detail-name{display:flex;align-items:flex-start;gap:7px;min-width:0}
.ad-detail-drill{cursor:pointer;border-radius:6px}
.ad-detail-drill:hover strong{color:#175cd3}
.ad-chart-drill-hint{margin:8px 0;color:#175cd3;font-size:12px}
.ad-chart-drill-tooltip-hint{margin-top:8px;color:#175cd3;font-size:12px}
.ad-detail-drill-scope{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;padding:10px 12px;border:1px solid #b2ccff;border-radius:8px;background:#eff6ff;color:#175cd3;font-size:12px}
.ad-detail-drill-scope[hidden],.ad-chart-drill-hint[hidden]{display:none}
.ad-detail-drill-scope button{flex:none;padding:5px 10px;border:1px solid #b2ccff;border-radius:6px;background:#fff;color:#175cd3;font-size:12px;cursor:pointer}
.ad-detail-drill:focus-visible{outline:2px solid rgba(46,144,250,.35);outline-offset:2px}
.ad-detail-name-content{display:grid;gap:2px;min-width:0}
.ad-detail-name-content strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-detail-name-content small{color:#667085;font-size:10px;white-space:normal}
.ad-detail-caret{width:16px;min-width:16px;color:#667085;font-size:18px;line-height:17px;text-align:center}
.ad-detail-leaf{width:16px;min-width:16px;color:#98a2b3;text-align:center}
.ad-detail-indent-1{padding-left:30px}
.ad-detail-indent-2{padding-left:58px}
.match-badge{display:inline-flex;padding:2px 6px;border-radius:999px;background:#eef2f6;color:#475467;font-size:10px;font-weight:700}
.table-empty{padding:28px!important;color:#98a2b3;text-align:center!important}
.rank-summary{display:block;margin:6px 0 0}
.rank-summary:empty{display:none}
.rank-summary-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.rank-summary-card{min-width:0;padding:7px 10px;border:1px solid transparent;border-left:3px solid var(--series-color);border-radius:8px;background:#f7f9fc;transition:border-color .15s,box-shadow .15s,background .15s,transform .15s}
.rank-summary-card.is-awaiting-arrival{opacity:.18}
.rank-summary-card.is-arriving{animation:rank-card-arrive .3s cubic-bezier(.22,.8,.24,1)}
.rank-card-flight{position:fixed;z-index:9999;box-sizing:border-box;overflow:hidden;padding:7px 10px;border:1px solid color-mix(in srgb,var(--series-color) 42%,#d6deea);border-left:3px solid var(--series-color);background:#fff;color:#344054;font-size:12px;font-weight:800;line-height:20px;box-shadow:0 14px 34px rgba(16,24,40,.2);text-overflow:ellipsis;white-space:nowrap;pointer-events:none}
@keyframes rank-card-arrive{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--series-color) 30%,transparent);transform:translateY(-3px)}60%{box-shadow:0 0 0 5px color-mix(in srgb,var(--series-color) 12%,transparent);transform:translateY(0)}100%{box-shadow:0 0 0 0 transparent;transform:translateY(0)}}
.rank-summary.is-dragging-keyword .rank-summary-card{border-color:#d6deea;background:#f9fbfd}
.rank-summary-card.is-drop-target{border-color:#91b7e8;background:#eef6ff;box-shadow:0 0 0 3px rgba(72,120,208,.12);transform:translateY(-1px)}
.rank-summary-keyword-row{display:flex;align-items:center;gap:6px}
.rank-summary-keyword{overflow:hidden;margin-bottom:3px;color:#344054;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.rank-summary-keyword-row .rank-summary-keyword{flex:1;min-width:0}
.rank-summary-remove{flex:0 0 auto;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:#98a2b3;font-size:16px;font-weight:500;line-height:20px;box-shadow:none}
.rank-summary-remove:hover{background:#e9eef5;color:#475467;transform:none}
.rank-summary-values{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:11px}
.rank-summary-values strong{color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums}
.rank-summary-values span{white-space:nowrap}
.rank-movement{font-weight:800;font-variant-numeric:tabular-nums}
.rank-movement.is-up{color:var(--green)}
.rank-movement.is-down{color:#d92d20}
.rank-movement.is-flat{color:var(--muted)}
.rank-keyword-basket{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-top:8px;padding:7px 9px;border:1px dashed #cfd7e3;border-radius:8px;background:#fbfcfe}
.rank-keyword-basket-head{display:grid;gap:1px;min-width:170px}
.rank-keyword-basket-head strong{color:#344054;font-size:12px}
.rank-keyword-basket-head span{color:var(--muted);font-size:10px;white-space:nowrap}
.rank-keyword-basket-chips{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:2px 1px 4px}
.rank-basket-chip{flex:0 0 auto;max-width:220px;overflow:hidden;padding:5px 8px;border:1px solid #d8dee8;border-radius:999px;background:#fff;color:#475467;cursor:pointer;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap;user-select:none}
.rank-basket-chip:hover{border-color:#9fb4d1;background:#f4f8fd;color:var(--ink)}
.rank-basket-chip:active{cursor:grabbing}
.rank-basket-chip.is-dragging{opacity:.45}
.rank-chart{height:320px}
.rank-note{margin:0;color:var(--muted);font-size:11px}
.grid{display:grid;gap:12px}
.grid.two{grid-template-columns:1fr 1fr}
.grid article{min-width:0}
@media(max-width:1180px) and (min-width:901px){.range-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.grid.two,.range-controls{grid-template-columns:1fr}.hero{align-items:start;flex-direction:column;gap:16px}.chart.large{height:380px}.chart.candidate-bubble{height:360px}.chart-heading,.rank-trend-head,.ad-history-head,.ad-detail-head{align-items:flex-start;flex-direction:column}.candidate-chart-toolbar{align-items:flex-start;flex-direction:column}.candidate-brush-toolbar{justify-content:flex-start}.candidate-chart-help-popover{width:min(520px,calc(100vw - 64px))}.ad-attribution-note{text-align:left}.encoding-key{text-align:left}.group-legend{justify-content:flex-start}.analysis-actions{align-items:flex-end;flex-direction:column}.rank-chart-controls,.ad-chart-controls{justify-content:flex-start}.rank-chart,.ad-chart{height:300px}.asin-trigger{width:min(280px,70vw)}.asin-menu{width:min(320px,80vw)}}
@media(prefers-reduced-motion:reduce){.rank-summary-card.is-arriving{animation:none}.rank-card-flight{display:none}}
