.hostfa :where(.form-control, .form-select, .custom-select):not(.hf-input):not(.hf-select):not(.hf-textarea),
.hostfa :where(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="search"], input[type="url"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"]):not(.hf-input),
.hostfa select:not(.hf-select):not([multiple]),
.hostfa textarea:not(.hf-textarea) {
  inline-size: 100%;
  min-block-size: var(--hf-control-height);
  border: 1px solid var(--hf-color-border);
  border-radius: var(--hf-control-radius);
  background-color: var(--hf-color-surface);
  color: var(--hf-color-text);
  padding-inline: .875rem;
  font-size: var(--hf-control-font-size);
  font-weight: 400;
  line-height: 1.5;
  transition: border-color var(--hf-motion-fast) var(--hf-ease), box-shadow var(--hf-motion-fast) var(--hf-ease), background-color var(--hf-motion-fast) var(--hf-ease);
}
.hostfa select:not(.hf-select):not([multiple]) {
  block-size: var(--hf-control-height);
  appearance: none;
  -webkit-appearance: none;
  padding-inline-end: 2.5rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237b849d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left .8rem center;
  background-size: 1rem;
}
.hostfa textarea:not(.hf-textarea) { min-block-size: 7rem; padding-block: .75rem; resize: vertical; }
.hostfa :where(.form-control, .form-select, .custom-select):focus,
.hostfa :where(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="search"], input[type="url"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"]):not(.hf-input):focus,
.hostfa select:not(.hf-select):not([multiple]):focus,
.hostfa textarea:not(.hf-textarea):focus {
  outline: 0;
  border-color: var(--hf-color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--hf-color-primary) 12%, transparent);
}
.hostfa .btn:not(.hf-btn) {
  min-block-size: var(--hf-control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding-inline: 1rem;
  border-radius: var(--hf-control-radius);
  font-size: var(--hf-control-font-size);
  font-weight: var(--hf-button-weight);
  line-height: 1;
}
.hostfa :where(button, input[type="submit"], input[type="button"], input[type="reset"]):not([class*="hf-"]):not(.btn) {
  min-block-size: var(--hf-control-height);
  border-radius: var(--hf-control-radius);
  font-size: var(--hf-control-font-size);
  font-weight: var(--hf-button-weight);
}
.hostfa .alert:not(.hf-alert) { border-radius: var(--hf-control-radius); }

.hostfa :where(.form-control, .form-select, .custom-select)[aria-invalid="true"],
.hostfa :where(.form-control, .form-select, .custom-select).is-invalid,
.hostfa :where(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--hf-color-danger);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--hf-color-danger) 10%, transparent);
}
.hostfa :where(input[type="checkbox"], input[type="radio"]):not([class*="hf-"]) {
  inline-size: 1rem;
  block-size: 1rem;
  accent-color: var(--hf-color-primary);
}
.hostfa input[type="file"]:not([class*="hf-"]) {
  inline-size: 100%;
  min-block-size: var(--hf-control-height);
  padding: .35rem;
  border: 1px dashed var(--hf-color-border);
  border-radius: var(--hf-control-radius);
  background: var(--hf-color-surface);
  color: var(--hf-color-text-muted);
  font-size: var(--hf-control-font-size);
}
.hostfa input[type="file"]:not([class*="hf-"])::file-selector-button {
  min-block-size: calc(var(--hf-control-height) - .7rem);
  margin-inline-end: .6rem;
  padding-inline: .9rem;
  border: 0;
  border-radius: calc(var(--hf-control-radius) - 2px);
  background: var(--hf-color-primary-soft);
  color: var(--hf-color-primary);
  font: inherit;
  font-weight: var(--hf-button-weight);
  cursor: pointer;
}
.hostfa .btn-primary:not(.hf-btn) {
  border-color: transparent;
  background: var(--hf-gradient-primary);
  color: #fff;
  box-shadow: 0 5px 14px rgb(98 91 246 / .18);
}
.hostfa :is(.btn-secondary, .btn-default):not(.hf-btn) {
  border: 1px solid var(--hf-color-border);
  background: var(--hf-color-surface);
  color: var(--hf-color-text);
}
.hostfa .btn-danger:not(.hf-btn) {
  border-color: transparent;
  background: var(--hf-color-danger);
  color: #fff;
}

.hostfa table { max-inline-size: 100%; }

html[data-hf-navigating="true"] .hf-content { position: relative; }
html[data-hf-navigating="true"] .hf-content::before {
  content: "";
  position: fixed;
  inset-block-start: var(--hf-topbar-height);
  inset-inline-start: var(--hf-sidebar-width);
  inset-inline-end: 0;
  block-size: 3px;
  z-index: var(--hf-z-sticky);
  background: linear-gradient(90deg, transparent, var(--hf-color-primary), transparent);
  background-size: 200% 100%;
  animation: hf-nav-progress .8s linear infinite;
}
@keyframes hf-nav-progress { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@media (max-width: 767px) {
  html[data-hf-navigating="true"] .hf-content::before { inset-inline-start: 0; }
}

/* WHMCS core/module compatibility surfaces */
.hf-alert { display:flex; gap:.75rem; align-items:flex-start; padding:1rem 1.125rem; margin-block:1rem; border:1px solid var(--hf-color-border); border-radius:var(--hf-radius-md); background:var(--hf-color-surface); }
.hf-alert--success { border-color:color-mix(in srgb, var(--hf-color-success) 32%, var(--hf-color-border)); }
.hf-alert--warning { border-color:color-mix(in srgb, var(--hf-color-warning) 32%, var(--hf-color-border)); }
.hf-alert--danger { border-color:color-mix(in srgb, var(--hf-color-danger) 32%, var(--hf-color-border)); }
.hf-alert--info { border-color:color-mix(in srgb, var(--hf-color-info) 32%, var(--hf-color-border)); }
.hf-alert__message { min-inline-size:0; }
.hf-text-center { text-align:center; justify-content:center; }
.hf-core-service-item { display:grid; gap:1rem; }
.hf-core-service-item__body { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.hf-core-service-item__body p { margin:.35rem 0 0; color:var(--hf-color-text-muted); }
.hf-sitejet-panel { overflow:hidden; }
