:root{--fond:#f4f7ec;--surface:#fff;--texte:#0f3d2e;--doux:#2c6b54;--bord:#c9e3d0;--sable:#e3f0e6;--accent:#16553f;--lime:#d8f03c;--sur-lime:#0f3d2e;--menthe:#9fd3b4;--mangue:#f2a33a;--tomate:#e85d4a;--erreur:#b4413a;--avert:#b4600f;--fond-avert:#fff1d6;--ombre:0 10px 24px #0f3d2e29;--carte-sombre-fond:#0f3d2e;--carte-sombre-texte:#f4f7ec;--rayon:20px;--police:"Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--police-titre:"Bricolage Grotesque", var(--police);font-family:var(--police);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--fond:#0f3d2e;--surface:#16553f;--texte:#f4f7ec;--doux:#9fd3b4;--bord:#2c6b54;--sable:#2c6b54;--accent:#d8f03c;--lime:#d8f03c;--sur-lime:#0f3d2e;--erreur:#f2b8b5;--avert:#f2a33a;--fond-avert:#3d3222;--ombre:0 12px 28px #0000004d;--carte-sombre-fond:#082419;--carte-sombre-texte:#f4f7ec}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--fond);color:var(--texte);-webkit-font-smoothing:antialiased;margin:0;font-weight:600;line-height:1.4}h1{font-family:var(--police-titre);letter-spacing:-.03em;margin:0;font-size:1.9rem;font-weight:800;line-height:1}h2{letter-spacing:.1em;text-transform:uppercase;color:var(--doux);margin:1.5rem 0 .6rem;font-size:.75rem;font-weight:800}h3{font-family:var(--police-titre);letter-spacing:-.01em;margin:0;font-size:1.1rem;font-weight:700}p{margin:0 0 .75rem}a{color:var(--accent);font-weight:800}.sous-titre{color:var(--doux);margin:.25rem 0 0;font-size:.9rem;font-weight:700}.etat,.vide{color:var(--doux)}.erreur{color:var(--erreur);font-weight:700}.succes{color:var(--accent)}.avertissement{color:var(--avert);background:var(--fond-avert);border-radius:14px;padding:.75rem 1rem;font-size:.9rem}.note{color:var(--doux);margin-top:1.5rem;font-size:.85rem;line-height:1.5}.note button.lien{font-size:inherit;display:inline}.centre{max-width:24rem;padding:calc(4rem + env(safe-area-inset-top)) 1.25rem 3rem;margin:0 auto}form{flex-direction:column;gap:.5rem;margin-top:1.5rem;display:flex}label{color:var(--doux);font-size:.85rem;font-weight:700}input,select,textarea{font:inherit;border:2px solid var(--bord);background:var(--surface);color:var(--texte);border-radius:14px;padding:.8rem .95rem;font-size:1rem;font-weight:700}input:focus,select:focus{outline:3px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:1px;border-color:var(--accent)}input[readonly]{color:var(--doux)}button{font:inherit;background:var(--lime);color:var(--sur-lime);cursor:pointer;box-shadow:var(--ombre);border:0;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.95rem 1.4rem;font-size:1rem;font-weight:800;display:inline-flex}button:disabled{opacity:.55;cursor:default;box-shadow:none}button.secondaire{background:var(--surface);color:var(--texte);border:2px solid var(--bord);box-shadow:none}button.sombre{background:var(--texte);color:var(--fond);box-shadow:none}button.lien{color:var(--doux);box-shadow:none;background:0 0;border-radius:0;padding:0;font-size:.85rem;font-weight:800;text-decoration:underline}button.lien.actif{color:var(--accent)}form button{margin-top:.5rem}.app{max-width:40rem;padding:calc(1.25rem + env(safe-area-inset-top)) 1.25rem calc(9.5rem + env(safe-area-inset-bottom));margin:0 auto}.app-tete{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.salut{color:var(--doux);margin:0 0 .15rem;font-size:.9rem;font-weight:700}.pastille{background:var(--surface);border:2px solid var(--bord);font-family:var(--police-titre);letter-spacing:-.02em;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .8rem .45rem .5rem;font-size:1.1rem;font-weight:800;display:inline-flex}.pastille .rond{background:var(--lime);width:1.6rem;height:1.6rem;color:var(--sur-lime);border-radius:50%;place-items:center;display:grid}.pastille.eteinte .rond{background:var(--sable);color:var(--doux)}.onglets{z-index:20;background:var(--surface);border:2px solid var(--bord);max-width:40rem;padding:.6rem .5rem calc(.6rem + env(safe-area-inset-bottom));border-bottom:0;border-radius:24px 24px 0 0;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.onglet{box-shadow:none;color:var(--doux);background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:.2rem;padding:.3rem 0;font-size:.7rem;font-weight:700;display:flex}.onglet svg{width:1.4rem;height:1.4rem}.onglet.actif{color:var(--texte);font-weight:800}.fab{left:50%;bottom:calc(5.4rem + env(safe-area-inset-bottom));z-index:21;white-space:nowrap;padding:1.05rem 1.7rem;font-size:1rem;position:fixed;transform:translate(-50%)}.fab svg{width:1.25rem;height:1.25rem}.carte{background:var(--surface);border:2px solid var(--bord);border-radius:var(--rayon);flex-direction:column;gap:.5rem;padding:1rem 1.1rem;display:flex}.carte-sombre{background:var(--carte-sombre-fond);color:var(--carte-sombre-texte);border-color:var(--carte-sombre-fond)}.carte-sombre .etiquette,.carte-sombre .sous-titre{color:var(--menthe)}.carte-sombre .valeur{color:#d8f03c}.carte-sombre strong{color:var(--carte-sombre-texte)}.carte+.carte,.grille-3+.carte,.carte+.grille-3{margin-top:.75rem}.grille-3 .carte{margin-top:0}.grille-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.grille-3 .carte{gap:.1rem;padding:.8rem .9rem}.valeur{font-family:var(--police-titre);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800;line-height:1.05}.valeur.grande{letter-spacing:-.035em;font-size:3.2rem;line-height:.95}.valeur.juste{color:var(--accent)}.etiquette{color:var(--doux);font-size:.75rem;font-weight:700}.section-titre{justify-content:space-between;align-items:baseline;margin:1.5rem 0 .6rem;display:flex}.section-titre h2{margin:0}.section-titre button.lien{color:var(--accent);font-size:.85rem;text-decoration:none}.serie-tete{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.serie-tete strong{font-weight:800}.serie-tete span{color:var(--doux);font-size:.8rem;font-weight:700}.jalons{gap:.5rem;display:flex}.jalon{color:var(--doux);text-align:center;flex-direction:column;flex:1;align-items:center;gap:.3rem;font-size:.65rem;font-weight:700;display:flex}.jalon .rond{aspect-ratio:1;border:2px dashed var(--menthe);border-radius:50%;place-items:center;width:100%;display:grid}.jalon.fait .rond{background:var(--lime);color:var(--sur-lime);border:0}.jalon.courante{color:var(--texte);font-weight:800}.jalon.courante.fait .rond{box-shadow:0 0 0 3px color-mix(in srgb, var(--lime) 45%, transparent)}.jalon svg{width:45%;height:45%}ul{margin:0;padding:0;list-style:none}.recus{flex-direction:column;gap:.6rem;display:flex}.recu{background:var(--surface);border:2px solid var(--bord);border-radius:var(--rayon);grid-template-columns:auto 1fr auto;align-items:center;gap:.3rem .8rem;padding:.7rem .9rem;display:grid}.avatar{border-radius:50%;flex-shrink:0;grid-row:span 2;width:2.6rem;height:2.6rem}.avatar.mangue{background:var(--mangue)}.avatar.menthe{background:var(--menthe);border-radius:50% 50% 50% 8px}.avatar.tomate{background:var(--tomate)}.avatar.sable{background:var(--sable)}.avatar.lime{background:var(--lime);border-radius:8px 50% 50%}.recu-nom{font-family:var(--police-titre);letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.recu-sous{color:var(--doux);font-size:.78rem;font-weight:700}.recu-montant{font-variant-numeric:tabular-nums;text-align:right;font-size:1.05rem;font-weight:800}.recu-etat{text-align:right;justify-content:flex-end;align-items:center;gap:.2rem;font-size:.72rem;font-weight:800;display:flex}.recu-etat.juste{color:var(--accent)}.recu-etat.ecart{color:var(--tomate)}.recu-etat svg{width:.8rem;height:.8rem}.recu .supprimer{grid-column:2/-1;justify-self:start;font-size:.72rem}.parts{flex-direction:column;display:flex}.part{border-bottom:1px solid var(--sable);grid-template-columns:auto 1fr;align-items:center;gap:.3rem .8rem;padding:.7rem 0;display:grid}.part:last-child{border-bottom:0;padding-bottom:.2rem}.part:first-child{padding-top:.2rem}.part .avatar{grid-row:span 3;width:2.2rem;height:2.2rem}.part-tete{justify-content:space-between;align-items:baseline;display:flex}.part-tete .pct{font-variant-numeric:tabular-nums;font-weight:800}.barre{background:var(--sable);border-radius:999px;height:.5rem;overflow:hidden}.barre span{background:var(--doux);border-radius:999px;height:100%;display:block}.barre span.mangue{background:var(--mangue)}.barre span.menthe{background:var(--menthe)}.barre span.tomate{background:var(--tomate)}.barre span.lime{background:var(--lime)}.barre span.sable{background:var(--doux)}.part-sous{color:var(--doux);font-size:.75rem;font-weight:700}.info{color:var(--doux);align-items:center;gap:.7rem;font-size:.85rem;line-height:1.35;display:flex}.info .rond{background:var(--lime);width:2rem;height:2rem;color:var(--sur-lime);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.info svg{width:1rem;height:1rem}.toi .carte{gap:.8rem}.toi .ligne{justify-content:space-between;align-items:center;gap:1rem;display:flex}.toi .ligne+.ligne{border-top:1px solid var(--sable);padding-top:.8rem}.toi .ligne .valeur{font-size:1.1rem}.categories{flex-wrap:wrap;gap:.4rem;display:flex}.categories li{background:var(--sable);border-radius:999px;padding:.3rem .7rem;font-size:.8rem;font-weight:700}.panneau{max-width:24rem}.panneau h2{font-family:var(--police-titre);text-transform:none;letter-spacing:-.02em;color:var(--texte);margin-top:0;font-size:1.4rem}.actions{align-items:center;gap:1rem;display:flex}.actions button:not(.lien){padding:.6rem 1rem;font-size:.9rem}.scan{margin-top:.5rem}.scan-tete{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.scan-tete h2{color:var(--texte);font-family:var(--police-titre);text-transform:none;letter-spacing:-.02em;margin:0;font-size:1.4rem}.depot{background:var(--surface);border:2px dashed var(--bord);border-radius:var(--rayon);text-align:center;color:var(--doux);cursor:pointer;margin:1rem 0;padding:2rem 1rem;display:block}.depot input{display:none}.apercu{object-fit:contain;object-position:top;background:var(--surface);border:2px solid var(--bord);border-radius:14px;max-width:100%;max-height:38vh;margin-bottom:1rem;display:block}.scan>button.lire{width:100%}.camera{margin:1rem 0}.camera-ouvrir{width:100%;margin-top:1rem}.camera-vue{aspect-ratio:3/4;border-radius:var(--rayon);background:#000;width:100%;position:relative;overflow:hidden}.camera-vue video{object-fit:contain;width:100%;height:100%;display:block}.camera-cadre{border:3px solid var(--mangue);pointer-events:none;border-radius:4px;transition:left .12s,top .12s,width .12s,height .12s,border-color .2s;position:absolute;box-shadow:0 0 0 9999px #00000059}.camera-cadre.ok{border-color:var(--lime)}.camera-conseil{color:var(--avert);margin:.75rem 0;font-weight:700}.camera-conseil.ok{color:var(--accent)}.camera-conseil small{color:var(--doux);margin-top:.25rem;font-weight:600;display:block}.camera-actions{align-items:center;gap:1rem;display:flex}.camera-actions button:not(.lien){flex:1}.camera-actions button.lien.actif{color:var(--accent)}.champs{grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0;display:grid}.champs label{flex-direction:column;gap:.25rem;display:flex}select{padding:.5rem .7rem;font-size:.9rem}.bilan{font-variant-numeric:tabular-nums;border-radius:14px;justify-content:space-between;gap:1rem;padding:.8rem 1rem;font-size:.9rem;font-weight:800;display:flex}.bilan.ok{background:color-mix(in srgb, var(--lime) 35%, var(--surface));color:var(--texte)}.bilan.pas-ok{background:color-mix(in srgb, var(--tomate) 14%, var(--surface));color:var(--erreur)}.avertissements-ocr{color:var(--avert);margin:.75rem 0;font-size:.85rem}.avertissements-ocr li{margin-left:1.2rem;list-style:outside}.lignes{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.85rem}.lignes th{text-align:left;color:var(--doux);letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid var(--bord);padding-bottom:.4rem;font-size:.7rem;font-weight:800}.lignes td{border-bottom:1px solid var(--sable);padding:.3rem .25rem .3rem 0}.lignes input[type=text],.lignes input:not([type]){width:100%}.lignes input[type=number]{text-align:right;width:6rem}.lignes input,.lignes select{border-radius:10px;padding:.4rem .5rem;font-size:.85rem}.lignes input.a-corriger{border-color:var(--mangue);background:var(--fond-avert)}select.reference{border-color:var(--accent)}.brut{color:var(--doux);margin:1rem 0;font-size:.8rem}.brut summary{cursor:pointer;font-weight:800}.brut pre{background:var(--surface);border:2px solid var(--bord);border-radius:14px;max-height:24rem;padding:.75rem;font-size:.75rem;overflow-x:auto}@media (width<=34rem){.champs{grid-template-columns:1fr}.lignes{font-size:.8rem}.app{padding-left:1rem;padding-right:1rem}}.retour{align-items:center;gap:.2rem;margin-bottom:.75rem;font-size:.9rem;text-decoration:none;display:inline-flex}.retour svg{width:1.1rem;height:1.1rem}.recu{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;box-shadow:none}.recu:disabled{opacity:1}.detail-tete{align-items:center;gap:.9rem;margin-bottom:1rem;display:flex}.detail-tete .avatar{width:3rem;height:3rem}.detail-tete .qui{flex:1;min-width:0}.detail-tete .qui h1{font-size:1.6rem}.detail-tete .combien{text-align:right}.detail-tete .combien .valeur{font-size:1.6rem}.photo-recu{border-radius:var(--rayon);border:2px solid var(--bord);width:100%;margin-top:.75rem;display:block}.lignes-recu li{border-bottom:1px solid var(--sable);grid-template-columns:1fr auto;align-items:baseline;gap:0 .8rem;padding:.55rem 0;display:grid}.lignes-recu li:last-child{border-bottom:0}.lignes-recu .quoi{font-size:.92rem;font-weight:800}.lignes-recu .classe{color:var(--doux);grid-column:1;font-size:.75rem;font-weight:700}.lignes-recu .montant{font-variant-numeric:tabular-nums;grid-row:span 2;align-self:center;font-weight:800}.lignes-recu li.hors .quoi{color:var(--doux);font-weight:700}.lignes-recu li.rabais .montant{color:var(--accent)}.segments{background:var(--sable);border-radius:999px;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;margin:.75rem 0;padding:.25rem;display:grid}.segments button{box-shadow:none;color:var(--doux);background:0 0;border-radius:999px;padding:.5rem .3rem;font-size:.8rem}.segments button.actif{background:var(--surface);color:var(--texte)}.nav-periode{justify-content:space-between;align-items:center;margin:.25rem 0 .75rem;display:flex}.nav-periode strong{font-family:var(--police-titre);letter-spacing:-.01em;font-size:1.1rem}.nav-periode button{background:var(--surface);border:2px solid var(--bord);color:var(--texte);box-shadow:none;width:2.6rem;height:2.6rem;padding:0}.nav-periode button svg{width:1.1rem;height:1.1rem}.jauge{background:var(--sable);border-radius:999px;height:.7rem;margin-top:.4rem;overflow:hidden}.jauge span{background:var(--lime);border-radius:999px;height:100%;display:block}.carte-sombre .jauge{background:color-mix(in srgb, var(--carte-sombre-texte) 20%, transparent)}.carte-sombre .jauge span{background:#d8f03c}.categories button{background:var(--sable);color:var(--texte);box-shadow:none;border-radius:999px;padding:.4rem .8rem;font-size:.8rem;font-weight:700}.lignes-recu .classe{justify-self:start;text-decoration:none}.icat{background:var(--sable);width:1.7rem;height:1.7rem;color:var(--texte);border-radius:50%;flex-shrink:0;place-items:center;display:inline-grid}.icat svg{width:1.05rem;height:1.05rem}.icat.grande{width:3rem;height:3rem}.icat.grande svg{width:1.7rem;height:1.7rem}.icat.petite{width:1.3rem;height:1.3rem;color:var(--doux);background:0 0}.icat.petite svg{width:1.05rem;height:1.05rem}.carte-sombre .icat{background:color-mix(in srgb, var(--carte-sombre-texte) 20%, transparent);color:#d8f03c}.categories li button{align-items:center;gap:.4rem;padding-left:.35rem;display:inline-flex}.lignes-recu .classe{align-items:center;gap:.3rem;display:inline-flex}.part{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;box-shadow:none;background:0 0;border-radius:0}.part:disabled{opacity:1}.parts>li+li .part{border-top:1px solid var(--sable)}.valeur.pourcent{font-size:3.6rem}.scan .retour{margin-bottom:.5rem}.scan-resume{justify-content:space-between;align-items:baseline;gap:.6rem;font-size:.8rem;font-weight:800;display:flex}.scan-resume .a-verifier{color:var(--avert)}.scan-resume .ok{color:var(--accent)}.barre.progression span.reste{background:var(--mangue)}.barre.progression{display:flex}.barre.progression span{border-radius:0}.barre.progression span:first-child{border-radius:999px 0 0 999px}.barre.progression span:last-child{border-radius:0 999px 999px 0}.verif{background:var(--fond-avert);border:2px solid var(--mangue);border-radius:var(--rayon);flex-direction:column;gap:.6rem;padding:.8rem .9rem;display:flex}.verif+.verif{margin-top:.6rem}.verif .quoi{align-items:center;gap:.6rem;display:flex}.verif .quoi .rond{border:2px dashed var(--avert);border-radius:50%;flex-shrink:0;width:2rem;height:2rem}.verif .quoi input{flex:1;min-width:0;padding:.5rem .7rem;font-size:.92rem}.verif .quoi .montant{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.verif .pourquoi{color:var(--avert);font-size:.8rem;font-weight:700}.verif .choix{align-items:center;gap:.5rem;display:flex}.verif .choix select{flex:1;min-width:0;padding:.55rem .7rem;font-size:.9rem}.verif .choix button{white-space:nowrap;padding:.6rem .9rem;font-size:.9rem}.lignes-edit{flex-direction:column;display:flex}.lignes-edit li{border-bottom:1px solid var(--sable);grid-template-columns:1fr 5.4rem;gap:.35rem .5rem;padding:.6rem 0;display:grid}.lignes-edit li:last-child{border-bottom:0}.lignes-edit input,.lignes-edit select{border-radius:10px;padding:.45rem .6rem;font-size:.88rem}.lignes-edit .desc{grid-column:1}.lignes-edit .montant{text-align:right;grid-column:2}.lignes-edit .sous{grid-column:1/-1;align-items:center;gap:.5rem;display:flex}.lignes-edit .sous select{flex:1;min-width:0}.lignes-edit .sous .lien{white-space:nowrap;font-size:.75rem}.lignes-edit li.hors{opacity:.75}.lignes-edit .hors-toggle{color:var(--doux);white-space:nowrap;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;display:inline-flex}.lignes-edit .hors-toggle input{width:1rem;height:1rem;margin:0;padding:0}.bilan{margin:.8rem 0}.enregistrer{width:100%;margin-top:.4rem}.enregistrer .puce{background:var(--sur-lime);color:var(--lime);border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:800}details.diagnostic{margin-top:1rem}details.diagnostic summary{cursor:pointer;color:var(--doux);font-size:.85rem;font-weight:800}.pastille-indice{background:color-mix(in srgb, var(--carte-sombre-texte) 18%, transparent);border-radius:999px;align-self:flex-start;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.78rem;font-weight:800;display:inline-flex}.pastille-indice .point{background:#d8f03c;border-radius:50%;width:.5rem;height:.5rem}.puces{flex-wrap:wrap;gap:.4rem;margin-top:.2rem;display:flex}.puces .puce{border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:800}.puces .puce.hausse{background:var(--tomate);color:#f4f7ec}.puces .puce.baisse{background:var(--surface);color:var(--texte)}.carte-sombre .puces .puce.baisse{background:color-mix(in srgb, var(--carte-sombre-texte) 18%, transparent);color:var(--carte-sombre-texte)}.liste li{border-bottom:1px solid var(--sable);grid-template-columns:auto 1fr auto;align-items:center;gap:.2rem .7rem;padding:.6rem 0;display:grid}.liste li:last-child{border-bottom:0}.liste .case{border:2px solid var(--bord);background:var(--surface);width:1.6rem;height:1.6rem;box-shadow:none;color:var(--sur-lime);border-radius:50%;grid-row:span 2;place-items:center;padding:0;display:grid}.liste .case.cochee{background:var(--lime);border-color:var(--lime)}.liste .case svg{width:.9rem;height:.9rem}.liste .nom{font-size:.95rem;font-weight:800}.liste li.cochee .nom{color:var(--doux);text-decoration:line-through}.liste .rythme{color:var(--doux);grid-column:2;font-size:.75rem;font-weight:700}.liste .prix{font-variant-numeric:tabular-nums;text-align:right;grid-row:span 2;font-weight:800}.liste .retard{color:var(--avert)}
