/* RC42.12.1 · Auth ↔ Account Control Unification
 * Presentation-only convergence layer. No authority, schema or business-state semantics.
 */
:root {
  --dhv-control-h: 48px;
  --dhv-control-radius: 11px;
  --dhv-control-pad-x: 13px;
  --dhv-control-font: 15px;
  --dhv-control-border: var(--dhv-border-strong, #d0d5dd);
  --dhv-control-focus: var(--dhv-brand-action, #d82831);
  --dhv-control-ring: var(--dhv-focus-ring, rgba(216,40,49,.18));
}

/* Canonical field geometry across Auth + signed-in Account/Presence workspaces. */
.dhv-auth__form input[type="text"],
.dhv-auth__form input[type="email"],
.dhv-auth__form input[type="password"],
.dhv-auth__form input[type="tel"],
.dhv-auth__form input[type="url"],
.dhv-auth__form input[type="number"],
.dhv-auth__form input[type="search"],
.dhv-auth__form select,
.dhv-auth__search input,
.dhv-app-main input[type="text"],
.dhv-app-main input[type="email"],
.dhv-app-main input[type="password"],
.dhv-app-main input[type="tel"],
.dhv-app-main input[type="url"],
.dhv-app-main input[type="number"],
.dhv-app-main input[type="search"],
.dhv-app-main select,
.dhv-account input[type="text"],
.dhv-account input[type="email"],
.dhv-account input[type="password"],
.dhv-account input[type="tel"],
.dhv-account input[type="url"],
.dhv-account input[type="number"],
.dhv-account input[type="search"],
.dhv-account select {
  min-height: var(--dhv-control-h) !important;
  border-radius: var(--dhv-control-radius) !important;
  padding-left: var(--dhv-control-pad-x) !important;
  padding-right: var(--dhv-control-pad-x) !important;
  font-size: var(--dhv-control-font) !important;
  line-height: 1.35;
}

.dhv-auth__form textarea,
.dhv-app-main textarea,
.dhv-account textarea {
  border-radius: var(--dhv-control-radius) !important;
  padding: 11px var(--dhv-control-pad-x) !important;
  font-size: var(--dhv-control-font) !important;
  line-height: 1.55;
}

.dhv-auth__form input:focus-visible,
.dhv-auth__form select:focus-visible,
.dhv-auth__form textarea:focus-visible,
.dhv-auth__search input:focus-visible,
.dhv-app-main input:focus-visible,
.dhv-app-main select:focus-visible,
.dhv-app-main textarea:focus-visible,
.dhv-account input:focus-visible,
.dhv-account select:focus-visible,
.dhv-account textarea:focus-visible {
  outline: 0;
  border-color: var(--dhv-control-focus) !important;
  box-shadow: 0 0 0 3px var(--dhv-control-ring) !important;
}

/* Readonly remains readable; disabled is visibly non-interactive. */
.dhv-auth__form input[readonly],
.dhv-app-main input[readonly],
.dhv-account input[readonly],
.dhv-auth__form textarea[readonly],
.dhv-app-main textarea[readonly],
.dhv-account textarea[readonly] {
  background: #f9fafb !important;
  color: var(--dhv-ink, #172033) !important;
  opacity: 1 !important;
}
.dhv-auth__form :disabled,
.dhv-app-main :disabled,
.dhv-account :disabled {
  cursor: not-allowed !important;
  opacity: .58;
}

/* Password = input + one stable 72px action, including secure reset. */
.dhv-auth__password,
.dhv-auth__reset-stack,
.dhv-account__password-wrap,
.dhv-app-main .dhv-account__password-wrap {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 72px !important;
  gap: 0 !important;
  align-items: stretch !important;
}
.dhv-auth__password input,
.dhv-auth__reset-stack input,
.dhv-account__password-wrap input,
.dhv-app-main .dhv-account__password-wrap input {
  min-width: 0;
  border-radius: var(--dhv-control-radius) 0 0 var(--dhv-control-radius) !important;
}
.dhv-auth__password button,
.dhv-auth__reset-stack button,
.dhv-account__password-wrap button,
.dhv-app-main .dhv-account__password-wrap button {
  width: 72px !important;
  min-width: 72px !important;
  min-height: var(--dhv-control-h) !important;
  margin: 0 !important;
  padding: 0 10px !important;
  border: 1px solid var(--dhv-control-border) !important;
  border-left: 0 !important;
  border-radius: 0 var(--dhv-control-radius) var(--dhv-control-radius) 0 !important;
  background: var(--dhv-surface-soft, #f9fafb) !important;
  color: var(--dhv-text, #344054) !important;
  -webkit-text-fill-color: currentColor !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

/* Canonical action height and hierarchy. */
.dhv-auth__submit,
.dhv-app-btn,
.dhv-app-nav__primary,
.dhv-app-main form button[type="submit"],
.dhv-app-main .dhv-account__primary,
.dhv-account .dhv-account__primary,
.dhv-account button[type="submit"] {
  min-height: var(--dhv-control-h) !important;
  border-radius: var(--dhv-control-radius) !important;
}

/* Solid CTA contract: red surface => white foreground. */
.dhv-auth__submit,
.dhv-app-btn:not(.dhv-app-btn--secondary),
.dhv-app-nav__primary,
.dhv-app-main .dhv-account__primary,
.dhv-account .dhv-account__primary {
  color: var(--dhv-on-brand, #fff) !important;
  -webkit-text-fill-color: var(--dhv-on-brand, #fff) !important;
}

/* Secondary/quiet controls must never inherit solid-CTA white text. */
.dhv-app-btn--secondary,
.dhv-app-main .dhv-account__secondary,
.dhv-account .dhv-account__secondary,
.dhv-app-main form button.dhv-account__secondary,
.dhv-account form button.dhv-account__secondary {
  min-height: var(--dhv-control-h) !important;
  border: 1px solid var(--dhv-control-border) !important;
  border-radius: var(--dhv-control-radius) !important;
  background: #fff !important;
  color: var(--dhv-text, #344054) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Destructive actions are explicit, isolated and readable. */
.dhv-account .dhv-account__danger-button {
  min-height: var(--dhv-control-h) !important;
  border-radius: var(--dhv-control-radius) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Topbar/navigation touch controls are also part of the control system. */
.dhv-app-icon-link,
.dhv-app-icon-button,
.dhv-app-account-menu > summary,
.dhv-app-mobile-more > summary {
  min-height: var(--dhv-control-h) !important;
}

/* Submit lock is semantic rather than disabling the submitter value. */
[data-dhv-submit-locked="1"] [type="submit"][aria-busy="true"] {
  cursor: progress !important;
  pointer-events: none;
  opacity: .72;
}

@media (max-width: 780px) {
  :root { --dhv-control-font: 16px; }
  .dhv-auth { padding-left: 14px; padding-right: 14px; }
  .dhv-auth__panel { width: 100%; }
  .dhv-app-pagehead__actions .dhv-app-btn,
  .dhv-app-main .dhv-account__actions > .dhv-account__primary,
  .dhv-app-main .dhv-account__actions > .dhv-account__secondary {
    min-height: 48px !important;
  }
}

@media (max-width: 360px) {
  .dhv-auth__panel { padding-left: 16px; padding-right: 16px; }
  .dhv-auth__password,
  .dhv-auth__reset-stack,
  .dhv-account__password-wrap,
  .dhv-app-main .dhv-account__password-wrap {
    grid-template-columns: minmax(0,1fr) 68px !important;
  }
  .dhv-auth__password button,
  .dhv-auth__reset-stack button,
  .dhv-account__password-wrap button,
  .dhv-app-main .dhv-account__password-wrap button {
    width: 68px !important;
    min-width: 68px !important;
  }
}
