:root{
  --paper:#EEF2E8;
  --paper-alt:#E1E9D8;
  --paper-deep:#C8D6BA;
  --card-bg:#FFFFFF;
  --nav-text:#E1E9D8;
  --ink:#1D2620;
  --ink-soft:#5E6F62;
  --sakura:#7DBE7A;
  --sakura-deep:#1F7A4A;
  --sakura-pale:#D8ECD6;
  --indigo:#1E3527;
  --indigo-deep:#0B120D;
  --gold:#B8935A;
  --gold-pale:#E4C99A;
  --sage:#7A8B6F;
  --sage-deep:#57684E;
  --sage-pale:#DCE3D3;
  --lavender:#A98AB5;
  --lavender-deep:#7D5F8D;
  --lavender-pale:#E9DDEE;
  --charcoal:#5B5248;
  --charcoal-deep:#463F38;
  --danger:#8B3A3A;
  --danger-pale:#EAD3CF;
  --ronce-deep:#4A5A2E;
  --ronce-pale:#DCE3CB;
  --sang-deep:#6B1E1E;
  --sang-pale:#E8D0CE;
  --eclair-sombre-deep:#2A2440;
  --eclair-sombre-pale:#DCD8EA;
  --flamme-spectrale-deep:#3D5A66;
  --flamme-spectrale-pale:#D6E6EA;
  --glace-deep:#2E5A73;
  --glace-pale:#D3E6EE;
  --acide-deep:#5C6B1E;
  --acide-pale:#E4E8C8;
  --resonnance-deep:#4A3D5C;
  --resonnance-pale:#E0DAE8;
  --accent: var(--sakura-deep);
  --accent-pale: var(--sakura-pale);
  --shadow: 0 8px 30px rgba(58,46,44,0.10);
  --radius: 4px;
  color-scheme: light;
}
body.dark-mode{
  --paper:#0C130F;
  --paper-alt:#122019;
  --paper-deep:#1F3428;
  --card-bg:#15241B;
  --nav-text:#FFFFFF;
  --ink:#E7F0E9;
  --ink-soft:#9DB6A4;
  --sakura:#7DBE7A;
  --sakura-deep:#4CC07F;
  --sakura-pale:#1B3A28;
  --indigo:#2B4D39;
  --indigo-deep:#050906;
  --gold:#D9B57D;
  --gold-pale:#3E331F;
  --sage:#9DB18F;
  --sage-deep:#B9CBAC;
  --sage-pale:#262B21;
  --lavender:#B599C0;
  --lavender-deep:#C9AED4;
  --lavender-pale:#2E2733;
  --charcoal:#B5A9A1;
  --charcoal-deep:#EDE6E0;
  --danger:#E28C8C;
  --danger-pale:#3D2626;
  --ronce-deep:#8FA35C;
  --ronce-pale:#262E1A;
  --sang-deep:#C24444;
  --sang-pale:#331414;
  --eclair-sombre-deep:#8A7ADB;
  --eclair-sombre-pale:#1C1830;
  --flamme-spectrale-deep:#8FC6D9;
  --flamme-spectrale-pale:#17262B;
  --glace-deep:#7FC4E0;
  --glace-pale:#142530;
  --acide-deep:#B8CC5A;
  --acide-pale:#2A2E14;
  --resonnance-deep:#A98FC7;
  --resonnance-pale:#241E2E;
  --accent: var(--sakura-deep);
  --accent-pale: var(--sakura-pale);
  --shadow: 0 8px 30px rgba(0,0,0,0.5);
  color-scheme: dark;
}
body.dark-mode img{filter:brightness(.92) contrast(1.02);}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:radial-gradient(ellipse 90% 60% at 50% 0%, var(--paper-alt), var(--paper) 65%);
  color:var(--ink);
  font-family:'Zen Maru Gothic', sans-serif;
  font-weight:400;
  line-height:1.7;
  transition:background .25s ease, color .25s ease;
}
h1,h2,h3,.serif{
  font-family:'Shippori Mincho', serif;
}
.eyebrow{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.78rem;
  color:var(--accent);
}
a{color:inherit;text-decoration:none;}

/* feuilles de trèfle qui tombent */
#petals{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;}
.petal{
  position:absolute;top:-5%;
  width:14px;height:14px;
  background:var(--sakura);
  opacity:.35;
  border-radius:0 60% 0 60%;
  animation:fall linear infinite;
}
@keyframes fall{
  0%{transform:translateY(-10vh) translateX(0) rotate(0deg);}
  100%{transform:translateY(110vh) translateX(40px) rotate(360deg);}
}
@media (prefers-reduced-motion: reduce){
  .petal{display:none;}
  html{scroll-behavior:auto;}
}

