@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --ink:#1B2430;
  --ink-soft:#26313F;
  --ink-collab:#122A44;
  --paper:#F1F2EF;
  --card:#FFFFFF;
  --border:#E2E4DE;
  --text:#1B2430;
  --text-muted:#6B7280;
  --text-faint:#9CA3AF;

  --emerald:#146356;
  --emerald-light:#E3EFEC;
  --brand-blue:#2C5B82;
  --role-accent:var(--emerald);
  --role-accent-light:var(--emerald-light);
  --brick:#B23A2E;
  --brick-light:#F8E7E4;
  --amber:#B8790F;
  --amber-light:#FAF0DC;
  --blue:#33608C;
  --blue-light:#E5EEF4;
  --grey:#78808C;
  --grey-light:#EBECE9;

  --radius-sm:6px;
  --radius:10px;
  --radius-lg:14px;
  --shadow-sm:0 1px 2px rgba(27,36,48,.06);
  --shadow:0 4px 16px rgba(27,36,48,.08);
  --shadow-lg:0 12px 40px rgba(27,36,48,.16);

  --font-display:'Sora',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'JetBrains Mono',monospace;

  --ease:cubic-bezier(.2,.7,.3,1);
}

[data-theme="dark"]{
  --paper:#14171C;
  --card:#1D2129;
  --border:#2B303A;
  --text:#E7E9EC;
  --text-muted:#9CA3AF;
  --text-faint:#6B7280;

  --emerald-light:rgba(20,99,86,.28);
  --brick-light:rgba(178,58,46,.24);
  --amber-light:rgba(184,121,15,.24);
  --blue-light:rgba(51,96,140,.26);
  --grey-light:rgba(255,255,255,.07);

  --shadow-sm:0 1px 3px rgba(0,0,0,.4);
  --shadow:0 6px 20px rgba(0,0,0,.45);
  --shadow-lg:0 16px 44px rgba(0,0,0,.55);
}
[data-theme="dark"] img{filter:brightness(.92);}
[data-theme="dark"] input, [data-theme="dark"] textarea, [data-theme="dark"] select{
  background:var(--card);color:var(--text);border-color:var(--border);
}
[data-theme="dark"] .modal, [data-theme="dark"] .login-card{background:var(--card);}
[data-theme="dark"] .task-card, [data-theme="dark"] .stat-card, [data-theme="dark"] .panel{background:var(--card);}
[data-theme="dark"] .badge-super{background:rgba(139,92,220,.22);color:#C9AEF2;}
[data-theme="dark"] .stage-tag{background:rgba(126,87,194,.24);color:#C7A9F0;border-color:rgba(126,87,194,.4);}

::selection{background:var(--role-accent, var(--emerald));color:#fff;}

/* Barre de défilement fine et discrète, cohérente avec le reste de l'interface */
*{scrollbar-width:thin;scrollbar-color:var(--border) transparent;}
*::-webkit-scrollbar{width:9px;height:9px;}
*::-webkit-scrollbar-track{background:transparent;}
*::-webkit-scrollbar-thumb{background:var(--border);border-radius:20px;border:2px solid transparent;background-clip:padding-box;}
*::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box;}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font-family:inherit;font-size:inherit;}
button{cursor:pointer;}
a{color:inherit;}
::selection{background:var(--emerald-light);color:var(--emerald);}

.hidden{display:none !important;}

/* ---------- Login ---------- */
.login-screen{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 15% 20%, rgba(20,99,86,.08), transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(178,58,46,.06), transparent 40%),
    var(--ink);
  padding:20px;
}
.login-card{
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:44px 40px;
  width:100%;
  max-width:390px;
  box-shadow:var(--shadow-lg);
}
.login-brand{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:28px;
}
.login-brand .mark{
  width:34px;height:34px;border-radius:8px;
  background:var(--brand-blue);
  position:relative;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.login-brand .mark svg{width:58%;height:58%;}
.login-brand span{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.01em;}
.login-card h1{
  font-family:var(--font-display);
  font-size:24px;font-weight:700;letter-spacing:-.01em;margin:0 0 6px;
}
.login-card p.sub{color:var(--text-muted);margin:0 0 26px;font-size:14.5px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em;}
.field input{
  width:100%;padding:11px 13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
  background:var(--card);transition:border-color .15s;
}
.field input:focus{outline:none;border-color:var(--emerald);}
.btn{
  border:none;border-radius:var(--radius-sm);padding:11px 18px;font-weight:600;font-size:14.5px;
  transition:transform .12s var(--ease), box-shadow .15s var(--ease), opacity .15s, background-color .15s, border-color .15s, color .15s;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--ink);color:#fff;width:100%;padding:12px;margin-top:6px;}
.btn-primary:hover{background:var(--ink-soft);box-shadow:0 4px 14px rgba(27,36,48,.22);transform:translateY(-1px);}
.btn-emerald{background:var(--emerald);color:#fff;}
.btn-emerald:hover{opacity:.94;box-shadow:0 4px 14px rgba(20,99,86,.35);transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--text-muted);border:1.5px solid var(--border);}
.btn-ghost:hover{border-color:var(--ink);color:var(--ink);background:var(--grey-light);}
.btn-danger{background:var(--brick-light);color:var(--brick);}
.btn-danger:hover{opacity:.85;transform:translateY(-1px);}
.btn-sm{padding:7px 12px;font-size:13px;}
.btn:focus-visible, .icon-btn:focus-visible, .icon-btn-sm:focus-visible, .nav-item:focus-visible{
  outline:2px solid var(--role-accent, var(--emerald));outline-offset:2px;
}
.login-error{
  background:var(--brick-light);color:var(--brick);padding:10px 12px;border-radius:var(--radius-sm);
  font-size:13.5px;margin-bottom:14px;
}
.login-hint{margin-top:18px;font-size:12.5px;color:var(--text-faint);text-align:center;}
.login-credit{
  margin-top:22px;font-size:11.5px;color:rgba(255,255,255,.45);text-align:center;letter-spacing:.01em;
}
.login-credit b{color:rgba(255,255,255,.65);font-weight:700;}
.sidebar-credit-old-removed{display:none;}

/* ---------- App shell ---------- */
.app-shell{display:flex;min-height:100vh;}

.sidebar{
  width:236px;flex-shrink:0;background:var(--ink);color:#fff;
  display:flex;flex-direction:column;padding:22px 14px;
  position:sticky;top:0;height:100vh;
  overflow-y:auto;
}
.sidebar .brand{display:flex;align-items:center;gap:10px;padding:0 8px 26px;}
.sidebar .brand .mark{width:28px;height:28px;border-radius:7px;background:var(--emerald);position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.sidebar .brand .mark svg{width:58%;height:58%;}
.sidebar .brand span{font-family:var(--font-display);font-weight:700;font-size:16.5px;}
.nav-group{margin-bottom:18px;}
.nav-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.35);padding:0 10px;margin-bottom:6px;font-weight:600;}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;
  color:rgba(255,255,255,.72);font-size:14px;font-weight:500;margin-bottom:2px;
  transition:background .12s, color .12s; cursor:pointer;
}
.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.85;}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff;}
.nav-item.active{background:rgba(255,255,255,.12);color:#fff;}
.nav-item .badge{
  margin-left:auto;background:var(--brick);color:#fff;font-size:10.5px;font-weight:700;
  padding:1px 6px;border-radius:20px;font-family:var(--font-mono);
}
.sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);}
.user-chip{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;}
.avatar{
  width:32px;height:32px;border-radius:50%;background:var(--emerald);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;
  font-family:var(--font-display);
}
.user-chip .who{overflow:hidden;flex:1;min-width:0;}
.user-chip .name{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-chip .role{font-size:11.5px;color:rgba(255,255,255,.45);}
.logout-btn{background:none;border:none;color:rgba(255,255,255,.4);padding:6px;border-radius:6px;}
.logout-btn:hover{color:#fff;background:rgba(255,255,255,.08);}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{
  height:64px;flex-shrink:0;background:var(--card);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 26px;gap:16px;position:sticky;top:0;z-index:20;
}
.topbar h2{font-family:var(--font-display);font-size:19px;font-weight:700;margin:0;letter-spacing:-.01em;}
.mobile-menu-btn{display:none;}
.sidebar-backdrop{display:none;}
.search-box{
  margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--grey-light);
  border-radius:20px;padding:8px 14px;width:260px;
}
.search-box input{background:none;border:none;flex:1;outline:none;font-size:13.5px;}
.search-box svg{width:15px;height:15px;color:var(--text-faint);flex-shrink:0;}
.icon-btn{
  position:relative;background:none;border:none;padding:9px;border-radius:8px;color:var(--text-muted);
  display:flex;align-items:center;justify-content:center;
}
.icon-btn:hover{background:var(--grey-light);color:var(--text);}
.icon-btn svg{width:19px;height:19px;}
.notif-dot{
  position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--brick);border-radius:50%;
  border:2px solid var(--card);
}

