/* SRN Ambiental - Controle de Vale */
:root{
  --srn-verde:#2E9E45;
  --srn-verde-escuro:#227635;
  --srn-azul:#073056;
  --srn-cinza:#f4f6f8;
}
body{background:var(--srn-cinza);font-size:.95rem;}
.srn-navbar{background:var(--srn-azul);}
.srn-menu{background:var(--srn-azul);width:260px;}
.srn-menu .nav-link{color:#cfd9e3;padding:.65rem 1.1rem;border-left:3px solid transparent;}
.srn-menu .nav-link:hover{color:#fff;background:rgba(255,255,255,.06);}
.srn-menu .nav-link.active{color:#fff;background:rgba(46,158,69,.22);border-left-color:var(--srn-verde);}
.srn-menu .nav-link i{width:1.3rem;}
.srn-main{max-width:1400px;}

.card{border:0;box-shadow:0 1px 3px rgba(7,48,86,.10);}
.card-header{background:#fff;border-bottom:1px solid #e9edf2;font-weight:600;}
.btn-primary{background:var(--srn-verde);border-color:var(--srn-verde);}
.btn-primary:hover,.btn-primary:focus{background:var(--srn-verde-escuro);border-color:var(--srn-verde-escuro);}
.btn-outline-primary{color:var(--srn-verde);border-color:var(--srn-verde);}
.btn-outline-primary:hover{background:var(--srn-verde);border-color:var(--srn-verde);}
a{color:var(--srn-azul);}
.text-srn{color:var(--srn-verde)!important;}

.kpi{border-left:4px solid var(--srn-verde);}
.kpi .valor{font-size:clamp(1.05rem,4.3vw,1.6rem);font-weight:700;color:var(--srn-azul);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kpi .rotulo{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kpi.azul{border-left-color:var(--srn-azul);}
.kpi.amarelo{border-left-color:#e0a800;}
.kpi.vermelho{border-left-color:#c0392b;}

table.table{background:#fff;}
.table>:not(caption)>*>*{padding:.55rem .6rem;}
.table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:#6c757d;background:#fbfcfd;}
.tabela-scroll{overflow-x:auto;}

.form-label{font-weight:600;font-size:.85rem;margin-bottom:.25rem;}
.obrigatorio::after{content:" *";color:#c0392b;}

/* Portaria - alvos grandes para uso no celular */
.portaria .form-control,.portaria .form-select{font-size:1.05rem;padding:.7rem .8rem;}
.portaria .btn-lg{padding:.85rem 1rem;font-size:1.05rem;}
#leitorQr{width:100%;max-width:420px;margin:0 auto;}

/* Impressao de talao */
@media print{
  .no-print,.srn-navbar,.offcanvas,footer{display:none!important;}
  body{background:#fff;}
  .vale-cupom{page-break-inside:avoid;border:1px dashed #333;}
}
.vale-cupom{border:1px dashed #999;border-radius:6px;padding:10px;margin-bottom:10px;background:#fff;}
.vale-cupom .codigo{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;font-size:1.05rem;}
.vale-cupom canvas,.vale-cupom img{display:block;margin:0 auto;}

.ticket{max-width:340px;margin:0 auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;}
.ticket hr{border-top:1px dashed #333;margin:.4rem 0;}

/* Botoes de escolha (Vale / A vista / Faturado) na cor da marca */
.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary,
.btn-outline-primary.active{
  background:var(--srn-verde);border-color:var(--srn-verde);color:#fff;
}
.btn-check:focus + .btn-outline-primary{box-shadow:0 0 0 .2rem rgba(46,158,69,.25);}
.form-check-input:checked{background-color:var(--srn-verde);border-color:var(--srn-verde);}
.form-control:focus,.form-select:focus{border-color:#8ecf9d;box-shadow:0 0 0 .2rem rgba(46,158,69,.18);}
.text-bg-success{background-color:var(--srn-verde)!important;}

/* Graficos: o container define a altura, o canvas apenas preenche.
   Sem isto o Chart.js cresce indefinidamente na vertical. */
.grafico{position:relative;width:100%;}
.grafico canvas{position:absolute;inset:0;width:100%!important;height:100%!important;}