/* LAYOUT */
.app{display:flex;min-height:100vh;position:relative;z-index:2;}

/* SIDEBAR - dossier tabs */
.sidebar{
  width:300px;flex-shrink:0;
  background:linear-gradient(180deg, var(--indigo-deep), var(--indigo));
  color:var(--paper);
  padding:0;
  position:sticky;top:0;height:100vh;overflow-y:auto;
  border-right:6px double var(--gold-pale);
}
.sidebar::-webkit-scrollbar{width:6px;}
.sidebar::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px;}
.brand{
  padding:32px 26px 20px;
  border-bottom:1px solid rgba(228,201,154,0.25);
}
.brand .mark{
  width:44px;height:44px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--sakura-pale), var(--sakura-deep) 70%);
  display:flex;align-items:center;justify-content:center;
  font-family:'Shippori Mincho',serif;color:var(--indigo-deep);font-weight:700;
  margin-bottom:14px;
  box-shadow: 0 0 0 3px rgba(228,201,154,0.3);
}
.brand h1{
  font-size:1.3rem;margin:0 0 4px;color:var(--nav-text);letter-spacing:.03em;
}
.brand p{
  margin:0;font-size:.78rem;color:var(--gold);
  font-family:'Cormorant Garamond',serif;font-style:italic;letter-spacing:.08em;
}
nav.tree{padding:14px 12px 40px;}
.nav-item{margin-bottom:2px;}
.nav-link{
  display:flex;align-items:center;gap:9px;
  padding:9px 14px;border-radius:3px;
  font-size:.92rem;color:var(--nav-text);
  cursor:pointer;transition:background .15s, color .15s;
  border-left:3px solid transparent;
  text-decoration:none;
}
.nav-link:hover{background:rgba(255,255,255,0.06);}
.nav-link.active{
  background:rgba(125,190,122,0.14);
  color:#fff;
  border-left-color:var(--sakura);
  font-weight:700;
}
.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0;opacity:.7;}
.nav-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:var(--danger);color:#fff;font-size:.68rem;font-weight:700;
  margin-left:auto;flex-shrink:0;
}
.nav-group-label{
  padding:16px 14px 6px;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);font-family:'Cormorant Garamond',serif;
}
.nav-children{margin-left:14px;border-left:1px solid rgba(228,201,154,0.2);padding-left:6px;
  max-height:0;overflow:hidden;transition:max-height .25s ease;}
.nav-item.open > .nav-children{max-height:2000px;}
.nav-children .nav-link{font-size:.85rem;padding:7px 12px;color:var(--nav-text);opacity:.85;}
.nav-link .chevron{margin-left:auto;font-size:.7rem;opacity:.6;transition:transform .2s ease;}
.nav-item.open > .nav-link .chevron{transform:rotate(90deg);}

