/* === Nunito — logo/brand font === */
/* cyrillic */
@font-face {
    font-family: 'Nunito';
    src: url('/vendor/nunito/Nunito-Cyrillic.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin */
@font-face {
    font-family: 'Nunito';
    src: url('/vendor/nunito/Nunito-Latin.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* === Exo 2 — UI font === */
/* cyrillic-ext */
@font-face {
    font-family: 'Exo 2';
    src: url('/vendor/exo2/Exo2-CyrillicExt.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
    font-family: 'Exo 2';
    src: url('/vendor/exo2/Exo2-Cyrillic.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
    font-family: 'Exo 2';
    src: url('/vendor/exo2/Exo2-LatinExt.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Exo 2';
    src: url('/vendor/exo2/Exo2-Latin.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* === Badge line-height fix === */
.badge {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

/* === Global font override === */
body {
    font-family: 'Exo 2', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
}

/* === Brand/logo font + color === */
.navbar-brand, .offcanvas-title {
    font-family: 'Nunito', sans-serif !important;
    background: linear-gradient(135deg, var(--logo-bg), var(--accent));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* === Card styling === */
.card .card-body {
    background-color: var(--bs-secondary-bg);
}
.card .card-header {
    background-color: var(--bs-tertiary-bg);
}

/* === Notification badge === */
.notif-badge {
    font-size: .6rem;
    padding: .2em .45em;
    top: .15rem !important;
    start: auto !important;
    right: -.1rem;
    left: auto !important;
    transform: none !important;
}

/* === Notification dropdown — desktop === */
.notif-dropdown-desktop {
    width: 360px;
    max-height: 420px;
    overflow: hidden;
}

.notif-dropdown-desktop .notif-list-container {
    max-height: 350px;
    overflow-y: auto;
}

/* === Notification dropdown — mobile === */
.notif-dropdown-mobile {
    max-height: 400px;
    overflow: hidden;
}

.notif-dropdown-mobile .notif-list-container {
    max-height: 330px;
    overflow-y: auto;
}

/* === Notification items === */
.notif-item {
    padding: .4rem .75rem;
    font-size: .8rem;
    line-height: 1.3;
}

.notif-item .notif-title {
    font-size: .8rem;
    font-weight: 600;
}

.notif-item .notif-msg {
    font-size: .72rem;
    line-height: 1.25;
}

.notif-item .notif-time {
    font-size: .68rem;
}

/* === Notification gear icon === */
.notif-settings-icon {
    font-size: .85rem;
}

/* === Mobile navigation === */
@media (max-width: 991.98px) {
    .navbar .offcanvas {
        max-width: 280px;
    }

    .nav-mobile-item {
        display: flex;
        align-items: center;
        padding: .65rem 1rem;
        border-radius: .5rem;
        color: var(--bs-body-color);
        text-decoration: none;
        transition: background .15s;
    }

    .nav-mobile-item:hover,
    .nav-mobile-item.active {
        background: var(--bs-tertiary-bg);
        color: var(--bs-emphasis-color);
    }

    .nav-mobile-item i {
        width: 1.5rem;
        text-align: center;
        margin-right: .75rem;
        font-size: 1.1rem;
    }

    .nav-mobile-divider {
        border-top: 1px solid var(--bs-border-color);
        margin: .5rem 0;
    }

    .notif-dropdown-mobile.show {
        position: fixed !important;
        top: 50px !important;
        left: 1rem !important;
        right: 1rem !important;
        width: auto !important;
        transform: none !important;
    }
}

/* === Mobile avatar circle === */
.avatar-circle {
    width: 40px;
    height: 40px;
}

/* === Empty state icon === */
.empty-state-icon {
    font-size: 3rem;
}

/* === Table truncated columns === */
.col-truncate {
    max-width: 250px;
}

.col-truncate-sm {
    max-width: 200px;
}

/* === Mobile: wider x-padding for main container === */
@media (max-width: 575.98px) {
    .container {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

/* === Admin navigation === */
.admin-nav-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: .5rem;
    font-size: 1.1rem;
    text-decoration: none !important;
    color: var(--bs-body-color);
    background: var(--bs-secondary-bg);
    border: 1px solid var(--bs-border-color);
    transition: all .15s;
}

.admin-nav-item span {
    display: none;
}

.admin-nav-item:hover {
    color: var(--bs-primary);
    border-color: var(--bs-primary);
    background: rgba(var(--bs-primary-rgb), .1);
}

.admin-nav-item.active {
    color: var(--bs-body-bg);
    background: var(--bs-primary);
    border-color: var(--bs-primary);
}

/* === Legal text === */
.legal-text h2 {
    font-size: 1.15rem;
    font-weight: 600;
    margin-top: 1.75rem;
    margin-bottom: .75rem;
}

.legal-text h2:first-child {
    margin-top: 0;
}

.legal-text h5 {
    font-size: .95rem;
    font-weight: 600;
    margin-top: 1rem;
    margin-bottom: .5rem;
}

.legal-text p,
.legal-text li {
    font-size: .9rem;
    line-height: 1.7;
    color: var(--bs-secondary-color);
}

.legal-text ul {
    padding-left: 1.25rem;
}

/* === Range select auto-width === */
.select-auto {
    width: auto;
}
