/* La fenêtre « Format libre… » (js/page-size-dialog.js) et la ligne du même nom dans le menu Page (js/orientation-toggle.js). Libellé et champ à
   gauche - la liste des formats enregistrés, puis la largeur et la hauteur en centimètres -, la feuille d'aperçu à droite, l'indication et
   l'erreur sous les champs : tout tient dans les 376 px de haut du panneau de 700x400, sans défiler. Chargé après css/modal-base.css,
   css/variable-actions.css et css/search-select.css (le cadre, le champ, les boutons et la liste de la fenêtre en viennent). */
.pp-pagesize-grid { display: grid; grid-template-columns: 72px minmax(0, 1fr) 112px; column-gap: 12px; row-gap: 12px; align-items: start; padding-bottom: 2px; }
/* Le libellé se cale sur le champ (30 px de haut). */
.pp-pagesize-label { font-size: 12px; font-weight: 700; line-height: 30px; color: var(--text); }
/* Les formats enregistrés : la liste avec recherche (30 px de haut, comme les champs) et la corbeille du format choisi, grisée tant qu'aucun n'est
   choisi. */
.pp-pagesize-saved { display: flex; align-items: center; gap: 6px; min-width: 0; }
.pp-pagesize-saved .ss-wrap { flex: 1 1 auto; width: auto; min-width: 0; }
.pp-pagesize-remove { flex: none; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 30px; height: 30px; padding: 0; color: var(--text); background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); cursor: pointer; }
.pp-pagesize-remove svg { width: 16px; height: 16px; }
.pp-pagesize-remove:not(:disabled):hover { background: var(--surface-sunken); }
.pp-pagesize-remove:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.pp-pagesize-remove:disabled { opacity: .55; cursor: default; }
.pp-pagesize-field { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pp-pagesize-field .pp-dialog-input { flex: none; width: 104px; font-variant-numeric: tabular-nums; }
.pp-pagesize-unit { font-size: 12.5px; color: var(--text-muted); }
.pp-pagesize-notes { position: relative; grid-column: 2; min-width: 0; }
.pp-pagesize-note { margin: 0; font-size: 12px; line-height: 1.45; color: var(--text-muted); overflow-wrap: anywhere; }
.pp-pagesize-note[hidden] { display: none; }
/* « Format enregistré » / « Format supprimé » : dit aux lecteurs d'écran seulement ; la liste, qui montre le format, en est le témoin à l'écran. */
.pp-pagesize-status { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* L'erreur garde la couleur du texte (--danger ne fait que 4,4:1 sur blanc) : c'est le filet et le contour rouge du champ qui la désignent. */
.pp-pagesize-error { margin-top: 6px; padding-left: 8px; border-left: 3px solid var(--danger); font-weight: 600; color: var(--text); }
.pp-pagesize-box .pp-dialog-input[aria-invalid="true"] { border-color: var(--danger); }
.pp-pagesize-box .pp-dialog-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
/* La feuille d'aperçu : la page à l'échelle d'un carré de 96 px (sens compris), sa taille et son sens dessous. Le papier est blanc dans les deux
   thèmes. */
.pp-pagesize-preview { grid-column: 3; grid-row: 1 / span 4; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.pp-pagesize-stage { display: flex; align-items: center; justify-content: center; width: 98px; height: 98px; }
.pp-pagesize-sheet { flex: none; box-sizing: content-box; background: #fff; border: 1px solid var(--border-strong); box-shadow: 0 1px 3px rgba(15, 23, 42, .18); }
.pp-pagesize-caption { max-width: 100%; font-size: 11.5px; font-weight: 600; line-height: 1.3; text-align: center; color: var(--text); font-variant-numeric: tabular-nums; }
.pp-pagesize-orientation { font-size: 11px; line-height: 1.3; color: var(--text-muted); }
.pp-pagesize-orientation:empty { display: none; }
/* La ligne « Format libre… » du menu Page : la taille en cours reste discrète à droite, absente quand la page est un format de la liste. */
.v2-page-custom-row .v2-page-row-size:empty { display: none; }
