/* recruit-modal.css — Bitengda Modal Design System V1 (Batch 1)
 *
 * Tokens and component styles for the approved Batch-1 dialogs only.
 * Loaded AFTER styles.css / recruit-ds.css. Do not edit styles.css or admin.js.
 *
 * Scope rules (mandatory):
 *   - Selectors always name a Batch-1 component (batch-delete / employee-type /
 *     store / note / agent-note / entry-date-confirm-backdrop / #copyInviteLinkBtn).
 *   - Never bare .modal / .detail-modal / .hidden / button / input / select.
 *   - Never change display / visibility / z-index of backdrops (JS owns them).
 *   - Never restyle cost-config-confirm-modal except when it sits inside
 *     .entry-date-confirm-backdrop (payroll/cost-config dialogs stay untouched).
 *
 * Token reference: see /workspace/btd_modal_ds_v1/docs/MODAL_TOKENS_V1.md
 * Catalog:          see /workspace/btd_modal_ds_v1/docs/MODAL_COMPONENT_CATALOG_V1.md
 */

body.admin-visual {
  --btd-modal-bg: #FFFFFF;
  --btd-modal-text: #111111;
  --btd-modal-text-secondary: #3C3C43;
  --btd-modal-text-muted: #6E6E73;
  --btd-modal-border: #E5E5E5;
  --btd-modal-surface: #F5F5F7;
  --btd-modal-primary: #111111;
  --btd-modal-danger: #B42318;
  --btd-modal-danger-soft: #FEF3F2;
  --btd-modal-warning: #B54708;
  --btd-modal-warning-bg: #FFF6E8;
  --btd-modal-radius: 12px;
  --btd-modal-card-radius: 10px;
  --btd-modal-button-radius: 8px;
  --btd-modal-button-height: 36px;
  --btd-modal-button-min-width: 88px;
  --btd-modal-gap: 8px;
  --btd-modal-max-height: 85vh;
  --btd-modal-shadow: 0 12px 40px rgba(17, 17, 17, 0.12);
}

/* -------------------------------------------------------------------------- */
/* Shared Batch-1 shell (component-scoped, not bare .detail-modal)             */
/* -------------------------------------------------------------------------- */

body.admin-visual :is(
  .batch-delete-confirm-modal,
  .employee-type-confirm-modal,
  .store-confirm-modal,
  .note-confirm-modal,
  .agent-note-confirm-modal,
  .entry-date-confirm-backdrop .cost-config-confirm-modal,
  .revocation-modal
) {
  border: 1px solid var(--btd-modal-border);
  border-radius: var(--btd-modal-radius);
  background: var(--btd-modal-bg);
  box-shadow: var(--btd-modal-shadow);
  max-height: var(--btd-modal-max-height);
  color: var(--btd-modal-text);
}

body.admin-visual :is(
  .batch-delete-confirm-modal__header,
  .employee-type-confirm-modal__header,
  .store-confirm-modal__header,
  .note-confirm-modal__header,
  .agent-note-confirm-modal__header,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__header
) {
  padding: 16px 18px;
  border-bottom: 1px solid var(--btd-modal-border);
  background: var(--btd-modal-bg);
}

body.admin-visual :is(
  .batch-delete-confirm-modal__title-wrap h2,
  .employee-type-confirm-modal__title-wrap h2,
  .store-confirm-modal__title-wrap h2,
  .note-confirm-modal__title-wrap h2,
  .agent-note-confirm-modal__title-wrap h2,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__title-wrap h2
) {
  margin: 0;
  color: var(--btd-modal-text);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.35;
}

body.admin-visual :is(
  .batch-delete-confirm-modal__body,
  .employee-type-confirm-modal__body,
  .store-confirm-modal__body,
  .note-confirm-modal__body,
  .agent-note-confirm-modal__body,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__body
) {
  padding: 16px 18px;
  color: var(--btd-modal-text-secondary);
  font-size: 14px;
  line-height: 1.55;
  overflow: auto;
}

body.admin-visual :is(
  .batch-delete-confirm-modal__footer,
  .employee-type-confirm-modal__footer,
  .store-confirm-modal__footer,
  .note-confirm-modal__footer,
  .agent-note-confirm-modal__footer,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__footer
) {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--btd-modal-gap);
  padding: 14px 18px;
  border-top: 1px solid var(--btd-modal-border);
  background: var(--btd-modal-bg);
}

body.admin-visual :is(
  .batch-delete-confirm-modal__close,
  .employee-type-confirm-modal__close,
  .store-confirm-modal__close,
  .note-confirm-modal__close,
  .agent-note-confirm-modal__close,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__close
) {
  width: 32px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--btd-modal-button-radius);
  background: transparent;
  color: var(--btd-modal-text-muted);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

