/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Instrument Sans", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-yellow-950:oklch(28.6% .066 53.813);--color-lime-50:oklch(98.6% .031 120.757);--color-lime-100:oklch(96.7% .067 122.328);--color-lime-200:oklch(93.8% .127 124.321);--color-lime-300:oklch(89.7% .196 126.665);--color-lime-400:oklch(84.1% .238 128.85);--color-lime-500:oklch(76.8% .233 130.85);--color-lime-600:oklch(64.8% .2 131.684);--color-lime-700:oklch(53.2% .157 131.589);--color-lime-800:oklch(45.3% .124 130.933);--color-lime-900:oklch(40.5% .101 131.063);--color-lime-950:oklch(27.4% .072 132.109);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-400:oklch(77.7% .152 181.912);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-teal-800:oklch(43.7% .078 188.216);--color-teal-900:oklch(38.6% .063 188.416);--color-teal-950:oklch(27.7% .046 192.524);--color-cyan-50:oklch(98.4% .019 200.873);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-800:oklch(45% .085 224.283);--color-cyan-900:oklch(39.8% .07 227.392);--color-cyan-950:oklch(30.2% .056 229.695);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-indigo-900:oklch(35.9% .144 278.697);--color-indigo-950:oklch(25.7% .09 281.288);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-900:oklch(38% .189 293.745);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-100:oklch(95.2% .037 318.852);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-fuchsia-800:oklch(45.2% .211 324.591);--color-fuchsia-900:oklch(40.1% .17 325.612);--color-fuchsia-950:oklch(29.3% .136 325.661);--color-pink-50:oklch(97.1% .014 343.198);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-200:oklch(89.9% .061 343.231);--color-pink-300:oklch(82.3% .12 346.018);--color-pink-400:oklch(71.8% .202 349.761);--color-pink-500:oklch(65.6% .241 354.308);--color-pink-600:oklch(59.2% .249 .584);--color-pink-700:oklch(52.5% .223 3.958);--color-pink-800:oklch(45.9% .187 3.815);--color-pink-900:oklch(40.8% .153 2.432);--color-pink-950:oklch(28.4% .109 3.907);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-900:oklch(41% .159 10.272);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--breakpoint-2xl:96rem;--container-3xs:16rem;--container-2xs:18rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-4xl:2rem;--shadow-2xs:0 1px #0000000d;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--inset-shadow-2xs:inset 0 1px #0000000d;--inset-shadow-xs:inset 0 1px 1px #0000000d;--inset-shadow-sm:inset 0 2px 4px #0000000d;--drop-shadow-xs:0 1px 1px #0000000d;--drop-shadow-sm:0 1px 2px #00000026;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--drop-shadow-xl:0 9px 7px #0000001a;--drop-shadow-2xl:0 25px 25px #00000026;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-xs:4px;--blur-sm:8px;--blur-md:12px;--blur-lg:16px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--perspective-dramatic:100px;--perspective-near:300px;--perspective-normal:500px;--perspective-midrange:800px;--perspective-distant:1200px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-0{top:0}.right-0{right:0}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.mx-auto{margin-inline:auto}.-mt-\[6\.6rem\]{margin-top:-6.6rem}.-mt-px{margin-top:-1px}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.-ml-8{margin-left:calc(var(--spacing) * -8)}.-ml-px{margin-left:-1px}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-12{margin-left:calc(var(--spacing) * 12)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[335\/364\]{aspect-ratio:335/364}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-14\.5{height:calc(var(--spacing) * 14.5)}.h-16{height:calc(var(--spacing) * 16)}.h-26{height:calc(var(--spacing) * 26)}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-\[438px\]{width:438px}.w-auto{width:auto}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[335px\]{max-width:335px}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-y-0{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-items-center{justify-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-\[\#19140035\]{border-color:#19140035}.border-\[\#e3e3e0\]{border-color:#e3e3e0}.border-black{border-color:var(--color-black)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-transparent{border-color:#0000}.bg-\[\#1b1b18\]{background-color:#1b1b18}.bg-\[\#FDFDFC\]{background-color:#fdfdfc}.bg-\[\#dbdbd7\]{background-color:#dbdbd7}.bg-\[\#fff2f2\]{background-color:#fff2f2}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-white{background-color:var(--color-white)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[13px\]{font-size:13px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\[20px\]{--tw-leading:20px;line-height:20px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-\[\#1B1B18\],.text-\[\#1b1b18\]{color:#1b1b18}.text-\[\#706f6c\]{color:#706f6c}.text-\[\#F3BEC7\]{color:#f3bec7}.text-\[\#F8B803\]{color:#f8b803}.text-\[\#F53003\],.text-\[\#f53003\]{color:#f53003}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-100{opacity:1}.mix-blend-color{mix-blend-mode:color}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-multiply{mix-blend-mode:multiply}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0px_0px_1px_0px_rgba\(0\,0\,0\,0\.03\)\,0px_1px_2px_0px_rgba\(0\,0\,0\,0\.06\)\]{--tw-shadow:0px 0px 1px 0px var(--tw-shadow-color,#00000008), 0px 1px 2px 0px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0px_0px_0px_1px_rgba\(26\,26\,0\,0\.16\)\]{--tw-shadow:inset 0px 0px 0px 1px var(--tw-shadow-color,#1a1a0029);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-400{transition-delay:.4s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-750{--tw-duration:.75s;transition-duration:.75s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.\[--stroke-color\:\#1B1B18\]{--stroke-color:#1b1b18}.not-has-\[nav\]\:hidden:not(:has(:is(nav))){display:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-0:before{content:var(--tw-content);top:0}.before\:top-1\/2:before{content:var(--tw-content);top:50%}.before\:bottom-0:before{content:var(--tw-content);bottom:0}.before\:bottom-1\/2:before{content:var(--tw-content);bottom:50%}.before\:left-\[0\.4rem\]:before{content:var(--tw-content);left:.4rem}.before\:border-l:before{content:var(--tw-content);border-left-style:var(--tw-border-style);border-left-width:1px}.before\:border-\[\#e3e3e0\]:before{content:var(--tw-content);border-color:#e3e3e0}@media (hover:hover){.hover\:border-\[\#1915014a\]:hover{border-color:#1915014a}.hover\:border-\[\#19140035\]:hover{border-color:#19140035}.hover\:border-black:hover{border-color:var(--color-black)}.hover\:bg-black:hover{background-color:var(--color-black)}}@media (width>=64rem){.lg\:mt-10{margin-top:calc(var(--spacing) * 10)}.lg\:mb-0{margin-bottom:0}.lg\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.lg\:-ml-px{margin-left:-1px}.lg\:ml-0{margin-left:0}.lg\:block{display:block}.lg\:aspect-auto{aspect-ratio:auto}.lg\:w-\[438px\]{width:438px}.lg\:max-w-4xl{max-width:var(--container-4xl)}.lg\:grow{flex-grow:1}.lg\:flex-row{flex-direction:row}.lg\:justify-center{justify-content:center}.lg\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.lg\:rounded-tl-lg{border-top-left-radius:var(--radius-lg)}.lg\:rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.lg\:rounded-br-none{border-bottom-right-radius:0}.lg\:p-8{padding:calc(var(--spacing) * 8)}.lg\:p-20{padding:calc(var(--spacing) * 20)}.lg\:pb-10{padding-bottom:calc(var(--spacing) * 10)}}@media (prefers-color-scheme:dark){.dark\:border-\[\#3E3E3A\]{border-color:#3e3e3a}.dark\:border-\[\#eeeeec\]{border-color:#eeeeec}.dark\:bg-\[\#0a0a0a\]{background-color:#0a0a0a}.dark\:bg-\[\#1D0002\]{background-color:#1d0002}.dark\:bg-\[\#3E3E3A\]{background-color:#3e3e3a}.dark\:bg-\[\#161615\]{background-color:#161615}.dark\:bg-\[\#eeeeec\]{background-color:#eeeeec}.dark\:text-\[\#1C1C1A\]{color:#1c1c1a}.dark\:text-\[\#4B0600\]{color:#4b0600}.dark\:text-\[\#391800\]{color:#391800}.dark\:text-\[\#733000\]{color:#733000}.dark\:text-\[\#A1A09A\]{color:#a1a09a}.dark\:text-\[\#EDEDEC\]{color:#ededec}.dark\:text-\[\#F61500\]{color:#f61500}.dark\:text-\[\#FF4433\]{color:#f43}.dark\:text-black{color:var(--color-black)}.dark\:mix-blend-hard-light{mix-blend-mode:hard-light}.dark\:mix-blend-normal{mix-blend-mode:normal}.dark\:shadow-\[inset_0px_0px_0px_1px_\#fffaed2d\]{--tw-shadow:inset 0px 0px 0px 1px var(--tw-shadow-color,#fffaed2d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\:\[--stroke-color\:\#FF750F\]{--stroke-color:#ff750f}.dark\:before\:border-\[\#3E3E3A\]:before{content:var(--tw-content);border-color:#3e3e3a}@media (hover:hover){.dark\:hover\:border-\[\#3E3E3A\]:hover{border-color:#3e3e3a}.dark\:hover\:border-\[\#62605b\]:hover{border-color:#62605b}.dark\:hover\:border-white:hover{border-color:var(--color-white)}.dark\:hover\:bg-white:hover{background-color:var(--color-white)}}}@starting-style{.starting\:opacity-0{opacity:0}}@media (prefers-reduced-motion:no-preference){@starting-style{.motion-safe\:starting\:-translate-x-\[26px\]{--tw-translate-x:calc(26px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}}@starting-style{.motion-safe\:starting\:-translate-x-\[51px\]{--tw-translate-x:calc(51px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}}@starting-style{.motion-safe\:starting\:-translate-x-\[78px\]{--tw-translate-x:calc(78px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}}@starting-style{.motion-safe\:starting\:-translate-x-\[102px\]{--tw-translate-x:calc(102px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}}@starting-style{.motion-safe\:starting\:translate-y-6{--tw-translate-y:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}}}}:root{--space-1:.5rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--text-xs:.8rem;--text-sm:.9rem;--text-base:1rem;--text-lg:1.15rem;--text-xl:1.35rem;--text-2xl:2rem;--text-display-sm:clamp(1.8rem, 3.5vw, 2.8rem);--text-display-md:clamp(2rem, 4vw, 3.2rem);--text-display-lg:clamp(2.8rem, 6vw, 4.8rem);--leading-tight:1.1;--leading-body:1.6;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--tracking-tight:-.02em;--tracking-wide:.1em;--color-bg:#050810;--color-surface:#0b1020;--color-text:#e6f1ff;--color-text-muted:#8aa0c7;--color-accent:#3ed4ff;--color-accent-strong:#1e9fff;--color-accent-2:#64f4c9;--color-accent-3:#7c5cff;--gradient-accent:linear-gradient(135deg, var(--color-accent), var(--color-accent-strong));--color-border:#3ed4ff2e;--color-border-strong:#3ed4ff73;--font-heading:"Fraunces", serif;--font-body:"Space Grotesk", sans-serif;--font-mono:"JetBrains Mono", monospace;--color-code-bg:#212c44;--color-on-accent:#031018;--color-warning:#e8aa53;--color-callout:#c264d9;--color-callout-soft:#c264d938;--color-success:#3fcf8e;--color-danger:#ff6b6b;--theme-histoire:#e0918a;--theme-archi:#6f9fb0;--theme-web:#e86fae;--theme-langages:#4ce0a6;--theme-construits:#7b7bf5;--theme-base:#4aa6ff;--theme-tables:#b25ce0;--theme-algo:#3ed4ff;--theme-internet:#ffb74d;--theme-reseaux_sociaux:#4fc3f7;--theme-donnees:#81c784;--theme-carto:#a1887f;--theme-embarquee:#90a4ae;--theme-photo:#f06292;--theme-revision:#e0b15c;--theme-structures:#9b6cf0;--theme-bdd:#2fbfae}[data-theme=light]{--color-bg:#eef2f8;--color-surface:#fff;--color-code-bg:#d5dce9;--color-text:#0b1020;--color-text-muted:#51607a;--color-accent:#1271c4;--color-accent-strong:#0a4f96;--color-accent-2:#0f9e80;--color-accent-3:#6b3fe0;--color-on-accent:#fff;--color-warning:#b06f14;--color-success:#0f9d63;--color-danger:#c92a2a;--theme-histoire:#b85650;--theme-archi:#4d7889;--theme-web:#c24786;--theme-langages:#1e9b6e;--theme-construits:#5454c4;--theme-base:#2d6fc0;--theme-tables:#8a3fb8;--theme-algo:#1c93c4;--theme-internet:#f57c00;--theme-reseaux_sociaux:#0288d1;--theme-donnees:#388e3c;--theme-carto:#5d4037;--theme-embarquee:#455a64;--theme-photo:#c2185b;--theme-revision:#a8761a;--theme-structures:#6f3fc4;--theme-bdd:#15897b;--color-border:#0f172a1f;--color-border-strong:#1271c466}.signature{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.signature:before{content:"";background-image:linear-gradient(var(--color-border) 1px, transparent 1px), linear-gradient(90deg, var(--color-border) 1px, transparent 1px);opacity:.25;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 0,#000 30%,#0000 75%);mask-image:radial-gradient(at 50% 0,#000 30%,#0000 75%)}.signature .orb{border-radius:var(--radius-pill);filter:blur(90px);opacity:.45;position:absolute}.signature .orb-1{background:var(--color-accent);width:420px;height:420px;top:-120px;left:-80px}.signature .orb-2{background:var(--color-accent-3);width:360px;height:360px;bottom:-140px;right:-60px}.signature .orb-3{background:var(--color-accent-2);opacity:.25;width:300px;height:300px;top:30%;right:18%}[data-theme=light] .signature .orb{opacity:.22}.page{z-index:1;flex-direction:column;min-height:100svh;display:flex;position:relative}.page-body{flex:1}.topbar{z-index:20;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--color-bg);display:flex;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.topbar{background:color-mix(in srgb, var(--color-bg) 78%, transparent)}}.topbar{-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border)}.topbar .spacer{flex:1}.brand{align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--text-xl);letter-spacing:var(--tracking-tight);color:var(--color-text);display:inline-flex}.brand .mark{border-radius:var(--radius-sm);background:var(--gradient-accent);width:34px;height:34px;color:var(--color-on-accent);font-family:var(--font-mono);font-weight:var(--weight-bold);font-size:var(--text-base);place-items:center;display:grid}.nav{gap:var(--space-1);margin-left:var(--space-2);display:flex}.nav a{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.nav a:hover{color:var(--color-text);background:var(--color-surface)}.nav a[aria-current=page]{color:var(--color-text);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border)}.user{align-items:center;gap:var(--space-2);display:flex}.user .avatar{border-radius:var(--radius-pill);background:var(--color-accent);place-items:center;width:38px;height:38px;display:grid}@supports (color:color-mix(in lab, red, red)){.user .avatar{background:color-mix(in srgb, var(--color-accent) 22%, var(--color-surface))}}.user .avatar{color:var(--color-accent);font-weight:var(--weight-semibold);font-size:var(--text-sm);border:1px solid var(--color-border)}.user .who{flex-direction:column;line-height:1.2;display:flex}.user .who b{font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--color-text)}.user .who small{color:var(--color-text-muted);font-size:var(--text-xs)}.site-footer{z-index:1;margin-top:var(--space-6);padding:var(--space-5) var(--space-4) var(--space-6);text-align:center;position:relative}.site-footer .seg{width:56px;height:1px;margin:0 auto var(--space-4);background:linear-gradient(90deg, transparent, var(--color-border-strong), transparent)}.site-footer .brand-line{align-items:center;gap:var(--space-2);display:inline-flex}.site-footer .brand-line img{opacity:.9;width:30px;height:auto}.site-footer .brand-line b{font-family:var(--font-heading);font-style:italic;font-weight:var(--weight-medium);font-size:var(--text-base);color:var(--color-text)}.site-footer .legal{font-family:var(--font-heading);font-style:italic;font-weight:var(--weight-regular);font-size:var(--text-sm);color:var(--color-text-muted);margin:var(--space-2) 0 0}.site-footer .legal a{color:var(--color-text-muted);text-underline-offset:3px;text-decoration:underline}.site-footer .legal a:hover{color:var(--color-accent)}@media (width<=720px){.nav,.user .who{display:none}}.theme-toggle{align-items:center;gap:var(--space-1);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;line-height:1;display:inline-flex}.theme-toggle:hover{border-color:var(--color-border-strong)}.theme-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.login-body{background:var(--color-bg);margin:0}.login-page{z-index:1;min-height:100svh;color:var(--color-text);font-family:var(--font-body);flex-direction:column;display:flex;position:relative}.corner{top:var(--space-3);right:var(--space-3);z-index:30;position:fixed}.login-grid{flex:1;grid-template-columns:1.1fr 1fr;align-items:stretch;display:grid}.login-aside{padding:var(--space-7) var(--space-6);flex-direction:column;justify-content:center;display:flex}.login-logo{width:300px;max-width:82%;height:auto;margin-bottom:var(--space-5)}.login-aside .thesis{font-family:var(--font-heading);font-size:var(--text-display-sm);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);max-width:14ch;margin:0}.login-aside .thesis em{color:var(--color-accent);font-style:italic}.login-pitch{margin-top:var(--space-4);max-width:32ch}.login-main{padding:var(--space-5);place-items:center;display:grid}.login-card{width:100%;max-width:24rem;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){.login-card{background:color-mix(in srgb, var(--color-surface) 80%, transparent)}}.login-card{-webkit-backdrop-filter:blur(12px);box-shadow:0 24px 60px var(--color-bg)}@supports (color:color-mix(in lab, red, red)){.login-card{box-shadow:0 24px 60px color-mix(in srgb, var(--color-bg) 55%, transparent)}}.card-logo{width:160px;height:auto;margin:0 auto var(--space-4);display:none}.login-kicker{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-accent);margin:0}.login-title{margin:var(--space-2) 0 var(--space-5);font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--text-2xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.auth-form{gap:var(--space-4);display:grid}.field{gap:var(--space-1);display:grid}.field-label{font-size:var(--text-sm);color:var(--color-text-muted)}.field-control{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:flex}@supports (color:color-mix(in lab, red, red)){.field-control{background:color-mix(in srgb, var(--color-surface) 55%, transparent)}}.field-control{transition:border-color .15s,box-shadow .15s}.field-control:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.field-control:focus-within{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 30%, transparent)}}.field-icon{width:1.15rem;height:1.15rem;color:var(--color-text-muted);flex:none}.field input{min-width:0;color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);background:0 0;border:0;outline:none;flex:1}.field input::placeholder{color:var(--color-text-muted)}.field-toggle{color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex:none;align-items:center;padding:0;transition:color .15s;display:inline-flex}.field-toggle:hover{color:var(--color-accent)}.field-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.field-toggle svg{width:1.15rem;height:1.15rem}.field-toggle .icon-eye-off,.field-toggle[aria-pressed=true] .icon-eye{display:none}.field-toggle[aria-pressed=true] .icon-eye-off{display:inline}.auth-error{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-accent-3);margin:0}@supports (color:color-mix(in lab, red, red)){.auth-error{background:color-mix(in srgb, var(--color-accent-3) 14%, transparent)}}.auth-error{color:var(--color-text);font-size:var(--text-sm)}.auth-submit{margin-top:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--gradient-accent);color:var(--color-on-accent);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;border:0;transition:filter .15s,transform 50ms}.auth-submit:hover{filter:brightness(1.06)}.auth-submit:active{transform:translateY(1px)}.auth-submit:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}[data-theme=light] .login-logo,[data-theme=light] .card-logo{border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:0 0 0 1px var(--color-border);background:#050810}[data-theme=light] .login-card{background:var(--color-surface)}@supports (color:color-mix(in lab, red, red)){[data-theme=light] .login-card{background:color-mix(in srgb, var(--color-surface) 90%, transparent)}}@media (width<=820px){.login-grid{grid-template-columns:1fr}.login-aside{display:none}.card-logo{display:block}}.grid .card+.card{margin-top:0}.theme-histoire{--t:var(--theme-histoire)}.theme-archi{--t:var(--theme-archi)}.theme-web{--t:var(--theme-web)}.theme-langages{--t:var(--theme-langages)}.theme-construits{--t:var(--theme-construits)}.theme-base{--t:var(--theme-base)}.theme-tables{--t:var(--theme-tables)}.theme-algo{--t:var(--theme-algo)}.theme-revision{--t:var(--theme-revision)}.theme-structures{--t:var(--theme-structures)}.theme-bdd{--t:var(--theme-bdd)}.theme-nc{--t:var(--color-text-muted)}.cours-row{box-shadow:inset 4px 0 0 0 var(--t)}.theme-chip{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--t);background:var(--t);display:inline-block}@supports (color:color-mix(in lab, red, red)){.theme-chip{background:color-mix(in srgb, var(--t) 16%, transparent)}}.theme-chip{border:1px solid var(--t)}@supports (color:color-mix(in lab, red, red)){.theme-chip{border:1px solid color-mix(in srgb, var(--t) 38%, transparent)}}.theme-chip{border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);margin-bottom:var(--space-3)}.cours-row .engagement-fill{background:var(--t)}.theme-filtres{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.theme-filtre{--t:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--t);border:1px solid var(--t);background:0 0}@supports (color:color-mix(in lab, red, red)){.theme-filtre{border:1px solid color-mix(in srgb, var(--t) 38%, transparent)}}.theme-filtre{border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);cursor:pointer}.theme-filtre:hover{background:var(--t)}@supports (color:color-mix(in lab, red, red)){.theme-filtre:hover{background:color-mix(in srgb, var(--t) 12%, transparent)}}.theme-filtre.is-active{color:var(--color-on-accent);background:var(--t);border-color:var(--t)}[data-filter=histoire] .cours-row:not([data-theme=histoire]),[data-filter=archi] .cours-row:not([data-theme=archi]),[data-filter=web] .cours-row:not([data-theme=web]),[data-filter=langages] .cours-row:not([data-theme=langages]),[data-filter=construits] .cours-row:not([data-theme=construits]),[data-filter=base] .cours-row:not([data-theme=base]),[data-filter=tables] .cours-row:not([data-theme=tables]),[data-filter=algo] .cours-row:not([data-theme=algo]){display:none}.engagement{height:var(--space-2);background:var(--color-border);border-radius:var(--radius-pill);overflow:hidden}.engagement-fill{background:var(--gradient-accent);height:100%}.heatmap{gap:var(--space-1);grid-template-rows:repeat(7,1fr);grid-auto-flow:column;max-width:max-content;display:grid}.heat-cell{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-sm);background:var(--color-border)}.heat-cell.pad{background:0 0}.heat-cell.n0{background:var(--color-border)}.heat-cell.n1{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.heat-cell.n1{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}}.heat-cell.n2{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.heat-cell.n2{background:color-mix(in srgb, var(--color-accent) 55%, transparent)}}.heat-cell.n3{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.heat-cell.n3{background:color-mix(in srgb, var(--color-accent) 80%, transparent)}}.heat-cell.n4{background:var(--color-accent)}.a-revoir h2 em{color:var(--color-warning);font-style:italic}.a-revoir-compteur{color:var(--color-text-muted)}.a-revoir-entete{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.a-revoir-entete .a-revoir-compteur{margin:0}.a-revoir .btn-effacer{color:var(--color-warning);border:1px solid var(--color-warning);background:0 0}@supports (color:color-mix(in lab, red, red)){.a-revoir .btn-effacer{border:1px solid color-mix(in srgb, var(--color-warning) 45%, transparent)}}.a-revoir .btn-effacer{border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer}.a-revoir .btn-effacer:hover{border-color:var(--color-warning);background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.a-revoir .btn-effacer:hover{background:color-mix(in srgb, var(--color-warning) 8%, transparent)}}.a-revoir-nombre{color:var(--color-warning);font-size:var(--text-2xl);font-weight:var(--weight-bold)}.a-revoir .pill{color:var(--color-warning);background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.a-revoir .pill{background:color-mix(in srgb, var(--color-warning) 14%, transparent)}}.a-revoir .pill{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.a-revoir .pill{border-color:color-mix(in srgb, var(--color-warning) 35%, transparent)}}.a-revoir .pill{margin-bottom:0}.a-revoir .card{align-items:center;gap:var(--space-3);display:flex}.a-revoir-corps{flex-direction:column;gap:2px;min-width:0;display:flex}.a-revoir-titre{font-weight:var(--weight-semibold)}.a-revoir-fleche{color:var(--color-warning);font-size:var(--text-xl);margin-left:auto}.go-flash{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);color:var(--color-success);background:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.go-flash{background:color-mix(in srgb, var(--color-success) 12%, transparent)}}.go-flash{border:1px solid var(--color-success)}@supports (color:color-mix(in lab, red, red)){.go-flash{border:1px solid color-mix(in srgb, var(--color-success) 35%, transparent)}}.go-flash{border-radius:var(--radius-md)}.go-jalon{display:block}.go-dates{gap:var(--space-2);flex-wrap:wrap;display:flex}.go-clos{color:var(--color-warning);border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.go-clos{border-color:color-mix(in srgb, var(--color-warning) 45%, transparent)}}.go-clos{background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.go-clos{background:color-mix(in srgb, var(--color-warning) 12%, transparent)}}.go-readonly{background:var(--color-bg);margin-bottom:var(--space-2)}.go-texte{margin:var(--space-1) 0 0;white-space:pre-wrap;color:var(--color-text)}.go-commentaire{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.go-commentaire{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}}.go-commentaire{border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);white-space:pre-wrap}.go-qa{margin-top:var(--space-3)}.go-question{color:var(--color-accent);font-weight:var(--weight-semibold)}[data-theme=dark] input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light] input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.timeline{margin:var(--space-5) 0}.timeline-list{padding:0 0 0 var(--space-5);gap:var(--space-3);margin:0;list-style:none;display:grid;position:relative}.timeline-list:before{content:"";background:var(--color-border);width:2px;position:absolute;top:.6rem;bottom:.6rem;left:.5rem}.timeline-entry{position:relative}.timeline-entry:before{content:"";top:1.1rem;left:calc(var(--space-5) * -1 + .15rem);border-radius:var(--radius-pill);background:var(--color-accent);border:2px solid var(--color-bg);width:.8rem;height:.8rem;box-shadow:0 0 0 1px var(--color-border-strong);position:absolute}.timeline-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.timeline-head{align-items:baseline;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);text-align:left;color:var(--color-text);cursor:pointer;background:0 0;border:0;margin:0;font-family:inherit;display:flex}.timeline-head--static{cursor:default}.timeline-head:hover:not(.timeline-head--static){background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.timeline-head:hover:not(.timeline-head--static){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.timeline-head:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.timeline-date{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);color:var(--color-accent);flex:none}.timeline-titre{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--text-lg);flex:1}.timeline-chevron{width:1.1rem;height:1.1rem;color:var(--color-text-muted);flex:none;transition:transform .15s}.timeline-head[aria-expanded=true] .timeline-chevron{transform:rotate(180deg)}.timeline-detail{gap:var(--space-3);padding:0 var(--space-4) var(--space-4);display:grid}.timeline-head[aria-expanded=false]+.timeline-detail{display:none}.timeline-desc{color:var(--color-text-muted)}.timeline-desc>:first-child{margin-top:0}.timeline-desc>:last-child{margin-bottom:0}.timeline-image{border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:100%;height:auto;display:block}.timeline-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.timeline-cta{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-sm);background:0 0;text-decoration:none;display:inline-block}.timeline-cta:hover{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.timeline-cta:hover{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}}.timeline-source{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}@media (prefers-reduced-motion:reduce){.timeline-chevron{transition:none}}@media print{.timeline-list{padding-left:0}.timeline-list:before,.timeline-entry:before,.timeline-chevron{display:none}.timeline-detail,.timeline-head[aria-expanded=false]+.timeline-detail{visibility:visible!important;max-height:none!important;display:grid!important;overflow:visible!important}.timeline-card{break-inside:avoid}}.video{margin:var(--space-5) 0;aspect-ratio:16/9;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);position:relative;overflow:hidden}.video-poster{object-fit:cover;width:100%;height:100%;display:block}.video-poster--placeholder{height:100%;padding:var(--space-5);text-align:center;background:radial-gradient(60% 60% at 50% 40%, var(--color-accent), transparent), var(--color-surface);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.video-poster--placeholder{background:radial-gradient(60% 60% at 50% 40%, color-mix(in srgb, var(--color-accent) 18%, transparent), transparent), var(--color-surface)}}.video-poster-titre{font-family:var(--font-heading);font-weight:var(--weight-semibold);font-size:var(--text-lg);color:var(--color-text)}.video-play{justify-content:center;align-items:center;gap:var(--space-2);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);background:var(--color-bg);flex-direction:column;text-decoration:none;display:flex;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.video-play{background:color-mix(in srgb, var(--color-bg) 35%, transparent)}}.video-play{transition:background .15s}.video-play:hover{background:var(--color-bg)}@supports (color:color-mix(in lab, red, red)){.video-play:hover{background:color-mix(in srgb, var(--color-bg) 20%, transparent)}}.video-play:focus-visible{outline:2px solid var(--color-accent);outline-offset:-4px}.video-play-icon{width:3.5rem;height:3.5rem;padding:var(--space-3);border-radius:var(--radius-pill);color:var(--color-bg);background:var(--gradient-accent)}.video-duree{right:var(--space-3);bottom:var(--space-3);padding:var(--space-1) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text);background:var(--color-bg);position:absolute}@supports (color:color-mix(in lab, red, red)){.video-duree{background:color-mix(in srgb, var(--color-bg) 55%, transparent)}}.video-duree{border-radius:var(--radius-sm)}.video.is-playing{background:var(--color-bg)}.video.is-playing .video-poster,.video.is-playing .video-play,.video.is-playing .video-duree{display:none}.video-player{border:0;width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.video-play{transition:none}}@media print{.video{aspect-ratio:auto;break-inside:avoid;background:0 0;border:0}.video:before{content:"Vidéo — " attr(data-titre);font-weight:var(--weight-semibold);display:block}.video-poster,.video-play-icon,.video-duree,.video-player{display:none!important}.video-play{color:var(--color-accent);background:0 0;padding:0;position:static;inset:auto;display:inline!important}}.lineaire{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.lineaire-fallback{gap:var(--space-2);display:grid}.lineaire-fallback-etat{color:var(--color-text-muted);margin:0}.lineaire-fallback-ops{padding-left:var(--space-5);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);margin:0}.lineaire.is-hydrated .lineaire-fallback{display:none}.lineaire-stage{padding:var(--space-4) 0;justify-content:center;display:flex}.lineaire-stage-inner{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.lineaire-labeled{align-items:center;gap:var(--space-2);display:flex}.lineaire-rowlabel{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.lineaire-slice-dir{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);color:var(--color-accent)}.lineaire-empty-select{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.lineaire-cells{gap:var(--space-2);display:flex}.lineaire-cells--liste,.lineaire-cells--file{flex-flow:wrap;justify-content:center;align-items:flex-start}.lineaire-cells--pile{flex-direction:column;align-items:center}.lineaire-cell{min-width:2.5rem;padding:var(--space-2) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:2px;transition:background .15s,border-color .15s;display:flex;position:relative}.lineaire-rank{min-width:1.15rem;height:1.15rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-on-accent);background:var(--color-accent);border-radius:var(--radius-pill);justify-content:center;align-items:center;padding:0 .25rem;display:inline-flex;position:absolute;top:-.5rem;right:-.5rem}.lineaire-val{font-family:var(--font-mono);font-size:var(--text-base);color:var(--color-text)}.lineaire-idx{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.lineaire-marker{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent)}.lineaire-cell.is-highlight{border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.lineaire-cell.is-highlight{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-bg))}}.lineaire-vide{font-family:var(--font-mono);color:var(--color-text-muted);padding:var(--space-3)}.lineaire-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.lineaire-prev,.lineaire-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.lineaire-prev:hover:not(:disabled),.lineaire-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.lineaire-prev:hover:not(:disabled),.lineaire-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.lineaire-prev:disabled,.lineaire-next:disabled{opacity:.4;cursor:not-allowed}.lineaire-status{text-align:center;flex:1;min-width:12rem;margin:0}.lineaire-step{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.lineaire-code{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text)}.lineaire-status.is-error .lineaire-code{color:var(--color-warning)}.lineaire-retour{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent)}@media (prefers-reduced-motion:reduce){.lineaire-cell{transition:none}}@media print{.lineaire.is-hydrated .lineaire-fallback{display:grid!important}.lineaire-stage,.lineaire-bar{display:none!important}}.trace{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.trace-fallback{gap:var(--space-2);display:grid}.trace-fallback-code{padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);margin:0;overflow:auto}.trace-fallback-chemin{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.trace.is-hydrated .trace-fallback{display:none}.trace-stage{padding:var(--space-3) 0;justify-content:center;display:flex}.trace-stage-wrap{align-items:stretch;gap:var(--space-3);flex-direction:column;display:flex}.trace-stage-inner{justify-content:center;align-items:flex-start;gap:var(--space-5);flex-wrap:wrap;display:flex}.trace-valeurs{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-accent);align-self:flex-start}.trace-fallback-valeurs{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);margin:0}.trace-svg{width:100%;max-width:24rem;height:auto}.trace-shape{fill:var(--color-bg);stroke:var(--color-border-strong);stroke-width:1.5px}.trace-node-text{fill:var(--color-text);font-family:var(--font-mono);font-size:12px}.trace-node.is-active .trace-shape{fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.trace-node.is-active .trace-shape{fill:color-mix(in srgb, var(--color-accent) 18%, var(--color-bg))}}.trace-node.is-active .trace-shape{stroke:var(--color-accent);stroke-width:2.5px}.trace-edge{stroke:var(--color-border-strong);stroke-width:1.5px}.trace-edge--success{stroke:var(--color-success)}.trace-edge--danger{stroke:var(--color-danger)}.trace-arrowhead{fill:none;stroke:var(--color-border-strong)}.trace-arrowhead--success{stroke:var(--color-success)}.trace-arrowhead--danger{stroke:var(--color-danger)}.trace-dot{fill:var(--color-border-strong)}.trace-edge-label{font-family:var(--font-mono);fill:var(--color-text-muted);font-size:11px}.trace-edge-label--success{fill:var(--color-success)}.trace-edge-label--danger{fill:var(--color-danger)}.trace-edge-label--loop{fill:var(--color-text-muted)}.trace-code{counter-reset:ligne;font-family:var(--font-mono);font-size:var(--text-sm);align-self:center;margin:0;padding:0;list-style:none}.trace-code-line{counter-increment:ligne;white-space:pre;padding:1px var(--space-2);color:var(--color-text);border-left:3px solid #0000}.trace-code-line:before{content:counter(ligne);width:1.5em;margin-right:var(--space-2);text-align:right;color:var(--color-text-muted);display:inline-block}.trace-code-line.is-active{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.trace-code-line.is-active{background:color-mix(in srgb, var(--color-accent) 14%, transparent)}}.trace-code-line.is-active{border-left-color:var(--color-accent)}.trace-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.trace-prev,.trace-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.trace-prev:hover:not(:disabled),.trace-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.trace-prev:hover:not(:disabled),.trace-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.trace-prev:disabled,.trace-next:disabled{opacity:.4;cursor:not-allowed}.trace-status{text-align:center;flex:1;min-width:12rem;margin:0}.trace-step{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.trace-legend{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text)}@media print{.trace.is-hydrated .trace-fallback{display:grid!important}.trace-stage,.trace-bar{display:none!important}}.circuit{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.circuit-fallback{display:block}.circuit.is-hydrated .circuit-fallback{display:none}.circuit-board,.circuit-schema{width:100%;max-width:40rem;height:auto;margin:0 auto;display:block}.circuit-board-wrap{padding:var(--space-3) 0}.circuit-wire,.circuit-fallback .circuit-wire{stroke:var(--color-border-strong);stroke-width:2.5px;fill:none;transition:stroke .15s}.circuit-wire.is-on{stroke:var(--color-success)}.circuit-wire.is-off{stroke:var(--color-danger)}.circuit-wire.is-idle{stroke:var(--color-border)}.circuit-node rect{fill:var(--color-bg);stroke:var(--color-border-strong);stroke-width:2px;transition:stroke .15s,fill .15s}.circuit-node.is-on rect{stroke:var(--color-success);fill:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.circuit-node.is-on rect{fill:color-mix(in srgb, var(--color-success) 18%, var(--color-bg))}}.circuit-node.is-off rect{stroke:var(--color-danger);fill:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.circuit-node.is-off rect{fill:color-mix(in srgb, var(--color-danger) 12%, var(--color-bg))}}.circuit-node.is-idle rect{stroke:var(--color-border)}.circuit-gate{fill:none;stroke:var(--color-text);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.circuit-board text,.circuit-fallback text{font-family:var(--font-mono);fill:var(--color-text);font-size:15px}.circuit-val{fill:var(--color-text-muted);font-size:12px;font-weight:var(--weight-bold)}.circuit-node.is-on .circuit-val{fill:var(--color-success)}.circuit-node.is-off .circuit-val{fill:var(--color-danger)}.circuit-inputs{gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.circuit-input{min-width:4rem;padding:var(--space-1) var(--space-3);color:var(--color-danger);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;background:0 0;transition:color .15s,border-color .15s,background .15s}.circuit-input.is-on{color:var(--color-success);border-color:var(--color-success);background:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.circuit-input.is-on{background:color-mix(in srgb, var(--color-success) 10%, transparent)}}.circuit-input:disabled{opacity:.5;cursor:not-allowed}.circuit-modes{margin-top:var(--space-2);justify-content:center;display:flex}.circuit-stepbtn{padding:var(--space-1) var(--space-4);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0}.circuit-stepbtn:hover{border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.circuit-stepbtn:hover{background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.circuit-step{margin-top:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3)}.circuit-step-stage{padding:var(--space-2) 0;justify-content:center;min-height:1.5rem;display:flex}.circuit-step-caption{text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);margin:0}.circuit-step-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.circuit-step-prev,.circuit-step-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.circuit-step-prev:hover:not(:disabled),.circuit-step-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.circuit-step-prev:hover:not(:disabled),.circuit-step-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.circuit-step-prev:disabled,.circuit-step-next:disabled{opacity:.4;cursor:not-allowed}.circuit-step-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.circuit-wire,.circuit-node rect,.circuit-input{transition:none}}@media print{.circuit.is-hydrated .circuit-fallback{display:block!important}.circuit-inputs,.circuit-board-wrap,.circuit-modes,.circuit-stephost{display:none!important}}.shell{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.shell-fallback{display:block}.shell.is-hydrated .shell-fallback{display:none}.shell-objectif{margin:0 0 var(--space-3)}.shell-solution-titre{margin:0 0 var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm)}.shell-solution{padding-left:var(--space-5);font-family:var(--font-mono);font-size:var(--text-sm);margin:0}.shell-fallback .shell-prompt{color:var(--color-accent)}.shell-term{gap:var(--space-3);display:grid}.shell-goal{color:var(--color-text-muted);margin:0}.shell-output{max-height:18rem;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-body);white-space:pre-wrap;word-break:break-word;overflow:auto}.shell-output:empty{display:none}.shell-echo{color:var(--color-text)}.shell-out{color:var(--color-text-muted)}.shell-err{color:var(--color-danger)}.shell-line{align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-mono);display:flex}.shell-prompt{color:var(--color-accent);white-space:nowrap}.shell-input{min-width:0;color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1}.shell-line:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.shell-line:focus-within{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 22%, transparent)}}.shell-banner{min-height:0;margin:0}.shell.is-success .shell-banner{padding:var(--space-2) var(--space-3);color:var(--color-on-accent);background:var(--color-success);border-radius:var(--radius-md);font-weight:var(--weight-semibold)}@media print{.shell.is-hydrated .shell-fallback{display:block!important}.shell-term{display:none!important}}.reseau{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.reseau-fallback{display:block}.reseau.is-hydrated .reseau-fallback{display:none}.reseau-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.reseau-etapes{padding-left:var(--space-5);margin:0}.reseau-etapes li{margin:var(--space-1) 0}.reseau-scene-wrap{padding:var(--space-3) 0}.reseau-scene{width:100%;max-width:42rem;height:auto;margin:0 auto;display:block}.reseau-scene text{font-family:var(--font-mono);fill:var(--color-text)}.reseau-lien{stroke:var(--color-border);stroke-width:1.5px}.reseau-path{display:none}.reseau-path.is-active{stroke:var(--rc,var(--color-accent));stroke-width:3px;display:inline}.reseau-hote rect,.reseau-noeud circle{fill:var(--color-bg);stroke:var(--color-border-strong);stroke-width:2px;transition:stroke .15s,fill .15s}.reseau-hote-label{fill:var(--color-text-muted);font-size:13px}.reseau-noeud-label{fill:var(--color-text-muted);font-size:16px}.reseau-hote.is-active rect,.reseau-noeud.is-active circle{stroke:var(--color-accent);fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.reseau-hote.is-active rect,.reseau-noeud.is-active circle{fill:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg))}}.reseau-paquet-corps{fill:var(--color-bg);stroke:var(--rc,var(--color-border-strong));stroke-width:1.5px}.reseau-entete{fill:var(--rc,var(--color-accent))}.reseau-paquet-num{fill:var(--color-text);font-size:12px}.reseau-check{fill:var(--color-success);font-size:13px}.reseau-paquet.is-ok .reseau-paquet-corps{stroke:var(--color-success)}.reseau-paquet.is-missing .reseau-paquet-corps{fill:none;stroke:var(--color-danger);stroke-dasharray:3 3}.reseau-paquet.is-resent .reseau-paquet-corps{stroke:var(--color-danger);fill:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.reseau-paquet.is-resent .reseau-paquet-corps{fill:color-mix(in srgb, var(--color-danger) 16%, var(--color-bg))}}.reseau-message rect{fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.reseau-message rect{fill:color-mix(in srgb, var(--color-accent) 12%, var(--color-bg))}}.reseau-message rect{stroke:var(--color-accent);stroke-width:2px}.reseau-message.is-ok rect{fill:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.reseau-message.is-ok rect{fill:color-mix(in srgb, var(--color-success) 14%, var(--color-bg))}}.reseau-message.is-ok rect{stroke:var(--color-success)}.reseau-message-texte{font-size:15px;font-weight:var(--weight-bold);letter-spacing:1px}.reseau-stage{padding:var(--space-2) 0;min-height:2.5rem}.reseau-legende{text-align:center;color:var(--color-text);margin:0}.reseau-acteur{margin-right:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-on-accent);display:inline-block}.reseau-acteur--tcp{background:var(--color-accent)}.reseau-acteur--ip{background:var(--color-accent-3)}.reseau-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.reseau-prev,.reseau-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.reseau-prev:hover:not(:disabled),.reseau-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.reseau-prev:hover:not(:disabled),.reseau-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.reseau-prev:disabled,.reseau-next:disabled{opacity:.4;cursor:not-allowed}.reseau-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.reseau-hote rect,.reseau-noeud circle{transition:none}}@media print{.reseau.is-hydrated .reseau-fallback{display:block!important}.reseau-scene-wrap,.reseau-stage,.reseau-bar{display:none!important}}.apercu{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.apercu.is-example{box-shadow:inset 4px 0 0 0 var(--color-accent)}.apercu.is-exercise{box-shadow:inset 4px 0 0 0 var(--color-accent-2)}.apercu-fallback{gap:var(--space-3);display:grid}.apercu.is-enhanced .apercu-fallback{display:none}.apercu-fallback-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--color-text-muted)}.apercu-fallback pre{margin:var(--space-1) 0 0;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);overflow:auto}.apercu-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;align-items:stretch;display:grid}@media (width<=48rem){.apercu-grid{grid-template-columns:1fr}}.apercu-editors{gap:var(--space-3);align-content:start;display:grid}.apercu-panel{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);overflow:hidden}.apercu-panel-label{padding:var(--space-1) var(--space-3);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.apercu-panel-label{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}}.apercu-panel-label{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide)}.apercu-editor .cm-editor{max-height:18rem}.apercu-editor .cm-scroller{font-family:var(--font-mono);font-size:var(--text-sm)}.apercu-preview-wrap{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:#fff;min-height:12rem;overflow:hidden}.apercu-preview{background:#fff;border:0;width:100%;height:100%;min-height:12rem;display:block}.apercu-bar{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3);display:flex}.apercu-run{padding:var(--space-1) var(--space-4);background:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer}.apercu-run:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.apercu-reset{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0}.apercu-reset:hover{border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.apercu-reset:hover{background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}@media print{.apercu.is-enhanced .apercu-fallback{display:grid!important}.apercu-grid,.apercu-bar{display:none!important}}.algo{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.algo[data-slug=dichotomie]{width:min(56rem,100vw - 3rem)}.algo-fallback{display:block}.algo.is-hydrated .algo-fallback{display:none}.algo-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.algo-etapes{padding-left:var(--space-5);margin:0}.algo-etapes li{margin:var(--space-1) 0}.algo-stage{padding:var(--space-2) 0}.algo-scene{gap:var(--space-3);justify-items:center;display:grid}.algo-cells{gap:var(--space-2);flex-wrap:nowrap;justify-content:safe center;display:flex;overflow-x:auto}.algo-cell{min-width:2.75rem;padding:var(--space-2) var(--space-3) var(--space-4);background:var(--color-bg);border:2px solid var(--color-border-strong);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:2px;transition:background .15s,border-color .15s,opacity .15s;display:flex;position:relative}.algo-val{font-family:var(--font-mono);font-size:var(--text-lg);color:var(--color-text)}.algo-idx{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.algo-cell.is-triee{border-color:var(--color-success);background:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.algo-cell.is-triee{background:color-mix(in srgb, var(--color-success) 16%, var(--color-bg))}}.algo-cell.is-eliminee{opacity:.4;border-color:var(--color-border)}.algo-cell.is-comparee{border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.algo-cell.is-comparee{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-bg))}}.algo-cell.is-active{border-color:var(--color-warning);background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.algo-cell.is-active{background:color-mix(in srgb, var(--color-warning) 20%, var(--color-bg))}}.algo-marker{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--color-accent);white-space:nowrap;position:absolute;bottom:2px}.algo-legende{text-align:center;max-width:40rem;color:var(--color-text);margin:0}.algo-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.algo-prev,.algo-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.algo-prev:hover:not(:disabled),.algo-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.algo-prev:hover:not(:disabled),.algo-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.algo-prev:disabled,.algo-next:disabled{opacity:.4;cursor:not-allowed}.algo-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.algo-cell,.algo-rec-noeud .algo-rec-boite{transition:none}}.algo-recursion{gap:var(--space-3);justify-items:center;display:grid}.algo-rec-entete{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.algo-rec-chip{padding:2px var(--space-3);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.algo-rec-chip{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface))}}.algo-rec-chip{color:var(--color-accent);border:1px solid var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.algo-rec-chip{border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent)}}.algo-rec-chip{border-radius:var(--radius-full,999px);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.algo-rec-phase{padding:2px var(--space-2);border-radius:var(--radius-sm,6px);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.algo-rec-phase--descente{background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.algo-rec-phase--descente{background:color-mix(in srgb, var(--color-warning) 20%, transparent)}}.algo-rec-phase--descente{color:var(--color-warning)}.algo-rec-phase--remontee{background:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.algo-rec-phase--remontee{background:color-mix(in srgb, var(--color-accent-2) 20%, transparent)}}.algo-rec-phase--remontee{color:var(--color-accent-2)}.algo-rec-niveau{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.algo-rec-scene-wrap{justify-content:center;width:100%;display:flex}.algo-rec-scene{width:100%;max-width:42rem;height:auto}.algo-rec-niv-label{fill:var(--color-text-muted);font-size:.62rem;font-family:var(--font-mono)}.algo-rec-niv-label.is-actif{fill:var(--color-accent);font-weight:var(--weight-semibold)}.algo-rec-arete{stroke:var(--color-border-strong);stroke-width:1.5px}.algo-rec-arete.is-actif{stroke:var(--color-accent);stroke-width:2.5px}.algo-rec-boite{fill:var(--color-bg);stroke:var(--color-border-strong);stroke-width:1.5px;transition:fill .15s,stroke .15s}.algo-rec-txt{fill:var(--color-text);font-family:var(--font-mono);font-size:.72rem}.algo-rec-noeud.etat-en-attente .algo-rec-boite{stroke:var(--color-warning);fill:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.algo-rec-noeud.etat-en-attente .algo-rec-boite{fill:color-mix(in srgb, var(--color-warning) 20%, var(--color-bg))}}.algo-rec-noeud.etat-fusionne .algo-rec-boite{stroke:var(--color-accent-2);fill:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.algo-rec-noeud.etat-fusionne .algo-rec-boite{fill:color-mix(in srgb, var(--color-accent-2) 22%, var(--color-bg))}}.algo-rec-noeud.etat-triee .algo-rec-boite{stroke:var(--color-success);stroke-width:2.5px;fill:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.algo-rec-noeud.etat-triee .algo-rec-boite{fill:color-mix(in srgb, var(--color-success) 28%, var(--color-bg))}}.algo-rec-noeud.etat-actif .algo-rec-boite{stroke:var(--color-accent);stroke-width:3px;fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.algo-rec-noeud.etat-actif .algo-rec-boite{fill:color-mix(in srgb, var(--color-accent) 26%, var(--color-bg))}}@media print{.algo.is-hydrated .algo-fallback{display:block!important}.algo-stage,.algo-bar{display:none!important}}.arbres{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.arbres-fallback{display:block}.arbres.is-hydrated .arbres-fallback{display:none}.arbres-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.arbres-etapes{padding-left:var(--space-5);margin:0}.arbres-etapes li{margin:var(--space-1) 0}.arbres-entete{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.arbres-chip{padding:2px var(--space-3);background:var(--color-accent);flex:none}@supports (color:color-mix(in lab, red, red)){.arbres-chip{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface))}}.arbres-chip{color:var(--color-accent);border:1px solid var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.arbres-chip{border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent)}}.arbres-chip{border-radius:var(--radius-full,999px);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;white-space:nowrap}.arbres-titre-arbre{color:var(--color-text-muted);font-size:var(--text-sm)}.arbres-scene-wrap{padding:var(--space-2) 0;justify-content:center;display:flex}.arbres-scene{width:100%;max-width:44rem;height:auto}.arbres-arete{stroke:var(--color-border-strong);stroke-width:2px}.arbres-noeud circle{fill:var(--color-bg);stroke:var(--color-border-strong);stroke-width:2px;transition:fill .15s,stroke .15s}.arbres-label{fill:var(--color-text);font-size:.82rem}.arbres-label--dedans{font-family:var(--font-mono);font-weight:var(--weight-semibold)}.arbres-label--dessous{font-family:var(--font-body);fill:var(--color-text-muted)}.arbres-noeud.is-visite circle{stroke:var(--color-accent-2);fill:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.arbres-noeud.is-visite circle{fill:color-mix(in srgb, var(--color-accent-2) 22%, var(--color-bg))}}.arbres-noeud.is-visite .arbres-label--dessous{fill:var(--color-text)}.arbres-noeud.is-active circle{stroke:var(--color-accent);fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.arbres-noeud.is-active circle{fill:color-mix(in srgb, var(--color-accent) 28%, var(--color-bg))}}.arbres-noeud.is-active circle{stroke-width:3px}.arbres-noeud.is-active .arbres-label{fill:var(--color-text)}.arbres-stage{padding:var(--space-2) 0}.arbres-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.arbres-prev,.arbres-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.arbres-prev:hover:not(:disabled),.arbres-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.arbres-prev:hover:not(:disabled),.arbres-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.arbres-prev:disabled,.arbres-next:disabled{opacity:.4;cursor:not-allowed}.arbres-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.arbres-noeud circle{transition:none}}@media print{.arbres.is-hydrated .arbres-fallback{display:block!important}.arbres-entete,.arbres-scene-wrap,.arbres-stage,.arbres-bar{display:none!important}}.graphes{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.graphes-fallback{display:block}.graphes.is-hydrated .graphes-fallback{display:none}.graphes-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.graphes-etapes{padding-left:var(--space-5);margin:0}.graphes-etapes li{margin:var(--space-1) 0}.graphes-chemin{margin:var(--space-2) 0 0;font-weight:var(--weight-semibold);color:var(--color-accent)}.graphes-entete{margin-bottom:var(--space-3)}.graphes-chip{padding:2px var(--space-3);background:var(--color-accent);display:inline-block}@supports (color:color-mix(in lab, red, red)){.graphes-chip{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface))}}.graphes-chip{color:var(--color-accent);border:1px solid var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.graphes-chip{border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent)}}.graphes-chip{border-radius:var(--radius-full,999px);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.graphes-corps{gap:var(--space-4);flex-wrap:wrap;justify-content:center;align-items:flex-start;display:flex}.graphes-scene-wrap{flex:20rem;min-width:16rem;max-width:30rem}.graphes-scene{width:100%;height:auto}.graphes-arete{stroke:var(--color-border-strong);stroke-width:2px}.graphes-arete.is-chemin{stroke:var(--color-accent);stroke-width:3.5px}.graphes-fleche{fill:var(--color-border-strong)}.graphes-noeud circle{fill:var(--color-bg);stroke:var(--color-text-muted);stroke-width:2px;transition:fill .15s,stroke .15s}.graphes-label{fill:var(--color-text);font-size:.82rem}.graphes-label--dedans{font-family:var(--font-mono);font-weight:var(--weight-semibold)}.graphes-label--dessous{font-family:var(--font-body);fill:var(--color-text-muted)}.graphes-noeud.etat-en-attente circle{stroke:var(--color-warning);fill:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.graphes-noeud.etat-en-attente circle{fill:color-mix(in srgb, var(--color-warning) 22%, var(--color-bg))}}.graphes-noeud.etat-traite circle{stroke:var(--color-accent-2);fill:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.graphes-noeud.etat-traite circle{fill:color-mix(in srgb, var(--color-accent-2) 22%, var(--color-bg))}}.graphes-noeud.is-actif circle{stroke:var(--color-accent);stroke-width:3.5px;fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.graphes-noeud.is-actif circle{fill:color-mix(in srgb, var(--color-accent) 28%, var(--color-bg))}}.graphes-noeud.is-chemin circle{stroke:var(--color-accent);stroke-width:3.5px}.graphes-aux-wrap{flex:0 12rem;min-width:9rem}.graphes-aux-titre{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}.graphes-aux{padding:var(--space-2);background:var(--color-bg);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:4px;min-height:3rem;display:flex}.graphes-aux--pile{flex-direction:column-reverse}.graphes-aux--file{flex-direction:row}.graphes-cell{min-width:1.9rem;padding:var(--space-1) var(--space-2);background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.graphes-cell{background:color-mix(in srgb, var(--color-warning) 22%, var(--color-bg))}}.graphes-cell{border:1px solid var(--color-warning);border-radius:var(--radius-sm,6px);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);text-align:center}.graphes-cell.is-nouveau{animation:.22s graphes-cell-in}.graphes-aux-vide{color:var(--color-text-muted);font-size:var(--text-xs);font-style:italic}@keyframes graphes-cell-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.graphes-visites-wrap{margin-top:var(--space-4)}.graphes-visites-titre{margin:0 0 var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.graphes-visites{gap:var(--space-2);flex-wrap:wrap;align-items:center;min-height:2rem;display:flex}.graphes-visite-chip{min-width:1.9rem;padding:var(--space-1) var(--space-2);background:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.graphes-visite-chip{background:color-mix(in srgb, var(--color-accent-2) 22%, var(--color-bg))}}.graphes-visite-chip{border:1px solid var(--color-accent-2);border-radius:var(--radius-sm,6px);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);text-align:center}.graphes-visite-chip.is-nouveau{animation:.22s graphes-cell-in}.graphes-visites-vide{color:var(--color-text-muted);font-style:italic}.graphes-stage{padding:var(--space-2) 0}.graphes-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.graphes-prev,.graphes-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.graphes-prev:hover:not(:disabled),.graphes-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.graphes-prev:hover:not(:disabled),.graphes-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.graphes-prev:disabled,.graphes-next:disabled{opacity:.4;cursor:not-allowed}.graphes-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.graphes-noeud circle{transition:none}.graphes-cell.is-nouveau,.graphes-visite-chip.is-nouveau{animation:none}}@media print{.graphes.is-hydrated .graphes-fallback{display:block!important}.graphes-entete,.graphes-corps,.graphes-visites-wrap,.graphes-stage,.graphes-bar{display:none!important}}.crypto{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.crypto-fallback{display:block}.crypto.is-hydrated .crypto-fallback{display:none}.crypto-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.crypto-etapes{padding-left:var(--space-5);margin:0}.crypto-etapes li{margin:var(--space-1) 0}.crypto-stage{padding:var(--space-2) 0}.crypto-scene{gap:var(--space-3);justify-items:center;display:grid}.crypto-entete{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.crypto-chip{padding:2px var(--space-3);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-chip{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface))}}.crypto-chip{color:var(--color-accent);border:1px solid var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-chip{border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent)}}.crypto-chip{border-radius:var(--radius-full,999px);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.crypto-legende{text-align:center;max-width:42rem;color:var(--color-text);margin:0}.crypto-svg-cadre{width:100%;max-width:100%;overflow-x:auto}.crypto-svg-cadre svg{height:auto;margin:0 auto;display:block}.crypto-message{gap:var(--space-1);justify-items:start;display:grid}.crypto-msg-row{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.crypto-msg-label{min-width:4.5rem;font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.crypto-msg-char{min-width:1.4rem;font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:2px 4px;transition:background .15s,border-color .15s;display:inline-flex}.crypto-msg-char.is-chiffre{color:var(--color-accent-2)}.crypto-msg-char.is-masque{color:var(--color-text-muted);opacity:.5}.crypto-msg-char.is-active{border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-msg-char.is-active{background:color-mix(in srgb, var(--color-accent) 18%, var(--color-bg))}}.crypto-msg-char.is-active{font-weight:var(--weight-semibold)}.crypto-cesar-alpha{max-width:44rem}.crypto-cesar-rowlabel{fill:var(--color-text-muted);font-size:.6rem;font-family:var(--font-mono);text-transform:uppercase}.crypto-cesar-box{fill:var(--color-bg);stroke:var(--color-border-strong);stroke-width:1px}.crypto-cesar-lettre{fill:var(--color-text);font-family:var(--font-mono);font-size:.72rem}.crypto-cesar-cell.is-chiffre .crypto-cesar-lettre{fill:var(--color-accent-2)}.crypto-cesar-cell.is-active .crypto-cesar-box{stroke:var(--color-accent);stroke-width:2.5px;fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-cesar-cell.is-active .crypto-cesar-box{fill:color-mix(in srgb, var(--color-accent) 22%, var(--color-bg))}}.crypto-vig-grille{max-width:46rem}.crypto-vig-rowlabel{fill:var(--color-text-muted);font-size:.62rem;font-family:var(--font-mono);text-transform:uppercase}.crypto-vig-box{fill:var(--color-bg);stroke:var(--color-border-strong);stroke-width:1px}.crypto-vig-lettre{fill:var(--color-text);font-family:var(--font-mono);font-size:.82rem}.crypto-vig-cell.is-cle .crypto-vig-lettre{fill:var(--color-warning)}.crypto-vig-cell.is-chiffre .crypto-vig-lettre{fill:var(--color-accent-2)}.crypto-vig-cell.is-masque .crypto-vig-lettre{fill:var(--color-text-muted);opacity:.5}.crypto-vig-cell.is-active .crypto-vig-box{stroke:var(--color-accent);stroke-width:2.5px;fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-vig-cell.is-active .crypto-vig-box{fill:color-mix(in srgb, var(--color-accent) 20%, var(--color-bg))}}.crypto-boite-scene{max-width:42rem}.crypto-acteur-pastille{fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-acteur-pastille{fill:color-mix(in srgb, var(--color-accent) 18%, var(--color-surface))}}.crypto-acteur-pastille{stroke:var(--color-border-strong);stroke-width:1.5px;transition:stroke .15s,fill .15s}.crypto-acteur.is-active .crypto-acteur-pastille{stroke:var(--color-accent);stroke-width:3px;fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-acteur.is-active .crypto-acteur-pastille{fill:color-mix(in srgb, var(--color-accent) 26%, var(--color-surface))}}.crypto-acteur-initiale{fill:var(--color-text);font-family:var(--font-body);font-size:1.1rem;font-weight:var(--weight-semibold)}.crypto-acteur-nom{fill:var(--color-text-muted);font-size:.72rem;font-family:var(--font-body)}.crypto-cle-pastille{stroke-width:1.5px;transition:stroke .15s,fill .15s}.crypto-cle-emoji{font-size:1rem}.crypto-cle--partagee .crypto-cle-pastille,.crypto-cle--publique .crypto-cle-pastille{fill:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.crypto-cle--partagee .crypto-cle-pastille,.crypto-cle--publique .crypto-cle-pastille{fill:color-mix(in srgb, var(--color-accent-2) 22%, var(--color-surface))}}.crypto-cle--partagee .crypto-cle-pastille,.crypto-cle--publique .crypto-cle-pastille{stroke:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.crypto-cle--partagee .crypto-cle-pastille,.crypto-cle--publique .crypto-cle-pastille{stroke:color-mix(in srgb, var(--color-accent-2) 55%, transparent)}}.crypto-cle--privee .crypto-cle-pastille{fill:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.crypto-cle--privee .crypto-cle-pastille{fill:color-mix(in srgb, var(--color-warning) 24%, var(--color-surface))}}.crypto-cle--privee .crypto-cle-pastille{stroke:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.crypto-cle--privee .crypto-cle-pastille{stroke:color-mix(in srgb, var(--color-warning) 60%, transparent)}}.crypto-cle.is-active .crypto-cle-pastille{stroke-width:3px}.crypto-boite-rect{fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-boite-rect{fill:color-mix(in srgb, var(--color-accent) 12%, var(--color-bg))}}.crypto-boite-rect{stroke:var(--color-accent);stroke-width:2px}.crypto-boite-txt{fill:var(--color-accent);font-family:var(--font-body);font-size:.86rem;font-weight:var(--weight-semibold)}.crypto-fleche-trait{stroke:var(--color-accent);stroke-width:2.5px}.crypto-pointe-path{fill:var(--color-accent)}.crypto-fleche-cadenas{font-size:1rem}.crypto-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.crypto-prev,.crypto-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.crypto-prev:hover:not(:disabled),.crypto-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.crypto-prev:hover:not(:disabled),.crypto-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.crypto-prev:disabled,.crypto-next:disabled{opacity:.4;cursor:not-allowed}.crypto-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.crypto-msg-char,.crypto-cesar-box,.crypto-vig-box,.crypto-acteur-pastille,.crypto-cle-pastille{transition:none}}@media print{.crypto.is-hydrated .crypto-fallback{display:block!important}.crypto-stage,.crypto-bar{display:none!important}}.routage{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.routage-fallback{display:block}.routage.is-hydrated .routage-fallback{display:none}.routage-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.routage-etapes{padding-left:var(--space-5);margin:0}.routage-etapes li{margin:var(--space-1) 0}.routage-stage{padding:var(--space-2) 0}.routage-scene{gap:var(--space-3);justify-items:center;display:grid}.routage-entete{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.routage-chip{padding:2px var(--space-3);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.routage-chip{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface))}}.routage-chip{color:var(--color-accent);border:1px solid var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.routage-chip{border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent)}}.routage-chip{border-radius:var(--radius-full,999px);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.routage-legende{text-align:center;max-width:44rem;color:var(--color-text);margin:0}.routage-evenement{padding:var(--space-1) var(--space-3);background:var(--color-warning);margin:0}@supports (color:color-mix(in lab, red, red)){.routage-evenement{background:color-mix(in srgb, var(--color-warning) 18%, var(--color-bg))}}.routage-evenement{color:var(--color-warning);border:1px solid var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.routage-evenement{border:1px solid color-mix(in srgb, var(--color-warning) 50%, transparent)}}.routage-evenement{border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.routage-grille{gap:var(--space-3);flex-wrap:wrap;justify-content:center;width:100%;display:flex}.routage-table{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);min-width:8.5rem;overflow:hidden}.routage-table-titre{padding:var(--space-1) var(--space-2);background:var(--color-accent);margin:0}@supports (color:color-mix(in lab, red, red)){.routage-table-titre{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface))}}.routage-table-titre{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:center}.routage-table table{border-collapse:collapse;width:100%}.routage-table th,.routage-table td{padding:2px var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;border-top:1px solid var(--color-border)}.routage-table th{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.routage-table td{color:var(--color-text)}.routage-metrique{color:var(--color-accent-2);font-weight:var(--weight-semibold)}.routage-table tr.is-maj td{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.routage-table tr.is-maj td{background:color-mix(in srgb, var(--color-accent) 18%, var(--color-bg))}}.routage-table tr.is-maj .routage-metrique{color:var(--color-accent)}.routage-table tr.is-cible td{box-shadow:inset 2px 0 0 var(--color-warning);font-weight:var(--weight-semibold)}.routage-svg-cadre{width:100%;max-width:100%;overflow-x:auto}.routage-topo{max-width:40rem;height:auto;margin:0 auto;display:block}.routage-lien{stroke:var(--color-border-strong);stroke-width:1.5px}.routage-lien.is-chemin{stroke:var(--color-accent);stroke-width:3.5px}.routage-lien.is-cible{stroke:var(--color-warning);stroke-width:4.5px}.routage-cout{fill:var(--color-text-muted);font-family:var(--font-mono);paint-order:stroke;stroke:var(--color-bg);stroke-width:3px;font-size:.72rem}.routage-routeur circle{fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.routage-routeur circle{fill:color-mix(in srgb, var(--color-accent) 14%, var(--color-surface))}}.routage-routeur circle{stroke:var(--color-border-strong);stroke-width:1.5px;transition:fill .15s,stroke .15s}.routage-routeur-label{fill:var(--color-text);font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:.9rem}.routage-dist{fill:var(--color-accent-2);font-family:var(--font-mono);font-size:.72rem;font-weight:var(--weight-semibold)}.routage-routeur.is-source circle{stroke:var(--color-accent);stroke-width:2.5px}.routage-routeur.is-recu circle{fill:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.routage-routeur.is-recu circle{fill:color-mix(in srgb, var(--color-accent-2) 24%, var(--color-surface))}}.routage-routeur.is-visite circle{fill:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.routage-routeur.is-visite circle{fill:color-mix(in srgb, var(--color-success) 22%, var(--color-surface))}}.routage-routeur.is-visite circle{stroke:var(--color-success)}.routage-routeur.is-courant circle{fill:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.routage-routeur.is-courant circle{fill:color-mix(in srgb, var(--color-accent) 26%, var(--color-surface))}}.routage-routeur.is-courant circle{stroke:var(--color-accent);stroke-width:3px}.routage-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.routage-prev,.routage-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.routage-prev:hover:not(:disabled),.routage-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.routage-prev:hover:not(:disabled),.routage-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.routage-prev:disabled,.routage-next:disabled{opacity:.4;cursor:not-allowed}.routage-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.routage-routeur circle{transition:none}}@media print{.routage.is-hydrated .routage-fallback{display:block!important}.routage-stage,.routage-bar{display:none!important}}.ordonnancement{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.ordonnancement-fallback{display:block}.ordonnancement.is-hydrated .ordonnancement-fallback{display:none}.ordonnancement-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.ordonnancement-etapes{padding-left:var(--space-5);margin:0}.ordonnancement-etapes li{margin:var(--space-1) 0}.ordonnancement-sequence{margin:var(--space-2) 0 0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.ordonnancement-stage{padding:var(--space-2) 0}.ordonnancement-scene{gap:var(--space-3);justify-items:center;display:grid}.ordonnancement-entete{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.ordonnancement-chip{padding:2px var(--space-3);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-chip{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface))}}.ordonnancement-chip{color:var(--color-accent);border:1px solid var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-chip{border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent)}}.ordonnancement-chip{border-radius:var(--radius-full,999px);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.ordonnancement-marque{padding:2px var(--space-2);border-radius:var(--radius-sm,6px);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.ordonnancement-marque--preemptif{background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-marque--preemptif{background:color-mix(in srgb, var(--color-warning) 20%, transparent)}}.ordonnancement-marque--preemptif{color:var(--color-warning)}.ordonnancement-marque--non{background:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-marque--non{background:color-mix(in srgb, var(--color-success) 20%, transparent)}}.ordonnancement-marque--non{color:var(--color-success)}.ordonnancement-legende{text-align:center;max-width:44rem;color:var(--color-text);margin:0}.ordonnancement-svg-cadre{width:100%;max-width:100%;overflow-x:auto}.ordonnancement-gantt{max-width:42rem;height:auto;margin:0 auto;display:block}.ordonnancement-axe{stroke:var(--color-border-strong);stroke-width:1.5px}.ordonnancement-tick{stroke:var(--color-border-strong);stroke-width:1px}.ordonnancement-tick-label{fill:var(--color-text-muted);font-family:var(--font-mono);font-size:.66rem}.ordonnancement-bloc rect{fill:var(--pc)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-bloc rect{fill:color-mix(in srgb, var(--pc) 30%, var(--color-bg))}}.ordonnancement-bloc rect{stroke:var(--pc);stroke-width:1.5px;transition:fill .15s,stroke-width .15s}.ordonnancement-bloc.is-actif rect{fill:var(--pc)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-bloc.is-actif rect{fill:color-mix(in srgb, var(--pc) 55%, var(--color-bg))}}.ordonnancement-bloc.is-actif rect{stroke-width:3px}.ordonnancement-bloc-label{fill:var(--color-text);font-family:var(--font-mono);font-size:.78rem;font-weight:var(--weight-semibold)}.ordonnancement-arrivee-encoche{stroke:var(--pc);stroke-width:2px}.ordonnancement-arrivee-label{fill:var(--pc);font-family:var(--font-mono);font-size:.66rem;font-weight:var(--weight-semibold)}.ordonnancement-file{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.ordonnancement-file-titre{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.ordonnancement-file-rangee{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.ordonnancement-file-item{padding:2px var(--space-2);background:var(--pc);align-items:center;gap:3px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.ordonnancement-file-item{background:color-mix(in srgb, var(--pc) 22%, var(--color-bg))}}.ordonnancement-file-item{border:1px solid var(--pc);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text)}.ordonnancement-file-item.is-reenfile{border-style:dashed}.ordonnancement-file-restant{color:var(--color-text-muted);font-size:.9em}.ordonnancement-file-marque{color:var(--color-text-muted);font-size:.7rem}.ordonnancement-file-vide{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.ordonnancement-bloc--p1,.ordonnancement-proc--p1{--pc:var(--color-accent)}.ordonnancement-bloc--p2,.ordonnancement-proc--p2{--pc:var(--color-accent-2)}.ordonnancement-bloc--p3,.ordonnancement-proc--p3{--pc:var(--color-accent-3)}.ordonnancement-bloc--p4,.ordonnancement-proc--p4{--pc:var(--color-warning)}.ordonnancement-legende-procs{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.ordonnancement-proc{font-size:var(--text-xs);align-items:center;gap:6px;display:inline-flex}.ordonnancement-pastille{background:var(--pc);border-radius:3px;width:.8rem;height:.8rem}@supports (color:color-mix(in lab, red, red)){.ordonnancement-pastille{background:color-mix(in srgb, var(--pc) 45%, var(--color-bg))}}.ordonnancement-pastille{border:1px solid var(--pc)}.ordonnancement-proc-nom{font-family:var(--font-mono);font-weight:var(--weight-semibold);color:var(--color-text)}.ordonnancement-proc-detail{color:var(--color-text-muted)}.ordonnancement-table{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);max-width:100%;overflow:hidden}.ordonnancement-table-titre{padding:var(--space-1) var(--space-2);background:var(--color-accent);margin:0}@supports (color:color-mix(in lab, red, red)){.ordonnancement-table-titre{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface))}}.ordonnancement-table-titre{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:center}.ordonnancement-table table{border-collapse:collapse;width:100%}.ordonnancement-table th,.ordonnancement-table td{padding:2px var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;border-top:1px solid var(--color-border)}.ordonnancement-table th{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.ordonnancement-table td{color:var(--color-text)}.ordonnancement-table tr.is-moyenne td{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-table tr.is-moyenne td{background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg))}}.ordonnancement-table tr.is-moyenne td{font-weight:var(--weight-semibold)}.ordonnancement-table tr.is-courant td{background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-table tr.is-courant td{background:color-mix(in srgb, var(--color-accent) 18%, var(--color-bg))}}.ordonnancement-table tr.is-courant td{font-weight:var(--weight-semibold)}.ordonnancement-groupe{background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-xs);font-style:italic;text-align:left!important}.ordonnancement-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.ordonnancement-prev,.ordonnancement-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.ordonnancement-prev:hover:not(:disabled),.ordonnancement-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.ordonnancement-prev:hover:not(:disabled),.ordonnancement-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.ordonnancement-prev:disabled,.ordonnancement-next:disabled{opacity:.4;cursor:not-allowed}.ordonnancement-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media (prefers-reduced-motion:reduce){.ordonnancement-bloc rect{transition:none}}@media print{.ordonnancement.is-hydrated .ordonnancement-fallback{display:block!important}.ordonnancement-stage,.ordonnancement-bar{display:none!important}}.exercice{margin:var(--space-6) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;overflow:hidden}.exercice-accent{background:var(--color-accent-2);flex:0 0 4px}.exercice-body{gap:var(--space-3);min-width:0;padding:var(--space-4);flex:auto;display:grid}.exercice-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.exercice-badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent-2);background:var(--color-accent-2);padding:.25rem .6rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.exercice-badge{background:color-mix(in srgb, var(--color-accent-2) 12%, var(--color-surface))}}.exercice-glyph{opacity:.75}.exercice-favori{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);margin-left:auto}.exercice-enonce{margin:0}.exercice-enonce>:first-child{margin-top:0}.exercice-enonce>:last-child{margin-bottom:0}.exercice-enonce code{font-family:var(--font-mono);background:var(--color-code-bg);border-radius:.3em;padding:.1em .35em}.exercice-form{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.exercice-label{align-items:center;gap:var(--space-2);flex:auto;min-width:12rem;display:inline-flex}.exercice-label-text{color:var(--color-text-muted)}.exercice-input{min-width:6rem;font-family:var(--font-mono);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md,.4rem);padding:var(--space-2) var(--space-3);flex:auto;font-size:1rem}.exercice-input:focus-visible{outline:2px solid var(--color-accent-2);outline-offset:1px}.exercice-valider{font:inherit;font-weight:var(--weight-semibold);color:var(--color-on-accent);background:var(--color-accent-2);border-radius:var(--radius-md,.4rem);padding:var(--space-2) var(--space-4);cursor:pointer;border:1px solid #0000}.exercice-valider:hover{filter:brightness(1.08)}.exercice-feedback{min-height:1.2em;font-weight:var(--weight-semibold);margin:0}.exercice-feedback.is-correct{color:var(--color-success)}.exercice-feedback.is-incorrect{color:var(--color-danger)}.exercice-feedback.is-neutral{color:var(--color-text-muted)}.exercice-reveal{font:inherit;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-md,.4rem);padding:var(--space-1) var(--space-3);cursor:pointer;background:0 0;justify-self:start;margin:0;font-size:.9rem}.exercice-reveal:hover{color:var(--color-text);border-color:var(--color-border-strong,var(--color-border))}.exercice-reveal:disabled{opacity:.55;cursor:default}.exercice-solution{color:var(--color-text);font-family:var(--font-mono);margin:0}.exercice-solution:empty{display:none}@media print{.exercice-form,.exercice-feedback,.exercice-reveal,.exercice-solution,.exercice-favori{display:none!important}}.compteur-bases{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.compteur-bases-fallback{overflow-x:auto}.compteur-bases-table{border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-sm)}.compteur-bases-table th,.compteur-bases-table td{padding:var(--space-1) var(--space-3);text-align:right;border-bottom:1px solid var(--color-border);color:var(--color-text)}.compteur-bases-table th{color:var(--color-text-muted);text-align:right;font-weight:600}.compteur-bases.is-hydrated .compteur-bases-fallback{display:none}.compteur-bases-rows{gap:var(--space-2);display:grid}.compteur-bases-row{align-items:baseline;gap:var(--space-3);display:flex}.compteur-bases-label{min-width:8.5em;color:var(--color-text-muted);font-size:var(--text-sm);flex:none}.compteur-bases-chiffres{font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:.12em;white-space:nowrap;overflow-x:auto}.compteur-bases-chiffre{border-radius:var(--radius-sm);padding:0 .05em;transition:color .15s,background-color .15s;display:inline-block}.compteur-bases-chiffre.is-zero{color:var(--color-text-muted)}.compteur-bases-chiffre.is-sig{color:var(--color-text)}.compteur-bases-chiffre.is-change{color:var(--color-on-accent);background:var(--color-accent);font-weight:700}.compteur-bases-chiffre.is-carry{color:var(--color-on-accent);background:var(--color-warning);font-weight:700}.compteur-bases-controls{gap:var(--space-2);margin-top:var(--space-4);display:flex}.compteur-bases-btn{font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-1) var(--space-3);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,opacity .15s}.compteur-bases-btn:hover:not(:disabled){border-color:var(--color-accent)}.compteur-bases-btn:disabled{opacity:.4;cursor:not-allowed}.compteur-bases-annonce{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}@media print{.compteur-bases.is-hydrated .compteur-bases-fallback{display:block!important}.compteur-bases-live{display:none!important}}.rendu-monnaie{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.rendu-monnaie-titre{margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.rendu-monnaie-etapes{padding-left:var(--space-5);color:var(--color-text);margin:0}.rendu-monnaie.is-hydrated .rendu-monnaie-fallback{display:none}.rendu-monnaie-stage{padding:var(--space-3) 0}.rendu-monnaie-scene{gap:var(--space-2);justify-items:center;display:grid}.rendu-monnaie-entete{gap:var(--space-5);flex-wrap:wrap;justify-content:center;align-items:baseline;display:flex}.rendu-monnaie-cible{color:var(--color-text-muted);font-size:var(--text-sm)}.rendu-monnaie-restant{font-family:var(--font-mono);font-size:var(--text-xl);color:var(--color-text);font-weight:700}.rendu-monnaie-restant.is-impossible{color:var(--color-danger)}.rendu-monnaie-label{margin:var(--space-3) 0 0;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.rendu-monnaie-pieces,.rendu-monnaie-tas{gap:var(--space-2);flex-wrap:wrap;justify-content:center;align-items:center;min-height:2.5rem;display:flex}.rendu-monnaie-piece,.rendu-monnaie-jeton{min-width:2.5rem;height:2.5rem;padding:0 var(--space-1);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);justify-content:center;align-items:center;transition:background-color .15s,border-color .15s;display:inline-flex}.rendu-monnaie-piece.is-choisie{border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.rendu-monnaie-piece.is-choisie{background:color-mix(in srgb, var(--color-accent) 20%, var(--color-bg))}}.rendu-monnaie-piece.is-choisie{color:var(--color-text);font-weight:700}.rendu-monnaie-jeton{border-color:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.rendu-monnaie-jeton{border-color:color-mix(in srgb, var(--color-accent-2) 45%, var(--color-border))}}.rendu-monnaie-jeton{background:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.rendu-monnaie-jeton{background:color-mix(in srgb, var(--color-accent-2) 12%, var(--color-bg))}}.rendu-monnaie-tas-vide{color:var(--color-text-muted);font-size:var(--text-sm)}.rendu-monnaie-total{margin:var(--space-2) 0 0;font-weight:var(--weight-semibold);color:var(--color-success)}.rendu-monnaie-legende{margin:var(--space-3) 0 0;text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.rendu-monnaie-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.rendu-monnaie-prev,.rendu-monnaie-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.rendu-monnaie-prev:hover:not(:disabled),.rendu-monnaie-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.rendu-monnaie-prev:hover:not(:disabled),.rendu-monnaie-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.rendu-monnaie-prev:disabled,.rendu-monnaie-next:disabled{opacity:.4;cursor:not-allowed}.rendu-monnaie-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media print{.rendu-monnaie.is-hydrated .rendu-monnaie-fallback{display:block!important}.rendu-monnaie-stage,.rendu-monnaie-bar{display:none!important}}.conversion{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.conversion-fallback,.conversion-stage{overflow-x:auto}.conversion-table{border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-sm);margin:0 auto}.conversion-table th{padding:var(--space-1) var(--space-3);text-align:right;color:var(--color-text-muted);font-weight:var(--weight-semibold);white-space:nowrap}.conversion-table td,.conversion-cell{padding:var(--space-1) var(--space-2);text-align:center;border:1px solid var(--color-border);min-width:2.6rem;color:var(--color-text)}.conversion-table sup{font-size:.7em}.conversion-bit{color:var(--color-accent);font-weight:700}.conversion-cell.is-active{border:2px solid var(--color-accent);background:var(--color-accent);font-weight:700}@supports (color:color-mix(in lab, red, red)){.conversion-cell.is-active{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-bg))}}.conversion.is-hydrated .conversion-fallback{display:none}.conversion-stage{padding:var(--space-3) 0}.conversion-scene{gap:var(--space-3);justify-items:center;display:grid}.conversion-bilan{gap:var(--space-4);flex-wrap:wrap;justify-content:center;align-items:baseline;display:flex}.conversion-reste,.conversion-somme{font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-text)}.conversion-addition{font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-text);font-weight:700}.conversion-resultat{font-family:var(--font-mono);font-size:var(--text-lg);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--color-success);font-weight:700}@supports (color:color-mix(in lab, red, red)){.conversion-resultat{background:color-mix(in srgb, var(--color-success) 18%, var(--color-bg))}}.conversion-resultat{border:1px solid var(--color-success)}@supports (color:color-mix(in lab, red, red)){.conversion-resultat{border:1px solid color-mix(in srgb, var(--color-success) 45%, var(--color-border))}}.conversion-resultat{color:var(--color-text)}.conversion-legende{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.conversion-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.conversion-prev,.conversion-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.conversion-prev:hover:not(:disabled),.conversion-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.conversion-prev:hover:not(:disabled),.conversion-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.conversion-prev:disabled,.conversion-next:disabled{opacity:.4;cursor:not-allowed}.conversion-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media print{.conversion.is-hydrated .conversion-fallback{display:block!important}.conversion-stage,.conversion-bar{display:none!important}}.ascii{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.ascii-note{margin:0 0 var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}.ascii-table{border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-sm)}.ascii-table th,.ascii-table td{padding:var(--space-1) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text)}.ascii-table th{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.ascii.is-hydrated .ascii-fallback{display:none}.ascii-onglets{gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);display:flex}.ascii-onglet{padding:var(--space-2) var(--space-3);color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000}.ascii-onglet:hover{color:var(--color-text)}.ascii-onglet.is-actif{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.ascii-panneau.is-cache{display:none}.ascii-bloc{margin-bottom:var(--space-4)}.ascii-bloc:last-child{margin-bottom:0}.ascii-label{gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted);flex-direction:column;display:flex}.ascii-input{padding:var(--space-2);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-md)}.ascii-input:focus{border-color:var(--color-accent);outline:none}.ascii-sortie{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;align-items:flex-end;min-height:2.5rem;display:flex}.ascii-octet{flex-direction:column;align-items:center;gap:2px;display:inline-flex}.ascii-octet-car{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.ascii-octet-bin{font-family:var(--font-mono);font-size:var(--text-sm);padding:2px var(--space-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);letter-spacing:.05em}.ascii-octet.is-invalide .ascii-octet-bin,.ascii-lettre.is-invalide{border-color:var(--color-danger);color:var(--color-danger);font-weight:700}.ascii-sortie-mot{font-family:var(--font-mono)}.ascii-lettre{font-family:var(--font-mono);font-size:var(--text-lg);color:var(--color-text);padding:0 2px}.ascii-msg{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--color-text-muted);min-height:1.2em}.ascii-msg.is-bon{color:var(--color-success);font-weight:var(--weight-semibold)}.ascii-msg.is-mauvais{color:var(--color-danger);font-weight:var(--weight-semibold)}.ascii-defi-entete{justify-content:flex-end;display:flex}.ascii-defi-score{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text)}.ascii-defi-consigne{margin:var(--space-2) 0;color:var(--color-text)}.ascii-defi-prompt{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;min-height:2.5rem;display:flex}.ascii-defi-mot{font-family:var(--font-mono);font-size:var(--text-xl);color:var(--color-accent);font-weight:700}.ascii-defi-octet{font-size:var(--text-sm)}.ascii-defi-actions{gap:var(--space-2);margin-top:var(--space-3);display:flex}.ascii-btn{padding:var(--space-1) var(--space-3);background:var(--color-accent);color:var(--color-on-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer}.ascii-btn:disabled{opacity:.4;cursor:not-allowed}.ascii-btn-ghost{color:var(--color-accent);border-color:var(--color-border-strong);background:0 0}.ascii-btn-ghost:hover{border-color:var(--color-accent)}@media print{.ascii.is-hydrated .ascii-fallback{display:block!important}.ascii-live{display:none!important}}.recherche-motif{margin:var(--space-5) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.recherche-motif-fb-ligne{margin:0 0 var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text)}.recherche-motif-fb-conclusion{margin:var(--space-2) 0 0;font-weight:var(--weight-semibold);color:var(--color-text)}.recherche-motif.is-hydrated .recherche-motif-fallback{display:none}.recherche-motif-stage{padding:var(--space-3) 0;overflow-x:auto}.recherche-motif-scene{gap:var(--space-3);display:grid}.recherche-motif-entete{gap:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.recherche-motif-algo{font-size:var(--text-sm);color:var(--color-text-muted)}.recherche-motif-compteur{font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-accent);font-weight:700}.recherche-motif-table{gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);flex-wrap:wrap;align-items:baseline;display:flex}.recherche-motif-table-titre{color:var(--color-text-muted)}.recherche-motif-table-paire{padding:2px var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text)}.recherche-motif-grille{gap:var(--space-1);width:max-content;display:grid}.recherche-motif-ligne{gap:2px;display:flex}.recherche-motif-cell{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);flex-direction:column;align-items:center;min-width:1.9rem;padding:2px 0;display:flex}.recherche-motif-ligne-motif .recherche-motif-cell{background:0 0;border-color:#0000}.recherche-motif-ligne-motif .recherche-motif-cell.is-compare,.recherche-motif-ligne-motif .recherche-motif-cell.is-match,.recherche-motif-ligne-motif .recherche-motif-cell.is-mismatch{border-color:var(--color-border-strong);background:var(--color-bg)}.recherche-motif-glyphe{font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-text);line-height:1.3}.recherche-motif-glyphe.is-espace{color:var(--color-text-muted)}.recherche-motif-index{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.65rem}.recherche-motif-cell.is-compare{border:2px solid var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.recherche-motif-cell.is-compare{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-bg))}}.recherche-motif-cell.is-match{border:2px solid var(--color-success);background:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.recherche-motif-cell.is-match{background:color-mix(in srgb, var(--color-success) 16%, var(--color-bg))}}.recherche-motif-cell.is-match .recherche-motif-glyphe{font-weight:700}.recherche-motif-cell.is-mismatch{border:2px solid var(--color-danger);background:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.recherche-motif-cell.is-mismatch{background:color-mix(in srgb, var(--color-danger) 16%, var(--color-bg))}}.recherche-motif-cell.is-mismatch .recherche-motif-glyphe{color:var(--color-danger);font-weight:700}.recherche-motif-legende{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.recherche-motif-bar{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;justify-content:space-between;display:flex}.recherche-motif-prev,.recherche-motif-next{padding:var(--space-1) var(--space-3);color:var(--color-accent);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none}.recherche-motif-prev:hover:not(:disabled),.recherche-motif-next:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.recherche-motif-prev:hover:not(:disabled),.recherche-motif-next:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 8%, transparent)}}.recherche-motif-prev:disabled,.recherche-motif-next:disabled{opacity:.4;cursor:not-allowed}.recherche-motif-status{text-align:center;min-width:8rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);flex:1;margin:0}@media print{.recherche-motif.is-hydrated .recherche-motif-fallback{display:block!important}.recherche-motif-stage,.recherche-motif-bar{display:none!important}}.sticker{margin:0}.sticker img{width:100%;height:auto;display:block}.sticker--petit{width:5rem}.sticker--moyen{width:8rem}.sticker--grand{width:12rem}.sticker--droite{float:right;margin:var(--space-1) 0 var(--space-3) var(--space-4)}.sticker--gauche{float:left;margin:var(--space-1) var(--space-4) var(--space-3) 0}.sticker--centre{float:none;clear:both;margin:var(--space-4) auto}@media (width<=30rem){.sticker--droite,.sticker--gauche{float:none;margin:var(--space-3) auto}}.annotation-hote{display:inline-flex}.annotation-toggle{border:1px solid var(--color-text-muted);color:var(--color-text);opacity:.8;cursor:pointer;background:0 0;border-radius:8px;transition:opacity .2s,border-color .2s}.annotation-toggle:hover{opacity:1}.annotation-toggle.is-active{opacity:1;border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.annotation-toggle.is-active{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}}.annotation-canvas{z-index:9998;cursor:crosshair;touch-action:none;width:100vw;height:100vh;position:fixed;inset:0}.annotation-barre{z-index:9999;left:50%;bottom:var(--space-4);align-items:center;gap:var(--space-4);max-width:calc(100vw - 2 * var(--space-4));padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);flex-wrap:wrap;justify-content:center;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #00000059}.annotation-groupe{align-items:center;gap:var(--space-2);display:flex}.annotation-btn{padding:var(--space-1) var(--space-3);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;transition:border-color .15s,background-color .15s}.annotation-btn:hover{border-color:var(--color-accent)}.annotation-btn.is-active{border-color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.annotation-btn.is-active{background:color-mix(in srgb, var(--color-accent) 14%, transparent)}}.annotation-btn.is-active{color:var(--color-text);font-weight:700}.annotation-btn-quitter{color:var(--color-text-muted)}.annotation-couleurs{gap:var(--space-1)}.annotation-couleur{border:2px solid var(--color-border-strong);background:var(--c);cursor:pointer;border-radius:50%;width:1.6rem;height:1.6rem;padding:0;transition:transform .1s,border-color .15s}.annotation-couleur:hover{transform:scale(1.1)}.annotation-couleur.is-active{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-accent)}@media print{.annotation-canvas,.annotation-barre,.annotation-hote{display:none!important}}.bac-a-sable{max-width:60rem;margin:0 auto}.bac-a-sable>.muted{margin-bottom:var(--space-4)}.bac-a-sable .cm-editor{min-height:24rem}.bac-a-sable-toolbar{gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap;display:flex}.bac-a-sable-nom{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:inline-flex}.bac-a-sable-nom input{padding:var(--space-1) var(--space-2);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);min-width:10rem}.bac-a-sable-nom input:focus{border-color:var(--color-accent);outline:none}.bac-a-sable-btn{padding:var(--space-1) var(--space-3);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;transition:border-color .15s,background-color .15s}.bac-a-sable-btn:hover{border-color:var(--color-accent)}.bac-a-sable-btn.is-stop{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.bac-a-sable-btn.is-stop{border-color:color-mix(in srgb, var(--color-danger) 55%, var(--color-border-strong))}}.bac-a-sable-btn.is-stop{color:var(--color-danger)}.bac-a-sable-btn.is-stop:hover{border-color:var(--color-danger);background:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.bac-a-sable-btn.is-stop:hover{background:color-mix(in srgb, var(--color-danger) 12%, transparent)}}.bac-a-sable-nojs{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bac-a-sable-nojs{background:color-mix(in srgb, var(--color-warning) 10%, transparent)}}.bac-a-sable-nojs{color:var(--color-text)}.epreuve-pratique{max-width:68rem;margin:0 auto}.epreuve-pratique-grille{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));display:grid}.epreuve-pratique-sujet{padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);text-decoration:none;transition:border-color .15s;display:block}.epreuve-pratique-sujet:hover{border-color:var(--color-accent)}.epreuve-pratique-sujet h3{margin:0 0 var(--space-2)}.epreuve-pratique-sujet .ep-meta{font-size:var(--text-sm);color:var(--color-text-muted)}.epreuve-pratique .ep-consigne{margin:var(--space-4) 0}.epreuve-pratique .ep-pdf{margin:var(--space-3) 0 var(--space-4)}.epreuve-pratique .ep-onglets{gap:var(--space-1);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.epreuve-pratique .ep-onglet{padding:var(--space-1) var(--space-3);color:var(--color-text-muted);border:1px solid var(--color-border-strong);border-radius:var(--radius-md) var(--radius-md) 0 0;font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;background:0 0;border-bottom:none}.epreuve-pratique .ep-onglet.is-active{color:var(--color-text);border-color:var(--color-accent)}.epreuve-pratique .ep-editeur{display:none}.epreuve-pratique .ep-editeur.is-active{display:block}.epreuve-pratique .cm-editor{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);min-height:20rem}.epreuve-pratique .ep-barre{gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.epreuve-pratique .ep-btn{padding:var(--space-1) var(--space-3);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;transition:border-color .15s,background-color .15s}.epreuve-pratique .ep-btn:hover{border-color:var(--color-accent)}.epreuve-pratique .ep-btn.is-run{border-color:var(--color-accent);color:var(--color-accent)}.epreuve-pratique .ep-btn.is-tests{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.epreuve-pratique .ep-btn.is-tests{border-color:color-mix(in srgb, var(--color-success) 55%, var(--color-border-strong))}}.epreuve-pratique .ep-btn.is-tests{color:var(--color-success)}.epreuve-pratique .ep-btn.is-stop{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.epreuve-pratique .ep-btn.is-stop{border-color:color-mix(in srgb, var(--color-danger) 55%, var(--color-border-strong))}}.epreuve-pratique .ep-btn.is-stop{color:var(--color-danger)}.epreuve-pratique .ep-sortie{padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);min-height:3rem;max-height:24rem;font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre-wrap;color:var(--color-text);margin:0;overflow:auto}.epreuve-pratique .ep-sortie.has-error{color:var(--color-danger)}.epreuve-pratique .ep-tests{gap:var(--space-1);margin:var(--space-3) 0;flex-direction:column;display:flex}.epreuve-pratique .ep-test{align-items:baseline;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);display:flex}.epreuve-pratique .ep-test.is-ok{background:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.epreuve-pratique .ep-test.is-ok{background:color-mix(in srgb, var(--color-success) 12%, transparent)}}.epreuve-pratique .ep-test.is-ko{background:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.epreuve-pratique .ep-test.is-ko{background:color-mix(in srgb, var(--color-danger) 12%, transparent)}}.epreuve-pratique .ep-test-etat{font-weight:700}.epreuve-pratique .ep-test.is-ok .ep-test-etat{color:var(--color-success)}.epreuve-pratique .ep-test.is-ko .ep-test-etat{color:var(--color-danger)}.epreuve-pratique .ep-test-nom{font-family:var(--font-mono)}.epreuve-pratique .ep-test-msg{color:var(--color-text-muted);font-style:italic}.epreuve-pratique .ep-figures{gap:var(--space-3);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.epreuve-pratique .ep-figure{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:#fff;max-width:100%;height:auto}.epreuve-pratique .ep-aide{margin:var(--space-2) 0;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.epreuve-pratique .ep-aide>summary{cursor:pointer;color:var(--color-text-muted);font-size:var(--text-sm)}.epreuve-pratique-nojs{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.epreuve-pratique-nojs{background:color-mix(in srgb, var(--color-warning) 10%, transparent)}}.bac-a-sable-web{max-width:72rem;margin:0 auto}.bac-a-sable-web>.muted{margin-bottom:var(--space-4)}.bac-a-sable-web .apercu .cm-editor{min-height:12rem}.bac-a-sable-web .apercu-preview{min-height:26rem}.bac-a-sable-web-toolbar{align-items:center;gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap;display:flex}.bac-a-sable-web .basw-nom{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:inline-flex}.bac-a-sable-web .basw-nom input{padding:var(--space-1) var(--space-2);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);min-width:12rem}.bac-a-sable-web .basw-nom input:focus{border-color:var(--color-accent);outline:none}.bac-a-sable-web .basw-btn{padding:var(--space-1) var(--space-3);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;background:0 0;transition:border-color .15s,background-color .15s}.bac-a-sable-web .basw-btn:hover{border-color:var(--color-accent)}.bac-a-sable-web-nojs{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bac-a-sable-web-nojs{background:color-mix(in srgb, var(--color-warning) 10%, transparent)}}.calendrier{max-width:72rem;margin:0 auto}.calendrier .cal-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.calendrier .cal-retour{color:var(--color-text-muted);white-space:nowrap;text-decoration:none}.calendrier .cal-retour:hover{color:var(--color-text)}.calendrier .cal-flash{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-flash{background:color-mix(in srgb, var(--color-success) 15%, transparent)}}.calendrier .cal-flash{border:1px solid var(--color-success)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-flash{border:1px solid color-mix(in srgb, var(--color-success) 40%, transparent)}}.calendrier .cal-flash-err{background:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-flash-err{background:color-mix(in srgb, var(--color-danger) 15%, transparent)}}.calendrier .cal-flash-err{border-color:var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-flash-err{border-color:color-mix(in srgb, var(--color-danger) 40%, transparent)}}.calendrier .cal-note{color:var(--color-text-muted)}.calendrier .cal-note-special{color:var(--color-warning);font-weight:600}.calendrier .cal-periode{font-family:var(--font-display,inherit);font-size:var(--text-lg);margin:var(--space-4) 0 var(--space-2)}.calendrier .cal-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.calendrier .cal-vues,.calendrier .cal-nav{gap:var(--space-1);flex-wrap:wrap;display:flex}.calendrier .cal-vue-btn,.calendrier .cal-nav-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);text-decoration:none}.calendrier .cal-vue-btn.is-active{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.calendrier .cal-vue-btn:hover,.calendrier .cal-nav-btn:hover{border-color:var(--color-accent)}.calendrier .cal-p0{--t:var(--color-accent);--pc:var(--color-accent)}.calendrier .cal-p1{--t:var(--color-accent-2);--pc:var(--color-accent-2)}.calendrier .cal-p2{--t:var(--color-warning);--pc:var(--color-warning)}.calendrier .cal-p3{--t:var(--color-success);--pc:var(--color-success)}.calendrier .cal-p4{--t:var(--color-danger);--pc:var(--color-danger)}.calendrier .cal-p5{--t:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-p5{--t:color-mix(in srgb, var(--color-accent) 55%, var(--color-accent-2))}}.calendrier .cal-p5{--pc:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-p5{--pc:color-mix(in srgb, var(--color-accent) 55%, var(--color-accent-2))}}.calendrier .cal-p6{--t:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-p6{--t:color-mix(in srgb, var(--color-warning) 55%, var(--color-danger))}}.calendrier .cal-p6{--pc:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-p6{--pc:color-mix(in srgb, var(--color-warning) 55%, var(--color-danger))}}.calendrier .cal-p7{--t:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-p7{--t:color-mix(in srgb, var(--color-success) 55%, var(--color-accent-2))}}.calendrier .cal-p7{--pc:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-p7{--pc:color-mix(in srgb, var(--color-success) 55%, var(--color-accent-2))}}.calendrier .cal-tag{font-size:var(--text-xs);border-radius:var(--radius-sm);padding:0 .4em;display:inline-block}.calendrier .cal-tag-type{background:var(--t,var(--color-accent))}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-tag-type{background:color-mix(in srgb, var(--t,var(--color-accent)) 22%, transparent)}}.calendrier .cal-tag-type{color:var(--color-text)}.calendrier .cal-tag-special{background:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-tag-special{background:color-mix(in srgb, var(--color-warning) 22%, transparent)}}.calendrier .cal-tag-special{color:var(--color-text)}.calendrier .cal-grille{margin-top:var(--space-2);grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendrier .cal-jourhead{text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-1) 0;text-transform:uppercase}.calendrier .cal-day{min-height:5.5rem;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);flex-direction:column;gap:2px;text-decoration:none;display:flex;overflow:hidden}.calendrier .cal-day:hover{border-color:var(--color-accent)}.calendrier .cal-day.has-type{border-left:3px solid var(--t);background:var(--t)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-day.has-type{background:color-mix(in srgb, var(--t) 8%, var(--color-surface))}}.calendrier .cal-day.is-weekend{background:var(--color-text-muted)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-day.is-weekend{background:color-mix(in srgb, var(--color-text-muted) 8%, var(--color-bg))}}.calendrier .cal-day.is-hors-annee,.calendrier .cal-day.is-hors-mois{opacity:.45}.calendrier .cal-day.is-today{outline:2px solid var(--color-accent);outline-offset:-2px}.calendrier .cal-day.is-special{border-color:var(--color-warning);background-image:repeating-linear-gradient(45deg, var(--color-warning) 0 2px, var(--color-warning) 2px 9px)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-day.is-special{background-image:repeating-linear-gradient(45deg, var(--color-warning) 0 2px, color-mix(in srgb, var(--color-warning) 20%, transparent) 2px 9px)}}.calendrier .cal-day-num{font-weight:600;font-size:var(--text-sm)}.calendrier .cal-day-apercu{font-size:var(--text-xs);color:var(--color-text-muted)}.calendrier .cal-semaine{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.calendrier .cal-semjour{padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);flex-direction:column;gap:2px;text-decoration:none;display:flex}.calendrier .cal-semjour.has-type{border-left:4px solid var(--t)}.calendrier .cal-semjour.is-weekend{opacity:.7}.calendrier .cal-semjour.is-today{outline:2px solid var(--color-accent);outline-offset:-2px}.calendrier .cal-semjour-date{text-transform:capitalize;font-weight:600}.calendrier .cal-semjour-txt{font-size:var(--text-sm);color:var(--color-text-muted)}.calendrier .cal-annee{gap:var(--space-4);margin-top:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));display:grid}.calendrier .cal-mini-titre{color:var(--color-text);text-transform:capitalize;margin-bottom:var(--space-1);font-weight:600;text-decoration:none;display:block}.calendrier .cal-mini-titre:hover{color:var(--color-accent)}.calendrier .cal-mini-grille{grid-template-columns:repeat(7,1fr);gap:1px}.calendrier .cal-mini-head{text-align:center;color:var(--color-text-muted);font-size:9px}.calendrier .cal-mini-jour{aspect-ratio:1;color:var(--color-text);background:var(--color-surface);border-radius:2px;justify-content:center;align-items:center;font-size:10px;text-decoration:none;display:flex}.calendrier .cal-mini-jour.has-type{background:var(--t);color:var(--color-on-accent)}.calendrier .cal-mini-jour.is-weekend{background:var(--color-text-muted)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-mini-jour.is-weekend{background:color-mix(in srgb, var(--color-text-muted) 12%, var(--color-bg))}}.calendrier .cal-mini-jour.is-hors-mois{opacity:.3}.calendrier .cal-mini-jour.is-special{background-image:repeating-linear-gradient(45deg, var(--color-warning) 0 2px, var(--color-warning) 2px 6px)}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-mini-jour.is-special{background-image:repeating-linear-gradient(45deg, var(--color-warning) 0 2px, color-mix(in srgb, var(--color-warning) 25%, transparent) 2px 6px)}}.calendrier .cal-mini-jour.is-special{box-shadow:inset 0 0 0 1px var(--color-warning)}.calendrier .cal-mini-jour.is-today{outline:2px solid var(--color-accent)}.calendrier .cal-face{margin:var(--space-4) 0}.calendrier .cal-liens{margin:var(--space-2) 0 0;gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.calendrier .cal-liens a{color:var(--color-accent);text-decoration:none}.calendrier .cal-liens a:hover{text-decoration:underline}.calendrier-edit .cal-edit-form,.calendrier-edit .cal-special-form,.calendrier-admin .cal-annee-form{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.calendrier-edit fieldset,.calendrier-edit .cal-special-form,.calendrier-admin fieldset{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3)}.calendrier-edit label,.calendrier-admin label{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.calendrier-edit select[multiple]{min-height:8rem}.calendrier-admin .cal-jw{align-items:center;gap:var(--space-2);flex-direction:row}.calendrier .btn-effacer{border:1px solid var(--color-danger);background:0 0}@supports (color:color-mix(in lab, red, red)){.calendrier .btn-effacer{border:1px solid color-mix(in srgb, var(--color-danger) 50%, transparent)}}.calendrier .btn-effacer{color:var(--color-danger)}.calendrier .cal-bande{font-size:var(--text-xs);background:var(--pc,var(--color-accent));border-radius:2px;min-height:.5em;margin-top:auto;padding:0 .3em;line-height:1.3;display:block}@supports (color:color-mix(in lab, red, red)){.calendrier .cal-bande{background:color-mix(in srgb, var(--pc,var(--color-accent)) 30%, transparent)}}.calendrier .cal-bande{border-left:3px solid var(--pc,var(--color-accent));color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendrier .cal-semjour .cal-bande{margin-top:2px;display:inline-block}.calendrier .cal-mini-jour{position:relative}.calendrier .cal-mini-bande{background:var(--pc,var(--color-accent));border-radius:2px;height:3px;position:absolute;bottom:0;left:1px;right:1px}.calendrier .cal-legendes{gap:var(--space-6);margin-top:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-4);flex-wrap:wrap;display:flex}.calendrier .cal-legende h2{font-size:var(--text-md);margin:0 0 var(--space-2)}.calendrier .cal-legende-liste{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.calendrier .cal-legende-item{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.calendrier .cal-puce{border-radius:var(--radius-sm);background:var(--pc,var(--color-accent));flex:none;width:1rem;height:1rem;display:inline-block}.calendrier .cal-panel{margin-top:var(--space-5);border-top:1px solid var(--color-border);padding-top:var(--space-4)}.calendrier .cal-panel-liste{gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.calendrier .cal-panel-liste li{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.calendrier .cal-chapitre-item{align-items:flex-end}.calendrier .cal-chapitre-item>.cal-bande{align-self:center}.calendrier .cal-chapitre-edit{align-items:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}.calendrier .cal-chapitre-edit label{gap:var(--space-1);font-size:var(--text-xs);flex-direction:column;display:flex}.calendrier .cal-inline-form{align-items:flex-end;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.calendrier .cal-inline-form label{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.calendrier .cal-hint{margin-top:var(--space-2);font-size:var(--text-xs)}.calendrier .cal-couleurs{gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.calendrier .cal-couleur-opt{cursor:pointer;align-items:center;gap:2px;flex-direction:row!important}.python-console{margin:var(--space-5) 0;gap:var(--space-2);display:grid}.python-console-fallback{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);margin:0;overflow:auto}.python-console.is-enhanced .python-console-fallback{display:none}.python-console-editor{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.python-console-editor .cm-editor{max-height:24rem;font-family:var(--font-mono);font-size:var(--text-sm)}.python-console-editor .cm-editor.cm-focused{outline:none}.python-console-editor .cm-focused{box-shadow:inset 0 0 0 2px var(--color-accent)}.python-console-editor .cm-activeLine,.python-console-editor .cm-activeLineGutter{background-color:#0000}.python-console-controls{align-items:center;gap:var(--space-3);display:flex}.python-console-run{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--gradient-accent);color:#fff;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0}.python-console-run:disabled{opacity:.6;cursor:progress}.python-console-run:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.python-console-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.python-console-stdin-wrap{gap:var(--space-1);display:grid}.python-console-stdin-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.python-console-stdin{min-height:3.5rem;max-height:12rem;padding:var(--space-2) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);resize:vertical;line-height:1.5;overflow:auto}.python-console-stdin:focus-visible{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent);outline:none}.python-console-stdin::placeholder{color:var(--color-text-muted);opacity:.7}.python-console-stdin-help{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.python-console-output{min-height:2.5rem;padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word;color:var(--color-text);margin:0}.python-console-output.has-error{color:var(--color-accent-3);border-color:var(--color-accent-3)}@supports (color:color-mix(in lab, red, red)){.python-console-output.has-error{border-color:color-mix(in srgb, var(--color-accent-3) 45%, transparent)}}.python-console-retry{padding:var(--space-2) var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;justify-self:start;display:none}.python-console.has-load-error .python-console-retry{display:inline-block}.python-console-retry:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.python-console-source{margin:var(--space-6) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;overflow:hidden}.python-console-accent{background:var(--color-accent);flex:0 0 4px}.python-console-source.is-example .python-console-accent{background:var(--color-accent)}.python-console-source.is-exercise .python-console-accent{background:var(--color-accent-2)}.python-console-body{gap:var(--space-3);min-width:0;padding:var(--space-4);flex:auto;display:grid}.python-console-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.python-console-favori{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);margin-left:auto}.python-console-badge{justify-self:start;align-items:center;gap:var(--space-1);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent);background:var(--color-accent);padding:.25rem .6rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.python-console-badge{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface))}}.python-console-source.is-exercise .python-console-badge{color:var(--color-accent-2);background:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.python-console-source.is-exercise .python-console-badge{background:color-mix(in srgb, var(--color-accent-2) 12%, var(--color-surface))}}.python-console-glyph{opacity:.75}.python-console-static{padding:var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-sm);margin:0;overflow:auto}.python-console-open{padding:var(--space-2) var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;justify-self:start;display:none}.python-console-source.is-exercise .python-console-open{border-color:var(--color-accent-2);color:var(--color-accent-2)}.python-console-source.is-enhanced .python-console-open{display:inline-block}.python-console-open:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.python-console-host{display:none}.python-console-source.is-open .python-console-host{display:block}.python-console-host .python-console{margin:0}.python-console-source.is-open .python-console-static{display:none}@media print{.python-console-editor,.python-console-stdin-wrap,.python-console-controls,.python-console-output,.python-console-retry,.python-console-open,.python-console-source.is-open .python-console-host,.python-console-host{display:none!important}.python-console-source.is-open .python-console-static,.python-console-static,.python-console.is-enhanced .python-console-fallback{display:block!important}}.sql-console-source{margin:var(--space-4) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;overflow:hidden}.sql-console-accent{background:var(--color-accent);flex:0 0 4px}.sql-console-source.is-exercise .sql-console-accent{background:var(--color-accent-2)}.sql-console-body{min-width:0;padding:var(--space-3);flex:auto}.sql-console-header{margin-bottom:var(--space-2)}.sql-console-badge{font-family:var(--font-mono);letter-spacing:.06em;border-radius:var(--radius-sm);color:var(--color-accent);background:var(--color-accent);padding:.15rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}@supports (color:color-mix(in lab, red, red)){.sql-console-badge{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface))}}.sql-console-source.is-exercise .sql-console-badge{color:var(--color-accent-2);background:var(--color-accent-2)}@supports (color:color-mix(in lab, red, red)){.sql-console-source.is-exercise .sql-console-badge{background:color-mix(in srgb, var(--color-accent-2) 12%, var(--color-surface))}}.sql-console-glyph{opacity:.75}.sql-console-static{margin:0;overflow-x:auto}.sql-console-open{margin-top:var(--space-2);font-family:var(--font-mono);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.3rem .75rem;font-size:.8rem;display:none}.sql-console-source.is-exercise .sql-console-open{color:var(--color-accent-2);border-color:var(--color-accent-2)}.sql-console-source.is-enhanced .sql-console-open{display:inline-block}.sql-console-open:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.sql-console-host{display:none}.sql-console-source.is-open .sql-console-host{display:block}.sql-console-source.is-open .sql-console-static{display:none}.sql-console-editor{margin-top:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.sql-console-editor:focus-within{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.sql-console-controls{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.sql-console-run,.sql-console-reset,.sql-console-retry{font-family:var(--font-mono);border-radius:var(--radius-sm);cursor:pointer;padding:.3rem .75rem;font-size:.8rem}.sql-console-run{color:var(--color-on-accent);background:var(--color-accent);border:1px solid var(--color-accent)}.sql-console-run:disabled{opacity:.55;cursor:default}.sql-console-reset{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0}.sql-console-reset:hover{color:var(--color-text);border-color:var(--color-text-muted)}.sql-console-hint{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.7rem}.sql-console-retry{margin-top:var(--space-2);color:var(--color-accent);border:1px solid var(--color-accent);background:0 0;display:none}.sql-console.has-load-error .sql-console-retry{display:inline-block}.sql-console-resultat{margin-top:var(--space-2);font-size:.85rem}.sql-console-resultat:empty{display:none}.sql-console-message,.sql-console-compte{margin:var(--space-1) 0 0;font-family:var(--font-mono);color:var(--color-text-muted);font-size:.75rem}.sql-console-erreur{padding:var(--space-2);font-family:var(--font-mono);color:var(--color-danger);background:var(--color-danger);margin:0;font-size:.78rem}@supports (color:color-mix(in lab, red, red)){.sql-console-erreur{background:color-mix(in srgb, var(--color-danger) 8%, transparent)}}.sql-console-erreur{border:1px solid var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.sql-console-erreur{border:1px solid color-mix(in srgb, var(--color-danger) 45%, transparent)}}.sql-console-erreur{border-radius:var(--radius-sm)}.sql-console-grille-cadre{border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow-x:auto}.sql-console-grille{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.78rem}.sql-console-grille th,.sql-console-grille td{text-align:left;white-space:nowrap;border-bottom:1px solid var(--color-border);padding:.3rem .6rem}.sql-console-grille th{color:var(--color-accent);background:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.sql-console-grille th{background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface))}}.sql-console-grille th{font-weight:600}.sql-console-grille tbody tr:last-child td{border-bottom:0}.sql-console-grille td.is-null{color:var(--color-text-muted);font-style:italic}@media print{.sql-console-editor,.sql-console-controls,.sql-console-resultat,.sql-console-retry,.sql-console-open,.sql-console-source.is-open .sql-console-host,.sql-console-host{display:none!important}.sql-console-source.is-open .sql-console-static,.sql-console-static{display:block!important}}.prose p:has(>img:only-child){text-align:center}.prose p:has(>img:nth-of-type(2)){flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;display:flex}.prose p>img,.prose figure>img{max-width:100%;margin-left:auto;margin-right:auto;display:block}.prose p:has(>img:nth-of-type(2))>img{max-width:calc(50% - 1rem);margin:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}
