/* /assets/css/cart.css
   Estilos isolados do Carrinho Global (não dependem do styles.css)
*/
:root{
  --ck-primary:#C40000;
  --ck-bg:#ffffff;
  --ck-text:#000000;
  --ck-muted:#666666;
  --ck-radius:12px;
  --ck-shadow:0 10px 30px rgba(0,0,0,.18);
}

/* Botão flutuante */
.cart-button{
  position:fixed;
  right:18px;
  bottom:18px;
  width:64px;
  height:64px;
  border-radius:999px;
  background:var(--ck-bg);
  color:var(--ck-text);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:var(--ck-shadow);
  border:1px solid rgba(0,0,0,.08);
  z-index:9999;
}
.cart-button:active{transform:scale(.98)}
.cart-badge{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:24px;
  height:24px;
  padding:0 6px;
  border-radius:999px;
  background:var(--ck-primary);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:800;
  border:2px solid #fff;
}

/* Modal base */
.modal{position:fixed;inset:0;display:none;align-items:flex-end;justify-content:center;z-index:9998}
.modal.active{display:flex}
.modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.75)}
.modal-content{
  position:relative;
  width:100%;
  max-width:640px;
  max-height:90vh;
  background:#fff;
  border-radius:16px 16px 0 0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  z-index:9999;
}
@media(min-width:768px){
  .modal{align-items:center}
  .modal-content{border-radius:16px}
}

.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(0,0,0,.08)}
.modal-header h2{font-size:18px;font-weight:800;letter-spacing:-.01em;color:#000;margin:0}
.modal-close{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#333}
.modal-close:hover{background:rgba(0,0,0,.06)}

.modal-body{padding:16px;overflow:auto}

/* Lista carrinho */
.cart-items{display:flex;flex-direction:column;gap:12px}
.cart-item{display:flex;gap:12px;padding:12px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#fff}
.cart-item-image{width:84px;height:84px;border-radius:12px;border:1px solid rgba(0,0,0,.06);display:grid;place-items:center;overflow:hidden;background:#fff}
.cart-item-image img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.cart-item-info{flex:1;display:flex;flex-direction:column;gap:6px}
.cart-item-name{font-weight:800;color:#000}
.cart-item-price{font-weight:900;color:#000}
.cart-item-actions{display:flex;align-items:center;gap:10px;margin-top:6px}
.qty-button{width:34px;height:34px;border-radius:10px;background:rgba(0,0,0,.06);display:flex;align-items:center;justify-content:center}
.qty-button:hover{background:rgba(0,0,0,.10)}
.cart-item-qty{min-width:28px;text-align:center;font-weight:800}
.btn-remove{width:34px;height:34px;border-radius:10px;background:rgba(196,0,0,.10);color:var(--ck-primary);display:flex;align-items:center;justify-content:center}
.btn-remove:hover{background:var(--ck-primary);color:#fff}

.cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px 10px;color:var(--ck-muted);text-align:center}

/* Footer: frete e totais */
.modal-footer{padding:16px;border-top:1px solid rgba(0,0,0,.08);background:#fff}
.cart-frete{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.cart-frete-label{font-size:.85rem;color:#111;font-weight:700}
.cart-frete-controls{display:flex;gap:10px;align-items:center}
.cart-frete-input{flex:1;padding:12px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff;color:#000;outline:none}
.cart-frete-input:focus{border-color:var(--ck-primary);box-shadow:0 0 0 3px rgba(196,0,0,.12)}
.cart-frete-btn{padding:12px 14px;border-radius:12px;border:1px solid rgba(0,0,0,.10);background:var(--ck-primary);color:#fff;font-weight:900;cursor:pointer;white-space:nowrap}
.cart-frete-meta{font-size:.82rem;color:var(--ck-muted)}

.cart-totals{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.cart-total-row{display:flex;justify-content:space-between;align-items:center;color:#000}
.cart-total-final{padding-top:10px;margin-top:6px;border-top:1px dashed rgba(0,0,0,.18)}

.btn-checkout{width:100%;margin-top:14px;padding:14px 16px;border-radius:14px;background:#000;color:#fff;font-weight:900;font-size:16px}
.btn-checkout:hover{filter:brightness(1.05)}
.btn-checkout:disabled{opacity:.5;cursor:not-allowed}

.hidden{display:none !important}

/* ================================
   [ENTREGA] Seletor de modalidade
   Append-only — não altera nenhum estilo existente acima
   ================================ */
.cart-delivery-mode{margin-bottom:14px;border-bottom:1px solid rgba(0,0,0,.07);padding-bottom:14px}
.cart-delivery-label{font-size:.8rem;font-weight:700;color:#111;margin:0 0 8px;text-transform:uppercase;letter-spacing:.04em}
.cart-delivery-opts{display:flex;flex-direction:column;gap:7px}
.cart-delivery-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid rgba(0,0,0,.10);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s;background:#fff;line-height:1.2}
.cart-delivery-opt:has(input:checked){border-color:var(--ck-primary);background:rgba(196,0,0,.04)}
.cart-delivery-opt input[type="radio"]{accent-color:var(--ck-primary);width:16px;height:16px;flex-shrink:0;cursor:pointer}
.cart-delivery-opt span{font-size:.9rem;font-weight:600;color:#111;pointer-events:none}
.cart-delivery-info{font-size:.82rem;margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(0,0,0,.04);color:#333;line-height:1.4}
.cart-delivery-info.pickup{background:rgba(22,163,74,.08);color:#15803d}
.cart-delivery-info.whatsapp{background:rgba(22,101,52,.07);color:#166534}
/* Garante que a seção de frete some suavemente ao mudar de modo */
#cartFreteSection{transition:opacity .2s}
#cartFreteSection.hidden{display:none!important}

/* ================================
   [PARCEIRO] Aviso de mínimo de unidades parceiro
   Append-only — não altera nenhum estilo existente acima
   ================================ */
.cart-partner-min-msg{
  display:none;
  margin:0 0 10px;
  padding:10px 12px;
  border-left:3px solid #C40000;
  background:#fff3f3;
  color:#b00020;
  font-size:.88rem;
  font-weight:700;
  border-radius:0 8px 8px 0;
  line-height:1.4;
}
/* Quando o JS seta display:block, a classe .hidden não importa; mas garantimos a sobrescrição */
.cart-partner-min-msg[style*="display: block"]{display:block!important}
