/* Form controls aligned with preview/comp-inputs */

.theme-appgenie label,
.theme-appgenie legend {
  font-size: var(--fs-13);
  font-weight: 600;
  color: var(--ink-700);
}

.theme-appgenie .form-control,
.theme-appgenie .form-datetime-wrapper input,
.theme-appgenie textarea,
.theme-appgenie input.form-text:not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
.theme-appgenie input.form-search,
.theme-appgenie input[type="search"],
.theme-appgenie input.form-email,
.theme-appgenie input.form-number,
.theme-appgenie select {
  font-family: var(--font-sans);
  font-size: var(--fs-14);
  padding: 10px 14px;
  border-radius: var(--r-sm);
  border: 1.5px solid var(--ink-200);
  background-color: var(--bg-elev);
  color: var(--ink-800);
  outline: none;
  transition:
    border-color var(--t-fast) var(--ease-out),
    box-shadow var(--t-fast) var(--ease-out),
    background var(--t-fast) var(--ease-out);
}

.theme-appgenie textarea {
  resize: vertical;
}

.theme-appgenie .form-select,
.theme-appgenie select {
  min-height: 40px;
  padding-inline-end: calc(var(--sp-8));
}

.theme-appgenie textarea:focus,
.theme-appgenie input.form-text:focus-visible,
.theme-appgenie input.form-search:focus-visible,
.theme-appgenie input[type="search"]:focus-visible,
.theme-appgenie select:focus-visible {
  border-color: var(--genie-500);
  box-shadow: 0 0 0 4px var(--focus-ring);
}

.theme-appgenie .form-required .form-item__label:after,
.theme-appgenie label.form-required:after {
  color: var(--danger);
}

.theme-appgenie details {
  padding: var(--sp-4);
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  background: var(--bg-elev);
  box-shadow: var(--shadow-sm);
}

.theme-appgenie details > summary {
  font-weight: 600;
  cursor: pointer;
  color: var(--ink-800);
}

.theme-appgenie fieldset {
  margin: var(--sp-6) 0;
  padding: var(--sp-6);
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
}

.theme-appgenie .fieldset-legend span {
  font-family: var(--font-display);
  font-weight: 600;
}

.theme-appgenie .description,
.theme-appgenie .form-item__description {
  font-size: var(--fs-12);
  color: var(--fg-2);
  margin-block-start: var(--sp-2);
}

.theme-appgenie .form-actions {
  padding-block-start: var(--sp-6);
}

.theme-appgenie form.search-form,
.theme-appgenie .search-form {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--sp-2);
}

.theme-appgenie form.search-form .form-item,
.theme-appgenie .search-form .form-item {
  flex: 1 1 12rem;
  margin-block: 0;
}

.theme-appgenie form.search-form .form-item label,
.theme-appgenie .search-form .form-item label {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.theme-appgenie form.search-form input.form-submit,
.theme-appgenie .search-form .form-submit {
  flex: 0 0 auto;
  background: var(--genie-500);
  color: #fff;
  border-radius: var(--r-md);
  padding: 10px 16px;
  font-weight: 600;
}

.theme-appgenie form.search-form input.form-submit:hover,
.theme-appgenie .search-form .form-submit:hover {
  background: var(--genie-600);
}

.theme-appgenie .messages + .messages {
  margin-block-start: var(--sp-2);
}

/* Webform composite sections — vertical rhythm between titled blocks */
.theme-appgenie section.webform-section:first-of-type {
  margin-block-start: var(--sp-8);
}

.theme-appgenie section.webform-section + section.webform-section {
  margin-block-start: var(--sp-10);
  padding-block-start: var(--sp-8);
}

.theme-appgenie section.webform-section .webform-section-title {
  margin-block: 0 var(--sp-5);
}

/*
 * Candidate onboarding — résumé PDF + pasted text (job_candidate_resume_onboarding).
 * Groups managed-file controls; full-width textarea; explicit primary submit.
 */
html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-pdf {
  margin-block: var(--sp-6);
  padding: var(--sp-5);
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  background: var(--bg-elev);
  box-shadow: var(--shadow-sm);
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-pdf .form-item__label,
html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-pdf label.form-item__label {
  display: block;
  margin-block-end: var(--sp-3);
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-pdf .js-form-managed-file {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-pdf input[type="file"] {
  flex: 1 1 12rem;
  min-inline-size: 0;
  font-size: var(--fs-13);
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-pdf .js-form-managed-file input[type="submit"].form-submit {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: var(--r-md);
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--fs-13);
  line-height: 1;
  cursor: pointer;
  border: none;
  background: var(--bg-elev);
  color: var(--ink-800);
  box-shadow: inset 0 0 0 1.5px var(--ink-200);
  transition:
    box-shadow var(--t-fast) var(--ease-out),
    background var(--t-fast) var(--ease-out);
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-pdf .js-form-managed-file input[type="submit"].form-submit:hover:not(:disabled) {
  box-shadow: inset 0 0 0 1.5px var(--ink-300);
  background: var(--bg);
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-text {
  max-width: 100%;
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-item-resume-text textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-block-size: 17rem;
}

html.theme-appgenie .job-candidate-resume-onboarding-form .form-actions .form-submit.button--primary {
  margin-block-start: var(--sp-2);
}
