@font-face{font-family:Barlow;font-weight:400;font-display:swap;src:url(/fonts/barlow-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Barlow;font-weight:500;font-display:swap;src:url(/fonts/barlow-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Barlow;font-weight:600;font-display:swap;src:url(/fonts/barlow-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-weight:700;font-display:swap;src:url(/fonts/barlow-condensed-latin-700-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2")}:root{--bg:#e8ebed;--surface:#f6f7f8;--fg:#14181b;--muted:#5d6a72;--line:#c9d0d5;--accent:#d9461f;--accent-fg:#fff;--good:#1f8a4c;--warn:#b7791f;--bad:#c0392b;--f-display:"Barlow Condensed", "Arial Narrow", sans-serif;--f-body:"Barlow", system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1315;--surface:#181e21;--fg:#e7ecee;--muted:#8c9aa2;--line:#2a3338;--accent:#ff6a3d;--accent-fg:#120a06;--good:#4cc17f;--warn:#e0a94a;--bad:#ff6b5b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--f-body);padding:0 max(16px, env(safe-area-inset-right)) 120px max(16px, env(safe-area-inset-left));-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.4}#app{max-width:640px;padding-top:env(safe-area-inset-top);margin:0 auto}h1{font:700 34px/1 var(--f-display);text-transform:uppercase;letter-spacing:.02em;margin:20px 0 4px}h2{font:600 13px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px}h3{font:700 22px/1.1 var(--f-display);text-transform:uppercase;margin:0 0 2px}.titre-seance{font-size:26px}.obj{color:var(--muted);margin:0 0 8px}.meta{font:500 12px var(--f-mono);color:var(--muted);flex-wrap:wrap;gap:12px;display:flex}.carte{background:linear-gradient(180deg, color-mix(in srgb, var(--fg) 4%, var(--surface)), var(--surface));border:1px solid var(--line);box-shadow:0 1px 0 color-mix(in srgb, var(--fg) 6%, transparent) inset, 0 8px 24px -16px #0009;border-radius:16px;margin-bottom:12px;padding:14px 16px;position:relative}.carte.reprise{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 10px 30px -14px color-mix(in srgb, var(--accent) 55%, transparent)}.carte.hero{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));overflow:hidden}.carte.hero:before{content:"";pointer-events:none;background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 28%, transparent), transparent);width:70%;height:140%;position:absolute;inset:-40% -20% auto auto}.carte.hero>*{position:relative}.ex .note{color:var(--muted);margin:0 0 4px;font-size:14px}.ex .last{font:500 12px var(--f-mono);color:var(--muted);margin:0 0 10px}.ck{cursor:pointer;align-items:flex-start;gap:12px;padding:8px 0;display:flex}.ck input{width:24px;height:24px;accent-color:var(--accent);flex:none;margin:0}.entete-seance{z-index:5;background:var(--bg);padding-top:env(safe-area-inset-top);position:sticky;top:0}.progres{background:var(--line);border-radius:0 0 3px 3px;height:6px;overflow:hidden}.duree{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding:6px 2px 8px;display:flex}.duree span{font:600 12px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.duree b{font:700 26px/1 var(--f-display);font-variant-numeric:tabular-nums}.progres i{background:var(--accent);width:0;height:100%;transition:width .25s;display:block}.set{grid-template-columns:36px 1fr 1fr 56px;align-items:center;gap:8px;margin-bottom:8px;display:grid}.chip{font:700 15px var(--f-display);text-align:center;border:1px solid var(--line);color:var(--muted);background:var(--bg);border-radius:8px;padding:8px 0}.chip.F{color:var(--bad);border-color:var(--bad)}.chip.D{color:var(--warn);border-color:var(--warn)}.chip.N{color:var(--fg)}.set label{background:var(--bg);border:1px solid var(--line);border-radius:10px;align-items:center;gap:6px;min-width:0;padding:0 10px;transition:border-color .15s;display:flex}.set label:focus-within{border-color:var(--accent)}.set label span{color:var(--muted);white-space:nowrap;font-size:11px}.set input[type=text]{width:100%;min-width:0;color:var(--fg);font:500 20px var(--f-mono);text-align:right;background:0 0;border:0;padding:12px 0}.set .ok{border:1px solid var(--line);background:var(--bg);width:56px;height:52px;color:var(--muted);cursor:pointer;border-radius:12px;font-size:26px;transition:background .15s,transform .1s,box-shadow .2s}.set .ok:active{transform:scale(.94)}.set.done .ok{background:var(--good);border-color:var(--good);color:#fff;box-shadow:0 0 14px -2px color-mix(in srgb, var(--good) 70%, transparent)}.set.done label{opacity:.6}button,input{font-family:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.main{width:100%;font:700 22px var(--f-display);letter-spacing:.06em;text-transform:uppercase;background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 88%, #fff), var(--accent));color:var(--accent-fg);cursor:pointer;box-shadow:0 10px 24px -12px color-mix(in srgb, var(--accent) 80%, transparent), 0 1px 0 #ffffff40 inset;border:0;border-radius:14px;margin-top:14px;padding:18px;transition:transform .1s,filter .15s}button.main:active{filter:brightness(.95);transform:scale(.985)}button.ghost{color:var(--muted);border:1px solid var(--line);font:600 15px var(--f-body);cursor:pointer;background:0 0;border-radius:14px;width:100%;margin-top:12px;padding:14px;transition:background .15s,color .15s}button.ghost:active{background:color-mix(in srgb, var(--fg) 8%, transparent);color:var(--fg)}button.ghost.prevue{border-color:var(--accent);color:var(--fg)}.choix{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choix .ghost{margin:0}.pain{align-items:center;gap:12px;display:flex}.pain input[type=range]{accent-color:var(--accent);flex:1;height:32px}.pain b{font:700 24px var(--f-display);text-align:right;min-width:80px}.banniere{border:1px solid;border-radius:14px;margin:12px 0;padding:12px 14px;font-weight:600}.banniere p{margin:4px 0 8px;font-weight:400}.banniere.rouge{background:color-mix(in srgb, var(--bad) 18%, var(--surface));border-color:var(--bad)}.banniere.orange{background:color-mix(in srgb, var(--warn) 18%, var(--surface));border-color:var(--warn)}.flash{background:color-mix(in srgb, var(--good) 18%, var(--surface));border:1px solid var(--good);border-radius:6px;margin:12px 0;padding:12px 14px;font-weight:600}.erreur{color:var(--bad);font-weight:600}.echelle{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.echelle .n{font:700 18px var(--f-display);background:var(--bg);color:var(--fg);border:1px solid var(--line);cursor:pointer;border-radius:4px;padding:12px 0}.ligne{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 0;display:flex}.ligne b{font:700 18px var(--f-display);text-transform:uppercase}.hist{font:500 12px var(--f-mono);color:var(--muted)}.repos{z-index:20;padding:12px max(16px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:var(--accent);color:var(--accent-fg);align-items:center;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.repos[hidden]{display:none}.repos-txt{flex-direction:column;flex:1;min-width:0;display:flex}.chrono{font:700 36px/1 var(--f-display)}.chrono-lib{opacity:.85;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}button.mini{font:700 16px var(--f-display);color:inherit;cursor:pointer;background:0 0;border:2px solid;border-radius:6px;padding:12px 14px}.nav-date{text-align:center;grid-template-columns:56px 1fr 56px;align-items:center;gap:8px;margin:8px 0 12px;display:grid}.nav-date .ghost{margin:0;padding:12px 0;font-size:22px}.nav-date .ghost:disabled{opacity:.35;cursor:default}.champs{padding-bottom:4px}.champ{justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.champ-nom{font:700 18px var(--f-display);text-transform:uppercase}.champ-saisie{background:var(--bg);border:1px solid var(--line);border-radius:4px;align-items:center;gap:8px;width:55%;padding:0 10px;display:flex}.champ-saisie input{width:100%;min-width:0;color:var(--fg);font:500 22px var(--f-mono);text-align:right;background:0 0;border:0;padding:12px 0}.champ-saisie i{color:var(--muted);white-space:nowrap;font-size:11px;font-style:normal}.retour{min-height:18px;color:var(--muted);text-align:right;margin:4px 0 8px;font-size:13px}.retour.bon{color:var(--good)}.retour.mauvais,.retour.erreur{color:var(--bad)}.retour.moyen{color:var(--warn)}.reel{font:500 12px var(--f-mono);color:var(--muted);text-align:right;margin:-2px 0 8px}.graphique{width:100%;height:auto;display:block}.g-txt{fill:var(--muted);font:500 10px var(--f-mono)}.g-grille{stroke:var(--line);stroke-width:1px}.g-bande{fill:var(--good);opacity:.18}.g-zone{fill:var(--good);opacity:.15}.g-cible{stroke:var(--good);stroke-width:1px;stroke-dasharray:4 3}.g-aujourdhui{stroke:var(--muted);stroke-width:1px;stroke-dasharray:2 3}.g-brut{fill:var(--muted);opacity:.45}.g-mm{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.g-mm-point{fill:var(--accent)}.g-repere{fill:var(--fg)}.g-repere-txt{fill:var(--fg);font:600 10px var(--f-mono)}.g-barre-zone{fill:var(--good)}.g-barre-bas,.g-barre-haut{fill:var(--warn)}.g-barre-inconnu{fill:var(--muted)}.legende{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 14px;margin:8px 0 4px;font-size:12px;display:flex}.pastille{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:5px;display:inline-block}.pastille.brut{background:var(--muted);opacity:.6}.pastille.mm{background:var(--accent)}.pastille.bande{background:var(--good);opacity:.5;border-radius:2px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.stat-t{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.stat b{font:700 26px var(--f-display)}.stat-d{color:var(--muted);font-size:12px}.kpis{grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 12px;display:grid}.kpi{border:1px solid var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--fg) 4%, var(--surface)), var(--surface));border-radius:16px;flex-direction:column;gap:4px;min-width:0;padding:12px 12px 10px;display:flex}.kpi-t{font:600 11px var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.kpi b{font:700 28px/1 var(--f-display);font-variant-numeric:tabular-nums;white-space:nowrap}.pilule{max-width:100%;font:600 11px var(--f-body);white-space:nowrap;text-overflow:ellipsis;color:var(--muted);background:color-mix(in srgb, var(--muted) 16%, transparent);border-radius:999px;align-self:flex-start;padding:2px 8px;overflow:hidden}.pilule.bon{color:var(--good);background:color-mix(in srgb, var(--good) 16%, transparent)}.pilule.moyen{color:var(--warn);background:color-mix(in srgb, var(--warn) 16%, transparent)}.pilule.mauvais{color:var(--bad);background:color-mix(in srgb, var(--bad) 16%, transparent)}.ex-tete{justify-content:space-between;align-items:center;gap:10px;margin-bottom:2px;display:flex}.badge-ex{font:600 12px var(--f-mono);color:var(--muted);border:1px solid var(--line);background:var(--bg);border-radius:999px;flex:none;padding:3px 10px;transition:all .2s}.badge-ex.complet{color:var(--good);border-color:var(--good);background:color-mix(in srgb, var(--good) 14%, transparent)}.nav-bas{z-index:15;padding:6px max(8px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));background:color-mix(in srgb, var(--bg) 96%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.nav-bas[hidden]{display:none}.nav-bas a{color:var(--muted);font:600 10px var(--f-body);letter-spacing:.01em;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:6px 0;text-decoration:none;transition:color .15s,background .15s;display:flex}.nav-bas svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.nav-bas a[aria-current=page]{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.nav-bas a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}body.avec-nav{padding-bottom:calc(96px + env(safe-area-inset-bottom))}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.retour.tendance{text-align:left;margin:8px 0 0;font-size:14px;font-weight:600}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(900px 520px at 88% -6%, color-mix(in srgb, var(--accent) 17%, transparent), transparent 65%), radial-gradient(760px 520px at -12% 38%, #5b7cff1c, transparent 65%), radial-gradient(700px 480px at 70% 110%, color-mix(in srgb, var(--good) 8%, transparent), transparent 65%);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;opacity:.5;background-image:linear-gradient(color-mix(in srgb, var(--fg) 4%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--fg) 4%, transparent) 1px, transparent 1px);background-size:32px 32px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(120% 70% at 50% 0,#000,#0000 85%);mask-image:radial-gradient(120% 70% at 50% 0,#000,#0000 85%)}body.fond-perso:before{background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 58%, transparent), color-mix(in srgb, var(--bg) 90%, transparent)), var(--fond-image) center / cover no-repeat}body.fond-perso:after{display:none}.obj-carte{padding-bottom:12px}.obj-tete{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.obj-tete h3{margin:0}.gros{align-items:baseline;margin:2px 0 8px;display:flex}.gros b{font:700 40px/1 var(--f-display);font-variant-numeric:tabular-nums}.gros span{font:600 16px var(--f-body);color:var(--muted);white-space:pre}.barre{background:color-mix(in srgb, var(--fg) 10%, transparent);border-radius:999px;height:8px;overflow:hidden}.barre i{border-radius:inherit;background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 65%, #fff));height:100%;transition:width .4s;display:block}.barre.bon i{background:linear-gradient(90deg, var(--good), color-mix(in srgb, var(--good) 70%, #fff))}.barre.mauvais i{background:var(--bad)}.barre.moyen i{background:var(--warn)}.obj-d{color:var(--muted);margin:6px 0 0;font-size:13px}.obj-d.fin{font:500 11px var(--f-mono);opacity:.8;margin-top:2px}.palier{border-top:1px solid var(--line);padding:10px 0}.palier:first-of-type{border-top:0;padding-top:2px}.palier-t{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.palier-t b{font:700 20px var(--f-display)}.palier-t small{font:500 12px var(--f-body);color:var(--muted)}.seg{background:var(--bg);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;margin:6px 0 8px;padding:4px;display:grid}.seg button{color:var(--muted);font:600 14px var(--f-body);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:10px 6px}.seg button.actif{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--fg);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent) inset}.champ-saisie.date input{text-align:right;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:16px}.cmp-tete,.cmp-ligne{grid-template-columns:1.1fr 1fr 1fr;align-items:center;gap:4px 8px;display:grid}.cmp-tete{font:600 11px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:10px 0 2px}.cmp-tete span:nth-child(4){display:none}.cmp-ligne{border-top:1px solid var(--line);padding:10px 0}.cmp-ligne b{font:700 17px var(--f-display);text-transform:uppercase}.cmp-v{font:500 15px var(--f-mono)}.cmp-ligne .pilule{grid-column:1/-1}.cmp-obj{color:var(--muted);grid-column:1/-1;font-size:12px}.etapes{gap:8px;margin:8px 0;display:grid}.etape-choix{border:1px solid var(--line);background:var(--bg);color:var(--fg);text-align:left;cursor:pointer;font:inherit;border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.etape-choix b,.etapes-liste b{border:1px solid var(--line);width:30px;height:30px;font:700 15px var(--f-display);border-radius:50%;flex:none;place-items:center;display:grid}.etape-choix span,.etapes-liste span{flex-direction:column;display:flex}.etape-choix i,.etapes-liste i{font-style:normal;font-weight:600}.etape-choix small,.etapes-liste small{color:var(--muted);font-size:12px}.etapes-liste{gap:6px;margin:10px 0;padding:0;list-style:none;display:grid}.etapes-liste li{color:var(--muted);border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.etapes-liste li.fait b{color:var(--good);border-color:var(--good)}.etapes-liste li.courant{color:var(--fg);background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 50%, transparent) inset}.etapes-liste li.courant b{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.bloc-seance{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:12px;flex-direction:column;gap:2px;margin:10px 0 4px;padding:10px 12px;display:flex}.bloc-seance b{font:700 16px var(--f-display);text-transform:uppercase;letter-spacing:.03em}.bloc-seance span{color:var(--muted);font-size:13px}.note.regle{color:var(--good);font-weight:600}button.technique{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--fg);font:600 14px var(--f-body);cursor:pointer;border-radius:12px;margin:6px 0 12px;padding:10px 14px}button.technique:active{background:color-mix(in srgb, var(--accent) 22%, transparent)}button.technique.mini{flex:none;margin:0 0 0 auto;padding:6px 10px;font-size:12px}.liste-fiches{gap:6px;margin-top:6px;display:grid}.ligne-fiche{border:1px solid var(--line);background:var(--bg);color:var(--fg);font:600 16px var(--f-body);cursor:pointer;text-align:left;border-radius:12px;justify-content:space-between;align-items:center;padding:14px 12px;display:flex}.ligne-fiche i{color:var(--muted);font-size:22px;font-style:normal}body.fiche-ouverte{overflow:hidden}.fiche-fond{z-index:60;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.fiche{overscroll-behavior:contain;background:var(--bg);width:100%;max-width:640px;max-height:92dvh;color:var(--fg);border:1px solid var(--line);padding:0 max(16px, env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));border-bottom:0;border-radius:20px 20px 0 0;overflow-y:auto}.fiche:focus{outline:none}.fiche-tete{z-index:1;background:var(--bg);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0 10px;display:flex;position:sticky;top:0}.fiche-tete h1{margin:0;font-size:26px}.fiche-fermer{border:1px solid var(--line);background:var(--surface);color:var(--fg);font:600 15px var(--f-body);cursor:pointer;border-radius:12px;flex:none;padding:10px 16px}.fiche-corps{padding-top:6px}.fiche-section h3{font:600 12px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:20px 0 6px}.fiche-section p{margin:0 0 8px;font-size:16px;line-height:1.5}.fiche-vide{color:var(--muted);font-style:italic}.fiche-etape{border-top:1px solid var(--line);margin-top:22px;padding-top:4px;scroll-margin-top:70px}.fiche-etape h2{color:var(--fg);font:700 20px var(--f-display);letter-spacing:.02em;text-transform:uppercase;margin:14px 0 2px}.fiche-etape.visee h2{color:var(--accent)}.fiche-consigne{font:500 13px var(--f-mono);color:var(--muted);margin:0}.etapes-liste li{grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.etapes-liste li span{min-width:0}.etapes-liste li button.technique{margin:0}.fiche-intro{background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:12px;margin:14px 0 4px;padding:12px 14px}.fiche-intro p{margin:0 0 6px;font-size:16px;line-height:1.5}.fiche-intro p:last-child{margin-bottom:0}
