/* Common component classes; page styles own sizing and responsive layout. */
.nc-card { border: 1px solid var(--border); }
.nc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  border-radius: var(--radius-sm);
  font-family: var(--font-ui);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color .15s ease, border-color .15s ease;
}
:where(.nc-button) { min-height: 44px; }
.nc-button-primary { color: var(--white); border: 1px solid var(--orange); background: var(--orange); }
.nc-button-primary:hover { color: var(--white); background: #e7650c; border-color: #e7650c; }
.nc-button-secondary { color: var(--navy); background: var(--white); border: 1px solid var(--border); }
.nc-button-secondary:hover { color: var(--navy); background: #f7f9fc; border-color: #adbed1; }
.nc-button:disabled { cursor: default; opacity: .65; }
.nc-input { color: var(--text); border-color: var(--border); }
.nc-input:focus { border-color: #829fbd; box-shadow: var(--focus-ring); }
.nc-input[aria-invalid="true"] { border-color: var(--danger); }
.nc-text-link { color: #bc4d06; text-decoration: none; }
.nc-text-link:hover { color: #943b03; text-decoration: underline; }
.nc-app .field-error { color: var(--danger); }

/* Search and filter empty states */
.nc-empty-state {
    display: grid;
    justify-items: center;
    gap: .75rem;
    margin: .75rem 0 0;
    padding: clamp(1.5rem, 4vw, 3rem) 1rem;
    border: 1px dashed var(--line, #dbe5f2);
    border-radius: .75rem;
    background: #f7faff;
    color: var(--muted, #526581);
    text-align: center;
}
.nc-empty-state[hidden],
.nc-empty-state:not([hidden]) + :is([class$="-footer"], .branch-count) {
    display: none;
}
.nc-empty-state-icon {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: #e6efff;
    color: #235ebb;
    font-size: 1.25rem;
}
.nc-empty-state p { margin: 0; }
.nc-empty-state .nc-empty-state-title {
    margin-bottom: .25rem;
    color: var(--navy, #102946);
    font-size: 1.0625rem;
    font-weight: 700;
}
