body{overscroll-behavior-y:none}.modal-body,.carrinho-itens{overscroll-behavior-y:contain}.skeleton{background:linear-gradient(90deg,var(--linha) 25%,#f2ede3 50%,var(--linha) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px;border:none!important;color:transparent!important;user-select:none;pointer-events:none}.skeleton img,.skeleton span,.skeleton div{opacity:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.w-100{width:100%}.flex-1{flex:1}.text-center{text-align:center}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:24px}.mt-3{margin-top:12px}.mt-4{margin-top:24px}.gap-2{gap:8px;display:flex}.gap-3{gap:12px;display:flex}.btn{padding:14px 20px;border-radius:var(--radius-sm);font-weight:700;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;border:2px solid transparent}.btn-primary{background:var(--forest);color:var(--sobre-primaria);border-color:var(--forest)}.btn-primary:hover{background:var(--forest-mid)}.btn-outline{background:transparent;border-color:var(--forest);color:var(--forest-texto, var(--forest))}.btn-outline:hover,.btn-outline.active{background:var(--forest);color:var(--sobre-primaria)}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:var(--sobre-primaria)}.modal-overlay{display:none;position:fixed;inset:0;background:#0009;z-index:var(--z-modal);justify-content:center;align-items:center;backdrop-filter:blur(4px);padding:16px}.modal-overlay.aberto{display:flex;animation:fadeIn .2s ease}.modal{background:var(--superficie);border-radius:var(--radius);width:100%;max-width:520px;max-height:85dvh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--parchment);background:var(--superficie);z-index:2;flex-shrink:0}.modal-head h2,.modal-head h3{font-family:var(--fonte-titulo);font-size:1.5rem;color:var(--forest-texto, var(--forest))}.modal-body{overflow-y:auto;padding:24px;flex:1;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.modal-footer{padding:16px 24px;background:var(--superficie);border-top:1px solid var(--parchment);flex-shrink:0;display:flex;flex-direction:column;gap:10px}.btn-fechar{background:var(--parchment);border:none;width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer;color:var(--text-mid);display:flex;align-items:center;justify-content:center;transition:.2s}.btn-fechar:hover{background:var(--linha);color:var(--text-dark)}.form-group{margin-bottom:16px;width:100%}.form-group label{display:block;font-size:.8rem;font-weight:700;color:var(--text-mid);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:14px;border:1.5px solid var(--linha);border-radius:var(--radius-sm);outline:none;background:var(--parchment);transition:.2s;color:var(--text-dark);font-size:16px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--forest);background:var(--superficie);box-shadow:0 0 0 3px #1a3a2a1a}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.toast{position:fixed;bottom:calc(var(--safe-bottom) + 80px);left:50%;transform:translate(-50%) translateY(100px);opacity:0;background:var(--forest);color:var(--sobre-primaria);padding:14px 28px;border-radius:40px;font-weight:700;font-size:.95rem;z-index:var(--z-toast);transition:all .4s cubic-bezier(.175,.885,.32,1.2);box-shadow:var(--shadow-lg);pointer-events:none;text-align:center;white-space:nowrap}.toast.visivel{transform:translate(-50%) translateY(0);opacity:1}@media (max-width: 600px){.modal-overlay{padding:0;align-items:flex-end}.modal{max-height:95dvh;border-radius:20px 20px 0 0}.modal-body{padding-bottom:calc(24px + var(--safe-bottom))}.grid-2{grid-template-columns:1fr}}
