.flash-stack { position: fixed; top: 150px; right: 20px; z-index: 150; width: min(390px, calc(100% - 32px)); display: grid; gap: 8px; }
.flash { padding: 14px 17px; border-radius: 9px; color: var(--text-strong); background: var(--white); box-shadow: var(--shadow); font-size: 11px; font-weight: 600; }
.flash-success { border-left: 4px solid var(--success); }.flash-warning { border-left: 4px solid var(--warning); }.flash-error { border-left: 4px solid var(--error); }
.toast-success{background:var(--primary-900)}.toast-error{background:#842929}.cart-link.cart-updated b{animation:cart-badge-pop .36s ease}.is-loading{cursor:wait!important;opacity:.68;pointer-events:none}@keyframes cart-badge-pop{50%{transform:scale(1.35)}}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}
.catalog-is-loading .catalog-page{opacity:.58;pointer-events:none}.catalog-is-loading .catalog-results{position:relative}.catalog-is-loading .catalog-results::before{content:"Actualizando productos…";position:fixed;left:50%;top:50%;z-index:120;transform:translate(-50%,-50%);padding:12px 18px;border:1px solid var(--border-soft);border-radius:9px;color:var(--primary-900);background:var(--white);box-shadow:var(--shadow);font-size:11px;font-weight:700}.catalog-page{transition:opacity .16s ease}
.product-card-footer form { margin: 0; }.text-button { padding: 3px; border: 0; color: var(--primary-600); background: transparent; font-size: 9px; font-weight: 600; cursor: pointer; }.text-button.danger { color: var(--error); }
.cart-page { background: var(--primary-50); }.cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 28px; align-items: start; }.cart-lines,.cart-summary { border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--white); }.cart-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--border-soft); }.cart-head strong { font-size: 12px; }.cart-item { display: grid; grid-template-columns: 140px minmax(0, 1fr) 145px; gap: 20px; padding: 22px; border-bottom: 1px solid var(--border-soft); }.cart-item:last-child { border-bottom: 0; }.cart-item > .product-visual { height: 120px; border-radius: 10px; }.cart-item > .product-visual .visual-object { transform: scale(.65) rotate(-8deg); }.cart-item-info h2 { margin: 0 0 3px; font-size: 15px; }.cart-item-info > p { margin: 0; color: var(--primary-600); font-size: 9px; font-weight: 600; }.cart-item-info > small { color: var(--text-muted); font-size: 8px; }.cart-item-info dl { display: grid; gap: 3px; margin: 12px 0 0; }.cart-item-info dl div { display: flex; gap: 7px; font-size: 8px; }.cart-item-info dt { color: var(--text-muted); }.cart-item-info dd { margin: 0; color: var(--text-strong); font-weight: 600; }.cart-item-actions { display: flex; flex-direction: column; align-items: end; justify-content: space-between; }.cart-item-actions label { display: flex; align-items: center; gap: 5px; color: var(--text-muted); font-size: 8px; }.cart-item-actions input { width: 48px; height: 34px; padding: 0 6px; border: 1px solid var(--border); border-radius: 6px; text-align: center; }.cart-item-actions label button { height: 34px; border: 1px solid var(--border); border-radius: 6px; color: var(--primary-600); background: var(--white); font-size: 8px; cursor: pointer; }.cart-item-actions > strong { font-size: 16px; }.cart-summary { position: sticky; top: 150px; padding: 25px; }.cart-summary h2 { margin-bottom: 19px; color: var(--primary-900); font-size: 20px; }.summary-total { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; padding: 18px 0; border-top: 1px solid var(--border); }.summary-total span { color: var(--text-strong); font-size: 11px; font-weight: 600; }.summary-total strong { color: var(--primary-900); font-size: 18px; }.cart-summary > p { color: var(--text-muted); font-size: 8px; }.continue-link { display: block; margin-top: 13px; color: var(--primary-600); font-size: 9px; font-weight: 600; text-align: center; }
.checkout-form textarea { resize: vertical; padding: 11px 12px; border: 1px solid var(--border); border-radius: 7px; color: var(--text-strong); }.checkout-form textarea:focus { border-color: var(--primary-500); outline: 3px solid var(--primary-100); }.form-grid { align-items: start; }.field-error { color: var(--error); font-size: 8px; font-weight: 500; }.check-control { display: flex; align-items: center; gap: 9px; color: var(--text-strong); font-size: 10px; cursor: pointer; }.check-control input { width: 17px; height: 17px; accent-color: var(--primary-700); }.invoice-fields { display: none; margin-top: 15px; }.invoice-fields.visible { display: grid; }.consents { display: grid; gap: 10px; }.checkout-line { display: flex; justify-content: space-between; gap: 15px; padding: 11px 0; border-bottom: 1px solid var(--border-soft); font-size: 9px; }.checkout-line span { color: var(--text-strong); font-weight: 600; }.checkout-line small { display: block; color: var(--text-muted); font-weight: 400; }
.order-confirmation { max-width: 1000px; }.status-pill { display: inline-flex; margin-bottom: 12px; padding: 5px 10px; border-radius: 999px; font-size: 9px; font-weight: 700; text-transform: uppercase; }.status-pending_payment { color: var(--warning); background: var(--warning-soft); }.status-paid { color: var(--success); background: var(--success-soft); }.mock-payment-box { max-width: 520px; margin: 24px auto 0; padding: 18px; border: 1px solid #efd5a6; border-radius: 10px; background: var(--warning-soft); }.mock-payment-box strong { font-size: 10px; }.mock-payment-box p { margin: 4px 0 13px; font-size: 9px; }.confirmation-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 25px; margin-top: 25px; text-align: left; }.confirmation-detail { padding: 25px; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--white); }.confirmation-detail h2 { margin: 0 0 14px; color: var(--primary-900); font-size: 16px; }.confirmation-detail h2:not(:first-child) { margin-top: 28px; }.confirmation-item { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--border-soft); }.confirmation-item span,.confirmation-item small { display: block; color: var(--text-muted); font-size: 8px; }.confirmation-item > strong { flex: none; font-size: 11px; }.confirmation-detail address { color: var(--text-body); font-size: 10px; font-style: normal; }.confirmation-layout .cart-summary { position: static; }.next-step { display: flex; align-items: center; gap: 14px; margin: 22px 0; padding: 17px; border-radius: 10px; color: var(--primary-600); background: var(--primary-100); text-align: left; }.next-step p { margin: 0; font-size: 9px; }.next-step strong { display: block; font-size: 10px; }
@media (max-width: 900px) { .flash-stack { top: 120px; }.cart-layout,.confirmation-layout { grid-template-columns: 1fr; }.cart-summary { position: static; }.cart-item { grid-template-columns: 120px 1fr; }.cart-item-actions { grid-column: 2; flex-direction: row; align-items: center; }.confirmation-page { display: block; } }
@media (max-width: 575px) { .cart-item { grid-template-columns: 1fr; }.cart-item > .product-visual { height: 180px; }.cart-item-actions { grid-column: auto; }.checkout-form,.order-summary,.cart-summary,.confirmation-detail { padding: 18px; }.flash-stack { right: 12px; }.confirmation-card { padding-inline: 18px; } }

.cart-item > .product-photo { width: 140px; height: 120px; padding: 8px; border-radius: 10px; background: var(--primary-50); object-fit: contain; }
@media (max-width: 900px) { .cart-item > .product-photo { width: 120px; } }
@media (max-width: 575px) { .cart-item > .product-photo { width: 100%; height: 180px; } }
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation-duration:.01ms}.cart-link.cart-updated b{animation:none}}
