:root{--ds-neutral-0: #ffffff;--ds-neutral-10: #f2f1ec;--ds-neutral-50: #f6f5f1;--ds-neutral-100: #f0efeb;--ds-neutral-200: #e4e2da;--ds-neutral-300: #b9b8b0;--ds-neutral-400: #8a8880;--ds-neutral-450: #85847d;--ds-neutral-500: #5f5e5a;--ds-neutral-600: #4a4945;--ds-neutral-700: #2a2a28;--ds-neutral-800: #1f1f1e;--ds-neutral-900: #1a1a19;--ds-neutral-950: #161615;--ds-blue-100: #e6f1fb;--ds-blue-400: #5b9be0;--ds-blue-500: #2a78d6;--ds-blue-900: #12304f;--ds-green-100: #e4f4ea;--ds-green-400: #3fbf7f;--ds-green-500: #0f8a4c;--ds-green-900: #10321f;--ds-red-100: #fceaea;--ds-red-400: #e57373;--ds-red-500: #cf3535;--ds-red-900: #3a1717;--ds-amber-100: #faf0d8;--ds-amber-400: #d9a94a;--ds-amber-500: #9a6a08;--ds-amber-900: #3a2d0e;--ds-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ds-font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--ds-text-xs: 12px;--ds-text-sm: 13px;--ds-text-base: 15px;--ds-text-lg: 17px;--ds-text-xl: 21px;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-5: 24px;--ds-space-6: 32px;--ds-radius-sm: 8px;--ds-radius: 10px;--ds-radius-lg: 12px;--ds-radius-pill: 999px;--bg: var(--ds-neutral-50);--surface: var(--ds-neutral-0);--surface-2: var(--ds-neutral-100);--text: var(--ds-neutral-900);--text-2: var(--ds-neutral-500);--text-3: var(--ds-neutral-400);--border: rgba(20, 20, 18, .12);--accent: var(--ds-blue-500);--accent-bg: var(--ds-blue-100);--green: var(--ds-green-500);--green-bg: var(--ds-green-100);--red: var(--ds-red-500);--red-bg: var(--ds-red-100);--amber: var(--ds-amber-500);--amber-bg: var(--ds-amber-100);--radius: var(--ds-radius);--font-sans: var(--ds-font-sans);--font-mono: var(--ds-font-mono)}[data-theme=dark]{--bg: var(--ds-neutral-950);--surface: var(--ds-neutral-800);--surface-2: var(--ds-neutral-700);--text: var(--ds-neutral-10);--text-2: var(--ds-neutral-300);--text-3: var(--ds-neutral-450);--border: rgba(255, 255, 255, .12);--accent: var(--ds-blue-400);--accent-bg: var(--ds-blue-900);--green: var(--ds-green-400);--green-bg: var(--ds-green-900);--red: var(--ds-red-400);--red-bg: var(--ds-red-900);--amber: var(--ds-amber-400);--amber-bg: var(--ds-amber-900)}@media (prefers-color-scheme: dark){:root:not([data-theme]){--bg: var(--ds-neutral-950);--surface: var(--ds-neutral-800);--surface-2: var(--ds-neutral-700);--text: var(--ds-neutral-10);--text-2: var(--ds-neutral-300);--text-3: var(--ds-neutral-450);--border: rgba(255, 255, 255, .12);--accent: var(--ds-blue-400);--accent-bg: var(--ds-blue-900);--green: var(--ds-green-400);--green-bg: var(--ds-green-900);--red: var(--ds-red-400);--red-bg: var(--ds-red-900);--amber: var(--ds-amber-400);--amber-bg: var(--ds-amber-900)}}.ds-root{font-family:var(--font-sans);color:var(--text);background:var(--bg);font-size:var(--ds-text-base);line-height:1.5}.ds-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--ds-radius-lg);padding:var(--ds-space-4) var(--ds-space-5)}.ds-btn{font:inherit;font-size:var(--ds-text-sm);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--ds-radius-sm);padding:var(--ds-space-2) var(--ds-space-4);cursor:pointer;transition:background .12s ease,transform .05s ease}.ds-btn:hover{background:var(--surface-2)}.ds-btn:active{transform:scale(.98)}.ds-btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.ds-btn--primary:hover{filter:brightness(1.08);background:var(--accent)}.ds-btn--danger{color:var(--red);border-color:var(--red)}.ds-btn--danger:hover{background:var(--red-bg)}.ds-badge{display:inline-block;padding:2px var(--ds-space-2);border-radius:var(--ds-radius-pill);font-size:11px;font-weight:600;background:var(--surface-2);color:var(--text-2)}.ds-badge--accent{background:var(--accent-bg);color:var(--accent)}.ds-badge--success{background:var(--green-bg);color:var(--green)}.ds-badge--danger{background:var(--red-bg);color:var(--red)}.ds-badge--warning{background:var(--amber-bg);color:var(--amber)}.ds-metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--ds-radius-lg);padding:var(--ds-space-3) var(--ds-space-4)}.ds-metric__label{font-size:var(--ds-text-xs);color:var(--text-3)}.ds-metric__value{font-size:var(--ds-text-xl);font-weight:650;font-variant-numeric:tabular-nums;margin-top:2px}.ds-metric__sub{font-size:var(--ds-text-xs);color:var(--text-2)}.ds-metric__value.is-pos{color:var(--green)}.ds-metric__value.is-neg{color:var(--red)}.ds-input,.ds-select,.ds-textarea{font:inherit;font-size:var(--ds-text-sm);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--ds-radius-sm);padding:var(--ds-space-2) var(--ds-space-3);outline:none}.ds-input:focus,.ds-select:focus,.ds-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.ds-table{width:100%;border-collapse:collapse;font-size:var(--ds-text-sm)}.ds-table th{font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-3);text-align:left;padding:var(--ds-space-2) var(--ds-space-3);border-bottom:1px solid var(--border)}.ds-table td{padding:var(--ds-space-2) var(--ds-space-3);border-bottom:1px solid var(--border)}.ds-table tbody tr:last-child td{border-bottom:none}.ds-table tbody tr:hover{background:var(--surface-2)}.ds-table .is-num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.ds-theme-switch{display:inline-flex;gap:2px;padding:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--ds-radius-pill)}.ds-theme-switch button{margin:0;padding:4px 10px;font:inherit;font-size:12.5px;line-height:1;border:none;border-radius:var(--ds-radius-pill);background:transparent;color:var(--text-2);cursor:pointer}.ds-theme-switch button:hover{color:var(--text)}.ds-theme-switch button.is-active{background:var(--surface);color:var(--accent);font-weight:600}.ds-text-pos{color:var(--green)}.ds-text-neg{color:var(--red)}.ds-text-muted{color:var(--text-2)}.ds-text-hint{color:var(--text-3);font-size:var(--ds-text-xs)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}#root{min-height:100dvh}.intro-page{min-height:100dvh;display:grid;place-items:center;padding:clamp(24px,7vw,72px) 20px;position:relative;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--bg) 78%,transparent),var(--bg)),var(--bg)}.intro-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/img/splash-fond.jpg) center / cover;opacity:.24;mix-blend-mode:multiply;pointer-events:none}.intro-page:after{content:"";position:absolute;width:min(70vw,520px);aspect-ratio:1;right:-18%;bottom:-28%;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:50%;box-shadow:0 0 0 22px color-mix(in srgb,var(--accent) 8%,transparent),0 0 0 44px color-mix(in srgb,var(--accent) 5%,transparent);pointer-events:none}.intro-page__content{width:min(100%,560px);position:relative;z-index:1}.intro-page__eyebrow{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.18em;margin:0 0 18px;text-transform:uppercase}.intro-page h1{color:var(--text);font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,13vw,86px);font-weight:400;letter-spacing:0;line-height:.88;margin:0;text-transform:uppercase}.intro-page h1 span{color:var(--accent);display:block;font-size:.56em;letter-spacing:.12em;line-height:1.3;margin-left:.08em}.intro-page__tagline{color:var(--text-2);font-size:var(--ds-text-base);line-height:1.5;margin:24px 0 36px;max-width:360px}.intro-page__actions{display:grid;gap:10px}.intro-page__button{align-items:center;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);border-left:3px solid var(--text-3);color:var(--text);cursor:pointer;display:grid;gap:16px;grid-template-columns:32px 1fr auto;min-height:82px;padding:16px 18px;text-align:left;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.intro-page__button:hover,.intro-page__button:focus-visible{background:var(--surface);border-left-color:var(--accent);outline:none;transform:translate(4px)}.intro-page__button--primary{border-left-color:var(--accent)}.intro-page__button-number{color:var(--accent);font-family:var(--font-mono);font-size:12px;font-weight:700}.intro-page__button strong,.intro-page__button small{display:block}.intro-page__button strong{font-size:var(--ds-text-base);line-height:1.3}.intro-page__button small{color:var(--text-2);font-size:var(--ds-text-sm);line-height:1.4;margin-top:4px}.intro-page__arrow{color:var(--accent);font-size:22px}.intro-page__footer{color:var(--text-3);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;margin:28px 0 0;text-transform:uppercase}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .intro-page:before,:root[data-theme=dark] .intro-page:before{mix-blend-mode:screen;opacity:.12}}button{font:inherit}button.ds-card{color:inherit}.app-shell{display:flex;flex-direction:column;min-height:100dvh;position:relative;isolation:isolate}.app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:url(/img/splash-fond.jpg);background-size:cover;background-position:center;opacity:.16}:root[data-theme=light] .app-shell:before,:root:not([data-theme=dark]):not([data-theme=light]) .app-shell:before{opacity:.22;mix-blend-mode:multiply}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .app-shell:before{opacity:.16;mix-blend-mode:normal}}:root[data-theme=dark] .app-shell:before{opacity:.16;mix-blend-mode:normal}.app-topbar{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:stretch;padding:env(safe-area-inset-top) 0 0;background:var(--surface);border-bottom:1px solid var(--border)}.app-topbar__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--ds-radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer}.app-main{flex:1;overflow-y:auto;padding:var(--ds-space-4);padding-bottom:calc(var(--ds-space-4) + env(safe-area-inset-bottom));max-width:640px;width:100%;margin:0 auto}.setup-placement-diagram{position:relative;width:100%}.setup-placement-diagram .legend-image,.setup-placement-diagram img{width:100%}.setup-placement-diagram__label{position:absolute;top:5%;left:50%;padding:4px 7px;background:var(--accent);color:var(--ds-neutral-0);font-size:10px;font-weight:700;line-height:1.2;text-align:center;transform:translate(-50%);white-space:nowrap}.setup-placement-diagram__arrow{position:absolute;top:15%;left:50%;color:var(--accent);filter:drop-shadow(0 1px 1px var(--ds-neutral-0));font-size:42px;font-weight:700;line-height:1;transform:translate(-50%)}.modal-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);padding:calc(var(--ds-space-3) + env(safe-area-inset-top)) var(--ds-space-4) var(--ds-space-3);background:var(--surface);border-bottom:1px solid var(--border)}.modal-topbar h1{font-size:var(--ds-text-lg);margin:0}.top-tabs{display:flex;align-items:center;gap:var(--ds-space-2);padding-right:var(--ds-space-3)}.top-tabs__scroller{flex:1;min-width:0;display:flex;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);scroll-padding-inline:16px}.top-tabs__scroller::-webkit-scrollbar{display:none}.top-tabs__tab{flex:0 0 auto;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--ds-space-2) 10px;min-height:48px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-3);cursor:pointer}.top-tabs__tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.top-tabs__icon{font-size:18px;line-height:1}.top-tabs__label{font-size:10px;font-weight:600;white-space:nowrap}.top-tabs__aside{flex:0 0 auto;display:flex;align-items:center;gap:var(--ds-space-2)}.sub-tabs{display:flex;gap:var(--ds-space-2);padding:0 var(--ds-space-3) var(--ds-space-2);overflow-x:auto;scrollbar-width:none}.sub-tabs::-webkit-scrollbar{display:none}.sub-tabs .chip{flex:0 0 auto}@media (prefers-reduced-motion: no-preference){.ds-btn--primary{animation:halo-accent 2.6s ease-in-out infinite}}@keyframes halo-accent{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 45%,transparent)}50%{box-shadow:0 0 10px 3px color-mix(in srgb,var(--accent) 45%,transparent)}}.phase-trail{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none}.phase-trail::-webkit-scrollbar{display:none}.phase-trail__item{flex:0 0 auto;font-size:11px;font-weight:600;color:var(--text-3);padding:3px var(--ds-space-2);border-radius:var(--ds-radius-pill);background:var(--surface-2);white-space:nowrap}.phase-trail li+li .phase-trail__item:before,.phase-trail__item+.phase-trail__item:before{content:"›";margin-right:var(--ds-space-2);color:var(--text-3);font-weight:400}.phase-trail__item--button{border:none;font:inherit;cursor:pointer}.phase-trail__item.is-past{color:var(--text-2)}.phase-trail__item.is-current{background:var(--accent-bg);color:var(--accent)}.phase-trail__step{margin:0;font-size:var(--ds-text-sm)}.round-track{display:flex;gap:3px;list-style:none;margin:0;padding:0}.round-track__cell{flex:1;min-width:0;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:10px;font-variant-numeric:tabular-nums;border:1px solid var(--border);border-radius:var(--ds-radius-sm);background:var(--surface-2);color:var(--text-3)}.round-track__cell.is-past{opacity:.45}.round-track__cell.is-now{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.flow,.flow-root .flow{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--ds-space-2)}.flow__node{position:relative;border:1px solid var(--border);border-radius:var(--ds-radius-sm);background:var(--surface-2);padding:var(--ds-space-2) var(--ds-space-3)}.flow__node+.flow__node:before,.flow__node+.flow__aside:before{content:"";position:absolute;top:calc(-1 * var(--ds-space-2));left:18px;width:1px;height:var(--ds-space-2);background:var(--border)}.flow__head{display:flex;align-items:baseline;gap:var(--ds-space-2);flex-wrap:wrap}.flow__glyph{flex:0 0 auto;width:18px;text-align:center;color:var(--text-3);font-size:12px}.flow__title{font-weight:600;font-size:13px}.flow__node.is-current{border-color:var(--accent);background:var(--accent-bg)}.flow__node.is-visited{opacity:.6}.flow__node.is-delegate{border-style:dashed;border-color:var(--accent)}.flow__node.is-end{background:transparent;border-style:dotted}.flow__delegate{display:flex;flex-direction:column;gap:var(--ds-space-2);margin-top:var(--ds-space-2);font-size:12px;color:var(--text-2)}.flow__arms{margin-top:var(--ds-space-2);display:flex;flex-direction:column;gap:var(--ds-space-3)}.flow__arm{position:relative;padding-left:var(--ds-space-3);border-left:2px solid var(--border)}.flow__arm-label{font-size:12px;font-weight:700;color:var(--accent);margin-bottom:var(--ds-space-2)}.flow__join{font-size:11px;color:var(--text-3);font-style:italic;text-align:center}.flow__aside{position:relative;font-size:12px;color:var(--text-3);padding:var(--ds-space-1) var(--ds-space-3)}.splash{position:relative;background-size:cover;background-position:center 28%;background-repeat:no-repeat;isolation:isolate}.splash:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;z-index:-1;background:linear-gradient(100deg,var(--surface) 0%,color-mix(in srgb,var(--surface) 88%,transparent) 38%,color-mix(in srgb,var(--surface) 55%,transparent) 100%)}.splash--faint:before{background-color:transparent;background-image:var(--splash-src);background-size:cover;background-position:center;background-repeat:no-repeat;left:auto;width:clamp(140px,42%,320px);opacity:.18;-webkit-mask-image:linear-gradient(to left,#000 0%,rgba(0,0,0,.5) 40%,transparent 100%);mask-image:linear-gradient(to left,#000 0%,rgba(0,0,0,.5) 40%,transparent 100%)}.stack{display:flex;flex-direction:column;gap:var(--ds-space-3)}.chip-row{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);margin-bottom:var(--ds-space-3)}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:var(--ds-radius-pill);padding:4px var(--ds-space-3);font-size:var(--ds-text-sm);cursor:pointer}.chip.is-active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent);font-weight:600}.rule-text p{margin:0 0 var(--ds-space-2);color:var(--text-2);line-height:1.5}.rule-text p:last-child{margin-bottom:0}.page-title{font-size:var(--ds-text-xl);margin:0 0 var(--ds-space-4)}.empty-state{color:var(--text-3);text-align:center;padding:var(--ds-space-6) 0}.health-track{display:flex;align-items:flex-end;gap:6px;margin:0;padding:16px 0 2px;list-style:none;overflow-x:auto}.health-track__cell{position:relative;display:flex;flex-direction:column;flex:0 0 auto}.health-track__cell.is-section-start{margin-left:14px}.health-track__cell.is-section-start:before{content:"›";position:absolute;right:calc(100% + 3px);top:50%;transform:translateY(-50%);color:var(--text-3);font-size:14px;line-height:1;pointer-events:none}.health-track__label{position:absolute;bottom:calc(100% + 3px);left:0;font-size:10px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-weight:700}.health-track__label--en-forme{color:var(--green)}.health-track__label--affaibli{color:var(--amber)}.health-track__label--critique{color:var(--red)}.health-track__square{width:34px;height:34px;min-height:34px;border-radius:var(--ds-radius-sm);border:2px solid var(--border);background:var(--surface-2);color:var(--text);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.health-track__square--en-forme{border-color:color-mix(in srgb,var(--green) 55%,var(--border))}.health-track__square--affaibli{border-color:color-mix(in srgb,var(--amber) 55%,var(--border))}.health-track__square--critique{border-color:color-mix(in srgb,var(--red) 55%,var(--border))}.health-track__square.is-here{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:700}.health-track__square--mort.is-here{background:var(--red);border-color:var(--red)}
