:root{--paper:#FBFAF6;--card:#FFFFFF;--ink:#15140E;--ink2:#56534A;--ink3:#726F62;--rule:#E3E0D6;--rule2:#F0EDE4;--blue:#1E38B0;--red:#C92E1B;--green:#2C6F52;--green-w:#EBF3EF;--disp:"Fraunces",Georgia,serif;--body:"Instrument Sans",system-ui,sans-serif;--mono:"DM Mono",ui-monospace,monospace;--tabbar-h:64px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.app{max-width:520px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.screen{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:26px 22px 28px}.screen.portail{padding-top:clamp(24px,12vh,130px);padding-bottom:32px;display:flex;flex-direction:column}.screen.portail>*{flex:0 0 auto}.portail-marque{text-align:center;margin-bottom:34px}@media(max-height:730px){.screen.portail{padding-top:clamp(20px,3vh,44px);padding-bottom:18px}}.portail-marque.serre{margin-bottom:20px}.portail-marque.serre .logo{margin-bottom:8px}.portail-marque.serre .portail-nom{font-size:1.4rem}.screen.portail-serre{padding-top:clamp(24px,4vh,52px);padding-bottom:20px}.screen.portail-serre .form{gap:12px}.logo{display:block;margin:0 auto 18px}.logo-ligne{fill:var(--ink)}.logo-barre{fill:var(--red)}.portail-nom{font-family:var(--disp);font-weight:600;font-variation-settings:"opsz" 60,"SOFT" 40;font-size:1.95rem;line-height:1;letter-spacing:-.02em}.portail-slogan{margin-top:12px;color:var(--ink3);font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.portail-fin{text-align:center;color:var(--ink3);font-size:.88rem;margin-top:2px}.screen.portail .form{margin-top:0;gap:14px}.portail-liens{display:flex;justify-content:center;gap:26px}.portail-bienvenue{font-family:var(--disp);font-weight:600;font-size:1.3rem;letter-spacing:-.02em;margin-bottom:2px}.champ-code{font-family:var(--mono);font-size:1.35rem;letter-spacing:.34em;text-align:center}.screen.portail .form-msg{text-align:center;margin-top:2px}.tel{display:flex;align-items:stretch;gap:10px}.tel-ind-box{display:flex;align-items:center;gap:2px;flex:none;padding:0 14px;background:var(--card);border:1px solid var(--rule);border-radius:12px}.tel-ind-box:focus-within{border-color:var(--blue)}.tel-ind-box .tel-plus{color:var(--ink2);font-size:1.02rem}.tel-ind-box .tel-ind{width:auto;min-width:0;height:auto;padding:0;border:none;background:none;border-radius:0}.tel-ind-box .tel-ind:focus{border:none;outline:none}.tel-num{flex:1;min-width:0}.screen.portail .lien{align-self:center;text-decoration:none;color:var(--ink3);display:flex;align-items:center}.screen.portail .lien:hover{color:var(--ink);text-decoration:underline}.screen.portail input::placeholder{color:#a9a599;opacity:1}.screen.portail .btn.pri.wide:disabled{opacity:1;background:var(--rule);color:var(--ink2);border-color:var(--rule)}.screen.today{display:flex;flex-direction:column}.screen.today>.streak{margin-top:auto}.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}.title{font-family:var(--disp);font-weight:600;font-variation-settings:"opsz" 60,"SOFT" 40;font-size:clamp(1.6rem,6.6vw,2.05rem);line-height:1.12;letter-spacing:-.03em;margin-top:10px;text-wrap:balance}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;border-radius:5px;font-weight:600;font-size:.95rem;letter-spacing:-.01em;border:1.5px solid var(--ink);transition:background .15s,color .15s}.btn.pri{background:var(--ink);color:var(--paper)}.btn.pri:hover{background:var(--blue);border-color:var(--blue)}.btn.ghost{border-color:var(--rule);color:var(--ink2)}.btn.ghost:hover{background:var(--rule2);color:var(--ink)}.btn.wide{width:100%;min-height:56px;font-size:1.02rem}.stamp{width:38px;height:38px;border-radius:50%;flex:none;position:relative;border:2px solid var(--rule);transform:rotate(-9deg)}.stamp:before{content:"";position:absolute;inset:4px;border-radius:50%;border:1px solid currentColor;opacity:.4}.stamp.done{border-color:var(--green);color:var(--green);background:var(--green-w)}.stamp.done:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:var(--green);font-size:.95rem;font-weight:700;transform:rotate(9deg)}.stamp.now{border-color:var(--blue);color:var(--blue);border-style:dashed}.rungs{display:flex;flex-direction:column;margin:18px 0}.rung{width:100%;text-align:left;background:none;border:none;font:inherit;color:inherit;display:flex;align-items:center;gap:15px;padding:12px 0;min-height:58px;border-bottom:1px solid var(--rule2)}.rung:first-child{border-top:1px solid var(--rule2)}.rung:hover .rung-txt{text-decoration:underline;text-underline-offset:3px}.rung-txt{font-size:1.04rem;font-weight:600;line-height:1.25;letter-spacing:-.01em}.rung-grp{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);font-weight:400;margin-bottom:3px}.rung-min{font-family:var(--mono);font-size:1.02rem;margin-left:auto;color:var(--ink2);font-variant-numeric:tabular-nums}@media(max-width:380px){.rung{gap:11px;padding:11px 0;min-height:54px}.stamp{width:34px;height:34px}.rung-txt{font-size:.98rem}.rung-grp{font-size:.64rem;letter-spacing:.1em}.rung-min{font-size:.96rem}}.dial-wrap{display:flex;flex-direction:column;align-items:center;margin-top:8px}.dial{position:relative;width:min(48vw,190px);aspect-ratio:1}.dial svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.dial .track{fill:none;stroke:var(--rule2);stroke-width:6.15}.dial .fill{fill:none;stroke:var(--blue);stroke-width:6.15;stroke-linecap:round;transition:stroke-dashoffset .95s linear}.dial-num{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--disp);font-weight:700;font-size:clamp(1.7rem,7.5vw,2.2rem);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--blue)}.ses-lab{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}.ses-step{margin-top:20px;font-size:1.02rem;line-height:1.5}.ses-step .t{display:block;font-family:var(--mono);font-size:.78rem;color:var(--ink3);margin-bottom:7px;letter-spacing:.05em}.ses-watch{margin-top:22px;background:var(--rule2);border-radius:8px;padding:15px 17px;font-size:.95rem;color:var(--ink2);line-height:1.5}.ses-watch b{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--ink3);text-transform:uppercase;margin-bottom:6px}.ses-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:26px}.ses-chrono{display:flex;align-items:baseline;gap:10px;margin-top:8px}.ses-chrono b{font-family:var(--mono);font-size:1.35rem;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.ses-chrono span{font-size:.88rem;color:var(--ink3)}.ses-jauge{margin-top:9px;margin-bottom:20px;height:4px;border-radius:2px;background:var(--rule2);overflow:hidden}.ses-jauge i{display:block;height:100%;background:var(--ink);transition:width .9s linear}.ses-etapes{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:4px}.ses-etapes li{display:flex;flex-direction:column;gap:5px;padding:14px 0;border-bottom:1px solid var(--rule2);font-size:1rem;line-height:1.5}.ses-etapes li:first-child{border-top:1px solid var(--rule2)}.ses-etapes .t{font-family:var(--mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3)}.ses-chrono-libre{margin-top:8px;margin-bottom:20px;font-size:.93rem;color:var(--ink3);line-height:1.45}.ses-recul{margin-top:22px;border:1px dashed var(--rule);border-radius:8px;padding:14px 16px;font-size:.95rem;color:var(--ink2);line-height:1.45}.ses-recul .ses-actions{margin-top:14px}.btn.ghost.danger{border-color:var(--red);color:var(--red)}.btn.ghost.danger:hover{background:var(--red);color:var(--paper)}.ses-avance{display:flex;align-items:center;gap:10px;margin-top:12px;font-family:var(--mono);font-size:.8rem;color:var(--ink2);font-variant-numeric:tabular-nums}.ses-avance i{flex:1;height:5px;border-radius:3px;background:var(--rule2);overflow:hidden}.ses-avance i u{display:block;height:100%;background:var(--green);text-decoration:none}.ses-valid.ouvert{border:1.5px solid var(--green);background:var(--green-w)}.ses-valid.ouvert b{color:var(--green)}.ses-valid.ouvert .ses-avance i u{background:var(--green)}.ses-valid+.btn.wide{margin-top:26px;border-style:dashed}.ses-haut{display:flex;align-items:center;gap:12px;margin-bottom:2px}.ses-haut .ses-lab{flex:1;min-width:0}.ses-quit{flex:none;min-height:48px;padding:0 4px 0 12px;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}.ses-quit:hover{color:var(--ink);text-decoration:underline}.ses-sortie{display:flex;flex-direction:column;justify-content:center}.hist-bloc{margin-top:22px}.hist-chiffres{display:flex;gap:20px;flex-wrap:wrap}.hist-chiffres span{display:flex;flex-direction:column;font-size:.86rem;color:var(--ink3);line-height:1.3}.hist-chiffres b{font-family:var(--disp);font-weight:700;font-size:1.9rem;line-height:1;color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.calendrier{margin-top:18px;display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:4px}.calendrier i{width:100%;aspect-ratio:1;border-radius:3px;background:var(--rule2);border:1px solid var(--rule)}.calendrier i.fait{background:var(--green);border-color:var(--green)}.hist-note{margin-top:12px;font-size:.88rem;color:var(--ink3);line-height:1.45}.echelles{display:flex;flex-direction:column;gap:16px;margin-top:14px}.ech-haut{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.ech-nom{font-weight:600}.ech-pos{font-family:var(--mono);font-size:.86rem;color:var(--ink3);font-variant-numeric:tabular-nums}.ech-barre{margin-top:7px;height:5px;border-radius:3px;background:var(--rule2);overflow:hidden}.ech-barre i{display:block;height:100%;background:var(--ink)}.ech-e{display:block;margin-top:6px;font-size:.9rem;color:var(--ink2)}.hist-liste{list-style:none;display:flex;flex-direction:column;gap:1px;margin-top:12px}.hist-liste li{display:flex;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule2)}.hist-liste li:first-child{border-top:1px solid var(--rule2)}.hl-t{font-size:.98rem;font-weight:600}.hl-v{margin-left:auto;text-align:right;font-family:var(--mono);font-size:.84rem;color:var(--ink2);font-variant-numeric:tabular-nums}.chant-travail{display:flex;flex-direction:column}.chant-travail .tempo{margin-bottom:18px}.accord-gros{margin-top:26px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.accord-gros b{font-family:var(--disp);font-weight:700;font-size:3.4rem;line-height:1;letter-spacing:-.04em}.accord-gros span{font-family:var(--mono);font-size:.9rem;color:var(--ink3)}.grille-verdict{display:flex;gap:8px;margin-top:20px}.grille-verdict i{flex:1;text-align:center;font-style:normal;font-family:var(--mono);font-size:.82rem;padding:9px 4px;border:1px solid var(--rule);border-radius:6px;color:var(--ink3)}.grille-verdict i.ok{border-color:var(--green);color:var(--green);background:var(--green-w)}.grille-verdict i.non{border-color:var(--red);color:var(--red)}.grille-verdict i.ok:after{content:" ✓"}.grille-verdict i.non:after{content:" ✗"}.grille-verdict i.courant{outline:2px solid var(--ink);outline-offset:1px}.chant-ordre{margin-top:14px;min-height:28px;font-size:1rem;color:var(--ink2);line-height:1.4;transition:color .1s}.chant-ordre.fort{color:var(--ink);font-weight:700}.accord-gros.pose b{color:var(--blue)}.chant-etat{margin-top:16px;font-size:.95rem;color:var(--ink2);line-height:1.45}.chant-mesure{margin-top:10px;font-size:.95rem;color:var(--ink2);padding-top:10px;border-top:1px solid var(--rule2)}.chant-mesure b{font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}.note-gros{font-family:var(--disp);font-weight:700;font-size:4.2rem;line-height:1;letter-spacing:-.04em}.verdict-octave{margin-top:4px;display:flex;justify-content:center}.verdict-octave .octave{max-width:230px}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.note-attente{margin-top:22px;min-height:56px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.97rem;color:var(--ink3);line-height:1.45}.maitrise-barre{margin-top:14px;height:6px;border-radius:3px;background:var(--rule2);overflow:hidden}.maitrise-barre i{display:block;height:100%;background:var(--green)}.jauge-carte{display:flex;gap:6px;margin-top:2px}.jauge-carte i{width:22px;height:4px;border-radius:2px;background:var(--rule)}.jauge-carte i.on{background:var(--green)}.clavier-etapes{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:6px}.clavier-etapes li{display:flex;flex-direction:column;gap:2px;padding:14px 0 14px 30px;position:relative;border-bottom:1px solid var(--rule2)}.clavier-etapes li:first-child{border-top:1px solid var(--rule2)}.clavier-etapes li:before{content:"";position:absolute;left:0;top:18px;width:15px;height:15px;border-radius:50%;border:2px solid var(--rule)}.clavier-etapes li.encours:before{border-color:var(--ink);border-style:dashed}.clavier-etapes li.echec:before{border-color:var(--red)}.clavier-etapes li.echec .ce-t{color:var(--ink)}.clavier-etapes li.faite:before{border-color:var(--green);background:var(--green)}.ce-t{font-size:1rem;font-weight:600;color:var(--ink3)}.clavier-etapes li.encours .ce-t,.clavier-etapes li.faite .ce-t{color:var(--ink)}.ce-d{font-size:.93rem;color:var(--ink2);line-height:1.4}.screen.portail .clavier-etapes+.form{margin-top:22px}.clavier-invite{min-height:56px;display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--rule);border-radius:8px;padding:12px 16px;color:var(--ink2);font-size:.97rem;line-height:1.4}.screen.portail .clavier-etapes+.form-msg{margin:18px 0;text-align:left}.screen.portail .lien-sortie{align-self:center;text-decoration:underline;text-underline-offset:3px;color:var(--ink2);font-weight:600}.saisie{display:flex;gap:10px;margin-top:22px}.saisie input{flex:1;min-width:0;height:56px;padding:0 16px;border:1px solid var(--rule);border-radius:8px;background:var(--card);font:inherit;font-size:1.15rem;color:var(--ink)}.saisie input:focus{border-color:var(--blue);outline:none}.saisie .btn{flex:none;min-height:56px;padding-inline:22px}.paquet-ligne{display:flex;flex-direction:column;gap:2px}.paquet-bas{display:flex;align-items:center;gap:14px;padding:0 2px 10px;border-bottom:1px solid var(--rule2)}.paquet-avance{font-family:var(--mono);font-size:.76rem;color:var(--ink3);font-variant-numeric:tabular-nums}.paquet-raz{display:flex;align-items:center;gap:16px;margin-left:auto}.paquet-bas>.lien{margin-left:auto}.paquet-bas .lien{min-height:44px;font-size:.86rem;align-self:center}.choix{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:22px}.palette-b{min-height:60px;border:1.5px solid var(--rule);border-radius:8px;background:var(--card);font-family:var(--disp);font-weight:600;font-size:1.25rem;letter-spacing:-.02em;color:var(--ink)}.palette-b:hover{border-color:var(--ink)}.palette-b:active{background:var(--rule2)}.palette-b:nth-child(7):last-child{grid-column:span 2}.choix-b{min-height:60px;padding:12px 14px;border:1.5px solid var(--rule);border-radius:8px;background:var(--card);font-size:1.02rem;font-weight:600;color:var(--ink);line-height:1.25}.choix-b:hover{border-color:var(--ink)}.verdict{margin-top:22px;display:flex;flex-direction:column;gap:10px}.verdict-t{font-size:1.05rem;font-weight:600}.verdict.ok .verdict-t{color:var(--green)}.verdict.non .verdict-t{color:var(--red)}.verdict-saisi{font-size:.95rem;color:var(--ink2)}.verdict-a{font-family:var(--disp);font-weight:700;font-size:2.6rem;line-height:1;letter-spacing:-.03em;color:var(--ink)}.verdict-ms{font-family:var(--mono);font-size:.82rem;color:var(--ink3);font-variant-numeric:tabular-nums}.verdict-ou{margin-top:6px;font-size:.93rem;color:var(--ink2)}.verdict .btn{margin-top:4px}.drill-rates{margin-top:24px;padding-top:16px;border-top:1px solid var(--rule2)}.drill-rates ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:10px}.drill-rates li{display:flex;align-items:baseline;gap:12px;font-size:.95rem;color:var(--ink2)}.drill-rates li b{margin-left:auto;color:var(--ink);white-space:nowrap}.tabbar{flex:none;display:flex;background:var(--paper);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;min-height:var(--tabbar-h);padding:9px 4px 11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:.68rem;font-weight:500;color:var(--ink3);letter-spacing:.01em}.tabbar svg{width:23px;height:23px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.tabbar svg .plein{fill:currentColor;stroke:none}.tabbar svg .pale{opacity:.34}.tabbar button.on{color:var(--ink);font-weight:600;box-shadow:inset 0 2px 0 var(--ink)}.tabbar button.on svg{stroke-width:1.9}.todo-note{border:1px dashed var(--rule);border-radius:8px;padding:20px;color:var(--ink2);font-size:.98rem;margin-top:22px}.todo-note a{color:var(--blue)}.streak{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1.5px solid var(--ink)}.streak b{font-family:var(--disp);font-weight:700;font-size:1.6rem;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.streak em{font-style:normal;color:var(--ink);font-weight:600;font-size:1rem}.streak span{font-size:.95rem;color:var(--ink3);line-height:1.3}.rescue{margin-top:14px;width:100%;border:1px solid var(--rule);border-radius:8px;padding:11px 16px 13px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left}.rescue:hover{border-color:var(--ink);background:var(--rule2)}.rescue-t{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3)}.rescue-d{font-size:1rem;font-weight:600;color:var(--ink);line-height:1.25}.drill{display:flex;flex-direction:column}.drill-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.drill-top .eyebrow{min-width:0;flex:1}.drill-timer{flex:none}.drill-haut{display:flex;align-items:center;gap:12px;margin-bottom:4px;position:sticky;top:0;z-index:5;background:var(--paper);padding-top:2px;padding-bottom:2px}.drill-haut .eyebrow{flex:1;min-width:0;line-height:1.4}.drill-compte{font-family:var(--mono);font-size:.76rem;color:var(--ink3);font-variant-numeric:tabular-nums}.drill-haut .drill-quit{flex:none;min-height:48px;padding:0 2px 0 12px;margin:0;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);text-decoration:none}.drill-haut .drill-quit:hover{color:var(--ink);text-decoration:underline}.drill-quit{font-family:var(--mono);font-size:.72rem;color:var(--ink3);text-decoration:underline;min-height:44px;padding:0 4px}.drill-top .eyebrow{line-height:1.4}.drill-sub{white-space:normal}.drill-timer{font-family:var(--mono);font-size:1rem;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.drill-timer.late{color:var(--red);font-weight:500}.drill-bar{height:6px;background:var(--rule);border-radius:99px;margin-top:14px;overflow:hidden}.drill-bar i{display:block;height:100%;min-width:14px;background:var(--ink);border-radius:99px;transition:width .2s}.card{margin-top:24px;margin-bottom:20px;background:var(--card);border:1.5px solid var(--ink);border-radius:10px;padding:22px 20px;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}.card-q{font-family:var(--disp);font-weight:600;font-size:1.5rem;line-height:1.25;letter-spacing:-.02em;text-wrap:balance;max-width:22ch}.card-a{font-family:var(--disp);font-weight:700;font-size:2.2rem;letter-spacing:-.03em;color:var(--blue);line-height:1}.octave{width:100%;max-width:320px;height:auto}.octave .w{fill:#fbfaf6;stroke:#15140e;stroke-width:4}.octave .b{fill:#15140e}.octave .mark-w{fill:#1e38b0;stroke:#15140e;stroke-width:4}.octave .mark-b{fill:#1e38b0}.drill-note{color:var(--ink2);font-size:1rem;margin-top:12px}.profil{margin-top:22px;margin-bottom:26px}.profil-code{font-family:var(--mono);font-size:.78rem;color:var(--ink2);border:1px dashed var(--rule);border-radius:7px;padding:11px 13px;width:100%;text-align:left;min-height:46px}.profil-code b{color:var(--ink2);letter-spacing:.08em}.profil-form{border:1px solid var(--rule);border-radius:8px;padding:15px}.profil-aide{font-size:.95rem;color:var(--ink2);line-height:1.45}.profil-aide b{font-family:var(--mono);color:var(--ink);letter-spacing:.08em}.profil-row{display:flex;gap:10px;margin-top:12px;align-items:stretch}.profil-row .btn{flex:none;padding-inline:20px}.profil-row input{flex:1;min-height:46px;padding:10px 12px;border:1.5px solid var(--rule);border-radius:5px;font-family:var(--mono);font-size:.95rem;letter-spacing:.1em;background:var(--card);color:var(--ink)}.profil-msg{margin-top:10px;font-size:.9rem;color:var(--ink2)}.profil-fermer{margin-top:12px;font-size:.9rem;color:var(--ink2);text-decoration:underline;min-height:44px}.ecran-note{color:var(--ink2);font-size:1rem;margin-top:12px;line-height:1.5}.paquets{display:flex;flex-direction:column;gap:10px;margin-top:24px}.paquet{display:flex;align-items:center;gap:14px;text-align:left;width:100%;border:1.5px solid var(--rule);border-radius:9px;padding:16px 17px;min-height:74px;background:var(--card);transition:border-color .15s}.paquet:hover{border-color:var(--ink)}.paquet-t{font-size:1.05rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}.paquet-sub{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);font-weight:400;margin-bottom:4px}.paquet-cible{margin-left:auto;flex:none;font-family:var(--mono);font-size:.95rem;color:var(--ink2);border:1px solid var(--rule);border-radius:99px;padding:6px 12px}.paquet-cible.fini{border-color:var(--green);color:var(--green)}.cycle-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.cycle-pos{font-family:var(--mono);font-size:.8rem;color:var(--ink3);white-space:nowrap}.cycle-t{font-family:var(--disp);font-weight:600;font-size:1.9rem;letter-spacing:-.03em;line-height:1.1;margin-top:10px}.cycle-d{font-family:var(--mono);font-size:1.05rem;color:var(--ink2);margin-top:8px}.battements{display:flex;gap:10px;margin-top:22px}.battements i{flex:1;height:34px;border-radius:8px;background:var(--rule2);border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.8rem;font-style:normal;color:var(--ink3);transition:background .06s,color .06s,border-color .06s}.battements i.on{background:var(--rule);color:var(--ink);border-color:var(--ink3)}.battements i.on.fort{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tempo{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:26px}.tempo-b{min-width:56px;min-height:52px;border:1.5px solid var(--rule);border-radius:6px;font-family:var(--mono);font-size:1rem;color:var(--ink2)}.tempo-b:hover{border-color:var(--ink);color:var(--ink)}.tempo-v{font-family:var(--disp);font-weight:700;font-size:2.6rem;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}.tempo-v small{display:block;font-family:var(--mono);font-size:.62rem;font-weight:400;letter-spacing:.16em;color:var(--ink3);margin-top:5px;text-align:center}.cycle-plancher{margin-top:12px;font-size:.9rem;color:var(--green);text-align:center;line-height:1.4}.cycle-aide{margin-top:18px;font-size:.98rem;color:var(--ink2);line-height:1.5}.cycle .btn.wide{margin-top:22px}.ses-nom{font-family:var(--disp);font-weight:600;font-size:1.3rem;letter-spacing:-.025em;line-height:1.15;margin-top:6px}.ses-valid{margin-top:20px;border:1px solid var(--rule);border-radius:9px;padding:16px 17px;font-size:.97rem;color:var(--ink2);line-height:1.5}.ses-valid b{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);margin-bottom:7px}.ses-valid .btn{margin-top:14px;width:100%;border-color:var(--rule);color:var(--ink2)}.ses-valid .btn:hover{border-color:var(--ink);color:var(--ink)}.ses-valid.ouvert .btn{border-color:var(--green);color:var(--green)}.ses-valid.ouvert .btn:hover{background:var(--green);color:var(--paper)}.rep{margin-top:22px}.rep-son{margin-top:10px;font-size:.9rem;color:var(--ink3);line-height:1.5}.rep-son b{color:var(--ink2);font-weight:600}.rep-son .lien{min-height:44px;font-size:.88rem;display:inline-flex;align-items:center}.rep-note{font-size:.95rem;color:var(--ink2);line-height:1.45;margin-bottom:12px}.ecoute{display:flex;flex-direction:column;gap:8px;margin:10px 0 16px}.ecoute-video{width:100%;aspect-ratio:16/9;border:1px solid var(--rule);border-radius:8px;background:var(--rule2)}.ecoute-audio{width:100%}.ecoute-form{display:flex;flex-direction:column;gap:12px;margin:10px 0 18px}.lien.danger{color:var(--red);font-weight:600}.recherche{display:flex;align-items:center;gap:10px;margin-top:4px;border:1px solid var(--rule);border-radius:8px;padding:0 13px;height:48px;background:var(--card)}.recherche input{flex:1;min-width:0;border:none;background:none;font-family:var(--body);font-size:1rem;color:var(--ink);height:100%}.recherche input::placeholder{color:var(--ink3)}.recherche input:focus{outline:none}.recherche:focus-within{border-color:var(--ink)}.loupe{flex:none;width:15px;height:15px;border:1.7px solid var(--ink3);border-radius:99px;position:relative}.loupe:after{content:"";position:absolute;right:-5px;bottom:-4px;width:6px;height:1.7px;background:var(--ink3);transform:rotate(45deg)}.chip-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chip{font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;min-height:44px;border:1px solid var(--rule);border-radius:99px;padding:0 13px;color:var(--ink2);background:var(--card);display:inline-flex;align-items:center}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.rep-sec{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-top:22px;padding-bottom:6px;border-bottom:1.5px solid var(--ink)}.rep-sec b{color:var(--ink2);font-weight:400;flex:none}.rang{display:flex;flex-direction:column}.item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;min-height:58px;padding:12px 2px;border-bottom:1px solid var(--rule2);background:none}.item-co{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.item-t{font-size:1rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}.item-m{font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.item-ch{flex:none;width:9px;height:9px;margin-right:5px;border-right:1.7px solid var(--ink3);border-bottom:1.7px solid var(--ink3);transform:rotate(45deg);transition:transform .18s}.item.ouvert .item-ch{transform:rotate(-135deg)}.item.ouvert{border-bottom-color:transparent}.fiche{border:1.5px solid var(--ink);border-radius:11px;padding:14px;background:var(--card);display:flex;flex-direction:column;gap:11px;margin:14px 0}.fiche.dans-liste{margin:0 0 10px}.fiche-et{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}.fiche-t{font-size:1.2rem;font-weight:700;letter-spacing:-.02em;line-height:1.18}.fiche-ref{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--ink3);line-height:1.45}.fiche-note{font-size:.88rem;color:var(--ink2);line-height:1.45}.fiche-sans{font-size:.88rem;color:var(--ink2);line-height:1.45;border-left:2px solid var(--rule);padding-left:11px}.fiche-deja{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--green);min-height:44px;display:flex;align-items:center}.son-lg{font-family:var(--mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);margin-top:2px}.sons{display:flex;flex-direction:column;gap:1px;background:var(--rule2);border:1px solid var(--rule);border-radius:8px;overflow:hidden}.son{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 12px;min-height:56px;background:var(--card)}.son-ic{flex:none;width:28px;height:28px;border-radius:99px;border:1.6px solid var(--ink2);display:flex;align-items:center;justify-content:center}.son-ic:after{content:"";border-left:9px solid var(--ink2);border-top:5.5px solid transparent;border-bottom:5.5px solid transparent;margin-left:2px}.son-co{display:flex;flex-direction:column;min-width:0;flex:1}.son-n{font-size:.97rem;font-weight:600;letter-spacing:-.01em;line-height:1.2}.son-d{font-family:var(--mono);font-size:.63rem;letter-spacing:.04em;color:var(--ink3);margin-top:3px;line-height:1.35}.son.joue{background:var(--green-w)}.son.joue .son-ic{border-color:var(--green);background:var(--green)}.son.joue .son-ic:after{border:none;width:9px;height:10px;background:var(--paper);margin:0;border-radius:1px}.son.joue .son-n{color:var(--green)}.onde{flex:none;display:flex;align-items:flex-end;gap:2px;height:16px}.onde u{width:2.5px;background:var(--green);border-radius:1px}.rep-vide{margin-top:22px;font-size:.95rem;color:var(--ink2);line-height:1.5}.nowrap{white-space:nowrap}.profil-actions{display:flex;flex-direction:column;gap:8px}.profil-code.discret{font-size:.72rem;color:var(--ink3);border-style:dotted}.profil-row input:disabled,.profil-row .btn:disabled{opacity:.55}.topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px 0}.topbar-nom{font-family:var(--disp);font-weight:700;font-size:1.15rem;letter-spacing:-.02em}.topbar-compte{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink2)}.initiale{width:22px;height:22px;border-radius:99px;flex:none;display:grid;place-items:center;background:var(--green);color:#fff;font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:0;line-height:1}.topbar+.screen{padding-top:18px}.form{margin-top:24px;display:flex;flex-direction:column;gap:16px}.form-aide{color:var(--ink2);font-size:1rem;line-height:1.5}.champ{display:flex;flex-direction:column;gap:7px}.champ>span{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3)}.champ input{min-height:52px;padding:12px 14px;border:1.5px solid var(--rule);border-radius:6px;font-family:var(--body);font-size:1.05rem;background:var(--card);color:var(--ink)}.champ input:focus{border-color:var(--blue);outline:none}.form-msg{margin-top:16px;font-size:.97rem;color:var(--ink2);line-height:1.45}.form-msg.err{color:var(--red)}.lien{font-size:.95rem;color:var(--ink2);text-decoration:underline;min-height:48px;align-self:flex-start}.lien-bas{margin-top:30px}.btn.pri.wide:disabled{opacity:.45}.compte-etat{margin-top:22px;display:flex;flex-direction:column;gap:10px}.compte-etat p{font-size:1rem}.compte-etat b{display:inline-block;min-width:96px;font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);font-weight:400}.compte-note{color:var(--ink2);font-size:.97rem;line-height:1.5}.compte-note b.mono{min-width:0;font-size:.95rem;letter-spacing:.1em;color:var(--ink);text-transform:none}.compte-h2{font-family:var(--disp);font-weight:600;font-size:1.25rem;letter-spacing:-.02em;margin-top:32px;padding-top:18px;border-top:1px solid var(--rule)}.compte-etat .btn,.compte-h2+.compte-note+.btn{margin-top:8px}.compte-bas{margin-top:36px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}.compte-bas .btn{width:100%}@media(max-height:700px){.card{min-height:104px;margin-top:16px;margin-bottom:14px;padding:16px 18px}.card .octave{max-width:210px}.palette{gap:6px;margin-top:16px}.palette-b{min-height:52px;font-size:1.15rem}.choix{gap:8px;margin-top:16px}.choix-b{min-height:52px}.drill-haut{display:flex;align-items:center;gap:12px;margin-bottom:4px;position:sticky;top:0;z-index:5;background:var(--paper);padding-top:2px;padding-bottom:2px}.drill-haut .eyebrow{flex:1;min-width:0;line-height:1.4}.drill-compte{font-family:var(--mono);font-size:.76rem;color:var(--ink3);font-variant-numeric:tabular-nums}.drill-haut .drill-quit{flex:none;min-height:48px;padding:0 2px 0 12px;margin:0;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);text-decoration:none}.drill-haut .drill-quit:hover{color:var(--ink);text-decoration:underline}.drill-quit{margin-top:10px}.note-gros{font-size:3rem}.note-attente{margin-top:14px;min-height:44px}.accord-gros{margin-top:16px}.accord-gros b{font-size:2.6rem}.chant-ordre{margin-top:10px;min-height:22px}.battements{margin-top:14px}.battements i{height:28px}.grille-verdict{margin-top:14px}.chant-travail .tempo{margin-top:16px;margin-bottom:12px}.chant-etat{margin-top:12px}}.rep-retour{min-height:44px;display:inline-flex;align-items:center;font-size:.9rem;margin-top:6px}.ses-chrono.pause b,.ses-chrono.pause span{color:var(--ink3)}.temps-16{display:flex;gap:3px;margin:16px 0 4px;align-items:flex-end;height:26px}.temps-16 i{flex:1;min-width:0;height:16px;border-radius:2px;background:var(--rule2);border:1px solid transparent;transition:background .12s,height .12s}.temps-16 i.fort{height:26px}.temps-16 i.juste{background:var(--green)}.temps-16 i.tard{background:var(--green);opacity:.42}.temps-16 i.faux{background:var(--red)}.temps-16 i.manque{background:var(--rule)}.temps-16 i.attente{background:var(--rule2)}.temps-16 i.ici{border-color:var(--ink)}.cycle-mesure{margin-top:12px;font-size:.88rem;color:var(--ink2);line-height:1.45}.temps-16 i.avant{background:var(--rule2);opacity:.45}.temps-16 i.tenu{background:var(--green);opacity:.22}.cycle-passer{min-height:44px;display:inline-flex;align-items:center;font-size:.88rem;margin-top:4px}.ej-reprendre{align-self:flex-end;min-height:44px;display:inline-flex;align-items:center;font-size:.8rem}.passage-fait{margin-top:14px;border:1.5px solid var(--green);border-radius:10px;background:var(--green-w);padding:14px;display:flex;flex-direction:column;gap:8px}.pf-t{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--green)}.pf-d{font-size:.92rem;color:var(--ink2);line-height:1.45}.passage-fait .btn.pri{margin-top:4px}.ses-deja{margin-top:10px;font-size:.9rem;color:var(--ink2);line-height:1.45;border-left:2px solid var(--green);padding-left:11px}.ses-valid .btn.ghost+.btn.ghost{margin-top:8px}.drill-son{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--rule);border-radius:99px;background:var(--card);font-size:1rem;color:var(--ink3);margin-left:auto;margin-right:8px;line-height:1}.drill-son.on{border-color:var(--green);color:var(--green)}.verdict-aide{margin-top:9px;font-size:.9rem;color:var(--ink2);line-height:1.5;border-left:2px solid var(--blue);padding-left:11px;text-align:left}.drill-palier{margin-top:14px;border:1.5px solid var(--green);border-radius:10px;background:var(--green-w);padding:13px;display:flex;flex-direction:column;gap:7px}.dp-t{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--green)}.dp-d{font-size:.92rem;color:var(--ink2);line-height:1.5}.dp-d b{color:var(--ink);font-weight:600}.motif{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.motif span{font-family:var(--mono);font-size:1.25rem;letter-spacing:.02em;color:var(--ink3);border:1.5px solid var(--rule);border-radius:8px;padding:8px 13px;min-width:2.6em;text-align:center;transition:background .1s,color .1s,border-color .1s}.motif span.on{background:var(--green);border-color:var(--green);color:var(--paper);font-weight:600}.suite-vive{display:flex;align-items:baseline;gap:10px;margin-top:16px;flex-wrap:wrap}.suite-vive b{font-size:3.2rem;font-weight:700;letter-spacing:-.04em;line-height:.9;color:var(--green);font-variant-numeric:tabular-nums}.suite-vive span{font-size:1rem;color:var(--ink2)}.suite-vive em{font-style:normal;font-family:var(--mono);font-size:1.1rem;color:var(--ink);margin-left:auto}.bpm-vif{font-family:var(--mono);font-size:1.5rem;color:var(--ink2);margin:14px 0 12px;font-variant-numeric:tabular-nums}.bpm-vif small{font-size:.62rem;letter-spacing:.14em;margin-left:7px;color:var(--ink3)}.cycle-alerte{margin-top:12px;font-size:.92rem;color:var(--red);line-height:1.45;border-left:2px solid var(--red);padding-left:11px}.pf-auto{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.cycle-liens{display:flex;gap:18px;flex-wrap:wrap;margin-top:6px}.cycle-liens .lien{min-height:44px;display:inline-flex;align-items:center;font-size:.9rem}.cycle-liens .lien:disabled{opacity:.4}.cycle-plancher.sous{color:var(--ink2)}.cycle-plancher .lien{display:block;min-height:44px;font-size:.88rem;margin-top:2px}.pf-lab{font-family:var(--mono);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-top:4px}.pf-suite{font-family:var(--mono);font-size:1.45rem;color:var(--ink);letter-spacing:.02em;line-height:1.2}.cycle-main{font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:500}.cycle-tours{font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:3px}.ses-enchaine{margin-top:12px;border:1.5px solid var(--green);border-radius:9px;background:var(--green-w);padding:12px 13px;font-size:.92rem;color:var(--ink2);line-height:1.5}.ses-enchaine b{color:var(--green);font-weight:700}.bpm-vif b{font-family:var(--body);font-size:.88rem;font-weight:600;color:var(--green);margin-left:14px;letter-spacing:0}.passage-fait.rate{border-color:var(--red);background:#fdf0ee}.passage-fait.rate .pf-t{color:var(--red)}.cycle-mesure b{font-family:var(--mono);font-size:.82rem;margin-right:7px}.cycle-mesure b.ok{color:var(--green)}.cycle-mesure b.ko{color:var(--red)}.ry{margin-top:14px;border:1px solid var(--rule);border-radius:8px;padding:14px 15px;background:var(--card)}.ry-t{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.ry-chiffre{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:6px}.ry-chiffre b{font-family:var(--disp);font-size:1.7rem;font-weight:500;font-variant-numeric:tabular-nums}.ry-chiffre span{color:var(--ink2);font-size:.92rem}.ry-barres{position:relative;display:flex;align-items:flex-end;gap:4px;height:64px;margin-top:12px;border-bottom:1px solid var(--rule)}.ry-barres i{flex:1;max-width:22px;background:var(--ink2);border-radius:2px 2px 0 0}.ry-barres i.ok{background:var(--green)}.ry-seuil{position:absolute;left:0;right:0;border-top:1px dashed var(--green)}.garde{position:fixed;left:16px;right:16px;bottom:calc(var(--tabbar-h) + 12px);z-index:50;max-width:560px;margin:0 auto;padding:13px 15px;border-radius:8px;background:var(--ink);color:var(--paper);display:flex;gap:12px;align-items:center;box-shadow:0 6px 24px #15140e2e}.garde p{flex:1;font-size:.95rem;line-height:1.4}.garde .lien{color:var(--paper);min-height:44px;flex:none}.chant-mesure.ok b{color:var(--green)}.accomp-paroles{margin-top:20px;display:flex;flex-direction:column;gap:4px;min-height:7.5em}.accomp-l{font-size:1.08rem;line-height:1.4;color:var(--ink3);transition:color .2s}.accomp-l.passe{color:var(--ink2)}.accomp-l.ici{color:var(--ink);font-weight:600}.accomp-c{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-top:6px}.accomp-grille{flex-wrap:wrap}.accomp-grille i{flex:0 0 calc(25% - 6px)}@media(prefers-reduced-motion:reduce){.accomp-l{transition:none}}.accomp .grille-verdict{margin-bottom:20px}.portee{width:100%;max-width:320px;height:auto;display:block;margin:0 auto 6px}.portee-l{stroke:var(--ink2);stroke-width:1.2}.portee-n{fill:var(--ink)}.portee-t{stroke:var(--ink);stroke-width:1.6}.portee-cle{font-family:var(--mono);font-size:11px;letter-spacing:.06em;fill:var(--ink3);text-transform:uppercase}.card-reecoute{min-height:44px;margin-top:6px}.rythme{width:100%;max-width:420px;height:auto;display:block;margin:14px auto 4px}.rythme .ry-sol{stroke:var(--rule);stroke-width:1}.rythme .ry-num{font-family:var(--mono);font-size:10px;fill:var(--ink3)}.rythme .ry-n ellipse{fill:var(--ink);stroke:var(--ink);stroke-width:1.4}.rythme .ry-n ellipse.creuse{fill:var(--paper)}.rythme .ry-n line,.rythme .ry-crochet{stroke:var(--ink);stroke-width:1.6;fill:none}.rythme .ry-n circle,.rythme .ry-barre{fill:var(--ink)}.rythme .ry-soupir{stroke:var(--ink);stroke-width:2.2;fill:none;stroke-linejoin:round}.rythme .ry-n.juste ellipse,.rythme .ry-n.juste line{stroke:var(--green)}.rythme .ry-n.juste ellipse:not(.creuse){fill:var(--green)}.rythme .ry-n.manque ellipse,.rythme .ry-n.tot ellipse,.rythme .ry-n.tard ellipse,.rythme .ry-n.manque line,.rythme .ry-n.tot line,.rythme .ry-n.tard line{stroke:var(--red)}.rythme .ry-n.manque ellipse:not(.creuse),.rythme .ry-n.tot ellipse:not(.creuse),.rythme .ry-n.tard ellipse:not(.creuse){fill:var(--red)}.lr-liste{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.lr-chip{min-width:44px;min-height:44px;border:1px solid var(--rule);border-radius:6px;font-family:var(--mono);color:var(--ink2);background:var(--card)}.lr-chip.ok{border-color:var(--green);color:var(--green);background:var(--green-w)}.lr-chip.ici{outline:2px solid var(--ink);outline-offset:1px}.lr-pad{width:100%;min-height:120px;margin:16px 0;border:1.5px solid var(--ink);border-radius:10px;background:var(--card);font-size:1.05rem;font-weight:600;color:var(--ink);touch-action:manipulation;-webkit-user-select:none;user-select:none}.lr-pad:disabled{border-color:var(--rule);color:var(--ink3)}.lr-pad:active:not(:disabled){background:var(--rule2)}.partition{width:100%;max-width:520px;margin:6px auto;color:var(--ink)}.partition svg{display:block;max-width:100%;height:auto}.partition-erreur{font-size:.9rem;color:var(--ink3)}.portee-carte{text-align:center}.portee-cle-txt{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.portee-carte .partition{max-width:260px}.lecon{display:flex;flex-direction:column;gap:6px;padding-bottom:24px}.lecon-bloc{margin-top:18px}.lecon-h{font-family:var(--disp);font-size:1.25rem;font-weight:600;line-height:1.25;text-wrap:balance}.lecon-p{margin-top:6px;color:var(--ink2);line-height:1.55;max-width:65ch}.lecon-p b{color:var(--ink)}.lecon-table{overflow-x:auto;margin-top:8px}.lecon-table table{border-collapse:collapse;width:100%;font-size:.92rem}.lecon-table th{text-align:left;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:6px 8px;border-bottom:1.5px solid var(--ink)}.lecon-table td{padding:8px;border-bottom:1px solid var(--rule2);vertical-align:top;color:var(--ink2)}.lecon-table td b{color:var(--ink)}.comprendre{display:flex;flex-direction:column;gap:8px;margin-top:20px}.comprendre-h{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}.lecon-pas{display:flex;gap:5px;margin-top:10px}.lecon-pas i{flex:1;height:4px;border-radius:2px;background:var(--rule2)}.lecon-pas i.vu{background:var(--ink3)}.lecon-pas i.ici{background:var(--ink)}.lecon-nav{display:flex;gap:10px;margin-top:22px}.lecon-nav .btn{flex:1;min-height:48px}.tests-bilan{margin-top:14px;font-size:1rem;color:var(--ink2)}.tests-bilan b{font-family:var(--disp);font-size:1.5rem;color:var(--ink)}.tests{list-style:none;display:flex;flex-direction:column;gap:10px;margin:14px 0 22px}.test{border:1px solid var(--rule);border-radius:8px;padding:13px 14px;background:var(--card)}.test.ok{border-color:var(--green);background:var(--green-w)}.test-haut{display:flex;justify-content:space-between;align-items:center;gap:10px}.test-t{font-weight:600}.test-d{margin-top:4px;color:var(--ink2);font-size:.95rem;line-height:1.45}.test-points{display:flex;gap:5px;flex:none}.test-points i{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--ink3)}.test-points i.on{background:var(--green);border-color:var(--green)}.test-actions{display:flex;gap:8px;margin-top:10px}.test-actions .btn{flex:1;min-height:44px}.test-fait{margin-top:8px;color:var(--green);font-size:.92rem;display:flex;gap:12px;align-items:center}.today-tests{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:52px;margin-top:12px;padding:12px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--card);text-align:left}.today-tests b{font-family:var(--mono);font-size:.9rem}.epreuve{display:flex;flex-direction:column;gap:10px}.epreuve-critere{color:var(--ink2);line-height:1.5;border-left:3px solid var(--ink);padding-left:10px}.epreuve-compte{font-family:var(--mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-top:12px}.epreuve-gros{font-family:var(--disp);font-size:3.6rem;font-weight:700;line-height:1.05;letter-spacing:-.03em;transition:color .15s}.epreuve-gros.ok{color:var(--green)}.epreuve-gros.non{color:var(--red)}.epreuve-aide{color:var(--ink2)}.test-resume{margin-top:6px;font-size:.9rem;color:var(--ink2)}.test-resume.non{color:var(--red)}.clavier-lecon{width:100%;max-width:420px;height:auto;display:block;margin:10px auto 0}.clavier-lecon .cl-w{fill:#fff;stroke:var(--ink3);stroke-width:2}.clavier-lecon .cl-w.on{fill:var(--green-w);stroke:var(--green);stroke-width:4}.clavier-lecon .cl-n{fill:var(--ink)}.clavier-lecon .cl-n.on{fill:var(--green)}.clavier-lecon .cl-nom{font-family:var(--body);font-size:26px;fill:var(--ink3)}.clavier-lecon .cl-etiq{font-family:var(--body);font-size:30px;font-weight:700;fill:var(--green)}.annonce{display:block;width:100%;text-align:left;margin:12px 0 4px;cursor:pointer}.chant-choisi{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;color:var(--ink2)}.chant-choisi .lien{min-height:44px}.clavier-lecon.deux{max-width:560px}.clavier-lecon.deux .cl-nom{font-size:40px}.clavier-lecon.deux .cl-etiq{font-size:52px}.temps-16 i.ici{border:2px solid var(--ink);height:26px}.battements.vifs{margin-top:12px}.motif span.joue{transform:scale(1.08);box-shadow:0 0 0 3px var(--green-w)}.motif span{transition:transform .12s,box-shadow .12s}@media(prefers-reduced-motion:reduce){.motif span{transition:none}.motif span.joue{transform:none}}.grille-verdict.longue{flex-wrap:wrap}.grille-verdict.longue i{flex:0 0 calc(25% - 6px)}.choix-son{display:flex;gap:8px;margin-top:16px}.choix-son .chip{flex:1;min-height:44px}.lv-portee{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:12px 8px;min-height:120px}.lv-portee.prep{border-color:var(--blue)}.lv-portee .abcjs-note.lv-ici path,.lv-portee .abcjs-note.lv-ici{fill:var(--blue);stroke:var(--blue)}.lv-portee .abcjs-note.lv-juste path{fill:var(--green)}.lv-portee .abcjs-note.lv-faux path{fill:var(--red)}.lv-portee .abcjs-note.lv-cache{opacity:0;transition:opacity .15s}.lv-option{display:flex;gap:10px;align-items:center;min-height:44px;color:var(--ink2);font-size:.95rem}.lv-option input{width:22px;height:22px}.tp-mel{width:auto;padding:0 12px}.tp-departs .lr-chip{min-width:52px;width:auto;padding:0 10px}.tp-oreille{display:flex;flex-direction:column;gap:8px}.choix-b.on{border-color:var(--ink);background:var(--rule2)}.ma-carte{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.ma-maison{font-family:var(--mono);font-size:.8rem;color:var(--ink3)}.ma-question{font-size:1.25rem;font-weight:600}.ma-boutons{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:8px}.ma-boutons.deux{grid-template-columns:1fr 1fr}.ma-boutons .btn{min-height:56px;font-size:1.15rem}.ma-actions{display:flex;gap:8px;flex-wrap:wrap}.ma-actions .btn{flex:1}.ma-perso summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.ma-perso ul{padding-left:18px;color:var(--ink2);display:flex;flex-direction:column;gap:4px}
