/* ========================================

   SIDEBAR & RESUMO - Checkout Ninja

   Coluna direita com resumo do pedido

======================================== */



/* ========================================

   COLUNA RESUMO

======================================== */

.coluna-resumo-pedido {

  position: sticky;

  top: 100px;

}



.resumo-pedido-container {

  background: white;

  border-radius: var(--border-radius-md);

  border: 1px solid var(--color-gray-200);

  padding: var(--spacing-lg);

}



.resumo-pedido-container h3 {

  font-size: 1.1rem;

  font-weight: 600;

  color: var(--color-gray-900);

  margin: 0 0 var(--spacing-lg) 0;

}



/* ========================================

   LISTA DE PRODUTOS

======================================== */

.produtos-resumo {

  max-height: 300px;

  overflow-y: auto;

  margin-bottom: var(--spacing-lg);

  padding-bottom: var(--spacing-lg);

  border-bottom: 1px solid var(--color-gray-200);

}



.produtos-resumo::-webkit-scrollbar {

  width: 4px;

}



.produtos-resumo::-webkit-scrollbar-track {

  background: #f1f5f9;

  border-radius: 2px;

}



.produtos-resumo::-webkit-scrollbar-thumb {

  background: #cbd5e1;

  border-radius: 2px;

}



.produtos-resumo::-webkit-scrollbar-thumb:hover {

  background: #94a3b8;

}



.produto-item {

  display: flex;

  align-items: flex-start;

  gap: var(--spacing-md);

  margin-bottom: var(--spacing-md);

}



.produto-item:last-child {

  margin-bottom: 0;

}



/* ========================================

   PRODUTO INDIVIDUAL

======================================== */

.produto-imagem {

  position: relative;

  flex-shrink: 0;

  width: 60px;

  height: 60px;

}



.produto-imagem a {

  display: block;

  width: 100%;

  height: 100%;

  border-radius: var(--border-radius-sm);

  overflow: hidden;

  transition: var(--transition-fast);

}



.produto-imagem a:hover {

  opacity: 0.8;

}



.produto-imagem img {

  width: 100%;

  height: 100%;

  border-radius: var(--border-radius-sm);

  object-fit: cover;

  border: 1px solid var(--color-gray-200);

  background: var(--color-gray-50);

  display: block;

  transition: var(--transition-fast);

}



.produto-imagem a:hover img {

  transform: scale(1.05);

}



.produto-info {

  flex: 1;

  min-width: 0;

}



.produto-nome-link {

  text-decoration: none;

  color: inherit;

  transition: var(--transition-fast);

  display: block;

  margin-bottom: var(--spacing-xs);

}



.produto-nome-link:hover {

  color: var(--color-primary);

}



.produto-nome {

  font-weight: 500;

  color: var(--color-gray-900);

  font-size: var(--font-size-product);

  line-height: 1.4;

  display: -webkit-box;

  -webkit-line-clamp: 2;

  -webkit-box-orient: vertical;

  overflow: hidden;

}



.produto-nome-link:hover .produto-nome {

  color: var(--color-primary);

}







.produto-preco {

  font-weight: 600;

  color: var(--color-gray-900);

  font-size: 1rem;

  margin-top: var(--spacing-xs);

}



/* ========================================

   INFORMAÇÕES ADICIONAIS NO RESUMO

======================================== */

.resumo-frete-info {

  background: #f0fdf4;

  border: 1px solid #bbf7d0;

  border-radius: var(--border-radius-sm);

  padding: 0.75rem;

  margin-bottom: var(--spacing-md);

}



.resumo-frete-titulo {

  font-size: 1rem;

  font-weight: 600;

  color: var(--color-success);

  margin-bottom: var(--spacing-xs);

}



.resumo-frete-detalhes {

  font-size: 1rem;

  color: var(--color-gray-700);

}



.resumo-cupom-info {

  background: #fef3c7;

  border: 1px solid #fbbf24;

  border-radius: var(--border-radius-sm);

  padding: 0.75rem;

  margin-bottom: var(--spacing-md);

}



.resumo-cupom-titulo {

  font-size: 1rem;

  font-weight: 600;

  color: var(--color-warning);

  margin-bottom: var(--spacing-xs);

}



