/* ========== CATALOG HEALTH — Standalone Page ========== */

/* Panel top clearance for floating ticker + stronger divider color */
#panel-catalog{padding-top:22px;--divider:rgba(0,0,0,0.12)}

/* Page header */
.ch-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--divider)}
.ch-page-title{font-size:26px;font-weight:700;color:var(--text);letter-spacing:-0.3px;line-height:1.2}
.ch-page-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px}
.ch-btn-scan{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:10px 20px;border-radius:var(--radius-sm);border:1px solid var(--divider);background:var(--surface);color:var(--text);cursor:pointer;transition:all var(--duration-base) var(--ease);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.ch-btn-scan:hover{border-color:var(--indigo);color:var(--indigo);background:rgba(45,106,79,0.04)}
.ch-btn-scan:disabled{opacity:var(--opacity-muted);cursor:not-allowed}
.ch-btn-scan .ch-scan-icon{font-size:13px}

/* Sub-tabs — full-width gray rule, active gets bold dark underline */
.ch-tabs{display:flex;gap:0;border-bottom:1px solid var(--divider);margin-bottom:28px}
.ch-tab{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--text-muted);background:none;border:none;padding:12px 20px 10px;cursor:pointer;position:relative;transition:color var(--duration-base) var(--ease)}
.ch-tab::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:transparent;border-radius:1px;transition:background var(--duration-base) var(--ease)}
.ch-tab:hover{color:var(--text)}
.ch-tab.active{color:var(--text);font-weight:700}
.ch-tab.active::after{background:var(--text);height:3px}

/* Sub-panels */
.ch-subpanel{display:none}
.ch-subpanel.active{display:block}

/* Status banner */
.ch-status-bar{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);padding:18px 24px;margin-bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ch-status-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.ch-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.ch-status-dot.clean{background:var(--emerald);box-shadow:0 0 8px rgba(45,106,79,0.35)}
.ch-status-dot.issues{background:var(--coral);box-shadow:0 0 8px rgba(207,92,84,0.4)}
.ch-status-text{font-size:14px;font-weight:600;color:var(--text)}
.ch-status-detail{font-size:13px;color:var(--text-muted);margin-left:4px}
.ch-status-right{display:flex;gap:28px;flex-shrink:0}
.ch-stat-block{text-align:center;min-width:48px}
.ch-stat-num{font-family:var(--font-mono);font-size:24px;font-weight:700;color:var(--text);line-height:1}
.ch-stat-label{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);margin-top:5px}
.ch-stat-num.flagged{color:var(--coral)}
.ch-stat-num.clean{color:var(--emerald)}

/* Active Issues section */
.ch-section-title{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px}

/* Alert cards — redesigned to match mockup layout */
.ch-alert-list{display:flex;flex-direction:column;gap:0;margin-bottom:28px}
.ch-alert-card{background:var(--surface);border:1px solid var(--divider);border-bottom:none;padding:20px 24px;display:flex;gap:14px;align-items:flex-start;transition:all var(--duration-base) var(--ease)}
.ch-alert-card:first-child{border-radius:var(--radius) var(--radius) 0 0}
.ch-alert-card:last-child{border-bottom:1px solid var(--divider);border-radius:0 0 var(--radius) var(--radius)}
.ch-alert-card:only-child{border-bottom:1px solid var(--divider);border-radius:var(--radius)}
.ch-alert-card:hover{background:var(--surface-offset)}
.ch-alert-card.resolved{opacity:0.85;border-left:3px solid var(--emerald)}
.ch-alert-card.ignored{opacity:0.7;border-left:3px solid var(--text-faint)}
.ch-alert-card.claimed{opacity:0.85;border-left:3px solid var(--indigo)}

/* Alert dot */
.ch-alert-dot{width:8px;height:8px;border-radius:50%;background:var(--coral);flex-shrink:0;margin-top:7px}
.ch-alert-card.resolved .ch-alert-dot{background:var(--emerald)}
.ch-alert-card.claimed .ch-alert-dot{background:var(--indigo)}
.ch-alert-card.ignored .ch-alert-dot{background:var(--text-faint)}