.content{flex:1;padding:26px 30px 60px;max-width:1400px;width:100%;margin:0 auto;}

/* ---------- Priority / status pills ---------- */
.pill{
  display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;
  padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;
}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}
.pill-urgent{background:var(--brick-light);color:var(--brick);}
.pill-haute{background:var(--amber-light);color:var(--amber);}
.pill-normale{background:var(--blue-light);color:var(--blue);}
.pill-basse{background:var(--grey-light);color:var(--grey);}

.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.status-a_faire{background:var(--grey);}
.status-en_cours{background:var(--blue);}
.status-bloque{background:var(--brick);}
.status-suspendu{background:var(--amber);}
.status-termine{background:var(--emerald);}

/* ---------- Dashboard ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:24px;}
.stat-card.clickable{cursor:pointer;transition:box-shadow .18s var(--ease),transform .18s var(--ease),border-color .18s;}
.stat-card.clickable:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:transparent;}
.chart-wrap{max-width:230px;height:220px;margin:0 auto;}
.panel-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.link-more{font-size:12.5px;color:var(--blue);font-weight:600;white-space:nowrap;transition:opacity .12s;}
.link-more:hover{opacity:.7;}
.stat-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 18px 16px;
  position:relative;overflow:hidden;box-shadow:var(--shadow-sm);
}
.stat-card .tab{position:absolute;left:0;top:0;bottom:0;width:4px;}
.stat-card .num{font-family:var(--font-display);font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1;}
.stat-card .lbl{font-size:12.5px;color:var(--text-muted);margin-top:6px;font-weight:500;}

.dash-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:start;}
.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);}
.panel h3{font-family:var(--font-display);font-size:15.5px;margin:0 0 16px;font-weight:700;display:flex;align-items:center;justify-content:space-between;}
.panel h3 .sub-count{
  font-family:var(--font-mono);font-size:11px;color:var(--text-muted);font-weight:600;
  background:var(--grey-light);padding:2px 8px;border-radius:20px;margin-left:8px;
  vertical-align:middle;letter-spacing:.01em;
}

.urgent-row{
  display:flex;align-items:center;gap:11px;padding:10px 6px;margin:0 -6px;border-bottom:1px solid var(--border);cursor:pointer;
  border-radius:6px;transition:background-color .15s var(--ease);
}
.urgent-row:last-child{border-bottom:none;}
.urgent-row:hover{background:var(--grey-light);}
.urgent-row:hover .u-title{color:var(--emerald);}
.urgent-row .u-tab{width:3px;align-self:stretch;border-radius:3px;background:var(--brick);flex-shrink:0;}
.urgent-row .u-title{font-weight:600;font-size:13.8px;transition:color .1s;}
.urgent-row .u-meta{font-size:12px;color:var(--text-faint);margin-top:2px;}
.urgent-row .u-due{margin-left:auto;font-family:var(--font-mono);font-size:11.5px;color:var(--text-muted);white-space:nowrap;}
.empty-note{color:var(--text-faint);font-size:13.5px;padding:14px 0;text-align:center;}
.loading-spin{
  display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--emerald);
  border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:8px;
}
@keyframes spin{to{transform:rotate(360deg);}}
.loading-row{display:flex;align-items:center;justify-content:center;padding:20px 0;color:var(--text-faint);font-size:13.5px;}

table.simple{width:100%;border-collapse:collapse;font-size:13.3px;}
table.simple th{text-align:left;color:var(--text-faint);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;padding:0 8px 10px;border-bottom:1px solid var(--border);}
table.simple td{padding:9px 8px;border-bottom:1px solid var(--border);}
table.simple tr:last-child td{border-bottom:none;}

/* ---------- Kanban ---------- */
.kanban-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.kanban-toolbar select{
  border:1.5px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--card);font-size:13.3px;
}
.kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:14px;overflow-x:auto;padding-bottom:10px;}
.kanban-col{background:var(--grey-light);border-radius:var(--radius);padding:12px;min-height:200px;display:flex;flex-direction:column;}
.kanban-col-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:0 4px;}
.kanban-col-head .name{font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--text);}
.kanban-col-head .count{
  margin-left:auto;background:rgba(27,36,48,.08);font-family:var(--font-mono);font-size:11px;font-weight:600;
  padding:2px 7px;border-radius:20px;color:var(--text-muted);
}
.kanban-col.drag-over{background:var(--emerald-light);outline:2px dashed var(--emerald);outline-offset:-4px;}
.kanban-cards{display:flex;flex-direction:column;gap:9px;flex:1;min-height:60px;}

.task-card{
  background:var(--card);border-radius:var(--radius-sm);padding:12px 12px 12px 14px;box-shadow:var(--shadow-sm);
  position:relative;cursor:grab;border-left:4px solid var(--grey);transition:box-shadow .18s var(--ease), transform .18s var(--ease);
}
.task-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.task-card:active{cursor:grabbing;}
.task-card.dragging{opacity:.4;}
.task-card.tab-urgent{border-left-color:var(--brick);}
.task-card.tab-haute{border-left-color:var(--amber);}
.task-card.tab-normale{border-left-color:var(--blue);}
.task-card.tab-basse{border-left-color:var(--grey);}
.task-card .title{font-weight:600;font-size:13.6px;line-height:1.35;margin-bottom:8px;}
.task-card .meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.task-card .due{
  font-family:var(--font-mono);font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:3px;
}
.task-card .due.overdue{color:var(--brick);font-weight:600;}
.task-card .assignees{display:flex;margin-left:auto;}
.task-card .mini-avatar{
  width:20px;height:20px;border-radius:50%;background:var(--blue);color:#fff;font-size:9.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;border:2px solid var(--card);margin-left:-6px;
  font-family:var(--font-display);
}
.task-card.locked{cursor:default;}
.task-card.locked:hover{box-shadow:var(--shadow-sm);}
.task-card .lock-icon{font-size:11px;opacity:.6;line-height:1;}

