html.vc-open { overflow:hidden; }
.vc-dialog { position:fixed; inset:0 0 0 auto; margin:0; width:90vw; max-width:none; height:100%; max-height:none; padding:0; color:#302519; background:#fff; }
.vc-dialog::backdrop { background:#0008; }
.vc-dialog[open] { animation:vc-enter .32s cubic-bezier(.22,.61,.36,1) both; }
@keyframes vc-enter { from { transform:translateX(100%); } to { transform:translateX(0); } }
.vc-panel { display:flex; flex-direction:column; height:100%; }
.vc-panel header { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 18px; border-bottom:1px solid #eee4d6; }
.vc-panel h2 { font-size:1.2rem; font-weight:700; }
.vc-close { min-width:44px; min-height:44px; font-size:26px; }
.vc-campaign .bf-bar { position:static; height:auto; min-height:52px; }
.vc-message { padding:0 18px; margin:8px 0; font-size:.85rem; }
.vc-message:empty { display:none; }
.vc-items { flex:1; min-height:0; overflow:auto; padding:0 18px; overscroll-behavior:contain; }
.vc-items li { display:grid; grid-template-columns:54px minmax(0,1fr) auto; align-items:start; gap:10px; padding:14px 0; border-bottom:1px solid #eee4d6; font-size:.85rem; }
.vc-items img { width:54px; height:54px; object-fit:cover; border-radius:5px; }
.vc-items small,.vc-items b { display:block; margin-top:4px; }
.vc-remove { min-height:36px; text-decoration:underline; font-size:.72rem; }
.vc-panel footer { padding:12px 18px max(14px, env(safe-area-inset-bottom)); border-top:1px solid #eee4d6; }
.vc-panel footer p { font-size:.8rem; margin:8px 0; }
.vc-subtotal { display:flex; justify-content:space-between; }
.vc-pay,.vc-continue { display:block; width:100%; min-height:46px; border-radius:9px; font-weight:700; }
.vc-pay { background:#008c45; color:white; }
.vc-pay:disabled { opacity:.65; }
.vc-continue { margin-top:6px; color:#4a3722; background:#f5f0e8; }
.vc-trigger { margin-top:10px; min-height:44px; padding:6px 14px; border:1px solid #c9b594; border-radius:9px; }
.vc-trigger[hidden] { display:none; }
@media (prefers-reduced-motion:reduce) { .vc-dialog[open] { animation:none; } }

.vc-header-actions { display:flex; align-items:center; gap:12px; }
.vc-header-actions .vc-trigger { position:relative; display:grid; place-items:center; width:44px; height:44px; margin:0; padding:0; color:#4a3722; }
.vc-count { position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; padding:0 3px; border-radius:20px; background:#4a3722; color:#fff; font:700 10px/18px system-ui,sans-serif; }
.vc-pix { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-top:5px; color:#17663e; font-size:.84rem; }
.vc-pix small { display:block; font-size:.72rem; }
.vc-pix strong { white-space:nowrap; }
.vc-pay { min-height:54px; background:#00a650; font-size:1rem; }
.vc-continue { min-height:44px; font-size:.85rem; }
@media (prefers-reduced-motion:no-preference) {
  .vc-dialog[open] .vc-pay:not(:disabled) { animation:vc-pay-pulse .75s ease-out .25s; }
}
@keyframes vc-pay-pulse {
  0%,100% { box-shadow:0 0 0 0 #00a65000; }
  45% { box-shadow:0 0 0 6px #00a65038; }
}

.vc-dialog[open].vc-closing { animation:vc-exit .26s ease-in both; pointer-events:none; }
@keyframes vc-exit { from { transform:translateX(0); } to { transform:translateX(100%); } }
@media (prefers-reduced-motion:no-preference) {
  .vc-dialog[open]::backdrop { animation:vc-backdrop-in .32s ease-out both; }
  .vc-dialog[open].vc-closing::backdrop { animation:vc-backdrop-out .26s ease-in both; }
}
@keyframes vc-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes vc-backdrop-out { from { opacity:1; } to { opacity:0; } }