/* Alert body */
.ch-alert-body{flex:1;min-width:0}
.ch-alert-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.ch-alert-title{font-size:15px;font-weight:600;color:var(--text)}
.ch-alert-platform{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:0.5px;color:var(--text-muted)}

/* Alert badge */
.ch-alert-badge{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-sm)}
.ch-alert-badge.flagged{background:rgba(155,68,68,0.08);color:var(--coral);border:1px solid rgba(155,68,68,0.15)}
.ch-alert-badge.wrong-add{background:rgba(180,100,40,0.1);color:#b06428;border:1px solid rgba(180,100,40,0.2)}
.ch-alert-badge.claimed{background:var(--indigo-soft,rgba(88,86,214,0.1));color:var(--indigo);border:1px solid rgba(88,86,214,0.15)}
.ch-alert-badge.resolved{background:var(--emerald-soft);color:var(--emerald);border:1px solid rgba(5,150,105,0.15)}
.ch-alert-badge.ignored{background:var(--surface-offset);color:var(--text-faint);border:1px solid var(--divider)}

/* Alert detail + meta */
.ch-alert-detail{font-size:13px;color:var(--text-muted);line-height:1.55;margin-bottom:6px}
.ch-alert-meta{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);letter-spacing:0.3px;margin-bottom:10px}
.ch-alert-meta span + span::before{content:' \00b7 ';margin:0 2px}

/* Alert action buttons */
.ch-alert-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ch-alert-btn{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-base) var(--ease);text-decoration:none;display:inline-flex;align-items:center;gap:5px;line-height:1.2}

/* View Song — primary link */
.ch-alert-btn-link{background:var(--surface);color:var(--indigo);border:1px solid rgba(45,106,79,0.2)}
.ch-alert-btn-link:hover{background:var(--indigo-soft);border-color:var(--indigo)}

/* Flag button — prominent right-aligned action */
.ch-alert-btn-flag{background:var(--surface);color:var(--coral);border:1px solid rgba(155,68,68,0.25);padding:8px 18px;font-size:11px;margin-left:auto}
.ch-alert-btn-flag:hover{background:rgba(155,68,68,0.06);border-color:var(--coral)}

/* Claimed */
.ch-alert-btn-claim{background:var(--surface);color:var(--text-muted);border:1px solid var(--divider)}
.ch-alert-btn-claim:hover{background:var(--surface-offset);color:var(--text)}

/* Resolved */
.ch-alert-btn-resolve{background:var(--emerald-soft);color:var(--emerald);border:1px solid rgba(5,150,105,0.2)}
.ch-alert-btn-resolve:hover{background:var(--emerald);color:white}

/* Ignore */
.ch-alert-btn-ignore{background:var(--surface-offset);color:var(--text-muted);border:1px solid var(--divider)}
.ch-alert-btn-ignore:hover{background:var(--divider);color:var(--text)}

/* No issues state */
.ch-alert-no-issues{text-align:center;padding:32px;color:var(--emerald);font-size:14px;font-weight:600;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius)}

/* Resolved / Ignored — collapsible toggle */
.ch-resolved-toggle{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:0.8px;text-transform:uppercase;color:var(--text-faint);background:none;border:none;cursor:pointer;padding:10px 0;margin-top:8px;transition:color var(--duration-base) var(--ease)}
.ch-resolved-toggle:hover{color:var(--text-muted)}
.ch-resolved-toggle-icon{font-size:8px;transition:transform var(--duration-base) var(--ease);display:inline-block}
.ch-resolved-toggle.open .ch-resolved-toggle-icon{transform:rotate(90deg)}
.ch-resolved-count{font-size:10px;font-weight:700;background:var(--surface-offset);color:var(--text-faint);padding:2px 7px;border-radius:10px;min-width:18px;text-align:center}
.ch-resolved-body{margin-top:12px}

