#app{min-height:100vh}:root{--color-brand-900:#0f3d2e;--color-brand-700:#146c43;--color-brand-600:#1a8754;--color-brand-500:#22a866;--color-brand-100:#e3f5ea;--color-brand-50:#f2faf5;--color-ink-900:#15201c;--color-ink-700:#3a4642;--color-ink-500:#687a74;--color-ink-300:#a7b5b0;--color-ink-100:#e4eae7;--color-ink-50:#f6f8f7;--color-white:#fff;--color-state-vide:#22a866;--color-state-bas:#4f9bdb;--color-state-moyen:#e8b339;--color-state-haut:#e8772e;--color-state-critique:#d6443c;--color-state-inconnu:#9aa6a2;--color-success:#1a8754;--color-warning:#e8b339;--color-danger:#d6443c;--color-info:#4f9bdb;--font-display:"Sora", "Segoe UI", system-ui, sans-serif;--font-body:"Inter", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.625rem;--fs-2xl:2.125rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--sidebar-width:256px;--topbar-height:64px;--shadow-sm:0 1px 2px #0f201c0f;--shadow-md:0 4px 16px #0f201c14;--shadow-lg:0 12px 32px #0f201c1f;--ease-standard:cubic-bezier(.4, 0, .2, 1);--duration-fast:.12s;--duration-base:.2s}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--fs-base);color:var(--color-ink-900);background:var(--color-ink-50);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-ink-900);margin:0;font-weight:600}p{margin:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-ink-300);border-radius:4px}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--color-brand-600);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);font-size:var(--fs-sm);transition:background var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);white-space:nowrap;border:none;padding:10px 18px;font-weight:600;line-height:1;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-brand-600);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--color-brand-700)}.btn-secondary{background:var(--color-white);color:var(--color-ink-900);border:1px solid var(--color-ink-100)}.btn-secondary:hover:not(:disabled){background:var(--color-ink-50)}.btn-ghost{color:var(--color-ink-700);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-ink-100)}.btn-danger{background:var(--color-danger);color:var(--color-white)}.btn-danger:hover:not(:disabled){background:#b8362f}.card{background:var(--color-white);border:1px solid var(--color-ink-100);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.badge{font-size:var(--fs-xs);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-weight:600;display:inline-flex}.badge-vide{color:var(--color-state-vide);background:#22a8661f}.badge-bas{color:var(--color-state-bas);background:#4f9bdb1f}.badge-moyen{color:var(--color-state-moyen);background:#e8b33924}.badge-haut{color:var(--color-state-haut);background:#e8772e24}.badge-critique{color:var(--color-state-critique);background:#d6443c1f}.badge-inconnu{color:var(--color-state-inconnu);background:#9aa6a224}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.secteur-tooltip{color:#374151;background:#ffffffeb;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;box-shadow:0 2px 8px #00000026}.carte-fullscreen-btn{z-index:1000;cursor:pointer;color:#333;background:#fff;border:1px solid #0003;border-radius:4px;justify-content:center;align-items:center;width:34px;height:34px;display:flex;position:absolute;top:10px;right:10px;box-shadow:0 1px 4px #00000026}.carte-fullscreen-btn:hover{background:#f4f4f4}
