/* Shared foundations. Page-specific classes retain their branded colors. */
:where(.button, .exam-button, .filter-chip, .pagination button) {
  min-height: 44px;
  border-radius: var(--imba-radius-sm);
  font: inherit;
  line-height: 1.35;
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea, .field) {
  min-height: 44px;
  border: 1px solid var(--imba-border);
  border-radius: var(--imba-radius-sm);
  color: var(--imba-ink);
  background-color: var(--imba-surface);
  font: inherit;
}

:where(textarea) { min-height: 110px; }
:where(.panel, .card, .metric-card, .resource-card, .thread-card, .mock-card) { border-radius: var(--imba-radius-md); }
:where(.toast, .exam-dialog, .app-dialog) { border-radius: var(--imba-radius-md); box-shadow: var(--imba-shadow-card); }
:where(table) { border-collapse: collapse; }
:where(th, td) { border-color: var(--imba-border); }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #155f88; outline-offset: 3px; }

@media (max-width: 700px) {
  :where(.button, .exam-button, .filter-chip, .pagination button) { min-height: 44px; }
  :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { font-size: 16px; }
}
