/* PREDEFINIDOS */
body{font-family:verdana,arial; font-size:11px; margin:0; padding:0; background-color:#edfcf2;}
h1,h2,h3,h4,h5,h6{color:#0A5753; text-transform:uppercase; margin:10px 0 5px 0;}
h1.invert,h2.invert,h3.invert,h4.invert,h5.invert,h6.invert{color:#fff !important;}
h1{font-size:24px;}
h2{font-size:20px;}
h3{font-size:17px;}
h4{font-size:18px;}
h5{font-size:13px;}
h6{font-size:11px;}

pre{font-family:verdana,arial; width:730px; white-space: pre-wrap; /* css-3 */white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */white-space: -pre-wrap; /* Opera 4-6 */white-space: -o-pre-wrap; /* Opera 7 */}
p{line-height:15px; margin:5px 0;}

.mens_resps{padding:5px; border:1px solid #ccc !important; background-color:#FaFaFa; display:block; margin-bottom:7px;}

/* INPUTS */
input,textarea,select{font-family:verdana, arial; font-size:11px; padding:5px 10px;}
.bt_searc_input{padding:10px; width:160px;  border:1px solid black; float:left; border-radius:5px 0 0 5px;}
.bt_search{padding-right:10px; margin-top:2px; float:left; height:35px; border: none; cursor: pointer; color:white; background-color:#0A5753; text-align:center; border-radius:0 5px 5px 0;}
.bt_search:before {font-size: 20px; margin-left: 0; font-weight:normal !important; }
.bt_search:hover{background-color:#fff; cursor:pointer; color:#0A5753;}

/* TABELAS */
table.modA{width:100%; border-spacing: 0px; border-collapse: separate;}
table.modA tr{height:30px;}
table.modA tr th{border-bottom:1px solid #999; color:#999; text-align:left; padding:5px 10px; font-size:9px;}
table.modA tr th:first-child{border-radius:0px 0 0 0;}
table.modA tr th:last-child{border-radius:0 0px 0 0;}
table.modA tr:last-child td:first-child{border-radius:0 0 0 0px;}
table.modA tr:last-child td:last-child{border-radius:0 0 0px 0;}
table.modA tr td{padding:5px 10px; font-size:11px; height:40px !important;}
table.modA tr:nth-child(even){background-color:#efefef;}
table.modA tr:nth-child(odd){background-color:#fff;}
table.modA tr:hover{background-color:#edfcf2;}
table.modA tr td [class*="flaticon-"],table.modA tr td [class*="flaticon2-"]{display:none;}
table.modA tr:hover td [class*="flaticon-"],table.modA tr:hover td [class*="flaticon2-"]{display:inline;}
table.modA tr:hover th{background-color:#fff;}

.selectable{display:block; width:200px; height:100px; overflow-y:scroll; overflow-x:hidden; }
table.modB{width:100%; border-spacing: 0px; border-collapse: separate;}
table.modB tr{height:30px;}
table.modB tr th{border-bottom:1px solid #999; color:#999; text-align:left; padding:5px 10px; font-size:9px;}
table.modB tr th:first-child{border-radius:0px 0 0 0;}
table.modB tr th:last-child{border-radius:0 0px 0 0;}
table.modB tr:last-child td:first-child{border-radius:0 0 0 0px;}
table.modB tr:last-child td:last-child{border-radius:0 0 0px 0;}
table.modB tr td{padding:5px 10px; font-size:11px; height:40px !important;}
table.modB tr:nth-child(even){background-color:#efefef;}
table.modB tr:nth-child(odd){background-color:#fff;}
table.modB tr:hover{background-color:#edfcf2;}
table.modB tr td [class*="flaticon-"]{display:none;}
table.modB tr:hover td [class*="flaticon-"]{display:block;}
table.modB tr:hover th{background-color:#fff;}

table.rels{width:95%; border-spacing: 0px; border-collapse: separate;}
table.rels tr{height:30px;}
table.rels tr th{border-bottom:1px solid #999; color:#999; text-align:left; padding:0; font-size:9px;}
table.rels tr td{padding:5px !important; font-size:11px;  border-bottom:1px solid #bbb;}
table.rels tr:nth-child(even){background-color:#fcfcfc;}
table.rels tr:nth-child(odd){background-color:#fff;}
table.rels tr:hover{background-color:#edfcf2;}

table.modC{width:100%; border-spacing: 0px; border-collapse: separate; margin-bottom:30px; margin-top:15px;}
table.modC tr{height:30px;}
table.modC tr th{background-color:#fff; border-bottom:1px solid #999; color:#999; text-align:left; padding:2px 4px !important; font-size:9px;}
table.modC tr th:first-child{border-radius:0px 0 0 0;}
table.modC tr th:last-child{border-radius:0 0px 0 0;}
table.modC tr:last-child td:first-child{border-radius:0 0 0 0px;}
table.modC tr:last-child td:last-child{border-radius:0 0 0px 0;}
table.modC tr td{padding:5px 10px; font-size:11px;}
table.modC tr .bt_link_icon{display:none !important;}
table.modC tr:hover .bt_link_icon{display:block !important;}
table.modC tr:nth-child(even){background-color:#efefef !important;}
table.modC tr:nth-child(odd){background-color:#fff !important;}
table.modC tr:hover{background-color:#edfcf2 !important;}
table.modC tr td [class*="flaticon-"]{display:none;}
table.modC tr:hover td [class*="flaticon-"]{display:block;}

.tb_financas{width:100%;}
.tb_financas tr td{padding:5px; font-size:11px;}
.tb_financas tr th{background-color:#555; color:#fff; text-align:left; padding:5px 10px; font-size:9px;}
.tb_financas tr:nth-child(even){background-color:#edfcf2;}
.tb_financas tr:nth-child(odd){background-color:#fff;}
.tb_financas tr:hover{background-color:#ddd;}

.tb_form{}
.tb_form tr{}
.tb_form tr td{padding:5px; font-size:11px;}
.tb_form tr td:nth-child(even){font-weight:bold; width:35%;}
.tb_form tr td:nth-child(odd){text-align:right; width:15%;}

.tb_form_first{}
.tb_form_first tr{}
.tb_form_first tr td{padding:5px; font-size:11px; text-align:left; width:25%;}
.tb_form_first tr td:first-child{font-weight:bold !important; width:15% !important;}

.tb_detalhe{border-spacing: 0px; border-collapse: separate;}
.tb_detalhe tr{}
.tb_detalhe tr td{padding:5px; font-size:11px;}
.tb_detalhe tr td:nth-child(even){font-weight:bold; width:35%;}
.tb_detalhe tr td:nth-child(odd){text-align:right; width:15%;}

.resumo th{font-size:10px !important; text-align:left;}
.resumo tr td:first-child{font-weight:normal;}
.resumo tr td{text-align:left !important; font-size:10px !important; padding:5px;}
.resumo td.final{font-size:14px !important; font-weight:bold;}
.resumo tr:nth-child(even){background-color:#edfcf2;}
.resumo tr:nth-child(odd){background-color:#fff;}

.td_contato:hover{background-color:#edfcf2; border-radius:10px;}

.esconde{display:none;}

#produto_tb tr td{font-size:11px !important;}

/* BOTOES */
.bt_padrao{display:block; font-size:12px; border:1px solid #0A5753; border-radius:5px; width:200px; padding:0px 5px; overflow:hidden; text-transform:uppercase;  margin:5px 0; text-decoration:none; color:#fff; font-weight:normal;}
.bt_padrao:hover{color:#0A5753; background-color:#fff; cursor:pointer;}
.bt_padrao .bt_text{display:inline; padding-top:30px;}
.bt_padrao .icon{display:inline-block; width:30px; text-align:center; background-color:#0A5753; padding:10px 10px 5px 10px; margin-left:-5px; margin-top:-5px; margin-right:10px;}
.bt_padrao .icon:before {font-size: 25px;color: #fff; margin-left: 0; font-weight:normal !important;}
.bt_padrao:hover .icon,.bt_padrao:hover .icon:before{background-color:#fff; color:#0A5753;}

/* Item de menu da página ATUAL — destaca visualmente.
   Mantém a mesma estética do hover (fundo branco + texto cinza)
   mas com cor levemente diferente pra distinguir do estado hover. */
.bt_padrao.active {
    background-color: #fff;
    color: #0A5753;
}
.bt_padrao.active .icon,
.bt_padrao.active .icon:before {
    background-color: #fff;
    color: #0A5753;
}
/* Em modo eventos (color.css) o ativo usa azul */
.bt_padrao.active:hover { color: #0A5753; }

/* Caixa de avisos (mesmo modelo do CI 2 original): fundo branco, ícones lado a lado.
   Cada ícone é um link que OCUPA TODA A FAIXA branca correspondente (não só o ícone)
   — flex:1 distribui o espaço igualmente entre os avisos. Com 1 aviso, link = caixa
   inteira; com N avisos, cada um pega 1/N da largura. Badge vermelho com a contagem. */
.menu_avisos {
    background-color: #fff;
    border-radius: 10px;
    display: flex;
    flex-wrap: wrap;
    margin: 5px 0;
    overflow: hidden;             /* recorta hover dos cantos pra acompanhar border-radius */
}
.menu_avisos .bt_avisos {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 8px;
    text-decoration: none;
    transition: background-color .15s;
}
.menu_avisos .bt_avisos:hover { background-color: #f0f0f0; }
.menu_avisos .bt_avisos [class^="flaticon"] { font-size: 22px; }

.btn_notas{text-decoration:none; cursor:pointer; color:#0A5753; display:none;}
.btn_notas .flaticon-cloud106{text-decoration:none !important;}
.btn_notas:hover{text-decoration:none; color:#000;}

.nota_remover{color:#0A5753 !important; font-weight:bold;  text-decoration:none !important;}
.nota_remover:hover{color:#000 !important;}
.nota_remover span:before{font-size:15px; margin:0 !important;}

.menu_title{font-weight:bold; font-size:14px; padding-top:20px; color:#dedede; display:block;}

.bt_link,.buscar_rels{border-radius:5px; border:0; padding:6px; text-align:center; font-weight:bold; text-decoration:none; background-color:#0A5753; color:#fff !important; width:auto; display:block; float:left; margin-right:10px;}
.bt_link:hover,.buscar_rels:hover{cursor:pointer; background-color:#333 !important;}
.bt_link.ativar{background-color:green;}
.bt_link.desativar{background-color:red;}
.buscar_rels{float:none !important; display:inline !important; text-transform:uppercase;}

.bt_link_linha{border-radius:5px; border:0; padding:6px; text-align:center; font-weight:bold; text-decoration:none; background-color:#0A5753; color:#fff !important; width:auto; display:inline; float:none; margin-right:10px;}
.bt_link_linha:hover{cursor:pointer; background-color:#333 !important;}

.bt_link_icon{color:#0A5753; text-decoration:none; float:left;}
.bt_link_icon div{float:left;}
.bt_link_icon:hover{color:#000; cursor:pointer; display:block; float:left;}
.bt_link_icon:before, .item_icon:before{margin-left:0px !important; margin-right:0px !important;}
.bt_link_icon:before, .item_icon_hidden:before{margin-left:0px !important; margin-right:0px !important;}

.bt_ano{color:#69a37b; text-decoration:none;}
.bt_ano span:before{ font-size:15px !important; margin-left:0 !important;}
.bt_ano span:hover{color:#fff; cursor:pointer;}

td .plus_contato{color:#0A5753; font-size:20px;}
td .plus_contato:hover{color:#000; cursor:pointer;}

.bt_avisos{color:#333; text-decoration:none;}
.bt_avisos:hover{color:#0A5753;}

#menu_minimizar{text-align:right; padding-top:15px;}
#menu_minimizar span{color:#69a37b; cursor:pointer; }

/* PAINEIS */
.recipt{border:1px solid #fff; border-radius:10px; width:97%; overflow:hidden; margin-bottom: 10px; overflow:hidden; height:auto;}

/* Editores Quill (Observações / Texto topo OS etc.) cresciam sem limite com
   textos longos pré-preenchidos, empurrando os botões da tela pra muito
   longe. Limita a área de edição a uma altura fixa com scroll interno. */
.quill-editor.ql-container{max-height:120px; overflow-y:auto;}
.recipt .recipt-top{width:100%; background-color:#fff; display:block; height:33px; margin-top:-10px; padding:10px;}
.recipt .recipt-top h4{float:left; color:#0A5753;}
.recipt .recipt-top .close,.recipt .recipt-top .open{float:right; margin-right:20px; margin-top:5px; border-radius:5px; cursor:pointer; text-align:center;}
.recipt .recipt-top .close:before,.recipt .recipt-top .open:before {font-size: 30px; margin-left: 0; font-weight:normal !important;}
.recipt .recipt-text{padding:10px;}

.recipt_sub{border:1px solid #ccc; border-radius:10px; width:300px; overflow:hidden; margin: 10px 0; overflow:hidden; height:43px;  background-color:#fff;}
.recipt_sub .recipt-top{width:100%; color:#fff; background-color:#333; display:block; height:35px; margin-top:-10px; padding:10px;}
.recipt_sub .recipt-top h6{float:left; color:#fff;}
.recipt_sub .recipt-top .close,.recipt_sub .recipt-top .open{float:right; margin-right:20px; margin-top:5px; border-radius:5px; cursor:pointer; text-align:center;}
.recipt_sub .recipt-top .close:before,.recipt_sub .recipt-top .open:before {font-size: 20px; margin-left: 0; font-weight:normal !important;}
.; .recipt-text{padding:10px;}

.recipt-bts{width:400px; float:right; display:block; text-align:right; margin-right:-10px; height:40px;}
.recipt-bts .bt_link{float:right;}

.col_left{float:left;}
.col_right{width:500px; float:left; margin-right:20px;}
.col_full{width:100%; float:left;}

.item_icon{display:inline !important; cursor:pointer;}
.item_icon_hidden{display:inline !important; cursor:pointer; display:none;}
.hand{cursor:pointer !important;}
.no_hand{cursor:default !important;}
.outro_foco{background-color:#f9e4e4 !important;}
.download_icon:before{margin-left:0px !important;}
.td_item_detalhe:hover{background-color:#fff !important;}
rect, line{cursor:pointer;}

.font_30:before{font-size:35px !important;}
/* Indicador % sobreposto ao ícone (donut). Span pai vira inline-block + relative
   pra criar contexto de posicionamento (a regra antiga .item_icon{display:inline !important}
   na linha 225 impedia absolute positioning interno). */
.item_icon { display: inline-block !important; position: relative !important; }
.percent_interno {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    text-align: center !important;
    color: #000 !important;
    font-size: 9px !important;
    font-weight: bold !important;
    line-height: 1 !important;
    pointer-events: none;
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
}

.bt_tipo_criacao{cursor:pointer;}
.tipo_criacao{display:none;}

 .center_td tr td{text-align: center !important; }
 .center_td_n{text-align: left !important;}
 .legenda{float:right; width:35%; margin-top:40px;}

/* DINÂMICO */
.tipo_pf{}
.tipo_pj{display:none;}

/* FILTROS */
.v_destaque{background-color:#A7D9E1; font-weight:bold; width:50px; text-align:right;}
.s_destaque{text-align:right;}

.busca_total_pago td{background-color:#ecfbea !important;}
.busca_total_pend td{background-color:#fbeaea !important;}
.busca_total td{background-color:#efefef !important;}
.busca_total td,
.busca_total_pend td,
.busca_total_pago td{border-bottom:0px !important; color:#000; font-size:13px; text-align:right;}
.busca_total_res td{background-color:#dfdfdf; color:#000; font-weight:bold; font-size:13px !important; text-align:right;}
.total_separador td{border-top:3px solid #000;}
.csv_filtro_bt{border-radius:5px; background-color:#333; color:#fff; margin-top:20px; cursor:pointer;}
.csv_filtro_bt:hover{background-color:#999;}

.sep_rels{margin:10px 0px 10px 0px; border:1px solid #999; display:block;}
.novo_icon,
.int_icon,
.adm_icon,
.lido_icon{font-weight:bold; font-size:8px; color:red;}
.novo_icon{color:red; }			
.int_icon{color:blue; }			
.adm_icon{color:purple; }			
.lido_icon{color:black; font-weight:normal !important;}			
			

/* ANIMAÇÃO PAINEIS */
.recipt-top .open{
	transform: rotate(90deg) ;
	-webkit-transform: rotate(90deg) ;
	-moz-transform: rotate(90deg) ;
	-o-transform: rotate(90deg) ;
	-ms-transform: rotate(90deg) ;
}

.recipt-top .open:hover{
	-webkit-animation: menuOpen 1s 16 ease;
	-moz-animation: menuOpen 1s 16 ease;
	-o-animation: menuOpen 1s 16 ease;
	
	-moz-animation-iteration-count:  1;
	-webkit-animation-iteration-count:  1;
	-o-animation-iteration-count: 1;
	
	transform: rotate(180deg) ;
	-webkit-transform: rotate(180deg) ;
	-moz-transform: rotate(180deg) ;
	-o-transform: rotate(180deg) ;
	-ms-transform: rotate(180deg) ;
	
	}
	@-webkit-keyframes menuOpen {
	from { -webkit-transform: rotate(90deg); }
	to { -webkit-transform: rotate(180deg); }
	}
	@-moz-keyframes menuOpen {
	from { -moz-transform: rotate(90deg); }
	to { -moz-transform: rotate(180deg); }
	}
	@-o-keyframes menuOpen {
	from { -o-transform: rotate(90deg); }
	to { -o-transform: rotate(180deg); }
}

.recipt-top .close{
	transform: rotate(180deg) ;
	-webkit-transform: rotate(180deg) ;
	-moz-transform: rotate(180deg) ;
	-o-transform: rotate(180deg) ;
	-ms-transform: rotate(180deg) ;
}

.recipt-top .close:hover{
	-webkit-animation: menuClose 1s 16 ease;
	-moz-animation: menuClose 1s 16 ease;
	-o-animation: menuClose 1s 16 ease;
	
	-moz-animation-iteration-count:  1;
	-webkit-animation-iteration-count:  1;
	-o-animation-iteration-count: 1;
	
	transform: rotate(90deg) ;
	-webkit-transform: rotate(90deg) ;
	-moz-transform: rotate(90deg) ;
	-o-transform: rotate(90deg) ;
	-ms-transform: rotate(90deg) ;
	}
	@-webkit-keyframes menuClose {
	from { -webkit-transform: rotate(180deg); }
	to { -webkit-transform: rotate(90deg); }
	}
	@-moz-keyframes menuClose {
	from { -moz-transform: rotate(180deg); }
	to { -moz-transform: rotate(90deg); }
	}
	@-o-keyframes menuClose {
	from { -o-transform: rotate(180deg); }
	to { -o-transform: rotate(90deg); }
}

#confirm_message{ position:fixed; top:0; display:block; background-color:red; width:100%; height:100%; padding:10px; font-weight:bold; color:#0A5753; text-align:center; background-color:rgba(255,255,255,0.5);}
#confirm_message div{width:500px; padding:20px; text-align:center; margin:0 auto; margin-top:100px; background-color:#0A5753; color:#fff;}

#falha_message{ position:fixed; top:0; display:block; background-color:red; width:100%; height:100%; padding:10px; font-weight:bold; color:#cc0000; text-align:center; background-color:rgba(255,255,255,0.5);}
#falha_message div{width:500px; padding:20px; text-align:center; margin:0 auto; margin-top:100px; background-color:#cc0000; color:#fff;}

.externa_separador td{border-top:2px solid green;}

.aviso_ad span{
	color: #b90000;
	font-size: 14px;
	margin:0 !important;
	padding: 0 !important;
}
.aviso_ad{
	background-color:#ffe3e3;
	color: #000;
	font-weight: bold;
	display: block;
	width: 100%;
	padding: 15px;
	margin-bottom: 10px;
}

#dialog-message.erro{position:relative !important; top:auto !important; vertical-align:top;}

/*   EVENTOS   */

.marcador_eventos{
  width:10px;
  height:10px;
  display:inline-block;
  margin-right:5px;
}

.marcador_inativo{
  background-color:#333;
}

.marcador_ativo{
  background-color:red;
}

.marcador_ok{
  background-color:green;
}
.item_unit{padding:15px; border:1px solid #999; width:90%; margin-bottom:15px}

.alimentacao_tr, .servicos_tr{
	display:none;
}

.tabela_item_evento{
  width:100%; 
  border-spacing: 0px; 
  border-collapse: separate;
}

.tabela_item_evento tr{

}

.tabela_item_evento tr td{
  text-align:left; 
  padding:10px 10px; 
  font-size:11px !important;
}

.tb_agenda{
  width:90%;
  font-size:10px;
}

.tb_agenda td{
  font-size:10px !important;
}

.tb_agenda td{
  vertical-align:top;
  padding:10px;
}

.tb_agenda th{
  padding:10px;
  font-size:11px;
  text-align:left;
}

.tb_agenda td:first-child{
  width:20%;
}

.tb_agenda tr:nth-child(even){background-color:#efefef;}
.tb_agenda tr:nth-child(odd){background-color:#fff;}

.resumo_evento{
  clear:both;
  padding-top:15px;
  border-bottom:30px;
}


.tb_avaliacao_resumo{
  width:500px;

}

.tb_avaliacao_resumo tr{

}
 
.tb_avaliacao_resumo th{
  font-size:11px;
  padding:5px;
  background-color:#666;
  color:#fff;
}

.tb_avaliacao_resumo td{
  padding:5px;
  text-align:left !important;
  font-size:13px;
}

.tb_avaliacao_resumo .left,.tb_avaliacao_resumo.left td{
  width:65%
}

.tb_avaliacao_resumo .right{
}

.tb_avaliacao{
  width:500px;
}

.tb_avaliacao tr{

}

.tb_avaliacao th{
  font-size:11px;
  padding:5px;
}

.tb_avaliacao td{
  padding:5px;
  text-align:center;
  font-size:13px;
}

.tb_avaliacao .left,.tb_avaliacao.left td{
  text-align:left;
}

.tb_avaliacao .right{
  text-align:right !important;
}

#avaliacao_form label{
  font-weight:bold;
  display:block;
  width:590px;
  border-bottom:1px solid #000;
  padding-bottom:15px;
  margin-top:30px;
}

.avaliacao_view{

}

.avaliacao_view h5{
  margin-bottom:20px;
  background-color:#999;
  color:#fff;
  padding:10px;
}

.avaliacao_view label{
  font-weight:bold;
}

.avaliacao_view p{
  margin-left:7px;
}

.resumo_cev{
  clear:both;
  padding:30px 10px 0;
}

.resumo_cev table{
  width:90%;
  margin-top:10px;
}

.resumo_cev th{
  font-size:11px;
  text-align:left;
}

.resumo_cev td{
  font-size:12px;
}

.data_cev_recipt{
  display:none;
}
.data_cev_recipt:first-child{
  display:block;
}

.recipt-top h4{
  margin-top:30px;
}

.evento_resumo{
  padding:20px;
  display:block;
  margin-top:30px;
  margin-bottom:50px;
}

.evento_resumo div {
  width:35%;
  float:left;
}

.fonteMenor{
}

.acesso_rapido_input{
  width:100% !important;
  padding:15px;
  border-radius:10px;
}

/* BLOOCO DE NOTAS */

	.chamada_nota{
	  cursor:pointer;
	  background-color:#000;
	  width:30px;
	  color:#fff;
	  padding:10px;
	  float:right;
	  margin-top:20px;
	  /* inline-block para funcionar quando usado em <span> (dentro de <label>,
	     onde <div> é HTML inválido). Em <div> também continua igual. */
	  display:inline-block;
	  box-sizing:content-box;
	}
	
	.chamada_nota:hover{
	  background-color:#666;
	}
	
	.chamada_nota:before, .chamada_nota:after{
	  margin:0 !important;
	  padding:0 !important;
	}

	.chamada_nota.chamada_nota_ajuste1{
	  margin-right:80px;
	  margin-top:13px !important;
	}

	.chamada_nota.chamada_nota_ajuste2{
	  margin-right:70px;
	  margin-top:13px !important;
	}

	.chamada_nota.chamada_nota_ajuste3{
	  margin-right:30px !important;
	  margin-top:22px !important; 
	}

/* PAGINAÇÃO */
.paginar a,.paginar span{border:1px solid #666; border-radius:3px; padding:5; text-decoration:none; background-color:#eee;}
.paginar span{background-color:#2D4B7C; color:#fff; margin-left:5px;}
.paginar a:hover{background-color:#666; color:#fff !important;}

/* CAMPOS OBRIGATÓRIOS — asterisco em vermelho + aviso visual de campo vazio.
   O balão nativo do navegador ("Please fill out this field") ancora no
   <input> original, que o shim do Tom Select encolhe pra 1px de largura
   (escondido; o widget de verdade é o wrapper .ts-wrapper ao lado) — o
   aviso existe, mas fica invisível. O Tom Select já mantém a classe
   .invalid sincronizada sozinho com a validação nativa (adiciona/remove
   ao vivo); só falta estilizar. Regra genérica, vale pra qualquer formulário
   do sistema com campo Tom Select marcado como required.

   Só aparece dentro de .was-validated (classe que functions.js adiciona no
   form na primeira tentativa de salvar, via evento `invalid`) — sem isso, um
   campo vazio já é :invalid desde o carregamento da página (antes de
   qualquer interação), e o aviso apareceria num formulário novo em branco. */
.obrigatorio { color: #dc3545; font-weight: bold; }
.was-validated .ts-wrapper.invalid .ts-control,
.was-validated input[required]:invalid {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 .15rem rgba(220, 53, 69, .25) !important;
}
/* Aviso "Preencha este campo." no estilo do balão nativo do navegador —
   inserido como elemento de verdade pelo functions.js (evento `invalid`,
   delegado no document), logo depois do campo. Sendo um elemento normal
   (não position:absolute), ele empurra o conteúdo de baixo em vez de
   flutuar por cima — funciona com QUALQUER quantidade de campos
   obrigatórios vazios ao mesmo tempo, mesmo em linhas próximas (ex.:
   Usuário da Pauta + Demandante logo abaixo), sem um cobrir o outro. */
.msg-obrigatorio-real {
    display: inline-block;
    margin-top: 6px;
    background: #fff;
    color: #222;
    padding: 6px 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.3;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}
.msg-obrigatorio-real::before { content: '⚠ '; }
.paginar{padding-top:20px; padding-bottom:20px;}
