/* Shared application styles */
body { background-color: #f4f6f9; font-family: 'Poppins', sans-serif; }
.fs-8 { font-size: 0.80rem !important; }
.app-container { width: min(98%, 1400px); margin-left: auto; margin-right: auto; }
.card-custom { border-radius: 10px; border: 1px solid #e0e0e0; box-shadow: 0 4px 12px rgba(0,0,0,.03); background: #fff; }
.btn-custom-blue { background-color: #2c496d; color: #fff; transition: all .2s ease; }
.btn-custom-blue:hover { background-color: #1f3550; color: #fff; transform: translateY(-1px); }

/* Floating status messages stay above page content and dismiss automatically. */
.app-alert {
    position: fixed !important;
    bottom: 5.5rem;
    right: 1rem;
    z-index: 3000 !important;
    min-width: min(92vw, 360px);
    max-width: min(92vw, 520px);
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
    margin: 0;
    pointer-events: auto;
    transition: opacity .3s ease, transform .3s ease;
}

.app-alert.alert-success { z-index: 3001 !important; }
.app-alert.alert-warning { z-index: 3002 !important; }
.app-alert.alert-danger { z-index: 3003 !important; }
.app-alert .btn-close { display: none; }

.custom-dropdown { position: relative; width: 100%; }
.custom-dropdown-native { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; appearance: none; -webkit-appearance: none; background-image: none !important; }
.custom-dropdown-button { display: block; width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.custom-dropdown-button:disabled { background-image: none; }
.custom-dropdown-menu { display: none; position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 3100; max-height: 220px; overflow-y: auto; padding: .25rem; background: #fff; border: 1px solid #ced4da; border-radius: .375rem; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }
.custom-dropdown.open .custom-dropdown-menu { display: block; }
.custom-dropdown-option { display: block; width: 100%; padding: .4rem .6rem; border: 0; border-radius: .25rem; background: transparent; color: #212529; text-align: left; }
.custom-dropdown-option:hover:not(:disabled), .custom-dropdown-option:focus:not(:disabled) { background: #e9f0f8; color: #1f4e7a; }
.custom-dropdown-option:disabled { color: #6c757d; cursor: not-allowed; }

.app-alert:not(.show) {
    transform: translateY(10px);
}

@media (max-width: 575.98px) {
    .app-alert { bottom: 4.75rem; right: .75rem; left: .75rem; min-width: 0; max-width: none; }
}
