/**
 * AIFORYA WooCommerce SEO — styles admin (scopés wcs-*).
 * Complète la charte du shell vendor (aiforya-page / aiforya-card / aiforya-table).
 */

.wcs-hint { color: var(--aiforya-text-muted, #94a3b8); font-size: 13px; margin: 0 0 14px; }

/* Statistiques */
.wcs-stats { display: grid; grid-template-columns: repeat( auto-fit, minmax( 170px, 1fr ) ); gap: 14px; margin-bottom: 22px; }
.wcs-stat { background: var(--aiforya-surface-2, rgba( 255,255,255,0.04 )); border: 1px solid var(--aiforya-border, rgba( 255,255,255,0.08 )); border-radius: 12px; padding: 18px 16px; text-align: center; }
.wcs-stat__value { display: block; font-size: 28px; font-weight: 700; line-height: 1.1; color: var(--aiforya-text, #f1f5f9); }
.wcs-stat__label { display: block; margin-top: 6px; font-size: 12px; color: var(--aiforya-text-muted, #94a3b8); }

/* Champs */
.wcs-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.wcs-field__label { font-size: 13px; font-weight: 600; color: var(--aiforya-text, #e2e8f0); }
.wcs-input, .wcs-select {
	width: 100%; box-sizing: border-box; padding: 9px 12px; border-radius: 8px;
	border: 1px solid var(--aiforya-border, rgba( 255,255,255,0.12 ));
	background: var(--aiforya-surface, rgba( 255,255,255,0.03 ));
	color: var(--aiforya-text, #f1f5f9); font-size: 14px;
}
.wcs-input:focus, .wcs-select:focus { outline: none; border-color: var(--aiforya-accent, #6366f1); box-shadow: 0 0 0 2px rgba( 99,102,241,0.25 ); }
.wcs-grid { display: grid; gap: 14px; }
.wcs-grid--2 { grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) ); }

.wcs-key-row { display: flex; align-items: flex-end; gap: 10px; margin-bottom: 12px; }
.wcs-key-row .wcs-field { flex: 1; margin-bottom: 0; }

/* Interrupteurs */
.wcs-toggles { display: flex; flex-direction: column; gap: 12px; }
.wcs-switch { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--aiforya-text, #e2e8f0); cursor: pointer; }
.wcs-switch input { width: 18px; height: 18px; accent-color: var(--aiforya-accent, #6366f1); }

/* Actions */
.wcs-actions { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
/* Bandeau d'action collé en bas de la page des réglages.
 *
 * ⛔⛔ TROIS CHOSES ONT ÉTÉ ÉCRITES ICI LE 28/08/2026 PUIS RETIRÉES, ET C'EST LE PARCOURS QUI
 * VAUT — PAS LA RÈGLE, QUI EST REVENUE À SON ÉTAT D'ORIGINE À UNE LIGNE PRÈS.
 *
 * 1. **Le défaut que je croyais corriger n'existait pas.** La capture pleine page de
 *    `captures-onglets-parc.cjs` montrait ce bouton par-dessus le titre « Advanced », qui
 *    semblait avoir disparu de l'écran. Mesuré ensuite dans le DOM à deux viewports (900 px
 *    et 3 200 px) : les rectangles du bouton et du titre ne se touchent JAMAIS, et les trois
 *    titres sont bien rendus. C'était un artefact de `fullPage: true` — Playwright capture en
 *    scrollant par tuiles, et un élément `sticky` se retrouve dessiné à une position
 *    arbitraire dans l'image finale. **Une capture pleine page ne mesure pas la position d'un
 *    élément collant.**
 *
 * 2. **Mon correctif portait un vrai défaut, invisible.** J'avais écrit `var( --aiforya-bg )`
 *    avec une espace après la parenthèse : la règle reste dans `cssRules`, la variable se
 *    résout, et la propriété tombe quand même. Relevé du jour : **7 966 `var(--` collés dans
 *    le parc, 2 `var( --` — les deux écrits par moi ce matin.** Aucun contrôle de la chaîne
 *    ne lit le CSS ; c'est maintenant un cran du banc.
 *
 * 3. ⭐ **ET LA VRAIE TROUVAILLE EST DANS LE SOCLE, PARTAGÉE PAR LES 51 EXTENSIONS.**
 *    La feuille du socle qui habille le formulaire de support et les avis porte une règle
 *    qui force `background: transparent` sur **toute `div`** d'une page AIFORYA absente
 *    d'une liste blanche d'environ 30 classes — spécificité (0,3,2), contre (0,1,0) pour
 *    une classe simple.
 *    ⇒ **Tout fond posé sur une div nouvelle disparaît, sans erreur et sans avertissement.**
 *    C'est une liste blanche par EXCLUSION, exactement le motif que le build documente déjà :
 *    « un test défini par exclusion doit être complété à chaque contre-exemple ».
 *    ⚠ Le nom de cette feuille n'est PAS écrit ici, et c'est délibéré : le build .org la
 *    supprime, et son garde-fou « référence à un asset supprimé » a bloqué la production du
 *    ZIP en lisant ce commentaire. Il avait raison de le faire — un chemin cité dans un CSS
 *    est indiscernable d'un `url()`. On reformule, on ne desserre pas le garde-fou.
 *
 * ⇒ Le fond n'est donc PAS remis ici : il ne corrige aucun défaut mesuré, et le faire gagner
 * demanderait soit une surenchère de spécificité, soit une modification du socle des 51 pour
 * un confort visuel. §6.5 — un organe ne se paie que s'il retire du doute NET.
 * Seul `z-index` est conservé : il ne dépend d'aucun fond et évite qu'un futur élément
 * positionné passe devant le bouton. */
.wcs-actions--sticky {
	position: sticky;
	bottom: 0;
	padding: 16px 0;
	z-index: 5;
}
.wcs-row-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.wcs-page { min-width: 28px; text-align: center; font-weight: 600; color: var(--aiforya-text, #e2e8f0); }

/* Génération en masse */
.wcs-bulk { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.wcs-bulk .wcs-field { margin-bottom: 0; min-width: 220px; }
.wcs-queue { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--aiforya-border, rgba( 255,255,255,0.08 )); font-size: 13px; color: var(--aiforya-text-muted, #94a3b8); }
.wcs-queue__item strong { color: var(--aiforya-text, #f1f5f9); }

/* Badges */
.wcs-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 6px; font-size: 12px; font-weight: 700; }
.wcs-badge--ok { background: rgba( 34,197,94,0.16 ); color: #22c55e; }
.wcs-badge--no { background: rgba( 148,163,184,0.16 ); color: #94a3b8; }

/* Diagnostic */
.wcs-checks { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wcs-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--aiforya-text, #e2e8f0); flex-wrap: wrap; }
.wcs-check__info { flex-basis: 100%; margin-left: 32px; font-size: 12px; color: var(--aiforya-text-muted, #94a3b8); }

/* Documentation */
.wcs-steps, .wcs-list { margin: 0; padding-left: 20px; color: var(--aiforya-text, #e2e8f0); font-size: 14px; line-height: 1.7; }
.wcs-steps li, .wcs-list li { margin-bottom: 8px; }

/* Avis / notices */
.wcs-notice { border: 1px solid rgba( 234,179,8,0.35 ); background: rgba( 234,179,8,0.08 ); border-radius: 10px; padding: 12px 16px; margin-bottom: 20px; }
.wcs-notice p { margin: 0; color: #eab308; font-size: 13px; }

/* Repli toast si le shell ne fournit pas AiforyaToast */
.wcs-flash { position: fixed; right: 24px; bottom: 24px; z-index: 99999; padding: 12px 18px; border-radius: 10px; color: #fff; font-size: 14px; box-shadow: 0 8px 24px rgba( 0,0,0,0.3 ); transition: opacity .4s, transform .4s; }
.wcs-flash--success { background: #16a34a; }
.wcs-flash--error { background: #dc2626; }
.wcs-flash--info { background: #4f46e5; }
.wcs-flash.is-out { opacity: 0; transform: translateY( 8px ); }

@media ( max-width: 640px ) {
	.wcs-key-row { flex-direction: column; align-items: stretch; }
	.wcs-bulk { flex-direction: column; align-items: stretch; }
}
