/* Theme-friendly: minimal styling; let themes handle fonts/colors/buttons/tables */
.nfai-wrap { margin: 1.5rem auto; max-width: 960px; }
.nfai-form { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-bottom: .75rem; }
.nfai-form .nfai-control { display: flex; flex-direction: column; gap: .25rem; }
.nfai-textarea { width: 100%; padding: .6rem; }
.nfai-select { width: 100%; padding: .45rem; }
.nfai-actions { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.nfai-btn, .nfai-btn-secondary, .nfai-btn-small {
  cursor: pointer;
  appearance: button;
  border: 1px solid var(--nfai-border, #dcdcdc);
  background: var(--nfai-bg, #111);
  color: var(--nfai-fg, #fff);
  padding: .55rem .9rem;
  border-radius: .4rem;
}
.nfai-btn-secondary {
  background: transparent;
  color: inherit;
}
.nfai-btn-small {
  padding: .3rem .6rem; font-size: .875rem;
}
.nfai-spinner {
  display: none; width: 18px; height: 18px; border: 2px solid #e5e7eb; border-top-color: currentColor;
  border-radius: 50%; animation: nfai-spin 1s linear infinite;
}
@keyframes nfai-spin { to { transform: rotate(360deg); } }

.nfai-output { margin-top: .5rem; }
.nfai-toolbar { display: flex; gap: .5rem; margin-bottom: .5rem; }
.nfai-message { margin: .5rem 0; padding: .6rem .8rem; border: 1px solid #f2c795; background: #fff7e6; border-radius: .3rem; }

.nfai-table { width: 100%; border-collapse: collapse; }
.nfai-table th, .nfai-table td { padding: .6rem .5rem; border-bottom: 1px solid #eee; text-align: left; }
.nfai-table thead th { background: var(--nfai-thead, #fafafa); }



.nfai-hidden {
  display: none !important;
}