/* Pixel art maths – thème « papier quadrillé + pixels » */
@import url('https://fonts.googleapis.com/css2?family=Pixelify+Sans:wght@500;700&display=swap');
:root{--lv:#2F6FED;--ink:#1B1B3A;--ink2:#54567A;--paper:#FFFDF5;--grid:#E9E4D4;--sun:#FFD93B;--px:6px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Trebuchet MS","Segoe UI",system-ui,sans-serif;color:var(--ink);line-height:1.62;
 background:var(--paper) linear-gradient(var(--grid) 1px,transparent 1px) 0 0/100% 26px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:26px 26px}
a{color:var(--ink);text-decoration-color:var(--lv);text-decoration-thickness:3px;text-underline-offset:3px}
h1,h2,.brand,.levels a b,.btn,details.cor>summary{font-family:"Pixelify Sans","Trebuchet MS",sans-serif;letter-spacing:.01em}
/* en-tête : image pleine largeur, menu horizontal, rangée de pixels */
.top{background:var(--ink);padding:0}
.banner{display:block;background:#fff;line-height:0}.banner img{display:block;width:100%;height:auto}
.menu{display:flex;gap:0;overflow-x:auto;justify-content:center;border-top:3px solid var(--ink)}
.menu a{flex:0 0 auto;color:#fff;text-decoration:none;font-weight:700;padding:11px 16px;border-right:2px solid #34345C;white-space:nowrap}
.menu a.home{background:#E53935;color:#fff;letter-spacing:.04em}.menu a.pa{background:var(--sun);color:var(--ink)}
.menu a:hover{background:#34345C}.menu a.home:hover{background:#C62828}.menu a.pa:hover{background:#FFE870}
.menu a[aria-current]{background:var(--lv);color:#fff}
.top .strip{height:14px;background:repeating-linear-gradient(90deg,#E53935 0 18px,#FB8C00 18px 36px,#FFD93B 36px 54px,#43A047 54px 72px,#8FD3F4 72px 90px,#1E4FA3 90px 108px,#F48FB1 108px 126px,#7B2CBF 126px 144px)}
@media (max-width:760px){.menu{justify-content:flex-start}}
.wrap{max-width:980px;margin:0 auto;padding:20px 16px 70px}
.crumb{display:inline-block;background:#fff;border:2px solid var(--ink);padding:3px 10px;font-size:.85rem;margin:4px 0 18px}
h1{font-size:clamp(1.9rem,5vw,3rem);line-height:1.08;margin:.1em 0 .45em;font-weight:700}
h1::after{content:"";display:block;width:132px;height:12px;margin-top:14px;background:repeating-linear-gradient(90deg,var(--lv) 0 12px,transparent 12px 24px)}
h2{display:table;font-size:1.45rem;font-weight:700;margin:2.2em 0 .7em;padding:4px 14px 6px;background:var(--lv);color:#fff;box-shadow:var(--px) var(--px) 0 var(--ink)}
.lead{font-size:1.1rem;max-width:68ch;background:#fff;border-left:12px solid var(--lv);padding:12px 16px}
p{max-width:75ch}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.chip{background:var(--sun);border:2px solid var(--ink);padding:3px 10px;font-size:.85rem;font-weight:700}
.chip:nth-child(2n){background:#fff}.chip b{font-weight:800}
/* cadres */
.card{background:#fff;border:3px solid var(--ink);padding:16px 18px;box-shadow:var(--px) var(--px) 0 var(--lv)}
ol.qs{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:0 22px}
ol.qs.long{grid-template-columns:1fr}
ol.qs li{padding:8px 0;border-bottom:2px dotted #C9C3AE}
b.n{display:inline-block;min-width:1.9em;margin-right:6px;text-align:center;background:var(--ink);color:#fff;font-size:.85rem;padding:0 4px}
.dots{color:#A29C86;letter-spacing:.12em}
.fr{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;font-size:.85em;line-height:1.15;margin:0 .15em}
.fr span:first-child{border-bottom:2px solid currentColor;padding:0 .25em}.fr span:last-child{padding:0 .25em}
/* légende = palette */
.legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:12px}
.legend button{display:flex;align-items:center;gap:12px;background:#fff;border:3px solid var(--ink);padding:8px 10px;font:inherit;color:inherit;cursor:pointer;text-align:left}
.legend button:hover{background:#FFF6C9}.legend button.on{background:var(--sun);box-shadow:var(--px) var(--px) 0 var(--ink);transform:translate(-2px,-2px)}
.legend button:focus-visible,.btn:focus-visible,summary:focus-visible,a:focus-visible{outline:4px solid var(--lv);outline-offset:2px}
.sw{flex:0 0 30px;height:30px;border:3px solid var(--ink)}
/* grilles */
.gridbox{overflow-x:auto;text-align:center;padding:6px 8px 12px}
table.px{border-collapse:collapse;margin:10px auto;border:4px solid var(--ink);background:#fff;box-shadow:10px 10px 0 var(--lv)}
table.px td{width:44px;height:44px;min-width:30px;border:1px solid var(--ink);text-align:center;font-size:.95rem;font-weight:600;cursor:pointer;user-select:none}
table.px td:hover{outline:3px solid var(--lv);outline-offset:-3px}
table.px.sol{box-shadow:6px 6px 0 var(--ink)}table.px.sol td{cursor:default;font-size:.72rem;width:34px;height:34px}table.px.sol td:hover{outline:0}
.tools{text-align:center;margin:10px auto;font-size:.9rem}.tools button{border:2px solid var(--ink);background:#fff;padding:5px 14px;cursor:pointer;font:inherit;font-weight:700}
.tools button:hover{background:var(--sun)}
/* corrigé */
details.cor{margin-top:12px}
details.cor>summary{cursor:pointer;font-weight:700;font-size:1.1rem;background:var(--ink);color:#fff;padding:12px 16px;list-style:none;border:3px solid var(--ink)}
details.cor>summary::-webkit-details-marker{display:none}
details.cor>summary::before{content:"+";display:inline-block;width:1.4em;color:var(--sun)}details.cor[open]>summary::before{content:"–"}
details.cor .card{border-top:0;box-shadow:var(--px) var(--px) 0 var(--ink)}
ol.sol{list-style:none;padding:0;margin:0 0 10px;columns:2 340px;column-gap:30px}
ol.sol li{break-inside:avoid;padding:6px 0;border-bottom:2px dotted #C9C3AE;font-size:.95rem}
.ans{font-weight:800;background:#FFF1A8;padding:0 4px}.tag{display:inline-block;border:2px solid var(--ink);width:14px;height:14px;vertical-align:middle;margin-left:7px}
/* PDF */
.pdf{margin:34px 0;padding:22px 18px;text-align:center;background:var(--lv);border:3px solid var(--ink);box-shadow:var(--px) var(--px) 0 var(--ink)}
.btn{display:inline-block;background:var(--sun);color:var(--ink);text-decoration:none;font-weight:700;font-size:1.15rem;padding:12px 22px;border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}
.btn:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}.hint{display:block;color:#fff;font-size:.9rem;margin-top:12px;font-weight:600}
/* questions fréquentes */
.faq details{background:#fff;border:3px solid var(--ink);margin:0 0 -3px;padding:0 16px}
.faq details[open]{background:#FFFBE0}
.faq summary{cursor:pointer;font-weight:700;padding:13px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:0 0 26px;height:26px;line-height:22px;text-align:center;background:var(--lv);color:#fff;font-weight:800;border:2px solid var(--ink)}
.faq details[open] summary::after{content:"–"}.faq p{margin:0 0 14px}
/* navigation entre fiches */
.nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:34px}
.nav a{background:#fff;border:3px solid var(--ink);padding:10px 14px;text-decoration:none;font-weight:700}.nav a small{display:block;font-weight:400;color:var(--ink2)}
.nav a:last-child{text-align:right}.nav a:hover{background:var(--sun)}
/* accueil : tuiles de niveaux */
.levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:14px;margin:24px 0 8px}
.levels a{display:block;aspect-ratio:1;background:var(--lv);color:#fff;text-decoration:none;border:3px solid var(--ink);padding:12px;box-shadow:var(--px) var(--px) 0 var(--ink);
 clip-path:polygon(0 0,calc(100% - 24px) 0,calc(100% - 24px) 12px,calc(100% - 12px) 12px,calc(100% - 12px) 24px,100% 24px,100% 100%,0 100%)}
.levels a b{display:block;font-size:1.9rem;line-height:1.1}.levels a span{display:block;font-size:.82rem;margin-top:6px;font-weight:600}
.levels a:hover{filter:brightness(1.08)}
/* listes de fiches : lignes, pas de cartes */
ul.rows{list-style:none;margin:0;padding:0;border:3px solid var(--ink);background:#fff;box-shadow:var(--px) var(--px) 0 var(--lv)}
ul.rows li+li{border-top:2px dotted #C9C3AE}
ul.rows a{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:14px;padding:11px 14px;text-decoration:none}
ul.rows a:hover{background:#FFF6C9}ul.rows a:hover .dot{transform:rotate(45deg)}
.dot{width:18px;height:18px;background:var(--lv);border:2px solid var(--ink);transition:transform .15s}
ul.rows strong{font-weight:700}
.meta{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.meta span{font-size:.75rem;border:2px solid var(--ink);padding:0 6px;background:var(--paper);white-space:nowrap}
.meta span:last-child{background:var(--sun)}
footer{background:var(--ink);color:#D9D9EA;font-size:.88rem;padding:26px 14px;text-align:center}footer a{color:#fff;text-decoration-color:var(--sun)}footer p{margin:.3em auto}
#up{position:fixed;right:16px;bottom:16px;width:46px;height:46px;border:3px solid var(--ink);background:var(--sun);color:var(--ink);font-size:1.3rem;font-weight:800;cursor:pointer;display:none;box-shadow:4px 4px 0 var(--ink)}
@media (max-width:640px){ul.rows a{grid-template-columns:22px 1fr}.meta{grid-column:2;justify-content:flex-start}.nav{grid-template-columns:1fr}.nav a:last-child{text-align:left}h2{font-size:1.25rem}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.top,.crumb,.pdf,.faq,.nav,footer,#up,.tools,details.cor,.noprint,.chips{display:none!important}body{background:#fff}table.px{box-shadow:none}table.px td{width:38px;height:38px}}