/* EDIT MODE */
main.editing{outline:2px dashed var(--accent);outline-offset:10px;cursor:text;}
main.editing [onclick]{cursor:text;}
.edit-toolbar{
  position:fixed;bottom:22px;right:22px;z-index:30;
  display:flex;gap:10px;align-items:center;
  background:var(--card-bg);border:1px solid var(--paper-deep);border-radius:30px;
  padding:8px 10px;box-shadow:var(--shadow);flex-wrap:wrap;max-width:calc(100vw - 44px);
}
.edit-btn{
  display:flex;align-items:center;gap:6px;
  background:var(--indigo-deep);color:#fff;border:none;
  padding:9px 16px;border-radius:24px;font-size:.85rem;cursor:pointer;
  font-family:'Zen Maru Gothic',sans-serif;transition:background .15s;
}
.edit-btn:hover{background:var(--indigo);}
.edit-btn.img-btn{background:var(--sage-deep);}
.edit-btn.img-btn:hover{background:var(--sage);}
.edit-btn.reset-btn{background:var(--danger);}
.edit-btn.reset-btn:hover{background:#a34848;}
.edit-btn.active{background:var(--sakura-deep);}
.save-status{font-size:.76rem;color:var(--ink-soft);padding:0 4px;min-width:80px;}
.session-info{font-size:.76rem;color:var(--sage-deep);padding:0 4px;display:flex;align-items:center;gap:8px;}
.session-info a{text-decoration:underline;cursor:pointer;color:var(--danger);}
@media (max-width:900px){
  .edit-toolbar{right:12px;bottom:12px;left:12px;justify-content:center;}
}

.login-overlay{
  position:fixed;inset:0;background:rgba(8,14,10,0.55);z-index:40;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.login-box{
  background:var(--paper);border-radius:8px;padding:30px 28px;width:100%;max-width:340px;
  box-shadow:var(--shadow);
}
.login-box h3{margin:0 0 6px;font-family:'Shippori Mincho',serif;}
.login-box p{margin:0 0 18px;font-size:.85rem;color:var(--ink-soft);}
.login-box input, .login-box select{
  width:100%;padding:10px 12px;margin-bottom:10px;border:1px solid var(--paper-deep);
  border-radius:4px;font-family:'Zen Maru Gothic',sans-serif;font-size:.92rem;background:var(--card-bg);color:var(--ink);
}
.login-error{color:var(--danger);font-size:.8rem;min-height:1.2em;margin-bottom:6px;}
.login-actions{display:flex;gap:10px;margin-top:6px;}
.login-actions .edit-btn{flex:1;justify-content:center;}

/* MOBILE TOGGLE */
.menu-toggle{
  display:none;position:fixed;top:16px;left:16px;z-index:20;
  background:var(--indigo-deep);color:var(--paper);border:1px solid var(--gold);
  border-radius:50%;width:44px;height:44px;font-size:1.2rem;cursor:pointer;
  box-shadow:var(--shadow);
}
.theme-toggle{
  position:fixed;top:16px;right:16px;z-index:20;
  background:var(--card-bg);color:var(--ink);border:1px solid var(--gold);
  border-radius:50%;width:44px;height:44px;font-size:1.15rem;cursor:pointer;
  box-shadow:var(--shadow);transition:background .25s ease, transform .15s ease;
}
.theme-toggle:hover{transform:scale(1.07);}
.account-toggle{
  position:fixed;top:16px;right:68px;z-index:20;
  background:var(--card-bg);color:var(--ink);border:1px solid var(--gold);
  border-radius:50%;width:44px;height:44px;font-size:1.1rem;cursor:pointer;
  box-shadow:var(--shadow);transition:background .25s ease, transform .15s ease;
}
.account-toggle:hover{transform:scale(1.07);}
.account-toggle.active{border-color:var(--accent);}
.login-switch{
  text-align:center;font-size:.82rem;color:var(--accent);cursor:pointer;margin:14px 0 0;
  text-decoration:underline;
}
.discord-btn{
  width:100%;background:#5865F2;color:#fff;border:none;display:flex;
  align-items:center;justify-content:center;gap:8px;font-size:.95rem;
}
.discord-btn:hover{background:#4752C4;}
@media (max-width:900px){
  .account-toggle{top:14px;right:60px;width:40px;height:40px;font-size:1rem;}
}

/* MAIN */
main{flex:1;min-width:0;padding:56px 64px 100px;position:relative;}
.crumbs{font-size:.8rem;color:var(--ink-soft);margin-bottom:18px;letter-spacing:.02em;}
.crumbs .sep{margin:0 6px;color:var(--gold);}
.page-head{margin-bottom:34px;position:relative;}
.page-head h2{
  font-size:2.3rem;margin:0 0 10px;color:var(--ink);
  display:flex;align-items:center;gap:14px;
}
.page-head .ribbon{
  width:34px;height:4px;background:var(--accent);border-radius:2px;
}
.page-head .lede{color:var(--ink-soft);max-width:64ch;font-size:1.02rem;}

.card{
  background:var(--card-bg);
  border:1px solid var(--paper-deep);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:28px 30px;
  margin-bottom:22px;
  position:relative;
}
.card::before{
  content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;
  background:var(--accent);border-radius:2px;
}
.card{padding-left:34px;}

.section-label{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);font-size:.85rem;margin:0 0 10px;
  display:flex;align-items:center;gap:8px;
}
.section-label .glyph{font-size:1rem;}

ul.steps{margin:0;padding:0;list-style:none;}
ul.steps li{
  position:relative;padding:9px 0 9px 26px;border-bottom:1px dashed var(--paper-deep);
  font-size:.98rem;
}
ul.steps li:last-child{border-bottom:none;}
ul.steps li::before{
  content:"◦";position:absolute;left:2px;top:9px;color:var(--accent);font-size:1.1rem;
}
ol.numbered{margin:0;padding:0;list-style:none;counter-reset:num;}
ol.numbered li{
  counter-increment:num;position:relative;padding:11px 0 11px 40px;
  border-bottom:1px dashed var(--paper-deep);font-size:.98rem;
}
ol.numbered li:last-child{border-bottom:none;}
ol.numbered li::before{
  content:counter(num);position:absolute;left:0;top:9px;
  width:24px;height:24px;border-radius:50%;background:var(--accent-pale);
  color:var(--accent);font-family:'Shippori Mincho',serif;font-weight:700;
  font-size:.78rem;display:flex;align-items:center;justify-content:center;
}
ol.numbered.plain{counter-reset:none;}
ol.numbered.plain>li{padding-left:0;border-bottom:none;padding-top:6px;padding-bottom:26px;}
ol.numbered.plain>li::before{display:none;}
ol.numbered.plain>li>ol.numbered{counter-reset:num;margin-top:10px;}
ol.numbered.plain>li>ol.numbered>li{padding-left:40px;border-bottom:1px dashed var(--paper-deep);}
ol.numbered.plain>li>ol.numbered>li::before{display:flex;}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:8px;}
.hub-card{
  background:var(--card-bg);border:1px solid var(--paper-deep);border-radius:var(--radius);
  padding:22px 22px;box-shadow:var(--shadow);cursor:pointer;
  transition:transform .15s, box-shadow .15s;border-top:3px solid var(--accent);
  text-decoration:none;color:inherit;display:block;
}
.hub-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(58,46,44,.14);}
.hub-card h3{margin:0 0 8px;font-size:1.08rem;}
.hub-card p{margin:0;font-size:.88rem;color:var(--ink-soft);}
.hub-card .num{
  font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--accent);font-size:.8rem;
}

