/* EntomoSphère — « Mon élevage » : carnet de bacs, journal, rappels */

.elv{ margin-top:44px; }
.elv__head{ display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:12px; }
.elv__t{ font-family:var(--font-hand); font-weight:700; font-size:2.3rem; color:var(--olive-ink); margin:0; line-height:.9; }
.elv__acts{ margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }

.elv__stats{ display:flex; gap:18px; flex-wrap:wrap; font-size:.84rem; color:var(--ink-soft); margin-bottom:14px; }
.elv__stats b{ color:var(--olive-deep); font-size:1.05rem; }
.elv__alert{ color:var(--terra-2); font-weight:600; }
.elv__alert b{ color:var(--terra-2); }
.elv__ok{ color:var(--olive-deep); }

.elv__vide{ text-align:center; padding:36px 24px; border-radius:16px;
  background:radial-gradient(circle at 30% 20%, var(--paper-2), var(--paper-3));
  box-shadow:inset 0 0 0 1px rgba(120,105,60,.16); }
.elv__vide span{ font-size:2.6rem; display:block; }
.elv__vide b{ display:block; font-family:var(--font-hand); font-size:1.9rem; color:var(--olive-deep); margin:6px 0 4px; }
.elv__vide p{ color:var(--ink-soft); font-size:.9rem; line-height:1.6; max-width:46ch; margin:0 auto 16px; }

.elv__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:16px; }

.elv-bac{ background:var(--paper-2); border-radius:16px; padding:16px;
  box-shadow:var(--shadow-sm), inset 0 0 0 1px rgba(120,105,60,.14); }
.elv-bac--alert{ box-shadow:var(--shadow-sm), inset 0 0 0 1.5px rgba(169,84,47,.45); }
.elv-bac__top{ display:flex; align-items:center; gap:11px; }
.elv-bac__top img{ width:52px; height:52px; border-radius:11px; object-fit:cover; flex:0 0 auto;
  box-shadow:inset 0 0 0 1px rgba(78,102,54,.2); }
.elv-bac__ph{ width:52px; height:52px; border-radius:11px; display:grid; place-items:center; font-size:1.6rem;
  background:var(--paper-3); flex:0 0 auto; }
