  /* ── Design-system dialog (confirm / prompt / purge) ── */
  /* Reach for this instead of window.confirm / window.prompt so destructive
     actions inherit the app's dark-theme language. See static/js/dialog.js. */
  .dialog-overlay { display: flex; position: fixed; inset: 0; background: rgba(0,0,0,0.72); z-index: 400; align-items: center; justify-content: center; }
  .dialog { background: var(--bg2); border: 1px solid var(--border); border-radius: 14px; padding: 22px 24px; max-width: 460px; width: 92%; box-shadow: 0 24px 80px rgba(0,0,0,0.6); }
  .dialog.dialog-danger { border-color: rgba(252,92,125,0.45); }
  .dialog-title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 10px; }
  .dialog-body { font-size: 13px; color: var(--text2); line-height: 1.55; margin-bottom: 16px; white-space: pre-wrap; }
  .dialog-input { width: 100%; background: var(--bg3); border: 1px solid var(--border); border-radius: 8px; padding: 8px 12px; color: var(--text); font-size: 13px; outline: none; margin-bottom: 14px; box-sizing: border-box; }
  .dialog-input:focus { border-color: var(--accent); }
  .dialog-input.mismatch { border-color: var(--accent2); }
  .dialog-actions { display: flex; justify-content: flex-end; gap: 8px; }
  .dialog-btn { padding: 7px 16px; font-size: 12px; font-weight: 600; border-radius: 7px; border: 1px solid var(--border); background: var(--bg3); color: var(--text2); cursor: pointer; transition: all 0.15s; }
  .dialog-btn:hover:not(:disabled) { filter: brightness(1.25); }
  .dialog-btn:disabled { opacity: 0.4; cursor: not-allowed; }
  .dialog-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
  .dialog-danger-btn { background: rgba(252,92,125,0.15); border-color: var(--accent2); color: var(--accent2); }
  .dialog-danger-btn:hover:not(:disabled) { background: rgba(252,92,125,0.28); }
