:root{--fond: #f5f1f2;--encre: #241e26;--secondaire: #7a7079;--filet: #e3dbde;--carte: #ffffff;--accent: #2e6f5e;--large: #3e8c6e;--serre: #a8761b;--depasse: #ac4a44;--rayon-carte: 16px;--marge: 16px}@media(prefers-color-scheme:dark){:root{--fond: #1a171b;--encre: #efe9ec;--secondaire: #9c9099;--filet: #332d33;--carte: #221e23;--accent: #6fbfa3;--large: #6fbfa3;--serre: #d3a44e;--depasse: #e0827b}}*{box-sizing:border-box}html,body,#racine{height:100%}body{margin:0;background:var(--fond);color:var(--encre);font-family:ui-rounded,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%;max-width:560px;margin:0 auto;background:var(--fond)}.contenu{flex:1;overflow-y:auto;padding-bottom:12px;-webkit-overflow-scrolling:touch}.entete{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:20px var(--marge) 4px}.entete h1{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.01em}.entete .appoint{font-size:.8rem;color:var(--secondaire);font-weight:600}.chiffre-cle{padding:10px var(--marge) 18px}.chiffre-cle .libelle{font-size:.82rem;color:var(--secondaire)}.chiffre-cle .montant{font-size:2.5rem;font-weight:300;letter-spacing:-.03em;line-height:1.12;font-variant-numeric:tabular-nums}.section-titre{margin:20px var(--marge) 8px;font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--secondaire)}.carte{background:var(--carte);border:1px solid var(--filet);border-radius:var(--rayon-carte);margin:0 var(--marge) 11px;padding:13px 15px}.carte-large{padding:20px 18px;border-radius:20px}.ligne{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;font-size:.88rem;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--filet)}.ligne:last-child{border-bottom:0}.ligne .cle{color:var(--secondaire)}.ligne .valeur{font-weight:600;white-space:nowrap}.enveloppe{display:flex;flex-direction:column;gap:8px}.enveloppe .haut{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.enveloppe .nom{font-weight:650;font-size:.94rem}.enveloppe .reste{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.jauge{height:11px;border-radius:99px;background:color-mix(in srgb,var(--filet) 75%,transparent);overflow:hidden}.jauge>i{display:block;height:100%;border-radius:99px;transition:width .35s ease}.enveloppe .bas{display:flex;justify-content:space-between;gap:10px;font-size:.75rem;color:var(--secondaire)}.enveloppe .etat{font-weight:700;white-space:nowrap}.etat-large{color:var(--large)}.etat-serre{color:var(--serre)}.etat-depasse{color:var(--depasse)}.fond-large{background:var(--large)}.fond-serre{background:var(--serre)}.fond-depasse{background:var(--depasse)}.choix{display:flex;gap:8px;margin:0 var(--marge) 10px}.grille{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 var(--marge) 10px}.bouton-choix{flex:1;min-height:48px;padding:11px 8px;border:1px solid var(--filet);border-radius:13px;background:var(--carte);font-size:.85rem;font-weight:600;cursor:pointer;text-align:center}.bouton-choix[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--fond)}.bouton-choix:disabled{opacity:.45;cursor:not-allowed}.action{display:block;width:calc(100% - 2 * var(--marge));min-height:52px;margin:6px var(--marge) 16px;padding:14px;border:0;border-radius:14px;background:var(--accent);color:var(--fond);font-size:.95rem;font-weight:700;cursor:pointer}.action:disabled{opacity:.4;cursor:not-allowed}.action-discrete{background:transparent;color:var(--secondaire);border:1px solid var(--filet);font-weight:600;min-height:44px}.bascule{display:flex;align-items:center;gap:10px;margin:0 var(--marge) 12px;font-size:.82rem;color:var(--accent);font-weight:600;cursor:pointer}.bascule input{width:20px;height:20px;accent-color:var(--accent)}.champ{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--filet);border-radius:13px;background:var(--carte);font-variant-numeric:tabular-nums}.champ:focus-visible,.bouton-choix:focus-visible,.action:focus-visible,.onglet:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.note{display:flex;gap:8px;margin:0 var(--marge) 12px;font-size:.78rem;font-weight:600;line-height:1.45}.note-ok{color:var(--large)}.note-alerte{color:var(--depasse)}.note-neutre{color:var(--secondaire);font-weight:500}.bandeau{margin:12px var(--marge);padding:13px 15px;border-radius:13px;border:1px solid var(--depasse);background:color-mix(in srgb,var(--depasse) 10%,transparent);font-size:.83rem;line-height:1.5}.vide{padding:48px var(--marge);text-align:center;color:var(--secondaire)}.vide .gros{font-size:1.1rem;font-weight:650;color:var(--encre);margin-bottom:6px}.onglets{display:flex;flex-shrink:0;background:var(--carte);border-top:1px solid var(--filet);padding-bottom:env(safe-area-inset-bottom)}.onglet{flex:1;min-height:56px;padding:10px 4px calc(10px + env(safe-area-inset-bottom,0px));border:0;background:transparent;color:var(--secondaire);font-size:.72rem;font-weight:600;cursor:pointer}.onglet[aria-current=page]{color:var(--accent)}.onglet .pastille{display:inline-block;min-width:18px;margin-left:5px;padding:1px 5px;border-radius:99px;background:var(--depasse);color:#fff;font-size:.68rem;font-variant-numeric:tabular-nums}.transaction .montant{font-size:2rem;font-weight:300;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.transaction .marchand{font-weight:700;margin-top:4px}.transaction .meta{font-size:.76rem;color:var(--secondaire);margin-top:3px}.voile{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:10}.feuille{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--fond);border-radius:22px 22px 0 0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}.feuille-entete{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:18px var(--marge) 10px;background:var(--fond);border-bottom:1px solid var(--filet)}.feuille-entete h2{margin:0;font-size:1.05rem;letter-spacing:-.01em}.fermer{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--secondaire);font-size:1.4rem;cursor:pointer}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.barre-haute{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px var(--marge) 0}.bouton-entete{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 14px;border:1px solid var(--filet);border-radius:99px;background:var(--carte);color:var(--encre);font-size:.82rem;font-weight:650;cursor:pointer}.bouton-entete:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bascule-personne{display:flex;gap:2px;margin:0;padding:2px;width:fit-content;border:1px solid var(--filet);border-radius:99px;background:var(--carte)}.bascule-personne button{min-height:34px;padding:5px 16px;border:0;border-radius:99px;background:transparent;color:var(--secondaire);font-size:.82rem;font-weight:650;cursor:pointer}.bascule-personne button[aria-pressed=true]{background:var(--accent);color:var(--fond)}.bascule-personne button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bascule-vue{display:flex;gap:2px;margin:8px var(--marge) 14px;padding:2px;border:1px solid var(--filet);border-radius:99px;background:var(--carte)}.bascule-vue button{flex:1;min-height:38px;border:0;border-radius:99px;background:transparent;color:var(--secondaire);font-size:.84rem;font-weight:650;cursor:pointer}.bascule-vue button[aria-pressed=true]{background:var(--accent);color:var(--fond)}.bascule-vue button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ligne-repliable{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:4px 0;border:0;background:transparent;text-align:left;cursor:pointer}.ligne-repliable:disabled{cursor:default;opacity:.6}.ligne-repliable:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.ligne-repliable-texte{display:flex;flex-direction:column;gap:2px;min-width:0}.marchand-court{font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.montant-court{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.correction{margin:12px -15px 0;padding-top:10px;border-top:1px solid var(--filet)}.correction .section-titre,.correction .choix,.correction .grille{margin-left:15px;margin-right:15px}.correction .action{width:calc(100% - 30px);margin:6px 15px 4px}.bouton-ajout{border-style:dashed;color:var(--accent);font-weight:700}.section-budget{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.section-total{text-transform:none;letter-spacing:0;font-weight:600;font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap}.carte-cliquable{display:flex;width:calc(100% - 2 * var(--marge));text-align:left;cursor:pointer;font:inherit;color:inherit}.carte-cliquable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.connexion{display:flex;flex-direction:column;justify-content:center;padding-bottom:15vh}.ligne-bilan{width:100%;border:0;border-bottom:1px solid var(--filet);background:transparent;cursor:pointer;text-align:left}.ligne-bilan:last-child{border-bottom:0}.ligne-bilan:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.ligne-bilan-texte{display:flex;flex-direction:column;gap:2px;min-width:0}.lien{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--depasse);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.bureau{display:grid;grid-template-columns:232px 1fr;min-height:100%;background:var(--fond)}.lateral{display:flex;flex-direction:column;gap:3px;padding:22px 14px;border-right:1px solid var(--filet);background:var(--carte);position:sticky;top:0;height:100vh}.lateral-titre{padding:0 12px 18px;font-size:.98rem;font-weight:700;letter-spacing:-.01em}.lateral-lien{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;border:0;border-radius:11px;background:transparent;color:var(--secondaire);font-size:.92rem;font-weight:600;text-align:left;cursor:pointer}.lateral-lien:hover{background:var(--fond);color:var(--encre)}.lateral-lien[aria-current=page]{background:var(--accent);color:var(--fond)}.lateral-lien:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lateral-bas{margin-top:auto;display:grid;gap:10px}.bureau-contenu{overflow-x:hidden;padding-bottom:60px}.page{max-width:1080px;padding:0 8px}.page-tete{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:28px var(--marge) 6px}.page-tete h1{margin:0;font-size:1.5rem;letter-spacing:-.02em}.page-appoint{font-size:.86rem;color:var(--secondaire);font-variant-numeric:tabular-nums}.grille-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:16px var(--marge)}.carte-mesure{margin:0;padding:16px 18px;text-align:left}.mesure-libelle{font-size:.78rem;color:var(--secondaire)}.mesure-valeur{font-size:1.9rem;font-weight:300;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.2}.mesure-detail{font-size:.76rem;color:var(--secondaire)}.carte-action{cursor:pointer;font:inherit;color:inherit;width:100%}.carte-action:hover{border-color:var(--accent)}.carte-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.graphique{margin:0}.graphique svg{width:100%;height:auto;display:block}.legende{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--secondaire);margin-bottom:8px}.puce{width:10px;height:10px;border-radius:3px;display:inline-block}.puce-commune{background:var(--accent)}.puce-perso{background:var(--serre);margin-left:12px}.repere{stroke:var(--filet);stroke-width:1}.trace{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.trace-commune{stroke:var(--accent)}.trace-perso{stroke:var(--serre)}.point-commune{fill:var(--accent)}.point-perso{fill:var(--serre)}.etiquette-mois{fill:var(--secondaire);font-size:11px;text-anchor:middle;font-family:inherit}.graphique-max{margin-top:8px;font-size:.74rem;color:var(--secondaire);font-variant-numeric:tabular-nums}.filtres{display:flex;flex-wrap:wrap;gap:8px;margin:14px var(--marge) 12px}.filtres .champ{width:auto;min-height:40px;padding:8px 12px;font-size:.86rem}.champ-recherche{flex:1 1 240px}.barre-action{position:sticky;top:0;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 var(--marge) 12px;padding:12px 14px;border-radius:13px;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--carte))}.barre-action .champ{width:auto;min-height:38px;padding:7px 11px;font-size:.85rem}.action-compacte{width:auto;min-height:38px;margin:0;padding:8px 18px;font-size:.86rem}.barre-action-message{font-size:.8rem;color:var(--secondaire)}.tableau-defilant{overflow-x:auto;margin:0 var(--marge)}.tableau{width:100%;border-collapse:collapse;font-size:.88rem;min-width:720px}.tableau th{position:sticky;top:0;text-align:left;padding:9px 10px;border-bottom:1px solid var(--filet);background:var(--fond);font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--secondaire);font-weight:700}.tableau td{padding:9px 10px;border-bottom:1px solid var(--filet)}.tableau tr.choisie{background:color-mix(in srgb,var(--accent) 8%,transparent)}.tableau td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.tableau .nowrap{white-space:nowrap}.tableau .secondaire{color:var(--secondaire)}.libelle-cellule{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tableau input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent)}.etiquette{display:inline-block;padding:1px 8px;border-radius:99px;font-size:.71rem;font-weight:700;white-space:nowrap}.etiquette.a-trier{background:color-mix(in srgb,var(--serre) 20%,transparent);color:var(--serre)}.etiquette.soldee{background:var(--filet);color:var(--secondaire);margin-left:6px}select.champ{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}select.champ{min-width:150px;text-overflow:ellipsis}.suggestion{display:flex;flex-direction:column;gap:2px;width:calc(100% - 2 * var(--marge));margin:4px var(--marge) 8px;padding:12px 15px;border:1px dashed var(--accent);border-radius:14px;background:color-mix(in srgb,var(--accent) 8%,transparent);text-align:left;cursor:pointer;font:inherit;color:inherit}.suggestion:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.suggestion-titre{font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}.suggestion-corps{font-weight:650;font-size:.92rem}.suggestion-source{font-size:.74rem;color:var(--secondaire)}.lien-discret{margin-left:14px;border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.feuille-large{max-width:760px}.tableau-compact{min-width:520px;font-size:.85rem}.entete-mois{flex-wrap:wrap}.navigation-mois{display:flex;align-items:center;gap:2px}.navigation-mois h1{min-width:9.5ch;text-align:center}.fleche-mois{min-width:38px;min-height:38px;border:1px solid var(--filet);border-radius:10px;background:var(--carte);color:var(--encre);font-size:1.1rem;line-height:1;cursor:pointer}.fleche-mois:disabled{opacity:.35;cursor:not-allowed}.fleche-mois:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.zone-survol{fill:transparent;cursor:pointer}.curseur{stroke:var(--filet);stroke-width:1.5;stroke-dasharray:3 3}.infobulle{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:10px;padding:9px 12px;border:1px solid var(--filet);border-radius:11px;background:var(--fond);font-size:.82rem;font-variant-numeric:tabular-nums}.infobulle .puce{margin-right:5px;margin-left:0}.infobulle .secondaire{color:var(--secondaire)}
