@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:#fbfaf7;color:#25213e;font:15px/1.7 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #7851d2;outline-offset:4px}header{max-width:1160px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 30px;border-bottom:1px solid #e2def0;font-size:12px}.wordmark{font:600 23px Outfit}.wordmark i{color:#7851d2;font-style:normal}.pilot{font-size:9px;letter-spacing:1px;color:#7c6b92}main{max-width:1100px;margin:auto;padding:20px 30px}.notice{padding:11px 16px;background:#eee7fc;border:1px solid #dfd3ef;border-radius:12px;font-size:12px;color:#654e86}.hero{display:grid;grid-template-columns:1fr 280px;gap:35px;align-items:center;margin:32px 0;padding:28px 35px;border:1px solid #ddd1ee;border-radius:28px;background:linear-gradient(110deg,#f1eafb,#e9f8fc)}h1,h2,h3,strong{font-family:Outfit,sans-serif}h1{font-size:55px;line-height:1.08;letter-spacing:-1.8px;margin:16px 0}h1 em{font-style:normal;color:#7851d2}.hero p{color:#6d647c;max-width:480px}.eyebrow{font-size:9px!important;letter-spacing:1.8px;font-weight:700;color:#795b9d!important}.hero img{width:100%;height:290px;object-fit:contain}.primary{display:inline-block;background:#5d40a4;color:white;border:0;border-radius:12px;padding:13px 18px;font-size:12px;font-weight:700}.hero-actions{display:flex;gap:15px;align-items:center}.hero-actions button,.data button{border:1px solid #d6c7ea;background:#fff;border-radius:10px;padding:11px 15px;font-size:12px;color:#604987}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0 40px}.totals article{background:#fff;border:1px solid #e2def0;border-radius:18px;padding:22px}.totals span{display:block;font-size:9px;letter-spacing:1px;color:#756781}.totals strong{display:block;font-size:34px;font-weight:500;color:#64429f}.totals small{font-size:11px;color:#8a7f94}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.section-heading>span{font-size:11px;color:#806b99}h2{font-weight:500;font-size:28px;line-height:1.2;letter-spacing:-.7px;margin:8px 0}.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.subject{--accent:#087f83;background:white;border:1px solid #ded5eb;border-top:4px solid var(--accent);border-radius:20px;padding:24px}.subject h3{font-size:22px;margin:8px 0}.subject>span{font-size:9px;color:var(--accent);letter-spacing:1px}.subject p{color:#74687e;font-size:12px}.subject a{display:block;font-size:12px;font-weight:700;color:var(--accent);border-top:1px solid #ece6f3;padding-top:15px;margin-top:18px}.subject-stats{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#655377}.subject-stats b{font-size:22px}.report{background:white;border:1px solid #dfd3ed;border-radius:22px;padding:28px;margin:35px 0}.report-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:30px}.report p{font-size:13px;color:#72637e}.report aside{background:#f0eafb;border-radius:16px;padding:22px}.caption{font-size:11px!important;line-height:1.8;color:#887894!important}progress{appearance:none;width:100%;height:8px;border:0;border-radius:10px;background:#e1d8ee}progress::-webkit-progress-bar{background:#e1d8ee;border-radius:10px}progress::-webkit-progress-value{background:linear-gradient(90deg,#158eff,#bb77f8);border-radius:10px}progress::-moz-progress-bar{background:#7851d2}.history li{padding:13px 0;border-bottom:1px solid #e4dced;font-size:12px}.history ul{padding:0;list-style:none}.data{margin:30px 0;padding:20px;border:1px solid #e1d6ed;border-radius:16px;font-size:12px;color:#74657f}.data summary{cursor:pointer;font-weight:700}.data button{margin:5px}footer{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#90849a;border-top:1px solid #e2def0;padding:25px 0}.dock{display:none}.report-fact{padding:12px 15px;background:#f6f2fc;border-radius:12px;margin-bottom:10px}.report-fact strong{font-size:14px}#report-content{margin:20px 0}@media(max-width:700px){body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}header{padding:18px}.pilot{display:none}.wordmark{font-size:19px}main{padding:16px 18px}.hero{grid-template-columns:1fr 100px;padding:20px 15px;gap:10px;margin:20px 0}.hero h1{font-size:32px;letter-spacing:-1px}.hero p{font-size:12px}.hero img{height:170px}.hero-actions{flex-wrap:wrap;gap:8px}.hero-actions .primary{font-size:11px}.hero-actions button{font-size:11px}.totals{gap:8px;margin:20px 0 30px}.totals article{padding:14px 10px;border-radius:14px}.totals strong{font-size:25px}.totals small{font-size:9px;display:block;line-height:1.5}.totals span{font-size:8px}.subject-grid{grid-template-columns:1fr;gap:15px}.subject{padding:20px}.report{padding:20px}.report-grid{grid-template-columns:1fr;gap:15px}.section-heading{align-items:start}.section-heading>span{font-size:9px}h2{font-size:25px}.report .primary{width:100%;min-height:48px}.dock{display:flex;position:fixed;bottom:0;left:0;right:0;justify-content:space-around;gap:8px;background:#fffffff2;border-top:1px solid #ddd0ed;padding:8px 12px calc(8px + env(safe-area-inset-bottom));backdrop-filter:blur(10px);z-index:20}.dock a{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:48px;flex:1;color:#704a9d;font-size:19px}.dock a span{font-size:10px}footer{font-size:9px}button{min-height:44px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

