/* =============================================================================
   Camada de compatibilidade: reimplementa o SUBCONJUNTO de utilitários/
   componentes do Bootstrap que o painel /gestao ainda usa (forms, grid,
   botões, badges, alerts, tabelas, utilitários), com os tokens do gestao.css.
   Permite remover o CDN do Bootstrap sem reescrever todos os formulários.
   ============================================================================= */

/* --- Tipografia / headings --- */
.h4{font-size:20px;font-weight:700;margin:0 0 .4rem;}
.h5{font-size:17px;font-weight:700;margin:0 0 .4rem;}
.h6{font-size:14px;font-weight:700;margin:0 0 .4rem;}
.fs-4{font-size:24px;} .fs-6{font-size:14px;}
.fw-semibold{font-weight:600;}
.small{font-size:12.5px;}
.text-muted{color:var(--gz-muted);}
.text-danger{color:var(--gz-err);} .text-warning{color:var(--gz-warn);} .text-success{color:var(--gz-ok);}
.text-nowrap{white-space:nowrap;}
.text-end{text-align:right;}
.font-monospace{font-family:var(--gz-mono);}

/* --- Grid (flex, simplificado) --- */
.row{display:flex;flex-wrap:wrap;gap:.75rem;margin:0;}
.row.g-1{gap:.25rem;} .row.g-2{gap:.5rem;} .row.g-3{gap:1rem;} .row.g-4{gap:1.5rem;}
.col-12{flex:0 0 100%;}
.col-auto{flex:0 0 auto;}
.col-6{flex:1 1 calc(50% - 1rem);min-width:0;}
.col-4{flex:1 1 calc(33.333% - 1rem);min-width:0;}
.col-8{flex:1 1 calc(66.666% - 1rem);min-width:0;}
.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6{flex:0 0 100%;min-width:0;}
@media(min-width:768px){
  .col-md-1{flex:1 1 calc(8.333% - 1rem);}
  .col-md-2{flex:1 1 calc(16.666% - 1rem);}
  .col-md-3{flex:1 1 calc(25% - 1rem);}
  .col-md-4{flex:1 1 calc(33.333% - 1rem);}
  .col-md-5{flex:1 1 calc(41.666% - 1rem);}
  .col-md-6{flex:1 1 calc(50% - 1rem);}
}

