:root{--paper:#f6f5ef;--surface:#fff;--ink:#202d30;--muted:#536469;--line:#d5dfda;--primary:#16614f;--soft:#eaf4ef;--warm:#f7eacb;--accent:#a04a25;--radius:1rem;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--primary);text-underline-offset:.2em}button,input,select{font:inherit}button,select{min-height:44px}button{cursor:pointer;border:1px solid var(--line);border-radius:.5rem;padding:.5rem .85rem;background:var(--surface);color:var(--ink)}button:hover{border-color:var(--primary);background:var(--soft)}button:disabled{cursor:default;opacity:.5}button.primary{background:var(--primary);color:white;border-color:var(--primary)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.skip{position:absolute;top:-100px;left:1rem;z-index:20;padding:1rem;background:var(--surface)}.skip:focus{top:.5rem}.topbar{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 2rem}.brand{text-decoration:none;font-weight:650;color:var(--ink)}.brand span{display:inline-grid;place-items:center;background:var(--primary);color:white;width:2rem;height:2rem;border-radius:.5rem;margin-right:.6rem}.toplinks{display:flex;align-items:center;gap:1.2rem;font-size:.9rem}.layout{display:grid;grid-template-columns:265px minmax(0,1fr);gap:3rem;max-width:1330px;margin:auto;padding:2rem}.sidebar{position:sticky;top:6rem;align-self:start;max-height:calc(100vh - 7rem);overflow:auto;padding-right:1rem}.sidebar summary{font-weight:650}.sidebar ol{padding:0;list-style:none;margin:1rem 0}.sidebar li{margin:.15rem 0}.sidebar a{display:flex;gap:.8rem;padding:.45rem .6rem;font-size:.88rem;line-height:1.4;text-decoration:none;border-radius:.45rem;color:var(--muted)}.sidebar a:hover,.sidebar a[aria-current]{color:var(--primary);background:var(--soft)}.navnum{min-width:1.4rem;font-size:.75rem;margin-top:.15rem}.sidebar details>summary{list-style:none;pointer-events:none}.side-note{font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1rem}main{min-width:0;max-width:890px}.hero{padding:2.5rem 0 2rem;border-bottom:1px solid var(--line);margin-bottom:2rem}.eyebrow,.kicker{font-size:.8rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}h1{font-size:clamp(2.1rem,4vw,3.5rem);font-weight:550;line-height:1.12;letter-spacing:-.04em;max-width:700px;margin:.8rem 0 1rem}h1 em{font-style:normal;color:var(--primary)}.lead{font-size:1.2rem;color:var(--muted);max-width:590px}.hero-bottom{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:1.5rem}.pill{font-size:.8rem;background:var(--soft);padding:.25rem .65rem;border-radius:2rem}.hero-link{display:inline-block;padding:.7rem 1.2rem;background:var(--primary);color:white;border-radius:.6rem;text-decoration:none}h2{font-size:1.7rem;font-weight:600;line-height:1.3;margin:.4rem 0 1.3rem}h3{font-size:1.25rem;line-height:1.4;margin:2rem 0 1rem}h4{font-size:1.1rem;margin:2rem 0 .5rem}p{margin:.8rem 0;max-width:75ch}strong{font-weight:650}.chapter{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}.chapter-count{font-size:.8rem;color:var(--muted);margin:0 0 .5rem}li p{margin:.35rem 0}li{margin:.3rem 0}blockquote{margin:1.5rem 0;padding:1rem 1.4rem;border-left:3px solid var(--primary);background:var(--soft);border-radius:0 .6rem .6rem 0}blockquote p:first-child{margin-top:0}blockquote p:last-child{margin-bottom:0}blockquote.example{background:var(--surface)}.center{margin:1.2rem 0}.table-wrap,.formula-wrap{overflow-x:auto;max-width:100%;padding:.6rem .1rem}table{border-collapse:collapse;width:100%;font-size:.95rem}td,th{padding:.65rem;border-bottom:1px solid var(--line);text-align:left!important}th{background:var(--soft)}math{font-size:1.05em}math[display=block]{margin:1rem auto;min-width:max-content}pre{background:#20352f;color:#eef8f2;border-radius:.6rem;padding:1.2rem;overflow:auto;font-size:.9rem;line-height:1.65}code{font-size:.9em}dt{font-weight:650;margin-top:1rem}dd{margin:.3rem 0 1rem}.exercise{background:var(--surface);padding:1.5rem;border:1px solid var(--line);border-radius:.8rem;margin:1.5rem 0}.exercise h4{margin-top:0}.exercise-link{font-size:.9rem}.hint{margin:.7rem 0;border:1px solid var(--line);border-radius:.6rem;padding:.6rem 1rem;background:var(--surface)}summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.hint summary:before{content:'+';margin-right:.7rem;color:var(--primary);font-weight:650}.hint[open] summary:before{content:'−'}.lab{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:1.8rem 0 2rem}.lab-head{padding:1.2rem 1.5rem;border-bottom:1px solid var(--line)}.lab-head h3{margin:.3rem 0;font-size:1.25rem}.lab-head p{font-size:.95rem;color:var(--muted);margin:.4rem 0 0}.lab-scene{min-height:170px;padding:1.5rem;background:var(--soft)}.lab-caption{padding:1rem 1.5rem;min-height:100px}.lab-caption p{margin:0}.controls{border-top:1px solid var(--line);padding:1rem 1.5rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.step-counter{font-size:.8rem;color:var(--muted);margin-left:auto}.chips{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.token{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);padding:.65rem 1rem;border-radius:.6rem;min-width:48px}.token.chosen{background:var(--primary);color:white;border-color:var(--primary)}.token.excluded{opacity:.4;text-decoration:line-through}.big-result{font-size:1.7rem;font-weight:600;color:var(--primary);margin-top:1rem;line-height:1.4}.scene-label{font-size:.85rem;color:var(--muted);margin:0 0 .6rem}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1.2rem 0}.podium-place{padding:1rem .4rem;text-align:center;background:var(--surface);border:1px solid var(--line);border-bottom:5px solid var(--primary);border-radius:.6rem}.podium-place:first-child{background:var(--warm)}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem}.mini-grid>div{padding:.65rem;background:var(--surface);border:1px solid var(--line);border-radius:.4rem;text-align:center}.group-box{border:2px dashed var(--primary);padding:1rem;border-radius:1rem;margin-top:1rem}.pascal-row{display:flex;justify-content:center;gap:.4rem;margin:.4rem 0}.pascal-cell{width:44px;min-width:0;padding:.4rem .15rem;text-align:center;background:var(--surface);border-radius:.4rem;border:1px solid var(--line);font-size:.9rem}.pascal-cell.parent{background:var(--warm);border-color:var(--accent)}.pascal-cell.target{background:var(--primary);color:white}.binary-buttons{display:flex;gap:.6rem;flex-wrap:wrap}.binary-buttons button{min-width:60px}.binary-buttons button[aria-pressed=true]{background:var(--primary);color:white}.binary-output{font-size:1.7rem;color:var(--primary);letter-spacing:.3em}.fade-in{animation:arrive .28s ease-out}@keyframes arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}svg{max-width:100%;height:auto;color:var(--primary)}.footer{padding:2rem 0;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}.static-notice{background:var(--warm);padding:1rem}.diagnostic-list{list-style:none;counter-reset:diagnostic;padding-left:0}.diagnostic-list>li{counter-increment:diagnostic;padding-left:2.5rem;position:relative}.diagnostic-list>li:before{content:'D' counter(diagnostic) '.';position:absolute;left:0;font-weight:650}@media(max-width:950px){.layout{grid-template-columns:210px minmax(0,1fr);gap:1.5rem;padding:1.5rem}.topbar{padding:.7rem 1.5rem}}@media(max-width:720px){.layout{display:block;padding:1rem}.sidebar{position:static;max-height:none;padding:0;margin-bottom:1rem}.sidebar details>summary{pointer-events:auto;cursor:pointer;list-style:revert}.sidebar ol{max-height:350px;overflow:auto}.side-note{display:none}.topbar{position:static;padding:.7rem 1rem;flex-wrap:wrap}.toplinks{gap:1rem;font-size:.85rem}.hero{padding-top:1rem}.lab-head,.lab-scene,.lab-caption,.controls{padding:1rem}.pascal-row{gap:.18rem}.pascal-cell{width:32px;font-size:.8rem}.mini-grid{grid-template-columns:repeat(2,1fr)}.exercise{padding:1rem}.step-counter{width:100%;margin:0}.chapter{margin-top:2rem}h2{font-size:1.45rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fade-in{animation:none}}body.no-motion .fade-in{animation:none}body.no-motion{scroll-behavior:auto}@media print{body{background:white;color:black;font-size:11pt}.topbar,.sidebar,.controls,.hero-bottom,.skip{display:none}.layout{display:block;padding:0}.lab,.exercise,blockquote{break-inside:avoid}main{max-width:none}details.hint>div{display:block!important}.chapter{margin-top:1.5rem}a{color:black}.hero{padding:0}.lab-scene{background:#f5f5f5}}
h5{font-size:1rem;margin:1rem 0 .3rem}.named-questions{list-style:none;padding-left:0}.named-questions>li{margin:.7rem 0}.named-questions strong{display:inline-block;min-width:1.8rem}
.toplinks{flex-wrap:wrap}h1{overflow-wrap:anywhere}@media(prefers-color-scheme:dark){:root{--paper:#14201d;--surface:#1d2e29;--ink:#eff4ef;--muted:#baccc2;--line:#455c52;--primary:#8ad8b9;--soft:#233d32;--warm:#493c21;--accent:#f5b98b;color-scheme:dark}button.primary,.hero-link,.token.chosen,.pascal-cell.target,.binary-buttons button[aria-pressed=true],.brand span{color:#14201d}.static-notice{color:var(--ink)}}
.formula-wrap{display:block}figure{margin:1.2rem 0;overflow-x:auto}figcaption{font-size:.9rem;color:var(--muted)}@media(max-width:720px){figure svg{min-width:600px}}

/* Ateliers de géométrie et entraînement, dans la présentation du cours 01. */
:root { --blue: #35679a; }
[hidden] { display: none !important; }
.notice { padding: 1rem 1.2rem; border-left: 3px solid var(--accent); background: var(--warm); border-radius: .5rem; }
.vector-figure { padding: 1rem; background: var(--surface); border: 1px solid var(--line); border-radius: .8rem; }
.vector-figure svg { display: block; width: 100%; min-width: 0; }
.vector-figure figcaption { margin-top: .7rem; }
.lab:empty, .diagnostic-check:empty { display: none; }
.lab-scene { padding: .5rem 1rem; }
.lab-scene svg { display: block; width: 100%; }
.lab-scene svg text { fill: var(--ink); font: 17px system-ui, sans-serif; }
.graph-grid { opacity: .22; }
.graph-grid text { opacity: 1; }
.space-axes { opacity: .62; }
.drag-handle { cursor: grab; stroke: var(--surface); stroke-width: 3px; touch-action: none; }
.drag-handle:active { cursor: grabbing; }
.lab-settings { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem 1.5rem; padding: 1rem 1.5rem; border-top: 1px solid var(--line); }
.range-field { display: block; min-width: 0; }
.range-field span { display: flex; justify-content: space-between; gap: .8rem; font-size: .92rem; }
.range-field output { font-weight: 650; color: var(--primary); }
.range-field input { display: block; width: 100%; min-height: 44px; margin: .1rem 0 0; accent-color: var(--primary); cursor: pointer; }
.select-field { display: flex; flex-direction: column; gap: .4rem; grid-column: 1 / -1; }
.select-field select { width: 100%; }
.view-field { border-top: 1px dashed var(--line); padding-top: .5rem; }
.lab-result { font-size: 1.15rem; font-weight: 650; color: var(--primary); margin-bottom: .6rem !important; }
.lab-caption p + p { margin-top: .5rem; }
.scene-label { text-align: center; font-size: .8rem; margin: .3rem auto .7rem; }
.answer-check { padding-top: 1rem; margin: 1rem 0; border-top: 1px dashed var(--line); }
.answer-check h5 { margin-top: 0; }
.input-help, .check-note { font-size: .86rem; color: var(--muted); }
.answer-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem 1.2rem; margin: 1.2rem 0; }
.answer-field { min-width: 0; }
.answer-field label { display: block; font-size: .9rem; margin-bottom: .4rem; }
.answer-field input, .answer-field select, .select-field select { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: .5rem; min-height: 44px; padding: .5rem .7rem; max-width: 100%; width: 100%; }
.answer-field .correct { border: 2px solid var(--primary); }
.answer-field .incorrect { border: 2px solid var(--accent); }
.field-feedback { font-size: .86rem; line-height: 1.5; margin: .4rem 0 0; }
.field-feedback:empty { display: none; }
.answer-buttons { display: flex; gap: .7rem; flex-wrap: wrap; }
.check-status { font-size: .9rem; font-weight: 650; }
#auto-évaluation + p + ul { list-style: none; padding: 0; }
#auto-évaluation + p + ul label { display: flex; align-items: baseline; gap: .7rem; cursor: pointer; }
#auto-évaluation + p + ul input { min-width: 18px; min-height: 18px; accent-color: var(--primary); }
#auto-évaluation + p + ul p { margin: .2rem 0; }
html.no-motion { scroll-behavior: auto; }
html.no-motion *, html.no-motion *::before, html.no-motion *::after { animation: none !important; transition: none !important; }
@media (max-width:720px) {
  .lab-settings { padding: 1rem; gap: .8rem; }
  .lab-scene { padding: .4rem; }
  .answer-fields { grid-template-columns: 1fr; }
  .vector-figure { padding: .6rem; }
  .vector-figure svg { min-width: 0; }
}
@media (prefers-color-scheme:dark) { :root { --blue: #92bdeb; } }
@media print {
  :root { --paper: white; --surface: white; --ink: black; --muted: #444; --primary: #16614f; --accent: #a04a25; --blue: #35679a; --line: #ccc; --soft: #f5f5f5; --warm: #f5f5f5; color-scheme: light; }
  .answer-check, .lab-settings { display: none; }
  .lab:empty { display: none; }
  .formula-wrap { overflow: visible; }
  .lab-result { color: black; }
}
.exercise > ol { list-style-type: lower-alpha; }
.vector-figure [stroke="#16614f"] { stroke: var(--primary); }
.vector-figure [stroke="#a04a25"] { stroke: var(--accent); }
.vector-figure [stroke="#35679a"] { stroke: var(--blue); }
.vector-figure [fill="#16614f"] { fill: var(--primary); }
.vector-figure [fill="#a04a25"] { fill: var(--accent); }
.vector-figure [fill="#35679a"] { fill: var(--blue); }
.vector-figure polygon { fill: var(--soft); }
.graph-grid { opacity: 1; }
.graph-grid line { opacity: .18; }
.graph-grid line:not([stroke-dasharray]) { opacity: .6; }
.graph-grid text { fill: var(--muted); }

.competence{font-size:.9rem;color:var(--muted)}.lab svg{display:block;margin:auto} .static-figure{margin:0} .static-figure figcaption{padding:1rem} math[display=block]{max-width:none} @media print{:root{--paper:white;--surface:white;--ink:black;--muted:#333;--primary:#16614f;--soft:#f2f5f3;--line:#aaa;--blue:#35679a;--accent:#a04a25;color-scheme:light}.lab-settings,.answer-check,.motion-toggle{display:none}.lab,.exercise{break-inside:auto}.formula-wrap{overflow:visible}math[display=block]{min-width:0}.chapter{break-before:auto}}

.recall-list{list-style:none;counter-reset:recall;padding-left:0}.recall-list>li{counter-increment:recall;padding-left:2.5rem;position:relative}.recall-list>li:before{content:'R' counter(recall) '.';position:absolute;left:0;font-weight:650}.static-figure svg{min-width:0} .sidebar li a>span:not(.navnum){min-width:0}

.lab-scene{overflow-x:auto}.lab-scene svg,.static-figure svg{min-width:520px}.static-figure{overflow-x:auto}.lab svg text{paint-order:stroke;stroke:var(--soft);stroke-width:2px;stroke-linejoin:round}@media print{.lab-scene svg,.static-figure svg{min-width:0}}

@page{size:A4;margin:1.5cm}@media print{h2,h3,h4{break-after:avoid}.formula-wrap{break-inside:avoid}math[display=block]{font-size:.95em}}


/* Chapitre 04 : encadrés distincts, formules encadrées et schémas statiques. */
blockquote.exemple{background:var(--surface);border-left-color:var(--blue)}
blockquote.methode{background:var(--warm);border-left-color:var(--accent)}
blockquote.programme{background:var(--surface);border-left:3px dashed var(--accent)}
blockquote>strong:first-child{display:block;margin-bottom:.3rem}
menclose[notation=box]{border:1.5px solid currentColor;padding:.25em .4em;border-radius:.2em}
.objectives{background:var(--surface);border:1px solid var(--line);border-radius:.8rem;padding:1rem 1.4rem}
.course-figure{background:var(--surface);border:1px solid var(--line);border-radius:.8rem;padding:1rem}
.course-figure svg{display:block;width:100%;max-width:560px;min-width:0;margin:auto}
.course-figure svg text{fill:var(--ink);font:16px system-ui,sans-serif}
.course-figure figcaption{margin-top:.6rem}
.diagnostic-list>li,.recall-list>li{scroll-margin-top:5rem}
.exercise{scroll-margin-top:5rem}
@media print{menclose[notation=box]{border-color:black}
.course-figure{break-inside:avoid}
}

/* Chapitre 05 : suites, nuages de points et ateliers. */
.introduction{margin:1.6rem 0}
.introduction .objectives{margin-bottom:1.2rem}
blockquote.remember{border-left-color:var(--primary);background:var(--soft)}
blockquote.remember>strong:first-child{margin-bottom:.35rem}
details.indice{margin:1rem 0;border:1px dashed var(--line);border-radius:.6rem;background:var(--surface)}
details.indice>summary{cursor:pointer;font-weight:650;padding:.7rem 1rem}
details.indice>summary::marker{color:var(--primary)}
details.indice[open]>summary{border-bottom:1px dashed var(--line)}
details.indice>p{padding:0 1rem}
details.indice>p:last-child{padding-bottom:.7rem}
.static-figure svg text,.course-figure svg text{fill:var(--ink);font:13px system-ui,sans-serif}
.plot-grid{stroke:var(--line);stroke-width:1;opacity:.6}
.plot-axis{stroke:var(--ink);stroke-width:1.6}
.plot-tick{fill:var(--muted);font:12px system-ui,sans-serif}
.plot-label{fill:var(--muted);font:13px system-ui,sans-serif}
.plot-title{fill:var(--ink);font:600 14px system-ui,sans-serif}
.plot-value{fill:var(--muted);font:11px system-ui,sans-serif}
.course-figure svg{max-width:660px}
.assessment-checkboxes{list-style:none;padding-left:0}
.assessment-checkboxes>li{display:grid;grid-template-columns:1fr repeat(3,auto);gap:.6rem 1rem;align-items:center;border-bottom:1px solid var(--line);padding:.5rem 0}
.assessment-checkboxes label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--muted)}
.assessment-checkboxes input{min-width:20px;min-height:20px;accent-color:var(--primary)}
fieldset.assessment{border:1px solid var(--line);border-radius:.7rem;padding:1rem 1.2rem;margin:1.2rem 0}
fieldset.assessment legend{font-weight:650;padding:0 .4rem}
@media (max-width:720px){
  .assessment-checkboxes>li{grid-template-columns:1fr;gap:.2rem}
}
@media print{
  details.indice{break-inside:avoid}
  details.indice>summary{list-style:none}
  details.indice>p{display:block}
  .static-figure{break-inside:avoid}
}
.range-field.dim{opacity:.45}
.range-field input:disabled{cursor:not-allowed}
math[display="block"]{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:.1rem 0}
p,li,td,th,figcaption{overflow-wrap:anywhere}
.formula-wrap{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden}
math:not([display="block"]){display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;vertical-align:middle}
blockquote.remember>p:first-child>strong:first-child,
blockquote.methode>p:first-child>strong:first-child{display:block;margin-bottom:.35rem}