.resumo-cupom-codigo {

  font-size: 1rem;

  color: var(--color-gray-700);

  font-family: monospace;

}



/* ========================================

   TOTAIS DO RESUMO

======================================== */

.totais-resumo {

  margin-bottom: var(--spacing-lg);

}



.total-linha {

  display: flex;

  justify-content: space-between;

  align-items: center;

  margin-bottom: 0.75rem;

  font-size: 1rem;

  padding: var(--spacing-xs) 0;

}



.total-linha:last-child {

  margin-bottom: 0;

}



.total-linha span:first-child {

  color: var(--color-gray-500);

}



.total-linha span:last-child {

  color: var(--color-gray-900);

  font-weight: 500;

}



/* Destaque especial para desconto */

.desconto-linha {

  background: #f0fdf4;

  padding: var(--spacing-sm);

  border-radius: var(--border-radius-sm);

  border: 1px solid #bbf7d0;

}



.desconto-linha span:first-child {

  color: var(--color-success) !important;

  font-weight: 600;

}



.desconto-linha span:last-child {

  color: var(--color-success) !important;

  font-weight: 700;

}



.total-final {

  display: flex;

  justify-content: space-between;

  padding-top: 0.75rem;

  border-top: 1px solid var(--color-gray-200);

  font-weight: 700;

  font-size: 1.1rem;

  color: var(--color-gray-900);

}



.total-final span:last-child,

.valor-monetario {

  color: var(--color-primary);

  font-weight: 700;

  white-space: nowrap;

  font-variant-numeric: tabular-nums;

  font-feature-settings: "tnum";

}



#total-final,

#valor-subtotal,

#valor-desconto,

#valor-frete {

  font-variant-numeric: tabular-nums;

  font-feature-settings: "tnum";

}



/* ========================================

   BOTÃO FINALIZAR COMPRA

======================================== */

.resumo-pedido-container .btn-finalizar-compra {

  width: 100%;

  background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-hover) 100%);

  color: white;

  border: none;

  padding: 1.25rem var(--spacing-xl);

  border-radius: var(--border-radius-md);

  font-size: 1.2rem;

  font-weight: 700;

  cursor: pointer;

  transition: var(--transition-normal);

  margin-bottom: var(--spacing-lg);

  font-family: inherit;

  display: none;

  align-items: center;

  justify-content: center;

  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.4);

}



.resumo-pedido-container .btn-finalizar-compra:hover:not(.disabled) {

  background: linear-gradient(135deg, var(--color-success-hover) 0%, #14532d 100%);

  transform: translateY(-2px);

  box-shadow: 0 8px 20px rgba(22, 163, 74, 0.5);

}



/* Estado desabilitado */

.resumo-pedido-container .btn-finalizar-compra.disabled {

  background: linear-gradient(135deg, var(--color-gray-400) 0%, var(--color-gray-500) 100%);

  cursor: not-allowed;

  transform: none;

  box-shadow: var(--shadow-sm);

}



.resumo-pedido-container .btn-finalizar-compra.disabled:hover {

  background: linear-gradient(135deg, var(--color-gray-400) 0%, var(--color-gray-500) 100%);

  transform: none;

  box-shadow: var(--shadow-sm);

}



/* ========================================

   CONTROLE DE VISIBILIDADE DO BOTÃO

======================================== */



/* Esconder botão por padrão */

.resumo-pedido-container .btn-finalizar-compra {

  display: none !important;

}



/* Mostrar apenas no step de pagamento */

body.step-pagamento-active .resumo-pedido-container .btn-finalizar-compra {

  display: flex !important;

}



/* Mostrar quando método de pagamento estiver selecionado */

body.step-pagamento-active.pagamento-selecionado .resumo-pedido-container .btn-finalizar-compra {

  display: flex !important;

  animation: slideIn 0.3s ease;

}



/* Versão desabilitada quando pagamento não confirmado */

body.step-pagamento-active .resumo-pedido-container .btn-finalizar-compra:not(.pagamento-confirmado) {

  background: linear-gradient(135deg, var(--color-gray-400) 0%, var(--color-gray-500) 100%) !important;

  cursor: not-allowed !important;

  box-shadow: var(--shadow-sm) !important;

}



/* Versão ativa quando pagamento confirmado */

body.step-pagamento-active .resumo-pedido-container .btn-finalizar-compra.pagamento-confirmado {

  background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-hover) 100%) !important;

  cursor: pointer !important;

  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.4) !important;

}



