@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Syne:wght@600;700;800&display=swap');
/* =========================================================================
   GUYANT FERMETURE — Refonte design "premium sur-mesure" (2026)
   Direction artistique : dark charbon chaud désaturé, accent verdigris,
   typo Syne (display) + Plus Jakarta Sans (UI), arrondis généreux + boutons
   pill, ombres très diffuses (soft shadows), micro-interactions fluides.
   Feuille globale IDENTIQUE pour les 4 pages, chargée APRES le <style> inline.
   /!\ Aucune taille de police (font-size) n'est modifiée : on ne joue que
   sur font-family / font-weight / letter-spacing / line-height.
   ========================================================================= */

:root{
  /* ----- Accent verdigris (signature) ----- */
  --primary:#2fb8a4;  --primary-hover:#27a594;  --primary-deep:#1d8576;
  --success:#34d399;  --warning:#eab234;  --danger:#ef6a52;
  /* ----- Surfaces : charbon chaud légèrement désaturé ----- */
  --background:#16181d; --surface:#1d2027; --text:#edeef0; --text-muted:#969cab; --border:#2b303b;
  /* ----- Remap des noms historiques (markup + JS inline) ----- */
  --bg:#16181d; --card:#1d2027; --card2:#252934; --line:#2b303b;
  --txt:#edeef0; --muted:#969cab; --accent:#2fb8a4; --accent2:#27a594;
  --ok:#34d399; --info:#2fb8a4;
  /* ----- Formes : arrondis généreux + pill ----- */
  --radius:14px; --radius-lg:22px; --radius-pill:999px;
  /* ----- Ombres douces, larges et diffuses ----- */
  --shadow-xs:0 1px 2px rgba(0,0,0,.3);
  --shadow-sm:0 8px 24px -12px rgba(0,0,0,.55);
  --shadow:0 28px 64px -30px rgba(0,0,0,.65);
  --shadow-hover:0 34px 80px -34px rgba(0,0,0,.7), 0 0 0 1px rgba(47,184,164,.14);
  --ring:0 0 0 3px rgba(47,184,164,.25);
  --ease:cubic-bezier(.4,0,.2,1);
  --font-ui:'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-display:'Syne', 'Plus Jakarta Sans', system-ui, sans-serif;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  background:
    radial-gradient(1100px 620px at 78% -12%, rgba(47,184,164,.10), transparent 58%),
    radial-gradient(900px 600px at 8% 108%, rgba(47,184,164,.06), transparent 60%),
    linear-gradient(168deg, #121419 0%, #15181e 55%, #10201c 100%) !important;
  background-attachment:fixed !important;
  color:var(--text) !important;
  font-family:var(--font-ui) !important;
  font-weight:450;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection{ background:rgba(47,184,164,.26); color:#fff; }

/* ============================ TYPOGRAPHIE ============================ */
h1,h2,h3{ font-family:var(--font-display); color:var(--text); letter-spacing:-.025em; line-height:1.12; }
h1{ font-weight:800; }
h2{ font-weight:700; }
h3{ font-weight:700; }
p, .meta{ line-height:1.65; }
.meta{ color:var(--text-muted); }
a{ color:var(--primary); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--primary-hover); }
label{
  display:block; color:var(--text-muted); font-weight:600; font-size:13px;
  letter-spacing:.005em; text-transform:none; margin:14px 0 6px;
}

/* ============================ NAVBAR / HEADER ============================ */
header{
  background:rgba(29,32,39,.72) !important; color:var(--text) !important;
  border-bottom:1px solid var(--border) !important;
  -webkit-backdrop-filter:saturate(1.3) blur(14px); backdrop-filter:saturate(1.3) blur(14px);
  box-shadow:0 1px 0 rgba(255,255,255,.02) !important;
  /* SOURCE UNIQUE de l'empilement du header. NE PAS repasser en position:static :
     un header static annule le z-index et le menu deroulant passe DERRIERE les bons. */
  position:sticky; top:0; z-index:40; min-height:70px;
}
header .hbrand, header h1, header h1 *{
  font-family:var(--font-display); color:var(--text) !important; font-weight:800; letter-spacing:-.03em; text-transform:none;
}
header .hbrand{ font-size:19px; }
header small{ color:var(--text-muted) !important; opacity:1; font-family:var(--font-ui); font-weight:500; }

/* ============================ CARTES ============================ */
.card{
  background:var(--surface); border:1px solid var(--border) !important;
  border-radius:20px !important; box-shadow:var(--shadow-sm); padding:20px;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
.empty, .day-empty{ color:var(--text-muted); font-weight:500; text-transform:none; letter-spacing:normal; }

/* ============================ BOUTONS (pill) ============================ */
.btn, .createbtn, .dlbtn, .telact, button[type=submit]{
  font-family:var(--font-ui); font-weight:700; letter-spacing:.005em; text-transform:none;
  background:var(--primary); color:#0c1311; border:none !important; border-radius:var(--radius-pill) !important;
  box-shadow:0 8px 22px -12px rgba(47,184,164,.7); cursor:pointer; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), filter .25s var(--ease);
}
.btn{ padding:10px 20px; }
.btn:hover, .dlbtn:hover, .telact:hover, button[type=submit]:hover{
  background:var(--primary-hover); transform:translateY(-2px); box-shadow:0 16px 34px -14px rgba(47,184,164,.75);
}
.btn:active, button[type=submit]:active{ transform:translateY(0); box-shadow:0 6px 16px -10px rgba(47,184,164,.6); }
.btn.ghost{ background:rgba(255,255,255,.03); color:var(--text); border:1px solid var(--border) !important; box-shadow:none; }
.btn.ghost:hover{ background:rgba(255,255,255,.06); color:var(--text); border-color:var(--primary) !important; transform:translateY(-2px); }
.btn.danger{ background:var(--danger); color:#1b0d0a; }
.btn.danger:hover{ background:#e25640; }
.btn.sm{ padding:7px 14px; font-size:13px; }

/* gros bouton créer -> pill moderne en ligne */
.createbtn, .chatbtn{
  position:static !important; width:auto; height:auto; flex-direction:row !important;
  gap:8px; padding:12px 22px !important; border-radius:var(--radius-pill) !important; font-size:15px !important;
  font-weight:700; box-shadow:0 12px 30px -14px rgba(47,184,164,.7); margin-bottom:18px;
}
.createbtn:hover{ background:var(--primary-hover); transform:translateY(-2px); box-shadow:0 18px 40px -16px rgba(47,184,164,.8); }
.createbtn .plus, .chatbtn .plus{ font-size:18px !important; }

.backbtn{
  color:var(--text-muted) !important; background:transparent; border:none; box-shadow:none;
  font-weight:600; text-transform:none; letter-spacing:normal; padding:6px 0; transition:color .2s var(--ease);
}
.backbtn:hover{ color:var(--primary) !important; }

/* ============================ MENU UTILISATEUR ============================ */
.uchip{
  background:rgba(255,255,255,.03) !important; color:var(--text) !important;
  border:1px solid var(--border); border-radius:var(--radius-pill); box-shadow:none;
  font-weight:600; text-transform:none; transition:all .2s var(--ease);
}
.uchip:hover{ background:rgba(255,255,255,.06); border-color:var(--primary); }
.uchip .cv{ color:var(--text-muted); }
.umenu{ background:var(--surface); border:1px solid var(--border) !important; border-radius:18px; box-shadow:var(--shadow); }
.umenu .uhead{ border-bottom:1px solid var(--border); }
.umi{ color:var(--text); font-weight:500; border-radius:10px; transition:all .15s var(--ease); }
.umi:hover, .umi:active{ background:var(--card2); color:var(--text); }
.umi.danger{ color:#f4866f; }
.umi.danger:hover{ background:rgba(239,106,82,.16); color:#f4866f; }
.umi-sep{ background:var(--border); }

/* ============================ CHAMPS DE SAISIE ============================ */
input, textarea, select{
  background:rgba(0,0,0,.22) !important; color:var(--text) !important;
  border:1px solid var(--border) !important; border-radius:14px !important;
  font-family:var(--font-ui); font-weight:500; transition:border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}
input::placeholder, textarea::placeholder{ color:#7d8494; }
input:focus, textarea:focus, select:focus{
  outline:none; border-color:var(--primary) !important; box-shadow:var(--ring); background:rgba(0,0,0,.3) !important;
}
.err{ color:var(--danger); font-weight:600; }

/* ============================ LISTE / GROUPES DE BONS ============================ */
/* bloc-jour : arrondi subtil, en-tête = bandeau plat (pas d'effet "onglet") */
.grp{ border-radius:8px !important; }
.grp-h{
  background:var(--card2); border:none !important; border-bottom:1px solid var(--border) !important;
  border-radius:0 !important; box-shadow:none; transition:background .2s var(--ease);
}
.grp-h:hover{ background:#272b35; }
.grp-h .grp-t{ color:var(--text); font-weight:700; text-transform:capitalize; letter-spacing:-.01em; }
.grp-h .grp-c{
  background:rgba(255,255,255,.04); color:var(--text-muted); border:1px solid var(--border);
  border-radius:var(--radius-pill); font-weight:700; font-size:12px; padding:4px 10px;
}
.grp-h .chev{ color:var(--text-muted); }

.bon{ transition:all .25s var(--ease); }
.bon .r-date{ color:var(--text-muted); font-weight:700; text-transform:none; letter-spacing:normal; }
.bon .r-main{ color:var(--text); font-weight:500; }
.r-sep{ color:#4a515e; }
.r-tag{
  background:rgba(255,255,255,.04) !important; color:var(--text-muted) !important; transform:none;
  border:1px solid var(--border); border-radius:var(--radius-pill); padding:3px 9px; font-weight:600; font-size:11px;
}

/* statut des bons -> COULEUR PLEINE sur toute la carte + 2 lignes */
.card.bon{ display:flex !important; align-items:flex-start !important; border:1px solid transparent !important; }
.card.bon .r-main{ white-space:normal !important; overflow:visible !important; text-overflow:clip !important; line-height:1.5 !important; }
.card.bon .r-date{ padding-top:1px; }
.card.bon-wait    { background:#3a414e !important; border-color:#454d5c !important; color:#fff !important; }
.card.bon-signed  { background:#159a73 !important; border-color:#127d5e !important; color:#fff !important; }
.card.bon-wait-m  { background:#c8881f !important; border-color:#a8701a !important; color:#fff !important; }
.card.bon-signed-m{ background:#2a8f82 !important; border-color:#227a6f !important; color:#fff !important; }
.card.bon .r-date, .card.bon .r-main, .card.bon .r-main b, .card.bon .r-sep{ color:#fff !important; }
.card.bon .r-sep{ opacity:.5 !important; }
.card.bon .badge{ background:rgba(0,0,0,.24) !important; color:#fff !important; }
.card.bon .btn{ background:rgba(0,0,0,.24) !important; color:#fff !important; border:1px solid rgba(255,255,255,.3) !important; box-shadow:none !important; }
.card.bon .btn:hover{ background:rgba(0,0,0,.36) !important; transform:translateY(-1px) !important; }
.card.bon:hover{ box-shadow:var(--shadow-hover); transform:translateY(-2px); }

/* Filet de securite : le menu deroulant toujours au-dessus du contenu (header = z-index:40 plus haut) */
.umenu{ z-index:60; }

/* petits badges */
.badge{ display:inline-flex; align-items:center; gap:4px; border-radius:var(--radius-pill); padding:4px 10px; font-size:12px; font-weight:700; line-height:1; letter-spacing:.01em; }
.badge-success{ background:rgba(52,211,153,.16); color:#5fe0b0; }
.badge-warning{ background:rgba(234,178,52,.16); color:#f1c45a; }
.badge-primary{ background:rgba(47,184,164,.18); color:#5fd3c2; }

/* ============================ CALENDRIER ============================ */
.cal{
  background:var(--surface); border:1px solid var(--border) !important;
  border-radius:24px !important; padding:24px; box-shadow:var(--shadow);
}
.cal-title{ font-family:var(--font-display); color:var(--text); font-weight:800; font-size:1.25rem; text-transform:none; letter-spacing:-.02em; }
.cal-today{
  background:rgba(255,255,255,.04); color:var(--text-muted); border:1px solid var(--border);
  border-radius:var(--radius-pill); padding:5px 14px; font-weight:600; text-transform:none; transition:all .2s var(--ease);
}
.cal-today:hover{ background:rgba(47,184,164,.1); color:var(--primary); border-color:var(--primary); }
.cal-nav{
  width:44px; height:44px; border-radius:50% !important; background:rgba(255,255,255,.04);
  border:1px solid var(--border); color:var(--text); box-shadow:var(--shadow-xs);
  font-size:20px; transition:all .22s var(--ease);
}
.cal-nav:hover{ background:var(--primary); color:#0c1311; border-color:var(--primary); transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(47,184,164,.7); }
.cal-nav:active{ transform:translateY(0); }
.cal-dows span{ color:var(--text-muted); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.cal-grid{ gap:8px !important; }
.cal-cell{
  background:rgba(255,255,255,.025); border:1px solid var(--border) !important; border-radius:14px !important;
  transition:all .22s var(--ease);
}
.cal-cell.cal-blank{ background:transparent; border-color:transparent !important; box-shadow:none; }
.cal-cell .cal-d{ color:var(--text); font-weight:700; font-size:14px; }
.cal-cell.has:hover{ transform:translateY(-3px); box-shadow:var(--shadow-sm); border-color:#3c4350 !important; }
.cal-cell.today{ background:var(--primary) !important; border-color:var(--primary) !important; box-shadow:0 0 0 4px rgba(47,184,164,.2) !important; outline:none !important; }
.cal-cell.today .cal-d{ color:#0c1311; font-weight:800; }
.cal-cell.today .cal-badge{ background:#0c1311; color:var(--primary); }
.cal-cell.today .dot.w{ background:#fcd9a0; } .cal-cell.today .dot.s{ background:#b6f4dc; }
.cal-badge{
  background:var(--primary); color:#0c1311; border-radius:var(--radius-pill); padding:4px 8px;
  font-size:12px; font-weight:800; transform:none; border:none; min-width:0; height:auto;
}
.dot{ width:7px; height:7px; border-radius:50%; }
.dot.w{ background:var(--warning); } .dot.s{ background:var(--success); }
.cal-legend{ color:var(--text-muted); font-weight:500; text-transform:none; letter-spacing:normal; }

/* ============================ OVERLAY / BOTTOM-SHEET ============================ */
.ov, .overlay{ background:rgba(8,11,14,.6) !important; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.sheet{ background:var(--surface) !important; border-top:none; border-radius:26px 26px 0 0 !important; box-shadow:0 -24px 70px -20px rgba(0,0,0,.6); }
.sheet h2{ font-family:var(--font-display); color:var(--text); font-weight:800; font-size:1.3rem; text-transform:none; letter-spacing:-.02em; }
.sheet .x{ background:rgba(255,255,255,.05) !important; color:var(--text-muted) !important; border-radius:12px !important; transition:all .15s var(--ease); }
.sheet .x:hover{ background:var(--card2) !important; color:var(--text) !important; }
.linkbox{ background:rgba(0,0,0,.25) !important; border:1px solid var(--border) !important; border-radius:14px !important; color:var(--text) !important; }
.share a{
  background:rgba(255,255,255,.04); color:var(--text); border:1px solid var(--border) !important;
  border-radius:14px; font-weight:600; text-transform:none; box-shadow:none; transition:all .22s var(--ease);
}
.share a:hover{ background:rgba(47,184,164,.1); border-color:var(--primary); color:var(--primary); transform:translateY(-2px); }

/* ============================ PAGE BON (signature / infos) ============================ */
.card h2{
  font-family:var(--font-ui); color:var(--text-muted) !important; border-bottom:none; display:block; padding-bottom:0;
  text-transform:uppercase; font-size:12px; letter-spacing:.08em; font-weight:700;
}
.info .k{ color:var(--text-muted); text-transform:none; font-size:14px; letter-spacing:normal; }
.info .v{ color:var(--text); font-weight:700; }
.telcl{ color:var(--primary); font-weight:700; }
.telact{ border-radius:var(--radius-pill) !important; }
.telact.call{ background:var(--primary); color:#0c1311; }
.telact.msg{ background:rgba(255,255,255,.04); color:var(--text); border:1px solid var(--border) !important; box-shadow:none; }
.navbtn{ border:1px solid var(--border) !important; border-radius:var(--radius-pill) !important; box-shadow:none; font-weight:700; text-transform:none; transition:all .22s var(--ease); }
.navbtn.gmaps{ background:var(--primary) !important; color:#0c1311 !important; border-color:var(--primary) !important; }
.navbtn.waze{ background:rgba(255,255,255,.04) !important; color:var(--text) !important; }
.navbtn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.mapframe{ border:1px solid var(--border) !important; border-radius:18px !important; }
.pad{ border:1px solid var(--border) !important; border-radius:16px !important; }
.clr{ background:rgba(255,255,255,.04); border:1px solid var(--border); color:var(--text-muted); border-radius:var(--radius-pill); text-transform:none; }
.back{
  background:rgba(255,255,255,.04) !important; color:var(--text) !important; border:1px solid var(--border) !important;
  border-radius:var(--radius-pill) !important; box-shadow:none; transition:all .22s var(--ease);
}
.back:hover{ background:rgba(255,255,255,.07) !important; border-color:var(--primary) !important; }
.locked{ background:rgba(0,0,0,.25); border:1px solid var(--border) !important; border-radius:14px !important; }

/* chips (matériel / type de journée / heures supp) */
.chips .ch, .jtype .jt, .hsupp .hs{
  background:rgba(255,255,255,.04); border:1px solid var(--border) !important; color:var(--text);
  border-radius:var(--radius-pill) !important; box-shadow:none; font-weight:600; transition:all .2s var(--ease);
}
.chips .ch:hover, .jtype .jt:hover, .hsupp .hs:hover{ border-color:var(--primary); color:var(--text); }
.chips .ch.on, .jtype .jt.on, .hsupp .hs.on{ background:var(--primary); color:#0c1311; border-color:var(--primary) !important; font-weight:700; }

/* confirmation signée */
.modal{ background:var(--surface) !important; border:1px solid var(--border) !important; border-radius:24px !important; box-shadow:var(--shadow); }
.modal .check{ background:var(--success); border:none; border-radius:50% !important; color:#06271c; }

/* ============================ LOGIN (carte centrée) ============================ */
.logo{ align-items:center !important; }
.logo .brandtext{
  font-family:var(--font-display); font-size:28px !important; font-weight:800; letter-spacing:-.03em; line-height:1.1;
  text-align:center !important; color:var(--text) !important; text-transform:none;
}
.logo p{ color:var(--text-muted); text-transform:none; letter-spacing:normal; font-weight:500; }
.foot{ color:var(--text-muted); text-transform:none; letter-spacing:normal; font-weight:400; }
form.card{
  border:1px solid var(--border) !important; border-radius:24px !important;
  box-shadow:var(--shadow) !important; background:var(--surface) !important;
}

/* ============================ RESPONSIVE ============================ */
@media (max-width:900px){
  .cal{ padding:18px; border-radius:20px !important; }
  .cal-grid{ gap:6px !important; }
  .cal-title{ font-size:1.15rem; }
}
@media (max-width:600px){
  .cal{ padding:14px; border-radius:18px !important; }
  .cal-grid{ gap:5px !important; }
  .cal-cell{ border-radius:11px !important; }
  .cal-cell .cal-d{ font-size:12px; }
  .cal-badge{ padding:2px 6px; font-size:10px; }
  .cal-nav{ width:40px; height:40px; font-size:18px; }
  .cal-today{ padding:4px 12px; font-size:11px; }
  header{ min-height:60px; }
  header .hbrand{ font-size:17px; }
  .card{ padding:16px; border-radius:18px !important; }
  .btn, .createbtn, .telact, button[type=submit]{ min-height:44px; }
  .grp-h{ padding:12px; }
  body::before{ display:none !important; }
}

/* ============================ ACCUEIL : menu administrateur ============================ */
.home-head{ margin:6px 2px 20px; }
.home-title{ font-family:var(--font-display); font-size:1.6rem; font-weight:800; color:var(--text); margin:0; letter-spacing:-.03em; }
.home-title span{ color:var(--primary); }
.home-sub{ color:var(--text-muted); margin:5px 0 0; font-size:14px; font-weight:500; }
.home-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:20px; }
.stat{ background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:16px 12px; text-align:center; transition:all .25s var(--ease); }
.stat:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); border-color:#39404d; }
.stat-n{ font-family:var(--font-display); font-size:1.7rem; font-weight:800; color:var(--text); line-height:1; letter-spacing:-.02em; }
.stat-l{ font-size:11px; color:var(--text-muted); margin-top:7px; text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.home-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(155px,1fr)); gap:14px; }
.tile{
  display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left;
  background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:18px;
  cursor:pointer; transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease); box-shadow:var(--shadow-sm); color:var(--text); font-family:var(--font-ui);
}
.tile:hover{ transform:translateY(-4px); box-shadow:var(--shadow-hover); border-color:var(--primary); }
.tile-ic{ font-size:26px; line-height:1; }
.tile-t{ font-weight:700; font-size:15px; letter-spacing:-.01em; }
.tile-d{ font-size:12px; color:var(--text-muted); line-height:1.45; }

/* ============================ Type d'intervention ============================ */
.ibadge{ display:inline-block; padding:3px 9px; border-radius:var(--radius-pill); font-size:11px; font-weight:800; white-space:nowrap; vertical-align:middle; }
.itype-ch::before{ content:''; display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--ic); margin-right:7px; vertical-align:-1px; }
.itype-ch.on{ background:var(--ic) !important; border-color:var(--ic) !important; color:#fff !important; }
.itype-ch.on::before{ background:#fff; }

@media (max-width:600px){
  .home-title{ font-size:1.35rem; }
  .home-grid{ grid-template-columns:repeat(2, 1fr); gap:10px; }
  .stat-n{ font-size:1.4rem; }
}

/* ============================ Accueil : sections + "à venir" ============================ */
.home-section{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em;
  color:var(--text-muted); margin:24px 2px 12px; display:flex; align-items:center; gap:9px; }
.soon-pill{ background:rgba(234,178,52,.18); color:#f1c45a; border-radius:var(--radius-pill); padding:2px 9px;
  font-size:10px; font-weight:800; letter-spacing:.03em; text-transform:none; }
.tile{ position:relative; }
.tile-badge{ position:absolute; top:10px; right:10px; background:rgba(234,178,52,.18); color:#f1c45a;
  border-radius:var(--radius-pill); padding:2px 7px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.soon-tag{ display:inline-block; background:rgba(234,178,52,.16); color:#f1c45a;
  border:1px solid rgba(234,178,52,.35); border-radius:var(--radius-pill); padding:7px 14px; font-size:13px; font-weight:700; }

/* Bouton assistant IA = pill verdigris foncé à droite du créer */
.createbtn, .chatbtn{ display:inline-flex !important; vertical-align:top; }
.chatbtn{ width:auto !important; height:auto !important; margin:0 0 18px 10px !important;
  background:linear-gradient(135deg,#2fb8a4,#1d8576) !important; color:#0c1311 !important; }
.chatbtn:hover{ transform:translateY(-2px); box-shadow:0 18px 40px -16px rgba(47,184,164,.8); filter:brightness(1.05); }

/* =========================================================================
   REFONTE STYLE (importée de brainserv.pro) — STRUCTURE UNIQUEMENT (2026-06-24)
   /!\ AUCUNE couleur / teinte de brutus n'est modifiée. On ne touche qu'à :
   typographie (police unique Plus Jakarta Sans, gros titres), formes (angles
   droits 0px), ombres (dures décalées, noir NEUTRE comme les ombres brutus),
   espacement et composition (tuiles bordées + barre d'accent, reveal).
   Toute couleur utilisée réfère aux variables EXISTANTES de brutus
   (var(--primary) verdigris, var(--border), var(--surface)…). body::before
   (watermark logo) n'est pas touché.
   ========================================================================= */
:root{
  /* police unique : Plus Jakarta Sans (on abandonne Syne en display) */
  --font-display:'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  /* formes : angles droits (les actions restent en pilule via --radius-pill) */
  --radius:0px; --radius-lg:0px;
  /* ombres dures décalées — noir neutre (même teinte que les ombres brutus) */
  --shadow-xs:3px 3px 0 rgba(0,0,0,.30);
  --shadow-sm:4px 4px 0 rgba(0,0,0,.36);
  --shadow:7px 7px 0 rgba(0,0,0,.45);
  --shadow-hover:7px 7px 0 rgba(0,0,0,.45);
  --ease-bz:cubic-bezier(0.22,1,0.36,1);
}

/* angles droits sur les surfaces (boutons/chips/badges gardent la pilule) */
.card, .umenu, input, textarea, select, .cal, .cal-cell, .cal-nav,
.sheet, .sheet .x, .linkbox, .mapframe, .pad, .locked, .modal,
.stat, .tile, form.card, .grp, .ph-card, .ph-del, .mod-item, .exp-card,
.mod-list, .ph-info{
  border-radius:0 !important;
}
.sheet{ border-radius:0 !important; }
.cal-nav{ border-radius:0 !important; }

/* ombres dures sur les surfaces qui hardcodaient une ombre douce */
.sheet{ box-shadow:0 -8px 0 rgba(0,0,0,.28) !important; }

/* en-têtes : barre d'accent à gauche (accent verdigris brutus) */
.home-head{ padding-left:16px; border-left:5px solid var(--primary); margin:10px 2px 26px; }
.home-title{ font-size:clamp(2.2rem, 6.5vw, 3.8rem) !important; font-weight:800 !important;
  letter-spacing:-.035em !important; line-height:1 !important; }
.home-sub{ text-transform:uppercase; letter-spacing:.05em; font-size:12px !important; font-weight:600; }
.home-section{ letter-spacing:.12em !important; margin:30px 2px 14px !important; }
.home-section::before{ content:''; width:18px; height:2px; background:var(--primary); display:inline-block; }
.mod-head{ padding-left:14px; border-left:5px solid var(--primary); }

/* gros titres éditoriaux (clamp fluide) */
.mod-title{ font-size:clamp(1.4rem,4vw,2rem) !important; font-weight:800 !important; letter-spacing:-.02em !important; }
.cal-title{ font-size:clamp(1.3rem,3.4vw,1.9rem) !important; font-weight:800 !important; }
.sheet h2{ font-size:clamp(1.3rem,3.5vw,1.7rem) !important; font-weight:800 !important; }
.stat-n{ font-size:clamp(1.7rem,5vw,2.3rem) !important; }
.logo .brandtext{ font-size:clamp(2.1rem,8vw,3.2rem) !important; font-weight:800 !important;
  letter-spacing:-.03em !important; line-height:1 !important; }

/* tuiles : espacées (gap 14 conservé), bordées, barre d'accent à gauche, ombre dure */
.tile{ border:1.5px solid var(--border) !important; position:relative; overflow:hidden; }
.tile::after{ content:''; position:absolute; left:0; top:0; width:5px; height:0;
  background:var(--primary); transition:height .26s var(--ease-bz); }
.tile:hover{ transform:translateY(-3px) !important; box-shadow:var(--shadow) !important; }
.tile:hover::after{ height:100%; }

/* boutons : pilule conservée ; ombre dure au survol */
.btn:hover, .createbtn:hover, .chatbtn:hover{ box-shadow:var(--shadow) !important; }

/* entrée de page : reveal en cascade (transform/opacity uniquement) */
@keyframes brz-rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
.home-head, .home-section, .home-grid, .home-stats, .mod-head, .cal, .card{
  animation:brz-rise .55s var(--ease-bz) both;
}
.home-grid .tile{ animation:brz-rise .5s var(--ease-bz) both; }
.home-grid .tile:nth-child(1){animation-delay:.04s} .home-grid .tile:nth-child(2){animation-delay:.08s}
.home-grid .tile:nth-child(3){animation-delay:.12s} .home-grid .tile:nth-child(4){animation-delay:.16s}
.home-grid .tile:nth-child(5){animation-delay:.2s} .home-grid .tile:nth-child(6){animation-delay:.24s}
.home-grid .tile:nth-child(7){animation-delay:.28s} .home-grid .tile:nth-child(8){animation-delay:.32s}
.home-grid .tile:nth-child(9){animation-delay:.36s} .home-grid .tile:nth-child(n+10){animation-delay:.4s}
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; } }

/* survol d'un bon : la case passe en orange clair (texte assombri pour rester lisible).
   Cible .card.bon (les "cases" de la liste) — PAS .tile qui n'existe pas sur brutus. */
.card.bon:hover{ background:#ffd8a8 !important; border-color:#f0a857 !important; }
.card.bon:hover .r-date, .card.bon:hover .r-main, .card.bon:hover .r-main b, .card.bon:hover .r-sep{ color:#4a2f12 !important; }
.card.bon:hover .badge{ background:rgba(0,0,0,.16) !important; color:#4a2f12 !important; }

/* survol de la case du JOUR (groupe) : toute la case devient tres foncee */
.grp:hover{ background:#070a0d !important; border-color:#05080a !important; }
.grp:hover .grp-h{ background:transparent !important; }

/* boutons "Créer bon" et "Une question ?" : beaucoup moins arrondis */
.createbtn, .chatbtn{ border-radius:5px !important; }
/* boutons d'action d'un bon (lien / télécharger / supprimer) : tout petit arrondi */
.btn.sm{ border-radius:5px !important; }

/* === Assistant IA : fenêtre flottante centrée, plus grande === */
#chatOv{ align-items:center !important; }
#chatOv .chatsheet{
  position:relative; overflow:visible !important;
  width:min(94vw,720px) !important; max-width:720px !important;
  max-height:88vh !important; min-height:64vh;
  border-radius:6px !important; box-shadow:0 32px 90px -18px rgba(0,0,0,.65);
}
#chatOv .chatsheet .chatlog{ max-height:62vh !important; }
/* badge rouge avec croix, en haut à droite de la fenêtre (remplace le bouton fermer) */
.chat-close-badge{
  position:absolute; top:-12px; right:-12px; z-index:7;
  width:32px; height:32px; padding:0; border-radius:50%;
  background:#e53935; color:#fff; border:2px solid var(--card);
  font-size:19px; line-height:1; font-weight:800; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.45); transition:background .18s var(--ease-bz), transform .18s var(--ease-bz); }
.chat-close-badge:hover{ background:#c62828; transform:scale(1.08); }
/* badge réduire (garde la conversation), à gauche du badge fermer */
.chat-min-badge{
  position:absolute; top:-12px; right:30px; z-index:7;
  width:32px; height:32px; padding:0 0 4px; border-radius:50%;
  background:#5b6b7a; color:#fff; border:2px solid var(--card);
  font-size:22px; line-height:1; font-weight:800; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.45); transition:background .18s var(--ease-bz), transform .18s var(--ease-bz); }
.chat-min-badge:hover{ background:#46535f; transform:scale(1.08); }
/* bouton micro dans la barre de saisie */
.chat-mic{ width:auto !important; padding:11px 14px !important; }
.chat-mic.rec{ background:#e53935 !important; color:#fff !important; }

/* 3e bouton : Recherche (ambre, distinct des deux autres), meme gabarit */
.searchbtn{ display:inline-flex !important; align-items:center; gap:8px; vertical-align:top;
  position:static !important; width:auto; height:auto; padding:12px 22px !important;
  font-size:15px !important; font-weight:700; line-height:1.1; border:none; border-radius:5px !important; cursor:pointer;
  color:#1a1205 !important; background:linear-gradient(135deg,#f0a857,#d98a2b) !important;
  margin:0 0 18px 10px !important; box-shadow:0 12px 30px -14px rgba(217,138,43,.7);
  transition:transform .18s var(--ease-bz), box-shadow .18s var(--ease-bz), filter .18s var(--ease-bz); }
.searchbtn .plus{ font-size:18px !important; }
.searchbtn:hover{ transform:translateY(-2px); box-shadow:0 18px 40px -16px rgba(217,138,43,.85); filter:brightness(1.04); }
/* barre de recherche : compacte par defaut, se deploie au clic/focus */
#searchBar{ display:flex; }
#searchBar input{ width:240px; max-width:100%; padding:11px 14px; border-radius:10px; border:1px solid var(--line);
  background:#11171d; color:var(--txt); font-size:15px; font-family:inherit; outline:none;
  transition:width .32s var(--ease-bz), border-color .18s var(--ease-bz), box-shadow .18s var(--ease-bz); }
#searchBar input:focus, #searchBar input:not(:placeholder-shown){
  width:100%; border-color:var(--primary); box-shadow:0 0 0 3px rgba(47,184,164,.16); }
@media(max-width:1024px){ .searchbtn{ width:100% !important; justify-content:center; margin:0 0 14px 0 !important; } }

/* Page bon : tous les boutons quasi droits (5px) — override des pilules var(--radius-pill) */
.btn, .dlbtn, .telact, .navbtn, .clr, button[type=submit],
.chips .ch, .jtype .jt, .hsupp .hs{ border-radius:5px !important; }
