/* Studio 1TDS : charte 1TENDANCE SERVICES 2026 */
:root{
  --nuit:#0d1b2a;
  --cyan:#01a4e2;
  /* Constat 46 : le cyan de la charte sur fond blanc plafonne à 2,83:1, sous
     le seuil d'accessibilité de 4,5:1. Deux déclinaisons plus sombres servent
     là où il y a du texte : --cyan-fonce pour les surfaces pleines portant du
     blanc (4,7:1), --cyan-texte pour le cyan écrit sur clair (5,8:1). Le cyan
     de la charte reste inchangé pour les bordures, ombres et aplats décoratifs. */
  --cyan-fonce:#017ca8;
  --cyan-texte:#016d92;
  --violet-fonce:#a55fd6;
  --cyan-maint:#00adcc;
  --vert-fonce:#4ea34d;
  --orange:#c77f16;
  --gris:#5b6b7b;
  --gris-clair:#f4f7fa;
  --bord:#e3e9ef;
  --rouge:#d64545;
}
*{margin:0;padding:0;box-sizing:border-box}
/* Défilement vertical uniquement : on clippe tout débordement horizontal pour
   que la page ne « glisse » plus sur les côtés au scroll. « overflow-x: clip »
   (et non « hidden ») ne crée PAS de conteneur de défilement : le geste iOS de
   retour (balayage depuis le bord gauche) et le rebond vertical restent
   intacts. On ne touche jamais à overscroll-behavior-x, qui lui désactiverait
   ce geste. max-width borne la largeur au viewport. */
