.cc-heading h1 { margin-bottom: 10px; }
.cc-heading p { margin: 0; color: var(--sub); }
.cc-modes { margin-block: 26px; }
.cc-selectors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cc-selector { min-width: 0; margin: 0; padding: 20px; border: 2px solid var(--ink); border-radius: var(--radius-md); background: var(--white); }
.cc-selector legend { padding-inline: 8px; font-weight: 900; }
.cc-selector label { display: block; margin-bottom: 7px; font-size: 14px; font-weight: 700; }
.cc-search { display: flex; gap: 8px; margin-bottom: 18px; }
.cc-selector input, .cc-selector select { min-width: 0; width: 100%; padding: 10px 12px; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 8px; font-size: 16px; }
.cc-selector select:disabled { color: var(--sub); background: var(--surface); opacity: 1; }
.cc-primary, .cc-secondary { cursor: pointer; border: 2px solid var(--ink); border-radius: 999px; font-weight: 900; line-height: 1.5; }
.cc-primary { padding: 12px 24px; background: var(--ink); color: var(--white); }
.cc-secondary { flex-shrink: 0; padding: 8px 12px; background: var(--white); color: var(--ink); font-size: 13px; }
.cc-primary:hover { background: var(--white); color: var(--ink); }
.cc-secondary:hover { background: var(--ink); color: var(--white); }
.cc-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 24px; }
.cc-submit a { font-size: 14px; text-decoration: underline; }
.cc-help { margin: 10px 0 0; color: var(--sub); font-size: 13px; overflow-wrap: anywhere; }
.cc-search + .cc-help { margin: -8px 0 16px; }
.cc-message { padding: 12px 18px; margin-bottom: 20px; border-left: 4px solid var(--primary); background: var(--white); }
.cc-message p { margin: 4px 0; }
.cc-start { margin-top: 28px; color: var(--sub); }
.cc-results { margin-top: 44px; }
.cc-results h2 { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; }
.cc-pair { display: flex; flex-wrap: wrap; gap: 8px; }
.cc-result-list { list-style: none; padding: 0; margin: 24px 0; border-top: 2px solid var(--ink); }
.cc-result { padding: 24px 0; border-bottom: 1px solid var(--line); }
.cc-result h3 { margin: 0 0 10px; font-size: 20px; line-height: 1.5; }
.cc-result h3 a { text-decoration: underline; text-decoration-color: var(--primary); }
.cc-meta { margin: -2px 0 14px; color: var(--sub); font-size: 13px; }
.cc-roles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; }
.cc-roles div { min-width: 0; border-left: 3px solid var(--primary); padding-left: 14px; }
.cc-roles dt { color: var(--sub); font-size: 12px; overflow-wrap: anywhere; }
.cc-roles dd { margin: 5px 0 0; font-size: 16px; overflow-wrap: anywhere; }
.cc-note { max-width: 60em; margin-top: 40px; }
@media (max-width: 640px) {
  .cc-heading h1 { font-size: 25px; }
  .cc-selectors { grid-template-columns: 1fr; gap: 16px; }
  .cc-selector { padding: 16px; }
  .cc-search { flex-wrap: wrap; }
  .cc-search input { flex: 1 1 160px; }
  .cc-secondary { min-height: 44px; }
  .cc-roles { grid-template-columns: 1fr; gap: 12px; }
  .cc-submit { flex-direction: column; align-items: stretch; text-align: center; }
  .cc-results h2 { font-size: 23px; }
}
