/* ═══════════════════════════════════════════════════════════════════════════════
   SILLONS — Feuille de style principale
   Thème : journal botanique · sombre (or & verts) ou clair (papier & encre verte)
═══════════════════════════════════════════════════════════════════════════════ */

:root{
  color-scheme:dark;
  /* Couleurs de fond */
  --bg: #0c1510;
  --bg2: #101b16;
  --card: #131f19;
  --card2: #17271f;
  --border: #1f2e27;
  --border2: #2a3d33;
  --overlay: rgba(255,255,255,.03);
  --overlay2: rgba(255,255,255,.06);
  --sidebar-bg: linear-gradient(180deg,#0a1310 0%,#0c1611 100%);
  --topbar-bg: rgba(12,21,16,.88);
  --input-bg: #0c1510;
  --on-accent: #0c1510;
  --scrim: rgba(0,0,0,.6);

  /* Couleurs texte */
  --cream: #f0e9d8;
  --light: #c4c7b8;
  --muted: #7d8a76;

  /* Couleurs sémantiques */
  --green: #5bb87a;
  --green2: #7ec89a;
  --green-d: #3d8857;
  --gold: #d4a843;
  --gold2: #e4b853;
  --gold-d: #a88534;
  --red: #e06060;
  --blue: #5aabcc;
  --orange: #e8924a;
  --purple: #9b6db5;
  --teal: #4aabaa;

  /* Typographie */
  --font-d: 'Cormorant Garamond', Georgia, serif;
  --font-ui: 'Bricolage Grotesque', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', Consolas, monospace;

  /* Rayons & ombres */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --sh-sm: 0 1px 2px rgba(0,0,0,.3);
  --sh-md: 0 4px 12px rgba(0,0,0,.35);
  --sh-lg: 0 8px 24px rgba(0,0,0,.5);

  --nav-h: 0px;
}

:root[data-theme="light"]{
  color-scheme:light;
  --bg: #f4efe2;
  --bg2: #ede6d3;
  --card: #fffcf4;
  --card2: #f6f0e1;
  --border: #e4dac4;
  --border2: #d2c5a7;
  --overlay: rgba(60,45,10,.035);
  --overlay2: rgba(60,45,10,.07);
  --sidebar-bg: linear-gradient(180deg,#efe8d5 0%,#e9e0ca 100%);
  --topbar-bg: rgba(244,239,226,.9);
  --input-bg: #fffdf8;
  --on-accent: #fffcf4;
  --scrim: rgba(40,35,20,.45);

  --cream: #1d2a21;
  --light: #475345;
  --muted: #7a8170;

  --green: #2e7d4a;
  --green2: #3c9a5c;
  --green-d: #23633a;
  --gold: #946d12;
  --gold2: #a97d17;
  --gold-d: #765610;
  --red: #c0392b;
  --blue: #2b78a0;
  --orange: #c4661a;
  --purple: #7a4c99;
  --teal: #2a8584;

  --sh-sm: 0 1px 2px rgba(60,45,10,.08);
  --sh-md: 0 4px 14px rgba(60,45,10,.10);
  --sh-lg: 0 10px 30px rgba(60,45,10,.16);
}

*{margin:0;padding:0;box-sizing:border-box}
html,body{
  height:100%;
  background:var(--bg);
  color:var(--cream);
  font-family:var(--font-ui);
  font-size:14px;
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
a{color:inherit;text-decoration:none}
input,select,textarea{font-family:inherit;color:inherit}
[hidden]{display:none !important}

.scroll,*{scrollbar-width:thin;scrollbar-color:var(--border2) transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}

:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ═══ LAYOUT GLOBAL ═══════════════════════════════════════════════════════════ */
#app{
  display:grid;
  grid-template-columns:220px 1fr;
  height:100vh;height:100dvh;
  max-width:100vw;
}
#app.sans-nav{grid-template-columns:1fr}

/* ═══ SIDEBAR ═════════════════════════════════════════════════════════════════ */
#sidebar{
  background:var(--sidebar-bg);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
}
#sidebar::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 200px 300px at -20% 20%, rgba(91,184,122,.06), transparent 60%),
    repeating-linear-gradient(180deg,transparent 0,transparent 42px,rgba(212,168,67,.03) 42px,rgba(212,168,67,.03) 43px);
}

