.swal2-popup.timothy-alert, .timothy-dialog {
  box-sizing: border-box; width: min(34rem, calc(100vw - 24px)); max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 24px); overflow-y: auto;
  background: var(--surface); color: var(--ink); font-family: var(--font); font-size: var(--text);
  border: var(--border) solid var(--control-line); border-radius: var(--radius-lg);
  padding: min(var(--s6), 4vw); overflow-wrap: anywhere;
}
.timothy-alert .timothy-alert-title { font-size: var(--title-sm); line-height: var(--heading-leading); padding: 0; color: var(--ink); }
.timothy-alert .timothy-alert-text { font-size: var(--text); line-height: var(--leading); color: var(--ink); margin: var(--s4) 0; white-space: pre-wrap; }
.timothy-alert .swal2-actions { gap: var(--s3); margin: var(--s4) 0 0; flex-wrap: wrap; }
.timothy-alert-confirm, .timothy-alert-cancel { min-width: var(--touch); min-height: var(--touch); margin: 0; max-width: 100%; white-space: normal; }
.timothy-alert-cancel { background: var(--surface); color: var(--blue-ink); border-color: var(--control-line); }
.timothy-alert .swal2-loader { border-color: var(--blue-ink) transparent var(--blue-ink) transparent; }
.timothy-alert .swal2-icon.swal2-question, .timothy-alert .swal2-icon.swal2-info { color: var(--blue-ink); border-color: var(--blue-ink); }
.timothy-alert .swal2-icon.swal2-warning { color: var(--orange-ink); border-color: var(--orange-ink); }
.timothy-alert .swal2-icon.swal2-success { color: var(--green-ink); border-color: var(--green-ink); }
.timothy-alert .swal2-success-line-tip, .timothy-alert .swal2-success-line-long { background: var(--green-ink) !important; }
.timothy-alert .swal2-success-ring { border-color: var(--green-ink) !important; }
.timothy-dialog::backdrop { background: rgb(35 55 70 / 50%); }
.timothy-dialog { max-height: calc(100dvh - 24px); }
.timothy-dialog h2 { font-size: var(--title-sm); }
.feedback-spinner { border-left: var(--accent) solid var(--blue-ink); padding-left: var(--s4); }
button[aria-disabled=true] { cursor: wait; opacity: .7; }
@media (prefers-reduced-motion: reduce) { .swal2-popup, .swal2-icon, .swal2-loader, .swal2-icon * { animation: none !important; transition: none !important; } }
