:root{--vert: #14532d;--vert-clair: #dcfce7;--fond: #f8fafc;--carte: #ffffff;--texte: #0f172a;--texte-doux: #64748b;--bordure: #e2e8f0;--ambre: #b45309;--ambre-fond: #fef3c7;--rouge: #b91c1c;--rayon: 12px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--fond);color:var(--texte);-webkit-text-size-adjust:100%}#root{max-width:640px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}header.app{background:var(--vert);color:#fff;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}header.app h1{font-size:1.1rem;margin:0}header.app button.reglages{background:none;border:none;color:#fff;font-size:1.3rem;cursor:pointer}nav.onglets{display:flex;background:var(--carte);border-bottom:1px solid var(--bordure);position:sticky;top:52px;z-index:9}nav.onglets button{flex:1;padding:12px 4px;border:none;background:none;font-size:.95rem;color:var(--texte-doux);border-bottom:3px solid transparent;cursor:pointer}nav.onglets button.actif{color:var(--vert);border-bottom-color:var(--vert);font-weight:600}main{flex:1;padding:12px 12px 24px}.bandeau-demo{background:var(--ambre-fond);color:var(--ambre);border:1px solid #fcd34d;border-radius:var(--rayon);padding:10px 12px;margin-bottom:12px;font-size:.9rem}.carte{background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon);padding:12px;margin-bottom:10px}.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:middle}.badge.brouillon{background:var(--ambre-fond);color:var(--ambre)}.badge.valide{background:var(--vert-clair);color:var(--vert)}.ligne-depense{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.ligne-depense .marchand{font-weight:600}.ligne-depense .montant{font-weight:700;white-space:nowrap}.meta{color:var(--texte-doux);font-size:.85rem;margin-top:4px}.titre-mois{font-size:.95rem;font-weight:700;color:var(--texte-doux);text-transform:uppercase;letter-spacing:.04em;margin:20px 4px 8px}.titre-mois:first-of-type{margin-top:12px}.badge-filtre{display:inline-block;min-width:1.4em;text-align:center;background:var(--vert);color:#fff;border-radius:999px;font-size:.8rem;font-weight:700;padding:1px 6px;margin-left:6px}.actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}button{font-size:1rem;border-radius:10px;border:1px solid var(--bordure);background:var(--carte);padding:10px 14px;cursor:pointer;min-height:44px}button.primaire{background:var(--vert);color:#fff;border-color:var(--vert);font-weight:600}button.danger{color:var(--rouge);border-color:#fecaca}button:disabled{opacity:.5;cursor:default}input,select,textarea{font-size:1rem;padding:10px 12px;border:1px solid var(--bordure);border-radius:10px;width:100%;min-height:44px;background:#fff;color:var(--texte)}label{display:block;font-size:.85rem;color:var(--texte-doux);margin:8px 0 4px}.fil{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.bulle{max-width:88%;padding:10px 12px;border-radius:14px;white-space:pre-wrap;word-break:break-word;font-size:.95rem}.bulle.agent{background:var(--carte);border:1px solid var(--bordure);align-self:flex-start;border-bottom-left-radius:4px}.bulle.moi{background:var(--vert);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.barre-chat{display:flex;gap:8px;position:sticky;bottom:0;background:var(--fond);padding:8px 0}.barre-chat input{flex:1}.apercu{max-width:100%;border-radius:var(--rayon);margin:8px 0}.incoherence{background:var(--ambre-fond);border:1px solid #fcd34d;border-radius:8px;padding:8px;font-size:.85rem;margin-top:8px}.carte-lien{display:block;width:100%;background:none;border:none;padding:0;margin:0;text-align:left;min-height:0;cursor:pointer;border-radius:8px;color:inherit;font:inherit}.carte-lien:active{background:var(--fond)}.progression{display:flex;align-items:center;gap:8px;margin:10px 0 2px;font-size:.85rem}.progression .etape{display:flex;align-items:center;gap:6px;color:var(--texte-doux);white-space:nowrap}.progression .etape.terminee{color:var(--vert);font-weight:600}.progression .etape.active{color:var(--texte);font-weight:600}.progression .etape.echec{color:var(--rouge);font-weight:600}.progression .separateur{flex:1;height:2px;min-width:12px;background:var(--bordure);border-radius:2px}.progression .separateur.termine{background:var(--vert)}.pastille{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--bordure);color:var(--texte-doux);font-size:.72rem;font-weight:700;flex:none}.pastille.terminee{background:var(--vert-clair);color:var(--vert)}.pastille.echec{background:#fee2e2;color:var(--rouge)}.spinner{display:inline-block;flex:none;width:16px;height:16px;border:2px solid var(--bordure);border-top-color:var(--vert);border-radius:50%;animation:rotation .7s linear infinite}@keyframes rotation{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.carte.surbrillance{animation:surbrillance 2.6s ease-out}@keyframes surbrillance{0%{box-shadow:0 0 #14532d73}to{box-shadow:0 0 0 14px #14532d00}}@media(prefers-reduced-motion:reduce){.carte.surbrillance{outline:3px solid var(--vert);outline-offset:2px;animation:none}}.reglages-panel{margin-bottom:12px}.erreur{color:var(--rouge);font-size:.9rem;margin-top:8px}.chargement{color:var(--texte-doux);font-style:italic}.lignes-recu{list-style:none;margin:8px 0 0;padding:0;border-top:1px dashed var(--bordure)}.lignes-recu li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--bordure);font-size:.92rem}.lignes-recu li:last-child{border-bottom:none}.lignes-recu .ligne-label{color:var(--texte)}.lignes-recu .ligne-montant{white-space:nowrap;font-variant-numeric:tabular-nums}.details-toggle{background:none;border:none;color:var(--vert);font-size:.88rem;padding:4px 0;cursor:pointer;text-align:left;font-weight:600}.prompt{white-space:pre-wrap;word-break:break-word;font-size:.78rem;background:var(--fond);border:1px solid var(--bordure);border-radius:8px;padding:8px;margin:0 0 8px;max-height:220px;overflow:auto}