.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px;}
.gcard{background:var(--card-bg);border:1px solid var(--paper-deep);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.gcard img{width:100%;height:150px;object-fit:cover;display:block;background:var(--paper-alt);}
.gcard .gbody{padding:16px 18px;}
.gcard h3{margin:0 0 6px;font-size:1.02rem;}
.gcard p{margin:0 0 6px;font-size:.86rem;color:var(--ink-soft);}
.gcard .loc{font-size:.78rem;color:var(--accent);font-style:italic;font-family:'Cormorant Garamond',serif;}

.rank{
  display:flex;gap:20px;align-items:center;background:var(--card-bg);border:1px solid var(--paper-deep);
  border-radius:var(--radius);padding:18px 22px;margin-bottom:14px;box-shadow:var(--shadow);
  border-left:4px solid var(--gold);
}
.rank img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--gold-pale);}
.rank .rname{font-family:'Shippori Mincho',serif;font-size:1.1rem;margin:0 0 4px;color:var(--ink);}
.rank p{margin:0;font-size:.9rem;color:var(--ink-soft);}

.oath-open, .oath-close{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.15rem;
  color:var(--ink-soft);line-height:1.8;padding:18px 0;
}
.seal{
  display:inline-flex;align-items:center;justify-content:center;
  width:80px;height:80px;border-radius:50%;
  border:2px solid var(--gold);color:var(--gold);
  font-family:'Shippori Mincho',serif;font-size:.72rem;text-align:center;
  margin:0 auto 24px;letter-spacing:.05em;
}

