/*
 * Compatibilidade Bootstrap 4 → 5 (Fase 1 do plano de migração, 10/2026).
 *
 * O Bootstrap 4 saiu de suporte em 01/01/2023 e tem CVE sem correção. O sistema
 * passou para o 5, mas ~800 usos de classes do 4 continuam nas views. Em vez de
 * reescrever centenas de telas de uma vez, as classes que o 5 removeu ou
 * renomeou estão definidas aqui sobre os valores do 5. Tela nova usa as classes
 * do 5 (ms-/me-, text-start/end, form-select, form-check, bg-*, visually-hidden).
 * Carregar SEMPRE logo depois de bootstrap.min.css.
 */

/* Reset: o reboot do 5 dá padding-left:2rem a ol/ul, e por ser seletor de tipo ele vence
   o `*{padding:0}` do tema. No 4 não havia essa regra: o menu lateral e as listas do tema
   saíam do lugar. */
ol,ul{padding-left:0}

/* Espaçamento: ml/mr/pl/pr → ms/me/ps/pe */
.ml-0{margin-left:0!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.ml-3{margin-left:1rem!important}.ml-4{margin-left:1.5rem!important}.ml-5{margin-left:3rem!important}.ml-auto{margin-left:auto!important}
.mr-0{margin-right:0!important}.mr-1{margin-right:.25rem!important}.mr-2{margin-right:.5rem!important}.mr-3{margin-right:1rem!important}.mr-4{margin-right:1.5rem!important}.mr-5{margin-right:3rem!important}.mr-auto{margin-right:auto!important}
.pl-0{padding-left:0!important}.pl-1{padding-left:.25rem!important}.pl-2{padding-left:.5rem!important}.pl-3{padding-left:1rem!important}.pl-4{padding-left:1.5rem!important}.pl-5{padding-left:3rem!important}
.pr-0{padding-right:0!important}.pr-1{padding-right:.25rem!important}.pr-2{padding-right:.5rem!important}.pr-3{padding-right:1rem!important}.pr-4{padding-right:1.5rem!important}.pr-5{padding-right:3rem!important}
@media (min-width:768px){.ml-md-0{margin-left:0!important}.ml-md-2{margin-left:.5rem!important}.ml-md-3{margin-left:1rem!important}.ml-md-auto{margin-left:auto!important}.mr-md-0{margin-right:0!important}.mr-md-2{margin-right:.5rem!important}.mr-md-3{margin-right:1rem!important}.mr-md-auto{margin-right:auto!important}}

/* Alinhamento e flutuação: left/right → start/end */
.text-left{text-align:left!important}.text-right{text-align:right!important}
.float-left{float:left!important}.float-right{float:right!important}
@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}}
@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.float-md-left{float:left!important}.float-md-right{float:right!important}}
@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}}

/* Tipografia */
.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-weight-normal{font-weight:400!important}.font-weight-light{font-weight:300!important}.font-italic{font-style:italic!important}

/* Acessibilidade: sr-only → visually-hidden */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.sr-only-focusable:focus,.sr-only-focusable:active{position:static!important;width:auto!important;height:auto!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:normal!important}

/* Botões */
.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}

/* Selos coloridos: badge-* → bg-* (o .badge do 5 é branco sem a cor) */
.badge-primary{color:#fff;background-color:var(--bs-primary)}.badge-secondary{color:#fff;background-color:var(--bs-secondary)}
.badge-success{color:#fff;background-color:var(--bs-success)}.badge-danger{color:#fff;background-color:var(--bs-danger)}
.badge-warning{color:#212529;background-color:var(--bs-warning)}.badge-info{color:#212529;background-color:var(--bs-info)}
.badge-light{color:#212529;background-color:var(--bs-light)}.badge-dark{color:#fff;background-color:var(--bs-dark)}
.badge-pill{border-radius:50rem}

/* Botão de fechar com «×» no texto (o .btn-close do 5 usa imagem e espera o botão vazio) */
.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0}
.close:hover{color:#000;opacity:.75;text-decoration:none}
.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}

/* Formulários: form-group, form-row, form-inline e input-group-append/prepend saíram do 5 */
.form-group{margin-bottom:1rem}
.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}
.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}
.form-inline{display:flex;flex-flow:row wrap;align-items:center}
.input-group-append,.input-group-prepend{display:flex}
.custom-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #dee2e6;border-radius:.375rem;appearance:none}

/* custom-control / custom-switch → form-check / form-switch */
.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.75rem}
.custom-control-inline{display:inline-flex;margin-right:1rem}
.custom-control-input{position:absolute;left:0;top:.2rem;width:1.1rem;height:1.1rem;margin:0;cursor:pointer}
.custom-control-label{margin-bottom:0;cursor:pointer}
.custom-switch{padding-left:2.75rem}
.custom-switch .custom-control-input{width:2.25rem;height:1.2rem;appearance:none;border-radius:2rem;border:1px solid #adb5bd;background:#e9ecef;transition:background-color .15s}
.custom-switch .custom-control-input::before{content:"";display:block;width:.9rem;height:.9rem;margin:.1rem;border-radius:50%;background:#adb5bd;transition:transform .15s}
.custom-switch .custom-control-input:checked{background:var(--bs-primary);border-color:var(--bs-primary)}
.custom-switch .custom-control-input:checked::before{background:#fff;transform:translateX(1.05rem)}
.custom-control-input:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}

/* Tabelas */
.thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}

/* ---------------------------------------------------------------------------
 * Diferenças medidas com o tema (posição e estilo calculado de cada elemento,
 * versão 4 x versão 5, nas telas do Super). As regras abaixo devolvem o que o 4
 * fazia. `:where()` mantém a especificidade de uma classe: vence o Bootstrap 5,
 * que vem antes, e perde para o tema (styles.min.css), que vem depois.
 * ------------------------------------------------------------------------- */

/* <small>: 80% no 4, .875em no 5 */
.small,small{font-size:80%}

/* Grade: calha de 30px e colunas com position:relative, como no 4 */
.row{--bs-gutter-x:30px}
.col,[class*="col-"]{position:relative}

/* <hr>: o 5 usa a cor do texto com opacidade .25 */
hr{color:gray;border:0;border-top:1px solid rgba(0,0,0,.1);opacity:1}

/* O tema chama de .form-select a CAIXA em volta do <select> (139 telas). O 5 criou
   .form-select para o próprio select, com borda, fundo, recuo e seta: na caixa do tema
   isso desenhava uma segunda moldura. Só o <select> de verdade fica com o estilo do 5. */
.form-select:where(:not(select)){display:block;width:auto;padding:0;font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;background-color:transparent;background-image:none;border:0;border-radius:0;box-shadow:none;transition:none}
.form-select:where(:not(select)):focus{border-color:transparent;box-shadow:none}


/* Tabelas: no 5 a célula de .table recebe o fundo do body (branco); no 4 era transparente */
.table{--bs-table-bg:transparent}
