/* =========================================================
   GERAL
   ========================================================= */
body, html { height: 100%; }
.body, html, h1, h2, h3, h4, h5, h6, span { font-family: 'Rawline','Raleway',sans-serif; }

.bg-left {
    background-color: #123a78;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
}

/* Menu aberto do avatar */
.header-login .br-list#avatar-menu {
    position: absolute;
    right: 0;
    top: calc(100% + .25rem);
    z-index: 10000;
    min-width: 260px;
}

.header-login,
.header-login .header-sign-in {
    position: relative;
    overflow: visible;
}

.header-actions .header-functions {
    position: relative;
}

.header-actions .header-functions > .br-list {
    position: absolute;
    right: 0;
    top: calc(100% + .25rem);
    z-index: 10000;
    min-width: 220px;
}

.header-actions .header-functions > .br-list[hidden] {
    display: none;
}

.header-actions .header-functions .br-list .br-item {
    display: block;
    width: 100%;
}

.header-actions .header-functions .br-item .br-button {
    width: 100%;
    justify-content: flex-start;
    border-radius: 4px;
    padding: 0.5rem 0.75rem;
}

.header-actions .header-functions .br-item .br-button i {
    display: none;
}

@media (min-width: 1280px) {
    .br-header .header-actions .header-functions [data-toggle="dropdown"] {
        display: inline-flex;
    }
    .br-header .header-actions .header-functions > .br-list {
        display: none;
        position: absolute;
        right: 0;
        top: calc(100% + .25rem);
    }
    .br-header .header-actions .header-functions > .br-list.open {
        display: block;
    }
    .br-header .header-actions .header-functions > .br-list[hidden] {
        display: none !important;
    }
}

.avatar-menu {
    min-width: 260px;
    padding: 0.5rem 0;
}

.br-header .header-actions .header-functions .admin-menu {
    min-width: 260px;
    padding: 0.5rem 0;
}

.avatar-menu .br-item {
    padding: 0.65rem 1rem;
}

.br-header .header-actions .header-functions .admin-menu .br-item {
    color: inherit;
    display: block;
    padding: 0.65rem 1rem;
    text-decoration: none;
}

.br-header .header-actions .header-functions .admin-menu .br-item + .br-item {
    border-top: 1px solid #e0e0e0;
}

.br-header .header-actions .header-functions .admin-menu .br-item:hover {
    background-image: linear-gradient(rgba(var(--color-rgb), var(--hover)), rgba(var(--color-rgb), var(--hover)));
}

.br-header .header-actions .header-functions .admin-menu .br-item:active {
    background-image: linear-gradient(rgba(var(--color-rgb), var(--pressed)), rgba(var(--color-rgb), var(--pressed)));
}

.avatar-menu-header {
    border-bottom: 1px solid #e0e0e0;
    background: #f8f9fb;
}

.br-header .header-actions .header-functions .admin-menu-header {
    border-bottom: 1px solid #e0e0e0;
    background: #f8f9fb;
}

.input-group .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-right-radius: .25rem;
    border-bottom-right-radius: .25rem;
}

.nav-menu-lateral,
.nav-menu-lateral .nav-link,
.nav-menu-lateral .nav-header,
.nav-menu-lateral .nav-link p,
.nav-menu-lateral .nav-link i {
    color: rgba(240,240,240,.6) !important;
}

.text-weight-semi-bold { font-weight: 600; }
.dropdown-menu-lg { width: 250px; }

.rounded-container {
    background-color: #f9f9f9;
    border-radius: 10px;
    box-shadow: 0 8px 16px 0 rgba(0,0,0,.2);
    z-index: 1;
    position: absolute;
    left: -100px;
}

.required:after { content: " *"; font-size: 16px; color: red; }

