/* ========================================================== INTER SANTÉ — OUTLOOK ENTERPRISE UI SYSTEM 2026 Full Structural Harmonization ========================================================== */ /* =============================== TYPOGRAPHY ================================ */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap'); :root { /* ===== CORE PALETTE ===== */ --color-primary: #0A64AD; --color-primary-hover: #084F8A; --color-accent: #00A3E0; --color-warning-soft: #FFB74D; --color-success: #22C55E; --color-danger: #EF4444; --color-muted: #94A3B8; /* ===== SURFACES ===== */ --bg-base: #F3F6F9; --bg-surface: #FFFFFF; --bg-surface-soft: #F9FBFD; --bg-sidebar: #FFFFFF; --bg-hover: rgba(0,0,0,0.03); /* ===== TEXT ===== */ --text-primary: #1F2937; --text-secondary: #5F6B7A; --text-muted: #9CA3AF; /* ===== BORDERS ===== */ --border-light: #E5EAF0; --border-strong: #D9E1EA; /* ===== EFFECTS ===== */ --radius-xs: 4px; --radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px; --shadow-xs: 0 1px 2px rgba(0,0,0,0.04); --shadow-sm: 0 3px 8px rgba(0,0,0,0.05); --shadow-md: 0 8px 24px rgba(0,0,0,0.06); --transition-fast: 0.15s ease; --transition-base: 0.25s ease; --sidebar-width: 250px; --sidebar-collapsed: 70px; --header-height: 64px; --context-width: 380px; } /* =============================== GLOBAL ================================ */ *, *::before, *::after { box-sizing: border-box; } body { font-family: "Segoe UI", "Inter", system-ui, sans-serif; background: var(--bg-base); color: var(--text-primary); font-size: 14px; line-height: 1.55; -webkit-font-smoothing: antialiased; } /* =============================== HEADER ================================ */ #header { height: var(--header-height); background: rgba(255,255,255,0.9); backdrop-filter: blur(8px); border-bottom: 1px solid var(--border-light); box-shadow: var(--shadow-xs); display: flex; align-items: center; padding: 0 20px; } /* =============================== SIDEBAR ================================ */ #sidebar { width: var(--sidebar-width); background: var(--bg-sidebar); border-right: 1px solid var(--border-light); position: fixed; top: var(--header-height); left: 0; height: calc(100vh - var(--header-height)); padding: 12px 8px; transition: var(--transition-base); } #sidebar.collapsed { width: var(--sidebar-collapsed); } .sidebar-nav .nav-link { position: relative; display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: var(--radius-md); color: var(--text-secondary); transition: var(--transition-base); } .sidebar-nav .nav-link:hover { background: var(--bg-hover); color: var(--color-primary); } .sidebar-nav .nav-link.active { background: rgba(10,100,173,0.08); color: var(--color-primary); } .sidebar-nav .nav-link.active::before { content: ""; position: absolute; left: -8px; top: 6px; bottom: 6px; width: 3px; background: var(--color-accent); border-radius: 4px; } /* =============================== MAIN ================================ */ #main { margin-left: var(--sidebar-width); padding: 24px; padding-top: calc(var(--header-height) + 20px); transition: var(--transition-base); } #sidebar.collapsed + #main { margin-left: var(--sidebar-collapsed); } /* =============================== CARDS ================================ */ .card { background: var(--bg-surface); border-radius: var(--radius-lg); border: 1px solid var(--border-light); box-shadow: var(--shadow-xs); transition: var(--transition-base); } .card:hover { box-shadow: var(--shadow-sm); } /* =============================== KPI BLOCKS ================================ */ .kpi-card { padding: 18px; border-radius: var(--radius-lg); background: var(--bg-surface); border: 1px solid var(--border-light); } .kpi-value { font-size: 22px; font-weight: 600; } .kpi-label { font-size: 12px; color: var(--text-muted); } /* =============================== TABLES ================================ */ .table { background: var(--bg-surface); font-size: 13px; } .table thead th { background: var(--bg-surface-soft); font-weight: 600; border-bottom: 1px solid var(--border-light); } .table tbody tr:hover { background: rgba(0,163,224,0.05); } /* =============================== BUTTONS ================================ */ .btn-primary { background: var(--color-primary); border: none; color: white; } .btn-secondary { background: #E5EAF0; border: none; color: var(--text-primary); } .btn-outline-primary { border: 1px solid var(--color-primary); background: transparent; color: var(--color-primary); } /* =============================== BADGES METIER ================================ */ .badge-success { background: rgba(34,197,94,0.1); color: var(--color-success); } .badge-danger { background: rgba(239,68,68,0.1); color: var(--color-danger); } .badge-info { background: rgba(0,163,224,0.1); color: var(--color-accent); } .badge-warning { background: rgba(255,183,77,0.15); color: #C77800; } /* =============================== 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-md); } /* =============================== SKELETON LOADER ================================ */ .skeleton { background: linear-gradient( 90deg, #F0F3F7 25%, #E6EBF1 37%, #F0F3F7 63% ); background-size: 400% 100%; animation: shimmer 1.4s ease infinite; } @keyframes shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } /* =============================== MODE TEST BANNER ================================ */ .mode-test { background: var(--color-warning-soft); color: #5A3E00; padding: 6px 12px; font-size: 12px; text-align: center; } /* =============================== SCROLL MENU ================================ */ .scrollmenu { overflow-x: auto; white-space: nowrap; } .scrollmenu a { display: inline-block; padding: 8px 14px; border-radius: var(--radius-md); color: var(--text-secondary); } .scrollmenu a.active { background: rgba(10,100,173,0.1); color: var(--color-primary); } /* =============================== RESPONSIVE ================================ */ @media (max-width: 992px) { #sidebar { transform: translateX(-100%); } #main { margin-left: 0; } }