.visibility-page {
  --sv-blue: #2563eb;
  --sv-blue-soft: #eef4ff;
  --sv-green: #15803d;
  --sv-amber: #b45309;
  --sv-red: #be123c;
  --sv-violet: #7c3aed;
  --sv-cyan: #0e7490;
  --sv-text: #111827;
  --sv-muted: #64748b;
  --sv-dim: #94a3b8;
  --sv-border: #dce3ec;
  --sv-surface: #fff;
  --sv-subtle: #f7f9fc;
  color: var(--sv-text);
  font-family: 'Geist', Arial, sans-serif;
  padding-bottom: 52px;
}
.visibility-page *, .visibility-page *::before, .visibility-page *::after { box-sizing: border-box; }
.visibility-page button, .visibility-page input, .visibility-page select, .visibility-page textarea { font: inherit; letter-spacing: 0; }
.visibility-wrap { width: min(100%, 1600px); margin: 0 auto; }
.visibility-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 25px; }
.visibility-tag { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; color: var(--sv-blue); font: 650 10px/1.3 'Geist Mono', monospace; letter-spacing: 1.5px; }
.visibility-tag span { width: 6px; height: 6px; transform: rotate(45deg); background: var(--sv-blue); }
.visibility-header h1 { margin: 0; font-size: 26px; line-height: 1.08; font-weight: 720; letter-spacing: 0; }
.visibility-header h1 span { color: var(--sv-blue); }
.visibility-header p { margin: 9px 0 0; color: var(--sv-muted); font-size: 14px; line-height: 1.5; }
.header-actions, .classification-actions, .analysis-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }

.icon-button, .secondary-button, .primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 41px; border-radius: 7px; cursor: pointer; transition: border-color .15s, background-color .15s, color .15s, transform .15s, box-shadow .15s; }
.icon-button { width: 42px; padding: 0; border: 1px solid var(--sv-border); color: var(--sv-muted); background: #fff; }
.icon-button svg, .secondary-button svg, .primary-button svg, .privacy-label svg, .filter-title svg, .drop-zone svg, .file-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.secondary-button { padding: 0 15px; border: 1px solid var(--sv-border); color: var(--sv-muted); background: #fff; font-size: 12.5px; font-weight: 550; text-decoration: none; }
.primary-button { padding: 0 18px; border: 1px solid var(--sv-blue); color: #fff; background: var(--sv-blue); box-shadow: 0 4px 10px rgba(37,99,235,.15); font-size: 12.5px; font-weight: 650; }
.secondary-button.compact, .primary-button.compact { min-height: 35px; padding: 0 11px; font-size: 11.5px; }
.icon-button.bordered { width: 38px; min-height: 38px; }
.icon-button:hover:not(:disabled), .secondary-button:hover:not(:disabled) { border-color: #b8c5d8; color: var(--sv-text); background: #f9fbfd; }
.primary-button:hover:not(:disabled) { border-color: #1d4ed8; background: #1d4ed8; transform: translateY(-1px); }
.icon-button:disabled, .secondary-button:disabled, .primary-button:disabled { cursor: not-allowed; opacity: .45; box-shadow: none; transform: none; }
.visibility-page button:focus-visible, .visibility-page input:focus-visible, .visibility-page select:focus-visible, .visibility-page textarea:focus-visible, .visibility-page summary:focus-visible { outline: 3px solid rgba(37,99,235,.17); outline-offset: 1px; }

.tool-panel { border: 1px solid var(--sv-border); border-radius: 8px; background: var(--sv-surface); box-shadow: 0 2px 8px rgba(15,23,42,.035); }
.import-panel, .mapping-panel { padding: 23px 27px; margin-bottom: 17px; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-heading h2, .analysis-head h2, .classification-head h2 { margin: 4px 0 0; font-size: 18px; line-height: 1.3; font-weight: 680; letter-spacing: 0; }
.panel-kicker { display: flex; align-items: center; gap: 7px; color: var(--sv-muted); font: 650 9.5px/1.3 'Geist Mono', monospace; letter-spacing: .9px; }
.panel-kicker svg { width: 15px; height: 15px; fill: none; stroke: var(--sv-blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.privacy-label { display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; border: 1px solid #bde5c9; border-radius: 5px; color: #15803d; background: #f0fdf4; font: 600 9.5px/1.2 'Geist Mono', monospace; }

.drop-zone { display: flex; width: 100%; min-height: 128px; align-items: center; justify-content: center; gap: 14px; padding: 22px; border: 1px dashed #b9c8dc; border-radius: 8px; color: var(--sv-muted); background: #fafcff; cursor: pointer; text-align: left; }
.drop-zone:hover, .drop-zone.is-dragging { border-color: #7ea2eb; background: #f3f7ff; }
.drop-icon { display: grid; width: 44px; height: 44px; flex: 0 0 auto; place-items: center; border: 1px solid #c9d8f6; border-radius: 7px; color: var(--sv-blue); background: var(--sv-blue-soft); }
.drop-icon svg { width: 22px; height: 22px; }
.drop-zone > span:last-child { display: flex; flex-direction: column; gap: 5px; }
.drop-zone strong { color: var(--sv-text); font-size: 13px; }.drop-zone small { color: var(--sv-dim); font-size: 11px; }
.file-summary { display: grid; grid-template-columns: auto minmax(0,1fr) minmax(150px,220px) auto; align-items: center; gap: 12px; min-height: 70px; padding: 11px 13px; border: 1px solid #cbd8ec; border-radius: 8px; background: #f7faff; }
.file-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 6px; color: var(--sv-blue); background: #eaf1ff; }
.file-summary > div:nth-child(2) { display: flex; min-width: 0; flex-direction: column; gap: 4px; }.file-summary strong { overflow: hidden; font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }.file-summary span { color: var(--sv-muted); font-size: 10.5px; }
.encoding-field { display: flex; flex-direction: column; gap: 4px; }.encoding-field span { font: 600 8.5px/1.2 'Geist Mono', monospace; letter-spacing: .5px; text-transform: uppercase; }.encoding-field select { height: 35px; border: 1px solid var(--sv-border); border-radius: 6px; padding: 0 9px; color: var(--sv-text); background: #fff; font-size: 11px; }
.status-line { min-height: 18px; margin-top: 9px; color: var(--sv-muted); font-size: 11.5px; line-height: 1.45; }.status-line[data-state="error"] { color: #b91c1c; }.status-line[data-state="ok"] { color: var(--sv-green); }.status-line[data-state="loading"] { color: var(--sv-blue); }

.mapping-source-row { display: grid; grid-template-columns: minmax(220px,1.5fr) minmax(120px,.55fr) minmax(100px,.45fr) minmax(100px,.45fr); align-items: end; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid #e8edf3; }
.field { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: var(--sv-muted); }
.field > span { font: 550 9.5px/1.3 'Geist Mono', monospace; letter-spacing: .45px; text-transform: uppercase; }
.field small { color: var(--sv-dim); font-size: 10.5px; line-height: 1.4; }
.field input, .field select, .field textarea, .rule-builder input, .rule-builder select, .add-category-row input[type="text"], .chart-select { width: 100%; min-width: 0; border: 1px solid var(--sv-border); border-radius: 7px; color: var(--sv-text); background: #f8fafc; font-size: 12px; }
.field input, .field select, .rule-builder input, .rule-builder select, .add-category-row input[type="text"], .chart-select { height: 40px; padding: 0 11px; }.field textarea { min-height: 72px; padding: 10px 11px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .rule-builder input:focus, .rule-builder select:focus { border-color: #9ab5f4; background: #fff; }
.source-stat { display: flex; min-height: 40px; flex-direction: column; justify-content: center; gap: 2px; padding: 6px 10px; border: 1px solid var(--sv-border); border-radius: 7px; background: #f8fafc; }.source-stat span { color: var(--sv-dim); font: 550 8px/1.2 'Geist Mono', monospace; text-transform: uppercase; }.source-stat strong { font-size: 14px; }
.provider-badge, .report-badge { padding: 6px 9px; border: 1px solid #c9d8f6; border-radius: 5px; color: #1d4ed8; background: #f1f5ff; font: 600 9.5px/1.2 'Geist Mono', monospace; }
.mapping-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; padding-top: 16px; }.mapping-grid .field.required > span::after { content:' *'; color:#dc2626; }
.mapping-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 17px; }.mapping-actions .status-line { margin: 0; }
.preview-details { margin-top: 14px; border-top: 1px solid #e8edf3; padding-top: 11px; }.preview-details summary { display: inline-flex; color: var(--sv-blue); font-size: 11px; cursor: pointer; }.preview-wrap { max-height: 330px; overflow: auto; margin-top: 10px; border: 1px solid var(--sv-border); border-radius: 6px; }.preview-wrap table { border-collapse: collapse; min-width: 100%; background: #fff; }.preview-wrap th, .preview-wrap td { max-width: 260px; padding: 8px 10px; border-right: 1px solid #edf0f4; border-bottom: 1px solid #edf0f4; overflow: hidden; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }.preview-wrap th { position: sticky; top: 0; z-index: 1; color: var(--sv-muted); background: #f5f7fa; font: 600 9px 'Geist Mono', monospace; }

.classification-panel { margin-bottom: 17px; border: 1px solid #cbd8ed; border-radius: 8px; background: #f2f6fc; }
.classification-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 20px 22px 15px; }.classification-head p { margin: 6px 0 0; color: var(--sv-muted); font-size: 11.5px; }
.classification-grid { display: grid; grid-template-columns: minmax(330px,.8fr) minmax(500px,1.2fr); gap: 12px; padding: 0 18px 17px; }
.classification-block { min-width: 0; padding: 15px; border: 1px solid #d8e1ee; border-radius: 7px; background: #fff; }.block-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }.block-heading strong { font-size: 12px; }.block-heading span { color: var(--sv-dim); font-size: 9.5px; }
.category-list { display: flex; gap: 6px; flex-wrap: wrap; }.category-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 29px; padding: 3px 6px 3px 8px; border: 1px solid var(--sv-border); border-radius: 6px; color: var(--sv-muted); background: #f8fafc; font-size: 10.5px; }.category-chip i { width: 8px; height: 8px; border-radius: 2px; }.category-chip button { display: grid; width: 20px; height: 20px; place-items: center; border: 0; color: var(--sv-dim); background: transparent; cursor: pointer; font-size: 14px; }
.add-category-row { display: grid; grid-template-columns: 1fr 42px auto; gap: 6px; margin-top: 10px; }.add-category-row input[type="color"] { width: 42px; height: 35px; padding: 3px; border: 1px solid var(--sv-border); border-radius: 6px; background: #fff; }.add-category-row input[type="text"] { height:35px; }.manufacturer-field { margin-top: 13px; }
.rule-builder { display: grid; grid-template-columns: .7fr .8fr 1.25fr .8fr auto; gap: 6px; }.rule-builder input, .rule-builder select { height: 35px; font-size: 10.5px; }
.rule-list { display: grid; gap: 6px; max-height: 190px; overflow-y: auto; margin-top: 10px; }.rule-empty { padding: 18px; border: 1px dashed #d7dfe9; border-radius: 6px; color: var(--sv-dim); text-align: center; font-size: 10.5px; }.rule-item { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 8px; min-height: 36px; padding: 5px 7px; border: 1px solid #e2e8f0; border-radius: 6px; background: #f8fafc; }.rule-order { color: var(--sv-dim); font: 600 9px 'Geist Mono', monospace; }.rule-text { min-width: 0; overflow: hidden; color: var(--sv-muted); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }.rule-text strong { color: var(--sv-text); }.rule-category { padding: 4px 6px; border-radius: 4px; color:#fff; font-size:9px; }.rule-buttons { display:flex; gap:2px; }.rule-buttons button { display:grid; width:24px; height:24px; place-items:center; border:0; border-radius:4px; color:var(--sv-muted); background:#fff; cursor:pointer; }
.classification-summary { display: grid; grid-template-columns: repeat(4,minmax(90px,.45fr)) minmax(250px,1.5fr); align-items: center; gap: 8px; padding: 11px 18px; border-top: 1px solid #dce4ef; border-bottom: 1px solid #dce4ef; background: #fff; }.classification-summary > div { display:flex; flex-direction:column; gap:2px; }.classification-summary > div span { color:var(--sv-dim); font:550 8px 'Geist Mono',monospace; text-transform:uppercase; }.classification-summary > div strong { font-size:13px; }
.search-box { position: relative; display: flex; min-width: 0; align-items: center; }.search-box svg { position:absolute; left:11px; width:15px; height:15px; fill:none; stroke:var(--sv-dim); stroke-width:1.8; }.search-box input { width:100%; height:38px; padding:0 11px 0 34px; border:1px solid var(--sv-border); border-radius:6px; color:var(--sv-text); background:#f8fafc; font-size:11.5px; }
.classification-table-wrap { max-height: 455px; overflow: auto; background:#fff; }.classification-table { width:100%; min-width:980px; border-collapse:collapse; }.classification-table th { position:sticky; top:0; z-index:2; padding:10px 12px; border-bottom:1px solid var(--sv-border); color:var(--sv-muted); background:#f8fafc; font:650 9px 'Geist Mono',monospace; text-align:left; text-transform:uppercase; }.classification-table td { max-width:370px; padding:11px 12px; border-bottom:1px solid #edf0f4; color:#334155; font-size:10.5px; vertical-align:top; }.classification-table select { width:100%; min-width:140px; height:33px; border:1px solid var(--sv-border); border-radius:6px; padding:0 8px; background:#fff; font-size:10.5px; }.url-main { display:block; color:#1d4ed8; font-weight:600; overflow-wrap:anywhere; }.url-sub, .keyword-preview { display:block; margin-top:4px; color:var(--sv-dim); font-size:9.5px; overflow-wrap:anywhere; }.method-badge, .confidence-badge { display:inline-flex; min-height:23px; align-items:center; padding:3px 6px; border:1px solid #d9e2ef; border-radius:4px; color:var(--sv-muted); background:#f8fafc; font-size:9px; }.confidence-badge.high { color:#15803d; border-color:#bde5c9; background:#f0fdf4; }.confidence-badge.medium { color:#a16207; border-color:#f0d398; background:#fffbeb; }.confidence-badge.low { color:#b91c1c; border-color:#fecaca; background:#fff1f2; }
.classification-footer, .table-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 18px; border-top:1px solid #dce4ef; color:var(--sv-muted); background:#fff; font:500 10px 'Geist Mono',monospace; }.pagination { display:flex; align-items:center; gap:8px; }.pagination .icon-button { width:31px; min-height:31px; }.pagination svg { width:14px; height:14px; }

.empty-state { display:grid; justify-items:center; padding:58px 24px; border:1px dashed #ccd6e4; border-radius:8px; background:#fbfcfe; text-align:center; }.empty-icon { display:grid; width:46px; height:46px; place-items:center; margin-bottom:13px; border:1px solid #cddaf6; border-radius:8px; color:var(--sv-blue); background:var(--sv-blue-soft); }.empty-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.empty-state h2 { margin:0; font-size:16px; }.empty-state p { max-width:550px; margin:7px 0 0; color:var(--sv-muted); font-size:12.5px; line-height:1.5; }
.report { display:grid; gap:17px; }
.report-context { display:grid; grid-template-columns:1.2fr 1fr .8fr .8fr auto; align-items:center; gap:14px; padding:13px 17px; border:1px solid var(--sv-border); border-radius:8px; background:#fff; }.report-context > div { display:flex; min-width:0; flex-direction:column; gap:3px; }.report-context span { color:var(--sv-dim); font:550 8.5px 'Geist Mono',monospace; text-transform:uppercase; }.report-context strong { overflow:hidden; font-size:11.5px; text-overflow:ellipsis; white-space:nowrap; }.report-context .report-badge { justify-self:end; }
.kpi-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; }.kpi-card { display:flex; min-width:0; min-height:102px; flex-direction:column; justify-content:center; padding:15px; border:1px solid var(--sv-border); border-radius:8px; background:#fff; }.kpi-card span { color:var(--sv-muted); font-size:9.5px; }.kpi-card strong { margin-top:6px; overflow:hidden; font-size:20px; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }.kpi-card small { min-height:13px; margin-top:5px; color:var(--sv-dim); font:500 9px 'Geist Mono',monospace; }
.filters-panel { display:grid; grid-template-columns:auto repeat(3,minmax(150px,1fr)) auto; align-items:end; gap:11px; padding:13px 15px; background:#f5f8fd; }.filter-title { display:flex; align-items:center; gap:7px; min-height:40px; padding-right:10px; color:var(--sv-blue); }.filter-title strong { color:var(--sv-text); font-size:11.5px; }.filter-title svg { width:16px; height:16px; }
.charts-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:13px; }.donut-panel, .position-panel, .top-url-panel { padding:20px 22px; }.chart-heading { align-items:center; margin-bottom:12px; }.metric-switch { display:flex; gap:3px; overflow-x:auto; padding:3px; border:1px solid var(--sv-border); border-radius:6px; background:var(--sv-subtle); }.metric-switch button { min-height:29px; padding:0 8px; border:0; border-radius:4px; color:var(--sv-muted); background:transparent; font-size:9.5px; white-space:nowrap; cursor:pointer; }.metric-switch button[aria-pressed="true"] { color:#1d4ed8; background:#fff; box-shadow:0 1px 4px rgba(15,23,42,.08); font-weight:650; }
.donut-layout { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(220px,1fr); align-items:center; gap:15px; }.donut-wrap { position:relative; width:min(100%,350px); aspect-ratio:1; margin:auto; }.donut-wrap svg { display:block; width:100%; height:100%; overflow:visible; }.donut-segment { cursor:pointer; transition:opacity .15s,filter .15s; }.donut-segment:hover { filter:brightness(.94); }.donut-segment.muted { opacity:.25; }.donut-center { position:absolute; inset:37%; display:flex; align-items:center; justify-content:center; flex-direction:column; pointer-events:none; text-align:center; }.donut-center strong { font-size:24px; line-height:1; }.donut-center span { margin-top:5px; color:var(--sv-muted); font:550 9px 'Geist Mono',monospace; }.chart-tooltip { position:absolute; z-index:5; min-width:150px; pointer-events:none; padding:8px 9px; border:1px solid #cfd8e6; border-radius:6px; background:rgba(255,255,255,.98); box-shadow:0 8px 20px rgba(15,23,42,.11); font-size:10.5px; }.chart-tooltip strong { display:block; margin-bottom:3px; }.chart-tooltip span { color:var(--sv-muted); }
.donut-legend { display:grid; gap:6px; max-height:300px; overflow:auto; }.legend-item { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:8px; min-height:34px; padding:5px 7px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--sv-muted); cursor:pointer; text-align:left; }.legend-item:hover, .legend-item.active { border-color:var(--sv-border); background:#f8fafc; }.legend-item i { width:10px; height:10px; border-radius:3px; }.legend-item span { overflow:hidden; font-size:10.5px; text-overflow:ellipsis; white-space:nowrap; }.legend-item strong { color:var(--sv-text); font:600 10px 'Geist Mono',monospace; }
.position-chart { display:grid; gap:12px; min-height:285px; align-content:center; }.position-row { display:grid; grid-template-columns:minmax(95px,135px) 1fr auto; align-items:center; gap:9px; }.position-row > span { overflow:hidden; color:var(--sv-muted); font-size:9.5px; text-overflow:ellipsis; white-space:nowrap; }.position-row > strong { min-width:34px; font:600 9.5px 'Geist Mono',monospace; text-align:right; }.position-stack { display:flex; height:20px; overflow:hidden; border-radius:4px; background:#edf1f6; }.position-stack i { display:block; height:100%; min-width:0; }.position-stack .p1,.position-legend .p1{background:#15803d}.position-stack .p2,.position-legend .p2{background:#2563eb}.position-stack .p3,.position-legend .p3{background:#d97706}.position-stack .p4,.position-legend .p4{background:#e11d48}.position-stack .p5,.position-legend .p5{background:#94a3b8}.position-legend { display:flex; gap:11px; flex-wrap:wrap; margin-top:12px; color:var(--sv-dim); font-size:8.5px; }.position-legend span { display:flex; align-items:center; gap:4px; }.position-legend i { width:8px; height:8px; border-radius:2px; }
.chart-select { width:auto; min-width:150px; height:34px; background:#fff; font-size:10.5px; }.top-url-chart { display:grid; gap:8px; }.top-url-row { display:grid; grid-template-columns:minmax(160px,280px) 1fr minmax(60px,auto); align-items:center; gap:10px; }.top-url-row a { overflow:hidden; color:#1d4ed8; font-size:9.5px; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }.top-url-row a:hover{text-decoration:underline}.top-url-track { height:15px; overflow:hidden; border-radius:3px; background:#edf1f6; }.top-url-track i { display:block; height:100%; border-radius:3px; background:#2563eb; }.top-url-row strong { font:600 9.5px 'Geist Mono',monospace; text-align:right; }

.analysis-panel { overflow:hidden; border:1px solid #cbd8ed; border-radius:8px; background:#f2f6fc; }.analysis-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:19px 21px 15px; }.analysis-tabs { display:flex; gap:3px; overflow-x:auto; padding:0 16px 11px; }.analysis-tabs button { display:flex; min-height:38px; align-items:center; gap:7px; padding:0 11px; border:1px solid transparent; border-radius:6px; color:var(--sv-muted); background:transparent; font-size:10.5px; white-space:nowrap; cursor:pointer; }.analysis-tabs button span { display:grid; min-width:19px; height:19px; place-items:center; padding:0 4px; border-radius:4px; color:var(--sv-dim); background:rgba(148,163,184,.14); font:600 8.5px 'Geist Mono',monospace; }.analysis-tabs button[aria-selected="true"] { border-color:#cbd7ea; color:#1d4ed8; background:#fff; box-shadow:0 1px 4px rgba(15,23,42,.05); font-weight:650; }.analysis-tabs button:disabled { opacity:.4; cursor:not-allowed; }.analysis-notice { padding:9px 17px; border-top:1px solid #dce4ef; color:var(--sv-muted); background:#f8fafc; font-size:10.5px; }
.table-toolbar { display:flex; align-items:center; gap:8px; padding:10px 16px; border-top:1px solid #dce4ef; border-bottom:1px solid #dce4ef; background:#fff; }.table-toolbar .search-box { min-width:240px; max-width:430px; flex:1; }.column-picker { position:relative; }.column-picker summary { display:flex; min-height:38px; align-items:center; gap:6px; padding:0 11px; border:1px solid var(--sv-border); border-radius:6px; color:var(--sv-muted); background:#fff; font-size:10.5px; cursor:pointer; list-style:none; }.column-picker summary::-webkit-details-marker{display:none}.column-picker summary svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; }.column-options { position:absolute; z-index:20; top:calc(100% + 6px); right:0; display:grid; min-width:220px; max-height:300px; overflow:auto; padding:7px; border:1px solid var(--sv-border); border-radius:7px; background:#fff; box-shadow:0 12px 28px rgba(15,23,42,.14); }.column-options label { display:flex; align-items:center; gap:7px; min-height:30px; padding:0 6px; color:var(--sv-muted); font-size:10.5px; }.column-options input { accent-color:var(--sv-blue); }
.table-wrap { overflow-x:auto; background:#fff; }.data-table { width:100%; min-width:1050px; border-collapse:collapse; }.data-table th { padding:10px 12px; border-bottom:1px solid var(--sv-border); color:var(--sv-muted); background:#f8fafc; font:650 8.5px 'Geist Mono',monospace; letter-spacing:.45px; text-align:left; text-transform:uppercase; white-space:nowrap; }.data-table td { max-width:360px; padding:12px; border-bottom:1px solid #edf0f4; color:#334155; font-size:10.5px; line-height:1.45; vertical-align:top; }.data-table tbody tr:hover td{background:#fbfcfe}.cell-primary { display:block; color:var(--sv-text); font-weight:600; overflow-wrap:anywhere; }.cell-primary a{color:#1d4ed8;text-decoration:none}.cell-secondary { display:block; margin-top:4px; color:var(--sv-dim); font-size:9.5px; overflow-wrap:anywhere; }.metric-value { color:var(--sv-text); font:600 10.5px 'Geist Mono',monospace; white-space:nowrap; }.delta { display:inline-flex; margin-top:3px; font:600 9px 'Geist Mono',monospace; }.delta.positive{color:#15803d}.delta.negative{color:#dc2626}.delta.neutral{color:var(--sv-dim)}.category-badge,.intent-badge { display:inline-flex; min-height:23px; align-items:center; padding:3px 7px; border-radius:5px; color:#fff; font-size:9px; font-weight:650; }.intent-badge { border:1px solid #d9e2ef; color:#475569; background:#f8fafc; }.row-details{margin-top:6px}.row-details summary{color:#2563eb;font-size:9.5px;cursor:pointer}.row-details-content{display:grid;gap:5px;margin-top:6px;padding:8px;border:1px solid #dce4ef;border-radius:6px;background:#f8fafc}.row-details-content span{display:flex;justify-content:space-between;gap:10px;color:var(--sv-muted);font-size:9px}.table-empty{padding:42px 20px;color:var(--sv-muted);text-align:center;font-size:11px}

.ai-overlay { position:fixed; z-index:5000; inset:0; display:grid; place-items:center; padding:22px; }.ai-overlay[hidden]{display:none}.ai-backdrop{position:absolute;inset:0;border:0;background:rgba(15,23,42,.52);backdrop-filter:blur(2px)}.ai-modal{position:relative;display:flex;width:min(960px,calc(100vw - 32px));max-height:min(850px,calc(100vh - 32px));flex-direction:column;overflow:hidden;border:1px solid #d9e1ec;border-radius:8px;background:#fff;box-shadow:0 28px 70px rgba(15,23,42,.24)}.ai-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 19px;border-bottom:1px solid var(--sv-border);background:#f8fafc}.ai-title-row{display:flex;min-width:0;align-items:center;gap:10px}.ai-title-row h2{margin:0;font-size:16px}.ai-title-row p{margin:4px 0 0;color:var(--sv-muted);font-size:10.5px}.ai-icon{display:grid;width:35px;height:35px;place-items:center;border-radius:7px;color:#6d28d9;background:#f2efff}.ai-icon svg,.ai-privacy-note svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ai-body{overflow-y:auto;padding:19px}.ai-privacy-note{display:flex;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 11px;border:1px solid #cbd9f7;border-radius:6px;color:#1d4ed8;background:#f2f6ff;font-size:10.5px;line-height:1.5}.ai-privacy-note svg{flex:0 0 auto}.ai-section-label{margin-bottom:7px;color:var(--sv-muted);font:650 9px 'Geist Mono',monospace;text-transform:uppercase}.ai-mode-switch{display:flex;gap:5px;overflow-x:auto}.ai-mode-switch button{min-height:33px;padding:0 10px;border:1px solid var(--sv-border);border-radius:6px;color:var(--sv-muted);background:#fff;font-size:10px;white-space:nowrap;cursor:pointer}.ai-mode-switch button[aria-pressed="true"]{border-color:#b8caf2;color:#1d4ed8;background:#f1f5ff;font-weight:650}.ai-mode-switch button:disabled{opacity:.4;cursor:not-allowed}.ai-note{margin-top:8px;color:var(--sv-muted);font-size:10.5px;line-height:1.5}.ai-instruction{margin-top:14px}.ai-actions{display:flex;gap:8px;margin-top:13px}.ai-result{margin-top:13px;padding-top:14px;border-top:1px solid var(--sv-border)}.ai-result-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-result-head strong{font-size:11.5px}.ai-result-head span{color:var(--sv-dim);font:500 9px 'Geist Mono',monospace}.ai-result-text{margin-top:12px;color:#1f2937;font-size:12px;line-height:1.65}.ai-result-text h3{margin:16px 0 5px;font-size:10.5px;letter-spacing:.4px}.ai-result-text p{margin:6px 0}.ai-result-text ul{margin:5px 0 9px;padding-left:18px}.ai-result-text li{margin:3px 0}
.is-loading svg{animation:sv-spin .8s linear infinite}@keyframes sv-spin{to{transform:rotate(360deg)}}

@media(max-width:1350px){.mapping-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.classification-grid{grid-template-columns:1fr}.rule-builder{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-builder input{grid-column:span 2}.rule-builder .primary-button{grid-column:span 2}.classification-summary{grid-template-columns:repeat(4,1fr)}.classification-summary .search-box{grid-column:span 4}.charts-grid{grid-template-columns:1fr}}
@media(max-width:980px){.mapping-source-row{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-context{grid-template-columns:repeat(2,minmax(0,1fr))}.report-context .report-badge{justify-self:start}.filters-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-title{grid-column:span 3}.donut-layout{grid-template-columns:1fr}.donut-legend{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.top-url-row{grid-template-columns:minmax(130px,220px) 1fr auto}}
@media(max-width:720px){.visibility-header{flex-direction:column}.header-actions{width:100%;justify-content:flex-start}.visibility-header h1{font-size:26px}.import-panel,.mapping-panel{padding:18px 14px}.panel-heading{align-items:flex-start;flex-direction:column}.file-summary{grid-template-columns:auto 1fr auto}.encoding-field{grid-column:span 2}.mapping-source-row,.mapping-grid{grid-template-columns:1fr}.classification-head{flex-direction:column;padding:17px 14px 13px}.classification-grid{padding:0 10px 12px}.block-heading{align-items:flex-start;flex-direction:column}.rule-builder{grid-template-columns:1fr}.rule-builder input,.rule-builder .primary-button{grid-column:auto}.classification-summary{grid-template-columns:repeat(2,1fr);padding-inline:10px}.classification-summary .search-box{grid-column:span 2}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-panel{grid-template-columns:1fr}.filter-title{grid-column:auto}.donut-panel,.position-panel,.top-url-panel{padding:17px 13px}.chart-heading{align-items:flex-start;flex-direction:column}.metric-switch{width:100%}.donut-legend{grid-template-columns:1fr}.position-row{grid-template-columns:minmax(85px,110px) 1fr auto}.top-url-row{grid-template-columns:minmax(100px,145px) 1fr auto}.analysis-head{align-items:flex-start;flex-direction:column;padding:16px 13px 12px}.analysis-actions{width:100%;justify-content:flex-start}.table-toolbar{flex-wrap:wrap;padding:9px}.table-toolbar .search-box{min-width:100%;max-width:none}.column-picker{flex:1}.column-picker summary{justify-content:center}.column-options{left:0;right:auto}.ai-overlay{padding:7px}.ai-modal{width:calc(100vw - 14px);max-height:calc(100vh - 14px)}.ai-head,.ai-body{padding:14px}.ai-title-row p{display:none}}
@media(max-width:460px){.drop-zone{align-items:flex-start;flex-direction:column}.file-summary{grid-template-columns:1fr auto}.file-icon{display:none}.encoding-field{grid-column:auto}.kpi-grid{grid-template-columns:1fr}.classification-actions,.analysis-actions{width:100%}.classification-actions .secondary-button,.analysis-actions .secondary-button{flex:1}.add-category-row{grid-template-columns:1fr 42px}.add-category-row .secondary-button{grid-column:span 2}.report-context{grid-template-columns:1fr}.top-url-row{grid-template-columns:110px 1fr}.top-url-row strong{display:none}}

.help-section{padding:22px}.help-section h2{margin:5px 0 14px;color:var(--sv-text);font-size:17px}.help-section>p{max-width:980px;margin:0;color:var(--sv-muted);font-size:11.5px;line-height:1.75}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--sv-border);border-radius:7px;background:var(--sv-border)}.help-grid article{min-height:132px;padding:17px;background:#fff}.help-grid strong{color:var(--sv-text);font-size:11.5px}.help-grid p{margin:8px 0 0;color:var(--sv-muted);font-size:10.5px;line-height:1.65}.ai-help-section{border-color:#b8d0ff;background:#f4f8ff}@media(max-width:720px){.help-section{padding:17px 14px}.help-grid{grid-template-columns:1fr}.help-grid article{min-height:0}}
/* Czytelność zakresu danych i stanów opcjonalnych */
.visibility-page [hidden]{display:none!important}.panel-description,.chart-description{max-width:720px;margin:5px 0 0;color:var(--sv-muted);font-size:10.5px;line-height:1.55}.mapping-help{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 11px;border:1px solid #cddbf2;border-radius:6px;color:#52657f;background:#f5f8fd;font-size:10.5px;line-height:1.5}.mapping-help strong{flex:0 0 auto;color:#1d4ed8}.data-availability{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border:1px solid #cbd8ed;border-radius:8px;background:#f5f8fd}.data-availability>div:first-child{min-width:260px}.data-availability strong{color:var(--sv-text);font-size:11.5px}.data-availability p{margin:4px 0 0;color:var(--sv-muted);font-size:10px;line-height:1.45}.availability-list{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.availability-badge{display:inline-flex;min-height:27px;align-items:center;gap:6px;padding:3px 7px;border:1px solid var(--sv-border);border-radius:5px;color:var(--sv-muted);background:#fff;font-size:9.5px}.availability-badge i{width:7px;height:7px;border-radius:2px}.availability-badge.available{border-color:#bde5c9;color:#15803d;background:#f0fdf4}.availability-badge.available i{background:#16a34a}.availability-badge.missing{border-color:#d8dee8;color:#7b8798;background:#f8fafc}.availability-badge.missing i{background:#94a3b8}.metric-switch button:disabled{opacity:.4;cursor:not-allowed}.position-panel{position:relative}.position-stack i{cursor:help}.position-stack i[data-position-value]:not([data-position-value="0"]){min-width:3px}.position-tooltip{z-index:12}.analysis-unavailable{display:flex;min-height:210px;align-items:center;justify-content:center;flex-direction:column;padding:28px;color:var(--sv-muted);text-align:center}.analysis-unavailable strong{color:var(--sv-text);font-size:12px}.analysis-unavailable span{max-width:420px;margin-top:6px;font-size:10.5px;line-height:1.55}.metric-missing{color:var(--sv-dim);font-size:9.5px;font-style:italic}.kpi-card strong{white-space:normal}.chart-heading>div{min-width:0}.chart-description{max-width:610px}.legend-item strong{max-width:150px;text-align:right;white-space:normal}.top-url-row strong{white-space:nowrap}
@media(max-width:980px){.data-availability{align-items:flex-start;flex-direction:column}.availability-list{justify-content:flex-start}.data-availability>div:first-child{min-width:0}}
@media(max-width:720px){.mapping-help{flex-direction:column}.data-availability{padding:12px}.availability-list{width:100%}.availability-badge{flex:1;justify-content:center}.legend-item strong{max-width:115px}}
/* Porównanie, eksporty i objaśnienia sekcji */
.panel-heading-actions,.chart-heading-controls,.chart-actions,.report-export-actions,.comparison-report-actions{display:flex;align-items:center;gap:7px}.panel-heading-actions{justify-content:flex-end;flex-wrap:wrap}.collapse-button{min-height:30px;padding:0 9px;border:1px solid var(--sv-border);border-radius:5px;color:var(--sv-muted);background:#fff;font-size:9.5px;cursor:pointer}.collapse-button:hover{color:var(--sv-blue);border-color:#b9c9e5}.collapsible-panel.is-collapsed{padding-bottom:0}.collapsible-panel.is-collapsed>.panel-heading,.collapsible-panel.is-collapsed>.classification-head{margin-bottom:0;border-bottom:0}.collapsible-panel.is-collapsed>:not(.panel-heading):not(.classification-head){display:none!important}
.info-icon{position:relative;display:grid;width:28px;height:28px;flex:0 0 auto;place-items:center;padding:0;border:1px solid #cbd5e1;border-radius:50%;color:#2563eb;background:#fff;font:700 12px Georgia,serif;cursor:help}.info-icon::after{position:absolute;z-index:100;right:0;top:calc(100% + 9px);width:280px;padding:9px 10px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.14);content:attr(data-info);font:500 10.5px/1.55 Arial,sans-serif;text-align:left;white-space:normal;opacity:0;visibility:hidden;transform:translateY(4px);transition:.14s;pointer-events:none}.info-icon:hover::after,.info-icon:focus::after{opacity:1;visibility:visible;transform:none}.info-section{position:relative}.section-info{position:absolute;z-index:8;top:9px;right:9px}.kpi-grid>.section-info{top:-8px;right:-8px}.filters-panel>.section-info{top:7px;right:7px}.text-icon-button{width:auto!important;min-width:39px;padding:0 7px;font:700 8.5px 'Geist Mono',monospace}.chart-heading-controls{justify-content:flex-end;flex-wrap:wrap}.chart-actions{justify-content:flex-end}
.comparison-setup{margin-top:16px;padding-top:15px;border-top:1px solid var(--sv-border)}.comparison-switch{display:flex;align-items:center;gap:10px;max-width:690px;padding:10px 12px;border:1px solid #cbd8ed;border-radius:7px;background:#f7faff;cursor:pointer}.comparison-switch>input{position:absolute;opacity:0;pointer-events:none}.switch-track{display:block;width:35px;height:20px;flex:0 0 auto;padding:2px;border-radius:999px;background:#94a3b8;transition:.18s}.switch-track span{display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.25);transition:.18s}.comparison-switch input:checked+.switch-track{background:#2563eb}.comparison-switch input:checked+.switch-track span{transform:translateX(15px)}.comparison-switch>span:last-child{display:flex;min-width:0;flex-direction:column;gap:3px}.comparison-switch strong{font-size:11.5px}.comparison-switch small{color:var(--sv-muted);font-size:9.5px;line-height:1.4}.comparison-uploader{margin-top:11px;padding:12px;border:1px solid #cbd8ed;border-radius:7px;background:#f5f8ff}.competitor-drop-zone{display:flex;width:100%;min-height:64px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px dashed #9fb4d7;border-radius:6px;color:#1d4ed8;background:#fff;cursor:pointer}.competitor-drop-zone span{color:var(--sv-muted);font-size:9.5px}.competitor-drop-zone.dragging{border-color:#2563eb;background:#eff6ff}.competitor-drop-zone:disabled{opacity:.5;cursor:not-allowed}.competitor-list{display:grid;gap:8px;margin-top:9px}.competitor-card{padding:10px;border:1px solid var(--sv-border);border-radius:7px;background:#fff}.competitor-card.is-ready{border-color:#bde5c9}.competitor-card.is-error{border-color:#fecaca;background:#fffafa}.competitor-card-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px}.competitor-number{display:grid;width:27px;height:27px;place-items:center;border-radius:6px;color:#1d4ed8;background:#eaf1ff;font:700 10px 'Geist Mono',monospace}.competitor-card-head>div{display:flex;min-width:0;flex-direction:column;gap:3px}.competitor-card-head strong,.competitor-card-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competitor-card-head strong{font-size:10.5px}.competitor-card-head div span{color:var(--sv-muted);font-size:9px}.competitor-mapping{margin-top:9px;padding-top:8px;border-top:1px solid #e2e8f0}.competitor-mapping summary{color:#2563eb;font-size:9.5px;cursor:pointer}.competitor-mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}.competitor-mapping-grid .field span{font-size:8px}.competitor-mapping-grid select{height:32px;font-size:9px}
.report-export-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid #bdd0ee;border-radius:8px;background:#f5f8ff}.report-export-bar>div:first-child{display:flex;flex-direction:column;gap:3px}.report-export-bar strong{font-size:11.5px}.report-export-bar span{color:var(--sv-muted);font-size:9.5px}
.comparison-report{position:relative;padding:20px;border:1px solid #b9cbee;border-radius:9px;background:#f3f7ff}.comparison-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.comparison-report-head h2{margin:4px 0 0;font-size:17px}.comparison-report-head p{margin:5px 0 0;color:var(--sv-muted);font-size:10px}.comparison-report-actions{justify-content:flex-end;flex-wrap:wrap}.comparison-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:15px}.comparison-insights article{display:flex;min-height:94px;justify-content:center;flex-direction:column;padding:13px;border:1px solid #d4deef;border-radius:7px;background:#fff}.comparison-insights span{color:var(--sv-muted);font-size:9px}.comparison-insights strong{margin-top:5px;font-size:15px}.comparison-insights small{margin-top:4px;color:var(--sv-dim);font-size:9px;line-height:1.4}.comparison-block{position:relative;margin-top:12px;padding:16px;border:1px solid #d4deef;border-radius:8px;background:#fff}.comparison-block h3{margin:0 38px 12px 0;font-size:12px}.comparison-block-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.comparison-block-head span{color:var(--sv-muted);font-size:9px}.comparison-table-wrap{overflow:auto}.comparison-table{width:100%;min-width:680px;border-collapse:collapse}.comparison-table th,.comparison-table td{padding:9px 10px;border-bottom:1px solid #e8edf5;text-align:left}.comparison-table th{color:var(--sv-muted);background:#f8fafc;font:650 8px 'Geist Mono',monospace;text-transform:uppercase;white-space:nowrap}.comparison-table td{color:#334155;font-size:9.5px}.comparison-table tr.is-own-domain td{background:#f0f6ff}.comparison-table td strong{font:650 10px 'Geist Mono',monospace}.comparison-donuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:10px}.comparison-donut-card{padding:12px;border:1px solid #e1e7f0;border-radius:7px;background:#fbfcfe}.comparison-donut-card h4{margin:0;overflow:hidden;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.comparison-donut-visual{position:relative;max-width:220px;margin:7px auto}.comparison-donut-visual svg{display:block;width:100%}.comparison-donut-visual>div{position:absolute;inset:36%;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}.comparison-donut-visual strong{font-size:16px}.comparison-donut-visual span{margin-top:3px;color:var(--sv-muted);font-size:8px}.comparison-donut-segment{cursor:help;transition:opacity .15s}.comparison-donut-segment.muted{opacity:.18}.comparison-donut-legend{display:grid;gap:3px}.comparison-legend-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:4px;border:0;border-radius:4px;color:var(--sv-muted);background:transparent;font-size:8.5px;cursor:pointer;text-align:left}.comparison-legend-item:hover,.comparison-legend-item.active{background:#eef4ff}.comparison-legend-item i,.category-dot{display:inline-block;width:8px;height:8px;border-radius:2px}.comparison-legend-item strong{color:var(--sv-text);font:650 8.5px 'Geist Mono',monospace}.comparison-two-column{display:grid;grid-template-columns:1fr 1fr;gap:12px}.comparison-tooltip{position:absolute;z-index:20}.category-dot{margin-right:7px}.analysis-panel .info-icon::after,.comparison-report .info-icon::after{right:0}
@media(max-width:980px){.competitor-mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-export-bar,.comparison-report-head{align-items:flex-start;flex-direction:column}.comparison-insights{grid-template-columns:1fr}.comparison-two-column{grid-template-columns:1fr}.comparison-report-actions{justify-content:flex-start}.chart-heading-controls{width:100%;justify-content:space-between}}
@media(max-width:720px){.panel-heading-actions{justify-content:flex-start}.competitor-mapping-grid{grid-template-columns:1fr}.report-export-actions{width:100%;flex-wrap:wrap}.report-export-actions button{flex:1}.comparison-report{padding:14px 10px}.comparison-donuts{grid-template-columns:1fr}.chart-actions{width:100%;justify-content:flex-start}.info-icon::after{right:auto;left:0;width:min(260px,calc(100vw - 50px))}}
/* Zwarta konfiguracja, lazy loading i kompaktowe kontrolki */
.import-panel,.setup-panel{padding:18px 22px;margin-bottom:14px}
.panel-heading{gap:14px;margin-bottom:15px}
.setup-panel>.panel-heading{margin-bottom:0}
.setup-section{margin:16px 0 0;padding:16px 0 0;border:0;border-top:1px solid #e3e9f1;border-radius:0;background:transparent;box-shadow:none}
.setup-section.mapping-panel{margin-bottom:0;padding:16px 0 0}
.setup-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
.setup-section-head h3,.setup-section .classification-head h3{margin:3px 0 0;color:var(--sv-text);font-size:15px;line-height:1.35}
.setup-section-head p,.setup-section .classification-head p{max-width:760px;margin:4px 0 0;color:var(--sv-muted);font-size:10.5px;line-height:1.5}
.setup-section.classification-panel{margin-bottom:0;padding:16px 0 0;border-top:1px solid #e3e9f1;background:transparent}
.setup-section .classification-head{padding:0 0 13px}
.setup-section .classification-grid{padding:0}
.setup-build-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:14px;border:1px solid #cbd8ed;border-radius:7px;background:#f5f8ff}
.setup-build-actions .status-line{margin:0}
.classification-summary-compact{grid-template-columns:repeat(4,minmax(90px,1fr));margin-top:12px;padding:9px 12px;border:1px solid #dce4ef;border-radius:7px;background:#fff}
.classification-preview-details{margin-top:10px;border:1px solid #d7e0ec;border-radius:7px;background:#fff;overflow:hidden}
.classification-preview-details>summary{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:14px;padding:0 13px;color:var(--sv-text);background:#f8fafc;font-size:10.5px;font-weight:650;cursor:pointer;list-style:none}
.classification-preview-details>summary::-webkit-details-marker{display:none}
.classification-preview-details>summary:before{width:7px;height:7px;flex:0 0 auto;border-right:1.5px solid #64748b;border-bottom:1.5px solid #64748b;content:'';transform:rotate(-45deg);transition:transform .15s}
.classification-preview-details[open]>summary:before{transform:rotate(45deg)}
.classification-preview-details>summary>span:first-child{margin-right:auto}
.classification-preview-details>summary>span:last-child{color:var(--sv-dim);font:500 9px 'Geist Mono',monospace}
.classification-preview-body{border-top:1px solid #e3e9f1}
.classification-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}
.classification-toolbar .search-box{width:min(460px,100%)}
.classification-toolbar>span{color:var(--sv-dim);font-size:9px}
.collapse-button{display:grid;width:24px;height:24px;min-height:24px;place-items:center;padding:0;border:1px solid #d5dde8;border-radius:5px;color:#64748b;background:#fff;cursor:pointer}
.collapse-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.collapse-button[aria-expanded="false"] svg{transform:rotate(-90deg)}
.collapse-button:hover{color:var(--sv-blue);border-color:#b9c9e5;background:#f8fbff}
.collapsible-panel.is-collapsed{padding:12px 16px}
.collapsible-panel.is-collapsed>.panel-heading{align-items:center;margin-bottom:0;border-bottom:0}
.collapsible-panel.is-collapsed>.panel-heading .panel-description{display:none}
.collapsible-panel.is-collapsed>.panel-heading h2{font-size:15px}
.collapsible-panel.is-collapsed>:not(.panel-heading){display:none!important}
.info-icon{width:22px;height:22px;font-size:10px}
.info-icon::after{top:calc(100% + 7px)}
.text-icon-button{min-width:32px!important;min-height:26px!important;padding:0 6px!important;font-size:8px}
.chart-actions{gap:5px}
.report-overview-panel{padding:13px 15px;border:1px solid #bdd0ee;border-radius:8px;background:#f5f8ff}
.report-overview-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-right:30px}
.report-overview-head>div:first-child{display:flex;flex-direction:column;gap:3px}
.report-overview-head strong{font-size:11.5px}
.report-overview-head span{color:var(--sv-muted);font-size:9.5px}
.report-overview-panel .report-context{margin-top:11px;padding:11px 0 0;border:0;border-top:1px solid #d6e1f1;border-radius:0;background:transparent}
.report-overview-panel .data-availability{margin-top:11px;padding:11px 0 0;border:0;border-top:1px solid #d6e1f1;border-radius:0;background:transparent}
.report-overview-panel .section-info{top:12px;right:13px}
.report-export-actions{padding-right:2px}
@media(max-width:980px){
  .report-overview-head{align-items:flex-start;flex-direction:column;padding-right:30px}
  .report-overview-panel .data-availability{align-items:flex-start;flex-direction:column}
}
@media(max-width:720px){
  .import-panel,.setup-panel{padding:14px 12px}
  .collapsible-panel.is-collapsed{padding:10px 12px}
  .setup-section .classification-head,.setup-section-head{align-items:flex-start;flex-direction:column}
  .setup-section .classification-grid{padding:0}
  .classification-summary-compact{grid-template-columns:repeat(2,minmax(90px,1fr))}
  .classification-preview-details>summary{align-items:flex-start;flex-wrap:wrap;padding:10px 12px}
  .classification-preview-details>summary>span:last-child{width:100%;padding-left:18px}
  .classification-toolbar{align-items:flex-start;flex-direction:column}
  .report-overview-panel{padding:12px}
  .report-export-actions{width:100%;flex-wrap:wrap}
  .report-export-actions button{flex:1}
}
/* Odkładanie renderowania sekcji poza ekranem */
.report>section:not(.report-overview-panel),.report>.charts-grid>article,.analysis-panel,.comparison-block{content-visibility:auto;contain-intrinsic-size:auto 340px}
/* Osobne reguły i ręczna klasyfikacja konkurentów */
.competitor-mapping,.competitor-classification{margin-top:9px;padding-top:8px;border-top:1px solid #e2e8f0}
.competitor-mapping>summary,.competitor-classification>summary,.competitor-url-preview>summary{display:flex;align-items:center;gap:8px;color:#1d4ed8;font-size:9.5px;cursor:pointer;list-style:none}
.competitor-mapping>summary::-webkit-details-marker,.competitor-classification>summary::-webkit-details-marker,.competitor-url-preview>summary::-webkit-details-marker{display:none}
.competitor-mapping>summary:before,.competitor-classification>summary:before,.competitor-url-preview>summary:before{width:6px;height:6px;flex:0 0 auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;content:'';transform:rotate(-45deg);transition:transform .15s}
.competitor-mapping[open]>summary:before,.competitor-classification[open]>summary:before,.competitor-url-preview[open]>summary:before{transform:rotate(45deg)}
.competitor-classification>summary span,.competitor-url-preview>summary span{margin-right:auto}
.competitor-classification>summary small,.competitor-url-preview>summary small{color:var(--sv-dim);font:500 8.5px 'Geist Mono',monospace}
.competitor-classification-body{margin-top:9px;padding:10px;border:1px solid #dbe4ef;border-radius:6px;background:#f8fafc}
.competitor-classification-note{margin-bottom:9px;color:var(--sv-muted);font-size:9px;line-height:1.5}
.competitor-rule-builder{display:grid;grid-template-columns:.75fr .9fr 1.3fr .8fr auto auto;gap:6px}
.competitor-rule-builder input,.competitor-rule-builder select{min-width:0;height:32px;border:1px solid var(--sv-border);border-radius:5px;padding:0 7px;color:var(--sv-text);background:#fff;font-size:9.5px}
.competitor-rule-list{display:grid;gap:5px;max-height:180px;overflow:auto;margin-top:8px}
.competitor-rule-list .rule-item{min-height:32px}
.competitor-rule-list .rule-empty{padding:12px}
.competitor-url-preview{margin-top:9px;padding-top:9px;border-top:1px solid #dbe4ef}
.competitor-url-preview-body{margin-top:8px;overflow:hidden;border:1px solid #dbe4ef;border-radius:6px;background:#fff}
.competitor-url-toolbar{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px}
.competitor-url-toolbar .search-box{width:min(430px,100%)}
.competitor-url-toolbar .search-box input{height:33px;font-size:10px}
.competitor-url-table-wrap{max-height:390px;overflow:auto;border-top:1px solid #e5eaf1}
.competitor-url-table{width:100%;min-width:760px;border-collapse:collapse}
.competitor-url-table th,.competitor-url-table td{padding:8px 9px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:top}
.competitor-url-table th{position:sticky;z-index:1;top:0;color:var(--sv-muted);background:#f8fafc;font:650 8px 'Geist Mono',monospace;text-transform:uppercase}
.competitor-url-table td{color:#334155;font-size:9.5px}
.competitor-url-table td:first-child{width:55%}
.competitor-url-table a{display:block;color:#1d4ed8;font-weight:600;overflow-wrap:anywhere}
.competitor-url-table small{display:block;margin-top:3px;color:var(--sv-dim);font-size:8.5px;overflow-wrap:anywhere}
.competitor-url-table .category-badge{margin-right:6px}
.competitor-url-table select{width:100%;min-width:150px;height:31px;border:1px solid var(--sv-border);border-radius:5px;padding:0 7px;background:#fff;font-size:9.5px}
.competitor-url-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;color:var(--sv-muted);font:500 9px 'Geist Mono',monospace}
.competitor-url-footer .icon-button{width:27px;min-height:27px}
@media(max-width:1250px){.competitor-rule-builder{grid-template-columns:repeat(2,minmax(0,1fr))}.competitor-rule-builder input{grid-column:span 2}.competitor-rule-builder button{width:100%}}
@media(max-width:720px){
  .competitor-classification>summary,.competitor-url-preview>summary{align-items:flex-start;flex-wrap:wrap}
  .competitor-classification>summary small,.competitor-url-preview>summary small{width:100%;padding-left:14px}
  .competitor-rule-builder{grid-template-columns:1fr}
  .competitor-rule-builder input{grid-column:auto}
  .competitor-url-toolbar{align-items:stretch;flex-direction:column}
}
/* Responsywność rzeczywistego obszaru raportu, czytelność i rozbudowane porównanie */
.visibility-page,.visibility-wrap,.report,.report>*,
.tool-panel,.setup-panel,.mapping-panel,.classification-panel,
.charts-grid,.charts-grid>*,.analysis-panel,.comparison-report,
.comparison-report>*,.comparison-block,.comparison-block>*{min-width:0;max-width:100%}
.visibility-page{width:100%}
.visibility-wrap{container:visibility-report / inline-size}
.report{width:100%}
.charts-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.comparison-two-column{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel-heading>div:first-child,.comparison-report-head>div:first-child,.comparison-block-head>div:first-child{min-width:0}
.comparison-report{container:comparison-report / inline-size}
.comparison-report-actions,.chart-heading-controls,.metric-switch{max-width:100%}

.info-icon{width:20px;height:20px;min-width:20px;min-height:20px;flex:0 0 20px;padding:0;overflow:visible;font:700 10px/1 Arial,sans-serif}
.info-icon::after{top:calc(100% + 6px)}
.section-info{top:10px;right:10px}
.text-icon-button{width:auto!important;min-width:34px!important;height:24px;min-height:24px!important;flex:0 0 auto;padding:0 5px!important;overflow:visible;border-radius:4px!important;font:700 9px/1 'Geist Mono',monospace!important;white-space:nowrap}
.chart-actions,.comparison-report-actions{gap:6px}

.metric-switch button{font-size:10px}
.kpi-card span{font-size:10px}
.kpi-card small{font-size:9.5px;line-height:1.4}
.position-row>span,.top-url-row a{font-size:10.5px}
.position-row>strong,.top-url-row strong{font-size:10px}
.position-legend{font-size:9.5px}
.competitor-card-head strong{font-size:11px}
.competitor-card-head div span{font-size:9.5px}
.competitor-mapping>summary,.competitor-classification>summary,.competitor-url-preview>summary{font-size:10.5px}
.competitor-mapping-grid .field span{font-size:9.5px}
.competitor-mapping-grid select{font-size:10.5px}
.competitor-classification>summary small,.competitor-url-preview>summary small{font-size:9.5px}
.competitor-classification-note{font-size:10px}
.competitor-rule-builder input,.competitor-rule-builder select{font-size:10.5px}
.competitor-url-table th{font-size:9px}
.competitor-url-table td{font-size:10.5px}
.competitor-url-table small{font-size:9.5px}
.competitor-url-footer{font-size:9.5px}

.comparison-report-head h2{font-size:18px}
.comparison-report-head p{font-size:10.5px;line-height:1.5}
.comparison-insights{grid-template-columns:repeat(4,minmax(0,1fr))}
.comparison-insights span{font-size:10px}
.comparison-insights strong{overflow:hidden;font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.comparison-insights small{font-size:9.5px;line-height:1.45}
.comparison-block{overflow:visible}
.comparison-block h3{font-size:13px;line-height:1.35}
.comparison-block-head{align-items:flex-start}
.comparison-block-head h3{margin-bottom:4px}
.comparison-block-head span{display:block;font-size:10.5px;line-height:1.45}
.comparison-table th{font-size:9px}
.comparison-table td{font-size:10.5px}
.comparison-table td strong{font-size:10.5px}

.comparison-donuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.comparison-donut-card{display:grid;grid-template-columns:minmax(140px,180px) minmax(0,1fr);align-items:center;gap:8px 12px;min-width:0;padding:12px}
.comparison-donut-card h4{grid-column:1/-1;font-size:11px}
.comparison-donut-visual{width:100%;max-width:175px;margin:0 auto}
.comparison-donut-visual strong{font-size:15px}
.comparison-donut-visual span{font-size:9px}
.comparison-donut-legend{display:grid;gap:2px;max-height:190px;overflow:auto;padding-right:2px}
.comparison-legend-item{min-width:0;gap:6px;padding:3px 4px;font-size:9.5px}
.comparison-legend-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.comparison-legend-item strong{font-size:9.5px;white-space:nowrap}

.comparison-scale-chart,.comparison-position-chart{display:grid;gap:10px;margin-top:15px}
.comparison-scale-row,.comparison-position-row{display:grid;grid-template-columns:minmax(145px,220px) minmax(120px,1fr) minmax(115px,165px);align-items:center;gap:11px;min-width:0;padding:5px 7px;border-radius:6px}
.comparison-scale-row.is-own-domain,.comparison-position-row.is-own-domain{background:#f4f8ff}
.comparison-domain-label{display:flex;min-width:0;flex-direction:column;gap:3px}
.comparison-domain-label strong{overflow:hidden;color:var(--sv-text);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.comparison-domain-label span{color:var(--sv-dim);font:500 9px 'Geist Mono',monospace}
.comparison-scale-track,.comparison-position-track{height:20px;overflow:hidden;border-radius:4px;background:#edf1f6}
.comparison-scale-track i{display:block;height:100%;min-width:2px;border-radius:4px;cursor:help}
.comparison-scale-value,.comparison-position-total{display:flex;min-width:0;align-items:flex-end;flex-direction:column;gap:2px;text-align:right}
.comparison-scale-value strong,.comparison-position-total strong{font:650 10.5px 'Geist Mono',monospace;white-space:nowrap}
.comparison-scale-value span,.comparison-position-total span{overflow:hidden;max-width:100%;color:var(--sv-dim);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.comparison-position-track{display:flex;height:22px}
.comparison-position-track i{display:block;height:100%;min-width:0;cursor:help}
.comparison-position-missing{display:flex;min-height:22px;align-items:center;padding:0 8px;border:1px dashed #d8e0eb;border-radius:4px;color:var(--sv-dim);font-size:9.5px}
.comparison-position-total{color:var(--sv-dim);font-size:10px}
.comparison-position-legend{display:flex;grid-column:1/-1;gap:13px;flex-wrap:wrap;margin:4px 7px 0;color:var(--sv-muted);font-size:9.5px}
.comparison-position-legend span{display:flex;align-items:center;gap:5px}
.comparison-position-legend i{width:9px;height:9px;border-radius:2px}

@container visibility-report (max-width:1100px){
  .charts-grid{grid-template-columns:1fr}
  .mapping-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@container visibility-report (max-width:780px){
  .mapping-source-row,.mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-title{grid-column:1/-1}
}
@container comparison-report (max-width:900px){
  .comparison-report-head{align-items:flex-start;flex-direction:column}
  .comparison-report-actions{justify-content:flex-start}
  .comparison-insights{grid-template-columns:repeat(2,minmax(0,1fr))}
  .comparison-donuts{grid-template-columns:1fr}
  .comparison-two-column{grid-template-columns:1fr}
}
@container comparison-report (max-width:620px){
  .comparison-block-head{align-items:flex-start;flex-direction:column}
  .comparison-block-head .metric-switch{width:100%}
  .comparison-scale-row,.comparison-position-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
  .comparison-domain-label{grid-column:1;grid-row:1}
  .comparison-scale-value,.comparison-position-total{grid-column:2;grid-row:1}
  .comparison-scale-track,.comparison-position-track,.comparison-position-missing{grid-column:1/-1;grid-row:2}
}
@container comparison-report (max-width:480px){
  .comparison-insights{grid-template-columns:1fr}
  .comparison-donut-card{grid-template-columns:minmax(120px,150px) minmax(0,1fr);padding:9px}
  .comparison-donut-visual{max-width:145px}
}

@media(max-width:1450px){
  .charts-grid{grid-template-columns:1fr}
  .comparison-insights{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1180px){
  .comparison-donuts{grid-template-columns:1fr}
  .comparison-two-column{grid-template-columns:1fr}
}
@media(max-width:720px){
  .visibility-header{gap:15px}
  .comparison-report-head{flex-direction:column}
  .comparison-scale-row,.comparison-position-row{grid-template-columns:minmax(0,1fr) auto}
  .comparison-domain-label{grid-column:1;grid-row:1}
  .comparison-scale-value,.comparison-position-total{grid-column:2;grid-row:1}
  .comparison-scale-track,.comparison-position-track,.comparison-position-missing{grid-column:1/-1;grid-row:2}
}
@media(max-width:520px){
  .comparison-donut-card{grid-template-columns:1fr}
  .comparison-donut-card h4{grid-column:1}
  .comparison-donut-visual{max-width:165px}
  .comparison-donut-legend{max-height:none}
}
/* Kompaktowe akcje sekcji, bezpieczne dymki i modal AI */
.ai-overlay{
  --sv-text:#0f172a;
  --sv-muted:#64748b;
  --sv-dim:#94a3b8;
  --sv-border:#dbe2ea;
  --sv-blue:#2563eb;
  --sv-green:#15803d;
  --sv-subtle:#f8fafc;
  color:var(--sv-text);
  font-family:'Geist',Arial,sans-serif;
}
.ai-overlay *,.ai-overlay *::before,.ai-overlay *::after{box-sizing:border-box}
.ai-overlay button,.ai-overlay textarea{font:inherit;letter-spacing:0}
.ai-actions #runAiButton{border-color:#2563eb;color:#fff;background:#2563eb;box-shadow:0 4px 10px rgba(37,99,235,.15)}
.ai-actions #runAiButton:hover:not(:disabled){border-color:#1d4ed8;color:#fff;background:#1d4ed8}
.ai-mode-switch{min-height:35px;align-items:center;scrollbar-width:thin}
.ai-mode-switch button{flex:0 0 auto}

.kpi-card-title{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px}
.kpi-card-title>span{min-width:0;line-height:1.35}
.kpi-card-with-info{padding-right:12px}
.filter-title{padding-right:0}
.filter-title .info-icon{margin-left:2px}
.filter-title .info-icon::after{right:auto;left:0}

.chart-heading{align-items:flex-start}
.chart-heading-controls{align-items:flex-end;flex-direction:column;gap:6px}
.chart-actions,.comparison-report-actions{width:auto;align-items:center;justify-content:center;gap:5px}
.chart-actions .info-icon,.comparison-report-actions .info-icon,.analysis-actions .info-icon{align-self:center}
.chart-heading-controls .chart-actions{align-self:flex-end}
.text-icon-button{display:inline-flex!important;align-items:center!important;justify-content:center!important}

.info-icon::after{width:min(280px,calc(100vw - 32px));max-width:calc(100vw - 32px)}
.kpi-card-title .info-icon::after,.chart-actions .info-icon::after,.comparison-report-actions .info-icon::after,.analysis-actions .info-icon::after,.section-info::after{right:0;left:auto}
.kpi-grid>.section-info{top:8px;right:8px}

@media(max-width:980px){
  .chart-heading-controls{width:auto;align-items:flex-end;justify-content:flex-start}
}
@media(max-width:720px){
  .chart-actions{width:auto;align-self:flex-end;justify-content:center}
  .chart-actions .info-icon::after,.comparison-report-actions .info-icon::after,.analysis-actions .info-icon::after,.section-info::after,.kpi-card-title .info-icon::after{right:0;left:auto}
  .filter-title .info-icon::after{right:auto;left:0}
}
/* Ostateczne wymiary akcji i ochrona szerokości przy zoomie */
.visibility-page{box-sizing:border-box;overflow-x:clip}
.info-icon{width:18px;height:18px;min-width:18px;min-height:18px;flex-basis:18px;padding:0;border:0;border-radius:4px;color:#2563eb;background:transparent;font-size:0;line-height:0}
.info-icon>svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.info-icon:hover,.info-icon:focus-visible{color:#1d4ed8;background:#eef4ff}
.text-icon-button{min-width:30px!important;height:22px;min-height:22px!important;padding:0 4px!important;font-size:8.5px!important}
.data-table th{padding:0}
.table-sort-button{display:inline-flex;width:100%;min-height:36px;align-items:center;justify-content:flex-start;gap:7px;padding:10px 12px;border:0;color:inherit;background:transparent;font:inherit;letter-spacing:inherit;text-align:left;text-transform:inherit;white-space:nowrap;cursor:pointer}
.table-sort-button:hover,.table-sort-button:focus-visible{color:var(--sv-blue);background:#eef4ff;outline:none}
.table-sort-button i{color:#94a3b8;font:700 11px/1 Arial,sans-serif;font-style:normal}
.data-table th[aria-sort="ascending"] .table-sort-button i,.data-table th[aria-sort="descending"] .table-sort-button i{color:var(--sv-blue)}
.comparison-chart-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.comparison-block-head>.chart-actions,.comparison-chart-controls>.chart-actions{flex:0 0 auto;flex-wrap:nowrap}
@media(max-width:720px){.comparison-chart-controls{width:100%;justify-content:flex-start}.comparison-block-head>.chart-actions{align-self:flex-start}}
.comparison-block.info-section>.comparison-block-head{padding-right:36px}
