/* ============ OLIVE & SOL — design system ============ */
:root{
  /* Marque */
  --olive:#3F4A20;--terra:#D65F37;--apricot:#F58E62;--sun:#F5AE2D;--peach:#F3C2AE;--cream:#F7F0E3;
  /* Rôles */
  --bg:var(--cream);--surface:#FFFAF2;--ink:#2A2F16;--muted:#6B6452;--line:#EADFC8;
  --cta:#BF4E2A;--cta-hover:#A8431F;--cta-ink:#FFF8EC;
  --ok:#3F4A20;--ok-soft:#E9E8CF;--warn-soft:#FCEBC6;--danger:#C4522D;--danger-soft:#F9DDD0;--peach-soft:#FBE4D8;
  /* Typographies */
  --display:"Fraunces","Cooper Black",Georgia,serif;--body:"DM Sans","Segoe UI",system-ui,sans-serif;
  --t-hero:clamp(34px,8vw,56px);--t-h1:30px;--t-h2:22px;--t-h3:17px;--t-body:16px;--t-small:13.5px;
  /* Espacements et formes */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
  --r-sm:12px;--r-md:18px;--r-lg:24px;--r-xl:28px;--r-pill:999px;
  --shadow:0 6px 20px rgba(63,74,32,.08);--shadow-cta:0 4px 12px rgba(191,78,42,.22);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#1C2010;--surface:#262B16;--ink:#F7F0E3;--muted:#CFC3A9;--line:#394020;--ok:#D3D8A2;--ok-soft:#333A1C;
  --cta:#E07443;--cta-hover:#EC8656;--cta-ink:#1C2010;--danger:#F58E62;--danger-soft:#46271A;--warn-soft:#3E3217;--peach-soft:#46302A;--shadow:none}}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--t-body)/1.5 var(--body);-webkit-font-smoothing:antialiased}
h1,h2,h3,.display{font-family:var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--olive);line-height:1.1;margin:0 0 var(--s2)}
h1{font-size:var(--t-h1);font-weight:800}h2{font-size:var(--t-h2);font-weight:750}h3{font-size:var(--t-h3);font-weight:700}
.muted{color:var(--muted)}
/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 20px;border-radius:var(--r-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--olive);font:700 15px var(--body);cursor:pointer;text-decoration:none;transition:transform .12s,background .15s}
.btn:active{transform:scale(.96)}.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-primary{background:var(--cta);border-color:var(--cta);color:var(--cta-ink);box-shadow:var(--shadow-cta)}.btn-primary:hover{background:var(--cta-hover)}
.btn-dark{background:var(--olive);border-color:var(--olive);color:var(--cream)}
.btn-small{min-height:36px;padding:7px 14px;font-size:14px}
/* Cartes, badges, alertes */
.card{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--s4)}
.badge{display:inline-flex;align-items:center;gap:4px;border-radius:var(--r-pill);padding:3px 10px;font-size:12.5px;font-weight:700;background:var(--peach-soft);color:var(--ink)}
.badge-new{background:var(--sun);color:#3F2A00}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-danger{background:var(--danger-soft);color:var(--danger)}
.alert{display:flex;gap:10px;border-radius:var(--r-md);padding:12px 14px;background:var(--warn-soft)}
.alert-ok{background:var(--ok-soft)}.alert-danger{background:var(--danger-soft)}
/* Champs */
.field{display:block;margin:0 0 var(--s4)}.field span{display:block;font-size:var(--t-small);font-weight:700;color:var(--muted);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;min-height:46px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:16px var(--body);padding:10px 14px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--apricot);box-shadow:0 0 0 3px rgba(245,142,98,.25)}
:focus-visible{outline:3px solid var(--apricot);outline-offset:2px}
/* Navigation mobile */
.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;background:var(--surface);box-shadow:0 -4px 18px rgba(63,74,32,.07);padding:6px 0 calc(6px + env(safe-area-inset-bottom,0px));z-index:40}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:700;min-width:60px}
.tabbar a[aria-current="page"]{color:var(--cta)}
/* Micro-animations */
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rise{animation:rise .35s ease both}
@media (prefers-reduced-motion:reduce){.rise{animation:none}.btn:active{transform:none}}
