/* Tri des histoires : feuille de styles autonome, limitée à ce support.
   Source unique de composition pour édition, activité en ligne et impression. */
#view-tri:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;font-size:12px}
#view-tri [hidden]{display:none!important}
#view-tri button,#view-tri input,#view-tri select{font:inherit}
#view-tri h1{font-size:19px;letter-spacing:-.035em;white-space:nowrap}
#view-tri h2{font-size:15px;margin:0;letter-spacing:-.03em}
#view-tri h3{font-size:13px;margin:0}
#view-tri .tri-muted{color:#758397;font-size:11px;line-height:1.4}
.tri-start .memory-search{display:block;max-width:420px;margin:0 0 13px}

.tri-context{font-size:11px;color:#4e6c7d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


.tri-button,.tri-icon{border:1px solid #d9e1e6;background:#fff;border-radius:10px;color:#173b5a;font-weight:700;cursor:pointer;display:inline-grid;place-items:center;line-height:1.2;min-height:34px;padding:8px 10px;white-space:nowrap}
.tri-icon{width:36px;height:35px;font-size:20px;padding:0}
.tri-primary{background:#ffca24;border-color:#edab00;color:#123550}
.tri-danger{color:#a53239;border-color:#f0c3c6}
.tri-button:hover,.tri-icon:hover{background:#f2f6f8}
.tri-primary:hover{background:#f3b912}
#view-tri button:focus-visible{outline:3px solid #ebaf12;outline-offset:2px}
.tri-workspace{min-height:0;min-width:0;flex:1;display:grid;grid-template-columns:var(--ef-left-current,var(--ef-library-width)) minmax(0,1fr) var(--ef-right-current,var(--ef-parameters-width));gap:var(--ef-activity-gap)}
.tri-library,.tri-preview,.tri-settings{min-height:0;min-width:0;display:flex;flex-direction:column;border:1px solid #eaddc8;background:#fff;border-radius:var(--ef-activity-radius);padding:13px;overflow:hidden}
.tri-library{overflow:hidden}
.tri-library>.tri-library-items{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}
.tri-settings{display:grid;grid-template-columns:minmax(0,1fr) var(--ef-rail-width);grid-template-rows:auto minmax(0,1fr);column-gap:6px}
.tri-settings>.tri-pane-heading{grid-column:1;grid-row:1}
.tri-settings-rail{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff9ed;border:1px solid #e3a518;border-radius:14px;padding:6px 3px}
.tri-rail-button{width:34px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:1px solid #e6d5b6;border-radius:10px;background:#fff;color:#163954;font-size:20px;cursor:pointer}
.tri-rail-button[aria-pressed=true]{background:#ffc923;border-color:#efad00}
.tri-rail-button:hover{background:#fff0c8}
.tri-pane-heading{display:flex;align-items:center;min-height:30px;margin-bottom:9px}



#tri-search,.tri-settings input[type=text],.tri-settings select{box-sizing:border-box;border:1px solid #e2dcd1;border-radius:11px;padding:10px 11px;background:white;max-width:100%;min-width:0;width:100%;color:#17324f;outline-offset:1px}
#tri-search{margin-bottom:8px}
.tri-resource.is-added{border:2px solid #218454;background:#eff9f2;position:relative}
.tri-resource .tri-resource-check{position:absolute;top:3px;right:4px;width:21px;height:21px;border-radius:50%;background:#218454;color:#fff;font-size:15px;line-height:21px;font-weight:800;text-align:center;pointer-events:none;display:block}
.tri-upload{display:block;margin-top:8px;padding:11px 8px;text-align:center;color:#3b617b;font-size:11px;font-weight:700;cursor:pointer;border:1px dashed #a3bace;border-radius:11px}
.tri-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;margin-bottom:8px}
.tri-page-navigation{display:flex;align-items:center;gap:5px;margin-left:auto;white-space:nowrap;font-size:11px;color:#24435b}
.tri-page-navigation button{border:1px solid #d5e1ea;background:#fff;border-radius:8px;cursor:pointer;padding:4px 9px;font-size:17px;min-width:29px}
.tri-page-navigation button:disabled{opacity:.38;cursor:default}
.tri-preview-scroll{display:flex;flex:1;min-height:0;overflow:auto;background:#f1f4f3;border-radius:14px;padding:clamp(10px,2.2vw,27px)}
.tri-board{margin:0 auto;width:100%;max-width:900px;min-width:0}
.tri-activity{background:#fff;border:1px solid #e4e5e5;border-radius:12px;padding:clamp(10px,1.5vw,18px);display:flex;flex-direction:column;gap:12px;min-height:350px}
.tri-instruction{border:1px dashed #d8dfdf;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;min-height:56px;text-align:center;cursor:pointer;padding:6px 10px}
.tri-instruction:hover,.tri-category-head:hover{border-color:#dfae1e}
.tri-instruction.is-selected,.tri-category-head.is-selected{outline:2px solid #e7a316;outline-offset:-2px}
.tri-visual{min-width:0;display:inline-flex;max-width:100%;min-height:18px;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;text-align:center;color:#123850;font-size:13px;font-weight:700;overflow-wrap:anywhere}
.tri-placeholder{color:#82929c;font-weight:400;font-size:11px}
/* Consigne uniquement textuelle (jamais d'image ou de signe). */
.tri-instruction .tri-visual,.tri-print-instruction .tri-visual,.tri-detail-instruction .tri-visual{width:100%}
.tri-instruction-text{display:block;width:100%;max-width:100%;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;line-height:1.2;text-align:center}
.tri-category-grid{display:grid;grid-template-columns:repeat(var(--tri-cols,2),minmax(0,1fr));gap:9px}
.tri-category{min-width:0;border:1px solid #d9e3e6;border-radius:9px;overflow:hidden;display:flex;flex-direction:column;min-height:175px;background:#fff}
.tri-category-head{width:100%;min-width:0;height:82px;min-height:0;max-height:82px;flex:0 0 82px;box-sizing:border-box;padding:7px 6px;display:grid;place-items:center;border:0;border-bottom:1px solid #e0e4e8;background:var(--tri-category-color,#fff);cursor:pointer;overflow:hidden}
.tri-category-space{flex:1;min-height:96px;padding:7px;display:flex;align-content:flex-start;align-items:flex-start;flex-wrap:wrap;gap:5px;cursor:pointer}
.tri-drop-hint{font-size:10px;color:#99a5b1;text-align:center;margin:auto;max-width:95%}
.tri-category.is-drop-target{outline:2px solid #e5ae18;outline-offset:2px}
.tri-reserve{min-width:0;background:#f8fafc;border:1px solid #e7edf1;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.tri-reserve-heading{color:#34526b;font-size:12px}
.tri-items{display:flex;flex-wrap:wrap;gap:8px;min-height:84px;align-items:flex-start}
.tri-item{width:80px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px;border-radius:9px;border:1px solid #cbd8df;background:#fff;position:relative;cursor:pointer;overflow:hidden}
.tri-item img{height:60px;width:100%;object-fit:contain}
.tri-item.is-selected{outline:2px solid #e7b126;border-color:#e7b126}
.tri-item-label{font-size:10px;line-height:1.25;text-align:center;max-width:100%;overflow-wrap:anywhere}
.tri-status{font-size:11px;color:#4c7085;min-height:17px;margin:8px 3px 0}
.tri-status.is-error{color:#ab353b}
.tri-settings-scroll{grid-column:1;grid-row:2;flex:1;min-height:0;overflow:auto;padding-right:2px;display:flex;flex-direction:column;gap:14px}
.tri-general-settings{border-bottom:1px solid #e9e2d8;padding-bottom:12px;display:grid;gap:9px}
.tri-general-settings label,.tri-field{display:flex;flex-direction:column;gap:4px;color:#50677c;font-weight:700;font-size:11px}
.tri-general-settings label.tri-check{flex-direction:row;align-items:center;gap:8px;padding:1px 0}
.tri-general-settings input,.tri-general-settings select{margin-top:2px}
.tri-check,.tri-print-settings label{display:flex;gap:8px;align-items:center;color:#4a6375;font-size:11px;font-weight:700}
.tri-layout-settings,.tri-print-settings,.tri-online-settings{display:grid;align-content:start;gap:14px;padding-bottom:10px}
.tri-online{min-height:0;flex:1;display:flex;flex-direction:column;gap:8px}
.tri-online-top{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #ecdfcc;border-radius:12px;padding:9px 12px}
.tri-online-top strong{flex:1;font-size:13px}
.tri-online-board{flex:1;min-height:0;overflow:auto;background:#f1f4f3;border-radius:15px;padding:16px;display:flex}
.tri-online-board .tri-activity{width:min(1100px,100%);margin:auto;min-height:70%;padding:17px}
.tri-online-board .tri-category{min-height:225px}
.tri-online-board .tri-category-space{min-height:155px}
.tri-online-board .tri-item{cursor:grab}
.tri-online-board .tri-item:hover{border-color:#e8bd51}
/* Le rendu imprimé est défini sur .tri-print-* et utilisé TEL QUEL dans l'aperçu et à l'impression. */
.tri-print-page{flex:0 0 auto;box-sizing:border-box;width:190mm;height:277mm;border:1px solid #d5dadb;color:#153653;overflow:hidden}
.tri-print-page.tri-print-landscape{width:277mm;height:190mm}
.tri-print-body{display:flex;flex-direction:column;gap:5mm;height:100%;min-height:0}
.tri-print-instruction{display:flex;justify-content:center;align-items:center;min-height:20mm;max-height:30mm;text-align:center;flex:0 0 auto}
.tri-print-instruction .tri-visual{font-size:14pt}
.tri-print-instruction img{max-height:20mm}
.tri-print-categories{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--tri-cols,2),minmax(0,1fr));gap:3mm}
.tri-print-category{min-width:0;display:flex;flex-direction:column;border:1px solid #adb9c3;min-height:0}
.tri-print-category .tri-category-head{height:23mm;min-height:0;max-height:23mm;flex:0 0 23mm;border-bottom:1px solid #bac7cc;cursor:default}
.tri-print-category .tri-category-head .tri-visual{font-size:11pt}
.tri-print-category .tri-category-head .tri-visual img{max-height:15mm}
.tri-print-space{flex:1 1 0;display:flex;flex-wrap:wrap;align-content:flex-start;gap:2mm;padding:3mm;min-height:0;overflow:hidden}
.tri-print-space .tri-item{width:23mm;height:23mm;min-height:0}
.tri-print-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:33mm;gap:3mm;align-content:start}
.tri-print-tiles .tri-item{width:100%;height:100%;min-height:0;border:1px dashed #aaa;border-radius:0}
.tri-print-tiles .tri-item img{height:23mm}
.tri-print-landscape .tri-print-tiles{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:29mm}
.tri-print-landscape .tri-print-tiles .tri-item img{height:20mm}
.tri-print-help{font-size:11pt;margin:0 0 3mm}
@media(max-width:1100px){
.tri-workspace{grid-template-columns:var(--ef-left-current,var(--ef-library-width)) minmax(0,1fr) var(--ef-right-current,var(--ef-parameters-width));gap:var(--ef-activity-gap)}
.tri-library,.tri-settings,.tri-preview{padding:9px}
.tri-activity{gap:7px}
.tri-item{width:64px;min-height:68px}
.tri-item img{height:47px}
}
@media(max-width:800px){
#view-tri:not([hidden]){overflow:auto}
.tri-workspace{display:flex;flex-direction:column;min-height:unset;flex:0 0 auto}
.tri-preview{order:0}
.tri-library{order:1}
.tri-settings{order:2}
.tri-preview-scroll{max-height:600px;min-height:390px}
.tri-settings-scroll{max-height:600px}


}
@media print{
  @page{size:A4 landscape;margin:10mm}
  body:has(#print-stage.tri-print-active){background:#fff!important;height:auto!important;overflow:visible!important}
  body:has(#print-stage.tri-print-active)>main{display:none!important}
  #print-stage.tri-print-active{display:block!important;margin:0!important;width:auto!important;padding:0!important}
  #print-stage.tri-print-active .tri-print-page{width:190mm!important;height:277mm!important;padding:var(--ef-page-padding-tri,8mm)!important;border:none!important;break-after:page;page-break-after:always;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  #print-stage.tri-print-active .tri-print-page.tri-print-landscape{width:277mm!important;height:190mm!important}
  #print-stage.tri-print-active .tri-print-page:last-child{break-after:auto;page-break-after:auto}
}
.tri-online-board .tri-category-space:focus-visible{outline:3px solid #e8ae19;outline-offset:-3px}
/* Les signes, formes et textes sont composés uniquement par les couches CAA.
   Les anciens sélecteurs tri-sign-visual/tri-visual-figure ne sont plus utilisés. */
/* Aperçus du moteur individuel canonique. Plus aucun second film/navigation dans Tri. */
.tri-detail-stage{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.tri-detail-stage .tri-category{width:100%;min-height:0;height:min(100%,420px);border-radius:11px}
.tri-detail-stage .tri-category-head{height:122px;min-height:0;max-height:122px;flex:0 0 122px}
.tri-detail-stage .tri-category-head .tri-visual{font-size:15px}
.tri-detail-stage .tri-category-head .tri-visual img{max-width:90%;max-height:100px}
.tri-detail-stage .tri-category-space{min-height:0;cursor:default}
.tri-detail-instruction{background:#fff;width:100%;min-height:130px;border:1px dashed #d8dfdf;border-radius:11px;padding:16px;display:grid;place-items:center;text-align:center}
.tri-detail-instruction .tri-visual{font-size:17px}
.tri-detail-item{width:100%;display:grid;place-items:center}
.tri-detail-item .tri-item{width:min(100%,230px);height:230px;min-height:0;cursor:default}
.tri-detail-item .tri-item img{height:175px}
/* Réserve en ligne et zone Hors catégorie de préparation restent deux espaces distincts. */
/* La feuille de création suit la même orientation physique que la feuille imprimée. */
.tri-editor-stage{width:100%;display:flex;align-items:flex-start;gap:12px;min-width:0}
.tri-editor-stage>.tri-editor-sheet{flex:1 1 0;width:0}
.tri-editor-stage>.tri-unassigned{flex:0 0 clamp(110px,24%,170px);position:sticky;top:8px;min-height:140px;max-height:min(75vh,780px);overflow-y:auto}
.tri-editor-sheet{box-sizing:border-box;width:100%;aspect-ratio:var(--tri-format-ratio,210/297);display:flex;flex-direction:column;min-height:0;padding:20px 18px;background:white;box-shadow:0 2px 14px #bdc8cb40;overflow:hidden}
.tri-editor-sheet.is-landscape{aspect-ratio:var(--tri-format-ratio,297/210)}
.tri-editor-sheet .tri-board-layout{flex:1;min-height:0}
.tri-editor-sheet .tri-activity{flex:1;min-height:0}
.tri-editor-sheet .tri-category-grid{flex:1;min-height:0}
.tri-board-layout{width:100%;min-width:0;display:flex;flex-direction:column;gap:10px}
.tri-board-layout .tri-activity{min-height:260px}
/* Feuille de préparation : uniquement les catégories, avec les cartes dedans. */
.tri-editor-sheet .tri-category-space{min-height:0;min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(76px,100%),1fr));grid-auto-rows:min-content;align-content:start;align-items:start;justify-content:stretch;gap:7px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;}
.tri-editor-sheet .tri-category-space .tri-item{width:100%;min-width:0;min-height:79px;box-sizing:border-box;}
.tri-editor-sheet .tri-category-space .tri-drop-hint{grid-column:1/-1;margin:auto;padding:15px 4px;font-size:10px;}
.tri-editor-sheet .tri-category-space .ef-caa-layers{max-width:100%;}
.tri-unassigned{border:1px dashed #ddbd67;border-radius:9px;padding:8px;display:flex;flex-direction:column;gap:6px;background:#fffaf0;cursor:pointer;min-width:0}
.tri-unassigned.is-sort-target{outline:3px solid #2386bd;outline-offset:-3px;background:#fff4d9}
.tri-unassigned.is-drop-target{outline:3px solid #e7ae17;outline-offset:-3px}
.tri-unassigned-hint{color:#7c7770;font-size:11px;line-height:1.4}
.tri-column-colors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tri-column-color-field{min-width:0}
.tri-column-color-field input[type=color]{cursor:pointer}
.tri-unassigned-heading{font-size:10px;color:#5f5a45;}
.tri-unassigned-items{display:flex;flex-wrap:wrap;gap:7px;}
.tri-unassigned-items .tri-item{width:75px;}
.tri-online-board .tri-board-layout{width:min(1100px,100%);margin:auto}
.tri-online-board .tri-activity{width:100%;min-height:330px}
.tri-online-board .tri-items>.tri-item{flex-basis:95px}
/* Règle 14 : ciblage au clic, actions communes depuis la zone sélectionnée. */
#view-tri .tri-category,#view-tri .tri-direct-instruction-wrap{position:relative}
#view-tri .tri-direct-instruction-wrap>.tri-instruction{width:100%}
#view-tri .tri-category-head.is-selected,#view-tri .tri-instruction.is-selected,#view-tri .tri-item.is-selected{outline:2px solid #2785bd}

/* Surfaces CAA uniques : une en-tête = une surface, pas deux colonnes
   rivales. La taille des signes configurés dans CAA n'est pas modifiée. */
.tri-category-head .tri-visual{width:100%;height:100%;min-height:0;max-width:100%;display:block;overflow:hidden}
.tri-category-head .tri-visual>.ef-caa-layers{width:100%;height:100%;max-width:100%;min-height:0;min-width:0}
.tri-category-head .ef-caa-layer-image{max-height:55%;width:min(90px,100%);max-width:90px;margin:0 auto;flex:1 1 0}
.tri-category-head .ef-caa-layer-text{width:100%;min-width:0;max-height:calc(100% - 2px);overflow:hidden;overflow-wrap:anywhere;word-break:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.tri-detail-stage .tri-category-head .ef-caa-layer-image{max-height:60%}
.tri-detail-stage .tri-category-head .ef-caa-layer-text{max-height:calc(100% - 2px);-webkit-line-clamp:3}
.tri-category-head .ef-caa-text-only .ef-caa-layer-text{max-height:100%}
.tri-instruction .ef-caa-layers,.tri-detail-instruction .ef-caa-layers,.tri-print-instruction .ef-caa-layers{width:100%;height:auto;min-height:30px}
.tri-instruction .ef-caa-layer-text,.tri-detail-instruction .ef-caa-layer-text,.tri-print-instruction .ef-caa-layer-text{max-height:none;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}
.tri-item>.ef-caa-layers{height:60px;max-width:100%;flex:0 0 60px}
@media print{.tri-print-tiles .tri-item>.ef-caa-layers{height:23mm;flex-basis:23mm}.tri-print-landscape .tri-print-tiles .tri-item>.ef-caa-layers{height:20mm;flex-basis:20mm}}

/* Tri direct depuis la colonne en édition, sans changer la feuille enfant. */
#view-tri .tri-category-space.is-sort-target{outline:3px solid #2386bd;outline-offset:-3px;box-shadow:inset 0 0 0 1px #2386bd}
#view-tri .tri-editor-dropzone:hover{box-shadow:inset 0 0 0 1px #aad5eb}
#view-tri .tri-category-space.is-sort-target:hover{box-shadow:inset 0 0 0 2px #2386bd}
#view-tri .tri-editor-dropzone:focus-visible{outline:3px solid #e7af17;outline-offset:-3px}

/* Tri : fond de chaque colonne conservé dans l’éditeur, le jeu et la feuille papier. */
.tri-print-excluded{flex:0 0 auto;min-height:27mm;max-height:36mm;border:1px dashed #b7c5d1;padding:2mm 3mm;display:flex;flex-direction:column;gap:2mm;background:#fff}
.tri-print-excluded>strong{font-size:10pt;color:#284961}
.tri-print-excluded-items{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:2mm;overflow:hidden}
.tri-print-excluded-items .tri-item{width:23mm;height:23mm;min-height:0}
@media(max-width:650px){.tri-editor-stage{flex-direction:column;align-items:stretch}.tri-editor-stage>.tri-editor-sheet{width:100%;flex:auto}.tri-editor-stage>.tri-unassigned{position:static;flex:auto;min-height:90px;max-height:190px}}
