.ssv-app-dialog{
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px 16px;
  animation:ssv-dialog-fade-in .16s ease-out both;
  overscroll-behavior:contain;
}

.ssv-app-dialog.is-closing{
  pointer-events:none;
  animation:ssv-dialog-fade-out .15s ease-in both;
}

.ssv-app-dialog-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(10,31,28,.58);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}

.ssv-app-dialog-card{
  position:relative;
  z-index:1;
  width:min(100%,360px);
  padding:22px 19px 18px;
  border:1px solid var(--border);
  border-radius:24px;
  background:var(--surface,#fff);
  color:var(--text);
  box-shadow:0 24px 64px rgba(8,29,26,.26);
  animation:ssv-dialog-card-in .2s cubic-bezier(.2,.78,.32,1.08) both;
}

.ssv-app-dialog.is-closing .ssv-app-dialog-card{
  animation:ssv-dialog-card-out .14s ease-in both;
}

.ssv-app-dialog-icon{
  width:48px;
  height:48px;
  margin:0 auto 13px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:var(--primary-soft);
  color:var(--primary);
}

.ssv-app-dialog-icon svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.ssv-app-dialog-card.tone-danger .ssv-app-dialog-icon{
  background:#fff0ed;
  color:#c65243;
}

.ssv-app-dialog-card.tone-success .ssv-app-dialog-icon{
  background:#eaf7f3;
  color:var(--primary);
}

.ssv-app-dialog-card.tone-info .ssv-app-dialog-icon{
  background:#edf6f5;
  color:#397f77;
}

.ssv-app-dialog-copy{
  text-align:center;
}

.ssv-app-dialog-copy h3{
  margin:0 0 7px;
  font-size:1rem;
  line-height:1.2;
  letter-spacing:-.025em;
}

.ssv-app-dialog-copy p{
  margin:0 auto;
  max-width:300px;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.5;
}

.ssv-app-dialog-actions{
  margin-top:19px;
  display:grid;
  grid-template-columns:1fr 1.35fr;
  gap:9px;
}

.ssv-app-dialog-actions.single{
  grid-template-columns:1fr;
}

.ssv-app-dialog-button{
  min-height:45px;
  padding:0 13px;
  border-radius:14px;
  font:inherit;
  font-size:.7rem;
  font-weight:850;
  cursor:pointer;
}

.ssv-app-dialog-button.secondary{
  border:1px solid var(--border);
  background:var(--surface,#fff);
  color:var(--muted);
}

.ssv-app-dialog-button.confirm{
  border:1px solid var(--primary);
  background:var(--primary);
  color:#fff;
  box-shadow:0 8px 20px rgba(13,127,118,.18);
}

.ssv-app-dialog-button.confirm.tone-danger{
  border-color:#c65243;
  background:#c65243;
  box-shadow:0 8px 20px rgba(198,82,67,.18);
}

.ssv-app-dialog-button:focus-visible{
  outline:3px solid rgba(13,127,118,.22);
  outline-offset:2px;
}

html[data-theme="dark"] .ssv-app-dialog-card,
html[data-theme="dark"] .ssv-app-dialog-button.secondary{
  background:var(--surface,#17211f);
}

html[data-theme="dark"] .ssv-app-dialog-card.tone-danger .ssv-app-dialog-icon{
  background:rgba(198,82,67,.14);
  color:#f08c7e;
}

@keyframes ssv-dialog-fade-in{from{opacity:0}to{opacity:1}}
@keyframes ssv-dialog-fade-out{from{opacity:1}to{opacity:0}}
@keyframes ssv-dialog-card-in{from{opacity:0;transform:translateY(10px) scale(.975)}to{opacity:1;transform:none}}
@keyframes ssv-dialog-card-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(5px) scale(.985)}}

@media(max-width:380px){
  .ssv-app-dialog{padding:14px 10px}
  .ssv-app-dialog-card{padding:20px 15px 16px;border-radius:21px}
}
