:root{--ink:#1b2321;--ink-soft:#5a665f;--paper:#fbf7ec;--surface:#fff;--sunken:#f3eddc;--brand:#0f5c4e;--brand-dark:#0b4239;--brand-vif:#2b9a66;--gold:#f2b33d;--gold-dark:#8a5a00;--gold-soft:#fdebc8;--brick:#b8442f;--brick-soft:#f9ddd5;--ok-soft:#ddf1e4;--bleu-soft:#e2eef7;--bleu:#2f5f86;--line:#ece3cb;--r:16px;--r-petit:12px;--ombre:0 2px 10px #503c1412;--serif:Georgia, "Iowan Old Style", "Palatino Linotype", serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3{font-family:var(--serif);margin:0 0 8px;font-weight:400}h3{font-size:18px}.ecran{max-width:640px;margin:0 auto;padding:16px}.etroit{max-width:420px;padding-top:40px}.marque{color:var(--brand);text-align:center;justify-items:center;gap:10px;font-size:32px;display:grid}.marque:before{content:"";background:radial-gradient(circle at 35% 35%, #ffd678, var(--gold) 60%, #e0892b);width:64px;height:64px;box-shadow:0 0 0 8px var(--gold-soft), 0 6px 18px #f2b33d73;border-radius:50%}.sous{text-align:center;color:var(--ink-soft);margin:0 0 20px}.haut{z-index:10;background:var(--brand);color:var(--paper);border-radius:0 0 22px 22px;padding:14px 16px 12px;position:sticky;top:0;overflow:hidden;box-shadow:0 4px 14px #0b423940}.haut:after{content:"";background:var(--gold);opacity:.9;pointer-events:none;border-radius:50%;width:120px;height:120px;position:absolute;top:-36px;right:-36px}.haut>*{z-index:1;position:relative}.haut h1{margin:0;font-size:22px}.haut .note.clair{opacity:1;background:#0b4239cc;border-radius:999px;padding:4px 12px}.haut nav{gap:6px;margin-top:12px;display:flex;overflow-x:auto}.haut nav a{color:var(--paper);white-space:nowrap;background:#ffffff1f;border-radius:999px;padding:7px 14px;font-size:14px;text-decoration:none}.haut nav a.actif{background:var(--paper);color:var(--brand);font-weight:700}.salut{margin:6px 0 14px;font-size:24px}.ligne{justify-content:space-between;align-items:center;gap:8px;display:flex}.carte{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--ombre);gap:10px;margin-bottom:14px;padding:16px;display:grid}.carte.succes{border-color:var(--brand-vif);background:var(--ok-soft)}.champ{color:var(--ink-soft);gap:4px;font-size:13px;display:grid}.champ input,.champ select{border:1.5px solid var(--line);border-radius:var(--r-petit);width:100%;font:16px var(--sans);color:var(--ink);background:#fffdf8;padding:12px 14px}.champ input:focus,.champ select:focus{border-color:var(--brand-vif);box-shadow:0 0 0 3px var(--ok-soft);outline:none}.champ input.pin{letter-spacing:6px;-webkit-text-security:disc;text-security:disc;font-size:20px}.champ small{font-size:12px}.aide{color:var(--ink-soft);margin-top:-6px;font-size:12px;display:block}.btn{text-align:center;border:1.5px solid var(--line);width:100%;color:var(--ink);font:600 15px var(--sans);cursor:pointer;background:#fffdf8;border-radius:14px;padding:13px;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:block}.btn:active:not(:disabled){transform:translateY(2px)}.btn.principal{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 3px 0 var(--brand-dark)}.btn.principal:active:not(:disabled){box-shadow:0 1px 0 var(--brand-dark)}.btn:disabled{opacity:.5;cursor:default}.btn.petit{border-radius:999px;width:auto;padding:7px 14px;font-size:13px}.actions{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.actions .btn{flex:auto;width:auto}.lien{color:var(--brand);font:600 13px var(--sans);cursor:pointer;background:0 0;border:none;padding:4px 0;text-decoration:underline}.lien.danger{color:var(--brick)}.alerte{background:var(--brick-soft);color:var(--brick);border-radius:var(--r-petit);margin:0;padding:10px 14px;font-size:14px}.ok{background:var(--ok-soft);color:var(--brand-dark);border-radius:var(--r-petit);margin:0;padding:10px 14px}.note{color:var(--ink-soft);margin:0;font-size:13px}.note.clair{color:var(--paper);opacity:.85}.alerte.flottante,.ok.flottante{z-index:20;position:sticky;bottom:12px;box-shadow:0 4px 14px #00000026}.liste{margin:0;padding:0;list-style:none}.groupe{border-left:5px solid var(--gold)}a.groupe-lien{color:inherit;gap:8px;text-decoration:none;display:grid}.titre-groupe{align-items:center;gap:10px;min-width:0;display:flex}.titre-groupe h2,.titre-groupe h3{overflow-wrap:anywhere;margin:0}.avatar{color:#fff;width:42px;height:42px;font:800 16px var(--sans);letter-spacing:.5px;border-radius:14px;flex:none;place-items:center;display:inline-grid;box-shadow:inset 0 -3px #00000026}.etat{border-radius:var(--r-petit);justify-self:start;margin:0;padding:8px 12px;font-size:14px;font-weight:600}.etat:before{margin-right:6px}.etat.a-payer{background:var(--gold-soft);color:var(--gold-dark)}.etat.a-payer:before{content:"💰"}.etat.paye{background:var(--ok-soft);color:var(--brand-dark)}.etat.attente{background:var(--bleu-soft);color:var(--bleu)}.etat.attente:before{content:"⏳"}.etat.conteste{background:var(--brick-soft);color:var(--brick)}.etat.conteste:before{content:"⚠️"}.etat.neutre{background:var(--sunken);color:var(--ink-soft);font-weight:400}.carte.cycle.etat-a_payer{border-color:var(--gold);background:linear-gradient(180deg, #fff8e6, var(--surface) 60%)}.carte.cycle.etat-paye{border-color:var(--brand-vif);background:linear-gradient(180deg, var(--ok-soft), var(--surface) 60%)}.carte.cycle.etat-conteste{border-color:var(--brick)}.tours{padding-left:0}.liste.tours li{border-radius:var(--r-petit);padding:8px 10px}.liste.tours li.moi{background:var(--gold-soft);font-weight:700}.pastille{background:var(--sunken);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.pastille.tresorier{background:var(--gold-soft);color:var(--gold-dark)}.pastille.paye{background:var(--ok-soft);color:var(--brand-dark)}.pastille.declare{background:var(--gold-soft);color:var(--gold-dark);justify-self:start}.pastille.retard,.pastille.conteste{background:var(--brick-soft);color:var(--brick)}.pastille.partiel{background:var(--bleu-soft);color:var(--bleu)}.vide{text-align:center;color:var(--ink-soft);padding:40px 16px}.vide-icone{margin-bottom:8px;font-size:48px;display:block}.vide b{font-family:var(--serif);color:var(--ink);font-size:20px;font-weight:400}.chiffres{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.chiffres>div{background:var(--paper);border-radius:var(--r-petit);padding:10px 4px}.chiffres b{font-family:var(--serif);color:var(--brand);font-size:19px;font-weight:400;display:block}.chiffres span{color:var(--ink-soft);font-size:12px}.barre{background:var(--sunken);border-radius:999px;height:10px;overflow:hidden}.barre i{background:linear-gradient(90deg, var(--brand-vif), #5cc48f);border-radius:999px;height:100%;transition:width .4s;display:block}.onglets{background:var(--sunken);border-radius:999px;gap:6px;margin:10px 0 14px;padding:4px;display:flex}.onglets a{text-align:center;color:var(--ink-soft);border-radius:999px;flex:1;padding:8px 12px;font-size:14px;text-decoration:none}.onglets a.actif{background:var(--surface);color:var(--brand);box-shadow:var(--ombre);font-weight:700}.membre{gap:6px}.confirmer{border-color:var(--gold)}details summary{cursor:pointer;font-weight:600}fieldset.sans-cadre{border:0;min-width:0;margin:0;padding:0}.bandeau-demo{background:var(--gold-soft);border-bottom:2px solid var(--gold);gap:8px;padding:10px 16px;display:grid}.bandeau-demo p{color:var(--gold-dark);margin:0;font-size:14px}.actions-demo{flex-wrap:wrap;gap:8px;display:flex}.tableau-offres{border-collapse:collapse;width:100%;font-size:14px}.tableau-offres th,.tableau-offres td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 6px}.tableau-offres td:not(:first-child),.tableau-offres th:not(:first-child){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.demande{border-top:1px solid var(--line);gap:8px;padding-top:10px;display:grid}.demande:first-of-type{border-top:0;padding-top:0}.case{align-items:center;gap:8px;padding:4px 0;font-size:14px;display:flex}.defile{overflow-x:auto}
