/* Jeu de composants de l'atelier, de la vérification et de la commande (plan 04, correction R5 de l'audit de finition).
   Six familles de boutons, un modèle de carte, un modèle de champ, des états communs (focus clavier compris).
   Décision de Robin du 29/09 : la direction artistique prime ; aucun cadre, contour renforcé ni anneau visible ajouté
   seulement pour l'accessibilité (bords --ink-15 de la charte, focus clavier rendu comme le survol).
   Les familles sont ancrées sur l'atelier (#mp-config-mirror) et l'écran commande (#mp-screen-order) : l'identifiant
   l'emporte sur les règles des autres fichiers, qui placent et dimensionnent les boutons sans décider de leur apparence.
   Un nouveau bouton rejoint la liste de sa famille (tableau de décision : docs/configurator-boutique-runbook.md). */

/* Phrase d'aide sous la scène (passe 2, 08/10) : au plus 68 caractères de large sur ordinateur, au lieu d'une ligne de 140 caractères. Pas sur la
   carte de départ : la phrase y est masquée mais garde sa place, et une seconde ligne y rognait la carte à 1 280 x 720 (recette distill). */
@media(min-width:761px){.mp-mirror.atelier:not(.is-empty) .atelier-guide>[data-guide]{max-width:68ch;margin-inline:auto}}

/* 1. Principal (encre) : l'action qui fait avancer. Un par zone. Dans la vue 3D, c'est « Vérifier ma commande » ; « Revenir à l'édition » et
   « Tourner le centre » sont des secondaires (passe 2, 08/10 : deux boutons encre côte à côte). */
:is(#mp-config-mirror,#mp-screen-order) :is(.atelier-primary,.atelier-continue,.atelier-start-names-go,[data-action=start-upload],[data-action=feedback-fit],[data-action=feedback-print],[data-action=feedback-quantities],[data-action=feedback-start],[data-action=feedback-image],[data-action=feedback-glyphs],.mp-retouch [data-apply],button.btn--ink,[data-review-confirm],.upsell-card button){
 --survol-fond:var(--atelier-ink-hover);--survol-bord:var(--atelier-ink-hover);--survol-texte:var(--atelier-paper);--survol-trait:auto;--survol-ligne:none;--appui-fond:var(--atelier-ink);
 background:var(--atelier-ink);color:var(--atelier-paper);border:1px solid var(--atelier-ink);border-radius:var(--atelier-radius-control);box-shadow:none;
 font-family:var(--atelier-font);font-size:var(--atelier-text-md);font-weight:600;line-height:1.5;text-decoration:none}
#mp-screen-order .btn--ink{--btn-pad-y:12px;--btn-pad-x:24px}
#mp-screen-order .btn--ink::after{content:none}

/* 2. Secondaire (contour) : une action à côté du principal, ou qui ouvre un choix. Contour --ink-15, encre au survol,
   comme .btn--ghost de DESIGN.md. */
:is(#mp-config-mirror,#mp-screen-order) :is(.atelier-gamme>summary,.atelier-start-names:not(.atelier-start-other)>summary,.atelier-start-text-options>summary,[data-layout=logo],[data-layout=photo],.atelier-other-shape-open,.atelier-other-shape-close,.atelier-quick-center,.atelier-visual-actions :is(button,.atelier-button),.atelier-return-edit,.atelier-spin-centre,.atelier-glyph-note button,.atelier-other-visual button:not(.atelier-primary),.atelier-feedback button:not(.atelier-primary,[data-action=feedback-fit],[data-action=feedback-print],[data-action=feedback-quantities],[data-action=feedback-start],[data-action=feedback-image],[data-action=feedback-glyphs],[data-action=feedback-close],[data-action=feedback-keep],[data-action=feedback-create],[data-action=feedback-undo]),.atelier-notice [data-action=notice-3d],.mp-config-relay-button,.reference-cart-review,.atelier-order-toggle,[data-series-action=paste],.collecte-link-row button,.collecte-open-link,.atelier-logo-placeholder){
 --survol-fond:var(--atelier-hover);--survol-bord:var(--atelier-ink);--survol-texte:var(--atelier-ink);--survol-trait:auto;--survol-ligne:none;--appui-fond:var(--atelier-press);
 background:transparent;color:var(--atelier-ink);border:1px solid var(--atelier-line);border-radius:var(--atelier-radius-control);box-shadow:none;
 font-family:var(--atelier-font);font-size:var(--atelier-text-md);font-weight:600;text-decoration:none}

