/* ===========================================================================
   CRM AGENT — Design system (refonte visuelle, juin 2026)
   Un seul fichier, propre, sans couches empilées ni !important superflus.
   Bleu clair #2F6BFF · sidebar rétractable · cartes aérées · plat & lisible.
   Couvre l'ensemble des composants du CRM (contacts, biens, todo, calendrier,
   gantt, messagerie, IA, fiche contact, recrutement, admin).
   =========================================================================== */

:root{
  /* Couleurs */
  --blue:#2F6BFF; --blue2:#1D4ED8; --blue-50:#EEF3FF; --blue-100:#DCE7FF;
  --ink:#0F172A; --text:#1F2937; --muted:#6B7280; --faint:#9AA4B2;
  --bg:#F6F8FB; --panel:#FFFFFF; --surface-2:#F8FAFC; --surface-3:#F1F5F9;
  --soft:#EEF3FF; --soft2:#F8FAFC;
  --border:#E7EBF1; --border-strong:#D6DCE6;
  --danger:#DC2626; --warning:#B45309; --ok:#0E9F6E;
  /* Ombres discrètes */
  --shadow:0 10px 30px rgba(15,23,42,.06); --shadow2:0 1px 2px rgba(15,23,42,.04);
  /* Formes */
  --radius:14px; --radius-lg:16px; --pill:999px; --sidebar:264px;
  --ring:0 0 0 4px rgba(47,107,255,.14);
  /* Couleurs de chaleur contact (conservées) */
  --c-froid-ac:#7C93AC; --c-tiede-ac:#C9A24B; --c-chaud-ac:#C2703D;
  --c-tres-ac:#A33B34; --c-client-ac:#059669; --c-mort-ac:#94A3B8;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:14.5px;line-height:1.5;letter-spacing:-.005em}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(22px,2vw,28px);line-height:1.1;letter-spacing:-.025em;margin-bottom:8px;color:var(--ink);font-weight:650}
h2{font-size:17px;letter-spacing:-.015em;margin-bottom:12px;color:var(--ink);font-weight:620}
h3{font-size:14px;margin-bottom:7px;color:var(--ink);font-weight:620}
.muted{color:var(--muted);font-size:13px}
.hidden{display:none !important}
.eyebrow{display:inline-flex;background:var(--blue-50);color:var(--blue2);font-weight:700;border-radius:var(--pill);
  padding:3px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.density-hint,.quick-admin-note{color:var(--muted);font-size:13px;margin-top:4px}

/* ---------- Sidebar / shell ---------- */
.topbar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar);z-index:50;display:flex;flex-direction:column;
  gap:4px;padding:16px 12px;background:var(--panel);border-right:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:11px;min-width:0;padding:6px 8px 14px;margin-bottom:4px;border-bottom:1px solid var(--border)}
.brand-logo{width:40px;height:40px;flex:0 0 auto;border-radius:10px;object-fit:cover;background:var(--ink)}
.brand-mark,.logo-big{display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:800;border-radius:10px}
.brand-mark{width:40px;height:40px;flex:0 0 auto}
.brand strong{display:block;line-height:1.1;font-size:15px;color:var(--ink);font-weight:650}
.brand small{display:block;color:var(--muted);font-size:12px;margin-top:1px}
.sidebar-toggle{align-self:flex-end;width:30px;height:30px;min-height:30px;display:grid;place-items:center;flex:0 0 auto;
  border:1px solid var(--border);background:var(--panel);border-radius:8px;color:var(--muted);font-weight:700;cursor:pointer}
.sidebar-toggle:hover{background:var(--surface-3);color:var(--ink)}
.nav{display:flex;flex-direction:column;gap:2px;overflow:auto;padding:2px}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;color:#475569;font-weight:550;
  font-size:13.5px;white-space:nowrap}
.nav a:hover,.nav a:focus{background:var(--surface-3);color:var(--ink)}
.nav a.active{background:var(--blue-50);color:var(--blue2);font-weight:650}
.nav .danger{margin-top:6px;color:var(--danger)}
.nav .danger:hover{background:#FDECEC}
.nav-section{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);padding:12px 10px 4px}
.nav-section:first-child{padding-top:2px}
/* CTA principal (Nouveau contact / candidat / bien) — bouton bleu plein */
.nav a.nav-cta{display:flex;align-items:center;gap:11px;justify-content:center;background:var(--blue);color:#fff;font-weight:650;font-size:13.5px;padding:10px 11px;border-radius:11px;margin:4px 2px 6px}
.nav a.nav-cta:hover{background:var(--blue2);color:#fff}
.nav a.nav-cta .ic{width:18px;height:18px}
body.sidebar-collapsed .nav a.nav-cta{justify-content:center;padding:11px 6px}

.container{max-width:1500px;margin-left:var(--sidebar);padding:24px 30px 60px}
.footer{max-width:1500px;margin-left:var(--sidebar);padding:10px 30px 28px;color:var(--faint);font-size:12px;min-height:8px}

/* Sidebar réduite : icônes/abréviations via data-short */
body.sidebar-collapsed{--sidebar:72px}
body.sidebar-collapsed .topbar{padding:16px 8px}
body.sidebar-collapsed .brand{justify-content:center;padding:6px 0 10px}
body.sidebar-collapsed .brand span:not(.brand-mark):not(.brand-logo),
body.sidebar-collapsed .brand small,body.sidebar-collapsed .brand strong{display:none}
body.sidebar-collapsed .sidebar-toggle{align-self:center}
body.sidebar-collapsed .nav-section{display:none}
.nav a .ic{width:19px;height:19px;flex:0 0 auto}
body.sidebar-collapsed .nav a{justify-content:center;padding:11px 6px}
body.sidebar-collapsed .nav a .lbl{display:none}

/* ---------- Hero / page-title ---------- */
.hero,.page-title,.detail-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}
.hero{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px}
.compact-hero{padding:0;border:0;background:transparent;margin-bottom:16px}
.compact-hero h1{font-size:clamp(22px,2vw,27px);margin:0}
.clean-title h1{margin-bottom:0}
.page-title p,.hero p,.hero.compact-hero p,.page-title.clean-title p{display:none}
.hero-actions,.top-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.wide-actions{min-width:0}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border-strong);
  background:var(--panel);color:var(--ink);border-radius:10px;padding:8px 13px;font-weight:600;font-size:13.5px;
  cursor:pointer;min-height:38px;transition:background .12s,border-color .12s}