:root{color-scheme:light}.header-tools{display:flex;align-items:center;gap:15px}.theme-toggle{min-height:44px;white-space:nowrap;border:1px solid #d6c7ea;border-radius:12px;background:#fff;color:#604987;padding:9px 13px;font-size:12px}.theme-toggle:hover{background:#eee7fc}
:root[data-theme=dark]{color-scheme:dark}
[data-theme=dark] body{background:#141321;color:#eeebf7}
[data-theme=dark] header,[data-theme=dark] footer{border-color:#38314b}
[data-theme=dark] .notice{background:#2a2140;border-color:#4b386b;color:#d3c0f2}
[data-theme=dark] .hero{background:linear-gradient(115deg,#2b2140,#192d3b);border-color:#493760}
[data-theme=dark] h1 em{color:#bc9aef}
[data-theme=dark] .hero p,[data-theme=dark] .subject p,[data-theme=dark] .report p,[data-theme=dark] .data{color:#beb4cb}
[data-theme=dark] .eyebrow{color:#c0a3e6!important}
[data-theme=dark] .totals article,[data-theme=dark] .subject,[data-theme=dark] .report{background:#201d30;border-color:#42364f}
[data-theme=dark] .totals strong{color:#c3a5f4}
[data-theme=dark] .totals small,[data-theme=dark] .totals span,[data-theme=dark] .section-heading>span,[data-theme=dark] .pilot,[data-theme=dark] footer{color:#b7a9c7}
[data-theme=dark] .subject{border-top-color:#a486d4}
[data-theme=dark] .subject>span,[data-theme=dark] .subject a{color:#9ddde6}
[data-theme=dark] .subject-stats{color:#d1c2e4}
[data-theme=dark] .subject a,[data-theme=dark] .history li,[data-theme=dark] .data{border-color:#42364f}
[data-theme=dark] .report aside,[data-theme=dark] .report-fact{background:#2c2440}
[data-theme=dark] .caption{color:#b5a5c8!important}
[data-theme=dark] .primary{background:#aa85e4;color:#171122}
[data-theme=dark] .theme-toggle,[data-theme=dark] .hero-actions button,[data-theme=dark] .data button{background:#2b2440;border-color:#5b4478;color:#e4d6f5}
[data-theme=dark] .theme-toggle:hover{background:#3a2d52}
[data-theme=dark] progress,[data-theme=dark] progress::-webkit-progress-bar{background:#423452}
[data-theme=dark] .dock{background:#201c30f5;border-color:#49355f}
[data-theme=dark] .dock a{color:#cfb0f4}
[data-theme=dark] a:focus-visible,[data-theme=dark] button:focus-visible,[data-theme=dark] summary:focus-visible{outline-color:#36dcf5}
@media(max-width:700px){.header-tools{gap:6px}.theme-toggle{font-size:11px;padding:8px 10px}header{gap:10px}.wordmark{font-size:16px}header>a{font-size:11px}}

/* Nuit néon : palette AYR, lumière concentrée sur les repères utiles. */
[data-theme=dark] body{background:#070910;color:#eef4ff;background-image:radial-gradient(ellipse at 85% 3%,#158eff13,transparent 38%),radial-gradient(ellipse at 5% 45%,#bb77f80b,transparent 38%)}
[data-theme=dark] header{border-color:#36dcf526}
[data-theme=dark] .wordmark{color:#f1f6ff;letter-spacing:-.4px}
[data-theme=dark] .wordmark i{color:#36dcf5;text-shadow:0 0 16px #36dcf58c}
[data-theme=dark] .notice{background:#101824;border-color:#36dcf53d;color:#b9dfec}
[data-theme=dark] .hero{position:relative;isolation:isolate;background:radial-gradient(ellipse at 80% 55%,#158eff22,transparent 55%),linear-gradient(120deg,#0c1320,#101021);border-color:#36dcf544;box-shadow:0 0 36px #158eff09,inset 0 1px 0 #b4eaff0d;overflow:hidden}
[data-theme=dark] .hero:after{content:'';position:absolute;z-index:-1;width:250px;height:250px;right:28px;top:50%;transform:translateY(-50%);border:1px solid #36dcf52e;border-radius:50%;box-shadow:0 0 50px #158eff16,inset 0 0 40px #bb77f80c;pointer-events:none}
[data-theme=dark] h1 em{background:linear-gradient(100deg,#36dcf5 0%,#42b5ff 50%,#bb77f8 100%);background-clip:text;-webkit-background-clip:text;color:transparent}
[data-theme=dark] .eyebrow{color:#75deee!important}
[data-theme=dark] .hero img{filter:drop-shadow(0 0 19px #36dcf52b) drop-shadow(0 8px 15px #bb77f81c)}
[data-theme=dark] .hero p,[data-theme=dark] .subject p,[data-theme=dark] .report p,[data-theme=dark] .data{color:#b3bed2}
[data-theme=dark] .primary{background:linear-gradient(110deg,#36dcf5,#79d9ff);color:#06121b;border:1px solid #a5f3ff80;box-shadow:0 0 18px #36dcf523;font-weight:700}
[data-theme=dark] .primary:hover:not(:disabled){background:#9aeeff;box-shadow:0 0 25px #36dcf544}
[data-theme=dark] .primary:disabled{background:#1e3040;color:#9cb3c5;border-color:#345064;box-shadow:none;opacity:1}
[data-theme=dark] .totals article,[data-theme=dark] .subject,[data-theme=dark] .report{background:linear-gradient(140deg,#0e1520,#10121e);border-color:#334255;box-shadow:0 7px 28px #0003}
[data-theme=dark] .totals article:first-child{border-top:2px solid #36dcf5}
[data-theme=dark] .totals article:nth-child(2){border-top:2px solid #bb77f8}
[data-theme=dark] .totals article:nth-child(3){border-top:2px solid #158eff}
[data-theme=dark] .totals strong{color:#72e3f3;text-shadow:0 0 16px #36dcf51a}
[data-theme=dark] .totals article:nth-child(2) strong{color:#d1a4ff}
[data-theme=dark] .totals article:nth-child(3) strong{color:#83beff}
[data-theme=dark] .totals small,[data-theme=dark] .totals span,[data-theme=dark] .section-heading>span,[data-theme=dark] .pilot,[data-theme=dark] footer{color:#9caac1}
[data-theme=dark] .subject{position:relative;border-top:2px solid #36dcf5;transition:border-color .2s,box-shadow .2s}
[data-theme=dark] .subject:nth-child(2){border-top-color:#158eff}
[data-theme=dark] .subject:nth-child(3){border-top-color:#bb77f8}
[data-theme=dark] .subject:hover{border-color:#36dcf58c;box-shadow:0 0 23px #158eff13}
[data-theme=dark] .subject>span,[data-theme=dark] .subject a{color:#76e2f1}
[data-theme=dark] .subject:nth-child(2)>span,[data-theme=dark] .subject:nth-child(2) a{color:#8bc3ff}
[data-theme=dark] .subject:nth-child(3)>span,[data-theme=dark] .subject:nth-child(3) a{color:#d0a3ff}
[data-theme=dark] .subject-stats{color:#c0cbe0}
[data-theme=dark] .subject a,[data-theme=dark] .history li,[data-theme=dark] .data{border-color:#2c3648}
[data-theme=dark] .report{border-color:#bb77f854}
[data-theme=dark] .report aside,[data-theme=dark] .report-fact{background:#15182a;border:1px solid #bb77f825}
[data-theme=dark] .caption{color:#a9b4ca!important}
[data-theme=dark] .theme-toggle,[data-theme=dark] .hero-actions button,[data-theme=dark] .data button{background:#101923;border-color:#36dcf54d;color:#a5eafa}
[data-theme=dark] .theme-toggle:hover,[data-theme=dark] .hero-actions button:hover,[data-theme=dark] .data button:hover{background:#132532;border-color:#36dcf5a6}
[data-theme=dark] progress,[data-theme=dark] progress::-webkit-progress-bar{background:#252a3e}
[data-theme=dark] progress::-webkit-progress-value{background:linear-gradient(90deg,#36dcf5,#158eff,#bb77f8);box-shadow:0 0 12px #36dcf566}
[data-theme=dark] progress::-moz-progress-bar{background:linear-gradient(90deg,#36dcf5,#158eff,#bb77f8)}
[data-theme=dark] .dock{background:#090e19f2;border-color:#36dcf540;box-shadow:0 -5px 24px #158eff0a}
[data-theme=dark] .dock a{color:#8de6f2}
@media(max-width:700px){[data-theme=dark] .hero:after{width:145px;height:145px;right:-22px}}
@media(prefers-reduced-motion:reduce){[data-theme=dark] .subject{transition:none}}

/* Clair lumineux : même signature que la nuit néon. */
:root:not([data-theme=dark]) body{background:radial-gradient(ellipse at 90% 0,#158eff0c,transparent 50%),#f5f8ff;color:#20243f}
:root:not([data-theme=dark]) .hero{background:radial-gradient(ellipse at 83% 50%,#36dcf51e,transparent 55%),linear-gradient(115deg,#f0ebff,#e8f7ff);border-color:#cbdcf2;box-shadow:0 8px 35px #158eff09}
:root:not([data-theme=dark]) h1 em{background:linear-gradient(100deg,#087f92,#216acb 48%,#8b4dc5);background-clip:text;-webkit-background-clip:text;color:transparent}
:root:not([data-theme=dark]) .hero img{filter:drop-shadow(0 8px 18px #158eff20)}
:root:not([data-theme=dark]) .primary{background:linear-gradient(110deg,#175bb7,#6542b0);border:1px solid #5068bd;box-shadow:0 4px 16px #2460c520}
:root:not([data-theme=dark]) .notice{background:linear-gradient(110deg,#edf0ff,#e9f8ff);border-color:#c9ddf0;color:#4b607d}
:root:not([data-theme=dark]) .totals article{border-color:#d6e1f2;box-shadow:0 5px 22px #326ac707}
:root:not([data-theme=dark]) .totals article:first-child{border-top:2px solid #159ba9}
:root:not([data-theme=dark]) .totals article:nth-child(2){border-top:2px solid #a375d1}
:root:not([data-theme=dark]) .totals article:nth-child(3){border-top:2px solid #158eff}
:root:not([data-theme=dark]) .totals strong{color:#2169ba}
:root:not([data-theme=dark]) .totals article:nth-child(2) strong{color:#8350b6}
:root:not([data-theme=dark]) .report{border-color:#d6dcf1;box-shadow:0 5px 25px #326ac707}
:root:not([data-theme=dark]) .report aside,:root:not([data-theme=dark]) .report-fact{background:linear-gradient(115deg,#eeedff,#e9f6ff)}
:root:not([data-theme=dark]) .subject{background:linear-gradient(155deg,#fff,#f8fbff);box-shadow:0 5px 20px #326ac707}
:root:not([data-theme=dark]) .theme-toggle{background:#fff;border-color:#cddcf2;color:#405c92}
:root:not([data-theme=dark]) .dock{background:#fffffff2;border-color:#d3dcef}
:root:not([data-theme=dark]) .dock a{color:#4f64a4}

#subjects{scroll-margin-top:24px}#parcours{margin-top:48px;scroll-margin-top:24px}.wordmark{white-space:nowrap}footer a{color:inherit;text-decoration:underline}@media(max-width:600px){header{height:auto;flex-wrap:wrap;gap:12px;padding-top:14px;padding-bottom:14px}.header-tools{flex-wrap:wrap}.pilot{font-size:9px}}

.planned-subjects{margin:28px 0}.planned-subjects summary{cursor:pointer;padding:16px 0;font-weight:700}.planned-subjects .subject-grid{margin-top:20px}.subject.planned{opacity:.9}.subject.planned>span{font-size:10px;letter-spacing:1px}

:root[data-theme=dark] .subject.planned{border-top-color:color-mix(in srgb,var(--accent) 55%,white)}:root[data-theme=dark] .subject.planned>span{color:color-mix(in srgb,var(--accent) 55%,white)}
