* { box-sizing: border-box; } .selectors>* { margin: 10px 0; } .selectors:disabled { opacity: 0.5; } #validate_selectors { margin: 15px 0; } .no-display { display: none !important; } /* === Gestion de la timeline === */ #tl_date { visibility: hidden; width: 0px; height: 0px; position: absolute; left: 15%; } .infos { position: relative; width: fit-content; display: flex; justify-content: space-evenly; align-content: center; } #datestr { cursor: pointer; background-color: white; border: 1px #444 solid; border-radius: 5px; padding: 5px; min-width: 100px; display: inline-block; min-height: 20px; } #tl_slider { width: 90%; cursor: grab; /* visibility: hidden; */ } #datestr, #time { width: fit-content; } .ui-slider-handle.tl_handle { background: none; width: 25px; height: 25px; visibility: visible; background-position: top; background-size: cover; border: none; top: -180%; cursor: grab; } #l_handle { background-image: url(../icons/l_handle.svg); } #r_handle { background-image: url(../icons/r_handle.svg); } .ui-slider-range.ui-widget-header.ui-corner-all { background-color: #F9C768; background-image: none; opacity: 0.50; visibility: visible; } /* === Gestion des etuds row === */ .etud_row { display: grid; grid-template-columns: 2% 20% 55% auto; gap: 16px; background-color: white; border-radius: 15px; padding: 4px 16px; margin: 0.5% 0; box-shadow: -1px 12px 5px -8px rgba(68, 68, 68, 0.61); -webkit-box-shadow: -1px 12px 5px -8px rgba(68, 68, 68, 0.61); -moz-box-shadow: -1px 12px 5px -8px rgba(68, 68, 68, 0.61); max-width: 800px; } .etud_row * { display: flex; justify-content: center; align-items: center; height: 50px; } .etud_row.def, .etud_row.dem { background-color: #c8c8c8; } /* --- Index --- */ .etud_row .index_field { grid-column: 1; } /* --- Nom étud --- */ .etud_row .name_field { grid-column: 2; height: 100%; justify-content: start; } .etud_row .name_field .name_set { flex-direction: column; align-items: flex-start; margin: 0 5%; } .etud_row.def .nom::after, .tr.def .td.sticky span::after { display: block; content: " (Déf.)"; color: #d61616; margin-left: 2px; } .etud_row.dem .nom::after, .tr.dem .td.sticky span::after { display: block; content: " (Dém.)"; color: #d61616; margin-left: 2px; } .etud_row .name_field .name_set * { padding: 0; margin: 0; } .etud_row .name_field .name_set h4 { font-size: small; font-weight: 600; } .etud_row .name_field .name_set h5 { font-size: x-small; } .etud_row .pdp { border-radius: 15px; } /* --- Barre assiduités --- */ .etud_row .assiduites_bar { display: grid; grid-template-columns: 7px 1fr; gap: 13px; grid-column: 3; position: relative; } .etud_row .assiduites_bar .filler { height: 5px; width: 90%; background-color: white; border: 1px solid #444; } .etud_row .assiduites_bar #prevDateAssi { height: 7px; width: 7px; background-color: white; border: 1px solid #444; margin: 0px 8px; } .etud_row .assiduites_bar #prevDateAssi.single { height: 9px; width: 9px; } .etud_row.conflit { background-color: #ff0000c2; } .etud_row .assiduites_bar .absent, .demo.absent { background-color: #F1A69C !important; } .etud_row .assiduites_bar .present, .demo.present { background-color: #9CF1AF !important; } .etud_row .assiduites_bar .retard, .demo.retard { background-color: #F1D99C !important; } .etud_row .assiduites_bar .justified, .demo.justified { background-image: repeating-linear-gradient(135deg, transparent, transparent 4px, #7059FF 4px, #7059FF 8px); } .etud_row .assiduites_bar .invalid_justified, .demo.invalid_justified { background-image: repeating-linear-gradient(225deg, transparent, transparent 4px, #d61616 4px, #d61616 8px); } /* --- Boutons assiduités --- */ .etud_row .btns_field { grid-column: 4; } .btns_field:disabled { opacity: 0.7; } .etud_row .btns_field * { margin: 0 5%; cursor: pointer; width: 35px; height: 35px; } .rbtn { -webkit-appearance: none; appearance: none; cursor: pointer; } .rbtn::before { content: ""; display: inline-block; width: 35px; height: 35px; background-position: center; background-size: cover; } .rbtn.present::before { background-image: url(../icons/present.svg); } .rbtn.absent::before { background-image: url(../icons/absent.svg); } .rbtn.aucun::before { background-image: url(../icons/aucun.svg); } .rbtn.retard::before { background-image: url(../icons/retard.svg); } .rbtn:checked:before { outline: 5px solid #7059FF; border-radius: 50%; } .rbtn:focus { outline: none !important; } /*<== Modal conflit ==>*/ .modal { display: block; position: fixed; z-index: 500; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.4); } .modal-content { background-color: #fefefe; margin: 5% auto; padding: 20px; border: 1px solid #888; width: 80%; height: 320px; position: relative; border-radius: 10px; } .close { color: #111; position: absolute; right: 5px; top: 0px; font-size: 28px; font-weight: bold; cursor: pointer; } /* Ajout de styles pour la frise chronologique */ .modal-timeline { display: flex; flex-direction: column; align-items: stretch; margin-bottom: 20px; } .time-labels, .assiduites-container { display: flex; justify-content: space-between; position: relative; } .time-label { font-size: 14px; margin-bottom: 4px; } .assiduite { position: absolute; top: 20px; cursor: pointer; border-radius: 4px; z-index: 10; height: 100px; padding: 4px; } .assiduite-info { display: flex; flex-direction: column; height: 100%; justify-content: space-between; } .assiduite-id, .assiduite-period, .assiduite-state, .assiduite-user_id { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; } .assiduites-container { min-height: 20px; height: calc(50% - 60px); /* Augmentation de la hauteur du conteneur des assiduités */ position: relative; margin-bottom: 10px; } .action-buttons { position: absolute; text-align: center; display: flex; justify-content: space-evenly; align-items: center; height: 60px; width: 100%; bottom: 5%; } /* Ajout de la classe CSS pour la bordure en pointillés */ .assiduite.selected { border: 2px dashed black; } .assiduite-special { height: 120px; position: absolute; z-index: 5; border: 2px solid #000; background-color: rgba(36, 36, 36, 0.25); background-image: repeating-linear-gradient(135deg, transparent, transparent 5px, rgba(81, 81, 81, 0.61) 5px, rgba(81, 81, 81, 0.61) 10px); border-radius: 5px; } /*<== Info sur l'assiduité sélectionnée ==>*/ .modal-assiduite-content { background-color: #fefefe; margin: 5% auto; padding: 20px; border: 1px solid #888; width: max-content; position: relative; border-radius: 10px; display: none; } .modal-assiduite-content.show { display: block; } .modal-assiduite-content .infos { display: flex; flex-direction: column; justify-content: space-evenly; align-items: flex-start; } /*<=== Mass Action ==>*/ .mass-selection { display: flex; justify-content: flex-start; align-items: center; width: 100%; margin: 2% 0; } .mass-selection span { margin: 0 1%; } .mass-selection .rbtn { background-color: transparent; cursor: pointer; } /*<== Loader ==> */ .loader-container { display: none; /* Cacher le loader par défaut */ position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); /* Fond semi-transparent pour bloquer les clics */ z-index: 9999; /* Placer le loader au-dessus de tout le contenu */ } .loader { border: 6px solid #f3f3f3; border-radius: 50%; border-top: 6px solid #3498db; width: 60px; height: 60px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } } .fieldsplit { display: flex; justify-content: flex-start; align-items: center; flex-direction: column; } .fieldsplit legend { margin: 0; } #page-assiduite-content { display: flex; flex-wrap: wrap; gap: 5%; flex-direction: column; } #page-assiduite-content>* { margin: 1.5% 0; } .rouge { color: crimson; } .legende { border: 1px dashed #333; width: 75%; padding: 20px; } .order { background-image: url(../icons/sort.svg); } .filter { background-image: url(../icons/filter.svg); } [name='destroyFile'] { -webkit-appearance: none; appearance: none; cursor: pointer; background-image: url(../icons/trash.svg); } [name='destroyFile']:checked { background-image: url(../icons/remove_circle.svg); } .icon { display: block; width: 24px; height: 24px; outline: none !important; border: none !important; cursor: pointer; margin: 0 2px !important; } .icon:focus { outline: none; border: none; } #forcemodule { border-radius: 8px; background: crimson; max-width: fit-content; padding: 5px; color: white; } .demo { width: 23px; height: 13px; display: inline-block; border: solid 1px #333; }