/* ========================================

   MENSAGENS DE ORIENTAÇÃO

======================================== */

.mensagem-aguardando-pagamento {


  align-items: center;

  justify-content: center;

  padding: var(--spacing-md);

  background: var(--color-gray-50);

  border-radius: var(--border-radius-sm);

  margin-bottom: var(--spacing-lg);

  font-size: 1rem;

  color: var(--color-gray-500);

  text-align: center;

}







/* Esconder mensagem no step de pagamento */

body.step-pagamento-active .resumo-pedido-container .mensagem-aguardando-pagamento {

  display: none !important;

}



.seguranca-info {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: var(--spacing-sm);

  font-size: 1rem;

  color: var(--color-gray-500);

  text-align: center;

  padding: var(--spacing-md);

  background: var(--color-gray-50);

  border-radius: var(--border-radius-sm);

  border: 1px solid var(--color-gray-200);

}



.seguranca-info svg {

  color: var(--color-success);

  flex-shrink: 0;

}



/* Esconder botão original da seção de pagamento */

#conteudo-pagamento .btn-finalizar-compra {

  display: none !important;

}



/* ========================================

   PRODUTO NOME CONTAINER COM BOTÃO REMOVER

======================================== */

.produto-nome-container {

  display: flex;

  align-items: flex-start;

  justify-content: space-between;

  margin-bottom: 0px; /* REDUZIDO de var(--spacing-xs) */

  gap: 8px; /* REDUZIDO de var(--spacing-sm) */

}



.produto-nome-container .produto-nome {

  flex: 1;

  margin: 0;

  font-size: 1rem; /* Manter consistente */

  line-height: 1.3; /* AJUSTADO para menos espaço */

}



/* Botão remover produto (X) */

.btn-remover-produto {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border: none !important;
    background: var(--color-gray-200);
    color: var(--color-gray-600) !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    display: flex !important
;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    padding: 0 !important;
    transition: var(--transition-fast) !important;
    margin: 0px !important;
    min-height: 24px !important;
    min-width: 24px !important;
}



.btn-remover-produto:hover {

  background: var(--color-primary);

  color: white;

}



.btn-remover-produto .icon-remover {

  font-weight: 700;

  font-size: 1rem; /* REDUZIDO de 12px */

}



/* ========================================

   QUANTIDADE E PREÇO - MAIS COMPACTO

======================================== */

.produto-quantidade-preco {

  font-size: 1rem; /* REDUZIDO */

  color: var(--color-gray-500);

  font-weight: 400;

  line-height: 1.2; /* MAIS COMPACTO */

  margin-bottom: 8px; /* REDUZIDO - era margin-top no controles */

}



/* ========================================

   CONTROLES DE QUANTIDADE - MAIS PRÓXIMOS

======================================== */

.produto-controles {

  margin-top: 0; /* REMOVIDO margin-top */

  padding-bottom: 8px; /* REDUZIDO de var(--spacing-sm) */

  border-bottom: 1px solid var(--color-gray-100);

}



.controles-quantidade {

  display: flex;

  align-items: center;

  gap: 6px; /* REDUZIDO de var(--spacing-xs) */

  margin-bottom: 6px; /* REDUZIDO de var(--spacing-xs) */

}



/* Botões de quantidade (- e +) - MENORES */

.btn-qty-menos, .btn-qty-mais {
    width: 24px;
    height: 24px;
    border: 1px solid var(--color-gray-300) !important;
    background: white !important;
    color: var(--color-gray-700) !important;
    border-radius: var(--border-radius-sm) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    padding: 0 !important;
    transition: var(--transition-fast) !important;
    margin: 0px !important;
    min-height: 28px !important;
}



.btn-qty-menos:hover:not(:disabled),

.btn-qty-mais:hover:not(:disabled) {

  background: var(--color-primary);

  color: white;

  border-color: var(--color-primary);

  transform: scale(1.05);

}



.btn-qty-menos:disabled,

