.dc-wrap { max-width: 46rem; }
.dc-tabs { display: flex; gap: .5rem; margin-bottom: 1rem; flex-wrap: wrap; }
.dc-tab { padding: .45rem .85rem; border: 1px solid var(--bs-border-color, #dee2e6); border-radius: 8px; background: #fff; cursor: pointer; font-size: .875rem; }
.dc-tab.active { background: var(--bs-primary, #0d6efd); color: #fff; border-color: var(--bs-primary, #0d6efd); }
.dc-panel[hidden] { display: none !important; }
.dc-party-legend { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .8rem; color: var(--bs-secondary-color, #6c757d); margin-bottom: 1rem; }
.dc-party-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.dc-party-icon { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }
.dc-party-dot { width: 14px; height: 14px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(0,0,0,.12); }
.dc-party-flag { line-height: 0; }
.dc-ward-summary { background: var(--bs-light, #f8f9fa); border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .75rem; padding: .75rem 1rem; margin-bottom: 1rem; font-size: .95rem; }
.dc-ward-summary strong { font-weight: 600; }
.dc-ward-group { margin-bottom: 2rem; }
.dc-ward-heading { font-size: 1.15rem; margin: 0 0 .75rem; padding-bottom: .35rem; border-bottom: 2px solid var(--bs-border-color, #dee2e6); }
.dc-ward-meta { font-size: .85rem; font-weight: 400; color: var(--bs-secondary-color, #6c757d); }
.dc-party-evidence ul { list-style: disc; }
.dc-party-evidence li { margin-bottom: .5rem; }
.dc-candidate { border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .75rem; padding: 1rem; margin-bottom: .75rem; background: var(--bs-body-bg, #fff); }
.dc-candidate h3 { display: flex; align-items: center; gap: .5rem; font-size: 1.05rem; margin: 0 0 .35rem; }
.dc-candidate-meta { font-size: .8rem; color: var(--bs-secondary-color, #6c757d); margin-bottom: .35rem; }
.dc-badge { display: inline-block; font-size: .72rem; font-weight: 600; padding: .15rem .45rem; border-radius: .35rem; background: #e8f1f8; color: #1e5a8a; margin-right: .35rem; }
.dc-badge-elected { background: #e6f4ea; color: #2d6a4f; }
.dc-status { min-height: 1.25rem; }
