:root{--bg: #FAFAF8;--surface: #FFFFFF;--ink: #101413;--ink-2: #3A423F;--muted: #6B7370;--muted-2: #8B918C;--line: #E6E7E2;--line-soft: #F0F1EC;--line-firm: #D5D8D2;--neutral: #EDEEE9;--teal-900: #062A2E;--teal-800: #0B4A50;--teal-700: #0E6068;--teal-600: #12787F;--teal-300: #8FBFC2;--teal-100: #DCEEF0;--teal-50: #F0F8F9;--terra: #C25A2B;--terra-dark: #8A3E17;--terra-mid: #D9762F;--terra-100: #F7EBDA;--terra-50: #FDF6EF;--terra-line: #F3DFC6;--green: #1E7A4D;--green-dark: #155C3B;--green-50: #E8F4ED;--green-dot: #4FB07C;--amber: #C98A0A;--amber-dark: #8A6205;--amber-50: #FBF3DE;--red: #B23B33;--red-dark: #8E2F28;--red-50: #FBEEED;--red-line: #E8C9C6;--blue: #2C5FA8;--blue-50: #EAF0FA;--font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--r-sm: 9px;--r: 12px;--r-md: 16px;--r-lg: 18px;--r-xl: 22px;--shadow-sm: 0 1px 2px rgba(16, 20, 19, .04);--shadow: 0 6px 18px rgba(16, 20, 19, .09);--shadow-lg: 0 20px 50px rgba(16, 20, 19, .28);--page: 1200px;--sidebar: 258px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--teal-700);text-decoration:none}a:hover{color:var(--terra)}::selection{background:var(--teal-100)}*:focus-visible{outline:3px solid var(--teal-600);outline-offset:2px;border-radius:4px}h1,h2,h3,h4{margin:0;letter-spacing:-.02em;text-wrap:balance}p{margin:0;text-wrap:pretty}ul{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12.5px}.strong{font-weight:700}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:var(--page);margin:0 auto;padding:0 32px}.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:20px}.grid{display:grid;gap:20px}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.rise{animation:rise .3s ease-out both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.scroll-x{overflow-x:auto}.scroll-x::-webkit-scrollbar{height:8px}.scroll-x::-webkit-scrollbar-thumb{background:var(--line-firm);border-radius:999px}@media (max-width: 720px){.page{padding:0 18px}body{font-size:14.5px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:24px}.card-pad-sm{padding:18px}.card-hover{transition:box-shadow .18s ease,transform .18s ease}.card-hover:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.card-warn{background:var(--terra-50);border-color:var(--terra-line)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;padding:12px 18px;border-radius:var(--r-sm);font-weight:600;font-size:14px;border:1px solid transparent;cursor:pointer;background:none;transition:background .15s ease,border-color .15s ease;text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--teal-700);color:#fff}.btn-primary:hover:not(:disabled){background:var(--teal-800);color:#fff}.btn-accent{background:var(--terra);color:#fff}.btn-accent:hover:not(:disabled){background:var(--terra-dark);color:#fff}.btn-ghost{border-color:var(--line-firm);background:var(--surface);color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--line-soft);color:var(--ink)}.btn-soft{background:var(--teal-50);color:var(--teal-800)}.btn-soft:hover:not(:disabled){background:var(--teal-100);color:var(--teal-800)}.btn-danger{border-color:var(--red-line);background:var(--surface);color:var(--red)}.btn-danger:hover:not(:disabled){background:var(--red-50);color:var(--red-dark)}.btn-sm{padding:9px 14px;font-size:13px}.btn-block{width:100%}.badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--neutral);color:var(--ink-2)}.badge .dot{width:6px;height:6px;border-radius:999px;background:currentColor;flex:none}.badge-teal{background:var(--teal-100);color:var(--teal-800)}.badge-green{background:var(--green-50);color:var(--green-dark)}.badge-amber{background:var(--amber-50);color:var(--amber-dark)}.badge-red{background:var(--red-50);color:var(--red-dark)}.badge-terra{background:var(--terra-100);color:var(--terra-dark)}.badge-blue{background:var(--blue-50);color:var(--blue)}.bar{height:9px;border-radius:999px;background:var(--line-soft);overflow:hidden}.bar>i{display:block;height:100%;border-radius:999px;background:var(--terra);transition:width .5s ease}.bar-sm{height:7px}.bar-teal>i{background:var(--teal-700)}.bar-green>i{background:var(--green)}.bar-amber>i{background:var(--amber)}.tbl{width:100%}.tbl-head,.tbl-row{display:grid;column-gap:18px;align-items:center}.tbl-head{background:var(--line-soft);padding:13px 20px;font-size:12px;font-weight:700;color:var(--ink-2)}.tbl-row{padding:14px 20px;border-top:1px solid var(--line-soft);font-size:14px;color:var(--ink);text-decoration:none}.tbl-row:hover{background:var(--bg);color:var(--ink)}.tbl-row.is-active{background:var(--teal-50)}.tbl-row.is-flag{background:#fefcf7}.tbl-foot{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:space-between;align-items:center;padding:15px 20px;border-top:1px solid var(--line);background:var(--bg)}.right{text-align:right}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:13.5px;font-weight:600;color:var(--ink-2)}.input,.select,.textarea{width:100%;padding:11px 14px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-firm);border-radius:var(--r-sm);transition:border-color .15s ease}.input:hover,.select:hover,.textarea:hover{border-color:var(--muted-2)}.input::placeholder,.textarea::placeholder{color:var(--muted-2)}.textarea{min-height:96px;resize:vertical}.input.is-error,.select.is-error,.textarea.is-error{border-color:var(--red);background:var(--red-50)}.field-error{font-size:12.5px;color:var(--red-dark);font-weight:600}.hint{font-size:12.5px;color:var(--muted)}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:999px;background:var(--teal-100);color:var(--teal-800);font-size:12px;font-weight:700}.avatar-lg{width:48px;height:48px;font-size:15px}.spinner{width:20px;height:20px;border-radius:999px;flex:none;border:2.5px solid var(--line);border-top-color:var(--teal-700);animation:spin .7s linear infinite}.skeleton{background:var(--line-soft);border-radius:var(--r-sm);animation:pulse 1.4s ease-in-out infinite}.empty{border:1px dashed var(--line-firm);border-radius:var(--r-lg);background:var(--surface);padding:48px 24px;text-align:center}.figure{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.figure-xl{font-size:36px;line-height:1.1}.figure-lg{font-size:30px}.figure-md{font-size:24px}.figure-sm{font-size:17px}.unit{font-size:.42em;color:var(--muted);margin-left:8px;font-weight:500}.tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line)}.tab{padding:10px 14px;border-radius:var(--r-sm) var(--r-sm) 0 0;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;background:none;cursor:pointer}.tab:hover{color:var(--ink-2)}.tab.is-active{color:var(--teal-800);border-bottom-color:var(--teal-700);background:var(--teal-50)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;padding:24px;background:#062a2e80;display:flex;align-items:center;justify-content:center;overflow-y:auto}.modal{width:100%;background:var(--surface);border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .22s ease-out both;margin:auto}.modal-head{padding:22px 24px;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.modal-body{padding:24px;display:flex;flex-direction:column;gap:18px}.modal-foot{padding:18px 24px;background:var(--bg);border-top:1px solid var(--line-soft);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.modal-close{width:32px;height:32px;flex:none;border:0;border-radius:var(--r-sm);background:var(--line-soft);color:var(--ink-2);font-size:15px;cursor:pointer}.modal-close:hover{background:var(--line)}.toasts{position:fixed;bottom:24px;right:24px;z-index:80;display:flex;flex-direction:column;gap:10px;max-width:380px}.toast{background:var(--ink);color:var(--neutral);border-radius:14px;padding:16px 18px;box-shadow:0 16px 40px #10141347;display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;animation:pop .2s ease-out both}.toast .mark{width:26px;height:26px;flex:none;border-radius:8px;background:#ffffff1f;display:inline-flex;align-items:center;justify-content:center}.toast .mark i{width:8px;height:8px;border-radius:999px;background:var(--green-dot);display:block}.toast-error .mark i{background:#e8827a}@media (max-width: 720px){.toasts{left:16px;right:16px;bottom:16px;max-width:none}.card-pad{padding:18px}}.labico-sidebar{width:var(--sidebar);flex:none;background:var(--teal-900);color:#c7dedf;padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;max-height:100vh;overflow-y:auto;box-sizing:border-box}.labico-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:9px;font-size:13px;font-weight:600;text-decoration:none}.labico-nav:hover{background:#ffffff14;color:#fff}.labico-badge{flex:none;font-family:var(--mono);font-size:10px;padding:2px 6px;border-radius:999px;white-space:nowrap;background:#ffffff1a;color:var(--teal-100)}.labico-burger{display:none}@media (max-width: 900px){.labico-sidebar{position:fixed;inset:0 auto 0 0;z-index:40;transform:translate(-100%);transition:transform .22s ease;box-shadow:0 0 40px #062a2e59}.labico-sidebar[data-ouvert]{transform:none}.labico-burger{display:inline-flex}}
