/* Small component styles. Layout and spacing come from Tailwind utility classes in the
   templates; these cover form controls and states that are awkward as long utility strings. */

.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

summary { cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary { list-style: none; }

.card {
  background: #fff;
  border-radius: 1rem;
  padding: 1rem;
  box-shadow: 0 1px 2px rgb(15 23 42 / 0.05);
  border: 1px solid #e2e8f0;
}

.field {
  display: block;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.5rem 0.75rem;
  font-size: 1rem; /* 16px keeps iOS Safari from zooming the page on focus */
  line-height: 1.5rem;
  color: #0f172a;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
}
.field:focus { outline: 2px solid #059669; outline-offset: 1px; border-color: #059669; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 0.75rem;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #0f172a;
  cursor: pointer;
  text-align: center;
}
.btn:hover { background: #f1f5f9; }
.btn:focus-visible { outline: 2px solid #059669; outline-offset: 2px; }
.btn-primary { background: #047857; border-color: #047857; color: #fff; }
.btn-primary:hover { background: #065f46; }
.btn-small { min-height: 2.25rem; padding: 0.25rem 0.75rem; font-size: 0.875rem; }
.btn-block { width: 100%; }

/* htmx adds .htmx-request to the element that issued the request. */
form.htmx-request { opacity: 0.6; pointer-events: none; }
form.htmx-request .busy-hint { display: block; }
.busy-hint { display: none; }

[data-dropzone].is-dragging { background: #ecfdf5; border-color: #059669; }
