/* Controles de fechamento consistentes para dialogs nativos e SweetAlert2. */
.modal-close-control,
.dialog-close {
  box-sizing: border-box !important;
  position: absolute;
  z-index: 5;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: auto !important;
  min-width: 104px;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 13px !important;
  overflow: visible !important;
  border: 1px solid #67dec75c !important;
  border-radius: 13px !important;
  background: linear-gradient(145deg, #234353, #142c3d) !important;
  box-shadow: 0 4px 14px #04111c44, inset 0 1px 0 #d4fff00c !important;
  color: #d7f6ed !important;
  font: 600 13px/1 system-ui, sans-serif !important;
  cursor: pointer;
  transition: background .18s, border-color .18s, box-shadow .18s, transform .18s;
}

.modal-close-control:not(.search-close-control),
.dialog-close:not(.search-close-control) {
  top: 14px;
  right: 16px;
}

.modal-close-control span { display: inline; white-space: nowrap; }
.modal-close-control svg {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.modal-close-control:hover,
.dialog-close:hover {
  border-color: #8cf2d8 !important;
  background: linear-gradient(145deg, #2a554f, #183c40) !important;
  box-shadow: 0 4px 18px #04111c55, 0 0 0 3px #57daba12 !important;
  color: #c9ffe9 !important;
  transform: translateY(-1px);
}

.modal-close-control:focus-visible,
.dialog-close:focus-visible,
.swal2-close:focus-visible {
  outline: 2px solid #9ef8d7 !important;
  outline-offset: 3px;
}

.modal-close-control:active,
.dialog-close:active { transform: translateY(0); }

/* No cabeçalho de dialogs administrativos o botão participa do alinhamento. */
.dialog-head > .modal-close-control,
.dialog-head > .icon-button[data-close],
.dialog-head > .icon-button[data-picker-cancel] {
  position: static;
  flex: 0 0 auto;
  margin-left: auto !important;
}

.dialog-head > .icon-button[data-close]:not(.modal-close-control),
.dialog-head > .icon-button[data-picker-cancel]:not(.modal-close-control) {
  width: auto !important;
  min-width: 104px;
  height: 44px;
  padding: 0 13px !important;
  border: 1px solid #67dec75c;
  border-radius: 13px;
  background: linear-gradient(145deg, #234353, #142c3d);
  color: transparent;
  font-size: 0;
}

.dialog-head > .icon-button[data-close]:not(.modal-close-control)::before,
.dialog-head > .icon-button[data-picker-cancel]:not(.modal-close-control)::before {
  content: "Fechar";
  color: #d7f6ed;
  font: 600 13px/1 system-ui, sans-serif;
}

.dialog-head > .icon-button[data-close]:not(.modal-close-control)::after,
.dialog-head > .icon-button[data-picker-cancel]:not(.modal-close-control)::after {
  content: "×";
  margin-left: 8px;
  color: #d7f6ed;
  font: 21px/1 Arial, sans-serif;
}

.dialog:not(.checkout-dialog):not(.search-dialog) > .dialog-body > .eyebrow {
  min-height: 30px;
  padding-right: 114px;
}

.search-dialog-header .search-close-control {
  position: static;
  min-width: 104px;
  flex: 0 0 auto;
  border-radius: 12px !important;
}

/* SweetAlert2 cria o botão; o pseudo conteúdo dá texto e ícone sem alterar cada alerta. */
div.swal2-container .swal2-popup .swal2-close {
  box-sizing: border-box !important;
  position: absolute !important;
  inset: 14px 16px auto auto !important;
  z-index: 5 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 104px !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  overflow: visible !important;
  border: 1px solid #67dec75c !important;
  border-radius: 13px !important;
  outline: 0 !important;
  background: linear-gradient(145deg, #234353, #142c3d) !important;
  box-shadow: 0 4px 14px #04111c22, inset 0 1px 0 #fff1 !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  transform: none !important;
  cursor: pointer;
  transition: background .18s, border-color .18s, box-shadow .18s, transform .18s !important;
  justify-self: end;
}

div.swal2-container .swal2-popup .swal2-close::before {
  content: "Fechar";
  color: #d7f6ed;
  font: 600 12px/1 system-ui, sans-serif;
}

div.swal2-container .swal2-popup .swal2-close::after {
  content: "×";
  color: #d7f6ed;
  font: 21px/1 Arial, sans-serif;
}

div.swal2-container .swal2-popup .swal2-close:hover {
  border-color: #8cf2d8 !important;
  background: linear-gradient(145deg, #2a554f, #183c40) !important;
  box-shadow: 0 4px 18px #04111c33, 0 0 0 3px #57daba12 !important;
  color: transparent !important;
  transform: translateY(-1px) !important;
}

div.swal2-container .swal2-popup .swal2-title { padding-right: 112px !important; }

@media (max-width: 560px) {
  .modal-close-control,
  .dialog-close { min-width: 96px; height: 42px !important; padding-inline: 11px !important; }
  .modal-close-control:not(.search-close-control),
  .dialog-close:not(.search-close-control) { top: 12px; right: 12px; }
  .dialog:not(.checkout-dialog):not(.search-dialog) > .dialog-body > .eyebrow { padding-right: 105px; }
  div.swal2-container .swal2-popup .swal2-close { inset: 10px 10px auto auto !important; width: 94px !important; height: 40px !important; }
  div.swal2-container .swal2-popup .swal2-title { padding-right: 100px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .modal-close-control, .dialog-close, .swal2-close { transition: none !important; }
}

/* Trilhos internos: não invadem os cantos arredondados das molduras. */
:is(dialog,.swal2-popup),:is(dialog,.swal2-popup) *{scrollbar-width:auto!important;scrollbar-color:auto!important}
:is(dialog,.swal2-popup)::-webkit-scrollbar,:is(dialog,.swal2-popup) *::-webkit-scrollbar{width:10px;height:10px}
:is(dialog,.swal2-popup)::-webkit-scrollbar-track,:is(dialog,.swal2-popup) *::-webkit-scrollbar-track{margin:20px 12px;border-radius:999px;background:transparent}
:is(dialog,.swal2-popup)::-webkit-scrollbar-thumb,:is(dialog,.swal2-popup) *::-webkit-scrollbar-thumb{min-height:32px;border:3px solid transparent;border-radius:999px;background-color:#438879;background-clip:padding-box}
:is(dialog,.swal2-popup)::-webkit-scrollbar-thumb:hover,:is(dialog,.swal2-popup) *::-webkit-scrollbar-thumb:hover{background-color:#61b7a0}
:is(dialog,.swal2-popup)::-webkit-scrollbar-button,:is(dialog,.swal2-popup) *::-webkit-scrollbar-button{display:none;width:0;height:0}
:is(dialog,.swal2-popup)::-webkit-scrollbar-corner,:is(dialog,.swal2-popup) *::-webkit-scrollbar-corner{background:transparent}
@supports not selector(::-webkit-scrollbar){:is(dialog,.swal2-popup),:is(dialog,.swal2-popup) *{scrollbar-width:thin!important;scrollbar-color:#438879 transparent!important}}