.btn-qty-mais:disabled {

  background: var(--color-gray-100);

  color: var(--color-gray-400);

  border-color: var(--color-gray-200);

  cursor: not-allowed;

  opacity: 0.6;

}



.btn-qty-menos .icon-menos,

.btn-qty-mais .icon-mais {

  font-size: 1rem; /* REDUZIDO de 12px */

  line-height: 1;

}



/* Display da quantidade atual - MENOR */

.qty-display {

  min-width: 24px; /* REDUZIDO de 30px */

  text-align: center;

  font-weight: 600;

  color: var(--color-gray-900);

  font-size: 1rem; /* REDUZIDO de 0.9rem */

  padding: 2px; /* REDUZIDO de var(--spacing-xs) */

  border-radius: var(--border-radius-sm);

  background: var(--color-gray-50);

  border: 1px solid var(--color-gray-200);

  line-height: 1.6; /* REDUZIDO de 1.8 */

}



/* ========================================

   CONTROLE STATUS - MAIS COMPACTO

======================================== */

.controle-status {

  display: flex;

  flex-direction: column;

  gap: 2px; /* REDUZIDO de 4px */

}



.estoque-info {

  font-size: 1rem; /* REDUZIDO de 0.75rem */

  color: var(--color-gray-500);

  font-style: italic;

  margin: 0;

  line-height: 1.2;

}



.loading-qty {

  display: flex;

  align-items: center;

  gap: 4px; /* REDUZIDO de var(--spacing-xs) */

  font-size: 1rem; /* REDUZIDO de 0.75rem */

  color: var(--color-primary);

}



.loading-qty small {

  margin: 0;

  line-height: 1.2;

}



/* Animação do loading - MENOR */

.loading-qty::before {

  content: '';

  width: 10px; /* REDUZIDO de 12px */

  height: 10px; /* REDUZIDO de 12px */

  border: 2px solid var(--color-gray-200);

  border-top: 2px solid var(--color-primary);

  border-radius: 50%;

  animation: spin 1s linear infinite;

}



@keyframes spin {

  0% { transform: rotate(0deg); }

  100% { transform: rotate(360deg); }

}



/* ========================================

   PRODUTOS VENDIDOS INDIVIDUALMENTE - COMPACTO

======================================== */

.produto-controles-individual {

  margin-top: 0; /* REMOVIDO margin-top */

  padding-top: 8px; /* REDUZIDO de var(--spacing-sm) */

  border-top: 1px solid var(--color-gray-100);

  text-align: center;

}



.info-individual {

  display: block;

  font-size: 1rem; /* REDUZIDO de 0.75rem */

  color: var(--color-gray-500);

  margin-bottom: 6px; /* REDUZIDO de var(--spacing-sm) */

  font-style: italic;

  line-height: 1.2;

}



.btn-remover-produto-pequeno {

  background: var(--color-gray-100);

  color: var(--color-gray-700);

  border: 1px solid var(--color-gray-300);

  padding: 3px 6px; /* REDUZIDO de 4px 8px */

  font-size: 1rem; /* REDUZIDO de 0.75rem */

  border-radius: var(--border-radius-sm);

  cursor: pointer;

  transition: var(--transition-fast);

}



.btn-remover-produto-pequeno:hover {

  background: var(--color-primary);

  color: white;

  border-color: var(--color-primary);

}



/* ========================================

   FEEDBACK MESSAGES - MAIS COMPACTO

======================================== */

.produto-feedback {

  margin-top: 6px; /* REDUZIDO de var(--spacing-sm) */

  min-height: 0;

  overflow: hidden;

  transition: all 0.3s ease;

}



.feedback-message {

  padding: 4px 8px; /* REDUZIDO de var(--spacing-xs) var(--spacing-sm) */

  border-radius: var(--border-radius-sm);

  font-size: 0.75rem; /* REDUZIDO de 0.8rem */

  font-weight: 500;

  line-height: 1.3;

}



/* ========================================

   AJUSTES PARA MOBILE - AINDA MAIS COMPACTO

======================================== */

