diff --git a/Bootstrap_new/css/style_office.css b/Bootstrap_new/css/style_office.css index b08c692..f756c7c 100644 --- a/Bootstrap_new/css/style_office.css +++ b/Bootstrap_new/css/style_office.css @@ -1,1576 +1 @@ -/* ============================================ - STYLE OFFICE POUR LE PORTAIL RH - VERSION CORRIGÉE - Encodage: UTF-8 sans BOM - ============================================ */ - -:root { - /* PowerPoint/Office 2019 Color Palette */ - --office-primary: #b7472a; /* Sidebar color - PowerPoint accent */ - --office-secondary: #2b579a; /* Header/buttons - Office blue */ - --office-accent: #107c10; /* Success/active states - Excel green */ - --office-light: #f3f2f1; /* Background - Office gray */ - --office-common: #e6e6e6; /* Background - Office gray */ - --office-dark: #323130; /* Text color */ - --office-border: #d0d0d0; /* Borders */ - --office-hover: #f0f0f0; /* Hover states */ - --office-card: #ffffff; /* Card backgrounds */ - - /* Dimensions */ - --sidebar-width: 260px; - --sidebar-collapsed: 85px; - --header-height: 64px; - --transition-speed: 0.3s; - - /* Responsive breakpoints */ - --breakpoint-tablet: 1200px; - --breakpoint-mobile: 768px; - - --office-primary-light: rgba(183, 71, 42, 0.08); - --office-primary-lighter: rgba(183, 71, 42, 0.04); - --office-primary-border: rgba(183, 71, 42, 0.15); - --office-warm-bg: #fefcfb; - --office-card-highlight: #fff9f8; - --content-margin-left: calc(var(--sidebar-width) + 24px); - --content-margin-right: 24px; - - --container-max: 1400px; - --container-pad: 24px; - -} - -/* ============================================ - BASE STYLES & RESET - ============================================ */ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif; - background-color: var(--office-common); - color: var(--office-dark); - line-height: 1.5; - overflow-x: hidden; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* ============================================ - HEADER STYLES - ============================================ */ -.app-header { - background-color: var(--office-light) !important; - height: var(--header-height); - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1030; -} - -/* Nettoyage du bouton dropdown */ -.user-menu.dropdown-toggle { - display: flex; - align-items: center; - outline: none; - box-shadow: none !important; -} - -/* Supprimer la petite flèche par défaut de Bootstrap si elle vous gêne */ -.user-menu.dropdown-toggle::after { - display: none; -} - -/* Style de base de la flèche */ -.user-arrow { - font-size: 0.8rem; - transition: transform 0.3s ease; - color: #6c757d; /* Couleur grise discrète */ -} - -/* Rotation automatique quand le menu est ouvert */ -#userDropdownBtn[aria-expanded="true"] .user-arrow { - transform: rotate(180deg); - color: var(--bs-primary); /* Change la couleur en bleu au clic (optionnel) */ -} - -/* On s'assure que le bouton reste bien aligné horizontalement */ -.user-menu { - display: flex; - align-items: center; -} - -/* S'assurer que le menu dropdown passe devant tout */ -.dropdown-menu { - z-index: 2000 !important; - min-width: 220px; - border: 1px solid rgba(0,0,0,0.1); -} - -/* Positionnement quand le header est fixed */ -.dropdown-menu[data-bs-popper] { - margin-top: 15px !important; -} - -.header-content { - display: flex; - align-items: center; - justify-content: space-between; - height: 100%; - padding: 0 24px; -} - -/* 1. Réduction de l'espace global du bouton */ -#userDropdownBtn { - gap: 8px; /* Contrôle l'espace entre avatar, texte et flèche */ -} - -/* 2. Réduction des textes */ -.user-name { - font-size: 0.85rem !important; /* Un peu plus petit */ - margin-bottom: -2px; /* Rapproche le nom du rôle */ -} - -.user-role { - font-size: 1.15rem !important; - opacity: 0.8; -} - -/* 3. Réduction de l'avatar */ -.user-avatar { - width: 32px !important; /* Au lieu de 36 ou 40 */ - height: 32px !important; - font-size: 0.8rem; /* Initiales plus petites */ - display: flex; - align-items: center; - justify-content: center; -} - -/* 4. Rapprochement de la flèche */ -.user-arrow { - font-size: 0.7rem; - margin-left: 4px !important; /* Espace réduit avec le texte */ -} - -/* 5. Densité du menu déroulant (Dropdown) */ -.dropdown-menu { - padding: 0.25rem 0; /* Moins d'espace en haut et en bas du menu */ -} - -.dropdown-item { - padding: 0.4rem 1rem; /* Items plus serrés */ - font-size: 0.85rem; -} - -.dropdown-header { - padding: 0.5rem 1rem; -} - -.logo-container { - display: flex; - align-items: center; - gap: 16px; -} - -.app-logo { - display: flex; - align-items: center; - color: #313c4c; - text-decoration: none; - font-weight: 600; - font-size: 20px; -} - -.app-logo img { height: 36px; } - -.notification-btn i{ font-size : 15pt !important; } - -#lienlogo img{ width:50px; max-height: 50px; } - -/* ============================================ - SIDEBAR STYLES - ============================================ */ -.app-sidebar { - width: var(--sidebar-width) !important; /* 70px */ - background: linear-gradient(180deg, var(--office-primary) 0%, #a53e24 100%); - position: fixed; - top: var(--header-height); - left: 0; - bottom: 0; - z-index: 1020; - box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1); - transition: width var(--transition-speed) ease; - overflow-y: auto; - overflow-x: hidden; -} - -/* Pattern overlay */ -.app-sidebar::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-image: - radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.03) 0%, transparent 20%), - radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.03) 0%, transparent 20%); - pointer-events: none; -} - -/* Texte normal */ -.app-sidebar .nav-link .nav-text { - display: inline; - opacity: 1; - transition: opacity var(--transition-speed) ease; -} - -/* En mode réduit : cacher le texte inline */ -body.sidebar-collapsed .app-sidebar .nav-link .nav-text { - display: none; -} - -/* Overlay flottant au survol */ -body.sidebar-collapsed .app-sidebar .nav-link { - position: relative; -} - -body.sidebar-collapsed .app-sidebar .nav-link:hover::after { - content: attr(data-label); - position: absolute; - top: 50%; - left: 100%; - transform: translateY(-50%); - background: rgba(0,0,0,0.85); - color: #fff; - padding: 6px 12px; - border-radius: 4px; - white-space: nowrap; - font-size: 14px; - margin-left: 8px; - box-shadow: 0 2px 6px rgba(0,0,0,0.2); - opacity: 0; - transition: opacity var(--transition-speed) ease, transform var(--transition-speed) ease; - z-index: 2000; -} - -body.sidebar-collapsed .app-sidebar .nav-link:hover::after { - opacity: 1; - transform: translateY(-50%) translateX(5px); -} - -/* Cache les flèches de sous-menu quand c'est réduit */ -body.sidebar-collapsed .nav-arrow { - display: none !important; -} - -/* Empêche les sous-menus de s'ouvrir verticalement en mode réduit */ -/* (Ils resteraient visibles mais écrasés sinon) */ -body.sidebar-collapsed .nav-submenu { - display: none !important; -} - -/* Centrage des icônes pour un aspect "Barre d'outils" propre */ -body.sidebar-collapsed .nav-item .nav-link { - display: flex; - justify-content: center; - padding-left: 0; - padding-right: 0; -} - -.sidebar-nav { - padding: 24px 0; -} - -.nav-section { - margin-bottom: 32px; - padding: 0 20px; -} - -.nav-title { - color: rgba(255, 255, 255, 0.7); - font-size: 12px; - font-weight: 600; - text-transform: uppercase; - letter-spacing: 0.5px; - margin-bottom: 12px; - padding: 0 16px; -} - -.nav-item { - margin-bottom: 4px; -} - -.nav-link { - display: flex; - align-items: center; - color: rgba(255, 255, 255, 0.85); - padding: 12px 16px; - text-decoration: none; - border-radius: 6px; - transition: all 0.2s ease; - position: relative; - overflow: hidden; -} - -.nav-link:hover { - background-color: rgba(255, 255, 255, 0.1); - color: white; -} - -.nav-link.active { - background-color: rgba(255, 255, 255, 0.15); - color: white; - font-weight: 500; -} - -.nav-link i { - width: 24px; - font-size: 18px; - margin-right: 12px; - text-align: center; -} - -.nav-text { - flex: 1; - font-size: 14px; -} - -.nav-badge { - background-color: var(--office-accent); - color: white; - font-size: 11px; - padding: 2px 6px; - border-radius: 10px; - margin-left: 8px; -} - -.nav-arrow { - font-size: 12px; - opacity: 0.7; - transition: transform 0.2s ease; -} - -.nav-link[aria-expanded="true"] .nav-arrow { - transform: rotate(90deg); - transition: transform 0.3s; -} - -.nav-submenu { - background-color: rgba(0, 0, 0, 0.1); - border-radius: 6px; - margin-top: 4px; - padding: 8px 0; -} - -.nav-submenu .nav-link { - padding: 8px 16px 8px 52px; - font-size: 13px; -} - -.nav-submenu .nav-link::before { - content: '•'; - position: absolute; - left: 36px; - opacity: 0.6; -} - -/* ============================================ - MAIN CONTENT AREA - ============================================ */ -.app-main { - margin-left: var(--sidebar-width); - padding-top: var(--header-height); - min-height: 100vh; - transition: margin-left var(--transition-speed) ease, width var(--transition-speed) ease; - background-color: var(--office-light); - width: calc(100% - var(--sidebar-width)); -} - -/* Quand le sidebar est réduit */ -body.sidebar-collapsed .app-main { - margin-left: var(--sidebar-collapsed) !important; - width: calc(100% - var(--sidebar-collapsed)) !important; -} - - -.toggle-sidebar-btn { - font-size: 20px; - padding-left: 10px; - cursor: pointer; -} - -.nav-bar.collapsed { - left: var(--sidebar-collapsed) !important; -} - - -/* ============================================ - NAVIGATION TABS - ============================================ */ -.nav-bar { - background-color: white; - border-radius: 8px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); - border: 1px solid var(--office-border); - position: fixed; - top: var(--header-height); /* Directement sous le header */ - left: var(--sidebar-width); /* Commence après la sidebar */ - right: 0; - z-index: 1000; - height: 56px; - display: flex; - align-items: center; - padding: 0; - margin: 0; - transition: left var(--transition-speed) ease; -} - -/* Conteneur pour centrer le contenu */ -.nav-bar > .nav-tabs { - width: 100%; - max-width: var(--container-max); - margin: 0 auto; - padding: 0 var(--container-pad); - height: 100%; - display: flex; - align-items: center; - gap: 4px; - overflow-x: auto; -} - -.nav-tab { - display: inline-flex; - align-items: center; - padding: 10px 18px; - background-color: transparent; - color: var(--office-dark); - text-decoration: none; - border-radius: 6px; - font-size: 14px; - font-weight: 500; - white-space: nowrap; - transition: all 0.2s ease; - border: 1px solid transparent; - height: 40px; -} - -.nav-tab:hover { - background-color: var(--office-hover); - color: var(--office-secondary); -} - -.nav-tab.active { - background-color: var(--office-secondary); - color: white; - border-color: var(--office-secondary); -} - -.nav-tab i { - margin-right: 8px; - font-size: 16px; -} - -/* Style général de la scrollbar */ -.nav-bar > .nav-tabs::-webkit-scrollbar { - height: 10px; /* épaisseur de la barre horizontale */ -} - -/* Couleur de la piste (fond de la scrollbar) */ -.nav-bar > .nav-tabs::-webkit-scrollbar-track { - background: #f1f1f1; - border-radius: 8px; -} - -/* Couleur et style du curseur (thumb) */ -.nav-bar > .nav-tabs::-webkit-scrollbar-thumb { - background: var(--office-common); - border-radius: 8px; -} - -/* Effet au survol */ -.nav-bar > .nav-tabs::-webkit-scrollbar-thumb:hover { - background: #97999B; -} - -/* Quand le body a la classe sidebar-collapsed */ -body.sidebar-collapsed .app-sidebar { - width: var(--sidebar-collapsed) !important; -} - - -body.sidebar-collapsed .nav-bar { - left: var(--sidebar-collapsed) !important; -} - -/* Accessibilité et clickabilité du bouton */ -.toggle-sidebar-btn { - cursor: pointer; -} -.toggle-sidebar-btn[role="button"] { - outline: none; -} - -/* Content card */ -.content-card { - background: var(--office-card); - border-radius: 8px; - box-shadow: 0 2px 6px rgba(0,0,0,.05); - margin-top: 8px; /* Ajout pour rapprocher visuellement la carte de la nav-bar */ -} - -.content-area { - padding: calc(var(--header-height) + 56px) 24px 24px 24px; /* supprime le +8px */ - max-width: 1400px; - margin: 24px auto !important; -} - - -/* Sidebar collapsée (tablette) */ -@media (max-width: 1200px) { - .nav-bar { left: var(--sidebar-collapsed); } - .content-area { padding-left: 24px; padding-right: 24px; } -} - - -.card-header { - background-color: #fafafa; - border-bottom: 1px solid var(--office-border); - padding: 20px 24px; - font-weight: 600; - color: var(--office-dark); - font-size: 18px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.card-body { - padding: 24px; - background-color: var(--office-card); -} - - -/* ============================================ - HEADER CONTROLS - ============================================ */ -.header-controls { - display: flex; - align-items: center; - gap: 16px; -} - -.header-btn { - background: transparent; - border: none; - color: #313c4c; - padding: 8px; - border-radius: 4px; - cursor: pointer; - position: relative; - transition: background-color 0.2s ease; -} - -.header-btn:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.notification-badge { - position: absolute; - top: 2px; - right: 2px; - background-color: var(--office-accent); - color: white; - font-size: 10px; - font-weight: 600; - width: 15px; - height: 15px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; -} - -.user-menu { - display: flex; - align-items: center; - gap: 12px; - cursor: pointer; - padding: 4px 12px; - border-radius: 6px; - transition: background-color 0.2s ease; -} - -.user-menu:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.user-avatar { - width: 36px; - height: 36px; - border-radius: 50%; - background: linear-gradient(135deg, var(--office-primary), #ff6b35); - color: white; - display: flex; - align-items: center; - justify-content: center; - font-weight: 600; - font-size: 14px; -} - -.user-info { - display: flex; - flex-direction: column; -} - -.user-name { - color: #313c4c; - font-weight: 500; - font-size: 14px; -} - -.user-role { - color: #313c4c; - font-size: 12px; -} - -/* ============================================ - CONTEXT PANEL - ============================================ */ -.context-panel { - position: fixed; - right: -380px; - top: var(--header-height); - bottom: 0; - width: 380px; - background-color: white; - box-shadow: -2px 0 12px rgba(0, 0, 0, 0.1); - z-index: 1015; - transition: right 0.3s ease; - display: flex; - flex-direction: column; - border-left: 1px solid var(--office-border); -} - -.context-panel.open { - right: 0; -} - -.context-header { - background: linear-gradient(135deg, var(--office-primary), #ee6a49); - color: white; - padding: 20px 24px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.context-title { - font-size: 18px; - font-weight: 600; - display: flex; - align-items: center; - gap: 10px; -} - -.context-close { - background: transparent; - border: none; - color: white; - font-size: 20px; - cursor: pointer; - padding: 4px; - border-radius: 4px; - transition: background-color 0.2s ease; -} - -.context-close:hover { - background-color: rgba(255, 255, 255, 0.1); -} - -.context-body { - flex: 1; - padding: 24px; - overflow-y: auto; - background-color: #d0d0d0 !important; -} - -.context-section { - margin-bottom: 28px; -} - -.section-title { - font-size: 14px; - font-weight: 600; - color: var(--office-secondary); - margin-bottom: 12px; - text-transform: uppercase; - letter-spacing: 0.5px; - display: flex; - align-items: center; - gap: 8px; -} - -.section-title i { - font-size: 16px; -} - -.info-box { - background-color: #fafafa; - border: 1px solid var(--office-border); - border-radius: 6px; - padding: 16px; - margin-bottom: 12px; -} - -.info-label { - font-size: 12px; - color: #666; - margin-bottom: 4px; -} - -.info-value { - font-size: 15px; - font-weight: 500; - color: var(--office-dark); - line-height: 1.4; -} - -.action-btn { - width: 100%; - padding: 12px; - background-color: white; - border: 1px solid var(--office-border); - border-radius: 6px; - color: var(--office-dark); - font-weight: 500; - text-align: left; - display: flex; - align-items: center; - gap: 10px; - cursor: pointer; - transition: all 0.2s ease; - margin-bottom: 8px; -} - -.action-btn:hover { - background-color: var(--office-hover); - border-color: var(--office-secondary); - color: var(--office-secondary); -} - -.action-btn i { - width: 20px; - text-align: center; - font-size: 18px; -} - -.photo-container { - text-align: center; - padding: 16px; - background-color: #fafafa; - border-radius: 8px; - border: 1px solid var(--office-border); -} - -.patient-photo { - width: 150px; - height: 150px; - border-radius: 8px; - object-fit: cover; - border: 3px solid white; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - cursor: pointer; - transition: transform 0.3s ease; -} - -.patient-photo:hover { - transform: scale(1.05); -} - -/* ============================================ - CONTEXT TOGGLE BUTTON - ============================================ */ -.context-toggle { - position: fixed; - right: 24px; - bottom: 24px; - width: 56px; - height: 56px; - border-radius: 50%; - background: linear-gradient(135deg, var(--office-primary), #ff6b35); - color: white; - border: none; - box-shadow: 0 4px 12px rgba(183, 71, 42, 0.3); - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - z-index: 1010; - transition: all 0.3s ease; -} - -.context-toggle:hover { - transform: translateY(-2px); - box-shadow: 0 6px 16px rgba(183, 71, 42, 0.4); -} - -/* ============================================ - TEST MODE INDICATOR - ============================================ */ -.test-indicator { - background: linear-gradient(45deg, #ffd700, #ffed4e); - color: #8a6d3b; - padding: 4px 12px; - border-radius: 4px; - font-size: 12px; - font-weight: 600; - display: inline-flex; - align-items: center; - gap: 6px; - margin-left: 12px; - animation: pulse 2s infinite; -} - -@keyframes pulse { - 0% { opacity: 1; } - 50% { opacity: 0.7; } - 100% { opacity: 1; } -} - -/* ============================================ - LANGUAGE SELECTOR - ============================================ */ -.language-selector { - display: flex; - align-items: center; - gap: 8px; - padding: 6px 12px; - background-color: rgba(255, 255, 255, 0.1); - border-radius: 4px; - cursor: pointer; - transition: background-color 0.2s ease; - color: #313c4c; -} - -.language-selector:hover { - background-color: rgba(255, 255, 255, 0.2); -} - -.language-flag { - width: 24px; - height: 16px; - object-fit: cover; - border-radius: 2px; -} - -/* ============================================ - MODAL CUSTOMIZATION - ============================================ */ -.modal-office .modal-header { - background: linear-gradient(135deg, var(--office-secondary), #1e4a8b); - color: white; - border-bottom: none; -} - -.modal-office .modal-title { - font-weight: 600; -} - -/* Force le modal et son voile noir au-dessus de tout */ -.modal-office { - z-index: 1060 !important; -} - -/* Le backdrop (le fond noir) doit aussi être remonté */ -.modal-backdrop { - z-index: 1055 !important; -} - -.modal.show { z-index: 2000; } -.modal-backdrop.show { z-index: 1999; } - -/* ============================================ - RESPONSIVE DESIGN - ============================================ */ -@media (max-width: 1200px) { - .app-sidebar { - width: var(--sidebar-collapsed); - } - .app-main { - margin-left: var(--sidebar-collapsed); - } - - .nav-text, - .nav-title, - .nav-badge, - .nav-arrow { - display: none; - } - - .nav-link { - justify-content: center; - padding: 16px; - } - - .nav-link i { - margin-right: 0; - font-size: 20px; - } - - .nav-submenu .nav-link { - padding: 12px; - justify-content: center; - } - - .nav-submenu .nav-link::before { - display: none; - } - - .context-panel { - width: 100%; - right: -100%; - } -} -/**/ -/* Mobile — UNE SEULE définition */ -@media (max-width: 768px) { - .app-sidebar { transform: translateX(-100%); width: var(--sidebar-width); } - .app-sidebar.show { transform: translateX(0); } - .app-main { margin-left: 0; } - - .nav-bar { left: 0; border-radius: 0; top: var(--header-height); } - .nav-bar > .nav-tabs { padding: 0 16px; } - - /* Garder +8px ici pour fermer l’écart (rouge) */ - .content-area { padding: calc(var(--header-height) + 56px + 8px) 16px 16px 16px; max-width: 100%; } - .content-card { border-radius: 8px; margin: 8px 0 16px 0; /* 8px en haut, 16px en bas */ } - .header-content { padding: 0 16px; } - .user-info { display: none; } - - .accordion-header, .accordion-header i, .accordion-header span { - font-size: 1.8rem !important; - font-weight: bold !important; - } - - .accordion-title { - font-size: 0.9rem !important; - } - - .financial-item { - border-right: none !important; - border-bottom: 1px solid var(--office-border); - } - - .editor-paper { - padding: 1rem !important; - font-size: 9pt; - } - - .chart-container { - height: 60vh; - } - - .card-header { - flex-direction: column; - align-items: flex-start !important; - } - - .btn-export { - margin-top: 0.5rem; - align-self: flex-end; - } -} - -/* Écrans larges : mêmes insets pour nav-tabs et content-area */ -@media (min-width: 1400px) { - .content-area { - padding-left: calc((100vw - 1400px) / 2); - padding-right: calc((100vw - 1400px) / 2); - } -} - -/* ============================================ - SCROLLBAR STYLING - ============================================ */ -.app-sidebar::-webkit-scrollbar, -.context-body::-webkit-scrollbar { - width: 6px; -} - -.app-sidebar::-webkit-scrollbar-track, -.context-body::-webkit-scrollbar-track { - background: rgba(255, 255, 255, 0.1); - border-radius: 3px; -} - -.app-sidebar::-webkit-scrollbar-thumb, -.context-body::-webkit-scrollbar-thumb { - background: rgba(255, 255, 255, 0.3); - border-radius: 3px; -} - -.app-sidebar::-webkit-scrollbar-thumb:hover, -.context-body::-webkit-scrollbar-thumb:hover { - background: rgba(255, 255, 255, 0.4); -} - -/* ============================================ - STYLE DE SCROLLBAR POUR NAV-TABS - ============================================ */ -.nav-tabs::-webkit-scrollbar { - height: 4px; -} - -.nav-tabs::-webkit-scrollbar-track { - background: rgba(0, 0, 0, 0.05); - border-radius: 2px; -} - -.nav-tabs::-webkit-scrollbar-thumb { - background: rgba(0, 0, 0, 0.2); - border-radius: 2px; -} - -.nav-tabs::-webkit-scrollbar-thumb:hover { - background: rgba(0, 0, 0, 0.3); -} - -/*Accueil*/ -.container { padding: 0 25px 25px 25px 25px; } -h1 { margin-bottom: 20px; } -.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; } -.card { - background: #fff; - padding: 20px; - border-radius: 8px; - box-shadow: 0 2px 6px rgba(0,0,0,.05); -} -.card h3 { margin: 0 0 10px; font-size: 14px; color: #666; } -.card .value { font-size: 1.0rem; font-weight: bold; } - -.grid-1{display:grid; grid-template-rows:auto; margin-top:25px;} -.grid-2 { display:grid; grid-template-columns: 1fr 1fr; gap:20px; margin-top:25px; } - - -ul { list-style:none; padding:0; margin:0; } -li { padding:10px 0; border-bottom:1px solid #eee; } -li i { margin-right:10px; color:#007bff; } - -.alert i { color:#ff9800; } - -.chart { - height: 190px; - background:#eef2f7; - border-radius:6px; - display:flex; - align-items:center; - justify-content:center; - color:#888; - font-style:italic; - min-height: 315px; -} - -/* Style pour les sous-détails dans les KPIs */ -.sub-values { - margin-top: 10px; - padding-top: 10px; - border-top: 1px solid #eee; /* Fine séparation pour l'harmonie */ -} - -.sub-item { - display: flex; - justify-content: space-between; - font-size: 12px; /* Plus petit pour ne pas voler la vedette au KPI principal */ - color: #666; - line-height: 1.6; -} - -.sub-item strong { - color: #333; -} - -.accordion-section { - margin-bottom: 2px; - border: 1px solid #ddd; - border-radius: 5px; - overflow: hidden; -} - -.accordion-header { - display: flex; - align-items: center; - padding: 12px 15px; - background-color: #f1f5fc; - cursor: pointer; - font-weight: bold; - font-size: 1.1rem; - transition: background-color 0.3s; - margin: 0; -} - -.accordion-header:hover { - background-color: #e9ecef; -} - -.accordion-header.active { - background-color: #e2e6ea; -} - -.accordion-header i:first-child { - margin-right: 10px; - font-size: 1.2rem; -} - -.accordion-title { - flex-grow: 1; -} - -.accordion-icon { - margin-left: auto; - transition: transform 0.3s ease; -} - -.accordion-header.active .accordion-icon { - transform: rotate(180deg); -} - -.accordion-content { - display: none; - padding: 2px; - background-color: #fff; - border-top: 1px solid #ddd; -} - -.tab-container { - width: 100%; - overflow: auto; -} - -.table td.text-end, .table th.text-end { - white-space: nowrap !important; - min-width: 110px; /* Légèrement augmenté pour les gros montants */ - padding-left: 15px !important; - padding-right: 15px !important; /* Ajout crucial pour l'équilibre visuel */ - font-family: 'Courier New', Courier, monospace; /* Optionnel: police mono pour aligner les décimales */ -} - -/* Global Container */ -#div_accueil, -#div_police, -#div_texte_cp, -#div_emission, -#div_colleges_police, -#div_ajout_adherent, -#div_avenant, -#div_liste_adherent, -#div_adherent, -#div_liste { - background-color: var(--office-light); - color: var(--office-dark); - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; -} - -/* Card Styling */ -#div_accueil .card, -#div_police .card, -#div_texte_cp .card, -#div_emission .card, -#div_colleges_police .card, -#div_ajout_adherent .card, -#div_avenant .card, -#div_liste_adherent .card, -#div_adherent .card, -#div_liste .card{ - border: 1px solid var(--office-border); - border-radius: 2px; /* Office style is more rectangular */ -} - -#div_police .card-header, -#div_texte_cp .card-header, -#div_emission .card-header, -#div_colleges_police .card-header, -#div_ajout_adherent .card-header, -#div_avenant .card-header, -#div_liste_adherent .card-header -#div_adherent .card-header, -#div_adherent .card-header{ - border-bottom: 1px solid var(--office-border) !important; - background-color: white; - color: var(--office-dark); - border-bottom: none; -} - -/* Form Controls */ -.form-label { - color: var(--office-primary); - margin-bottom: 2px; - font-size: 0.75rem; -} - -.form-control { - border-radius: 2px; - border: 1px solid var(--office-border); - font-size: 0.9rem; - padding: 0.5rem 0.75rem; -} - -.form-control[readonly] { - background-color: var(--office-warm-bg); - border-color: var(--office-common); - box-shadow: inset 0 1px 2px rgba(0,0,0,0.02); - color: #555; - font-weight: 500; -} - -/* Status Boxes (Custom) */ -.status-box { - border: 1px solid var(--office-border); - padding: 8px; - text-align: center; - background: white; - display: flex; - flex-direction: column; - border-radius: 2px; -} - -.status-box.active { - background-color: var(--office-secondary); - color: white; - border-color: var(--office-secondary); -} - -.status-box small { - font-size: 0.65rem; - text-transform: uppercase; - display: block; -} - -.status-box span { - font-weight: bold; - font-size: 1rem; -} - -/* Financial Footer */ -.financial-item { - transition: background 0.3s; -} - -.financial-item:hover { - background-color: var(--office-hover); -} - -/* Buttons */ -.btn-primary { - background-color: var(--office-primary); - border-color: var(--office-primary); -} - -.btn-secondary { - background-color: var(--office-secondary); - border-color: var(--office-secondary); -} - -.btn-outline-office { - color: var(--office-secondary); - border-color: var(--office-secondary); -} - -.btn-outline-office:hover { - background-color: var(--office-secondary); - color: white; -} - -/* Tables */ -.custom-table thead th { - background-color: var(--office-common); - border-bottom: 2px solid var(--office-primary); - color: var(--office-dark); - font-weight: 600; - font-size: 0.8rem; - padding: 12px; -} - -.custom-table tbody td { - padding: 10px 12px; - border-bottom: 1px solid var(--office-border); -} - -/* Datepicker Specific */ -.datepicker { - border-left: 3px solid var(--office-primary) !important; - font-weight: bold; -} - -/* Styles spécifiques à l'éditeur de texte CP */ - -/* Effet "Feuille de papier" pour le textarea */ -.editor-paper { - background-color: #ffffff !important; - background-image: - linear-gradient(#f1f1f1 1px, transparent 1px); - background-size: 100% 2.5rem; /* Simule des lignes d'écriture si besoin */ - line-height: 2.5rem; - padding: 2rem !important; - border: 1px solid var(--office-border) !important; - border-radius: 0; - font-family: 'Consolas', 'Monaco', 'Courier New', monospace; /* Police technique et lisible */ - color: var(--office-dark); - resize: vertical; - transition: all 0.3s ease; -} - -.editor-paper:focus { - outline: none; - box-shadow: 0 0 15px rgba(0,0,0,0.1) !important; - border-color: var(--office-secondary) !important; /* Focus bleu Office */ -} - -/* Bouton Enregistrer - Style Bleu Office */ -#div_texte_cp .btn-secondary { - background-color: var(--office-secondary) !important; - border-color: var(--office-secondary) !important; - border-radius: 2px; - transition: transform 0.2s; -} - -#div_texte_cp .btn-secondary:hover { - background-color: #1e4275 !important; - transform: translateY(-1px); -} - -/* Conteneur de l'éditeur */ -.editor-container { - background: white; - border-radius: 2px; - position: relative; -} - -/* Style Table Quittance - Thème Office */ - -.custom-quittance-table thead th { - background-color: var(--office-primary) !important; /* Orange PowerPoint */ - color: white; - font-size: 0.75rem; - text-transform: uppercase; - letter-spacing: 0.5px; - border: none; - padding: 12px 8px; -} - -.custom-quittance-table tbody td { - font-size: 0.85rem; - border-bottom: 1px solid var(--office-border); - padding: 10px 8px; -} - -/* Alternance de couleurs subtile */ -.custom-quittance-table tbody tr:nth-child(even) { - background-color: var(--office-primary-lighter); -} - -/* Alignements spécifiques */ -.text-end { text-align: right !important; } -.text-center { text-align: center !important; } - -/* Modal Styles */ -.bg-office-blue { - background-color: var(--office-secondary) !important; -} - -.btn-office-gray { - background-color: var(--office-common); - color: var(--office-dark); - border: 1px solid var(--office-border); -} - -/* Animation au chargement (nécessite Animate.css ou transition simple) */ -.animate__fadeIn { - animation: fadeIn 0.5s ease-in; -} - -@keyframes fadeIn { - from { opacity: 0; transform: translateY(10px); } - to { opacity: 1; transform: translateY(0); } -} - -/* Boutons d'action dans le tableau */ -.custom-quittance-table .btn-group .btn { - padding: 0.25rem 0.5rem; - border-color: var(--office-border); -} - -.custom-quittance-table .btn-group .btn:hover { - background-color: var(--office-hover); -} - -.custom-quittance-table .btn-link { - color: var(--office-secondary); -} - -/* Footer de table plus marqué */ -.custom-quittance-table tfoot { - background-color: var(--office-light) !important; - border-top: 2px solid var(--office-secondary); -} - -/* Background spécifique pour la carte récapitulative TTC */ -.bg-office-primary-lighter { - background-color: var(--office-primary-lighter); -} - -/* Header bleu type Office */ -.bg-office-blue { - background-color: var(--office-secondary) !important; -} - -/* Style spécifique pour le footer de la table émission */ -.custom-quittance-table tfoot.table-dark { - background-color: var(--office-dark) !important; - border-top: 3px solid var(--office-primary); -} - -@media print { - .btn, .modal, .sr-only { display: none !important; } - .card { border: 1px solid #ddd !important; box-shadow: none !important; } -} - -/* Style Table Collèges - Vision Office 365 */ - -.custom-college-table thead th { - background-color: var(--office-common) !important; - color: var(--office-dark) !important; - font-size: 0.65rem; - font-weight: 800; - text-transform: uppercase; - border-bottom: 2px solid var(--office-primary); - vertical-align: middle; - padding: 10px 5px; -} - -.custom-college-table tbody td { - font-size: 0.75rem; /* Compact pour tenir toutes les colonnes */ - white-space: nowrap; - padding: 8px 5px; -} - -/* Séparateurs verticaux pour groupes de données (Nb, HT, TTC) */ -.border-start { - border-left: 1px solid var(--office-border) !important; -} - -/* Style des boutons de montant (Action principale) */ -.custom-college-table .btn-primary { - background-color: var(--office-secondary); - border: none; - font-size: 0.75rem; -} - -.custom-college-table .btn-primary:hover { - background-color: var(--office-primary); - transform: scale(1.05); -} - -/* Footer de table sombre type Excel Premium */ -.custom-college-table tfoot { - border-top: 3px solid var(--office-primary); - background-color: var(--office-dark) !important; -} - -.custom-college-table tfoot td { - padding: 12px 5px; -} - -/* Badge de catégorie épuré */ -.badge.rounded-pill { - font-weight: 600; - padding: 5px 10px; -} - -/* Style Recherche Individuelle */ - -#div_familiale .form-select, -#div_familiale .form-control { - border: 1px solid var(--office-border); - transition: all 0.2s ease; - border-radius: 4px; -} - -#div_familiale .form-select:focus, -#div_familiale .form-control:focus { - border-color: var(--office-secondary); - box-shadow: 0 0 0 0.25rem rgba(43, 87, 154, 0.1); -} - -/* Groupement d'input avec icônes */ -.input-group-text { - border: 1px solid var(--office-border); - color: #adb5bd; -} - -/* Boutons personnalisés */ -#div_familiale .btn-primary { - background-color: var(--office-secondary) !important; - border: none; - border-radius: 4px; -} - -#div_familiale .btn-primary:hover { - background-color: #1a3a6b !important; - transform: translateY(-1px); -} - -#div_familiale .btn-outline-secondary { - color: var(--office-secondary); - border-color: var(--office-secondary); - border-radius: 4px; -} - -#div_familiale .btn-outline-secondary:hover { - background-color: var(--office-secondary); - color: white; -} - -/* Badge spécifique Primes non facturées */ -.badge.bg-warning { - background-color: #fff3cd !important; - color: #856404 !important; - border: 1px solid #ffeeba !important; - font-size: 0.9rem; - padding: 8px 12px; -} - -/* Style pour le sélecteur de date focus */ -.datepicker:focus { - border-color: var(--office-secondary); - background-color: #f8faff; -} - -/* Animation de l'affichage de la prime */ -#div_prime:not(:empty) { - border: 2px dashed var(--office-primary-lighter); - padding: 15px; - border-radius: 8px; - background-color: white; -} - -/* Styles communs pour tous les graphiques */ -.chart-container { - position: relative; - width: 100%; - min-height: 300px; -} - -.legend-text { - vertical-align: middle; -} - -.btn-export { - padding: 0.25rem 0.5rem; - font-size: 0.75rem; -} +.app-sidebar,body{overflow-x:hidden}.app-logo,.nav-link,.nav-tab{text-decoration:none}.custom-table thead th,body{background-color:var(--office-common)}.custom-quittance-table thead th,.nav-title,.section-title{letter-spacing:.5px;text-transform:uppercase}.app-header,.custom-quittance-table tfoot{background-color:var(--office-light)!important}.custom-college-table thead th,.nav-title,.section-title,.status-box small{text-transform:uppercase}:root{--office-primary:#b7472a;--office-secondary:#2b579a;--office-accent:#107c10;--office-light:#f3f2f1;--office-common:#e6e6e6;--office-dark:#323130;--office-border:#d0d0d0;--office-hover:#f0f0f0;--office-card:#ffffff;--sidebar-width:260px;--sidebar-collapsed:85px;--header-height:64px;--transition-speed:0.3s;--breakpoint-tablet:1200px;--breakpoint-mobile:768px;--office-primary-light:rgba(183, 71, 42, 0.08);--office-primary-lighter:rgba(183, 71, 42, 0.04);--office-primary-border:rgba(183, 71, 42, 0.15);--office-warm-bg:#fefcfb;--office-card-highlight:#fff9f8;--content-margin-left:calc(var(--sidebar-width) + 24px);--content-margin-right:24px;--container-max:1400px;--container-pad:24px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Segoe UI','Segoe UI Web (West European)',-apple-system,BlinkMacSystemFont,Roboto,'Helvetica Neue',sans-serif;color:var(--office-dark);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-header{height:var(--header-height);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 2px 10px rgba(0,0,0,.1);position:fixed;top:0;left:0;right:0;z-index:1030}.app-sidebar,.nav-bar{top:var(--header-height)}.user-menu.dropdown-toggle{display:flex;align-items:center;outline:0;box-shadow:none!important}.header-content,.user-menu{align-items:center;display:flex}.user-menu.dropdown-toggle::after,body.sidebar-collapsed .app-sidebar .nav-link .nav-text{display:none}#userDropdownBtn[aria-expanded=true] .user-arrow{transform:rotate(180deg);color:var(--bs-primary)}.dropdown-menu[data-bs-popper]{margin-top:15px!important}.header-content{justify-content:space-between;height:100%;padding:0 24px}#userDropdownBtn{gap:8px}.user-name{font-size:.85rem!important;margin-bottom:-2px}.user-role{font-size:1.15rem!important;opacity:.8}.user-avatar{width:32px!important;height:32px!important;display:flex;align-items:center;justify-content:center}.user-arrow{transition:transform .3s;color:#6c757d;font-size:.7rem;margin-left:4px!important}.dropdown-menu{z-index:2000!important;min-width:220px;border:1px solid rgba(0,0,0,.1);padding:.25rem 0}.dropdown-item{padding:.4rem 1rem;font-size:.85rem}.dropdown-header{padding:.5rem 1rem}.header-controls,.logo-container{display:flex;align-items:center;gap:16px}.app-logo{display:flex;align-items:center;color:#313c4c;font-weight:600;font-size:20px}.app-logo img{height:36px}.notification-btn i{font-size:15pt!important}#lienlogo img{width:50px;max-height:50px}.app-sidebar{width:var(--sidebar-width)!important;background:linear-gradient(180deg,var(--office-primary) 0,#a53e24 100%);position:fixed;left:0;bottom:0;z-index:1020;box-shadow:2px 0 8px rgba(0,0,0,.1);transition:width var(--transition-speed) ease;overflow-y:auto}.nav-link,body.sidebar-collapsed .app-sidebar .nav-link{position:relative}.app-sidebar::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 10% 20%,rgba(255,255,255,.03) 0,transparent 20%),radial-gradient(circle at 90% 80%,rgba(255,255,255,.03) 0,transparent 20%);pointer-events:none}.app-sidebar .nav-link .nav-text{display:inline;opacity:1;transition:opacity var(--transition-speed) ease}body.sidebar-collapsed .app-sidebar .nav-link:hover::after{content:attr(data-label);position:absolute;top:50%;left:100%;transform:translateY(-50%);background:rgba(0,0,0,.85);color:#fff;padding:6px 12px;border-radius:4px;white-space:nowrap;font-size:14px;margin-left:8px;box-shadow:0 2px 6px rgba(0,0,0,.2);opacity:0;transition:opacity var(--transition-speed) ease,transform var(--transition-speed) ease;z-index:2000;opacity:1;transform:translateY(-50%) translateX(5px)}body.sidebar-collapsed .nav-arrow,body.sidebar-collapsed .nav-submenu{display:none!important}body.sidebar-collapsed .nav-item .nav-link{display:flex;justify-content:center;padding-left:0;padding-right:0}.sidebar-nav{padding:24px 0}.nav-section{margin-bottom:32px;padding:0 20px}.nav-title{color:rgba(255,255,255,.7);font-size:12px;font-weight:600;margin-bottom:12px;padding:0 16px}.nav-item{margin-bottom:4px}.nav-link{display:flex;align-items:center;color:rgba(255,255,255,.85);padding:12px 16px;border-radius:6px;transition:.2s;overflow:hidden}.nav-link:hover{background-color:rgba(255,255,255,.1);color:#fff}.nav-link.active{background-color:rgba(255,255,255,.15);color:#fff;font-weight:500}.nav-link i{width:24px;font-size:18px;margin-right:12px;text-align:center}.nav-tab i,.section-title i{font-size:16px}.nav-text{flex:1;font-size:14px}.nav-bar,.nav-bar>.nav-tabs{align-items:center;display:flex}.nav-badge{background-color:var(--office-accent);color:#fff;font-size:11px;padding:2px 6px;border-radius:10px;margin-left:8px}.nav-arrow{font-size:12px;opacity:.7;transition:transform .2s}.nav-link[aria-expanded=true] .nav-arrow{transform:rotate(90deg);transition:transform .3s}.nav-submenu{background-color:rgba(0,0,0,.1);border-radius:6px;margin-top:4px;padding:8px 0}.nav-submenu .nav-link{padding:8px 16px 8px 52px;font-size:13px}.nav-submenu .nav-link::before{content:'•';position:absolute;left:36px;opacity:.6}.app-main{margin-left:var(--sidebar-width);padding-top:var(--header-height);min-height:100vh;transition:margin-left var(--transition-speed) ease,width var(--transition-speed) ease;background-color:var(--office-light);width:calc(100% - var(--sidebar-width))}body.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed)!important;width:calc(100% - var(--sidebar-collapsed))!important}.toggle-sidebar-btn{font-size:20px;padding-left:10px;cursor:pointer}.nav-bar,ul{padding:0;margin:0}.nav-bar.collapsed,body.sidebar-collapsed .nav-bar{left:var(--sidebar-collapsed)!important}.nav-bar{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.05);border:1px solid var(--office-border);position:fixed;left:var(--sidebar-width);right:0;z-index:1000;height:56px;transition:left var(--transition-speed) ease}.nav-bar>.nav-tabs{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad);height:100%;gap:4px;overflow-x:auto}.card-header,.nav-tab{color:var(--office-dark);align-items:center}.nav-tab{display:inline-flex;padding:10px 18px;background-color:transparent;border-radius:6px;font-size:14px;font-weight:500;white-space:nowrap;transition:.2s;border:1px solid transparent;height:40px}.header-btn,.user-menu{transition:background-color .2s;cursor:pointer}.nav-tab:hover{background-color:var(--office-hover);color:var(--office-secondary)}.nav-tab.active,.status-box.active{background-color:var(--office-secondary);color:#fff;border-color:var(--office-secondary)}.nav-tab i{margin-right:8px}.nav-bar>.nav-tabs::-webkit-scrollbar{height:10px}.nav-bar>.nav-tabs::-webkit-scrollbar-track{background:#f1f1f1;border-radius:8px}.nav-bar>.nav-tabs::-webkit-scrollbar-thumb{background:var(--office-common);border-radius:8px}.nav-bar>.nav-tabs::-webkit-scrollbar-thumb:hover{background:#97999b}body.sidebar-collapsed .app-sidebar{width:var(--sidebar-collapsed)!important}.toggle-sidebar-btn[role=button]{outline:0}.content-card{background:var(--office-card);border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.05);margin-top:8px}.content-area{padding:calc(var(--header-height) + 56px) 24px 24px 24px;max-width:1400px;margin:24px auto!important}.card-header{background-color:#fafafa;border-bottom:1px solid var(--office-border);padding:20px 24px;font-weight:600;font-size:18px;display:flex;justify-content:space-between}.notification-badge,.user-menu{display:flex;align-items:center}.card-body{padding:24px;background-color:var(--office-card)}.header-btn{background:0 0;border:none;color:#313c4c;padding:8px;border-radius:4px;position:relative}.context-close:hover,.header-btn:hover,.user-menu:hover{background-color:rgba(255,255,255,.1)}.notification-badge{position:absolute;top:2px;right:2px;background-color:var(--office-accent);color:#fff;font-size:10px;font-weight:600;width:15px;height:15px;border-radius:50%;justify-content:center}.user-menu{gap:12px;padding:4px 12px;border-radius:6px}.context-header,.user-avatar{align-items:center;display:flex}.user-avatar{border-radius:50%;background:linear-gradient(135deg,var(--office-primary),#ff6b35);color:#fff;justify-content:center;font-weight:600;font-size:14px}.user-name,.user-role{color:#313c4c}.user-info{display:flex;flex-direction:column}.user-name{font-weight:500}.context-panel{position:fixed;right:-380px;top:var(--header-height);bottom:0;width:380px;background-color:#fff;box-shadow:-2px 0 12px rgba(0,0,0,.1);z-index:1015;transition:right .3s;display:flex;flex-direction:column;border-left:1px solid var(--office-border)}.context-panel.open{right:0}.context-header{background:linear-gradient(135deg,var(--office-primary),#ee6a49);color:#fff;padding:20px 24px;justify-content:space-between}.context-title{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.context-close{background:0 0;border:none;color:#fff;font-size:20px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.context-body{flex:1;padding:24px;overflow-y:auto;background-color:#d0d0d0!important}.action-btn,.section-title{align-items:center;display:flex}.context-section{margin-bottom:28px}.section-title{font-size:14px;font-weight:600;color:var(--office-secondary);margin-bottom:12px;gap:8px}.info-box{background-color:#fafafa;border:1px solid var(--office-border);border-radius:6px;padding:16px;margin-bottom:12px}.info-label{font-size:12px;color:#666;margin-bottom:4px}.info-value{font-size:15px;font-weight:500;color:var(--office-dark);line-height:1.4}.action-btn{width:100%;padding:12px;background-color:#fff;border:1px solid var(--office-border);border-radius:6px;color:var(--office-dark);font-weight:500;text-align:left;gap:10px;cursor:pointer;transition:.2s;margin-bottom:8px}.modal-office .modal-title,.test-indicator{font-weight:600}.action-btn:hover{background-color:var(--office-hover);border-color:var(--office-secondary);color:var(--office-secondary)}.action-btn i{width:20px;text-align:center;font-size:18px}.photo-container{text-align:center;padding:16px;background-color:#fafafa;border-radius:8px;border:1px solid var(--office-border)}.patient-photo{width:150px;height:150px;border-radius:8px;object-fit:cover;border:3px solid #fff;box-shadow:0 4px 8px rgba(0,0,0,.1);cursor:pointer;transition:transform .3s}.patient-photo:hover{transform:scale(1.05)}.context-toggle{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--office-primary),#ff6b35);color:#fff;border:none;box-shadow:0 4px 12px rgba(183,71,42,.3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;z-index:1010;transition:.3s}.context-toggle:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(183,71,42,.4)}.test-indicator{background:linear-gradient(45deg,gold,#ffed4e);color:#8a6d3b;padding:4px 12px;border-radius:4px;font-size:12px;display:inline-flex;align-items:center;gap:6px;margin-left:12px;animation:2s infinite pulse}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}.language-selector{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:rgba(255,255,255,.1);border-radius:4px;cursor:pointer;transition:background-color .2s;color:#313c4c}.language-selector:hover{background-color:rgba(255,255,255,.2)}.language-flag{width:24px;height:16px;object-fit:cover;border-radius:2px}.modal-office .modal-header{background:linear-gradient(135deg,var(--office-secondary),#1e4a8b);color:#fff;border-bottom:none}.modal-office{z-index:1060!important}.modal-backdrop{z-index:1055!important}.modal.show{z-index:2000}.modal-backdrop.show{z-index:1999}@media (max-width:1200px){.nav-bar{left:var(--sidebar-collapsed)}.content-area{padding-left:24px;padding-right:24px}.app-sidebar{width:var(--sidebar-collapsed)}.app-main{margin-left:var(--sidebar-collapsed)}.nav-arrow,.nav-badge,.nav-submenu .nav-link::before,.nav-text,.nav-title{display:none}.nav-link{justify-content:center;padding:16px}.nav-link i{margin-right:0;font-size:20px}.nav-submenu .nav-link{padding:12px;justify-content:center}.context-panel{width:100%;right:-100%}}@media (max-width:768px){.app-sidebar{transform:translateX(-100%);width:var(--sidebar-width)}.app-sidebar.show{transform:translateX(0)}.app-main{margin-left:0}.nav-bar{left:0;border-radius:0;top:var(--header-height)}.header-content,.nav-bar>.nav-tabs{padding:0 16px}.content-area{padding:calc(var(--header-height) + 56px + 8px) 16px 16px 16px;max-width:100%}.content-card{border-radius:8px;margin:8px 0 16px}.user-info{display:none}.accordion-header,.accordion-header i,.accordion-header span{font-size:1.8rem!important;font-weight:700!important}.accordion-title{font-size:.9rem!important}.financial-item{border-right:none!important;border-bottom:1px solid var(--office-border)}.editor-paper{padding:1rem!important;font-size:9pt}.chart-container{height:60vh}.card-header{flex-direction:column;align-items:flex-start!important}.btn-export{margin-top:.5rem;align-self:flex-end}}.grid-1,.grid-2{display:grid;margin-top:25px}@media (min-width:1400px){.content-area{padding-left:calc((100vw - 1400px)/ 2);padding-right:calc((100vw - 1400px)/ 2)}}.app-sidebar::-webkit-scrollbar,.context-body::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-track,.context-body::-webkit-scrollbar-track{background:rgba(255,255,255,.1);border-radius:3px}.app-sidebar::-webkit-scrollbar-thumb,.context-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:3px}.app-sidebar::-webkit-scrollbar-thumb:hover,.context-body::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.4)}.nav-tabs::-webkit-scrollbar{height:4px}.nav-tabs::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:2px}.nav-tabs::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:2px}.nav-tabs::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}.container{padding:0 25px 25px}h1{margin-bottom:20px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.05)}.card h3{margin:0 0 10px;font-size:14px;color:#666}.card .value{font-size:1rem;font-weight:700}.grid-1{grid-template-rows:auto}.grid-2{grid-template-columns:1fr 1fr;gap:20px}ul{list-style:none}li{padding:10px 0;border-bottom:1px solid #eee}li i{margin-right:10px;color:#007bff}.alert i{color:#ff9800}.chart{height:190px;background:#eef2f7;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#888;font-style:italic;min-height:315px}.sub-values{margin-top:10px;padding-top:10px;border-top:1px solid #eee}.sub-item{display:flex;justify-content:space-between;font-size:12px;color:#666;line-height:1.6}.sub-item strong{color:#333}.accordion-section{margin-bottom:2px;border:1px solid #ddd;border-radius:5px;overflow:hidden}.accordion-header{display:flex;align-items:center;padding:12px 15px;background-color:#f1f5fc;cursor:pointer;font-weight:700;font-size:1.1rem;transition:background-color .3s;margin:0}.accordion-header:hover{background-color:#e9ecef}.accordion-header.active{background-color:#e2e6ea}.accordion-header i:first-child{margin-right:10px;font-size:1.2rem}.accordion-title{flex-grow:1}.accordion-icon{margin-left:auto;transition:transform .3s}.accordion-header.active .accordion-icon{transform:rotate(180deg)}.accordion-content{display:none;padding:2px;background-color:#fff;border-top:1px solid #ddd}.tab-container{width:100%;overflow:auto}.table td.text-end,.table th.text-end{white-space:nowrap!important;min-width:110px;padding-left:15px!important;padding-right:15px!important;font-family:'Courier New',Courier,monospace}#div_accueil,#div_adherent,#div_ajout_adherent,#div_avenant,#div_colleges_police,#div_emission,#div_liste,#div_liste_adherent,#div_police,#div_texte_cp{background-color:var(--office-light);color:var(--office-dark);font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif}#div_accueil .card,#div_adherent .card,#div_ajout_adherent .card,#div_avenant .card,#div_colleges_police .card,#div_emission .card,#div_liste .card,#div_liste_adherent .card,#div_police .card,#div_texte_cp .card{border:1px solid var(--office-border);border-radius:2px}#div_adherent .card-header,#div_ajout_adherent .card-header,#div_avenant .card-header,#div_colleges_police .card-header,#div_emission .card-header,#div_liste_adherent .card-header #div_adherent .card-header,#div_police .card-header,#div_texte_cp .card-header{border-bottom:1px solid var(--office-border)!important;background-color:#fff;color:var(--office-dark);border-bottom:none}.form-label{color:var(--office-primary);margin-bottom:2px;font-size:.75rem}.form-control{border-radius:2px;border:1px solid var(--office-border);font-size:.9rem;padding:.5rem .75rem}.form-control[readonly]{background-color:var(--office-warm-bg);border-color:var(--office-common);box-shadow:inset 0 1px 2px rgba(0,0,0,.02);color:#555;font-weight:500}.status-box{border:1px solid var(--office-border);padding:8px;text-align:center;background:#fff;display:flex;flex-direction:column;border-radius:2px}.status-box small{font-size:.65rem;display:block}.status-box span{font-weight:700;font-size:1rem}.financial-item{transition:background .3s}.custom-quittance-table .btn-group .btn:hover,.financial-item:hover{background-color:var(--office-hover)}.btn-primary{background-color:var(--office-primary);border-color:var(--office-primary)}.btn-secondary,.custom-college-table .btn-primary{background-color:var(--office-secondary)}.btn-outline-office,.btn-secondary{border-color:var(--office-secondary)}.btn-outline-office{color:var(--office-secondary)}#div_familiale .btn-outline-secondary:hover,.btn-outline-office:hover{background-color:var(--office-secondary);color:#fff}.custom-table thead th{border-bottom:2px solid var(--office-primary);color:var(--office-dark);font-weight:600;font-size:.8rem;padding:12px}.custom-table tbody td{padding:10px 12px;border-bottom:1px solid var(--office-border)}.datepicker{border-left:3px solid var(--office-primary)!important;font-weight:700}.editor-paper{background-color:#fff!important;background-image:linear-gradient(#f1f1f1 1px,transparent 1px);background-size:100% 2.5rem;line-height:2.5rem;padding:2rem!important;border:1px solid var(--office-border)!important;border-radius:0;font-family:Consolas,Monaco,'Courier New',monospace;color:var(--office-dark);resize:vertical;transition:.3s}.editor-paper:focus{outline:0;box-shadow:0 0 15px rgba(0,0,0,.1)!important;border-color:var(--office-secondary)!important}#div_texte_cp .btn-secondary{background-color:var(--office-secondary)!important;border-color:var(--office-secondary)!important;border-radius:2px;transition:transform .2s}#div_texte_cp .btn-secondary:hover{background-color:#1e4275!important;transform:translateY(-1px)}.editor-container{background:#fff;border-radius:2px;position:relative}.custom-quittance-table thead th{background-color:var(--office-primary)!important;color:#fff;font-size:.75rem;border:none;padding:12px 8px}.custom-quittance-table tbody td{font-size:.85rem;border-bottom:1px solid var(--office-border);padding:10px 8px}.bg-office-primary-lighter,.custom-quittance-table tbody tr:nth-child(2n){background-color:var(--office-primary-lighter)}.text-end{text-align:right!important}.text-center{text-align:center!important}.btn-office-gray{background-color:var(--office-common);color:var(--office-dark);border:1px solid var(--office-border)}#div_familiale .btn-primary,.bg-office-blue{background-color:var(--office-secondary)!important}.animate__fadeIn{animation:.5s ease-in fadeIn}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.custom-quittance-table .btn-group .btn{padding:.25rem .5rem;border-color:var(--office-border)}.custom-quittance-table .btn-link{color:var(--office-secondary)}.custom-quittance-table tfoot{border-top:2px solid var(--office-secondary)}.custom-college-table tfoot,.custom-quittance-table tfoot.table-dark{border-top:3px solid var(--office-primary);background-color:var(--office-dark)!important}@media print{.btn,.modal,.sr-only{display:none!important}.card{border:1px solid #ddd!important;box-shadow:none!important}}.custom-college-table thead th{background-color:var(--office-common)!important;color:var(--office-dark)!important;font-size:.65rem;font-weight:800;border-bottom:2px solid var(--office-primary);vertical-align:middle;padding:10px 5px}.custom-college-table tbody td{font-size:.75rem;white-space:nowrap;padding:8px 5px}.border-start{border-left:1px solid var(--office-border)!important}.custom-college-table .btn-primary{border:none;font-size:.75rem}.custom-college-table .btn-primary:hover{background-color:var(--office-primary);transform:scale(1.05)}.custom-college-table tfoot td{padding:12px 5px}.badge.rounded-pill{font-weight:600;padding:5px 10px}#div_familiale .form-control,#div_familiale .form-select{border:1px solid var(--office-border);transition:.2s;border-radius:4px}#div_familiale .form-control:focus,#div_familiale .form-select:focus{border-color:var(--office-secondary);box-shadow:0 0 0 .25rem rgba(43,87,154,.1)}.input-group-text{border:1px solid var(--office-border);color:#adb5bd}#div_familiale .btn-primary{border:none;border-radius:4px}#div_familiale .btn-primary:hover{background-color:#1a3a6b!important;transform:translateY(-1px)}#div_familiale .btn-outline-secondary{color:var(--office-secondary);border-color:var(--office-secondary);border-radius:4px}.badge.bg-warning{background-color:#fff3cd!important;color:#856404!important;border:1px solid #ffeeba!important;font-size:.9rem;padding:8px 12px}.datepicker:focus{border-color:var(--office-secondary);background-color:#f8faff}#div_prime:not(:empty){border:2px dashed var(--office-primary-lighter);padding:15px;border-radius:8px;background-color:#fff}.chart-container{position:relative;width:100%;min-height:300px}.legend-text{vertical-align:middle}.btn-export{padding:.25rem .5rem;font-size:.75rem} \ No newline at end of file diff --git a/Vue/gabarit.php b/Vue/gabarit.php index 46792c1..fe36513 100755 --- a/Vue/gabarit.php +++ b/Vue/gabarit.php @@ -126,7 +126,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte']; - +