/* ---------- Progress bar ---------- */
.progress-track{height:5px;border-radius:10px;background:var(--grey-light);overflow:hidden;margin-top:8px;}
.progress-fill{height:100%;border-radius:10px;transition:width .2s ease;}
.progress-fill.task{background:linear-gradient(90deg,var(--emerald),#1c8874);}
.progress-fill.project{background:linear-gradient(90deg,var(--blue),#4a7fb5);}
.task-progress-row{display:flex;align-items:center;gap:8px;margin-top:8px;}
.task-progress-row .progress-track{flex:1;margin-top:0;}
.progress-pct{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);font-weight:600;min-width:28px;text-align:right;}
.progress-edit-row{display:flex;align-items:center;gap:12px;margin-bottom:4px;}
.progress-edit-row input[type="range"]{flex:1;accent-color:var(--emerald);}
.progress-value-lbl{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--emerald);min-width:38px;text-align:right;}
.field-hint{font-size:12px;color:var(--text-faint);margin:6px 0 4px;}

/* Project tag on a task card — visually distinct from task-level progress (blue vs green) */
.project-tag{
  display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--blue);
  background:var(--blue-light);border-radius:6px;padding:3px 8px;margin-bottom:9px;
}
.pill-project{background:var(--blue-light);color:var(--blue);}

.section-label{
  font-family:var(--font-display);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  color:var(--text-faint);margin-bottom:12px;
}
.export-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;}
.export-filters-grid .field{margin-bottom:0;}
.export-filters-grid select, .export-filters-grid input{width:100%;padding:9px 11px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--card);font-size:13.3px;}
.dash-greeting{
  font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.01em;margin-bottom:22px;
}
.greeting-date{
  font-family:var(--font-body);font-size:13.5px;font-weight:500;color:var(--text-faint);margin-left:10px;
  text-transform:capitalize;
}
.project-mini-row{
  display:flex;align-items:center;gap:14px;padding:11px 4px;border-bottom:1px solid var(--border);cursor:pointer;
}
.project-mini-row:last-child{border-bottom:none;}
.project-mini-row:hover .pm-title{color:var(--blue);}
.project-mini-row .pm-title{font-weight:600;font-size:13.8px;transition:color .1s;}
.project-mini-row .pm-meta{font-size:12px;color:var(--text-faint);margin-top:2px;}
.project-mini-row .pm-pct{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--blue);min-width:36px;text-align:right;}
.overdue-flag{
  display:inline-block;font-size:10px;font-weight:700;color:var(--brick);background:var(--brick-light);
  padding:2px 7px;border-radius:20px;margin-left:6px;text-transform:uppercase;letter-spacing:.02em;vertical-align:middle;
}

/* ---------- Project card ---------- */
.project-card{
  background:var(--card);border:1px solid var(--border);border-left:4px solid var(--emerald);border-radius:var(--radius-sm);
  padding:16px;cursor:pointer;transition:box-shadow .15s;
}
.project-card:hover{box-shadow:var(--shadow);}
.project-context-banner{
  background:var(--emerald-light);color:var(--emerald);border-radius:var(--radius-sm);padding:10px 13px;
  font-size:13.5px;font-weight:600;
}

/* ---------- Task list (table) ---------- */
.list-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap;}
.list-toolbar select, .list-toolbar input{border:1.5px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13.3px;background:var(--card);}
.list-toolbar .spacer{flex:1;}
.task-table{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);}
.task-table th{text-align:left;padding:11px 14px;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);border-bottom:1px solid var(--border);background:var(--grey-light);font-weight:600;}
.task-table td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13.6px;vertical-align:middle;}
.task-table tr:last-child td{border-bottom:none;}
.task-table tbody tr{cursor:pointer;transition:background .1s;}
.task-table tbody tr:hover{background:var(--grey-light);}
.task-table tr.row-inactive{opacity:.55;}
.task-table tr.row-clickable{cursor:pointer;transition:background-color .12s var(--ease);}
.task-table tr.row-clickable:hover{background:var(--grey-light);}
.task-table .t-title{font-weight:600;}

/* ---------- Calendar ---------- */
.cal-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
.cal-toolbar h3{font-family:var(--font-display);font-size:18px;margin:0;min-width:190px;font-weight:700;}
.cal-nav{display:flex;gap:4px;}
.cal-nav button{background:var(--card);border:1.5px solid var(--border);border-radius:7px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;}
.cal-nav button:hover{border-color:var(--ink);}
.view-toggle{display:flex;background:var(--grey-light);border-radius:8px;padding:3px;margin-left:auto;}
.view-toggle button{background:none;border:none;padding:6px 14px;border-radius:6px;font-size:13px;font-weight:600;color:var(--text-muted);}
.view-toggle button.active{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm);}

.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.cal-dow{background:var(--grey-light);padding:8px;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-faint);letter-spacing:.03em;}
.cal-cell{background:var(--card);min-height:104px;padding:7px;display:flex;flex-direction:column;gap:4px;}
.cal-cell.other-month{background:var(--grey-light);}
.cal-cell .daynum{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);font-weight:600;}
.cal-cell.today .daynum{background:var(--ink);color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.cal-chip{
  font-size:10.8px;padding:2px 6px;border-radius:5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  cursor:pointer;border-left:3px solid var(--grey);
}
.cal-chip.tab-urgent{border-color:var(--brick);background:var(--brick-light);color:var(--brick);}
.cal-chip.tab-haute{border-color:var(--amber);background:var(--amber-light);color:var(--amber);}
.cal-chip.tab-normale{border-color:var(--blue);background:var(--blue-light);color:var(--blue);}
.cal-chip.tab-basse{border-color:var(--grey);background:var(--grey-light);color:var(--grey);}

.cal-week-grid, .cal-day-grid{display:flex;flex-direction:column;gap:8px;}
.cal-week-day{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;}
.cal-week-day .wd-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-weight:700;font-family:var(--font-display);font-size:14px;}
.cal-week-day .wd-head .n{font-family:var(--font-mono);color:var(--text-faint);font-weight:500;font-size:12px;}

/* ---------- Team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;}
.team-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;gap:12px;align-items:center;}
.team-card.inactive{opacity:.55;}
.team-card .who{flex:1;min-width:0;}
.team-card .who .n{font-weight:600;font-size:14.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.team-card .who .r{font-size:12px;color:var(--text-faint);margin-top:2px;}
.team-card .badge-role{font-size:10px;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:20px;letter-spacing:.03em;}
.badge-admin{background:var(--emerald-light);color:var(--emerald);}
.badge-collab{background:var(--blue-light);color:var(--blue);}
.badge-super{background:#F1E7FB;color:#6B3FA0;}
.team-actions{display:flex;gap:6px;}
.icon-btn-sm{background:var(--grey-light);border:none;padding:6px;border-radius:6px;display:flex;}
.icon-btn-sm svg{width:15px;height:15px;}
.icon-btn-sm:hover{background:var(--border);}

/* ---------- Templates ---------- */
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.tpl-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--blue);border-radius:var(--radius-sm);padding:15px;}
.tpl-card .t{font-weight:700;font-size:14px;margin-bottom:4px;}
.tpl-card .d{font-size:12.8px;color:var(--text-muted);margin-bottom:10px;min-height:32px;}
.tpl-card .row{display:flex;align-items:center;justify-content:space-between;}