body.admin-visual :is(
  .batch-delete-confirm-modal__close,
  .employee-type-confirm-modal__close,
  .store-confirm-modal__close,
  .note-confirm-modal__close,
  .agent-note-confirm-modal__close,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__close
):hover:not(:disabled) {
  border-color: var(--btd-modal-border);
  background: var(--btd-modal-surface);
  color: var(--btd-modal-text);
}

/* Secondary / cancel */
body.admin-visual :is(
  .batch-delete-confirm-modal__cancel,
  .employee-type-confirm-modal__cancel,
  .store-confirm-modal__cancel,
  .note-confirm-modal__cancel,
  .agent-note-confirm-modal__cancel,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__cancel
) {
  min-width: var(--btd-modal-button-min-width);
  box-sizing: border-box;
  min-height: var(--btd-modal-button-height);
  height: var(--btd-modal-button-height);
  padding: 0 16px;
  border: 1px solid var(--btd-modal-border);
  border-radius: var(--btd-modal-button-radius);
  background: var(--btd-modal-bg);
  color: var(--btd-modal-text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
}

body.admin-visual :is(
  .batch-delete-confirm-modal__cancel,
  .employee-type-confirm-modal__cancel,
  .store-confirm-modal__cancel,
  .note-confirm-modal__cancel,
  .agent-note-confirm-modal__cancel,
  .entry-date-confirm-backdrop .cost-config-confirm-modal__cancel
):hover:not(:disabled) {
  background: var(--btd-modal-surface);
  border-color: #D2D2D7;
  color: var(--btd-modal-text);
}

/* Primary (black) — normal confirm / abandon / entry-date confirm / warning-confirm */
body.admin-visual :is(
  .employee-type-confirm-modal__confirm--warning,
  .store-confirm-modal__confirm--warning,
  .note-confirm-modal__confirm--warning,
  .agent-note-confirm-modal__confirm--warning,
  .batch-delete-confirm-modal__submit[data-batch-abandon-confirm],
  .entry-date-confirm-backdrop .cost-config-confirm-modal__confirm
) {
  min-width: var(--btd-modal-button-min-width);
  box-sizing: border-box;
  min-height: var(--btd-modal-button-height);
  height: var(--btd-modal-button-height);
  padding: 0 16px;
  border: 1px solid var(--btd-modal-primary);
  border-radius: var(--btd-modal-button-radius);
  background: var(--btd-modal-primary);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
}

body.admin-visual :is(
  .employee-type-confirm-modal__confirm--warning,
  .store-confirm-modal__confirm--warning,
  .note-confirm-modal__confirm--warning,
  .agent-note-confirm-modal__confirm--warning,
  .batch-delete-confirm-modal__submit[data-batch-abandon-confirm],
  .entry-date-confirm-backdrop .cost-config-confirm-modal__confirm
):hover:not(:disabled) {
  background: #2C2C2E;
  border-color: #2C2C2E;
  color: #FFFFFF;
}

/* Danger (red) — batch delete submit + clear confirms */
body.admin-visual :is(
  .batch-delete-confirm-modal__submit[data-batch-delete-confirm],
  .employee-type-confirm-modal__confirm--danger,
  .store-confirm-modal__confirm--danger,
  .note-confirm-modal__confirm--danger,
  .agent-note-confirm-modal__confirm--danger
) {
  min-width: var(--btd-modal-button-min-width);
  box-sizing: border-box;
  min-height: var(--btd-modal-button-height);
  height: var(--btd-modal-button-height);
  padding: 0 16px;
  border: 1px solid var(--btd-modal-danger);
  border-radius: var(--btd-modal-button-radius);
  background: var(--btd-modal-danger);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
}

body.admin-visual :is(
  .batch-delete-confirm-modal__submit[data-batch-delete-confirm],
  .employee-type-confirm-modal__confirm--danger,
  .store-confirm-modal__confirm--danger,
  .note-confirm-modal__confirm--danger,
  .agent-note-confirm-modal__confirm--danger
):hover:not(:disabled) {
  background: #912018;
  border-color: #912018;
  color: #FFFFFF;
}

body.admin-visual .batch-delete-confirm-modal__submit[data-batch-delete-confirm]:disabled {
  background: #F2B8B5;
  border-color: #F2B8B5;
  color: #FFFFFF;
  cursor: not-allowed;
  opacity: 1;
}

/* -------------------------------------------------------------------------- */
/* A01 / A02 — batch delete + batch abandon (DOM attributes distinguish them) */
/* -------------------------------------------------------------------------- */

body.admin-visual .batch-delete-confirm-modal {
  width: min(480px, calc(100vw - 32px));
}

body.admin-visual .batch-delete-confirm-modal__icon {
  background: var(--btd-modal-danger-soft);
  color: var(--btd-modal-danger);
}

body.admin-visual .batch-delete-confirm-modal__summary strong {
  color: var(--btd-modal-danger);
}

body.admin-visual .batch-delete-confirm-modal__owner-card,
body.admin-visual .batch-delete-confirm-modal__people {
  border: 1px solid var(--btd-modal-border);
  border-radius: var(--btd-modal-card-radius);
  background: var(--btd-modal-surface);
}

body.admin-visual .batch-delete-confirm-modal__owner-card {
  padding: 10px 12px;
}

body.admin-visual .batch-delete-confirm-modal__people {
  padding: 10px 12px;
  margin-bottom: 14px;
}

body.admin-visual .batch-delete-confirm-modal__chips {
  max-height: 120px;
  overflow: auto;
}

body.admin-visual .batch-delete-confirm-modal__chip {
  background: var(--btd-modal-bg);
  color: var(--btd-modal-text-secondary);
  border: 1px solid var(--btd-modal-border);
}

body.admin-visual .batch-delete-confirm-modal__warning {
  margin-bottom: 14px;
  padding: 10px 12px;
  border-left: 3px solid var(--btd-modal-danger);
  border-radius: 6px;
  background: var(--btd-modal-danger-soft);
  color: var(--btd-modal-danger);
  font-size: 13px;
  line-height: 1.5;
}

body.admin-visual .batch-delete-confirm-modal__input-field {
  height: 40px;
  border: 1px solid var(--btd-modal-border);
  border-radius: var(--btd-modal-button-radius);
  background: var(--btd-modal-bg);
  color: var(--btd-modal-text);
}

body.admin-visual .batch-delete-confirm-modal__input-field:focus {
  outline: none;
  border-color: #A1A1A6;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.08);
}

body.admin-visual .batch-delete-confirm-modal__input-field.is-valid {
  border-color: #34C759;
}

/* Abandon keeps the shared modal shell but uses a warning (not danger) notice
 * and a BLACK confirm via [data-batch-abandon-confirm] above. */
body.admin-visual .batch-delete-confirm-modal[aria-label="批量放弃候选人"] .batch-delete-confirm-modal__icon {
  background: var(--btd-modal-warning-bg);
  color: var(--btd-modal-warning);
}

body.admin-visual .batch-delete-confirm-modal[aria-label="批量放弃候选人"] .batch-delete-confirm-modal__warning {
  border-left-color: var(--btd-modal-warning);
  background: var(--btd-modal-warning-bg);
  color: var(--btd-modal-warning);
}

body.admin-visual .batch-delete-confirm-modal[aria-label="批量放弃候选人"] .batch-delete-confirm-modal__summary strong {
  color: var(--btd-modal-text);
}

/* -------------------------------------------------------------------------- */
/* A03 / A04 / A05 / A05-AGENT — important business change confirms            */
/* -------------------------------------------------------------------------- */

body.admin-visual :is(
  .employee-type-confirm-modal,
  .store-confirm-modal,
  .note-confirm-modal,
  .agent-note-confirm-modal
) {
  width: min(560px, calc(100vw - 32px));
}

body.admin-visual :is(
  .employee-type-confirm-modal__message,
  .store-confirm-modal__message,
  .note-confirm-modal__message,
  .agent-note-confirm-modal__message
) {
  margin: 0 0 14px;
  color: var(--btd-modal-text-secondary);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  word-break: break-word;
}

/* Orange risk notice (kept) for warning-type dialogs */
body.admin-visual :is(
  .employee-type-confirm-modal--warning .employee-type-confirm-modal__message,
  .store-confirm-modal--warning .store-confirm-modal__message,
  .note-confirm-modal--warning .note-confirm-modal__message,
  .agent-note-confirm-modal--warning .agent-note-confirm-modal__message
) {
  padding: 10px 12px;
  border-left: 3px solid var(--btd-modal-warning);
  border-radius: 6px;
  background: var(--btd-modal-warning-bg);
  color: var(--btd-modal-warning);
}

body.admin-visual :is(
  .employee-type-confirm-modal--danger .employee-type-confirm-modal__message,
  .store-confirm-modal--danger .store-confirm-modal__message,
  .note-confirm-modal--danger .note-confirm-modal__message,
  .agent-note-confirm-modal--danger .agent-note-confirm-modal__message
) {
  padding: 10px 12px;
  border-left: 3px solid var(--btd-modal-danger);
  border-radius: 6px;
  background: var(--btd-modal-danger-soft);
  color: var(--btd-modal-danger);
}

body.admin-visual :is(
  .employee-type-confirm-modal__icon--warning,
  .store-confirm-modal__icon--warning,
  .note-confirm-modal__icon--warning,
  .agent-note-confirm-modal__icon--warning
) {
  background: var(--btd-modal-warning-bg);
  color: var(--btd-modal-warning);
  border: 1px solid #F7D9A8;
}

body.admin-visual :is(
  .employee-type-confirm-modal__icon--danger,
  .store-confirm-modal__icon--danger,
  .note-confirm-modal__icon--danger,
  .agent-note-confirm-modal__icon--danger
) {
  background: var(--btd-modal-danger-soft);
  color: var(--btd-modal-danger);
  border: 1px solid #F2B8B5;
}

/* Unified before/after container */
body.admin-visual :is(
  .employee-type-confirm-modal__block,
  .store-confirm-modal__block,
  .note-confirm-modal__block,
  .agent-note-confirm-modal__block
) {
  margin-bottom: 10px;
  padding: 12px 14px;
  border: 1px solid var(--btd-modal-border);
  border-radius: var(--btd-modal-card-radius);
  background: var(--btd-modal-surface);
}

body.admin-visual :is(
  .employee-type-confirm-modal__block--new,
  .store-confirm-modal__block--new,
  .note-confirm-modal__block--new,
  .agent-note-confirm-modal__block--new
) {
  border-color: #D2D2D7;
  background: #FAFAFA;
}

body.admin-visual :is(
  .employee-type-confirm-modal--danger .employee-type-confirm-modal__block,
  .store-confirm-modal--danger .store-confirm-modal__block,
  .note-confirm-modal--danger .note-confirm-modal__block,
  .agent-note-confirm-modal--danger .agent-note-confirm-modal__block
) {
  border-color: #F2B8B5;
  background: #FFF8F7;
}

body.admin-visual :is(
  .employee-type-confirm-modal__block-label,
  .store-confirm-modal__block-label,
  .note-confirm-modal__block-label,
  .agent-note-confirm-modal__block-label
) {
  margin-bottom: 6px;
  color: var(--btd-modal-text-muted);
  font-size: 12px;
  font-weight: 600;
}

body.admin-visual :is(
  .employee-type-confirm-modal__block-value,
  .store-confirm-modal__block-value,
  .note-confirm-modal__block-value,
  .agent-note-confirm-modal__block-value
) {
  color: var(--btd-modal-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.admin-visual :is(
  .note-confirm-modal__block-value,
  .agent-note-confirm-modal__block-value
) {
  max-height: 180px;
  overflow-y: auto;
}

body.admin-visual .store-confirm-modal__block-value {
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}

/* -------------------------------------------------------------------------- */

/* Beat the inline style on the A06 confirm button
 * (admin.js showEntryDateChangeConfirmModal: style="background:#111827;...").
 * Only this dialog needs !important; payroll cost-config stays untouched. */
body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal__confirm {
  background: var(--btd-modal-primary) !important;
  border-color: var(--btd-modal-primary) !important;
  color: #FFFFFF !important;
}
body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal__confirm:hover:not(:disabled) {
  background: #2C2C2E !important;
  border-color: #2C2C2E !important;
  color: #FFFFFF !important;
}

/* A06 — entry-date change (scoped; do NOT touch bare cost-config payroll)    */
/* -------------------------------------------------------------------------- */

body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal {
  width: min(440px, calc(100vw - 32px));
}

body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal__details {
  display: grid;
  gap: var(--btd-modal-gap);
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid var(--btd-modal-border);
  border-radius: var(--btd-modal-card-radius);
  background: var(--btd-modal-surface);
}

/* Root cause of 5-char label wrap: fixed 64px track. Fix ONLY here. */
body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal__detail-row {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal__detail-row dt {
  color: var(--btd-modal-text-muted);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal__detail-row dd {
  margin: 0;
  color: var(--btd-modal-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  word-break: break-word;
}

body.admin-visual .entry-date-confirm-backdrop .cost-config-confirm-modal__message {
  margin: 0;
  color: var(--btd-modal-text-secondary);
  font-size: 13px;
  line-height: 1.55;
}

/* -------------------------------------------------------------------------- */
/* #copyInviteLinkBtn — secondary outline (not primary black)                 */
/* -------------------------------------------------------------------------- */

/* Colours only: size/spacing stay identical to neighbouring toolbar buttons. */
body.admin-visual #recruitmentView #copyInviteLinkBtn.toolbar-btn-view {
  border: 1px solid var(--btd-modal-border);
  background: var(--btd-modal-bg);
  color: var(--btd-modal-text);
  box-shadow: none;
}

body.admin-visual #recruitmentView #copyInviteLinkBtn.toolbar-btn-view:hover:not(:disabled) {
  border-color: #D2D2D7;
  background: var(--btd-modal-surface);
  color: var(--btd-modal-text);
  box-shadow: none;
}

body.admin-visual #recruitmentView #copyInviteLinkBtn.toolbar-btn-view:focus-visible {
  outline: 2px solid rgba(17, 17, 17, 0.35);
  outline-offset: 2px;
}

/* Keep .hidden / display:none behaviour owned by admin.js — do not restyle. */

/* -------------------------------------------------------------------------- */
/* Narrow screens                                                             */
/* -------------------------------------------------------------------------- */

@media (max-width: 560px) {
  body.admin-visual :is(
    .batch-delete-confirm-modal,
    .employee-type-confirm-modal,
    .store-confirm-modal,
    .note-confirm-modal,
    .agent-note-confirm-modal,
    .entry-date-confirm-backdrop .cost-config-confirm-modal
  ) {
    width: calc(100vw - 24px);
  }

  body.admin-visual :is(
    .batch-delete-confirm-modal__footer,
    .employee-type-confirm-modal__footer,
    .store-confirm-modal__footer,
    .note-confirm-modal__footer,
    .agent-note-confirm-modal__footer,
    .entry-date-confirm-backdrop .cost-config-confirm-modal__footer
  ) {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  body.admin-visual :is(
    .batch-delete-confirm-modal__cancel,
    .batch-delete-confirm-modal__submit,
    .employee-type-confirm-modal__cancel,
    .employee-type-confirm-modal__confirm,
    .store-confirm-modal__cancel,
    .store-confirm-modal__confirm,
    .note-confirm-modal__cancel,
    .note-confirm-modal__confirm,
    .agent-note-confirm-modal__cancel,
    .agent-note-confirm-modal__confirm,
    .entry-date-confirm-backdrop .cost-config-confirm-modal__cancel,
    .entry-date-confirm-backdrop .cost-config-confirm-modal__confirm
  ) {
    width: 100%;
  }
}

/* -------------------------------------------------------------------------- */
/* Batch 2: component-only important declarations override legacy form rules.
 * Hidden field state remains owned by JS; its exact CSS safeguard beats legacy flex.
 * The V1.0 backdrop palette is retained.
 * Compact mobile form actions retain DOM order and fit side by side. */
/* BTD Modal Design System V1.1-Candidate — Form Modal: 新增人员 (.add-applicant-modal) */
/* -------------------------------------------------------------------------- */

body.admin-visual .add-applicant-backdrop {
  padding: 20px !important;
  box-sizing: border-box !important;
}

body.admin-visual .add-applicant-modal {
  width: min(560px, calc(100vw - 32px)) !important;
  max-width: 560px !important;
  max-height: var(--btd-modal-max-height, 85vh) !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  overflow: hidden !important;
  border: 1px solid var(--btd-modal-border, #E5E5E5) !important;
  border-radius: var(--btd-modal-radius, 12px) !important;
  background: var(--btd-modal-bg, #FFFFFF) !important;
  box-shadow: var(--btd-modal-shadow, 0 12px 40px rgba(17, 17, 17, 0.12)) !important;
  color: var(--btd-modal-text, #111111) !important;
  box-sizing: border-box !important;
}

body.admin-visual .add-applicant-modal .detail-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  min-height: 52px !important;
  height: 52px !important;
  padding: 16px 18px !important;
  border-bottom: 1px solid var(--btd-modal-border, #E5E5E5) !important;
  background: var(--btd-modal-bg, #FFFFFF) !important;
  box-sizing: border-box !important;
}

body.admin-visual .add-applicant-modal .detail-head h2 {
  margin: 0 !important;
  color: var(--btd-modal-text, #111111) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.01em !important;
}

body.admin-visual .add-applicant-modal .detail-close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid transparent !important;
  border-radius: var(--btd-modal-button-radius, 8px) !important;
  background: transparent !important;
  color: var(--btd-modal-text-muted, #6E6E73) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;
}

body.admin-visual .add-applicant-modal .detail-close:hover {
  background: var(--btd-modal-surface, #F5F5F7) !important;
  border-color: var(--btd-modal-border, #E5E5E5) !important;
  color: var(--btd-modal-text, #111111) !important;
}

body.admin-visual .add-applicant-modal .add-applicant-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px 12px !important;
  padding: 18px 18px !important;
  margin: 0 !important;
  overflow-y: auto !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
}

body.admin-visual .add-applicant-modal .add-applicant-grid label:not(.hidden):not([hidden]) {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 6px !important;
  margin: 0 !important;
  color: var(--btd-modal-text-muted, #6E6E73) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

body.admin-visual .add-applicant-modal .add-applicant-grid :is(input, select, textarea) {
  width: 100% !important;
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  border: 1px solid var(--btd-modal-border, #E5E5E5) !important;
  border-radius: var(--btd-modal-button-radius, 8px) !important;
  background: #FFFFFF !important;
  color: var(--btd-modal-text, #111111) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  line-height: 36px !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

body.admin-visual .add-applicant-modal .add-applicant-grid textarea {
  height: 76px !important;
  min-height: 76px !important;
  max-height: none !important;
  padding: 8px 12px !important;
  line-height: 1.45 !important;
  resize: vertical !important;
}

body.admin-visual .add-applicant-modal .add-applicant-grid :is(input, textarea)::placeholder {
  color: #A1A1A6 !important;
  opacity: 1 !important;
}

body.admin-visual .add-applicant-modal .add-applicant-grid :is(input, select, textarea):hover {
  border-color: #D2D2D7 !important;
}

body.admin-visual .add-applicant-modal .add-applicant-grid :is(input, select, textarea):focus {
  outline: none !important;
  border-color: #A1A1A6 !important;
  box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.08) !important;
}

body.admin-visual .add-applicant-modal .add-applicant-note,
body.admin-visual .add-applicant-modal #addOnboardDateField {
  grid-column: 1 / -1 !important;
}

body.admin-visual .add-applicant-modal #addOnboardDateField.hidden {
  display: none !important;
}

body.admin-visual .add-applicant-modal .detail-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: var(--btd-modal-gap, 8px) !important;
  min-height: 58px !important;
  height: 58px !important;
  padding: 12px 18px !important;
  border-top: 1px solid var(--btd-modal-border, #E5E5E5) !important;
  border-bottom: 0 !important;
  background: var(--btd-modal-bg, #FFFFFF) !important;
  box-sizing: border-box !important;
}

body.admin-visual .add-applicant-modal .detail-actions button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: var(--btd-modal-button-min-width, 88px) !important;
  height: var(--btd-modal-button-height, 36px) !important;
  min-height: var(--btd-modal-button-height, 36px) !important;
  margin: 0 !important;
  padding: 0 18px !important;
  border-radius: var(--btd-modal-button-radius, 8px) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;
  box-sizing: border-box !important;
}

body.admin-visual .add-applicant-modal .detail-actions :is(.secondary, button.secondary, [data-cancel]) {
  border: 1px solid var(--btd-modal-border, #E5E5E5) !important;
  background: var(--btd-modal-bg, #FFFFFF) !important;
  color: var(--btd-modal-text, #111111) !important;
}

body.admin-visual .add-applicant-modal .detail-actions :is(.secondary, button.secondary, [data-cancel]):hover {
  background: var(--btd-modal-surface, #F5F5F7) !important;
  border-color: #D2D2D7 !important;
  color: var(--btd-modal-text, #111111) !important;
}

body.admin-visual .add-applicant-modal .detail-actions :is(.primary, button.primary, [type="submit"]) {
  border: 1px solid var(--btd-modal-primary, #111111) !important;
  background: var(--btd-modal-primary, #111111) !important;
  color: #FFFFFF !important;
}

body.admin-visual .add-applicant-modal .detail-actions :is(.primary, button.primary, [type="submit"]):hover {
  background: #2C2C2E !important;
  border-color: #2C2C2E !important;
  color: #FFFFFF !important;
}

body.admin-visual .add-applicant-modal .detail-actions :is(.primary, button.primary, [type="submit"]):disabled {
  background: #E5E5E5 !important;
  border-color: #E5E5E5 !important;
  color: #A1A1A6 !important;
  cursor: not-allowed !important;
  opacity: 1 !important;
}

@media (max-width: 560px) {
  body.admin-visual .add-applicant-modal {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 32px) !important;
  }

  body.admin-visual .add-applicant-modal .add-applicant-grid {
    grid-template-columns: 1fr !important;
    padding: 14px 14px !important;
    gap: 12px !important;
  }

  body.admin-visual .add-applicant-modal .detail-head,
  body.admin-visual .add-applicant-modal .detail-actions {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  body.admin-visual .add-applicant-modal .detail-actions {
    flex-direction: row !important;
    align-items: center !important;
    height: 58px !important;
    min-height: 58px !important;
    gap: var(--btd-modal-gap, 8px) !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  body.admin-visual .add-applicant-modal .detail-actions button {
    width: auto !important;
    min-width: var(--btd-modal-button-min-width, 88px) !important;
    height: var(--btd-modal-button-height, 36px) !important;
    min-height: var(--btd-modal-button-height, 36px) !important;
  }
}


/* Small-screen form-only containment. The existing body-mounted onboard picker
 * otherwise extends below the viewport; its DOM and date events stay unchanged. */
@media (max-width: 560px) {
  body.admin-visual .add-applicant-backdrop { padding: 12px !important; }
  body.admin-visual:has(.add-applicant-modal) > .date-picker-popup {
    position: fixed;
    top: auto !important;
    bottom: 16px;
    left: max(12px, calc((100vw - 240px) / 2)) !important;
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
  }
}

/* -------------------------------------------------------------------------- */
/* WEIHAI_BATCH_SYNC_APPLE_X_V1 - component-scoped visual alignment           */
/* Scope: close icon, sync-rule radios, footer actions. DOM/logic untouched.  */
/* Reference: docs/design-system/modal/v1.0/MODAL_DESIGN_SYSTEM_V1.md         */
/* -------------------------------------------------------------------------- */

body.admin-visual .weihai-batch-modal .detail-close {
  display: inline-flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--btd-modal-button-radius, 8px);
  background: transparent;
  color: var(--btd-modal-text-muted, #6E6E73);
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

body.admin-visual .weihai-batch-modal .detail-close:hover {
  border-color: var(--btd-modal-border, #E5E5E5);
  background: var(--btd-modal-surface, #F5F5F7);
  color: var(--btd-modal-text, #111111);
}

body.admin-visual .weihai-batch-modal .detail-close:focus-visible {
  outline: 2px solid rgba(17, 17, 17, 0.28);
  outline-offset: 2px;
}

body.admin-visual .weihai-batch-modal .weihai-batch-scope label {
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--btd-modal-border, #E5E5E5);
  border-radius: var(--btd-modal-card-radius, 10px);
  background: var(--btd-modal-bg, #FFFFFF);
  color: var(--btd-modal-text, #111111);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

body.admin-visual .weihai-batch-modal .weihai-batch-scope label:hover {
  border-color: #D2D2D7;
  background: #FAFAFA;
}

body.admin-visual .weihai-batch-modal .weihai-batch-scope label:has(input:checked) {
  border-color: #D2D2D7;
  background: var(--btd-modal-surface, #F5F5F7);
}

body.admin-visual .weihai-batch-modal .weihai-batch-scope input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  display: inline-block;
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  margin: 2px 0 0;
  padding: 0;
  border: 1px solid #C7C7CC;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

body.admin-visual .weihai-batch-modal .weihai-batch-scope input[type="radio"]:checked {
  border-color: var(--btd-modal-primary, #111111);
  background: var(--btd-modal-primary, #111111);
  box-shadow: inset 0 0 0 3px #FFFFFF;
}

body.admin-visual .weihai-batch-modal .weihai-batch-scope input[type="radio"]:focus-visible {
  outline: 2px solid rgba(17, 17, 17, 0.28);
  outline-offset: 2px;
}

body.admin-visual .weihai-batch-modal .weihai-batch-scope small {
  grid-column: 2;
  color: var(--btd-modal-text-muted, #6E6E73);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}

body.admin-visual .weihai-batch-modal .detail-actions {
  gap: var(--btd-modal-gap, 8px) !important;
  padding: 14px 18px !important;
}

body.admin-visual .weihai-batch-modal .detail-actions button {
  box-sizing: border-box !important;
  width: auto !important;
  min-width: var(--btd-modal-button-min-width, 88px) !important;
  height: var(--btd-modal-button-height, 36px) !important;
  min-height: var(--btd-modal-button-height, 36px) !important;
  padding: 0 16px !important;
  border-radius: var(--btd-modal-button-radius, 8px) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  box-shadow: none !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

body.admin-visual .weihai-batch-modal .detail-actions .secondary {
  border: 1px solid var(--btd-modal-border, #E5E5E5) !important;
  background: var(--btd-modal-bg, #FFFFFF) !important;
  color: var(--btd-modal-text, #111111) !important;
}

body.admin-visual .weihai-batch-modal .detail-actions .secondary:hover:not(:disabled) {
  border-color: #D2D2D7 !important;
  background: var(--btd-modal-surface, #F5F5F7) !important;
  color: var(--btd-modal-text, #111111) !important;
}

body.admin-visual .weihai-batch-modal .detail-actions .secondary:active:not(:disabled) {
  border-color: #C7C7CC !important;
  background: #EDEDF0 !important;
  color: var(--btd-modal-text, #111111) !important;
}

body.admin-visual .weihai-batch-modal .detail-actions .primary {
  border: 1px solid var(--btd-modal-primary, #111111) !important;
  background: var(--btd-modal-primary, #111111) !important;
  color: #FFFFFF !important;
  opacity: 1 !important;
}

body.admin-visual .weihai-batch-modal .detail-actions .primary:hover:not(:disabled) {
  border-color: #2C2C2E !important;
  background: #2C2C2E !important;
  color: #FFFFFF !important;
}

body.admin-visual .weihai-batch-modal .detail-actions .primary:active:not(:disabled) {
  border-color: #000000 !important;
  background: #000000 !important;
  color: #FFFFFF !important;
}

body.admin-visual .weihai-batch-modal .detail-actions .primary:focus-visible,
body.admin-visual .weihai-batch-modal .detail-actions .secondary:focus-visible {
  outline: 2px solid rgba(17, 17, 17, 0.28) !important;
  outline-offset: 2px !important;
}

body.admin-visual .weihai-batch-modal .detail-actions .primary:disabled,
body.admin-visual .weihai-batch-modal .detail-actions .primary.is-empty {
  border-color: var(--btd-modal-border, #E5E5E5) !important;
  background: var(--btd-modal-surface, #F5F5F7) !important;
  color: var(--btd-modal-text-muted, #6E6E73) !important;
  opacity: 1 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

@media (max-width: 560px) {
  body.admin-visual .weihai-batch-modal .detail-actions {
    flex-direction: column-reverse !important;
    align-items: stretch !important;
  }

  body.admin-visual .weihai-batch-modal .detail-actions button {
    width: 100% !important;
  }
}

/* Revocation Modal Apple X Overrides */
body.admin-visual .revocation-backdrop {
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
body.admin-visual .revocation-modal .detail-head h2 { color: var(--btd-modal-text); }
body.admin-visual .revocation-modal .detail-close {
  background: transparent;
  color: var(--btd-modal-text-muted);
}
body.admin-visual .revocation-modal .detail-close:hover {
  background: var(--btd-modal-surface);
  color: var(--btd-modal-text);
}
body.admin-visual .revocation-modal .id-card-actions {
  background: var(--btd-modal-surface);
  border-top: 1px solid var(--btd-modal-border);
}
body.admin-visual .revocation-modal .id-card-actions button.secondary {
  background: #FFFFFF;
  color: var(--btd-modal-text);
  border: 1px solid var(--btd-modal-border);
}
body.admin-visual .revocation-modal .id-card-actions button.primary.revocation-confirm {
  background: var(--btd-modal-danger);
  color: #FFFFFF;
}

/* Apple X Overrides - Brute Force (FIX-04) */
body.admin-visual .revocation-backdrop {
  background-color: rgba(0, 0, 0, 0.25) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}
body.admin-visual .detail-modal.revocation-modal {
  border-radius: 12px !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12) !important;
  border: 1px solid #E5E5E5 !important;
}
body.admin-visual .revocation-modal .id-card-actions {
  background-color: #F5F5F7 !important;
  border-top: 1px solid #E5E5E5 !important;
}
body.admin-visual .revocation-modal .id-card-actions button.primary.revocation-confirm {
  background-color: #B42318 !important; /* Apple Danger Red */
  color: #FFFFFF !important;
  border: none !important;
}
body.admin-visual .revocation-modal .id-card-actions button.secondary {
  background-color: #FFFFFF !important;
  color: #111111 !important;
  border: 1px solid #E5E5E5 !important;
}

/* Settlement Dialog Apple X Overrides (FIX-05) */
#settlementContractDialog::backdrop {
  background: rgba(0, 0, 0, 0.25) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}
#settlementContractDialog {
  border-radius: 12px !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12) !important;
  border: 1px solid #E5E5E5 !important;
}
#settlementContractDialog .settlement-dialog-footer {
  background-color: #F5F5F7 !important;
  border-top: 1px solid #E5E5E5 !important;
}
#settlementContractDialog .settlement-dialog-footer > button.settlement-secondary {
  background-color: #FFFFFF !important;
  color: #111111 !important;
  border: 1px solid #E5E5E5 !important;
}
#settlementContractDialog .settlement-dialog-footer > button.settlement-primary {
  background-color: #111111 !important; /* Apple Primary Black */
  color: #FFFFFF !important;
  border: none !important;
}
#settlementContractDialog .settlement-dialog-footer > button.settlement-danger {
  background-color: #B42318 !important; /* Apple Danger Red */
  color: #FFFFFF !important;
  border: none !important;
}

/* Fix Apple DatePicker Popover Coordinate Clash (FIX-03) */
.date-picker-popup[popover] {
    margin: 0 !important;
    inset: auto;
    position: absolute !important;
}
