
.btn.disabled {pointer-events: auto; cursor: not-allowed !important;}
a {text-decoration: none;}
a:hover {text-decoration: underline;}
.effet_bt_zoom {-webkit-transition: all 0.5s; transition: all 0.5s; opacity:0.9; cursor: pointer;}
.effet_bt_zoom:hover {opacity:1; transform: scale(1.2);}
.zoomer {transform: scale(1.5); transition: transform 0.5s;}
.boite_message {position: fixed; top:50%; left:50%; width: 400px; transform: translate(-50%, -50%); font-family: Arial, Helvetica, sans-serif; font-size:18px; opacity: 1; text-align: center; z-index:9999;}
.calque_ecran {position:fixed; top:0; bottom:0; left:0; width: 100%; background-color: rgba(0, 0, 0, 0.6); z-index:9998;}
.visib_cache {visibility: hidden !important;}
.lien_accueil {cursor: pointer; text-decoration: underline;}
.lien_accueil:hover {text-decoration: none; color:red;}

.list-checked {list-style: none; padding: 0; margin: 0;}
.list-checked li {position: relative; padding-left: 2.6em; margin:0.6em 0;}
.list-checked li::before {content: "\f26e"; font-family: "bootstrap-icons"; font-size: 2.4em; position: absolute; left: 0; top: -0.5em;}

