.candidate-directory [hidden] { display: none; }
.candidate-directory > .lead { max-width: 52rem; }
.candidate-filter { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin: 1.2rem 0; }
.candidate-filter label { font-weight: 700; }
.candidate-filter select { min-height: 44px; max-width: 100%; padding: .45rem .65rem; border: 1px solid var(--rule); border-radius: 6px; background: #fffdf6; color: var(--ink); }
.candidate-count { margin: 0; color: var(--muted); }
.candidate-interactive .candidate-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); gap: 1.15rem; align-items: start; }
.candidate-list, .candidate-panels { display: grid; gap: .55rem; }
.candidate-list button { display: grid; gap: .22rem; min-height: 44px; text-align: start; border: 1px solid var(--rule); border-radius: 7px; color: var(--ink); background: #fffdf6; padding: .75rem .95rem; }
.candidate-list button:hover { border-color: var(--pine); }
.candidate-list button[aria-pressed="true"] { background: #e3ece3; border-color: var(--pine); box-shadow: inset 4px 0 var(--pine); }
.candidate-list .eyebrow { margin: 0; }
.candidate-detail { min-width: 0; padding: clamp(1rem, 3vw, 1.75rem); border: 1px solid var(--rule); border-radius: 9px; background: #fffdf6; }
.candidate-detail h3 { margin: .55rem 0; text-wrap: wrap; }
.candidate-status { display: inline-block; padding: .22rem .55rem; border-radius: 4px; background: #e3ece3; color: var(--pine); font-size: .85rem; }
.candidate-island { display: flex; width: fit-content; flex-wrap: wrap; gap: .2rem .55rem; align-items: baseline; padding: .35rem .65rem; margin: 0 0 1rem; border: 1px solid #dac188; border-radius: 5px; color: #593c12; background: #f0dfb7; }
.candidate-context { padding-inline-start: .85rem; margin: 1rem 0; border-inline-start: 3px solid #a48142; }
.candidate-detail .eyebrow, .candidate-context p { margin-block: 0 .3rem; }
.candidate-action { padding: 1rem; border-radius: 6px; background: #e3ece3; }
.candidate-action p { margin: .35rem 0 .7rem; }
.candidate-action p:last-child { margin: .55rem 0 0; }
@media (max-width: 720px) { .candidate-interactive .candidate-layout { grid-template-columns: 1fr; } }

.candidate-close { padding-block: 1.3rem 2rem; margin-bottom: 1.5rem; border-top: 1px solid var(--rule); }
.candidate-close h2 { margin: 0; font-size: clamp(1.2rem, 2.5vw, 1.65rem); }
.candidate-close .actions { margin-top: .7rem; }
.candidate-privacy { margin: .65rem 0 0; font-size: .88rem; color: var(--muted); }
