/* Shared public, staff and supplier form controls, including the revenue panel. */
:root, :host {
  --tv-field-height: 46px;
  --tv-field-gap: 6px;
  --tv-field-radius: 10px;
  --tv-field-border: #a99f8e;
  --tv-field-paper: #fbf7ee;
  --tv-field-ink: #2a2117;
  --tv-field-focus: #806519;
}
.tv-form-control {
  box-sizing: border-box !important;
  min-width: 0 !important;
  max-width: 100%;
  min-height: var(--tv-field-height) !important;
  border: 1px solid var(--tv-field-border) !important;
  border-radius: var(--tv-field-radius) !important;
  background-color: var(--tv-field-paper) !important;
  color: var(--tv-field-ink) !important;
  padding: 9px 13px !important;
  font: 400 16px/1.4 'Hanken Grotesk', Arial, sans-serif !important;
}
input.tv-form-control, select.tv-form-control:not([multiple]):not([size]) { height: var(--tv-field-height) !important; }
textarea.tv-form-control { min-height: 100px !important; resize: vertical; }
label:has(.tv-form-control) { min-width: 0; }
label:has(> .tv-form-control), label:has(> .tv-password-field) { row-gap: var(--tv-field-gap) !important; }
label > .tv-form-control, .tv-password-field > .tv-form-control { width: 100%; }
label:is(.folder-label,.search-label) > .tv-form-control { letter-spacing: normal; text-transform: none; }
.tv-form-control.tv-password-input { padding-right: 48px !important; }
select.tv-form-control:not([multiple]):not([size]) { appearance: auto !important; }
.tv-form-control:focus { outline: 2px solid var(--tv-field-focus) !important; outline-offset: 1px; border-color: var(--tv-field-focus) !important; }
.tv-form-control:disabled, .tv-form-control[readonly] { background-color: #eee9de !important; }
.tv-form-control:disabled { opacity: .7; cursor: not-allowed; }

/* Keep the existing primary, secondary and destructive colour treatments. */
.tv-action {
  box-sizing: border-box;
  min-height: var(--tv-field-height) !important;
  max-width: 100%;
  padding: 9px 16px !important;
  border-radius: var(--tv-field-radius) !important;
  font: 600 15px/1.35 'Hanken Grotesk', Arial, sans-serif !important;
  cursor: pointer;
}
a.tv-action { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.tv-action:focus-visible { outline: 3px solid #a98034 !important; outline-offset: 2px; }
.tv-action:disabled { opacity:.55; cursor:not-allowed; }
.tv-icon-action {
  display:inline-grid; place-items:center;
  width:44px !important; min-width:44px; height:44px !important; min-height:44px !important;
  padding:0 !important; flex-shrink:0;
}
.tv-password-field .tv-password-toggle { right:1px; }

.tv-pagination {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:.5rem;
  margin-top:var(--tv-space-block,1rem);
  padding-top:var(--tv-space-group,.75rem);
  border-top:1px solid #d8d1c1;
}
.tv-pagination[hidden] { display:none; }
.tv-pagination > :first-child { justify-self:start; }
.tv-pagination > span { text-align:center; font-variant-numeric:tabular-nums; }
.tv-pagination > :last-child { justify-self:end; }
@media(max-width:480px) {
  .tv-pagination .tv-action { padding-inline:8px !important; }
}

/* Align text and icons consistently in links and native button elements. */
.tv-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--tv-field-gap);
  vertical-align: middle;
  text-align: center;
  overflow-wrap: anywhere;
}
.tv-action > :is(img, svg) { flex-shrink: 0; }
label:has(> .tv-form-control) {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
