/* MathPhiX — feuille commune aux pages thématiques de Première.
   Réutiliser les mêmes classes dans analyse.html, geometrie.html, etc. */
:root {
  --primary: #2563eb;
  --primary-dark: #1d4ed8;
  --text: #0f172a;
  --muted: #475569;
  --surface: #ffffff;
  --background: #f8fafc;
  --border: #dbeafe;
  --radius: 20px;
  --shadow: 0 12px 35px rgba(15, 23, 42, .07);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--background);
  line-height: 1.65;
}
a { color: inherit; }
a:focus-visible, summary:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 4px;
}
.container { width: min(1160px, calc(100% - 2rem)); margin-inline: auto; }
.skip-link { position: absolute; top: -100px; left: 1rem; padding: 1rem; background: white; z-index: 100; }
.skip-link:focus { top: 1rem; }
.site-header { background: white; border-bottom: 1px solid var(--border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.1rem; }
.logo { font-size: 1.45rem; font-weight: 800; color: var(--primary); text-decoration: none; }
.main-nav { display: flex; align-items: center; gap: 1.3rem; flex-wrap: wrap; }
.main-nav a { font-size: .95rem; font-weight: 600; text-decoration: none; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--primary); }
.programme-menu { position: relative; }
.programme-menu summary { cursor: pointer; font-weight: 600; }
.programme-links { position: absolute; right: 0; top: calc(100% + .8rem); width: 280px; padding: .7rem; background: white; border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow); z-index: 10; }
.programme-links a { display: block; padding: .65rem; border-radius: 8px; }
.programme-links a:hover { background: #eff6ff; }
.theme-hero { padding: 2rem 0 3.2rem; background: linear-gradient(120deg, #eff6ff, #f8fafc); }
.breadcrumb { color: var(--muted); font-size: .88rem; margin-bottom: 2rem; }
.breadcrumb a { text-decoration: none; }
.eyebrow, .chapter-number { color: var(--primary); font-size: .85rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
h1 { font-size: clamp(2.5rem, 6vw, 4rem); line-height: 1.1; letter-spacing: -.04em; margin: .6rem 0 1rem; }
h2 { font-size: clamp(1.6rem, 3vw, 2rem); line-height: 1.25; margin-top: 0; }
h3 { line-height: 1.35; }
.hero-description { max-width: 760px; color: var(--muted); font-size: 1.12rem; }
.hero-actions, .chapter-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.5rem; }
.btn { display: inline-block; padding: .75rem 1.1rem; border-radius: 11px; text-decoration: none; font-weight: 650; }
.btn-primary { background: var(--primary); color: white; }
.btn-primary:hover { background: var(--primary-dark); }
.btn-secondary { background: white; color: var(--primary); border: 1px solid var(--border); }
.section { padding: 3.5rem 0; }
.section-alt { background: #eff6ff; }
.section-heading { max-width: 760px; margin-bottom: 1.8rem; }
.section-heading p, .card p, .chapter-intro { color: var(--muted); }
.cards-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; }
.card { background: white; border: 1px solid var(--border); border-radius: var(--radius); padding: 1.6rem; box-shadow: var(--shadow); }
.chapter-card { display: flex; flex-direction: column; }
.chapter-card .chapter-actions { margin-top: auto; padding-top: 1rem; }
.card ul { padding-left: 1.2rem; color: var(--muted); }
.chapter-section { scroll-margin-top: 1rem; padding-block: 2rem; border-top: 1px solid var(--border); }
.chapter-layout { display: grid; grid-template-columns: 1.15fr 1fr; gap: 1.6rem; }
.chapter-layout h3 { font-size: 1.05rem; }
.formula { padding: 1rem; border-radius: 12px; background: #eff6ff; overflow-wrap: anywhere; font-family: "Cambria Math", Georgia, serif; font-size: 1.08rem; }
.example { background: white; border: 1px solid var(--border); padding: 1.3rem; border-radius: 14px; }
.correction { margin-top: 1rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.correction summary { cursor: pointer; color: var(--primary); font-weight: 650; }
.notice { padding: 1rem 1.3rem; border-left: 4px solid var(--primary); background: white; border-radius: 10px; }
.site-footer { padding: 2rem 0; background: #0f172a; color: #e2e8f0; }
.footer-inner { display: flex; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.footer-links { display: flex; gap: 1.2rem; flex-wrap: wrap; }
.footer-links a { text-decoration: none; }
@media (max-width: 850px) {
  .cards-grid, .chapter-layout { grid-template-columns: 1fr; }
  .header-inner { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .main-nav { gap: .8rem 1.2rem; }
  .programme-links { left: 0; right: auto; width: min(280px, calc(100vw - 2rem)); }
  .section { padding-block: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Pages de cours : ajouts isolés pour préserver les pages thématiques. */
.lesson-page .lesson-main{max-width:960px;padding-block:2rem}.lesson-page .lesson-section{margin-bottom:2rem;padding:clamp(1.1rem,3vw,2.2rem);background:white;border:1px solid var(--border);border-radius:20px;scroll-margin-top:1rem}.lesson-page .lesson-section h2{color:#173c75}.lesson-page .lesson-box{padding:1rem 1.2rem;background:#eff6ff;border-left:4px solid #2563eb;border-radius:10px;margin:1rem 0}.lesson-page .lesson-example{padding:1rem 1.2rem;background:#f8fafc;border:1px solid #dbe4f0;border-radius:12px;margin:1rem 0}.lesson-page .lesson-warning{padding:1rem;background:#fff7ed;border-left:4px solid #ea580c;border-radius:8px}.lesson-page .math-scroll{overflow-x:auto;max-width:100%;padding:.65rem 0}.lesson-page .lesson-toc{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}.lesson-page .lesson-toc a{display:block;padding:.5rem .8rem;background:white;border:1px solid var(--border);border-radius:8px;text-decoration:none}.lesson-page .lesson-table{width:100%;border-collapse:collapse;min-width:520px}.lesson-page .lesson-table th{background:#173c75;color:white}.lesson-page .lesson-table td,.lesson-page .lesson-table th{padding:.8rem;border:1px solid #dbe4f0;text-align:left}.lesson-page .graph-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.lesson-page figure{margin:1rem 0}.lesson-page figure > svg{display:block;width:100%;height:auto;background:#f8fafc;border:1px solid var(--border);border-radius:12px}.lesson-page figcaption{font-size:.94rem;color:var(--muted);padding:.5rem}.lesson-page .video-placeholder{aspect-ratio:16/9;display:grid;place-content:center;text-align:center;padding:1.2rem;background:#edf3ff;border:2px dashed #91a9d6;border-radius:14px}.lesson-page .video-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:14px}.lesson-page .exercise{padding-block:1rem;border-top:1px solid var(--border)}.lesson-page details{margin-top:.7rem}.lesson-page summary{cursor:pointer;font-weight:700;color:#1d4ed8}.lesson-page footer{padding:2rem 0;border-top:1px solid var(--border)}@media(max-width:640px){.lesson-page .graph-grid{grid-template-columns:1fr}.lesson-page .header-inner{align-items:flex-start;flex-direction:column}.lesson-page .lesson-section{border-radius:12px}.lesson-page h1{font-size:2.25rem}}@media print{.lesson-page .main-nav,.lesson-page .video-placeholder{display:none}.lesson-page .lesson-section{break-inside:avoid;box-shadow:none}.lesson-page details::details-content{content-visibility:visible}}

/* Les formules MathJax gardent leur taille intrinsèque dans les légendes. */
.lesson-page figcaption mjx-container{font-size:100%!important;}
.lesson-page figcaption mjx-container svg{display:inline;width:auto;height:auto;background:none;border:0;border-radius:0;}

/* Suites : construction de motifs et cartes Python. */
.lesson-page .motif-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.lesson-page .motif-card{min-width:0;margin:0}.lesson-page .motif-card > svg{width:100%;height:auto}.lesson-page .python-card{margin:1.4rem 0;padding:1.2rem;border:1px solid var(--border);border-radius:16px;background:#f8fafc}.lesson-page .python-card-header{display:flex;align-items:center;gap:.75rem}.lesson-page .python-card-header h3{margin:.3rem 0}.lesson-page .python-badge{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:12px;background:#dbeafe;color:#1d4ed8;font-weight:800}.lesson-page .python-code{padding:1.2rem;border-radius:12px;background:#14243c;color:#f1f5f9;overflow-x:auto;font: .95rem/1.7 Consolas,monospace;tab-size:4;white-space:pre}.lesson-page .python-result{padding:1rem;border-left:4px solid #2563eb;background:#eff6ff;border-radius:8px}.lesson-page .python-result pre{margin:.65rem 0 0;overflow-x:auto;font:.93rem/1.6 Consolas,monospace;white-space:pre}@media(max-width:640px){.lesson-page .motif-grid{grid-template-columns:1fr}.lesson-page .motif-card > svg{max-width:360px;margin:auto}.lesson-page .python-card{padding:.85rem}}

/* Mobile : contenir les contenus mathématiques sans élargir la page. */
body.lesson-page {
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}
.lesson-page .container,
.lesson-page .lesson-section,
.lesson-page .lesson-box,
.lesson-page .lesson-example,
.lesson-page .graph-grid > *,
.lesson-page .header-inner > *,
.lesson-page .python-card {
  min-width: 0;
}
.lesson-page .lesson-section {
  overflow-wrap: anywhere;
}
.lesson-page .math-scroll,
.lesson-page .python-code,
.lesson-page .python-result pre {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
.lesson-page mjx-container[display="true"] {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding-block: .25rem;
  overscroll-behavior-x: contain;
}
.lesson-page mjx-container:not([display="true"]) {
  display: inline-block;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  vertical-align: middle;
  overscroll-behavior-x: contain;
}
.lesson-page .video-frame { max-width: 100%; }