.sb-brand{padding:22px 20px 18px;border-bottom:1px solid var(--border);position:relative;z-index:1}
.sb-logo{display:flex;align-items:center;gap:11px;margin-bottom:3px}
.sb-leaf{width:26px;height:26px;color:var(--gold);flex-shrink:0}
.sb-name{font-family:var(--font-d);font-size:1.75rem;font-weight:500;letter-spacing:.01em;color:var(--cream);line-height:1}
.sb-tagline{
  font-family:var(--font-mono);font-size:.56rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--muted);padding-left:37px;margin-top:2px;
}

.sb-nav{flex:1;padding:14px 10px;display:flex;flex-direction:column;gap:1px;position:relative;z-index:1}
.sb-it{
  display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;
  color:var(--light);cursor:pointer;font-size:.84rem;font-weight:500;
  transition:all .14s ease;position:relative;
}
.sb-it:hover{background:var(--overlay);color:var(--cream)}
.sb-it.active{background:linear-gradient(90deg,rgba(212,168,67,.16),rgba(212,168,67,.04));color:var(--gold)}
.sb-it.active::before{
  content:'';position:absolute;left:0;top:8px;bottom:8px;width:2px;
  background:var(--gold);border-radius:0 2px 2px 0;
}
.sb-sep{height:1px;background:var(--border);margin:10px 8px}
.sb-ic{width:18px;height:18px;flex-shrink:0;opacity:.9}
.sb-it .sb-lbl{flex:1}
.sb-badge{
  background:rgba(91,184,122,.2);color:var(--green);
  padding:1px 6px;border-radius:8px;
  font-family:var(--font-mono);font-size:.6rem;font-weight:700;
}
.sb-badge:empty{display:none}
.sb-badge-alert{background:rgba(224,96,96,.2);color:var(--red)}

.sb-foot{padding:12px 14px;border-top:1px solid var(--border);background:var(--overlay);position:relative;z-index:1}
.sb-weather{
  display:flex;align-items:center;gap:9px;padding:8px 10px;
  background:rgba(90,171,204,.07);border:1px solid rgba(90,171,204,.18);
  border-radius:var(--r-sm);margin-bottom:8px;
}
.sb-w-ic{font-size:1.2rem}
.sb-w-temp{font-family:var(--font-mono);font-size:.82rem;font-weight:700;color:var(--blue)}
.sb-w-desc{font-size:.58rem;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;margin-top:1px}
.sb-user{display:flex;align-items:center;gap:8px;padding:6px 4px}
.sb-avatar{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#d4a843,#a08030);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-d);font-size:.85rem;font-weight:600;color:#0c1510;
}
.sb-user-name{font-size:.72rem;font-weight:500}
.sb-user-loc{font-family:var(--font-mono);font-size:.55rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}

/* ═══ NAVIGATION MOBILE ══════════════════════════════════════════════════════ */
#mnav{display:none}

/* ═══ MAIN ════════════════════════════════════════════════════════════════════ */
#main{overflow:hidden;position:relative;display:flex;flex-direction:column;height:100vh;height:100dvh;min-width:0}

