This commit is contained in:
2026-05-08 15:30:25 -03:00
parent 2bbc71eee2
commit 20ae0d1f2f
14 changed files with 4600 additions and 3503 deletions
@@ -61,7 +61,7 @@
.sc-status-panel {
margin-top: 15px;
padding: 18px;
padding: 10px;
border: 1px solid #d8e1e8;
border-radius: 12px;
background: #f7fafc;
@@ -71,27 +71,27 @@
.sc-primary-grid,
.sc-secondary-grid {
display: grid;
grid-template-columns: repeat(3, minmax(220px, 1fr));
gap: 12px;
grid-template-columns: repeat(3, minmax(150px, 1fr));
gap: 8px;
}
.sc-primary-grid {
margin-bottom: 12px;
margin-bottom: 8px;
}
.sc-secondary-grid {
gap: 8px 12px;
gap: 8px;
}
.sc-info {
background: #fff;
border-radius: 10px;
padding: 12px 14px;
min-height: 72px;
border-radius: 8px;
padding: 8px 10px;
min-height: 52px;
}
.sc-info--primary {
border-left: 4px solid #04506b;
border-left: 3px solid #04506b;
box-shadow: inset 0 0 0 1px #d9e4ec;
}
@@ -111,32 +111,39 @@
}
.sc-label {
font-size: 11px;
font-size: 10px;
color: #4d6073;
letter-spacing: .04em;
text-transform: uppercase;
margin-bottom: 4px;
margin-bottom: 3px;
}
.sc-value {
font-size: 15px;
font-size: 13px;
font-weight: 600;
color: #24313f;
word-break: break-word;
}
.sc-info--primary .sc-value {
font-size: 30px;
line-height: 1.1;
font-size: 13px;
line-height: 1.25;
color: #102a43;
font-weight: 700;
letter-spacing: .01em;
}
.sc-info--secondary .sc-value {
font-size: 13px;
line-height: 1.25;
color: #173750;
font-weight: 700;
}
.sc-hint {
display: block;
margin-top: 6px;
font-size: 11px;
margin-top: 4px;
font-size: 10px;
color: #5f7386;
letter-spacing: .02em;
}
@@ -144,14 +151,29 @@
.sc-value.badge {
display: inline-flex;
align-items: center;
min-height: 30px;
padding: 6px 12px;
min-height: 24px;
padding: 4px 10px;
border-radius: 999px;
font-size: 12px;
font-size: 11px;
font-weight: 700;
line-height: 1;
}
/* Exibe apenas texto (sem fundo) nos status resumidos */
#statusSCProtheus_label,
#statusSC_label,
#cotacaoResultado_label {
background: transparent !important;
border-radius: 0 !important;
min-height: 0 !important;
padding: 0 !important;
display: inline !important;
font-size: 13px !important;
font-weight: 700 !important;
line-height: 1.25 !important;
color: #1f3f56 !important;
}
.sc-timeline-wrap {
margin-top: 16px;
padding-top: 0;
@@ -166,11 +188,25 @@
.sc-timeline-wrap.is-open {
padding-top: 14px;
border-top-color: #d7e2eb;
max-height: 640px;
max-height: 3400px;
opacity: 1;
pointer-events: auto;
}
.sc-timeline-layout {
display: grid;
grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
gap: 12px;
align-items: start;
}
.sc-timeline-panel {
padding: 12px;
border-radius: 10px;
background: #fff;
box-shadow: inset 0 0 0 1px #dfe8f0;
}
.sc-timeline-wrap.is-focus {
background: #f2f9ff;
border-radius: 8px;
@@ -179,7 +215,7 @@
.sc-timeline-title {
margin: 0 0 10px;
color: #12344d;
font-size: 14px;
font-size: 13px;
font-weight: 700;
letter-spacing: .01em;
}
@@ -242,7 +278,7 @@
.sc-timeline-event {
color: #18354f;
font-size: 14px;
font-size: 13px;
font-weight: 700;
}
@@ -280,84 +316,218 @@
list-style: none;
}
.sc-cotacao-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 8px 0;
border-top: 1px solid #edf2f7;
.sc-cotacao-kpis {
display: grid;
grid-template-columns: repeat(3, minmax(120px, 1fr));
gap: 8px;
margin-bottom: 10px;
}
.sc-cotacao-item:first-child {
border-top: 0;
padding-top: 0;
.sc-cotacao-kpi {
background: #f6f9fc;
border: 1px solid #e2eaf2;
border-radius: 8px;
padding: 8px 10px;
}
.sc-cotacao-item:last-child {
padding-bottom: 0;
.sc-cotacao-kpi-label {
display: block;
font-size: 10px;
color: #65798c;
letter-spacing: .04em;
text-transform: uppercase;
margin-bottom: 3px;
}
.sc-cotacao-item-info {
color: #324a5f;
.sc-cotacao-kpi-value {
font-size: 13px;
font-weight: 700;
color: #102a43;
}
.sc-cotacao-item-info strong {
.sc-cotacao-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 10px;
}
.sc-cotacao-card {
border: 1px solid #dfe8f0;
border-left: 4px solid #8ea5b8;
border-radius: 10px;
padding: 10px 12px;
background: #fff;
}
.sc-cotacao-card--winner {
border-left-color: #18aa46;
box-shadow: 0 0 0 1px rgba(24, 170, 70, .15);
}
.sc-cotacao-card--homologado {
border-left-color: #20a7d8;
}
.sc-cotacao-card--novo {
border-left-color: #2e86ff;
}
.sc-cotacao-card--perdedor {
border-left-color: #e3a225;
}
.sc-cotacao-top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 8px;
}
.sc-cotacao-top > div {
min-width: 0;
flex: 1 1 auto;
padding-right: 4px;
}
.sc-cotacao-supplier {
color: #20384d;
font-size: 13px;
font-weight: 700;
line-height: 1.25;
overflow-wrap: anywhere;
word-break: break-word;
}
#tbCotacao {
table-layout: fixed;
width: 100%;
margin-bottom: 0;
.sc-cotacao-code {
color: #62768a;
font-size: 12px;
margin-top: 2px;
overflow-wrap: anywhere;
word-break: break-word;
}
#tbCotacao thead th {
background: #eef3f8;
color: #3b4d5f;
.sc-cotacao-top .badge {
align-self: start;
flex: 0 0 auto;
white-space: nowrap;
margin: 0 0 0 6px;
}
.sc-cotacao-meta {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
margin-top: 8px;
}
.sc-cotacao-meta-box {
background: #f8fbfd;
border: 1px solid #e6edf3;
border-radius: 8px;
padding: 7px 8px;
}
.sc-cotacao-meta-label {
display: block;
font-size: 10px;
color: #6b7f92;
text-transform: uppercase;
letter-spacing: .04em;
margin-bottom: 2px;
}
.sc-cotacao-meta-value {
font-size: 14px;
font-weight: 700;
color: #1f384d;
}
#tbCotacao tbody tr:nth-child(odd) {
.sc-cotacao-footer {
margin-top: 8px;
display: flex;
flex-wrap: wrap;
gap: 10px;
color: #4d6479;
font-size: 12px;
}
.sc-cotacao-empty {
border: 1px dashed #c6d5e2;
border-radius: 8px;
padding: 10px;
font-size: 13px;
color: #4f657a;
background: #f9fbfd;
}
#tbCotacao tbody td,
#tbCotacao thead th,
#tbCotacao tfoot td {
vertical-align: middle;
.sc-pedido-track {
margin-top: 12px;
padding: 12px;
border-radius: 10px;
background: #fff;
box-shadow: inset 0 0 0 1px #dfe8f0;
}
#tbCotacao th:nth-child(3),
#tbCotacao th:nth-child(4),
#tbCotacao th:nth-child(5),
#tbCotacao td:nth-child(3),
#tbCotacao td:nth-child(4),
#tbCotacao td:nth-child(5) {
text-align: right;
.sc-timeline-layout .sc-pedido-track {
margin-top: 0;
}
#tbCotacao td:nth-child(3) input,
#tbCotacao td:nth-child(4) input,
#tbCotacao td:nth-child(5) input {
text-align: right;
.sc-pedido-resumo {
margin-top: 8px;
margin-bottom: 8px;
color: #26455d;
font-size: 13px;
line-height: 1.45;
}
#tbCotacao tfoot .sc-total-label {
text-align: right;
.sc-pedido-assinaturas {
display: grid;
grid-template-columns: 1fr;
gap: 8px;
}
.sc-pedido-ass-card {
border: 1px solid #e3ebf2;
border-left: 4px solid #90a8bd;
border-radius: 8px;
padding: 8px 10px;
background: #fbfdff;
}
.sc-pedido-ass-card.aprovado {
border-left-color: #1aad4f;
}
.sc-pedido-ass-card.pendente {
border-left-color: #e2a223;
}
.sc-pedido-ass-card.bloqueado {
border-left-color: #d64f4f;
}
.sc-pedido-ass-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 4px;
}
.sc-pedido-ass-title {
color: #1f3f56;
font-size: 13px;
font-weight: 700;
background: #edf3f8;
color: #324a60;
}
#tbCotacao tfoot .sc-total-value {
background: #edf3f8;
color: #12344d;
font-size: 15px;
font-weight: 700;
text-align: right;
.sc-pedido-ass-meta {
display: flex;
flex-wrap: wrap;
gap: 10px;
color: #4b6176;
font-size: 12px;
line-height: 1.35;
}
@media (max-width: 992px) {
@@ -365,6 +535,10 @@
.sc-secondary-grid {
grid-template-columns: repeat(2, minmax(180px, 1fr));
}
.sc-timeline-layout {
grid-template-columns: 1fr;
}
}
@media (max-width: 640px) {
@@ -374,7 +548,19 @@
}
.sc-info--primary .sc-value {
font-size: 24px;
font-size: 13px;
}
.sc-info--secondary .sc-value {
font-size: 13px;
}
.sc-cotacao-top {
flex-wrap: wrap;
}
.sc-cotacao-top .badge {
margin-left: 0;
}
}
</style>
@@ -410,6 +596,7 @@
<input type="hidden" name="cotacaoSCProtheus" id="cotacaoSCProtheus">
<input type="hidden" name="pedidoSCProtheus" id="pedidoSCProtheus">
<input type="hidden" name="statusAtendimento" id="statusAtendimento">
<input type="hidden" name="valorTotalCotacao" id="valorTotalCotacao" value="0">
@@ -667,285 +854,76 @@
<span class="sc-hint" id="cardNumeroSCHint">Clique para ver a linha do tempo</span>
</div>
<div class="sc-info sc-info--primary">
<div class="sc-label">Status Cadastro</div>
<span class="sc-value badge bg-secondary" id="statusSCProtheus_label">-</span>
</div>
<div class="sc-info sc-info--primary">
<div class="sc-label">Andamento</div>
<span class="sc-value badge bg-secondary" id="statusSC_label">-</span>
</div>
</div>
<div class="sc-secondary-grid">
<div class="sc-info sc-info--secondary">
<div class="sc-label">Solicitante</div>
<div class="sc-value" id="solicitanteSCProtheus_label">-</div>
</div>
<div class="sc-info sc-info--secondary">
<div class="sc-label">Emissão</div>
<div class="sc-value" id="emissaoSCProtheus_label">-</div>
</div>
<div class="sc-info sc-info--secondary">
<div class="sc-label">Qtd. Itens</div>
<div class="sc-value" id="qtdItensSCProtheus_label">-</div>
</div>
<div class="sc-info sc-info--secondary">
<div class="sc-label">Data do Cadastro</div>
<div class="sc-value"><span id="dataCadastroSCProtheus_label">-</span> às <span id="horaCadastroSCProtheus_label">-</span></div>
</div>
<div class="sc-info sc-info--secondary">
<div class="sc-label">Cotação</div>
<div class="sc-value" id="cotacaoSC_label">-</div>
</div>
<div class="sc-info sc-info--secondary">
<div class="sc-info sc-info--primary">
<div class="sc-label">Pedido</div>
<div class="sc-value" id="pedidoSC_label">-</div>
</div>
</div>
<div class="sc-secondary-grid">
<div class="sc-info sc-info--secondary">
<div class="sc-label">Status Cadastro</div>
<span class="sc-value badge bg-secondary" id="statusSCProtheus_label">-</span>
</div>
<div class="sc-info sc-info--secondary">
<div class="sc-label">Andamento</div>
<span class="sc-value badge bg-secondary" id="statusSC_label">-</span>
</div>
<div class="sc-info sc-info--secondary">
<div class="sc-label">Emissão</div>
<div class="sc-value" id="emissaoSCProtheus_label">-</div>
</div>
</div>
<div class="sc-timeline-wrap" id="scTimelineSection">
<h4 class="sc-timeline-title">Linha do tempo da SC</h4>
<ul class="sc-timeline" id="scTimeline"></ul>
<div class="sc-timeline-layout">
<div class="sc-timeline-panel">
<h4 class="sc-timeline-title">Linha do tempo da SC</h4>
<ul class="sc-timeline" id="scTimeline"></ul>
</div>
<div class="sc-pedido-track">
<div class="sc-cotacao-head">
<h4 class="sc-timeline-title" style="margin:0;">Aprovação do pedido</h4>
<span class="sc-value badge bg-secondary" id="pedidoRastreio_label">Sem pedido</span>
</div>
<div class="sc-pedido-resumo" id="pedidoRastreioResumo">Sem pedido vinculado.</div>
<div class="sc-pedido-assinaturas" id="pedidoRastreioAssinaturas">
<div class="sc-cotacao-empty">Sem assinaturas para exibir.</div>
</div>
</div>
</div>
<div class="sc-cotacao-track">
<div class="sc-cotacao-head">
<h4 class="sc-timeline-title" style="margin:0;">Acompanhamento da cotação</h4>
<span class="sc-value badge bg-secondary" id="cotacaoResultado_label">Sem cotação</span>
</div>
<ul class="sc-cotacao-list" id="cotacaoResultadoLista">
<li class="sc-cotacao-item">
<span class="sc-cotacao-item-info">Aguardando vínculo da cotação na SC.</span>
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- CONSULTA COTAÇÃO -->
<div class="activity activity-105">
<div class="row">
<div class="panel panel-default">
<div class="panel-heading"><strong>Consulta Cotação</strong></div>
<!-- Campo hidden para guardar o total -->
<input type="hidden" name="valorTotalCotacao" id="valorTotalCotacao" value="0"/>
<!-- Tabela Pai-Filho -->
<table tablename="tbCotacao" id="tbCotacao" class="table table-bordered" noaddbutton="true" nodeletebutton="true">
<thead>
<tr>
<th>Item</th>
<th>Produto</th>
<th>Qtd</th>
<th>Preço</th>
<th>Total</th>
<th>Selecionar</th>
</tr>
</thead>
<tbody>
<!-- O Fluig precisa de uma linha “modelo” -->
<tr>
<td><input type="text" name="item" id="item" readonly></td>
<td><input type="text" name="produto" id="produto" readonly></td>
<td><input type="text" name="qtdc" id="qtdc" readonly></td>
<td><input type="text" name="preco" id="preco" readonly></td>
<td><input type="text" name="total" id="total" readonly></td>
<td><input type="checkbox" name="selecionado" id="selecionado" value="S"></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4" class="sc-total-label">Total selecionado</td>
<td class="sc-total-value" id="valorTotalCotacaoLabel">R$ 0,00</td>
<td></td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
<!-- ACTIVITY 137- Aprovar cotação Compras -->
<div class="activity activity-137">
<div class="row">
<div class="col-md-12">
<h2><i class="flaticon flaticon-check-circle" aria-hidden="true"></i>Aprovar cotação</h2>
<h6>Análise da cotação</h6>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-6 col-xs-12">
<label>Usuário responsável da Cotação</label>
<input type="text" name="user_validacao_aprova" id="user_validacao_aprova" class="form-control" readonly
data-protection="Responsável por aprovar de documentos" data-protection-anonymizable
data-protection-sensitive data-protection-name
data-protection-class-legitimate-interests="Dado coletado para o funcionamento do processo" />
<div class="sc-cotacao-kpis" id="cotacaoResultadoResumo">
<div class="sc-cotacao-kpi">
<span class="sc-cotacao-kpi-label">Cotações</span>
<span class="sc-cotacao-kpi-value">0</span>
</div>
<div class="sc-cotacao-kpi">
<span class="sc-cotacao-kpi-label">Com pedido</span>
<span class="sc-cotacao-kpi-value">0</span>
</div>
<div class="sc-cotacao-kpi">
<span class="sc-cotacao-kpi-label">Menor total</span>
<span class="sc-cotacao-kpi-value">-</span>
</div>
</div>
<div class="form-group col-md-3 col-xs-12">
<label>Data</label>
<input type="text" name="data_validacao_aprova" id="data_validacao_aprova" class="form-control" readonly />
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao_aprova">Justificativa</label>
<textarea class="form-control" name="justi_decisao_aprova" id="justi_decisao_aprova"></textarea>
<p class="help-block" id="justiDecisaoGestor" style="display:none;">Preenchimento obrigatório</p>
<div class="sc-cotacao-grid" id="cotacaoResultadoLista">
<div class="sc-cotacao-empty">Aguardando vínculo da cotação na SC.</div>
</div>
</div>
</div>
</div>
</div>
<!-- ACTIVITY 133- Aprovar cotação Compras -->
<div class="activity activity-133">
<div class="row">
<div class="col-md-12">
<h2><i class="flaticon flaticon-check-circle" aria-hidden="true"></i>Aprovação do Gestor do C.Custo</h2>
<h6>Aprovação da cotação</h6>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-6 col-xs-12">
<label>Gestor responsável da Cotação</label>
<input type="text" name="gestor_validacao_aprova" id="gestor_validacao_aprova" class="form-control" readonly
data-protection="Responsável por aprovar de documentos" data-protection-anonymizable
data-protection-sensitive data-protection-name
data-protection-class-legitimate-interests="Dado coletado para o funcionamento do processo" />
</div>
<div class="form-group col-md-3 col-xs-12">
<label>Data</label>
<input type="text" name="data_validacao_aprova_gestor" id="data_validacao_aprova_gestor" class="form-control" readonly />
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao_aprova_gestor">Justificativa</label>
<textarea class="form-control" name="justi_decisao_aprova_gestor" id="justi_decisao_aprova_gestor"></textarea>
<p class="help-block" id="justi_decisao_aprova_gestor" style="display:none;">Preenchimento obrigatório</p>
</div>
<div class="form-group col-md-8 col-xs-12">
<label>Jusiticativa do solicitante <span class="required text-danger"><strong>*</strong></span></label>
<textarea class="form-control" rows="3" id="observacoesdosolicitante" name="observacoesdosolicitante" readonly
placeholder="Descreva aqui alguma informação adicional que julgar importante."></textarea>
</div>
</div>
</div>
</div>
</div><!-- /activity-131 -->
<!-- ACTIVITY 147- Aprovar cotação Compras -->
<div class="activity activity-147">
<div class="row">
<div class="col-md-12">
<h2><i class="flaticon flaticon-check-circle" aria-hidden="true"></i>Aprovação do Gerente Financeiro</h2>
<h6>Aprovação do Gerente Financeiro</h6>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-6 col-xs-12">
<label>Ger. Financeiro responsável pela Aprovação</label>
<input type="text" name="gerf_validacao_aprova" id="gerf_validacao_aprova" class="form-control" readonly
data-protection="Responsável por aprovar de documentos" data-protection-anonymizable
data-protection-sensitive data-protection-name
data-protection-class-legitimate-interests="Dado coletado para o funcionamento do processo" />
</div>
<div class="form-group col-md-3 col-xs-12">
<label>Data</label>
<input type="text" name="data_validacao_aprova_gerf" id="data_validacao_aprova_gerf" class="form-control" readonly />
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao_aprova_gerente">Justificativa</label>
<textarea class="form-control" name="justi_decisao_aprova_gerente" id="justi_decisao_aprova_gerente" readonly></textarea>
<p class="help-block" id="justi_decisao_aprova_gerente" style="display:none;">Preenchimento obrigatório</p>
</div>
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao_gc">Justificativa do Gestor do Centro de Custo</label>
<textarea class="form-control" name="justi_decisao_gc" id="justi_decisao_gc"readonly></textarea>
</div>
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao__soli">Justificativa do Solicitante</label>
<textarea class="form-control" name="justi_decisao__soli" id="justi_decisao__soli" readonly></textarea>
</div>
</div>
</div>
</div>
</div><!-- /activity-131 -->
<!-- ACTIVITY 137- Aprovar cotação Compras -->
<div class="activity activity-158">
<div class="row">
<div class="col-md-12">
<h2><i class="flaticon flaticon-check-circle" aria-hidden="true"></i>Aprovação CEO</h2>
<h6> Aprovação do CEO</h6>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-6 col-xs-12">
<label>Usuário responsável</label>
<input type="text" name="ceo_validacao_aprova" id="ceo_validacao_aprova" class="form-control" readonly
data-protection="Responsável por aprovar de documentos" data-protection-anonymizable
data-protection-sensitive data-protection-name
data-protection-class-legitimate-interests="Dado coletado para o funcionamento do processo" />
</div>
<div class="form-group col-md-3 col-xs-12">
<label>Data</label>
<input type="text" name="data_validacao_aprova_ceo" id="data_validacao_aprova_ceo" class="form-control" readonly />
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao_aprova_ceo">Justificativa</label>
<textarea class="form-control" name="justi_decisao_aprova_ceo" id="justi_decisao_aprova_ceo" readonly></textarea>
<p class="help-block" id="justi_decisao_aprova_ceo" style="display:none;">Preenchimento obrigatório</p>
</div>
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao_aprova_ceo">Justificativa do Gerente Financeiro</label>
<textarea class="form-control" name="justi_decisao_gerf" id="justi_decisao_gerf" readonly></textarea>
</div>
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisaogc">Justificativa do Gestor do Centro de custo</label>
<textarea class="form-control" name="justi_decisaogc" id="justi_decisaogc" readonly></textarea>
</div>
<div class="form-group col-md-12 divJustiDecisaoGestor alertaCampo">
<label for="justi_decisao_solic">Justificativa do Solicitante</label>
<textarea class="form-control" name="justi_decisao_solic" id="justi_decisao_solic" readonly></textarea>
</div>
</div>
</div>
</div>
</div><!-- /activity-131 -->
<!-- Blocos de Consulta Cotacao e aprovacoes de cotacao (ate CEO) removidos da interface -->
<div class="activity activity-18">
<div>
<br />
@@ -955,14 +933,6 @@
</h2>
<br />
</div>
<div class="row">
<!-- Botão para consultar agora -->
<div id="espelhoPedido" style="margin-top:15px;">
⏳ Aguardando geração do pedido...
</div>
</div>
<div class="row">
<div class="form-field">
<div class="form-input">