/* Responsibility: Shared typography rendering, controls, focus and tactile feedback. */

/* 2026-07-13 interaction and rendering audit. */
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4 {
  text-wrap: balance;
}

p,
.detail-lead {
  text-wrap: pretty;
}

.salary,
[data-role-count],
.meta-pill,
.submit-status {
  font-variant-numeric: tabular-nums;
}

.btn,
.nav-link,
.back-link,
.job-card,
.field-trigger,
.custom-option,
.picker-option,
.upload-action {
  -webkit-tap-highlight-color: transparent;
}

.btn,
.nav-link,
.field-trigger,
.custom-option,
.picker-option,
.upload-action {
  min-height: 44px;
}

.btn,
.nav-link,
.job-card,
.field-trigger,
.custom-option,
.picker-option,
.upload-action {
  transition-property: color, background-color, border-color, box-shadow, opacity, transform;
  transition-duration: 180ms;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

.btn:active,
.job-card:active,
.field-trigger:active,
.custom-option:active,
.picker-option:active,
.upload-action:active {
  transform: scale(0.96);
  transition-duration: 90ms;
}

.btn:focus-visible,
.nav-link:focus-visible,
.job-card:focus-visible,
.field-trigger:focus-visible,
.custom-option:focus-visible,
.picker-option:focus-visible,
.upload-action:focus-visible {
  outline: 3px solid rgba(255, 198, 59, 0.55);
  outline-offset: 3px;
}

.job-card {
  contain: layout;
}

@media (hover: hover) and (pointer: fine) {
  .job-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(36, 31, 23, 0.08);
  }
}

.custom-option.is-selected,
.picker-option.is-selected,
.field-trigger[aria-expanded="true"] {
  border-color: rgba(255, 181, 35, 0.7);
  background-color: rgba(255, 212, 59, 0.16);
  box-shadow: inset 3px 0 0 #ffc63b;
}

.btn.is-loading,
.btn[aria-busy="true"] {
  cursor: wait;
  opacity: 0.82;
  pointer-events: none;
}

.btn:disabled {
  cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
  .btn,
  .nav-link,
  .job-card,
  .field-trigger,
  .custom-option,
  .picker-option,
  .upload-action {
    transition-duration: 1ms;
  }
}