td.truncate {
    max-width: 300px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.encerrado td:not(.td-acao) { opacity: .3; }

.badge-primary{ background:#071d41; color:#fff; font-weight:400; }
.badge-outline-primary{ background:#FFF; color:#071d41; border:1px solid #071d41; font-weight:400; }
.badge-secondary{ background:#333; color:#F0F0F0; font-weight:400; }
.badge-disabled{ background:#F0F0F0; color:#757575; font-weight:400; }
.badge-danger{ background:#E52207; color:#fff; font-weight:400; }
.badge-warning{ background:#FFCD07; color:#000; font-weight:400; }
.badge-success{ background:#168821; color:#fff; font-weight:400; }

.autor-info { font-size: 10px; text-align: right; margin: 0; font-weight: normal; }

/* Evitar barra horizontal global quando qualquer dropdown abrir */
html, body { overflow-x: hidden; }

/* =========================================================
   BR-SELECT — base alinhada ao DS GOV.BR
   ========================================================= */
.br-select,
.br-select-legacy{
    --select-divider: 1px solid var(--color-secondary-04,#dcdfe5);
    --select-shadow: 0 8px 16px rgba(12,50,111,.20);
    --select-radius: 4px;
    --select-min-h: 46px;
    --select-font: 'Rawline','Raleway',sans-serif;
    width: 100%;
    max-width: none;   /* remove o cap */
    min-width: 0;      /* permite encolher se a coluna for menor */
    position: relative;
}

/* garantia extra: o container do Select2 sempre 100% */
.br-select .br-input .select2,
.br-select .br-input .select2-container,
.br-select-legacy .br-input .select2,
.br-select-legacy .br-input .select2-container{
    width: 100% !important;
    max-width: 100% !important;
}
/* ===================== SELECT NATIVO ===================== */
.br-select .br-input > select,
.br-select-legacy .br-input > select{
    display:block; width:100%;
    min-height:var(--select-min-h); height:var(--select-min-h);
    padding:0 2.25rem 0 .75rem;
    border:1px solid #b3b8c2; border-radius:var(--select-radius);
    background:#fff; background-image:none; appearance:none;
    font:500 16px/1.4 var(--select-font); color:#111;
    transition:border-color .2s, box-shadow .2s, background-color .2s;
}
.br-select .br-input > select:focus{
    border:2px solid #c2850c; box-shadow:0 0 0 1px rgba(194,133,12,.25); outline:0;
}
.br-select .br-input > select:disabled{
    background:#f5f5f5; border-color:#d0d0d0; color:rgba(0,0,0,.4);
}
.br-select .br-input > select[aria-invalid="true"]{
    border:2px solid #c22f2f!important; box-shadow:0 0 0 1px rgba(194,47,47,.2);
}

/* Caret do nativo (somente quando NÃO for Select2) */
.br-select .br-input::after{
    content:"\f107"; font-family:"Font Awesome 5 Free"; font-weight:900;
    position:absolute; right:.35rem; top:50%; transform:translateY(-50%);
    width:2rem; height:2rem; display:flex; align-items:center; justify-content:center;
    pointer-events:none; color:var(--interactive,#0c326f); font-size:.95rem;
}
/* Se for Select2, não mostra a seta do wrapper */
.br-select .br-input:has(.select2)::after{ display:none!important; content:none!important; }
.br-select .br-input.has-select2::after{ display:none!important; content:none!important; }

/* ====================== SELECT2 (single) ====================== */
/* Esconde o select fonte */
.br-select .br-input select.select2-hidden-accessible{
    position:absolute!important; width:0!important; height:0!important;
    margin:0!important; padding:0!important; border:0!important;
    clip:rect(0 0 0 0); overflow:hidden!important;
}

/* Container 100% da largura do .br-input */
.br-select .br-input select.select2-hidden-accessible + .select2,
.br-select .br-input .select2,
.br-select .br-input .select2-container{
    display:block; width:100%!important; max-width:100%!important;
    font-family:var(--select-font);
}

/* Caixa visual */
.br-select .select2-selection--single{
    position:relative; display:flex; align-items:center;
    min-height:var(--select-min-h); height:var(--select-min-h);
    padding:0 3rem 0 2.25rem; /* espaço da lupa e da seta */
    border:1px solid #b3b8c2; border-radius:var(--select-radius); background:#fff;
    font:500 16px/1.4 var(--select-font);
    transition:border-color .2s, box-shadow .2s, background-color .2s;
}
/* Lupa à esquerda */
.br-select .select2-selection--single::before{
    content:"\f002"; font-family:"Font Awesome 5 Free"; font-weight:900;
    position:absolute; left:.85rem; top:50%; transform:translateY(-50%);
    color:#7a7c82; font-size:.95rem;
}
/* Texto/placeholder alinhados */
.br-input select.select2-hidden-accessible + .select2 .select2-selection__rendered{
    padding-left:2.25rem!important; padding-right:2.25rem!important;
    color:#111; line-height:1.4; width:100%;
}
.br-select .select2-selection__placeholder{ color:rgba(0,0,0,.45); font-style:italic; }

/* Seta: somente o <b> nativo do Select2 */
.br-select .select2-selection__arrow::before{ content:none!important; }
.br-select .select2-selection__arrow{
    position:absolute; right:.35rem; top:50%; transform:translateY(-50%);
    width:2rem; height:2rem; display:flex; align-items:center; justify-content:center;
    pointer-events:none; background-image:none!important;
}
.br-select .select2-selection__arrow b{
    display:inline-block!important; width:0; height:0; border-style:solid; margin-top:2px;
    border-width:6px 5px 0 5px;                                   /* ↓ fechado */
    border-color:var(--interactive,#0c326f) transparent transparent transparent;
}
.br-select .select2-container--open .select2-selection__arrow b{
    border-width:0 5px 6px 5px;                                   /* ↑ aberto */
    border-color:transparent transparent var(--interactive,#0c326f) transparent;
}

/* Estados */
.br-select .select2-container--focus .select2-selection--single,
.br-select .select2-container--open  .select2-selection--single{
    border:2px solid #c2850c!important; box-shadow:0 0 0 1px rgba(194,133,12,.25); background:#fff;
}
.br-select .select2-container--disabled .select2-selection--single{
    background:#f5f5f5; border-color:#d0d0d0; color:rgba(0,0,0,.4);
}
.br-select .br-input select[aria-invalid="true"] + .select2 .select2-selection--single{
    border:2px solid #c22f2f!important; box-shadow:0 0 0 1px rgba(194,47,47,.2);
}

/* ==================== SELECT2 (dropdown) ==================== */
.select2-container .select2-dropdown{
    border:1px solid #d2d5d9; border-top:none;
    border-radius:0 0 var(--select-radius) var(--select-radius);
    box-shadow:var(--select-shadow);
    padding:.25rem 0 .25rem 0; box-sizing:border-box;
    z-index:10050; overflow:visible; background:var(--bg-color,#fff);
}
.select2-container .select2-dropdown--above{
    border-top:1px solid #d2d5d9; border-bottom:none;
    border-radius:var(--select-radius) var(--select-radius) 0 0;
}
.select2-container--open{ z-index:10050!important; overflow:visible; }

/* Busca no dropdown */
.select2-search--dropdown{ padding:.5rem .75rem; box-sizing:border-box; }
.select2-search--dropdown .select2-search__field{
    width:100%!important; margin:0!important; padding:.5rem .75rem;
    border:1px solid #b3b8c2; border-radius:var(--select-radius); font-size:15px; outline:0; box-sizing:border-box;
}
.select2-search--dropdown .select2-search__field:focus{
    border-color:#c2850c; box-shadow:0 0 0 1px rgba(194,133,12,.2);
}

/* Lista de opções */
.select2-results{ max-height:none; overflow-x:hidden; }
.select2-results__options{
    max-height:404px; overflow-y:auto; overflow-x:hidden; margin:0; padding:0;
}
.select2-results__option{
    padding:.85rem 1rem; border-bottom:var(--select-divider); color:#111; font-size:15px;
    white-space:normal; word-break:break-word;
}
.select2-results__option:last-child{ border-bottom:none; }
.select2-results__option--highlighted[aria-selected]{
    background:linear-gradient(rgba(12,50,111,.08), rgba(12,50,111,.08))!important; color:#0c326f!important;
}
.select2-results__option[aria-selected="true"]{
    background:#fffbe6!important; color:#0c326f!important; font-weight:600;
}

/* ================== SELECT2 (multiple / tags) ================== */
.br-select .select2-selection--multiple{
    position:relative; min-height:var(--select-min-h);
    border:1px solid #b3b8c2; border-radius:var(--select-radius); background:#fff;
    padding:4px 2.5rem 4px 2.25rem; display:flex; align-items:center; gap:.25rem; flex-wrap:wrap;
}
.br-select .select2-selection--multiple::before{
    content:"\f002"; font-family:"Font Awesome 5 Free"; font-weight:900;
    position:absolute; left:.85rem; top:50%; transform:translateY(-50%);
    color:#7a7c82; font-size:.95rem;
}
.br-select .select2-selection--multiple .select2-selection__rendered{
    display:flex; flex-wrap:wrap; gap:.25rem .5rem; padding:0; margin:0;
}
.br-select .select2-selection--multiple .select2-selection__choice{
    border:1px solid #d2d5d9; background:#f6f7f9; border-radius:12px;
    padding:.15rem .5rem; font-size:.875rem; color:#0c326f;
}
.br-select .select2-selection--multiple .select2-selection__choice__remove{
    margin-left:.25rem; color:#7a7c82;
}
.br-select .select2-container--focus .select2-selection--multiple,
.br-select .select2-container--open  .select2-selection--multiple{
    border:2px solid #c2850c!important; box-shadow:0 0 0 1px rgba(194,133,12,.25);
}
/* caret único no multiple */
.br-select .select2-selection--multiple .select2-selection__arrow{ display:none; }
.br-select .select2-selection--multiple::after{
    content:""; position:absolute; right:.35rem; top:50%; transform:translateY(-50%);
    width:0; height:0; border-style:solid;
    border-width:6px 5px 0 5px; border-color:var(--interactive,#0c326f) transparent transparent transparent;
    pointer-events:none;
}
.br-select .select2-container--open .select2-selection--multiple::after{
    border-width:0 5px 6px 5px; border-color:transparent transparent var(--interactive,#0c326f) transparent;
}

/* ==== CLEAR (×) — SINGLE ==== */
.br-select .select2-selection--single .select2-selection__clear{
    position: absolute;
    right: 2.35rem;                 /* espaço antes da seta */
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    padding: 0 .25rem;
    line-height: 1;
    cursor: pointer;
    color: #7a7c82;
    z-index: 2;                     /* acima do texto */
}
.br-select .select2-selection--single .select2-selection__clear:hover{
    color: #0c326f;
}

/* dá folga para o texto quando há clear */
.br-input select.select2-hidden-accessible + .select2:has(.select2-selection__clear)
.select2-selection__rendered{
    padding-right: 3.75rem !important; /* texto não colide com o clear + seta */
}

/* fallback (se o :has não pegar no seu navegador) – pode deixar sempre maior */
.br-input select.select2-hidden-accessible + .select2 .select2-selection__rendered{
    padding-right: 3.75rem !important;
}

/* ==== CLEAR (×) — MULTIPLE ==== */
.br-select .select2-selection--multiple .select2-selection__clear{
    position: absolute;
    right: 2.35rem;                 /* antes da seta/caret do container */
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    padding: 0 .25rem;
    line-height: 1;
    cursor: pointer;
    color: #7a7c82;
    z-index: 2;
}

/* abre espaço à direita para o clear no multiple */
.br-select .select2-selection--multiple{
    padding-right: 3.75rem;
}

/* garante que o caret continue visível à direita do clear */
.br-select .select2-selection__arrow{
    right: .35rem;
    z-index: 1;
}



/* ================= Acessórios e correções ================= */
html, body{ overflow-x:hidden; }            /* evita scroll lateral com dropdown */
.br-modal{ overflow:visible; }              /* dropdown não pode ser cortado */
.has-error .select2-selection{ border:2px solid #c22f2f!important; }
.has-error .invalid-feedback{ color:#c22f2f; font-weight:500; }


/* Em modais: lista jamais cortada */
.br-modal{ overflow:visible; }
.select2-container--open{ z-index:10050!important; }
html,body{ overflow-x:hidden; } /* evita scroll lateral com dropdown aberto */

/* Feedback legado */
.has-error .select2-selection{ border:2px solid #c22f2f!important; }
.has-error .invalid-feedback{ color:#c22f2f; font-weight:500; }


/* 8) Evitar barra horizontal global quando o dropdown abre */
html, body{ overflow-x:hidden; }



/* Feedback legado */
.has-error .select2-selection{ border:2px solid #c22f2f !important; }
.has-error .invalid-feedback{ color:#c22f2f; font-weight:500; }

/* Em modais DS: dropdown não pode ser cortado */
.br-modal { overflow: visible; }

/* =========================================================
   FLATPICKR (mantido)
   ========================================================= */
.flatpickr-calendar{
    background:transparent; opacity:0; display:none; text-align:center; visibility:hidden; padding:0;
    -webkit-animation:none; animation:none; direction:ltr; border:0; font-size:14px; line-height:24px; border-radius:5px;
    position:absolute; width:307.875px; box-sizing:border-box; touch-action:manipulation; background:#fff;
    -webkit-box-shadow:1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,.08);
    box-shadow:1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,.08)
}
.flatpickr-calendar.open, .flatpickr-calendar.inline{ opacity:1; max-height:640px; visibility:visible; }
.flatpickr-calendar.open{ display:inline-block; z-index:99999; }
.flatpickr-calendar.animate.open{ -webkit-animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1); animation:fpFadeInDown 300ms cubic-bezier(.23,1,.32,1) }
.flatpickr-calendar .inline{ display:block; position:relative; top:2px }
.flatpickr-calendar.static{ position:absolute; top:calc(100% + 2px) }
.flatpickr-calendar.static.open{ z-index:999; display:block }
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){ -webkit-box-shadow:none !important; box-shadow:none !important }
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){ -webkit-box-shadow:-2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; box-shadow:-2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6 }
.flatpickr-calendar .hasWeeks .dayContainer, .flatpickr-calendar .hasTime .dayContainer{ border-bottom:0; border-bottom-right-radius:0; border-bottom-left-radius:0 }
.flatpickr-calendar .hasWeeks .dayContainer{ border-left:0 }
.flatpickr-calendar.hasTime .flatpickr-time{ height:40px; border-top:1px solid #e6e6e6 }
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{ height:auto }
.flatpickr-calendar:before, .flatpickr-calendar:after{
    position:absolute; display:block; pointer-events:none; border:solid transparent; content:'';
    height:0; width:0; left:22px
}
.flatpickr-calendar.rightMost:before, .flatpickr-calendar.arrowRight:before, .flatpickr-calendar.rightMost:after, .flatpickr-calendar.arrowRight:after{ left:auto; right:22px }
.flatpickr-calendar.arrowCenter:before, .flatpickr-calendar.arrowCenter:after{ left:50%; right:50% }
.flatpickr-calendar:before{ border-width:5px; margin:0 -5px }
.flatpickr-calendar:after{ border-width:4px; margin:0 -4px }
.flatpickr-calendar.arrowTop:before, .flatpickr-calendar.arrowTop:after{ bottom:100% }
.flatpickr-calendar.arrowTop:before{ border-bottom-color:#e6e6e6 }
.flatpickr-calendar.arrowTop:after{ border-bottom-color:#fff }
.flatpickr-calendar.arrowBottom:before, .flatpickr-calendar.arrowBottom:after{ top:100% }
.flatpickr-calendar.arrowBottom:before{ border-top-color:#e6e6e6 }
.flatpickr-calendar.arrowBottom:after{ border-top-color:#fff }
.flatpickr-calendar:focus{ outline:0 }
.flatpickr-wrapper{ position:relative; display:inline-block }
.flatpickr-months{ display:flex }
.flatpickr-months .flatpickr-month{ background:transparent; color:rgba(0,0,0,.9); fill:rgba(0,0,0,.9); height:34px; line-height:1; text-align:center; position:relative; user-select:none; overflow:hidden; flex:1 }
.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month{
    user-select:none; text-decoration:none; cursor:pointer; position:absolute; top:0; height:34px; padding:10px; z-index:3; color:rgba(0,0,0,.9); fill:rgba(0,0,0,.9)
}
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, .flatpickr-months .flatpickr-next-month.flatpickr-prev-month{ left:0 }
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, .flatpickr-months .flatpickr-next-month.flatpickr-next-month{ right:0; }
.flatpickr-months .flatpickr-prev-month:hover, .flatpickr-months .flatpickr-next-month:hover{ color:#1351b4; font-weight:bold; }
.flatpickr-months .flatpickr-prev-month svg, .flatpickr-months .flatpickr-next-month svg{ width:14px; height:14px }
.flatpickr-months .flatpickr-prev-month svg path, .flatpickr-months .flatpickr-next-month svg path{ transition:fill .1s; fill:inherit; }
.numInputWrapper{ position:relative; height:auto }
.numInputWrapper input, .numInputWrapper span{ display:inline-block }
.numInputWrapper input{ width:100% }
.numInputWrapper input::-ms-clear{ display:none }
.numInputWrapper input::-webkit-outer-spin-button, .numInputWrapper input::-webkit-inner-spin-button{ margin:0; -webkit-appearance:none }
.numInputWrapper span{
    position:absolute; right:0; width:14px; padding:0 4px 0 2px; height:50%; line-height:50%;
    opacity:0; cursor:pointer; border:1px solid rgba(57,57,57,.15); box-sizing:border-box
}
.numInputWrapper span:hover{ background:rgba(0,0,0,.1) }
.numInputWrapper span:active{ background:rgba(0,0,0,.2) }
.numInputWrapper span:after{ display:block; content:""; position:absolute }
.numInputWrapper span.arrowUp{ top:0; border-bottom:0 }
.numInputWrapper span.arrowUp:after{ border-left:4px solid transparent; border-right:4px solid transparent; border-bottom:4px solid rgba(57,57,57,.6); top:26% }
.numInputWrapper span.arrowDown{ top:50% }
.numInputWrapper span.arrowDown:after{ border-left:4px solid transparent; border-right:4px solid transparent; border-top:4px solid rgba(57,57,57,.6); top:40% }
.numInputWrapper span svg{ width:inherit; height:auto }
.numInputWrapper span svg path{ fill:rgba(0,0,0,.5) }
.numInputWrapper:hover{ background:rgba(0,0,0,.05) }
.numInputWrapper:hover span{ opacity:1 }
.flatpickr-current-month{
    font-size:135%; line-height:inherit; font-weight:300; color:inherit; position:absolute; width:75%;
    left:12.5%; padding:7.48px 0 0 0; height:34px; display:inline-block; text-align:center; transform:translate3d(0,0,0)
}
.flatpickr-current-month span.cur-month{ font-family:inherit; font-weight:700; color:inherit; display:inline-block; margin-left:.5ch; padding:0 }
.flatpickr-current-month span.cur-month:hover{ background:rgba(0,0,0,.05) }
.flatpickr-current-month .numInputWrapper{ width:6ch; width:7ch \0; display:inline-block }
.flatpickr-current-month .numInputWrapper span.arrowUp:after{ border-bottom-color:rgba(0,0,0,.9) }
.flatpickr-current-month .numInputWrapper span.arrowDown:after{ border-top-color:rgba(0,0,0,.9) }
.flatpickr-current-month input.cur-year{
    background:transparent; box-sizing:border-box; color:inherit; cursor:text; padding:0 0 0 .5ch; margin:0;
    display:inline-block; font-size:inherit; font-family:inherit; font-weight:300; line-height:inherit; height:auto; border:0; border-radius:0; appearance:textfield
}
.flatpickr-current-month input.cur-year:focus{ outline:0 }
.flatpickr-current-month input.cur-year[disabled], .flatpickr-current-month input.cur-year[disabled]:hover{
    font-size:100%; color:rgba(0,0,0,.5); background:transparent; pointer-events:none
}
.flatpickr-current-month .flatpickr-monthDropdown-months{
    appearance:menulist; background:transparent; border:none; border-radius:0; box-sizing:border-box; color:inherit; cursor:pointer;
    font-size:inherit; font-family:inherit; font-weight:300; height:auto; line-height:inherit; margin:-1px 0 0 0; outline:none; padding:0 0 0 .5ch; position:relative; vertical-align:initial; width:auto
}
.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
.flatpickr-current-month .flatpickr-monthDropdown-months:active{ outline:none }
.flatpickr-current-month .flatpickr-monthDropdown-months:hover{ background:rgba(0,0,0,.05) }
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{ background-color:transparent; outline:none; padding:0 }
.flatpickr-weekdays{
    background:transparent; text-align:center; overflow:hidden; width:100%; display:flex; align-items:center; height:28px
}
.flatpickr-weekdays .flatpickr-weekdaycontainer{ display:flex; flex:1 }
span.flatpickr-weekday{
    cursor:default; font-size:90%; background:transparent; color:rgba(0,0,0,.54); line-height:1; margin:0; text-align:center; display:block; flex:1; font-weight:bolder
}
.dayContainer, .flatpickr-weeks{ padding:1px 0 0 0 }
.flatpickr-days{ position:relative; overflow:hidden; display:flex; align-items:flex-start; width:307.875px }
.flatpickr-days:focus{ outline:0 }
.dayContainer{
    padding:0; outline:0; text-align:left; width:307.875px; min-width:307.875px; max-width:307.875px; box-sizing:border-box;
    display:inline-block; display:-ms-flexbox; display:-webkit-box; display:-webkit-flex; display:flex; flex-wrap:wrap; justify-content:space-around; transform:translate3d(0,0,0); opacity:1
}
.dayContainer + .dayContainer{ -webkit-box-shadow:-1px 0 0 #e6e6e6; box-shadow:-1px 0 0 #e6e6e6 }
.flatpickr-day{
    background:none; border:1px solid transparent; border-radius:150px; box-sizing:border-box; color:#393939; cursor:pointer; font-weight:400;
    width:14.2857143%; flex-basis:14.2857143%; max-width:39px; height:39px; line-height:39px; margin:0; display:inline-block; position:relative; justify-content:center; text-align:center
}
.flatpickr-day.inRange, .flatpickr-day:hover, .flatpickr-day:focus{ cursor:pointer; outline:0; background:#e6e6e6; border-color:#e6e6e6 }
.flatpickr-day.today{ border-color:transparent; background-color:#fdf5e6; color:#d54309; font-weight:600; }
.flatpickr-day.today:hover, .flatpickr-day.today:focus{ border-color:#959ea9; background:#959ea9; color:#fff }
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange,
.flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover{
    background:#569ff7; box-shadow:none; color:#fff; border-color:#569ff7
}
.flatpickr-day.selected.startRange{ border-radius:50px 0 0 50px }
.flatpickr-day.selected.endRange{ border-radius:0 50px 50px 0 }
.flatpickr-day.inRange{ border-radius:0; box-shadow:-5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6 }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay,
.flatpickr-day.notAllowed{ color:rgba(57,57,57,.3); background:transparent; border-color:transparent; cursor:default }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover{ cursor:not-allowed; color:rgba(57,57,57,.1) }
.flatpickr-day.week.selected{ border-radius:0; box-shadow:-5px 0 0 #569ff7, 5px 0 0 #569ff7 }
.flatpickr-day.hidden{ visibility:hidden }
.rangeMode .flatpickr-day{ margin-top:1px }
.flatpickr-weekwrapper{ float:left }
.flatpickr-weekwrapper .flatpickr-weeks{ padding:0 12px; -webkit-box-shadow:1px 0 0 #e6e6e6; box-shadow:1px 0 0 #e6e6e6 }
.flatpickr-weekwrapper .flatpickr-weekday{ float:none; width:100%; line-height:28px }
.flatpickr-weekwrapper span.flatpickr-day, .flatpickr-weekwrapper span.flatpickr-day:hover{
    display:block; width:100%; max-width:none; color:rgba(57,57,57,.3); background:transparent; cursor:default; border:none
}
.flatpickr-innerContainer{ display:flex; box-sizing:border-box; overflow:hidden }
.flatpickr-rContainer{ display:inline-block; padding:0; box-sizing:border-box }
.flatpickr-time{
    text-align:center; outline:0; display:flex; height:0; line-height:40px; max-height:40px; box-sizing:border-box; overflow:hidden
}
.flatpickr-time:after{ content:""; display:table; clear:both }
.flatpickr-time .numInputWrapper{ flex:1; width:40%; height:40px; float:left }
.flatpickr-time .numInputWrapper span.arrowUp:after{ border-bottom-color:#393939 }
.flatpickr-time .numInputWrapper span.arrowDown:after{ border-top-color:#393939 }
.flatpickr-time.hasSeconds .numInputWrapper{ width:26% }
.flatpickr-time.time24hr .numInputWrapper{ width:49% }
.flatpickr-time input{
    background:transparent; box-shadow:none; border:0; border-radius:0; text-align:center; margin:0; padding:0; height:inherit; line-height:inherit; color:#393939; font-size:14px; appearance:textfield
}
.flatpickr-time input.flatpickr-hour{ font-weight:bold }
.flatpickr-time input.flatpickr-minute, .flatpickr-time input.flatpickr-second{ font-weight:400 }
.flatpickr-time input:focus{ outline:0; border:0 }
.flatpickr-time .flatpickr-time-separator, .flatpickr-time .flatpickr-am-pm{
    height:inherit; float:left; line-height:inherit; color:#393939; font-weight:bold; width:2%; user-select:none; align-self:center
}
.flatpickr-time .flatpickr-am-pm{ outline:0; width:18%; cursor:pointer; text-align:center; font-weight:400 }
.flatpickr-time input:hover, .flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus, .flatpickr-time .flatpickr-am-pm:focus{ background:#eee }
.flatpickr-input[readonly]{ cursor:pointer }

/* =========================================================
   TELAS / CARDS / WIDGETS
   ========================================================= */
#mensagensLogin, #login-wizard{ width:100%; max-width:520px; margin:0 auto 1.5rem; }
#login-wizard{ margin-bottom:2rem; }

.hero-card{ border:none; box-shadow:0 20px 60px rgba(12,50,111,.12); border-radius:16px; }
.hero-card .br-tag{ letter-spacing:.08em; }
.hero-card .br-list .br-item{ padding-left:0; }
.hero-card .hero-actions .br-button{ min-width:180px; }
.hero-widget .br-item .icon{ width:2rem; text-align:center; font-size:1.1rem; }

.metric-card{
    border:none; border-radius:16px;
    background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
    box-shadow:0 12px 30px rgba(12,50,111,.05);
}
.metric-label{ text-transform:uppercase; letter-spacing:.06em; font-size:.82rem; color:#6c757d; }
.metric-value{ font-size:2.4rem; font-weight:600; }
.table-card .table thead th{ text-transform:uppercase; font-size:.78rem; letter-spacing:.04em; }

.quick-actions .br-item{ border:none; padding-left:0; padding-right:0; }
.quick-actions .br-item + .br-item{ border-top:1px solid var(--color-secondary-04,#dcdfe5); }
.quick-actions .br-item .icon{
    width:48px; height:48px; border-radius:14px; background-color:rgba(12,50,111,.08);
    display:inline-flex; align-items:center; justify-content:center; margin-right:1rem;
}
.quick-actions .br-item strong{ display:block; }

@media (max-width: 991.98px){
    .hero-card .hero-actions .br-button{ width:100%; }
}

#mensagensLogin .br-message{
    width:100%; max-width:100%; box-sizing:border-box; display:flex; flex-wrap:nowrap;
}
#mensagensLogin .br-message .content{ flex:1 1 auto; min-width:0; }

.br-tag.inverse{ background-color:#fff; color:#0c326f; border:1px solid currentColor; }

.br-checkbox-group-wrapper{ display:block; padding:.5rem .75rem; border-radius:4px; }
.br-checkbox-group{ display:flex; flex-wrap:wrap; gap:1.5rem; align-items:center; }
.br-checkbox-group .br-checkbox{ display:inline-flex; align-items:center; gap:.5rem; margin:0; }
.br-checkbox-group + .invalid-feedback,
.br-checkbox-group-wrapper .invalid-feedback{ display:block; width:100%; margin-top:.25rem; margin-left:.25rem; }
.has-error .br-checkbox-group-wrapper{ border:2px solid #c22f2f; }

.br-checkbox.danger input[type="checkbox"] + label::before {
    border:2px solid #c22f2f;
}


/* FIX: remover seta do wrapper quando o campo é Select2 */
.br-select .br-input:has(.select2)::after {
    display: none !important;
    content: none !important;
}

/* Rodapé do repeater alinhado à direita (DS puro) */
.repeater-actions {
    display: flex;
    justify-content: flex-end; /* empurra o botão para a direita */
    gap: .5rem;                /* espaço entre botões, se houver mais de um */
    margin-top: .5rem;         /* respiro acima do rodapé */
}



/* ====== Scrim/Modal (DS GOV BR) – impedir rolagem horizontal ====== */
.br-scrim .br-modal {
    max-width: 900px;              /* mantém “large” sem estourar */
    width: calc(100% - 2rem);      /* respira nas laterais em telas menores */
}

.br-scrim .br-modal-content {
    overflow-x: hidden;            /* corta qualquer transbordo lateral */
}

.br-scrim .br-modal-body {
    max-height: min(72vh, 780px);  /* rolagem só vertical se precisar */
    overflow-y: auto;
    overflow-x: hidden;            /* <- o que elimina a barra horizontal */
    padding-right: 0.75rem;        /* compensa scrollbar vertical */
}

/* quando houver grids/rows com margens negativas do Bootstrap/DS */
.br-scrim .br-modal-body .row,
.br-scrim .br-modal-body [class*="container"] {
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* componentes que costumam “vazar” largura */
.br-scrim .br-modal-body .table,
.br-scrim .br-modal-body .br-table,
.br-scrim .br-modal-body .select2-container {
    max-width: 100%;
}
.br-scrim .br-modal-body .select2-container .select2-selection {
    overflow: hidden;              /* impede ícones/clear de empurrar a largura */
}


/* =========================================================
   SELECT-PAGINATION (somente dentro da paginação)
   ========================================================= */
.br-pagination .select-pagination{
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

.br-pagination .select-pagination .pagination-label{
    font-weight: 500;
    color: var(--text-color, #333);
    white-space: nowrap;
}

/* deixa o select com “cara de paginação” (sem borda/campo de formulário) */
.br-pagination .select-pagination .br-select .br-input > select.select{
    border: 0 !important;
    box-shadow: none !important;
    background-color: transparent !important;
    height: var(--select-min-h, 46px) !important;
    min-height: var(--select-min-h, 46px) !important;
    padding-left: .25rem !important;
    padding-right: 2.25rem !important; /* seta */
}

/* foco discreto só na paginação */
.br-pagination .select-pagination .br-select .br-input > select.select:focus{
    outline: 0 !important;
    box-shadow: none !important;
}

/* aproxima o caret do padrão do DS */
.br-pagination .select-pagination .br-select .br-input::after{
    right: .15rem;
}

.br-pagination .pagination-information{
    display: inline-flex;
    align-items: center;
}

.br-pagination .pagination-information .pagination-sep{
    margin: 0 .25rem;
    white-space: nowrap;
}

/* =========================================================
   INDICADORES - TABS E TABELAS
   ========================================================= */
.indicadores-tabs .tab-nav{
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--color-secondary-04, #dcdfe5);
}
.indicadores-tabs .tab-nav .br-button{
    border-radius: 999px;
}
.indicadores-tabs .tab-nav .br-button.is-active{
    background-color: var(--color-primary-default, #1351b4);
    color: #fff;
}
.indicadores-tabs .tab-panel{
    padding-top: .25rem;
}
.table th,
.table td{
    text-align: center;
}
.table th:first-child,
.table td:first-child{
    text-align: right;
}
#tabelas h4{
    font-size: 1.125rem;
}
#tabelas h6{
    font-size: .8125rem;
}

/* =========================================================
   RESPONSIVIDADE - TABELAS
   ========================================================= */
.table-responsive{
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.table-responsive table{
    min-width: 720px;
}
.table-responsive .table{
    min-width: 720px;
}
.table-responsive .table th,
.table-responsive .table td{
    white-space: nowrap;
}
.table-responsive .table th:first-child,
.table-responsive .table td:first-child{
    white-space: normal;
    min-width: 180px;
}
@media (max-width: 768px){
    .table-responsive .table th,
    .table-responsive .table td{
        font-size: .75rem;
        padding: .4rem .5rem;
    }
}

/* =========================================================
   INDICADORES - LOADING
   ========================================================= */
#loading{
    min-height: 2.5rem;
    font-size: .875rem;
    font-weight: 500;
    color: var(--color-secondary-08, #333);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    text-align: left;
    margin-top: .4rem;
}

/* alinhar botão com o campo do select (sem label) */
.filters-actions{
    padding-top: 1.6rem;
}
