@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&family=Teko:wght@400..700&family=Poiret+One&display=swap');

:root{
  --bg:#F7F4EC;
  --paper:#FFFFFF;
  --ink:#3A3A3A;
  --ink-strong:#1F1F1F;
  --accent-base:#8A8A8A;
  --accent-dark-base:#5A5A5A;
  --accent:var(--accent-base);
  --accent-dark:var(--accent-dark-base);
  --line:#E7E2D6;
  --font-display:'Teko', sans-serif;
  --font-h2:'Poiret One', sans-serif;
  --font-body:'Outfit', sans-serif;
  --solid:var(--ink-strong);
  /* cadres : fine ligne en degrade (couleurs du logo Davidson par defaut, remplacees par celles du commerce via le theme) */
  --grad-a:#8C52FF;
  --grad-b:#FF914D;
  --radius:14px;
}
/* mode sombre : neutralise le fond/texte, garde la couleur de marque (accent) de chaque collaborateur */
/* --accent-base/--accent-dark-base viennent du theme (JS) ; --accent/--accent-dark sont derives ici (jamais auto-references) */
body.dark-mode{
  --bg:#18100F;
  --paper:#241A18;
  --ink:#E9E1DC;
  --ink-strong:#FFFFFF;
  --line:#3B2E2B;
  --accent:color-mix(in srgb, var(--accent-base) 82%, white 18%);
  --accent-dark:color-mix(in srgb, var(--accent-dark-base) 70%, white 30%);
  --solid:var(--accent-dark);
}

.theme-toggle{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-strong);
  transition:background .15s ease,transform .15s ease;flex-shrink:0;
}
.theme-toggle:hover{background:var(--line);transform:rotate(15deg);}
.theme-toggle svg{width:18px;height:18px;}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  transition:background .3s ease,color .3s ease;
}
a{color:inherit;}
h1{font-family:var(--font-display);font-weight:var(--h1-weight,500);color:var(--ink-strong);letter-spacing:0;}
h2,h3{font-family:var(--font-h2);font-weight:var(--h2-weight,400);color:var(--ink-strong);letter-spacing:.01em;}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

.btn{
  font-family:var(--font-body);font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  background:var(--solid);color:#fff;padding:14px 24px;border-radius:0;
  border:1px solid var(--solid);cursor:pointer;display:inline-block;text-decoration:none;
  position:relative;overflow:hidden;z-index:0;
  transition:color .3s ease .05s;
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--accent);z-index:-1;
  transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.65,0,.35,1);
}
.btn:hover::before{transform:scaleX(1);}
.btn.ghost{background:transparent;color:var(--solid);border:1px solid var(--solid);}
.btn.ghost::before{background:var(--solid);}
.btn.ghost:hover{color:#fff;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn:disabled::before{display:none;}

input,textarea,select{
  font-family:var(--font-body);font-size:15px;padding:12px 14px;border:1px solid var(--line);
  border-radius:0;background:var(--paper);color:var(--ink);width:100%;
}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:2px 2px 0 var(--accent);}
label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark);display:block;margin-bottom:7px;font-family:var(--font-body);}
.field{margin-bottom:18px;}

[hidden]{display:none !important;}
.card,.stat-strip .stat{
  border:1px solid transparent;border-radius:var(--radius);
  background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(90deg,var(--grad-a),var(--grad-b)) border-box;
}
.card{padding:32px;box-shadow:0 1px 2px rgba(0,0,0,.04);}
.error{color:#B3392C;font-size:14px;margin-top:10px;}
.hint{color:var(--accent-dark);font-size:13.5px;}

.badge{
  display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 10px;border-radius:0;background:var(--line);color:var(--ink-strong);border:none;
}
.badge.client, .badge.actif{background:var(--solid);color:#fff;}

/* decor: plantes (feuilles decoratives sur les cotes, identite "vegetal/restaurant") */
.leaf-side{position:fixed;bottom:0;width:170px;height:70vh;pointer-events:none;z-index:0;opacity:.9;display:none;}
.leaf-left{left:-30px;}
.leaf-right{right:-30px;transform:scaleX(-1);}
.leaf-side svg{width:100%;height:100%;}
body.decor-plantes .leaf-side{display:block;}
@media (max-width:820px){.leaf-side{display:none !important;}}

.content{position:relative;z-index:1;}

/* decor: lignes (identite sobre/corporate, ex: compte admin) */
body.decor-lignes header{border-top:5px solid var(--accent);border-bottom:1px solid var(--ink-strong);}
body.decor-lignes table thead{border-bottom:2px solid var(--ink-strong);}

/* icones de contact (liste admin) */
.contact-icons{display:flex;gap:8px;}
.contact-icons a{
  display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:0;border:1px solid var(--line);
  font-size:13px;font-weight:700;text-decoration:none;color:var(--accent-dark);
  transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;
}
.contact-icons a:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-2px);box-shadow:2px 3px 0 rgba(0,0,0,.15);}
.contact-icons a:active{transform:translateY(0);}
.contact-icons span.disabled{
  display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:0;border:1px dashed var(--line);
  font-size:13px;color:var(--line);
}

