/* SERP Checker: local SERP analysis (site types, competitor highlight, bulk competitor analytics). Shared by single and bulk modes. */
:root{--serp-c0:#e8590c;--serp-c1:#1c7ed6;--serp-c2:#d6336c;--serp-c3:#0ca678;--serp-c4:#b8860b;--serp-hl:#8f5aff;--serp-hl-soft:#f3efff}
.dark{--serp-c0:#ff922b;--serp-c1:#4dabf7;--serp-c2:#f783ac;--serp-c3:#38d9a9;--serp-c4:#fcc419;--serp-hl:#b197fc;--serp-hl-soft:#332747}
.serp-checker__competitor--0{--serp-c:var(--serp-c0)}.serp-checker__competitor--1{--serp-c:var(--serp-c1)}.serp-checker__competitor--2{--serp-c:var(--serp-c2)}.serp-checker__competitor--3{--serp-c:var(--serp-c3)}.serp-checker__competitor--4{--serp-c:var(--serp-c4)}

/* Badges */
.serp-checker__badge{display:inline-block;font-size:.72rem;line-height:1.35;font-weight:500;padding:.1rem .45rem;border-radius:.3rem;margin:0 .35rem .2rem 0;background:rgba(127,127,127,.12);color:inherit;white-space:nowrap}
.serp-checker__badge--aggregator{background:rgba(232,89,12,.12);color:#b4440a}
.serp-checker__badge--video{background:rgba(214,51,108,.12);color:#a61e4d}
.serp-checker__badge--forum{background:rgba(28,126,214,.12);color:#1864ab}
.serp-checker__badge--info{background:rgba(12,166,120,.12);color:#087f5b}
.serp-checker__badge--home{background:rgba(143,90,255,.12);color:#6a3fd8}
.serp-checker__badge--target{background:rgba(40,167,69,.14);color:#14652b}
.serp-checker__badge--competitor{background:var(--serp-c);color:#fff}
.dark .serp-checker__badge--aggregator{color:#ffa94d}.dark .serp-checker__badge--video{color:#faa2c1}.dark .serp-checker__badge--forum{color:#74c0fc}.dark .serp-checker__badge--info{color:#63e6be}.dark .serp-checker__badge--home{color:#b197fc}.dark .serp-checker__badge--target{color:#8ce5a0}.dark .serp-checker__badge--competitor{color:#1b1b1f}

/* Single mode */
.serp-checker__overview{display:flex;flex-direction:column;gap:.75rem}
.serp-checker__competitors{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}
.serp-checker__competitor{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border:1px solid rgba(127,127,127,.25);border-radius:.4rem;font-size:.875rem;min-width:0}
.serp-checker__swatch{flex:0 0 auto;width:.7rem;height:.7rem;border-radius:50%;background:var(--serp-c)}
.serp-checker__composition{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .35rem}
.serp-checker__composition .serp-checker__badge{margin:0}
/* Inset shadows survive .list-group-flush border resets, unlike border-left. */
#serp-result-list .serp-checker__result--competitor{box-shadow:inset 4px 0 0 var(--serp-c)}
#serp-result-list [data-target-match="1"]{box-shadow:inset 4px 0 0 #28a745;background:rgba(40,167,69,.05)}

/* Bulk mode: SERP panel entries */
.tool-bulk-serp-entry.is-competitor{border-left:3px solid var(--serp-c);padding-left:calc(1rem - 3px)}
.tool-bulk-serp-entry.is-highlight{background:var(--serp-hl-soft);box-shadow:inset 3px 0 0 var(--serp-hl)}
.tool-bulk-serp-entry-badges{margin-top:.35rem}
.tool-bulk-serp-host{background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}
.tool-bulk-serp-host:hover,.tool-bulk-serp-host:focus-visible{color:var(--serp-hl)}
.tool-bulk-serp-hl{display:block;margin-top:.35rem;font-size:.75rem;line-height:1.3;color:var(--serp-hl);font-weight:600;font-variant-numeric:tabular-nums}
.tool-bulk-serp-hl.is-absent{color:inherit;opacity:.6;font-weight:400}

/* Bulk mode: competitor analytics */
.serp-analysis{margin-top:1rem}
.serp-analysis__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem}
.serp-analysis__toolbar label{display:block;font-size:.75rem;margin-bottom:.25rem;color:#5f5f5f}.dark .serp-analysis__toolbar label{color:#aaa}
.serp-analysis__toolbar .custom-select{width:auto;max-width:100%}
.serp-analysis__tabs{flex-wrap:wrap}
.serp-analysis__highlight{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.4rem;background:var(--serp-hl-soft);color:#3b2a6b;margin-bottom:1rem;font-size:.875rem}
.dark .serp-analysis__highlight{color:#e9e4ff}.dark .serp-analysis__highlight .btn-link{color:#b197fc}
.serp-analysis__highlight[hidden]{display:none}
/* Scroll horizontally on phones instead of breaking domains letter by letter. */
.serp-analysis__table{table-layout:auto;margin-bottom:0;min-width:620px}
.serp-analysis__table td:first-child{min-width:170px}
.serp-analysis__table td:nth-child(n+3){white-space:nowrap}
.serp-analysis__table th{font-size:.75rem;font-weight:600;white-space:nowrap}
.serp-analysis__table td{vertical-align:middle;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.serp-analysis__table tr.is-highlight td{background:var(--serp-hl-soft)}
.serp-analysis__bar{display:block;height:4px;border-radius:2px;background:rgba(127,127,127,.15);margin-top:.3rem;min-width:60px}
.serp-analysis__bar span{display:block;height:100%;border-radius:2px;background:var(--serp-hl)}
.serp-analysis__scroll{max-height:520px;overflow:auto}
.serp-analysis__clusters{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}
.serp-analysis__cluster{border:1px solid rgba(127,127,127,.25);border-radius:.5rem;padding:.75rem;min-width:0}
.serp-analysis__cluster h4{font-size:.8125rem;font-weight:600;margin:0 0 .5rem}
.serp-analysis__cluster ul{margin:0;padding-left:1.1rem;font-size:.875rem}
.serp-analysis__cluster li{overflow-wrap:anywhere}
.serp-analysis__cluster--single{opacity:.75}
.serp-analysis__empty{font-size:.875rem;opacity:.75;margin:0}
@media(max-width:575.98px){.serp-analysis__toolbar{flex-direction:column;align-items:stretch}.serp-analysis__toolbar .custom-select{width:100%}}

/* Bulk SERP workspace: tabs, toolbar and side-by-side SERP columns (Arsenkin-style intersections). */
.serp-ws{--ws-line:#e7e8ec;--ws-muted:#656975;--ws-soft:#f7f8fa;--ws-surface:#fff}
.dark .serp-ws{--ws-line:#3d3d43;--ws-muted:#b0b2bf;--ws-soft:#29292e;--ws-surface:#252525}
.serp-ws__tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--ws-line);overflow-x:auto;scrollbar-width:none}
.serp-ws__tabs::-webkit-scrollbar{display:none}
.serp-ws__tab{background:none;border:0;border-bottom:2px solid transparent;padding:.6rem .9rem;margin-bottom:-1px;font-weight:500;color:var(--ws-muted);white-space:nowrap;cursor:pointer}
.serp-ws__tab:hover{color:inherit}
.serp-ws__tab.active{color:var(--serp-hl);border-bottom-color:var(--serp-hl)}
.serp-ws__tab:focus-visible{outline:2px solid var(--serp-hl);outline-offset:-2px;border-radius:.25rem}
.serp-ws__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:1rem}
.serp-ws__field label{display:block;font-size:.75rem;color:var(--ws-muted);margin-bottom:.25rem}
.serp-ws__field .custom-select{width:auto;max-width:100%}
.serp-ws__find{margin-left:auto;min-width:200px}
.serp-ws__segmented{display:inline-flex;flex-wrap:wrap;border:1px solid var(--ws-line);border-radius:.5rem;padding:2px;background:var(--ws-soft);gap:2px}
.serp-ws__segment{border:0;background:none;border-radius:.375rem;padding:.3rem .7rem;font-size:.8125rem;color:var(--ws-muted);white-space:nowrap;cursor:pointer}
.serp-ws__segment:hover{color:inherit}
.serp-ws__segment.is-active{background:var(--ws-surface);color:inherit;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.serp-ws__segment:focus-visible{outline:2px solid var(--serp-hl);outline-offset:1px}
.serp-ws__queries{display:flex;flex-direction:column;gap:1rem}
.serp-ws__query{border:1px solid var(--ws-line);border-radius:.6rem;overflow:hidden}
.serp-ws__query-head{padding:.6rem .9rem;background:var(--ws-soft);border-bottom:1px solid var(--ws-line)}
.serp-ws__query-title{font-size:.9375rem;font-weight:600;margin:0;overflow-wrap:anywhere}
.serp-ws__columns{display:grid;grid-template-columns:repeat(var(--serp-columns,2),minmax(260px,1fr));overflow-x:auto}
.serp-ws__column{min-width:0;border-left:1px solid var(--ws-line)}
.serp-ws__column:first-child{border-left:0}
.serp-ws__column-head{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding:.5rem .75rem;border-bottom:1px solid var(--ws-line);font-size:.75rem}
.serp-ws__column-label{font-weight:600;flex:1 1 auto;min-width:0}
.serp-ws__target{font-weight:600;color:#14652b;background:rgba(40,167,69,.12);border-radius:.3rem;padding:0 .35rem}
.serp-ws__target.is-absent{color:var(--ws-muted);background:rgba(127,127,127,.12)}
.dark .serp-ws__target{color:#8ce5a0}
.serp-ws__copy{background:none;border:0;padding:0;color:var(--serp-hl);font-size:.75rem;cursor:pointer}
.serp-ws__copy:hover{text-decoration:underline}
.serp-ws__state{margin:0;padding:1rem .75rem;font-size:.8125rem;color:var(--ws-muted)}
.serp-ws__state.is-failed{color:#b82536}.dark .serp-ws__state.is-failed{color:#ff9ba6}
.serp-ws__rows{list-style:none;margin:0;padding:0}
.serp-ws__row{display:flex;gap:.5rem;padding:.4rem .75rem;border-top:1px solid var(--ws-line);font-size:.8125rem;line-height:1.35;min-width:0}
.serp-ws__row:first-child{border-top:0}
.serp-ws__rank{flex:0 0 1.6rem;text-align:right;color:var(--ws-muted);font-variant-numeric:tabular-nums}
.serp-ws__main{min-width:0;flex:1}
.serp-ws__line{display:flex;align-items:baseline;gap:.25rem;min-width:0}
.serp-ws__host{flex:0 1 auto;min-width:0;background:none;border:0;padding:0;font:inherit;font-weight:600;color:inherit;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.serp-ws__host:hover,.serp-ws__host:focus-visible{color:var(--serp-hl);text-decoration:underline}
.serp-ws__path{flex:1 1 0;min-width:0;color:var(--ws-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.serp-ws__open{flex:0 0 auto;color:var(--ws-muted);text-decoration:none;padding:0 .15rem}
.serp-ws__open:hover{color:var(--serp-hl);text-decoration:none}
.serp-ws__title{color:var(--ws-muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.serp-ws__badges{margin-top:.15rem}.serp-ws__badges .serp-checker__badge{font-size:.65rem;padding:0 .35rem;margin-bottom:0}
.serp-ws__row.is-target{box-shadow:inset 3px 0 0 #28a745}
.serp-ws__row.is-highlight{box-shadow:inset 0 0 0 2px var(--serp-hl);position:relative}
.serp-ws__more{margin-top:.25rem}
/* Stable pastel tints: the same domain/URL gets the same color in every column. */
.serp-tint-0{background:#ffe8cc}.serp-tint-1{background:#d0ebff}.serp-tint-2{background:#ffdeeb}.serp-tint-3{background:#d3f9d8}.serp-tint-4{background:#fff3bf}
.serp-tint-5{background:#e5dbff}.serp-tint-6{background:#c5f6fa}.serp-tint-7{background:#ffe3e3}.serp-tint-8{background:#e9fac8}.serp-tint-9{background:#dbe4ff}
.dark .serp-tint-0{background:#4a3214}.dark .serp-tint-1{background:#13324d}.dark .serp-tint-2{background:#4a1f33}.dark .serp-tint-3{background:#173d20}.dark .serp-tint-4{background:#47400f}
.dark .serp-tint-5{background:#32245a}.dark .serp-tint-6{background:#103f44}.dark .serp-tint-7{background:#4d2020}.dark .serp-tint-8{background:#2f4214}.dark .serp-tint-9{background:#222f57}
.serp-tint-aggregator{background:rgba(232,89,12,.14)}.serp-tint-home{background:rgba(143,90,255,.14)}
#serp-ws-panel .tool-bulk-serp-table-wrap{max-height:none;border:1px solid var(--ws-line);border-radius:.6rem}
@media(max-width:767.98px){.serp-ws__columns{grid-template-columns:1fr}.serp-ws__column{border-left:0;border-top:1px solid var(--ws-line)}.serp-ws__column:first-child{border-top:0}.serp-ws__find{margin-left:0;width:100%}}

/* Query intent, query-word marks, summary tab */
.serp-intent{display:inline-block;font-size:.72rem;font-weight:600;line-height:1.35;padding:.1rem .5rem;border-radius:1rem;white-space:nowrap}
.serp-intent--commercial{background:rgba(232,89,12,.13);color:#b4440a}
.serp-intent--informational{background:rgba(28,126,214,.13);color:#1864ab}
.serp-intent--mixed{background:rgba(127,127,127,.15);color:inherit}
.dark .serp-intent--commercial{color:#ffa94d}.dark .serp-intent--informational{color:#74c0fc}
.serp-checker__profile,.serp-ws__profile{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .6rem;font-size:.75rem;color:var(--ws-muted,#656975)}
.serp-ws__profile{margin-top:.3rem}
#serp-result-list mark,.serp-ws mark{background:rgba(255,212,59,.45);color:inherit;padding:0 .05em;border-radius:2px}
.dark #serp-result-list mark,.dark .serp-ws mark{background:rgba(255,212,59,.28)}
.serp-ws__query.is-flash{box-shadow:0 0 0 3px var(--serp-hl);transition:box-shadow .3s}
.serp-ws__kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem}
.serp-ws__kpi{border:1px solid var(--ws-line);border-radius:.6rem;padding:.75rem .9rem;min-width:0;background:var(--ws-surface)}
.serp-ws__kpi.is-good{border-color:rgba(40,167,69,.45)}.serp-ws__kpi.is-warn{border-color:rgba(232,89,12,.5)}
.serp-ws__kpi-label{font-size:.75rem;color:var(--ws-muted);overflow-wrap:anywhere}
.serp-ws__kpi-value{font-size:1.5rem;font-weight:600;line-height:1.2;margin-top:.15rem;font-variant-numeric:tabular-nums}
.serp-ws__kpi-sub{font-size:.75rem;color:var(--ws-muted);margin-top:.15rem}
.serp-ws__kpi.is-warn .serp-ws__kpi-sub{color:#b4440a}
.serp-ws__intent-split{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}
.serp-ws__section-title{font-size:.875rem;font-weight:600;margin:0 0 .5rem}
.serp-ws__summary-scroll{border:1px solid var(--ws-line);border-radius:.6rem;margin-bottom:1.25rem}
.serp-ws__summary-table{margin:0;min-width:640px}
.serp-ws__summary-table th{font-size:.72rem;font-weight:600;color:var(--ws-muted);white-space:nowrap;border-top:0}
.serp-ws__summary-table td{vertical-align:middle;font-size:.8125rem;overflow-wrap:anywhere}
.serp-ws__query-link{background:none;border:0;padding:0;font:inherit;font-weight:600;color:inherit;text-align:left;cursor:pointer}
.serp-ws__query-link:hover,.serp-ws__query-link:focus-visible{color:var(--serp-hl);text-decoration:underline}
.serp-ws__rank-badge{display:inline-block;min-width:2.4rem;text-align:center;font-weight:600;font-variant-numeric:tabular-nums;border-radius:.3rem;padding:.05rem .4rem;background:rgba(127,127,127,.12)}
.serp-ws__rank-badge.is-top3{background:rgba(40,167,69,.2);color:#14652b}.serp-ws__rank-badge.is-top10{background:rgba(40,167,69,.1);color:#14652b}
.serp-ws__rank-badge.is-absent{font-weight:400;color:var(--ws-muted)}
.dark .serp-ws__rank-badge.is-top3,.dark .serp-ws__rank-badge.is-top10{color:#8ce5a0}
.serp-ws__cell-state{font-size:.75rem;color:var(--ws-muted)}.serp-ws__cell-state.is-failed{color:#b82536}
.serp-ws__chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}
.serp-ws__chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.1rem;border:1px solid var(--ws-line);background:var(--ws-surface);border-radius:.5rem;padding:.4rem .65rem;font-size:.8125rem;color:inherit;cursor:pointer;text-align:left}
.serp-ws__chip span{font-size:.72rem;color:var(--ws-muted)}
.serp-ws__chip:hover,.serp-ws__chip.is-active{border-color:var(--serp-hl);box-shadow:0 0 0 1px var(--serp-hl)}
@media(max-width:991.98px){.serp-ws__kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.serp-ws__kpis{grid-template-columns:1fr}}
.serp-ws__summary-table td:first-child{min-width:190px}
.serp-ws__summary-table th{white-space:normal;vertical-align:bottom;min-width:90px}

/* Clustering tab */
.serp-cl__intro{background:var(--ws-soft);border:1px solid var(--ws-line);border-radius:.6rem;padding:.75rem 1rem;margin-bottom:1rem;font-size:.875rem}
.serp-cl__intro strong{display:block;margin-bottom:.25rem}
.serp-cl__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem}
.serp-cl__card{border:1px solid var(--ws-line);border-radius:.6rem;padding:.85rem 1rem;min-width:0;background:var(--ws-surface)}
.serp-cl__card--single{border-style:dashed}
.serp-cl__title{font-size:.9375rem;font-weight:600;margin:0 0 .5rem}
.serp-cl__label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ws-muted);margin:.5rem 0 .25rem}
.serp-cl__queries{margin:0;padding-left:1.1rem;font-size:.875rem}
.serp-cl__queries li{overflow-wrap:anywhere}
.serp-cl__evidence{list-style:none;margin:0;padding:0;font-size:.8125rem}
.serp-cl__evidence li{display:flex;justify-content:space-between;gap:.5rem;padding:.2rem 0;border-top:1px solid var(--ws-line);min-width:0}
.serp-cl__evidence li:first-child{border-top:0}
.serp-cl__evidence a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.serp-cl__count{flex:0 0 auto;color:var(--ws-muted);font-size:.75rem}

/* Compact layout + sticky tab bar (2026-10-29 design pass) */
.serp-ws__head{padding:1rem 1.25rem .6rem}
.serp-ws__tabbar{position:sticky;top:var(--serp-sticky-top,0px);z-index:20;background:var(--ws-surface);padding:0 1.25rem;border-bottom:1px solid var(--ws-line);transition:box-shadow .15s}
.serp-ws__tabbar.is-stuck{box-shadow:0 6px 12px -8px rgba(0,0,0,.25)}
.serp-ws__tabs{border-bottom:0}
.serp-ws__tab{padding:.55rem .8rem}
#serp-ws-panel{padding:.85rem 1.25rem 1.1rem}
#serp-ws-panel .serp-ws__toolbar{margin-bottom:.7rem;gap:.5rem .75rem}
#serp-ws-panel .serp-ws__kpis{margin-bottom:.9rem;gap:.5rem}
#serp-ws-panel .serp-ws__kpi{padding:.55rem .8rem}
#serp-ws-panel .serp-ws__kpi-value{font-size:1.3rem}
#serp-ws-panel .serp-ws__summary-scroll{margin-bottom:.9rem}
#serp-ws-panel .serp-ws__summary-table td,#serp-ws-panel .serp-ws__summary-table th{padding:.4rem .6rem}
#serp-ws-panel .serp-ws__queries{gap:.6rem}
#serp-ws-panel .serp-ws__query-head{padding:.45rem .75rem}
#serp-ws-panel .serp-ws__row{padding:.3rem .6rem}
#serp-ws-panel .serp-ws__column-head{padding:.4rem .6rem}
#serp-ws-panel .serp-analysis__highlight{margin-bottom:.7rem;padding:.4rem .7rem}
#serp-ws-panel .serp-cl__intro{margin-bottom:.75rem;padding:.6rem .85rem}
#serp-ws-panel .serp-ws__section-title{margin-bottom:.4rem}
@media(max-width:575.98px){.serp-ws__head{padding:.85rem 1rem .5rem}.serp-ws__tabbar{padding:0 .5rem}#serp-ws-panel{padding:.75rem 1rem 1rem}}
.serp-ws__deeper{display:block;width:100%;border:0;border-top:1px solid var(--ws-line);background:var(--ws-soft);color:var(--serp-hl);font-size:.8125rem;padding:.4rem;cursor:pointer}
.serp-ws__deeper:hover{text-decoration:underline}

/* Sticky controls instead of sticky tabs (user feedback 2026-10-29): the highlight-mode panel is what
   people change while scrolling through long SERP columns. */
.serp-ws__tabbar{position:static;box-shadow:none}
.serp-ws__controls{position:sticky;top:var(--serp-sticky-top,0px);z-index:20;background:var(--ws-surface);margin:-.85rem -1.25rem .7rem;padding:.6rem 1.25rem .1rem;transition:box-shadow .15s}
.serp-ws__controls.is-stuck{box-shadow:0 6px 12px -8px rgba(0,0,0,.25);border-bottom:1px solid var(--ws-line)}
#serp-ws-panel .serp-ws__controls .serp-ws__toolbar{margin-bottom:.5rem}
#serp-ws-panel .serp-ws__controls .serp-analysis__highlight{margin-bottom:.5rem}
@media(max-width:575.98px){.serp-ws__controls{margin:-.75rem -1rem .6rem;padding:.5rem 1rem .1rem}.serp-ws__controls .serp-ws__field label{display:none}}
/* Phones: the pinned controls must stay one compact strip, not a quarter of the screen. */
@media(max-width:767.98px){
.serp-ws__controls .serp-ws__toolbar{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.4rem}
.serp-ws__controls .serp-ws__segmented{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
.serp-ws__controls .serp-ws__segmented::-webkit-scrollbar{display:none}
.serp-ws__controls .serp-ws__segment{flex:0 0 auto}
.serp-ws__controls .serp-ws__field label{display:none}
.serp-ws__controls .serp-ws__find{flex:1 1 0;min-width:0;width:auto;margin-left:0}
}