/* ═══ TOPBAR ══════════════════════════════════════════════════════════════════ */
.topbar{
  flex-shrink:0;min-height:54px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:10px;padding:8px 22px;
  background:var(--topbar-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  position:sticky;top:0;z-index:20;
}
.tb-title{font-family:var(--font-d);font-size:1.35rem;font-weight:500;color:var(--cream);letter-spacing:-.01em;white-space:nowrap}
.tb-title i{font-style:italic;color:var(--gold);font-weight:400}
.tb-date{font-family:var(--font-mono);font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.tb-space{flex:1}
.tb-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.tb-reglages{display:none}

/* ═══ BOUTONS ═════════════════════════════════════════════════════════════════ */
.tb-btn,.btn{
  padding:7px 14px;border-radius:9px;
  font-family:var(--font-ui);font-size:.76rem;font-weight:600;
  cursor:pointer;border:1px solid var(--border2);
  background:transparent;color:var(--light);
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  transition:all .13s;white-space:nowrap;line-height:1.2;
}
.tb-btn:hover,.btn:hover{border-color:rgba(212,168,67,.5);color:var(--gold)}
.tb-btn svg,.btn svg{width:13px;height:13px;flex-shrink:0}
.tb-btn-primary,.btn-primary{background:var(--gold);color:var(--on-accent);border-color:var(--gold)}
.tb-btn-primary:hover,.btn-primary:hover{background:var(--gold2);color:var(--on-accent)}
.btn-green{background:var(--green);color:#fff;border-color:var(--green)}
.btn-green:hover{background:var(--green2);color:#fff;border-color:var(--green2)}
.btn-danger{color:var(--red);border-color:rgba(224,96,96,.4)}
.btn-danger:hover{background:rgba(224,96,96,.1);color:var(--red);border-color:var(--red)}
.btn-ghost{border-color:transparent}
.btn-sm{padding:5px 10px;font-size:.7rem;border-radius:7px}
.btn-lg{padding:11px 20px;font-size:.86rem;border-radius:11px}
.btn[disabled],.tb-btn[disabled]{opacity:.5;pointer-events:none}
.btn-ic{width:32px;height:32px;padding:0;border-radius:8px}
.lien{color:var(--gold);cursor:pointer;text-decoration:underline;text-decoration-color:rgba(212,168,67,.4);text-underline-offset:2px}

/* ═══ CONTENU COMMUN ══════════════════════════════════════════════════════════ */
.content{flex:1;overflow-y:auto;overflow-x:hidden}
.page{padding:22px 28px 40px;max-width:1500px}

.section-title{
  font-family:var(--font-d);font-size:1.25rem;font-weight:500;
  margin-bottom:10px;
  display:flex;align-items:center;gap:10px;letter-spacing:-.005em;
}
.section-title::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--border2),transparent)}
.section-title-count{
  font-family:var(--font-mono);font-size:.65rem;color:var(--muted);
  font-weight:normal;padding:2px 9px;
  background:var(--overlay);border:1px solid var(--border2);border-radius:10px;
}
.section-title .btn{order:3}
.sous-titre{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:14px 0 7px}

.carte{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);padding:16px}
.carte-titre{font-family:var(--font-d);font-size:1.12rem;font-weight:500;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.carte-titre .btn{margin-left:auto}

.empty-zone{
  padding:20px;text-align:center;color:var(--muted);
  font-family:var(--font-ui);font-size:.8rem;line-height:1.5;
  background:var(--card);border:1px dashed var(--border2);border-radius:var(--r-md);
}
.empty-zone .btn{margin-top:10px}
.chargement{padding:30px;text-align:center;color:var(--muted);font-size:.8rem}

.muted{color:var(--muted)}
.mono{font-family:var(--font-mono)}
.petit{font-size:.74rem}
.grille-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ligne{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pousse{flex:1}

/* Badges & puces */
.badge{
  display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;
  font-family:var(--font-mono);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  background:var(--overlay2);color:var(--light);border:1px solid var(--border2);white-space:nowrap;
}
.badge-vert{background:rgba(91,184,122,.15);color:var(--green);border-color:rgba(91,184,122,.35)}
.badge-or{background:rgba(212,168,67,.14);color:var(--gold);border-color:rgba(212,168,67,.35)}
.badge-rouge{background:rgba(224,96,96,.14);color:var(--red);border-color:rgba(224,96,96,.35)}
.badge-bleu{background:rgba(90,171,204,.14);color:var(--blue);border-color:rgba(90,171,204,.35)}
.badge-violet{background:rgba(155,109,181,.15);color:var(--purple);border-color:rgba(155,109,181,.35)}
.badge-gris{color:var(--muted)}
.puce{
  display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:14px;
  background:var(--overlay);border:1px solid var(--border2);font-size:.74rem;white-space:nowrap;
}
a.puce:hover,button.puce:hover{border-color:var(--gold);color:var(--gold)}
.puces{display:flex;flex-wrap:wrap;gap:6px}

/* Filtres (chips cliquables) */
.filtres{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.filtre{
  padding:6px 12px;border-radius:16px;border:1px solid var(--border2);background:transparent;
  font-size:.74rem;font-weight:500;color:var(--light);transition:all .12s;
}
.filtre:hover{border-color:var(--gold);color:var(--gold)}
.filtre.on{background:rgba(212,168,67,.15);border-color:var(--gold);color:var(--gold)}

/* Onglets */
.onglets{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto}
.onglet{
  padding:10px 14px;font-size:.82rem;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;
  margin-bottom:-1px;white-space:nowrap;transition:color .12s;
}
.onglet:hover{color:var(--cream)}
.onglet.on{color:var(--gold);border-bottom-color:var(--gold)}

/* Barres de progression */
.barre{height:5px;background:var(--overlay2);border-radius:3px;overflow:hidden}
.barre > span{display:block;height:100%;border-radius:3px;background:var(--green);transition:width .4s}

/* Tableaux */
.tableau-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--card)}
table.tableau{width:100%;border-collapse:collapse;font-size:.8rem}
.tableau th{
  text-align:left;font-family:var(--font-mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;
}
.tableau td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.tableau tr:last-child td{border-bottom:none}
.tableau tr.cliquable{cursor:pointer}
.tableau tr.cliquable:hover td{background:var(--overlay)}
.tableau .num{text-align:right;font-family:var(--font-mono);white-space:nowrap}

/* Contrôles (assistant) */
.ctrl{display:flex;gap:9px;padding:9px 11px;border-radius:var(--r-sm);border:1px solid var(--border2);background:var(--overlay);font-size:.76rem;line-height:1.45}
.ctrl + .ctrl{margin-top:6px}
.ctrl-ic{flex-shrink:0;font-size:.9rem;line-height:1.3}
.ctrl b{font-weight:600;display:block;margin-bottom:1px}
.ctrl-alerte{border-color:rgba(224,96,96,.45);background:rgba(224,96,96,.08)}
.ctrl-alerte b{color:var(--red)}
.ctrl-attention{border-color:rgba(232,146,74,.45);background:rgba(232,146,74,.08)}
.ctrl-attention b{color:var(--orange)}
.ctrl-ok{border-color:rgba(91,184,122,.35);background:rgba(91,184,122,.07)}
.ctrl-ok b{color:var(--green)}
.ctrl-info b{color:var(--blue)}

/* ═══ TÂCHES (partagé) ═══════════════════════════════════════════════════════ */
.task-list{display:flex;flex-direction:column;gap:8px}
.task{
  display:flex;align-items:center;gap:12px;padding:12px 14px;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);
  transition:border-color .14s ease, transform .14s ease;cursor:pointer;position:relative;overflow:hidden;
}
.task::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px}
.task:hover{border-color:var(--border2);transform:translateX(2px)}
.task.urgent::before{background:var(--red)}
.task.today::before{background:var(--gold)}
.task.soon::before{background:var(--green)}
.task.done{opacity:.55}
.task.done .t-title{text-decoration:line-through}
.task.done::before{background:var(--muted)}
.task.prio3 .t-title::after{content:' ●';color:var(--red);font-size:.6rem;vertical-align:middle}
.t-check{
  width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border2);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;background:transparent;
}
.task:hover .t-check{border-color:var(--green);background:rgba(91,184,122,.1)}
.task.done .t-check{background:var(--green);border-color:var(--green)}
.t-check svg{width:12px;height:12px;color:#fff;opacity:0;transition:opacity .14s}
.task.done .t-check svg{opacity:1}
.t-body{flex:1;min-width:0}
.t-title{font-size:.88rem;font-weight:500;color:var(--cream);margin-bottom:3px}
.t-meta{
  display:flex;gap:4px 12px;align-items:center;flex-wrap:wrap;
  font-family:var(--font-mono);font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;
}
.t-meta span{display:inline-flex;align-items:center;gap:4px}
.t-meta .t-desc{text-transform:none;letter-spacing:0;font-family:var(--font-ui);font-size:.72rem}
.t-dot{width:6px;height:6px;border-radius:50%}
.t-actions{display:flex;gap:4px;opacity:0;transition:opacity .14s}
.task:hover .t-actions,.task:focus-within .t-actions{opacity:1}
.t-act{
  width:30px;height:30px;border-radius:7px;border:1px solid var(--border2);
  background:transparent;color:var(--muted);font-size:.8rem;
  display:flex;align-items:center;justify-content:center;transition:all .12s;
}
.t-act:hover{border-color:var(--gold);color:var(--gold);background:rgba(212,168,67,.06)}
.t-duration{
  font-family:var(--font-mono);font-size:.68rem;color:var(--gold);font-weight:700;
  padding:3px 8px;background:rgba(212,168,67,.08);border:1px solid rgba(212,168,67,.22);border-radius:7px;white-space:nowrap;
}
.jour-titre{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:12px 0 6px}
.jour-titre:first-child{margin-top:0}

/* ═══ FORMULAIRES ════════════════════════════════════════════════════════════ */
.form-row{display:flex;flex-direction:column;gap:4px;min-width:0}
.form-row-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-row-grid.trois{grid-template-columns:1fr 1fr 1fr}
.form-lbl{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.form-aide{font-size:.7rem;color:var(--muted);line-height:1.4}
.form-in{
  padding:9px 11px;background:var(--input-bg);width:100%;min-width:0;
  border:1px solid var(--border2);border-radius:var(--r-sm);
  font-family:var(--font-ui);font-size:.85rem;color:var(--cream);
  outline:none;transition:border .12s;
}
.form-in:focus{border-color:var(--gold)}
select.form-in{cursor:pointer}
textarea.form-in{resize:vertical;min-height:64px;line-height:1.45}
.form-check{display:flex;align-items:center;gap:8px;font-size:.8rem;cursor:pointer;user-select:none}
.form-check input{width:16px;height:16px;accent-color:var(--gold)}
.segments{display:flex;border:1px solid var(--border2);border-radius:9px;overflow:hidden;flex-wrap:wrap}
.segments label{flex:1;min-width:0;cursor:pointer}
.segments input{position:absolute;opacity:0;pointer-events:none}
.segments span{
  display:block;padding:8px 6px;text-align:center;font-size:.74rem;font-weight:500;color:var(--light);
  border-right:1px solid var(--border2);transition:all .12s;
}
.segments label:last-child span{border-right:none}
.segments input:checked + span{background:rgba(212,168,67,.16);color:var(--gold)}
.segments input:focus-visible + span{outline:2px solid var(--gold);outline-offset:-2px}
.couleurs{display:flex;gap:6px;flex-wrap:wrap}
.couleurs button{width:26px;height:26px;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.couleurs button.on{border-color:var(--cream)}
details.plus summary{cursor:pointer;font-size:.76rem;color:var(--gold);list-style:none;padding:4px 0}
details.plus summary::-webkit-details-marker{display:none}
details.plus summary::before{content:'▸ ';}
details.plus[open] summary::before{content:'▾ ';}
details.plus > div{display:flex;flex-direction:column;gap:11px;padding-top:8px}

/* ═══ MODALES ═════════════════════════════════════════════════════════════════ */
.modal-overlay{
  display:none;position:fixed;inset:0;z-index:300;
  background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  align-items:center;justify-content:center;padding:20px;
  animation:fadeIn .2s ease;
}
.modal-overlay.open{display:flex}
.modal{
  width:100%;max-width:480px;background:var(--card);
  border:1px solid var(--border2);border-radius:var(--r-lg);
  box-shadow:var(--sh-lg);display:flex;flex-direction:column;max-height:92vh;max-height:92dvh;
}
.modal.large{max-width:760px}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}
.modal-title{font-family:var(--font-d);font-size:1.3rem;font-weight:500}
.modal-close{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  border:1px solid var(--border2);background:transparent;color:var(--muted);font-size:.9rem;
  display:flex;align-items:center;justify-content:center;transition:all .12s;
}
.modal-close:hover{border-color:var(--red);color:var(--red)}
.modal-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.modal-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.modal-foot .gauche{margin-right:auto}
.modal-cols{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.modal-cols > div{display:flex;flex-direction:column;gap:12px;min-width:0}

/* ═══ PANNEAU LATÉRAL (fiches) ═══════════════════════════════════════════════ */
.drawer-overlay{position:fixed;inset:0;z-index:250;background:var(--scrim);display:none;animation:fadeIn .2s ease}
.drawer-overlay.open{display:block}
.drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(500px,100vw);z-index:260;
  background:var(--bg2);border-left:1px solid var(--border2);box-shadow:var(--sh-lg);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.drawer.open{transform:none}
.drawer-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);min-height:54px}
.drawer-head .modal-close{margin-left:auto}
.drawer-retour{display:none;font-size:.76rem;color:var(--muted);padding:5px 8px;border-radius:7px}
.drawer-retour:hover{color:var(--gold)}
.drawer.pile .drawer-retour{display:inline-flex}
.drawer-body{flex:1;overflow-y:auto;padding:18px 18px 30px}
.fiche-tete{display:flex;gap:14px;align-items:center;margin-bottom:14px}
.fiche-ic{width:58px;height:58px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}
.fiche-nom{font-family:var(--font-d);font-size:1.6rem;font-weight:500;line-height:1.1}
.fiche-sous{font-family:var(--font-mono);font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-top:4px}
.fiche-actions{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 16px}
.fiche-section{margin-top:18px}
.fiche-section > h3{font-family:var(--font-d);font-size:1.1rem;font-weight:500;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.fiche-section > h3 .btn{margin-left:auto}
.infos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.info{background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px}
.info-lbl{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.info-val{font-size:.86rem;font-weight:500;margin-top:2px}
.liste-simple{display:flex;flex-direction:column;gap:6px}
.item{
  display:flex;align-items:center;gap:10px;padding:9px 11px;background:var(--card);
  border:1px solid var(--border);border-radius:var(--r-sm);font-size:.8rem;
}
.item.cliquable{cursor:pointer}
.item.cliquable:hover{border-color:var(--border2);background:var(--card2)}
.item-ic{font-size:1.15rem;flex-shrink:0}
.item-txt{flex:1;min-width:0}
.item-sous{font-size:.68rem;color:var(--muted);margin-top:1px}
.texte{font-size:.84rem;line-height:1.6;color:var(--light)}

/* Frise de dates d'une plantation */
.frise{display:flex;align-items:flex-start;gap:0;margin:8px 0 4px}
.frise-pt{flex:1;text-align:center;position:relative;padding-top:16px}
.frise-pt::before{content:'';position:absolute;top:5px;left:0;right:0;height:2px;background:var(--border2)}
.frise-pt:first-child::before{left:50%}
.frise-pt:last-child::before{right:50%}
.frise-pt::after{
  content:'';position:absolute;top:0;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;
  background:var(--bg2);border:2px solid var(--border2);
}
.frise-pt.passe::after{background:var(--green);border-color:var(--green)}
.frise-pt.passe::before{background:var(--green-d)}
.frise-lbl{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.frise-date{font-size:.78rem;font-weight:500;margin-top:2px}

/* Saison sur 12 mois */
.saison{display:grid;grid-template-columns:70px repeat(12,1fr);gap:2px;align-items:center;font-size:.6rem}
.saison .m{font-family:var(--font-mono);color:var(--muted);text-align:center;font-size:.55rem}
.saison .m.now{color:var(--gold);font-weight:700}
.saison .l{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;font-size:.55rem;letter-spacing:.05em}
.saison .c{height:12px;border-radius:2px;background:var(--overlay2)}
.saison .c.s{background:rgba(91,184,122,.75)}
.saison .c.p{background:rgba(212,168,67,.8)}
.saison .c.h{background:rgba(74,171,170,.8)}

/* ═══ ANIMATIONS ══════════════════════════════════════════════════════════════ */
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.fade-in{animation:fadeIn .3s ease}

/* ═══ TOAST ═══════════════════════════════════════════════════════════════════ */
#toast{
  position:fixed;bottom:24px;right:24px;
  background:var(--card);border:1px solid var(--gold);
  color:var(--cream);padding:10px 14px;border-radius:var(--r-md);
  font-family:var(--font-ui);font-size:.82rem;font-weight:500;
  box-shadow:var(--sh-lg);z-index:1000;
  transform:translateY(120px);opacity:0;transition:all .26s cubic-bezier(.2,.8,.2,1);
  display:flex;align-items:center;gap:10px;max-width:400px;pointer-events:none;
}
#toast.show{transform:translateY(0);opacity:1;pointer-events:auto}
#toast-ic{font-size:1.1rem}
#toast-action{margin-left:6px}

/* ═══ MOBILE ══════════════════════════════════════════════════════════════════ */
@media (max-width:860px){
  :root{--nav-h:62px}
  html,body{overflow:auto;height:auto}
  #app{display:block;height:auto}
  #sidebar{display:none}
  #main{height:auto;min-height:100vh;min-height:100dvh;overflow:visible;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}
  .content{overflow:visible}
  .topbar{padding:8px 14px;min-height:52px;gap:8px}
  .tb-title{font-size:1.2rem}
  .tb-btn .lbl{display:none}
  .tb-btn{padding:8px 10px}
  .tb-reglages{display:inline-flex}
  .page{padding:16px 14px 30px}
  #mnav{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:200;
    height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
    background:var(--topbar-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border-top:1px solid var(--border2);
  }
  .mn-it{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:.62rem;font-weight:500;position:relative}
  .mn-it svg{width:21px;height:21px}
  .mn-it.active{color:var(--gold)}
  .mn-it .sb-badge{position:absolute;top:6px;left:calc(50% + 6px);font-size:.55rem}
  .grille-2{grid-template-columns:1fr}
  .modal-overlay{padding:0;align-items:flex-end}
  .modal{max-width:none;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:94dvh;border-bottom:none}
  .modal-cols{grid-template-columns:1fr}
  .form-row-grid.trois{grid-template-columns:1fr 1fr}
  .drawer{width:100vw;border-left:none}
  .t-actions{opacity:1}
  .task{padding:11px 12px;gap:10px}
  .t-act{width:34px;height:34px}
  .task [data-act=tache-supprimer]{display:none}
  .t-duration{font-size:.62rem;padding:2px 6px}
  .tb-date{display:none}
  .task:hover{transform:none}
  .t-meta{font-size:.62rem}
  .form-lbl,.info-lbl,.frise-lbl{font-size:.62rem}
  #toast{left:14px;right:14px;bottom:calc(var(--nav-h) + 12px + env(safe-area-inset-bottom));max-width:none}
}
@media (max-width:420px){
  .form-row-grid{grid-template-columns:1fr}
  .form-row-grid.garder{grid-template-columns:1fr 1fr}
}

/* ═══ IMPRESSION ═════════════════════════════════════════════════════════════ */
@media print{
  :root,:root[data-theme]{
    --bg:#fff;--bg2:#fff;--card:#fff;--card2:#fff;--cream:#111;--light:#333;--muted:#666;
    --border:#ccc;--border2:#bbb;--overlay:#f5f5f5;--overlay2:#eee;--gold:#7a5b10;
  }
  html,body{overflow:visible;height:auto;background:#fff}
  #app{display:block;height:auto}
  #sidebar,#mnav,.topbar .tb-actions,.no-print,#toast{display:none !important}
  #main{height:auto;overflow:visible}
  .content{overflow:visible}
  .topbar{position:static;border:none;background:none}
}
