/* Centralized toast styling. Fixed positioning prevents page/header/sidebar layout shifts. */
#appToastContainer {
    position: fixed !important;
    top: 4rem !important;
    right: 1rem !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 20000 !important;
    width: min(420px, calc(100vw - 2rem));
    max-width: calc(100vw - 2rem);
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none;
}
#appToastContainer .app-toast {
    display: none;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: .65rem;
    color: #fff;
    opacity: 1;
    overflow: hidden;
    box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.22);
    pointer-events: auto;
}
#appToastContainer .app-toast.show { display: block; }
#appToastContainer .app-toast .d-flex { min-height: 68px; }
#appToastContainer .toast-body { flex: 1 1 auto; padding: 1rem 1.1rem; overflow-wrap: anywhere; }
#appToastContainer .app-toast-title { margin-bottom: .2rem; font-size: 1rem; font-weight: 700; }
#appToastContainer .app-toast-success { background: #198754; }
#appToastContainer .app-toast-danger { background: #dc3545; }
#appToastContainer .app-toast-warning { background: #ffc107; color: #212529; }
#appToastContainer .app-toast-info { background: #0d6efd; }
#appToastContainer .app-toast-close {
    flex: 0 0 auto;
    align-self: flex-start;
    margin: .65rem .8rem 0 0;
    padding: 0 .2rem;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.65rem;
    line-height: 1;
    opacity: .9;
    cursor: pointer;
}
#appToastContainer .app-toast-close:hover { opacity: 1; }
@media (max-width: 575.98px) {
    #appToastContainer {
        top: .75rem !important;
        right: .75rem !important;
        width: calc(100vw - 1.5rem);
        max-width: calc(100vw - 1.5rem);
    }
}

/* ---- Header bell / mail dropdowns (tc-header-notifications.js) ---- */
.tc-hn-menu.notif-box { width: 360px; max-width: calc(100vw - 24px); }
.tc-hn-menu .dropdown-title { padding: 12px 18px; font-size: 15px; font-weight: 700; }
.tc-hn-menu .notif-center { max-height: 380px; overflow-y: auto; }
.tc-hn-menu .notif-center a { align-items: flex-start; padding: 12px 16px; border-left: 3px solid transparent; }
.tc-hn-menu .notif-center a.tc-hn-unread { background: #f4f8ff; border-left-color: #1d62f0; }
.tc-hn-menu .notif-center a .notif-icon { flex: 0 0 40px; margin: 0 12px 0 0; width: 40px; height: 40px; }
.tc-hn-menu .notif-center a .notif-icon i { font-size: 20px; line-height: 1; }
.tc-hn-menu .notif-center a .notif-content { flex: 1 1 auto; min-width: 0; padding: 0; white-space: normal; }
.tc-hn-menu .notif-center a .notif-content .block { font-size: 14px; font-weight: 600; line-height: 1.3; color: #1f2d3d; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-hn-menu .notif-center a.tc-hn-unread .notif-content .block { font-weight: 700; }
.tc-hn-menu .tc-hn-body { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; font-size: 12.5px; color: #6b7686; line-height: 1.4; margin: 3px 0 4px; white-space: normal; }
.tc-hn-menu .notif-center a .notif-content .time { display: block; font-size: 11.5px; color: #98a2b0; }
.tc-hn-menu .tc-hn-empty { padding: 22px 16px; text-align: center; color: #8a94a6; font-size: 13px; }
.tc-hn-menu .see-all { justify-content: center; padding: 11px 16px; color: #1a56c4; }
