/* Composants visuels communs à toutes les pages Uplink D360. */
/* Fenêtres natives partagées : en-tête/actions fixes, contenu défilant. */
.uplink-dialog{position:fixed;box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-width:none;max-height:calc(var(--uplink-vh,100dvh) - 32px);margin:auto;padding:0;border:1px solid var(--border-color);border-radius:22px;background:var(--bg-card);color:var(--text-primary);overflow:hidden;box-shadow:var(--soft-shadow)}
.uplink-dialog[open]{display:flex;flex-direction:column;animation:uplink-dialog-in .2s cubic-bezier(.2,.8,.2,1) both}
.uplink-dialog::backdrop{background:color-mix(in srgb,var(--bg-primary) 76%,transparent);backdrop-filter:blur(5px)}
.uplink-dialog.is-closing{animation:uplink-dialog-out .18s ease-in both}
.uplink-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 0 auto;padding:20px 22px;border-bottom:1px solid var(--border-color)}
.uplink-dialog-header h2{margin:0;font-size:1.25rem;line-height:1.35;letter-spacing:-.3px}
.uplink-dialog-close{display:grid;place-items:center;flex:0 0 40px;width:40px;min-height:40px;padding:0;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-input);color:var(--text-primary);font-size:24px;cursor:pointer}
.uplink-dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px}
.uplink-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;flex:0 0 auto;justify-content:flex-end;padding:16px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border-color);background:var(--bg-card)}
.uplink-dialog-actions button{flex:1;min-height:46px;font-size:13px;line-height:1.35}
.uplink-dialog>:is(header,footer,.uplink-dialog-body,.uplink-dialog-form){width:100%;min-width:0;align-self:stretch}
.uplink-dialog form.uplink-dialog-form{display:flex;flex-direction:column;min-height:0;overflow:hidden}
body.uplink-dialog-open{overflow:hidden}
@keyframes uplink-dialog-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes uplink-dialog-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(12px) scale(.98)}}
@media(max-width:600px){.uplink-dialog{width:100%;max-height:calc(var(--uplink-vh,100dvh) - 12px);margin:auto 0 0;border-radius:22px 22px 0 0}.uplink-dialog-header{padding:16px}.uplink-dialog-body{padding:16px}.uplink-dialog-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.uplink-dialog-header h2{font-size:1.12rem}}
@media(prefers-reduced-motion:reduce){.uplink-dialog[open],.uplink-dialog.is-closing{animation:none}}
:root, body { --ui-radius: 16px; --ui-field-radius: 10px; --danger: #fb8d8d; --danger-soft: #3d252e; --success: #77d9af; --success-soft: #173c38; --warning: #ffd083; }
body.light-mode { --danger: #b42335; --danger-soft: #fff0f1; --success: #16704f; --success-soft: #e7f6ef; --warning: #956000; }
body { font-family: Inter, 'Segoe UI', sans-serif; background: var(--bg-primary); color: var(--text-primary); }
body * { box-sizing: border-box; font-family: inherit; }
body button, body input, body select, body textarea { font: inherit; }
body :focus-visible { outline: 2px solid var(--accent-color); outline-offset: 3px; }
body :is(.academy-card,.intro-card,.settings-group,.order-card,.auth-container,.stat-card,.panel,.form-card,.pack-card,.recommendation-card) { background: var(--bg-card); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: var(--ui-radius); box-shadow: var(--soft-shadow); }
body :is(.academy-card,.intro-card,.stat-card,.panel,.form-card) { padding: 24px; }
body :is(.academy-title,.intro-title,.catalog-title,.header-title) { font-size: clamp(23px, 2.4vw, 32px); font-weight: 750; letter-spacing: -.6px; color: var(--text-primary); }
body :is(.academy-text,.intro-text,.subtitle,.helper-text,.muted,.settings-value,.order-meta,.order-date,.modal-description,.otp-modal-desc) { color: var(--text-secondary); line-height: 1.65; }
body :is(.academy-grade,.stock-badge,.otp-badge-icon,.settings-icon,.badge) { background: var(--brand-soft); color: var(--accent-color); border-color: var(--border-color); }
body :is(.field,.form-group,.form-grid label,.field-grid label) { color: var(--text-primary); font-size: 13px; font-weight: 500; }
body :is(.field,.form-group,.form-grid,.field-grid,.modal-stack) :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]), body .auth-container :is(input,select) { background: var(--bg-input); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: var(--ui-field-radius); min-height: 48px; padding: 12px 14px; font-size: 16px; box-shadow: none; }
body input::placeholder, body textarea::placeholder { color: var(--text-secondary); opacity: .8; }
body :is(.btn-primary,.btn-submit,.button-primary,.modal-action,.confirm-buy,.sheet-buy-btn,.support-btn,.receipt-print-btn,.modal-btn-submit) { background: var(--brand-orange) !important; color: var(--on-orange) !important; border: 1px solid var(--brand-orange) !important; border-radius: 10px; min-height: 46px; padding: 12px 18px; box-shadow: none !important; font-weight: 700; }
body :is(.button-secondary,.confirm-cancel,.btn-cancel-otp,.details-btn,.receipt-btn,.option-btn,.filter-pill,.tab-btn,.pill) { background: var(--bg-input); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: 10px; min-height: 42px; padding: 10px 14px; box-shadow: none; }
body :is(.option-btn,.filter-pill,.tab-btn,.pill).active { background: var(--brand-soft); color: var(--accent-color); border-color: var(--accent-color); }
body :is(.btn-danger,.settings-item.danger) { background: var(--danger-soft); color: var(--danger); border-color: var(--danger); }
body .settings-item.danger :is(.settings-label,.settings-icon,.settings-value,.chevron) { color: var(--danger); }
body :is(.alert,.message,.academy-alert) { padding: 14px 18px; border-radius: 12px; line-height: 1.6; }
body :is(.alert,.message,.academy-alert).success { background: var(--success-soft); color: var(--success); border-color: var(--success); }
body :is(.alert,.message,.academy-alert).error { background: var(--danger-soft); color: var(--danger); border-color: var(--danger); }
/* Académie */
body .academy-section .pack-card { padding: 24px; min-height: 310px; }
body .academy-section .pack-card.possede { background: var(--brand-soft); border-color: var(--accent-color); }
body .academy-section .pack-title { font-size: 18px; }
body .academy-section .pack-price { font-size: 27px; letter-spacing: -.6px; color: var(--accent-color); margin: 12px 0 20px; }
body .academy-section .pack-features { font-size: 13px; line-height: 1.8; }
body .academy-section .pack-btn { border-radius: 10px; }
body .academy-section .section-title::before { background: var(--brand-orange); }
/* Réglages */
/* Interrupteurs : la couleur de la piste et la position de la pastille indiquent l'état. */
body .switch, body .toggle-switch {
 position: relative; display: inline-block; width: 56px; min-width: 56px; height: 44px; min-height: 44px;
 padding: 0; flex-shrink: 0; cursor: pointer;
}
body .switch input {
 position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0;
 opacity: 0; cursor: pointer;
}
body .toggle-switch, body .toggle-switch.active { background: transparent; border: 0; }
body .switch .slider, body .toggle-switch::before {
 content: ''; position: absolute; inset: 7px 0 auto; width: 56px; height: 30px; border-radius: 999px;
 background: var(--border-color); border: 1px solid var(--text-secondary);
 transition: background-color 180ms ease, border-color 180ms ease; pointer-events: none;
}
body .switch .slider::before, body .toggle-switch .toggle-slider {
 position: absolute; width: 22px; height: 22px; border-radius: 50%;
 background: var(--text-primary); transition: transform 180ms ease, left 180ms ease; pointer-events: none;
}
body .switch .slider::before { left: 3px; top: 3px; }
body .toggle-switch .toggle-slider { left: 4px; top: 11px; }
body .toggle-switch.active .toggle-slider { left: 30px; }
body .switch input:checked + .slider, body .toggle-switch.active::before {
 background: var(--brand-blue); border-color: var(--brand-blue);
}
body .switch input:checked + .slider::before, body .toggle-switch.active .toggle-slider { background: var(--on-brand); }
body .switch input:focus-visible + .slider, body .toggle-switch:focus-visible {
 outline: 2px solid var(--accent-color); outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
 body .switch .slider, body .switch .slider::before, body .toggle-switch, body .toggle-switch::before, body .toggle-switch .toggle-slider { transition: none; }
}
body .settings-group { overflow: hidden; margin-bottom: 26px; }
body .settings-item { background: var(--bg-card); padding: 20px; border-color: var(--border-color); color: var(--text-primary); min-height: 76px; }
body .settings-item:hover { background: var(--bg-input); }
body .settings-icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; }
body .settings-label { color: var(--text-primary); font-size: 14px; }
body .group-title { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--text-secondary); margin: 26px 0 12px; }
/* Catalogue et commandes */
body .recommendation-card { overflow: hidden; }
body .recommendation-card :is(.title,.price) { color: var(--text-primary); }
body .recommendation-card .price { color: var(--accent-color); }
body .search-pill-bar { background: var(--bg-card); border-color: var(--border-color); border-radius: 12px; box-shadow: none; }
body .order-card { padding: 24px; margin-bottom: 20px; }
body .order-header, body .order-footer { border-color: var(--border-color); }
body .order-thumb { border-radius: 12px; background: var(--bg-input); }
body .order-price { color: var(--accent-color); font-weight: 750; }
body .status-badge { border-radius: 8px; background: var(--brand-soft); color: var(--accent-color); }
body .status-annulee { background: var(--danger-soft); color: var(--danger); }
body .status-livree { background: var(--success-soft); color: var(--success); }
/* Toutes les fenêtres, y compris OTP et reçus. La logique d’ouverture reste propre à chaque page. */
body :is(.modal-overlay,.product-modal,.confirm-modal,.receipt-modal-overlay,.otp-modal-overlay,#confirmFormationModal) { background: color-mix(in srgb,var(--bg-primary) 75%,transparent); backdrop-filter: blur(5px); }
body :is(.modal-card,.confirm-card,.receipt-card,.otp-modal-card) { background: var(--bg-card); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: 22px; box-shadow: var(--soft-shadow); max-height: calc(100dvh - 40px); overflow-y: auto; padding: 26px; }
body :is(.modal-close,.receipt-close,.sheet-close-btn,.sheet-nav-btn) { background: var(--bg-input); color: var(--text-primary); border: 1px solid var(--border-color); width: 40px; height: 40px; border-radius: 10px; }
body :is(.confirm-title,.otp-modal-title,.receipt-title) { font-size: 23px; font-weight: 750; color: var(--text-primary); }
body :is(.confirm-row,.confirm-summary,.confirm-balance,.receipt-section,.spec-card,.trust-badge) { background: var(--bg-input); color: var(--text-primary); border-color: var(--border-color); border-radius: 10px; }
body :is(.confirm-message,.receipt-ref,.otp-timer-wrap) { color: var(--text-secondary); }
body :is(.receipt-header,.receipt-row,.receipt-total-row,.spec-table td,.product-sheet-header) { border-color: var(--border-color); }
body .receipt-total-row { color: var(--accent-color); }
body .receipt-status-badge { background: var(--success-soft); color: var(--success); }
body .product-sheet-header, body .bottom-buy-bar { background: var(--bg-card); color: var(--text-primary); }
body .product-sheet-media { background: var(--bg-input); }
body .otp-box { background: var(--bg-input); color: var(--text-primary); border-color: var(--border-color); border-radius: 10px; }
/* Connexion et inscription */
body .auth-container { padding: 34px; width: min(100%, 480px); }
body .auth-container h1 { letter-spacing: -.6px; font-size: 28px; }
body .auth-container .logo-wrap { margin-bottom: 24px; }
body :is(.auth-footer-link a,.forgot-password-link,.btn-resend-otp) { color: var(--accent-color); }
body .sponsor-badge { background: var(--brand-soft); color: var(--accent-color); border-color: var(--border-color); }
body .theme-toggle-btn { background: var(--bg-card); color: var(--text-primary); border: 1px solid var(--border-color); box-shadow: none; border-radius: 12px; }
/* Administration */
body:has(.dashboard > .sidebar) { background: var(--bg-primary); }
body .sidebar { background: var(--bg-card); border-color: var(--border-color); }
body .nav-item { border-radius: 10px; color: var(--text-secondary); background: transparent; }
body .nav-item.active { background: var(--brand-blue); color: var(--on-brand); }
body .stat-value { color: var(--accent-color); font-size: 30px; letter-spacing: -.8px; }
body .stat-label { color: var(--text-secondary); }
body .data-table { background: var(--bg-card); color: var(--text-primary); }
body .data-table th { background: var(--bg-input); color: var(--text-secondary); padding: 14px; }
body .data-table td { border-color: var(--border-color); padding: 14px; }
body .data-table tr:hover { background: var(--bg-input); }
body .theme-option, body .quick-item { background: var(--bg-input); color: var(--text-primary); border-color: var(--border-color); }
body .theme-option.active { background: var(--brand-soft); border-color: var(--accent-color); }
body .badge { border: 1px solid var(--border-color); }
body .badge.statut-valide { background: var(--success-soft); color: var(--success); }
body .badge.statut-rejete { background: var(--danger-soft); color: var(--danger); }
body .badge.statut-attente { background: var(--orange-soft); color: var(--warning); }
@media (max-width:600px) {
 body :is(.academy-card,.intro-card,.stat-card,.panel,.form-card,.order-card) { padding: 18px; }
 body .settings-item { padding: 16px; gap: 12px; }
 body .settings-meta { flex-wrap: wrap; justify-content: flex-end; }
 body .auth-container { padding: 26px 20px; }
 body :is(.modal-overlay,.product-modal,.confirm-modal,.receipt-modal-overlay,.otp-modal-overlay,#confirmFormationModal) { align-items: flex-end; padding: 0; }
 body :is(.modal-card,.confirm-card,.receipt-card,.otp-modal-card) { width: 100%; max-width: 100%; max-height: 92dvh; border-radius: 22px 22px 0 0; margin: 0; padding: 24px 18px calc(24px + env(safe-area-inset-bottom)); }
 body :is(.confirm-actions,.otp-modal-actions) { position: sticky; bottom: -24px; background: var(--bg-card); padding: 14px 0; gap: 10px; }
 body .field-grid { grid-template-columns: minmax(0,1fr); }
}
@media print { body .receipt-card { max-height: none; overflow: visible; box-shadow: none; border: 0; } }

body .ui-icon { width: 22px; height: 22px; flex-shrink: 0; vertical-align: middle; }
@media print { body { --bg-card: #ffffff; --bg-input: #ffffff; --text-primary: #16324a; --text-secondary: #5a6e84; } }

body .dashboard { grid-template-columns: 240px minmax(0,1fr); }
body .dashboard .content { min-width: 0; padding: 30px; }
body .dashboard .topbar { flex-wrap: wrap; }
body .dashboard .subtitle { white-space: normal; }
body .dashboard .stats-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
body .dashboard .stat-card { min-width: 0; overflow-wrap: anywhere; }
body .dashboard .stat-label { font-size: 11px; letter-spacing: .7px; }
@media (max-width:1100px) { body .dashboard .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) { body .dashboard { grid-template-columns: minmax(0,1fr); } body .dashboard .content { padding: 20px 16px; } }

body .phone-input-group { grid-template-columns: 110px minmax(0,1fr); }
body .phone-input-group input { min-width: 0; width: 100%; }
body .auth-container .logo-wrap img { display: inline-block; width: 220px; max-width: 100%; height: auto; }

/* Fiche produit : galerie généreuse, détails défilants et achat toujours accessible. */
body[data-page-active="boutique"] #productModal.show ,
body .catalogue-product-modal.show { display: flex; align-items: center; justify-content: center; padding: 24px; }
body[data-page-active="boutique"] #productModal .modal-card ,
body .catalogue-product-modal .modal-card { position: relative; inset: auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); grid-template-rows: minmax(0,1fr) auto; width: min(1120px,100%); height: min(820px,calc(100dvh - 48px)); max-height: none; padding: 0; border-radius: 20px; overflow: hidden; }
body[data-page-active="boutique"] #productModal .product-sheet-header ,
body .catalogue-product-modal .product-sheet-header { top: max(14px,env(safe-area-inset-top)); left: 14px; background: transparent; }
body[data-page-active="boutique"] #productModal .sheet-nav-btn ,
body .catalogue-product-modal .sheet-nav-btn { width: 44px; height: 44px; background: var(--bg-card); border-radius: 50%; box-shadow: var(--soft-shadow); }
body[data-page-active="boutique"] #productModal .product-sheet-media ,
body .catalogue-product-modal .product-sheet-media { grid-column: 1; grid-row: 1 / 3; min-height: 0; border-bottom: 0; border-right: 1px solid var(--border-color); }
body[data-page-active="boutique"] #productModal .gallery-shell ,
body .catalogue-product-modal .gallery-shell { padding: 0; min-height: 0; }
body[data-page-active="boutique"] #productModal .carousel-slide img ,
body .catalogue-product-modal .carousel-slide img { object-fit: cover; object-position: center; aspect-ratio: auto; }
body[data-page-active="boutique"] #productModal .product-sheet-body ,
body .catalogue-product-modal .product-sheet-body { grid-column: 2; grid-row: 1; min-height: 0; min-width: 0; overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable; padding: 30px 26px; overscroll-behavior: contain; }
body[data-page-active="boutique"] #productModal .modal-title ,
body .catalogue-product-modal .modal-title { font-size: 25px; line-height: 1.3; }
body[data-page-active="boutique"] #productModal .modal-price ,
body .catalogue-product-modal .modal-price { font-size: 28px; }
body[data-page-active="boutique"] #productModal .bottom-buy-bar ,
body .catalogue-product-modal .bottom-buy-bar { grid-column: 2; grid-row: 2; position: relative; flex: 0 0 auto; height: auto; min-height: 80px; grid-template-columns: 116px minmax(0,1fr); align-items: center; padding: 14px 18px calc(14px + env(safe-area-inset-bottom)); }
body[data-page-active="boutique"] #productModal .sheet-buy-btn ,
body .catalogue-product-modal .sheet-buy-btn { min-height: 50px; padding: 10px; font-size: 14px; }
body[data-page-active="boutique"] #productModal .qty-stepper ,
body .catalogue-product-modal .qty-stepper { border-radius: 10px; grid-template-columns: 30px minmax(0,1fr) 30px; }
body[data-page-active="boutique"] #productModal .thumbnail-btn ,
body .catalogue-product-modal .thumbnail-btn { background: var(--text-secondary); opacity: .5; }
body[data-page-active="boutique"] #productModal .thumbnail-btn.active ,
body .catalogue-product-modal .thumbnail-btn.active { background: var(--brand-orange); opacity: 1; }
@media (max-width:760px) {
 body[data-page-active="boutique"] #productModal.show ,
body .catalogue-product-modal.show { padding: 0; }
 body[data-page-active="boutique"] #productModal .modal-card ,
body .catalogue-product-modal .modal-card { display: flex; flex-direction: column; width: 100%; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
 body[data-page-active="boutique"] #productModal .product-sheet-media ,
body .catalogue-product-modal .product-sheet-media { flex: 0 0 40dvh; min-height: 0; max-height: 380px; border-right: 0; border-bottom: 1px solid var(--border-color); }
 body[data-page-active="boutique"] #productModal .product-sheet-body ,
body .catalogue-product-modal .product-sheet-body { flex: 1 1 auto; padding: 20px 18px; }
 body[data-page-active="boutique"] #productModal .modal-title ,
body .catalogue-product-modal .modal-title { font-size: 22px; }
 body[data-page-active="boutique"] #productModal .modal-price ,
body .catalogue-product-modal .modal-price { font-size: 25px; }
 body[data-page-active="boutique"] #productModal .bottom-buy-bar ,
body .catalogue-product-modal .bottom-buy-bar { min-height: 76px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
}

body #confirmFormationModal .confirm-card { max-width: 500px; border-radius: 22px; padding: 26px; text-align: left; }
body #confirmFormationModal .confirm-title { font-size: 23px; }
body #confirmFormationModal .confirm-row { border-radius: 10px; padding: 14px; }
@media (max-width:600px) { body #confirmFormationModal .confirm-card { margin: 0; max-width: 100%; border-radius: 22px 22px 0 0; padding: 24px 18px; } }

/* Commandes souris de la galerie ; le balayage tactile reste disponible. */
body[data-page-active="boutique"] #productModal .gallery-arrow ,
body .catalogue-product-modal .gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 12; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--border-color); background: var(--bg-card); color: var(--text-primary); box-shadow: var(--soft-shadow); font-size: 22px; }
body[data-page-active="boutique"] #productModal .gallery-arrow[data-gallery-step="-1"] ,
body .catalogue-product-modal .gallery-arrow[data-gallery-step="-1"] { left: 12px; }
body[data-page-active="boutique"] #productModal .gallery-arrow[data-gallery-step="1"] ,
body .catalogue-product-modal .gallery-arrow[data-gallery-step="1"] { right: 12px; }
body[data-page-active="boutique"] #productModal .gallery-arrow:disabled ,
body .catalogue-product-modal .gallery-arrow:disabled { opacity: .4; cursor: default; }
body[data-page-active="boutique"] #productModal .gallery-arrow[hidden] ,
body .catalogue-product-modal .gallery-arrow[hidden] { display: none; }
@media (hover:none) and (pointer:coarse) { body[data-page-active="boutique"] #productModal .gallery-arrow ,
body .catalogue-product-modal .gallery-arrow { display: none; } }

/* Catalogue volumineux : catégories, tri et navigation bornée. */
body .catalog-categories { display:flex; gap:8px; overflow-x:auto; padding:12px 0; margin:4px 0 14px; scrollbar-width:thin; }
body .catalog-chip { flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:10px 14px; border:1px solid var(--border-color); border-radius:24px; background:var(--bg-card); color:var(--text-primary); font-size:12px; text-decoration:none; }
body .catalog-chip span { color:var(--text-secondary); font-size:11px; }
body .catalog-chip.active { background:var(--brand-soft); border-color:var(--accent-color); color:var(--accent-color); }
body .catalog-toolbar, body .catalog-recommendation-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:14px 0; }
body .catalog-toolbar p, body .catalog-hint { color:var(--text-secondary); font-size:12px; line-height:1.6; margin-bottom:12px; }
body .catalog-toolbar select { min-height:42px; border:1px solid var(--border-color); border-radius:10px; padding:8px; }
body .catalog-toolbar label { font-size:12px; }
body .catalog-recommendation-heading h2 { margin:0; font-size:20px; }
body .product-card[hidden] { display:none !important; }

body .catalog-load-more { text-align:center; margin:28px 0; color:var(--text-secondary); font-size:13px; }
body .catalog-load-more a { display:inline-flex; padding:12px 20px; min-height:46px; border:1px solid var(--border-color); background:var(--bg-card); color:var(--accent-color); border-radius:10px; text-decoration:none; }
body .catalog-load-more [aria-disabled=true] { opacity:.6; pointer-events:none; }