.roster-group{padding-bottom:14px;}
.roster-table{width:100%;border-collapse:collapse;margin-top:10px;}
.roster-table th,.roster-table td{padding:9px 12px;border-bottom:1px dashed var(--paper-deep);text-align:left;font-size:.9rem;}
.roster-table th{color:var(--ink-soft);font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;}
.roster-table tr:last-child td{border-bottom:none;}
.souffle-badge{
  display:inline-block;color:#fff;font-size:.76rem;padding:3px 10px;border-radius:12px;
  font-family:'Cormorant Garamond',serif;letter-spacing:.03em;
}
.roster-add-btn{
  display:none; /* n'apparaît qu'en mode édition, voir règle main.editing plus bas */
  margin-top:14px;background:var(--accent-pale);color:var(--accent);border:1px dashed var(--accent);
  border-radius:20px;padding:7px 16px;font-size:.82rem;cursor:pointer;
  font-family:'Zen Maru Gothic',sans-serif;transition:background .15s;
}
.roster-add-btn:hover{background:var(--accent);color:#fff;}
main.editing .roster-add-btn{display:inline-block;}
.roster-actions-cell{text-align:right;padding:9px 4px !important;}
.row-del-btn{
  display:none; /* n'apparaît qu'en mode édition */
  background:none;border:none;color:var(--danger);cursor:pointer;
  font-size:.9rem;padding:2px 6px;border-radius:50%;opacity:.55;line-height:1;
}
.row-del-btn:hover{opacity:1;background:var(--danger-pale);}
main.editing .row-del-btn{display:inline-block;}
.roster-th-actions{width:60px;}
.row-edit-btn{
  display:none; /* n'apparaît qu'en mode édition */
  background:none;border:none;cursor:pointer;
  font-size:.85rem;padding:2px 6px;border-radius:50%;opacity:.6;line-height:1;
}
.row-edit-btn:hover{opacity:1;background:var(--accent-pale);}
main.editing .row-edit-btn{display:inline-block;}
.role-checkboxes{display:flex;flex-direction:column;gap:10px;margin:14px 0;}
.role-checkboxes label{display:flex;align-items:center;gap:8px;font-size:.92rem;cursor:pointer;}
.role-checkboxes input{width:16px;height:16px;cursor:pointer;}

/* CONSULTATIONS */
#consultMedecin, #consultFilter, #consultMedecinAutre, #consultSoins, #consultImage{
  width:100%;padding:10px 12px;margin-bottom:12px;border:1px solid var(--paper-deep);
  border-radius:4px;font-family:'Zen Maru Gothic',sans-serif;font-size:.92rem;background:var(--card-bg);color:var(--ink);
}
#consultSoins{resize:vertical;}
.consult-file-label{display:block;font-size:.84rem;color:var(--ink-soft);margin-bottom:6px;}
.consult-filter-row{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap;}
.consult-filter-row label{font-size:.84rem;color:var(--ink-soft);white-space:nowrap;}
.consult-filter-row select{width:auto;flex:1;min-width:180px;margin-bottom:0;}
.consult-clearall-btn{
  background:var(--danger-pale);color:var(--danger);border:1px dashed var(--danger);
  border-radius:20px;padding:7px 14px;font-size:.8rem;cursor:pointer;white-space:nowrap;
  font-family:'Zen Maru Gothic',sans-serif;transition:background .15s;
  display:inline-flex;align-items:center;gap:6px;
}
.consult-clearall-btn:hover{background:var(--danger);color:#fff;}

/* RAPPORTS MÉDICAUX */
#rapportContenu{
  width:100%;padding:10px 12px;margin-bottom:12px;border:1px solid var(--paper-deep);
  border-radius:4px;font-family:'Zen Maru Gothic',sans-serif;font-size:.9rem;background:var(--card-bg);color:var(--ink);
  resize:vertical;
}
.rapport-sheet{
  position:relative;background:var(--card-bg);border:1px solid var(--paper-deep);border-radius:var(--radius);
  padding:20px 22px;margin-bottom:16px;box-shadow:var(--shadow);
  font-family:'Zen Maru Gothic',sans-serif;font-size:.9rem;line-height:1.7;
}
.rapport-meta{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;color:var(--ink-soft);flex-wrap:wrap;padding-right:50px;}
.rapport-meta strong{color:var(--ink);font-family:'Shippori Mincho',serif;font-size:.98rem;}
.rapport-rule{border-top:1px dashed var(--paper-deep);margin:10px 0;}
.rapport-content{white-space:pre-wrap;word-break:break-word;color:var(--ink);}
.rapport-actions{position:absolute;top:16px;right:18px;display:flex;gap:8px;}
.rapport-edit,.rapport-del{
  background:none;border:none;cursor:pointer;font-size:1rem;opacity:.6;
}
.rapport-del{color:var(--danger);}
.rapport-edit:hover,.rapport-del:hover{opacity:1;}

