This commit is contained in:
KANE LAZENI 2026-05-07 03:40:59 +00:00
parent 02405a8d84
commit b948bc7989

View File

@ -0,0 +1,439 @@
/* ============================================================
INTER-SANTÉ Modernisation UI
À inclure APRÈS Bootstrap 3 dans votre layout principal.
Aucune modification PHP / logique métier requise.
============================================================ */
/* ── 1. Variables de couleur & typo ───────────────────────── */
:root {
--is-primary: #1B4F8A; /* Bleu marine principal */
--is-primary-light: #2A6DB8; /* Bleu hover/accent */
--is-primary-dark: #12366A; /* Bleu foncé (header) */
--is-accent: #00A896; /* Vert-teal (confirmation) */
--is-danger: #D93D3D; /* Rouge danger */
--is-warning: #E07B27; /* Orange avertissement */
--is-info: #3A7FBF; /* Bleu info */
--is-success: #27A050; /* Vert succès */
--is-light: #F4F7FB; /* Fond clair */
--is-border: #DDE3EB; /* Bordure tableau */
--is-text: #1F2A3C; /* Texte principal */
--is-text-muted: #6B7A95; /* Texte secondaire */
--is-white: #FFFFFF;
--is-radius: 6px;
--is-radius-lg: 10px;
--is-shadow: 0 2px 8px rgba(27, 79, 138, 0.10);
--is-shadow-sm: 0 1px 3px rgba(27, 79, 138, 0.08);
--font-main: 'Inter', 'Segoe UI', system-ui, sans-serif;
--font-size-base: 13px;
}
/* ── 2. Base & typographie ────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
body {
font-family: var(--font-main);
font-size: var(--font-size-base);
color: var(--is-text);
background-color: #EEF2F7;
line-height: 1.5;
}
/* Annule les font-size inline abusifs (8pt, 9pt) → taille lisible */
table, td, th, input, select, button, .form-control {
font-size: var(--font-size-base) !important;
}
/* ── 3. Navbar / Header ───────────────────────────────────── */
.navbar,
.navbar-default {
background: linear-gradient(135deg, var(--is-primary-dark) 0%, var(--is-primary) 100%) !important;
border: none !important;
border-radius: 0 !important;
box-shadow: 0 2px 12px rgba(0,0,0,0.18);
min-height: 56px;
}
.navbar-default .navbar-brand,
.navbar-default .navbar-nav > li > a {
color: rgba(255,255,255,0.92) !important;
font-weight: 500;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > .active > a {
color: var(--is-white) !important;
background-color: rgba(255,255,255,0.12) !important;
border-radius: var(--is-radius);
}
/* ── 4. Conteneur principal ───────────────────────────────── */
.container-fluid,
.container {
padding: 20px 24px;
}
/* ── 5. Legend / Titres de section ───────────────────────── */
legend {
font-size: 15px;
font-weight: 600;
color: var(--is-primary);
border-bottom: 2px solid var(--is-primary-light);
padding-bottom: 8px;
margin-bottom: 16px;
letter-spacing: 0.02em;
text-transform: uppercase;
}
/* ── 6. Tableaux ──────────────────────────────────────────── */
.table {
background-color: var(--is-white);
border-radius: var(--is-radius-lg);
overflow: hidden;
border-collapse: separate !important;
border-spacing: 0;
box-shadow: var(--is-shadow);
margin-bottom: 20px;
}
/* En-têtes */
.table > thead > tr > th {
background: linear-gradient(180deg, var(--is-primary) 0%, var(--is-primary-dark) 100%);
color: var(--is-white) !important;
font-weight: 600;
border: none !important;
padding: 10px 12px;
text-align: center;
letter-spacing: 0.03em;
font-size: 12px !important;
text-transform: uppercase;
white-space: nowrap;
}
/* Cellules */
.table > tbody > tr > td {
border-color: var(--is-border) !important;
padding: 8px 12px;
vertical-align: middle !important;
}
/* Lignes alternées */
.table-striped > tbody > tr:nth-of-type(odd) {
background-color: var(--is-light);
}
.table-striped > tbody > tr:nth-of-type(even) {
background-color: var(--is-white);
}
/* Hover */
.table-hover > tbody > tr:hover {
background-color: #DCE9F7 !important;
cursor: pointer;
transition: background-color 0.15s ease;
}
/* table-condensed → gardé mais avec un peu plus d'air */
.table-condensed > tbody > tr > td,
.table-condensed > thead > tr > th {
padding: 7px 10px;
}
/* Pied de tableau */
.table > tfoot > tr > td {
background-color: #EDF3FB;
font-weight: 600;
border-top: 2px solid var(--is-primary-light) !important;
padding: 8px 12px;
}
/* Ligne rouge (urgence) → gardée mais adoucie */
.table > tbody > tr[style*="background-color: red"],
.table > tbody > tr[style*="background-color:red"] {
background-color: #FDECEA !important;
color: var(--is-danger) !important;
}
/* Ligne verte → gardée mais adoucie */
.table > tbody > tr[style*="background-color: #00ff00"],
.table > tbody > tr[style*="background-color:#00ff00"] {
background-color: #E6F7EE !important;
color: var(--is-success) !important;
}
/* Ligne jaune → adoucie */
.table > tbody > tr[style*="background-color: yellow"],
.table > tbody > tr[style*="background-color:yellow"] {
background-color: #FFF9E6 !important;
color: #8A6200 !important;
}
/* ── 7. Boutons ───────────────────────────────────────────── */
.btn {
border-radius: var(--is-radius);
font-weight: 500;
padding: 6px 14px;
font-size: 12.5px !important;
border: none;
transition: all 0.2s ease;
box-shadow: var(--is-shadow-sm);
letter-spacing: 0.01em;
cursor: pointer;
}
.btn:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(27,79,138,0.18);
}
.btn:active {
transform: translateY(0);
}
.btn-primary {
background: linear-gradient(135deg, var(--is-primary-light), var(--is-primary)) !important;
color: var(--is-white) !important;
}
.btn-primary:hover {
background: linear-gradient(135deg, var(--is-primary), var(--is-primary-dark)) !important;
}
.btn-success {
background: linear-gradient(135deg, #2db566, var(--is-success)) !important;
color: var(--is-white) !important;
}
.btn-warning {
background: linear-gradient(135deg, #f0943a, var(--is-warning)) !important;
color: var(--is-white) !important;
}
.btn-danger {
background: linear-gradient(135deg, #e55353, var(--is-danger)) !important;
color: var(--is-white) !important;
}
.btn-info {
background: linear-gradient(135deg, #4A9FD4, var(--is-info)) !important;
color: var(--is-white) !important;
}
.btn-default {
background: var(--is-white) !important;
color: var(--is-primary) !important;
border: 1.5px solid var(--is-primary-light) !important;
}
.btn-default:hover {
background: var(--is-light) !important;
}
/* Petit bouton + dans les tableaux */
.btn[value=" + "],
.btn[value="+"] {
background: linear-gradient(135deg, #2db566, var(--is-success)) !important;
color: white !important;
font-size: 15px !important;
padding: 3px 10px;
line-height: 1.2;
}
/* ── 8. Champs de formulaire ──────────────────────────────── */
.form-control {
border: 1.5px solid var(--is-border) !important;
border-radius: var(--is-radius) !important;
padding: 6px 10px !important;
background-color: var(--is-white) !important;
color: var(--is-text) !important;
transition: border-color 0.2s, box-shadow 0.2s;
box-shadow: none !important;
height: auto !important;
}
.form-control:focus {
border-color: var(--is-primary-light) !important;
box-shadow: 0 0 0 3px rgba(42, 109, 184, 0.15) !important;
outline: none;
}
.form-control[readonly] {
background-color: var(--is-light) !important;
color: var(--is-text-muted) !important;
}
select.form-control {
appearance: auto;
}
/* ── 9. Panels / Cards (si utilisés) ─────────────────────── */
.panel {
border-radius: var(--is-radius-lg) !important;
border: none !important;
box-shadow: var(--is-shadow) !important;
overflow: hidden;
}
.panel-heading {
background: linear-gradient(135deg, var(--is-primary-dark), var(--is-primary)) !important;
color: var(--is-white) !important;
font-weight: 600;
border-radius: 0 !important;
padding: 12px 16px;
}
.panel-body {
padding: 16px;
background: var(--is-white);
}
/* ── 10. Onglets (tabs) ───────────────────────────────────── */
.nav-tabs {
border-bottom: 2px solid var(--is-primary-light);
}
.nav-tabs > li > a {
border-radius: var(--is-radius) var(--is-radius) 0 0 !important;
color: var(--is-text-muted);
font-weight: 500;
border: 1px solid transparent !important;
border-bottom: none !important;
padding: 8px 18px;
transition: color 0.2s, background 0.2s;
}
.nav-tabs > li > a:hover {
background-color: var(--is-light) !important;
color: var(--is-primary) !important;
border-color: var(--is-border) !important;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus {
background-color: var(--is-white) !important;
color: var(--is-primary) !important;
border-color: var(--is-primary-light) !important;
border-bottom-color: var(--is-white) !important;
font-weight: 600;
}
/* ── 11. Alertes / Messages ───────────────────────────────── */
.alert {
border-radius: var(--is-radius) !important;
border-left: 4px solid !important;
border-top: none !important;
border-right: none !important;
border-bottom: none !important;
padding: 12px 16px;
font-weight: 500;
}
.alert-success {
background: #E8F7EE !important;
border-color: var(--is-success) !important;
color: var(--is-success) !important;
}
.alert-danger {
background: #FDECEA !important;
border-color: var(--is-danger) !important;
color: var(--is-danger) !important;
}
.alert-warning {
background: #FFF4E5 !important;
border-color: var(--is-warning) !important;
color: var(--is-warning) !important;
}
.alert-info {
background: #E8F3FB !important;
border-color: var(--is-info) !important;
color: var(--is-info) !important;
}
/* ── 12. Modales ──────────────────────────────────────────── */
.modal-content {
border-radius: var(--is-radius-lg) !important;
border: none !important;
box-shadow: 0 12px 40px rgba(0,0,0,0.2) !important;
overflow: hidden;
}
.modal-header {
background: linear-gradient(135deg, var(--is-primary-dark), var(--is-primary));
color: var(--is-white);
border-radius: 0;
padding: 14px 20px;
}
.modal-header .close {
color: var(--is-white) !important;
opacity: 0.8;
font-size: 22px;
}
.modal-title {
color: var(--is-white);
font-weight: 600;
}
.modal-footer {
background: var(--is-light);
border-top: 1px solid var(--is-border);
}
/* ── 13. Pagination ───────────────────────────────────────── */
.pagination > li > a {
color: var(--is-primary);
border-color: var(--is-border);
border-radius: var(--is-radius) !important;
margin: 0 2px;
transition: all 0.2s;
}
.pagination > li > a:hover {
background: var(--is-primary-light);
color: white;
border-color: var(--is-primary-light);
}
.pagination > .active > a {
background-color: var(--is-primary) !important;
border-color: var(--is-primary) !important;
}
/* ── 14. Badges & labels ──────────────────────────────────── */
.badge {
border-radius: 30px;
font-weight: 600;
padding: 3px 8px;
}
.label {
border-radius: var(--is-radius);
font-weight: 500;
font-size: 11px !important;
padding: 3px 7px;
}
/* ── 15. Scrollbars (Webkit) ──────────────────────────────── */
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: var(--is-light); }
::-webkit-scrollbar-thumb {
background: var(--is-primary-light);
border-radius: 10px;
}
/* ── 16. Utilitaires ──────────────────────────────────────── */
/* Carte moderne pour envelopper des sections */
.card-moderne {
background: var(--is-white);
border-radius: var(--is-radius-lg);
box-shadow: var(--is-shadow);
padding: 20px;
margin-bottom: 20px;
}
/* Entête de section */
.section-header {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 16px;
padding-bottom: 10px;
border-bottom: 2px solid var(--is-border);
}
.section-header-title {
font-size: 14px;
font-weight: 700;
color: var(--is-primary);
text-transform: uppercase;
letter-spacing: 0.05em;
}
/* Badge de statut en ligne */
.statut-ok { color: var(--is-success); font-weight: 600; }
.statut-nok { color: var(--is-danger); font-weight: 600; }
.statut-att { color: var(--is-warning); font-weight: 600; }
/* ── 17. Animations ───────────────────────────────────────── */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(6px); }
to { opacity: 1; transform: translateY(0); }
}
.table, .panel, .alert, .modal-content {
animation: fadeIn 0.25s ease both;
}