/* ---------- Modal ---------- */
.modal-backdrop{
  position:fixed;inset:0;background:rgba(27,36,48,.5);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;
  animation:fadein .12s ease;
}
@keyframes fadein{from{opacity:0;}to{opacity:1;}}
.modal{
  background:var(--paper);border-radius:var(--radius-lg);max-width:560px;width:100%;
  max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);
  animation:slideup .22s var(--ease);
}
@keyframes slideup{from{transform:translateY(14px) scale(.98);opacity:0;}to{transform:translateY(0) scale(1);opacity:1;}}
.modal.wide{max-width:720px;}
.modal-head{display:flex;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--paper);z-index:2;}
.modal-head h3{font-family:var(--font-display);font-size:17px;margin:0;font-weight:700;flex:1;}
.modal-close{background:none;border:none;color:var(--text-muted);padding:5px;border-radius:6px;transition:background-color .12s,color .12s,transform .12s;}
.modal-close:hover{background:var(--grey-light);color:var(--text);transform:rotate(90deg);}
.modal-body{padding:22px 24px;}
.modal-foot{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;background:var(--paper);}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field textarea{width:100%;padding:11px 13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);resize:vertical;min-height:70px;background:var(--card);}
.field select{width:100%;padding:11px 13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--card);}
.chip-select{display:flex;flex-wrap:wrap;gap:7px;}
.chip-option{
  border:1.5px solid var(--border);border-radius:20px;padding:6px 13px;font-size:13px;font-weight:500;background:var(--card);
  display:flex;align-items:center;gap:6px;transition:.12s;
}
.chip-option.selected{background:var(--ink);color:#fff;border-color:var(--ink);}

.checkbox-list{
  display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto;
  border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:6px;background:var(--card);
}
.checkbox-item{
  display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:13.5px;
}
.checkbox-item:hover{background:var(--grey-light);}
.checkbox-item input[type="checkbox"]{width:15px;height:15px;flex-shrink:0;cursor:pointer;accent-color:var(--emerald);}
.checkbox-item .gs-sub{margin-left:auto;}

/* Task detail modal */
.task-detail-top{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.task-detail-desc{color:var(--text-muted);font-size:14px;line-height:1.55;margin-bottom:18px;white-space:pre-wrap;}
.detail-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;}
.meta-block{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;}
.meta-block .lk{font-size:10.5px;text-transform:uppercase;color:var(--text-faint);font-weight:700;letter-spacing:.03em;margin-bottom:4px;}
.meta-block .lv{font-size:13.6px;font-weight:600;}
.status-select-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px;}
.status-choice{
  border:1.5px solid var(--border);background:var(--card);border-radius:8px;padding:8px 12px;font-size:12.8px;font-weight:600;
  display:flex;align-items:center;gap:6px;
}
.status-choice.active{border-color:var(--ink);background:var(--ink);color:#fff;}
.status-choice.active .status-dot{background:var(--card);}

.tabs-row{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;}
.tab-btn{background:none;border:none;padding:9px 4px;margin-right:18px;font-weight:600;font-size:13.5px;color:var(--text-faint);border-bottom:2px solid transparent;}
.tab-btn.active{color:var(--ink);border-color:var(--emerald);}

.comment{display:flex;gap:10px;margin-bottom:14px;}
.comment .avatar{width:28px;height:28px;font-size:11px;flex-shrink:0;}
.comment .bubble{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;flex:1;}
.comment .cn{font-weight:600;font-size:12.8px;}
.comment .ct{font-size:11px;color:var(--text-faint);font-family:var(--font-mono);margin-left:6px;}
.comment .cx{font-size:13.4px;margin-top:3px;line-height:1.5;}
.comment-input-row{display:flex;gap:8px;margin-top:6px;}
.comment-input-row input{flex:1;padding:10px 13px;border:1.5px solid var(--border);border-radius:20px;background:var(--card);}

.history-item{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px;}
.history-item:last-child{border:none;}
.history-item .h-dot{width:7px;height:7px;border-radius:50%;background:var(--emerald);margin-top:5px;flex-shrink:0;}
.history-item .h-txt b{font-weight:600;}
.history-item .h-time{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);margin-top:1px;}

