.xd-modal-overlay {
  position: fixed;
  inset: 0;
  background: var(--xd-overlay);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 100;
  padding: var(--xd-space-2);
}
.xd-modal-overlay.is-open { display: flex; }

.xd-modal {
  width: min(440px, 100%);
  background: var(--xd-surface);
  border: 1px solid var(--xd-line);
  border-radius: var(--xd-radius);
  box-shadow: var(--xd-shadow);
  padding: var(--xd-space-3);
}
.xd-modal h2 {
  margin: 0 0 var(--xd-space-2);
  font-family: var(--xd-font-display);
  font-size: var(--xd-fs-20);
}
.xd-modal__contador {
  font-family: var(--xd-font-mono);
  font-variant-numeric: tabular-nums;
  color: var(--xd-text-dim);
  font-size: var(--xd-fs-14);
  margin-bottom: var(--xd-space-2);
}
.xd-modal label {
  display: block;
  font-size: var(--xd-fs-14);
  color: var(--xd-text-dim);
  margin-bottom: var(--xd-space-1);
}
.xd-modal input[type="password"],
.xd-modal input[type="text"] {
  width: 100%;
  padding: var(--xd-space-1) var(--xd-space-2);
  border-radius: var(--xd-radius-sm);
  border: 1px solid var(--xd-line);
  background: var(--xd-bg-1);
  color: var(--xd-text);
  margin-bottom: var(--xd-space-2);
}
.xd-modal input.is-error { border-color: var(--xd-bad); }
.xd-modal__acoes {
  display: flex;
  gap: var(--xd-space-2);
  flex-wrap: wrap;
}
.xd-btn {
  border: none;
  border-radius: var(--xd-radius-sm);
  padding: var(--xd-space-1) var(--xd-space-2);
  font-family: var(--xd-font-body);
  font-weight: 600;
  cursor: pointer;
  transition: transform var(--xd-dur-hover) var(--xd-ease-out);
}
.xd-btn:hover:not(:disabled) { transform: scale(var(--xd-scale-hover)); }
.xd-btn:active:not(:disabled) { transform: scale(var(--xd-scale-press)); }
.xd-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.xd-btn--primary {
  background: var(--xd-blue-deep);
  color: var(--xd-text);
}
.xd-btn--secondary {
  background: transparent;
  color: var(--xd-text);
  border: 1px solid var(--xd-line);
}
.xd-aviso {
  display: flex;
  gap: var(--xd-space-1);
  align-items: flex-start;
  margin: var(--xd-space-2) 0;
  padding: var(--xd-space-2);
  border-radius: var(--xd-radius-sm);
  border: 1px solid var(--xd-line);
  font-size: var(--xd-fs-14);
}
.xd-aviso[data-kind="bad"] { border-color: var(--xd-bad); color: var(--xd-text); }
.xd-aviso[data-kind="good"] { border-color: var(--xd-good); }
.xd-aviso[data-kind="warn"] { border-color: var(--xd-warn); }
.xd-aviso[hidden],
.xd-modal__link[hidden],
.xd-modal__loading[hidden] { display: none !important; }
.xd-modal__link a {
  word-break: break-all;
  color: var(--xd-blue-hi);
}
.xd-modal__loading {
  color: var(--xd-text-dim);
  font-size: var(--xd-fs-14);
  margin: var(--xd-space-2) 0;
}