/* Scan History — card container matching app .card pattern */
.ch-scan-history{margin-top:28px}
.ch-scan-history .ch-section-title{margin-bottom:12px}
.ch-scan-card{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.ch-scan-table{width:100%;border-collapse:separate;border-spacing:0}
.ch-scan-table th{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-faint);padding:14px 24px;text-align:left;border-bottom:2px solid var(--divider);background:var(--surface-offset)}
.ch-scan-table td{font-size:13px;color:var(--text);padding:16px 24px;border-bottom:1px solid var(--divider);vertical-align:middle}
.ch-scan-table tbody tr:last-child td{border-bottom:none}
.ch-scan-table tbody tr:hover{background:var(--surface-offset)}
.ch-scan-table td.mono{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}
.ch-scan-result{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;padding:4px 10px;border-radius:var(--radius-sm);display:inline-block}
.ch-scan-result.issues{background:rgba(155,68,68,0.08);color:var(--coral);border:1px solid rgba(155,68,68,0.15)}
.ch-scan-result.clean{background:var(--emerald-soft);color:var(--emerald);border:1px solid rgba(5,150,105,0.15)}
.ch-scan-issues-num{color:var(--coral);font-weight:600}
.ch-scan-empty{text-align:center;padding:28px 16px;color:var(--text-muted);font-size:13px}

/* Full Catalog toolbar */
.ch-catalog-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap}
.ch-catalog-toolbar-left{display:flex;align-items:center;gap:10px}
.ch-catalog-toolbar-right{display:flex;gap:8px}
.ch-btn-csv{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-base) var(--ease);display:inline-flex;align-items:center;gap:6px}
.ch-btn-csv-import{background:var(--surface);color:var(--text-muted);border:1px solid var(--divider)}
.ch-btn-csv-import:hover{border-color:var(--indigo);color:var(--indigo)}
.ch-btn-csv-import:disabled{opacity:0.4;cursor:not-allowed}
.ch-btn-csv-export{background:var(--surface);color:var(--indigo);border:1px solid rgba(45,106,79,0.2)}
.ch-btn-csv-export:hover{background:var(--indigo-soft);border-color:var(--indigo)}

/* Full Catalog table — card-wrapped, matches scan history styling */
#panel-catalog #catEntriesTable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
#panel-catalog #catEntriesTable th{padding:14px 24px;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--text-faint);text-transform:uppercase;text-align:left;border-bottom:2px solid var(--divider);background:var(--surface-offset)}
#panel-catalog #catEntriesTable td{padding:14px 24px;border-bottom:1px solid var(--divider);vertical-align:middle;font-size:13px}
#panel-catalog #catEntriesTable tbody tr:last-child td{border-bottom:none}
#panel-catalog #catEntriesTable tbody tr:hover{background:var(--surface-offset)}
#panel-catalog #catEntriesTable img{border-radius:4px}

/* Catalog summary line */
#panel-catalog #chCatSummaryLine{font-size:13px;color:var(--text-muted);line-height:1.55;margin-bottom:18px}

/* Show More button inside catalog */
#panel-catalog #catShowMoreWrap button{background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-sm);padding:8px 24px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:0.5px;color:var(--text-muted);cursor:pointer;transition:all var(--duration-base) var(--ease)}
#panel-catalog #catShowMoreWrap button:hover{border-color:var(--indigo);color:var(--indigo)}

/* Empty state */
#panel-catalog #catEmptyState{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:13px;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius)}

/* Responsive */
@media(max-width:768px){
  .ch-page-header{flex-direction:column;gap:12px}
  .ch-status-bar{flex-direction:column;align-items:flex-start;padding:16px}
  .ch-status-right{width:100%;justify-content:flex-start;gap:24px}
  .ch-alert-card{flex-direction:column;padding:16px}
  .ch-alert-actions{flex-direction:column}
  .ch-alert-btn-flag{margin-left:0}
  .ch-scan-table{font-size:12px}
  .ch-scan-table th,.ch-scan-table td{padding:8px 6px}
  .ch-catalog-toolbar{flex-direction:column;align-items:stretch}
}
