/* Système visuel commun (vitrine, connexion, espace privé).
   Identité reprise du tableau de bord : verts profonds, ivoire, filet doré ; fonds clairs dominants.
   Chaque paire texte/fond utilisée ci-dessous atteint au moins 4,5:1 (vérifié par tests/contraste.mjs). */
:root{
  color-scheme:light;
  --fond:#f8f5ee;--fond-2:#f1ebdd;--papier:#fffdf8;--papier-2:#fbf8f0;
  --encre:#14241d;--encre-2:#33433b;--mu:#5c675f;--bd:#e2d9c4;--bd-2:#d3c6a6;
  --vert-950:#06201a;--vert-900:#0a2a1f;--vert-800:#0d3b2c;--vert-700:#0b5a3e;--vert-600:#1f6e4f;--vert-500:#2e7d5b;--vert-200:#bfdccb;--vert-100:#e4f0e8;--vert-50:#f1f7f2;
  --or:#b08d47;--or-txt:#7a5c1c;--or-100:#f5ecd8;
  --crit:#8f1d1d;--crit-bg:#fbeaea;--imp:#8a4300;--imp-bg:#fdefe0;--surv:#6b5300;--surv-bg:#fbf4d6;--ok:#1d6445;--ok-bg:#e4f3ea;--inf:#2a4e75;--inf-bg:#e6eef7;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;--sans:Montserrat,system-ui,-apple-system,'Segoe UI',sans-serif;
  --r:14px;--r-s:9px;--ombre:0 1px 2px rgba(10,42,31,.05),0 8px 24px -12px rgba(10,42,31,.18);--ombre-l:0 30px 60px -30px rgba(10,42,31,.35);
  --anneau:#0b5a3e;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--fond);color:var(--encre);font:400 15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,svg{max-width:100%;display:block}
a{color:var(--vert-700);text-underline-offset:3px}
a:hover{color:var(--vert-900)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.12;margin:0 0 .4em;color:var(--encre);letter-spacing:-.01em}
:focus-visible{outline:3px solid var(--anneau);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lien-evitement{position:absolute;left:12px;top:-80px;z-index:100;background:var(--papier);color:var(--encre);border:2px solid var(--anneau);padding:8px 14px;border-radius:8px}
.lien-evitement:focus{top:12px}
.surtitre{font:600 11px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--or-txt)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:999px;border:1px solid transparent;font:600 13px/1 var(--sans);letter-spacing:.04em;cursor:pointer;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none}
.btn-p{background:var(--vert-700);color:#fff}
.btn-p:hover{background:var(--vert-800);color:#fff;box-shadow:0 10px 24px -12px rgba(11,90,62,.7)}
.btn-s{background:var(--papier);color:var(--vert-800);border-color:var(--bd-2)}
.btn-s:hover{border-color:var(--vert-700);color:var(--vert-900)}
.btn-t{background:transparent;color:var(--vert-800);padding-inline:12px}
.btn-t:hover{background:var(--vert-50)}
.btn-d{background:var(--papier);color:var(--crit);border-color:#d99a9a}
.btn-d:hover{background:var(--crit-bg)}
.btn-sm{min-height:36px;padding:7px 14px;font-size:12px}
.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;box-shadow:none}

/* Formulaires */
.champ{display:flex;flex-direction:column;gap:6px;margin:0 0 16px}
.champ label{font:600 12.5px/1.3 var(--sans);color:var(--encre-2)}
.champ .aide{font-size:12.5px;color:var(--mu)}
input,select,textarea{font:inherit;color:var(--encre);background:var(--papier);border:1px solid var(--bd-2);border-radius:10px;padding:11px 13px;min-height:44px;width:100%}
input:hover,select:hover,textarea:hover{border-color:var(--vert-500)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--vert-700);box-shadow:0 0 0 3px rgba(11,90,62,.18)}
input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--vert-700)}

/* Messages */
.msg{border-radius:10px;padding:12px 14px;margin:0 0 16px;font-size:14px;border:1px solid}
.msg-err{background:var(--crit-bg);color:var(--crit);border-color:#e7b4b4}
.msg-ok{background:var(--ok-bg);color:var(--ok);border-color:#a9d3bb}
.msg-inf{background:var(--inf-bg);color:var(--inf);border-color:#b9cde3}
.msg-av{background:var(--surv-bg);color:var(--surv);border-color:#e2d48c}

/* Pastilles */
.pastille{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font:600 11.5px/1.4 var(--sans);border:1px solid var(--bd);background:var(--papier-2);color:var(--encre-2);white-space:nowrap}
.pastille svg{width:13px;height:13px}
.p-crit{background:var(--crit-bg);color:var(--crit);border-color:#e7b4b4}
.p-imp{background:var(--imp-bg);color:var(--imp);border-color:#e9c496}
.p-surv{background:var(--surv-bg);color:var(--surv);border-color:#e2d48c}
.p-ok{background:var(--ok-bg);color:var(--ok);border-color:#a9d3bb}
.p-inf{background:var(--inf-bg);color:var(--inf);border-color:#b9cde3}
.p-or{background:var(--or-100);color:var(--or-txt);border-color:#e3cf9f}

/* Barre supérieure des pages privées */
.barre{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;padding:12px clamp(16px,4vw,40px);background:rgba(248,245,238,.86);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--bd)}
.marque{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--vert-900);font:500 21px/1 var(--serif);letter-spacing:.01em}
.marque svg{width:30px;height:30px}
.barre .esp{flex:1}
.menu-compte{position:relative}
.menu-compte>button{display:inline-flex;align-items:center;gap:10px;background:var(--papier);border:1px solid var(--bd);border-radius:999px;padding:5px 14px 5px 5px;min-height:44px;cursor:pointer;font:500 13px var(--sans);color:var(--encre)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--vert-700);color:#fff;display:grid;place-items:center;font:600 13px var(--sans)}
.menu-compte [role=menu]{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:var(--papier);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--ombre-l);padding:6px;display:none}
.menu-compte.ouvert [role=menu]{display:block}
.menu-compte [role=menuitem]{display:block;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:8px;font:500 14px var(--sans);color:var(--encre);cursor:pointer;text-decoration:none}
.menu-compte [role=menuitem]:hover,.menu-compte [role=menuitem]:focus-visible{background:var(--vert-50)}

/* Cartes et panneaux */
.carte{background:var(--papier);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--ombre)}
dialog{border:0;border-radius:18px;padding:0;max-width:min(680px,calc(100vw - 24px));width:100%;background:var(--papier);color:var(--encre);box-shadow:var(--ombre-l)}
dialog::backdrop{background:rgba(6,32,26,.42);backdrop-filter:blur(3px)}
.dlg-t{display:flex;align-items:center;gap:12px;padding:20px 24px 8px}
.dlg-t h2{font-size:28px;margin:0;flex:1}
.dlg-c{padding:8px 24px 24px;max-height:calc(100vh - 140px);overflow:auto}
.fermer{width:40px;height:40px;border-radius:50%;border:1px solid var(--bd);background:var(--papier-2);cursor:pointer;display:grid;place-items:center;color:var(--encre)}
.fermer svg{width:18px;height:18px}
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font:600 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mu);padding:8px 10px;border-bottom:1px solid var(--bd)}
.tbl td{padding:10px;border-bottom:1px solid var(--bd);vertical-align:middle}
.vide{padding:40px 20px;text-align:center;color:var(--mu)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}
@media (max-width:560px){.barre{gap:10px;padding-inline:14px}.barre .marque span{display:none}}
