.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);appearance:none;cursor:pointer;z-index:12000;background-color:#0006;border:0;width:100%;height:100%;margin:0;padding:0;animation:.15s ease-out fadeIn;display:block;position:fixed;inset:0}.modal__layer{z-index:12001;pointer-events:none;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}@media (width<=768px){.modal__layer{padding:1rem}}@media (width<=480px){.modal__layer{padding:.5rem}}.modal{pointer-events:auto;background:#fff;border-radius:12px;flex-direction:column;width:100%;max-height:90dvh;animation:.2s ease-out slideUp;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000000d,0 4px 6px -2px #00000005}.modal--sm{max-width:400px}.modal--md{max-width:560px}.modal--lg{max-width:720px}.modal--xl{max-width:960px}@media (width<=768px){.modal{max-height:94dvh}.modal--md,.modal--lg,.modal--xl{max-width:100%}}.modal__header{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}@media (width<=768px){.modal__header{padding:.85rem 1rem}}.modal__header h2{color:#374151;flex:1;min-width:0;margin:0;font-size:1.125rem;font-weight:700;line-height:1.2}@media (width<=768px){.modal__header h2{font-size:1rem}}.modal__title-slot{flex:1;min-width:0}.modal__close{color:#4b5563;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;transition:all .2s ease-in-out;display:flex}.modal__close:hover{color:#374151;background-color:#f3f4f6}.modal__body{flex:1;min-height:0;padding:1.5rem;overflow-y:auto}@media (width<=768px){.modal__body{padding:1rem}}.modal__footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;border-radius:0 0 12px 12px;flex-shrink:0;justify-content:flex-end;gap:.75rem;width:100%;padding:1rem 1.5rem;display:flex}@media (width<=768px){.modal__footer{flex-direction:column;gap:.5rem;padding:1rem}.modal__footer .btn,.modal__footer button{width:100%}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}
