:root{--ink:#0a2d41;--text:#33495a;--text-muted:#566775;--bg-page:#f5f8f9;--bg-card:#fff;--bg-subtle:#f2f6f8;--bg-chip:#f0f4f6;--border:#e3e8ec;--border-strong:#d5dee4;--border-input:#7e8f9b;--divider:#eef2f4;--accent:#166b8a;--accent-hover:#0e4f68;--accent-soft:#e7f0f5;--accent-soft-text:#0e5a75;--accent-ring:#dcebf2;--on-accent-muted:#d3e7f0;--on-accent-body:#e6f1f6;--accent-border:#bfd6e2;--success:#1b7f57;--success-soft:#e2f3ea;--success-text:#146445;--warning:#d9822b;--warning-soft:#fbeedd;--warning-text:#8a4a0e;--warning-strong:#8f4d0e;--upcoming-border:#c5d0d8;--upcoming-bg:#eef2f4;--upcoming-line:#dce4ea;--warning-border-soft:#e9b67e;--warning-bg-soft:#fffbf6;--success-border-soft:#bfe3ce;--success-icon-bg:#cdebd9;--warning-icon:#a85a12;--bar-achat:#0a2d41;--bar-reconstituee:#2f85a8;--bar-a-venir-1:#e3eaee;--bar-a-venir-2:#cdd8df;--phase-1:#9cc3d8;--phase-2:#4f97bd;--phase-3:#17698f;--phase-4:#d9822b;--dark:#0a2d41;--dark-2:#173f57;--on-dark:#fff;--on-dark-muted:#bfd3de;--on-dark-body:#dce7ee;--on-dark-subtle:#8fa9b8;--dark-divider:#1f4a63;--photo-bg:#dce5eb;--photo-bg-2:#e4ebf0;--photo-voile:#0a2d41b8;--focus-ring:#166b8a;--focus-ring-on-dark:#fff;--focus-width:3px;--focus-offset:2px;--font:var(--font-marque,"Outfit"), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--border-card:#0a2d4117;--shadow-card:0 1px 2px #0a2d410d, 0 2px 8px #0a2d410a;--radius-card:16px;--radius-card-mobile:14px;--radius-control:10px;--radius-pill:999px;--content-width:1200px;--page-gutter:120px;--aside-width:384px;--gap:24px;--gap-section:32px}
*,:before,:after{box-sizing:border-box}html,body{background:var(--bg-page);color:var(--ink);margin:0}body{font-family:var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}button,input{font-family:inherit}button{cursor:pointer}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.sur-sombre{--focus-ring:var(--focus-ring-on-dark)}.visuellement-masque{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
