/* styles.css — Styles personnalisés complétant Tailwind (typographie cours, animations). */

html { scroll-behavior: smooth; }
body { font-feature-settings: "cv02","cv03","cv04","cv11"; }

/* Limitation de lignes */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Animations */
@keyframes fade-in { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }
.animate-fade-in { animation: fade-in .25s ease-out; }
@keyframes fade-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.animate-fade-up { animation: fade-up .5s ease-out both; }

/* Typographie du contenu des cours (prose maison, sans plugin) */
.prose-bts { color: #475569; line-height: 1.7; }
.dark .prose-bts { color: #cbd5e1; }
.prose-bts h2 { font-size: 1.15rem; font-weight: 700; color: #0f172a; margin: 1.4rem 0 .6rem; }
.dark .prose-bts h2 { color: #f1f5f9; }
.prose-bts h3 { font-size: 1rem; font-weight: 600; color: #1e293b; margin: 1rem 0 .4rem; }
.dark .prose-bts h3 { color: #e2e8f0; }
.prose-bts p { margin: .5rem 0; }
.prose-bts ul, .prose-bts ol { margin: .5rem 0 .5rem 1.25rem; }
.prose-bts ul { list-style: disc; }
.prose-bts ol { list-style: decimal; }
.prose-bts li { margin: .25rem 0; }
.prose-bts strong, .prose-bts b { color: #0f172a; font-weight: 600; }
.dark .prose-bts strong, .dark .prose-bts b { color: #f1f5f9; }
.prose-bts code { background: #f1f5f9; color: #2563eb; padding: .1rem .35rem; border-radius: .3rem; font-size: .85em; font-family: ui-monospace, monospace; }
.dark .prose-bts code { background: #1e293b; color: #93c5fd; }
.prose-bts pre { background: #0f172a; color: #e2e8f0; padding: .9rem 1rem; border-radius: .6rem; overflow-x: auto; font-size: .85rem; margin: .8rem 0; }
.prose-bts pre code { background: none; color: inherit; padding: 0; }
.prose-bts table { width: 100%; border-collapse: collapse; margin: .8rem 0; font-size: .9rem; }
.prose-bts th, .prose-bts td { border: 1px solid #e2e8f0; padding: .4rem .6rem; text-align: center; }
.dark .prose-bts th, .dark .prose-bts td { border-color: #334155; }
.prose-bts th { background: #f8fafc; font-weight: 600; color: #0f172a; }
.dark .prose-bts th { background: #1e293b; color: #f1f5f9; }
.prose-bts sup { font-size: .7em; vertical-align: super; }
.prose-bts .tool-callout { background: #eff6ff; border-left: 3px solid #2563eb; padding: .6rem .9rem; border-radius: .4rem; margin: 1rem 0; font-size: .9rem; color: #1e40af; }
.dark .prose-bts .tool-callout { background: rgba(37,99,235,.12); color: #93c5fd; }

/* Tables génériques (.table-wrapper) */
.table-wrapper { overflow-x: auto; }

/* Scrollbar discrète */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 6px; }
.dark ::-webkit-scrollbar-thumb { background: #475569; }
