/* --- Bases & Reset --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background-color: white; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 0.90rem; line-height: 1.3; }

/* --- Structure --- */
.sidebar { background: #1a2a3a !important; color: white !important; min-height: 100vh; padding: 1.5rem 1.2rem; }
.main-content { padding: 1.5rem 2.5rem; background: white; }

/* --- Éléments de contenu --- */
.section-title { border-bottom: 2px solid #1a2a3a; padding-bottom: 0.3rem; margin-top: 1.1rem; margin-bottom: 0.8rem; color: #1a2a3a; text-transform: uppercase; font-weight: bold; font-size: 0.95rem; }
.badge-skill { background-color: #f8f9fa !important; color: #1a2a3a !important; border: 1px solid #dee2e6; margin-right: 3px; margin-bottom: 3px; font-size: 0.72rem; }

/* --- Items & Typo --- */
.science-item { border-left: 3px solid #2980b9; padding-left: 12px; margin-bottom: 12px; }
.music-item { border-left: 3px solid #e67e22; padding-left: 12px; margin-bottom: 12px; }

.date { color: #7f8c8d; font-style: italic; font-size: 0.82rem; font-weight: bold; white-space: nowrap; }
.job-title { font-weight: bold; color: #2c3e50; font-size: 0.95rem; line-height: 1.2; }
.subtitle { font-size: 0.85rem; color: #555; font-style: italic; display: block; margin-top: 1px; }
.institution { color: #2980b9; font-weight: 500; font-size: 0.85rem; }
p.small { margin-bottom: 0.3rem; line-height: 1.3; }

/* --- Sidebar Contact --- */
.contact-info { font-size: 0.78rem; }
.contact-info p { margin-bottom: 0.4rem; display: flex; align-items: center; justify-content: flex-start; text-align: left; }
.contact-info i { width: 20px; text-align: left; margin-right: 8px; color: #3498db; flex-shrink: 0; }

/* --- Optimisation Impression A4 --- */
@media print {
    @page { size: A4; margin: 0; }
    body { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; font-size: 0.90rem; }
    .sidebar { position: absolute; left: 0; top: 0; width: 28% !important; height: 297mm; min-height: 297mm; padding: 10mm 6mm !important; }
    .main-content { margin-left: 28%; width: 72% !important; padding: 10mm 15mm !important; }

    /* Espacement automatique pour combler le vide */
    .section-title { margin-top: 1.8rem !important; margin-bottom: 1rem !important; }
    .science-item, .music-item { margin-bottom: 1.1rem !important; }
    .section-title:first-of-type { margin-top: 0 !important; }
}