@media (max-width: 768px) {

  

  .produto-nome-container {

    margin-bottom: 4px; /* AINDA MENOR no mobile */

    gap: 6px;

  }

  

  .produto-quantidade-preco {

    font-size: 1rem;

    margin-bottom: 6px;

  }

  

  .btn-remover-produto {

    width: 16px; /* AINDA MENOR */

    height: 16px; /* AINDA MENOR */

    font-size: 10px;

  }

  

  .btn-qty-menos,

  .btn-qty-mais {

    width: 22px; /* AINDA MENOR */

    height: 22px; /* AINDA MENOR */

    font-size: 11px;

  }

  



  

  .produto-controles {

    padding-top: 6px; /* AINDA MENOR */

  }

  

  .controles-quantidade {

    gap: 4px; /* AINDA MENOR */

    margin-bottom: 4px;

  }

  

  .estoque-info {

    font-size: 0.65rem; /* AINDA MENOR */

  }

}



@media (max-width: 480px) {

  

  .produto-nome-container {

    margin-bottom: 3px; /* MÍNIMO */

  }

  

  .produto-quantidade-preco {

    font-size: 1rem;

    margin-bottom: 5px;

  }

  

  .btn-qty-menos,

  .btn-qty-mais {

    width: 20px; /* MÍNIMO */

    height: 20px; /* MÍNIMO */

    font-size: 10px;

  }

  


  

  .controles-quantidade {

    gap: 3px; /* MÍNIMO */

  }

}



/* Termos e Condições */

.termos-condicoes-container {

    margin-bottom: var(--spacing-md);

    padding: 10px;

    border: 1px solid var(--color-gray-200);

    border-radius: var(--border-radius-sm);

    background-color: #f9f9f9;

}



.termos-checkbox-label {

    display: flex;

    align-items: center;

    gap: 8px;

    cursor: pointer;

    font-size: 1rem;

    line-height: 1.4;

    padding: 10px;

}



.termos-checkbox {

    margin: 0;

    transform: scale(1.1);

}



.termos-texto {

    color: var(--color-gray-700);

}



.termos-link {

    color: var(--color-primary);

    text-decoration: underline;

}



.termos-link:hover {

    color: var(--color-primary-dark);

}



/* Botão desabilitado */

.btn-finalizar-compra:disabled {

    opacity: 0.5;

    cursor: not-allowed;

    background-color: #ccc;

}



input#aceitar-termos {

    margin-right: 0em !important;

    margin-top: 4px !important;

}

/* ========================================
   CSS PARA NOME DO VENDEDOR
   Adicione ao seu forms-componentes.css ou sidebar-resumo.css
======================================== */

/* Estilo para vendedor no resumo de pedido */
.produto-vendedor {
    gap: 4px;
    margin-top: 4px;
    font-size: 1rem;
    color: var(--color-gray-600);
}

.vendedor-label {
    color: var(--color-gray-500);
    font-weight: 400;
}

.vendedor-nome {
    color: var(--color-primary);
    font-weight: 500;
    font-style: italic;
}

/* Estilo para vendedor no order bump */
.order-bump-vendedor {
    align-items: center;
    gap: 4px;
    margin: 4px 0;
    font-size: 0.75rem;
    color: var(--color-gray-600);
}

.bump-vendedor-label {
    color: var(--color-gray-500);
    font-weight: 400;
}

.bump-vendedor-nome {
    color: var(--color-primary);
    font-weight: 500;
    font-style: italic;
}

/* Versão responsiva para mobile */
@media (max-width: 768px) {
    .produto-vendedor,
    .order-bump-vendedor {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
    
    .vendedor-nome,
    .bump-vendedor-nome {
        font-size: 1rem;
    }
}

/* Estilo alternativo para destacar mais o vendedor */
.produto-vendedor.destacado,
.order-bump-vendedor.destacado {
    background: rgba(220, 38, 38, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
    border-left: 2px solid var(--color-primary);
}

/* Ícone opcional para vendedor (se quiser adicionar depois) */
.vendedor-nome::before,
.bump-vendedor-nome::before {
    content: "👤 ";
    font-size: 0.7em;
    opacity: 0.7;
}

/* Estilo para quando é a loja principal (opcional) */
.vendedor-nome.loja-principal,
.bump-vendedor-nome.loja-principal {
    color: var(--color-success);
    font-weight: 600;
}

.vendedor-nome.loja-principal::before,
.bump-vendedor-nome.loja-principal::before {
    content: "🏪 ";
}