.modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #00000047; display: flex; justify-content: center; align-items: center; z-index: 9999; overflow-y: auto; -webkit-backface-visibility: hidden; backface-visibility: hidden; opacity: 0; transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .modal.show { opacity: 1; } .modal-content { position: relative; background: var(--color-bg); line-height: 150%; border-radius: var(--radius-24); text-align: left; width: 100%; max-width: 600px !important; height: auto; max-height: 80vh; -webkit-overflow-scrolling: touch; transform: translateZ(0); will-change: opacity, transform; -webkit-font-smoothing: antialiased; opacity: 0; transform: scale(0.95) translateY(20px); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--shadow-ele); overflow: hidden; display: flex; flex-direction: column; } .modal.show .modal-content { opacity: 1; transform: scale(1) translateY(0); } .modal-header-content { border-bottom: var(--bordervari); } .modal-header-content-data { display: flex; justify-content: space-between; align-items: center; padding: 16px 40px; } .modal-content::-webkit-scrollbar { display: none; } .modal-content .scrollable-content { flex: 1; overflow-y: auto; padding: 24px 40px; } .modal-content h2:first-of-type { margin-top: 0; } .modal-content h2:last-of-type { margin-bottom: 0; } .modal-content ul { list-style: none; padding: 0; margin: 0; } .modal-content ul:not(:first-of-type) { border-top: none; } .modal-content li { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-mg) 0; border-bottom: var(--bordervari); transform: translateZ(0); will-change: transform; } .modal-content li:last-child { border-bottom: none; } .modal-content .feature-icon { width: 24px; height: 24px; object-fit: contain; } .close-modal { position: absolute; border-radius: 50%; right: 16px; width: 28px; height: 28px; background: none; outline: none; cursor: pointer; display: flex; border: none; align-items: center; justify-content: center; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); color: var(--color-text); padding: 2px; transform-origin: center; } .close-modal:hover { background-color: var(--color-bg-alt); border-radius: 50%; padding: 4px; transform: scale(1.1); } .close-modal:active { transform: scale(0.95); } body.scroll-lock { overflow: hidden; height: 100vh; } .modal-features li.unavailable img.feature-icon { filter: grayscale(100%); opacity: 0.5; } .modal-features li.unavailable span { text-decoration: line-through; color: #ddd; } @media (max-width: 768px) { body.scroll-lock { position: fixed; top: 0; left: 0; right: 0; width: 100%; } .modal-footer { flex-direction: column-reverse; gap: 8px; } .modal-footer .clear-filters { width: 100%; padding: 10px 20px !important; border-radius: 8px !important; } .modal-footer .apply-filters { width: 100%; padding: 10px 20px !important; border-radius: 8px !important; } .modal-button { width: 100%; padding: 10px 20px !important; border-radius: 8px !important; } .modal { align-items: flex-end; } .modal-content { max-height: 90dvh; height: auto; position: fixed; left: 0; right: 0; bottom: 0; border-radius: 24px 24px 0 0; transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); margin: 0; width: 100%; max-width: 100% !important; } .modal.show .modal-content { transform: translateY(0); } .modal.show .modal-content.closing { transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); } } @keyframes modalFadeScale { 0% { opacity: 0; transform: scale(1); } to { opacity: 1; transform: scale(1); } } .modal-footer { padding: 16px 40px; border-top: var(--bordervari); background-color: var(--color-bg); display: flex; justify-content: space-between; align-items: center; }