@import "https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#181c24;--surface-2:#1e2330;--border:#2a2f3e;--border-2:#363d52;--fg:#e8eaf0;--fg-2:#9ba3b8;--fg-3:#5a6278;--accent:#4f7cff;--accent-dim:#4f7cff1f;--accent-glow:#4f7cff40;--c-green:#22c55e;--c-green-dim:#22c55e1f;--c-red:#ef4444;--c-red-dim:#ef44441f;--c-orange:#f59e0b;--c-orange-dim:#f59e0b1f;--c-gray:#6b7280;--c-gray-dim:#6b72801f;--font-display:"Source Serif 4", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-lg:17px;--text-xl:22px;--text-2xl:28px;--text-3xl:38px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-xl:24px;--sidebar-w:260px}html,body,#root{background:var(--bg);height:100%;color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.6}.app-root{background:var(--bg);min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}.btn{align-items:center;gap:var(--space-2);border-radius:var(--radius);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border:none;padding:9px 18px;font-weight:600;line-height:1;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 0 0 3px var(--accent-glow);background:#3d6aee}.btn-secondary{background:var(--surface-2);color:var(--fg);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-ghost{color:var(--fg-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--fg)}.btn-danger{background:var(--c-red-dim);color:var(--c-red);border:1px solid #ef444433}.btn-danger:hover:not(:disabled){background:var(--c-red);color:#fff}.btn-sm{font-size:var(--text-xs);padding:6px 12px}.btn-lg{font-size:var(--text-base);padding:13px 28px}.btn-icon{border-radius:var(--radius-sm);padding:8px}.badge{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;border-radius:99px;align-items:center;gap:5px;padding:3px 10px;font-weight:700;display:inline-flex}.badge-C{background:var(--c-green-dim);color:var(--c-green)}.badge-NC{background:var(--c-red-dim);color:var(--c-red)}.badge-NA{background:var(--c-gray-dim);color:var(--c-gray)}.badge-NT{background:var(--c-orange-dim);color:var(--c-orange)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.card-sm{padding:var(--space-4);border-radius:var(--radius)}.input{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);outline:none;padding:10px 14px;transition:border-color .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder{color:var(--fg-3)}.progress-bar{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .4s}.taux-label-value{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700}.taux-label-pct{font-size:var(--text-lg);color:var(--fg-2)}.layout-sidebar{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-header{padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--border)}.sidebar-logo{align-items:center;gap:var(--space-3);font-family:var(--font-display);font-size:var(--text-lg);color:var(--fg);font-weight:600;display:flex}.sidebar-logo img{border-radius:6px;width:28px;height:28px}.sidebar-nav{padding:var(--space-3) var(--space-3);flex:1}.sidebar-section{margin-bottom:var(--space-4)}.sidebar-section-title{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);padding:var(--space-2) var(--space-2);margin-bottom:var(--space-1);font-weight:700}.sidebar-item{padding:7px var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--fg-2);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;transition:all .12s;display:flex}.sidebar-item:hover{background:var(--surface-2);color:var(--fg)}.sidebar-item.active{background:var(--accent-dim);color:var(--accent)}.sidebar-item-count{font-size:var(--text-xs);background:var(--surface-2);color:var(--fg-3);border-radius:99px;padding:2px 7px;font-weight:600}.main-content{flex:1;min-width:0;overflow-y:auto}.page-header{padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:var(--space-4);display:flex}.page-header-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}.critere-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s;overflow:hidden}.critere-card:hover{border-color:var(--border-2)}.critere-card.NC{border-left:3px solid var(--c-red)}.critere-card.C{border-left:3px solid var(--c-green)}.critere-card.NA{border-left:3px solid var(--c-gray)}.critere-card.NT{border-left:3px solid var(--c-orange)}.critere-header{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);cursor:pointer;display:flex}.critere-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-3);flex-shrink:0;min-width:32px;padding-top:2px;font-weight:500}.critere-intitule{font-size:var(--text-sm);color:var(--fg);flex:1;line-height:1.5}.critere-body{padding:0 var(--space-5) var(--space-4);border-top:1px solid var(--border)}.occurrence{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2)}.occurrence-desc{font-size:var(--text-sm);color:var(--fg-2);margin-bottom:var(--space-2)}.occurrence-selector{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--c-orange);word-break:break-all;white-space:pre-wrap}.stat-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4) var(--space-5)}.stat-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700}.stat-label{font-size:var(--text-xs);color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--border-2);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:1.5s ease-in-out infinite pulse}.tabs{background:var(--surface-2);border-radius:var(--radius);gap:2px;width:fit-content;padding:4px;display:flex}.tab{font-family:var(--font-body);font-size:var(--text-sm);color:var(--fg-2);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:7px 16px;font-weight:500;transition:all .15s}.tab.active{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px #0000004d}.tab:hover:not(.active){color:var(--fg)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);color:var(--fg);font-size:var(--text-xs);white-space:nowrap;border-radius:var(--radius-sm);border:1px solid var(--border);pointer-events:none;opacity:0;z-index:100;background:#1a1f2e;padding:5px 10px;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1}@media (width<=768px){.layout-sidebar{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.page-header{padding:var(--space-4)}}
