/* Here, the content of the common custom CSS defined into Home - Setup - Display - CSS*/
/* LEO — CSS personnalisé purgé des anciennes personnalisations des menus.
 * Remplacer intégralement le contenu actuel du champ CSS personnalisé.
 * Conserve : agenda, formulaires, boutons, widgets et calendrier de saisie.
 * Le nouveau menu est défini exclusivement dans theme/eldy/style.css.php.
 */

/* Masquer le bouton Clôturer UNIQUEMENT dans les projets */
.mod-project a.butAction[href*="action=setstatut"],
.mod-project a.butAction[href*="action=close"] {
display: none !important;
}
/* --- 1. MASQUAGE ÉLÉMENTS SYSTÈME --- */
/* Masquer Version et Titre Login par défaut */
.aversion,
a.login_table_title {
display: none !important;
}
/* --- 2. AGENDA LUN AU VEN --- */
/* 1. Masquer les colonnes 7 et 8 (Samedi et Dimanche) */
.sectioncalendarbymonth table tr th:nth-child(7),
.sectioncalendarbymonth table tr th:nth-child(8),
.sectioncalendarbymonth table tr td:nth-child(7),
.sectioncalendarbymonth table tr td:nth-child(8) {
display: none !important;
}
/* Masquer les samedis et dimanches dans l'agenda Dolibarr */
.fc-sat, .fc-sun,
.fc-day-sat, .fc-day-sun {
display: none !important;
}
/* 2. Fixer la colonne numéro de semaine (#) à une taille minimum */
.sectioncalendarbymonth table tr td.weeknumber,
.sectioncalendarbymonth table tr.liste_titre td:first-child {
width: 30px !important;
min-width: 30px !important;
white-space: nowrap;
}
/* 3. Forcer les 5 colonnes de jours à prendre tout le reste de l'espace */
/* On cible les colonnes de 2 à 6 (Lundi à Vendredi) */
.sectioncalendarbymonth table tr td:nth-child(n+2):nth-child(-n+6) {
width: 19% !important;
min-width: 100px; /* Évite que Vendredi s'écrase sur petit écran */
}
/* 4. Ajustement pour que le tableau utilise bien 100% de la largeur */
.sectioncalendarbymonth table {
table-layout: fixed; /* Force le respect des largeurs définies au-dessus */
width: 100% !important;
}
/* --- 2.5 AJOUT : MASQUER UNIQUEMENT SAMEDI ET DIMANCHE EN VUE SEMAINE --- */
/* En vue semaine, Lundi est la 1ère colonne, donc Samedi = 6 et Dimanche = 7 */
.sectioncalendarbyweek table tr td:nth-child(6),
.sectioncalendarbyweek table tr td:nth-child(7) {
display: none !important;
}
/* --- 3. COULEURS & LABELS STATUS --- */
/* Classes manuelles */
.ancien_client {
outline: 2px solid red;
color: red !important;
}
/* Couleur de recherche conservée hors du nouveau menu. */
.fa-search { color: #6EC8C5 !important; }
/* Lettre pour Prospect : P (Turquoise) */
.customer-back[title="Prospect"] {
background: #6EC8C5 !important;
color: #000;
padding: 2px 8px;
}
/* Lettre pour Client : C (Bleu Avenelink) */
.customer-back[title="Client"] {
background: #2D85A3 !important;
color: #fff;
padding: 2px 8px;
}
/* Lettre pour Fournisseur : F (Rouge) */
.customer-back[title="Fournisseur"] {
background: #FF0000 !important;
color: #fff;
padding: 2px 8px;
}
/* --- 4. FORMULAIRES & SAISIE (TWEAKS) --- */
/* Heure : Palier 15 min uniquement */
select[id$="min"] option:not([value="0"]):not([value="00"]):not([value="15"]):not([value="30"]):not([value="45"]) {
display: none;
}
/* Heures : Garder uniquement de 08h à 20h */
select[id$="hour"] option:not([value^="08"]):not([value^="09"]):not([value="10"]):not([value="11"]):not([value="12"]):not([value="13"]):not([value="14"]):not([value="15"]):not([value="16"]):not([value="17"]):not([value="18"]):not([value="19"]):not([value="20"]) {
display: none;
}
/* Masquer Projets et Tâches (Sélecteurs avancés :has) */
.divsearchfield:has(select[name="search_projectid"]) { display: none !important; }
tr:has([name="projectid"]), div.form-group:has([name="projectid"]),
tr:has([name="taskid"]), div.form-group:has([name="taskid"]) {
display: none !important;
pointer-events: none; /* Sécurité anti-clic */
}
/* Renommer les Filtres (Placeholders) */
/* Commercial */
#select2-search_filtert-container .placeholder { visibility: hidden; position: relative; }
#select2-search_filtert-container .placeholder::after {
content: "Commercial"; visibility: visible; position: absolute; left: 0;
top: 50%; transform: translateY(-50%); color: #999;
}
/* Groupe */
#select2-usergroup-container .placeholder { visibility: hidden; position: relative; }
#select2-usergroup-container .placeholder::after {
content: "Groupe"; visibility: visible; position: absolute; left: 0;
top: 50%; transform: translateY(-50%); color: #999;
}
/* Raison Sociale */
#search_search_socid::placeholder { color: transparent !important; opacity: 0; }
.divsearchfield:has(#search_search_socid) { position: relative; }
.divsearchfield:has(#search_search_socid)::after {
content: "Raison Sociale"; position: absolute; left: 32px;
top: 50%; transform: translateY(-50%); color: #999; pointer-events: none; font-size: 13px;
}
.divsearchfield:has(#search_search_socid:focus)::after,
.divsearchfield:has(#search_search_socid:not(:placeholder-shown))::after { display: none; }
/* Menu "Tous" dans les listes */
ul[id*="search_filtert-results"] li:first-child,
ul[id*="usergroup-results"] li:first-child,
ul[id*="categ_search_categ_cus-results"] li:first-child {
font-size: 0 !important; position: relative; min-height: 30px;
}
ul[id*="search_filtert-results"] li:first-child::after,
ul[id*="usergroup-results"] li:first-child::after,
ul[id*="categ_search_categ_cus-results"] li:first-child::after {
content: "Tous"; font-size: 13px !important; position: absolute;
left: 10px; top: 50%; transform: translateY(-50%);
color: #444 !important; font-weight: bold; opacity: 1 !important;
}
/* --- 5. BOUTONS D'ACTION --- */
/* Bouton Rechercher (Loupe) -> Vert */
button[name="button_search"], .button_search {
background-color: #6ea42d !important;
border: 1px solid #5c8a26 !important;
border-radius: 4px !important;
padding: 0 15px !important; height: 32px !important;
margin-left: 10px !important;
box-shadow: 0 2px 4px rgba(0,0,0,0.15); transition: transform 0.1s;
}
button[name="button_search"] span, .button_search span { color: #ffffff !important; }
button[name="button_search"]:hover, .button_search:hover { transform: scale(1.05); cursor: pointer; }
/* Bouton + (Nouvel événement) -> Bleu #2D85A3 */
.btnTitlePlus {
background-color: #2D85A3 !important;
border: 1px solid #20657c !important;
border-radius: 4px !important;
padding: 0 !important; width: 34px !important; height: 32px !important;
display: inline-flex !important; align-items: center; justify-content: center;
box-shadow: 0 2px 4px rgba(0,0,0,0.2); margin-left: 10px !important;
text-decoration: none !important; transition: transform 0.1s;
}
.btnTitlePlus span.fa-plus-circle { color: #ffffff !important; font-size: 16px !important; }
.btnTitlePlus:hover { background-color: #26738d !important; transform: scale(1.05); }
/* --- 8. WIDGETS ACCUEIL --- */
.box-flex-container { gap: 20px !important; padding: 10px !important; }
/* Cartes Info (Haut de page) */
.info-box {
background-color: #ffffff !important; border: 1px solid #e0e0e0 !important;
border-radius: 12px !important; box-shadow: 0 4px 10px rgba(0,0,0,0.05) !important;
overflow: hidden !important; transition: all 0.3s ease-in-out !important;
}
.info-box:hover { transform: translateY(-5px) !important; border-color: #2D85A3 !important; box-shadow: 0 15px 30px rgba(45, 133, 163, 0.15) !important; }
/* Icones & Textes Cartes */
.info-box-icon, .bg-infobox-action, .bg-infobox-project, .bg-infobox-expensereport {
background-color: #f4f8fb !important; color: #2D85A3 !important; border-right: none !important;
border-top-left-radius: 12px !important; border-bottom-left-radius: 12px !important;
}
.info-box-title { text-transform: uppercase !important; font-size: 10px !important; font-weight: 700 !important; color: #999 !important; letter-spacing: 1px !important; }
.info-box .info-box-text, .info-box .info-box-number, .info-box a { color: #333 !important; font-weight: 600 !important; text-decoration: none !important; }
.info-box a:hover { color: #2D85A3 !important; }
/* Badges Cartes */
.info-box .badge { border-radius: 10px !important; padding: 3px 8px !important; font-size: 10px !important; border: none !important; }
.info-box .badge-info { background-color: #6EC8C5 !important; color: white !important; }
.info-box .badge-warning { background-color: #fff0f0 !important; color: #d63031 !important; border: 1px solid #fab1a0 !important; }
/* Météo */
.info-box-weather {
background: linear-gradient(135deg, #2D85A3 0%, #6EC8C5 100%) !important; color: white !important;
border: none !important; border-radius: 12px !important;
}
.info-box-weather .info-box-title, .info-box-weather .info-box-number, .info-box-weather .progress-description, .info-box-weather .fa {
color: white !important; text-shadow: none !important;
}
.info-box-weather .info-box-icon { background: transparent !important; color: white !important; }
/* Listes / Tableaux Widgets */
.box {
background-color: #ffffff !important; border: 1px solid #e0e0e0 !important;
border-radius: 12px !important; box-shadow: 0 4px 10px rgba(0,0,0,0.03) !important;
margin-bottom: 20px !important; overflow: hidden !important; padding: 0 !important;
transition: border-color 0.3s ease !important;
}
.box:hover { border-color: #2D85A3 !important; }
.box .divboxtable, .box table, .box table.boxtable { border: none !important; margin: 0 !important; padding: 0 !important; width: 100% !important; box-shadow: none !important; border-collapse: collapse !important; }
/* Titres Widgets */
.box_titre { background-color: #f4f8fb !important; border-bottom: 1px solid #dcebf0 !important; height: 45px !important; border-top: none !important; }
.box_titre th { color: #2D85A3 !important; font-family: sans-serif !important; font-size: 11px !important; font-weight: 800 !important; text-transform: uppercase !important; padding: 0 15px !important; border: none !important; }
.box_titre .fas, .box_titre .far { color: #a0a0a0 !important; }
.box_titre .fas:hover { color: #2D85A3 !important; }
/* Contenu Widgets */
.box table.boxtable tr.oddeven { background-color: #ffffff !important; border-bottom: 1px solid #f0f0f0 !important; transition: background-color 0.2s !important; }
.box table.boxtable tr.oddeven:nth-child(even) { background-color: #fafafa !important; }
.box table.boxtable tr.oddeven:hover { background-color: #f0f7f9 !important; }
.box td { padding: 10px 15px !important; border: none !important; }
.box a, .box td { color: #444 !important; font-size: 13px !important; text-decoration: none !important; font-weight: 500 !important; }
.box a:hover { color: #2D85A3 !important; }
/* Icones Widgets */
.box td .fas, .box td .far, .box td .fa { color: #2D85A3 !important; opacity: 0.9 !important; width: 16px !important; text-align: center !important; }
.box td .fa-exclamation-triangle { color: #ff9f43 !important; }
.boxclose .fa-times { color: #e74c3c !important; } /* Croix fermeture */
.boxhandle.fa-arrows-alt { color: #6EC8C5 !important; } /* Drag */
.pagination, .tabs, .tabsElem, .div-table-responsive { position: relative; z-index: 10; }
/* --- 10. AGENDA (NAVIGATION) --- */
.navmode {
background-color: #f4f8fb !important; padding: 6px !important;
border-radius: 12px !important; display: inline-flex !important;
align-items: flex-end !important; border: 1px solid #e0e0e0 !important;
}
/* Boutons de vue */
a.btnTitle:not(.btnTitlePlus) {
display: flex !important; flex-direction: column !important; align-items: center !important;
justify-content: center !important; padding: 8px 10px !important; margin: 0 2px !important;
border-radius: 10px !important; background: transparent !important; border: none !important;
color: #555 !important; text-decoration: none !important; transition: all 0.2s ease !important;
min-width: 80px !important;
}
a.btnTitle:not(.btnTitlePlus) .imgforviewmode { font-size: 16px !important; margin-bottom: 4px !important; color: #2D85A3 !important; }
a.btnTitle:not(.btnTitlePlus) .btnTitle-label { font-size: 10px !important; text-transform: uppercase !important; font-weight: 700 !important; color: inherit !important; }
a.btnTitle:not(.btnTitlePlus):hover { background-color: rgba(45, 133, 163, 0.08) !important; }
/* Bouton actif */
a.btnTitleSelected { background-color: #2D85A3 !important; box-shadow: 0 3px 8px rgba(45, 133, 163, 0.3) !important; }
a.btnTitleSelected, a.btnTitleSelected .imgforviewmode, a.btnTitleSelected .btnTitle-label, a.btnTitleSelected span { color: #ffffff !important; }
/* ==========================================================================
DATEPICKER / CALENDRIER (JQUERY UI) - LEO CRM DESIGN
========================================================================== */
/* 1. CONTENEUR PRINCIPAL - ÉLARGI */
#ui-datepicker-div, .ui-datepicker {
background-color: #ffffff !important;
border: 1px solid #e0e0e0 !important;
border-radius: 12px !important;
box-shadow: 0 10px 30px rgba(0,0,0,0.15) !important;
padding: 5px !important; /* Ajout d'un peu de marge interne */
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
/* C'est ici qu'on change la largeur */
width: 20em !important; /* Passé de 17em à 20em pour faire entrer le dimanche */
z-index: 9999 !important;
box-sizing: border-box !important; /* Assure que le padding ne casse pas la largeur */
}
/* 2. EN-TÊTE (MOIS / ANNÉE) */
.ui-datepicker-header {
background: #2D85A3 !important; /* Bleu Avenelink */
border: none !important;
border-radius: 12px 12px 0 0 !important; /* Arrondi haut */
padding: 10px 0 !important;
position: relative !important; /* Important pour les flèches absolues */
}
.ui-datepicker-title {
color: #ffffff !important;
line-height: 1.2 !important;
display: flex !important;
justify-content: center !important;
align-items: center !important;
gap: 5px !important;
margin: 0 35px !important; /* Marge pour ne pas toucher les flèches */
}
/* Listes déroulantes */
.ui-datepicker-title select {
background: rgba(255, 255, 255, 0.2) !important;
border: none !important;
border-radius: 4px !important;
color: #ffffff !important;
font-size: 13px !important;
font-weight: 600 !important;
height: 24px !important;
cursor: pointer !important;
padding: 0 5px !important;
}
.ui-datepicker-title select option { color: #333 !important; background: #fff !important; }
/* 3. FLÈCHES NAVIGATION (CORRIGÉES) */
.ui-datepicker-prev, .ui-datepicker-next {
position: absolute !important;
top: 50% !important;
width: 30px !important;
height: 30px !important;
transform: translateY(-50%) !important; /* Centrage vertical parfait */
background: transparent !important;
border: none !important;
cursor: pointer !important;
/* CRITIQUE : Cacher le texte "Précédent/Suivant" */
font-size: 0 !important;
color: transparent !important;
text-indent: -9999px !important; /* Sécurité double */
overflow: visible !important; /* Pour voir la flèche générée */
display: flex !important;
align-items: center !important;
justify-content: center !important;
border-radius: 50% !important;
}
.ui-datepicker-prev { left: 5px !important; }
.ui-datepicker-next { right: 5px !important; }
/* Effet hover sur le rond de la flèche */
.ui-datepicker-prev:hover, .ui-datepicker-next:hover {
background: rgba(255,255,255,0.2) !important;
}
/* On cache l'icône span par défaut de jQuery UI qui pose problème */
.ui-datepicker-prev span, .ui-datepicker-next span {
display: none !important;
}
/* On recrée les flèches proprement sur le lien lui-même */
.ui-datepicker-prev::after, .ui-datepicker-next::after {
font-family: monospace !important; /* Assure un rendu net */
font-size: 16px !important;
font-weight: bold !important;
color: #ffffff !important;
/* Réinitialisation des propriétés de texte cachées plus haut */
text-indent: 0 !important;
display: block !important;
line-height: 1 !important;
}
.ui-datepicker-prev::after { content: "❮"; }
.ui-datepicker-next::after { content: "❯"; }
/* 4. TABLEAU DES JOURS */
.ui-datepicker-calendar {
margin: 5px 0 10px 0 !important;
}
/* Jours de la semaine (Lu, Ma, Me...) */
.ui-datepicker-calendar th {
color: #6EC8C5 !important; /* Turquoise (Rappel widgets) */
font-size: 11px !important;
font-weight: 800 !important;
text-transform: uppercase !important;
padding: 8px 0 !important;
}
/* Cellules des jours */
.ui-datepicker-calendar td {
padding: 2px !important;
}
/* Le lien (le numéro du jour) */
.ui-datepicker-calendar td a.ui-state-default {
background: transparent !important;
border: none !important;
color: #444 !important;
text-align: center !important;
font-weight: 500 !important;
border-radius: 50% !important; /* Rond parfait */
width: 30px !important;
height: 30px !important;
line-height: 30px !important;
margin: 0 auto !important;
transition: all 0.2s !important;
}
/* Force le tableau à prendre toute la largeur disponible */
.ui-datepicker-calendar {
width: 100% !important;
margin: 5px 0 10px 0 !important;
table-layout: fixed !important; /* Répartit les colonnes équitablement */
}
/* 5. ÉTATS INTERACTIFS */
/* Survol d'un jour */
.ui-datepicker-calendar td a.ui-state-default:hover {
background-color: #f0f7f9 !important;
color: #2D85A3 !important;
font-weight: bold !important;
}
/* Aujourd'hui (Cercle Turquoise) */
.ui-datepicker-calendar td.ui-datepicker-today a.ui-state-default {
background: transparent !important;
border: 2px solid #6EC8C5 !important;
color: #6EC8C5 !important;
font-weight: bold !important;
}
/* Jour Sélectionné (Rond plein Bleu Avenelink) */
.ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-default,
.ui-datepicker-calendar td a.ui-state-active {
background: #2D85A3 !important;
color: #ffffff !important;
box-shadow: 0 4px 8px rgba(45, 133, 163, 0.3) !important;
border: none !important;
}
/* Autres mois (Grisé) */
.ui-datepicker-other-month .ui-state-default {
opacity: 0.3 !important;
}
/* . Masquer le montant pondéré sur les fiches projets */
.opp_amount_weighted_prefix,
.opp_amount_weighted,
span[title*="pondéré"] {
display: none !important;
}
/* BARRE DE VUES AGENDA : Ligne unique et petits boutons sur mobile */
@media only screen and (max-width: 767px) {
/* 1. Le conteneur gris clair */
div.navmode {
display: flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important; /* INTERDIT le passage à la ligne */
justify-content: space-between !important;
align-items: center !important;
padding: 4px 8px !important; /* Boîte beaucoup plus fine */
width: 100% !important;
box-sizing: border-box !important;
border-radius: 6px !important;
}
/* 2. Les boutons individuels */
div.navmode a.btnTitle {
flex: 1 !important; /* Les 6 icônes se partagent l'espace à parts égales */
margin: 0 2px !important; /* Micro-espace entre chaque icône */
padding: 6px 0 !important; /* Hauteur réduite */
text-align: center !important;
min-width: 0 !important;
}
/* 3. L'icône (taille réduite) */
div.navmode a.btnTitle span.fas,
div.navmode a.btnTitle span.fa {
font-size: 16px !important; /* Taille de l'icône bloquée en petit */
display: block !important;
margin: 0 auto !important;
}
/* 4. Sécurité : on cache définitivement le texte qui pourrait élargir le bouton */
div.navmode span.btnTitle-label {
display: none !important;
}
/* 5. On centre proprement la limite de pagination en dessous */
li.paginationcombolimit {
margin: 5px auto !important;
display: block !important;
}
}