diff --git a/Bootstrap_new/css/theme-modern.css b/Bootstrap_new/css/theme-modern.css index d1fb4b4a..7e7dd555 100644 --- a/Bootstrap_new/css/theme-modern.css +++ b/Bootstrap_new/css/theme-modern.css @@ -1,75 +1,65 @@ /* ============================= INTER SANTÉ — THEME MODERN - Portail Gestionnaire — v2025 - Palette extraite du logo officiel + SaaS Premium UI v2025 ============================= */ /* === FONTS === */ @import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap'); -/* === CSS VARIABLES — PORTAIL GESTIONNAIRE === - Couleurs extraites pixel par pixel du logo Inter Santé : - #0082c8 → bleu principal (fond du carré logo) - #00294a → bleu nuit (sidebar, profondeur) - #4bb9f5 → cyan vif (croix + du logo, accents) - #d0f8f8 → cyan pâle (reflet lumineux du +) -*/ +/* === CSS VARIABLES === */ :root { - /* ── Brand bleu Inter Santé Gestionnaire ── */ - --color-primary: #0082c8; - --color-primary-light: #1a9ee0; - --color-primary-dark: #00557a; - --color-primary-ghost: rgba(0, 130, 200, 0.08); + /* Brand Colors */ + --color-primary: #1a6b4a; + --color-primary-light: #25a06e; + --color-primary-dark: #114532; + --color-primary-ghost: rgba(26, 107, 74, 0.08); - /* ── Accent cyan — croix + du logo ── */ - --color-accent: #4bb9f5; - --color-accent-soft: #d0f8f8; - - /* ── Status ── */ + /* Accent / Status */ + --color-accent: #0abf7c; --color-urgent: #e63946; --color-warning: #f4a261; - --color-success: #00b894; - --color-info: #0082c8; + --color-success: #2ec4b6; + --color-info: #3a86ff; --color-neutral: #6c757d; - /* ── Backgrounds — teinté bleu Inter Santé ── */ - --bg-base: #f0f6fb; + /* Backgrounds */ + --bg-base: #f4f6f9; --bg-surface: #ffffff; - --bg-surface-2: #f5f9fd; - --bg-sidebar: #00294a; + --bg-surface-2: #f8fafc; + --bg-sidebar: #0f2d20; --bg-header: #ffffff; - /* ── Text ── */ - --text-primary: #0d2136; - --text-secondary: #4a6680; - --text-muted: #8aa5bb; + /* Text */ + --text-primary: #1a2332; + --text-secondary: #6b7280; + --text-muted: #9ca3af; --text-inverse: #ffffff; - /* ── Borders teinté bleu ── */ - --border-light: #daeaf5; - --border-medium: #b8d4e8; + /* Borders */ + --border-light: #e8ecf0; + --border-medium: #d1d5db; - /* ── Radius ── */ + /* Spacing & Radius */ --radius-sm: 6px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-full: 9999px; - /* ── Shadows teintées bleu ── */ - --shadow-xs: 0 1px 3px rgba(0,82,130,.06), 0 1px 2px rgba(0,82,130,.04); - --shadow-sm: 0 2px 8px rgba(0,82,130,.09), 0 1px 3px rgba(0,82,130,.05); - --shadow-md: 0 4px 16px rgba(0,82,130,.11), 0 2px 6px rgba(0,82,130,.06); - --shadow-lg: 0 8px 32px rgba(0,82,130,.13), 0 4px 12px rgba(0,82,130,.07); - --shadow-xl: 0 16px 48px rgba(0,82,130,.16), 0 8px 24px rgba(0,82,130,.09); - --shadow-primary: 0 4px 20px rgba(0, 130, 200, 0.35); + /* Shadows */ + --shadow-xs: 0 1px 3px rgba(0,0,0,.05), 0 1px 2px rgba(0,0,0,.04); + --shadow-sm: 0 2px 8px rgba(0,0,0,.07), 0 1px 3px rgba(0,0,0,.05); + --shadow-md: 0 4px 16px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.05); + --shadow-lg: 0 8px 32px rgba(0,0,0,.10), 0 4px 12px rgba(0,0,0,.06); + --shadow-xl: 0 16px 48px rgba(0,0,0,.12), 0 8px 24px rgba(0,0,0,.07); + --shadow-primary: 0 4px 20px rgba(26,107,74,.25); - /* ── Transitions ── */ + /* Transitions */ --transition-fast: 0.15s ease; --transition-base: 0.25s ease; --transition-slow: 0.4s cubic-bezier(.4,0,.2,1); - /* ── Layout ── */ + /* Layout */ --sidebar-width: 240px; --sidebar-collapsed: 68px; --header-height: 64px; @@ -105,34 +95,12 @@ h1, h2, h3, h4, h5, h6, ============================== */ #header { height: var(--header-height); - /* Gradient bleu Inter Santé — du bleu logo vers bleu nuit */ - background: linear-gradient(135deg, #0082c8 0%, #005fa3 55%, #00294a 100%); - border-bottom: none; - box-shadow: 0 2px 16px rgba(0, 41, 74, 0.35); + background: var(--bg-header); + border-bottom: 1px solid var(--border-light); + box-shadow: var(--shadow-xs); padding: 0 1.25rem; z-index: 1000; transition: background var(--transition-base); - position: relative; - overflow: hidden; -} - -/* Reflet lumineux cyan (évoque la croix + du logo) */ -#header::before { - content: ''; - position: absolute; - top: -40px; right: 120px; - width: 200px; height: 140px; - background: radial-gradient(ellipse, rgba(75,185,245,0.22) 0%, transparent 70%); - pointer-events: none; -} -/* Ligne cyan fine en bas du header */ -#header::after { - content: ''; - position: absolute; - bottom: 0; left: 0; right: 0; - height: 2px; - background: linear-gradient(90deg, transparent 0%, #4bb9f5 40%, #d0f8f8 60%, transparent 100%); - opacity: 0.7; } #header.mode-test { @@ -145,26 +113,24 @@ h1, h2, h3, h4, h5, h6, } #header .logo img { - width: 38px; - height: 38px; + width: 34px; + height: 34px; + border-radius: var(--radius-sm); object-fit: contain; - /* Légère ombre pour faire ressortir le logo sur le fond bleu */ - filter: drop-shadow(0 1px 4px rgba(0,0,0,0.25)); } #header .logo span { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.05rem; - color: #ffffff; - letter-spacing: 0.04em; - text-shadow: 0 1px 3px rgba(0,0,0,0.2); + color: var(--color-primary); + letter-spacing: -0.02em; } -/* Toggle sidebar button — sur fond bleu */ +/* Toggle sidebar button */ .toggle-sidebar-btn { font-size: 1.4rem; - color: rgba(255,255,255,0.75); + color: var(--text-secondary); cursor: pointer; padding: 4px 8px; border-radius: var(--radius-sm); @@ -172,11 +138,11 @@ h1, h2, h3, h4, h5, h6, margin-left: 12px; } .toggle-sidebar-btn:hover { - color: #ffffff; - background: rgba(255,255,255,0.15); + color: var(--color-primary); + background: var(--color-primary-ghost); } -/* Breadcrumb — sur fond bleu */ +/* Breadcrumb */ .breadcrumb { background: transparent !important; padding: 0 !important; @@ -184,31 +150,25 @@ h1, h2, h3, h4, h5, h6, font-size: 0.8rem; } .breadcrumb-item a { - color: rgba(255,255,255,0.65); + color: var(--text-muted); text-decoration: none; - display: flex; - align-items: center; - gap: 4px; transition: color var(--transition-fast); } -.breadcrumb-item a:hover { color: #ffffff; } -.breadcrumb-item.active { - color: var(--color-accent-soft, #d0f8f8); - font-weight: 600; -} -.breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,0.35); } +.breadcrumb-item a:hover { color: var(--color-primary); } +.breadcrumb-item.active { color: var(--color-primary); font-weight: 600; } +.breadcrumb-item + .breadcrumb-item::before { color: var(--border-medium); } -/* Header Nav Icons — sur fond bleu */ +/* Header Nav Icons */ #header .header-nav .nav-link { - color: rgba(255,255,255,0.80); + color: var(--text-secondary); padding: 6px 10px; border-radius: var(--radius-sm); transition: all var(--transition-fast); position: relative; } #header .header-nav .nav-link:hover { - color: #ffffff; - background: rgba(255,255,255,0.15); + color: var(--color-primary); + background: var(--color-primary-ghost); } .badge-number { @@ -223,54 +183,51 @@ h1, h2, h3, h4, h5, h6, align-items: center; justify-content: center; cursor: pointer; - border: 2px solid rgba(0,82,130,0.6); + border: 2px solid white; transition: transform var(--transition-fast); } .badge-number:hover { transform: scale(1.2); } -/* Company logo area — verre dépoli sur fond bleu */ +/* Company logo area */ .company-logo-area { display: flex; align-items: center; gap: 8px; - padding: 5px 10px; + padding: 4px 10px; border-radius: var(--radius-md); - border: 1px solid rgba(255,255,255,0.25); - background: rgba(255,255,255,0.12); - backdrop-filter: blur(6px); + border: 1px solid var(--border-light); + background: var(--bg-surface-2); transition: all var(--transition-fast); max-width: 180px; - text-decoration: none; } .company-logo-area:hover { - background: rgba(255,255,255,0.22); - border-color: rgba(255,255,255,0.45); - box-shadow: 0 2px 10px rgba(0,0,0,0.15); + border-color: var(--color-primary-light); + box-shadow: var(--shadow-sm); } .company-logo-area img { height: 32px; width: auto; object-fit: contain; } .company-logo-area .company-name { font-size: 0.75rem; font-weight: 600; - color: #ffffff; + color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } -/* User Initials Badge — cyan vif sur fond bleu */ +/* User Initials Badge */ .initials { width: 32px; height: 32px; border-radius: var(--radius-sm); - background: linear-gradient(135deg, #4bb9f5, #d0f8f8); - color: #00294a; + background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light)); + color: white; font-family: 'Syne', sans-serif; - font-weight: 800; - font-size: 0.72rem; + font-weight: 700; + font-size: 0.75rem; display: inline-flex; align-items: center; justify-content: center; - box-shadow: 0 2px 8px rgba(0,0,0,0.2); + box-shadow: var(--shadow-primary); transition: transform var(--transition-fast); } .nav-link:hover .initials { transform: scale(1.08); } @@ -323,8 +280,8 @@ h1, h2, h3, h4, h5, h6, content: ''; position: absolute; top: 0; left: 0; right: 0; - height: 3px; - background: linear-gradient(90deg, #4bb9f5 0%, #d0f8f8 50%, #4bb9f5 100%); + height: 2px; + background: linear-gradient(90deg, var(--color-accent), var(--color-primary-light)); } /* Sidebar Nav */ @@ -505,7 +462,7 @@ h1, h2, h3, h4, h5, h6, .scrollmenu a:hover { background: var(--color-primary-ghost); color: var(--color-primary); - border-color: rgba(0,130,200,0.25); + border-color: rgba(26,107,74,0.2); } .scrollmenu a.active { @@ -735,7 +692,7 @@ h1, h2, h3, h4, h5, h6, .policy-item:hover { background: var(--color-primary-ghost); color: var(--color-primary); - border-color: rgba(0,130,200,0.25); + border-color: rgba(26,107,74,0.2); padding-left: 14px; } @@ -925,11 +882,11 @@ h1, h2, h3, h4, h5, h6, .btn-primary { background: var(--color-primary) !important; color: white !important; - box-shadow: 0 2px 8px rgba(0,130,200,0.35); + box-shadow: 0 2px 8px rgba(26,107,74,0.3); } .btn-primary:hover { background: var(--color-primary-light) !important; - box-shadow: 0 4px 16px rgba(0,130,200,0.45); + box-shadow: 0 4px 16px rgba(26,107,74,0.4); transform: translateY(-1px); } @@ -973,7 +930,7 @@ h1, h2, h3, h4, h5, h6, } .form-control:focus, .form-select:focus { border-color: var(--color-primary-light); - box-shadow: 0 0 0 3px rgba(0,130,200,0.12); + box-shadow: 0 0 0 3px rgba(26,107,74,0.1); outline: none; }