.elv-bac__id{ flex:1; min-width:0; }
.elv-bac__id b{ display:block; font-size:1rem; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.elv-bac__id span{ display:block; font-size:.8rem; color:var(--olive-deep); font-weight:600; }
.elv-bac__id time{ font-size:.72rem; color:var(--ink-faint); }
.elv-bac__menu{ background:none; border:0; color:var(--ink-faint); font-size:1.3rem; cursor:pointer;
  padding:2px 8px; border-radius:8px; line-height:1; align-self:flex-start; }
.elv-bac__menu:hover{ background:rgba(131,147,81,.14); color:var(--olive-deep); }
.elv-bac__cond{ font-size:.76rem; color:var(--ink-faint); margin-top:8px; }

.elv-bac__soins{ display:flex; gap:6px; flex-wrap:wrap; margin:10px 0 12px; }
.elv-soin{ font-size:.72rem; font-weight:600; padding:.32em .7em; border-radius:20px;
  background:rgba(131,147,81,.15); color:var(--olive-deep); white-space:nowrap; }
.elv-soin--soon{ background:rgba(176,134,46,.18); color:#7a5c15; }
.elv-soin--now,
.elv-soin--late{ background:rgba(169,84,47,.15); color:var(--terra-2); }
.elv-soin--new{ background:rgba(120,105,60,.13); color:var(--ink-soft); }
.elv-soin--joy{ background:rgba(176,134,46,.2); color:#7a5c15; }

.elv-bac__do{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.elv-bac__do button{ font-family:inherit; font-size:.78rem; font-weight:600; color:var(--olive-deep);
  background:var(--paper); border:0; border-radius:9px; padding:.55em .4em; cursor:pointer;
  box-shadow:inset 0 0 0 1.5px var(--sage-2); transition:background .13s, box-shadow .13s, transform .13s; }
.elv-bac__do button:hover{ background:rgba(131,147,81,.14); box-shadow:inset 0 0 0 1.5px var(--olive); transform:translateY(-1px); }
.elv-bac__do button:active{ transform:none; }

.elv-bac__log{ list-style:none; margin:12px 0 0; padding:10px 0 0; border-top:1px dashed var(--sage-2); }
.elv-bac__log li{ display:flex; align-items:center; gap:7px; font-size:.78rem; color:var(--ink-soft); padding:3px 0; }
.elv-bac__log li span{ flex:0 0 auto; }
.elv-bac__log li time{ margin-left:auto; font-size:.7rem; color:var(--ink-faint); white-space:nowrap; }
.elv-bac__vide{ font-size:.76rem; color:var(--ink-faint); font-style:italic; margin:12px 0 0;
  padding-top:10px; border-top:1px dashed var(--sage-2); }

/* ---------- modale ---------- */
.elv-modal{ position:fixed; inset:0; z-index:112; background:rgba(40,34,16,.55); backdrop-filter:blur(3px);
  display:grid; place-items:center; padding:18px; overflow-y:auto; }
.elv-modal__box{ position:relative; width:min(460px,95vw); background:var(--paper-2); border-radius:18px;
  padding:28px 26px 22px; box-shadow:var(--shadow-lg); margin:auto;
  animation:elvPop .22s cubic-bezier(.25,1.4,.5,1); }
@keyframes elvPop{ from{ transform:translateY(12px) scale(.97); opacity:0; } to{ transform:none; opacity:1; } }
.elv-modal__box h3{ font-family:var(--font-hand); font-size:1.9rem; color:var(--olive-ink); margin:0 0 14px; line-height:1; }
.elv-modal__x{ position:absolute; top:11px; right:11px; width:32px; height:32px; border-radius:50%; border:0;
  background:none; color:var(--ink-faint); cursor:pointer; font-size:.9rem; }
.elv-modal__x:hover{ background:rgba(131,147,81,.14); color:var(--olive-deep); }
.elv-modal__box label{ display:block; font-size:.78rem; font-weight:600; color:var(--ink-soft); margin:10px 0 4px; }
.elv-opt{ font-weight:400; color:var(--ink-faint); }
.elv-modal__box input, .elv-modal__box select, .elv-modal__box textarea{
  width:100%; font-family:inherit; font-size:.92rem; padding:.6em .8em; border:none; border-radius:10px;
  background:var(--paper); box-shadow:inset 0 0 0 1.5px var(--sage-2); color:var(--ink); }
.elv-modal__box input:focus, .elv-modal__box select:focus, .elv-modal__box textarea:focus{
  outline:none; box-shadow:inset 0 0 0 2px var(--olive); }
.elv-modal__box textarea{ resize:vertical; line-height:1.5; }
.elv-two{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.elv-unit{ display:block; font-size:.7rem; color:var(--ink-faint); margin-top:3px; }
.elv-modal__foot{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:18px; }
.elv-sp{ flex:1; }

@media (max-width:560px){
  .elv-two{ grid-template-columns:1fr; }
  .elv__grid{ grid-template-columns:1fr; }
}

/* bouton certificat (dans les commandes) */
.order__certif{ margin-left:0 !important; }

body.night .elv-bac__do button{ background:var(--paper); }
body.night .elv__vide{ background:radial-gradient(circle at 30% 20%, var(--paper-2), var(--paper-3)); }

/* ---------- badges d'éleveur ---------- */
.elv-badges{ margin:16px 0 4px; }
.elv-badges > b{ display:block; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-faint); margin-bottom:8px; }
.elv-badges__l{ display:flex; flex-wrap:wrap; gap:8px; }
.elv-badge{ display:inline-flex; align-items:center; gap:7px; font-size:.8rem; font-weight:600;
  color:var(--ink-faint); background:var(--paper-2); border-radius:20px; padding:.42em .95em;
  box-shadow:inset 0 0 0 1.5px var(--sage-2); filter:grayscale(1); opacity:.55; cursor:default; }
.elv-badge i{ font-style:normal; font-size:1.05rem; line-height:1; }
.elv-badge.on{ filter:none; opacity:1; color:var(--olive-deep); background:rgba(131,147,81,.16);
  box-shadow:inset 0 0 0 1.5px var(--olive); }

/* ---------- courbe de population ---------- */
.elv-courbe{ display:flex; align-items:center; gap:12px; margin:10px 0 2px;
  background:var(--paper-2); border-radius:10px; padding:8px 12px;
  box-shadow:inset 0 0 0 1px rgba(120,105,60,.14); }
.elv-courbe svg{ width:150px; height:36px; flex:0 0 auto; overflow:visible; }
.elv-courbe .aire{ fill:rgba(131,147,81,.22); stroke:none; }
.elv-courbe .trait{ fill:none; stroke:var(--olive); stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.elv-courbe circle{ fill:var(--olive-deep); }
.elv-courbe span{ font-size:.78rem; color:var(--ink-faint); line-height:1.35; }
.elv-courbe b{ color:var(--olive-deep); font-size:.95rem; }
.elv-hint{ font-size:.82rem; color:var(--ink-soft); line-height:1.55; margin:8px 0 0; }
