/* Shared UX states: no simulated progress or hidden server-rendered content. */
.cv-ux-box { padding:24px; margin:24px 0; border:1px solid var(--cv-border,#ddd); border-radius:14px; background:var(--cv-surface,#fff); color:var(--cv-text,#171420); }
.cv-ux-box h2,.cv-ux-box h3 { color:inherit; }
.cv-ux-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.cv-ux-note { color:var(--cv-text-muted,#605c6b); line-height:1.65; }
.cv-skeleton { padding:24px; border:1px solid var(--cv-border,#ddd); border-radius:14px; }
.cv-skeleton-line { height:18px; margin:14px 0; border-radius:6px; background:var(--cv-bg-subtle,#edeae2); animation:cvUxPulse 1.3s ease-in-out infinite alternate; }
.cv-skeleton-line:nth-child(2) { width:70%; }
.cv-skeleton-line:nth-child(3) { width:85%; }
@keyframes cvUxPulse { to { opacity:.4; } }
@media(prefers-reduced-motion:reduce) { .cv-skeleton-line { animation:none; } }
.cv-ux-error { color:var(--cv-danger,#b91c1c); margin-top:8px; font-size:14px; }
.cv-ux-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.cv-ux-table { width:100%; min-width:560px; border-collapse:collapse; }
.cv-ux-table th,.cv-ux-table td { padding:12px; border:1px solid var(--cv-border,#ddd); text-align:left; vertical-align:top; min-width:140px; }
.cv-compare-choice { display:flex; align-items:center; gap:8px; min-height:44px; font-weight:500; cursor:pointer; }
.cv-compare-choice input { width:18px; height:18px; }
.cv-ux-details summary { cursor:pointer; padding:12px 0; font-weight:600; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible { outline:3px solid var(--cv-accent,#5b2a86); outline-offset:3px; }
@media(max-width:640px) {
 .cv-ux-box { padding:18px; }
 .cv-ux-actions > a { flex:1 1 auto; text-align:center; }
 .cv-cart-item-name,.cv-dash-empty { overflow-wrap:anywhere; }
 .cv-cycle,.cv-tabs { max-width:100%; overflow-x:auto; }
 .cv-btn,.cv-cart-remove { min-height:44px; }
 .cv-cart-remove { min-width:44px; display:inline-flex; align-items:center; justify-content:center; }
}
