/* ============================================================ COMPONENTS: BUTTONS, CARDS, BADGES ============================================================ */ /* BUTTONS */ .btn { font-weight: 700; border-radius: 8px; transition: all 0.2s ease; border: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; } .btn-primary { background-color: var(--color-brand); color: var(--color-ink); } .btn-primary:hover { background-color: var(--color-brand-dark); box-shadow: 0 4px 12px rgba(245, 192, 0, 0.2); } .btn-secondary { background-color: var(--color-gray-200); color: var(--color-ink); } .btn-secondary:hover { background-color: var(--color-gray-300); } .btn-danger { background-color: var(--color-error); color: white; } .btn-danger:hover { background-color: #dc2626; } .btn-success { background-color: var(--color-success); color: white; } .btn-success:hover { background-color: #059669; } .btn-sm { padding: 6px 12px; font-size: 12px; } .btn-md { padding: 10px 20px; font-size: 14px; } .btn-lg { padding: 14px 28px; font-size: 16px; } /* GENERIC CARDS */ .card { background: white; border-radius: 12px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); overflow: hidden; transition: box-shadow 0.2s, transform 0.2s; } .card:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); transform: translateY(-2px); } .card-header { padding: 16px; border-bottom: 1px solid var(--color-gray-100); background: var(--color-gray-50); } .card-body { padding: 16px; } .card-footer { padding: 16px; border-top: 1px solid var(--color-gray-100); background: var(--color-gray-50); } /* BADGES */ .badge { display: inline-block; padding: 4px 8px; border-radius: 6px; font-size: 12px; font-weight: 700; } .badge-oferta { background: var(--color-error); color: white; font-size: 10px; padding: 2px 7px; border-radius: 999px; letter-spacing: 0.5px; } .badge-success { background: rgba(16, 185, 129, 0.1); color: var(--color-success); } .badge-warning { background: rgba(245, 158, 11, 0.1); color: var(--color-warning); } .badge-error { background: rgba(239, 68, 68, 0.1); color: var(--color-error); } /* BADGE CART */ .cart-badge { position: absolute; top: -6px; right: -8px; background: var(--color-error); color: white; border-radius: 999px; font-size: 11px; min-width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; font-weight: 800; } /* INPUT — excluye qty-input que tiene sus propios estilos */ input[type="text"]:not(.qty-input), input[type="email"], input[type="password"], input[type="number"]:not(.qty-input), textarea, select { width: 100%; padding: 8px 12px; border: 1px solid var(--color-gray-200); border-radius: 6px; font-family: inherit; font-size: 14px; transition: border-color 0.2s; } input:focus, textarea:focus, select:focus { outline: none; border-color: var(--color-brand); box-shadow: 0 0 0 3px rgba(245, 192, 0, 0.1); } /* FORM GROUPS */ .form-group { margin-bottom: 16px; } .form-group label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 13px; color: var(--color-ink); } .form-group small { display: block; margin-top: 4px; font-size: 12px; color: var(--color-gray-500); } /* HELP TEXT */ .help-text { font-size: 12px; color: var(--color-gray-500); margin-top: 4px; } .error-text { color: var(--color-error); font-size: 12px; margin-top: 4px; }