/* ---------- Urgent popup ---------- */
.urgent-popup .modal{max-width:460px;}
.urgent-popup .modal-head{background:var(--brick);color:#fff;border:none;}
.urgent-popup .modal-head h3{color:#fff;}
.urgent-popup .modal-close{color:#fff;}
.urgent-popup-list{display:flex;flex-direction:column;gap:9px;}
.urgent-popup-item{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--brick);border-radius:var(--radius-sm);padding:11px 13px;}
.urgent-popup-item .t{font-weight:600;font-size:13.8px;}
.urgent-popup-item .d{font-size:12px;color:var(--text-faint);margin-top:2px;}

/* ---------- Notifications dropdown ---------- */
.notif-dropdown{
  position:absolute;top:60px;right:26px;width:340px;background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:60;max-height:420px;overflow-y:auto;
}
.notif-dropdown .nd-head{padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;font-weight:700;font-size:13.5px;font-family:var(--font-display);}
.notif-dropdown .nd-head button{margin-left:auto;background:none;border:none;color:var(--emerald);font-size:12px;font-weight:600;}
.notif-item{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;display:flex;gap:9px;cursor:pointer;align-items:flex-start;}
.n-del{border:none;background:transparent;color:var(--text-faint);cursor:pointer;font-size:12px;padding:2px 5px;border-radius:4px;flex-shrink:0;opacity:0;transition:opacity .1s;}
.notif-item:hover .n-del{opacity:1;}
.n-del:hover{background:var(--grey-light);color:var(--brick);}
.notif-item:hover{background:var(--grey-light);}
.notif-item.unread .n-dot{background:var(--emerald);}
.notif-item .n-dot{width:7px;height:7px;border-radius:50%;background:transparent;margin-top:5px;flex-shrink:0;}
.notif-item .n-txt{flex:1;}
.notif-item .n-time{font-size:11px;color:var(--text-faint);margin-top:2px;font-family:var(--font-mono);}

/* Toast */
.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:8px;}
.toast{background:var(--ink);color:#fff;padding:12px 18px;border-radius:9px;font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideup .15s ease;}

.empty-state{text-align:center;padding:50px 20px;color:var(--text-faint);}
.empty-state svg{width:40px;height:40px;margin-bottom:10px;opacity:.5;}

/* ---------- Distinction visuelle admin / collaborateur / pôle ---------- */
.role-admin{--role-accent:var(--emerald);--role-accent-light:var(--emerald-light);}
.role-admin .sidebar{background:var(--role-sidebar-bg, var(--ink));}
.role-admin .sidebar .brand .mark{background:var(--role-accent);}
.role-admin #side-avatar{background:var(--role-accent);}
.role-admin .btn-emerald{background:var(--role-accent);}
.role-admin .topbar{border-top:4px solid var(--role-accent);}
.role-admin .role-badge-pill{background:var(--role-accent-light);color:var(--role-accent);}

.role-collab{--role-accent:var(--blue);--role-accent-light:var(--blue-light);}
.role-collab .sidebar{background:var(--role-sidebar-bg, var(--ink-collab));}
.role-collab .sidebar .brand .mark{background:var(--role-accent);}
.role-collab .nav-item.active{background:rgba(255,255,255,.14);}
.role-collab .nav-item:hover{background:rgba(255,255,255,.08);}
.role-collab #side-avatar{background:var(--role-accent);}
.role-collab .btn-emerald{background:var(--role-accent);}
.role-collab .btn-emerald:hover{background:#2a5686;}
.role-collab .topbar{border-top:4px solid var(--role-accent);}
.role-collab .role-badge-pill{background:var(--role-accent-light);color:var(--role-accent);}

.role-super{--role-accent:#6B3FA0;--role-accent-light:#F1E7FB;}
.role-super .sidebar{background:#241B33;}
.role-super .sidebar .brand .mark{background:var(--role-accent);}
.role-super .nav-item.active{background:rgba(255,255,255,.14);}
.role-super .nav-item:hover{background:rgba(255,255,255,.08);}
.role-super #side-avatar{background:var(--role-accent);}
.role-super .btn-emerald{background:var(--role-accent);}
.role-super .btn-emerald:hover{background:#5a3486;}
.role-super .topbar{border-top:4px solid var(--role-accent);}
.role-super .role-badge-pill{background:var(--role-accent-light);color:var(--role-accent);}

.role-badge-pill{
  display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;padding:3px 9px;border-radius:20px;margin-left:10px;vertical-align:middle;
}

.pole-indicator{padding:10px 12px;background:rgba(255,255,255,.06);border-radius:8px;color:#fff;font-size:13px;font-weight:600;}
.pole-indicator select{
  width:100%;padding:7px 9px;border-radius:6px;border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.08);color:#fff;font-size:12.5px;
}
.pole-indicator select option{color:#111;}

/* ---------- Discussions (chat) ---------- */
.chat-layout{display:flex;height:calc(100vh - 150px);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card);}
.chat-sidebar{width:260px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--card);}
.chat-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-weight:700;font-family:var(--font-display);font-size:13.5px;border-bottom:1px solid var(--border);}
.channel-list{flex:1;overflow-y:auto;}
.channel-item{padding:11px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background-color .15s var(--ease);border-left:3px solid transparent;}
.channel-item:hover{background:var(--grey-light);}
.channel-item.active{background:var(--emerald-light);border-left-color:var(--role-accent, var(--emerald));}
.channel-item .ch-name{font-weight:700;font-size:13.5px;}
.channel-item .ch-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.channel-item .ch-unread-badge{
  background:var(--brick);color:#fff;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:20px;
  font-family:var(--font-mono);flex-shrink:0;
}
.channel-item .ch-last-unread{font-weight:700;color:var(--text);}
.toast.chat-toast{cursor:pointer;max-width:280px;}
.toast.chat-toast b{display:block;margin-bottom:3px;font-family:var(--font-display);}
.chat-seen-by{display:flex;align-items:center;gap:6px;padding:4px 0 0 42px;font-size:11px;color:var(--text-faint);}
.chat-seen-by .avatar{width:18px;height:18px;font-size:8px;margin-left:-6px;border:2px solid var(--card);}
.chat-seen-by .avatar:first-child{margin-left:0;}
.channel-item .ch-scope{font-size:11px;color:var(--text-faint);margin-top:2px;}
.channel-item .ch-last{font-size:11.5px;color:var(--text-muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;}
.chat-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);gap:12px;}
.chat-title{font-family:var(--font-display);font-weight:700;font-size:15px;}
.chat-subtitle{font-size:11.5px;color:var(--text-faint);margin-top:2px;}
.chat-messages{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:14px;}
.chat-msg{display:flex;gap:10px;max-width:70%;}
.chat-msg.own{flex-direction:row-reverse;margin-left:auto;}
.chat-bubble{background:var(--grey-light);border-radius:12px;padding:9px 13px;}
.chat-msg.own .chat-bubble{background:var(--emerald-light);}
.cm-head{display:flex;gap:8px;align-items:baseline;margin-bottom:2px;}
.cm-author{font-weight:700;font-size:12px;}
.cm-time{font-size:10.5px;color:var(--text-faint);font-family:var(--font-mono);}
.cm-text{font-size:13.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word;}
.chat-input-row{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--border);}
.chat-input-row input{flex:1;padding:10px 14px;border:1.5px solid var(--border);border-radius:20px;background:var(--card);}
.chat-pending-attachment{padding:8px 20px;font-size:12.5px;color:var(--text-muted);background:var(--grey-light);}
.chat-pending-attachment.hidden{display:none;}
.chat-bubble-wrap{display:flex;flex-direction:column;gap:3px;min-width:0;}
.cm-head{display:flex;gap:8px;align-items:center;margin-bottom:2px;position:relative;}
.cm-actions{margin-left:auto;display:none;gap:4px;}
.chat-msg:hover .cm-actions{display:flex;}
.cm-action-btn{border:none;background:transparent;cursor:pointer;font-size:12px;padding:1px 3px;border-radius:4px;opacity:.7;}
.cm-action-btn:hover{opacity:1;background:rgba(0,0,0,.06);}
.cm-deleted{font-style:italic;color:var(--text-faint);}
.cm-attach-img{max-width:220px;max-height:160px;border-radius:8px;margin-top:6px;display:block;}
.cm-attach-file{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;color:var(--emerald);text-decoration:underline;}
.cm-attach-wrap{display:inline-flex;align-items:center;gap:6px;}
.cm-attach-dl{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;
  color:var(--text-faint);transition:background-color .12s,color .12s;flex-shrink:0;
}
.cm-attach-dl svg{width:14px;height:14px;}
.cm-attach-dl:hover{background:var(--grey-light);color:var(--emerald);}
.cm-reactions-row{display:flex;gap:5px;flex-wrap:wrap;margin-left:2px;}
.cm-reaction{font-size:11.5px;padding:2px 7px;border-radius:12px;background:var(--grey-light);border:1px solid var(--border);cursor:pointer;}
.cm-reaction.mine{background:var(--emerald-light);border-color:var(--emerald);}
.cm-edit-row{display:flex;gap:8px;align-items:center;}
.cm-edit-input{flex:1;padding:5px 9px;border:1.5px solid var(--emerald);border-radius:6px;font-size:13.5px;}
.emoji-popover{
  z-index:200;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);
  padding:8px;display:grid;grid-template-columns:repeat(10,1fr);gap:2px;
  max-width:280px;max-height:220px;overflow-y:auto;
}
.emoji-opt{font-size:19px;cursor:pointer;padding:4px;border-radius:6px;text-align:center;}
.emoji-opt:hover{background:var(--grey-light);}

.pole-tag{
  display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;
  background:var(--grey-light);color:var(--text-muted);border:1px solid var(--border);
}
.stage-tag{
  display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;
  background:#EDE7F6;color:#5E35B1;border:1px solid #D8CCF0;cursor:default;
}

/* ---------- Recherche globale ---------- */
#global-search-results{
  position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:420px;overflow-y:auto;
  background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);
  z-index:150;padding:6px 0;
}
.gs-section-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--text-faint);padding:8px 14px 4px;}
.gs-item{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;font-size:13px;}
.gs-item.highlighted{background:var(--grey-light);}
.gs-item:hover{background:var(--grey-light);}
.gs-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gs-sub{font-size:11px;color:var(--text-faint);flex-shrink:0;}
.gs-empty{padding:14px;color:var(--text-faint);font-size:13px;}

.reassign-row{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px;border-bottom:1px solid var(--border);}
.reassign-row input{flex-shrink:0;}

/* ---------- Notes ---------- */
.notes-layout{display:flex;height:100%;}
.notes-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--card);}
.notes-main{flex:1;display:flex;flex-direction:column;padding:22px 28px;overflow-y:auto;}
.notes-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:6px;}
.notes-toolbar #note-title{flex:1;border:none;font-size:22px;font-weight:700;font-family:var(--font-display);padding:6px 0;background:transparent;}
.notes-toolbar #note-title:focus{outline:none;}
.notes-meta{font-size:12px;color:var(--text-faint);margin-bottom:18px;}

.notes-format-bar{display:flex;gap:4px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);margin-bottom:14px;flex-wrap:wrap;}
.nfb-select{
  border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:12.5px;
  background:var(--card);color:var(--text);cursor:pointer;
}
.nfb-sep{width:1px;align-self:stretch;background:var(--border);margin:0 4px;}
.nfb-btn{
  border:none;background:transparent;padding:6px 10px;border-radius:6px;cursor:pointer;
  font-size:13px;font-family:var(--font-body);color:var(--text-muted);
}
.nfb-btn:hover{background:var(--grey-light);color:var(--text);}

.notes-editor{
  flex:1;border:none;background:transparent;font-size:14.5px;line-height:1.7;min-height:400px;outline:none;
}
.notes-editor:empty:before{content:attr(data-placeholder);color:var(--text-faint);}
.notes-editor h1{font-size:22px;font-weight:700;margin:14px 0 8px;font-family:var(--font-display);}
.notes-editor h2{font-size:18px;font-weight:700;margin:12px 0 6px;font-family:var(--font-display);}
.notes-editor ul, .notes-editor ol{padding-left:22px;margin:6px 0;}
.notes-editor p{margin:0 0 8px;}

.note-presence-chip{display:inline-block;margin-left:-6px;border-radius:50%;border:2px solid #fff;position:relative;}
.note-presence-chip.editing{box-shadow:0 0 0 2px var(--emerald);}

#t-dossier-results, #p-dossier-results{
  position:absolute;top:100%;left:0;right:0;max-height:260px;overflow-y:auto;
  background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);
  z-index:150;padding:6px 0;margin-top:4px;
}

.ch-section-label{
  font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;
  color:var(--text-faint);padding:12px 16px 6px;
}

