/* Atelier à grille — styles consolidés. Modifier les règles à leur source :
   ne pas ajouter de couches CSS de version en fin de fichier. */
/* La hauteur vient de l’iframe WordPress. Ne pas imposer 600px : sur un écran court,
   cela repousse la barre de zoom/plein écran sous la bordure de l’iframe. */
#view-grille{width:100%;height:calc(100dvh - 32px);min-height:0;display:flex;flex-direction:column;gap:8px;font-size:12px}
#view-grille[hidden],#view-grille [hidden]{display:none!important}
body:has(#view-grille:not([hidden])) main{max-width:none;width:100%;box-sizing:border-box;padding:8px 14px}
.gr-toolbar,.gr-activity-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:white;flex:none}



.gr-activity-nav{border:1px solid #e4e5e0;border-radius:12px;padding:5px 10px;min-height:39px}
.gr-activity-nav strong{font-size:12px;min-width:95px;text-align:center}
.gr-spacer{flex:1}
.gr-btn{border:1px solid #d3e0e5;border-radius:10px;padding:8px 11px;background:#fff;color:#21455c;cursor:pointer;font-weight:700;font-size:12px;line-height:1.3;font-family:inherit;white-space:nowrap}
.gr-btn:hover:not(:disabled){background:#eef6fa}
.gr-btn:disabled{opacity:.45;cursor:default}
.gr-btn.primary{background:#f6c450;border-color:#e6b12d;color:#253943}
.gr-btn.is-on{background:#e4f2f9;border-color:#4e96bb;color:#176092}
.gr-danger{color:#a43d45}


#gr-print-mode[aria-pressed=true]{background:#fff1c2;border-color:#e5b63e}
.gr-layout{display:grid;gap:var(--ef-activity-gap);flex:1;min-height:0}
.gr-panel,.gr-canvas-shell{background:#fff;border:1px solid #dfe7e8;border-radius:var(--ef-activity-radius);min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}
.gr-panel{padding:12px;gap:10px}
.gr-panel h2{font-size:15px;margin:0}
.gr-panel h3{font-size:13px;margin:0}
.gr-panel p{font-size:12px;line-height:1.45;color:#5a7080;margin:0}
.gr-panel label{font-size:12px;font-weight:700;color:#50697b;display:flex;flex-direction:column;gap:5px}
.gr-panel label.gr-check{flex-direction:row;align-items:center}
.gr-panel select,.gr-panel input:not([type=checkbox]),.gr-panel textarea{font:inherit;font-size:12px;color:#23415a;border:1px solid #cbd9de;border-radius:9px;padding:7px;background:white;min-width:0}
.gr-panel input[type=color]{padding:1px;width:46px;height:32px;cursor:pointer}
.gr-panel input[type=range]{width:100%;accent-color:#2380b0}
.gr-right-scroll{display:flex;flex-direction:column;overflow:auto;min-height:0;gap:11px;flex:1;padding-right:3px}
.gr-canvas-top{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;background:#fafbfa;border-bottom:1px solid #dfe6e6;font-size:12px}
.gr-top-tools{display:flex;align-items:center;gap:8px;min-width:0}
#view-grille #gr-restore-offpaper{font:700 11px Lexend,Arial,sans-serif;cursor:pointer;
 background:#fff9ed;border:1px solid #e1c98e;color:#34516a;border-radius:6px;padding:4px 7px;white-space:nowrap}

.gr-canvas-scroll{flex:1;overflow:auto;min-height:0;padding:16px;display:flex;justify-content:center;align-items:flex-start;background:#e9edee}
.gr-paper{position:relative;background:#fff;flex:none;width:min(100%,660px);box-shadow:0 3px 17px #263d4b25;overflow:visible;touch-action:none;user-select:none}
.gr-grid-inner{position:absolute;box-sizing:border-box;background-image:linear-gradient(to right,transparent calc(100% - .6px),#c5d7e0 calc(100% - .6px)),linear-gradient(to bottom,transparent calc(100% - .6px),#c5d7e0 calc(100% - .6px));background-size:var(--gr-cell-x) var(--gr-cell-y);background-repeat:repeat;outline:1px solid #c5d7e0;touch-action:none}
.gr-zone.has-content{border-color:#b5c4cc}
.gr-zone:focus-visible{outline:3px solid #edac20;outline-offset:-3px;z-index:3}
.gr-zone.is-active{border:2px solid #188ac4!important;z-index:2;box-shadow:inset 0 0 0 1px white}
.gr-zone .gr-object{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
#view-grille .gr-object.gr-image > img{max-width:none;max-height:none;object-fit:contain;width:100%;height:100%;min-width:0;min-height:0;display:block;pointer-events:none}
.gr-object.gr-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.23;text-align:center;padding:3%}
.gr-object.gr-sign svg{max-width:90%;max-height:90%;width:100%;height:100%}
.gr-placeholder{font-size:clamp(15px,1.8vw,21px);font-weight:700;color:#8297a8;pointer-events:none;text-align:center;overflow-wrap:anywhere;padding:3px;line-height:1.15}
.gr-selection{position:absolute;border:2px solid #2696d1;background:#5baeea3b;pointer-events:none;z-index:4}
.gr-zone-resize{position:absolute;width:15px;height:15px;z-index:6;touch-action:none;background:#fff;border:2px solid #188ac4;border-radius:4px;box-shadow:0 0 3px #244e6444}
.gr-zone-resize-both{right:0;bottom:0;cursor:nwse-resize}
.gr-zone-resize-width{right:0;top:50%;transform:translateY(-50%);cursor:ew-resize}
.gr-zone-resize-height{bottom:0;left:50%;transform:translateX(-50%);cursor:ns-resize}

.gr-frame-rail{flex:none;display:flex;align-items:center;gap:10px;padding:8px 14px;background:#fff;border:1px solid #e5e4dd;border-radius:13px;min-height:85px;max-height:102px;overflow:hidden}
.gr-frame-rail>strong{font-size:12px;flex:none}
.gr-frame-rail-items{display:flex;gap:7px;overflow-x:auto;flex:1;padding:3px;min-width:0}
.gr-frame-thumb{position:relative;flex:0 0 73px;width:73px;height:65px;border:1px solid #d6e1e5;background:#fff;border-radius:8px;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
.gr-frame-thumb[aria-pressed=true]{border:2px solid #208dc6;background:#e6f3fb}
.gr-frame-thumb img{max-width:70%;max-height:32px;object-fit:contain}
.gr-frame-thumb small{font-size:10px;color:#31516a}
.gr-frame-thumb .gr-object{width:35px;height:35px;display:flex;justify-content:center;align-items:center;overflow:hidden}
.gr-frame-thumb .gr-object.gr-text{font-size:10px!important}



.gr-image-library{display:flex;flex-direction:column;gap:7px;min-height:100px}
.gr-upload{border:1px dashed #abc3cf;border-radius:8px;padding:8px;text-align:center;cursor:pointer;font-size:11px}
.gr-upload input{display:none}
.gr-sign-list{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:39px;gap:4px;max-height:165px;overflow-y:auto;overflow-x:hidden}
.gr-sign-list>button{box-sizing:border-box;min-width:0;height:39px;padding:0 2px;background:white;border:1px solid #d7e2e5;border-radius:6px;color:#172f46;font-family:Arial,sans-serif;font-size:22px;cursor:pointer;display:grid;place-items:center;overflow:hidden}
.gr-sign-list>button[aria-pressed=true]{background:#fff1c1;border-color:#cf9a20}
.gr-sign-list>button svg{width:26px;height:26px;max-width:90%;max-height:90%}
.gr-print-preview{border:1px solid #dce5e8;background:#f6f9fb;padding:9px;border-radius:9px}
@media(max-width:980px){.gr-frame-rail{max-height:100px}}
@media print {
 body:has(#print-stage.gr-print-active){margin:0!important;padding:0!important;background:#fff!important}
 #print-stage.gr-print-active{display:block!important;width:auto!important;margin:0!important;padding:0!important}
 #print-stage.gr-print-active .gr-print-sheet{position:relative;overflow:hidden;box-sizing:border-box;background:white!important;break-after:page;page-break-after:always;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 #print-stage.gr-print-active .gr-print-sheet:last-child{break-after:auto;page-break-after:auto}
 #print-stage.gr-print-active .gr-print-activity{position:absolute;box-sizing:border-box;overflow:hidden}
 #print-stage.gr-print-active .gr-print-activity.is-cut{outline:.2mm dashed #9eabb3;outline-offset:-.3mm}
 #print-stage.gr-print-active .gr-print-zone{position:absolute;box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:hidden}
 #print-stage.gr-print-active .gr-print-zone .gr-object{width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}
 #print-stage.gr-print-active .gr-print-zone img{width:100%;height:100%;max-width:none;object-fit:contain}
 #print-stage.gr-print-active .gr-print-zone .gr-text{white-space:pre-wrap;overflow-wrap:anywhere}
}
.gr-print-actions{flex-wrap:wrap;display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.gr-print-actions .gr-btn{min-width:0;white-space:normal}
.gr-zone.is-active:has(.gr-zone-resize){overflow:visible;}
.gr-zone-resize:hover{background:#f6c450}
.gr-page-settings{flex:none}
.gr-page-settings label{font-size:11px}
.gr-page-settings label input[type=color]{width:43px}
.gr-compose{display:block;min-height:0;flex:1}
.gr-compose-content h3{font-size:14px!important}

#gr-compose-text-tools,#gr-compose-shape-tools{display:flex;flex-direction:column;gap:9px}
#gr-compose-text-tools textarea{width:100%;resize:vertical}
.gr-selected-buttons{display:flex;gap:5px;flex-wrap:wrap}
#view-grille .gr-thumb-image .ef-forme-visual{width:100%;height:100%;max-width:100%;max-height:100%}
.gr-zone{position:absolute;border:1px solid #87a7b8;overflow:hidden;box-sizing:border-box;background:white;display:flex;align-items:center;justify-content:center;padding:0;min-width:0;min-height:0;cursor:grab;}
.gr-zone:active{cursor:grabbing}
.gr-zone:not(.is-active){outline:1px dashed #b7cad355}
.gr-zone.is-shape:not(.is-active){outline:none}
#view-grille .gr-zone.is-draft{background:#ffffff!important;border:1px dashed #9fb5c5!important;outline:none;}
#view-grille .gr-zone.is-draft.is-active{border:2px solid #188ac4!important;}
#gr-canvas-scroll{align-items:flex-start}
@media(max-width:980px){.gr-layout{grid-template-columns:1fr}.gr-panel{max-height:570px}}
.gr-compose-content{display:flex;flex-direction:column;min-width:0;min-height:0;padding-right:3px;gap:8px;overflow-y:auto;}
.gr-picker-guidance{background:#f4f8fa;border:1px solid #e0e8ec;border-radius:8px;padding:9px;color:#496577!important;font-size:11px!important;line-height:1.4}
.gr-selected-tools{border-top:1px solid #dce6e9;padding-top:10px;display:grid;margin-top:6px;margin:0;padding:8px;background:#f5fafc;border:1px solid #d8e9f0;border-radius:9px;gap:5px;}
.gr-selected-buttons .gr-btn{flex:1;font-size:11px;padding:6px 4px;}
.gr-compose-content textarea:disabled{background:#f7f7f7;cursor:not-allowed}
#view-grille .gr-unified-settings{gap:8px;padding-right:4px;overflow-y:auto;scrollbar-gutter:stable}
#view-grille .gr-unified-settings .gr-target-caption{font-weight:700;color:#23465d;margin:0;padding:0 0 6px;border-bottom:1px solid #dde6eb}
#view-grille .gr-ui-section{min-width:0;border:1px solid #dce5eb;border-radius:12px;padding:10px;margin:0;display:flex;flex-direction:column;gap:7px;background:#fff}
#view-grille fieldset.gr-ui-section{min-inline-size:0}
#view-grille .gr-ui-section legend{font-size:12px;font-weight:800;color:#183e60;padding:0 5px;text-decoration:underline;text-decoration-color:#edbb47;text-underline-offset:4px}
#view-grille .gr-ui-section header{display:flex;gap:10px;align-items:center;min-width:0}
#view-grille .gr-ui-section header strong{white-space:nowrap}
#view-grille .gr-ui-main header input{flex:1;min-width:70px!important}
#view-grille .gr-ui-muted{color:#63798a;font-size:10px;font-weight:600}
#view-grille .gr-ui-line,#view-grille .gr-ui-small-line{display:flex;align-items:end;gap:8px;flex-wrap:wrap;min-width:0}
#view-grille .gr-ui-line button{min-width:0}
#view-grille .gr-ui-line .gr-spacer{flex:1}
#view-grille .gr-ui-section label{font-size:11px;font-weight:700;gap:3px}
#view-grille .gr-ui-section label.gr-ui-check{flex-direction:row;align-items:center;gap:6px;white-space:nowrap}
#view-grille .gr-ui-section .gr-ui-check input{accent-color:#1591c7;width:16px;height:16px}
#view-grille .gr-ui-text-row{display:grid;grid-template-columns:minmax(110px,2fr) auto minmax(115px,1.1fr) 72px 47px;gap:8px;align-items:end}
#view-grille .gr-ui-text-row input[type=text]{width:100%}
#view-grille .gr-ui-number{display:flex;align-items:center;gap:4px;white-space:nowrap}
#view-grille .gr-ui-number input[type=number]{width:62px}
#view-grille #gr-font-family{width:100%}
#view-grille .gr-ui-crop{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:8px;align-items:end}
#view-grille .gr-ui-crop label{min-width:0}
#view-grille .gr-ui-crop input[type=range]{width:100%}
#view-grille .gr-ui-signs-layout{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(170px,1fr);gap:9px;align-items:start}
#view-grille .gr-ui-signs-layout #gr-sign-list{grid-template-columns:repeat(10,minmax(0,1fr));grid-auto-rows:31px;max-height:160px;gap:3px}
#view-grille .gr-ui-signs-layout #gr-sign-list button{height:31px;font-size:17px}
#view-grille .gr-ui-signs-layout #gr-sign-list svg{width:22px;height:22px}
#view-grille .gr-ui-sign-control{border:1px solid #e3e8eb;border-radius:10px;padding:9px;display:flex;flex-direction:column;gap:7px;min-width:0}
#view-grille .gr-ui-sign-control>strong{font-size:11px}
#view-grille .gr-ui-sign-control p{font-size:10px}
#view-grille .gr-ui-sign-params{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#view-grille .gr-ui-sign-params input[type=number]{width:100%}
#view-grille .gr-ui-sign-params label{min-width:0}
#view-grille .gr-ui-sign-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
#view-grille .gr-ui-sign-actions small{font-size:10px;color:#577080}
#view-grille .gr-ui-appearance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
#view-grille .gr-ui-appearance fieldset{min-width:0;gap:6px}
#view-grille .gr-ui-appearance label{font-size:10px}
#view-grille .gr-ui-appearance .gr-ui-small-line{gap:4px}
#view-grille .gr-ui-appearance .gr-btn{font-size:10px;padding:6px}
#view-grille .gr-ui-palette{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:24px}
#view-grille .gr-swatch{width:19px;height:19px;min-width:19px;border:1px solid #c9d5dc;border-radius:50%;background:var(--swatch);padding:0;cursor:pointer}
#view-grille .gr-swatch[aria-pressed=true]{outline:2px solid #1e83c0;outline-offset:1px}
#view-grille fieldset:disabled{background:#f5f7f8;border-color:#e3e8ec;opacity:.51}
#view-grille fieldset:disabled :is(input,button,select){cursor:not-allowed}
#view-grille .gr-is-disabled legend{color:#7a8a95}
#view-grille input:disabled,#view-grille button:disabled,#view-grille select:disabled{cursor:not-allowed}
#view-grille .gr-image-caption{pointer-events:none;position:absolute;left:0;right:0;bottom:3%;z-index:2;line-height:1.15;padding:0 3%;overflow-wrap:anywhere}
#view-grille .gr-annotation{display:grid;place-items:center;position:absolute;z-index:4;cursor:grab;touch-action:none;font-family:Arial,sans-serif;line-height:1;user-select:none;font-weight:700}
#view-grille .gr-annotation:active{cursor:grabbing}
@media(max-width:1380px){#view-grille .gr-ui-text-row{grid-template-columns:minmax(110px,2fr) auto minmax(110px,1fr) 75px;}
#view-grille .gr-ui-text-row>label:last-child{grid-column:4}}
@media(max-width:1180px){#view-grille .gr-ui-crop{grid-template-columns:repeat(2,minmax(0,1fr))}
#view-grille .gr-ui-appearance{grid-template-columns:repeat(2,minmax(0,1fr))}
#view-grille .gr-ui-signs-layout{grid-template-columns:1fr}}
@media(max-width:720px){#view-grille .gr-ui-text-row{grid-template-columns:repeat(2,minmax(0,1fr))}
#view-grille .gr-ui-text-row>label:last-child{grid-column:auto}
#view-grille .gr-ui-crop,#view-grille .gr-ui-appearance{grid-template-columns:1fr}}
#view-grille .gr-layout.is-collapsed .gr-panel{grid-template-columns:0 54px}
#view-grille .gr-panel-main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;padding:12px 11px;gap:10px}
#view-grille .gr-layout.is-collapsed .gr-panel-main{visibility:hidden;pointer-events:none;padding:0}
#view-grille .gr-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:10px;border-bottom:1px solid #e4e6e1;flex:none}
#view-grille .gr-panel-heading h2{font-size:15px;margin:0;color:#1c3853}
#view-grille .gr-collapse{font-size:24px;line-height:1;width:29px;height:29px;border:0;background:transparent;cursor:pointer;border-radius:7px;color:#1e3853}
#view-grille .gr-collapse:hover{background:#f4f5f3}
#view-grille .gr-settings-rail{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px 5px;border-left:1px solid #efcf89;background:#fff9ec;scrollbar-width:thin}
#view-grille .gr-settings-rail button{display:grid;place-items:center;flex:none;width:var(--ef-rail-button);height:var(--ef-rail-button);border:1px solid #dfad3b;background:#fff;border-radius:11px;font-family:inherit;font-size:22px;line-height:1;color:#27465d;cursor:pointer;padding:0}
#view-grille .gr-settings-rail button:hover{background:#fff1c6}
#view-grille .gr-settings-rail button[aria-pressed=true]{background:#f9c850;border-color:#dc9b16;color:#1d3852}
#view-grille .gr-settings-rail button:focus-visible{outline:2px solid #188ac4;outline-offset:1px}
#view-grille .gr-rail-divider{border-top:1px solid #deb863;width:30px;height:1px;margin:3px 0}
#view-grille #gr-page-controls,#view-grille #gr-help-controls{gap:14px}
#view-grille #gr-page-controls h3,#view-grille #gr-help-controls h3{font-size:13px;color:#2a5067;border-bottom:1px solid #e4e8e9;padding-bottom:7px}
#view-grille .gr-compose-content{padding:0 3px 3px 0;min-width:0;overflow-y:auto;gap:10px}
#view-grille .gr-compose-content h3{display:none}
#view-grille .gr-selected-buttons .gr-btn{padding:8px 4px}
#view-grille .gr-block-nav{display:flex;align-items:center;justify-content:center;gap:6px;flex:none;padding:2px}
#view-grille .gr-block-nav strong{font-size:11px;color:#36536b;min-width:100px;text-align:center}
#view-grille .gr-block-nav .gr-btn{padding:5px 10px;font-size:18px}
#view-grille .gr-frame-rail{min-height:77px;max-height:88px;}
#view-grille .gr-frame-thumb{flex-basis:65px;width:65px;height:61px}
#view-grille .gr-frame-thumb img{max-height:31px}
#view-grille #gr-canvas-scroll{padding:12px}
@media(max-width:730px){
  #view-grille{height:auto;min-height:calc(100dvh - 20px)}
  #view-grille .gr-layout,#view-grille .gr-layout.is-collapsed{display:flex;flex-direction:column}
  #view-grille .gr-canvas-shell{height:65dvh;min-height:420px}
  #view-grille .gr-panel{min-height:300px;max-height:65dvh;grid-template-columns:minmax(0,1fr) 54px}
  #view-grille .gr-layout.is-collapsed .gr-panel{min-height:60px;max-height:64px;grid-template-columns:0 1fr}
  #view-grille .gr-layout.is-collapsed .gr-settings-rail{flex-direction:row;overflow-x:auto}
  #view-grille .gr-settings-rail{padding:7px 4px}
}
#view-grille .gr-canvas-top>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#view-grille .gr-canvas-top>span{flex:none;font-size:11px;max-width:45%;text-align:right}

#view-grille .gr-add-types[hidden],#view-grille #gr-compose[hidden]{display:none!important}
#view-grille .gr-add-types>p{font-size:12px;color:#536a7a;margin:0}
#view-grille .gr-add-type-grid button:hover,#view-grille .gr-add-type-grid button:focus-visible{border-color:#d8a52d;background:#fff4d3;outline-offset:2px}

#view-grille .gr-selected-tools{margin-bottom:3px}
/* Trois colonnes permanentes : bibliothèque/ajout, feuille, paramètres. */
#view-grille .gr-layout{grid-template-columns:var(--ef-library-width) minmax(0,1fr) var(--ef-parameters-width);gap:var(--ef-activity-gap);}
#view-grille .gr-layout.is-collapsed{grid-template-columns:var(--ef-library-width) minmax(0,1fr) var(--ef-rail-width);}
#view-grille .gr-content-panel #gr-layout-controls{flex:0 0 auto;overflow:visible;padding:10px 10px 0;}
#view-grille .gr-content-panel #gr-layout-controls .gr-add-types{display:flex;}
#view-grille .gr-content-panel #gr-compose{padding:10px;}


#view-grille .gr-content-panel{grid-column:1;grid-row:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:white;border:1px solid #dfe7e8;border-radius:var(--ef-activity-radius)}
#view-grille .gr-content-panel[hidden]{display:none!important}
#view-grille .gr-canvas-shell{grid-row:1;grid-column:2}
#view-grille .gr-panel{padding:0;gap:0;display:grid;grid-template-columns:minmax(0,1fr) var(--ef-rail-width);border-radius:var(--ef-activity-radius);min-width:0;min-height:0;background:#fff;grid-row:1;grid-column:3;}
#view-grille .gr-content-heading{padding:11px 12px;border-bottom:1px solid #e4e8e8;display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}
#view-grille .gr-content-heading h2{font-size:15px;margin:0;color:#1c3853}
#view-grille #gr-content-close{background:white;border:1px solid #d5e0e5;border-radius:8px;width:28px;height:28px;color:#2c4a60;font-size:20px;line-height:1;cursor:pointer}
#view-grille #gr-content-close:hover{background:#f1f6f9}
#view-grille .gr-content-panel #gr-compose{min-height:0;display:flex;flex-direction:column;flex:1;padding:12px;overflow:hidden}
#view-grille .gr-content-panel #gr-compose[hidden]{display:none!important}
#view-grille .gr-content-panel .gr-compose-content{overflow:auto;min-height:0;flex:1}
#view-grille .gr-content-panel .gr-selected-buttons{display:flex;gap:4px}
#view-grille .gr-content-panel .gr-selected-buttons .gr-btn{white-space:normal;padding:7px 2px;font-size:10px}
@media(max-width:800px){
  #view-grille .gr-layout,#view-grille .gr-layout.is-collapsed{display:flex;flex-direction:column}
  #view-grille .gr-content-panel{order:1;min-height:260px;max-height:65dvh}
  #view-grille .gr-canvas-shell{order:0;min-height:400px}
  #view-grille .gr-panel{order:2}
}
#view-grille .gr-add-type-grid button[aria-pressed=true]{background:#fff0be;border-color:#dc9f25}
#view-grille .gr-canvas-scroll{display:block;overflow:auto;min-height:0;overscroll-behavior:contain;padding:12px;background:#e9edee;scrollbar-width:thin}
#view-grille .gr-paper-viewport{position:relative;flex:none;margin:0 auto;min-width:0;min-height:0}
#view-grille .gr-paper{position:absolute;left:0;top:0;flex:none;transform-origin:top left;width:auto;max-width:none;touch-action:none;overflow:visible}
#view-grille .gr-canvas-scroll.is-hand,#view-grille .gr-canvas-scroll.is-space-held{cursor:grab}
#view-grille .gr-canvas-scroll.is-hand .gr-grid-inner,#view-grille .gr-canvas-scroll.is-hand .gr-zone,#view-grille .gr-canvas-scroll.is-space-held .gr-grid-inner,#view-grille .gr-canvas-scroll.is-space-held .gr-zone{cursor:grab}
#view-grille .gr-canvas-scroll.is-dragging,#view-grille .gr-canvas-scroll.is-dragging *{cursor:grabbing!important;user-select:none!important}
#view-grille .gr-add-types{display:flex;flex-direction:column;min-width:0;gap:4px;}
#view-grille .gr-add-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
#view-grille .gr-gallery [draggable=true]{cursor:grab;}
#view-grille .gr-gallery [draggable=true]:active{cursor:grabbing;}
#view-grille .gr-add-type-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #d1e0e6;background:#fff;color:#1e4057;font-family:inherit;font-weight:700;cursor:pointer;min-height:57px;gap:2px;padding:6px 3px;border-radius:9px;font-size:10px;}
#view-grille .gr-add-type-grid button span{line-height:1.1;color:#2d607b;font-size:21px;}
#view-grille .gr-add-type-grid button[data-gr-add-type="shape"] span svg{display:block;width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:980px){#view-grille .gr-add-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
#view-grille .gr-layout.is-editing .gr-canvas-shell,#view-grille .gr-layout.is-editing .gr-panel,#view-grille .gr-layout.is-editing .gr-content-panel{grid-row:1}
#view-grille .gr-layout.is-editing .gr-individual-dock{grid-row:2;grid-column:1/-1}
#view-grille .gr-individual-dock{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff;border:1px solid #d9e3e8;border-radius:13px;overflow:hidden}
#view-grille .gr-dock-head{display:flex;align-items:center;gap:12px;padding:6px 12px;border-bottom:1px solid #dfe7eb;flex:none;background:#fffef9}
#view-grille .gr-dock-head strong{font-size:13px}
#view-grille #gr-dock-label{font-size:11px;color:#5a7180;flex:1}
#view-grille #gr-dock-close{padding:4px 10px}
#view-grille #gr-deposit-controls{display:flex;flex-direction:column;align-items:stretch;gap:8px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 12px 14px;scrollbar-gutter:auto}
#view-grille #gr-deposit-controls[hidden]{display:none!important}
#view-grille #gr-deposit-controls .gr-block-nav{justify-content:flex-start}
#view-grille #gr-deposit-controls .gr-target-caption{display:none}
#view-grille #gr-deposit-controls .gr-ui-main{flex:0 0 auto}
#view-grille #gr-deposit-controls .gr-ui-section{padding:9px 11px;gap:7px}
#view-grille #gr-deposit-controls .gr-ui-section header{flex-wrap:nowrap}
#view-grille #gr-deposit-controls .gr-ui-main header input{flex:1;width:auto;min-width:80px}
#view-grille #gr-deposit-controls .gr-ui-text-row{display:grid;grid-template-columns:minmax(200px,2fr) auto minmax(125px,1fr) 90px 55px;gap:8px;align-items:end}
#view-grille #gr-deposit-controls .gr-ui-text-row .gr-ui-grow{grid-column:auto}
#view-grille #gr-deposit-controls .gr-ui-small-line{gap:8px}
#view-grille #gr-deposit-controls .gr-ui-crop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:8px}
#view-grille #gr-deposit-controls .gr-ui-signs-layout{display:grid;grid-template-columns:minmax(360px,1fr) minmax(270px,1fr);gap:12px}
#view-grille #gr-deposit-controls .gr-ui-signs-layout #gr-sign-list{grid-template-columns:repeat(10,minmax(0,1fr));max-height:140px}
#view-grille #gr-deposit-controls .gr-ui-appearance{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
#view-grille #gr-deposit-controls .gr-ui-line .gr-btn{white-space:nowrap}
#view-grille #gr-deposit-controls .gr-ui-section:disabled{opacity:.48}
#view-grille #gr-deposit-controls .gr-ui-main #gr-image-tools{border-color:#e8e9ea;background:#fafbfd}
#view-grille #gr-deposit-controls .gr-ui-sign-params{grid-template-columns:repeat(4,minmax(0,1fr))}
#view-grille .gr-object.gr-sign .gr-sign-scaled{display:flex;align-items:center;justify-content:center;flex:none;max-width:none;max-height:none;line-height:1;transform-origin:center;pointer-events:none}
#view-grille .gr-object.gr-sign .gr-sign-scaled svg{width:100%;height:100%;max-height:none;max-width:none;overflow:visible}
#view-grille .gr-annotation svg{width:100%;height:100%;max-width:none;max-height:none;}
@media(max-width:1060px){
 #view-grille #gr-deposit-controls .gr-ui-text-row{grid-template-columns:minmax(160px,2fr) auto minmax(110px,1fr) 75px 46px}
 #view-grille #gr-deposit-controls .gr-ui-signs-layout{grid-template-columns:1fr}
 #view-grille #gr-deposit-controls .gr-ui-appearance{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:730px){
 #view-grille .gr-layout.is-editing{display:flex;flex-direction:column}
 #view-grille .gr-individual-dock{min-height:340px;max-height:55dvh;order:4}
 #view-grille #gr-deposit-controls .gr-ui-text-row{display:flex;flex-wrap:wrap}
 #view-grille #gr-deposit-controls .gr-ui-crop{grid-template-columns:1fr 1fr}
 #view-grille #gr-deposit-controls .gr-ui-appearance{grid-template-columns:1fr}
}
#view-grille .gr-layout.is-editing{grid-template-rows:minmax(180px,1fr) clamp(245px,42vh,430px);grid-template-columns:var(--ef-library-width) minmax(0,1fr) 54px;}
#view-grille .gr-layout.is-editing .gr-panel-main{visibility:hidden;pointer-events:none;padding:0}
#view-grille .gr-layout.is-editing .gr-content-panel{display:flex!important;grid-column:1}
#view-grille .gr-layout.is-editing .gr-canvas-shell{grid-column:2}
#view-grille .gr-layout.is-editing .gr-panel{grid-template-columns:0 54px;grid-column:3;}
#view-grille .gr-grid-inner{background-image:linear-gradient(to right,transparent calc(100% - 1.2px),#b7d0df calc(100% - 1.2px)),linear-gradient(to bottom,transparent calc(100% - 1.2px),#b7d0df calc(100% - 1.2px))}
.gr-object.gr-sign .gr-sign-scaled{display:flex;align-items:center;justify-content:center;flex:none;line-height:1;transform-origin:center;pointer-events:none}
.gr-object.gr-sign .gr-sign-scaled svg{width:100%;height:100%;max-width:none;max-height:none;overflow:visible}
.gr-object .gr-annotation{position:absolute;display:grid;place-items:center;font-family:Arial,sans-serif;line-height:1;user-select:none}
.gr-object .gr-annotation svg{display:block;width:100%;height:100%;max-width:none;max-height:none}
@media(max-height:760px) and (min-width:731px){#view-grille .gr-layout.is-editing{grid-template-rows:minmax(190px,1fr) 220px}}

/* Rotation : véritable palette flottante superposée à l'espace gris, pas une rangée supplémentaire.
   L'impression reste entièrement indépendante de cette UI. */
#view-grille .gr-canvas-shell{position:relative}
#view-grille .gr-rotation-dock{position:absolute;z-index:25;top:54px;left:auto;right:12px;
 width:188px;max-width:calc(100% - 20px);padding:9px 7px;border:1px solid #decfab;
 border-radius:11px;background:#fffdf7;box-shadow:0 5px 20px #21384930;
 pointer-events:auto;box-sizing:border-box}
#view-grille .gr-rotation-dock[hidden]{display:none!important}
#view-grille .gr-zone.is-moving{cursor:grabbing!important}
@media print{#view-grille .gr-rotation-dock{display:none!important}}
/* Les notifications de la grille ne doivent jamais masquer les commandes en bas
   de l'éditeur, même lors d'une erreur de chargement de la bibliothèque. */
#view-grille #gr-status.is-error{top:42px;bottom:auto;pointer-events:none}

/* Sélecteur EXISTANT de la bibliothèque, simplement accueilli dans le canonique.
   Un seul #gr-gallery, un seul choix de ressources et un seul moteur de remplacement. */
#view-grille .ef-canonical-holder .pin-panel{position:relative}
#view-grille .gr-individual-picker{
 position:absolute;z-index:12;inset:48px 8px 12px auto;width:min(370px,96%);
 display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;
 padding:10px;background:#fff;border:1px solid #cadbe6;border-radius:12px;
 box-shadow:0 8px 28px rgba(25,50,72,.19)
}
#view-grille .gr-individual-picker[hidden]{display:none!important}
#view-grille .gr-individual-picker-header{display:flex;justify-content:space-between;align-items:center;gap:10px}
#view-grille .gr-individual-picker-header strong{font-size:14px}
#view-grille .gr-individual-picker-header button{width:30px;height:30px;border:1px solid #d3dfe6;background:#fff;border-radius:8px;cursor:pointer;font-size:20px}
#view-grille .gr-individual-picker-hint{font-size:12px;color:#506981;margin:6px 0 9px}
#view-grille .gr-individual-picker-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:2px}
#view-grille .gr-individual-picker-scroll .gr-add-types{flex:none}
#view-grille .gr-individual-picker-scroll .gr-image-library{min-height:0;flex:none}
#view-grille .gr-individual-picker-scroll .gr-gallery{max-height:none}
#view-grille .gr-individual-picker-scroll textarea{width:100%;box-sizing:border-box}
@media(max-width:880px){#view-grille .gr-individual-picker{inset:44px 6px 6px 6px;width:auto}}

/* Editeur individuel grille : raccourcir la surface d'aperçu, sans changer
   ni le cadre réel ni le moteur commun. La barre de taille reste dans la zone
   visible sous l'image, y compris lorsque l'iframe est de faible hauteur. */
#view-grille .ef-canonical-holder .pin-preview-panel{display:flex;flex-direction:column;justify-content:flex-start;min-height:0}
#view-grille .ef-canonical-holder .pin-sheet-space{
 flex:0 1 auto;
 height:clamp(180px,43dvh,440px);
 max-height:calc(100% - 94px);
 min-height:0;
 overflow:hidden;
}
/* Taille RÉELLE du contenu, différente du zoom de visualisation.
   Le contrôle suit la surface raccourcie, jamais l'espace de défilement. */
#view-grille .gr-content-size-controls{display:flex;align-items:center;gap:7px;min-width:0;flex:0 0 auto;padding:6px 5px 2px;color:#21445e;font-size:11px;font-weight:700}
#view-grille .gr-content-size-controls[hidden]{display:none!important}
#view-grille .gr-content-size-controls label{white-space:nowrap}
#view-grille .gr-content-size-controls input[type=range]{flex:1;min-width:20px;accent-color:#188fbe;cursor:pointer}
#view-grille .gr-content-size-controls button{border:1px solid #d1dfe6;background:#fff;border-radius:7px;min-width:28px;height:29px;cursor:pointer;color:#244560;font-size:13px;font-weight:750}
#view-grille .gr-content-size-controls button:disabled{opacity:.4;cursor:default}
#view-grille .gr-content-size-percent{min-width:42px;text-align:right;font-variant-numeric:tabular-nums}
#view-grille .gr-content-size-reset{font-size:10px!important;padding:0 5px}
@media(max-width:1100px){#view-grille .gr-content-size-controls{flex-wrap:wrap}#view-grille .gr-content-size-controls input[type=range]{flex-basis:40%}}
