@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2) format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2) format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2) format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2) format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.cours-module{--console-900: #14161c;--console-700: #232833;--papier: #eff1f0;--papier-pur: #ffffff;--serigraphie: #8a9199;--signal-ok: #2fbf71;--signal-tendu: #f2a03d;--signal-sature: #e4573d;--accent: #2e4a7d;--accent-vif: #4a72c4;--font-display: "Bricolage Grotesque Variable", sans-serif;--font-corps: "Public Sans", sans-serif;--font-donnees: "IBM Plex Mono", monospace;font-family:var(--font-corps);color:#1c1e22;background:var(--papier);margin:-1.4rem -1.6rem;padding:1.4rem 1.6rem 2.5rem;min-height:100%}@media(max-width:860px){.cours-module{margin:-1rem;padding:1rem 1rem 2rem}}.cours-module h1,.cours-module h2,.cours-module h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.cours-entete{background:var(--console-900);color:var(--papier-pur);border-radius:14px;padding:1.2rem 1.4rem;margin-bottom:1.2rem}.cours-entete .eyebrow{font-family:var(--font-donnees);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--serigraphie)}.cours-entete h1{margin:.2rem 0 .6rem;font-size:1.5rem;color:var(--papier-pur)}.cours-progression-fond{background:var(--console-700);border-radius:999px;height:14px;overflow:hidden}.cours-progression-remplie{height:100%;background:linear-gradient(90deg,var(--accent-vif),var(--signal-ok));border-radius:999px;transition:width .5s ease}.cours-progression-texte{font-family:var(--font-donnees);font-size:.8rem;color:var(--serigraphie);margin-top:.35rem}.chapitre-ligne{display:flex;align-items:center;gap:.9rem;background:var(--papier-pur);border:1px solid #d9dcda;border-radius:12px;padding:.85rem 1rem;margin-bottom:.6rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;width:100%;text-align:left;font:inherit;color:inherit}.chapitre-ligne:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #14161c14}.chapitre-ligne:disabled{cursor:not-allowed;opacity:.55}.chapitre-numero{font-family:var(--font-donnees);font-weight:600;background:var(--console-900);color:var(--papier-pur);border-radius:10px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chapitre-ligne.reussi .chapitre-numero{background:var(--signal-ok)}.chapitre-ligne.verrouille .chapitre-numero{background:var(--serigraphie)}.chapitre-etat{margin-left:auto;font-family:var(--font-donnees);font-size:.78rem;color:var(--serigraphie);text-align:right;flex-shrink:0}.chapitre-etat .score-ok{color:var(--signal-ok);font-weight:600}.chapitre-contenu{background:var(--papier-pur);border:1px solid #d9dcda;border-radius:14px;padding:1.6rem 1.8rem;line-height:1.65;max-width:860px}@media(max-width:860px){.chapitre-contenu{padding:1.1rem 1rem}}.chapitre-contenu h1{font-size:1.45rem}.chapitre-contenu h2{font-size:1.15rem;margin-top:1.8rem;padding-bottom:.35rem;border-bottom:2px solid var(--accent)}.chapitre-contenu h3{font-size:1rem;margin-top:1.3rem}.chapitre-contenu code{font-family:var(--font-donnees);background:var(--papier);border-radius:5px;padding:.1rem .35rem;font-size:.88em}.chapitre-contenu pre{background:var(--console-900);color:var(--papier-pur);border-radius:10px;padding:.9rem 1rem;overflow-x:auto}.chapitre-contenu pre code{background:transparent;color:inherit;padding:0}.chapitre-contenu img{max-width:100%;border-radius:10px}.chapitre-contenu table{border-collapse:collapse;width:100%}.chapitre-contenu th,.chapitre-contenu td{border:1px solid #d9dcda;padding:.45rem .6rem}.chapitre-contenu th{background:var(--papier)}.callout{border-radius:10px;padding:.8rem 1rem;margin:1rem 0;border-left:4px solid var(--serigraphie);background:var(--papier)}.callout.retenir{border-left-color:var(--signal-ok);background:#2fbf7114}.callout.piege{border-left-color:var(--signal-sature);background:#e4573d14}.callout p{margin:.25rem 0}.chapitre-video{position:relative;width:100%;max-width:860px;aspect-ratio:16 / 9;border-radius:14px;overflow:hidden;background:var(--console-900);margin-bottom:1.2rem}.chapitre-video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.quiz-bloc{background:var(--console-900);color:var(--papier-pur);border-radius:14px;padding:1.4rem 1.6rem;margin-top:1.4rem;max-width:860px}.quiz-bloc h2{color:var(--papier-pur);margin-top:0}.quiz-question{margin-bottom:1.1rem}.quiz-question .intitule{font-weight:600;margin-bottom:.45rem}.quiz-option{display:flex;align-items:center;gap:.6rem;background:var(--console-700);border:1px solid transparent;border-radius:9px;padding:.55rem .8rem;margin-bottom:.4rem;cursor:pointer;color:var(--papier-pur);width:100%;text-align:left;font:inherit}.quiz-option:hover{border-color:var(--accent-vif)}.quiz-option.choisie{border-color:var(--accent-vif);background:#4a72c440}.quiz-option.bonne{border-color:var(--signal-ok);background:#2fbf712e}.quiz-option.mauvaise{border-color:var(--signal-sature);background:#e4573d2e}.quiz-explication{font-size:.85rem;color:var(--serigraphie);border-left:3px solid var(--accent-vif);padding-left:.7rem;margin:.4rem 0 0}.quiz-score{font-family:var(--font-donnees);font-size:1.6rem;font-weight:600}.quiz-score.ok{color:var(--signal-ok)}.quiz-score.rate{color:var(--signal-sature)}.cours-btn{background:var(--accent);color:var(--papier-pur);border:0;border-radius:9px;padding:.6rem 1.1rem;font:inherit;font-weight:600;cursor:pointer}.cours-btn:hover{background:var(--accent-vif)}.cours-btn:disabled{opacity:.5;cursor:not-allowed}.cours-btn.secondaire{background:transparent;color:var(--accent);border:1px solid var(--accent)}.cours-module .retour{background:none;border:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0;margin-bottom:.9rem}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2) format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2) format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2) format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.concours-module{--console-900: #14161c;--console-700: #232833;--papier: #eff1f0;--papier-pur: #ffffff;--serigraphie: #8a9199;--signal-ok: #2fbf71;--signal-tendu: #f2a03d;--signal-sature: #e4573d;--accent: #2e4a7d;--accent-vif: #4a72c4;--tuile-1: #2e4a7d;--tuile-2: #b4472f;--tuile-3: #1f7a5a;--tuile-4: #7a4b93;--font-display: "Bricolage Grotesque Variable", sans-serif;--font-corps: "Public Sans", sans-serif;--font-donnees: "IBM Plex Mono", monospace;font-family:var(--font-corps);color:#1c1e22;background:var(--papier);margin:-1.4rem -1.6rem;padding:1.4rem 1.6rem 2.5rem;min-height:100%}@media(max-width:860px){.concours-module{margin:-1rem;padding:1rem 1rem 2rem}}.concours-module h1,.concours-module h2,.concours-module h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.concours-entete{background:var(--console-900);color:var(--papier-pur);border-radius:14px;padding:1.2rem 1.4rem;margin-bottom:1.2rem}.concours-entete .eyebrow{font-family:var(--font-donnees);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--serigraphie)}.concours-entete h1{margin:.2rem 0 .4rem;font-size:1.5rem;color:var(--papier-pur)}.concours-entete p{margin:0;color:var(--serigraphie);font-size:.9rem}.concours-carte{background:var(--papier-pur);border:1px solid #d9dcda;border-radius:12px;padding:1rem 1.1rem;margin-bottom:.8rem}.concours-carte.ouvert{border-color:var(--signal-ok);border-width:2px}.concours-carte h3{margin:0 0 .2rem;font-size:1.05rem}.concours-meta{font-family:var(--font-donnees);font-size:.78rem;color:var(--serigraphie)}.badge-etat{display:inline-block;border-radius:999px;padding:.15rem .6rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.badge-etat.ouvert{background:#2fbf7126;color:#1f7a5a}.badge-etat.a_venir{background:#f2a03d2e;color:#8a5a10}.badge-etat.termine{background:var(--papier);color:var(--serigraphie)}.badge-etat.cloture{background:#e4573d24;color:#a33a25}.badge-etat.brouillon{background:var(--console-700);color:var(--papier-pur)}.lot-encart{background:linear-gradient(135deg,#4a72c41f,#2fbf711f);border:1px solid rgba(74,114,196,.35);border-radius:10px;padding:.7rem .9rem;margin:.6rem 0}.lot-encart .lot-titre{font-weight:700}.lot-encart .lot-desc{font-size:.85rem;color:#45505c}.jeu{background:var(--console-900);color:var(--papier-pur);border-radius:16px;padding:1.4rem 1.6rem 1.8rem;max-width:900px}@media(max-width:860px){.jeu{padding:1rem}}.jeu-barre{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-donnees);font-size:.85rem;color:var(--serigraphie);margin-bottom:.6rem}.chrono{font-family:var(--font-donnees);font-size:1.6rem;font-weight:600;min-width:3ch;text-align:right}.chrono.urgent{color:var(--signal-sature)}.chrono-fond{background:var(--console-700);border-radius:999px;height:8px;overflow:hidden;margin-bottom:1.1rem}.chrono-remplie{height:100%;background:var(--signal-ok);transition:width .25s linear}.chrono-remplie.urgent{background:var(--signal-sature)}.jeu-question{font-family:var(--font-display);font-size:1.35rem;line-height:1.35;margin:.4rem 0 1.2rem;color:var(--papier-pur)}.tuiles{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}@media(max-width:640px){.tuiles{grid-template-columns:1fr}}.tuile{display:flex;align-items:center;gap:.8rem;border:2px solid transparent;border-radius:12px;padding:1rem 1.1rem;color:#fff;font:inherit;font-size:1rem;font-weight:600;text-align:left;cursor:pointer;min-height:70px;transition:transform .1s ease,opacity .15s ease}.tuile:hover:not(:disabled){transform:translateY(-2px)}.tuile:disabled{cursor:default}.tuile-1{background:var(--tuile-1)}.tuile-2{background:var(--tuile-2)}.tuile-3{background:var(--tuile-3)}.tuile-4{background:var(--tuile-4)}.tuile.choisie{border-color:#fff}.tuile.estompee{opacity:.35}.tuile-lettre{background:#ffffff38;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-family:var(--font-donnees);font-weight:700;flex-shrink:0}.resultat-score{font-family:var(--font-donnees);font-size:3rem;font-weight:600;color:var(--signal-ok);line-height:1}.resultat-detail{font-family:var(--font-donnees);font-size:.9rem;color:var(--serigraphie)}.correction-ligne{border-left:3px solid var(--serigraphie);padding:.3rem 0 .3rem .7rem;margin-bottom:.6rem;font-size:.9rem}.correction-ligne.ok{border-left-color:var(--signal-ok)}.correction-ligne.ko{border-left-color:var(--signal-sature)}.correction-ligne .explication{color:var(--serigraphie);font-size:.85rem}.classement-ligne{display:flex;align-items:center;gap:.9rem;background:var(--papier-pur);border:1px solid #d9dcda;border-radius:10px;padding:.6rem .9rem;margin-bottom:.4rem}.classement-ligne.moi{border-color:var(--accent-vif);border-width:2px}.classement-position{font-family:var(--font-donnees);font-weight:700;width:34px;height:34px;border-radius:9px;background:var(--console-900);color:var(--papier-pur);display:flex;align-items:center;justify-content:center;flex-shrink:0}.classement-ligne:nth-child(1) .classement-position{background:#c9a227}.classement-ligne:nth-child(2) .classement-position{background:#9aa3ab}.classement-ligne:nth-child(3) .classement-position{background:#a9713f}.classement-score{margin-left:auto;font-family:var(--font-donnees);font-weight:600}.rang-carte{background:var(--papier-pur);border:1px solid #d9dcda;border-radius:12px;padding:.9rem 1.1rem;margin-bottom:.6rem}.rang-carte.actuel{border-color:var(--signal-ok);border-width:2px}.rang-carte h3{margin:0 0 .2rem}.rang-carte ul{margin:.4rem 0 0;padding-left:1.2rem}.rang-seuil{font-family:var(--font-donnees);font-size:.8rem;color:var(--serigraphie)}.concours-btn{background:var(--accent);color:var(--papier-pur);border:0;border-radius:9px;padding:.65rem 1.2rem;font:inherit;font-weight:700;cursor:pointer}.concours-btn:hover{background:var(--accent-vif)}.concours-btn:disabled{opacity:.5;cursor:not-allowed}.concours-btn.jouer{background:var(--signal-ok);font-size:1.05rem}.concours-btn.jouer:hover{background:#26a35f}.concours-btn.secondaire{background:transparent;color:var(--accent);border:1px solid var(--accent)}.concours-module .retour{background:none;border:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0;margin-bottom:.9rem}.concours-onglets{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}.concours-onglet{background:transparent;border:1px solid var(--serigraphie);color:var(--serigraphie);border-radius:999px;padding:.35rem .9rem;font:inherit;font-size:.87rem;font-weight:600;cursor:pointer}.concours-onglet.actif{background:var(--console-900);color:var(--papier-pur);border-color:var(--console-900)}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2) format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2) format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2) format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2) format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.analytics-module{--console-900: #14161c;--console-700: #232833;--papier: #eff1f0;--papier-pur: #ffffff;--serigraphie: #8a9199;--signal-ok: #2fbf71;--signal-tendu: #f2a03d;--signal-sature: #e4573d;--accent: #2e4a7d;--accent-vif: #4a72c4;--font-display: "Bricolage Grotesque Variable", sans-serif;--font-corps: "Public Sans", sans-serif;--font-donnees: "IBM Plex Mono", monospace;font-family:var(--font-corps);color:#1c1e22;background:var(--papier);margin:-1.4rem -1.6rem;padding-bottom:2rem}@media(max-width:860px){.analytics-module{margin:-1rem}}.analytics-module h1,.analytics-module h2,.analytics-module h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.analytics-module .chiffre{font-family:var(--font-donnees);font-variant-numeric:tabular-nums}.analytics-onglet{background:transparent;border:1px solid var(--serigraphie);color:var(--serigraphie);border-radius:999px;padding:.4rem 1rem;font-size:.85rem;font-weight:600;font-family:var(--font-corps);cursor:pointer}.analytics-onglet.actif{background:var(--console-900);border-color:var(--console-900);color:#fff}.analytics-onglet:focus-visible{outline:2px solid var(--accent-vif);outline-offset:2px}.console-bar{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:var(--console-900);padding:.85rem 1.6rem;display:flex;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;box-shadow:0 2px 12px #00000040}@media(max-width:860px){.console-bar{padding:.75rem 1rem}}.channel-strip{display:flex;flex-direction:column;gap:.3rem;min-width:130px}.channel-label{display:flex;align-items:center;gap:.4rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--serigraphie);font-family:var(--font-corps);font-weight:600}.channel-led{width:6px;height:6px;border-radius:50%;background:#3a3f4a;transition:background-color .2s ease,box-shadow .2s ease}.channel-strip.actif .channel-led{background:var(--signal-ok);box-shadow:0 0 6px var(--signal-ok)}.channel-strip.actif .channel-label{color:var(--accent-vif)}.channel-strip select,.channel-strip input{background:var(--console-700);border:1px solid #3a3f4a;color:#e7e8ea;border-radius:6px;padding:.4rem .5rem;font-size:.82rem;font-family:var(--font-corps)}.channel-strip.actif select,.channel-strip.actif input{border-color:var(--accent-vif)}.channel-strip select:focus-visible,.channel-strip input:focus-visible{outline:2px solid var(--accent-vif);outline-offset:1px}.console-tout-couper{margin-left:auto;background:transparent;border:1px solid #3a3f4a;color:var(--serigraphie);border-radius:6px;padding:.5rem .85rem;font-size:.78rem;font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease}.console-tout-couper:hover{border-color:var(--signal-sature);color:var(--signal-sature)}.console-tout-couper:focus-visible{outline:2px solid var(--accent-vif);outline-offset:2px}.console-bar-contenu{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-end;flex:1}.console-filtres-mobile-toggle{display:none}@media(max-width:860px){.console-bar-contenu{display:none}.console-bar-contenu.ouvert{display:flex;flex-direction:column;align-items:stretch;width:100%}.console-filtres-mobile-toggle{display:block;background:var(--console-700);color:#e7e8ea;border:1px solid #3a3f4a;border-radius:6px;padding:.5rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer}}.egaliseur-carte{background:var(--console-900);border-radius:10px;padding:1.3rem 1.5rem 1rem;margin:1rem 1.6rem 0}@media(max-width:860px){.egaliseur-carte{margin:1rem 1rem 0}}.egaliseur-score{text-align:center;margin-top:.5rem}.egaliseur-score-valeur{font-family:var(--font-display);font-weight:600;font-size:4.5rem;color:#fff;line-height:1}.egaliseur-score-valeur span{font-size:1.5rem;color:var(--serigraphie);font-family:var(--font-corps)}.egaliseur-score-qualif{color:var(--serigraphie);font-size:1rem;margin-top:.4rem;font-family:var(--font-corps)}.egaliseur-mobile{display:none}.egaliseur-mobile-item{cursor:pointer;padding:.5rem 0}.egaliseur-mobile-item+.egaliseur-mobile-item{border-top:1px solid rgba(255,255,255,.08)}.egaliseur-mobile-label{display:flex;justify-content:space-between;font-family:var(--font-donnees);font-size:.8rem;color:var(--serigraphie);margin-bottom:.3rem}.egaliseur-mobile-barre-fond{position:relative;height:8px;border-radius:999px;background:#ffffff1a;overflow:hidden}.egaliseur-mobile-zone-cible{position:absolute;inset:0 auto 0 0;background:#ffffff1f}.egaliseur-mobile-barre{position:relative;height:100%;border-radius:999px}@media(max-width:860px){.egaliseur-carte svg{display:none}.egaliseur-mobile{display:block}}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.4rem 1.6rem 0}@media(max-width:860px){.kpi-row{grid-template-columns:repeat(2,1fr);padding:1rem 1rem 0}}.kpi-card{background:var(--papier-pur);border-radius:10px;padding:1.1rem 1.3rem;box-shadow:0 1px 2px #14161c0f;opacity:0;animation:kpi-entree .3s ease-out forwards}.kpi-card:nth-child(1){animation-delay:0ms}.kpi-card:nth-child(2){animation-delay:40ms}.kpi-card:nth-child(3){animation-delay:80ms}.kpi-card:nth-child(4){animation-delay:.12s}@keyframes kpi-entree{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.kpi-card{animation:none;opacity:1}}.kpi-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--serigraphie);font-weight:600;margin-bottom:.3rem}.kpi-valeur{font-family:var(--font-donnees);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600;line-height:1.1}@media(max-width:860px){.kpi-valeur{font-size:1.4rem}}.kpi-delta{margin-top:.35rem;font-size:.8rem;font-family:var(--font-donnees);display:inline-flex;align-items:center;gap:.25rem}.kpi-delta.hausse{color:var(--signal-ok)}.kpi-delta.baisse{color:var(--signal-sature)}.kpi-delta.neutre{color:var(--serigraphie)}.analytics-grille{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem 1.6rem 0}@media(max-width:1080px){.analytics-grille{grid-template-columns:1fr}}@media(max-width:860px){.analytics-grille{padding:1rem 1rem 0}}.chart-card{background:var(--papier-pur);border-radius:10px;padding:1.1rem 1.3rem 1.3rem;box-shadow:0 1px 2px #14161c0f}.chart-card.pleine-largeur{grid-column:1 / -1}.chart-card h2{font-size:1.05rem;margin:0 0 .75rem}.chart-vide{color:var(--serigraphie);font-size:.85rem;padding:2rem 0;text-align:center}.chart-squelette{height:220px;border-radius:8px;background:linear-gradient(90deg,#eef0ef 25%,#e4e7e5 37%,#eef0ef 63%);background-size:400% 100%;animation:squelette 1.4s ease infinite}@media(prefers-reduced-motion:reduce){.chart-squelette{animation:none;background:#eef0ef}}@keyframes squelette{0%{background-position:100% 50%}to{background-position:0 50%}}.table-employes{width:100%;border-collapse:collapse;font-size:.86rem}.table-employes th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--serigraphie);padding:.5rem .6rem;border-bottom:1px solid #e4e2da;cursor:pointer;-webkit-user-select:none;user-select:none}.table-employes th:hover{color:var(--accent)}.table-employes td{padding:.55rem .6rem;border-bottom:1px solid #f0efe9;font-family:var(--font-donnees);font-variant-numeric:tabular-nums}.table-employes td:first-child,.table-employes th:first-child{font-family:var(--font-corps)}.table-employes tr{cursor:pointer;transition:background-color .12s ease}.table-employes tr:hover{background:var(--papier)}.badge-palier{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-family:var(--font-corps);font-weight:600}.badge-palier.debutant{background:#f0efe9;color:#6b6a63}.badge-palier.confirme{background:#dfe9f9;color:var(--accent)}.badge-palier.senior{background:#fdecd7;color:#a15b0c}.badge-palier.expert{background:#dcf5e6;color:#1a7a49}.lecture-carte{background:var(--console-900);color:#e7e8ea;border-radius:10px;padding:1.3rem 1.5rem;margin:1rem 1.6rem 0}@media(max-width:860px){.lecture-carte{margin:1rem 1rem 0}}.lecture-carte h2{color:#fff}.lecture-item{display:flex;gap:.6rem;padding:.6rem 0;border-top:1px solid #2a2f39;font-size:.87rem;line-height:1.45}.lecture-item:first-of-type{border-top:none}.lecture-pastille{flex:none;width:8px;height:8px;border-radius:50%;margin-top:.4rem}.lecture-pastille.constat{background:var(--serigraphie)}.lecture-pastille.alerte{background:var(--signal-tendu)}.lecture-pastille.action{background:var(--signal-ok)}.lecture-pastille.gravite-info{background:var(--serigraphie)}.lecture-pastille.gravite-attention{background:var(--signal-tendu)}.lecture-pastille.gravite-critique{background:var(--signal-sature)}.lecture-item strong{color:#fff;display:block;margin-bottom:.15rem;font-family:var(--font-corps)}.btn-lecture{background:var(--accent-vif);color:#fff;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:600;font-size:.85rem;cursor:pointer;font-family:var(--font-corps)}.btn-lecture:hover{background:#5c85d6}.btn-lecture:disabled{opacity:.5;cursor:not-allowed}.entreprise-mini-stats{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f0efe9;font-size:.82rem;color:var(--serigraphie);font-family:var(--font-donnees)}.entreprise-mini-stats .cible{color:#a9ad9f;font-family:var(--font-corps);font-size:.75rem}.caf-valeur{font-family:var(--font-donnees);font-size:2.2rem;font-weight:600;color:var(--console-900);margin:.5rem 0 .4rem}.caf-explication{color:var(--serigraphie);font-size:.85rem;line-height:1.5}.seuil-phrase{margin-top:.75rem;font-size:.88rem;color:var(--console-900);font-weight:600}.bloc-bilan{display:flex;flex-direction:column;gap:.5rem}.bloc-bilan-item{display:flex;justify-content:space-between;padding:.6rem .8rem;border-radius:8px;background:#f0efe9;font-family:var(--font-donnees);font-size:.9rem}.bloc-bilan-item.positif{background:#e2f6ea;color:#1a7a49}.bloc-bilan-item.negatif{background:#fbe6e2;color:#a3341f}.liste-factures-retard{list-style:none;padding:0;margin:.5rem 0 0}.liste-factures-retard li{display:flex;justify-content:space-between;gap:.5rem;padding:.4rem 0;border-top:1px solid #f0efe9;font-size:.85rem;font-family:var(--font-donnees)}.liste-factures-retard .retard{color:var(--signal-sature)}.liste-echeances{list-style:none;padding:0;margin:0 0 1rem}.liste-echeances li{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-top:1px solid #f0efe9;font-size:.85rem;flex-wrap:wrap}.liste-echeances li.alerte{color:var(--signal-tendu)}.liste-echeances li.critique{color:var(--signal-sature)}.echeance-libelle{flex:1;min-width:140px;font-weight:600}.echeance-date{font-family:var(--font-donnees);font-size:.8rem}.echeance-montant{font-family:var(--font-donnees)}.echeance-formulaire{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.75rem;border-top:1px solid #f0efe9}.echeance-formulaire input{max-width:160px}.budget-ligne{margin-bottom:.9rem}.budget-ligne-label{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:.3rem;font-family:var(--font-donnees)}.budget-derive{color:var(--signal-tendu)}.budget-barre-fond{position:relative;height:18px;background:#f0efe9;border-radius:6px;overflow:hidden}.budget-barre-budget{position:absolute;top:0;bottom:0;left:0;background:#d8dad6}.budget-barre-realise{position:absolute;top:2px;bottom:2px;left:2px;background:var(--accent-vif);border-radius:4px}.budget-barre-realise.derive{background:var(--signal-tendu)}.analytics-avertissement{color:var(--serigraphie);font-size:.75rem;line-height:1.5;margin:1.5rem 1.6rem .5rem;padding-top:1rem;border-top:1px solid #e4e2da}@media(max-width:860px){.analytics-avertissement{margin:1.5rem 1rem .5rem}}.bouton-pdf{background:transparent;border:1px solid var(--serigraphie);color:var(--serigraphie);border-radius:999px;padding:.4rem 1rem;font-size:.85rem;font-weight:600;font-family:var(--font-corps);cursor:pointer}.bouton-pdf:hover{border-color:var(--accent-vif);color:var(--accent-vif)}@media print{.analytics-module .console-bar,.analytics-module .analytics-onglet,.analytics-module .bouton-pdf,.analytics-module button,.analytics-module select,.analytics-module .echeance-formulaire,.analytics-module .btn-lecture{display:none!important}.analytics-module{background:#fff;margin:0}.analytics-module .egaliseur-carte{background:#fff;border:1px solid #d8d5cb}.analytics-module .egaliseur-carte svg{display:none}.analytics-module .egaliseur-mobile{display:block}.analytics-module .egaliseur-mobile-label,.analytics-module .egaliseur-score-qualif{color:#4a4f57}.analytics-module .egaliseur-score-valeur{color:#14161c}.analytics-module .egaliseur-mobile-barre-fond{background:#e9e7e0}.analytics-module .egaliseur-mobile-zone-cible{background:#d8d5cb}.analytics-module .chart-card,.analytics-module .kpi-card,.analytics-module .lecture-carte{box-shadow:none;border:1px solid #d8d5cb;break-inside:avoid}.analytics-module .analytics-grille{display:block}.analytics-module .analytics-grille>*{margin-bottom:.75rem}}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2) format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2) format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2) format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2) format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #14161C;--ink-soft: #565B64;--ink-faint: #8A9199;--bg: #EFF1F0;--surface: #FFFFFF;--surface-2: #F7F7F5;--line: #E2E4E1;--line-strong: #CBCEC9;--accent: #2E4A7D;--accent-ink: #1F3557;--accent-soft: #E1E8F5;--accent-vif: #4A72C4;--topbar-bg: #14161C;--topbar-bg-2: #232833;--topbar-ink: #E7E8EA;--topbar-ink-soft: #8A9199;--signal-ok: #2FBF71;--signal-tendu: #F2A03D;--signal-sature: #E4573D;--ok-bg: #DEF6E9;--ok-text: #157A47;--ok-border: #A6E3C2;--warn-bg: #FCEBD3;--warn-text: #96590F;--warn-border: #F0C88C;--danger-bg: #FBE1DB;--danger-text: #A83A25;--danger-border: #EFB6A6;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(20, 22, 28, .06), 0 1px 1px rgba(20, 22, 28, .04);--shadow-md: 0 4px 16px rgba(20, 22, 28, .08), 0 2px 6px rgba(20, 22, 28, .05);--shadow-lg: 0 16px 40px rgba(20, 22, 28, .16), 0 4px 12px rgba(20, 22, 28, .08);--font-display: "Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--font-body: "Public Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--ease: cubic-bezier(.2, .7, .3, 1);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}html,body{overflow-x:hidden}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--ink);font-size:15px;-webkit-font-smoothing:antialiased}a{color:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;margin:0 0 .5rem;text-wrap:balance}h1{font-size:1.7rem}h2{font-size:1.1rem;margin-bottom:.75rem}h3{font-size:.95rem;font-weight:600}@media(prefers-reduced-motion:no-preference){@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.content>*{animation:fadeInUp .28s var(--ease) backwards}.content>*:nth-child(1){animation-delay:0ms}.content>*:nth-child(2){animation-delay:35ms}.content>*:nth-child(3){animation-delay:70ms}.content>*:nth-child(4){animation-delay:105ms}.content>*:nth-child(5){animation-delay:.14s}.content>*:nth-child(6){animation-delay:175ms}.content>*:nth-child(7){animation-delay:.21s}.content>*:nth-child(n+8){animation-delay:.24s}}.layout{display:flex;min-height:100vh;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1.25rem;background:linear-gradient(180deg,var(--topbar-bg-2),var(--topbar-bg));color:var(--topbar-ink);box-shadow:var(--shadow-sm)}.brand{display:flex;align-items:center;gap:.55rem;color:#fff;text-decoration:none;font-family:var(--font-display);font-weight:800;font-size:1.02rem;letter-spacing:-.01em;flex:none}.brand svg{color:var(--accent-soft);flex:none}.topnav{display:flex;align-items:center;gap:.15rem;flex-wrap:wrap;flex:1}.topnav-item{position:relative}.topnav-link{display:inline-flex;align-items:center;gap:.3rem;text-decoration:none;color:var(--topbar-ink-soft);font-size:.87rem;font-weight:500;padding:.45rem .7rem;border-radius:var(--radius-sm);transition:background-color .15s var(--ease),color .15s var(--ease);white-space:nowrap;cursor:pointer;background:transparent;border:none;font-family:inherit}.topnav-link:hover{color:#fff;background:#ffffff14}.topnav-link.active{color:#fff;background:#ffffff24}.topnav-link .chevron{transition:transform .18s var(--ease);opacity:.7}.topnav-item.open .topnav-link .chevron{transform:rotate(180deg)}.submenu{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--line);padding:.4rem;display:flex;flex-direction:column;gap:.1rem;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s var(--ease),transform .15s var(--ease);z-index:50}.topnav-item.open .submenu{opacity:1;transform:translateY(0);pointer-events:auto}.submenu-link{display:block;padding:.5rem .65rem;border-radius:var(--radius-sm);color:var(--ink-soft);text-decoration:none;font-size:.87rem;font-weight:500;transition:background-color .12s var(--ease),color .12s var(--ease)}.submenu-link:hover{background:var(--surface-2);color:var(--ink)}.submenu-link.active{background:var(--accent-soft);color:var(--accent-ink)}.topbar-user{display:flex;align-items:center;gap:.75rem;flex:none}.topbar-user a{color:var(--topbar-ink-soft);text-decoration:none;font-size:.85rem;font-weight:500}.topbar-user a:hover{color:#fff}.profile-menu{position:relative}.profile-trigger{display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:none;color:var(--topbar-ink-soft);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;padding:.35rem .5rem;border-radius:var(--radius-sm);transition:background-color .15s var(--ease),color .15s var(--ease)}.profile-trigger:hover,.profile-trigger.open{color:#fff;background:#ffffff14}.profile-trigger .chevron{transition:transform .18s var(--ease);opacity:.7}.profile-trigger.open .chevron{transform:rotate(180deg)}.profile-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:170px;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--line);padding:.4rem;display:flex;flex-direction:column;gap:.1rem;z-index:50;animation:fadeInUp .15s var(--ease) both}.submenu-link.danger{color:var(--danger-text)}.submenu-link.danger:hover{background:var(--danger-bg)}button.submenu-link{background:transparent;border:none;font-family:inherit;text-align:left;cursor:pointer;width:100%}@media(max-width:860px){.profile-menu{display:none}}.notif-menu{position:relative}.notif-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--topbar-ink-soft);cursor:pointer;padding:.4rem;border-radius:var(--radius-sm);transition:background-color .15s var(--ease),color .15s var(--ease)}.notif-trigger:hover{color:#fff;background:#ffffff14}.notif-badge{position:absolute;top:0;right:0;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:var(--danger-text, #DC2626);color:#fff;font-size:.65rem;font-weight:700;line-height:16px;text-align:center;animation:notifPulse 1.4s ease-in-out infinite}@keyframes notifPulse{0%,to{transform:scale(1);box-shadow:0 0 #dc26268c}50%{transform:scale(1.12);box-shadow:0 0 0 4px #dc262600}}.notif-dropdown{min-width:280px;max-width:340px;max-height:360px;overflow-y:auto;right:0}.notif-item{white-space:normal}.menu-toggle{display:none;background:transparent;border:none;color:#fff;cursor:pointer;padding:.4rem}.subnav{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;padding:.6rem 1.25rem;background:var(--surface-2);border-bottom:1px solid var(--line);overflow-x:auto;animation:fadeInUp .25s var(--ease) both}.subnav-link{display:inline-flex;align-items:center;white-space:nowrap;padding:.35rem .75rem;border-radius:999px;font-size:.83rem;font-weight:600;color:var(--ink-soft);text-decoration:none;border:1px solid transparent;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.subnav-link:hover{color:var(--ink);background:var(--surface)}.subnav-link.active{color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent)}@media(max-width:640px){.subnav{padding:.55rem .9rem}}.mobile-drawer{display:none;flex-direction:column;background:var(--topbar-bg);padding:.5rem .75rem .75rem;gap:.15rem;box-shadow:var(--shadow-md);animation:fadeInUp .2s var(--ease) both}.mobile-profile{display:flex;flex-direction:column;text-decoration:none;padding:.6rem;margin-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.08)}.mobile-profile-name{color:#fff;font-weight:700;font-size:.95rem}.mobile-profile-sub{color:var(--topbar-ink-soft);font-size:.78rem}.mobile-group{display:flex;flex-direction:column;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.3rem;margin-bottom:.3rem}.mobile-group:last-child{border-bottom:none;margin-bottom:0}.mobile-link{color:var(--topbar-ink-soft);text-decoration:none;padding:.55rem .6rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;transition:background-color .15s var(--ease),color .15s var(--ease)}.mobile-link.primary{font-weight:700;color:#fff}.mobile-link.active{background:#ffffff1f;color:#fff}.mobile-link:not(.primary){padding-left:1.1rem;font-size:.86rem}.mobile-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:none;cursor:pointer;font-family:inherit}.mobile-toggle .chevron{transition:transform .2s var(--ease);opacity:.7}.mobile-toggle.open .chevron{transform:rotate(180deg)}.mobile-submenu{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .22s var(--ease)}.mobile-submenu.open{grid-template-rows:1fr}.mobile-submenu-inner{display:flex;flex-direction:column;gap:.15rem;min-height:0}.mobile-logout{margin-top:.3rem;background:transparent;border:none;color:var(--topbar-ink-soft);font-size:.82rem;font-weight:500;font-family:inherit;text-align:left;padding:.5rem .6rem;cursor:pointer;opacity:.75}.mobile-logout:hover{opacity:1;color:#fff}@media(max-width:860px){.mobile-drawer{display:flex}}.content{flex:1;padding:1.5rem 1.25rem 3rem;max-width:1040px;width:100%;margin:0 auto;min-width:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.page-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:600;color:var(--accent-ink);margin-bottom:.2rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);margin-bottom:1.1rem;min-width:0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.9rem;margin-bottom:1.25rem}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:.9rem 1rem;box-shadow:var(--shadow-sm);min-width:0}.stat-card .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:600}.stat-card .value{font-family:var(--font-mono);font-size:1.5rem;font-weight:600;margin-top:.3rem;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto;margin:-.1rem;padding:.1rem}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);font-size:.87rem}th{font-family:var(--font-display);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;white-space:nowrap}tbody tr{transition:background-color .12s var(--ease)}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1.05rem;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--ink);color:#fff;cursor:pointer;font-size:.87rem;font-weight:600;font-family:var(--font-body);text-decoration:none;transition:transform .1s var(--ease),background-color .15s var(--ease),box-shadow .15s var(--ease)}.btn:hover{background:#2e3138}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;pointer-events:none}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn.secondary:hover{background:var(--surface-2);border-color:var(--ink-faint)}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.badge.ok{background:var(--ok-bg);color:var(--ok-text);border-color:var(--ok-border)}.badge.warn{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border)}.badge.pending{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}form{display:flex;flex-direction:column;gap:.9rem;max-width:480px;min-width:0}label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;color:var(--ink-soft);min-width:0}input,select,textarea{padding:.55rem .65rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;color:var(--ink);background:var(--surface);width:100%;max-width:100%;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=checkbox]{width:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error{color:var(--danger-text);font-size:.85rem;animation:fadeInUp .25s var(--ease) both}.mono,.chiffre{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.skeleton-bloc{display:flex;flex-direction:column;gap:.5rem;padding:.2rem 0}.skeleton-ligne{height:14px;border-radius:4px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){.skeleton-ligne{animation:none;background:var(--surface-2)}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;color:var(--ink-faint);text-align:center}.empty-state svg{opacity:.5}.empty-state p{margin:0;font-size:.87rem}.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1.1rem;overflow-x:auto}.tab{padding:.6rem .9rem;font-size:.87rem;font-weight:600;color:var(--ink-faint);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;font-family:inherit;transition:color .15s var(--ease),border-color .15s var(--ease)}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent-ink);border-bottom-color:var(--accent)}.score-ring{display:inline-flex;flex-direction:column;align-items:center;justify-content:center}.score-ring .num{font-family:var(--font-display);font-weight:800;font-variant-numeric:tabular-nums}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.calendar-weekday{background:var(--surface-2);padding:.4rem;text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.calendar-day{background:var(--surface);min-height:76px;padding:.3rem;display:flex;flex-direction:column;gap:.15rem}.calendar-day.autre-mois{background:var(--surface-2)}.calendar-day.autre-mois .calendar-day-num{color:var(--ink-faint)}.calendar-day.aujourdhui .calendar-day-num{background:var(--accent);color:#fff;border-radius:999px}.calendar-day-num{font-size:.78rem;font-weight:600;width:1.4rem;height:1.4rem;display:inline-flex;align-items:center;justify-content:center}.calendar-event{display:block;font-size:.68rem;font-weight:600;padding:.15rem .3rem;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color .12s var(--ease)}.calendar-event:hover{background:var(--accent);color:#fff}.calendar-event.mien{background:var(--danger-bg, #fbe1db);color:var(--danger-text, #a83a25);font-weight:700}.calendar-event.mien:before{content:"• "}.calendar-event.mien:hover{background:var(--danger-text, #a83a25);color:#fff}.calendar-legende{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;font-size:.78rem;color:var(--ink-faint);margin-bottom:.6rem}.calendar-legende .pastille{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;margin-right:.35rem;vertical-align:-1px}@media(max-width:640px){.calendar-day{min-height:56px;padding:.2rem}.calendar-weekday{font-size:.62rem;padding:.3rem .1rem}.calendar-event{font-size:.6rem;padding:.1rem .2rem}}@media(max-width:860px){.topnav{display:none}.menu-toggle{display:inline-flex}.topbar-user span.username{display:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141680;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;animation:fadeInUp .15s var(--ease) both}.modal-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:520px;width:100%;max-height:85vh;overflow-y:auto;padding:1.25rem}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.modal-close{background:transparent;border:none;color:var(--ink-faint);cursor:pointer;font-size:1rem;padding:.2rem .4rem;border-radius:var(--radius-sm)}.modal-close:hover{color:var(--ink);background:var(--surface-2)}.modal-body p{margin:.3rem 0}.pdf-viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141416a6;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:200;animation:fadeInUp .15s var(--ease) both}.pdf-viewer-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:900px;height:92vh;display:flex;flex-direction:column;overflow:hidden}.pdf-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--line);flex-shrink:0}.pdf-viewer-body{flex:1;min-height:0;overflow-y:auto;padding:.5rem;background:var(--surface-2)}.pdf-viewer-pages{width:100%}@media(max-width:640px){.pdf-viewer-panel{height:96vh;max-width:100%}.pdf-viewer-header{flex-wrap:wrap}}@media(max-width:640px){.content{padding:1.1rem .9rem 2.5rem}.card{padding:.85rem}h1{font-size:1.25rem}h2{font-size:1rem}body{font-size:14px}.stat-card .value{font-size:1.25rem}.stat-card{padding:.75rem .85rem}.btn{padding:.5rem .85rem;font-size:.83rem}th,td{padding:.45rem;font-size:.82rem}}.card,.stat-card{transition:box-shadow .22s var(--ease),transform .22s var(--ease),border-color .22s var(--ease);animation:apparition .34s var(--ease) both}.card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}@keyframes apparition{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stat-grid .stat-card:nth-child(1){animation-delay:0ms}.stat-grid .stat-card:nth-child(2){animation-delay:45ms}.stat-grid .stat-card:nth-child(3){animation-delay:90ms}.stat-grid .stat-card:nth-child(4){animation-delay:135ms}.stat-grid .stat-card:nth-child(5){animation-delay:.18s}.stat-grid .stat-card:nth-child(6){animation-delay:225ms}.stat-card{position:relative;overflow:hidden;padding-left:1.15rem}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--accent-vif),var(--accent));opacity:.85}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card .value{font-size:1.7rem;letter-spacing:-.02em;color:var(--ink)}.page-header h1{position:relative;padding-bottom:.35rem}.page-header h1:after{content:"";position:absolute;left:0;bottom:0;width:44px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--accent-vif),transparent)}tbody tr{transition:background .15s var(--ease)}tbody tr:hover{background:var(--accent-soft)}.btn{transition:transform .12s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(0)}.reglages-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;align-items:start}.reglages-section{margin-bottom:0}.reglages-titre{font-size:1rem;margin-bottom:.6rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.reglage-ligne{display:block;padding:.6rem .7rem;margin:0 -.7rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background .15s var(--ease)}.reglage-ligne:hover{background:var(--accent-soft)}.reglage-nom{display:block;font-weight:600;color:var(--accent-ink);font-size:.92rem}.reglage-desc{display:block;color:var(--ink-soft);font-size:.82rem;line-height:1.45;margin-top:.1rem}.etat-vide{text-align:center;padding:2rem 1rem;color:var(--ink-faint)}.etat-vide .icone{font-size:1.8rem;display:block;margin-bottom:.4rem;opacity:.65}@media(prefers-reduced-motion:reduce){.card,.stat-card{animation:none}.card:hover,.stat-card:hover,.btn:hover:not(:disabled){transform:none}}@media(max-width:860px){.nav-super-admin{display:none!important}}.accueil-section-titre{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .55rem 2px}.accueil-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media(min-width:861px){.accueil-grille{grid-template-columns:repeat(auto-fill,minmax(110px,140px))}}.accueil-tuile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:1 / .92;background:var(--card, #fff);border:1px solid var(--line, #e5e1d8);border-radius:16px;text-decoration:none;color:var(--ink);box-shadow:0 1px 3px #1e1a140f;transition:transform .1s var(--ease),box-shadow .15s var(--ease)}.accueil-tuile:active{transform:scale(.96)}.accueil-tuile-icone{font-size:1.7rem;line-height:1}.accueil-tuile-titre{font-size:.78rem;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}.tabbar{display:none}@media(max-width:860px){.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;background:var(--card, #fff);border-top:1px solid var(--line, #e5e1d8);padding-bottom:env(safe-area-inset-bottom,0px)}.tabbar-onglet{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 6px;text-decoration:none;color:var(--ink-faint);font-size:.66rem;font-weight:600}.tabbar-onglet.actif{color:var(--ink)}.tabbar-onglet.actif .tabbar-titre{text-decoration:none}.tabbar-icone{font-size:1.25rem;line-height:1}.tabbar-onglet.actif .tabbar-icone{filter:none}.tabbar-onglet:not(.actif) .tabbar-icone{filter:grayscale(.9) opacity(.75)}.content{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important}}
