:host { display: contents; } .modal-shell { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(16, 18, 22, 0.48); backdrop-filter: blur(2px); } .modal-shell__dialog { width: min(100%, 40rem); margin: 0; } .modal-shell__dialog.modal-sm { width: min(100%, 24rem); } .modal-shell__dialog.modal-lg { width: min(100%, 52rem); } .modal-shell__dialog.modal-xl { width: min(100%, 68rem); } .modal-shell__dialog--full { width: min(100%, 92rem); height: min(100%, calc(100dvh - 2rem)); } .modal-shell__content { min-height: 180px; max-height: calc(100dvh - 2rem); border-radius: 1.25rem; background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 248, 248, 0.98)); } .modal-shell__dialog--full .modal-shell__content { height: 100%; max-height: 100%; } .modal-shell__header { position: relative; justify-content: center; align-items: flex-start; padding: 1.25rem 1.25rem 0.75rem; } .modal-shell__title { margin: 0; width: 100%; font-size: clamp(1.15rem, 1rem + 0.4vw, 1.5rem); font-weight: 700; line-height: 1.15; color: #202020; text-align: center; } .modal-shell__header .btn-close { position: absolute; top: 1.25rem; right: 1.25rem; } .modal-shell__body { flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 0 1.25rem 1.25rem; color: #303030; } @media (max-width: 576px) { .modal-shell { padding: 0.75rem; align-items: flex-end; } .modal-shell__dialog, .modal-shell__dialog.modal-sm, .modal-shell__dialog.modal-lg, .modal-shell__dialog.modal-xl, .modal-shell__dialog--full { width: 100%; } .modal-shell__content { max-height: min(100dvh - 1.5rem, 48rem); border-radius: 1.25rem 1.25rem 0.75rem 0.75rem; } }