@layer modules{
/* 21c-edition-impression.css · La fenêtre d'impression du Tableur (53i-sheet-impression.js, CDC_TABLEUR_IMPRESSION, 2026-10-20),
   partagée avec le Document depuis le 2026-10-23 (52k-doc-impression.js, CDC_DOCUMENT_WORD W9) : chaque pièce a son nom
   neutre (.imp-app-…, que le Document pose) et le nom du Tableur en alias (.esh-imp-…), une seule règle pour les deux.
   L'aperçu à gauche sur un fond gris (les pages y sont blanches, quel que soit le thème, D3), les réglages à droite dans
   la DA des panneaux du Studio (37b : .studio-bascule, .studio-champ, .studio-titre). Les pages elles-mêmes ont leur
   feuille dans 53i (stylePages), la même dans l'aperçu et dans le document imprimé : rien ici ne touche une page. */
.imp-app, .esh-imp{ position:fixed; inset:0; z-index:var(--z-modal); display:flex; align-items:center; justify-content:center; padding:var(--sp-24);
  background:color-mix(in srgb, #000 38%, transparent); }
.imp-app-fenetre, .esh-imp-fenetre{ display:grid; grid-template-columns:minmax(0, 1fr) 392px; width:min(1280px, 100%); height:min(880px, 100%);
  border:1px solid var(--line); border-radius:var(--radius-lg, var(--radius)); background:var(--card); box-shadow:var(--elev-3, var(--elev-2)); overflow:hidden; }
.imp-app-apercu, .esh-imp-apercu{ min-width:0; overflow:auto; padding:var(--sp-24); display:flex; flex-direction:column; align-items:center; gap:var(--sp-24);
  background:color-mix(in srgb, var(--txt) 9%, var(--card2)); }
.imp-app-feuille, .esh-imp-feuille{ position:relative; flex:none; margin:0; box-shadow:0 1px 3px rgba(0,0,0,.18), 0 6px 18px rgba(0,0,0,.10); background:#fff; }
.imp-app-echelle, .esh-imp-echelle{ position:absolute; left:0; top:0; transform-origin:0 0; }
.imp-app-feuille figcaption, .esh-imp-feuille figcaption{ position:absolute; left:0; right:0; bottom:calc(-1 * var(--sp-18)); text-align:center; font-size:var(--fs-xs); color:var(--mut); }
.imp-app-vide, .esh-imp-vide{ margin:auto; color:var(--mut); font-size:var(--fs-sm); text-align:center; }

.imp-app-reglages, .esh-imp-reglages{ display:flex; flex-direction:column; min-height:0; border-left:1px solid var(--line); background:var(--card); }
.imp-app-tete, .esh-imp-tete{ display:flex; align-items:baseline; justify-content:space-between; padding:var(--sp-18) var(--sp-18) var(--sp-10); }
.imp-app-tete .studio-titre, .esh-imp-tete .studio-titre{ font-size:var(--fs-lg, var(--fs-base)); }
.imp-app-compte, .esh-imp-compte{ font-size:var(--fs-sm); font-weight:var(--fw-strong); color:var(--txt); }
.imp-app-corps, .esh-imp-corps{ flex:1; min-height:0; overflow:auto; padding:0 var(--sp-18) var(--sp-12); display:flex; flex-direction:column; gap:var(--sp-10); }
.imp-app-ligne, .esh-imp-ligne{ display:grid; grid-template-columns:88px minmax(0, 1fr); align-items:center; gap:var(--sp-8); }
.imp-app-lib, .esh-imp-lib{ font-size:var(--fs-sm); color:var(--mut); }
.imp-app-ligne .studio-champ, .esh-imp-ligne .studio-champ{ width:100%; padding:0 var(--sp-8); }
.imp-app-ligne .studio-bascule > button, .esh-imp-ligne .studio-bascule > button{ white-space:nowrap; padding:0 var(--sp-4); }
.imp-app-ligne .studio-bascule > button:disabled, .esh-imp-ligne .studio-bascule > button:disabled{ opacity:.4; cursor:default; }
.imp-app-perso, .esh-imp-perso{ display:flex; flex-wrap:wrap; gap:var(--sp-6) var(--sp-10); padding-left:96px; font-size:var(--fs-xs); color:var(--mut); }
.imp-app-perso[hidden], .esh-imp-perso[hidden]{ display:none; }
.imp-app-perso label, .esh-imp-perso label{ display:flex; align-items:center; gap:var(--sp-4); }
.imp-app-perso label > span, .esh-imp-perso label > span{ min-width:44px; }
.imp-app-nombre, .esh-imp-nombre{ width:64px !important; padding:0 var(--sp-6); }
.imp-app-cases, .esh-imp-cases{ display:flex; flex-direction:column; gap:var(--sp-6); padding:var(--sp-4) 0; }
.imp-app-case, .esh-imp-case{ display:flex; align-items:center; gap:var(--sp-8); font-size:var(--fs-sm); color:var(--txt); cursor:pointer; }
.imp-app-case input, .esh-imp-case input{ accent-color:var(--studio-accent-plein, var(--accent)); margin:0; }
.imp-app-case:has(input:disabled), .esh-imp-case:has(input:disabled){ color:var(--mut); cursor:default; }
.imp-app-sauts, .esh-imp-sauts{ display:flex; flex-wrap:wrap; gap:var(--sp-4); }
.imp-app-petit, .esh-imp-petit{ height:24px; padding:0 var(--sp-8); border:0; border-radius:var(--radius-xs, var(--radius-sm)); background:var(--studio-champ); color:var(--txt); font:inherit; font-size:var(--fs-xs); cursor:pointer; }
.imp-app-petit:hover:not(:disabled), .esh-imp-petit:hover:not(:disabled){ background:var(--studio-champ-fort); }
.imp-app-petit:disabled, .esh-imp-petit:disabled{ color:var(--mut); cursor:default; }

.imp-app-pied, .esh-imp-pied{ display:flex; justify-content:flex-end; gap:var(--sp-8); padding:var(--sp-12) var(--sp-18) var(--sp-18); border-top:1px solid var(--line); }
.imp-app-btn, .esh-imp-btn{ height:34px; padding:0 var(--sp-14); border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--studio-accent, var(--accent)); font:inherit; font-size:var(--fs-sm); font-weight:var(--fw-medium); white-space:nowrap; cursor:pointer; }
.imp-app-btn:hover:not(:disabled), .esh-imp-btn:hover:not(:disabled){ background:var(--studio-champ); }
.imp-app-principal, .esh-imp-principal{ border-color:transparent; background:var(--studio-accent-plein, var(--accent)); color:var(--on-solid, #fff); }
.imp-app-principal:hover:not(:disabled), .esh-imp-principal:hover:not(:disabled){ background:color-mix(in srgb, #000 10%, var(--studio-accent-plein, var(--accent))); }
.imp-app-btn:disabled, .esh-imp-btn:disabled{ opacity:.55; cursor:progress; }
.imp-app-btn:focus-visible, .esh-imp-btn:focus-visible, .imp-app-petit:focus-visible, .esh-imp-petit:focus-visible{ outline:2px solid var(--focus-anneau, var(--accent)); outline-offset:2px; }
/* L'iframe d'impression du web : rendu hors champ, jamais montré (display:none empêcherait sa mise en page). */
.imp-app-cadre, .esh-imp-cadre{ position:fixed; left:-10000px; top:0; width:1px; height:1px; border:0; visibility:hidden; }

@media (max-width:820px){
  .imp-app, .esh-imp{ padding:0; }
  .imp-app-fenetre, .esh-imp-fenetre{ grid-template-columns:1fr; grid-template-rows:minmax(0, 1fr) auto; height:100%; border-radius:0; }
  .imp-app-reglages, .esh-imp-reglages{ border-left:0; border-top:1px solid var(--line); max-height:55vh; }
}
}
