.flex-center{justify-content:center;align-items:center;display:flex}.alert.fade{transition:opacity .3s ease-in-out,transform .3s ease-in-out}.alert.fade:not(.show){opacity:0;transform:translateY(-10px)}.alert.fade.show{opacity:1;transform:translateY(0)}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.alert-success.fade.show{animation:.4s ease-out slideInDown}.milestone-past{opacity:.6;color:#6c757d}.category-header{color:#495057;border-bottom:2px solid #dee2e6;margin-top:1.5rem;margin-bottom:1rem;padding-bottom:.5rem}.category-header:first-child{margin-top:0}.calendar-icon{cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;font-size:1.25rem;transition:background-color .15s ease-in-out;display:inline-flex}.calendar-icon:hover{background-color:#0000000d}.calendar-icon:focus{outline-offset:2px;outline:2px solid #0d6efd}.calendar-icon:active{background-color:#0000001a}.share-icon{cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;font-size:1.25rem;transition:background-color .15s ease-in-out;display:inline-flex}.share-icon:hover{background-color:#0000000d}.share-icon:focus{outline-offset:2px;outline:2px solid #0d6efd}.share-icon:active{background-color:#0000001a}.custom-badge{padding:.2rem .4rem;font-size:.7rem;font-weight:600}.preview-box{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:.375rem;padding:1rem}.preview-text{color:#212529;margin-top:.5rem;font-size:1.1rem;font-weight:600}.provider-buttons{flex-direction:column;gap:.5rem;display:flex}.toast-container{z-index:1060;max-width:400px;position:fixed;bottom:20px;right:20px}.toast-container .alert{margin-bottom:10px;animation:.3s ease-out slideIn;box-shadow:0 4px 6px #0000001a}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-container .alert.fade:not(.show){animation:.3s ease-out slideOut}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}