.mention{
  background:var(--role-accent-light, var(--emerald-light));color:var(--role-accent, var(--emerald));
  font-weight:700;padding:1px 4px;border-radius:4px;
}
.mention-popover{min-width:180px;}
.mention-suggestion{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;}
.mention-suggestion:hover{background:var(--grey-light);}

/* ---------- Guide utilisateur ---------- */
.guide-role-banner{
  padding:12px 18px;background:var(--role-accent-light, var(--emerald-light));color:var(--role-accent, var(--emerald));
  border-radius:var(--radius);margin-bottom:18px;font-weight:600;font-size:13.5px;
}
.guide-item{border-bottom:1px solid var(--border);padding:12px 0;}
.guide-item:last-child{border-bottom:none;}
.guide-item summary{
  cursor:pointer;font-weight:700;font-size:14px;font-family:var(--font-display);
  list-style:none;display:flex;align-items:center;gap:8px;
}
.guide-item summary::before{content:"▸";color:var(--text-faint);transition:transform .15s;}
.guide-item[open] summary::before{transform:rotate(90deg);}
.guide-item summary::-webkit-details-marker{display:none;}
.guide-body{padding:10px 4px 2px 20px;color:var(--text-muted);font-size:13.5px;line-height:1.6;}
.guide-body code{
  font-family:var(--font-mono);background:var(--grey-light);padding:1px 6px;border-radius:5px;
  font-size:12.5px;color:var(--text);white-space:normal;
}
.guide-body p{margin:0 0 10px;}
.guide-body p:last-child{margin-bottom:0;}
.guide-body b{color:var(--text);}
@media (max-width: 980px){
  .chat-layout{flex-direction:column;height:auto;}
  .chat-sidebar{width:100%;max-height:200px;}
}

@media (max-width: 980px){
  .sidebar{position:fixed;left:-236px;z-index:90;transition:left .22s var(--ease);top:0;bottom:0;}
  .sidebar.open{left:0;box-shadow:var(--shadow-lg);}
  .sidebar-backdrop.visible{
    display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:85;
    animation:fadein .15s ease;
  }
  .mobile-menu-btn{display:inline-flex;}
  .topbar{padding:0 12px;gap:10px;}
  .topbar h2{font-size:16px;}
  .role-badge-pill{display:none;}
  .search-box{margin-left:0;flex:1;min-width:0;}
  .search-box input::placeholder{font-size:12.5px;}
  #new-task-btn{display:none !important;}

  .stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .dash-grid{grid-template-columns:1fr;}
  .kanban-board{grid-auto-flow:row;grid-template-columns:1fr;grid-auto-columns:unset;}
  .form-row{grid-template-columns:1fr;}
  .content{padding:14px 12px 60px;}

  .modal-backdrop{padding:0;align-items:flex-end;}
  .modal, .modal.wide{max-width:100%;width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:92vh;}

  .task-table{display:block;overflow-x:auto;white-space:nowrap;}
  .notes-layout{flex-direction:column;height:auto;}
  .notes-sidebar{width:100%;max-height:220px;}
  .notes-main{padding:16px;}
  .notes-toolbar{flex-wrap:wrap;gap:10px;}
  .comparison-table{display:block;overflow-x:auto;}
}

@media (max-width: 560px){
  .stat-grid{grid-template-columns:1fr;}
  .topbar h2{display:none;}
  .login-card{padding:28px 22px;margin:0 14px;}
  #update-banner{left:14px;right:14px;bottom:14px;max-width:none;}
  .offline-card{max-width:280px;}
}

/* ---------- Mobile : documents, dossiers, corbeille, graphiques d'Analyses ---------- */
@media (max-width: 980px){
  .doc-upload-row{flex-wrap:wrap;gap:8px;}
  .doc-upload-row .field-hint{width:100%;margin-left:0 !important;}
  .doc-row{flex-wrap:wrap;padding:12px 4px;}
  .doc-actions{margin-left:auto;}
  .fs-breadcrumb{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:2px;}
  .fs-crumb{flex-shrink:0;}
  .notes-sidebar .chat-sidebar-head select{font-size:13px;}
  /* Les graphiques d'Analyses fixent une largeur en pixels en JS (max-width:600px) — sur un
     téléphone plus étroit que ça, on la laisse s'adapter à l'écran plutôt que de déborder. */
  #workload-chart-wrap, #pole-chart-wrap, .chart-wrap{max-width:100% !important;}
}

@media (max-width: 560px){
  .doc-icon{display:none;}
  .doc-meta{font-size:11px;}
  .fs-crumb{font-size:11.5px;padding:3px 5px;}
}

/* ---------- Documents ---------- */
.doc-upload-row{margin-bottom:16px;}
.doc-list{display:flex;flex-direction:column;}
.doc-row{
  display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--border);
  transition:background-color .12s var(--ease);
}
.doc-row:hover{background:var(--grey-light);}
.doc-row:last-child{border-bottom:none;}
.doc-icon{font-size:22px;flex-shrink:0;width:32px;text-align:center;}
.doc-info{flex:1;min-width:0;}
.doc-name{font-weight:600;font-size:13.8px;color:var(--text);text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.doc-name:hover{color:var(--emerald);text-decoration:underline;}
.doc-meta{font-size:12px;color:var(--text-faint);margin-top:2px;}
.doc-actions{display:flex;gap:4px;flex-shrink:0;}
.doc-panel-compact .doc-icon{font-size:18px;width:26px;}
.doc-panel-compact .doc-name{font-size:13px;}
.trash-countdown{
  font-size:11.5px;font-weight:700;color:var(--text-faint);flex-shrink:0;white-space:nowrap;
  background:var(--grey-light);padding:4px 9px;border-radius:20px;
}
.trash-countdown-urgent{background:var(--brick-light);color:var(--brick);}

/* ---------- Dossiers de classement (documents et notes) ---------- */
.folder-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.folder-chip-wrap{display:inline-flex;align-items:center;gap:2px;}
.folder-chip{
  border:1px solid var(--border);background:var(--card);color:var(--text-muted);border-radius:20px;
  padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .12s var(--ease);
  display:inline-flex;align-items:center;gap:6px;
}
.folder-chip:hover{border-color:var(--emerald);color:var(--text);}
.folder-chip.active{background:var(--emerald);color:#fff;border-color:var(--emerald);}
.folder-count{font-family:var(--font-mono);font-size:10.5px;opacity:.75;}
.folder-del-btn{
  background:none;border:none;color:var(--text-faint);cursor:pointer;padding:2px 4px;font-size:13px;
  border-radius:50%;line-height:1;
}
.folder-del-btn:hover{background:var(--brick-light);color:var(--brick);}

/* ---------- Navigation en arborescence (fil d'Ariane) ---------- */
.fs-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin-bottom:12px;font-size:12.5px;}
.fs-crumb{
  background:none;border:none;color:var(--emerald);cursor:pointer;padding:4px 6px;border-radius:6px;
  font-size:12.5px;font-weight:600;
}
.fs-crumb:hover{background:var(--grey-light);}
.fs-crumb.current{color:var(--text);cursor:default;font-weight:700;}
.fs-crumb.current:hover{background:none;}
.fs-sep{color:var(--text-faint);padding:0 1px;}
.fs-folder-row{cursor:pointer;}
.fs-folder-row .doc-name, .fs-folder-row .ch-name{font-weight:700;}
#doc-trash-btn.active, #note-trash-btn.active{background:var(--brick-light);color:var(--brick);border-color:var(--brick);}

/* ---------- Glisser-déposer (documents, notes, dossiers) ---------- */
.fs-dragging{opacity:.4;}
.fs-drop-hover{
  background:var(--emerald-light) !important;outline:2px dashed var(--emerald);outline-offset:-2px;
  border-radius:8px;
}
[draggable="true"]{cursor:grab;}
[draggable="true"]:active{cursor:grabbing;}

/* ---------- Carte "à propos du développeur" — animée, dans l'Aide et en fenêtre ---------- */
.dev-card{
  position:relative;margin-top:20px;border-radius:16px;padding:2px;overflow:hidden;
  background:linear-gradient(135deg,#1B6B4A,#2E8B6F,#4FA88F,#1B6B4A);
  background-size:300% 300%;animation:devGradientShift 8s ease infinite;
}
@keyframes devGradientShift{
  0%{background-position:0% 50%;} 50%{background-position:100% 50%;} 100%{background-position:0% 50%;}
}
.dev-card-glow{
  position:absolute;inset:-40%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.25),transparent 60%);
  pointer-events:none;animation:devGlowFloat 6s ease-in-out infinite;
}
@keyframes devGlowFloat{
  0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(6%,4%) scale(1.08);}
}
.dev-card-inner{
  position:relative;background:var(--card);border-radius:14px;padding:26px;
  display:flex;gap:20px;align-items:flex-start;
}
.dev-avatar{
  flex-shrink:0;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:800;font-size:22px;color:#fff;
  background:linear-gradient(135deg,#1B6B4A,#4FA88F);box-shadow:0 4px 16px rgba(27,107,74,.35);
  animation:devAvatarPulse 3s ease-in-out infinite;
}
@keyframes devAvatarPulse{
  0%,100%{box-shadow:0 4px 16px rgba(27,107,74,.35);} 50%{box-shadow:0 4px 24px rgba(27,107,74,.6);}
}
.dev-info{flex:1;min-width:0;}
.dev-name{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-.01em;}
.dev-title{font-size:13px;color:var(--text-muted);margin-top:2px;margin-bottom:12px;}
.dev-title .dev-at{color:var(--text-faint);}
.dev-title b{color:var(--emerald);}
.dev-bio{font-size:13.5px;line-height:1.6;color:var(--text);margin:0 0 10px;}
.dev-contact-row{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap;}
.dev-contact-btn{
  display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:30px;
  background:var(--emerald);color:#fff;text-decoration:none;font-weight:700;font-size:13px;
  box-shadow:0 2px 10px rgba(27,107,74,.3);transition:transform .18s var(--ease),box-shadow .18s var(--ease);
}
.dev-contact-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(27,107,74,.4);}
.dev-contact-btn svg{width:15px;height:15px;flex-shrink:0;}
.dev-copy-btn{
  width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--grey-light);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);
  transition:background .15s,color .15s;
}
.dev-copy-btn:hover{background:var(--emerald-light);color:var(--emerald);}
.dev-copy-btn svg{width:15px;height:15px;}