html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
body{font-family:'Montserrat',Arial,sans-serif;background:var(--gris-clair);color:var(--nuit);line-height:1.6;-webkit-font-smoothing:antialiased}
.hidden{display:none !important}
img{max-width:100%}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:12px;font-weight:700;font-size:14px;font-family:inherit;border:none;cursor:pointer;transition:opacity .15s ease,transform .08s ease;white-space:nowrap}
.btn:hover{opacity:.9;transform:translateY(-1px)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-primary{background:var(--cyan-fonce);color:#fff;box-shadow:0 6px 18px rgba(1,164,226,.3)}
.btn-dark{background:var(--nuit);color:#fff}
.btn-ghost{background:transparent;color:var(--gris);border:1.5px solid var(--bord)}
.btn-danger{background:#fff;color:var(--rouge);border:1.5px solid var(--rouge)}
.btn-block{width:100%}

/* Connexion */
#view-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 50px rgba(13,27,42,.12);padding:40px 34px;width:100%;max-width:400px;text-align:center}
.login-logo{display:block;width:76px;height:76px;margin:0 auto 12px;border-radius:18px;box-shadow:0 6px 18px rgba(13,27,42,.18)}
.login-card h1{font-size:26px;font-weight:800;letter-spacing:-.01em}
.login-sub{color:var(--gris);font-size:13.5px;margin:6px 0 26px}
.login-card form{text-align:left}
.login-error{background:rgba(214,69,69,.1);color:var(--rouge);border-radius:10px;padding:10px 14px;font-size:13.5px;font-weight:600;margin-bottom:14px}

/* Coquille : menu latéral gauche + zone de contenu. La colonne flex permet à
   la vue intégrée Léon / Paul d'occuper toute la hauteur restante sous la
   barre du haut, sans hauteur codée en dur. */
.app{min-height:100vh}
.app-main{margin-left:230px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}

.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;background:var(--nuit);color:#fff;display:flex;flex-direction:column;z-index:40;overflow-y:auto;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.sidebar-head{padding:20px 20px 14px}
.sidebar-brand{display:block;font-size:20px;font-weight:800;letter-spacing:.02em}
.sidebar-sub{display:block;font-size:11.5px;font-weight:600;color:rgba(255,255,255,.55);margin-top:2px}
.sidebar-nav{flex:1;padding:6px 10px 14px;display:flex;flex-direction:column;gap:2px}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font-family:inherit;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.8);background:transparent;border:none;border-radius:9px;padding:10px 12px;transition:background .12s ease,color .12s ease}
button.nav-item{cursor:pointer}
button.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-item.active{background:rgba(1,164,226,.2);color:#fff;box-shadow:inset 3px 0 0 var(--cyan)}
.nav-icone{width:20px;text-align:center;flex-shrink:0}
.nav-app-img{width:20px;height:20px;border-radius:6px;object-fit:cover;display:block}
.nav-icone-sub{display:none} /* icônes des sous-entrées : visibles en rail uniquement */
.nav-chevron{margin-left:auto;font-size:10px;opacity:.6;transition:transform .15s ease}
.nav-parent[aria-expanded="true"] .nav-chevron{transform:rotate(180deg)}
.nav-sub{display:flex;flex-direction:column;gap:2px;margin:2px 0 4px}
.nav-child{padding-left:42px;font-size:13px}
.nav-section{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.35);padding:16px 12px 6px}
.sidebar-foot{border-top:1px solid rgba(255,255,255,.12);padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.nav-lien{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:rgba(255,255,255,.7);text-decoration:none;border-radius:9px;padding:9px 12px;transition:background .12s ease,color .12s ease}
.nav-lien:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-ext{margin-left:auto;opacity:.5}
.sidebar-overlay{position:fixed;inset:0;background:rgba(13,27,42,.5);z-index:35}

/* Menu latéral rétractable (bureau uniquement) : bouton ⟨ / ⟩ en bas du menu,
   état replié = rail de 64 px avec les icônes seules. */
.sidebar-reduire{border-top:1px solid rgba(255,255,255,.12);padding:10px;display:flex}
.btn-reduire{flex:1;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:15px;font-weight:700;line-height:1;color:rgba(255,255,255,.7);background:transparent;border:1.5px solid rgba(255,255,255,.18);border-radius:9px;padding:8px;cursor:pointer;transition:background .12s ease,color .12s ease}
.btn-reduire:hover{background:rgba(255,255,255,.07);color:#fff}
@media(min-width:901px){
  .sidebar{transition:width .18s ease;overflow-x:hidden}
  .app-main{transition:margin-left .18s ease}
  body.menu-replie .sidebar{width:64px}
  body.menu-replie .app-main{margin-left:64px}
  body.menu-replie .sidebar-head{padding:20px 4px 10px;text-align:center}
  body.menu-replie .sidebar-brand{font-size:14px;letter-spacing:0}
  body.menu-replie .sidebar-sub{display:none}
  body.menu-replie .nav-libelle{display:none}
  body.menu-replie .nav-chevron{display:none}
  body.menu-replie .nav-item{justify-content:center;padding:12px 0;gap:0}
  body.menu-replie .nav-child{padding-left:0}
  body.menu-replie .nav-icone-sub{display:inline-block}
  body.menu-replie .nav-section{height:13px;overflow:hidden;color:transparent;padding:0;margin:10px 10px 0;border-top:1px solid rgba(255,255,255,.12)}
  body.menu-replie .nav-lien{justify-content:center;padding:11px 0;gap:0}
  body.menu-replie .nav-ext{margin-left:0;opacity:.8} /* le ↗ devient l'icône du lien */
}

/* Barre du haut */
/* PWA plein écran iOS : la barre du haut réserve l'encoche / barre d'état
   (safe-area-inset-top). env() vaut 0 hors standalone/encoche : neutre sur
   desktop et navigateur mobile classique. Le fond blur remonte remplir la
   zone système, le contenu cliquable descend dessous (hauteur des boutons
   inchangée : padding ajouté au conteneur, pas retiré à .topbar-inner). */
/* Barre du haut aux couleurs du bureau du Drive : elle prolonge le bleu du
   menu latéral au lieu de couper l'écran par une bande blanche. */
.topbar{position:sticky;top:0;z-index:30;background:linear-gradient(120deg,#0d1b2a 0%,#123049 55%,#0b6ea3 100%);
  backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.10);padding-top:env(safe-area-inset-top);color:#fff}
.topbar .brand,.topbar .brand small{color:#fff}
.topbar .btn-burger{color:#fff;border-color:rgba(255,255,255,.28)}
.topbar .btn-burger:hover{background:rgba(255,255,255,.12)}
/* boutons secondaires : lisibles sur fond sombre */
.topbar .btn-ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24);color:#fff}
.topbar .btn-ghost:hover{background:rgba(255,255,255,.22)}
.topbar .btn-ghost:disabled{color:#cfe0ee}
.topbar .btn-dark{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);color:#fff}
.topbar .btn-dark:hover{background:rgba(255,255,255,.26)}
.topbar .btn-dark:disabled{background:rgba(255,255,255,.10);color:#bcd4e6}
.topbar-inner{max-width:920px;margin:0 auto;padding:9px 18px;display:flex;align-items:center;gap:12px;flex-wrap:nowrap}
.brand{font-weight:800;font-size:17px}
.brand-mobile{display:none}
.btn-burger{display:none;font-family:inherit;font-size:19px;line-height:1;color:var(--nuit);background:transparent;border:1.5px solid var(--bord);border-radius:10px;padding:9px 12px;cursor:pointer;flex-shrink:0}
.topbar-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:nowrap;align-items:center}

/* Barre propre des écrans d'édition (Retour, Aperçu, Enregistrer...) */
.editbar{position:sticky;top:64px;z-index:15;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--bord)}
.editbar-inner{max-width:920px;margin:0 auto;padding:9px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.editbar-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}

/* Page */
.page{max-width:920px;margin:0 auto;padding:22px 18px 80px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 18px;flex-wrap:wrap}
.page-head h2{font-size:24px;font-weight:800}

/* Notices */
.notice{border-radius:12px;padding:14px 18px;font-size:14px;font-weight:600;margin-bottom:16px}
.notice.ok{background:rgba(102,189,101,.15);color:var(--vert-fonce)}
.notice.err{background:rgba(214,69,69,.1);color:var(--rouge);white-space:pre-wrap}
.notice.busy{background:rgba(1,164,226,.1);color:var(--cyan-texte)}

/* Cartes articles */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card-article{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 6px 20px rgba(13,27,42,.07);cursor:pointer;transition:transform .1s ease,box-shadow .15s ease;display:flex;flex-direction:column;text-align:left;border:none;font-family:inherit;padding:0}
.card-article:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(13,27,42,.12)}
.card-article .ph{aspect-ratio:16/9;background:var(--gris-clair);overflow:hidden}
.card-article .ph img{width:100%;height:100%;object-fit:cover}
.card-article .ph .noimg{display:grid;place-items:center;height:100%;color:var(--gris);font-size:28px}
.card-article .body{padding:14px 16px 16px}
.card-article h3{font-size:15px;font-weight:700;line-height:1.35;margin-top:8px}
.card-article p{font-size:13px;color:var(--gris);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cat{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;display:inline-block;padding:4px 10px;border-radius:999px}
.cat-accueil{background:rgba(196,136,236,.15);color:var(--violet-fonce)}
.cat-maintenance{background:rgba(0,173,204,.12);color:var(--cyan-maint)}
.cat-nettoyage{background:rgba(102,189,101,.14);color:var(--vert-fonce)}
.cat-evenementiel{background:rgba(255,189,89,.2);color:var(--orange)}
.cat-engagement{background:rgba(102,189,101,.14);color:var(--vert-fonce)}
.cat-conseils{background:rgba(1,164,226,.12);color:var(--cyan-texte)}
.cat-innovation{background:rgba(13,27,42,.08);color:var(--nuit)}
.cat-autre{background:rgba(91,107,123,.12);color:var(--gris)} /* catégories personnalisées */
/* Badge « Brouillon » des vignettes d'articles (article exclu du site publié) */
.badge-brouillon{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(91,107,123,.16);color:var(--gris);border:1.5px dashed rgba(91,107,123,.45);margin-left:6px}

/* Flèches Monter / Descendre des vignettes d'articles (ordre du site) */
.carte-article-wrap{position:relative;display:flex}
.carte-article-wrap .card-article{flex:1;min-width:0}
.carte-fleches{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:6px;z-index:2}
.carte-fleche{width:34px;min-height:34px;height:34px;border-radius:9px;box-shadow:0 2px 8px rgba(13,27,42,.2)}

/* Formulaires */
.card{background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(13,27,42,.07);padding:22px 20px;margin-bottom:18px}
.card-title{font-size:16px;font-weight:800;margin-bottom:14px}
label{display:block;font-size:13px;font-weight:700;color:var(--nuit);margin:14px 0 6px}
label:first-of-type{margin-top:0}
input[type=text],input[type=email],input[type=url],input[type=password],input[type=number],input[type=search],input[type=date],textarea,select{width:100%;font-family:inherit;font-size:16px;padding:11px 13px;border:1.5px solid var(--bord);border-radius:10px;background:#fff;color:var(--nuit)}
/* Éditeur d'une offre : case « Renouvellement possible » alignée sur le champ date voisin */
.cdd-renouvellement{display:flex;align-items:end;padding-bottom:12px}
@media(max-width:560px){.cdd-renouvellement{padding:4px 0 0}}
/* Éditeur d'un article : ligne « Brouillon » sous les champs SEO */
.brouillon-ligne{margin-top:16px}
input:focus,textarea:focus,select:focus,.editor:focus{outline:none;border-color:var(--cyan-texte);box-shadow:0 0 0 3px rgba(1,164,226,.13)}
textarea{resize:vertical}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.grid-2{grid-template-columns:1fr}}
.counter{font-weight:600;color:var(--gris);font-size:12px}
.counter.over{color:var(--rouge)}
.hint{font-size:12.5px;color:var(--gris);margin-top:8px}
.mt{margin-top:14px}

/* Photo de couverture */
.hero-row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.hero-thumb{width:220px;aspect-ratio:16/9;object-fit:cover;border-radius:12px;background:var(--gris-clair)}
.hero-none{display:grid;place-items:center;color:var(--gris);font-size:13px;font-weight:600}
.hero-actions{flex:1;min-width:220px}

.hero-btns{display:flex;gap:10px;flex-wrap:wrap}

/* Recadrage de la photo de couverture (cadre 16:9 verrouillé) */
.modal.crop-modal{padding:0;background:var(--nuit)} /* prime sur .modal déclaré plus bas */
.crop-box{width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:18px;overflow:hidden}
.crop-head{text-align:center;color:#fff}
.crop-head h3{font-size:17px;font-weight:800}
.crop-hint{font-size:12.5px;color:rgba(255,255,255,.78);margin-top:5px;max-width:540px}
.crop-stage{position:relative;overflow:hidden;border-radius:6px;line-height:0;touch-action:none}
#crop-img{display:block;max-width:92vw;max-height:52vh;max-height:52dvh;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
/* outils du recadrage : vignette d'aperçu en direct + curseur + boutons */
.crop-outils{display:flex;gap:18px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:12px;color:#fff}
.crop-apercu-bloc{display:flex;flex-direction:column;align-items:center;gap:4px}
#crop-apercu{display:block;border-radius:8px;background:#000;border:1px solid rgba(255,255,255,.3)}
.crop-apercu-legende{font-size:10.5px;color:rgba(255,255,255,.65);letter-spacing:.04em;text-transform:uppercase}
.crop-reglages{display:flex;flex-direction:column;gap:6px;min-width:220px}
.crop-slider-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.75)}
#crop-zoom{width:100%;accent-color:var(--cyan-texte)}
.crop-boutons{display:flex;gap:8px}
.crop-boutons .btn{padding:7px 12px;font-size:12px}
.crop-resolution{font-size:11.5px;color:rgba(255,255,255,.7);min-height:16px;margin:0}
.crop-resolution.alerte{color:#FFBD59;font-weight:700}
#crop-frame{position:absolute;border:2px solid #fff;box-shadow:0 0 0 200vmax rgba(13,27,42,.62);cursor:move;touch-action:none}
.crop-poignee{position:absolute;width:26px;height:26px;background:#fff;border:3px solid var(--cyan);border-radius:50%;box-shadow:0 1px 6px rgba(0,0,0,.35);touch-action:none}
.crop-poignee::before{content:"";position:absolute;inset:-10px} /* zone tactile élargie */
.crop-poignee[data-coin=nw]{left:-13px;top:-13px;cursor:nwse-resize}
.crop-poignee[data-coin=ne]{right:-13px;top:-13px;cursor:nesw-resize}
.crop-poignee[data-coin=sw]{left:-13px;bottom:-13px;cursor:nesw-resize}
.crop-poignee[data-coin=se]{right:-13px;bottom:-13px;cursor:nwse-resize}
.crop-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.crop-modal .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.crop-modal .login-error{max-width:540px;margin-bottom:0}

/* Éditeur */
.toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;position:sticky;top:128px;z-index:10;background:#fff;padding:6px 0}
.toolbar button{font-family:inherit;font-size:13px;font-weight:700;padding:8px 12px;border-radius:9px;border:1.5px solid var(--bord);background:#fff;color:var(--nuit);cursor:pointer}
.toolbar button:hover{border-color:var(--cyan-texte);color:var(--cyan-texte)}
.toolbar .sep{width:1px;background:var(--bord);margin:4px 2px}
.editor{min-height:320px;border:1.5px solid var(--bord);border-radius:12px;padding:18px;font-size:16px;color:#26384a;background:#fff}
.editor p{margin-bottom:16px}
.editor h2{font-size:22px;font-weight:800;margin:28px 0 12px;line-height:1.3;color:var(--nuit)}
.editor h3{font-size:17.5px;font-weight:700;margin:22px 0 9px;color:var(--nuit)}
.editor ul{margin:0 0 16px 22px}
.editor li{margin-bottom:7px}
.editor strong{color:var(--nuit)}
.editor a{color:var(--cyan-texte);text-decoration:underline}

/* Éditeur par blocs des pages libres */
.bloc-conversion{margin-top:16px;padding:14px 16px;background:var(--gris-clair);border:1.5px dashed var(--bord);border-radius:12px}
.bloc-conversion .hint{margin:0 0 10px}
.blocs-liste{display:flex;flex-direction:column;gap:10px}
.bloc-item{border:1.5px solid var(--bord);border-radius:12px;background:#fff;overflow:hidden}
.bloc-item.ouvert{border-color:var(--cyan-texte);box-shadow:0 0 0 3px rgba(1,164,226,.1)}
.bloc-head{display:flex;align-items:center;gap:8px;padding:6px 8px}
.bloc-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:transparent;border:none;font-family:inherit;font-size:14px;padding:8px 6px;cursor:pointer;text-align:left;border-radius:8px}
.bloc-toggle:hover{background:var(--gris-clair)}
.bloc-icone{flex-shrink:0}
.bloc-nom{font-weight:800;color:var(--nuit);white-space:nowrap}
.bloc-resume{min-width:0;flex:1;font-size:12.5px;color:var(--gris);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bloc-chevron{flex-shrink:0;color:var(--gris);font-size:12px;margin-left:auto}
.bloc-actions{display:flex;gap:4px;flex-shrink:0}
.bloc-btn{width:36px;height:36px;border:1.5px solid var(--bord);border-radius:9px;background:#fff;color:var(--gris);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .12s ease,color .12s ease;flex-shrink:0}
.bloc-btn:hover:not(:disabled){border-color:var(--cyan-texte);color:var(--cyan-texte)}
.bloc-btn:disabled{opacity:.35;cursor:default}
.bloc-form{border-top:1.5px solid var(--bord);padding:14px 16px 16px;background:#fff}
.bloc-champ{margin-bottom:12px}
.bloc-champ label{margin:0 0 6px}
.bloc-champ .hint{margin-top:6px}
.bloc-colonne-zone{border:1.5px solid var(--bord);border-radius:10px;padding:12px;margin-bottom:12px;background:var(--gris-clair)}
.bloc-colonne-zone input,.bloc-colonne-zone textarea,.bloc-colonne-zone select{background:#fff}
.bloc-colonne-titre{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--gris);margin-bottom:8px}
.bloc-sous-liste{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.bloc-sous-item{display:flex;gap:8px;align-items:flex-start;border:1.5px solid var(--bord);border-radius:10px;padding:10px 12px;background:var(--gris-clair);width:100%}
.bloc-sous-item input,.bloc-sous-item textarea{background:#fff}
.bloc-sous-corps{flex:1;min-width:0}
.bloc-sous-corps .bloc-champ:last-child{margin-bottom:0}
.bloc-btn-retirer{margin-top:2px}
.bloc-btn-petit{padding:9px 14px;font-size:13px}
.bloc-img{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.bloc-img-thumb{width:150px;aspect-ratio:4/3;border-radius:10px;background:var(--gris-clair);border:1.5px solid var(--bord);overflow:hidden;display:grid;place-items:center;flex-shrink:0}
.bloc-img-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.bloc-img-vide{font-size:12px;font-weight:600;color:var(--gris)}
.bloc-img-actions{display:flex;flex-direction:column;gap:8px}
.bloc-picto-ligne{display:flex;gap:8px}
.bloc-picto-emoji{width:64px;flex-shrink:0;text-align:center}
.bloc-picto-ligne input:last-child{flex:1;min-width:0}
.bloc-avertissement{font-size:12.5px;font-weight:700;color:#7a4d00;background:#fff7e8;border:1.5px solid #FFBD59;border-radius:10px;padding:8px 12px;margin-bottom:10px}
.bloc-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.palette-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1.5px solid var(--bord);border-radius:12px;background:#fff;padding:12px;font-family:inherit;cursor:pointer;text-align:left;transition:border-color .12s ease,box-shadow .12s ease}
.palette-item:hover{border-color:var(--cyan-texte);box-shadow:0 4px 14px rgba(1,164,226,.15)}
.palette-icone{font-size:22px}
.palette-nom{font-weight:800;font-size:13.5px;color:var(--nuit)}
.palette-desc{font-size:11.5px;color:var(--gris);line-height:1.45}
@media(max-width:480px){
  .bloc-resume{display:none}
  .bloc-btn{width:32px;height:32px}
  .bloc-img-thumb{width:120px}
  .palette-grid{grid-template-columns:repeat(2,1fr)}
}

/* Onglet Pages : badges d'emplacement du lien, adresse de la page */
.badge-menu{background:rgba(1,164,226,.12);color:var(--cyan-texte)}
.badge-pied{background:rgba(13,27,42,.08);color:var(--nuit)}
.badge-sans{background:rgba(91,107,123,.12);color:var(--gris)}
.page-url{font-size:12.5px;color:var(--gris);margin-top:6px;word-break:break-all}

/* Catégories : bouton + à côté du menu Catégorie */
.select-plus{display:flex;gap:8px}
.select-plus select{flex:1;min-width:0}
.btn-plus{padding:0 15px;font-size:19px;flex-shrink:0}

/* Arborescence du site (écran principal de l'onglet Pages) */
.arbo-rappel{color:var(--orange);font-weight:600}
.arbo-tree{display:flex;flex-direction:column;gap:5px;margin-top:12px}
.arbo-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid transparent;border-radius:10px;background:var(--gris-clair);font-family:inherit;font-size:14px;flex-wrap:wrap}
.arbo-row.arbo-libre{background:#fff;border-color:var(--bord)}
.arbo-row.arbo-clic{cursor:pointer;text-align:left;width:100%;transition:border-color .12s ease}
.arbo-row.arbo-clic:hover{border-color:var(--cyan-texte)}
.arbo-row.arbo-refuse{opacity:.55;cursor:not-allowed}
.arbo-icone{flex-shrink:0}
.arbo-libelle{font-weight:700;color:var(--nuit)}
.arbo-badge{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:999px;white-space:nowrap}
.badge-articles{background:rgba(1,164,226,.12);color:var(--cyan-texte)}
.arbo-url{margin-left:auto;font-size:12px;color:var(--gris);word-break:break-all}
.arbo-ligne{display:flex;align-items:stretch;gap:6px}
.arbo-ligne .arbo-row{flex:1;min-width:0}
.arbo-fleche{flex-shrink:0;width:42px;min-height:44px;border:1.5px solid var(--bord);border-radius:10px;background:#fff;color:var(--gris);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .12s ease,color .12s ease}
.arbo-fleche:hover:not(:disabled){border-color:var(--cyan-texte);color:var(--cyan-texte)}
.arbo-fleche:disabled{opacity:.35;cursor:default}

/* Pages du site (écran d'édition des pages de structure) */
.site-warn{background:rgba(255,189,89,.18);color:#8a5a10;border-radius:12px;padding:14px 18px;font-size:14px;font-weight:600;margin-bottom:16px}
.site-field{margin-bottom:2px}
.site-field textarea{resize:vertical;min-height:64px}
.site-img{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;background:var(--gris-clair);border:1.5px solid var(--bord);border-radius:12px;padding:14px;margin:18px 0}
.site-img .hero-thumb{width:200px}
.site-img-actions{flex:1;min-width:220px}
.site-img-actions label{margin-top:12px}
.site-img-btns{display:flex;gap:10px;flex-wrap:wrap}

/* Zone dangereuse */
.danger-zone{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:8px}

/* Boîte modale images */
.modal{position:fixed;inset:0;background:rgba(13,27,42,.5);z-index:60;display:flex;align-items:center;justify-content:center;padding:16px}
.modal-box{background:#fff;border-radius:18px;max-width:680px;width:100%;max-height:85vh;overflow:auto;padding:20px}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.modal-head h3{font-size:17px;font-weight:800}
.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:12px}
.picker-grid button{border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:var(--gris-clair);padding:0;aspect-ratio:4/3}
.picker-grid button:hover{border-color:var(--cyan-texte)}
.picker-grid img{width:100%;height:100%;object-fit:cover;display:block}

/* Tableau de bord */
.dash-head{margin:6px 0 18px}
.dash-head h2{font-size:24px;font-weight:800}
.dash-date{font-size:13.5px;color:var(--gris);margin-top:2px}
.dash-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:720px){.dash-grid{grid-template-columns:1fr}}
.dash-card{margin-bottom:0;position:relative}
/* Flèches de réorganisation des cartes du tableau de bord : discrètes
   (visibles au survol de la carte ou au clavier), toujours visibles sur les
   écrans tactiles. Extrémités grisées. */
.dash-fleches{position:absolute;top:10px;right:12px;display:flex;gap:4px;opacity:0;transition:opacity .12s ease;z-index:2}
.dash-card:hover .dash-fleches,.dash-fleches:focus-within{opacity:1}
@media(hover:none){.dash-fleches{opacity:.7}}
.dash-fleche{border:none;background:rgba(13,27,42,.07);border-radius:8px;min-width:26px;height:22px;padding:0 6px;font-family:inherit;font-size:12px;font-weight:700;line-height:1;color:var(--gris);cursor:pointer;transition:background .12s ease,color .12s ease}
.dash-fleche:hover:not(:disabled),.dash-fleche:focus-visible{background:rgba(1,164,226,.16);color:var(--cyan-texte);outline:none}
.dash-fleche:disabled{opacity:.3;cursor:default}
.dash-etat{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dash-etat .badge{margin-top:0}
.dash-btn-publier{padding:9px 14px;font-size:13px}
.dash-sub{font-size:12.5px;color:var(--gris);margin-top:10px}
.dash-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.dash-actions .btn{padding:10px 16px;font-size:13.5px;text-decoration:none}
.dash-serveur{display:flex;align-items:center;gap:10px;padding:9px 0 4px;font-size:13.5px}
/* fréquentation du site, sous la ligne du serveur qui l'héberge */
.dash-serveur-visites{font-size:12px;color:var(--gris);padding:0 0 8px 20px;border-bottom:1px solid var(--bord)}
.dash-serveur:not(:has(+ .dash-serveur-visites)){border-bottom:1px solid var(--bord);padding-bottom:9px}
.dash-serveur:last-of-type{border-bottom:none}
.dash-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.dash-dot.fresh-ok{background:var(--vert-fonce)}
.dash-dot.fresh-warn{background:#e39a2d}
.dash-dot.fresh-alert{background:var(--rouge)}
.dash-serveur-nom{font-weight:700;color:var(--nuit)}
.dash-serveur-disque{margin-left:auto;font-size:12.5px;color:var(--gris)}
.dash-lien{display:inline-block;background:transparent;border:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--cyan-texte);cursor:pointer;padding:0;margin-top:10px;text-decoration:underline}
.dash-lien:hover{color:var(--nuit)}
.dash-raccourcis{display:flex;flex-direction:column;gap:7px}
.dash-raccourcis a{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1.5px solid var(--bord);border-radius:10px;font-size:13.5px;font-weight:600;color:var(--nuit);text-decoration:none;transition:border-color .12s ease}
.dash-raccourcis a:hover{border-color:var(--cyan-texte)}
.dash-raccourcis img{width:26px;height:26px;border-radius:7px;object-fit:cover;flex-shrink:0}
/* raccourcis Drive : mêmes lignes, mais ce sont des boutons (navigation interne) */
.dash-raccourcis button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 12px;border:1.5px solid var(--bord);border-radius:10px;background:#fff;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--nuit);cursor:pointer;transition:border-color .12s ease}
.dash-raccourcis button:hover{border-color:var(--cyan-texte)}
.dash-raccourcis button > span:first-child{font-size:18px;line-height:1;flex-shrink:0;display:inline-flex}
.dash-raccourci-nom{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Tableau de bord : carte « Mes notes » relookée en vrai post-it accroché au
   frigo. Fond jaune papier, légère rotation (remise droite au survol), ombre
   de papier, aimant décoratif en haut, écriture manuscrite pour les notes.
   Les contrôles (champ d'ajout, cases, corbeilles) restent lisibles. */
#dash-card-notes{background:linear-gradient(160deg,#fff3a3,#ffe66d);border-radius:5px;box-shadow:0 1px 2px rgba(13,27,42,.1),4px 9px 18px rgba(13,27,42,.18);transform:rotate(-1.2deg);transition:transform .18s ease,box-shadow .18s ease}
#dash-card-notes:hover{transform:rotate(0deg)}
#dash-card-notes::before{content:"📌";position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(10deg);font-size:24px;filter:drop-shadow(0 2px 2px rgba(13,27,42,.3));pointer-events:none}
#dash-card-notes .dash-fleche{background:rgba(13,27,42,.1)}
.notes-form{margin:2px 0 10px}
#notes-input{width:100%;font-family:"Bradley Hand",Noteworthy,"Segoe Print",Montserrat,cursive;font-size:16px;padding:9px 12px;border:1.5px solid rgba(13,27,42,.22);border-radius:8px;background:rgba(255,255,255,.55);color:var(--nuit)}
#notes-input::placeholder{color:rgba(13,27,42,.45)}
#notes-input:focus{outline:none;border-color:var(--nuit);background:rgba(255,255,255,.85)}
.notes-liste{display:flex;flex-direction:column;max-height:260px;overflow-y:auto}
.note-ligne{display:flex;align-items:flex-start;gap:8px;padding:7px 0;border-bottom:1px dashed rgba(13,27,42,.18)}
.note-ligne:last-child{border-bottom:none}
.note-label{display:flex;align-items:flex-start;gap:9px;flex:1;min-width:0;cursor:pointer}
.note-label input[type=checkbox]{margin-top:2px;width:16px;height:16px;flex-shrink:0;accent-color:var(--nuit);cursor:pointer}
.note-texte{font-family:"Bradley Hand",Noteworthy,"Segoe Print",Montserrat,cursive;font-size:15px;font-weight:600;color:var(--nuit);word-break:break-word}
.note-faite .note-texte{text-decoration:line-through;color:rgba(13,27,42,.45);font-weight:500}
.note-corbeille{background:transparent;border:none;cursor:pointer;font-size:14px;line-height:1;padding:4px 6px;border-radius:8px;filter:grayscale(1);opacity:.45;flex-shrink:0;transition:opacity .12s ease,background .12s ease}
.note-corbeille:hover,.note-corbeille:focus-visible{opacity:1;filter:none;background:rgba(214,69,69,.14);outline:none}
.note-corbeille:disabled{opacity:.25;cursor:default}
/* constat 44 : état « armé » du premier clic, bien visible pour que le second
   clic soit un geste conscient */
.note-corbeille-armee{opacity:1;filter:none;background:rgba(214,69,69,.18);box-shadow:inset 0 0 0 1.5px var(--rouge)}

/* Menu utilisateur */
.user-menu{position:relative}
#btn-user{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.dropdown{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--bord);border-radius:14px;box-shadow:0 14px 40px rgba(13,27,42,.18);min-width:240px;padding:6px;z-index:50}
.dropdown-id{font-size:12px;font-weight:600;color:var(--gris);padding:9px 12px;border-bottom:1px solid var(--bord);margin-bottom:6px;word-break:break-all}
.dropdown button{display:block;width:100%;text-align:left;font-family:inherit;font-size:14px;font-weight:600;color:var(--nuit);background:transparent;border:none;border-radius:9px;padding:10px 12px;cursor:pointer}
.dropdown button:hover{background:var(--gris-clair)}
.dropdown #btn-logout{color:var(--rouge)}

/* Écran Accès */
.users-list{display:flex;flex-direction:column;gap:12px}
.user-row{background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(13,27,42,.07);padding:16px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.user-id{display:flex;flex-direction:column;min-width:170px;flex:1}
.user-prenom{font-weight:800;font-size:15px}
.user-me{font-weight:600;font-size:12.5px;color:var(--gris)}
.user-mail{font-size:13px;color:var(--gris);word-break:break-all}
.role{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;display:inline-block;padding:4px 10px;border-radius:999px;white-space:nowrap}
.role-admin{background:rgba(1,164,226,.12);color:var(--cyan-texte)}
.role-droit{background:rgba(1,164,226,.1);color:var(--cyan-texte)}
.role-vide{background:rgba(91,107,123,.12);color:var(--gris)}
.user-droits{display:flex;gap:5px;flex-wrap:wrap;max-width:360px}

/* Droits par fonction (création et modification d'un compte) */
.droits-box{border:1.5px solid var(--bord);border-radius:12px;padding:12px 14px;margin-top:16px}
.droits-box legend{font-size:13px;font-weight:700;padding:0 6px}
.preset-row{display:flex;gap:8px;margin:2px 0 8px;flex-wrap:wrap}
.preset-row .btn{padding:7px 12px;font-size:12.5px}
label.check{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px;margin:9px 0;cursor:pointer}
label.check input{width:18px;height:18px;accent-color:var(--cyan-texte);flex-shrink:0;cursor:pointer}
.user-date{font-size:12.5px;color:var(--gris);white-space:nowrap}
.user-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.user-actions .btn{padding:9px 14px;font-size:13px}
@media(max-width:640px){
  .user-row{align-items:flex-start;flex-direction:column;gap:10px}
  .user-actions{margin-left:0;width:100%}
  .user-actions .btn{flex:1}
}

/* Boîtes modales comptes */
.modal-small{max-width:440px}
.secret-box{display:flex;align-items:center;gap:10px;background:var(--gris-clair);border:1.5px solid var(--bord);border-radius:12px;padding:14px;margin:14px 0 10px;flex-wrap:wrap}
.secret-box code{flex:1;min-width:160px;font-size:17px;font-weight:700;letter-spacing:.06em;word-break:break-all;user-select:all;-webkit-user-select:all;color:var(--nuit)}
.secret-warn{color:var(--orange);font-weight:700;font-size:13.5px}

/* Commercial : bandeau des relances du jour */
.relances-bandeau{background:rgba(255,189,89,.16);border:1.5px solid rgba(199,127,22,.3);border-radius:16px;padding:14px 16px;margin-bottom:18px}
.relances-titre{font-size:13.5px;font-weight:800;color:var(--orange);margin-bottom:10px}
.relances-liste{display:flex;flex-direction:column;gap:8px}
.relance-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border-radius:12px;padding:10px 14px;box-shadow:0 3px 10px rgba(13,27,42,.06)}
.relance-infos{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;flex:1;min-width:180px}
.relance-actions{display:flex;gap:8px;flex-wrap:wrap}
.relance-actions .btn{padding:8px 13px;font-size:12.5px}

/* Commercial : vignettes de statut (tableau de bord du pipeline). Une seule
   rangée en bureau, 3 puis 2 par ligne en mobile. La vignette active porte
   une bordure sombre et commande la liste affichée en dessous. */
.pipeline-stats{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:14px}
.stat-statut{font-family:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:#fff;border:1.5px solid var(--bord);border-top:3px solid var(--gris);border-radius:14px;padding:10px 12px;cursor:pointer;text-align:left;transition:border-color .12s ease,background .12s ease}
.stat-statut:hover,.stat-statut:focus-visible{border-color:var(--nuit);outline:none}
.stat-statut.active{border-color:var(--nuit);background:var(--gris-clair);box-shadow:inset 0 0 0 1px var(--nuit)}
.stat-statut-nom{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--gris)}
.stat-statut.active .stat-statut-nom{color:var(--nuit)}
.stat-statut-compteur{font-size:20px;font-weight:800;color:var(--nuit);line-height:1.25}
.stat-statut.st-nouveau{border-top-color:var(--cyan-texte)}
.stat-statut.st-contacte{border-top-color:var(--violet-fonce)}
.stat-statut.st-presentation{border-top-color:var(--nuit)}
.stat-statut.st-rdv{border-top-color:var(--orange)}
.stat-statut.st-devis{border-top-color:var(--cyan-maint)}
.stat-statut.st-gagne{border-top-color:var(--vert-fonce)}
.stat-statut.st-perdu{border-top-color:var(--gris)}

/* Commercial : recherche + liste des prospects du statut choisi */
.pipeline-outils{margin-bottom:12px}
#pipeline-recherche{max-width:420px}
.pipeline-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;align-items:start}
.pipeline-liste .hint{grid-column:1/-1}
.carte-prospect{position:relative;display:flex;flex-direction:column;gap:4px;background:#fff;border-radius:11px;padding:10px 11px;box-shadow:0 3px 10px rgba(13,27,42,.07);cursor:pointer;border:1.5px solid transparent;transition:border-color .12s ease;font-family:inherit;text-align:left}
.carte-prospect>.carte-societe{padding-right:26px} /* place pour la corbeille du coin */
.carte-prospect:hover,.carte-prospect:focus-visible{border-color:var(--cyan-texte);outline:none}
.carte-societe{font-size:13px;font-weight:800;color:var(--nuit);word-break:break-word}
.carte-contact{font-size:12px;font-weight:600;color:var(--nuit)}
.carte-ville{font-size:11.5px;color:var(--gris)}
.carte-dernier-mail{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.req-etoile{color:var(--cyan-texte);font-weight:800}
/* Sélection multiple du Drive */
.drive-selection-barre{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 10px;padding:8px 14px;
  border:1px solid var(--bordure,#dde5ec);border-radius:10px;background:#fbfdff;font-size:13px}
.drive-selection-barre .check-ligne{margin:0;font-weight:600;color:#0D1B2A;cursor:pointer}
.drive-selection-actions{margin-left:auto;display:flex;gap:8px}
.drive-case{width:16px;height:16px;accent-color:var(--cyan-texte);cursor:pointer;flex:none;margin:0}
.drive-item .drive-case{position:absolute;top:10px;left:10px;z-index:2}
.drive-td-case{display:flex;align-items:center}
@media(max-width:640px){
  .drive-selection-actions{margin-left:0;width:100%;justify-content:flex-end}
}
.badge-source{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:rgba(1,164,226,.12);color:var(--cyan-texte);border-radius:999px;padding:3px 9px;align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.carte-relance{font-size:11.5px;font-weight:700;color:var(--gris)}
.carte-relance.relance-depassee{color:var(--rouge)}
.carte-statut{margin-top:4px;font-family:inherit;font-size:12px;font-weight:600;color:var(--nuit);padding:7px 8px;border:1.5px solid var(--bord);border-radius:9px;background:var(--gris-clair);width:100%}
@media(max-width:900px){
  .pipeline-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .carte-statut{font-size:16px} /* pas de zoom automatique iOS sur les champs */
}
@media(max-width:480px){
  .pipeline-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pipeline-liste{grid-template-columns:1fr}
}

/* Commercial : fiche prospect */
.prospect-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.prospect-head h2{font-size:22px;font-weight:800}
.prospect-coords{display:flex;flex-direction:column;gap:6px}
.prospect-coord{display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:600;color:var(--nuit)}
.prospect-coord a{color:var(--cyan-texte);text-decoration:underline;word-break:break-all}
.coord-icone{width:20px;text-align:center;flex-shrink:0}
.relance-row{display:flex;gap:8px;align-items:center}
.relance-row input{flex:1;min-width:0}
.relance-row .btn{padding:9px 13px;font-size:12.5px;flex-shrink:0}
input[type=date]{width:100%;font-family:inherit;font-size:16px;padding:10px 13px;border:1.5px solid var(--bord);border-radius:10px;background:#fff;color:var(--nuit)}
.historique{display:flex;flex-direction:column}
.activite{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--bord)}
.activite:last-child{border-bottom:none}
.activite-icone{flex-shrink:0;font-size:15px;width:22px;text-align:center}
.activite-corps{min-width:0;flex:1}
.activite-contenu{font-size:13.5px;color:var(--nuit);white-space:pre-wrap;word-break:break-word}
.activite-meta{font-size:11.5px;color:var(--gris);margin-top:2px}

/* Commercial : carte du tableau de bord */
.dash-com-ligne{display:flex;align-items:baseline;gap:8px;font-size:13.5px;font-weight:600;color:var(--nuit);padding:6px 0}
/* mêmes teintes que les badges de facture : rouge / orange / vert */
.dash-com-proche,.dash-com-proche .dash-com-chiffre{color:var(--orange)}
.dash-com-ok,.dash-com-ok .dash-com-chiffre{color:var(--vert-fonce)}
/* ligne cliquable : mène droit à l'écran concerné */
.dash-com-lien{width:100%;text-align:left;background:none;border:none;font-family:inherit;cursor:pointer;border-radius:8px;margin:0 -6px;padding-left:6px;padding-right:6px;width:calc(100% + 12px);transition:background .12s}
.dash-com-lien:hover{background:#eaf6fd}
.dash-com-lien:hover .dash-com-chiffre{color:var(--cyan-texte)}
.dash-com-chiffre{font-size:22px;font-weight:800;color:var(--cyan-texte);min-width:30px;text-align:center}
.dash-com-retard,.dash-com-retard .dash-com-chiffre{color:var(--rouge)}

/* Console (sauvegardes croisées) */
.console-summary{background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(13,27,42,.07);padding:14px 18px;font-size:13.5px;color:var(--gris);margin-bottom:16px}
.console-summary strong{color:var(--nuit)}
.console-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:880px){.console-grid{grid-template-columns:1fr}}
.console-card{background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(13,27,42,.07);padding:18px}
.console-card.console-muted{background:var(--gris-clair);box-shadow:none;border:1.5px dashed var(--bord)}
.console-head{display:flex;align-items:center;gap:12px}
.console-logo{width:46px;height:46px;border-radius:12px;object-fit:cover;flex-shrink:0}
.console-title h3{font-size:16px;font-weight:800;line-height:1.3}
.badge{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;display:inline-block;padding:3px 9px;border-radius:999px;margin-top:3px}
.fresh-ok{background:rgba(102,189,101,.14);color:var(--vert-fonce)}
.fresh-warn{background:rgba(255,189,89,.25);color:var(--orange)}
.fresh-alert{background:rgba(214,69,69,.12);color:var(--rouge)}
.console-line{font-size:13px;color:var(--nuit);margin-top:10px}
.console-sub{font-size:12.5px;color:var(--gris);margin-top:6px}
.console-none{font-size:13.5px;font-weight:600;color:var(--gris);margin-top:12px}
.gauge{height:10px;background:var(--gris-clair);border:1px solid var(--bord);border-radius:999px;overflow:hidden;margin-top:12px}
.gauge-fill{height:100%;border-radius:999px;min-width:4px}
.gauge-ok{background:var(--vert-fonce)}
.gauge-warn{background:#e39a2d}
.gauge-alert{background:var(--rouge)}
.console-toggle{display:inline-block;background:transparent;border:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--cyan-texte);cursor:pointer;padding:0;margin-top:8px;text-decoration:underline}
.console-toggle:hover{color:var(--nuit)}
.archives{list-style:none;margin-top:10px;border-top:1px solid var(--bord)}
.archives li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--bord);flex-wrap:wrap}
.archives .a-nom{font-size:12px;font-weight:600;color:var(--nuit);word-break:break-all}
.archives .a-meta{font-size:11.5px;color:var(--gris);white-space:nowrap}

/* Toast */
.toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--nuit);color:#fff;font-weight:700;font-size:14px;padding:13px 22px;border-radius:12px;box-shadow:0 12px 30px rgba(13,27,42,.35);z-index:80;max-width:90vw;text-align:center}

/* Spinner */
.spin{display:inline-block;width:15px;height:15px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}

/* Bouton Déconnexion visible dans la barre du haut */
.btn-logout-top{font-size:13px;padding:8px 14px}

/* Transitions discrètes entre écrans */
.page{animation:apparition .18s ease}
@keyframes apparition{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .page{animation:none}
  .sidebar{transition:none !important}
  .app-main{transition:none !important}
}

/* Vue intégrée Léon / Paul : fine barre + iframe pleine hauteur/largeur */
.view-app{flex:1;min-height:0;display:flex;flex-direction:column}
.appbar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#fff;border-bottom:1px solid var(--bord);flex-wrap:wrap}
.appbar-icone{width:26px;height:26px;border-radius:7px;object-fit:cover;flex-shrink:0}
.appbar-nom{font-weight:800;font-size:14px;white-space:nowrap}
.btn-appbar{padding:7px 12px;font-size:12.5px}
.appbar-note{margin-left:auto;font-size:11.5px;color:var(--gris);text-align:right}
.app-embed-host{flex:1;min-height:0;position:relative;background:#fff}
.app-embed-frame{position:absolute;inset:0;width:100%;height:100%;border:none}

/* ---- envoi d'emails, modèles et import CSV (module commercial) */
.page-head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.mail-hint{margin-top:0;align-self:center}
.mail-apercu{border:1.5px solid var(--bord);border-radius:12px;padding:14px 16px;background:var(--gris-clair)}
.mail-apercu-titre{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--gris);margin-bottom:8px}
.mail-apercu-sujet{font-size:14px;font-weight:800;color:var(--nuit);margin-bottom:8px;word-break:break-word}
.mail-apercu-corps{font-size:13.5px;line-height:1.55;color:#26384a;background:#fff;border-radius:10px;padding:12px 14px;max-height:260px;overflow:auto}
.mail-apercu-corps p{margin-bottom:10px}
.mail-apercu-corps p:last-child{margin-bottom:0}
.mail-apercu-corps ul{margin:0 0 10px 20px}
.mail-apercu-corps a{color:var(--cyan-texte);text-decoration:underline;word-break:break-all}
.mail-apercu-pj{font-size:12.5px;font-weight:700;color:var(--nuit);margin-top:10px;word-break:break-all}
.mail-apercu-pj-alerte{font-size:12.5px;font-weight:700;color:#7a4d00;background:#fff7e8;border:1.5px solid #FFBD59;border-radius:10px;padding:8px 12px;margin-top:10px}

/* Rangée « Envoyer une présentation » de la fiche prospect : petits boutons
   qui passent sur plusieurs lignes sur les écrans étroits */
.presentation-boutons{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.presentation-boutons .btn{padding:8px 13px;font-size:12.5px}

/* Surbrillance douce de la boîte d'envoi ouverte par un bouton présentation */
.mail-surbrillance{animation:mailSurbrillance 1.6s ease}
@keyframes mailSurbrillance{0%{box-shadow:0 0 0 4px rgba(1,164,226,.55)}100%{box-shadow:0 0 0 0 rgba(1,164,226,0)}}
@media(prefers-reduced-motion:reduce){.mail-surbrillance{animation:none}}
.modele-pj{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--gris-clair);border:1.5px solid var(--bord);border-radius:12px;padding:10px 14px;margin-top:14px}
.modele-pj-nom{font-size:13px;font-weight:700;color:var(--nuit);word-break:break-all}
.modele-pj-taille{font-size:12px;color:var(--gris)}
.modele-pj .btn{padding:8px 13px;font-size:12.5px}
.import-mapping{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px}
.import-mapping-ligne{display:flex;align-items:center;gap:10px}
.import-mapping-ligne .import-col{flex:1;min-width:0;font-size:13px;font-weight:700;color:var(--nuit);word-break:break-word}
.import-mapping-ligne select{flex:1;min-width:0;margin:0}
.import-apercu-wrap{overflow-x:auto;margin-top:8px;border:1.5px solid var(--bord);border-radius:12px}
.import-apercu{border-collapse:collapse;width:100%;font-size:12px}
.import-apercu th{background:var(--gris-clair);font-weight:800;text-align:left;padding:7px 10px;white-space:nowrap;color:var(--nuit)}
.import-apercu td{padding:6px 10px;border-top:1px solid var(--bord);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;color:#26384a}
.import-rapport{font-size:14px;font-weight:600;color:var(--nuit);line-height:1.8}
.import-rapport-titre{font-size:16px;font-weight:800;color:var(--vert-fonce);margin-bottom:8px}
.spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* Mobile : le menu latéral se replie en tiroir (bouton ☰ dans la barre) */
@media(max-width:900px){
  .sidebar{width:250px;transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 0 40px rgba(13,27,42,.35)}
  .sidebar.ouvert{transform:translateX(0)}
  .sidebar-reduire{display:none} /* le repli en rail est réservé au bureau */
  .app-main{margin-left:0}
  .btn-burger{display:inline-flex}
  .brand-mobile{display:inline;font-size:15px}
}
@media(max-width:640px){
  .appbar-note{flex-basis:100%;margin-left:0;text-align:left;order:9}
}
@media(max-width:640px){
  .btn-logout-top{display:none} /* la déconnexion reste dans le menu 👤 */
  .topbar-inner{padding:9px 10px;gap:8px}
  .topbar-actions{gap:6px;min-width:0}
  /* le prénom est masqué, seul l'émoji reste : le bouton tient dans la barre */
  #btn-user{max-width:none;padding-left:9px;padding-right:9px;font-size:14px}
  #btn-user #user-name{display:none}
  #btn-publish{padding:10px 12px;font-size:13px}
  #btn-recherche{padding:8px 9px;font-size:14px}
  #btn-recharger-app{padding:8px 9px;font-size:14px}
  .editbar{position:static} /* la barre d'édition défile, la barre d'outils colle sous la barre du haut */
  .toolbar{top:64px}
}

/* ---- module prestataires */
.presta-alertes{background:rgba(255,189,89,.16);border:1.5px solid rgba(199,127,22,.3);border-radius:16px;padding:14px 16px;margin-bottom:18px}
.presta-alerte-texte{font-size:13px;color:var(--nuit);word-break:break-word}
.alerte-rouge{color:var(--rouge);font-weight:800}
.presta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.carte-presta{display:flex;flex-direction:column;gap:5px;background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 6px 20px rgba(13,27,42,.07);cursor:pointer;border:1.5px solid transparent;transition:border-color .12s ease;font-family:inherit;text-align:left}
.carte-presta:hover,.carte-presta:focus-visible{border-color:var(--cyan-texte);outline:none}
.carte-presta-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.badge-domaine{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:rgba(0,173,204,.14);color:var(--cyan-maint);border-radius:999px;padding:3px 9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.carte-presta-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.carte-presta-meta{font-size:11.5px;color:var(--gris);margin-top:4px}
.badge-doc-vert,.badge-doc-orange,.badge-doc-rouge,.badge-doc-neutre{font-size:10.5px;font-weight:800;border-radius:999px;padding:3px 9px;white-space:nowrap}
.badge-doc-vert{background:rgba(102,189,101,.14);color:var(--vert-fonce)}
.badge-doc-orange{background:rgba(255,189,89,.25);color:var(--orange)}
.badge-doc-rouge{background:rgba(214,69,69,.12);color:var(--rouge)}
.badge-doc-neutre{background:var(--gris-clair);color:var(--gris);border:1px solid var(--bord)}
.badge-categorie{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:rgba(1,164,226,.12);color:var(--cyan-texte);border-radius:999px;padding:3px 9px;white-space:nowrap}
.card-head-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.card-head-actions .card-title{margin-bottom:0}
.card-head-actions .btn{padding:9px 14px;font-size:13px}
.presta-docs,.presta-factures{display:flex;flex-direction:column}
.presta-ligne{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid var(--bord)}
.presta-ligne:last-child{border-bottom:none}
.presta-ligne-infos{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1;min-width:200px}
/* documents : titre sur une ligne, badge d'état toujours en dessous (uniforme) */
.presta-ligne-titre{flex-basis:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.presta-ligne-etat{flex-basis:100%;display:flex;align-items:center;gap:8px}
.presta-ligne-nom{font-size:13.5px;font-weight:700;color:var(--nuit);word-break:break-word}
a.presta-ligne-ouvrir{text-decoration:none}
a.presta-ligne-ouvrir:hover,a.presta-ligne-ouvrir:focus-visible{color:var(--cyan-texte);text-decoration:underline;outline:none}
.presta-ligne-date{font-size:12px;color:var(--gris);white-space:nowrap}
.presta-montant{font-size:13.5px;font-weight:800;color:var(--nuit);white-space:nowrap}
.presta-ligne-actions{display:flex;gap:8px;flex-wrap:wrap}
.presta-ligne-actions .btn{padding:8px 13px;font-size:12.5px}
.filtre-label{font-size:13px;font-weight:700;color:var(--gris);margin:0}
#factures-filtre{margin:0;width:auto;min-width:140px}
.factures-total{background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(13,27,42,.07);padding:14px 18px;font-size:14.5px;font-weight:800;color:var(--nuit);margin-bottom:16px}
.factures-table-wrap{overflow-x:auto}
.factures-table{border-collapse:collapse;width:100%;font-size:13px}
.factures-table th{background:var(--gris-clair);font-weight:800;text-align:left;padding:9px 12px;white-space:nowrap;color:var(--nuit)}
.factures-table td{padding:9px 12px;border-top:1px solid var(--bord);vertical-align:middle}
.factures-table .td-montant{font-weight:800;white-space:nowrap}
.factures-table .td-actions{text-align:right;white-space:nowrap}
.factures-table .td-actions .btn{padding:8px 13px;font-size:12.5px}
.lien-facture{background:transparent;border:none;font-family:inherit;font-size:13px;font-weight:700;color:var(--cyan-texte);cursor:pointer;padding:0;text-decoration:underline;text-align:left;word-break:break-word}
.lien-facture:hover{color:var(--nuit)}
/* section Documents repliable : tête cliquable avec compteur, badges
   d'alerte visibles même repliée, chevron d'état */
.card-toggle{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;background:transparent;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}
.card-toggle .card-title{margin-bottom:0}
.docs-compte{font-weight:700;color:var(--gris)}
.card-chevron{margin-left:auto;color:var(--gris);font-size:15px;line-height:1;flex-shrink:0}
.card-repli-corps{margin-top:16px}
/* code couleur des échéances de factures (cartes prestataires) */
.point-echeance{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}
.niveau-rouge{color:var(--rouge);font-weight:700}
.niveau-orange{color:var(--orange);font-weight:700}
.niveau-vert{color:var(--vert-fonce);font-weight:700}
.point-rouge{background:var(--rouge)}
.point-orange{background:var(--orange)}
.point-vert{background:var(--vert-fonce)}
/* mention discrète d'une facture réglée (remplace le bouton Marquer payée) */
.mention-reglee{font-size:12.5px;font-weight:700;color:var(--vert-fonce);white-space:nowrap}
/* ligne à case à cocher (boîte Modifier la facture) */
.check-ligne{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;cursor:pointer}
.check-ligne input{width:auto;margin:0}
@media(max-width:640px){
  .presta-grid{grid-template-columns:1fr}
  .presta-ligne-actions{width:100%}
}

/* ---- module RH */
/* Filtres de l'écran principal : pastilles par pôle (couleurs de la charte)
   et menu de statut (Actifs par défaut). */
.rh-filtres{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.rh-filtres-poles{display:flex;gap:8px;flex-wrap:wrap}
.rh-filtres-statut{display:flex;align-items:center;gap:8px}
.rh-filtres-statut select{margin:0;width:auto;min-width:110px}
.pill-pole{font-family:inherit;font-size:12.5px;font-weight:700;border-radius:999px;padding:7px 13px;border:1.5px solid var(--bord);background:#fff;color:var(--gris);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:border-color .12s ease}
.pill-pole:hover{border-color:var(--nuit)}
.pill-pole.active{border-color:var(--nuit);color:var(--nuit);background:var(--gris-clair)}
.pole-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}
.pole-dot-accueil{background:#c488ec}
.pole-dot-maintenance{background:#00adcc}
.pole-dot-nettoyage{background:#66bd65}
.pole-dot-evenementiel{background:#ffbd59}
.pole-dot-administratif{background:#8a97a5}
/* Badge de pôle des cartes et de la fiche (teinte claire + texte lisible). */
.badge-pole{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 9px;white-space:nowrap}
.badge-pole-accueil{background:rgba(196,136,236,.2);color:#7d3fb0}
.badge-pole-maintenance{background:rgba(0,173,204,.14);color:#00798f}
.badge-pole-nettoyage{background:rgba(102,189,101,.16);color:#3e8a3d}
.badge-pole-evenementiel{background:rgba(255,189,89,.28);color:#9c650e}
.badge-pole-administratif{background:var(--gris-clair);color:var(--gris);border:1px solid var(--bord)}
/* Titres de séjour : LA priorité du bandeau, en rouge foncé. */
.alerte-rouge-fonce{color:#8f1d1d;font-weight:800}
.rh-item-sejour{border:1.5px solid rgba(143,29,29,.35);background:rgba(143,29,29,.06)}
/* Salarié sorti : carte atténuée dans la liste. */
.carte-sorti{opacity:.62}
/* Fiche : boutons Enregistrer + Actif/Sorti côte à côte. */
.fiche-actions-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* Ajout rapide d'une échéance (type + intitulé + date + bouton). */
.rh-ech-ajout{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--bord)}
.rh-ech-ajout>div{min-width:150px}
.rh-ech-ajout .rh-ech-intitule{flex:1;min-width:200px}
.rh-ech-ajout input,.rh-ech-ajout select{margin-bottom:0}
.rh-ech-ajout .btn{padding:11px 18px}
@media(max-width:640px){
  .rh-ech-ajout>div{width:100%}
  .rh-ech-ajout .btn{width:100%}
  .rh-filtres{flex-direction:column;align-items:flex-start}
}

/* ---- module demandes */
/* Bandeau des compteurs : « X devis · Y candidatures · Z nouvelles ». */
.demandes-compteurs{background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(13,27,42,.07);padding:14px 18px;font-size:14px;color:var(--gris);margin-bottom:16px}
.demandes-compteurs strong{color:var(--nuit);font-weight:800}
.demandes-nouvelles{color:var(--cyan-texte);font-weight:700}
.demandes-nouvelles strong{color:var(--cyan-texte)}
/* Filtres : pastilles de type + menu de statut (même gabarit que le RH). */
.demandes-filtres{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.demandes-filtres-type{display:flex;gap:8px;flex-wrap:wrap}
/* Badges de type (devis / candidature) et de statut. Le statut Nouveau est
   volontairement très visible (fond cyan plein). */
.badge-type{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 10px;white-space:nowrap}
.badge-type-devis{background:rgba(1,164,226,.12);color:var(--cyan-texte)}
.badge-type-cand{background:rgba(196,136,236,.2);color:#7d3fb0}
.badge-statut{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 10px;white-space:nowrap}
.badge-statut-nouveau{background:var(--cyan-fonce);color:#fff;box-shadow:0 2px 8px rgba(1,164,226,.35)}
.badge-statut-encours{background:rgba(255,189,89,.25);color:var(--orange)}
.badge-statut-traite{background:rgba(102,189,101,.14);color:var(--vert-fonce)}
/* Cartes de la liste. */
.carte-demande{position:relative}
.carte-demande .carte-presta-head{justify-content:space-between;padding-right:28px}
/* corbeille discrète des vignettes de demandes : grise, rouge au survol */
.btn-corbeille-carte{position:absolute;top:8px;right:8px;background:transparent;border:none;cursor:pointer;font-size:15px;line-height:1;padding:6px;border-radius:8px;filter:grayscale(1);opacity:.5;transition:opacity .12s ease,background .12s ease}
.btn-corbeille-carte:hover,.btn-corbeille-carte:focus-visible{opacity:1;filter:none;background:rgba(214,69,69,.14);outline:none}
.btn-corbeille-carte:disabled{opacity:.25;cursor:default}
.demande-trombone{font-size:14px}
.demande-extrait{font-size:12px;color:var(--gris);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.carte-demande-pied{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:6px}
.demande-date{font-size:11.5px;color:var(--gris);white-space:nowrap}
/* Détail : message au long, boutons de statut, date de réception. */
.demande-recu{font-size:12.5px;color:var(--gris);margin-bottom:12px}
.demande-message{font-size:14px;color:#26384a;white-space:pre-wrap;word-break:break-word}
.demande-statuts{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.demande-statuts .btn{padding:10px 16px;font-size:13.5px}
.demande-statuts .hint{flex-basis:100%;margin-top:2px}
/* Carte Demandes du tableau de bord : alerte cyan dès qu'il y a du nouveau. */
.dash-demandes-alerte,.dash-demandes-alerte .dash-com-chiffre{color:var(--cyan-texte)}
@media(max-width:640px){
  .demandes-filtres{flex-direction:column;align-items:flex-start}
}

/* ---- autocomplétion (recherche d'entreprise et d'adresse, data.gouv.fr) */
.autocomplete-wrap{position:relative}
.suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1.5px solid var(--bord);border-radius:12px;box-shadow:0 14px 34px rgba(13,27,42,.18);z-index:90;max-height:260px;overflow:auto}
.suggestion{display:flex;flex-direction:column;gap:2px;padding:9px 13px;cursor:pointer}
.suggestion+.suggestion{border-top:1px solid rgba(13,27,42,.06)}
.suggestion:hover{background:rgba(1,164,226,.08)}
.suggestion-nom{font-weight:700;font-size:13.5px;color:var(--nuit)}
.suggestion-detail{font-size:11.5px;color:var(--gris)}
.hint-source{margin-top:6px}

/* ---- vignettes logo des cartes et des fiches (prestataires et clients) */
.carte-avec-logo{display:flex;gap:12px;align-items:flex-start;min-width:0}
.carte-presta-corps{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.avatar-logo{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;background:#fff;border:1px solid rgba(13,27,42,.1)}
.avatar-initiale{width:48px;height:48px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;color:#fff;user-select:none}
.fiche-avatar{display:inline-flex;flex:none}
.fiche-avatar .avatar-logo,.fiche-avatar .avatar-initiale{width:64px;height:64px;font-size:24px}
.fiche-logo-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.fiche-logo-actions .hint{margin:0}

/* ---- module recrutement : score en étoiles */
.score-mini{color:#c97e10;font-size:13px;letter-spacing:2px}
.score-etoiles{display:flex;gap:2px;margin-top:6px}
.score-etoile{font-family:inherit;background:transparent;border:none;cursor:pointer;font-size:22px;line-height:1;padding:2px 3px;color:var(--bord);border-radius:8px;transition:color .12s ease}
.score-etoile.active{color:#c97e10}
.score-etoile:hover,.score-etoile:focus-visible{color:#c97e10;outline:none;background:rgba(255,189,89,.18)}
#recrut-recherche{min-width:240px}
@media (max-width:640px){
  #recrut-recherche{min-width:0;width:100%}
}

/* ---- module newsletters */
.nl-import-liste{max-height:340px;overflow:auto;border:1px solid var(--bord);border-radius:10px;padding:6px 12px;background:#fff}
.nl-import-ligne{margin:7px 0}
.nl-import-ligne span{min-width:0;overflow-wrap:anywhere}
.hint-inline{color:var(--gris);font-weight:500;font-size:12.5px}
.nl-apercu-pied{font-size:11px;color:#5f7385;border-top:1px solid var(--bord);padding-top:8px;margin-top:10px}
.nl-apercu-pied a{color:#5f7385}
.nl-echecs-detail{margin-top:6px;font-size:12.5px}
.nl-echecs-detail summary{cursor:pointer;font-weight:700;color:var(--rouge)}
.nl-echecs-detail ul{margin:6px 0 0 18px}
#nl-recherche{min-width:240px}
@media (max-width:640px){
  #nl-recherche{min-width:0;width:100%}
}

/* pastille de notification du menu (factures à payer) */
.nav-badge{margin-left:auto;background:#FFBD59;color:#0D1B2A;font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 7px;line-height:1.4;flex-shrink:0}
body.menu-replie .nav-badge{position:absolute;right:8px;top:6px;padding:1px 5px}

/* ---- explorateur de documents (Commercial, Prestataires, Recrutement) */
#docs-tri{margin:0;width:auto;min-width:120px}
.docs-fil{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:8px;font-size:13px}
.docs-fil-lien{background:transparent;border:none;font-family:inherit;font-size:13px;font-weight:700;color:var(--cyan-texte);cursor:pointer;padding:4px 6px;border-radius:8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.docs-fil-lien:hover,.docs-fil-lien:focus-visible{background:rgba(1,164,226,.1);outline:none}
.docs-fil-courant{font-weight:800;color:var(--nuit);padding:4px 6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.docs-fil-sep{color:var(--gris);flex-shrink:0}
.docs-compteur{margin:0 0 14px}
.docs-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.docs-grille .hint{grid-column:1/-1}
.doc-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;background:#fff;border:1.5px solid transparent;border-radius:14px;padding:16px 10px 12px;box-shadow:0 4px 14px rgba(13,27,42,.06);cursor:pointer;font-family:inherit;text-align:center;transition:border-color .12s ease}
.doc-item:hover,.doc-item:focus-visible{border-color:var(--cyan-texte);outline:none}
.doc-icone{width:64px;height:64px;display:grid;place-items:center;font-size:42px;line-height:1}
.doc-icone img{width:64px;height:64px;object-fit:cover;border-radius:10px;background:var(--gris-clair)}
.doc-badge-ext{display:grid;place-items:center;width:50px;height:62px;border-radius:10px;font-size:11px;font-weight:800;letter-spacing:.04em;color:#fff}
.doc-ext-pdf{background:var(--rouge)}
.doc-ext-word{background:var(--cyan-fonce)}
.doc-ext-excel{background:var(--vert-fonce)}
.doc-ext-autre{background:var(--gris)}
.doc-corps{display:flex;flex-direction:column;gap:2px;align-items:center;min-width:0;max-width:100%}
.doc-nom{font-size:12.5px;font-weight:700;color:var(--nuit);word-break:break-word;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.doc-meta{font-size:11px;color:var(--gris)}
.doc-actions-btn{position:absolute;top:6px;right:6px;background:transparent;border:none;cursor:pointer;font-size:16px;font-weight:800;color:var(--gris);padding:4px 9px;border-radius:8px;line-height:1}
.doc-actions-btn:hover,.doc-actions-btn:focus-visible{background:var(--gris-clair);color:var(--nuit);outline:none}
.doc-menu{position:absolute;top:32px;right:6px;background:#fff;border:1px solid var(--bord);border-radius:12px;box-shadow:0 14px 40px rgba(13,27,42,.18);min-width:170px;padding:6px;z-index:25;text-align:left}
.doc-menu button{display:block;width:100%;text-align:left;font-family:inherit;font-size:13px;font-weight:600;color:var(--nuit);background:transparent;border:none;border-radius:8px;padding:8px 10px;cursor:pointer}
.doc-menu button:hover{background:var(--gris-clair)}
.doc-menu button.doc-menu-danger{color:var(--rouge)}
.docs-apercu-box{max-width:900px}
.docs-apercu-cadre{width:100%;height:70vh;border:none;border-radius:10px;background:var(--gris-clair)}
.docs-apercu-image{display:block;max-width:100%;max-height:70vh;margin:0 auto;border-radius:10px}
/* Mobile : la grille passe en liste, tout reste utilisable au doigt */
@media(max-width:640px){
  .docs-grille{display:flex;flex-direction:column;gap:8px}
  .doc-item{flex-direction:row;align-items:center;text-align:left;padding:10px 12px;gap:12px}
  .doc-icone{width:44px;height:44px;font-size:30px;flex-shrink:0}
  .doc-icone img{width:44px;height:44px}
  .doc-badge-ext{width:36px;height:44px;font-size:9.5px}
  .doc-corps{flex:1;min-width:0;align-items:flex-start}
  .doc-nom{-webkit-line-clamp:1}
  .doc-actions-btn{position:static;margin-left:auto;flex-shrink:0}
  .doc-menu{top:auto;bottom:8px;right:44px}
  .docs-apercu-cadre{height:60vh}
}

/* ---- explorateur de documents : modes d'affichage, liste, corbeille, dépôt */
.docs-modes{display:inline-flex;border:1px solid var(--bord);border-radius:10px;overflow:hidden;flex-shrink:0}
.docs-mode-btn{border:none;background:#fff;font-family:inherit;font-size:15px;line-height:1;color:var(--gris);padding:8px 11px;cursor:pointer;transition:background .12s ease,color .12s ease}
.docs-mode-btn:hover,.docs-mode-btn:focus-visible{background:var(--gris-clair);color:var(--nuit);outline:none}
.docs-mode-btn.active{background:rgba(1,164,226,.14);color:var(--cyan-texte)}
.docs-zone{position:relative;border-radius:14px}
.docs-zone.docs-drop-actif{outline:2.5px dashed var(--cyan);outline-offset:6px}
.docs-drop-voile{display:none;position:absolute;inset:0;place-items:center;background:rgba(1,164,226,.08);border-radius:14px;font-weight:800;color:var(--cyan-texte);pointer-events:none;z-index:5}
.docs-zone.docs-drop-actif .docs-drop-voile{display:grid}
/* mode liste : lignes détaillées avec colonnes */
.docs-grille.docs-liste{display:flex;flex-direction:column;gap:6px}
.doc-ligne{position:relative;display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid transparent;border-radius:12px;padding:8px 12px;box-shadow:0 3px 10px rgba(13,27,42,.05);cursor:pointer;font-family:inherit;text-align:left;transition:border-color .12s ease}
.doc-ligne:hover,.doc-ligne:focus-visible{border-color:var(--cyan-texte);outline:none}
.doc-ligne .doc-icone{width:34px;height:34px;font-size:24px;flex-shrink:0}
.doc-ligne .doc-icone img{width:34px;height:34px;border-radius:7px}
.doc-ligne .doc-badge-ext{width:28px;height:34px;font-size:8.5px;border-radius:7px}
.doc-ligne-nom{display:flex;align-items:center;gap:10px;flex:1;min-width:0;font-size:13px;font-weight:700;color:var(--nuit)}
.doc-ligne-nom-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-ligne-nom-bloc{display:flex;flex-direction:column;min-width:0;gap:1px}
.doc-ligne-nom-bloc .doc-ligne-nom-txt{max-width:100%}
.doc-ligne-date{width:96px;flex-shrink:0;font-size:12px;color:var(--gris)}
.doc-ligne-taille{width:92px;flex-shrink:0;font-size:12px;color:var(--gris)}
.doc-ligne-type{width:76px;flex-shrink:0;font-size:12px;color:var(--gris)}
.doc-ligne-actions{width:34px;flex-shrink:0;text-align:center}
.doc-ligne .doc-actions-btn{position:static}
.doc-ligne .doc-menu{top:auto;bottom:6px;right:44px}
/* en-tête des colonnes (tri cliquable) */
.doc-ligne-head{background:transparent;box-shadow:none;border:none;cursor:default;padding-top:0;padding-bottom:2px}
.doc-ligne-head:hover{border-color:transparent}
.doc-col-tri{background:transparent;border:none;font-family:inherit;font-size:12px;font-weight:800;color:var(--gris);cursor:pointer;padding:4px 0;text-align:left;border-radius:6px}
.doc-col-tri:hover,.doc-col-tri:focus-visible{color:var(--cyan-texte);outline:none}
.doc-col-tri.doc-ligne-nom{flex:1;display:block}
/* corbeille */
.doc-ligne-corbeille{cursor:default}
.doc-ligne-corbeille:hover{border-color:transparent}
.doc-corbeille-actions{display:flex;gap:6px;flex-shrink:0;align-items:center}
.doc-btn-danger{color:var(--rouge)}
@media(max-width:640px){
  .doc-ligne{flex-wrap:wrap}
  .doc-ligne-date,.doc-ligne-taille,.doc-ligne-type{width:auto}
  .doc-ligne-head .doc-ligne-date,.doc-ligne-head .doc-ligne-taille,.doc-ligne-head .doc-ligne-type{display:none}
  .doc-corbeille-actions{width:100%;justify-content:flex-end}
}

/* ---- menu latéral : mode réorganisation (flèches ▲ ▼ par onglet) */
.nav-reorganiser{margin-top:4px;background:transparent;border:1px dashed rgba(255,255,255,.25);border-radius:9px;font-family:inherit;font-size:12px;font-weight:700;color:rgba(255,255,255,.6);padding:7px 12px;cursor:pointer;text-align:left;transition:background .12s ease,color .12s ease}
.nav-reorganiser:hover,.nav-reorganiser:focus-visible{background:rgba(255,255,255,.07);color:#fff;outline:none}
/* menu sombre : le cyan clair de la charte y est déjà très lisible */
body.menu-reorganisation .nav-reorganiser{color:var(--cyan);border-color:var(--cyan)}
.nav-fleches{display:none;margin-left:auto;gap:3px;flex-shrink:0}
body.menu-reorganisation .nav-fleches{display:inline-flex}
body.menu-reorganisation .nav-item .nav-badge,body.menu-reorganisation .nav-item .nav-chevron{display:none}
.nav-fleche{display:grid;place-items:center;min-width:22px;height:20px;border-radius:6px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.85);font-size:10px;line-height:1;cursor:pointer;user-select:none}
.nav-fleche:hover,.nav-fleche:focus-visible{background:rgba(1,164,226,.35);color:#fff;outline:none}
.nav-fleche.nav-fleche-off{opacity:.25;cursor:default}
body.menu-replie .nav-fleches{display:none}

/* ---- sélecteur de photos : suppression au survol ; dossier spécial 🌐 */
.picker-cell{position:relative}
.picker-cell>button:first-child{width:100%;display:block}
.picker-grid .picker-suppr{position:absolute;top:6px;right:6px;aspect-ratio:auto;width:30px;height:28px;border-radius:8px;background:rgba(13,27,42,.62);color:#fff;font-size:13px;line-height:1;display:grid;place-items:center;opacity:0;transition:opacity .12s ease,background .12s ease;border:none;cursor:pointer;padding:0}
.picker-cell:hover .picker-suppr,.picker-grid .picker-suppr:focus-visible{opacity:1;outline:none}
.picker-grid .picker-suppr:hover{background:var(--rouge)}
@media(hover:none){.picker-grid .picker-suppr{opacity:.85}}
.doc-special{border-style:dashed;border-color:rgba(1,164,226,.45)}
.doc-special:hover,.doc-special:focus-visible{border-style:solid}
.doc-badge-site{display:inline-block;background:var(--cyan-fonce);color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.04em;border-radius:999px;padding:2px 8px;margin-left:8px;vertical-align:middle;text-transform:uppercase}

/* Recherche globale (icône 🔍 de la barre du haut, Cmd+K) */
.btn-recherche{padding:10px 12px;font-size:15px;line-height:1}
.recherche-modal{align-items:flex-start;padding-top:9vh}
.recherche-box{max-width:560px;padding:12px}
.recherche-input{width:100%;font-family:inherit;font-size:16px;font-weight:600;color:var(--nuit);padding:12px 14px;border:1.5px solid var(--bord);border-radius:12px;outline:none;background:var(--gris-clair)}
.recherche-input:focus{border-color:var(--cyan-texte);background:#fff}
.recherche-resultats{margin-top:10px;max-height:56vh;overflow-y:auto}
.recherche-hint{padding:6px 4px}
.recherche-groupe{padding:4px 0 8px}
.recherche-groupe-titre{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--gris);padding:6px 6px 4px}
.recherche-item{display:block;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;font-family:inherit;padding:8px 10px;border-radius:10px}
.recherche-item:hover,.recherche-item.active{background:rgba(1,164,226,.1)}
.recherche-item-titre{display:block;font-size:14px;font-weight:700;color:var(--nuit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recherche-item-sous{display:block;font-size:12px;color:var(--gris);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recherche-plus{font-size:12px;font-weight:600;color:var(--gris);padding:2px 10px 4px;font-style:italic}

/* Date butoir des notes du post-it : badge court sur la ligne + sélecteur replié */
.note-echeance{font-family:'Montserrat',Arial,sans-serif;font-size:11px;font-weight:700;white-space:nowrap;align-self:center;margin-left:auto;padding-left:8px}
.note-echeance-loin{color:rgba(13,27,42,.45)}
.note-echeance-orange{color:var(--orange)}
.note-echeance-rouge{color:var(--rouge)}
.note-echeance-retard{color:var(--rouge);font-weight:800}
.note-faite .note-echeance{color:rgba(13,27,42,.35);font-weight:600}
.note-date-btn{background:transparent;border:none;cursor:pointer;font-size:13px;line-height:1;padding:4px 4px;border-radius:8px;filter:grayscale(1);opacity:.45;flex-shrink:0;transition:opacity .12s ease,background .12s ease}
.note-date-btn:hover,.note-date-btn:focus-visible{opacity:1;filter:none;background:rgba(13,27,42,.1);outline:none}
.note-date-edit{display:flex;align-items:center;gap:8px;padding:4px 0 8px 25px;border-bottom:1px dashed rgba(13,27,42,.18)}
.note-date-input{font-family:inherit;font-size:16px;padding:3px 6px;border:1px solid rgba(13,27,42,.25);border-radius:8px;background:rgba(255,255,255,.65);color:var(--nuit)}
.note-date-retirer{background:transparent;border:none;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;color:var(--rouge);padding:4px 6px;border-radius:8px}
.note-date-retirer:hover{background:rgba(214,69,69,.12)}

/* Alerte rebond email (Mail Delivery System) */
.prospect-email-echec{display:block;color:var(--rouge);font-weight:700;font-size:12px;margin-top:2px}
.carte-email-echec{font-size:13px;cursor:help}

/* Éditeur riche des modèles d'emails (gras, italique, lien) */
.editeur-corps{border:1.5px solid var(--bord);border-radius:12px;overflow:hidden;background:#fff}
.editeur-corps-barre{display:flex;gap:4px;padding:6px 8px;border-bottom:1px solid var(--bord);background:var(--gris-clair)}
.editeur-corps-btn{min-width:30px;padding:4px 8px;border:1px solid var(--bord);border-radius:8px;background:#fff;cursor:pointer;font-family:inherit;font-size:13px;color:var(--nuit)}
.editeur-corps-btn:hover{border-color:var(--cyan-texte);color:var(--cyan-texte)}
.editeur-corps-zone{min-height:180px;max-height:420px;overflow-y:auto;padding:10px 12px;font-size:14px;line-height:1.6;outline:none}
.editeur-corps-zone p{margin:0 0 10px}
.editeur-corps-zone a{color:var(--cyan-texte)}

/* Aperçu de l'en-tête de marque (écran Modèles + modale d'envoi) */
.mail-apercu-marque{text-align:center;padding:10px 8px;border:1px dashed var(--bord);border-radius:12px;margin:8px 0;background:var(--gris-clair)}
.mail-apercu-marque img{height:44px;width:auto;display:block;margin:0 auto 6px}
.mail-apercu-marque-nom{font-size:14px;font-weight:800;color:var(--nuit)}
.mail-apercu-marque-sous{font-size:11px;color:var(--gris)}

/* Désinscription des emails commerciaux (fiche + pipeline) */
.btn-reinscrire{padding:4px 10px;font-size:11.5px;margin-left:8px}

/* Raccourcis personnalisés du menu latéral : petits boutons en relief */
.nav-raccourci-perso{display:flex;align-items:center;gap:9px;margin:6px 10px;padding:8px 11px;border-radius:10px;text-decoration:none;color:#fff;font-size:13px;font-weight:700;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.25);box-shadow:0 1px 3px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.14);transition:transform .1s ease,box-shadow .1s ease,background .12s ease;position:relative}
.nav-raccourci-perso:hover{transform:translateY(-1px);background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.06));box-shadow:0 3px 7px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.18)}
.nav-raccourci-perso:active{transform:translateY(1px);box-shadow:0 1px 2px rgba(0,0,0,.35),inset 0 1px 2px rgba(0,0,0,.35)}
.nav-raccourci-icone{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.nav-raccourci-icone img{width:20px;height:20px;border-radius:5px;display:block}
.nav-raccourci-perso .nav-libelle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.nav-raccourci-crayon{background:transparent;border:none;cursor:pointer;font-size:12px;color:rgba(255,255,255,.75);padding:2px 4px;border-radius:6px;opacity:0;transition:opacity .12s ease;flex-shrink:0}
.nav-raccourci-perso:hover .nav-raccourci-crayon,.nav-raccourci-crayon:focus-visible{opacity:.85}
.nav-raccourci-crayon:hover{color:var(--cyan)}
.nav-raccourci-ajouter .nav-icone{font-weight:800}
/* rail replié : le bouton se réduit au favicon seul, toujours en relief */
@media(min-width:761px){
  body.menu-replie .nav-raccourci-perso{justify-content:center;padding:8px 0;margin:6px 8px}
  body.menu-replie .nav-raccourci-crayon{display:none}
}

/* Console audio 1TDS : panneau bleu nuit de la charte, afficheur numérique
   cyan avec LED de lecture et vumètre, commandes plates. Compacte pour rester
   à la hauteur des autres cartes. Tout en CSS, aucune image externe. */
#dash-card-radio{background:linear-gradient(160deg,#12263c 0%,#0D1B2A 55%,#091522 100%);border:1px solid rgba(1,164,226,.28);border-radius:22px;box-shadow:0 10px 24px rgba(13,27,42,.35);color:#e8f3fb}
#dash-card-radio .card-title{color:#e8f3fb;letter-spacing:.02em;display:flex;align-items:center;gap:8px}
.radio1t-note{color:#fff;font-size:19px;line-height:1;text-shadow:0 0 10px rgba(1,164,226,.55)}
#dash-card-radio .dash-fleche{background:rgba(232,243,251,.14);color:#e8f3fb}
.radio1t{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}
.radio1t-ecran{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:11px;background:linear-gradient(180deg,#071120 0%,#0b1a2b 100%);border:1px solid rgba(1,164,226,.22);box-shadow:inset 0 1px 6px rgba(0,0,0,.55)}
.radio1t-led{width:8px;height:8px;border-radius:50%;flex:none;background:#2b4258;box-shadow:inset 0 0 2px rgba(0,0,0,.6)}
.radio1t-source{flex:none;font-size:10px;font-weight:800;letter-spacing:.08em;color:#7fd3f5;background:rgba(1,164,226,.14);border:1px solid rgba(1,164,226,.3);border-radius:5px;padding:2px 6px;white-space:nowrap}
.radio1t-nom{flex:1;min-width:0;font-size:13px;font-weight:700;letter-spacing:.04em;color:#dff1fb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 10px rgba(1,164,226,.35)}
.radio-eq{display:flex;align-items:flex-end;gap:2px;height:15px;flex:none}
.radio-eq span{width:3px;border-radius:1px;background:linear-gradient(180deg,#01A4E2,#0e7fb0);transform-origin:bottom;animation:radio1t-vu .9s ease-in-out infinite}
.radio-eq span:nth-child(1){height:6px;animation-delay:0s}
.radio-eq span:nth-child(2){height:13px;animation-delay:.15s}
.radio-eq span:nth-child(3){height:9px;animation-delay:.3s}
.radio-eq span:nth-child(4){height:15px;animation-delay:.45s}
/* vumètre piloté par le son réel : l'animation décorative laisse la main */
.radio-eq.vu-reel span{animation:none;transition:transform .06s linear}
@keyframes radio1t-vu{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.radio1t-rangee{display:flex;align-items:center;gap:8px}
.radio1t-select{flex:1;min-width:0;background:rgba(255,255,255,.06);color:#e8f3fb;border:1px solid rgba(1,164,226,.25);border-radius:9px;padding:6px 9px;font-family:inherit;font-size:16px;cursor:pointer}
.radio1t-select option{color:#0D1B2A}
.radio1t-segment{display:inline-flex;flex:none;border:1px solid rgba(1,164,226,.3);border-radius:9px;overflow:hidden}
.radio1t-segment button{background:transparent;border:none;cursor:pointer;font-family:inherit;font-size:11px;font-weight:800;letter-spacing:.05em;color:#8fb3cc;padding:7px 10px;line-height:1}
.radio1t-segment button.active{background:#01A4E2;color:#fff}
.radio1t-transport{display:flex;align-items:center;gap:6px}
.radio1t-btn{width:32px;height:32px;border-radius:50%;border:1px solid rgba(1,164,226,.28);background:rgba(255,255,255,.06);color:#e8f3fb;font-size:13px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,transform .08s}
.radio1t-btn:hover{background:rgba(1,164,226,.2)}
.radio1t-btn:active{transform:translateY(1px)}
.radio1t-btn.active{background:#01A4E2;color:#fff;border-color:#01A4E2}
.radio1t-play{width:36px;height:36px;background:#01A4E2;border-color:#01A4E2;color:#fff;font-size:15px;box-shadow:0 4px 12px rgba(1,164,226,.35)}
.radio1t-play:hover{background:#0bb4f2}
.radio1t-volume{flex:1;display:flex;align-items:center;gap:7px;min-width:0;color:#8fb3cc;font-size:13px}
.radio1t-volume input[type=range]{flex:1;min-width:0;-webkit-appearance:none;appearance:none;height:11px;border-radius:3px;cursor:pointer;background-image:repeating-linear-gradient(90deg,transparent 0 5px,#0b1a2b 5px 7px),linear-gradient(90deg,#01A4E2 var(--remplissage,70%),rgba(255,255,255,.13) var(--remplissage,70%));box-shadow:inset 0 1px 4px rgba(0,0,0,.5)}
.radio1t-volume input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:6px;height:16px;border-radius:2px;background:#fff;border:none;box-shadow:0 0 7px rgba(1,164,226,.9);cursor:pointer}
.radio1t-volume input[type=range]::-moz-range-thumb{width:6px;height:16px;border-radius:2px;background:#fff;border:none;box-shadow:0 0 7px rgba(1,164,226,.9);cursor:pointer}
.radio-statut{display:block;color:rgba(232,243,251,.72);font-size:11.5px;margin-top:2px}
.radio-statut:empty{display:none}
#dash-card-radio.radio-allume .radio1t-led{background:#01A4E2;box-shadow:0 0 8px rgba(1,164,226,.9);animation:radio1t-led 1.8s ease-in-out infinite}
#dash-card-radio.radio-allume .radio1t-ecran{border-color:rgba(1,164,226,.45);box-shadow:inset 0 1px 6px rgba(0,0,0,.55),0 0 14px rgba(1,164,226,.18)}
@keyframes radio1t-led{0%,100%{opacity:1}50%{opacity:.45}}
@media(max-width:640px){
  .radio1t-rangee{flex-wrap:wrap}
  .radio1t-volume{width:100%;flex-basis:100%}
}

/* Générateur de prospects SIRENE */
.gen-case{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--nuit);margin-top:10px;cursor:pointer}
.gen-case input[type=checkbox]{width:16px;height:16px;accent-color:var(--cyan-texte);cursor:pointer}
.gen-outils{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.gen-outils .gen-case{margin-top:0}
.gen-liste{max-height:46vh;overflow-y:auto;border:1.5px solid var(--bord);border-radius:12px;padding:4px}
.gen-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;cursor:pointer}
.gen-item:hover{background:var(--gris-clair)}
.gen-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--cyan-texte);flex-shrink:0;cursor:pointer}
.gen-item-corps{flex:1;min-width:0;display:flex;flex-direction:column}
.gen-item-societe{font-size:13.5px;font-weight:700;color:var(--nuit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gen-item-sous{font-size:11.5px;color:var(--gris);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gen-item-pole{flex-shrink:0;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 9px;color:#fff;background:var(--gris)}
.gen-pole-accueil{background:var(--violet-fonce)}
.gen-pole-maintenance{background:var(--cyan-maint)}
.gen-pole-nettoyage{background:var(--vert-fonce)}

/* Bouton Dupliquer des cartes d'offres (survol cyan, pas rouge) */
.btn-dupliquer-carte:hover,.btn-dupliquer-carte:focus-visible{background:rgba(1,164,226,.14)}

/* « + Ajouter un raccourci » : une seule ligne, police réduite */
.nav-raccourci-ajouter{white-space:nowrap}
.nav-raccourci-ajouter .nav-libelle{font-size:11.5px;overflow:hidden;text-overflow:ellipsis}

/* Bannière « mise à jour disponible » (non bloquante, au-dessus de la barre) */
.maj-banniere{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--nuit);color:#fff;padding:9px 16px;font-size:13.5px;font-weight:600;padding-top:calc(9px + env(safe-area-inset-top))}
/* bannière de MAJ visible : elle est alors l'élément le plus haut et porte
   déjà l'encoche ; la barre juste dessous ne la réserve pas une 2e fois */
.maj-banniere:not(.hidden)+.topbar{padding-top:0}
.maj-banniere-btn{padding:7px 14px;font-size:12.5px}
.maj-banniere-fermer{background:transparent;border:none;cursor:pointer;color:rgba(255,255,255,.7);font-size:14px;padding:4px 6px;border-radius:8px}
.maj-banniere-fermer:hover{color:#fff;background:rgba(255,255,255,.12)}

/* Éditeur de campagne de newsletter : cadre d'aperçu de l'email */
.nlc-apercu-frame{width:100%;height:560px;border:1.5px solid var(--bord);border-radius:12px;background:#eef2f6}
#nl-apercu-corps .nlc-apercu-frame{height:420px}

/* Sélecteur de vidéos (blocs vidéo) : cartes sobres 🎬, aperçu au clic */
.video-picker-titre{font-size:14px;font-weight:800;color:var(--nuit);margin:6px 0 4px}
.video-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}
.carte-video{position:relative;display:flex;flex-direction:column;gap:5px;background:#fff;border:1.5px solid var(--bord);border-radius:12px;padding:11px 12px;cursor:pointer;transition:border-color .12s ease;font-family:inherit;text-align:left}
.carte-video:hover,.carte-video:focus-visible{border-color:var(--cyan-texte);outline:none}
.carte-video-tete{display:flex;align-items:center;gap:8px;min-width:0;padding-right:22px}
.carte-video-icone{font-size:18px;flex-shrink:0}
.carte-video-nom{font-size:13px;font-weight:700;color:var(--nuit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.carte-video-meta{font-size:11.5px;color:var(--gris)}
.carte-video-actions{display:flex;gap:6px}
.carte-video-btn{padding:4px 10px;font-size:11.5px}
.carte-video-apercu video{width:100%;border-radius:8px;background:var(--nuit);margin-top:4px}

/* Flèches de réordonnancement des sous-listes de blocs (carrousel) */
.bloc-sous-fleches{display:flex;flex-direction:column;gap:2px;flex-shrink:0}
.bloc-btn-fleche{font-size:10px;line-height:1;padding:3px 6px}
.bloc-btn-fleche:disabled{opacity:.3;cursor:default}

/* mission 32 : aperçu du mail d'information de règlement */
.notifier-apercu{background:var(--fond2,#f4f7fa);border:1px solid var(--bord,#e3e9ef);border-radius:10px;padding:10px 14px;margin:8px 0 12px;font-size:13.5px;line-height:1.7}
.notifier-apercu .np-ligne span{color:var(--gris,#5f7385)}
.presta-notifie{font-size:12px;color:var(--vert-fonce);font-weight:600}

/* mission 36 : boîte de nettoyage des photos inutilisées */
.nettoyage-liste{max-height:46vh;overflow:auto;border:1px solid var(--bord,#e3e9ef);border-radius:10px;padding:6px;margin:8px 0;display:flex;flex-direction:column;gap:4px}
.nettoyage-ligne{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:8px}
.nettoyage-ligne:hover{background:var(--fond2,#f4f7fa)}
.nettoyage-ligne input[type=checkbox]{width:16px;height:16px;flex-shrink:0}
.nettoyage-ligne img{width:44px;height:33px;object-fit:cover;border-radius:6px;flex-shrink:0;background:var(--fond2,#f4f7fa)}
.nettoyage-nom{flex:1;min-width:0;font-size:13px;word-break:break-all}
.nettoyage-taille{font-size:12px;color:var(--gris,#5f7385);flex-shrink:0}
@media (max-width: 480px){
  .nettoyage-ligne img{width:36px;height:27px}
}
.nettoyage-maitre{margin:8px 0 0;font-weight:700}

/* ---- écran Visio (étape 3) */
.visio-titre-liste{margin:26px 0 12px;font-size:15px;font-weight:800;color:var(--nuit)}
.visio-card{min-width:0} /* les lignes nowrap ne doivent pas élargir la colonne de grille */
.visio-card .visio-meta{display:flex;flex-direction:column;gap:5px;font-size:13px;color:#5a6b7c;margin:4px 0 14px;min-width:0}
.visio-card .visio-meta div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.visio-actions{display:flex;flex-wrap:wrap;gap:8px}
.visio-actions .btn{padding:9px 14px;font-size:13px}
.pl-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.pl-chip{
  display:inline-flex;align-items:center;gap:6px;background:#eaf6fd;color:#0b6ea3;
  border:1px solid #bfe4f7;border-radius:999px;padding:4px 6px 4px 12px;font-size:12.5px;font-weight:700;
}
.pl-chip button{background:transparent;border:none;color:#0b6ea3;font-size:12px;cursor:pointer;padding:2px 6px;border-radius:999px}
.pl-chip button:hover{background:#d5eefb}
.pl-suggestions{
  border:1px solid var(--bordure, #dde5ec);border-radius:12px;margin-top:6px;overflow:hidden;
  box-shadow:0 10px 30px rgba(13,27,42,.12);background:#fff;
}
.pl-suggestion{
  display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:#fff;border:none;
  border-bottom:1px solid #eef2f6;padding:9px 13px;cursor:pointer;font-family:inherit;
}
.pl-suggestion:last-child{border-bottom:none}
.pl-suggestion:hover{background:#f4f9fd}
.pl-suggestion .nom{font-size:13px;font-weight:700;color:var(--nuit)}
.pl-suggestion .mail{font-size:11.5px;color:#5a6b7c}

/* ---- édition au fil de l'eau dans les modales d'envoi (M54) */
.mail-edition-note{font-size:11.5px;color:#7a8a99;font-style:italic;margin:6px 2px 0}
.editeur-envoi-texte{
  width:100%;min-height:180px;resize:vertical;font-family:inherit;font-size:13.5px;line-height:1.6;
  border:1.5px solid #dde5ec;border-radius:12px;padding:12px 14px;background:#fff;color:var(--nuit);
}
.editeur-envoi-texte:focus{outline:none;border-color:var(--cyan-texte)}
#mail-editeur .editeur-corps-zone,#recrut-mail-editeur .editeur-corps-zone{min-height:180px;background:#fff}

/* ---- Drive (M58) */
.drive-recherche{border:1.5px solid var(--bordure,#dde5ec);border-radius:10px;padding:9px 12px;font-family:inherit;font-size:14px;min-width:180px}
.drive-jauge-ligne{display:flex;align-items:center;gap:12px;margin:0 0 8px}
.drive-jauge{flex:0 0 220px;max-width:40%;height:10px;background:#e6edf3;border-radius:999px;overflow:hidden}
.drive-jauge-barre{height:100%;background:linear-gradient(90deg,#01A4E2,#0286c6);width:0;transition:width .3s}
.drive-jauge-barre.pleine{background:linear-gradient(90deg,#e5a11e,#E5484D)}
.dash-jauge{height:8px;background:#e6edf3;border-radius:999px;overflow:hidden;margin:8px 0}
.dash-jauge-barre{height:100%;background:linear-gradient(90deg,#01A4E2,#0286c6);width:0}
.dash-jauge-barre.pleine{background:linear-gradient(90deg,#e5a11e,#E5484D)}
.drive-fil{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin:0 0 12px;font-size:13.5px}
.drive-fil-item{background:none;border:none;color:#0b6ea3;font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;padding:4px 6px;border-radius:7px}
.drive-fil-item:hover{background:#eaf6fd}
.drive-fil-sep{color:#8da2b5;padding:0 2px}
.drive-drop{border:2px dashed transparent;border-radius:16px;transition:border-color .15s,background .15s;min-height:200px;padding:4px}
.drive-drop.over{border-color:#01A4E2;background:#f4fbff}
.drive-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.drive-item{position:relative;border:1px solid var(--bordure,#dde5ec);border-radius:14px;padding:14px 12px 10px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s;text-align:center}
.drive-item:hover{border-color:#bfe4f7;box-shadow:0 8px 22px rgba(13,27,42,.08)}
.drive-item.dossier{background:#f9fbfd}
.drive-vignette{height:76px;display:flex;align-items:center;justify-content:center;font-size:40px;overflow:hidden;border-radius:10px;margin-bottom:8px;background:#f2f7fb}
.drive-vignette img{width:100%;height:100%;object-fit:cover}
.drive-nom{font-size:13px;font-weight:700;color:var(--nuit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drive-meta{font-size:11.5px;color:#5a6b7c;margin-top:2px}
.drive-actions-btn{position:absolute;top:8px;right:8px;background:rgba(255,255,255,.9);border:1px solid var(--bordure,#dde5ec);border-radius:8px;width:28px;height:24px;font-size:15px;line-height:1;cursor:pointer;color:#5a6b7c}
.drive-actions-btn:hover{background:#eaf6fd}
.drive-menu{position:absolute;z-index:100;background:#fff;border:1px solid var(--bordure,#dde5ec);border-radius:12px;box-shadow:0 12px 30px rgba(13,27,42,.16);overflow:hidden;min-width:200px}
.drive-menu button{display:block;width:100%;text-align:left;background:#fff;border:none;border-bottom:1px solid #eef2f6;padding:11px 14px;font-family:inherit;font-size:13.5px;cursor:pointer;color:var(--nuit)}
.drive-menu button:last-child{border-bottom:none}
.drive-menu button:hover{background:#f4f9fd}
/* sélecteur de couleur de dossier */
.drive-couleurs-pop{position:absolute;z-index:110;background:#fff;border:1px solid var(--bordure,#dde5ec);border-radius:12px;box-shadow:0 12px 30px rgba(13,27,42,.16);padding:12px;width:190px;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.drive-couleur-pastille{width:22px;height:22px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(13,27,42,.12);cursor:pointer;padding:0}
.drive-couleur-pastille:hover{transform:scale(1.12)}
.drive-couleur-pastille.actif{box-shadow:0 0 0 2px #0D1B2A}
.drive-couleur-aucune{grid-column:1/-1;margin-top:2px;background:#f4f9fd;border:1px solid var(--bordure,#dde5ec);border-radius:8px;padding:7px;font-family:inherit;font-size:12.5px;font-weight:600;color:#5a6b7c;cursor:pointer}
.drive-couleur-aucune:hover{background:#eaf1f7}
.drive-svg-dossier{display:inline-block;vertical-align:-0.15em}
/* Sélecteur de dossier (déplacement) : explorateur navigable */
.drive-choix-fil{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin:8px 0 10px;font-size:12.5px;color:#5a6b7c}
.drive-choix-fil-seg{background:none;border:none;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--cyan,#01A4E2);cursor:pointer;padding:2px 4px;border-radius:6px}
.drive-choix-fil-seg:hover{background:#eaf6fd}
.drive-choix-liste{max-height:46vh;overflow:auto;border:1px solid var(--bordure,#dde5ec);border-radius:10px;background:#fbfdff}
.drive-choix-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid #eef2f6;padding:10px 12px;font-family:inherit;font-size:13.5px;color:var(--nuit);cursor:pointer}
.drive-choix-item:last-child{border-bottom:none}
.drive-choix-item:hover{background:#f4f9fd}
.drive-choix-item > span:first-child{font-size:17px;line-height:1;flex:none;display:inline-flex}
.drive-choix-nom{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.drive-choix-fleche{color:#8fa3b8;font-size:17px;flex:none}
/* ligne de tri du Drive */
.drive-tri-ligne{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:12.5px;color:#5a6b7c;white-space:nowrap}
.drive-tri{border:1px solid var(--bordure,#dde5ec);border-radius:9px;padding:6px 9px;font-family:inherit;font-size:16px;color:var(--nuit);background:#fff;cursor:pointer}
@media(max-width:640px){
  .drive-tri-ligne{margin-left:0;width:100%;justify-content:space-between}
  .drive-tri{flex:1;min-width:0;margin-left:8px}
}
/* Glisser-déplacer interne : élément attrapé + dossier cible mis en évidence */
.drive-drag-source{opacity:.45}
.drive-cible{outline:2px dashed var(--cyan,#01A4E2);outline-offset:-3px;background:#eaf6fd !important;border-radius:10px}
/* Tirer-pour-rafraîchir (mobile / app installée) */
.ptr-ind{position:fixed;top:-46px;left:50%;transform:translateX(-50%);width:38px;height:38px;border-radius:50%;background:#fff;box-shadow:0 6px 16px rgba(13,27,42,.22);display:flex;align-items:center;justify-content:center;font-size:19px;color:#01A4E2;z-index:70;opacity:0;pointer-events:none}
.ptr-ind.pret{color:#fff;background:#01A4E2}
/* Retour arrière : indicateur du balayage depuis le bord gauche */
.eb-ind{position:fixed;top:50%;left:0;transform:translateY(-50%) translateX(-40px);width:38px;height:38px;border-radius:50%;background:#fff;box-shadow:0 6px 16px rgba(13,27,42,.22);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#01A4E2;z-index:70;opacity:0;pointer-events:none;padding-bottom:2px}
.eb-ind.pret{color:#fff;background:#01A4E2}
.drive-liste{display:flex;flex-direction:column;gap:8px}
.drive-ligne{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f7f9fb;border:1px solid var(--bordure,#dde5ec);border-radius:12px;padding:11px 14px;flex-wrap:wrap}
.drive-ligne-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.drive-ligne-info b{font-size:13.5px}
.drive-ligne-info .hint{font-size:11.5px}
.drive-ligne-actions{display:flex;gap:6px;flex-shrink:0}
.drive-ligne-actions .btn{padding:7px 12px;font-size:12.5px}
.wd-secret{background:#eef8ff;border:1px solid #bfe4f7;border-radius:12px;padding:14px;margin:8px 0}
.wd-secret-code{font-family:ui-monospace,Menlo,monospace;font-size:20px;font-weight:800;letter-spacing:.08em;color:#0b6ea3;text-align:center;padding:10px 0}
@media(max-width:640px){
  .drive-jauge{flex-basis:120px}
  .drive-grille{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
  .drive-ligne-actions{width:100%}
}

/* ---- Drive UX (M60) : vue liste, favoris, retour, aperçu */
.drive-vue-toggle{display:inline-flex;border:1px solid var(--bordure,#dde5ec);border-radius:10px;overflow:hidden}
.drive-vue-toggle button{background:#fff;border:none;padding:8px 12px;font-size:16px;cursor:pointer;color:#5a6b7c;line-height:1}
.drive-vue-toggle button.actif{background:#01A4E2;color:#fff}
/* Drive : en-tête compact. Titre + recherche sur la même ligne, puis une
   barre d'outils qui COULISSE horizontalement (jamais de retour à la ligne),
   pour que la liste des fichiers remonte au maximum. */
.drive-tete{display:flex;align-items:center;gap:12px;margin:6px 0 8px;flex-wrap:wrap}
.drive-tete h2{font-size:24px;font-weight:800;flex:none}
.drive-tete .drive-recherche{flex:1;min-width:180px;margin:0}
.drive-outils{display:flex;gap:8px;margin:0 0 10px;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.drive-outils::-webkit-scrollbar{height:6px}
.drive-outils::-webkit-scrollbar-thumb{background:#cfdce8;border-radius:3px}
.drive-outils > *{flex:none}
.drive-favoris{margin:0 0 8px;padding:8px 12px;background:#f7fbfe;border:1px solid #dceefb;border-radius:12px}
/* fenêtre « Renommer les PDF » : tableau ancien nom → nom proposé */
.renlot-liste{max-height:52vh;overflow:auto;margin:6px 0 4px;border:1px solid var(--bordure,#dde5ec);border-radius:10px}
.renlot-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid #eef3f7}
.renlot-row:last-child{border-bottom:none}
.renlot-cb{flex:none;width:16px;height:16px}
.renlot-ancien{flex:1;min-width:0;font-size:12px;color:#5a6b7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.renlot-fleche{flex:none;color:#8da2b5}
.renlot-motif{flex:1.2;min-width:0;font-size:12px;color:#c0561d}
.renlot-nom{flex:1.3;min-width:0;border:1.5px solid var(--bordure,#dde5ec);border-radius:8px;padding:6px 9px;font-family:inherit;font-size:12.5px}
.renlot-apprendre-btn{flex:none;padding:6px 12px;font-size:12.5px}
.renlot-motif-court{flex:none;max-width:90px}
.renlot-oeil{flex:none;background:none;border:none;cursor:pointer;font-size:15px;line-height:1;padding:4px 6px;border-radius:7px}
.renlot-oeil:hover{background:#eaf6fd}
.renlot-progress{margin:6px 0}
@media(max-width:640px){.renlot-row{flex-wrap:wrap}.renlot-ancien,.renlot-motif,.renlot-nom{flex-basis:100%}}
.drive-favoris-titre{font-size:12px;font-weight:800;color:#0b6ea3;margin-bottom:6px}
.drive-favoris-vide{margin:0;font-size:12.5px;color:#5a6b7c}
.drive-favoris-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.drive-favori-tuile{position:relative;display:flex;align-items:center;background:#fff;border:1px solid #bfe4f7;border-radius:12px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.drive-favori-tuile:hover{border-color:#7fcdf0;box-shadow:0 6px 16px rgba(1,164,226,.12)}
.drive-favori-lien{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:none;border:none;font-family:inherit;padding:10px 4px 10px 12px;cursor:pointer;text-align:left}
.drive-favori-ico{font-size:18px;flex:none;line-height:1}
.drive-favori-nom{font-size:12.5px;font-weight:700;color:var(--nuit);line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.drive-favori-tuile:hover .drive-favori-nom{color:#0b6ea3}
.drive-favori-x{background:none;border:none;color:#8da2b5;cursor:pointer;font-size:12px;padding:10px 10px 10px 4px;flex:none}
.drive-favori-x:hover{color:#E5484D}
/* ligne unique : Retour + fil d'Ariane + bouton renommer + tri, tout sur un rang */
.drive-nav-ligne{margin:0 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.drive-nav-ligne .drive-fil{margin:0;flex:1;min-width:120px}
.drive-nav-ligne .drive-tri-ligne{margin-left:auto}
#btn-drive-renommer-tout{padding:6px 12px;font-size:12.5px}
.drive-retour{padding:6px 12px;font-size:12.5px;margin:0}
.drive-oeil{position:absolute;top:8px;left:8px;background:rgba(255,255,255,.92);border:1px solid var(--bordure,#dde5ec);border-radius:8px;width:28px;height:24px;font-size:13px;line-height:1;cursor:pointer;color:#5a6b7c;opacity:0;transition:opacity .12s}
.drive-item:hover .drive-oeil{opacity:1}
.drive-oeil:hover{background:#eaf6fd}
/* vue liste */
.drive-tableau{display:flex;flex-direction:column;border:1px solid var(--bordure,#dde5ec);border-radius:12px;overflow:hidden;background:#fff}
.drive-tr{display:grid;grid-template-columns:22px 34px 1fr 120px 150px auto;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid #eef2f6;cursor:pointer}
.drive-tr:last-child{border-bottom:none}
.drive-tr:hover{background:#f4f9fd}
.drive-td-ico{font-size:19px;text-align:center}
.drive-td-nom{font-size:13.5px;font-weight:700;color:var(--nuit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drive-td-taille,.drive-td-date{font-size:12px;color:#5a6b7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drive-td-actions{display:flex;gap:6px;align-items:center}
.drive-oeil-liste{background:none;border:1px solid var(--bordure,#dde5ec);border-radius:8px;width:30px;height:26px;font-size:13px;cursor:pointer;color:#5a6b7c}
.drive-oeil-liste:hover{background:#eaf6fd}
.drive-tr .drive-actions-btn{position:static;top:auto;right:auto}
/* aperçu rapide */
.drive-apercu-box{max-width:min(920px,94vw);width:auto}
.drive-apercu-corps{display:flex;align-items:center;justify-content:center;min-height:200px;max-height:70vh;overflow:auto;background:#0d1b2a;border-radius:12px;margin:6px 0 12px}
.drive-apercu-media{max-width:100%;max-height:70vh;display:block;border-radius:8px}
.drive-apercu-pdf{width:100%;height:70vh;border:none;border-radius:8px;background:#fff}
.drive-apercu-texte{width:100%;max-height:70vh;overflow:auto;margin:0;padding:16px;background:#fff;color:var(--nuit);font-family:ui-monospace,Menlo,monospace;font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-word;text-align:left}
.drive-apercu-audio,.drive-apercu-indispo{display:flex;flex-direction:column;align-items:center;gap:14px;padding:36px 20px;color:#fff;text-align:center}
.drive-apercu-audio-ico{font-size:52px}
.drive-apercu-indispo p{margin:0;color:#cdd8e2}.drive-apercu-indispo .hint{color:#8da2b5}
.drive-apercu-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}
@media(max-width:640px){
  /* 4 colonnes = 4 éléments visibles (case, icône, nom, actions) : taille et
     date sont masquées mais restent 2 enfants ; sans piste dédiée l'ancienne
     grille 3 colonnes renvoyait le bouton « ⋯ » à la ligne */
  .drive-tr{grid-template-columns:24px 24px 1fr auto;gap:8px;padding:10px 12px}
  .drive-td-taille,.drive-td-date{display:none}
  .drive-td-ico{font-size:20px}
  .drive-td-nom{text-align:left}
  .drive-apercu-pdf{height:60vh}
  /* Drive compact sur mobile : recherche pleine largeur sous le titre, barre
     d'outils réduite aux icônes qui coulisse (le libellé disparaît) */
  .drive-tete .drive-recherche{flex-basis:100%;min-width:0}
  .btn-drive-outil{padding:9px 11px;font-size:15px}
  .btn-drive-outil .btn-txt,#btn-drive-upload .btn-txt{display:none}
  .drive-favoris-grille{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}

/* ============================================================
   Drive « façon bureau »
   Un bureau avec ses icônes, une fenêtre d'explorateur qui s'ouvre
   au double-clic, un dock. Le mode liste d'origine reste disponible
   depuis le dock : les deux cohabitent, rien n'est perdu.
   ============================================================ */
#section-drive{position:relative}
/* Le bureau respire mal dans la colonne de 920 px des autres écrans : on
   élargit la page uniquement quand le Drive est affiché en mode bureau. */
body.drive-bureau-ouvert .page{max-width:1400px;padding-bottom:16px}
/* le bureau descend jusqu'en bas de la fenêtre : il restait une bande vide
   sous lui, héritée du rembourrage de page des autres écrans */
body.drive-bureau-ouvert .drive-bureau{min-height:calc(100vh - 107px)}
.drive-bureau{position:relative;min-height:calc(100vh - 210px);border-radius:18px;overflow:hidden;
  background:linear-gradient(160deg,#0d1b2a 0%,#123049 45%,#0b6ea3 100%);
  box-shadow:inset 0 0 90px rgba(0,0,0,.35);padding:20px}
/* voile discret pour détacher les icônes du dégradé */
.drive-bureau::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 70% 15%,rgba(1,164,226,.20),transparent 60%)}

.bureau-icones{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,104px));gap:10px;align-content:start}
.bureau-icone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid transparent;
  border-radius:12px;background:none;font-family:inherit;cursor:pointer;text-align:center;transition:background .12s,border-color .12s}
.bureau-icone:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}
.bureau-icone:focus-visible{outline:2px solid #7fcdf0;outline-offset:2px}
.bureau-icone.actif{background:rgba(1,164,226,.30);border-color:rgba(127,205,240,.55)}
.bureau-ico{font-size:38px;line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.35))}
.bureau-ico svg{width:42px;height:42px;display:block}
.bureau-nom{font-size:12px;font-weight:600;color:#fff;line-height:1.25;word-break:break-word;
  text-shadow:0 1px 3px rgba(0,0,0,.6);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bureau-sous{font-size:10.5px;color:#cfe6f5;text-shadow:0 1px 2px rgba(0,0,0,.5)}

/* Corbeille : en bas à droite, comme sur un vrai bureau */
.bureau-corbeille{position:absolute;right:20px;bottom:96px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:10px 6px;width:104px;border:1px solid transparent;border-radius:12px;background:none;font-family:inherit;cursor:pointer}
.bureau-corbeille:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}
.bureau-corbeille:focus-visible{outline:2px solid #7fcdf0;outline-offset:2px}

/* Vignette de stockage, déplaçable, position mémorisée */
.bureau-widget{position:absolute;top:20px;right:20px;z-index:3;width:212px;padding:12px 14px 14px;border-radius:14px;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);color:#fff}
.bureau-widget-poignee{font-size:12px;font-weight:800;letter-spacing:.2px;cursor:grab;user-select:none;margin-bottom:8px}
.bureau-widget-poignee:active{cursor:grabbing}
.bureau-widget-pct{font-size:26px;font-weight:800;line-height:1;margin-bottom:8px}
.bureau-widget .drive-jauge{background:rgba(255,255,255,.25)}
.bureau-widget .hint{color:#dbeefb;font-size:11.5px;margin-top:7px}

/* Dock */
.bureau-dock{position:absolute;left:50%;transform:translateX(-50%);bottom:16px;z-index:4;display:flex;gap:6px;padding:8px 10px;
  border-radius:18px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(14px);
  max-width:calc(100% - 40px);overflow-x:auto}
.dock-btn{flex:none;width:50px;height:50px;border:none;border-radius:13px;background:rgba(255,255,255,.16);color:#fff;font-size:22px;
  cursor:pointer;display:grid;place-items:center;position:relative;transition:transform .12s,background .12s}
.dock-btn:hover{transform:translateY(-4px);background:rgba(255,255,255,.30)}
.dock-btn:focus-visible{outline:2px solid #7fcdf0;outline-offset:2px}
.dock-pastille{position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#FFBD59;
  color:#0D1B2A;font-size:10px;font-weight:800;display:grid;place-items:center}

/* Fenêtre d'explorateur : posée par-dessus le bureau */
/* La fenêtre est posée un peu plus bas et à droite : on voit ainsi les icônes
   et les vignettes du bureau au-dessus d'elle, comme sur un vrai bureau, au
   lieu d'une fenêtre centrée qui masquait tout. */
.drive-explorateur{position:absolute;inset:0;z-index:5;display:flex;align-items:flex-start;justify-content:center;
  padding:74px 26px 26px}
.expl-fenetre{display:flex;flex-direction:column;width:min(1000px,100%);height:min(600px,100%);border-radius:14px;overflow:hidden;
  background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.45);border:1px solid rgba(13,27,42,.18)}
.expl-fenetre.plein{width:100%;height:100%}
.expl-barre{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#eef2f6;border-bottom:1px solid var(--bordure,#dde5ec)}
.expl-feux{display:flex;gap:7px;flex:none}
.expl-feu{width:12px;height:12px;border-radius:50%;border:none;padding:0;cursor:default}
.expl-feu-rouge{background:#ff5f57;cursor:pointer}
.expl-feu-orange{background:#febc2e;cursor:pointer}
.expl-feu-vert{background:#28c840;cursor:pointer}
/* vignette de la fenêtre réduite, à droite du dock */
.dock-reduit{flex:none;display:flex;align-items:center;gap:6px;height:50px;padding:0 12px;border:none;border-radius:13px;
  background:rgba(255,255,255,.28);color:#fff;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;max-width:190px}
.dock-reduit:hover{background:rgba(255,255,255,.40)}
.dock-reduit span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dock-sep{flex:none;width:1px;height:34px;background:rgba(255,255,255,.30);margin:8px 2px}
.expl-feu:focus-visible{outline:2px solid #0b6ea3;outline-offset:2px}
.expl-titre{flex:1;text-align:center;font-size:13px;font-weight:700;color:var(--nuit,#0d1b2a);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:46px}
/* Barre d'outils : boutons à l'icône, compacts, tout tient sur une ligne.
   L'ancienne version alignait des boutons à libellé et débordait. */
.expl-outils{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--bordure,#dde5ec);background:#f7fafc}
.expl-outils > *{flex:none}
.expl-o{width:30px;height:28px;border:1px solid var(--bordure,#dde5ec);border-radius:7px;background:#fff;font-size:14px;
  line-height:1;cursor:pointer;display:grid;place-items:center;color:var(--nuit,#0d1b2a);padding:0}
.expl-o:hover{background:#eaf6fd;border-color:#bfe4f7}
.expl-o:focus-visible{outline:2px solid #0b6ea3;outline-offset:1px}
.expl-o-nav{font-size:18px;font-weight:700}
.expl-sep{width:1px;height:20px;background:var(--bordure,#dde5ec);margin:0 3px}
.expl-groupe{display:flex;border:1px solid var(--bordure,#dde5ec);border-radius:7px;overflow:hidden}
.expl-groupe button{width:30px;height:28px;border:none;background:#fff;font-size:13px;cursor:pointer;color:#5a6b7c;padding:0}
.expl-groupe button.actif{background:#01A4E2;color:#fff}
.expl-tri{display:flex;align-items:center;gap:5px;font-size:12px;color:#5a6b7c}
.expl-tri-lib{font-weight:600}
/* sélecteurs à deux classes : une règle globale « input[type=search], select
   { width:100% } » a une spécificité supérieure à une classe seule et étirait
   la recherche sur toute la barre */
.expl-outils .expl-tri .drive-tri{width:auto;max-width:150px;border:1px solid var(--bordure,#dde5ec);border-radius:7px;
  padding:5px 7px;font-family:inherit;font-size:12px;background:#fff}
.expl-outils .expl-recherche{margin-left:auto;width:170px;flex:none;border:1px solid var(--bordure,#dde5ec);border-radius:7px;
  padding:6px 10px;font-family:inherit;font-size:12.5px;background:#fff}

/* Corps : colonne latérale des favoris + contenu, comme le Finder */
.expl-zone{flex:1;display:flex;min-height:0}
.expl-cote{width:186px;flex:none;border-right:1px solid var(--bordure,#dde5ec);background:#f7fafc;overflow-y:auto;padding:10px 8px}
.expl-cote .drive-favoris{margin:0;padding:0;background:none;border:none}
.expl-cote .drive-favoris-titre{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#8da2b5;margin-bottom:6px;padding:0 4px}
.expl-cote .drive-favoris-grille{grid-template-columns:1fr;gap:2px}
.expl-cote .drive-favori-tuile{border:none;background:none;border-radius:7px}
.expl-cote .drive-favori-tuile:hover{background:#eaf6fd;box-shadow:none}
.expl-cote .drive-favori-lien{padding:7px 4px 7px 8px;gap:7px}
.expl-cote .drive-favori-ico{font-size:15px}
.expl-cote .drive-favori-ico svg{width:16px;height:16px}
.expl-cote .drive-favori-nom{font-size:12.5px;-webkit-line-clamp:1;font-weight:600}
.expl-cote .drive-favori-x{padding:7px 8px 7px 2px}
.expl-cote .drive-favoris-vide{font-size:11.5px;padding:0 4px;line-height:1.5}
.expl-corps{flex:1;overflow-y:auto;padding:14px;min-width:0}
.expl-corps .drive-zone{margin-top:12px}

/* Barre d'état : le chemin y descend, il mangeait deux lignes en haut */
.expl-etat{display:flex;align-items:center;gap:10px;padding:6px 12px;border-top:1px solid var(--bordure,#dde5ec);
  background:#f7fafc;font-size:11.5px;color:#5a6b7c;min-height:30px}
.expl-etat .drive-fil{flex:1;margin:0;font-size:11.5px;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}
.expl-etat .drive-fil-item{font-size:11.5px;padding:2px 4px;font-weight:600}
.expl-compte{flex:none;font-weight:600}

/* Horloge du bureau */
.bureau-horloge{top:186px;width:212px;text-align:center}
.horloge-heure{font-size:34px;font-weight:800;line-height:1;letter-spacing:1px;font-variant-numeric:tabular-nums}
.horloge-date{font-size:11.5px;color:#dbeefb;margin-top:5px;text-transform:capitalize}

/* Icônes du bureau librement positionnables */
.bureau-icones{position:absolute;inset:20px;z-index:1}
.bureau-icone{position:absolute;width:104px}
.bureau-icone.deplace{opacity:.75;z-index:20;cursor:grabbing}
.bureau-corbeille.survol,.bureau-icone.survol{background:rgba(255,255,255,.28);border-color:#7fcdf0}

@media(max-width:760px){
  /* Téléphone : bureau en grille d'icônes, dock collé en bas, explorateur en
     plein écran. Le geste change, l'interface reste la même partout. */
  .drive-bureau{min-height:calc(100vh - 150px);border-radius:14px;padding:14px 12px 96px}
  .bureau-icones{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
  .bureau-icone{padding:8px 4px}
  .bureau-ico{font-size:34px}
  .bureau-ico svg{width:38px;height:38px}
  .bureau-nom{font-size:11.5px}
  .bureau-corbeille{right:12px;bottom:88px;width:88px}
  /* Téléphone : les vignettes se rangent en haut plutôt que de flotter, et
     les icônes reprennent une grille (pas de positionnement libre au doigt) */
  .bureau-widget{position:static;width:auto;margin:0 0 10px}
  .bureau-horloge{text-align:left}
  .horloge-heure{font-size:28px}
  .bureau-icones{position:static;inset:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}
  .bureau-icone{position:static;width:auto}
  .expl-cote{display:none}
  .expl-outils{overflow-x:auto}
  .expl-outils .expl-recherche{width:110px}
  .expl-tri-lib{display:none}
  .bureau-dock{bottom:12px;gap:5px;padding:7px 8px}
  .dock-btn{width:44px;height:44px;font-size:19px}
  /* vrai plein écran : en absolu, la fenêtre restait dans les marges de la
     page. La barre de titre garde le bouton de fermeture, et Échap fonctionne. */
  .drive-explorateur{position:fixed;inset:0;z-index:60;padding:0}
  .expl-fenetre{width:100%;height:100%;border-radius:0;border:none}
  .expl-outils .drive-recherche{width:130px}
  .expl-outils .btn-txt{display:none}
  .expl-outils .drive-tri-ligne .btn-txt{display:none}
}

/* Téléversement Drive : zone de dépôt visible + progression (M62) */
.drive-zone{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 12px;padding:14px 16px;
  border:2px dashed #cfdce8;border-radius:12px;background:#fbfdff;cursor:pointer;
  transition:border-color .15s,background .15s;text-align:center}
.drive-zone:hover{border-color:var(--cyan-texte);background:#f4fbff}
.drive-zone:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.drive-zone.over{border-color:var(--cyan-texte);background:#eaf6fd}
.drive-zone-ico{font-size:20px;line-height:1}
.drive-zone-txt{font-size:13px;color:#5a6b7c}
.drive-zone-txt strong{color:var(--cyan-texte);font-weight:600}
.drive-progress{margin:0 0 12px;padding:12px 14px;border:1px solid var(--bordure,#dde5ec);border-radius:12px;background:#fff}
.drive-progress-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
#drive-progress-txt{font-size:13px;font-weight:600;color:#0D1B2A}
.drive-progress-piste{height:6px;border-radius:99px;background:#eef2f6;overflow:hidden}
.drive-progress-barre{height:100%;width:0;border-radius:99px;background:var(--cyan);transition:width .2s}
.drive-progress-fichier{margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){
  .drive-zone{flex-direction:column;gap:6px;padding:12px}
  .drive-zone-txt{font-size:12.5px}
  .drive-progress-tete{flex-wrap:wrap}
}

/* Récapitulatif d'un téléversement partiel (M63) */
.drive-recap-box{max-width:760px}
.drive-recap-avis{padding:12px 14px;border-radius:10px;background:#fff8ec;border:1px solid #ffd899;
  color:#0D1B2A;font-size:13px;line-height:1.5;margin-bottom:12px}
.drive-recap-avis strong{color:#b06f00}
.drive-recap-ok{padding:10px 14px;border-radius:10px;background:#f0fbf3;border:1px solid #bfe6c8;
  color:#0D1B2A;font-size:13px;margin-bottom:12px}
.drive-recap-liste{max-height:46vh;overflow:auto;border:1px solid var(--bordure,#dde5ec);border-radius:10px;background:#fbfdff}
.drive-recap-ligne{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 12px;border-bottom:1px solid #eef2f6;font-size:12.5px}
.drive-recap-ligne:last-child{border-bottom:none}
.drive-recap-nom{color:#0D1B2A;word-break:break-all}
.drive-recap-motif{color:#8a6d3b;white-space:nowrap}
.drive-recap-groupe{padding:8px 12px;background:#f4f9fd;font-weight:600;font-size:12.5px;color:#0D1B2A;
  border-bottom:1px solid #e3ecf5;position:sticky;top:0}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media(max-width:640px){
  .drive-recap-ligne{grid-template-columns:1fr}
  .drive-recap-motif{white-space:normal}
}
.drive-zone-note{margin:-6px 0 12px;font-size:12px;line-height:1.5}