.col_img {width:40px;}
.tablo_outils th {width: 200px;}
.tablo_outils .titre_outil {font-size: 22px; font-weight: bold; text-align: center; color: #FFF;}
.tablo_outils td {font-size: 14px;}
.tablo_outils td, .tablo_outils th {vertical-align: middle;}
.tablo_outils ul {margin:0; padding:0 0 0 20px;}
.tablo_outils mark {background-color: yellow; padding: 0 2px; border-radius: 2px;}
.premier_plan {z-index:11000;}

.accueil_content h2 {color:#206C71; text-shadow: 2px 2px 5px #C18080;}
#ac_documentation {margin-bottom:1em;}
#ac_documentation h3 {background:#B3D4F3; cursor:pointer; margin:20px 0 10px 0; padding:2px 10px;}
#ac_documentation h3:hover {background:#88BCEC;}
#ac_documentation h4 {color:#6C48B4; font-weight:bold; font-size:18px; margin:15px 0 10px 0;}
#ac_documentation h4:before {content:url(img/icone_doigt_16.png)}
#ac_documentation p {padding:0; margin:0 0 5px 0;}
#ac_documentation {padding:0.5em 1em; margin-top:1em;}
#contenu_doc {background-color: #FFF; border-radius: 0.5em; padding:0.1em 0.5em 0.5em 0.5em;}

#ac_accueil .pave_accueil {border-radius: 10px 10px 0 0;}
#ac_accueil .pave_accueil_1 h4 {border-radius: 10px 10px 0 0; background-color: #1A4756; color:#FFF;}
#ac_accueil .pave_accueil_1 > div {height: 100%; border-radius: 10px; background-color: #F2DED7;}
#ac_accueil .pave_accueil_1 ul {margin:0; list-style: none; padding:0 1em 0.5em 1em; font-size: 1.2em;}
#ac_accueil .pave_accueil_2 h4 {border-radius: 10px 10px 0 0; background-color: #1A4756; color:#FFF;}
#ac_accueil .pave_accueil_2 > div {height: 100%; border-radius: 10px; background-color: #D2856A; color:#FFF;}
#ac_accueil .pave_accueil_2 ul {margin:0; list-style: none; padding:0 1em 0.5em 1em; font-size: 1.2em;}
#ac_accueil .pave_accueil_2 ul li {cursor: pointer;}
#ac_accueil .pave_accueil_2 ul li:hover {color: red;}
#ac_accueil .pave_accueil_2 img {width: 32px;}

/* Outils */
#outils_modal-header {height:48px; position: fixed; width: 100%; top: 0; left: 0; z-index: 1010; overflow-x: auto; overflow-y: hidden;}
#outils_modal-header .largeur_min {min-width: 840px;}
.navbar_bas #outils_modal-header {top: auto; bottom: 0;}
#outils_modal-body {height: calc(100vh - 48px); margin-top: 48px;  margin-bottom: 0;}
.navbar_bas #outils_modal-body {margin-top: 0; margin-bottom: 48px;}
#outils_ecran_activites {height: calc(100vh - 48px); position: relative;}
#outils_heure, #outils_alarme_cloche {font-size: 1.4em; cursor: pointer;}

/* Rideau */
#rideau {position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 1); z-index: 1050; display: none; touch-action: none;}
.rideau_handle {position: absolute; background-color: #fff; opacity: 0.6; width: 20px; height: 20px; z-index: 1060;}
.rideau_handle-top { top: -10px; left: 50%; transform: translateX(-50%); cursor: ns-resize; }
.rideau_handle-bottom { bottom: -10px; left: 50%; transform: translateX(-50%); cursor: ns-resize; }
.rideau_handle-left { left: -10px; top: 50%; transform: translateY(-50%); cursor: ew-resize; }
.rideau_handle-right { right: -10px; top: 50%; transform: translateY(-50%); cursor: ew-resize; }
.rideau-controls {position: absolute; top: 10px; right: 10px; z-index: 1070;}/* Boutons dans le coin supérieur droit du rideau */
.navbar_bas .rideau-controls {bottom: 10px; top:auto;}/* Boutons dans le coin inférieur droit du rideau */
.rideau-controls button {margin-left: 5px;}

/* Lucarne */
#lucarne_controls {position: fixed; top: 0; right:0; left:0; z-index: 2000; background-color: #000; height: 48px; text-align: right;}
.navbar_bas #lucarne_controls {bottom: 0; top:auto;}
#lucarne_hole {position: absolute; width: 80px; height: 80px; border: 2px dashed white; cursor: move; z-index: 1501; box-sizing: border-box;}
.lucarne_round {border-radius: 50%;}
.lucarne_resize-handle {position: absolute; width: 16px; height: 16px; background: white; right: -8px; bottom: -8px; cursor: se-resize;}
#lucarne_mask {position: absolute; top: 0; left: 0; z-index: 1499; pointer-events: none;}

/* Grille dynamique */
#grille_contenu {position: absolute; left: 0; right: 0; top: 0; height:calc(100vh - 48px); overflow: hidden; display: grid; border: 1px solid #ccc; z-index:999;}
.grille_cell {border: 2px solid #aaa; box-sizing: border-box; touch-action: none; display: flex; align-items: flex-start; justify-content: center; font-weight: bold; text-align: center; padding-top: 1px; font-size: 1.3em;}
.grille_cell:hover {outline: 1px dashed rgba(0, 0, 0, 0.2);}
.grille_color-picker {width: 30px; height: 30px; margin: 3px; border-radius: 5px; border: 1px solid #ccc; cursor: pointer;}

/* Widget box, étiquette et image */
#box-container {position: relative; margin-top:0; height: calc(100vh - 48px); overflow: hidden;}
.txt-widget {position: absolute; user-select: none; touch-action: none; padding: 0.5rem 1.5rem 0.5rem 0.5rem; font-weight: bold; text-align: center;}
.txt-widget.txt-blanc {background-color: #FFF; border: 1px solid #ccc;}
.txt-widget.txt-transparent {background-color: transparent; border: none;}
.txt-widget.t_p {font-size:14px; min-width: 50px; min-height: 40px;}
.txt-widget.t_m {font-size:20px; min-width: 70px; min-height: 46px;}
.txt-widget.t_g {font-size:30px; min-width: 100px; min-height: 56px;}
.txt-widget .edit-btn {font-size:16px;}
.txt-widget.masque .edit-btn {display:none!important;}
.txt-widget.txt-resize::after {content: ""; position: absolute; right: 0; bottom: 0; width: 16px; height: 16px; background: rgba(0, 0, 0, 0.2); cursor: se-resize; pointer-events: auto; z-index: 5;}
.txt_cursor-move {cursor: move !important;}
.txt_cursor-se-resize {cursor: se-resize !important;}
.txt-widget .edit-btn {position: absolute; top: -4px; right: 1px; cursor: pointer; color: #888; z-index: 10;}
.txt-widget[contenteditable="true"] {outline: 2px dashed #007bff;}
.box-widget {position: absolute; background: #fff; border: 1px solid #ccc; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); overflow: hidden; user-select: none; box-sizing: border-box;}
.box-header {background: #0d6efd; color: white; padding: 0.2rem; display: flex; justify-content: space-between; align-items: center;}
.box-title { padding-left:0.3rem; flex-grow: 1;}
.box-move .box-title {cursor: move;}
.box-controls button {background: transparent; border: none; color: white; font-size: 1rem; cursor: pointer;}
.box-content {
  padding: 0.5rem;
  background: #f8f9fa;
  overflow: auto; /* Active les ascenseurs si nécessaire */
  height: calc(100% - 32px); /* Hauteur restante sous le header (~32px de hauteur de .box-header) */
  box-sizing: border-box; /* Inclut le padding dans le calcul de la hauteur, évite que le padding ne fasse déborder la box */
  position: relative;
}
.box-resize-handle {position: absolute; right: 0; bottom: 0; width: 15px; height: 15px; background: #0d6efd; cursor: se-resize;}
.txt-widget .edit-btn {display: none;}/* cacher par défaut */
.txt-widget.txt-resize::after {display: none;}
.txt-widget:hover .edit-btn, .txt-widget:active .edit-btn {display: block;}/* afficher quand survol ou pression */
.txt-widget:hover.txt-resize::after, .txt-widget:active.txt-resize::after {display: block;}

#depl_images_apercu img {cursor: pointer;}


/* Calque */
.navbar_bas .calque_navbar {bottom: 0; top:auto;}
.calque_navbar button, .calque_navbar input {cursor: pointer;}
.calque_body {position: relative; margin-top: 0; height: 100vh; overflow: hidden; z-index:3000;}
canvas#outils_calque {position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: auto; /* Active le canvas uniquement */ z-index: 3010;}
#calque_cursor_circle {position: fixed; pointer-events: none; border: 1px solid #000; border-radius: 50%; transform: translate(-50%, -50%); z-index: 3020; display: none;}
.calque_navbar {position: fixed; top: 0; left: 0; right: 0; height: 48px; z-index: 3030; background-color: #333; color: white; display: flex; align-items: center; gap: 8px; padding: 0 8px;}

/* Onglets des modales d'activité */
.tab_content {background-color: #FFF; padding:0.5em; margin-bottom:0; margin-top:0;}
.tab_content h4 {color:blue; padding-top:20px; margin-top:0;}
.tab_content h4.premier {padding-top:10px;}
.li_bouton_li li {list-style:none; text-align:center; margin-right:10px; cursor:pointer; display:inline-block; transition: all 0.3s ease-in-out; -webkit-transition: all 0.3s ease-in-out; -moz-transition: all 0.3s ease-in-out; -o-transition: all 0.3s ease-in-out; -ms-transition: all 0.3s ease-in-out; filter: contrast(90%); -webkit-filter: contrast(90%); -moz-filter: contrast(90%); -o-filter: contrast(90%); -ms-filter: contrast(90%);}
.li_bouton_li li:hover {transform: scale(1.2); -webkit-transform: scale(1.2); -moz-transform: scale(1.2); -o-transform: scale(1.2); filter: contrast(100%); -webkit-filter: contrast(100%); -moz-filter: contrast(100%); -o-filter: contrast(100%); -ms-filter: contrast(100%);}
.li_bouton_li li > img {width: 70px; height: 70px;}
.bloc_vig_fond {text-align: center; width: 130px; display: inline-block; margin:5px;}
.bloc_vig_fond > img {margin:0; padding:0; width: 128px; height: auto; -webkit-transition: all 0.5s; transition: all 0.5s; opacity:0.9; cursor: pointer; border-radius: 5px;}
.bloc_vig_fond > img:hover {opacity:1; transform: scale(1.1);}
.bloc_vig_fond > figure {margin:0; padding:0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size:13px;}

/* Couleurs */
.c_red {background-color: red; color:#FFF;}
.c_deepPink {background-color: deepPink; color:#FFF;}
.c_orange {background-color: orange; color:#000;}
.c_yellow {background-color: yellow; color:#000;}
.c_purple {background-color: purple; color:#FFF;}
.c_green {background-color: green; color:#FFF;}
.c_blue {background-color: blue; color:#FFF;}
.c_brown {background-color: brown; color:#FFF;}
.c_white {background-color: white; color:#000;}
.c_gray {background-color: gray; color:#FFF;}
.c_black {background-color: black; color:#FFF;}
.c_transparent {background-color: transparent; color:#000;}
.coul_etiq, .coul_masque {width: 24px; height: 24px; border: 1px solid grey; border-radius: 50%; display: inline-block;}

/* Images uploadées avec initImageSelectorZone(zoneElement) VERSION 2 */
.zone-images {border: 2px dashed #999; padding: 10px; margin-bottom: 10px; border-radius: 10px; transition: background 0.3s; text-align: center;}
.zone-images.dragover {background: #eef;}
.apercu {display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 15px;}
.image-container {position: relative; display: inline-block;}
.image-container img {height: 64px; object-fit: cover;}
.image-container .close-btn {position: absolute; top: -6px; right: -6px; background: red; color: white; border: none; border-radius: 50%; width: 24px; height: 24px; font-size: 16px; display: flex; align-items: center; justify-content: center; line-height: 1!important; padding: 0; cursor: pointer; box-shadow: 0 0 2px rgba(0,0,0,0.4); font-family: Arial, sans-serif; font-size: 16px;}
.zone-images .apercu img {max-height: 80px; width: auto; object-fit: cover; margin: 5px; border: 1px solid #ccc; border-radius: 4px;}
.inputs {display: none;}

/* Galerie d'images (carousel) */
.carousel-control-prev-icon, .carousel-control-next-icon {background-color: rgba(0, 0, 0, 0.5); border-radius: 50%;}
.carousel-inner, .carousel-item {height: 100%; /* prend la hauteur de la box parente */}
.carousel-item img {height: 100%;   /* image remplit la hauteur de la box */ width: auto;    /* largeur varie selon le ratio */ margin: 0 auto; /* centre horizontalement l’image */ display: block;}
.carousel-control-prev-icon, .carousel-control-next-icon { background-color: rgba(0, 0, 0, 0.5); border-radius: 50%; background-size: 60% 60%; width: 48px;  height: 48px;}

/* Lancer de dés */
.de-container {display: inline-block; margin:5px;}
.de {height: 90px!important; transition: transform 1s ease; transform-style: preserve-3d;}
.de img {height: 90px; backface-visibility: hidden;}
/*#action_lesdes .de, #image_lesdes .de {border:1px solid grey; border-radius: 5px;}*/

/* Nombre au hasard */
#nbalea_chiffre_montrer {font-size: 50px;}
#nbalea_lettre_montrer {font-size: 30px;}

/* Mot au hasard */
#mot_hasard_gagnant {font-size: 2rem; font-family: monospace; letter-spacing: 0.05em; min-height: 2em; border-radius: 10px; background-color: #FFF;}
#mot_hasard_reste {border-radius: 5px; font-size: 1.3em; border: 1px solid grey; cursor: help;}

/* Répartition dans des groupes */
.repart_col {background-color: #FFF; border:solid 1px grey; border-radius: 10px; padding: 0; min-height:300px;}
.repart_col li {display: inline-block; list-style: none;}
.repart_col h5 {text-align: center; margin:0; background-color: blue; color: #fff; border-radius: 10px 10px 0 0; padding: 3px 0; font-weight: bold;}
.repart_conteneur_items {padding:5px}
li.repart_item {background-color: #FFF; border:1px solid blue; padding:0 3px; cursor: pointer; margin:3px; border-radius: 5px;}
img.repart_item {cursor: pointer; margin:3px; border-radius: 5px;}
.repart_item.on {outline: solid 2px red}
#repart_groupes_a_ajouter {max-width: 500px; margin:auto;}
.repart_conteneur_items.taille_1 img {height:40px;}
.repart_conteneur_items.taille_2 img {height:60px;}
.repart_conteneur_items.taille_3 img {height:70px;}
.repart_conteneur_items.taille_4 img {height:80px;}
.repart_conteneur_items.taille_5 img {height:90px;}
.repart_conteneur_items.taille_6 img {height:100px;}
.repart_conteneur_items.taille_1 {font-size:0.8em;}
.repart_conteneur_items.taille_2 {font-size:1em;}
.repart_conteneur_items.taille_3 {font-size:1.2em;}
.repart_conteneur_items.taille_4 {font-size:1.4em;}
.repart_conteneur_items.taille_5 {font-size:1.6em;}
.repart_conteneur_items.taille_6 {font-size:1.8em;}
#box_repartir_groupe .box-content {padding-right:0; padding-left:0;}

/* Minuterie */
.timer-wrapper {text-align: center; width: 100%;}
.time-display {font-weight: bold; margin: 4px 0 8px; padding: 0; line-height: 1; width: 100%; text-align: center; white-space: nowrap; overflow: hidden;}
.timer-buttons {display: flex; justify-content: center; flex-wrap: wrap; gap: 10px;}
.time-inputs {display: flex; justify-content: center; gap: 10px; margin-bottom: 10px;}
.time-inputs input[type="number"] {width: 60px; padding: 4px; text-align: center; border-radius: 5px;}
.timer-progress.progress {margin: 10px 0;}

/* Horloge analogique */
.aiguille {transform-origin: center; transform-box: fill-box;}

/* Alarme */
#outils_alarme_medias {border: 1px solid grey; border-radius: 10px; padding: 10px; opacity:0.5;}
#outils_alarme_medias.active {opacity:1;}
#outils_alarme_choix_media img {width: 40px; height: 40px; outline: 3px solid transparent; margin:2px 5px; padding:2px; border-radius: 5px;}
#outils_alarme_choix_media img.on {outline: 3px solid red; background-color: yellow;}

/* Chronomètre redimensionnable */
.chrono-wrapper {text-align: center; width: 100%;}
.chrono {font-weight: bold; margin-bottom: 12px; width: 100%; text-align: center; white-space: nowrap; overflow: hidden;}
.chrono-buttons {display: flex; justify-content: center; flex-wrap: wrap; gap: 10px;}

/* Chronomètre multifonction */
#chp_header {background-color: #0DCAF0;}
#chp_temps {font-size: 30px; text-align: center; font-weight: bold;}
#chp_ms {font-size: 16px;}
#chrono_multi .chp_tour {font-weight: bold; color: blue;}
#chp_inter {font-size:18px;}
#chp_inter .chp_inter_ms {font-size:14px;}
#chp_ctn_inter {overflow: auto; height: 146px; background-color: #FFF;}
#chp_input_step {width: 60px;}
@keyframes flash-yellow {
  0%   { background-color: yellow; }
  100% { background-color: #0dcaf0; } /* couleur de .bg-info */
}
.flash-anim {animation: flash-yellow 1s ease;}

/* Métronome */
#box_metronome .box-content {padding-left:0; padding-right:0;}
.metro_flash {width: 55px; height: 55px; border: 1px solid grey; border-radius: 50%; margin: auto; background-color: #FFF;}
#metro_temps > div {text-align: center;}

/* Mini-agenda */
#calendar-container .day-cell {padding: 0.2rem; border-radius: 0.25rem;}
#calendar-container .day-cell:hover {background-color: #e0e0e0;}
#calendar-container #importFile {display: none;}
#calendar-container .text-capitalize {text-align: center;}

/* Sonomètre */
#sono_barre {position: relative; height: 30px}
#sono_seuil {position:absolute; height: 30px; left:0; right:0; appearance: none; background: transparent;}
#sono_seuil::-webkit-slider-runnable-track {background: linear-gradient(to right, transparent 0%,transparent 100%);}
#sono_seuil::-moz-range-track {background: linear-gradient(to right, transparent 0%,transparent 100%);}
#sono_seuil::-webkit-slider-thumb {appearance: none; background: #0075FF; border:none; width: 6px; height: 30px; cursor: move;}
#sono_seuil::-moz-range-thumb {appearance: none; background: #0075FF; border:none; width: 6px; height: 30px; cursor: move;}
#sono_niveau_db {position:absolute; height: 30px; left:0; right:0;}
#sono_param > div {font-size: 22px;}
#sono_param i {cursor: pointer;}
#sono_duree_sous_seuil {color: grey; font-weight: bold; cursor: help;}
#sono_duree_record {color: blue; font-weight: bold;}

/* Modalités de travail */
.modalite_w_conteneur {position:relative; margin: auto; text-align: center;}
.box-mod-w .box-content {padding:0; text-align: center;}
.mod_aides img {width: 32px; height: 32px; padding:2px; border:1px solid grey; border-radius: 5px; opacity: 0.2; cursor: pointer; background-color: #FFF;}
.mod_aides img.on {opacity: 1;}
.mod_travail img {width: 160px;}
.mod_bt_changer_travail {position:absolute; bottom:5px; right:10px; font-size:22px; cursor: pointer;}
.mod_bt_changer_couleur {position:absolute; bottom:5px; left:10px; font-size:22px; cursor: pointer;}

/* Rétroactions */
#retro_body {position: relative; height: calc(100vh - 48px); overflow: hidden; transition: background-color 0.5s ease;}
#retro_body.on {background-color: rgba(0, 0, 0, 0.5);}
#retro_limage {position:absolute; top:50%; left:50%; transform: translate(-50%, -50%); animation: fadeIn 0.5s ease-out;}
#retro_limage.fade-out {animation: fadeOut 0.5s ease-in forwards;}
#retro_conteneur {margin: auto; text-align: center; padding:5px; text-align: center;}
#retro_choix img {width: 36px; height: 36px; border: 1px solid grey; border-radius: 5px; padding:2px; background-color: #FFF; margin:2px; cursor: pointer;}
#retro_choix img.on {outline: 2px solid red; background-color: yellow;}
@keyframes fadeIn {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0.8); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Feux multicolores */
.feux_conteneur {position:relative; margin: auto; text-align: center; text-align: center; width: 70px;}
.feux_feu {border: solid 1px grey; border-radius: 30px; background-color: #FFF;}
.feux_cercle {width: 50px; height: 50px; margin:5px auto; border:1px solid grey; border-radius: 50%; opacity: 0.2; cursor: pointer; position:relative;}
.feux_cercle.on {opacity: 1;}
.feux_cercle.on::after {content: ""; position: absolute; top: 5px; left: 5px; width: 40px; height: 40px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%); pointer-events: none;}
.feux_bt_changer_couleur {font-size:22px; cursor: pointer;}
.feux_rouge {background-color: red;}
.feux_rouge.on {box-shadow: 0 0 10px red;}
.feux_orange {background-color: orange;}
.feux_orange.on {box-shadow: 0 0 10px orange;}
.feux_vert {background-color: limegreen;}
.feux_vert.on {box-shadow: 0 0 10px limegreen;}
.feux_bleu {background-color: blue;}
.feux_bleu.on {box-shadow: 0 0 10px blue;}

/* Compteur de points */
.cptp_boite {width: 160px; text-align: center; border: 1px solid grey; border-radius: 10px; padding-bottom:5px; display: inline-block; margin: 3px;}
.cptp_header {overflow: hidden; white-space: nowrap; height: 36px; font-size: 20px; font-weight: bold; border-radius: 10px 10px 0 0; display: flex; align-items: center; justify-content: center;}
.cptp_boite:nth-child(1) .cptp_header {background-color: SeaGreen; color:#FFF;}
.cptp_boite:nth-child(2) .cptp_header {background-color: blue; color:#FFF;}
.cptp_boite:nth-child(3) .cptp_header {background-color: purple; color:#FFF;}
.cptp_boite:nth-child(4) .cptp_header {background-color: red; color:#FFF;}
.cptp_boite:nth-child(5) .cptp_header {background-color: gold; color:#FFF;}
.cptp_boite:nth-child(6) .cptp_header {background-color: DarkSlateGray; color:#FFF;}
.cptp_points {font-size: 50px; font-weight: bold;}
.cptp_footer .btn {font-size:20px; font-weight: bold;}

/* Prompteur */
#box_prompteur .box-content {padding:0;}
#prompteur {display: flex; flex-direction: column; height: 100%;}
#promToolbar {display: flex; flex-wrap: wrap; align-items: center; padding: 5px; background: #333; color: white;}
#promToolbar > * {margin: 5px;}
#promText {flex: 1; position: relative; width: 100%; height: 100%; background-color: black; color: white; overflow: hidden; padding: 0; display: flex; justify-content: center; align-items: start;}
#promTextWrapper {position: relative; top: 0; left: 0; right: 0; padding: 20px; font-size: 24px; line-height: 1.5; white-space: pre-wrap; will-change: transform; outline: none; width: 100%;}
#promSpeed, #promFontSize, #promWidth {width: 80px;}
.btn-light-static {cursor: default; pointer-events: none;}
.btn-light-static:hover, .btn-light-static:focus {background-color: #f8f9fa !important; color: #000 !important; box-shadow: none !important;}

/* Lecture en synthèse vocale */
body {font-family: sans-serif; background: #f8f9fa;}
#sv_saisie_texte {flex: 1; overflow-y: auto;}
#sv_header_saisie, #sv_header_lecture {height:40px; flex-shrink: 0;}
#sv_saisie, #sv_lecture {display: flex; flex-direction: column; height: 100%;}
#sv_texte_lu {font-size: 1.2rem; line-height: 1.6; background: white; padding: 0.5rem; flex: 1; overflow-y: auto;}
.highlight {background-color: yellow;}
#sv_bt_play:disabled, #sv_bt_reset:disabled {opacity: 0.5; cursor: not-allowed;}

/* Lecteur de PDF */
.pdf_lecteur {width: 100%; height: calc(100% - 10px)}
.box-iframe .box-content {padding:0;}

/* Lecteur audio */
.lecteur_audio audio {width: 100%;}
.lecteur_audio .nom_sans_ext {margin-bottom:5px;}
.lecteur_audio .box-title {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}

/* Lecteur audio */
.lecteur_video video {width: 100%; height: auto;}
.lecteur_video .nom_sans_ext {margin-bottom:5px;}
.lecteur_video .box-title {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}

/* Code d'intégration */
.code_integration .box-content {padding:0;}
.code_integration .box-content iframe {width: 100% !important; height: 100% !important; border: none; display: block;}

/* Lien qrcode */
.conteneur_lien {text-align: center;}
.lien_qrcode {width: 150px; height: 150px; margin:10px auto;}
.lecteur_lien .box-title {white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}

/* Répertoire de liens */
#box_lienfavori {min-width: 320px;}
#replien_conteneur {margin: auto;}
#replien_header {padding-bottom:10px; border-bottom:1px solid grey; position:relative;}
#replien_body {padding-top:10px;}
#replien_edition {position:absolute; top:0; left:0; right:0; padding: 10px;}
.replien_couleur {border: 1px solid black; width: 24px; height: 24px; border-radius: 50%; margin:2px; display: inline-block; outline:3px solid transparent; cursor: pointer;}
.replien_couleur.on {outline:3px solid red;}

/* Recherche */
#box_recherche .box-content {padding:5px;}
#rechercher_conteneur {margin: auto;}
#box_recherche, #box_recherche .box-content {overflow: visible !important;}
#box_recherche .dropdown-item {font-size: 12px;}

/* Pictogrammes de Déplacer des objets */
#picto_content img {width: 48px; height:48px; margin: 4px; border:1px solid grey; border-radius:5px; cursor: pointer; -webkit-transition: all 0.5s; transition: all 0.5s; opacity:0.8; cursor: pointer;}
#picto_content img:hover {opacity:1; transform: scale(1.1); opacity:1;}

/* Parcours */
.parc_parcours {border:1px solid grey; padding:5px; margin:5px; display: inline-flex; flex-wrap: wrap; width: fit-content;}
.parc_titre {width: 150px; height: 34px; font-size: 20px; overflow: hidden; font-weight: bold; white-space: nowrap; display: flex; align-items: center; justify-content: center;}
.parc_case {width: 34px; height: 34px; outline: 1px solid grey; position:relative; background-color: #FFF; margin:2px 0;}
.parc_fond {font-size:18px; font-weight: bold; color: grey; position:absolute; top:50%; left:50%; transform: translate(-50%, -50%); cursor: pointer;}
.parc_pion {width: 24px; height: 24px; outline: 4px solid red; position:absolute; top:50%; left:50%; transform: translate(-50%, -50%); border-radius: 5px;}
.parc_parcours:nth-child(1) {background-color: SeaGreen; color:#FFF;}
.parc_parcours:nth-child(2) {background-color: blue; color:#FFF;}
.parc_parcours:nth-child(3) {background-color: purple; color:#FFF;}
.parc_parcours:nth-child(4) {background-color: red; color:#FFF;}
.parc_parcours:nth-child(5) {background-color: gold; color:#FFF;}
.parc_parcours:nth-child(6) {background-color: DarkSlateGray; color:#FFF;}

/* Jex de dames et d'échec */
.jeux_plateau .edit-btn {display:none!important;}

/* Plateau de jeu */
.plateau_pion_mini {width: 40px; height: 40px;}
.depl_pion {background-color: transparent;}
.depl_pion .edit-btn {display:none!important;}
#conteneur_plateau {border: 1px solid grey; margin: auto; padding:5px; border-radius: 10px;}
.choix_case_speciale {display: inline-block; margin:2px; width:60px; text-align: center;}
.choix_case_speciale img {width:32px; display:block; margin:auto; cursor: help;}
#cases_speciales input {padding:0.2em;}
#apercu_jeu img {width: 100%; height: auto; background: transparent;}
#conteneur_plateau .input-group {width: 220px;}

/* Modèles d'écriture */
#modele_zone_ecriture_bloc {border: 1px solid grey; border-radius: 5px; padding: 10px; margin-top: 15px; background-color: #FFF; position: relative; /* pour placer le canvas au-dessus */}
#modele_zone_ecriture, .zone_supplementaire {white-space: nowrap; overflow: hidden;}
#modele_taille_trait {width: 80px;}
#modele_canvas {position: absolute; top: 0; left: 0; pointer-events: auto; /* nécessaire pour dessiner */}

/* Polices d'écriture */

/* Police Ecolier Lignes */
@font-face {
  font-family: 'ecolier_lignes_courtregular';
  src: url('font-ecolier_cp/ecl_cour-webfont.woff2') format('woff2'),
    url('font-ecolier_cp/ecl_cour-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

/* Police Ecolier CP ligne */
@font-face {
  font-family:'Ecolier_CP';
  src: url('font-ecolier_cp/Ecolier_CP.eot');
	src: url('font-ecolier_cp/Ecolier_CP.eot?#iefix') format('embedded-opentype'),
		url('font-ecolier_cp/Ecolier_CP.woff2') format('woff2'),
		url('font-ecolier_cp/Ecolier_CP.woff') format('woff'),
		url('font-ecolier_cp/Ecolier_CP.svg#Ecolier_CP') format('svg');
    font-style: normal;
    font-stretch: normal;
    unicode-range: U+0020-00FC;
}
/* Police Ecolier CP ligne pointillés */
@font-face {
  font-family: 'ecolier_cp_pointillsregular';
  src: url('font-ecolier_cp_pointilles/ec_cp_pt-webfont.woff2') format('woff2'),
     url('font-ecolier_cp_pointilles/ec_cp_pt-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
/* Police Ecolier ligne pointillés */
@font-face {
  font-family: 'ecolier_lignes_pointillsRg';
  src: url('font-ecolier_lignes_pointilles/eclcopt-webfont.woff2') format('woff2'),
    url('font-ecolier_lignes_pointilles/eclcopt-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
/* Police Maternellecolor trace cursive */
@font-face {
  font-family: 'maternellecolor_trace_cursiRg';
  src: url('font-mc_trace_cursive/maternellecolor_trace_cursive4-webfont.woff2') format('woff2'),
    url('font-mc_trace_cursive/maternellecolor_trace_cursive4-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
/* Police Script Ecole 2 générée pour le Web avec https://www.fontsquirrel.com */
@font-face {
  font-family: 'script_ecole_2regular';
  src: url('font-scriptecole2/scriptecole2-webfont.eot');
  src: url('font-scriptecole2/scriptecole2-webfont.eot?#iefix') format('embedded-opentype'),
    url('font-scriptecole2/scriptecole2-webfont.woff2') format('woff2'),
    url('font-scriptecole2/scriptecole2-webfont.woff') format('woff'),
    url('font-scriptecole2/scriptecole2-webfont.ttf') format('truetype'),
    url('font-scriptecole2/scriptecole2-webfont.svg#script_ecole_2regular') format('svg');
  font-weight: normal;
  font-style: normal;
}
/* Police Penmanship Print Regular */
@font-face {
    font-family: 'penmanship_printregular';
    src: url('font-penmanship/penmp___-webfont.woff2') format('woff2'),
         url('font-penmanship/penmp___-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
/* Police Print Dashed Regular */
@font-face {
  font-family: 'print_dashedregular';
  src: url('font-prind/prind___-webfont.woff2') format('woff2'),
    url('font-prind/prind___-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'maternellecolor_creuseregular';
  src: url('font-mc_creuse/maternellecolor_creuse-webfont.woff2') format('woff2'),
    url('font-mc_creuse/maternellecolor_creuse-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
/* Police Cursif Beaumal */
@font-face {
  font-family: 'cursifregular';
  src: url('font-cursif/cursif-webfont.eot');
  src: url('font-cursif/cursif-webfont.eot?#iefix') format('embedded-opentype'),
  url('font-cursif/cursif-webfont.woff2') format('woff2'),
  url('font-cursif/cursif-webfont.woff') format('woff'),
  url('font-cursif/cursif-webfont.ttf') format('truetype'),
  url('font-cursif/cursif-webfont.svg#cursifregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'maternellecolor_creusesansRg';
  src: url('font-mc_creusesans/maternellecolor_creusesans-webfont.woff2') format('woff2'),
    url('font-mc_creusesans/maternellecolor_creusesans-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'cursive_flcheregular';
  src: url('font-mc_cursive_flechee/cursive_flechee-webfont.woff2') format('woff2'),
    url('font-mc_cursive_flechee/cursive_flechee-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'maternellecolor_graphismeRg';
  src: url('font-mc_graphisme/maternellecolor_graphisme-webfont.woff2') format('woff2'),
    url('font-mc_graphisme/maternellecolor_graphisme-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'maternellecolorgraphisme2Rg';
  src: url('font-mc_graphisme2/maternellecolor_graphisme_2-webfont.woff2') format('woff2'),
    url('font-mc_graphisme2/maternellecolor_graphisme_2-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

/* Police Ecriture A */
@font-face {
  font-family: 'eca_EcritureA-Romain';
  src: url('font-ecriturea/EcritureA-Romain.woff2') format('woff2'),
    url('font-ecriturea/EcritureA-Romain.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'eca_EcritureA-Romain-Ligne';
  src: url('font-ecriturea/EcritureA-Romain-Ligne.woff2') format('woff2'),
    url('font-ecriturea/EcritureA-Romain-Ligne.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'eca_EcritureA-Romain-Orne';
  src: url('font-ecriturea/EcritureA-Romain-Orne.woff2') format('woff2'),
    url('font-ecriturea/EcritureA-Romain-Orne.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'eca_EcritureA-Romain-Orne-Ligne';
  src: url('font-ecriturea/EcritureA-Romain-Orne-Ligne.woff2') format('woff2'),
    url('font-ecriturea/EcritureA-Romain-Orne-Ligne.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

.p_ecolier_ligne {font-family:ecolier_lignes_courtregular; line-height:240%;}
.p_ecolier_ligne_pointille {font-family:ecolier_lignes_pointillsRg; line-height:240%;}
.p_ecolier_cp_ligne {font-family:Ecolier_CP;}
.p_ecolier_cp_ligne_pointille {font-family:ecolier_cp_pointillsregular;}
.p_script {font-family: script_ecole_2regular;}
.p_penmanship {font-family:penmanship_printregular;}
.p_dashed {font-family:print_dashedregular;}
.p_mc_trace_cursive {font-family:maternellecolor_trace_cursiRg;}
.p_mc_creuse {font-family:maternellecolor_creuseregular; line-height:240%;}
.p_mc_creusesans {font-family:maternellecolor_creusesansRg; line-height:240%;}
.p_mc_cursive_flechee {font-family:cursive_flcheregular; line-height:260%;}
.p_mc_graphisme {font-family:maternellecolor_graphismeRg; line-height:240%;}
.p_mc_graphisme2 {font-family:maternellecolorgraphisme2Rg; line-height:240%;}
.p_cursif {font-family: 'cursifregular'; padding:0.6em 0; line-height:240%;}
.p_eca_romain {font-family:eca_EcritureA-Romain; line-height:100%;}
.p_eca_romain_ligne {font-family:eca_EcritureA-Romain-Ligne; line-height:100%;}
.p_eca_romain_orne {font-family:eca_EcritureA-Romain-Orne; line-height:100%;}
.p_eca_romain_orne_ligne {font-family:eca_EcritureA-Romain-Orne-Ligne; line-height:100%;}


/* Gestion du bouton de retour en haut de page */
#returnOnTop {background: url('img/return_on_top.png') no-repeat; bottom: 1%; cursor: pointer; display: none; filter: alpha(opacity = 50); height: 48px; opacity: 0.5; position: fixed; right: 1%; width: 48px;}
#returnOnTop:hover { filter: alpha(opacity = 100); opacity: 1;}

/* Gestion de l'impression  */
.impression_slt {display:none;} 
@media print {
  .no_imprim {display:none!important;}
  #returnOnTop {display:none!important;}
  .container {max-width: 100%;}
}
