﻿/* ========================================
   VARIÁVEIS GLOBAIS
   ======================================== */
:root {
    --sidebar-width: 260px;
    --brand-dark: #050b3f;
    --brand-darker: #03072e;
    --brand-primary: #1b4396;
    --surface: #ffffff;
    --surface-muted: #f7f9fd;
    --text-muted: #73809a;

    --font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-headings: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --font-size-base: 0.95rem;
    --font-size-sm: 0.875rem;
    --font-size-xs: 0.8125rem;
    --font-size-lg: 1.05rem;
    --line-height-base: 1.6;
    --line-height-headings: 1.3;

    --space-1: .35rem;
    --space-2: .5rem;
    --space-3: .75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-7: 1.75rem;
}

@media (min-width: 1200px) {
    :root {
        --sidebar-width: 280px;
    }
}

/* ========================================
   RESET E BASE
   ======================================== */
html, body { height: 100%; overflow-x: hidden; }

body {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background: linear-gradient(180deg, #f3f6fb 0%, #eef2f8 100%);
    color: #232b3a;
}

@media (min-width: 1200px) {
    .menu-link,
    .menu-group-toggle {
        padding: .65rem .95rem;
        font-size: .9rem;
    }

    .menu-section-title {
        margin: 1rem .5rem .45rem;
    }

    .menu-submenu {
        padding-left: 1.55rem;
    }

    .menu-submenu .menu-link {
        padding: .5rem .75rem;
    }
}

/* ========================================
   TIPOGRAFIA
   ======================================== */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-headings);
    line-height: var(--line-height-headings);
    letter-spacing: -0.02em;
    font-weight: 600;
    color: #181C32;
    margin-bottom: 0.75rem;
}
h1, .h1 { font-size: 2rem;    font-weight: 700; letter-spacing: -0.03em; }
h2, .h2 { font-size: 1.65rem; font-weight: 700; }
h3, .h3 { font-size: 1.35rem; font-weight: 600; }
h4, .h4 { font-size: 1.15rem; font-weight: 600; }
h5, .h5 { font-size: 1.05rem; font-weight: 600; }
h6, .h6 { font-size: 0.95rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

p { font-size: var(--font-size-base); line-height: var(--line-height-base); margin-bottom: 1rem; color: #5E6278; }

label, .form-label {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: #3F4254;
    letter-spacing: 0.01em;
    margin-bottom: 0.5rem;
}

.form-control, .form-select {
    font-size: var(--font-size-base);
    font-weight: 400;
    color: #3F4254;
    line-height: 1.5;
}

.form-control::placeholder { color: #A1A5B7; font-size: var(--font-size-sm); }

/* ========================================
   APP SHELL
   ======================================== */
.app-shell {
    min-height: 100vh;
    display: flex;
}

.sidebar-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease;
    z-index: 1020;
}

.sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* ========================================
   SIDEBAR
   ======================================== */
.app-sidebar {
    width: var(--sidebar-width);
    background: linear-gradient(180deg, var(--brand-dark) 0%, var(--brand-darker) 100%);
    color: #fff;
    display: flex;
    flex-direction: column;
    padding: 1rem .85rem;
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1025;
    transition: transform .25s ease, width .25s ease;
    overflow-y: auto;
}

@media (min-width: 992px) {
    .app-sidebar.sidebar-minimized {
        width: 68px;
        overflow: visible;
    }

    .app-sidebar.sidebar-minimized + .app-content {
        margin-left: 68px;
        width: calc(100% - 68px);
        max-width: calc(100% - 68px);
    }

    .app-sidebar.sidebar-minimized .brand-name,
    .app-sidebar.sidebar-minimized .menu-title,
    .app-sidebar.sidebar-minimized .menu-section-title,
    .app-sidebar.sidebar-minimized .menu-arrow,
    .app-sidebar.sidebar-minimized .menu-submenu,
    .app-sidebar.sidebar-minimized .sidebar-support-text {
        display: none;
    }
    .app-sidebar.sidebar-minimized .menu-link,
    .app-sidebar.sidebar-minimized .menu-group-toggle {
        justify-content: center;
        padding: .65rem;
    }
    .app-sidebar.sidebar-minimized .menu-link i,
    .app-sidebar.sidebar-minimized .menu-link .menu-icon,
    .app-sidebar.sidebar-minimized .menu-group-toggle i {
        width: auto;
        margin: 0;
    }
    .app-sidebar.sidebar-minimized .brand { justify-content: center; }

    .app-sidebar.sidebar-minimized:hover {
        width: var(--sidebar-width);
        overflow-y: auto;
        box-shadow: 8px 0 24px rgba(3, 7, 46, .22);
    }

    .app-sidebar.sidebar-minimized:hover .brand-name,
    .app-sidebar.sidebar-minimized:hover .menu-title,
    .app-sidebar.sidebar-minimized:hover .menu-section-title,
    .app-sidebar.sidebar-minimized:hover .menu-arrow,
    .app-sidebar.sidebar-minimized:hover .menu-submenu,
    .app-sidebar.sidebar-minimized:hover .sidebar-support-text {
        display: revert;
    }

    .app-sidebar.sidebar-minimized:hover .menu-submenu {
        display: flex;
    }

    .app-sidebar.sidebar-minimized:hover .menu-link,
    .app-sidebar.sidebar-minimized:hover .menu-group-toggle {
        justify-content: flex-start;
        padding: .6rem .85rem;
    }

    .app-sidebar.sidebar-minimized:hover .menu-link i,
    .app-sidebar.sidebar-minimized:hover .menu-link .menu-icon,
    .app-sidebar.sidebar-minimized:hover .menu-group-toggle i {
        width: 1.2rem;
        margin: 0;
    }

    .app-sidebar.sidebar-minimized:hover .brand {
        justify-content: space-between;
    }
}

@media (max-width: 991.98px) {
    .app-sidebar { transform: translateX(-100%); }
    .app-sidebar.open { transform: translateX(0); }
}

/* Brand */
.brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding: .4rem .1rem .8rem;
    border-bottom: 1px solid rgba(255,255,255,.1);
    flex-shrink: 0;
}

.brand-link {
    text-decoration: none;
    color: #fff;
    display: flex;
    align-items: center;
    gap: .5rem;
    overflow: hidden;
}

.brand-link img { max-height: 28px; }
.brand-name { font-size: 1rem; font-weight: 600; letter-spacing: .02em; white-space: nowrap; }

.sidebar-toggle-btn {
    background: none;
    border: none;
    color: rgba(255,255,255,.5);
    cursor: pointer;
    font-size: 1rem;
    padding: .2rem .3rem;
    line-height: 1;
    border-radius: .3rem;
    flex-shrink: 0;
}
.sidebar-toggle-btn:hover { color: #fff; background: rgba(255,255,255,.1); }

/* Seções */
.menu-section-title {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .7rem;
    opacity: .55;
    margin: .9rem .4rem .35rem;
    white-space: nowrap;
    overflow: hidden;
}

/* Links e grupos */
.menu-nav { display: flex; flex-direction: column; gap: .3rem; }

.menu-link {
    color: #d6def2;
    text-decoration: none;
    border-radius: .5rem;
    padding: .6rem .85rem;
    display: flex;
    align-items: center;
    gap: .55rem;
    transition: background .15s ease, color .15s ease;
    font-size: .875rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.45;
}

.menu-link i, .menu-link .menu-icon {
    font-size: .95rem;
    width: 1.2rem;
    text-align: center;
    flex-shrink: 0;
    line-height: 1;
}

.menu-link:hover {
    background: rgba(255,255,255,.09);
    color: #fff;
}

.menu-link.active {
    background: rgba(27,67,150,.32);
    box-shadow: inset 3px 0 0 #1b4396;
    color: #fff;
    font-weight: 600;
}

.menu-group-toggle {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: #d6def2;
    background: none;
    border: none;
    border-radius: .5rem;
    padding: .6rem .85rem;
    width: 100%;
    text-align: left;
    font-size: .875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
    white-space: nowrap;
    overflow: hidden;
    line-height: 1.45;
}

.menu-group-toggle i {
    font-size: .95rem;
    width: 1.15rem;
    text-align: center;
    flex-shrink: 0;
}

.menu-group-toggle .menu-arrow {
    margin-left: auto;
    font-size: .65rem;
    transition: transform .2s ease;
    flex-shrink: 0;
}

.menu-group-toggle[aria-expanded="true"] .menu-arrow { transform: rotate(90deg); }
.menu-group-toggle:hover { background: rgba(27,67,150,.22); color: #fff; }

.menu-submenu {
    padding-left: 1.4rem;
    display: flex;
    flex-direction: column;
    gap: .14rem;
    margin-top: .2rem;
    margin-bottom: .2rem;
}

.menu-submenu .menu-link {
    font-size: .83rem;
    padding: .45rem .68rem;
    border-radius: .4rem;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    line-height: 1.4;
}

/* Rodapé sidebar */
.sidebar-footer {
    margin-top: auto;
    padding-top: .85rem;
    border-top: 1px solid rgba(255,255,255,.08);
    flex-shrink: 0;
}

.sidebar-support {
    background: rgba(255,255,255,.07);
    border-radius: .5rem;
    text-align: center;
    padding: .5rem;
    font-size: .8rem;
    color: #e4ebfb;
}

/* ========================================
   APP CONTENT
   ======================================== */
.app-content {
    margin-left: var(--sidebar-width);
    width: calc(100% - var(--sidebar-width));
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    max-width: calc(100% - var(--sidebar-width));
    overflow: hidden;
    transition: margin-left .25s ease, width .25s ease;
}

@media (max-width: 991.98px) {
    .app-content { margin-left: 0; width: 100%; }
}

/* ========================================
   HEADER
   ======================================== */
.app-header {
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid #e8ebf2;
    padding: 0 1.25rem;
    position: sticky;
    top: 0;
    z-index: 1000;
    gap: .75rem;
}

.app-header-left { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.app-header-right { display: flex; align-items: center; gap: .4rem; flex-shrink: 0; }

.app-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: var(--font-headings);
    color: #181C32;
}

.app-subtitle { color: var(--text-muted); font-size: .78rem; white-space: nowrap; }

.header-sidebar-toggle {
    background: none;
    border: none;
    color: #4f5d78;
    font-size: 1.2rem;
    cursor: pointer;
    padding: .3rem .45rem;
    border-radius: .4rem;
    display: none;
    line-height: 1;
    align-items: center;
}

.header-sidebar-toggle:hover { background: #f0f2f8; }

@media (max-width: 991.98px) {
    .header-sidebar-toggle { display: inline-flex; }
}

/* User chip */
.app-user-chip {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
    overflow: hidden;
    border: none;
}

.app-user-chip img { width: 100%; height: 100%; object-fit: cover; }

/* Botões ícone header */
.header-icon-btn {
    position: relative;
    background: none;
    border: none;
    color: #4f5d78;
    font-size: 1.1rem;
    cursor: pointer;
    padding: .35rem .45rem;
    border-radius: .4rem;
    line-height: 1;
    transition: background .15s ease, color .15s ease;
    display: inline-flex;
    align-items: center;
}

.header-icon-btn:hover { background: #f0f2f8; color: var(--brand-primary); }

.header-icon-btn .badge-dot {
    position: absolute;
    top: 3px;
    right: 3px;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    background: #dc3545;
    color: #fff;
    font-size: .6rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 2px;
    line-height: 1;
}

.header-search .select2-container { min-width: 190px; }

@media (max-width: 575.98px) { .header-search { display: none; } }

/* ========================================
   DROPDOWNS HEADER
   ======================================== */
.header-dropdown-menu {
    min-width: 340px;
    border: 1px solid #e8ebf2;
    border-radius: .75rem;
    box-shadow: 0 12px 32px rgba(28,40,74,.12);
    padding: 0;
    overflow: clip; /* clip preserva border-radius sem cortar overflow-y do body */
}

.header-dropdown-header {
    background: linear-gradient(135deg, var(--brand-primary) 0%, #2563eb 100%);
    padding: .8rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header-dropdown-header h6 {
    color: #fff;
    margin: 0;
    font-size: .88rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}

.header-dropdown-body {
    max-height: 300px;
    overflow-y: auto;
    padding: .35rem 0;
}

.header-dropdown-item {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .55rem .9rem;
    border-bottom: 1px solid #f0f2f8;
    transition: background .12s ease;
}

.header-dropdown-item:last-child { border-bottom: none; }
.header-dropdown-item:hover { background: #f7f9fd; }
.header-dropdown-item .item-text { flex: 1; font-size: .81rem; color: #3F4254; line-height: 1.45; }
.header-dropdown-item .item-action { flex-shrink: 0; }

.header-dropdown-footer {
    border-top: 1px solid #e8ebf2;
    padding: .5rem .9rem;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

/* Empty state dos dropdowns de notificação/menção */
.header-dropdown-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 1.25rem;
    text-align: center;
}
.header-dropdown-empty-icon {
    font-size: 2.25rem;
    color: #c5cde6;
    margin-bottom: .75rem;
}
.header-dropdown-empty-title {
    font-size: .88rem;
    font-weight: 600;
    color: #3F4254;
    margin: 0 0 .25rem;
}
.header-dropdown-empty-subtitle {
    font-size: .78rem;
    color: #a1a5b7;
    margin: 0;
    line-height: 1.4;
}

/* User dropdown */
.user-dropdown-menu {
    min-width: 230px;
    border: 1px solid #e8ebf2;
    border-radius: .75rem;
    box-shadow: 0 12px 32px rgba(28,40,74,.12);
    padding: .35rem 0;
}

.user-dropdown-info {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .7rem .9rem .9rem;
    border-bottom: 1px solid #f0f2f8;
}

.user-dropdown-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--brand-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .9rem;
    font-weight: 700;
    flex-shrink: 0;
    overflow: hidden;
}

.user-dropdown-avatar img { width: 100%; height: 100%; object-fit: cover; }
.user-dropdown-name { font-weight: 600; font-size: .88rem; color: #181C32; }
.user-dropdown-email { font-size: .76rem; color: var(--text-muted); }

.user-dropdown-menu .dropdown-item {
    padding: .45rem .9rem;
    font-size: .87rem;
    color: #3F4254;
    display: flex;
    align-items: center;
    gap: .5rem;
}

.user-dropdown-menu .dropdown-item:hover { background: #f7f9fd; color: var(--brand-primary); }

/* ========================================
   CONTENT WRAPPER
   ======================================== */
.content-wrapper {
    padding: var(--space-5) var(--space-6);
    flex: 1;
}

@media (max-width: 991.98px) {
    .content-wrapper {
        padding: var(--space-4);
    }
}

/* ========================================
   PAGE TOOLBAR
   ======================================== */
.page-toolbar {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid #eef1f6;
    border-radius: .75rem;
    padding: var(--space-3) var(--space-4);
    margin-bottom: var(--space-4);
    box-shadow: 0 2px 8px rgba(28,40,74,.04);
}

.page-toolbar + .page-toolbar {
    margin-top: var(--space-2);
}

.page-toolbar-title {
    font-family: var(--font-headings);
    font-size: 1.05rem;
    font-weight: 700;
    color: #181C32;
    margin: 0;
}

.page-toolbar-subtitle {
    font-size: var(--font-size-xs);
    color: var(--text-muted);
    margin-top: .15rem;
    display: block;
}

.page-subtoolbar {
    border-top: 1px solid #f1f4fa;
    border-width: 1px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    margin-top: -.2rem;
    padding-top: var(--space-3);
}

/* Navegação de abas no topo das páginas do cliente */
.client-tabs-nav {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) 0;
}

.client-tabs-nav .client-tab-link,
.client-tabs-nav .client-tab-dropdown > .btn {
    min-height: 2.15rem;
    padding: .32rem .68rem;
    border-radius: .45rem;
    border: 1px solid #d8e0ee;
    font-size: .8rem;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: normal;
}

.client-tabs-nav .client-tab-link.btn-light-secondary,
.client-tabs-nav .client-tab-dropdown > .btn.btn-secondary {
    background: #f8faff;
    color: #48556f;
}

.client-tabs-nav .client-tab-link.btn-light-success {
    border-color: #b8e7cf;
}

.content-card {
    background: var(--surface);
    border: 1px solid #eef1f6;
    border-radius: .85rem;
    box-shadow: 0 4px 16px rgba(28,40,74,.05);
    padding: 1.25rem;
}

/* Notices globais (avisos em cards/forms) */
.notice {
    padding: .95rem 1.1rem !important;
    margin-bottom: 1.6rem !important;
}

.notice .fw-bold,
.notice p {
    margin-bottom: 0;
    line-height: 1.55;
}

/* ========================================
   FOOTER
   ======================================== */
.app-footer {
    padding: .65rem 1.5rem;
    background: rgba(255,255,255,.7);
    border-top: 1px solid #e8ebf2;
    font-size: .78rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
}

.app-footer a { color: var(--brand-primary); text-decoration: none; }
.app-footer a:hover { text-decoration: underline; }

/* ========================================
   DASHBOARD LIGHT (MEUS DADOS)
   ======================================== */
.card.hoverable.card-xl-stretch.bg-primary,
.card.hoverable.card-xl-stretch.bg-success,
.card.hoverable.card-xl-stretch.bg-info,
.card.hoverable.card-xl-stretch.bg-warning,
.card.hoverable.card-xl-stretch.bg-danger,
.dashboard-light-kpi .dashboard-light-kpi-card {
    --kpi-bg-start: #4f78e9;
    --kpi-bg-end: #3f68df;
    --kpi-shadow: rgba(46, 90, 194, .22);
    --kpi-shadow-hover: rgba(46, 90, 194, .3);

    border-radius: .8rem;
    border: 1px solid rgba(255,255,255,.18);
    min-height: 122px;
    background: linear-gradient(180deg, var(--kpi-bg-start) 0%, var(--kpi-bg-end) 100%) !important;
    box-shadow: 0 5px 16px var(--kpi-shadow);
    text-decoration: none !important;
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.card.hoverable.card-xl-stretch.bg-success {
    --kpi-bg-start: #2abf7a;
    --kpi-bg-end: #1e9e63;
    --kpi-shadow: rgba(30, 158, 99, .24);
    --kpi-shadow-hover: rgba(30, 158, 99, .32);
}

.card.hoverable.card-xl-stretch.bg-info {
    --kpi-bg-start: #3fa6ea;
    --kpi-bg-end: #2f8fd0;
    --kpi-shadow: rgba(47, 143, 208, .24);
    --kpi-shadow-hover: rgba(47, 143, 208, .32);
}

.card.hoverable.card-xl-stretch.bg-warning {
    --kpi-bg-start: #e7ad3a;
    --kpi-bg-end: #d59422;
    --kpi-shadow: rgba(213, 148, 34, .24);
    --kpi-shadow-hover: rgba(213, 148, 34, .32);
}

.card.hoverable.card-xl-stretch.bg-danger {
    --kpi-bg-start: #e26a77;
    --kpi-bg-end: #d65764;
    --kpi-shadow: rgba(214, 87, 100, .24);
    --kpi-shadow-hover: rgba(214, 87, 100, .32);
}

.card.hoverable.card-xl-stretch.bg-primary:hover,
.card.hoverable.card-xl-stretch.bg-success:hover,
.card.hoverable.card-xl-stretch.bg-info:hover,
.card.hoverable.card-xl-stretch.bg-warning:hover,
.card.hoverable.card-xl-stretch.bg-danger:hover,
.dashboard-light-kpi .dashboard-light-kpi-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 11px 22px var(--kpi-shadow-hover);
    filter: saturate(1.04);
}

.card.hoverable.card-xl-stretch .card-body,
.dashboard-light-kpi .dashboard-light-kpi-card .card-body {
    padding: .95rem .8rem .9rem;
}

.card.hoverable.card-xl-stretch .text-white.fw-bolder.fs-2,
.dashboard-light-kpi .dashboard-light-kpi-card .fs-2 {
    font-size: clamp(1.65rem, 1.35rem + .9vw, 2rem) !important;
    line-height: 1.12;
    margin-top: .2rem !important;
    margin-bottom: .45rem !important;
}

.card.hoverable.card-xl-stretch .text-white.text-center,
.dashboard-light-kpi .dashboard-light-kpi-card .text-white.text-center {
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: .015em;
    text-transform: uppercase;
}

@media (max-width: 991.98px) {
    .card.hoverable.card-xl-stretch .text-white.fw-bolder.fs-2,
    .dashboard-light-kpi .dashboard-light-kpi-card .fs-2 {
        font-size: clamp(1.45rem, 1.2rem + .85vw, 1.75rem) !important;
    }

    .card.hoverable.card-xl-stretch .text-white.text-center,
    .dashboard-light-kpi .dashboard-light-kpi-card .text-white.text-center {
        font-size: .78rem;
    }
}

/* ========================================
   BOTÕES
   ======================================== */
.btn {
    font-family: var(--font-primary);
    font-weight: 500;
    letter-spacing: .01em;
    border-radius: .45rem;
    border-width: 1px;
    font-size: .9rem;
    line-height: 1.35;
    padding: .42rem .85rem;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.btn-sm {
    font-size: .8rem;
    line-height: 1.3;
    padding: .28rem .62rem;
    border-radius: .4rem;
}

.btn-lg {
    font-weight: 600;
    font-size: .98rem;
    line-height: 1.35;
    padding: .58rem 1.08rem;
    border-radius: .5rem;
}

/* Botões de ícone proporcionais ao novo scale global */
.btn.btn-icon {
    width: 2rem;
    height: 2rem;
    min-width: 2rem;
    min-height: 2rem;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.btn.btn-icon.btn-sm {
    width: 1.75rem;
    height: 1.75rem;
    min-width: 1.75rem;
    min-height: 1.75rem;
}

.btn.btn-icon.btn-lg {
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    min-height: 2.25rem;
}

.btn.btn-icon i {
    font-size: .88rem;
    line-height: 1;
}

.btn.btn-icon.btn-sm i {
    font-size: .78rem;
}

.btn.btn-icon.btn-lg i {
    font-size: .98rem;
}
.btn:focus-visible { box-shadow: 0 0 0 .2rem rgba(27,67,150,.25); }

.btn-primary {
    background-color: #1b4396;
    border-color: #1b4396;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    background-color: #16387d;
    border-color: #16387d;
}

.btn-outline-primary {
    color: #1b4396;
    border-color: #1b4396;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active {
    background-color: #1b4396;
    border-color: #1b4396;
    color: #fff;
}

/* Ícones de ação (uso global em tabelas/cards) */
a.btn-arpium-icon,
a.btn-arpium-icon:hover,
a.btn-arpium-icon:focus,
a.btn-arpium-icon:active,
a.btn-arpium-icon:visited {
    text-decoration: none !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}

a.btn-arpium-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    vertical-align: middle;
}

a.btn-arpium-icon i {
    line-height: 1;
    vertical-align: middle;
}

/* ========================================
   TABELAS
   ======================================== */
.table { font-size: var(--font-size-sm); }

.table thead th {
    font-weight: 600;
    font-size: var(--font-size-xs);
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #3F4254;
}

.table tbody td { font-size: var(--font-size-sm); color: #5E6278; vertical-align: middle; }

/* DataTables - botões e toolbar alinhados ao design do sistema */
.dataTables_wrapper .dt-buttons {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    flex-wrap: wrap;
}

.dataTables_wrapper .dt-button,
.dataTables_wrapper a.dt-button,
.dataTables_wrapper button.dt-button {
    font-family: var(--font-primary);
    font-size: .76rem;
    font-weight: 500;
    line-height: 1.2;
    border-radius: .4rem;
    padding: .22rem .52rem !important;
    border: 1px solid transparent;
    box-shadow: none !important;
    background-image: none !important;
    text-shadow: none !important;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.dataTables_wrapper .dt-button,
.dataTables_wrapper .dt-button:visited {
    background: rgba(27,67,150,.1) !important;
    color: #1b4396 !important;
    border-color: transparent !important;
}

.dataTables_wrapper .dt-button:hover,
.dataTables_wrapper .dt-button:focus,
.dataTables_wrapper .dt-button:active,
.dataTables_wrapper .dt-button.active,
.dataTables_wrapper .dt-button:focus-visible {
    background: #1b4396 !important;
    color: #fff !important;
    border-color: #1b4396 !important;
    outline: 0 !important;
}

.dataTables_wrapper .dt-button:focus-visible {
    box-shadow: 0 0 0 .2rem rgba(27,67,150,.25) !important;
}

.dataTables_wrapper .dt-button .dt-button-collection,
.dataTables_wrapper div.dt-button-collection {
    border-radius: .55rem;
    border: 1px solid #e8ebf2;
    box-shadow: 0 8px 20px rgba(28,40,74,.12);
}

/* DataTables - paginação mais compacta */
.dataTables_wrapper .dataTables_paginate {
    font-size: .74rem;
}

.dataTables_wrapper .dataTables_paginate .paginate_button,
.dataTables_wrapper .dataTables_paginate .page-link {
    font-size: .74rem !important;
    line-height: 1.1 !important;
    padding: .16rem .42rem !important;
    min-height: 1.85rem;
    margin-left: .12rem !important;
    border-radius: .35rem !important;
}

.dataTables_wrapper .dataTables_paginate .pagination {
    --bs-pagination-font-size: .74rem;
    --bs-pagination-padding-x: .42rem;
    --bs-pagination-padding-y: .16rem;
    --bs-pagination-border-radius: .35rem;
    margin-bottom: 0;
}

.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
    min-height: 31px;
    font-size: .8rem;
    padding-top: .2rem;
    padding-bottom: .2rem;
}

/* ========================================
   CARDS
   ======================================== */
.card { border: 1px solid #eef1f6; border-radius: .85rem; box-shadow: 0 4px 16px rgba(28,40,74,.05); }
.card-title { font-family: var(--font-headings); font-weight: 600; font-size: 1rem; color: #181C32; }

.card .card-title {
    margin-bottom: 0;
}

.card .card-toolbar {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.card .card-toolbar > .btn,
.card .card-toolbar > .dropdown {
    margin: 0 !important;
}

.card .card-body.p-3,
.card .card-header.p-3,
.card .card-footer.p-3 {
    padding: var(--space-4) !important;
}

.card .card-body.p-1,
.card .card-header.p-1,
.card .card-footer.p-1 {
    padding: var(--space-3) !important;
}

.card .card-footer.d-flex {
    gap: var(--space-2);
}

/* Ajuste fino para cards/listagens legadas */
.content-wrapper .row.g-7 > [class*="col-"] > .card {
    margin-bottom: var(--space-4);
}

.content-wrapper .row.g-7 > [class*="col-"] > .card:last-child {
    margin-bottom: 0;
}

.content-wrapper .row.g-7 > [class*="col-"].mt-1,
.content-wrapper .row.g-7 > [class*="col-"].mt-2 {
    margin-top: 0 !important;
}

.page-toolbar .btn,
.page-toolbar .dropdown {
    margin: 0 !important;
}

.page-toolbar .d-flex.align-items-center.gap-2 {
    gap: var(--space-2) !important;
}

.toolbar-filters-inline {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.toolbar-filter-label {
    margin: 0;
    font-size: var(--font-size-xs);
    color: #5E6278;
    white-space: nowrap;
}

/* Ajustes finos para filtro "Tarefas de hoje" */
.today-filter-dropdown-btn {
    background-color: #f8f9fa;
}

.today-filter-dropdown-order {
    min-width: 180px;
}

.today-filter-control-wide {
    min-width: 260px;
}

.today-filter-search-input {
    min-width: 280px;
    border-radius: 8px;
}

.toolbar-filter-control {
    width: min(100%, 220px) !important;
    min-width: 170px;
}

.toolbar-filter-date {
    width: min(100%, 150px) !important;
    min-width: 140px;
}

.toolbar-filter-search {
    width: min(100%, 320px) !important;
}

.toolbar-filter-search-wide {
    width: min(100%, 400px) !important;
}

.toolbar-filter-check {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    font-size: var(--font-size-xs);
    color: #5E6278;
    white-space: nowrap;
}

.page-toolbar label {
    margin: 0 .25rem 0 0;
    font-size: var(--font-size-xs);
    color: #5E6278;
}

.page-toolbar .form-control,
.page-toolbar .form-select {
    min-height: 2rem;
}

.page-toolbar input[type="search"],
.page-toolbar .form-control[type="search"] {
    width: min(100%, 320px) !important;
}

.page-toolbar select.form-control,
.page-toolbar select.form-control-sm,
.page-toolbar .form-select {
    width: min(100%, 220px) !important;
}

@media (max-width: 991.98px) {
    .page-toolbar input[type="search"],
    .page-toolbar .form-control[type="search"],
    .page-toolbar select.form-control,
    .page-toolbar select.form-control-sm,
    .page-toolbar .form-select {
        width: 100% !important;
        max-width: 100% !important;
    }

    .toolbar-filters-inline {
        width: 100%;
    }

    .toolbar-filter-control,
    .toolbar-filter-date,
    .toolbar-filter-search,
    .toolbar-filter-search-wide {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0;
    }

    .today-filter-control-wide,
    .today-filter-dropdown-order,
    .today-filter-search-input {
        min-width: 0;
        width: 100%;
    }
}

.accordion .accordion-item + .accordion-item {
    margin-top: .35rem;
}

.card > .card-header {
    min-height: 3.4rem;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid #eef1f6;
    gap: var(--space-2);
}

.card > .card-body {
    padding: var(--space-4);
}

.card > .card-footer {
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid #eef1f6;
    gap: var(--space-2);
}

/* Padrão vertical para formulários legados que usam row mb-0 */
.form .row.mb-0 + .row.mb-0 {
    margin-top: var(--space-3);
}

.form .row .col-form-label {
    padding-top: .38rem;
    padding-bottom: .38rem;
}

/* Escala tipográfica global para formulários */
.form .form-control,
.form .form-select,
.form .input-group-text,
form .form-control,
form .form-select,
form .input-group-text {
    font-size: .9rem;
    line-height: 1.35;
}

.form .form-control.form-control-sm,
.form .form-select.form-select-sm,
.form .col-form-label-sm,
.form .form-check-label,
form .form-control.form-control-sm,
form .form-select.form-select-sm,
form .col-form-label-sm,
form .form-check-label {
    font-size: .86rem;
    line-height: 1.3;
}

.form .row .col-form-label,
.form .row .col-form-label-sm,
form .row .col-form-label,
form .row .col-form-label-sm {
    font-weight: 500;
    color: #5E6278;
}

/* ========================================
   SCROLLBAR
   ======================================== */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.25); }
.app-sidebar::-webkit-scrollbar { width: 3px; }
.app-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); }

/* ========================================
   SHIMS DE CLASSES METRONIC
   Compatibilidade para views existentes que
   usam classes Metronic sem Bootstrap equiv.
   ======================================== */

/* Tipografia */
.fs-1  { font-size: 1.75rem !important; }
.fs-2  { font-size: 1.5rem  !important; }
.fs-2x { font-size: 1.5rem  !important; }
.fs-2hx { font-size: 1.625rem !important; }
.fs-2tx { font-size: 1.875rem !important; }
.fs-3  { font-size: 1.25rem !important; }
.fs-3x { font-size: 1.875rem !important; }
.fs-4  { font-size: 1.1rem  !important; }
.fs-4x { font-size: 1.35rem !important; }
.fs-5  { font-size: 1rem    !important; }
.fs-5tx { font-size: 1.125rem !important; }
.fs-6  { font-size: .9rem   !important; }
.fs-7  { font-size: .8rem   !important; }
.fs-8  { font-size: .75rem  !important; }
.fs-9  { font-size: .72rem  !important; }
.fs-base { font-size: 1rem !important; }
.fs-lg { font-size: 1.125rem !important; }
.fs-2qx { font-size: 2rem   !important; }
.fs-3qx { font-size: 2.5rem !important; }

/* Pesos de fonte Metronic */
.fw-semibold { font-weight: 600 !important; }
.fw-bolder { font-weight: 700 !important; }

/* Cores de texto Metronic */
.text-gray-800, .text-gray-900 { color: #3F4254 !important; }
.text-gray-700 { color: #5E6278 !important; }
.text-gray-600 { color: #7E8299 !important; }
.text-gray-500 { color: #A1A5B7 !important; }
.text-gray-400 { color: #B5B5C3 !important; }

/* text-hover-* (usa CSS :hover via atributo de classe) */
a.text-hover-primary:hover   { color: #1b4396 !important; }
a.text-hover-success:hover   { color: #198754 !important; }
a.text-hover-danger:hover    { color: #dc3545 !important; }
a.text-hover-warning:hover   { color: #ffc107 !important; }
a.text-hover-info:hover      { color: #0dcaf0 !important; }
a.text-hover-light:hover     { color: #fff    !important; }

/* Symbol (ícone circular/quadrado) */
.symbol { display: inline-flex; flex-shrink: 0; }
.symbol-label {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    border-radius: .475rem;
    background-color: #f5f8fa;
    overflow: hidden;
}
.symbol-50px        { width: 50px; height: 50px; }
.symbol-50px > .symbol-label { width: 50px; height: 50px; }
/* Botão dentro do symbol-label ocupa todo o espaço sem vazar */
.symbol-label > a.btn,
.symbol-label > button.btn {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: inherit;
}
/* Ícone dentro do symbol-50px fica proporcional ao container */
.symbol-50px .symbol-label > a.btn i,
.symbol-50px .symbol-label > button.btn i {
    font-size: 1.35rem;
}
.symbol-circle > .symbol-label { border-radius: 50%; }
.symbol-25px        { width: 25px; height: 25px; }
.symbol-25px > .symbol-label { width: 25px; height: 25px; }
.symbol-20px        { width: 20px; height: 20px; }
.symbol-20px > .symbol-label { width: 20px; height: 20px; }
.symbol-40px        { width: 40px; height: 40px; }
.symbol-40px > .symbol-label { width: 40px; height: 40px; }
.symbol-35px        { width: 35px; height: 35px; }
.symbol-35px > .symbol-label { width: 35px; height: 35px; }
.symbol-70px        { width: 70px; height: 70px; }
.symbol-70px > .symbol-label { width: 70px; height: 70px; }

/* btn-light-* (variantes Metronic: fundo suave com cor) */
.btn-light-primary { background: rgba(27,67,150,.1);  color: #1b4396; border-color: transparent; }
.btn-light-primary:hover { background: #1b4396; color: #fff; border-color: #1b4396; }
.btn-light-success { background: rgba(25,135,84,.1);  color: #198754; border-color: transparent; }
.btn-light-success:hover { background: #198754; color: #fff; border-color: #198754; }
.btn-light-danger  { background: rgba(220,53,69,.1);  color: #dc3545; border-color: transparent; }
.btn-light-danger:hover  { background: #dc3545; color: #fff; border-color: #dc3545; }
.btn-light-warning { background: rgba(255,193,7,.15); color: #856404; border-color: transparent; }
.btn-light-warning:hover { background: #ffc107; color: #000; border-color: #ffc107; }
.btn-light-info    { background: rgba(13,202,240,.1); color: #055160; border-color: transparent; }
.btn-light-info:hover    { background: #0dcaf0; color: #000; border-color: #0dcaf0; }

/* badge-light-* (compatibilidade Metronic) */
.badge-light-primary { background: rgba(27,67,150,.12) !important; color: #1b4396 !important; }
.badge-light-success { background: rgba(25,135,84,.12) !important; color: #198754 !important; }
.badge-light-danger  { background: rgba(220,53,69,.12) !important; color: #dc3545 !important; }
.badge-light-warning { background: rgba(255,193,7,.18) !important; color: #856404 !important; }
.badge-light-info    { background: rgba(13,202,240,.14) !important; color: #055160 !important; }
.badge-light-secondary { background: rgba(108,117,125,.14) !important; color: #495057 !important; }

/* bg-light-* (compatibilidade Metronic) */
.bg-light-primary { background-color: rgba(27,67,150,.1) !important; }
.bg-light-success { background-color: rgba(25,135,84,.1) !important; }
.bg-light-danger  { background-color: rgba(220,53,69,.1) !important; }
.bg-light-warning { background-color: rgba(255,193,7,.18) !important; }
.bg-light-info    { background-color: rgba(13,202,240,.12) !important; }

/* Bordas utilitárias Metronic */
.border-dashed { border-style: dashed !important; }
.border-1 { border-width: 1px !important; }

/* Misc */
.flex-stack { justify-content: space-between !important; }
.mh-325px   { max-height: 325px; }
.scroll-y   { overflow-y: auto; }
.hidden     { display: none !important; }

/* ========================================
   SHIMS METRONIC — ESPAÇAMENTO (escala 4px)
   Metronic: p-6=24px, g-7=28px, me-6=24px, me-5=20px, mb-6=24px
   ======================================== */
.p-6  { padding: 1.5rem !important; }
.p-7  { padding: 1.75rem !important; }
.p-12 { padding: 3rem !important; }
.p-20 { padding: 5rem !important; }
.me-6 { margin-right: 1.5rem !important; }
.me-10 { margin-right: 2.5rem !important; }
.ms-6 { margin-left:  1.5rem !important; }
.mb-6 { margin-bottom: 1.5rem !important; }
.mb-7 { margin-bottom: 1.75rem !important; }
.mb-8 { margin-bottom: 2rem !important; }
.mb-9 { margin-bottom: 2.25rem !important; }
.mb-10 { margin-bottom: 2.5rem !important; }
.mb-13 { margin-bottom: 3.25rem !important; }
.mt-6 { margin-top:   1.5rem !important; }
.mt-8 { margin-top: 2rem !important; }
.mt-10 { margin-top: 2.5rem !important; }
.mt-9 { margin-top: 2.25rem !important; }
.mt-15 { margin-top: 3.75rem !important; }
.my-10 { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; }
.my-6 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
.my-8 { margin-top: 2rem !important; margin-bottom: 2rem !important; }
.me-sm-5 { margin-right: 1.25rem !important; }
.g-7  { gap: 1.75rem !important; }

/* Largura/altura utilitárias Metronic */
.w-5px { width: 5px !important; }
.w-10px { width: 10px !important; }
.w-15px { width: 15px !important; }
.w-20px { width: 20px !important; }
.w-25px { width: 25px !important; }
.w-30px { width: 30px !important; }
.w-100px { width: 100px !important; }
.w-150px { width: 150px !important; }
.w-175px { width: 175px !important; }
.w-200px { width: 200px !important; }
.w-275px { width: 275px !important; }
.w-300px { width: 300px !important; }
.w-375px { width: 375px !important; }

.h-2px { height: 2px !important; }
.h-10px { height: 10px !important; }
.h-15px { height: 15px !important; }
.h-20px { height: 20px !important; }
.h-25px { height: 25px !important; }
.h-30px { height: 30px !important; }
.h-40px { height: 40px !important; }
.h-200px { height: 200px !important; }
.h-400px { height: 400px !important; }

.min-w-50px { min-width: 50px !important; }
.min-w-100px { min-width: 100px !important; }
.min-w-125px { min-width: 125px !important; }
.min-w-130px { min-width: 130px !important; }
.min-w-140px { min-width: 140px !important; }
.min-w-150px { min-width: 150px !important; }
.min-w-175px { min-width: 175px !important; }
.min-w-180px { min-width: 180px !important; }
.min-w-200px { min-width: 200px !important; }
.min-w-300px { min-width: 300px !important; }
.min-w-700px { min-width: 700px !important; }
.min-w-750px { min-width: 750px !important; }

.mw-650px { max-width: 650px !important; }

/* Line-height utilitárias */
.lh-0 { line-height: 0 !important; }
.lh-1 { line-height: 1 !important; }

/* Cores de borda Metronic */
.border-gray-300 { border-color: #d0d5dd !important; }
.border-gray-200 { border-color: #e8ebf2 !important; }

/* ========================================
   TOOLTIP DARK
   ======================================== */
.tooltip-dark .tooltip-inner {
    background-color: #1e2139;
    color: #fff;
    font-size: .78rem;
}
.tooltip-dark.bs-tooltip-top    .tooltip-arrow::before { border-top-color:    #1e2139; }
.tooltip-dark.bs-tooltip-bottom .tooltip-arrow::before { border-bottom-color: #1e2139; }
.tooltip-dark.bs-tooltip-start  .tooltip-arrow::before { border-left-color:   #1e2139; }
.tooltip-dark.bs-tooltip-end    .tooltip-arrow::before { border-right-color:  #1e2139; }

/* ========================================
   ENVIRONMENT BANNER
   ======================================== */
.environment-banner {
    width: 100%;
    font-size: .82rem;
    font-weight: 500;
    z-index: 1050;
    transition: all .3s ease;
    flex-shrink: 0;
}

.environment-banner .container-fluid { padding: 0 1.25rem; }

/* Estados por ambiente */
.environment-banner.env-banner-development { background: #198754; color: #fff; border-bottom: 2px solid #146c43; }
.environment-banner.env-banner-staging     { background: #0d6efd; color: #fff; border-bottom: 2px solid #0a58ca; }
.environment-banner.env-banner-beta        { background: #dc3545; color: #fff; border-bottom: 2px solid #b02a37; }
.environment-banner.env-banner-testing     { background: #6f42c1; color: #fff; border-bottom: 2px solid #59359a; }
.environment-banner.env-banner-default     { background: #6c757d; color: #fff; border-bottom: 2px solid #565e64; }

/* Minimizado: colapsa a altura */
.environment-banner.minimized { overflow: hidden; height: 0 !important; border: none; }

/* Animação do ícone de warning */
@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:.4; } }
.pulse-animation { animation: pulse 1.5s ease-in-out infinite; }

/* Quando o banner está visível, o app-header sticky precisa compensar a altura do banner */
body.has-environment-banner .app-header {
    top: var(--banner-height, 44px);
}
body.has-environment-banner.minimized .app-header {
    top: 0;
}

/* Sidebar fixa também precisa descer para não sobrepor o banner */
body.has-environment-banner .app-sidebar {
    top: var(--banner-height, 44px);
}
body.has-environment-banner.minimized .app-sidebar {
    top: 0;
}

/* ========================================
   SELECT2 — Tema Bootstrap 5
   ======================================== */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border: 1px solid #dee2e6;
    border-radius: .45rem;
    background-color: #fff;
    min-height: calc(1.5em + .75rem + 2px);
    padding: .375rem .5rem;
    font-size: .875rem;
    line-height: 1.5;
    color: #3F4254;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.select2-container--default .select2-selection--single {
    display: flex;
    align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #3F4254;
    line-height: normal;
    padding: 0;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 50%;
    transform: translateY(-50%);
    right: .5rem;
    height: auto;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #e7edfa;
    border: 1px solid #c7d2f0;
    border-radius: .3rem;
    color: #1b4396;
    font-size: .78rem;
    padding: .1rem .4rem;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: #1b4396;
    margin-right: .3rem;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: #dc3545;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: #86b7fe;
    box-shadow: 0 0 0 .2rem rgba(27,67,150,.18);
    outline: 0;
}

.select2-dropdown {
    border: 1px solid #dee2e6;
    border-radius: .45rem;
    box-shadow: 0 4px 16px rgba(28,40,74,.1);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #1b4396;
    color: #fff;
}

.select2-container--default .select2-results__option[aria-selected=true] {
    background-color: #e7edfa;
    color: #1b4396;
}

.select2-search--dropdown .select2-search__field {
    border: 1px solid #dee2e6;
    border-radius: .35rem;
    padding: .3rem .5rem;
    font-size: .87rem;
}

.select2-results__option { font-size: .87rem; padding: .4rem .7rem; }