/* GATE D'ACCÈS PAR SPÉCIALITÉ */
.spec-gate select{
  width:100%;max-width:340px;padding:10px 12px;margin:12px 0;border:1px solid var(--paper-deep);
  border-radius:4px;font-family:'Zen Maru Gothic',sans-serif;font-size:.92rem;background:var(--card-bg);color:var(--ink);
}
.consult-item{
  display:flex;gap:16px;align-items:flex-start;background:var(--card-bg);border:1px solid var(--paper-deep);
  border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow);position:relative;
}
.consult-thumb{width:84px;height:84px;object-fit:cover;border-radius:6px;flex-shrink:0;cursor:zoom-in;border:1px solid var(--paper-deep);background:var(--paper-alt);}
.consult-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--ink-soft);cursor:default;font-size:.8rem;}
.consult-body{flex:1;min-width:0;}
.consult-meta{display:flex;justify-content:space-between;gap:10px;font-size:.8rem;color:var(--ink-soft);margin-bottom:6px;flex-wrap:wrap;}
.consult-meta strong{color:var(--ink);font-family:'Shippori Mincho',serif;font-size:.98rem;}
.consult-body p{margin:0;font-size:.92rem;white-space:pre-wrap;word-break:break-word;}
.consult-actions{display:flex;justify-content:flex-end;gap:14px;margin-top:8px;}
.consult-del,.consult-edit{
  background:none;border:none;color:var(--danger);cursor:pointer;font-size:1rem;
  opacity:.6;
}
.consult-row-del{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.95rem;opacity:.6;}
.consult-row-edit,.consult-row-adjust{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:.95rem;opacity:.6;}
.consult-row-del:hover,.consult-row-edit:hover,.consult-row-adjust:hover{opacity:1;}
.consult-edit{color:var(--ink-soft);}
.consult-del:hover,.consult-edit:hover{opacity:1;}
.consult-lightbox{
  position:fixed;inset:0;background:rgba(8,14,10,0.8);z-index:50;
  display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;
}
.consult-lightbox img{max-width:90vw;max-height:90vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.4);}

.table-recolte{width:100%;border-collapse:collapse;margin-top:10px;}
.table-recolte th,.table-recolte td{
  padding:10px 14px;border:1px solid var(--paper-deep);text-align:left;font-size:.92rem;
}
.table-recolte th{background:var(--accent-pale);color:var(--accent);font-family:'Shippori Mincho',serif;}
.stock-bas{color:#b5892b;font-weight:600;}
.stock-vide{color:var(--danger);font-weight:600;}

.hero{
  background:linear-gradient(135deg, var(--indigo-deep), var(--indigo) 60%, var(--sakura-deep));
  color:var(--paper);border-radius:6px;padding:54px 50px;margin-bottom:36px;position:relative;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;right:-40px;bottom:-60px;width:220px;height:220px;
  background:radial-gradient(circle, rgba(125,190,122,0.35), transparent 70%);
}
.hero .eyebrow{color:var(--gold);}
.hero h2{font-size:2.6rem;margin:8px 0 14px;color:#fff;}
.hero p{max-width:56ch;color:var(--nav-text);font-size:1.02rem;}
.hero .quicklinks{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}
.hero .qbtn{
  background:rgba(255,255,255,0.1);border:1px solid rgba(228,201,154,0.4);
  padding:9px 18px;border-radius:30px;font-size:.85rem;cursor:pointer;color:#fff;
  transition:background .15s;text-decoration:none;display:inline-block;
}
.hero .qbtn:hover{background:rgba(255,255,255,0.2);}

.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;}
.home-card{
  background:var(--card-bg);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);
  border-top:3px solid var(--accent);cursor:pointer;
  text-decoration:none;color:inherit;display:block;
}
.home-card h3{margin:0 0 6px;font-size:1.05rem;}
.home-card p{margin:0;font-size:.85rem;color:var(--ink-soft);}

/* MODE LOCAL (base de données non configurée) */
.local-mode-badge{
  position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:20;
  background:var(--gold-pale);color:var(--ink);border:1px solid var(--gold);
  border-radius:20px;padding:4px 14px;font-size:.75rem;font-weight:700;letter-spacing:.04em;
  box-shadow:var(--shadow);cursor:help;
}

/* COMPATIBILITÉ SANGUINE */
.blood-img{display:block;max-width:100%;margin:0 auto;border-radius:6px;background:#fff;cursor:zoom-in;}

footer.pagefoot{margin-top:60px;padding-top:20px;border-top:1px dashed var(--paper-deep);
  font-size:.78rem;color:var(--ink-soft);text-align:center;}

@media (max-width: 900px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .25s;z-index:15;box-shadow:0 0 40px rgba(0,0,0,.3);}
  .sidebar.open{transform:translateX(0);}
  .menu-toggle{display:block;}
  main{padding:80px 20px 80px;}
  .hero{padding:36px 24px;}
  .hero h2{font-size:1.9rem;}
}
