/* ================================================== INTER SANTÉ — GLOBAL HEALTH DESIGN SYSTEM 2026 Full Harmonized Edition ================================================== */ /* ================================ FONTS ================================ */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700&display=swap'); /* ================================ CSS VARIABLES ================================ */ :root { /* ===== BRAND ===== */ --color-primary: #1463FF; --color-primary-light: #4C8DFF; --color-primary-dark: #0E47B5; --color-accent: #20C997; --color-success: #22C55E; --color-urgent: #EF4444; --color-warning: #F59E0B; --color-info: #3B82F6; --color-neutral: #64748B; /* ===== BACKGROUNDS ===== */ --bg-base: #F7F9FC; --bg-surface: #FFFFFF; --bg-surface-2: #F1F5F9; --bg-sidebar: #0F172A; --bg-header: rgba(255,255,255,0.85); /* ===== TEXT ===== */ --text-primary: #0F172A; --text-secondary: #64748B; --text-muted: #94A3B8; --text-inverse: #FFFFFF; /* ===== BORDERS ===== */ --border-light: #E2E8F0; --border-medium: #CBD5E1; /* ===== RADIUS ===== */ --radius-sm: 8px; --radius-md: 14px; --radius-lg: 20px; --radius-xl: 28px; --radius-full: 9999px; /* ===== SHADOWS ===== */ --shadow-xs: 0 1px 2px rgba(0,0,0,0.04); --shadow-sm: 0 4px 12px rgba(15,23,42,0.05); --shadow-md: 0 8px 24px rgba(15,23,42,0.08); --shadow-lg: 0 16px 40px rgba(15,23,42,0.12); --shadow-glow: 0 0 0 3px rgba(20,99,255,0.15); --transition-fast: 0.15s ease; --transition-base: 0.25s cubic-bezier(.4,0,.2,1); --transition-slow: 0.4s cubic-bezier(.4,0,.2,1); --sidebar-width: 260px; --sidebar-collapsed: 72px; --header-height: 72px; --context-width: 360px; } /* ================================ GLOBAL RESET ================================ */ *, *::before, *::after { box-sizing: border-box; } html { font-size: 14px; scroll-behavior: smooth; } body { font-family: 'Inter', sans-serif; background: var(--bg-base); color: var(--text-primary); line-height: 1.6; -webkit-font-smoothing: antialiased; } h1,h2,h3,h4,h5,h6, .fw-bold,.fw-semibold,.nav-link span { font-family: 'Plus Jakarta Sans', sans-serif; } /* ================================ HEADER ================================ */ #header { height: var(--header-height); backdrop-filter: blur(14px); background: var(--bg-header); border-bottom: 1px solid var(--border-light); padding: 0 1.5rem; z-index: 1000; } #header .logo span { font-weight: 700; font-size: 1.1rem; color: var(--color-primary); } /* ================================ SIDEBAR ================================ */ #sidebar { width: var(--sidebar-width); background: var(--bg-sidebar); position: fixed; top: var(--header-height); left: 0; height: calc(100vh - var(--header-height)); padding: 18px 12px; overflow-y: auto; } .sidebar-nav { list-style: none; padding: 0; margin: 0; } .sidebar-nav > .nav-item > .nav-link { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radius-md); color: rgba(255,255,255,0.75); font-weight: 500; transition: var(--transition-base); } .sidebar-nav > .nav-item > .nav-link:hover { background: rgba(255,255,255,0.08); color: white; } .sidebar-nav > .nav-item > .nav-link.active { background: rgba(20,99,255,0.2); color: white; box-shadow: var(--shadow-glow); } /* Submenu */ .sidebar-nav .nav-content { list-style: none; padding-left: 28px; } .sidebar-nav .nav-content li a { display: block; padding: 8px 10px; border-radius: var(--radius-sm); color: rgba(255,255,255,0.6); font-size: 0.8rem; transition: var(--transition-fast); } .sidebar-nav .nav-content li a:hover, .sidebar-nav .nav-content li a.active-submenu { color: var(--color-accent); background: rgba(255,255,255,0.08); } /* ================================ MAIN ================================ */ #main { margin-left: var(--sidebar-width); padding-top: calc(var(--header-height) + 20px); padding-bottom: 40px; min-height: 100vh; } /* ================================ CARDS ================================ */ .card { background: var(--bg-surface); border-radius: var(--radius-lg); border: 1px solid var(--border-light); box-shadow: var(--shadow-sm); transition: var(--transition-base); } .card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); } .card-header { border-bottom: 1px solid var(--border-light); padding: 16px 20px; font-weight: 600; } /* ================================ TABLES ================================ */ .table { background: var(--bg-surface); border-collapse: separate; border-spacing: 0; font-size: 0.85rem; } .table th { background: var(--bg-surface); color: var(--text-muted); font-weight: 600; border-bottom: 1px solid var(--border-light); } .table td { border-bottom: 1px solid var(--border-light); } .table tbody tr:hover { background: rgba(20,99,255,0.05); } /* ================================ BUTTONS ================================ */ .btn { border-radius: var(--radius-md); font-weight: 600; font-size: 0.85rem; } .btn-primary { background: var(--color-primary); border: none; color: white; } .btn-primary:hover { background: var(--color-primary-dark); transform: translateY(-1px); } /* ================================ FORMS ================================ */ .form-control, .form-select { border-radius: var(--radius-sm); border: 1px solid var(--border-medium); } .form-control:focus, .form-select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(20,99,255,0.15); } /* ================================ BADGES ================================ */ .badge-status { padding: 4px 10px; border-radius: var(--radius-full); font-size: 0.7rem; font-weight: 600; } .badge-valide { background: rgba(34,197,94,0.1); color: var(--color-success); } .badge-urgent { background: rgba(239,68,68,0.1); color: var(--color-urgent); } .badge-attente { background: rgba(245,158,11,0.1); color: var(--color-warning); } .badge-info { background: rgba(59,130,246,0.1); color: var(--color-info); } /* ================================ MODALS ================================ */ .modal-content { border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); } .modal-header { border-bottom: 1px solid var(--border-light); } /* ================================ CONTEXT DRAWER ================================ */ #barre_laterale_d { position: fixed; right: 0; top: var(--header-height); width: var(--context-width); height: calc(100vh - var(--header-height)); background: var(--bg-surface); border-left: 1px solid var(--border-light); box-shadow: var(--shadow-lg); } /* ================================ ALERTS ================================ */ .alert { border-radius: var(--radius-md); border-left: 4px solid; } .alert-success { border-color: var(--color-success); } .alert-danger { border-color: var(--color-urgent); } .alert-warning { border-color: var(--color-warning); } .alert-info { border-color: var(--color-info); } /* ================================ RESPONSIVE ================================ */ @media (max-width: 1199px) { #main { margin-left: 0; } #sidebar { transform: translateX(-100%); } }