/* 3. Lien : action de second rang, annulation, ouverture d'un volet (reprend les « actions texte » que la page définissait).
   Décision de Robin du 29/09 : une action autonome n'est plus soulignée au repos (texte encre, graisse 600) ; elle se
   souligne au survol et au focus clavier. Une action DANS une phrase (« Version ajoutée. Annuler ») garde son soulignement
   (règle suivante). La famille ne porte que l'apparence ; la cible de 44 px des anciennes actions texte suit. */
:is(#mp-config-mirror,#mp-screen-order) :is(.atelier-start-other>summary,.atelier-start-more,.atelier-fill-link,.atelier-series-paste>summary,.atelier-series-file,.atelier-collecte-open,[data-review-zoom],[data-review-close],[data-review-edit],[data-review-card-edit],[data-review-goto],.studio-review-warning button,.reference-cart-undo,.studio-upload.is-compact,[data-action=zoom-fit],.atelier-display>summary,.reference-cart-actions button:not([data-focus-key^="remove:"]),.reference-cart-quantity button,.reference-cart-row summary,.atelier-actions :is(button,.atelier-button):not(.atelier-primary,.atelier-danger,[aria-pressed]),.atelier-object-actions button:not(.atelier-danger,[aria-pressed]),.atelier-copies button,.atelier-cleanup-tools button,.atelier-start-layouts button,.atelier-image-quality :is(button,.atelier-button),[data-action=copy-front],[data-action=copy-cancel],[data-action=project-cancel],[data-action=new-ball-cancel],[data-action=crop-reset],[data-action=curve-reset],[data-action=convert-profile],[data-action=fresh],[data-action=feedback-keep],[data-action=feedback-create],[data-action=feedback-undo],.atelier-save button,.atelier-align button,.mp-retouch [data-undo],.mp-retouch [data-cancel],.atelier-secondary:not([data-action=leave-go]),.atelier-project>summary,.atelier-project :is(button,label),.atelier-more>summary,.atelier-precise>summary,.atelier-fold>summary,.atelier-copies>summary,.atelier-panel-close,.atelier-return-cart,.mp-config-cookies,.mp-checkout-back,.upsell-more button,.atelier-order-add,.atelier-order-more,.atelier-order-note button,.atelier-order-close,.atelier-series-add,[data-series-action=merge],[data-series-action=fix-glyphs],[data-action=series-focus],.mp-config-relay-change,.upsell-cards>summary,.mp-config-fold>summary){
 --survol-fond:transparent;--survol-bord:transparent;--survol-texte:var(--atelier-danger);--survol-trait:1px;--survol-ligne:underline;--appui-fond:transparent;
 background:transparent;color:var(--atelier-ink);border:0;border-radius:0;box-shadow:none;
 font-family:var(--atelier-font);font-size:var(--atelier-text-md);font-weight:600;text-decoration:none;text-decoration-thickness:1px;text-underline-offset:4px}
/* Lien dans une phrase : souligné au repos, graisse du texte courant (« :not(#_) » donne à la règle le poids d'un identifiant
   de plus, sans quoi la liste de la famille, plus précise, l'emporterait). */