/* interactions generales : lignes de tableau et cartes reagissent au survol */
tbody tr{transition:background .15s ease;}
tbody tr:hover{background:var(--bg);}
.stat{transition:transform .15s ease,box-shadow .15s ease;}
.stat:hover{transform:translateY(-2px);box-shadow:2px 4px 0 rgba(0,0,0,.06);}

/* --- kanban : colonnes + cartes colorees --- */
.kanban-board{display:flex;gap:20px;align-items:flex-start;overflow-x:auto;padding-bottom:10px;}
.kanban-col{flex:1 0 260px;min-width:260px;}
.kanban-col-head{display:flex;justify-content:space-between;align-items:center;padding:0 4px 12px;border-bottom:2px solid var(--ink-strong);margin-bottom:14px;}
.kanban-col-head h3{font-size:15px;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-body);}
.kanban-col-head .count{font-family:var(--font-body);font-weight:700;font-size:12.5px;background:var(--solid);color:#fff;padding:2px 9px;}

.kanban-card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px;
  transition:transform .15s ease,box-shadow .15s ease;position:relative;
}
.kanban-card:hover{transform:translateY(-2px);box-shadow:3px 4px 0 rgba(0,0,0,.08);}
.kanban-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;}
.kanban-card-title{font-family:var(--font-h2);font-weight:400;font-size:17px;color:var(--ink-strong);}
.kanban-card-sub{font-size:12px;color:var(--accent-dark);margin-top:2px;}

.kanban-avatar{
  width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-body);font-weight:700;font-size:12px;flex-shrink:0;
}

.kanban-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0;}
.kanban-tag{font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:3px 9px;text-transform:uppercase;}

.kanban-stars{display:flex;gap:2px;}
.kanban-stars .star{color:var(--line);font-size:15px;line-height:1;}
.kanban-stars .star.filled{color:#D9A441;}
.kanban-stars[data-star-target] .star{cursor:pointer;}

.kanban-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);}
.kanban-card-footer .contact-icons a, .kanban-card-footer .contact-icons span{width:26px;height:26px;}

.kanban-empty-col{border:1px dashed var(--line);border-radius:var(--radius);padding:24px 14px;text-align:center;color:var(--accent-dark);font-size:13px;}

/* logo du commerce (dashboard + formulaire QR) */
.collab-logo{display:block;height:44px;width:auto;max-width:200px;object-fit:contain;}
/* en-tete du tableau de bord : logo raccourci + pastille CRM */
.brand-row{display:flex;align-items:center;gap:10px;}
.logo .collab-logo{height:38px;max-width:170px;}
.crm-tag{font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.14em;line-height:1;color:var(--accent-dark);border:1px solid var(--accent-dark);border-radius:999px;padding:4px 9px;}
@media (min-width:520px){.kanban-col{flex:1 1 0;min-width:0;}.kanban-board{overflow:visible;}}
.davidson-logo{display:block;width:220px;max-width:70%;height:auto;margin:0 auto 22px;}
body.dark-mode .davidson-logo{filter:brightness(0) invert(1);opacity:.92;}
.collab-logo.form-logo{height:auto;width:min(220px,60vw);max-width:none;margin:0 auto 22px;}
body.dark-mode .collab-logo{filter:brightness(0) invert(1);opacity:.92;}
.kanban-card-title{font-weight:var(--h2-weight,400);}

/* telephone : colonnes kanban empilees, plus de contenu coupe sur les bords */
@media (max-width:519px){
  .kanban-board{flex-direction:column;overflow:visible;gap:28px;}
  .kanban-col{flex:none;min-width:0;width:100%;}
}
