:root{--encre: #2c3e50;--encre-2: #3a5165;--ecume: #f4f5f6;--carte: #ffffff;--texte: #22323f;--texte-2: #5c6b77;--bord: #d8dde1;--accent: #0093d2;--accent-fonce: #0077ab;--algue: #2e7d5b;--algue-pale: #e2f0e9;--ambre: #a8730f;--ambre-pale: #f7ecd4;--rouge: #b93a2b;--rouge-pale: #f9e4e0;--gris-pale: #e8ebee;--radius: 6px;--ombre: 0 1px 2px rgba(44, 62, 80, .07), 0 4px 14px rgba(44, 62, 80, .05);--police-display: "Archivo", "Helvetica Neue", Arial, sans-serif;--police-texte: "Public Sans", -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--police-texte);font-size:15px;line-height:1.5;color:var(--texte);background:var(--ecume)}h1,h2,h3{font-family:var(--police-display);text-wrap:balance;margin:0}button,input,select,textarea{font:inherit;color:inherit}.appbar{background:var(--carte);color:var(--texte);border-bottom:1px solid var(--bord);padding:calc(12px + env(safe-area-inset-top)) 18px 12px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20}.appbar .logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.appbar .titre{font-family:var(--police-display);font-weight:800;font-size:16px;letter-spacing:.02em;border-left:1px solid var(--bord);padding-left:12px}.appbar .titre small{display:block;font-weight:600;font-size:9.5px;color:var(--texte-2);letter-spacing:.16em;text-transform:uppercase}.appbar nav{margin-left:auto;display:none;gap:22px}.appbar nav a{color:var(--texte);text-decoration:none;font-family:var(--police-display);font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;padding:8px 0;border-bottom:2px solid transparent}.appbar nav a.actif{color:var(--accent);border-bottom-color:var(--accent)}.appbar nav a:hover{color:var(--accent)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--carte);border-top:1px solid var(--bord);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;text-align:center;padding:8px 0 6px;text-decoration:none;color:var(--texte-2);font-size:10.5px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:2px}.tabbar a svg{width:22px;height:22px}.tabbar a.actif{color:var(--accent-fonce)}@media(min-width:760px){.appbar nav{display:flex}.tabbar{display:none}main.page{padding-bottom:48px!important}}main.page{max-width:760px;margin:0 auto;padding:20px 16px calc(76px + env(safe-area-inset-bottom))}main.page.large{max-width:980px}.entete-page{display:flex;align-items:flex-start;gap:12px;margin:6px 0 18px;flex-wrap:wrap}.entete-page h1{font-size:24px;font-weight:800;letter-spacing:-.01em}.entete-page .sous-titre{color:var(--texte-2);font-size:13.5px;margin-top:2px}.entete-page .actions{margin-left:auto;display:flex;gap:8px}.eyebrow{font-family:var(--police-display);text-transform:uppercase;letter-spacing:.13em;font-size:11.5px;font-weight:700;color:var(--texte-2);margin:26px 0 10px;display:flex;align-items:center;gap:8px}.eyebrow:after{content:"";flex:1;height:1px;background:var(--bord)}.eyebrow .compte{color:var(--accent-fonce)}.carte{background:var(--carte);border:1px solid var(--bord);border-radius:var(--radius);box-shadow:var(--ombre)}.liste{display:flex;flex-direction:column;gap:10px}.ligne-ndf{display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;text-decoration:none;color:inherit;transition:border-color .15s}.ligne-ndf:hover{border-color:var(--encre-2)}.ligne-ndf .infos{min-width:0;flex:1}.ligne-ndf .titre{font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ligne-ndf .meta{color:var(--texte-2);font-size:12.5px;display:flex;gap:8px;flex-wrap:wrap}.ligne-ndf .numero{font-family:var(--police-display);font-weight:600;letter-spacing:.04em}.ligne-ndf .montant{font-family:var(--police-display);font-variant-numeric:tabular-nums;font-weight:800;font-size:16px;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.brouillon{background:var(--gris-pale);color:#55604f}.pill.en_validation{background:var(--ambre-pale);color:var(--ambre)}.pill.validee{background:var(--algue-pale);color:var(--algue)}.pill.payee{background:#dfeaf3;color:#1f5e8d}.pill.refusee{background:var(--rouge-pale);color:var(--rouge)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:var(--radius);padding:9px 16px;font-weight:700;font-size:14px;font-family:var(--police-texte);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.btn:disabled{opacity:.55;cursor:default}.btn-primaire{background:var(--accent);color:#fff}.btn-primaire:hover:not(:disabled){background:var(--accent-fonce)}.btn-encre{background:var(--encre);color:#fff}.btn-encre:hover:not(:disabled){background:var(--encre-2)}.btn-secondaire{background:var(--carte);border-color:var(--bord);color:var(--texte)}.btn-secondaire:hover:not(:disabled){border-color:var(--texte-2)}.btn-danger{background:var(--carte);border-color:var(--rouge);color:var(--rouge)}.btn-danger:hover:not(:disabled){background:var(--rouge-pale)}.btn-succes{background:var(--algue);color:#fff}.btn-lien{background:none;border:none;color:var(--accent-fonce);font-weight:700;cursor:pointer;padding:4px}.btn.petit{padding:6px 11px;font-size:13px}.champ{margin-bottom:14px}.champ>label{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;font-size:13.5px;margin-bottom:5px}.champ .requis{color:var(--texte-2);font-size:11px;font-weight:500}.champ input[type=text],.champ input[type=email],.champ input[type=password],.champ input[type=number],.champ input[type=date],.champ select,.champ textarea{width:100%;padding:10px 12px;border:1px solid var(--bord);border-radius:8px;background:#fafbfc;min-height:42px}.champ input:focus,.champ select:focus,.champ textarea:focus,.btn:focus-visible{outline:2px solid var(--encre-2);outline-offset:1px}.champ .avec-unite{position:relative}.champ .avec-unite .unite{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--texte-2);font-size:13px;pointer-events:none}.groupe-choix{display:flex;gap:8px;flex-wrap:wrap}.groupe-choix .choix{border:1.5px solid var(--bord);border-radius:999px;padding:7px 15px;cursor:pointer;background:var(--carte);font-weight:600;font-size:13.5px}.groupe-choix .choix.actif{border-color:var(--encre);background:var(--encre);color:#fff}.avertissement{background:#fdf0e3;border:1px solid #efd2ae;color:#7c5210;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:14px}.erreur{background:var(--rouge-pale);border:1px solid #e5b3aa;color:var(--rouge);border-radius:8px;padding:10px 12px;font-size:13.5px;margin-bottom:12px}.voile{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#2c3e508c;display:flex;align-items:flex-end;justify-content:center}.modale{background:var(--carte);width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;border-radius:16px 16px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom))}@media(min-width:640px){.voile{align-items:center;padding:24px}.modale{border-radius:14px}}.modale-entete{display:flex;align-items:center;margin-bottom:16px}.modale-entete h2{font-size:18px;font-weight:800}.modale-entete .fermer{margin-left:auto;background:var(--gris-pale);border:none;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1}.modale-pied{display:flex;gap:10px;margin-top:18px}.modale-pied .btn{flex:1}.recap{background:var(--encre);color:#f2f7fa;border-radius:var(--radius);padding:16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.recap .numero{font-family:var(--police-display);letter-spacing:.05em;font-size:12.5px;opacity:.7}.recap h1{font-size:20px;font-weight:800}.recap .total{margin-left:auto;text-align:right;font-family:var(--police-display);font-variant-numeric:tabular-nums}.recap .total .valeur{font-size:26px;font-weight:900}.recap .total .libelle{font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.65}.ligne-frais{display:flex;align-items:center;gap:12px;padding:12px 14px}.ligne-frais+.ligne-frais{border-top:1px solid var(--gris-pale)}.ligne-frais .type{font-weight:700;font-size:14px}.ligne-frais .detail{color:var(--texte-2);font-size:12.5px}.ligne-frais .montant{margin-left:auto;font-family:var(--police-display);font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.ligne-frais .justif{color:var(--texte-2)}.miniature{width:42px;height:42px;object-fit:cover;border-radius:6px;border:1px solid var(--bord)}.vide{text-align:center;color:var(--texte-2);padding:34px 16px;font-size:14px;border:1.5px dashed var(--bord);border-radius:var(--radius)}.table-scroll{overflow-x:auto}table.admin{width:100%;border-collapse:collapse;font-size:14px}table.admin th{text-align:left;font-family:var(--police-display);text-transform:uppercase;letter-spacing:.09em;font-size:11px;color:var(--texte-2);padding:8px 10px;border-bottom:2px solid var(--bord)}table.admin td{padding:9px 10px;border-bottom:1px solid var(--gris-pale)}.ecran-connexion{min-height:100dvh;display:flex;flex-direction:column;background:var(--ecume)}.ecran-connexion .marque{text-align:center;color:var(--encre);padding:54px 20px 26px}.ecran-connexion .marque h1{font-size:26px;font-weight:800;letter-spacing:.01em}.ecran-connexion .marque p{margin:4px 0 0;color:var(--texte-2);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600}.carte-connexion{background:var(--carte);border:1px solid var(--bord);border-radius:var(--radius);box-shadow:var(--ombre);padding:26px 22px calc(30px + env(safe-area-inset-bottom));max-width:460px;width:calc(100% - 32px);margin:0 auto auto}.onglets-auth{display:flex;background:var(--gris-pale);border-radius:999px;padding:4px;margin-bottom:20px}.onglets-auth button{flex:1;border:none;background:none;padding:8px;border-radius:999px;font-weight:700;cursor:pointer;color:var(--texte-2)}.onglets-auth button.actif{background:var(--carte);color:var(--texte);box-shadow:var(--ombre)}.chargement{text-align:center;color:var(--texte-2);padding:40px}@media(prefers-reduced-motion:no-preference){.modale{animation:monte .18s ease-out}@keyframes monte{0%{transform:translateY(14px);opacity:.6}}}
