/* Candidate Comparison — district-paired incumbent/challenger cards
   NOTE: written without sight of csc-score-card-public.css, so colors,
   spacing, and fonts below are generic placeholders, not matched to
   your existing site variables yet. Replace values marked below once
   the existing stylesheet is shared. */

.csc-cc-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 16px;
}

.csc-cc-chamber-toggle {
    display: flex;
    gap: 4px;
}

.csc-cc-chamber-btn {
    padding: 6px 14px;
    border: 1px solid #ccc;
    background: #fff;
    cursor: pointer;
    border-radius: 4px;
}

.csc-cc-chamber-btn.active {
    background: #1d4ed8; /* TODO: replace with existing brand color */
    color: #fff;
    border-color: #1d4ed8;
}

.csc-cc-honor-roll-label {
    display: flex;
    align-items: center;
    gap: 6px;
}

.csc-cc-active-filters {
    margin-bottom: 12px;
}

.csc-cc-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f1f5f9;
    border-radius: 999px;
    padding: 4px 10px;
    margin-right: 6px;
    font-size: 0.85em;
}

.csc-cc-chip-remove {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1em;
    line-height: 1;
}

.csc-cc-loading,
.csc-cc-results-status,
.csc-cc-no-results {
    margin-bottom: 12px;
}

.csc-cc-cards-wrap {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.csc-cc-district-pair {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 16px;
}

.csc-cc-district-label {
    font-weight: 600;
    margin-bottom: 12px;
}

.csc-cc-pair-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

@media (max-width: 600px) {
    .csc-cc-pair-cards {
        grid-template-columns: 1fr;
    }
}

.csc-cc-candidate-card {
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 14px;
}

.csc-cc-candidate-role {
    text-transform: uppercase;
    font-size: 0.75em;
    letter-spacing: 0.05em;
    color: #64748b;
    margin-bottom: 6px;
}

.csc-cc-candidate-photo {
    width: 100%;
    max-width: 120px;
    border-radius: 6px;
    margin-bottom: 8px;
}

.csc-cc-candidate-name {
    font-weight: 600;
    font-size: 1.05em;
    display: flex;
    align-items: center;
    gap: 6px;
}

.csc-cc-candidate-party {
    font-size: 0.9em;
    color: #475569;
}

.csc-cc-candidate-score {
    font-weight: 600;
    margin-top: 4px;
}

.csc-cc-candidate-towns {
    font-size: 0.85em;
    color: #64748b;
    margin-top: 4px;
}

.csc-cc-candidate-link {
    display: inline-block;
    margin-top: 8px;
    margin-right: 10px;
    font-size: 0.9em;
}