.juridiction-titre { text-transform: capitalize; }
.fade-in { animation: fadeIn 0.35s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.tab-active   { border-bottom: 4px solid #1e3a8a; color: #1e3a8a; font-weight: 800; }
.tab-inactive { border-bottom: 4px solid transparent; color: #6b7280; font-weight: 600; }
.tab-inactive:hover { color: #1f2937; }
.custom-scrollbar::-webkit-scrollbar { width: 6px; }
.custom-scrollbar::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); border-radius: 10px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 10px; }
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.4); }
/* Modal */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:50; align-items:center; justify-content:center; }
.modal-overlay.open { display:flex; }
/* Heatmap */
.hm-cell { transition: background 0.2s; }
/* Profil */
.profil-btn { transition: all 0.2s; border: 2px solid transparent; }
.profil-btn.actif { border-color: currentColor; font-weight: 800; box-shadow: 0 2px 8px rgba(0,0,0,0.12); }
/* Texte expandable sur les cartes */
.expandable-block { cursor: pointer; position: relative; }
.expandable-block p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; transition: all 0.2s; }
.expandable-block.expanded p { display: block; -webkit-line-clamp: unset; overflow: visible; }
.expandable-block::after { content: '▾'; position: absolute; bottom: 0; right: 0; font-size: 10px; color: #9ca3af; background: inherit; padding-left: 4px; }
.expandable-block.expanded::after { content: '▴'; }
/* Drop zone upload */
.drop-zone { border: 2px dashed #4b5563; border-radius: 0.75rem; transition: all 0.2s; }
.drop-zone.drag-over { border-color: #60a5fa; background: rgba(96,165,250,0.07); }
/* Mémo RAG rendu Markdown */
.memo-content h2 { font-size: 0.9rem; font-weight: 800; color: #93c5fd; margin: 1rem 0 0.4rem; border-bottom: 1px solid rgba(147,197,253,0.2); padding-bottom: 0.2rem; }
.memo-content h3 { font-size: 0.8rem; font-weight: 700; color: #bfdbfe; margin: 0.6rem 0 0.2rem; }
.memo-content ul, .memo-content ol { padding-left: 1.1rem; margin-bottom: 0.6rem; }
.memo-content li { margin-bottom: 0.25rem; font-size: 0.8rem; color: #e5e7eb; }
.memo-content p { margin-bottom: 0.4rem; font-size: 0.8rem; color: #d1d5db; line-height: 1.5; }
.memo-content strong { color: #f9fafb; font-weight: 700; }
.memo-content em { color: #a5b4fc; font-style: italic; }