:is(#mp-config-mirror,#mp-screen-order) :is(.atelier-order-note button,.atelier-order-steps .atelier-order-undo-inline,.reference-cart-undo):not(#_){font-weight:500;text-decoration-line:underline;--survol-trait:2px}
.mp-config-wrap :is(#mp-config-mirror,#mp-screen-order) :is(.atelier-start-more,.atelier-fill-link,[data-review-zoom],[data-review-close],[data-review-edit],[data-review-card-edit],[data-review-goto],.studio-review-warning button,.reference-cart-undo,.studio-upload.is-compact,[data-action=zoom-fit],.atelier-display>summary,.reference-cart-actions button,.reference-cart-quantity button,.atelier-actions :is(button,.atelier-button):not(.atelier-primary,[aria-pressed]),.atelier-object-actions button:not([aria-pressed]),.atelier-copies button,.atelier-cleanup-tools button,.atelier-start-layouts button,.atelier-image-quality :is(button,.atelier-button),[data-action=copy-front],[data-action=copy-cancel],[data-action=project-cancel],[data-action=crop-reset],[data-action=curve-reset],[data-action=convert-profile],[data-action=fresh],[data-action=feedback-keep],[data-action=feedback-create],[data-action=feedback-undo],.atelier-save button,.atelier-align button,.mp-retouch [data-undo],.mp-retouch [data-cancel],.atelier-secondary,.atelier-series-add,[data-series-action=merge],[data-series-action=fix-glyphs],[data-action=series-focus],.mp-config-relay-change,.upsell-cards>summary,.mp-config-fold>summary){min-height:44px;padding:8px 0;line-height:1.4}

/* 4. Icône : un glyphe ou un pictogramme seul, avec un nom accessible. */
:is(#mp-config-mirror,#mp-screen-order) :is([data-action=undo],[data-action=redo],[data-action=smaller],[data-action=larger],[data-action=nudge],[data-action=rotate-step],[data-action=zoom-in],[data-action=zoom-out],[data-action=notice-close],[data-action=feedback-close],[data-help-close],[data-action=angle-reset],.atelier-float-bar button,.atelier-order-remove,.atelier-order-version-remove,.atelier-order-steps button,.atelier-series-remove){
 --survol-fond:var(--atelier-hover);--survol-bord:transparent;--survol-texte:var(--atelier-ink);--survol-trait:auto;--survol-ligne:none;--appui-fond:var(--atelier-press);
 background:transparent;color:var(--atelier-ink);border:1px solid transparent;border-radius:var(--atelier-radius-control);box-shadow:none;
 font-family:var(--atelier-font);font-size:var(--atelier-text-glyph);font-weight:400;text-decoration:none}

/* 5. Danger : supprimer, retirer. Texte rouge encre, souligné. */
:is(#mp-config-mirror,#mp-screen-order) :is(.atelier-danger,[data-action=leave-go],.reference-cart-actions button[data-focus-key^="remove:"]){
 --survol-fond:transparent;--survol-bord:transparent;--survol-texte:var(--atelier-danger);--survol-trait:2px;--survol-ligne:underline;--appui-fond:transparent;
 background:transparent;color:var(--atelier-danger);border:0;border-radius:0;box-shadow:none;
 font-family:var(--atelier-font);font-size:var(--atelier-text-md);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}

/* 6. Choix : un outil, une face, une zone, un décor, une forme, une police, une vue, une boule. Pressé = fond --paper-deep et
   libellé en gras, sans cadre (décision de Robin du 29/09). Seules les pastilles de couleur gardent un anneau encre : leur
   fond est la couleur, l'anneau est le seul moyen de montrer laquelle est choisie (Canva, Figma). */
:is(#mp-config-mirror,#mp-screen-order) :is(button[aria-pressed]:not([data-action=color-preset]),button[aria-current],.atelier-other-shape-grid button,.atelier-reuse-list button,.reference-cart-choices button,.atelier-help-trigger,button.atelier-order-name,button.atelier-order-version-name,.atelier-series-thumb,.studio-review-card-open){
 --survol-fond:var(--atelier-hover);--survol-bord:transparent;--survol-texte:var(--atelier-ink);--survol-trait:auto;--survol-ligne:none;--appui-fond:var(--atelier-press);
 background:transparent;color:var(--atelier-ink);border:1px solid transparent;border-radius:var(--atelier-radius-control);box-shadow:none;font-weight:400;text-decoration:none}
:is(#mp-config-mirror,#mp-screen-order) :is(button[aria-pressed=true]:not([data-action=color-preset]),button[aria-current=true],.atelier-help-trigger[aria-expanded=true]){background:var(--atelier-soft);color:var(--atelier-ink);box-shadow:none;font-weight:600}
:is(#mp-config-mirror,#mp-screen-order) [data-action=color-preset]{--survol-fond:var(--swatch);--survol-bord:var(--atelier-ink);--survol-texte:var(--atelier-ink);--survol-trait:auto;--appui-fond:var(--swatch);
 background:var(--swatch);border:1px solid var(--atelier-line);border-radius:50%;box-shadow:inset 0 0 0 3px var(--atelier-paper)}
:is(#mp-config-mirror,#mp-screen-order) [data-action=color-preset][aria-pressed=true]{border-color:var(--atelier-ink);box-shadow:inset 0 0 0 2px var(--atelier-ink),inset 0 0 0 5px var(--atelier-paper)}

/* Exception mesurée, comme les libellés du rail : sous 360 px, les boutons de la barre du bas gardent leur taille d'avant
   (12 px pour « Vérifier ma commande », 13 px pour « Ma commande » et « + Ajouter une boule ») : à 14 px, le total et
   « + Ajouter une boule » passent à la ligne et la barre prend 9 px à la création (140 px garantis à 320 × 568). */
@media(max-width:359px){
 #mp-config-mirror .atelier-order-bar button.atelier-continue{font-size:var(--atelier-text-xs)}
 #mp-config-mirror .atelier-order-bar :is(button.atelier-order-toggle,button.atelier-other-shape-open){font-size:var(--atelier-text-sm)}
}

/* Boule vide (passe 2, lot E ; critique du 08/10, problème 8) : le seul geste utile est un départ de la carte. « Vérifier ma commande »
   passe en secondaire (contour, comme la famille 2) tant qu'il n'y a rien à vérifier ; le rail d'outils et le compteur prennent le
   texte atténué de la charte (--atelier-muted, 70 % de l'encre, au contraste AA), sans rien désactiver : ils restent utilisables au
   clavier et au doigt. Tout redevient normal dès le premier prénom, visuel ou décor (la classe is-empty est retirée à chaque rendu). */
#mp-config-mirror .atelier.is-empty .atelier-order-bar .atelier-continue{--survol-fond:var(--atelier-hover);--survol-bord:var(--atelier-ink);--survol-texte:var(--atelier-ink);--appui-fond:var(--atelier-press);background:transparent;color:var(--atelier-ink);border-color:var(--atelier-line)}
#mp-config-mirror .atelier.is-empty :is(.atelier-rail button:not([aria-pressed=true]),.atelier-order-actions :is(button,input)){color:var(--atelier-muted)}

/* États communs : survol seulement sous un vrai pointeur, appui, indisponible, en cours. Les vignettes (la vignette entière
   est le bouton) et le menu des polices gardent leur propre apparence. Les familles ne posent pas de curseur : sinon, plus
   précises, elles l'emporteraient sur « indisponible » (curseur interdit). */
@media (hover:hover){
 :is(#mp-config-mirror,#mp-screen-order) :is(button,summary,.atelier-button):hover:not(:disabled,[aria-disabled=true],[aria-busy=true],[aria-pressed=true],[aria-current=true],.atelier-help-trigger[aria-expanded=true],.studio-mini-switch,.atelier-font-picker>summary){background-color:var(--survol-fond);border-color:var(--survol-bord);color:var(--survol-texte);text-decoration-line:var(--survol-ligne);text-decoration-thickness:var(--survol-trait)}
}
:is(#mp-config-mirror,#mp-screen-order) :is(button,summary,.atelier-button):active:not(:disabled,[aria-disabled=true],[aria-busy=true],.studio-mini-switch,.atelier-font-picker>summary){background-color:var(--appui-fond)}
:is(#mp-config-mirror,#mp-screen-order) :is(button,summary,.atelier-button):is(:disabled,[aria-disabled=true]){opacity:.4;cursor:not-allowed}
:is(#mp-config-mirror,#mp-screen-order) :is(button,.atelier-button)[aria-busy=true]{opacity:.6;cursor:progress}

/* Champ : un seul modèle, bord 1 px --ink-15 de la charte (décision de Robin du 29/09 : le bord foncé à 3:1 du plan 04 est
   retiré), bord encre au focus, sans anneau. Texte 16 px (pas de zoom automatique sur téléphone), interligne 1,5 (24 px : un
   champ d'une ligne garde ses 44 px entiers). */
:is(#mp-config-mirror,#mp-screen-order) :is(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file],[type=hidden]),select,textarea){
 background:var(--atelier-paper);color:var(--atelier-ink);border:1px solid var(--atelier-line);border-radius:var(--atelier-radius-control);box-shadow:none;
 font-family:var(--atelier-font);font-size:var(--atelier-text-lg);font-weight:400;line-height:1.5}
/* Valeur en lecture seule (lot 6b) : le total des versions d'une boule se lit, il ne se remplit pas ; ni bord ni fond. */
:is(#mp-config-mirror,#mp-screen-order) input[readonly]:not([type=hidden]){border-color:transparent;background:transparent;font-weight:600;cursor:default}
:is(#mp-config-mirror,#mp-screen-order) :is(input,textarea)::placeholder{color:var(--atelier-placeholder);opacity:1}
:is(#mp-config-mirror,#mp-screen-order) [aria-invalid=true]:is(input,select,textarea){border-color:var(--atelier-danger)}
:is(#mp-config-mirror,#mp-screen-order) :is(input[type=checkbox],input[type=radio],input[type=range],input[type=color]){accent-color:var(--atelier-ink);font-family:var(--atelier-font)}
:is(#mp-config-mirror,#mp-screen-order) :is(input[type=color],.atelier-font-picker>summary){background:var(--atelier-paper);border:1px solid var(--atelier-line);border-radius:var(--atelier-radius-control);box-shadow:none}

/* Carte : un seul modèle (bord ink-15, rayon 6, papier, sans ombre), menus déroulants compris. Seules les fenêtres modales
   ont une ombre. Le formulaire de commande n'en est plus une (passe 2, 08/10) : il contient des cartes (livraison, relais choisi). */
:is(#mp-config-mirror,#mp-screen-order) :is(.atelier-empty>div,.atelier-notice,.atelier-feedback,.atelier-empty-alert,.studio-preview-3d,.atelier-return-confirm,.mp-config-relay-chosen,.upsell-card,.atelier-modal,.atelier-other-shape,.atelier-gamme-menu,.atelier-project>div,.atelier-display>div,.atelier-font-list,.studio-review-card,.studio-review-alerts){border:1px solid var(--atelier-line);border-radius:var(--atelier-radius-card);background:var(--atelier-paper);box-shadow:none}
/* dialog : même poids que « .atelier-empty>div » de la règle du modèle, qui l'emporterait sinon (l'ombre disparaissait). */
:is(#mp-config-mirror,#mp-screen-order) :is(dialog.atelier-modal,dialog.atelier-other-shape){box-shadow:var(--atelier-shadow-float)}
/* La vue 3D en grand n'est pas une carte mais la scène : ni bord ni fond (son rayon, sans trait ni fond, ne se voit pas).
   La vignette « Édition 2D » qui prend alors sa place suit le modèle ; scène étroite : la vignette 3D devient la barre
   « Aperçu 3D » sous la boule (filet haut, plan 02). */
:is(#mp-config-mirror,#mp-screen-order) .studio-scene[data-primary="3d"] .studio-preview-3d{border:0;background:transparent}
:is(#mp-config-mirror,#mp-screen-order) .studio-scene[data-primary="3d"] .studio-2d{background:var(--atelier-paper)}
@container atelier-scene (max-width:600px) or (max-height:230px){
 :is(#mp-config-mirror,#mp-screen-order) .studio-scene[data-primary=edit]>.studio-preview-3d{border:0;border-top:1px solid var(--atelier-line);border-radius:0}
}

/* Focus clavier (décision de Robin du 29/09 : ni anneau ni cadre ; audit du 08/10 : le rendu du survol ne se voyait pas, le
   repère est complété en fin de fichier, au clavier seulement). Au clavier seulement (:focus-visible, et pas après un clic
   ou un toucher : html[data-input=pointer], posé par configurator-core.js), l'élément prend le rendu de son survol : fond
   --paper-deep, encre ou soulignement selon sa famille. Un champ prend un bord encre. Une case ou un fichier dans une étiquette :
   l'étiquette prend le rendu. Un curseur prend la couleur du survol des liens (rouge encre). La toile de la boule montre la
   sélection de l'élément (poignées). Hors de l'atelier et de la commande (en-tête, pied de page), les règles du site
   s'appliquent ; la bannière cookies (#silktide-wrapper) garde son propre style, focus compris (décision D6 du plan directeur). */
:is(#mp-config-mirror,#mp-screen-order) :is(button,summary,a,input,select,textarea,canvas,[tabindex]):focus-visible{outline:none}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order) :is(button,summary,.atelier-button):focus-visible:not(:disabled,[aria-disabled=true],[aria-busy=true],[aria-pressed=true],[aria-current=true],.atelier-help-trigger[aria-expanded=true],.studio-mini-switch,.atelier-font-picker>summary){background-color:var(--survol-fond);border-color:var(--survol-bord);color:var(--survol-texte);text-decoration-line:var(--survol-ligne);text-decoration-thickness:var(--survol-trait)}
:is(#mp-config-mirror,#mp-screen-order) :is(input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden]),select,textarea):focus{border-color:var(--atelier-ink)}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order) :is(.studio-upload,.atelier-button,.mp-config-choice,.mp-config-relay-option,label):has(input:is([type=checkbox],[type=radio],[type=file]):focus-visible){background-color:var(--atelier-soft);text-decoration:underline;text-underline-offset:4px}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order) input[type=range]:focus-visible{accent-color:var(--atelier-danger)}

/* Décision de Robin du 30/09 : plus aucune action soulignée, ni au repos, ni au survol, ni au clavier. Une action se
   reconnaît à sa graisse (600) et change seulement de couleur au survol. Seule exception : un lien au milieu d'une phrase
   (« conditions de vente », « écrivez-nous », lien d'erreur du formulaire), qui garde un trait fin pour rester visible.
   Deux identifiants de plus dans la règle : elle passe devant les familles (lien, danger) et leurs états. */
:is(#mp-config-mirror,#mp-screen-order,#mp-config-review) :is(a,button,summary,[role=button]):not(#_):not(#__){text-decoration-line:none}
:is(#mp-config-mirror,#mp-screen-order,#mp-config-review) :is(p,label,li,.mp-config-gdpr span)>a:not(#_):not(#__){text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px}
@media (hover:hover){:is(#mp-config-mirror,#mp-screen-order,#mp-config-review) :is(.atelier-order-remove,.atelier-order-version-remove,[data-danger],.reference-cart-actions button[data-focus-key^="remove:"]):hover{color:var(--rouge-ink)}}

/* Audit du 08/10 : la barre « Vérifier ma commande » est toujours à l'écran (téléphone, ordinateur), elle est le seul bouton
   encre de l'atelier. Le bouton principal de l'outil ouvert (« Ajouter un texte », « Supprimer le fond »…) passe au style
   secondaire (contour --ink-15, encre au survol, comme .btn--ghost). Les départs de la carte « Que souhaitez-vous créer ? » et
   les fenêtres, qui n'ont pas la barre à côté, gardent le bouton principal. */
#mp-config-mirror .atelier-panel .atelier-primary{--survol-fond:var(--atelier-hover);--survol-bord:var(--atelier-ink);--survol-texte:var(--atelier-ink);--appui-fond:var(--atelier-press);background:transparent;color:var(--atelier-ink);border:1px solid var(--atelier-line)}
/* Pastilles des versions au-dessus de la boule (lot 4, 08/10) : famille choix, en pastille ; sur la scène (fond --paper-deep), la
   version affichée et le survol prennent le papier clair. */
:is(#mp-config-mirror,#mp-screen-order) .atelier-guide-versions button[aria-pressed]{--survol-fond:var(--atelier-paper);border-radius:var(--atelier-radius-round)}
:is(#mp-config-mirror,#mp-screen-order) .atelier-guide-versions button[aria-pressed=true]{background:var(--atelier-paper)}
/* « Remplir / Image entière » (passe 3, lot G3b) : un seul choix sur un fond --paper-deep ; le choix en cours prend le papier clair. */
:is(#mp-config-mirror,#mp-screen-order) .atelier-fit button[aria-pressed]{--survol-fond:var(--atelier-paper)}
:is(#mp-config-mirror,#mp-screen-order) .atelier-fit button[aria-pressed=true]{background:var(--atelier-paper)}

/* Passe 2 (08/10, critique n° 12) : le même carré que « Une partie du visuel ne sera pas imprimée » dit aussi un visuel flou ou un prénom
   en petit, avec sa phrase entière et sans « Vérifier en 3D » (studio-heads-up.mjs). Trois lignes de 12 px sur téléphone ; sur un téléphone
   bas, où le carré se pose par-dessus la scène sans la redimensionner, il prend la hauteur de son texte. */
.mp-studio.mp-mirror.atelier .atelier-messages>.atelier-notice[data-kind=tip] strong{font-weight:500}
@media(max-width:760px){
 .mp-studio.mp-mirror.atelier .atelier-messages>.atelier-notice[data-kind=tip] strong{line-height:1.25;-webkit-line-clamp:3}
}
@media(max-width:760px) and (max-height:700px){
 .mp-studio.mp-mirror.atelier .atelier-messages>.atelier-notice[data-kind=tip]:not([hidden]){height:auto;min-height:46px;padding-block:4px}
}
/* Repère du focus au clavier (audit du 08/10, WCAG 2.4.7 : 9 contrôles sur 11 ne changeaient pas au clavier, le fond du survol étant
   celui de la barre et le soulignement étant retiré par la règle du 30/09 ci-dessus). Au clavier seulement (:focus-visible, jamais
   après un clic ou un toucher), rien au repos, rien au survol, aucun anneau ni cadre. Deux repères, selon ce que le contrôle montre :
   - un libellé se souligne (2 px, décalé de 4 px), sur le bouton et sur son libellé en <span> ou en gras, que le trait ne traverse
     pas toujours ; il prime sur la règle du 30/09 (trois identifiants de plus dans le sélecteur, comme la sienne) ;
   - une icône, une pastille de prénom, le bandeau « Aperçu 3D » et le bouton « − / + » prennent le fond encre et le papier pour le
     glyphe ; une pastille de couleur garde sa couleur au centre d'un fond encre ; une vignette sans libellé est soulignée d'un trait.
   Cette règle vient la dernière : à poids égal, l'ordre départage les familles. */
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order,#mp-config-review) :is(button,summary,a,[role=button],.atelier-button):focus-visible:not(:disabled,[aria-disabled=true]):not(#_):not(#__):not(#___),
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order,#mp-config-review) :is(button,summary,a,[role=button],.atelier-button):focus-visible:not(:disabled,[aria-disabled=true]):not(#_):not(#__):not(#___)>:is(span,strong,b,small):not([aria-hidden=true]){
 text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:4px}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order,#mp-config-review) :is([data-action=undo],[data-action=redo],[data-action=smaller],[data-action=larger],[data-action=nudge],[data-action=rotate-step],[data-action=zoom-in],[data-action=zoom-out],[data-action=notice-close],[data-action=feedback-close],[data-help-close],[data-action=angle-reset],.atelier-float-bar button,.atelier-order-remove,.atelier-order-version-remove,.atelier-order-steps button,.atelier-series-remove,.atelier-panel-close,.atelier-guide-versions button,.atelier-order-close):focus-visible:not(:disabled,[aria-disabled=true]):not(#_):not(#__):not(#___){
 background-color:var(--atelier-ink);border-color:var(--atelier-ink);color:var(--atelier-paper);text-decoration-line:none}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order,#mp-config-review) .studio-mini-switch:focus-visible>span{background:var(--atelier-ink);color:var(--atelier-paper);text-decoration-line:none}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order) [data-action=color-preset]:focus-visible:not(#_):not(#__):not(#___){
 background:radial-gradient(circle,var(--swatch) 0 38%,var(--atelier-ink) 42%);border-color:var(--atelier-ink);box-shadow:none}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order) :is(.atelier-series-thumb,.studio-review-card-open):focus-visible:not(#_):not(#__):not(#___){position:relative}
html:not([data-input=pointer]) :is(#mp-config-mirror,#mp-screen-order) :is(.atelier-series-thumb,.studio-review-card-open):focus-visible:not(#_):not(#__):not(#___)::after{content:"";position:absolute;inset:auto 0 0;height:2px;background:var(--atelier-ink)}
