/* Innoval Host - panier, commande et retour de paiement */
.cart-alert { padding: .9rem 1.1rem; border-radius: .5rem; margin-bottom: 1.25rem; }
.cart-alert--err { background: #fee2e2; color: #991b1b; }
.cart-alert--ok { background: #dcfce7; color: #166534; }
.cart-empty { padding: 2.5rem; text-align: center; display: grid; gap: .75rem; justify-items: center; }
.cart-lines { display: grid; gap: 1rem; margin-bottom: 1.25rem; }
.cart-line { padding: 1.25rem 1.5rem; display: grid; gap: 1rem; }
.cart-line.is-bad { border-color: #f87171; }
.cart-line__main { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.cart-line h2 { font-size: 1.15rem; margin: 0 0 .15rem; }
.cart-line__price { text-align: right; display: grid; gap: .25rem; justify-items: end; }
.cart-line__price strong { font-size: 1.35rem; }
.cart-line__price span { color: var(--foreground-muted); font-size: .9rem; }
.cart-err { color: #b91c1c; font-weight: 600; margin: .35rem 0 0; }
.cart-domain fieldset { border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem 1.25rem; display: grid; gap: .7rem; margin: 0 0 .75rem; }
.cart-domain legend { font-weight: 700; padding: 0 .4rem; }
.cart-opt { display: flex; gap: .75rem; align-items: flex-start; cursor: pointer; }
.cart-opt input { margin-top: .3rem; accent-color: var(--primary); }
.cart-opt small { display: block; color: var(--foreground-muted); }
.cart-domain__name { display: grid; gap: .35rem; font-size: .92rem; }
.cart-total { padding: 1.5rem; display: grid; gap: .75rem; }
.cart-total > div:first-child { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.1rem; }
.cart-total strong { font-size: 1.75rem; }
.cart-actions { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: flex-end; }
.is-disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
.co-wrap { display: grid; gap: 1.5rem; grid-template-columns: 1.3fr 1fr; align-items: start; }
@media (max-width: 800px) { .co-wrap { grid-template-columns: 1fr; } }
.co-card { padding: 1.5rem; display: grid; gap: 1rem; }
.co-field { display: grid; gap: .3rem; font-size: .92rem; }
.co-field input { width: 100%; }
.co-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
@media (max-width: 520px) { .co-row { grid-template-columns: 1fr; } }
.co-check { display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; }
.co-check input { margin-top: .25rem; accent-color: var(--primary); }
.co-list { list-style: none; padding: 0; margin: 0; }
.co-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--border); }
.co-status { display: inline-block; padding: .15rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.co-status--ok { background: #dcfce7; color: #166534; }
.co-status--wait { background: #fef9c3; color: #854d0e; }
.co-status--bad { background: #fee2e2; color: #991b1b; }

.cart-choices { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: end; margin-top: .75rem; }
.cart-choice { display: grid; gap: .3rem; font-size: .92rem; font-weight: 600; }
.cart-choice select, .cart-choice input[type=text], .cart-choice input[type=password], .cart-choice input[type=number], .cart-choice textarea { font: inherit; padding: .65rem .8rem; border: 1px solid var(--border); border-radius: var(--radius); background-color: var(--background-secondary, #12121a); color: var(--foreground, #f0f0f5); min-width: 12rem; width: 100%; cursor: pointer; }
.cart-choice select:focus, .cart-choice input:focus, .cart-choice textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-glow, rgba(45,212,191,.2)); }
.cart-choice select option { background-color: var(--background-secondary, #12121a); color: var(--foreground, #f0f0f5); }
.cart-choice > span { color: var(--foreground); }
.off-buy .cart-choice { margin-bottom: .75rem; }

/* Page de commande : mise en page de MyTems3D (colonne principale + récapitulatif collant) */
.checkout-layout { display: grid; grid-template-columns: 1fr 400px; gap: 2rem; align-items: start; }
@media (max-width: 900px) { .checkout-layout { grid-template-columns: 1fr; } }
.checkout-section { background: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.5rem; margin-bottom: 1.5rem; }
.checkout-section h2 { margin: 0 0 1rem; font-size: 1.25rem; }
.checkout-recap { position: sticky; top: 1rem; }
.co-grid { display: grid; gap: 1rem; }
.auth-tabs { display: flex; margin-bottom: 1.25rem; }
.auth-tab { flex: 1; padding: .75rem; background: var(--bg); color: inherit; font: inherit; border: 1px solid var(--border); cursor: pointer; text-align: center; font-weight: 500; transition: all .2s; }
.auth-tab:first-child { border-radius: .5rem 0 0 .5rem; }
.auth-tab:last-child { border-radius: 0 .5rem .5rem 0; }
.auth-tab.active { background: var(--primary); color: var(--primary-foreground, #052e2b); border-color: var(--primary); }
.auth-tab:hover:not(.active), .auth-tab:focus-visible { border-color: var(--primary); }
.auth-content { display: none; }
.auth-content.active { display: block; }
#co-form { margin: 0; }
.order-summary-item { display: flex; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--border); align-items: flex-start; }
.order-summary-item:last-of-type { border-bottom: none; }
.order-summary-item img { width: 60px; height: 60px; object-fit: cover; border-radius: .5rem; }
.order-summary-item-info { flex: 1; }
.order-summary-item-name { font-weight: 500; }
.order-summary-item-qty { color: var(--text-muted); font-size: .875rem; }
.order-summary-item-price { font-weight: 600; white-space: nowrap; }
.order-totals { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.order-total-row { display: flex; justify-content: space-between; }
.order-total-row.total { font-size: 1.25rem; font-weight: 700; }
.cgv-acceptance { display: grid; gap: .85rem; margin-bottom: 1.5rem; padding: 1rem; background: var(--bg); border-radius: .5rem; border: 1px solid var(--border); }
.pay-btn { width: 100%; justify-content: center; padding: 1rem; font-size: 1.05rem; margin-bottom: .75rem; }
.checkout-section .text-center { text-align: center; }
.pay-unavailable { background: #fee2e2; padding: 1rem; border-radius: .5rem; color: #991b1b; text-align: center; }

.guest-option { background: #f0fdf4; border: 1px solid #86efac; padding: 1rem; border-radius: .5rem; margin: 0 0 1rem; font-size: .92rem; }
:root[data-theme="dark"] .guest-option, .dark .guest-option { background: rgba(34, 197, 94, .08); border-color: rgba(34, 197, 94, .35); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .guest-option { background: rgba(34, 197, 94, .08); border-color: rgba(34, 197, 94, .35); } }
.promo-section { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.promo-section .form-label { display: block; margin-bottom: .5rem; font-weight: 600; font-size: .92rem; }
.promo-input-group { display: flex; gap: .5rem; }
.promo-input-group input { flex: 1; min-width: 0; text-transform: uppercase; }
.promo-input-group button { white-space: nowrap; }
.promo-applied { display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: #f0fdf4; border: 1px solid #86efac; color: #14532d; padding: .75rem; border-radius: .5rem; }
.promo-remove { background: none; border: 0; font-size: 1.5rem; line-height: 1; cursor: pointer; color: inherit; padding: .25rem .5rem; }
.promo-error { color: #dc2626; font-size: .85rem; margin-top: .5rem; }
.order-total-row { margin-bottom: .5rem; }
.order-total-row--discount { color: #16a34a; }
.order-total-row.total { margin-top: .5rem; padding-top: .5rem; border-top: 2px solid var(--border); }
.order-old-price { color: var(--text-muted); font-weight: 400; font-size: .85rem; }
.co-toasts { position: fixed; right: 1rem; bottom: 1rem; display: grid; gap: .5rem; z-index: 1000; max-width: min(24rem, calc(100vw - 2rem)); }
.co-toast { background: #991b1b; color: #fff; padding: .85rem 1rem; border-radius: .6rem; box-shadow: 0 8px 24px rgba(0,0,0,.25); font-size: .92rem; animation: co-toast-in .25s ease-out; }
.co-toast--ok { background: #166534; }
.co-toast.is-leaving { opacity: 0; transform: translateY(6px); transition: all .3s; }
@keyframes co-toast-in { from { opacity: 0; transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) { .co-toast { animation: none; } }
.auth-tab { padding: .75rem .25rem; }
@media (max-width: 520px) { .auth-tab { font-size: .85rem; } }
.cart-choice textarea { resize: vertical; min-height: 4.5rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .85rem; }
.cart-choice--check label { display: flex; align-items: center; gap: .55rem; font-weight: 600; cursor: pointer; }
.cart-choice--check input[type=checkbox] { width: 1.1rem; height: 1.1rem; accent-color: var(--primary); }
.cart-help { color: var(--foreground-muted, #8888a0); font-weight: 400; font-size: .82rem; line-height: 1.4; }
.cart-choice abbr { text-decoration: none; color: #f87171; }
.cart-choices .cart-choice { min-width: 12rem; flex: 1 1 14rem; }

/* Bouton « Retirer » : rouge encadré, plein au survol */
.btn-remove {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .5rem 1rem; border-radius: var(--radius-sm, 8px);
  border: 1.5px solid #ef4444; background: rgba(239, 68, 68, .08); color: #f87171;
  font: inherit; font-weight: 600; cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.btn-remove:hover, .btn-remove:focus-visible { background: #ef4444; color: #fff; border-color: #ef4444; outline: none; }
.btn-remove:focus-visible { box-shadow: 0 0 0 3px rgba(239, 68, 68, .35); }