.btn:hover{background:var(--surface-3);border-color:#C7CFDB}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue2);border-color:var(--blue2)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{background:var(--surface-3)}
.btn.small{padding:5px 9px;min-height:31px;font-size:12.5px;border-radius:9px}
.btn.wide{width:100%}
.btn.success{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.success:hover{filter:brightness(.96)}
.btn.ai-btn,.btn.ai{background:#EFEDFB;border-color:#DfD9F6;color:#5B4FD6;font-weight:650}
.btn.ai-btn:hover{background:#E7E3F8}
.btn.recording{background:var(--danger);color:#fff;border-color:var(--danger);box-shadow:0 0 0 4px rgba(220,38,38,.12)}
.btn.danger{color:var(--danger);border-color:#F3C9C9}
.btn.danger:hover{background:#FDECEC}
.mic-btn{margin:0 0 8px}

/* ---------- Flash ---------- */
.flash{padding:11px 14px;border-radius:12px;background:#E7F8F0;border:1px solid #BBE9D4;color:#0B7A52;margin-bottom:16px;font-weight:600}
.flash.error{background:#FDECEC;border-color:#F5C6C6;color:#B42318}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpis>a,.kpis>div{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:block}
.kpis>a:hover{border-color:var(--blue-100);background:var(--blue-50)}
.kpis span{display:block;color:var(--muted);font-size:12.5px;font-weight:550}
.kpis strong{display:block;font-size:26px;line-height:1;margin-top:6px;letter-spacing:-.02em;color:var(--ink);font-weight:650}

/* ---------- Panels / grid ---------- */
.grid{display:grid;gap:16px}
.grid.two{grid-template-columns:1fr 1fr}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:16px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
/* §14 — Fiche contact : historique repliable + modales natives <dialog> */
details.history-collapsible>summary{cursor:pointer;list-style:none;justify-content:flex-start;gap:8px;margin-bottom:0}
details.history-collapsible>summary::-webkit-details-marker{display:none}
details.history-collapsible>summary::before{content:"▸";color:var(--muted);font-weight:700}
details.history-collapsible[open]>summary::before{content:"▾"}
details.history-collapsible>summary h2{margin:0}
details.history-collapsible[open]>summary{margin-bottom:12px}
dialog.crm-modal{width:min(640px,94vw);max-height:88vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;background:var(--panel);color:var(--text);box-shadow:0 24px 60px rgba(15,23,42,.28)}
dialog.crm-modal::backdrop{background:rgba(15,23,42,.45)}
dialog.crm-modal textarea{width:100%;box-sizing:border-box}
dialog.crm-modal .panel-head{margin-bottom:10px}
/* §5 — Miniature photo principale dans la liste des biens (image de fond + badges au-dessus) */
.bien-card .thumb{position:relative;overflow:hidden}
.bien-card .thumb .st,.bien-card .thumb .ph{position:relative;z-index:1}
/* §12 — Zone de glisser-déposer multi-fichiers par catégorie */
.bien-dropzone{border:1.5px dashed var(--border-strong);border-radius:10px;padding:12px;text-align:center;background:var(--surface-2)}
.bien-dropzone.drag{border-color:#2F6BFF;background:#EEF4FF}
.bien-dropzone.uploading{opacity:.7}
.bien-dropzone .dz-msg{font-size:12.5px;color:var(--muted);margin-bottom:6px}
.bien-dropzone .dz-progress{font-size:12px;color:var(--muted);margin-top:6px;text-align:left}
/* §8 — Lightbox photo (aperçu plein écran ; clic = preview, jamais téléchargement) */
.lightbox-overlay{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.88);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox-overlay img{max-width:96vw;max-height:92vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox-close{position:fixed;top:16px;right:20px;background:rgba(255,255,255,.18);color:#fff;border:0;border-radius:50%;width:40px;height:40px;font-size:18px;cursor:pointer}
.folder>summary .fcat-ic{font-size:13px}
.panel-head a{color:var(--blue2);font-weight:600;font-size:13px}
.panel-head .muted{font-size:12px}

/* ---------- Filtres ---------- */
.filters{position:sticky;top:14px;z-index:30;display:grid;
  grid-template-columns:minmax(260px,1.4fr) repeat(4,minmax(135px,1fr)) auto auto;gap:9px;margin-bottom:16px;
  background:var(--panel);padding:11px;border:1px solid var(--border);border-radius:var(--radius-lg)}
.filters input,.filters select{min-width:0}
.compact-filters{grid-template-columns:220px 180px auto;max-width:680px}
.filter-reset{white-space:nowrap}
.small-input{min-width:0}

/* ---------- Champs de formulaire ---------- */
.filters input,.filters select,.form input,.form select,.form textarea,
.quick-done input,.quick-done select{width:100%;min-height:38px;border:1px solid var(--border-strong);
  border-radius:10px;padding:8px 11px;background:var(--panel);color:var(--text);font-size:13.5px}
.form input:focus,.form select:focus,.form textarea:focus,.filters input:focus,.filters select:focus,
.note-area:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:var(--ring)}
::placeholder{color:var(--faint)}
.form{display:grid;gap:13px}
.form label{display:grid;gap:6px;color:#374151;font-weight:600;font-size:12.5px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form.compact textarea{min-height:104px}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.note-area{width:100%;min-height:380px;resize:vertical;border:1px solid var(--border-strong);border-radius:var(--radius);
  padding:13px;font:inherit;font-size:15px;line-height:1.5;background:var(--panel)}
.save-state{font-size:12px;font-weight:600;color:var(--muted);align-self:center}
.save-state.saving{color:var(--warning)} .save-state.saved{color:var(--ok)} .save-state.error{color:var(--danger)}
.contact-autosave-state{margin-right:auto}
.previous-note{margin-top:12px;padding:13px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}
.toggle-line{display:flex;gap:10px;align-items:center;font-weight:600;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:11px}
.form-row{display:grid;gap:6px;margin-bottom:13px}
.form-row>label{font-size:12.5px;font-weight:600;color:var(--muted)}
.form-row .src{font-size:11px;color:var(--faint);font-weight:600;font-family:ui-monospace,Menlo,monospace;word-break:break-word}

/* ---------- Tables ---------- */
.desktop-table-wrap{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:auto}
.desktop-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.desktop-table th{position:sticky;top:0;z-index:5;background:var(--surface-2);color:var(--muted);font-size:11px;
  font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:left;border-bottom:1px solid var(--border);
  padding:10px 13px;white-space:nowrap}
.desktop-table td{border-bottom:1px solid var(--border);padding:10px 13px;vertical-align:middle}
.desktop-table tr:hover td{background:var(--surface-2)}
.desktop-table tr:last-child td{border-bottom:0}
.col-name{min-width:230px} .col-wide{min-width:180px} .col-actions{min-width:180px}
.name-stack{display:grid;gap:1px}
.name-stack a{font-weight:600;color:var(--ink)} .name-stack small{color:var(--muted)}
.cell-actions{display:flex;gap:6px;flex-wrap:wrap}
.table-link{font-weight:600;color:var(--blue2)}
.table-sort{color:inherit;display:inline-flex;align-items:center;gap:3px;cursor:pointer;font:inherit}
.table-sort:hover{color:var(--blue)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 8px}
th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.kbd{display:inline-flex;border:1px solid var(--border);background:var(--panel);padding:2px 6px;border-radius:6px;font-size:11px;color:var(--muted);font-weight:700}

/* ---------- Cartes (listes mobiles + diverses) ---------- */
.cards-list,.todo-list,.mini-list,.activity-timeline,.template-list{display:grid;gap:12px}
.mobile-cards{display:none}
.mini-card,.contact-card,.todo-card,.template-card,.activity-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:14px}
.mini-card{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mini-title,.contact-name{font-weight:650;color:var(--ink)}
.mini-card p,.contact-card p,.todo-card p{margin:4px 0;color:var(--muted)}
.quick-actions,.card-actions,.detail-actions,.note-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--blue-50);color:var(--blue2);font-weight:700}
.stat-bars{display:grid;gap:9px}
.stat-bars div{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}
.stat-bars span{color:#475569}
.activity-row{display:grid;gap:2px}
.activity-row span,.activity-row small{color:var(--muted);font-size:13px}
.contact-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
.card-main{display:flex;gap:12px;min-width:0}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--blue-50);color:var(--blue2);display:grid;place-items:center;font-weight:650;flex:0 0 auto}
.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.card-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.card-side small{color:var(--muted)}
.contact-card .card-actions{grid-column:1/-1;border-top:1px solid var(--border);padding-top:12px}

/* ---------- Badges ---------- */
.meta span,.bad{display:inline-flex;align-items:center;gap:5px;border-radius:var(--pill);padding:4px 9px;background:var(--surface-3);color:#475569;font-size:12px;font-weight:600}
.bad.hot{background:#FDECEC;color:#BE123C} .bad.warm{background:#FEF6E7;color:#B45309}
.bad.cold{background:#E0F2FE;color:#0369A1} .bad.neutral{background:var(--surface-3);color:#475569}
.bad.danger,.bad.priority-high{background:#FDECEC;color:#B42318}
.bad.ok,.bad.success{background:#E7F8F0;color:#0B7A52}
.bad.info{background:var(--blue-50);color:var(--blue2)}
.bad.warn{background:#FEF6E7;color:#B45309}
.bad.purple{background:#EFEDFB;color:#5B4FD6}
.bad.dot::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

/* ---------- Pagination / onglets ---------- */
.pagination{display:flex;gap:8px;justify-content:center;margin:18px}
.pagination a{padding:8px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--border);font-weight:600}
.pagination a.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px}
.tabs a{background:var(--panel);border:1px solid var(--border);padding:8px 13px;border-radius:var(--pill);font-weight:600;white-space:nowrap}
.tabs a.active{background:var(--blue);border-color:var(--blue);color:#fff}
.due{display:inline-flex;background:#E7F8F0;color:#0B7A52;padding:6px 10px;border-radius:var(--pill);font-weight:600}
.due.late{background:#FDECEC;color:#B42318}
.todo-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.todo-action{font-weight:600;color:#475569 !important}

/* ---------- Quick-done ---------- */
.quick-done{display:grid;grid-template-columns:1fr 1fr 1fr 1.5fr auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.quick-done.inline-done{grid-template-columns:110px 130px 140px 130px minmax(120px,1fr) minmax(120px,1fr) auto;margin-top:0;padding-top:8px}
.quick-done.mobile-done{grid-template-columns:1fr 1fr;margin-top:12px}
.inline-form{display:inline-flex;margin:0}

/* ---------- Détail (fiche) ---------- */
.detail-header{position:sticky;top:0;z-index:35;background:rgba(246,248,251,.9);backdrop-filter:blur(10px);padding:8px 0 12px}
.detail-header h1{margin-bottom:4px}
.detail-actions{justify-content:flex-end}
.back{display:inline-block;color:var(--blue2);font-weight:600;margin-bottom:9px}
.info-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}
.info-grid div{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:13px;min-width:0}
.info-grid span{display:block;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.info-grid strong{display:block;margin-top:5px;word-break:break-word;color:var(--ink)}
.info-grid .social-cell{grid-column:span 2}
.social-links{display:flex;gap:8px;flex-wrap:wrap}
.social.linkedin{border-color:#BFDBFE;color:#1D4ED8}.social.facebook{border-color:#BFDBFE;color:#2563EB}.social.instagram{border-color:#FED7AA;color:#C2410C}
.detail-grid{grid-template-columns:minmax(360px,.85fr) minmax(500px,1.15fr)}

/* ---------- Login ---------- */
.login-card{max-width:440px;margin:48px auto;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:var(--shadow)}
.logo-big{width:58px;height:58px;margin-bottom:16px;font-size:22px}

/* ---------- Tâches (Todo) ---------- */
.task-list{display:grid;gap:9px}
.task-row{display:grid;grid-template-columns:minmax(420px,1fr) 170px auto;gap:12px;align-items:center;padding:13px;
  border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius);background:var(--panel)}
.task-row.u4,.task-row.late,.task-row.priority-urgente{border-left-color:var(--danger);background:#FEF7F7}
.task-row.u3,.task-row.today,.task-row.priority-haute{border-left-color:var(--warning);background:#FEFBF4}
.task-row.u2{border-left-color:var(--blue)}
.task-row.u1{border-left-color:var(--border-strong)}
.task-row.status-fait{display:none}
.task-main{display:flex;gap:11px;align-items:flex-start}
.task-title{font-weight:650;color:var(--text);font-size:14px}
.task-main p{margin:2px 0;color:var(--muted);font-size:12px} .task-main small{display:block;color:var(--muted);margin-top:3px}
.dependency{color:#7C3AED !important}
.task-check{width:32px;display:flex;justify-content:center}
.check-btn,.check-done{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--blue);font-weight:700;cursor:pointer}
.check-btn:hover{background:var(--blue);color:#fff}
.check-done{display:grid;place-items:center;background:#DDF5E8;color:#137a52;border-color:#BBE9D4}
.task-meta{display:grid;gap:6px;justify-items:start}
.task-date{display:inline-flex;padding:5px 9px;border-radius:var(--pill);background:var(--blue-50);color:var(--blue2);font-size:11px;font-weight:600}
.task-date.late{background:#FDECEC;color:#B42318} .task-date.today{background:#FEF6E7;color:#B45309}
.task-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.task-actions .inline-form{display:inline-flex}
.compact-tasks .task-row{grid-template-columns:minmax(360px,1fr) 160px auto}
.linked-contact{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.task-editor{max-width:1180px}
.task-title-input input{font-size:22px;font-weight:650;min-height:50px}
.task-contact-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}
.task-contact-summary span{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.task-contact-name{display:block;font-size:19px;font-weight:700;color:var(--text);margin-top:2px}
.task-contact-summary small{display:block;color:var(--muted);margin-top:2px}
.task-contact-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.task-contact-actions .btn{white-space:nowrap}
.task-main-fields{grid-template-columns:1fr 190px 190px}
.task-commercial-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.task-contact-status{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px;margin:8px 0 12px}
.textarea-with-tools{display:grid;gap:8px}
.textarea-with-tools .btn{justify-self:start}
.task-history-readonly{background:var(--surface-2)}
.task-history-readonly summary{font-weight:650;color:#475569;cursor:pointer}
.readonly-history{max-height:300px;overflow:auto;margin-top:8px}

/* ---------- Sections repliables / sticky ---------- */
.advanced-section,.compact-advanced{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:12px}
.advanced-section summary,.compact-advanced summary{cursor:pointer;font-weight:650;color:var(--ink);list-style:none}
.advanced-section summary::-webkit-details-marker{display:none}
.advanced-section summary::after{content:'⌄';float:right;color:var(--muted)}
.advanced-section[open] summary{margin-bottom:12px}
.advanced-section[open] summary::after{content:'⌃'}
.contact-full-edit .advanced-section{background:var(--panel)}
.sticky-actions{position:sticky;bottom:10px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:12px;padding:10px;z-index:20}
.share-box{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--surface-2)}
.share-box h3{margin:0 0 10px}
.share-grid,.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px}
.share-grid label,.permission-grid label{display:flex;gap:8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:11px;background:var(--panel);font-weight:600;color:var(--text)}

/* ---------- Gantt ---------- */
.gantt-panel{overflow-x:auto}
.gantt-head{display:grid;grid-template-columns:300px minmax(720px,1fr);gap:12px;padding:0 0 10px;color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.04em}
.gantt-scale{position:relative;height:24px;margin-left:312px;min-width:720px;border-bottom:1px solid var(--border)}
.gantt-scale span{position:absolute;top:0;transform:translateX(-50%);font-size:11px;color:var(--muted);font-weight:600}
.gantt-list{display:grid;gap:8px;min-width:1040px}
.gantt-row{display:grid;grid-template-columns:300px minmax(720px,1fr);gap:12px;align-items:center}
.gantt-label{padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.gantt-label a{font-weight:650;color:var(--text)} .gantt-label small{display:block;color:var(--muted);margin-top:3px}
.gantt-track{position:relative;height:44px;border:1px solid var(--border);border-radius:12px;background:repeating-linear-gradient(90deg,var(--surface-2) 0,var(--surface-2) 59px,#ECEFF4 60px)}
.gantt-bar{position:absolute;top:8px;height:28px;border-radius:var(--pill);background:var(--blue);min-width:24px;display:flex;align-items:center;padding:0 10px;color:#fff;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden}
.gantt-bar em{font-style:normal}
.gantt-bar.priority-urgente,.gantt-bar.u4{background:var(--danger)}
.gantt-bar.priority-haute,.gantt-bar.u3{background:var(--warning)}
.gantt-bar.u2{background:var(--blue)} .gantt-bar.priority-basse,.gantt-bar.u1{background:#94A3B8}

/* ---------- Calendrier ---------- */
.calendar-grid{display:grid;gap:10px}
.calendar-grid.view-month{grid-template-columns:repeat(7,minmax(130px,1fr))}
.calendar-grid.view-week{grid-template-columns:repeat(7,minmax(150px,1fr))}
.calendar-grid.view-day{grid-template-columns:minmax(320px,1fr)}
.calendar-day{min-height:140px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:11px;display:flex;flex-direction:column;gap:7px}
.calendar-day.today{border-color:var(--blue-100);box-shadow:0 0 0 3px rgba(47,107,255,.08)}
.calendar-day header{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}
.calendar-day header strong{color:var(--text);font-size:15px}
.calendar-event{display:block;padding:7px 9px;border-radius:10px;background:var(--blue-50);color:var(--blue2);font-size:13px;font-weight:600}
.calendar-event.crm{background:#E7F8F0;color:#137a52}
.calendar-event.u4{box-shadow:inset 3px 0 var(--danger)} .calendar-event.u3{box-shadow:inset 3px 0 var(--warning)} .calendar-event.u2{box-shadow:inset 3px 0 var(--blue)}
.calendar-event small{display:block;color:inherit;opacity:.75;margin-top:3px;font-weight:550}
.calendar-event b{font-size:11px;text-transform:uppercase;margin-right:4px}
/* Calendrier harmonisé : type-bulle + mini actions (call/sms/mail) */
.calendar-event{display:flex;flex-direction:column;gap:5px}
.calendar-event .ce-main{color:inherit;text-decoration:none}
.calendar-event.relance{background:#FEF6E7;color:#B45309}
.calendar-event.echeance{background:var(--blue-50);color:var(--blue2)}
.calendar-event.debut{background:#F1F5F9;color:#475569}
.calendar-event .ce-acts{display:flex;gap:3px}
.calendar-event .ce-acts .iconbtn{width:24px;height:24px;min-height:0;background:rgba(255,255,255,.72);border-color:rgba(0,0,0,.08)}
.calendar-event .ce-acts .iconbtn svg,.calendar-event .ce-acts .iconbtn .ic{width:13px;height:13px}

/* ---------- Fiche contact (en-tête + qualification) ---------- */
.contact-hero-card{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel)}
.contact-hero-main{min-width:0;flex:1}
.contact-hero-main h1{margin:0 0 8px;font-size:clamp(22px,2.2vw,30px);line-height:1.05;letter-spacing:-.03em}
.contact-hero-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.contact-hero-meta>span:not(.bad){display:inline-flex;gap:5px;align-items:center;border:1px solid var(--border);background:var(--panel);border-radius:var(--pill);padding:5px 10px;font-weight:550;color:#475569}
.contact-hero-meta strong{color:var(--ink)}
.contact-hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:620px}
.contact-hero-actions.hero-icons{align-items:center}
.contact-hero-actions .social-links{display:inline-flex;gap:8px;flex-wrap:wrap}
/* ===== Fiche contact — format redesign-preview.html ===== */
.contact-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:16px;flex-wrap:wrap}
.contact-hero.col{flex-direction:column;align-items:stretch;gap:13px}
.contact-hero .id{display:flex;gap:14px;align-items:center;min-width:0}
.contact-hero .id .avatar{width:52px;height:52px;font-size:17px}
.contact-hero h1{margin:0;font-size:22px;font-weight:650;letter-spacing:-.02em;color:var(--ink)}
.hero-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.act-rows{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.act-rows .sep{width:1px;height:22px;background:var(--border);margin:0 5px}
.act-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-right:3px}
.bp-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid var(--border)}
.bp-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--border);border-radius:var(--pill);background:var(--surface-2);font-size:12.5px;font-weight:600;color:#475569;text-decoration:none}
.bp-chip:hover{border-color:var(--blue-100);background:var(--blue-50);color:var(--blue2)}.bp-chip svg,.bp-chip .ic{width:14px;height:14px;color:var(--muted)}
.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px}
.focus-grid label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted)}
.dropdown{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin-top:14px}
.dropdown>summary{cursor:pointer;font-weight:600;font-size:13px;padding:11px 13px;color:var(--ink);list-style:none}
.dropdown>summary::-webkit-details-marker{display:none}.dropdown>summary::after{content:"⌄";float:right;color:var(--muted)}
.dropdown[open]>summary{border-bottom:1px solid var(--border)}.dropdown[open]>summary::after{content:"⌃"}
.dropdown .dd-body{padding:13px}
.dropdown .dd-body label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:10px}
.timeline article{border-left:2px solid var(--border-strong);padding:2px 0 15px 16px;position:relative}
.timeline article::before{content:"";position:absolute;left:-5px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.timeline .when{font-size:12px;color:var(--muted);font-weight:600}.timeline p{margin-top:3px;white-space:pre-wrap}
.danger-zone{border:1px solid #F3C9C9;background:#FDECEC}.danger-zone h2{color:var(--danger)}
.btn.small.ai{background:var(--blue-50);border-color:var(--blue-100);color:var(--blue2)}.btn.small.ai:hover{background:var(--blue-100)}
@media(max-width:900px){.focus-grid{grid-template-columns:1fr}}
/* ===== Mes prompts IA — matrice double entrée (canal × moment) avec connecteurs ===== */
.prompt-matrix{display:grid;grid-template-columns:120px 1fr 1fr;gap:16px 18px;align-items:start}
.pm-corner{min-height:1px}
.pm-col{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);text-align:center;padding-bottom:2px}
.pm-chan{display:flex;align-items:center;gap:9px;font-weight:650;color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 13px;align-self:center;position:relative}
.pm-chan svg,.pm-chan .ic{width:17px;height:17px;color:var(--blue2);flex:0 0 auto}
.pm-chan::after{content:"";position:absolute;right:-18px;top:50%;width:18px;height:2px;background:var(--border-strong)}
.pm-cell{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}
.pm-cell::before{content:"";position:absolute;left:-18px;top:22px;width:18px;height:2px;background:var(--border-strong)}
.pm-cell[open]{border-color:var(--blue-100)}
.pm-cell>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:9px;padding:13px 14px;font-weight:600;color:var(--ink)}
.pm-cell>summary::-webkit-details-marker{display:none}
.pm-cell>summary::after{content:"›";color:var(--muted);transition:transform .15s;margin-left:2px}
.pm-cell[open]>summary::after{transform:rotate(90deg)}
.pm-dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong);flex:0 0 auto}
.pm-cell.filled .pm-dot{background:var(--ok)}
.pm-name{min-width:0}
.pm-state{margin-left:auto;font-size:11.5px;font-weight:600;color:var(--muted)}
.pm-cell.filled .pm-state{color:var(--ok)}
.pm-body{padding:0 14px 14px;border-top:1px solid var(--border)}
.pm-lbl{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:12px}
.pm-msgs{margin-top:12px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2)}
.pm-msgs>summary{cursor:pointer;list-style:none;padding:9px 12px;font-size:12.5px;font-weight:600;color:#475569}
.pm-msgs>summary::-webkit-details-marker{display:none}
.pm-msgs-body{padding:0 12px 10px}
@media(max-width:720px){.prompt-matrix{grid-template-columns:1fr;gap:10px}.pm-corner,.pm-col{display:none}.pm-chan{align-self:stretch;margin-top:6px}.pm-chan::after,.pm-cell::before{display:none}}
.contact-priority-layout{display:grid;grid-template-columns:minmax(600px,1.35fr) minmax(360px,.65fr);gap:16px;align-items:start}
.section-title-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-title-line h2,.section-title-line .eyebrow{margin:0}
.qualification-priority{border-top:3px solid var(--blue)}
.note-priority{border-top:3px solid #94A3B8}
.qualification-focus-grid,.quick-qual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.quick-qual-grid{grid-template-columns:repeat(4,1fr);margin-bottom:14px}
.qualification-focus-grid label,.quick-qual-grid>label{font-size:12px;color:#374151;font-weight:600;display:flex;flex-direction:column;gap:5px}
.qualification-focus-grid label:first-child select{font-weight:650}
.readonly-contact-box{display:grid;gap:5px;align-content:center;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);padding:9px 11px;min-height:56px}
.readonly-contact-box span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}
.readonly-contact-box strong{font-size:12.5px;word-break:break-word}
.readonly-contact-box a{color:var(--blue2);font-weight:650}
.contact-secondary-grid{margin-top:2px}
.compact-help{margin-bottom:10px}
.compact-history article,.activity-timeline article{border-left:3px solid var(--blue);padding:9px 0 12px 13px}
.compact-history article{border:1px solid var(--border);border-left:3px solid var(--blue);border-radius:12px;padding:11px 12px;background:var(--panel)}
.activity-timeline span{color:var(--muted);font-size:13px}
.activity-timeline p{white-space:pre-wrap;margin:6px 0 5px}
.contact-full-edit textarea{min-height:74px}
.contact-edit-details>summary{font-weight:650;cursor:pointer;padding:11px 0;list-style:none}
.contact-edit-details>summary::-webkit-details-marker{display:none}
.contact-edit-details>summary::before{content:'▸ ';color:var(--blue2)}
.contact-edit-details[open]>summary::before{content:'▾ '}
.contact-edit-details>summary small{font-weight:550;color:var(--muted)}
.edit-sub{margin:18px 0 8px;font-size:12px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.04em}
.edit-sub:first-of-type{margin-top:4px}
/* En-tête : icônes d'action rondes */
.icon-act{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;border:1px solid var(--border-strong);background:var(--panel);color:var(--ink);font-size:17px;font-weight:600;line-height:1;cursor:pointer;transition:background .12s,border-color .12s}
.icon-act:hover{background:var(--blue-50);border-color:var(--blue-100)}
.icon-act.ai{background:#EFEDFB;border-color:#DfD9F6;color:#5B4FD6}
.icon-act svg{width:19px;height:19px;display:block}
.hero-relances{margin-left:4px}

/* ---------- Refonte fiche V2.7 (grilles) ---------- */
.v27-hero{margin-bottom:14px}
.v27-qualification{max-width:1420px}
.v27-qualification .section-title-line{align-items:flex-start}
.v27-contact-form{display:grid;gap:14px}
.v27-contact-form small{display:block;color:var(--muted);font-weight:550;margin-top:2px}
.v27-focus-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px}
.v27-notes-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:10px}
.v27-notes-grid textarea{min-height:112px}
.v27-rdv-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}
.v27-rdv-grid label,.v27-notes-grid label{font-size:12px}
.v27-advanced{border-style:dashed;background:var(--panel)}
.v27-advanced summary{font-weight:650;color:#475569}
.v27-task-editor .task-main-fields{grid-template-columns:repeat(4,minmax(130px,1fr))}
.v27-task-editor textarea#task-description{min-height:170px}
.contact-full-edit.v27-contact-form .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.contact-full-edit.v27-contact-form .form-grid label:has(textarea){grid-column:span 2}
.contact-full-edit.v27-contact-form .form-grid textarea{min-height:68px}

/* ---------- Assistant IA ---------- */
.ai-loading{opacity:.85;pointer-events:none}
.ai-spinner{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ai-spin .7s linear infinite;vertical-align:-2px;margin-right:4px}
@keyframes ai-spin{to{transform:rotate(360deg)}}
.ai-key-status{font-weight:600;border-radius:12px;padding:10px 13px;margin:6px 0 14px}
.ai-key-status.ok{background:#E7F8F0;border:1px solid #BBE9D4;color:#0B7A52}
.ai-key-status.warn{background:#FEF6E7;border:1px solid #F6E0B8;color:#9A3412}
.ai-key-status code,.ai-vars code{background:rgba(15,23,42,.06);padding:1px 6px;border-radius:6px;font-size:12px}
.ai-settings .ai-vars{font-size:12.5px;line-height:1.7}
.ai-settings textarea.ai-prompt{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.55;min-height:150px;border:1px solid var(--border-strong);border-radius:12px;padding:11px;background:var(--surface-2);color:var(--ink)}
.ai-settings label.wide,.ai-modal-field.wide{grid-column:1 / -1}
.ai-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-weight:600;box-shadow:var(--shadow);z-index:9998;opacity:0;transition:opacity .25s,transform .25s;max-width:92vw;text-align:center}
.ai-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.ai-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;padding:18px;z-index:9999}
.ai-modal-card{background:var(--panel);border-radius:var(--radius-lg);box-shadow:var(--shadow);width:min(620px,100%);max-height:88vh;overflow:auto;padding:20px}
.ai-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.ai-modal-head strong{font-size:16px}
.ai-modal-close{border:none;background:var(--surface-3);width:32px;height:32px;border-radius:9px;cursor:pointer;font-weight:700;color:#475569}
.ai-modal-close:hover{background:#E2E8F0}
.ai-modal-field{display:block;margin-bottom:12px;font-weight:600;font-size:13px;color:#374151}
.ai-modal-field span{display:block;margin-bottom:5px}
.ai-modal-field input,.ai-modal-body{width:100%;border:1px solid var(--border-strong);border-radius:12px;padding:11px;font-size:14px;font-family:inherit;color:var(--ink)}
.ai-modal-body{line-height:1.55;resize:vertical;min-height:180px}
.ai-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}

/* ---------- Micro (dictée) ---------- */
.mic-state{display:none}
.mic-field{position:relative;display:block;width:100%}
.mic-field>textarea,.mic-field>input{width:100%}
.mic-field.is-area>textarea,.mic-field.is-input>input{padding-right:40px}
.mic-icon{position:absolute;top:7px;right:7px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:15px;line-height:1;border:1px solid var(--border-strong);border-radius:9px;background:var(--panel);cursor:pointer;opacity:.72;z-index:2}
.mic-field.is-input>.mic-icon{top:50%;transform:translateY(-50%)}
.mic-icon:hover{opacity:1;background:var(--blue-50)}
.mic-icon.recording{opacity:1;background:#FDECEC;border-color:#F5C6C6}
.mic-field.is-area>.mic-icon.recording{animation:micPulse 1.15s infinite}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.4)}50%{box-shadow:0 0 0 6px rgba(220,38,38,0)}}

/* ---------- Relances ---------- */
.relance-card{width:min(680px,100%)}
.relance-rows{display:flex;flex-direction:column;gap:8px;margin:6px 0 4px}
.relance-row{display:grid;grid-template-columns:1.4fr .95fr .9fr .8fr auto;gap:8px;align-items:center}
.relance-row input,.relance-row select{border:1px solid var(--border-strong);border-radius:10px;padding:9px;font-size:13px;color:var(--ink);background:var(--panel);width:100%}
.relance-row .rel-del{padding:7px 10px;min-height:auto;color:var(--danger);flex:none}
.relance-add-line{margin:6px 0 2px}

/* ---------- Communication / historique omnicanal ---------- */
.history-filter{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.history-filter .btn.small{padding:6px 11px}
.history-filter .btn.small.active{background:var(--blue);border-color:var(--blue);color:#fff}
.chan-badge{display:inline;padding:0;margin-right:5px;font-size:12.5px;font-weight:700;color:#475569;background:none;border:0;vertical-align:baseline}
.chan-appel{color:#2563EB}.chan-sms{color:#0E7490}.chan-email{color:#6D28D9}.chan-linkedin{color:#0A66C2}.chan-rdv{color:#137a52}.chan-note{color:#475569}
.activity-meta{color:var(--muted);font-weight:550}
.comm-panel .comm-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.comm-form-box{margin-top:10px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}
.comm-form-box.hidden{display:none}
.integration-payload{background:var(--ink);color:#E2E8F0;border-radius:12px;padding:12px 14px;font-size:12px;line-height:1.5;overflow:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:8px 0}

/* ---------- Clé/valeur (fiche bien) ---------- */
.kv{display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:6px 18px;margin:0 0 6px}
.kv dt{color:var(--muted);font-weight:600;font-size:12.5px;align-self:start}
.kv dd{margin:0;color:var(--text);font-weight:550;word-break:break-word}

/* ---------- Couleur contact selon chaleur (bande gauche) ---------- */
.desktop-table tbody tr.c-froid td:first-child{box-shadow:inset 5px 0 var(--c-froid-ac)}
.desktop-table tbody tr.c-tiede td:first-child{box-shadow:inset 5px 0 var(--c-tiede-ac)}
.desktop-table tbody tr.c-chaud td:first-child{box-shadow:inset 5px 0 var(--c-chaud-ac)}
.desktop-table tbody tr.c-tres-chaud td:first-child{box-shadow:inset 5px 0 var(--c-tres-ac)}
.desktop-table tbody tr.c-client td:first-child{box-shadow:inset 5px 0 var(--c-client-ac)}
.desktop-table tbody tr.c-mort td:first-child{box-shadow:inset 5px 0 var(--c-mort-ac)}
.desktop-table tbody tr.c-mort td:first-child a{color:#64748B}
.contact-card.c-froid,.mini-card.c-froid,.contact-hero-card.c-froid{border-left:5px solid var(--c-froid-ac)}
.contact-card.c-tiede,.mini-card.c-tiede,.contact-hero-card.c-tiede{border-left:5px solid var(--c-tiede-ac)}
.contact-card.c-chaud,.mini-card.c-chaud,.contact-hero-card.c-chaud{border-left:5px solid var(--c-chaud-ac)}
.contact-card.c-tres-chaud,.mini-card.c-tres-chaud,.contact-hero-card.c-tres-chaud{border-left:5px solid var(--c-tres-ac)}
.contact-card.c-client,.mini-card.c-client,.contact-hero-card.c-client{border-left:5px solid var(--c-client-ac)}
.contact-card.c-mort,.mini-card.c-mort,.contact-hero-card.c-mort{border-left:5px solid var(--c-mort-ac)}
.contact-card.c-mort .contact-name,.mini-card.c-mort .mini-title{color:#64748B}
.heat-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-right:7px}
.heat-dot.c-froid{background:var(--c-froid-ac)}.heat-dot.c-tiede{background:var(--c-tiede-ac)}.heat-dot.c-chaud{background:var(--c-chaud-ac)}
.heat-dot.c-tres-chaud{background:var(--c-tres-ac)}.heat-dot.c-client{background:var(--c-client-ac)}.heat-dot.c-mort{background:var(--c-mort-ac)}

/* ---------- Accessibilité ---------- */
:focus-visible{outline:3px solid rgba(47,107,255,.55);outline-offset:2px}
.btn:focus-visible,.nav a:focus-visible,.icon-act:focus-visible,.tabs a:focus-visible,.pagination a:focus-visible,
.table-link:focus-visible,.back:focus-visible,.sidebar-toggle:focus-visible,summary:focus-visible{outline:3px solid rgba(47,107,255,.6);outline-offset:2px;border-radius:9px}

/* ===========================================================================
   Composants denses — Accueil fusionné, pipeline, performance, agenda, listes
   =========================================================================== */
.sub{color:var(--muted);font-size:14px;margin-top:3px}
.page-title.compact{margin-bottom:14px}
.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kpis.dense{grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:10px;margin-bottom:16px}
.kpis.dense>a,.kpis.dense>div{padding:11px 13px;border-radius:12px}
.kpis.dense span{font-size:12px}
.kpis.dense strong{font-size:21px;margin-top:3px}
.kpis.dense .trend{font-size:11px;margin-top:2px}
.kpis .trend{font-size:11px;font-weight:600;color:var(--ok);margin-top:2px}
.kpis .trend.down{color:var(--danger)}
.home-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:16px;align-items:start;margin-bottom:16px}
.panel.tight{padding:14px}
.panel.accent{background:linear-gradient(180deg,#FBFCFF,#F6F9FF);border-color:var(--blue-100)}
.panel.link{cursor:pointer}.panel.link:hover{border-color:var(--blue-100)}
/* Chips (filtres rapides) */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:var(--pill);background:var(--surface-3);color:#475569;cursor:pointer;border:1px solid transparent}
.chip.on{background:var(--blue-50);color:var(--blue2);border-color:var(--blue-100)}
/* Lignes « à traiter » denses */
.todo-dense{display:flex;flex-direction:column}
.trow{display:grid;grid-template-columns:26px 1fr auto auto;gap:11px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--border);font-size:13px}
.trow:last-child{border-bottom:0}.trow:hover{background:var(--surface-2)}
.trow form{margin:0;display:flex}
.trow .check{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--panel);cursor:pointer;color:var(--blue);display:grid;place-items:center;font-size:13px;padding:0}
.trow .check:hover{border-color:var(--blue);background:var(--blue-50)}
.trow .ttl{font-weight:600;color:var(--ink);min-width:0}.trow .ttl small{display:block;color:var(--muted);font-weight:400}
.trow .ttl a{color:inherit}
.trow.acc{box-shadow:inset 3px 0 0 var(--border-strong)}.trow.acc.late{box-shadow:inset 3px 0 0 var(--danger)}.trow.acc.high{box-shadow:inset 3px 0 0 var(--warning)}
.inline-acts{display:flex;gap:3px}
.iconbtn{width:32px;height:32px;min-height:0;padding:0;border-radius:9px;color:#475569;border:1px solid var(--border-strong);background:var(--panel);display:inline-grid;place-items:center;cursor:pointer}
.iconbtn:hover{color:var(--blue);border-color:var(--blue-100);background:var(--blue-50)}
.iconbtn svg,.iconbtn .ic{width:16px;height:16px}
/* Lignes compactes (Contacts / Prospects / Recrutement) — icône type, bulles relance, actions */
.trow .kind{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;flex:0 0 auto}
.trow .kind svg,.trow .kind .ic{width:15px;height:15px}
.kind.candidat{background:var(--blue-50);color:var(--blue2)}
.kind.prospect{background:#E7F8F0;color:var(--ok)}
.kind-link{display:flex;align-items:center;justify-content:center}
.bubbles{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;align-items:center;max-width:210px}
.compact-list .trow:hover{background:var(--surface-2)}
@media(max-width:640px){.trow .inline-acts .iconbtn{width:29px;height:29px}.bubbles{max-width:104px}.trow .ttl small{font-size:11.5px}}
/* Barre de filtres épurée : recherche + Filtres (panneau) + Récents (toggle) */
.filters-bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px;margin-bottom:14px}
.filters-bar .search-main{position:relative;flex:1 1 240px;min-width:160px}
.filters-bar .search-main svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--faint)}
.filters-bar .search-main input{padding-left:34px;margin:0;min-height:38px}
.filters-bar .btn{min-height:38px}
.filters-pop{position:relative}
.filters-pop>summary{list-style:none;cursor:pointer}
.filters-pop>summary::-webkit-details-marker{display:none}
.filters-pop>summary::after{content:"▾";margin-left:6px;color:var(--muted)}
.filters-pop[open]>summary::after{content:"▴"}
.filters-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 14px 36px rgba(15,23,42,.14);padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px;width:360px;max-width:92vw}
.filters-panel select,.filters-panel input{margin:0;width:100%;min-width:0}
.filters-panel .full{grid-column:1/-1}
@media(max-width:560px){.filters-panel{position:fixed;left:10px;right:10px;top:auto;width:auto;grid-template-columns:1fr}}
/* Pipeline recrutement compact (chips statut + compteur) */
.pipe-chips{margin-bottom:14px}
.pipe-chips .chip{display:inline-flex;align-items:center;gap:5px}
.pipe-chips .chip b{font-weight:700;color:var(--blue2)}
.pipe-chips .chip.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.pipe-chips .chip.on b{color:#fff}
/* Pipeline */
.pipe{display:flex;flex-direction:column;gap:7px}
.pipe .row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}
.pipe .bar{height:6px;border-radius:var(--pill);background:var(--blue);opacity:.85}
.pipe b{font-weight:650;color:var(--ink)}
/* Performance */
.perf-top{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.perf-top .s{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:11px 13px}
.perf-top .s span{display:block;font-size:12px;color:var(--muted);font-weight:550}
.perf-top .s strong{font-size:22px;font-weight:650;color:var(--ink)}
.chan{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--border);font-size:13px}
.chan span{display:flex;align-items:center;gap:8px;color:#475569}.chan b{font-weight:650;color:var(--ink)}
.chan .ic,.chan svg{width:15px;height:15px;color:var(--muted);flex:0 0 auto}
/* Agenda du jour */
.daylist{display:flex;flex-direction:column;gap:8px}
.daylist .ev{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.daylist .ev .t{font-weight:650;color:var(--blue2);font-size:13px;width:46px;flex:0 0 auto;display:flex;align-items:center;gap:4px}
.daylist .ev .t svg{width:14px;height:14px}
@media(max-width:1100px){.home-grid{grid-template-columns:1fr}}

/* Biens — cartes photo + fiche */
.bien-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.bien-card{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .12s,box-shadow .12s}
.bien-card:hover{border-color:var(--blue-100);box-shadow:0 6px 20px rgba(15,23,42,.06)}
.bien-card .thumb{height:148px;background:linear-gradient(135deg,#DCE7FF,#EEF3FF);position:relative;display:grid;place-items:center;color:#9DB2E8}
.bien-card .thumb svg{width:42px;height:42px}
.bien-card .thumb .st{position:absolute;top:10px;left:10px}
.bien-card .thumb .ph{position:absolute;bottom:10px;right:10px;background:rgba(15,23,42,.6);color:#fff;font-size:11px;font-weight:600;padding:3px 8px;border-radius:var(--pill)}
.bien-card .body{padding:13px 14px}
.bien-card .price{font-size:18px;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.bien-card .addr{font-weight:600;color:var(--ink);margin-top:2px}
.bien-card .specs{color:var(--muted);font-size:12.5px;margin-top:3px}
.bien-card .foot{display:flex;align-items:center;gap:8px;margin-top:11px;padding-top:11px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}
.bien-hero{display:flex;gap:18px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px;flex-wrap:wrap}
.bien-hero .ph{width:190px;height:138px;border-radius:var(--radius);background:linear-gradient(135deg,#DCE7FF,#EEF3FF);flex:0 0 auto;display:grid;place-items:center;color:#9DB2E8}
.bien-hero .ph svg{width:44px;height:44px}
.bien-hero .info{flex:1;min-width:240px}
.bien-hero .price{font-size:23px;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.bien-hero .hero-side{display:flex;flex-direction:column;gap:8px;flex:0 0 auto}
.role-group{margin-bottom:16px}.role-group:last-child{margin-bottom:0}
.role-head{display:flex;align-items:center;gap:9px;margin-bottom:9px}.role-head h3{font-size:13px;margin:0}
.ccards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ccard{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:11px 12px}
.ccard .nm{font-weight:600;color:var(--ink)}.ccard .nm small{display:block;color:var(--muted);font-weight:400}
.ccard .acts{display:flex;gap:5px;margin-top:9px;flex-wrap:wrap}
.avatar.p{background:#EFEDFB;color:#5B4FD6}
/* Fiche bien — dossiers documentaires + accès partagé (maquette agent) */
.folder{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:9px;overflow:hidden}
.folder>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:11px;padding:11px 13px;font-weight:600;color:var(--ink)}
.folder>summary::-webkit-details-marker{display:none}
.folder>summary .fi{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--blue-50);color:var(--blue2);flex:0 0 auto}
.folder>summary .fi svg,.folder>summary .fi .ic{width:16px;height:16px}
.folder>summary .cnt{margin-left:auto;color:var(--muted);font-size:12.5px;font-weight:600}
.folder[open]>summary{border-bottom:1px solid var(--border)}
.folder .fbody{padding:6px 13px 12px}
.doc-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--surface-3);font-size:13px}
.doc-row:last-child{border-bottom:0}
.doc-row .dn{flex:1;min-width:0;font-weight:550;color:var(--ink);word-break:break-word}
.doc-row .dn small{display:block;color:var(--muted);font-weight:400}
.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);padding:12px;text-align:center;color:var(--muted);font-size:12.5px;margin-top:8px;background:var(--surface-2)}
.dropzone input[type=file]{margin-top:6px}
.linkrow{display:flex;gap:8px;align-items:center;margin-top:9px;flex-wrap:wrap}
.linkrow input{background:#fff;font-family:ui-monospace,monospace;font-size:12px;flex:1 1 220px}
.legal{font-size:11.5px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-top:9px}

/* ===========================================================================
   Accueils par rôle (agent / recruteur) + Administration (maquettes validées)
   =========================================================================== */
/* Grille principale + aside */
.grid.main-aside{display:grid;grid-template-columns:1.62fr 1fr;gap:16px;align-items:start;margin-bottom:16px}
/* Liste « à traiter / entrants » (Accueil agent, fiche bien) */
.incoming{display:flex;flex-direction:column}
.in-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--surface-3);font-size:13px}
.in-row:last-child{border-bottom:0}
.in-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto}
.in-ic.sms{background:var(--blue-50);color:var(--blue2)}.in-ic.mail{background:#EFEDFB;color:#5B4FD6}.in-ic.call{background:#E7F8F0;color:var(--ok)}
.in-ic svg,.in-ic .ic{width:15px;height:15px}
.in-row .ic-body{flex:1;min-width:0}.in-row .ic-body b{font-weight:600;color:var(--ink)}
.in-row .ic-body small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Badges de rôles (table Utilisateurs) */
.roles{display:flex;gap:5px;flex-wrap:wrap}
/* Clés / valeurs techniques (admin) */
.key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
/* Étiquette de rôle dans la barre latérale */
.role-tag{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--blue2);background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--pill);padding:3px 9px;margin:2px 10px 8px}
body.sidebar-collapsed .role-tag{display:none}
/* Prompts IA système — accordéons par thème */
.theme{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);margin-bottom:12px;overflow:hidden}
.theme>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:12px;padding:15px 18px;font-weight:600;color:var(--ink)}
.theme>summary::-webkit-details-marker{display:none}
.theme>summary .ti{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--blue-50);color:var(--blue2);flex:0 0 auto}
.theme>summary .ti svg,.theme>summary .ti .ic{width:18px;height:18px}
.theme>summary small{display:block;color:var(--muted);font-weight:400;font-size:12.5px;margin-top:1px}
.theme>summary .arr{margin-left:auto;color:var(--muted);transition:transform .15s}
.theme[open]>summary{border-bottom:1px solid var(--border)}.theme[open]>summary .arr{transform:rotate(180deg)}
.theme .body{padding:16px 18px}
.subgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px}
.minicard{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:12px 13px}
.minicard h3{margin-bottom:7px}
.minicard .src{font-size:11px;color:var(--faint);font-weight:600;margin-top:7px;font-family:ui-monospace,Menlo,monospace;word-break:break-word}
.tag{display:inline-block;font-size:11px;font-weight:600;color:var(--muted);background:var(--surface-3);border-radius:6px;padding:2px 7px;margin:0 4px 4px 0}
@media(max-width:1100px){.grid.main-aside,.subgrid{grid-template-columns:1fr}}

/* ===========================================================================
   Responsive
   =========================================================================== */
@media(max-width:1280px){
  :root{--sidebar:236px}
  .container,.footer{padding-left:22px;padding-right:22px}
  .kpis{grid-template-columns:repeat(3,1fr)}
  .filters{grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(120px,1fr))}
  .info-grid{grid-template-columns:repeat(3,1fr)}
  .task-row{grid-template-columns:1fr 160px auto}
  .quick-done.inline-done{grid-template-columns:1fr 1fr 1fr}
  .v27-notes-grid{grid-template-columns:1fr 1fr}
  .v27-task-editor .task-main-fields{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1100px){
  .contact-priority-layout{grid-template-columns:1fr}
  .contact-hero-card{flex-direction:column}
  .contact-hero-actions{justify-content:flex-start;max-width:none}
}
@media(max-width:980px){
  body{font-size:14px}
  .topbar{position:sticky;top:0;left:auto;bottom:auto;width:auto;height:auto;flex-direction:row;align-items:center;justify-content:space-between;padding:10px 14px;border-right:0;border-bottom:1px solid var(--border)}
  .brand{border-bottom:0;padding:0;margin:0}
  .sidebar-toggle{display:none}
  .nav{flex-direction:row;align-items:center;overflow:auto}
  .nav-section{display:none}
  .nav a[href*="contact_new"]{margin:0}
  body.sidebar-collapsed{--sidebar:auto}
  .container,.footer{margin-left:0;padding:18px 14px 80px}
  .grid.two,.detail-grid{grid-template-columns:1fr}
  .filters{position:static;grid-template-columns:1fr 1fr}
  .quick-done,.quick-done.inline-done{grid-template-columns:1fr 1fr}
  .info-grid{grid-template-columns:1fr 1fr}
  .detail-header{position:static}
  .desktop-table-wrap{display:none}
  .mobile-cards{display:grid}
  .note-area{min-height:300px}
  .task-row,.compact-tasks .task-row{grid-template-columns:1fr}
  .task-actions{justify-content:flex-start}
  .task-main-fields,.v27-task-editor .task-main-fields{grid-template-columns:1fr}
  .gantt-head,.gantt-row{grid-template-columns:220px minmax(620px,1fr)}.gantt-scale{margin-left:232px}
  .calendar-grid.view-month,.calendar-grid.view-week{grid-template-columns:1fr 1fr}
  .share-grid,.permission-grid{grid-template-columns:1fr}
  .qualification-focus-grid,.quick-qual-grid,.v27-focus-grid,.v27-notes-grid,.task-commercial-notes,.task-contact-status{grid-template-columns:1fr}
  .quick-qual-grid{grid-template-columns:1fr 1fr}
  .v27-rdv-grid{grid-template-columns:1fr 1fr}
  .contact-full-edit.v27-contact-form .form-grid{grid-template-columns:1fr}
  .info-grid .social-cell{grid-column:span 1}
}
@media(max-width:640px){
  .topbar{padding:10px 12px}
  .brand small{display:none}
  .container{padding:16px 12px 90px}
  .footer{padding:8px 12px 84px}
  .nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.97);border-top:1px solid var(--border);padding:8px 10px calc(8px + env(safe-area-inset-bottom));z-index:60;justify-content:flex-start;box-shadow:0 -6px 20px rgba(15,23,42,.06)}
  .nav a{font-size:13px;padding:9px 11px;background:var(--surface-2)}
  .nav .danger,.nav-section{display:none}
  .hero,.page-title,.detail-header{flex-direction:column}
  .hero{padding:16px}
  .kpis{grid-template-columns:1fr 1fr;gap:10px}
  .panel{padding:15px}
  .filters,.quick-done,.quick-done.inline-done,.quick-done.mobile-done{grid-template-columns:1fr}
  .contact-card{grid-template-columns:1fr}
  .card-side{align-items:flex-start;flex-direction:row;flex-wrap:wrap}
  .info-grid,.form-grid{grid-template-columns:1fr}
  .detail-actions .btn,.card-actions .btn,.note-tools .btn{flex:1}
  .note-area{min-height:260px}
  .login-card{margin:18px auto;padding:22px}
  .quick-qual-grid{grid-template-columns:1fr 1fr;gap:9px}
  .v27-rdv-grid{grid-template-columns:1fr}
  .relance-row{grid-template-columns:1fr 1fr;gap:6px}
  .relance-row .rel-title{grid-column:1 / -1}
  .icon-act{width:46px;height:46px;font-size:19px}
  .icon-act svg{width:22px;height:22px}
  .calendar-grid.view-month,.calendar-grid.view-week{grid-template-columns:1fr}
  .calendar-day{min-height:auto}
  .ai-modal-actions .btn{flex:1}
}

/* ===== Avant-contrat / Notaire (fiche bien) ===== */
.notaire-block .notaire-hist{margin:0 0 10px}
.notaire-block .notaire-hist .ttl{font-weight:600}
.nstatus{font-weight:600}
.nstatus.n-sent{color:#2563EB}
.nstatus.n-opened{color:#9333EA}
.nstatus.n-downloaded{color:#16A34A}
.nstatus.n-expired,.nstatus.n-revoked{color:#94A3B8}
.notaire-new{margin-top:8px}
.notaire-new>summary{cursor:pointer;font-weight:600;color:#2F6BFF;padding:6px 0}
.notaire-form{margin-top:10px;display:flex;flex-direction:column;gap:12px}
.notaire-form .nf-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.notaire-form .nf-lab{min-width:150px;color:var(--muted,#64748B);font-size:13px}
.notaire-form .nf-radio label{margin-right:14px;font-size:14px}
.notaire-form .nf-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.notaire-form .nf-grid label,.notaire-form .nf-block{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted,#64748B)}
.notaire-form input,.notaire-form select,.notaire-form textarea{font-size:14px}
.notaire-form .nf-days{width:90px}
.notaire-form .nf-actions{display:flex;justify-content:flex-end}
.notaire-preview p{margin:.5em 0}
@media(max-width:640px){.notaire-form .nf-grid{grid-template-columns:1fr}}