/* --- Formulários --- */
.form-label{display:block;font-size:12.5px;font-weight:600;color:var(--gz-text-2);margin-bottom:5px;}
.form-control,.form-select{width:100%;border:1px solid #d7dce4;border-radius:9px;padding:9px 12px;
  font-size:13.5px;font-family:inherit;color:var(--gz-text);background:#fff;outline:none;}
.form-control:focus,.form-select:focus{border-color:var(--gz-accent);box-shadow:0 0 0 3px rgba(63,111,245,.12);}
.form-control-sm,.form-select-sm{padding:6px 10px;font-size:13px;border-radius:8px;}
.form-check{display:flex;align-items:center;gap:8px;}
.form-check-input{width:15px;height:15px;flex:none;margin:0;accent-color:var(--gz-accent);}
.form-check-label{font-size:13px;}

/* --- Botões --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:9px;
  padding:9px 15px;font-size:13.5px;font-weight:600;font-family:inherit;cursor:pointer;
  border:1px solid transparent;text-decoration:none;background:#fff;color:var(--gz-text-2);line-height:1.2;}
.btn-sm{padding:6px 12px;font-size:13px;border-radius:8px;}
.btn-primary{background:var(--gz-accent);border-color:var(--gz-accent);color:#fff;}
.btn-primary:hover{background:var(--gz-accent-hover);color:#fff;}
.btn-success{background:var(--gz-ok);border-color:var(--gz-ok);color:#fff;}
.btn-outline-primary{border-color:var(--gz-accent);color:var(--gz-accent);background:#fff;}
.btn-outline-primary:hover{background:var(--gz-accent);color:#fff;}
.btn-outline-secondary{border-color:#d7dce4;color:var(--gz-text-2);background:#fff;}
.btn-outline-secondary:hover{background:#f4f5f8;}
.btn-outline-danger{border-color:#f0b3ba;color:var(--gz-err);background:#fff;}
.btn-outline-danger:hover{background:var(--gz-err);color:#fff;border-color:var(--gz-err);}
.btn-outline-success{border-color:#bfe3cc;color:var(--gz-ok);background:#fff;}
.btn-outline-success:hover{background:var(--gz-ok);color:#fff;border-color:var(--gz-ok);}
.btn-outline-warning{border-color:#e6cf9e;color:var(--gz-warn);background:#fff;}
.btn-outline-warning:hover{background:var(--gz-warn);color:#fff;border-color:var(--gz-warn);}

/* --- Badges / pills --- */
.badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:6px;}
.text-bg-success{background:var(--gz-ok-soft);color:var(--gz-ok);}
.text-bg-secondary{background:var(--gz-neutral-soft);color:var(--gz-neutral);}
.text-bg-info{background:#eaf0fe;color:var(--gz-accent-text);}
.text-bg-warning{background:var(--gz-warn-soft);color:var(--gz-warn);}
.text-bg-danger{background:var(--gz-err-soft);color:var(--gz-err);}
.text-bg-primary{background:#eaf0fe;color:var(--gz-accent-text);}
.text-bg-light{background:#f1f3f7;color:var(--gz-text-2);}
.border{border:1px solid var(--gz-border)!important;}

/* --- Alerts --- */
.alert{border-radius:11px;padding:13px 15px;font-size:13.5px;border:1px solid transparent;margin-bottom:14px;}
.alert-danger{background:var(--gz-err-soft);border-color:#f6d2d6;color:#a31f2c;}
.alert-success{background:var(--gz-ok-soft);border-color:#c8ecd4;color:#0f5f2b;}
.alert-warning{background:#fdf7ec;border-color:#e6cf9e;color:#8a5a08;}
.alert-info{background:#eef3fc;border-color:#cfe0f6;color:#1a4682;}
.alert code{background:rgba(0,0,0,.05);padding:1px 5px;border-radius:4px;}

/* --- Tabelas --- */
.table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;}
.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--gz-border-3);text-align:left;}
.table thead th,.table-light th{background:var(--gz-bg);color:var(--gz-muted-2);font-size:11px;
  text-transform:uppercase;letter-spacing:.04em;font-weight:600;}
.table-sm th,.table-sm td{padding:7px 10px;}
.table-responsive{overflow-x:auto;}
.align-middle td,.align-middle th,td.align-middle{vertical-align:middle;}

/* --- Cards --- */
.card{background:#fff;border:1px solid var(--gz-border);border-radius:13px;}
.card-body{padding:16px 18px;}
.shadow-sm{box-shadow:0 1px 2px rgba(15,23,42,.05);}
.rounded{border-radius:8px;}
.bg-light{background:var(--gz-bg);}
.bg-dark{background:#0e1626;}
.text-light{color:#e7ecf5;}

/* --- Utilitários de layout/espacamento --- */
.d-flex{display:flex;} .d-inline{display:inline;} .d-inline-flex{display:inline-flex;}
.flex-wrap{flex-wrap:wrap;} .flex-column{flex-direction:column;}
.align-items-center{align-items:center;} .align-items-end{align-items:flex-end;}
.justify-content-between{justify-content:space-between;} .justify-content-center{justify-content:center;}
.gap-1{gap:.25rem;} .gap-2{gap:.5rem;} .gap-3{gap:1rem;}
.ms-auto{margin-left:auto;} .me-1{margin-right:.25rem;} .me-2{margin-right:.5rem;}
.w-100{width:100%;} .h-100{height:100%;}
.m-0{margin:0;} .mb-0{margin-bottom:0;} .mb-1{margin-bottom:.25rem;} .mb-2{margin-bottom:.5rem;}
.mb-3{margin-bottom:1rem;} .mb-4{margin-bottom:1.5rem;}
.mt-1{margin-top:.25rem;} .mt-2{margin-top:.5rem;} .mt-3{margin-top:1rem;} .mt-4{margin-top:1.5rem;}
.my-3{margin:1rem 0;}
.p-2{padding:.5rem;} .p-3{padding:1rem;} .py-2{padding:.5rem 0;}
.pre, pre{white-space:pre;}