.sidebar-credit{
  padding:12px 14px 6px;font-size:11.5px;text-align:center;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;
}
.sidebar-credit .sc-spark{display:inline-block;animation:scSparkPulse 1.8s ease-in-out infinite;}
@keyframes scSparkPulse{
  0%,100%{transform:scale(1) rotate(0deg);opacity:.7;}
  50%{transform:scale(1.25) rotate(15deg);opacity:1;}
}
.sidebar-credit .sc-text{
  background:linear-gradient(90deg,var(--text-faint) 0%,var(--emerald) 25%,var(--text-faint) 50%);
  background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;
  animation:scTextShimmer 3.5s linear infinite;font-weight:700;
}
@keyframes scTextShimmer{
  0%{background-position:200% center;} 100%{background-position:-200% center;}
}
.sidebar-credit:hover .sc-text{animation-duration:1.2s;}
.sidebar-version{
  padding:0 14px 12px;font-size:10.5px;text-align:center;color:var(--text-faint);
}

@media (max-width:560px){
  .dev-card-inner{flex-direction:column;align-items:center;text-align:center;}
  .dev-contact-row{justify-content:center;}
}

/* ---------- Kanban : sélecteur Tâches / Projets / Les deux ---------- */
.kb-view-toggle{display:flex;gap:2px;background:var(--grey-light);border-radius:8px;padding:3px;margin-right:10px;}
.kb-view-btn{
  border:none;background:none;padding:6px 14px;border-radius:6px;font-size:12.5px;font-weight:600;
  color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;
}
.kb-view-btn.active{background:var(--card);color:var(--role-accent, var(--emerald));box-shadow:var(--shadow-sm);}
.kb-section-title{margin:22px 0 12px;font-family:var(--font-display);font-size:15px;}

.kb-show-more-btn{
  width:100%;margin-top:8px;padding:8px;border:1px dashed var(--border);border-radius:8px;
  background:none;color:var(--emerald);font-size:12.5px;font-weight:600;cursor:pointer;
  transition:background .15s;
}
.kb-show-more-btn:hover{background:var(--emerald-light);}

/* ---------- Vue tableau (pôles en mode tableau, ex : Juridique) ---------- */
.jt-panel{
  border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:16px;
  background:var(--card);
}
.jt-panel-head{
  display:flex;align-items:center;gap:9px;padding:14px 18px;
  background:linear-gradient(135deg,var(--role-accent-light, var(--emerald-light)),transparent);
  border-bottom:1px solid var(--border);
}
.jt-panel-icon{font-size:16px;}
.jt-panel-title{font-family:var(--font-display);font-weight:700;font-size:14.5px;letter-spacing:-.01em;}
.jt-panel-pole{
  margin-left:auto;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;
  background:var(--role-accent, var(--emerald));color:#fff;text-transform:uppercase;letter-spacing:.03em;
}

.jt-progress-row{
  display:flex;align-items:center;gap:12px;padding:14px 18px;
  border-bottom:1px solid var(--border);background:var(--grey-light);
}
.jt-progress-row label{font-size:12.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;}
.jt-progress-select{
  --jt-color:var(--emerald);
  flex:1;padding:9px 14px;border-radius:9px;border:1.5px solid var(--jt-color);
  background:color-mix(in srgb, var(--jt-color) 12%, var(--card));
  color:var(--jt-color);font-weight:700;font-size:13.5px;cursor:pointer;
  transition:box-shadow .15s;
}
.jt-progress-select:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--jt-color) 25%, transparent);}
.jt-progress-select:disabled{opacity:.65;cursor:not-allowed;}

.jt-table{width:100%;border-collapse:collapse;}
.jt-table tr{border-bottom:1px solid var(--border);}
.jt-table tr:last-child{border-bottom:none;}
.jt-table tr:hover{background:var(--grey-light);}
.jt-label{
  width:210px;padding:11px 18px;font-size:12.5px;font-weight:600;color:var(--text-muted);
  vertical-align:middle;white-space:nowrap;
}
.jt-value{padding:7px 18px 7px 4px;vertical-align:middle;}
.jt-mono{font-family:var(--font-mono);font-size:13px;color:var(--text);}
.jt-input{
  width:100%;border:1px solid transparent;background:none;padding:7px 8px;border-radius:7px;
  font-size:13.5px;font-family:inherit;color:var(--text);transition:background .15s,border-color .15s;
}
.jt-input:hover:not(:disabled){background:var(--grey-light);}
.jt-input:focus{outline:none;background:var(--card);border-color:var(--emerald);box-shadow:0 0 0 3px var(--emerald-light);}
.jt-input:disabled{color:var(--text-faint);cursor:not-allowed;}
select.jt-input{cursor:pointer;}

@media (max-width:560px){
  .jt-label{width:130px;font-size:11.5px;padding:9px 10px;}
  .jt-value{padding:5px 10px 5px 2px;}
  .jt-progress-row{flex-direction:column;align-items:stretch;gap:6px;}
}

