.backdrop { position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.4); z-index: var(--z-modal-backdrop); display: flex; align-items: center; justify-content: center; padding: var(--space-4); animation: fadeIn var(--transition-fast) ease; } .modal { background-color: var(--color-bg-elevated); border-radius: var(--radius-xl); box-shadow: var(--shadow-xl); z-index: var(--z-modal); width: 100%; max-width: 480px; max-height: 90vh; overflow-y: auto; animation: slideUp var(--transition-base) ease; } .header { display: flex; align-items: center; justify-content: space-between; padding: var(--space-5) var(--space-6); border-bottom: 1px solid var(--color-border); } .title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); } .closeButton { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: none; border-radius: var(--radius-md); background: transparent; color: var(--color-text-secondary); font-size: var(--font-size-lg); transition: background-color var(--transition-fast), color var(--transition-fast); } .closeButton:hover { background-color: var(--color-bg-hover); color: var(--color-text-primary); } .body { padding: var(--space-6); } .footer { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-3); padding: var(--space-4) var(--space-6); border-top: 1px solid var(--color-border); } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }