:root { --bg:#f6f5f2; --fg:#222; --muted:#777; --accent:#b3392b; --line:#ddd9d0; --card:#fff; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; background:var(--bg); color:var(--fg); }
.top { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.5rem; padding:.8rem 1.2rem; background:var(--card); border-bottom:1px solid var(--line); }
.brand { font-weight:700; color:var(--accent); text-decoration:none; }
.top nav a { margin-left:.4rem; color:#2a6b3a; background:#e1f1e3; border:1px solid #b5d9ba; padding:.3rem .8rem; border-radius:6px; font-weight:500; text-decoration:none; }
.top nav a:hover { background:#2a6b3a; border-color:#2a6b3a; color:#fff; }
.top nav a.nav-rouge { color:var(--accent); background:#f6e3df; border-color:#e6c3bc; }
.top nav a.nav-rouge:hover { background:var(--accent); border-color:var(--accent); color:#fff; }
main { max-width:900px; margin:0 auto; padding:1.5rem 1.2rem 3rem; }
h1 { font-size:1.5rem; margin-top:0; }
.muted { color:var(--muted); }
.flash { background:#e6f3e6; border:1px solid #b6d9b6; padding:.7rem 1rem; border-radius:6px; margin-bottom:1rem; }
.errors { background:#fbeaea; border:1px solid #e3b3b3; padding:.2rem 1rem; border-radius:6px; margin-bottom:1rem; }
.menu { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:1rem; }
.card { display:flex; flex-direction:column; gap:.3rem; padding:1.4rem; background:var(--card); border:1px solid var(--line); border-radius:10px; text-decoration:none; color:inherit; }
.card:hover { border-color:var(--accent); }
.card .ico { font-size:2rem; }
.card span:last-child { color:var(--muted); font-size:.9rem; }
form.inline { display:flex; flex-wrap:wrap; gap:.8rem; align-items:end; margin-bottom:1.2rem; }
label { display:block; font-size:.9rem; color:var(--muted); margin-bottom:.8rem; }
input[type=text], input[type=email], input[type=password], input[type=search], input[type=date], textarea { display:block; width:100%; padding:.5rem .6rem; font:inherit; color:var(--fg); border:1px solid var(--line); border-radius:6px; background:#fff; }
form.inline label { margin:0; }
button { padding:.6rem 1.2rem; font:inherit; font-weight:600; color:#fff; background:var(--accent); border:0; border-radius:6px; cursor:pointer; }
button:hover { opacity:.9; }
.form .row { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:1rem; }
fieldset { border:1px solid var(--line); border-radius:8px; margin:0 0 1rem; background:var(--card); }
legend { font-size:.9rem; color:var(--muted); padding:0 .4rem; }
.types { display:flex; flex-wrap:wrap; gap:.8rem; }
.type { margin:0; padding:.6rem 1rem; border:1px solid var(--line); border-radius:8px; cursor:pointer; color:var(--fg); }
.type:has(input:checked) { border-color:var(--accent); background:#fbefed; }
.totals { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:.8rem; margin-bottom:1.5rem; }
.total { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:.8rem 1rem; display:flex; flex-direction:column; }
.total.all { border-color:var(--accent); }
table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); }
th, td { padding:.5rem .7rem; text-align:left; border-bottom:1px solid var(--line); }
th { font-size:.85rem; color:var(--muted); }
.r { text-align:right; }
@media (max-width:600px) { table { font-size:.85rem; } }

table.releve { margin-bottom:1rem; }
table.releve td { vertical-align:middle; }
table.releve input { text-align:right; }
.prev { color:var(--muted); text-align:right; white-space:nowrap; }
.conso { text-align:right; font-weight:600; white-space:nowrap; }
.conso.neg { color:var(--accent); }

.scroll { overflow-x:auto; margin-bottom:.5rem; }
.scroll table { min-width:640px; }
form.form a { margin-left:1rem; color:var(--muted); }

td.periode { text-align:right; white-space:nowrap; }
td.periode label { display:inline-block; margin:0 0 0 .5rem; }
td.periode input { display:inline-block; width:auto; text-align:left; }

.warning { background:#fff4d6; border:1px solid #e6c46a; border-radius:6px; padding:.7rem 1rem; margin-bottom:1rem; }

.analyse { margin:1.5rem 0; }
.analyse h2 { font-size:1.1rem; margin:0 0 .5rem; }
.analyse .formule { color:var(--muted); font-size:.85rem; }
.analyse .val { text-align:right; font-weight:600; white-space:nowrap; }
.analyse .val.neg { color:var(--accent); }

.analyse .formule { display:block; margin-top:.1rem; }

.btn-secondary { background:#e8e4da; color:var(--fg); }
.releve-auto { margin:0 0 1rem; }
.releve-auto .muted { margin-left:.6rem; font-size:.85rem; }
.releve-statut { margin-top:.5rem; font-size:.9rem; }
.releve-statut .erreur { color:var(--accent); }

.releve-ligne { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .8rem; margin:.35rem 0; }
.index-ctrl { display:inline-flex; align-items:center; gap:.3rem; }
.index-ctrl button { padding:.15rem .6rem; }
.index-ctrl .idx { min-width:3.8rem; text-align:center; font-weight:600; font-variant-numeric:tabular-nums; }

.releve-info { display:block; font-size:.8rem; color:var(--muted); margin-top:.1rem; white-space:normal; }
.releve-info.erreur { color:var(--accent); }
.index-ctrl { display:flex; justify-content:flex-end; margin-top:.3rem; }
textarea[hidden] { display:none; }
.index-ctrl[hidden] { display:none; }

table.reglages input { text-align:left; }
.releve-auto .muted a { margin-left:.4rem; }

.total.revenu { border-color:#6aa56a; }
.total small { font-size:.8rem; }

a.total { text-decoration:none; color:inherit; cursor:pointer; }
a.total:hover, a.total.actif { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
a.total.revenu:hover, a.total.revenu.actif { border-color:#6aa56a; box-shadow:0 0 0 1px #6aa56a; }

.locataires { display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:1rem; margin-bottom:1rem; }
.locataires h3 { margin:.2rem 0 .5rem; font-size:1.05rem; }
tr.total-ligne th { color:var(--fg); font-size:1rem; border-top:2px solid var(--line); }

/* ---- Graphiques (page Statistiques) ---- */
:root { --surface-1:#fcfcfb; --series-1:#2a78d6; --series-2:#eb6834; --series-3:#1baf7a; }
.graph-choix { display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin-bottom:1rem; }
.graph-choix label { margin:0; display:flex; align-items:center; gap:.4rem; color:var(--fg); cursor:pointer; }
.graph { background:var(--surface-1); border:1px solid var(--line); border-radius:8px; padding:.8rem 1rem 1rem; margin-bottom:1rem; }
.graph[hidden] { display:none; }
.graph h3 { font-size:1rem; margin:.1rem 0 .5rem; }
.chart-legend { display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; font-size:.85rem; color:#52514e; margin-bottom:.3rem; }
.chart-legend i, .chart-tip i { display:inline-block; width:.7rem; height:.7rem; border-radius:2px; margin-right:.4rem; vertical-align:baseline; }
.chart-svg { width:100%; height:auto; display:block; }
.chart-svg .grille { stroke:#e6e3da; stroke-width:1; }
.chart-svg .axe { stroke:#b9b5aa; stroke-width:1; }
.chart-svg .tick { fill:#777; font-size:11px; }
.chart-svg .cross { stroke:#b9b5aa; stroke-width:1; stroke-dasharray:3 3; }
.chart-tip { position:absolute; z-index:50; pointer-events:none; background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:.45rem .7rem; font-size:.85rem; box-shadow:0 2px 8px rgba(0,0,0,.12); white-space:nowrap; }
.chart-tip[hidden] { display:none; }
.chart-tip strong { display:block; margin-bottom:.15rem; }
details.graph-table { margin-bottom:1.5rem; }
details.graph-table summary { cursor:pointer; color:var(--muted); margin-bottom:.5rem; }
.chart-svg .total-barre { fill:var(--fg); font-size:11px; font-weight:600; }
.chart-tip .tip-total { margin-top:.2rem; padding-top:.2rem; border-top:1px solid var(--line); }

a.btn-lien { padding:.6rem 1.2rem; font-weight:600; color:var(--fg); background:#e8e4da; border-radius:6px; text-decoration:none; }
a.btn-lien:hover { opacity:.9; }

select { display:block; padding:.5rem .6rem; font:inherit; color:var(--fg); border:1px solid var(--line); border-radius:6px; background:#fff; }
tr.solde th { font-size:1rem; color:var(--fg); border-top:2px solid var(--line); }
tr.solde.du th { color:var(--accent); }
tr.solde.rendu th { color:#2f7d4f; }

/* Page de connexion */
body.login-page main.login { max-width:380px; margin:12vh auto 0; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1.6rem 1.6rem 1.8rem; }
body.login-page h1 { font-size:1.25rem; color:var(--accent); margin-bottom:1.2rem; }
body.login-page input[type=password] { display:block; width:100%; padding:.55rem .6rem; font:inherit; border:1px solid var(--line); border-radius:6px; background:#fff; }
code.hash { display:block; word-break:break-all; padding:.5rem .6rem; background:#fff; border:1px solid var(--line); border-radius:6px; font-size:.8rem; user-select:all; }

/* Espaces (portail / administration) */
.brand .espace { font-weight:400; color:var(--muted); margin-left:.4rem; }
.brand .espace::before { content:"/ "; }
.menu-espaces .card { padding:2rem 1.6rem; }
.menu-espaces .card .ico { font-size:2.6rem; }
.card.bientot { opacity:.55; cursor:default; border-style:dashed; }
.card.bientot:hover { border-color:var(--line); }

/* Procès-verbaux */
.nowrap { white-space:nowrap; }
.pv-import { padding:1rem; background:var(--card); border:1px solid var(--line); border-radius:8px; }
.pv-liste td { vertical-align:top; }
.pv-liste .extrait { display:block; margin-top:.2rem; font-size:.82rem; color:var(--muted); }
.pv-liste mark { background:#fff1a8; padding:0 .1rem; border-radius:2px; }
.pdf-statut { font-size:.85rem; flex-basis:100%; }
form.zone-danger { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--line); }
button.btn-danger { background:#fff; color:#b3392b; border:1px solid #b3392b; }
button.btn-danger:hover { background:#b3392b; color:#fff; opacity:1; }
input[type=file] { display:block; max-width:100%; font:inherit; }
input[type=month], input[type=datetime-local] { display:block; padding:.5rem .6rem; font:inherit; border:1px solid var(--line); border-radius:6px; background:#fff; }

.extraits { margin-top:.25rem; }
.extraits .extrait { display:block; }
.extraits .extrait[hidden] { display:none; }
.ex-nav { display:flex; align-items:center; gap:.5rem; font-size:.85rem; margin-bottom:.2rem; }
.ex-nav button { border:1px solid #999; background:#fff; color:#222; border-radius:4px; min-width:2rem; height:1.7rem; padding:0; line-height:1; cursor:pointer; font:inherit; font-size:1rem; }
.ex-nav button:hover { background:#e8e8e8; }

/* Calendrier des tâches */
.barre-titre { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.6rem; margin-bottom:.4rem; }
.barre-titre h1 { margin:0; }
.nav-mois { display:flex; gap:.5rem; flex-wrap:wrap; }
.grille-mois { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:.9rem; margin-top:1rem; }
.mois-case { display:flex; flex-direction:column; gap:.5rem; min-height:130px; padding:.9rem 1rem; background:var(--card); border:1px solid var(--line); border-radius:10px; text-decoration:none; color:inherit; }
.mois-case:hover { border-color:var(--accent); }
.mois-case.courant { box-shadow:0 0 0 2px var(--accent) inset; }
.mois-nom { display:flex; justify-content:space-between; align-items:center; font-weight:700; }
.mois-nb { background:#e8e4da; color:var(--fg); font-size:.75rem; font-weight:600; border-radius:999px; padding:.05rem .5rem; }
.mots { display:flex; flex-wrap:wrap; gap:.3rem; }
.mot { background:#fbefed; color:#7a2519; border:1px solid #efc9c3; border-radius:999px; padding:.05rem .6rem; font-size:.82rem; }
.mot.plus { background:#eee; color:var(--muted); border-color:var(--line); }
.mois-case .vide { font-size:.85rem; }
article.tache { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1rem 1.2rem; margin-bottom:1rem; }
article.tache header { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:.5rem; }
article.tache h2 { margin:0; font-size:1.15rem; }
article.tache .personnes { margin:.5rem 0 0; }
.pers { display:inline-block; background:#e8e4da; border-radius:999px; padding:.05rem .65rem; margin-left:.3rem; font-size:.88rem; }
article.tache .descr { margin:.7rem 0; }
article.tache ul.docs { list-style:none; margin:.5rem 0; padding:0; }
article.tache footer { display:flex; gap:.6rem; align-items:center; margin-top:.8rem; }
article.tache footer form { margin:0; }
.noms-connus { margin:-.4rem 0 1rem; display:flex; flex-wrap:wrap; gap:.3rem; align-items:center; }
.pers-btn { padding:.1rem .6rem; font-size:.85rem; font-weight:400; color:var(--fg); background:#e8e4da; }
.doc-ligne { padding:.3rem .8rem; display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
.doc-ligne .retirer { margin:0 0 0 auto; display:flex; align-items:center; gap:.3rem; color:var(--fg); }

/* Documents comptables */
.compta-import .inline { display:flex; flex-wrap:wrap; gap:.8rem; align-items:flex-start; margin-bottom:.4rem; }
.compta-import .inline label { margin:0 0 .4rem; }
.compta-import .inline label { flex:1 1 200px; }
.compta-import button { margin-right:.8rem; }
a.mot-lien { text-decoration:none; }
.pv-liste .mot { display:inline-block; white-space:nowrap; }
.pv-liste td.compta-desc { min-width:16rem; }

/* Menus natifs (listes déroulantes, suggestions) : toujours en clair, texte sombre, même si le système est en mode sombre */
:root { color-scheme: light; }
select, option, input, textarea { color-scheme: light; }
select, select option, select optgroup { color:#222 !important; background-color:#fff !important; }

/* Liste de suggestions (assets/suggest.js) */
.suggest-wrap { position:relative; }
.suggest { position:absolute; left:0; right:0; top:100%; z-index:30; margin:.2rem 0 0; padding:.25rem 0; list-style:none; max-height:14rem; overflow:auto;
  background:#fff; color:#222; border:1px solid var(--line); border-radius:6px; box-shadow:0 4px 14px rgba(0,0,0,.15); }
.suggest[hidden] { display:none; }
.suggest li { padding:.4rem .7rem; cursor:pointer; color:#222; font-size:.95rem; }
.suggest li:hover, .suggest li.actif { background:#f0ece3; }

/* Grenier : boutons d'action l'un sous l'autre pour garder le tableau dans la page */
.grenier-liste td.r { text-align:center; }
.grenier-liste td.r .btn-lien { display:block; margin:.2rem 0; padding:.45rem .9rem; }
ul.fichiers { list-style:none; margin:.4rem 0 0; padding:0; font-size:.9rem; }
ul.fichiers li { padding:.1rem 0; }
details.fichiers-plus { margin-top:.2rem; font-size:.9rem; }
details.fichiers-plus summary { cursor:pointer; color:var(--muted); }

/* Choix de fichiers cumulatif (assets/fichiers.js) */
.fichiers-choisis ul { list-style:none; margin:.4rem 0 0; padding:0; }
.fichiers-choisis li { display:flex; align-items:center; gap:.5rem; padding:.15rem 0; font-size:.9rem; color:var(--fg); }
.fichiers-choisis button.fichier-retirer { padding:0; width:1.5rem; height:1.5rem; line-height:1; font-size:1rem; font-weight:400; color:#b3392b; background:#fff; border:1px solid #d8b4af; border-radius:50%; }
.fichiers-choisis button.fichier-retirer:hover { background:#b3392b; color:#fff; opacity:1; }
.fichiers-total { margin:.3rem 0 0; font-size:.85rem; color:var(--muted); }
.fichiers-total.depasse { color:#b3392b; font-weight:600; }
.fichiers-choisis { flex:1 1 100%; }

/* Bouton « Espaces » (retour au menu principal) : bloc coloré bien visible dans la barre */
.top nav { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 0; }
.top nav a.nav-espaces { background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; padding:.35rem .9rem; border-radius:6px; }
.top nav a.nav-espaces:hover { color:#fff; opacity:.88; }

/* Bouton « Déconnexion » : bloc orange */
.top nav a.nav-deconnexion { background:#c9650f; border-color:#c9650f; color:#fff; font-weight:600; padding:.35rem .9rem; border-radius:6px; }
.top nav a.nav-deconnexion:hover { color:#fff; opacity:.88; }
.top nav a.nav-espaces + a.nav-deconnexion, .top nav a.nav-deconnexion { margin-left:.6rem; }

/* ---- Procès-verbaux : relecture ---- */
.pv-statut-choix{display:flex;gap:1.2rem;flex-wrap:wrap;border:1px solid var(--line);border-radius:6px;padding:.5rem .8rem;margin:.6rem 0}
.pv-statut-choix label{display:flex;align-items:center;gap:.4rem;font-weight:normal}
.badge-relecture,.badge-valide{display:inline-block;font-size:.75rem;font-weight:600;padding:.1rem .55rem;border-radius:999px;vertical-align:middle}
.badge-relecture{background:#fde8c8;color:#8a4a00}
.badge-valide{background:#d9f0e0;color:#1d6b38}
.pv-a-valider{background:#fff6e6;border:1px solid #f0cf94;border-radius:8px;padding:.7rem 1rem;margin:0 0 1.2rem}
.pv-a-valider h2{margin:.1rem 0 .5rem;font-size:1.05rem}
.pv-a-valider-ligne{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;padding:.35rem 0;border-top:1px solid #f0dcb4}
.pv-a-valider-ligne:first-of-type{border-top:0}
.pv-relire-large{width:min(1400px,calc(100vw - 2rem));position:relative;left:50%;transform:translateX(-50%)}
.pv-relire{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1rem;align-items:start}
.pv-lecteur{background:#e9e7e1;border:1px solid var(--line);border-radius:8px;padding:.6rem;max-height:80vh;overflow:auto}
.pv-lecteur-statut{margin:.2rem 0 .5rem}
.pv-page{position:relative;margin:0 auto .8rem;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);max-width:100%}
.pv-page canvas{display:block;width:100%;height:100%}
.pv-pnum{position:absolute;right:6px;bottom:4px;font-size:.7rem;color:#888;pointer-events:none}
.pv-cote{position:sticky;top:.5rem;display:flex;flex-direction:column;gap:.8rem;max-height:calc(100vh - 1rem);overflow:auto}
.pv-cote-tete{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.pv-form-nouveau,.pv-valider{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.7rem}
.pv-form-nouveau textarea,.pv-rep-form textarea{width:100%;min-height:4.5rem;box-sizing:border-box}
.pv-contexte{font-size:.85rem;color:var(--muted);margin:.3rem 0}
.pv-liste{display:flex;flex-direction:column;gap:.6rem}
.pv-comm{background:var(--card);border:1px solid var(--line);border-left:4px solid #d6332a;border-radius:6px;padding:.5rem .7rem}
.pv-comm.traite{border-left-color:#2e8b57;opacity:.75}
.pv-comm.actif{box-shadow:0 0 0 2px #2a78d6}
.pv-comm-tete{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;font-size:.85rem}
.pv-num{display:inline-block;min-width:1.4rem;text-align:center;background:#d6332a;color:#fff;border-radius:999px;font-weight:700;font-size:.75rem;padding:0 .3rem}
.pv-comm.traite .pv-num{background:#2e8b57}
.pv-comm-texte{white-space:pre-wrap;word-break:break-word;margin:.3rem 0}
.pv-rep{border-top:1px dashed var(--line);margin-top:.4rem;padding-top:.3rem;font-size:.92rem}
.pv-comm-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.3rem}
.lien,.lien-danger{background:none;border:0;padding:0;font-size:.85rem;cursor:pointer;text-decoration:underline;color:#2a5fa8}
.lien-danger{color:#b3392b}
.pv-remettre{margin:1.2rem 0;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
@media (max-width:900px){.pv-relire{grid-template-columns:1fr}.pv-cote{position:static;max-height:none}.pv-lecteur{max-height:70vh}}

/* ---- Annuaire ---- */
.annuaire-liste td{vertical-align:top}
.annuaire-liste .adresse,.annuaire-liste .note{font-size:.9rem;color:#555}
.annuaire-liste td.a-contact{position:relative}
.a-note-ico{font-size:.85rem;opacity:.7;margin-left:.25rem}
.a-note-pop{display:none}
.a-note-tip{position:fixed;z-index:50;min-width:12rem;max-width:26rem;background:#2b2b2b;color:#fff;border-radius:6px;padding:.5rem .7rem;font-size:.88rem;line-height:1.35;box-shadow:0 4px 14px rgba(0,0,0,.3);word-break:break-word;pointer-events:none}
.annuaire-liste tr:hover{background:#faf8f3}
.form .annuaire-contact{grid-template-columns:minmax(0,14rem) minmax(0,1fr)}
@media (max-width:600px){.form .annuaire-contact{grid-template-columns:1fr}}
.champ-mail input,.champ-tel input{width:100%;box-sizing:border-box}
.champ-adresse{max-width:26rem}
.champ-adresse textarea{width:100%;box-sizing:border-box}
.mot-cle{display:inline-block;background:#e8e4da;color:var(--fg);border-radius:999px;padding:.05rem .6rem;font-size:.85rem;text-decoration:none;margin:0 .2rem .2rem 0}

/* ---- Invitation à relire ---- */
.btn-inviter{display:inline-block;background:#2a78d6;color:#fff;border-radius:6px;padding:.45rem .8rem;font-weight:600;text-decoration:none}
.btn-inviter:hover{background:#1f63b5}
.dest-ligne{display:flex;align-items:center;gap:.5rem;font-weight:normal;margin:.25rem 0}
.dest-ligne input{width:auto}
.annuaire-liste .a-entreprise{font-size:.9rem;color:#555}

/* ---- Calendrier : tâches ponctuelles ---- */
.cal-annuel h2,.ponctuelles h2{margin:0;font-size:1.25rem}
.ponctuelles{margin-top:3rem;padding:1.1rem 1.2rem 1.3rem;background:#ebe8df;border:1px solid var(--line);border-top:5px solid #d6932a;border-radius:10px}
.ponct-liste{display:flex;flex-direction:column;gap:.6rem;margin:.8rem 0}
.ponct{display:flex;gap:1rem;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-left:4px solid #d6932a;border-radius:8px;padding:.6rem .9rem}
.ponct.fait{border-left-color:#2e8b57;background:#f3f8f4}
.ponct.fait .ponct-desc{text-decoration:line-through;color:#666}
.ponct-corps{flex:1 1 20rem;min-width:0}
.ponct-desc{font-weight:600}
.ponct-pers{font-size:.9rem;color:#555;margin-top:.15rem}
.ponct-notes{font-size:.9rem;color:#444;margin-top:.3rem;white-space:normal;word-break:break-word}
.ponct-actions{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.ponct-fait{display:flex;gap:.5rem;align-items:center;margin:0}
.ponct-fait input[type=date]{display:block;width:auto;padding:.35rem .5rem;font:inherit;color:var(--fg);border:1px solid var(--line);border-radius:6px;background:#fff}
.btn-fait{background:#2e8b57;color:#fff;border:0;border-radius:6px;padding:.4rem .9rem;font-weight:600;cursor:pointer}
.btn-fait:hover{background:#26774a}
.ponct-ok{color:#1d6b38;font-weight:600;font-size:.9rem}
.ponct-archiver{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin:.4rem 0 0}
.ponct-archiver button[disabled]{opacity:.5;cursor:not-allowed}
.dlg-histo{width:min(720px,92vw);max-height:80vh;border:1px solid var(--line);border-radius:10px;padding:0;background:#fff;color:var(--fg);box-shadow:0 10px 40px rgba(0,0,0,.35)}
.dlg-histo::backdrop{background:rgba(0,0,0,.45)}
.dlg-tete{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.dlg-histo>p{padding:0 1rem}
.dlg-corps{padding:.4rem 1rem 1rem;overflow:auto;max-height:calc(80vh - 3.5rem)}
.histo-ligne{padding:.6rem 0;border-bottom:1px solid var(--line)}
.histo-ligne:last-child{border-bottom:0}
.btn-ajouter{display:inline-block;background:var(--accent);color:#fff !important;border-radius:6px;padding:.45rem .9rem;font-weight:600;text-decoration:none}
.btn-ajouter:hover{filter:brightness(.92)}
.ponctuelles .btn-secondary{background:#fff;border:1px solid #c9c4b6;color:var(--fg)}
.ponctuelles .btn-secondary[disabled]{background:#f4f2ec;color:#999}

/* ---- Éditeur de PV en ligne ---- */
.pv-nouveau{margin:.2rem 0 1rem;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.pv-brouillons .pv-a-valider-ligne{opacity:.95}
.badge-brouillon{display:inline-block;background:#e8e2d0;color:#5a4d1c;border-radius:4px;padding:.05rem .45rem;font-size:.8rem;font-weight:600}
.ed-page{max-width:860px;margin:0 auto}
.ed-entete{background:var(--card,#fff);border:1px solid var(--border,#d9d4c7);border-radius:8px;padding:.8rem 1rem;margin-bottom:.8rem}
.ed-meta{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:.6rem}
.ed-meta label{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}
.ed-meta label.ed-grand{flex:1;min-width:260px}
.ed-ligne{display:grid;grid-template-columns:150px 1fr auto;gap:.4rem;margin-bottom:.35rem}
.ed-ligne input{width:100%;box-sizing:border-box}
.ed-ligne .lien-danger{background:none;border:0;cursor:pointer;color:#a33}
.ed-membres{display:flex;flex-wrap:wrap;gap:.3rem;margin:.3rem 0}
.ed-barre{position:sticky;top:0;z-index:5;display:flex;gap:.25rem;flex-wrap:wrap;background:var(--card,#fff);border:1px solid var(--border,#d9d4c7);border-radius:8px 8px 0 0;padding:.35rem}
.ed-barre button{min-width:2.1rem;padding:.3rem .5rem;background:#fff;color:#222;border:1px solid #c9c3b3;border-radius:5px;cursor:pointer;font-size:.95rem}
.ed-barre button.actif{background:#222;color:#fff}
.ed-sep{width:1px;background:#d9d4c7;margin:0 .2rem}
#ed-corps{min-height:420px;background:#fff;color:#111;border:1px solid var(--border,#d9d4c7);border-top:0;border-radius:0 0 8px 8px;padding:1.6rem 2rem;font-family:"Liberation Serif","Times New Roman",Times,serif;font-size:16px;line-height:1.45;outline:none;counter-reset:pt}
#ed-corps:focus{box-shadow:0 0 0 2px var(--accent,#2a6)}
#ed-corps p{margin:0 0 .6em}
#ed-corps h2{counter-increment:pt;font-size:1.05rem;font-weight:700;margin:1.1em 0 .4em}
#ed-corps h2::before{content:counter(pt) ". "}
#ed-corps ul,#ed-corps ol{margin:.2em 0 .6em;padding-left:1.7rem}
#ed-corps ul{list-style:disc}#ed-corps ul ul{list-style:circle}#ed-corps ul ul ul{list-style:square}
#ed-corps ol{list-style:decimal}#ed-corps ol ol{list-style:lower-alpha}#ed-corps ol ol ol{list-style:lower-roman}
.ed-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.9rem}
.ed-etat{font-size:.85rem;color:#666}.ed-etat.ok{color:#2a6b3a}.ed-etat.err{color:#b32}.ed-etat.attente{color:#8a6d00}
.ed-erreur{background:#fbe9e7;border:1px solid #e0a79f;color:#7a2318;border-radius:6px;padding:.5rem .8rem;margin:.6rem 0}
.ed-avertis{background:#fff6db;border:1px solid #e2cf86;border-radius:6px;padding:.5rem .8rem;margin:.6rem 0}
@media (max-width:640px){.ed-ligne{grid-template-columns:1fr auto}.ed-ligne .ed-l-label{grid-column:1/-1}#ed-corps{padding:1rem}}
.ed-lignes-pied{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:.3rem}.ed-lignes-pied .lien{background:none;border:0;color:var(--accent,#2a6);cursor:pointer}
.ed-membres[hidden],.ed-erreur[hidden]{display:none}
.top nav .nav-user{color:var(--muted,#666);font-size:.9rem;padding:0 .3rem}

/* ---- Menu du haut sur téléphone : repliable ---- */
.nav-toggle { display:none; background:var(--accent); color:#fff; border:0; border-radius:6px; padding:.4rem .9rem; font:inherit; font-weight:600; cursor:pointer; }
@media (max-width:720px) {
  .top { flex-wrap:wrap; padding:.6rem 1rem; }
  .nav-toggle { display:inline-block; }
  .top .brand { flex:1 1 0; min-width:0; line-height:1.25; }
  .top .brand .espace { display:block; font-weight:400; }
  .top nav { display:none; width:100%; flex-direction:column; align-items:stretch; gap:.4rem; padding-top:.4rem; }
  .top nav.ouvert { display:flex; }
  .top nav a { margin-left:0 !important; text-align:center; padding:.6rem .8rem; }
  .top nav .nav-user { text-align:center; padding:.2rem 0; }
}

/* ---- Annuaire sur téléphone : une fiche par contact, sans défilement horizontal ---- */
@media (max-width:720px) {
  .scroll:has(.annuaire-liste) { overflow-x:visible; }
  .scroll .annuaire-liste { min-width:0; display:block; border:0; background:none; box-shadow:none; }
  .annuaire-liste thead { display:none; }
  .annuaire-liste tbody { display:block; }
  .annuaire-liste tr { display:block; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:.7rem .9rem; margin-bottom:.7rem; }
  .annuaire-liste tr[hidden] { display:none; }
  .annuaire-liste td { display:block; border:0; padding:.15rem 0; text-align:left; }
  .annuaire-liste td:empty { display:none; }
  .annuaire-liste td.r { text-align:right; padding-top:.4rem; }
  .annuaire-liste .a-note-ico { display:none; }
  .annuaire-liste .a-note-pop { display:block; margin-top:.3rem; font-size:.9rem; color:#555; background:#faf8f3; border-left:3px solid #d9d4c7; padding:.3rem .6rem; word-break:break-word; }
  .annuaire-liste a[href^="mailto"] { word-break:break-all; }
  .annuaire-liste tr:hover { background:var(--card); }
}

/* ---- Listes (PV, documents comptables, grenier) sur téléphone : une carte par ligne ---- */
@media (max-width:720px) {
  .scroll:has(.pv-liste) { overflow-x:visible; }
  .scroll .pv-liste { min-width:0; display:block; border:0; background:none; box-shadow:none; }
  .pv-liste thead { display:none; }
  .pv-liste tbody { display:block; }
  .pv-liste tr { display:block; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:.7rem .9rem; margin-bottom:.7rem; }
  .pv-liste tr:hover { background:var(--card); }
  .pv-liste td { display:block; border:0; padding:.15rem 0; text-align:left; white-space:normal; }
  .pv-liste td:empty { display:none; }
  .pv-liste td:first-child { font-weight:700; }
  .pv-liste td.r { text-align:right; padding-top:.45rem; }
  .pv-liste td.r .btn-lien { margin:.15rem 0 .15rem .3rem; display:inline-block; }
  .pv-liste td.nowrap { white-space:normal; }
}

/* ---- Recherche « Du / Au » : sur la même ligne, en plus petit, sur téléphone ---- */
.dates-du-au { display:contents; }
@media (max-width:720px) {
  .dates-du-au { display:flex; gap:1rem; width:100%; }
  .dates-du-au label { flex:1 1 0; min-width:0; font-size:.85rem; }
  .dates-du-au input[type=date] { width:100%; min-width:0; font-size:.9rem; padding:.3rem .4rem; }
}

/* ---- Champs date : ne dépassent jamais de leur carte (Safari/iPhone y ajoute une largeur propre) ---- */
input[type=date], input[type=month] { min-width:0; max-width:100%; box-sizing:border-box; -webkit-appearance:none; appearance:none; min-height:2.4rem; text-align:left; }
input[type=date]::-webkit-date-and-time-value, input[type=month]::-webkit-date-and-time-value { text-align:left; min-width:0; }
.compta-import .inline label, .pv-import label, .form label { min-width:0; }
@media (max-width:720px) {
  .pv-liste .mail-cell { word-break:break-all; }
  .pv-liste td.muted-cell { color:var(--muted); font-size:.85rem; }
  .pv-liste td.muted-cell:not(:empty)::before { content:"Dernière connexion : "; }
}

/* ---- Tableaux de chiffres (Charges d'énergie) sur téléphone : une carte par ligne, libellé devant chaque valeur ---- */
@media (max-width:720px) {
  .scroll:has(.table-cartes) { overflow-x:visible; }
  .scroll .table-cartes { min-width:0; display:block; border:0; background:none; box-shadow:none; }
  .table-cartes thead { display:none; }
  .table-cartes tbody { display:block; }
  .table-cartes tr { display:block; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:.6rem .9rem; margin-bottom:.7rem; }
  .table-cartes td { display:block; border:0; padding:.12rem 0; text-align:left; white-space:normal; }
  .table-cartes td:first-child { font-weight:700; padding-bottom:.3rem; }
  .table-cartes td[data-l] { display:flex; justify-content:space-between; gap:1rem; text-align:right; }
  .table-cartes td[data-l]::before { content:attr(data-l); color:var(--muted); font-size:.88rem; text-align:left; }
  .table-cartes td:empty { display:none; }
  .analyse .table-cartes td:first-child { font-weight:400; }
  .analyse .table-cartes td.val { font-weight:700; text-align:left; font-size:1.05rem; }
  .dates-du-au input[type=month] { width:100%; min-width:0; font-size:.9rem; padding:.3rem .4rem; }
}

/* Fiches (formulaires en tableau) sur téléphone : le tableau devient une suite de blocs */
@media (max-width:720px) {
  table.table-cartes { display:block; width:100%; border:0; background:none; box-shadow:none; }
  table.releve.table-cartes tr { padding:.6rem .8rem; }
  table.releve td input[type=text], table.releve td input[type=date] { width:100%; text-align:left; }
  table.releve td.prev[data-l] { font-size:.9rem; }
  table.releve td.conso[data-l] { font-size:.9rem; }
  .releve-auto .muted { display:block; margin:.4rem 0 0; }
  .periode .dates-du-au label { margin:0; }
}

/* ---- Calibration des compteurs ---- */
.calibration { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--line); }
.calib-zone { margin-top:1rem; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:.8rem 1rem; }
.calib-zone .erreur { color:var(--accent); }
.calib-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.calib-zone[hidden] { display:none; }
@media (max-width:720px) { .calib-zone table.releve { font-size:.85rem; } .calib-zone .scroll { overflow-x:auto; } }
@media (max-width:720px) { .table-cartes td[data-l] input { flex:1 1 0; min-width:0; width:auto; } .table-cartes td[data-l]:has(input)::before { flex:0 0 7.5rem; } }

/* Éditeur de PV : pleine largeur de la page + en-tête repliable */
.ed-page{width:min(1500px,calc(100vw - 2rem));margin-left:calc(50% - min(1500px,calc(100vw - 2rem)) / 2);max-width:none}
#ed-corps{min-height:65vh}
.ed-entete-tete{display:flex;align-items:center;gap:.8rem;min-width:0}
.ed-bascule{background:none;border:0;padding:.1rem .2rem;font-weight:600;cursor:pointer;color:inherit;white-space:nowrap}
.ed-resume{color:var(--muted,#666);font-size:.9rem;display:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-entete.replie .ed-resume{display:block}
.ed-entete.replie .ed-entete-corps{display:none}
.ed-entete.replie{padding:.4rem 1rem}
.ed-entete:not(.replie) .ed-entete-corps{margin-top:.5rem}

/* Remarques rattachées au texte : couche de texte du PDF, surlignages, citations */
.pv-textlayer{position:absolute;left:0;top:0;transform-origin:0 0;line-height:1;overflow:hidden;text-size-adjust:none;-webkit-text-size-adjust:none}
.pv-textlayer span,.pv-textlayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}
.pv-textlayer ::selection{background:rgba(42,120,214,.35)}
::highlight(pv-ouvert){background-color:rgba(255,214,0,.5)}
::highlight(pv-traite){background-color:rgba(80,160,100,.28)}
::highlight(pv-actif){background-color:rgba(255,140,0,.65)}
::highlight(pv-nouveau){background-color:rgba(42,120,214,.4)}
.pv-cit{margin:.3rem 0;padding:.2rem .6rem;border-left:3px solid #e3c200;background:rgba(255,214,0,.12);font-style:italic;font-size:.9rem;word-break:break-word}
.pv-comm.traite .pv-cit{border-left-color:#7fb28c;background:rgba(80,160,100,.1)}
.pv-cit-alerte{font-size:.82rem;color:#9a5b00;margin:.2rem 0}
.pv-cit-mini{font-style:italic}
/* Éditeur : colonne des remarques à droite du texte */
.ed-deux{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start}
.ed-deux.sans{grid-template-columns:minmax(0,1fr)}
.ed-remarques{position:sticky;top:.5rem;max-height:calc(100vh - 1rem);overflow:auto;display:flex;flex-direction:column;gap:.6rem}
.ed-remarques-tete{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
@media (max-width:1000px){.ed-deux{grid-template-columns:minmax(0,1fr)}.ed-remarques{position:static;max-height:none}}

/* Bouton « Supprimer » dans l'en-tête de la page de relecture */
.form-supprimer-pv{display:inline;margin:0}
.nav-mois button.btn-danger{padding:.6rem 1.2rem;font-weight:600;border-radius:6px}

/* Documents joints aux fiches de consommation */
fieldset.fiche-docs { margin:1.2rem 0; padding:.6rem 0 .8rem; border:1px solid var(--line); border-radius:6px; }
fieldset.fiche-docs legend { padding:0 .5rem; font-weight:600; }
fieldset.fiche-docs > label { display:block; padding:.3rem .8rem; }
td a[href*="fiche_doc"] { white-space:nowrap; }

/* Aperçu d'un document joint (fenêtre superposée) */
body.doc-ouvert { overflow:hidden; }
.doc-fond { position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; padding:2vh 2vw; }
.doc-boite { background:#fff; border-radius:8px; width:min(1000px,100%); height:100%; max-height:96vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 10px 40px rgba(0,0,0,.4); }
.doc-tete { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; padding:.6rem .8rem; border-bottom:1px solid var(--line); }
.doc-titre { flex:1 1 12rem; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.doc-btn { display:inline-block; padding:.4rem .9rem; border-radius:6px; border:1px solid transparent; background:var(--accent, #b3392b); color:#fff; font:inherit; font-weight:600; text-decoration:none; cursor:pointer; }
.doc-btn-sec { background:#e8e4da; color:var(--fg); }
.doc-corps { flex:1; min-height:0; background:#f1efe9; display:flex; align-items:center; justify-content:center; overflow:auto; }
.doc-corps iframe { width:100%; height:100%; border:0; background:#fff; }
.doc-corps img { max-width:100%; max-height:100%; object-fit:contain; }
@media (max-width:600px) { .doc-fond { padding:0; } .doc-boite { max-height:100vh; border-radius:0; } }

/* Case « Appliquer » à droite du montant d'amortissement, alignée sur le champ */
form.inline label.amort-actif { display:flex; align-items:center; gap:.4rem; padding-bottom:.55rem; white-space:nowrap; }