/* ---------- Navigation Année → Mois → Tâches (pôles en vue tableau) ---------- */
.jt-drill-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;
}
.jt-drill-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:24px 14px;border-radius:14px;border:1.5px solid var(--border);background:var(--card);
  cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s;
  position:relative;
}
.jt-drill-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--emerald);}
.jt-drill-big{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--text);}
.jt-drill-sub{font-size:12px;color:var(--text-faint);font-weight:600;}
.jt-drill-delete{
  position:absolute;top:8px;right:10px;color:var(--brick);opacity:.55;cursor:pointer;
  transition:opacity .15s;
}
.jt-drill-delete svg{width:15px;height:15px;display:block;}
.jt-drill-delete:hover{opacity:1;}
.jt-drill-check{position:absolute;top:10px;left:10px;cursor:pointer;}

.jt-breadcrumb{
  display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;color:var(--text-faint);
}
.jt-breadcrumb button{
  background:none;border:none;color:var(--role-accent, var(--emerald));font-weight:700;cursor:pointer;padding:2px 4px;
  font-size:13px;border-radius:6px;transition:background .15s;
}
.jt-breadcrumb button:hover{background:var(--role-accent-light, var(--emerald-light));}
.jt-breadcrumb-current{font-weight:700;color:var(--text);}

/* ---------- Champs protégés (Année/Mois) dans la fiche tâche — vue tableau ---------- */
.jt-locked-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;}
.jt-locked-text{font-size:13.5px;color:var(--text);}
.jt-unlock-btn{
  border:none;background:none;cursor:pointer;font-size:13px;opacity:.5;padding:2px 6px;border-radius:6px;
  transition:opacity .15s,background .15s;
}
.jt-unlock-btn:hover{opacity:1;background:var(--grey-light);}

/* ---------- Pagination de l'onglet Tâches ---------- */
.tl-pagination{
  display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 0 4px;
}
.tl-pagination-count{font-size:12.5px;color:var(--text-faint);font-weight:600;font-family:var(--font-mono);}

/* ---------- Présence en ligne ---------- */
.presence-dot{
  display:inline-block;width:9px;height:9px;border-radius:50%;margin-left:auto;flex-shrink:0;
  border:1.5px solid var(--card);
}
.presence-online{background:#22C55E;box-shadow:0 0 0 2px rgba(34,197,94,.18);}
.presence-offline{background:var(--text-faint);}

/* ---------- Hors connexion ---------- */
#offline-overlay{
  position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 40%, var(--paper) 0%, var(--ink) 140%);
  animation:offline-fade-in .4s var(--ease);
}
#offline-overlay.hidden{display:none;}
@keyframes offline-fade-in{from{opacity:0;}to{opacity:1;}}
.offline-card{
  text-align:center;max-width:340px;padding:0 24px;position:relative;
  animation:offline-rise .5s var(--ease) .1s both;
}
@keyframes offline-rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
.offline-pulse-ring{
  position:absolute;top:-30px;left:50%;transform:translateX(-50%);
  width:110px;height:110px;border-radius:50%;border:1.5px solid var(--brick);opacity:0;
  animation:offline-pulse 2.4s var(--ease) infinite;
}
@keyframes offline-pulse{
  0%{opacity:.55;transform:translateX(-50%) scale(.7);}
  100%{opacity:0;transform:translateX(-50%) scale(1.35);}
}
.offline-icon{
  width:56px;height:56px;color:var(--brick);margin-bottom:18px;position:relative;
  animation:offline-shake 3.5s ease-in-out infinite;
}
@keyframes offline-shake{
  0%,88%,100%{transform:rotate(0deg);}
  90%{transform:rotate(-4deg);}
  92%{transform:rotate(4deg);}
  94%{transform:rotate(-3deg);}
  96%{transform:rotate(0deg);}
}
.offline-card h3{
  font-family:var(--font-display);font-size:21px;font-weight:700;color:var(--text);margin:0 0 8px;
}
.offline-card p{font-size:13.5px;color:var(--text-muted);line-height:1.55;margin:0;}
.offline-dots{display:flex;justify-content:center;gap:6px;margin-top:22px;}
.offline-dots span{
  width:7px;height:7px;border-radius:50%;background:var(--brick);opacity:.35;
  animation:offline-dot-bounce 1.4s ease-in-out infinite;
}
.offline-dots span:nth-child(2){animation-delay:.18s;}
.offline-dots span:nth-child(3){animation-delay:.36s;}
@keyframes offline-dot-bounce{
  0%,60%,100%{opacity:.35;transform:translateY(0);}
  30%{opacity:1;transform:translateY(-5px);}
}

/* ---------- Nouvelle version disponible ---------- */
#update-banner{position:fixed;bottom:22px;right:22px;z-index:900;max-width:340px;}
#update-banner.hidden{display:none;}
.update-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);padding:18px 20px;display:flex;gap:14px;
  animation:update-card-in .5s var(--ease);
}
@keyframes update-card-in{
  from{opacity:0;transform:translateY(18px) scale(.97);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
.update-card-icon{font-size:22px;line-height:1;animation:update-icon-twinkle 2.2s ease-in-out infinite;}
@keyframes update-icon-twinkle{
  0%,100%{transform:scale(1) rotate(0deg);}
  50%{transform:scale(1.15) rotate(8deg);}
}
.update-card-body h4{
  font-family:var(--font-display);font-size:14.5px;font-weight:700;color:var(--text);margin:0 0 3px;
}
.update-card-title{font-size:12.5px;font-weight:600;color:var(--emerald);margin-bottom:8px;}
.update-card-body ul{margin:0 0 14px;padding-left:18px;}
.update-card-body li{font-size:12.5px;color:var(--text-muted);line-height:1.5;margin-bottom:3px;}
.update-card-actions{display:flex;gap:8px;}

/* ---------- Discussion rapide (Alt+M) ---------- */
.quick-chat-panel{
  position:fixed;bottom:20px;right:20px;z-index:850;width:340px;height:460px;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;
  animation:update-card-in .3s var(--ease);
}
.qc-head{
  display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);
  font-family:var(--font-display);font-weight:700;font-size:13.5px;flex-shrink:0;
}
.qc-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.qc-back,.qc-close{border:none;background:none;cursor:pointer;font-size:15px;padding:2px 6px;border-radius:6px;color:var(--text-muted);}
.qc-back:hover,.qc-close:hover{background:var(--grey-light);}
.qc-body{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;}
.qc-input-row{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border);flex-shrink:0;}
.qc-input-row input{flex:1;}
.qc-msg{margin-bottom:12px;}
.qc-msg.own{text-align:right;}
.qc-msg-head{font-size:11px;color:var(--text-faint);margin-bottom:2px;}
.qc-msg-time{font-weight:400;}
.qc-msg-text{
  display:inline-block;background:var(--grey-light);padding:7px 11px;border-radius:10px;
  font-size:13px;max-width:85%;text-align:left;word-wrap:break-word;
}
.qc-msg.own .qc-msg-text{background:var(--emerald-light);}
@media (max-width:560px){
  .quick-chat-panel{width:calc(100vw - 20px);right:10px;left:10px;bottom:10px;height:70vh;}
}

/* ---------- Aperçu de fichier (Excel / Word) ---------- */
.preview-sheet-name{
  font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--text);
  margin:14px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border);
}
.preview-sheet-name:first-child{margin-top:0;}
.preview-sheet-table{overflow-x:auto;max-width:100%;}
.preview-sheet-table table{border-collapse:collapse;font-size:12.5px;}
.preview-sheet-table td{border:1px solid var(--border);padding:5px 9px;white-space:nowrap;}
.preview-word-doc{font-size:13.5px;line-height:1.6;color:var(--text);max-width:100%;overflow-wrap:break-word;}
.preview-word-doc h1,.preview-word-doc h2,.preview-word-doc h3{font-family:var(--font-display);margin:16px 0 8px;}
.preview-word-doc p{margin:0 0 10px;}
.preview-word-doc table{border-collapse:collapse;margin:10px 0;}
.preview-word-doc td,.preview-word-doc th{border:1px solid var(--border);padding:5px 9px;}
.preview-word-doc img{max-width:100%;}
