.modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; animation: fadeIn 0.2s; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .modal { background: var(--color-bg-secondary); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); max-height: 90vh; display: flex; flex-direction: column; animation: slideUp 0.3s; overflow: hidden; } @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .modal--small { width: 90%; max-width: 400px; } .modal--medium { width: 90%; max-width: 600px; } .modal--large { width: 90%; max-width: 900px; } .modal--fullscreen { width: 95%; height: 95%; max-width: none; max-height: none; } .modal__header { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem; border-bottom: 1px solid var(--color-border); } .modal__title { margin: 0; font-size: 1.25rem; font-weight: 600; color: var(--color-text); } .modal__close { background: none; border: none; cursor: pointer; padding: 0.25rem; display: flex; align-items: center; justify-content: center; color: var(--color-text-secondary); border-radius: var(--radius-sm); transition: all 0.2s; } .modal__close:hover { background-color: var(--color-bg); color: var(--color-text); } .modal__body { padding: 1.5rem; overflow-y: auto; flex: 1; } .modal__footer { padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); display: flex; justify-content: flex-end; gap: 0.75rem; }