.seo-visibility-details { border-color:#cbd8ed; background:#f8faff; }
.seo-visibility-setup { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.seo-source-setup { min-width:0; overflow:hidden; border:1px solid #dbe3ef; border-radius:8px; background:#fff; }
.seo-source-switch { min-height:64px; margin:0; border:0; border-radius:0; background:#fff; }
.seo-source-options { padding:0 12px 12px; border-top:1px solid #edf1f6; }
.seo-source-grid { display:grid; grid-template-columns:minmax(250px,1.1fr) minmax(180px,.9fr); gap:10px; padding-top:12px; }
.seo-source-fields { display:grid; align-content:start; gap:9px; }
.seo-source-grid .mini-drop-zone { min-height:92px; }
.seo-gsc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding-top:12px; }
.seo-gsc-grid .field:last-child { grid-column:1/-1; }
.seo-source-status { margin-top:10px; padding:8px 10px; border:1px solid #e0e6ee; border-radius:6px; color:var(--log-muted); background:#f8fafc; font-size:9.5px; line-height:1.45; }
.seo-source-status.is-loading { border-color:#bfd0ef; color:#1d4ed8; background:#f5f8ff; }
.seo-source-status.is-success { border-color:#bde5c9; color:#15803d; background:#f0fdf4; }
.seo-source-status.is-error { border-color:#fecaca; color:#b4232d; background:#fff7f7; }
.seo-mapping-grid { grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:10px; }
.seo-mapping-grid label { display:flex; min-width:0; flex-direction:column; gap:5px; }
.seo-mapping-grid label>span { color:var(--log-muted); font:550 8.5px/1.3 'Geist Mono',monospace; letter-spacing:.35px; text-transform:uppercase; }
.seo-preview-details { margin-top:10px; border:1px solid #e0e6ee; border-radius:7px; background:#fff; }
.seo-preview-details>summary { display:flex; min-height:37px; align-items:center; justify-content:space-between; gap:10px; padding:0 10px; color:#1d4ed8; font-size:10px; cursor:pointer; list-style:none; }
.seo-preview-details>summary::-webkit-details-marker { display:none; }
.seo-preview-details .table-scroll { max-height:230px; border-top:1px solid #edf1f6; }
.seo-preview-details table { min-width:720px; }
.seo-method-note { grid-column:1/-1; }

.visibility-report { min-width:0; overflow:hidden; border:1px solid #c7d9f2; border-radius:8px; background:#f3f7fc; box-shadow:0 2px 8px rgba(15,23,42,.035); }
.visibility-report-head { align-items:center; }
.visibility-report .data-source-badge.logs { border-color:#bfd0ef; color:#1d4ed8; background:#eef4ff; }
.visibility-report .data-source-badge.senuto { border-color:#f5d2a2; color:#9a5205; background:#fff8eb; }
.visibility-report .data-source-badge.gsc { border-color:#bde5c9; color:#15803d; background:#f0fdf4; }
.visibility-kpis { grid-template-columns:repeat(6,minmax(0,1fr)); }
.visibility-kpis .is-alert { border-color:#fecaca; background:#fff8f8; }
.visibility-kpis .is-good { border-color:#bde5c9; background:#f7fff9; }
.visibility-chart-grid { padding:0 13px 13px; }
.visibility-chart-grid .chart-card { box-shadow:none; }
.visibility-wide { grid-column:1/-1; }
.visibility-matrix-chart { min-height:365px; }
.visibility-matrix-svg { display:block; width:100%; height:330px; overflow:visible; }
.matrix-grid line { stroke:#dce4ef; stroke-width:1; }
.matrix-axis-label { fill:#64748b; font:500 10px 'Geist',Arial,sans-serif; }
.matrix-tick { fill:#94a3b8; font:600 8.5px 'Geist Mono',monospace; }
.visibility-point { cursor:pointer; opacity:.78; stroke:#fff; stroke-width:1.5; transition:opacity .15s,stroke-width .15s; }
.visibility-point:hover,.visibility-point:focus { opacity:1; stroke:#172033; stroke-width:2.2; outline:none; }
.matrix-note { margin-top:2px; color:var(--log-muted); font-size:9px; line-height:1.4; }
.visibility-bars { display:grid; gap:10px; padding-top:2px; }
.visibility-bar-row { display:grid; width:100%; grid-template-columns:minmax(130px,.9fr) minmax(120px,1.5fr) 62px; align-items:center; gap:10px; padding:3px 0; border:0; color:var(--log-text); background:transparent; text-align:left; }
.visibility-bar-row:hover .visibility-bar-label { color:#1d4ed8; }
.visibility-bar-label { overflow:hidden; font-size:9.5px; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.visibility-bar-track { height:8px; overflow:hidden; border-radius:99px; background:#edf1f6; }
.visibility-bar-track i { display:block; min-width:2px; height:100%; border-radius:inherit; background:linear-gradient(90deg,#4f7fe6,#8aa7e8); }
.visibility-bar-row strong { color:#334155; font:650 9px/1 'Geist Mono',monospace; text-align:right; }

.visibility-table-card { min-width:0; margin:0 13px 13px; overflow:hidden; border:1px solid #d4deeb; border-radius:8px; background:#fff; }
.visibility-table-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:14px 15px 10px; }
.visibility-table-head h3 { margin:0; font-size:14px; line-height:1.35; }
.visibility-table-head p { margin:4px 0 0; color:var(--log-muted); font-size:9.5px; line-height:1.45; }
.visibility-diagnosis-tabs { padding-top:2px; border-top:1px solid #edf1f6; background:#f8fafc; }
.visibility-diagnosis-tabs .tab-button { max-width:260px; }
.visibility-diagnosis-tabs .tab-button:not([aria-selected="true"]) { background:#fff; }
.visibility-tab-description { min-height:34px; padding-top:8px; padding-bottom:8px; }
.visibility-legend { display:flex; align-items:center; justify-content:flex-end; gap:5px; flex-wrap:wrap; }
.visibility-legend span { display:inline-flex; align-items:center; min-height:21px; padding:2px 7px; border:1px solid transparent; border-radius:99px; font:650 8px/1 'Geist Mono',monospace; }
.visibility-legend .log { border-color:#c9daf7; color:#1d4ed8; background:#edf4ff; }
.visibility-legend .senuto { border-color:#f6d5a7; color:#9a5205; background:#fff7e8; }
.visibility-legend .gsc { border-color:#bde5c9; color:#15803d; background:#effcf3; }
.visibility-legend .derived { border-color:#ddd2f7; color:#6d28d9; background:#f7f3ff; }
.visibility-table-tools { padding:9px 12px; border-top:1px solid #edf1f6; border-bottom:1px solid #edf1f6; background:#f8fafc; }
.visibility-table-tools .chart-filter { min-width:130px; }
.visibility-table-tools .chart-filter select { min-width:130px; }
#visibilityResultCount { margin-left:auto; color:var(--log-muted); font:500 9.5px 'Geist Mono',monospace; white-space:nowrap; }
.visibility-table-shell { max-height:660px; overflow:auto; border:0; border-radius:0; }
.visibility-table { min-width:1770px; }
.visibility-table thead th { position:sticky; z-index:3; top:0; }
.visibility-table td { vertical-align:top; }
.visibility-table .visibility-cell-log { background:#f5f8ff; box-shadow:inset 1px 0 rgba(37,99,235,.045); }
.visibility-table .visibility-cell-senuto { background:#fffaf1; box-shadow:inset 1px 0 rgba(180,83,9,.045); }
.visibility-table .visibility-cell-gsc { background:#f4fbf6; box-shadow:inset 1px 0 rgba(21,128,61,.045); }
.visibility-table .visibility-cell-derived { background:#faf7ff; box-shadow:inset 1px 0 rgba(124,58,237,.04); }
.expand-col { width:38px; min-width:38px; padding-left:7px!important; padding-right:5px!important; text-align:center; }
.row-expand-button { display:grid; width:24px; height:24px; min-height:24px; place-items:center; padding:0; border:1px solid #d7e0ec; border-radius:5px; color:#64748b; background:#fff; }
.row-expand-button:hover { border-color:#9fb8e4; color:#1d4ed8; background:#f5f8ff; }
.row-expand-button svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; transition:transform .15s; }
.row-expand-button.is-open svg { transform:rotate(180deg); }
.diagnosis-cell { min-width:270px; max-width:360px; }
.diagnosis-cell strong { display:block; font-size:9.5px; line-height:1.4; }
.diagnosis-cell small { display:block; margin-top:3px; color:var(--log-muted); font-size:8.5px; line-height:1.4; }
.priority-pill { display:inline-flex; min-width:28px; min-height:20px; align-items:center; justify-content:center; padding:2px 6px; border:1px solid #dce3ec; border-radius:5px; font:700 8.5px/1 'Geist Mono',monospace; }
.priority-pill.p1 { border-color:#f4b4b9; color:#b4232d; background:#fff1f2; }
.priority-pill.p2 { border-color:#f5d2a2; color:#9a5205; background:#fff8eb; }
.priority-pill.p3 { border-color:#c9daf7; color:#1d4ed8; background:#f1f6ff; }
.priority-pill.ok { border-color:#bde5c9; color:#15803d; background:#f0fdf4; }
.visibility-detail-row>td { padding:0!important; border-top:0!important; background:#f8fafc!important; }
.visibility-detail-panel { padding:12px 14px 14px 50px; border-top:1px solid #dfe6ef; border-bottom:1px solid #dfe6ef; }
.visibility-detail-loading { padding:16px 14px 16px 50px; color:#64748b; font-size:10px; }
.visibility-detail-tabs { display:flex; align-items:center; gap:5px; margin-bottom:9px; flex-wrap:wrap; }
.visibility-detail-tabs button { min-height:29px; padding:0 9px; border:1px solid #d7e0ec; border-radius:5px; color:#64748b; background:#fff; font-size:9px; }
.visibility-detail-tabs button span { margin-left:4px; color:#94a3b8; font:600 8px 'Geist Mono',monospace; }
.visibility-detail-tabs button.is-active { border-color:#9fb8e4; color:#1d4ed8; background:#eef4ff; font-weight:650; }
.visibility-detail-tabs button:disabled { cursor:not-allowed; opacity:.45; }
.visibility-detail-panel .table-scroll { max-height:390px; border:1px solid #e0e6ee; border-radius:6px; background:#fff; }
.visibility-detail-panel table { min-width:760px; }
.visibility-detail-pagination { display:flex; align-items:center; justify-content:flex-end; gap:7px; margin-top:8px; }
.visibility-detail-pagination button { width:28px; height:27px; min-height:27px; border:1px solid #d7e0ec; border-radius:5px; color:#64748b; background:#fff; }
.visibility-detail-pagination span { color:#64748b; font:600 8.5px 'Geist Mono',monospace; }
.visibility-detail-pagination button:disabled { cursor:not-allowed; opacity:.4; }

@media(max-width:1250px){
  .seo-mapping-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .visibility-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:1000px){
  .seo-visibility-setup { grid-template-columns:1fr; }
  .seo-method-note { grid-column:auto; }
}
@media(max-width:720px){
  .seo-source-grid,.seo-gsc-grid,.seo-mapping-grid { grid-template-columns:1fr; }
  .seo-gsc-grid .field:last-child { grid-column:auto; }
  .visibility-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .visibility-table-head { flex-direction:column; }
  .visibility-legend { justify-content:flex-start; }
  .visibility-table-tools .chart-filter { width:calc(50% - 5px); min-width:0; flex:1; }
  .visibility-bar-row { grid-template-columns:105px 1fr 45px; gap:6px; }
  .visibility-detail-panel { padding-left:12px; }
}
@media(max-width:460px){
  .visibility-kpis { grid-template-columns:1fr; }
  .visibility-table-tools .chart-filter { width:100%; flex-basis:100%; }
}
@media print{
  .visibility-table-tools,.visibility-detail-tabs,.row-expand-button { display:none!important; }
  .visibility-table-shell { max-height:none; overflow:visible; }
}
