:root{
  /* ── Brand accent — lime #8BFF3C partout ── */
  --lime:#8BFF3C;--lime-dark:#6CD128;--lime-dim:rgba(139,255,60,0.18);--lime-glow:rgba(139,255,60,0.12);--lime-sub:rgba(139,255,60,0.08);
  --p50:rgba(139,255,60,0.08);--p100:rgba(139,255,60,0.18);--p400:#8BFF3C;--p600:#8BFF3C;--p800:#6CD128;
  /* ── Lime adaptatif mode clair : vert foncé #3D9A18 lisible sur fond pâle ── */
  --lime-fg:#3D9A18;
  --lime-fg-bg:rgba(61,154,24,0.09);
  --lime-fg-bg-hover:rgba(61,154,24,0.15);
  --lime-fg-border:rgba(61,154,24,0.28);
  --lime-fg-border-strong:rgba(61,154,24,0.55);
  --lime-dot-glow:rgba(61,154,24,0.7);
  --lime-btn-bg:#3D9A18;
  --lime-btn-bg-hover:#4ab81d;
  --lime-btn-text:#fff;
  --lime-badge-bg:rgba(61,154,24,0.10);
  --lime-badge-border:rgba(61,154,24,0.25);
  --lime-hero-gradient:rgba(61,154,24,0.04);

  /* ── Status / semantic ── */
  --t50:#E1F5EE;--t100:#9FE1CB;--t200:#5DCAA5;--t400:#1D9E75;--t600:#0F6E56;--t800:#085041;
  --a50:#FAEEDA;--a200:#EF9F27;--a400:#BA7517;--a600:#854F0B;
  --c50:#FAECE7;--c100:#F5C4B3;--c400:#D85A30;--c500:#C04A20;--c600:#993C1D;
  --g50:#F7F6F2;--g100:#E2E0D8;--g200:#C8C6BD;--g400:#888780;--g600:#5F5E5A;--g800:#444441;
  --bl50:#E6F1FB;--bl100:#B5D4F4;--bl400:#378ADD;--bl600:#185FA5;--bl800:#0C447C;
  --urg50:#FDF2F8;--urg200:#F0A8D0;--urg400:#E91E8C;--urg600:#B5166D;

  /* ── Layout ── */
  --sidebar-bg:#10131A;
  --sidebar-w:220px;
  --topbar-h:52px;

  /* ── Light mode surfaces ── */
  --bg:#f2f3f7;--bg2:#ffffff;--bg3:#eaebf2;--bg4:#e0e2ec;
  --tx:#10131A;--tx2:#6B7290;--tx3:#9698b4;
  --bd:rgba(16,19,26,0.08);--bd2:rgba(16,19,26,0.14);
  --accent:#8BFF3C;
}
@media(prefers-color-scheme:dark){:root{
  /* ── Brand accent — MODE SOMBRE : lime vif #8BFF3C (lisible sur sombres) ── */
  --lime:#8BFF3C;--lime-dark:#6CD128;--lime-dim:rgba(139,255,60,0.18);--lime-glow:rgba(139,255,60,0.12);--lime-sub:rgba(139,255,60,0.08);
  --p50:rgba(139,255,60,0.08);--p100:rgba(139,255,60,0.18);--p400:#8BFF3C;--p600:#8BFF3C;--p800:#6CD128;
  /* ── Lime adaptatif mode sombre : lime vif #8BFF3C ── */
  --lime-fg:#8BFF3C;
  --lime-fg-bg:rgba(139,255,60,0.09);
  --lime-fg-bg-hover:rgba(139,255,60,0.16);
  --lime-fg-border:rgba(139,255,60,0.28);
  --lime-fg-border-strong:rgba(139,255,60,0.60);
  --lime-dot-glow:rgba(139,255,60,0.85);
  --lime-btn-bg:#8BFF3C;
  --lime-btn-bg-hover:#a0ff5a;
  --lime-btn-text:#10131A;
  --lime-badge-bg:rgba(139,255,60,0.10);
  --lime-badge-border:rgba(139,255,60,0.22);
  --lime-hero-gradient:rgba(139,255,60,0.025);
  --sidebar-bg:#0C0F15;
  --bg:#10131A;--bg2:#1C2030;--bg3:#222637;--bg4:#282D3E;
  --tx:#F5F4EF;--tx2:#6B7290;--tx3:#3D4260;
  --bd:rgba(255,255,255,0.06);--bd2:rgba(255,255,255,0.11);
  --urg50:#2a0d1e;--urg200:#7a1048;
  --accent:#8BFF3C;
}}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;overflow:hidden;}
body{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--tx);font-size:14px;}

/* ── ROOT LAYOUT ── */
#root{display:flex;height:100vh;overflow:hidden;}

/* ══════════════════════════════════════════════
   SIDEBAR
══════════════════════════════════════════════ */

/* ── SIDEBAR toujours lime vif (#8BFF3C) quelle que soit la préférence système ── */
.sidebar{
  --lime:#8BFF3C;--lime-dark:#6CD128;--lime-dim:rgba(139,255,60,0.18);
  --p50:rgba(139,255,60,0.08);--p100:rgba(139,255,60,0.18);
  --p400:#8BFF3C;--p600:#8BFF3C;
}
.sidebar{
  width:var(--sidebar-w);flex-shrink:0;
  background:var(--sidebar-bg);
  display:flex;flex-direction:column;
  border-right:1px solid rgba(255,255,255,0.05);
  overflow:hidden;
  position:relative;z-index:20;
}
.sidebar-logo{
  display:flex;align-items:center;gap:10px;
  padding:16px 14px 14px;flex-shrink:0;
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.sidebar-logo-name{font-size:16px;font-weight:800;color:#fff;letter-spacing:0.02em;line-height:1;font-family:'Red Hat Display',sans-serif;}
.sidebar-logo-tagline{font-size:9px;color:var(--tx3);font-weight:500;letter-spacing:0.04em;line-height:1;margin-top:4px;}
.sidebar-logo-tagline span{color:var(--lime);}
.sidebar-logo-sub{font-size:8.5px;color:rgba(255,255,255,0.38);font-weight:500;letter-spacing:0.1em;text-transform:uppercase;line-height:1;margin-top:2px;}
.sidebar-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 8px 4px;}
.sidebar-scroll::-webkit-scrollbar{width:3px;}
.sidebar-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.08);border-radius:3px;}
.sidebar-section-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;color:rgba(255,255,255,0.22);padding:12px 8px 4px;}
.sidebar-section-label:first-child{padding-top:6px;}

/* Nav items (List / Gantt / Calendar) */
.snav-item{
  display:flex;align-items:center;gap:9px;
  padding:7px 10px;border-radius:7px;
  font-size:13px;font-weight:500;
  color:rgba(255,255,255,0.52);
  cursor:pointer;border:none;background:transparent;
  font-family:inherit;text-align:left;width:100%;
  transition:all 0.12s;white-space:nowrap;
}
.snav-item:hover{background:rgba(255,255,255,0.07);color:rgba(255,255,255,0.82);}
.snav-item.active{background:rgba(139,255,60,0.13);color:var(--lime);font-weight:600;}
.snav-item svg{flex-shrink:0;opacity:0.7;}
.snav-item.active svg{opacity:1;}

/* Project items */
.sproj-item{
  display:flex;align-items:center;gap:8px;
  padding:6px 10px;border-radius:7px;
  font-size:12.5px;font-weight:500;
  color:rgba(255,255,255,0.48);
  cursor:pointer;border:none;background:transparent;
  font-family:inherit;text-align:left;width:100%;
  transition:all 0.12s;position:relative;
}
.sproj-item:hover{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.78);}
.sproj-item.active{color:rgba(255,255,255,0.9);font-weight:600;}
.sproj-item.active::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:16px;border-radius:0 3px 3px 0;background:var(--lime);
}
.sproj-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.sproj-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sproj-count{
  font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px;
  background:rgba(255,255,255,0.07);color:rgba(255,255,255,0.3);flex-shrink:0;
}
.sproj-item.active .sproj-count{background:rgba(139,255,60,0.15);color:var(--lime);}
.sproj-del{
  width:16px;height:16px;border-radius:4px;
  display:none;align-items:center;justify-content:center;
  font-size:10px;color:rgba(255,255,255,0.3);
  cursor:pointer;flex-shrink:0;border:none;background:transparent;line-height:1;
}
.sproj-item:hover .sproj-del{display:inline-flex;}
.sproj-del:hover{background:rgba(216,90,48,0.25);color:var(--c400);}

/* Sidebar add buttons */
.sidebar-add-btn{
  display:flex;align-items:center;gap:7px;
  padding:5px 10px;border-radius:6px;
  font-size:12px;font-weight:500;
  color:rgba(255,255,255,0.3);
  cursor:pointer;border:none;background:transparent;
  font-family:inherit;width:100%;text-align:left;
  transition:all 0.12s;margin-top:2px;
}
.sidebar-add-btn:hover{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);}

/* Sidebar AI button (legacy — kept for reference) */
.sidebar-ai-btn{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:8px;
  border:1px solid rgba(139,255,60,0.3);
  background:rgba(139,255,60,0.09);
  color:#8BFF3C;font-size:12.5px;font-weight:600;
  cursor:pointer;font-family:inherit;width:100%;text-align:left;
  transition:all 0.14s;
}
.sidebar-ai-btn:hover{background:rgba(139,255,60,0.16);border-color:rgba(139,255,60,0.52);}

/* ── Sidebar CPO / COO nav buttons ── */
/* La sidebar est toujours foncée — lime vif fixe indépendamment du mode système */
.snav-ai{
  display:flex;align-items:center;gap:9px;
  padding:8px 10px;border-radius:8px;
  font-size:13px;font-weight:700;
  color:#8BFF3C;
  cursor:pointer;border:1px solid rgba(139,255,60,0.28);
  background:rgba(139,255,60,0.09);
  font-family:inherit;text-align:left;width:100%;
  transition:all 0.14s;white-space:nowrap;
  letter-spacing:0.01em;
}
.snav-ai+.snav-ai{margin-top:4px;}
.snav-ai:hover{background:rgba(139,255,60,0.16);border-color:rgba(139,255,60,0.50);}
.snav-ai.active{
  background:rgba(139,255,60,0.20);
  border-color:rgba(139,255,60,0.65);
  box-shadow:0 0 0 1px rgba(139,255,60,0.18);
}
.snav-ai svg{flex-shrink:0;}

/* ── Conversations archivées (sidebar) ── */
.sconv-group{
  margin-bottom:2px;
}
.sconv-group-label{
  font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;
  color:rgba(255,255,255,0.18);
  padding:8px 10px 3px 10px;
  display:flex;align-items:center;gap:5px;
}
.sconv-item{
  display:flex;align-items:center;gap:7px;
  padding:5px 10px 5px 20px;border-radius:6px;
  font-size:11.5px;font-weight:400;
  color:rgba(255,255,255,0.42);
  cursor:pointer;border:none;background:transparent;
  font-family:inherit;text-align:left;width:100%;
  transition:all 0.12s;position:relative;overflow:hidden;
}
.sconv-item::before{
  content:'';position:absolute;left:10px;top:50%;transform:translateY(-50%);
  width:1px;height:60%;background:rgba(255,255,255,0.12);
  border-radius:1px;
}
.sconv-item:hover{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.75);}
.sconv-item.active{color:rgba(139,255,60,0.85);}
.sconv-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sconv-del{
  width:14px;height:14px;border-radius:3px;
  display:none;align-items:center;justify-content:center;
  font-size:9px;color:rgba(255,255,255,0.3);
  cursor:pointer;flex-shrink:0;border:none;background:transparent;line-height:1;
}
.sconv-item:hover .sconv-del{display:inline-flex;}
.sconv-del:hover{background:rgba(216,90,48,0.25);color:var(--c400);}

/* ── Nom IA éditable ── */
.aip-name-wrap{
  display:inline-flex;align-items:center;gap:5px;
  cursor:pointer;
}
.aip-name-label{
  font-size:9px;font-weight:800;
  letter-spacing:0.12em;text-transform:uppercase;
  color:var(--lime-fg);
  border-bottom:1px dashed transparent;
  transition:border-color 0.15s;
}
.aip-name-wrap:hover .aip-name-label{border-bottom-color:var(--lime-fg-border);}
.aip-name-edit-icon{
  font-size:9px;color:var(--lime-fg);opacity:0;transition:opacity 0.15s;
}
.aip-name-wrap:hover .aip-name-edit-icon{opacity:0.7;}
.aip-name-input{
  font-size:9px;font-weight:800;
  letter-spacing:0.12em;text-transform:uppercase;
  color:var(--lime-fg);
  background:var(--lime-badge-bg);
  border:1px solid var(--lime-fg-border-strong);
  border-radius:4px;
  padding:1px 5px;
  outline:none;
  font-family:inherit;
  width:90px;
}

.aip-avatar{
  display:inline-flex;flex-direction:column;align-items:center;
  gap:6px;flex-shrink:0;
}
.aip-avatar-img{
  width:44px;height:44px;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--lime-badge-bg);
  border:1px solid var(--lime-badge-border);
}
.aip-avatar-label{
  font-size:9px;font-weight:800;
  letter-spacing:0.12em;text-transform:uppercase;
  color:var(--lime-fg);
}

/* Avatar dans les bulles de conversation */
.aip-msg-avatar{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;overflow:hidden;
  background:transparent;
  border:none;
}
.aip-msg-avatar.usr{
  background:var(--bg3);border:1px solid var(--bd);
  font-size:11px;font-weight:800;font-family:'Red Hat Display',sans-serif;
  color:var(--tx2);
}

/* ── View tab IA ── */
.view-tab.ai-tab{
  color:var(--lime-fg) !important;
  border-color:var(--lime-fg-border) !important;
}
.view-tab.ai-tab.active{
  background:var(--lime-fg-bg-hover) !important;
  color:var(--lime-fg) !important;
  border-color:var(--lime-fg-border-strong) !important;
}

/* ── Questions CPO interactives ── */
.aip-question-card{
  margin-top:10px;
  background:var(--bg2);
  border:1px solid var(--bd2);
  border-radius:12px;
  padding:14px 16px;
}
.aip-question-title{
  font-size:12px;font-weight:700;
  letter-spacing:0.06em;text-transform:uppercase;
  color:var(--lime-fg);margin-bottom:10px;
}
.aip-q-item{
  margin-bottom:12px;
}
.aip-q-text{
  font-size:13.5px;color:var(--tx);
  font-weight:500;margin-bottom:7px;
  line-height:1.45;
}
.aip-q-options{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;
}
.aip-q-opt{
  padding:5px 13px;border-radius:20px;
  font-size:12.5px;font-weight:500;
  color:var(--tx);background:var(--bg3);
  border:1px solid var(--bd2);
  cursor:pointer;font-family:inherit;
  transition:all 0.12s;
}
.aip-q-opt:hover{
  color:var(--lime-fg);
  border-color:var(--lime-fg-border);
  background:var(--lime-badge-bg);
}
.aip-q-opt.selected{
  color:var(--lime-fg);
  border-color:var(--lime-fg-border-strong);
  background:var(--lime-badge-bg);
  font-weight:600;
}
.aip-q-free{
  width:100%;padding:6px 10px;
  background:var(--bg3);border:1px solid var(--bd2);
  border-radius:8px;font-family:inherit;font-size:12.5px;
  color:var(--tx);outline:none;
  transition:border-color 0.12s;
}
.aip-q-free:focus{border-color:var(--lime-fg-border);}
.aip-q-free::placeholder{color:var(--tx2);}
.aip-q-submit{
  margin-top:12px;
  padding:8px 18px;border-radius:8px;
  background:var(--lime-btn-bg);color:var(--lime-btn-text);
  font-size:13px;font-weight:700;
  border:none;cursor:pointer;font-family:inherit;
  transition:all 0.12s;
}
.aip-q-submit:hover{background:var(--lime-btn-bg-hover);}

/* ══════════════════════════════════════════════
   PAGE CPO / COO
══════════════════════════════════════════════ */
.ai-page{
  display:flex;flex-direction:column;
  height:100%;overflow:hidden;
  background:var(--bg);
  position:relative;
}

/* Hero */
.aip-hero{
  flex-shrink:0;
  padding:36px 48px 28px;
  border-bottom:1px solid var(--bd);
  background:linear-gradient(135deg,
    var(--bg) 0%,
    var(--lime-hero-gradient) 55%,
    var(--bg) 100%);
  position:relative;overflow:hidden;
}
.aip-hero::before{
  content:'';position:absolute;
  top:-80px;right:-60px;
  width:280px;height:280px;
  background:radial-gradient(circle,var(--lime-hero-gradient) 0%,transparent 70%);
  pointer-events:none;
}
.aip-entity-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:5px 12px 5px 8px;
  border-radius:20px;
  background:var(--lime-badge-bg);
  border:1px solid var(--lime-badge-border);
  margin-bottom:14px;
}
.aip-entity-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--lime-fg);
  box-shadow:0 0 6px var(--lime-dot-glow);
  animation:aipulse 2.5s ease-in-out infinite;
}
@keyframes aipulse{
  0%,100%{opacity:0.8;}
  50%{opacity:1;box-shadow:0 0 10px var(--lime-dot-glow);}
}
.aip-entity-label{
  font-size:11px;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--lime-fg);
}
.aip-title{
  font-family:'Red Hat Display',sans-serif;
  font-weight:900;
  font-size:clamp(22px,2.6vw,30px);
  letter-spacing:-0.5px;line-height:1.1;
  color:var(--tx);
  margin-bottom:10px;
}
.aip-title span{color:var(--lime-fg);}
.aip-desc{
  font-size:14px;color:var(--tx2);
  line-height:1.7;max-width:540px;
}

/* Briefing D7 */
.aip-briefing{
  flex-shrink:0;
  margin:16px 48px 0;
  padding:14px 18px;
  background:var(--lime-badge-bg);
  border:1px solid var(--lime-badge-border);
  border-radius:12px;
  display:flex;gap:12px;align-items:flex-start;
  animation:fadeSlideIn 0.3s ease;
}
@keyframes fadeSlideIn{
  from{opacity:0;transform:translateY(-6px);}
  to{opacity:1;transform:translateY(0);}
}
.aip-briefing-icon{
  width:28px;height:28px;border-radius:8px;
  background:var(--lime-fg-bg);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:14px;
}
.aip-briefing-body{flex:1;}
.aip-briefing-label{
  font-size:10px;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--lime-fg);margin-bottom:4px;
}
.aip-briefing-text{font-size:13px;color:var(--tx);line-height:1.6;}
.aip-briefing-close{
  background:none;border:none;cursor:pointer;
  color:var(--tx2);font-size:18px;line-height:1;
  padding:0;flex-shrink:0;margin-top:1px;
  transition:color 0.12s;
}
.aip-briefing-close:hover{color:var(--tx);}

/* Fil de conversation */
.aip-conv-zone{
  flex:1;overflow-y:auto;
  padding:20px 48px 16px;
  display:flex;flex-direction:column;
  gap:14px;min-height:0;
}
.aip-conv-zone::-webkit-scrollbar{width:4px;}
.aip-conv-zone::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px;}

/* ── Formatage markdown messages IA ── */
.aip-msg-bubble ul.ai-list,
.aip-msg-bubble ol.ai-list{
  margin:5px 0 4px 4px;
  padding-left:16px;
  display:flex;flex-direction:column;gap:3px;
}
.aip-msg-bubble ul.ai-list li,
.aip-msg-bubble ol.ai-list li{
  font-size:13.5px;line-height:1.6;color:var(--tx);
}
.aip-msg-bubble ul.ai-list{list-style:disc;}
.aip-msg-bubble ol.ai-list{list-style:decimal;}
.aip-msg-bubble .ai-para-break{height:7px;}

/* ── Modale de prévisualisation des propositions ── */
.preview-modal-bg{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.72);
  z-index:1100;
  display:flex;align-items:stretch;justify-content:flex-end;
  animation:previewFadeIn 0.18s ease;
}
@keyframes previewFadeIn{from{opacity:0;}to{opacity:1;}}
.preview-modal{
  width:min(780px,96vw);
  height:100vh;
  background:var(--bg);
  display:flex;flex-direction:column;
  box-shadow:-8px 0 40px rgba(0,0,0,0.45);
  animation:previewSlideIn 0.22s cubic-bezier(0.22,1,0.36,1);
}
@keyframes previewSlideIn{from{transform:translateX(60px);opacity:0;}to{transform:translateX(0);opacity:1;}}
.preview-hdr{
  flex-shrink:0;
  padding:20px 28px 16px;
  border-bottom:1px solid var(--bd);
  display:flex;align-items:center;gap:12px;
}
.preview-hdr-icon{
  width:34px;height:34px;border-radius:10px;
  background:var(--lime-badge-bg);border:1px solid var(--lime-badge-border);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:15px;color:var(--lime-fg);
}
.preview-hdr-text{flex:1;min-width:0;}
.preview-hdr-title{
  font-family:'Red Hat Display',sans-serif;
  font-weight:800;font-size:15px;
  color:var(--tx);letter-spacing:-0.2px;
}
.preview-hdr-sub{font-size:11px;color:var(--tx2);margin-top:2px;}
.preview-close{
  width:30px;height:30px;border-radius:8px;
  background:var(--bg3);border:1px solid var(--bd2);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;cursor:pointer;color:var(--tx2);
  transition:all 0.12s;flex-shrink:0;
}
.preview-close:hover{color:var(--tx);border-color:var(--tx2);}
.preview-body{
  flex:1;overflow-y:auto;
  padding:20px 28px;
  display:flex;flex-direction:column;gap:14px;
}
.preview-body::-webkit-scrollbar{width:4px;}
.preview-body::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px;}
.preview-proj-name{
  display:flex;align-items:center;gap:9px;
  font-family:'Red Hat Display',sans-serif;
  font-weight:800;font-size:17px;color:var(--tx);
  letter-spacing:-0.3px;
}
.preview-proj-dot{width:13px;height:13px;border-radius:4px;flex-shrink:0;}
.preview-cats{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}
.preview-cat-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border-radius:20px;
  font-size:11px;font-weight:500;
  color:var(--tx);background:var(--bg2);border:1px solid var(--bd);
}
.preview-stats{
  display:flex;gap:14px;flex-wrap:wrap;
  padding:10px 14px;border-radius:10px;
  background:var(--lime-badge-bg);border:1px solid var(--lime-badge-border);
  font-size:12px;color:var(--tx2);
}
.preview-stats strong{color:var(--tx);font-weight:700;}
.preview-cat-hdr{
  display:flex;align-items:center;gap:7px;
  font-size:10px;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--tx2);
  padding:10px 0 6px;
  border-bottom:1px solid var(--bd);
  margin-bottom:4px;
}
.preview-task-row{
  display:flex;align-items:flex-start;gap:8px;
  padding:8px 12px;border-radius:8px;
  background:var(--bg2);border:1px solid var(--bd);
  margin-bottom:4px;
}
.preview-task-row.is-container{
  background:transparent;border-color:transparent;
  padding-left:0;
  border-bottom:1px solid var(--bd);
  border-radius:0;
  margin-top:6px;
  font-weight:700;
}
.preview-task-title{flex:1;min-width:0;color:var(--tx);font-size:12.5px;font-weight:500;line-height:1.4;}
.preview-task-meta{font-size:11px;color:var(--tx2);flex-shrink:0;white-space:nowrap;}
.preview-task-sub-wrap{margin-left:14px;}
.preview-prio{font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px;flex-shrink:0;}
.preview-prio.urgent{background:rgba(216,90,48,0.15);color:var(--c400);}
.preview-prio.high{background:rgba(239,159,39,0.15);color:#b87512;}
.preview-prio.medium{background:var(--bg3);color:var(--tx2);}
.preview-prio.low{background:var(--bg3);color:var(--tx3);}
.preview-diff-hdr{font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:8px 0 4px;margin-bottom:2px;}
.preview-diff-hdr.add{color:var(--t400);}
.preview-diff-hdr.upd{color:var(--a400);}
.preview-diff-hdr.rem{color:var(--c400);}
.preview-diff-row{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:8px;font-size:12.5px;margin-bottom:3px;}
.preview-diff-row.add{background:rgba(29,158,117,0.08);border:1px solid rgba(29,158,117,0.2);}
.preview-diff-row.upd{background:rgba(186,117,23,0.08);border:1px solid rgba(186,117,23,0.2);}
.preview-diff-row.rem{background:rgba(216,90,48,0.08);border:1px solid rgba(216,90,48,0.2);}
.preview-diff-badge{font-size:10px;font-weight:800;flex-shrink:0;margin-top:1px;}
.preview-diff-badge.add{color:var(--t400);}
.preview-diff-badge.upd{color:var(--a400);}
.preview-diff-badge.rem{color:var(--c400);}
.preview-diff-detail{color:var(--tx);flex:1;line-height:1.5;}
.preview-diff-old{color:var(--tx2);text-decoration:line-through;font-size:11px;}
.preview-footer{
  flex-shrink:0;
  padding:14px 28px 20px;
  border-top:1px solid var(--bd);
  display:flex;align-items:center;gap:9px;
  flex-wrap:wrap;
}
.preview-footer-note{flex:1;font-size:11px;color:var(--tx2);}
.preview-btn-back{
  padding:9px 16px;border-radius:9px;
  background:var(--bg3);color:var(--tx2);
  font-size:13px;font-weight:500;
  border:1px solid var(--bd2);cursor:pointer;font-family:inherit;
  transition:all 0.12s;
}
.preview-btn-back:hover{color:var(--tx);border-color:var(--tx2);}
.preview-btn-modify{
  padding:9px 16px;border-radius:9px;
  background:var(--bg3);color:var(--lime-fg);
  font-size:13px;font-weight:600;
  border:1px solid var(--lime-fg-border);cursor:pointer;font-family:inherit;
  transition:all 0.12s;
}
.preview-btn-modify:hover{background:var(--lime-fg-bg);border-color:var(--lime-fg-border-strong);}
.preview-btn-accept{
  padding:9px 20px;border-radius:9px;
  background:var(--lime-btn-bg);color:var(--lime-btn-text);
  font-size:13px;font-weight:700;
  border:none;cursor:pointer;font-family:inherit;
  transition:all 0.12s;
}
.preview-btn-accept:hover{background:var(--lime-btn-bg-hover);transform:translateY(-1px);}

/* Bulles */
.aip-msg{display:flex;gap:11px;align-items:flex-start;animation:fadeSlideIn 0.2s ease;}
.aip-msg.user{flex-direction:row-reverse;}
.aip-msg-avatar{
  width:30px;height:30px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:11px;font-weight:800;
  font-family:'Red Hat Display',sans-serif;
  letter-spacing:0.02em;
}
.aip-msg-avatar.cpo{
  background:var(--lime-badge-bg);
  color:var(--lime-fg);
  border:1px solid var(--lime-badge-border);
}
.aip-msg-avatar.coo{
  background:var(--lime-badge-bg);
  border:1px solid var(--lime-badge-border);
}
.aip-msg-avatar.usr{
  background:var(--bg3);color:var(--tx2);
  border:1px solid var(--bd);
}
.aip-msg-content{flex:1;min-width:0;}
.aip-msg-bubble{
  display:inline-block;
  max-width:75%;padding:11px 16px;
  border-radius:12px;font-size:13.5px;line-height:1.65;
  color:var(--tx);
}
.aip-msg.ai .aip-msg-bubble{
  background:var(--bg2);border:1px solid var(--bd);
  border-top-left-radius:4px;
}
.aip-msg.user .aip-msg-bubble{
  background:var(--lime-badge-bg);
  border:1px solid var(--lime-badge-border);
  border-top-right-radius:4px;
  float:right;
}

/* Diff card */
.aip-diff-card{
  background:var(--bg2);
  border:1px solid var(--lime-fg-border);
  border-radius:12px;padding:16px 20px;
  margin-top:8px;clear:both;
}
.aip-diff-title{
  font-size:10px;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--lime-fg);margin-bottom:8px;
}
.aip-diff-summary{font-size:13px;color:var(--tx);line-height:1.65;margin-bottom:14px;}
.aip-diff-actions{display:flex;gap:8px;flex-wrap:wrap;}
.aip-diff-accept{
  padding:8px 18px;border-radius:8px;
  background:var(--lime-btn-bg);color:var(--lime-btn-text);
  font-size:13px;font-weight:700;
  border:none;cursor:pointer;font-family:inherit;
  transition:all 0.12s;
}
.aip-diff-accept:hover{background:var(--lime-btn-bg-hover);transform:translateY(-1px);}
.aip-diff-modify{
  padding:8px 14px;border-radius:8px;
  background:var(--bg3);color:var(--tx2);
  font-size:13px;font-weight:500;
  border:1px solid var(--bd2);cursor:pointer;font-family:inherit;
  transition:all 0.12s;
}
.aip-diff-modify:hover{color:var(--tx);border-color:var(--tx2);}

/* État vide */
.aip-empty{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:10px;padding:40px;text-align:center;
}
.aip-empty-icon{
  width:52px;height:52px;border-radius:14px;
  background:var(--lime-badge-bg);
  border:1px solid var(--lime-badge-border);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;margin-bottom:4px;color:var(--lime-fg);
}
.aip-empty-title{
  font-family:'Red Hat Display',sans-serif;
  font-weight:700;font-size:16px;color:var(--tx);
}
.aip-empty-desc{font-size:13px;color:var(--tx2);line-height:1.65;max-width:320px;}

/* Suggestions rapides */
.aip-suggestions{
  flex-shrink:0;
  padding:0 48px 14px;
  display:flex;gap:7px;flex-wrap:wrap;
}
.aip-sug-chip{
  padding:6px 13px;border-radius:20px;
  font-size:12px;font-weight:500;
  color:var(--tx2);
  background:var(--bg2);
  border:1px solid var(--bd2);
  cursor:pointer;transition:all 0.12s;
  font-family:inherit;
  white-space:nowrap;
}
.aip-sug-chip:hover{
  color:var(--lime-fg);
  border-color:var(--lime-fg-border);
  background:var(--lime-badge-bg);
}

/* Zone de saisie */
.aip-input-zone{
  flex-shrink:0;
  padding:12px 48px 20px;
  border-top:1px solid var(--bd);
  background:var(--bg);
}
.aip-input-wrap{
  display:flex;gap:10px;align-items:flex-end;
  background:var(--bg2);
  border:1.5px solid var(--bd2);
  border-radius:14px;
  padding:10px 10px 10px 16px;
  transition:border-color 0.14s,box-shadow 0.14s;
}
.aip-input-wrap:focus-within{
  border-color:var(--lime-fg-border-strong);
  box-shadow:0 0 0 3px var(--lime-badge-bg);
}
.aip-textarea{
  flex:1;background:none;border:none;outline:none;
  font-family:inherit;font-size:14px;color:var(--tx);
  resize:none;line-height:1.55;
  min-height:22px;max-height:180px;
  overflow-y:auto;
}
.aip-textarea::placeholder{color:var(--tx2);}
.aip-send-btn{
  width:34px;height:34px;border-radius:10px;
  background:var(--lime-btn-bg);border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all 0.13s;
  color:var(--lime-btn-text);
}
.aip-send-btn:hover{background:var(--lime-btn-bg-hover);transform:scale(1.06);}
.aip-send-btn:disabled{background:var(--bg3);color:var(--tx2);cursor:not-allowed;transform:none;}
.aip-input-hint{
  font-size:11px;color:var(--tx3);
  margin-top:7px;text-align:center;
}
.aip-input-hint kbd{
  font-size:10px;padding:1px 5px;border-radius:4px;
  background:var(--bg3);border:1px solid var(--bd2);
  color:var(--tx2);font-family:inherit;
}

/* Dashboard COO */
.coo-employees{
  flex-shrink:0;
  padding:0 48px 16px;
  display:flex;flex-direction:column;gap:8px;
  border-top:1px solid var(--bd);
  padding-top:14px;
}
.coo-employees-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:4px;
}
.coo-employees-label{
  font-size:11px;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--tx2);
}
.coo-emp-card{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;
  background:var(--bg2);border:1px solid var(--bd);
  border-radius:10px;cursor:pointer;
  transition:all 0.12s;
}
.coo-emp-card:hover{border-color:var(--lime-fg-border);background:var(--lime-badge-bg);}
.coo-emp-icon{
  width:34px;height:34px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  font-size:17px;flex-shrink:0;
  background:var(--bg3);border:1px solid var(--bd);
}
.coo-emp-info{flex:1;}
.coo-emp-name{font-size:13px;font-weight:600;color:var(--tx);margin-bottom:1px;}
.coo-emp-role{font-size:11.5px;color:var(--tx2);}
.coo-emp-status{
  font-size:11px;font-weight:600;
  padding:3px 9px;border-radius:20px;
  letter-spacing:0.03em;flex-shrink:0;
}
.coo-emp-status.active{
  background:var(--lime-badge-bg);color:var(--lime-fg);
  border:1px solid var(--lime-badge-border);
}
.coo-emp-status.paused{
  background:rgba(255,181,71,0.10);color:#a06800;
  border:1px solid rgba(255,181,71,0.25);
}
@media(prefers-color-scheme:dark){
  .coo-emp-status.paused{color:#FFB547;}
}
.coo-add-emp{
  display:flex;align-items:center;gap:9px;
  padding:10px 16px;
  background:transparent;
  border:1px dashed var(--lime-fg-border);
  border-radius:10px;cursor:pointer;
  font-family:inherit;font-size:12.5px;
  color:var(--lime-fg);opacity:0.75;
  transition:all 0.14s;width:100%;text-align:left;
}
.coo-add-emp:hover{border-color:var(--lime-fg-border-strong);opacity:1;background:var(--lime-badge-bg);}

/* Sidebar bottom area */
/* ── Archives — flyout hover ── */
.sarch-wrap{position:relative;}
.sarch-trigger{
  display:flex;align-items:center;gap:9px;
  padding:7px 10px;border-radius:7px;
  font-size:13px;font-weight:500;
  color:rgba(255,255,255,0.52);
  cursor:default;border:none;background:transparent;
  font-family:inherit;text-align:left;width:100%;
  transition:all 0.12s;white-space:nowrap;user-select:none;
}
.sarch-wrap:hover .sarch-trigger{background:rgba(255,255,255,0.07);color:rgba(255,255,255,0.82);}
.sarch-flyout{
  display:none;
  position:absolute;
  left:calc(100% + 6px);top:0;
  width:170px;
  background:#1C2030;
  border:1px solid rgba(255,255,255,0.1);
  border-radius:10px;
  padding:5px;
  box-shadow:6px 6px 24px rgba(0,0,0,0.45);
  z-index:200;
  flex-direction:column;gap:2px;
}
.sarch-wrap:hover .sarch-flyout{display:flex;}
.sarch-flyout-btn{
  display:flex;align-items:center;gap:8px;
  padding:8px 11px;border-radius:7px;
  font-size:12.5px;font-weight:500;
  color:rgba(255,255,255,0.7);
  cursor:pointer;border:none;background:transparent;
  font-family:inherit;text-align:left;width:100%;
  transition:all 0.12s;
}
.sarch-flyout-btn:hover{background:rgba(255,255,255,0.09);color:#fff;}

/* ── Panneau Archives ── */
.arch-panel-bg{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.55);
  z-index:500;
  animation:previewFadeIn 0.15s ease;
}
.arch-panel{
  position:absolute;
  left:var(--sidebar-w);top:0;bottom:0;
  width:340px;
  background:#1C2030;
  border-right:1px solid rgba(255,255,255,0.08);
  display:flex;flex-direction:column;
  box-shadow:4px 0 24px rgba(0,0,0,0.35);
  animation:archSlideIn 0.2s cubic-bezier(0.22,1,0.36,1);
}
@keyframes archSlideIn{from{transform:translateX(-20px);opacity:0;}to{transform:translateX(0);opacity:1;}}
.arch-panel-hdr{
  flex-shrink:0;padding:16px 18px 12px;
  border-bottom:1px solid rgba(255,255,255,0.07);
  display:flex;align-items:center;gap:10px;
}
.arch-panel-title{font-family:'Red Hat Display',sans-serif;font-weight:700;font-size:14px;color:#F5F4EF;flex:1;}
.arch-panel-close{
  width:26px;height:26px;border-radius:7px;
  background:rgba(255,255,255,0.06);border:none;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;cursor:pointer;color:rgba(255,255,255,0.5);
  transition:all 0.12s;
}
.arch-panel-close:hover{background:rgba(255,255,255,0.12);color:#fff;}
.arch-panel-body{flex:1;overflow-y:auto;padding:10px 12px;}
.arch-panel-body::-webkit-scrollbar{width:3px;}
.arch-panel-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px;}
.arch-conv-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 12px;border-radius:8px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  margin-bottom:6px;cursor:pointer;
  transition:all 0.12s;
}
.arch-conv-item:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.14);}
.arch-conv-icon{
  width:28px;height:28px;border-radius:7px;
  background:rgba(139,255,60,0.08);border:1px solid rgba(139,255,60,0.18);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;color:#8BFF3C;flex-shrink:0;
}
.arch-conv-info{flex:1;min-width:0;}
.arch-conv-title{font-size:12.5px;font-weight:500;color:#F5F4EF;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.arch-conv-meta{font-size:10.5px;color:rgba(255,255,255,0.35);margin-top:2px;}
.arch-conv-del{
  width:20px;height:20px;border-radius:5px;background:none;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;color:rgba(255,255,255,0.25);transition:all 0.12s;flex-shrink:0;margin-top:2px;
}
.arch-conv-del:hover{background:rgba(216,90,48,0.2);color:var(--c400);}
.arch-proj-item{
  padding:11px 13px;border-radius:9px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);margin-bottom:7px;
}
.arch-proj-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#F5F4EF;margin-bottom:4px;}
.arch-proj-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;}
.arch-proj-meta{font-size:11px;color:rgba(255,255,255,0.35);margin-bottom:8px;}
.arch-proj-restore{
  padding:5px 12px;border-radius:7px;
  background:rgba(139,255,60,0.1);border:1px solid rgba(139,255,60,0.25);
  color:#8BFF3C;font-size:11.5px;font-weight:600;
  cursor:pointer;font-family:inherit;transition:all 0.12s;
}
.arch-proj-restore:hover{background:rgba(139,255,60,0.18);border-color:rgba(139,255,60,0.45);}
.arch-empty{display:flex;flex-direction:column;align-items:center;padding:40px 20px;text-align:center;gap:8px;}
.arch-empty-icon{font-size:24px;opacity:0.3;}
.arch-empty-text{font-size:12px;color:rgba(255,255,255,0.3);}

.sidebar-bottom{
  padding:10px;flex-shrink:0;
  border-top:1px solid rgba(255,255,255,0.05);
  display:flex;flex-direction:column;gap:6px;
}

/* Sync indicator */
#sync-indicator{
  font-size:10px;color:rgba(255,255,255,0.28);
  padding:2px 10px;display:flex;align-items:center;gap:5px;
}
#sync-indicator::before{
  content:'';width:5px;height:5px;border-radius:50%;
  background:rgba(255,255,255,0.2);flex-shrink:0;
}

/* ══════════════════════════════════════════════
   MAIN AREA
══════════════════════════════════════════════ */
.main-area{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;}

/* ── ACTION BAR (top) ── */
.action-bar{
  display:flex;align-items:center;gap:8px;
  padding:0 18px;height:var(--topbar-h);
  background:var(--bg2);
  border-bottom:1px solid var(--bd);
  flex-shrink:0;
  position:relative;
}
.ab-project{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.ab-proj-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.ab-proj-name{font-size:14px;font-weight:700;color:var(--tx);white-space:nowrap;font-family:'Red Hat Display',sans-serif;}
.ab-divider{width:1px;height:22px;background:var(--bd2);flex-shrink:0;margin:0 6px;}
.ab-right{display:flex;align-items:center;gap:6px;margin-left:auto;}

/* ── BUTTONS ── */
.btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 12px;border-radius:8px;
  border:1px solid var(--bd2);background:var(--bg2);color:var(--tx);
  font-size:12px;font-weight:500;font-family:inherit;
  cursor:pointer;transition:all 0.12s;white-space:nowrap;
}
.btn:hover{background:var(--bg3);border-color:var(--bd2);}
.btn svg{display:block;flex-shrink:0;}
.btn.primary{background:var(--lime);color:#10131A;border-color:var(--lime);box-shadow:0 2px 8px var(--lime-glow);font-weight:700;}
.btn.primary:hover{background:var(--lime-dark);border-color:var(--lime-dark);}
.btn.ai{background:var(--lime);color:#10131A;border-color:var(--lime-dark);box-shadow:0 2px 8px var(--lime-glow);font-weight:600;}
.btn.ai:hover{background:var(--lime-dark);}
.modal .btn{border-color:var(--bd2);background:var(--bg2);color:var(--tx);}
.modal .btn:hover{background:var(--bg3);}
.modal .btn.primary{background:var(--lime);color:#10131A;border-color:var(--lime);font-weight:700;}
.modal .btn.primary:hover{background:var(--lime-dark);}
.modal .btn.ai{background:var(--lime);color:#10131A;border-color:var(--lime-dark);font-weight:600;}
.modal .btn.ai:hover{background:var(--lime-dark);}

/* View switcher in action bar */
.view-tabs{display:flex;gap:2px;background:var(--bg3);border:1px solid var(--bd);padding:2px;border-radius:8px;}
.view-tab{
  display:flex;align-items:center;gap:5px;
  padding:5px 12px;border-radius:6px;border:none;
  cursor:pointer;font-size:12px;font-weight:500;font-family:inherit;
  background:transparent;color:var(--tx2);
  transition:all 0.15s;white-space:nowrap;
}
.view-tab.active{background:var(--bg2);color:var(--tx);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,0.08);}
.view-tab:hover:not(.active){background:rgba(0,0,0,0.04);color:var(--tx);}
.view-tab svg{flex-shrink:0;}

/* Filter dropdown */
.fdd-wrap{position:relative;}
.fdd-btn{
  display:flex;align-items:center;gap:5px;padding:5px 10px;
  border-radius:7px;border:1px solid var(--bd2);
  background:var(--bg2);color:var(--tx);
  font-size:12px;font-weight:500;font-family:inherit;
  cursor:pointer;white-space:nowrap;transition:all 0.12s;user-select:none;
}
.fdd-btn:hover{background:var(--bg3);}
.fdd-btn.has-filter{background:var(--lime);color:#10131A;border-color:var(--lime-dark);font-weight:600;}
.fdd-arrow{font-size:9px;color:var(--tx3);transition:transform 0.15s;}
.fdd-btn.open .fdd-arrow{transform:rotate(180deg);}
.fdd-menu{
  position:absolute;top:calc(100% + 6px);right:0;
  min-width:210px;background:var(--bg2);
  border:1px solid var(--bd2);border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,0.14);
  z-index:200;padding:6px 0;overflow:hidden;
}
.fdd-item{display:flex;align-items:center;gap:9px;padding:7px 14px;cursor:pointer;font-size:13px;color:var(--tx);transition:background 0.1s;}
.fdd-item:hover{background:var(--bg3);}
.fdd-item input[type=checkbox]{accent-color:var(--lime);width:14px;height:14px;cursor:pointer;flex-shrink:0;}
.fdd-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.fdd-sep{height:1px;background:var(--bd);margin:4px 0;}
.fdd-all{font-size:11px;color:var(--tx3);padding:5px 14px;cursor:pointer;display:flex;align-items:center;gap:6px;}
.fdd-all:hover{color:var(--p600);}

select.flt{
  padding:5px 10px;border-radius:7px;
  border:1px solid var(--bd2);background:var(--bg2);
  color:var(--tx);font-size:12px;font-family:inherit;cursor:pointer;
}
select.flt option{background:var(--bg2);color:var(--tx);}

/* ── STATS BAR ── */
.statsbar{
  display:flex;align-items:center;gap:10px;
  padding:5px 18px;background:var(--bg2);
  border-bottom:1px solid var(--bd);
  font-size:12px;color:var(--tx2);flex-shrink:0;
}
.sv{font-size:13px;font-weight:700;color:var(--tx);}
.sv-click{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px;}
.sv-click:hover{opacity:0.75;}
.vsep{width:1px;height:13px;background:var(--bd2);}
.pgwrap{flex:1;min-width:40px;background:var(--g100);border-radius:3px;height:3px;overflow:hidden;}
.pgfill{height:100%;background:var(--t400);border-radius:3px;transition:width 0.4s;}
/* Barre de progression dans la vue liste */
.t-col-prog{padding:0 8px;min-width:0;overflow:hidden;display:flex;align-items:center;gap:5px;}
.task-prog-wrap{flex:1;min-width:28px;max-width:72px;height:4px;background:var(--g100);border-radius:3px;overflow:hidden;display:inline-block;vertical-align:middle;}
.task-prog-fill{display:block;height:100%;border-radius:3px;transition:width 0.4s;}
.task-prog-pct{font-size:10px;color:var(--tx3);font-weight:600;flex-shrink:0;white-space:nowrap;}

/* ── CONTENT ── */
.content{flex:1;overflow:auto;min-height:0;}
.content.content-gantt{overflow:hidden;}
.content.content-settings{overflow-y:auto;padding:32px;background:var(--bg);}
.content.content-ai{overflow:hidden;display:flex;flex-direction:column;}

/* ══════════════════════════════════════════════
   LIST VIEW — colonnes alignées via CSS grid
══════════════════════════════════════════════ */
.list-view{padding:10px 18px 24px;}
.group{margin-bottom:16px;border-radius:10px;overflow:hidden;border:1px solid var(--bd);box-shadow:0 1px 6px rgba(0,0,0,0.06);}
.group.cat-dragging{opacity:0.3;border-color:transparent;}
.group.cat-drag-over{border-top:3px solid var(--p400);background:var(--p50);}
.g-drag-handle{cursor:grab;color:rgba(255,255,255,0.45);font-size:15px;padding:0 3px;flex-shrink:0;user-select:none;line-height:1;transition:color 0.12s;}
.g-drag-handle:hover{color:rgba(255,255,255,0.85);}
.g-drag-handle:active{cursor:grabbing;}
.group-hdr{display:flex;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;user-select:none;border-radius:0;}
.group-hdr:hover{filter:brightness(1.1);}
.gdot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:2px solid rgba(255,255,255,0.4);}
.gname{font-size:13px;font-weight:800;letter-spacing:0.01em;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,0.25);}
.gcnt{font-size:10px;padding:2px 8px;border-radius:10px;background:rgba(0,0,0,0.22);color:rgba(255,255,255,0.9);font-weight:600;}
.gchev{margin-left:auto;font-size:11px;color:rgba(255,255,255,0.75);transition:transform 0.15s;}
.gchev.col{transform:rotate(-90deg);}
.tasks-list{display:flex;flex-direction:column;gap:3px;}

/* Column header */
.list-col-hdr{
  display:grid;
  grid-template-columns: var(--list-cols,22px 260px 100px 100px 140px 90px 90px 70px 75px 75px 110px 90px 75px 80px);
  gap:0;padding:0 12px 0 8px;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;
  color:var(--tx3);margin-bottom:3px;margin-top:6px;
}
/* List column header cell + resize handle */
.lch{position:relative;padding:0 8px;display:flex;align-items:center;min-width:0;overflow:hidden;user-select:none;}
.lch-resize{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:3;display:flex;align-items:center;justify-content:center;}
.lch-resize::before{content:'';display:block;width:1.5px;height:55%;background:var(--bd2);border-radius:2px;transition:background 0.15s,height 0.15s,opacity 0.15s;opacity:0.5;}
.lch-resize:hover::before{background:var(--p400);height:75%;opacity:1;}
.lch-resize.col-active::before{background:var(--p400);height:100%;opacity:1;}
/* Sortable column headers */
.lch.lch-sortable{cursor:pointer;transition:color 0.12s;}
.lch.lch-sortable:hover{color:var(--tx2);}
.lch.lch-active{color:var(--p400);}
.lch-sort-icon{font-size:9px;margin-left:3px;opacity:0.9;flex-shrink:0;font-style:normal;}
/* Expand/Collapse all toolbar */
.list-expand-bar{display:flex;align-items:center;gap:6px;padding:2px 8px 8px;flex-wrap:wrap;}
.list-expand-bar-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--tx3);margin-right:2px;}
.expand-btn{background:none;border:1px solid var(--bd);border-radius:6px;cursor:pointer;font-size:10px;font-weight:600;color:var(--tx2);padding:3px 9px;font-family:inherit;transition:all 0.12s;line-height:1.4;white-space:nowrap;}
.expand-btn:hover{background:var(--bg3);color:var(--tx);border-color:var(--bd2);}
.cat-expand-btns{display:flex;align-items:center;gap:3px;flex-shrink:0;margin-left:4px;}

/* Task card */
.task-card{border-radius:10px;background:var(--bg2);border:1px solid var(--bd);overflow:hidden;transition:border-color 0.12s,box-shadow 0.12s;}
.task-card:hover{border-color:var(--bd2);box-shadow:0 2px 10px rgba(0,0,0,0.07);}
.task-card.status-done{opacity:0.52;}
.task-main{display:flex;align-items:stretch;cursor:pointer;}
.t-strip{width:4px;flex-shrink:0;}
.t-strip.todo{background:var(--g200);}
.t-strip.inprog{background:var(--bl400);}
.t-strip.done{background:var(--t400);}
.t-strip.waiting{background:var(--a200);}
.t-row{
  display:grid;
  grid-template-columns: var(--list-cols,22px 260px 100px 100px 140px 90px 90px 70px 75px 75px 110px 90px 75px 80px);
  align-items:center;gap:0;padding:11px 12px 11px 8px;flex:1;min-width:0;
}
.t-col{padding:0 8px;min-width:0;overflow:hidden;}
.t-col.title-col{font-size:13px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.status-done .title-col{text-decoration:line-through;color:var(--tx3);}
.t-col.small{font-size:11px;color:var(--tx2);white-space:nowrap;}
.t-col.small.ov{color:var(--c400);font-weight:700;}

/* Badges */
.badge{display:inline-flex;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:0.04em;}
.bh{background:var(--c50);color:var(--c600);}
.bm{background:var(--a50);color:var(--a600);}
.bl2{background:var(--t50);color:var(--t600);}
.bur{background:var(--urg50);color:var(--urg600);border:1px solid var(--urg200);}
.bst{display:inline-flex;font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;}
.bst-todo{background:var(--g50);color:var(--g600);}
.bst-inprog{background:var(--bl50);color:var(--bl600);}
.bst-done{background:var(--t50);color:var(--t600);}
.bst-waiting{background:var(--a50);color:var(--a600);}
.catpill{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:2px 6px;border-radius:10px;background:var(--bg3);white-space:nowrap;}
.catdot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}

/* Chk */
.t-chk{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--bd2);display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;transition:all 0.12s;flex-shrink:0;}
.t-chk.inprog{background:var(--bl400);border-color:var(--bl400);}
.t-chk.inprog::after{content:'▶';font-size:6px;color:#fff;}
.t-chk.done{background:var(--t400);border-color:var(--t400);}
.t-chk.done::after{content:'✓';font-size:8px;color:#fff;font-weight:800;}
.t-chk.waiting{background:var(--a200);border-color:var(--a400);}
.t-chk.waiting::after{content:'⏸';font-size:7px;color:#fff;}

/* Sub rows */
.sub-row{
  display:grid;
  grid-template-columns: var(--list-cols,22px 260px 100px 100px 140px 90px 90px 70px 75px 75px 110px 90px 75px 80px);
  flex:1;min-width:0;cursor:pointer;
}
.sub-row:hover{background:var(--bg3);}
.sub-row.l2-row{background:var(--bg);padding-left:24px;}
.sub-row.l2-row:hover{background:var(--bg3);}
.sub-indent{display:flex;align-items:center;gap:4px;padding:0 8px;}
.sub-indent-marker{color:var(--tx3);font-size:10px;flex-shrink:0;}

/* Actions column */
.t-acts{display:flex;gap:3px;flex-shrink:0;}
.ibtn{width:26px;height:26px;border-radius:7px;border:1px solid var(--bd);background:var(--bg3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--tx2);transition:all 0.12s;flex-shrink:0;line-height:1;}
.ibtn svg{display:block;flex-shrink:0;}
.ibtn:hover{background:var(--bg4);border-color:var(--bd2);}
.ibtn.del{background:var(--c50);border-color:var(--c100);color:var(--c600);}
.ibtn.del:hover{background:var(--c100);}

/* Subtasks */
.subtasks{border-top:1px solid var(--bd);background:var(--bg);}
.subtask-row{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 38px;font-size:12px;border-bottom:1px solid var(--bd);}
.subtask-row:last-child{border-bottom:none;}
.subtask-row:hover{background:var(--bg3);}
.sub-chk{width:12px;height:12px;border-radius:3px;border:1.5px solid var(--bd2);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.sub-chk.done{background:var(--t400);border-color:var(--t400);}
.sub-chk.done::after{content:'✓';font-size:7px;color:#fff;font-weight:800;}
.subtask-add{display:flex;align-items:center;gap:6px;padding:4px 12px 4px 38px;font-size:11px;color:var(--tx3);cursor:pointer;}
.subtask-add:hover{color:var(--p600);}
.empty-g{padding:12px;text-align:center;color:var(--tx3);font-size:12px;border:1px dashed var(--bd);border-radius:9px;}

/* ══════════════════════════════════════════════
   GANTT
══════════════════════════════════════════════ */
.gantt-outer{height:100%;display:flex;flex-direction:column;overflow:hidden;min-height:0;}
.gantt-hdr-wrap{flex-shrink:0;overflow:hidden;border-bottom:1px solid var(--bd2);}
.gantt-hdr-inner{display:flex;background:var(--bg2);}
.g-label-hdr{flex-shrink:0;font-size:10px;font-weight:700;color:var(--tx2);padding:0 6px;text-transform:uppercase;letter-spacing:0.06em;border-right:1px solid var(--bd2);display:flex;align-items:center;position:sticky;left:0;z-index:12;min-height:42px;background:var(--bg2);}
.g-lresize{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:2;display:flex;align-items:center;justify-content:center;}
.g-lresize::before{content:'';display:block;width:1.5px;height:55%;background:var(--bd2);border-radius:2px;transition:background 0.15s,height 0.15s,opacity 0.15s;opacity:0.5;}
.g-lresize:hover::before{background:var(--p400);height:75%;opacity:1;}
.g-lresize:active::before{background:var(--p400);height:100%;opacity:1;}
.g-months-hdr{display:flex;flex-shrink:0;}
.g-month-cell{flex-shrink:0;border-right:1px solid var(--bd);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:5px;}
.g-month-label{font-size:10px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:0.05em;}
.g-monday-dots{display:flex;width:100%;padding:3px 0 0;gap:0;}
.g-monday-dot{width:3px;height:3px;border-radius:50%;background:var(--g200);flex-shrink:0;}
.gantt-body-wrap{flex:1;overflow:auto;position:relative;min-height:0;}
.gantt-body-inner{position:relative;}
.gantt-body{display:flex;flex-direction:column;}
.g-group-row{display:flex;align-items:center;padding:7px 0 2px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;border-top:1px solid var(--bd);margin-top:3px;background:var(--bg);width:max-content;min-width:100%;}
.g-task-row{display:flex;align-items:center;min-height:32px;border-bottom:1px solid var(--bd);width:max-content;min-width:100%;}
.g-task-row:hover{background:rgba(0,0,0,0.012);}
.g-label{flex-shrink:0;padding:0 6px 0 4px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px;border-right:1px solid var(--bd2);height:100%;min-height:32px;position:sticky;left:0;z-index:10;background:var(--bg2);}
.g-task-row:hover .g-label{background:color-mix(in srgb,var(--bg2) 88%,var(--bg3));}
.g-label.done-l{color:var(--tx3);text-decoration:line-through;}
.g-grp-lbl{position:sticky;left:0;z-index:10;background:var(--bg);}
.g-bar-area{position:relative;height:32px;overflow:visible;flex-shrink:0;}
.g-grid-line{position:absolute;top:0;bottom:0;width:1px;background:var(--bd);pointer-events:none;z-index:0;}
.g-monday-line{position:absolute;top:0;bottom:0;width:1px;background:var(--g200);pointer-events:none;z-index:0;opacity:0.6;}
.g-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--c400);z-index:6;pointer-events:none;}
.g-today-line::before{content:'';position:absolute;top:5px;left:-4px;width:9px;height:9px;border-radius:50%;background:var(--c400);}
.g-bar{position:absolute;height:20px;top:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:grab;user-select:none;min-width:4px;box-shadow:0 2px 6px rgba(0,0,0,0.2);z-index:2;}
.g-bar:active{cursor:grabbing;opacity:0.85;}
.g-bar.done-b{opacity:0.38;}
.g-bar.inprog-b{background-image:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,0.14) 4px,rgba(255,255,255,0.14) 8px);}
.g-bar.waiting-b{background:var(--a200);background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(255,255,255,0.2) 6px,rgba(255,255,255,0.2) 12px);}
.g-bhandle{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:3;}
.g-bhandle.lh{left:0;border-radius:6px 0 0 6px;}
.g-bhandle.rh{right:0;border-radius:0 6px 6px 0;}
.g-bar-lbl{font-size:9px;font-weight:600;color:rgba(255,255,255,0.93);pointer-events:none;white-space:nowrap;padding:0 8px;text-align:center;overflow:hidden;}
.g-ext-dates{position:absolute;top:6px;height:20px;display:flex;align-items:center;pointer-events:none;z-index:4;}
.g-ext-dates span{font-size:9px;font-weight:600;color:var(--tx2);white-space:nowrap;background:var(--bg2);padding:1px 3px;border-radius:3px;}
.dep-svg{position:absolute;top:0;left:0;pointer-events:none;z-index:5;overflow:visible;}

/* ── AI PANEL ── */
.ai-panel{background:var(--bg3);border-bottom:1px solid var(--bd);padding:12px 14px;display:none;flex-shrink:0;max-height:calc(100vh - 220px);overflow:hidden;flex-direction:column;}
.ai-panel.show{display:flex;}
.ai-ptitle{font-size:12px;font-weight:700;color:var(--g600);margin-bottom:8px;flex-shrink:0;display:flex;align-items:center;gap:6px;}
.ai-panel textarea{width:100%;min-height:60px;padding:8px;border-radius:8px;border:1px solid var(--bd2);font-family:inherit;font-size:12px;resize:vertical;background:var(--bg2);color:var(--tx);}
.ai-panel textarea:focus{outline:none;border-color:var(--p400);}
.ai-sug{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;background:var(--bg2);border:1px solid var(--bd);margin-top:0;cursor:pointer;transition:border-color 0.12s,box-shadow 0.12s;}
.ai-sug:hover{border-color:var(--p400);box-shadow:0 0 0 2px var(--p50);}
.ai-load{text-align:center;padding:12px;color:var(--g600);font-size:12px;flex-shrink:0;}
.ai-sugs-scroll{overflow-y:auto;flex:1;min-height:0;margin-top:9px;padding-right:2px;}
.ai-sugs-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;}

/* ── MODAL ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:300;display:flex;align-items:center;justify-content:center;padding:18px;}
.modal{background:var(--bg2);border-radius:14px;padding:22px;width:100%;max-width:500px;max-height:92vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,0.2);border:1px solid var(--bd);}
.modal-title{font-size:15px;font-weight:700;margin-bottom:14px;font-family:'Red Hat Display',sans-serif;}
.modal-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:8px;}
.modal-hdr .modal-title,.modal-hdr .cal-tl-title,.modal-hdr .cal-fs-title,.modal-hdr .td-title{margin-bottom:0;flex:1;}
.modal-x{width:28px;height:28px;border-radius:7px;border:1px solid var(--bd2);background:var(--bg3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--tx2);flex-shrink:0;transition:all 0.12s;line-height:1;}
.modal-x:hover{background:var(--c50);border-color:var(--c100);color:var(--c600);}
.fg{margin-bottom:11px;}
.fl{font-size:10px;font-weight:700;color:var(--tx2);margin-bottom:4px;display:block;text-transform:uppercase;letter-spacing:0.04em;}
.fi{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--bd2);background:var(--bg2);color:var(--tx);font-size:13px;font-family:inherit;}
.fi:focus{outline:none;border-color:var(--p400);box-shadow:0 0 0 3px var(--p50);}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.macts{display:flex;flex-direction:column;gap:8px;margin-top:14px;}
.macts-time{display:flex;gap:7px;}
.macts-main{display:flex;gap:7px;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--bd);}

/* Time detail modal */
.td-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:300;display:flex;align-items:center;justify-content:center;}
.td-modal{background:var(--bg2);border-radius:14px;padding:22px 24px;width:min(660px,95vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 40px rgba(0,0,0,0.28);border:1px solid var(--bd);}
.td-title{font-size:15px;font-weight:700;margin-bottom:4px;font-family:'Red Hat Display',sans-serif;}
.td-sub{font-size:11px;color:var(--tx2);margin-bottom:14px;}
.td-table{flex:1;overflow-y:auto;min-height:0;}
.td-hdr{display:grid;grid-template-columns:100px 100px 80px 90px 1fr;gap:0;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--tx3);padding:0 8px 6px;border-bottom:1px solid var(--bd2);}
.td-row{display:grid;grid-template-columns:100px 100px 80px 90px 1fr;gap:0;align-items:center;padding:7px 8px;border-bottom:1px solid var(--bd);font-size:12px;}
.td-row:last-child{border-bottom:none;}
.td-row:hover{background:var(--bg3);}
.td-cell{padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td-input{width:72px;padding:3px 6px;border-radius:6px;border:1px solid var(--bd2);background:var(--bg3);font-size:12px;font-family:inherit;color:var(--tx);}
.td-input:focus{outline:none;border-color:var(--p400);}
.td-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:10px;border-top:1px solid var(--bd2);}
.td-totals{font-size:11px;color:var(--tx2);}
.td-totals strong{color:var(--tx);}
.td-empty{padding:24px;text-align:center;color:var(--tx3);font-size:12px;}
.dep-list{max-height:110px;overflow-y:auto;border:1px solid var(--bd2);border-radius:8px;padding:5px 8px;display:flex;flex-direction:column;gap:3px;}
.dep-item{display:flex;align-items:center;gap:7px;font-size:12px;cursor:pointer;}

/* Tooltip */
.tip{position:fixed;background:var(--tx);color:var(--bg2);font-size:11px;padding:4px 8px;border-radius:6px;pointer-events:none;z-index:500;white-space:nowrap;display:none;}

/* ── TOAST ── */
#toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(8px);
  background:var(--tx);color:var(--bg2);
  font-size:12.5px;font-weight:500;font-family:'DM Sans',sans-serif;
  padding:10px 14px;border-radius:10px;
  display:flex;align-items:center;gap:10px;
  box-shadow:0 6px 24px rgba(0,0,0,0.28);
  z-index:2000;pointer-events:all;
  opacity:0;transition:opacity 0.18s ease,transform 0.18s ease;
  white-space:nowrap;
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast-undo{
  padding:4px 10px;border-radius:6px;border:none;
  background:var(--lime);color:#10131A;
  font-size:11px;font-weight:700;font-family:inherit;
  cursor:pointer;flex-shrink:0;transition:background 0.12s;
}
.toast-undo:hover{background:var(--lime-dark);}
.toast-close{
  width:18px;height:18px;border-radius:4px;border:none;
  background:rgba(255,255,255,0.12);color:inherit;
  font-size:12px;line-height:1;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.toast-close:hover{background:rgba(255,255,255,0.22);}
#toast[data-v=error]{background:#c0392b;color:#fff;}
#toast[data-v=success]{background:var(--lime);color:#10131A;font-weight:600;}

/* ── UNDO BUTTON ── */
.undo-btn{
  display:flex;align-items:center;gap:5px;padding:5px 10px;
  border-radius:7px;border:1px solid var(--bd2);
  background:var(--bg2);color:var(--tx2);
  font-size:12px;font-weight:500;font-family:inherit;
  cursor:pointer;transition:all 0.12s;white-space:nowrap;
}
.undo-btn:hover:not(:disabled){background:var(--bg3);color:var(--tx);}
.undo-btn:disabled{opacity:0.35;cursor:not-allowed;}
.undo-btn svg{flex-shrink:0;}

/* Rich subtasks */
.sub-meta{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:2px;}
.sub-acts{display:flex;gap:2px;flex-shrink:0;margin-left:4px;}
.subtask-row.l2{padding-left:52px;background:var(--bg3);}
.subtask-row.l2:hover{background:var(--bg4);}
.sub-chk.inprog{background:var(--bl400);border-color:var(--bl400);}
.sub-chk.inprog::after{content:'▶';font-size:6px;color:#fff;}
.sub-chk.waiting{background:var(--a200);border-color:var(--a400);}
.sub-chk.waiting::after{content:'⏸';font-size:6px;color:#fff;}

/* ══════════════════════════════════════════════
   CALENDAR VIEW
══════════════════════════════════════════════ */
.content.content-cal{overflow:hidden;}
.cal-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden;}
.cal-toolbar{display:flex;align-items:center;gap:8px;padding:10px 18px;background:var(--bg2);border-bottom:1px solid var(--bd);flex-shrink:0;flex-wrap:wrap;}
.cal-nav-btn{display:flex;align-items:center;gap:5px;padding:5px 11px;border-radius:7px;border:1px solid var(--bd2);background:var(--bg2);color:var(--tx);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all 0.12s;white-space:nowrap;}
.cal-nav-btn:hover{background:var(--bg3);}
.cal-nav-btn.active{background:var(--lime);color:#10131A;border-color:var(--lime-dark);font-weight:700;}
.cal-week-label{font-size:13px;font-weight:700;color:var(--tx);padding:0 4px;white-space:nowrap;}
.cal-sep{flex:1;}
.cal-config-panel{flex-shrink:0;background:var(--bg3);border-bottom:1px solid var(--bd2);overflow-y:auto;max-height:300px;}
.cal-config-inner{padding:14px 18px;}
.cal-config-title{font-size:10px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:10px;}
.cal-proj-avail{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--bd);}
.cal-proj-avail:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.cal-proj-hdr{display:flex;align-items:center;gap:7px;margin-bottom:8px;}
.cal-proj-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.cal-proj-name{font-size:12px;font-weight:700;color:var(--tx);}
.cal-avail-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
.cal-avail-days{display:flex;gap:3px;}
.cal-day-chip{width:24px;height:24px;border-radius:5px;border:1px solid var(--bd2);background:var(--bg2);color:var(--tx2);font-size:9px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.12s;flex-shrink:0;user-select:none;}
.cal-day-chip.on{background:var(--lime);color:#10131A;border-color:var(--lime);font-weight:700;}
.cal-time-input{padding:5px 7px;border-radius:6px;border:1px solid var(--bd2);background:var(--bg2);color:var(--tx);font-size:12px;font-family:inherit;}
.cal-avail-del{width:22px;height:22px;border-radius:4px;border:1px solid var(--c100);background:var(--c50);color:var(--c600);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;transition:all 0.12s;padding:0;font-family:inherit;}
.cal-avail-del:hover{background:var(--c100);}
.cal-add-avail-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:5px;border:1px dashed var(--bd2);background:transparent;color:var(--tx2);font-size:11px;cursor:pointer;transition:all 0.12s;font-family:inherit;margin-top:2px;}
.cal-add-avail-btn:hover{background:var(--bg4);color:var(--p600);}
.cal-lbl-input{padding:5px 7px;border-radius:6px;border:1px solid var(--bd2);background:var(--bg2);color:var(--tx);font-size:12px;font-family:inherit;width:130px;}
.cal-unavail-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg2);border-radius:7px;border:1px solid var(--bd);margin-bottom:4px;font-size:12px;color:var(--tx);}
.cal-unavail-item .cal-avail-del{margin-left:auto;}
.cal-grid-container{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;}
.cal-day-header{display:flex;flex-shrink:0;border-bottom:1px solid var(--bd2);background:var(--bg2);}
.cal-time-gutter{width:52px;flex-shrink:0;border-right:1px solid var(--bd2);}
.cal-day-hdr-cell{flex:1;padding:7px 6px;text-align:center;border-right:1px solid var(--bd);min-width:80px;}
.cal-day-hdr-cell .dow{font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:0.05em;font-size:10px;}
.cal-day-hdr-cell .dom{font-size:17px;font-weight:700;color:var(--tx);margin-top:2px;line-height:1;}
.cal-day-hdr-cell .dom.today-num{background:var(--lime);color:#10131A;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;}
.cal-grid-scroll{flex:1;overflow:auto;min-height:0;}
.cal-grid-body{display:flex;min-width:100%;}
.cal-time-col-g{width:52px;flex-shrink:0;border-right:1px solid var(--bd2);}
.cal-hour-label{height:80px;display:flex;align-items:flex-start;justify-content:flex-end;padding:3px 8px 0 0;font-size:10px;color:var(--tx3);font-weight:600;box-sizing:border-box;}
.cal-days-cols{flex:1;display:flex;min-width:0;}
.cal-day-col{flex:1;border-right:1px solid var(--bd);position:relative;min-width:80px;box-sizing:border-box;}
.cal-day-col.cal-today-col{background:rgba(139,255,60,0.03);}
.cal-hour-rows{position:relative;}
.cal-qhr{height:20px;box-sizing:border-box;}
.cal-qhr.h-mark{border-top:1px solid var(--bd2);}
.cal-qhr.hh-mark{border-top:1px solid var(--bd);opacity:0.6;}
.cal-qhr.q-mark{border-top:1px solid var(--bd);opacity:0.3;}
.cal-avail-band{position:absolute;left:0;right:0;pointer-events:none;border-left:3px solid transparent;}
.cal-unavail-day{position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(0,0,0,0.09) 0px,rgba(0,0,0,0.09) 4px,rgba(0,0,0,0.03) 4px,rgba(0,0,0,0.03) 8px);z-index:3;pointer-events:none;border-top:2px solid rgba(0,0,0,0.12);}
.cal-unavail-band-time{position:absolute;left:0;right:0;background:repeating-linear-gradient(45deg,rgba(0,0,0,0.10) 0px,rgba(0,0,0,0.10) 4px,rgba(0,0,0,0.03) 4px,rgba(0,0,0,0.03) 8px);border-left:3px solid rgba(100,100,100,0.4);border-top:1px solid rgba(0,0,0,0.12);border-bottom:1px solid rgba(0,0,0,0.12);z-index:3;pointer-events:none;box-sizing:border-box;}
.cal-unavail-named{position:absolute;left:1px;right:18px;border-radius:5px;padding:2px 6px;font-size:10px;font-weight:600;background:repeating-linear-gradient(45deg,rgba(107,114,144,0.22) 0px,rgba(107,114,144,0.22) 4px,rgba(107,114,144,0.08) 4px,rgba(107,114,144,0.08) 8px);border:1px solid rgba(107,114,144,0.35);color:rgba(107,114,144,0.9);z-index:3;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start;cursor:grab;transition:box-shadow 0.12s,border-color 0.12s;}
.cal-unavail-named:hover{border-color:rgba(107,114,144,0.65);box-shadow:0 2px 8px rgba(0,0,0,0.2);}
.cal-unavail-named.cal-unavail-dragging{opacity:0.4;cursor:grabbing;}
.cal-unavail-named .cal-rh{opacity:0;transition:opacity 0.12s;}
.cal-unavail-named:hover .cal-rh{opacity:1;}
/* Modal scope unavailability */
.unavail-scope-choice{display:flex;flex-direction:column;gap:8px;margin:14px 0;}
.unavail-scope-btn{background:var(--bg3);border:1px solid var(--bd2);border-radius:9px;padding:12px 14px;cursor:pointer;text-align:left;font-family:inherit;transition:all 0.12s;}
.unavail-scope-btn:hover{background:var(--bg4);border-color:var(--p400);}
.unavail-scope-btn strong{display:block;font-size:13px;color:var(--tx);margin-bottom:2px;}
.unavail-scope-btn span{font-size:11px;color:var(--tx3);}
.cal-no-avail-msg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;color:var(--tx3);text-align:center;white-space:nowrap;pointer-events:none;z-index:0;}
.cal-now-line{position:absolute;left:0;right:0;height:2px;background:var(--c400);z-index:8;pointer-events:none;}
.cal-now-line::before{content:'';position:absolute;left:-4px;top:-4px;width:9px;height:9px;border-radius:50%;background:var(--c400);}
.cal-tasks-placeholder{position:absolute;top:4px;left:4px;right:4px;font-size:10px;color:var(--p400);text-align:center;pointer-events:none;z-index:3;font-style:italic;opacity:0.7;}
.od-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding-top:60px;}
.od-modal{background:var(--bg2);border-radius:12px;border:1px solid var(--bd2);box-shadow:0 8px 32px rgba(0,0,0,0.35);width:min(560px,92vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;}
.od-header{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--bd);background:rgba(220,60,60,0.08);}
.od-header-icon{font-size:22px;line-height:1;flex-shrink:0;}
.od-header-title{font-size:14px;font-weight:700;color:var(--tx);}
.od-header-sub{font-size:11px;color:var(--tx2);margin-top:2px;}
.od-close{margin-left:auto;background:none;border:none;color:var(--tx2);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;flex-shrink:0;}
.od-close:hover{background:var(--bg3);color:var(--tx);}
.od-body{overflow-y:auto;padding:12px 18px;display:flex;flex-direction:column;gap:12px;}
.od-item{background:var(--bg3);border-radius:8px;border:1px solid var(--bd);padding:12px 14px;display:flex;flex-direction:column;gap:10px;}
.od-item-header{display:flex;align-items:center;gap:8px;}
.od-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.od-title{font-size:12px;font-weight:700;color:var(--tx);flex:1;}
.od-deadline{font-size:10px;color:var(--c500);font-weight:600;white-space:nowrap;}
.od-actions{display:flex;flex-direction:column;gap:7px;}
.od-btn{padding:6px 12px;border-radius:7px;border:1px solid var(--bd2);background:var(--bg2);color:var(--tx);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:all 0.12s;}
.od-btn:hover{background:var(--bg3);}
.od-avail-btn:hover{background:var(--lime);color:#10131A;border-color:var(--lime-dark);}
.od-accept-btn:hover{background:rgba(60,180,60,0.1);border-color:rgba(60,180,60,0.4);color:#2a9a2a;}
.od-prio-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.od-prio-label{font-size:10px;color:var(--tx2);font-weight:600;white-space:nowrap;}
.od-prio-btn{padding:4px 10px;border-radius:5px;border:1px solid var(--bd2);background:var(--bg2);color:var(--tx2);font-size:10px;font-weight:600;font-family:inherit;cursor:pointer;transition:all 0.12s;}
.od-prio-btn:hover{background:var(--a50);color:var(--a600);border-color:var(--a200);}
.od-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--bd);}
.od-footer-btn{padding:6px 14px;border-radius:7px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx2);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all 0.12s;}
.od-footer-btn:hover{background:var(--bg4);}

/* Calendar blocks, drag etc. */
.cal-block{position:absolute;border-radius:6px;padding:2px 6px;font-size:10px;font-weight:600;color:#fff;cursor:pointer;overflow:hidden;z-index:5;display:flex;flex-direction:column;justify-content:flex-start;box-shadow:0 2px 6px rgba(0,0,0,0.22);transition:box-shadow 0.12s;box-sizing:border-box;border:1px solid rgba(255,255,255,0.15);}
.cal-block:hover{box-shadow:0 4px 12px rgba(0,0,0,0.3);}
.cal-block.cal-dragging{opacity:0.45;cursor:grabbing;}
.cal-block-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;}
.cal-block-time{font-size:9px;opacity:0.82;line-height:1.2;margin-top:1px;}
.cal-block-done{opacity:0.38;text-decoration:line-through;}
.cal-block-past{cursor:pointer;}
.cal-past-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.22);z-index:1;pointer-events:none;}
.cal-drag-ghost{position:fixed;z-index:9999;border-radius:6px;color:#fff;font-size:10px;font-weight:600;padding:4px 8px;pointer-events:none;display:none;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 16px rgba(0,0,0,0.3);}
.cal-drag-over{background:rgba(139,255,60,0.05)!important;}
.cal-drop-line{position:absolute;left:2px;right:2px;height:2px;background:var(--p600);border-radius:2px;z-index:7;pointer-events:none;}
.cal-resize-handle{position:absolute;left:0;right:0;height:6px;cursor:ns-resize;z-index:6;}
.cal-resize-handle.top{top:0;}
.cal-resize-handle.bottom{bottom:0;}
.cal-free-block{position:absolute;border-radius:6px;border:1.5px dashed rgba(29,158,117,0.45);background:rgba(29,158,117,0.06);font-size:9px;color:var(--t600);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:4;box-sizing:border-box;}
.cal-free-block:hover{background:rgba(29,158,117,0.12);border-color:var(--t400);}
.cal-block-pinned::after{content:'📌';position:absolute;top:1px;right:3px;font-size:8px;}
.cal-past-log{position:absolute;bottom:1px;right:3px;font-size:8px;}

/* Calendar modals */
.cal-tl-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:1200;display:flex;align-items:center;justify-content:center;}
.cal-tl-modal{background:var(--bg2);border-radius:14px;padding:22px 24px;width:min(480px,95vw);box-shadow:0 8px 40px rgba(0,0,0,0.28);border:1px solid var(--bd);}
.cal-tl-title{font-size:14px;font-weight:700;font-family:'Red Hat Display',sans-serif;}
.cal-tl-sub{font-size:11px;color:var(--tx2);margin-top:2px;margin-bottom:14px;}
.cal-tl-opts{display:flex;gap:6px;margin-bottom:14px;}
.cal-tl-opt{flex:1;padding:8px 12px;border-radius:8px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx2);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all 0.12s;text-align:center;}
.cal-tl-opt:hover{background:var(--bg4);}
.cal-tl-opt.active{background:var(--lime);color:#10131A;border-color:var(--lime-dark);font-weight:700;}
.cal-tl-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.cal-tl-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--bd);}
.btn-s{padding:6px 14px;border-radius:7px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx2);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;}
.btn-s:hover{background:var(--bg4);}
.btn-p{padding:6px 14px;border-radius:7px;border:none;background:var(--lime);color:#10131A;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;}
.btn-p:hover{background:var(--lime-dark);}
.cal-fs-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:1200;display:flex;align-items:center;justify-content:center;}
.cal-fs-modal{background:var(--bg2);border-radius:14px;padding:22px 24px;width:min(440px,95vw);box-shadow:0 8px 40px rgba(0,0,0,0.28);border:1px solid var(--bd);}
.cal-fs-title{font-size:14px;font-weight:700;font-family:'Red Hat Display',sans-serif;}
.cal-fs-sub{font-size:11px;color:var(--tx2);margin-bottom:12px;}
.cal-fs-sugg{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid var(--bd);background:var(--bg3);cursor:pointer;margin-bottom:6px;transition:all 0.12s;}
.cal-fs-sugg:hover{border-color:var(--p400);background:var(--p50);}
.cal-fs-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.cal-fs-sugg-lbl{flex:1;font-size:13px;font-weight:500;color:var(--tx);}
.cal-fs-sugg-pri{font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;}
.cal-fs-ignore{margin-top:10px;text-align:center;}
.cal-fs-ignore-btn{background:none;border:none;color:var(--tx3);font-size:12px;cursor:pointer;font-family:inherit;padding:4px 8px;border-radius:5px;}
.cal-fs-ignore-btn:hover{color:var(--tx);background:var(--bg3);}

/* Notes & docs */
.note-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--bd);}
.note-row:last-child{border-bottom:none;}
.note-date-inp{font-size:11px;color:var(--tx3);background:var(--bg3);border:1px solid var(--bd);padding:3px 6px;border-radius:5px;font-family:inherit;cursor:pointer;flex-shrink:0;width:110px;}
.note-date-inp:focus{outline:none;border-color:var(--p400);}
.note-txt{flex:1;min-width:0;background:transparent;border:none;resize:none;font-family:inherit;font-size:12px;color:var(--tx);line-height:1.5;min-height:38px;overflow:hidden;}
.note-txt:focus{outline:none;}
.note-txt::placeholder{color:var(--tx3);}
.note-del{background:none;border:none;cursor:pointer;color:var(--tx3);flex-shrink:0;padding:2px;line-height:1;margin-top:2px;display:flex;align-items:center;border-radius:4px;}
.note-del:hover{color:var(--c600);background:var(--c50);}
.btn-add-note{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--tx3);background:none;border:none;cursor:pointer;padding:2px 0;font-family:inherit;}
.btn-add-note:hover{color:var(--p600);}
.doc-drop-zone{border:1.5px dashed var(--bd2);border-radius:9px;padding:14px 16px;text-align:center;cursor:pointer;transition:all 0.14s;background:var(--bg3);margin-bottom:6px;}
.doc-drop-zone:hover,.doc-drop-zone.drag-over{border-color:var(--p400);background:var(--p50);}
.doc-drop-zone-txt{font-size:12px;color:var(--tx3);}
.doc-list{display:flex;flex-direction:column;gap:4px;margin-bottom:4px;}
.doc-item{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg3);border:1px solid var(--bd);border-radius:8px;}
.doc-icon{font-size:16px;flex-shrink:0;}
.doc-info{flex:1;min-width:0;}
.doc-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.doc-meta{font-size:10px;color:var(--tx3);}
.doc-acts{display:flex;gap:4px;flex-shrink:0;}

/* Library modal */
.lib-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.52);z-index:1100;display:flex;align-items:flex-start;justify-content:center;padding:30px 16px;}
.lib-modal{background:var(--bg2);border-radius:14px;width:min(820px,98vw);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 12px 60px rgba(0,0,0,0.38);overflow:hidden;border:1px solid var(--bd);}
.lib-hdr{display:flex;align-items:center;gap:10px;padding:18px 22px 14px;border-bottom:1px solid var(--bd);flex-shrink:0;}
.lib-title{font-size:15px;font-weight:700;flex:1;font-family:'Red Hat Display',sans-serif;}
.lib-body{flex:1;overflow-y:auto;padding:16px 22px 22px;}
.lib-empty{padding:40px;text-align:center;color:var(--tx3);font-size:13px;}
.lib-cat-hdr{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--tx2);margin:16px 0 6px;display:flex;align-items:center;gap:8px;}
.lib-cat-hdr:first-child{margin-top:0;}
.lib-cat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.lib-cat-hdr::after{content:'';flex:1;height:1px;background:var(--bd);}
.lib-doc-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--bd);border-radius:8px;margin-bottom:5px;background:var(--bg3);cursor:pointer;transition:border-color 0.12s;}
.lib-doc-row:hover{border-color:var(--bd2);}
.lib-doc-icon{font-size:20px;flex-shrink:0;}
.lib-doc-info{flex:1;min-width:0;}
.lib-doc-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lib-doc-meta{font-size:11px;color:var(--tx3);margin-top:1px;}
.lib-doc-acts{display:flex;gap:5px;flex-shrink:0;}
.lib-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;border:1px solid var(--bd2);background:var(--bg2);font-size:11px;font-weight:500;font-family:inherit;cursor:pointer;color:var(--tx2);white-space:nowrap;transition:all 0.12s;line-height:1;}
.lib-btn svg{display:block;flex-shrink:0;}
.lib-btn:hover{background:var(--bg4);border-color:var(--bd2);}
.lib-btn.del{color:var(--c600);border-color:var(--c100);background:var(--c50);}
.lib-btn.del:hover{background:var(--c100);}

/* Inline panels */
.tip-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;border:1px solid var(--bd);background:var(--bg3);font-size:11px;color:var(--tx3);cursor:pointer;font-family:inherit;transition:all 0.12s;white-space:nowrap;line-height:1;}
.tip-badge svg{display:block;flex-shrink:0;}
.tip-badge:hover{border-color:var(--bd2);background:var(--bg4);color:var(--tx);}
.tip-badge.has-items{background:var(--lime);color:#10131A;border-color:var(--lime-dark);font-weight:600;}
.tip-badge.active{background:var(--lime);color:#10131A;border-color:var(--lime-dark);font-weight:600;}
.task-inline-panel{border-top:1px solid var(--bd);background:var(--bg);padding:12px 16px 14px 20px;}
.tip-panel-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--tx3);}
.tip-empty{font-size:12px;color:var(--tx3);font-style:italic;padding:4px 0 8px;}
.tip-note-row{display:flex;gap:8px;align-items:flex-start;background:var(--bg2);border:1px solid var(--bd);border-radius:8px;padding:8px 10px;margin-bottom:6px;}
.tip-note-date{font-size:11px;color:var(--tx3);background:transparent;border:none;padding:2px 4px;font-family:inherit;cursor:pointer;flex-shrink:0;width:108px;border-radius:4px;}
.tip-note-date:focus{outline:none;background:var(--bg3);color:var(--tx);}
.tip-note-txt{flex:1;min-width:0;background:transparent;border:none;resize:none;font-family:inherit;font-size:12px;color:var(--tx);line-height:1.5;min-height:38px;overflow:hidden;}
.tip-note-txt:focus{outline:none;}
.tip-note-txt::placeholder{color:var(--tx3);}
.tip-doc-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;}

/* ── Calendar task blocks (classe renommée vs cal-block) ── */
.cal-task-block{
  position:absolute;left:2px;right:18px;
  border-radius:6px;padding:3px 6px;
  font-size:10px;font-weight:600;color:#fff;
  cursor:pointer;overflow:hidden;z-index:5;
  display:flex;flex-direction:column;justify-content:flex-start;
  box-shadow:0 2px 6px rgba(0,0,0,0.22);
  transition:box-shadow 0.12s;box-sizing:border-box;
  border:1px solid rgba(255,255,255,0.15);
}
.cal-task-block:hover{box-shadow:0 4px 12px rgba(0,0,0,0.3);}
.cal-task-block.cal-past{cursor:pointer;opacity:0.85;}
.cal-task-block.cal-overdue{outline:2px solid var(--c400);}
.cal-task-block-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;}
.cal-task-block-time{font-size:9px;opacity:0.82;line-height:1.2;margin-top:1px;}
.cal-pin-btn{
  position:absolute;top:2px;right:3px;
  width:14px;height:14px;border-radius:3px;
  background:rgba(0,0,0,0.3);color:#fff;
  font-size:9px;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  line-height:1;z-index:6;padding:0;font-family:inherit;
}
.cal-pin-btn:hover{background:rgba(0,0,0,0.55);}
.cal-pin-icon{font-size:8px;line-height:1;margin-right:2px;}
.cal-rh{position:absolute;left:0;right:0;height:6px;cursor:ns-resize;z-index:6;}
.cal-rh-top{top:0;}
.cal-rh-bot{bottom:0;}
/* Gap chip — indicateur de créneau libre */
.cal-gap-chip{
  position:absolute;left:2px;right:18px;
  border-radius:5px;border:1.5px dashed;
  font-size:9px;font-weight:600;
  display:flex;align-items:center;gap:5px;
  cursor:pointer;z-index:4;box-sizing:border-box;
  padding:3px 6px;white-space:nowrap;overflow:hidden;
}
.cal-gap-chip:hover{filter:brightness(0.9);}
.cal-gap-chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}

/* Add-to-slot */
.cal-hour-rows{cursor:cell;}
.cal-slot-hover{position:absolute;left:2px;right:2px;background:rgba(139,255,60,0.08);border:1.5px dashed rgba(139,255,60,0.4);border-radius:4px;pointer-events:none;z-index:4;transition:opacity 0.1s;}
.as-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.48);z-index:1200;display:flex;align-items:center;justify-content:center;}
.as-modal{background:var(--bg2);border-radius:14px;padding:22px 24px;width:min(480px,95vw);max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,0.35);border:1px solid var(--bd);}
.as-modal--wide{width:min(540px,95vw);}
.as-title{font-size:14px;font-weight:700;font-family:'Red Hat Display',sans-serif;}
.as-sub{font-size:11px;color:var(--tx3);margin-top:2px;margin-bottom:16px;}
.as-type-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:10px;border:1.5px solid var(--bd2);background:var(--bg3);cursor:pointer;font-family:inherit;text-align:left;transition:all 0.13s;width:100%;}
.as-type-card:hover{border-color:var(--p400);background:var(--p50);box-shadow:0 2px 8px rgba(139,255,60,0.12);}
.as-type-icon{font-size:22px;flex-shrink:0;width:32px;text-align:center;}
.as-type-label{font-size:13px;font-weight:600;color:var(--tx);}
.as-type-desc{font-size:11px;color:var(--tx3);margin-top:2px;}
.as-back-btn{background:none;border:none;cursor:pointer;font-size:12px;color:var(--tx3);font-family:inherit;padding:0 6px 0 0;display:flex;align-items:center;gap:3px;flex-shrink:0;}
.as-back-btn:hover{color:var(--p600);}
.as-time-hdr{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.as-time-hdr .fg{min-width:0;}

/* Manual time & misc */
.cal-mt-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:1200;display:flex;align-items:center;justify-content:center;}
.cal-mt-modal{background:var(--bg2);border-radius:14px;padding:22px 24px;width:min(420px,95vw);box-shadow:0 8px 40px rgba(0,0,0,0.28);border:1px solid var(--bd);}
.cal-mt-title{font-size:14px;font-weight:700;margin-bottom:14px;font-family:'Red Hat Display',sans-serif;}

/* Overdue badge */
.od-reopener{display:flex;align-items:center;gap:5px;padding:4px 9px;border-radius:6px;background:rgba(184,50,48,0.12);border:1px solid rgba(184,50,48,0.25);color:#d85a30;font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;flex-shrink:0;}
.od-reopener:hover{background:rgba(184,50,48,0.2);}

/* Add-slot step cards gap */
.as-type-cards{display:flex;flex-direction:column;gap:8px;margin-top:14px;}

/* ── Animations & transitions ── */
@keyframes fadeInUp {
  from { opacity:0; transform:translateY(6px); }
  to   { opacity:1; transform:translateY(0); }
}
.snav-item, .sproj-item { animation: fadeInUp 0.2s ease both; }
.task-card { transition: border-color 0.12s, box-shadow 0.15s, transform 0.1s; }
.task-card:hover { transform: translateY(-1px); }
.sidebar-ai-btn { position:relative; overflow:hidden; }
.sidebar-ai-btn::after {
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(139,255,60,0.08),transparent);
  pointer-events:none;
}
/* Scrollbar styling for main content */
.content::-webkit-scrollbar { width:5px; }
.content::-webkit-scrollbar-thumb { background:var(--bd2); border-radius:5px; }
.content::-webkit-scrollbar-track { background:transparent; }
/* Glass effect for action bar */
.action-bar {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  position: relative;
  z-index: 30;
}
/* Sidebar active item glow */
.snav-item.active {
  box-shadow: inset 0 0 0 1px rgba(139,255,60,0.25);
}

/* ── Paused project / category ── */
.sproj-item.paused-proj .sproj-name{opacity:0.38;font-style:italic;}
.sproj-item.paused-proj .sproj-dot{opacity:0.28;}
.sproj-item.paused-proj .sproj-count{opacity:0.28;}
.sproj-pause-btn{
  width:16px;height:16px;border-radius:4px;
  display:none;align-items:center;justify-content:center;
  font-size:10px;color:rgba(255,255,255,0.3);
  cursor:pointer;flex-shrink:0;border:none;background:transparent;line-height:1;
}
.sproj-item:hover .sproj-pause-btn{display:flex;}
.sproj-pause-btn:hover{background:rgba(139,255,60,0.18);color:var(--lime);}
.group.group-paused{opacity:0.55;}
.group.group-paused .gname{font-style:italic;}
.cat-pause-btn{
  font-size:10px;color:rgba(0,0,0,0.22);background:none;border:none;
  cursor:pointer;padding:2px 5px;border-radius:4px;margin-left:2px;flex-shrink:0;
  transition:all 0.12s;line-height:1;
}
.cat-pause-btn:hover{background:rgba(139,255,60,0.18);color:var(--lime-dark);}
@media(prefers-color-scheme:dark){
  .cat-pause-btn{color:rgba(255,255,255,0.28);}
  .cat-pause-btn:hover{color:var(--lime);}
}

/* ── Zone d'ajout à droite des blocs calendrier ── */
/* cal-block-add-zone supprimée — espace vide obtenu par right:18px sur cal-task-block */

/* ── Recherche sidebar ── */
.sidebar-search-wrap{padding:4px 8px 6px;position:relative;}
.sidebar-search-input{width:100%;box-sizing:border-box;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:7px;padding:6px 10px 6px 28px;font-size:12px;color:rgba(255,255,255,0.82);font-family:'DM Sans',sans-serif;outline:none;transition:border-color 0.15s;}
.sidebar-search-input::placeholder{color:rgba(255,255,255,0.28);}
.sidebar-search-input:focus{border-color:rgba(139,255,60,0.4);background:rgba(255,255,255,0.09);}
.sidebar-search-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:13px;height:13px;color:rgba(255,255,255,0.3);pointer-events:none;}
.sidebar-search-results{position:absolute;left:8px;right:8px;top:calc(100% - 2px);background:var(--bg2);border:1px solid var(--bd2);border-radius:9px;box-shadow:0 8px 32px rgba(0,0,0,0.35);z-index:500;max-height:260px;overflow-y:auto;padding:4px;}
.sidebar-search-result{padding:7px 10px;border-radius:6px;cursor:pointer;font-size:12px;color:var(--tx);display:flex;flex-direction:column;gap:2px;transition:background 0.1s;}
.sidebar-search-result:hover{background:var(--bg3);}
.sidebar-search-result-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sidebar-search-result-meta{font-size:10px;color:var(--tx3);}
.sidebar-search-result mark{background:rgba(139,255,60,0.28);color:var(--lime);border-radius:2px;padding:0 1px;font-style:normal;}
.sidebar-search-empty{padding:12px 10px;font-size:12px;color:var(--tx3);text-align:center;}
/* ── Description longue ── */
.task-desc-area{width:100%;box-sizing:border-box;min-height:72px;resize:vertical;font-family:'DM Sans',sans-serif;font-size:12.5px;line-height:1.55;color:var(--tx);background:var(--bg3);border:1px solid var(--bd2);border-radius:8px;padding:8px 10px;outline:none;transition:border-color 0.15s;}
.task-desc-area::placeholder{color:var(--tx3);font-style:italic;}
.task-desc-area:focus{border-color:rgba(139,255,60,0.4);}
.task-desc-ai-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;background:rgba(139,255,60,0.14);color:var(--lime);border-radius:5px;padding:2px 7px;margin-left:6px;vertical-align:middle;}
/* ── Coachmarks ── */
.coachmark{position:fixed;z-index:9000;max-width:280px;background:linear-gradient(135deg,#1a2440 0%,#1C2030 100%);border:1.5px solid rgba(139,255,60,0.45);border-radius:12px;padding:12px 14px;box-shadow:0 8px 32px rgba(0,0,0,0.5);animation:cmFadeIn 0.25s ease;}
@keyframes cmFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.coachmark.arrow-top::before{content:'';position:absolute;top:-7px;left:24px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(139,255,60,0.45);}
.coachmark.arrow-left::before{content:'';position:absolute;left:-7px;top:14px;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(139,255,60,0.45);}
.coachmark-head{display:flex;align-items:center;gap:7px;margin-bottom:6px;}
.coachmark-icon{font-size:16px;flex-shrink:0;}
.coachmark-title{font-size:12px;font-weight:700;color:var(--lime);font-family:'Red Hat Display',sans-serif;flex:1;}
.coachmark-close{width:20px;height:20px;border-radius:5px;border:none;background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.5);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.coachmark-close:hover{background:rgba(255,255,255,0.15);color:#fff;}
.coachmark-body{font-size:12px;color:rgba(255,255,255,0.75);line-height:1.55;}
.coachmark-got{margin-top:9px;display:flex;justify-content:flex-end;}
.coachmark-got button{font-size:11px;font-weight:700;background:var(--lime);color:#10131A;border:none;border-radius:6px;padding:4px 12px;cursor:pointer;font-family:'DM Sans',sans-serif;}
.coachmark-got button:hover{background:var(--lime-dark);}
/* ══════════════════════════════════════════════
   FEEDBACK MODAL
══════════════════════════════════════════════ */
.fb-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:1300;display:flex;align-items:center;justify-content:center;animation:fbBgIn .18s ease;}
@keyframes fbBgIn{from{opacity:0}to{opacity:1}}
.fb-modal{
  background:var(--bg2);border-radius:16px;
  width:min(440px,95vw);
  box-shadow:0 16px 60px rgba(0,0,0,0.42);
  border:1px solid var(--bd);
  overflow:hidden;
  animation:fbIn .22s cubic-bezier(.2,.85,.4,1);
}
@keyframes fbIn{from{opacity:0;transform:translateY(12px) scale(0.97)}to{opacity:1;transform:none}}
.fb-hdr{
  display:flex;align-items:center;gap:10px;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--bd);
}
.fb-hdr-icon{
  width:32px;height:32px;border-radius:9px;
  background:var(--lime-sub);border:1px solid var(--lime-dim);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.fb-hdr-text{flex:1;}
.fb-hdr-title{font-size:14px;font-weight:700;font-family:'Red Hat Display',sans-serif;color:var(--tx);}
.fb-hdr-sub{font-size:11px;color:var(--tx3);margin-top:1px;}
.fb-close{
  width:28px;height:28px;border-radius:7px;border:none;
  background:transparent;color:var(--tx3);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;line-height:1;transition:all .12s;flex-shrink:0;
}
.fb-close:hover{background:var(--bg3);color:var(--tx);}
.fb-body{padding:18px 20px 20px;}

/* Type cards (step 0) */
.fb-type-grid{display:flex;flex-direction:column;gap:8px;}
.fb-type-card{
  display:flex;align-items:center;gap:14px;
  padding:13px 15px;border-radius:11px;
  border:1.5px solid var(--bd2);background:var(--bg3);
  cursor:pointer;font-family:inherit;text-align:left;
  transition:all .14s;width:100%;
}
.fb-type-card:hover{border-color:var(--lime-dark);background:var(--lime-sub);box-shadow:0 2px 10px var(--lime-glow);}
.fb-type-emoji{font-size:22px;width:34px;text-align:center;flex-shrink:0;line-height:1;}
.fb-type-info{flex:1;}
.fb-type-label{font-size:13px;font-weight:600;color:var(--tx);}
.fb-type-desc{font-size:11px;color:var(--tx3);margin-top:2px;line-height:1.4;}
.fb-type-arrow{font-size:14px;color:var(--tx3);flex-shrink:0;transition:transform .14s;}
.fb-type-card:hover .fb-type-arrow{transform:translateX(3px);color:var(--lime);}

/* Step header with back */
.fb-step-hdr{display:flex;align-items:center;gap:8px;margin-bottom:16px;}
.fb-back{
  background:none;border:none;cursor:pointer;
  color:var(--tx3);font-size:12px;font-family:inherit;
  display:flex;align-items:center;gap:3px;padding:0;flex-shrink:0;
  transition:color .12s;
}
.fb-back:hover{color:var(--tx);}
.fb-step-label{font-size:13px;font-weight:700;color:var(--tx);font-family:'Red Hat Display',sans-serif;}

/* Star rating */
.fb-stars{display:flex;gap:4px;margin-bottom:14px;}
.fb-star{
  width:36px;height:36px;border-radius:8px;border:none;
  background:var(--bg3);cursor:pointer;font-size:20px;
  display:flex;align-items:center;justify-content:center;
  transition:all .12s;line-height:1;
}
.fb-star:hover,.fb-star.active{background:rgba(250,200,0,0.15);transform:scale(1.12);}
.fb-star.active{border:1.5px solid rgba(250,200,0,0.4);}

/* Form fields */
.fb-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:5px;display:block;}
.fb-input{
  width:100%;box-sizing:border-box;
  background:var(--bg3);border:1px solid var(--bd2);border-radius:8px;
  padding:8px 11px;font-size:13px;color:var(--tx);
  font-family:'DM Sans',sans-serif;outline:none;
  transition:border-color .15s;
}
.fb-input::placeholder{color:var(--tx3);}
.fb-input:focus{border-color:rgba(139,255,60,.45);box-shadow:0 0 0 3px var(--lime-sub);}
textarea.fb-input{resize:vertical;min-height:88px;line-height:1.5;}
.fb-row{margin-bottom:13px;}
.fb-check-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;cursor:pointer;}
.fb-check-row input{accent-color:var(--lime);width:14px;height:14px;cursor:pointer;flex-shrink:0;}
.fb-check-label{font-size:12px;color:var(--tx2);}

/* Actions */
.fb-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;}

/* Success state */
.fb-success{text-align:center;padding:10px 0 6px;}
.fb-success-icon{font-size:44px;margin-bottom:12px;line-height:1;}
.fb-success-title{font-size:15px;font-weight:700;font-family:'Red Hat Display',sans-serif;color:var(--tx);margin-bottom:6px;}
.fb-success-sub{font-size:12px;color:var(--tx3);line-height:1.6;margin-bottom:18px;}
.fb-review-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.fb-review-link{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 16px;border-radius:9px;font-size:12px;font-weight:600;
  text-decoration:none;cursor:pointer;border:none;font-family:inherit;
  transition:all .14s;
}
.fb-review-link.capterra{background:var(--bl50);color:var(--bl600);border:1px solid var(--bl100);}
.fb-review-link.capterra:hover{background:var(--bl100);}
.fb-review-link.g2{background:var(--c50);color:var(--c600);border:1px solid var(--c100);}
.fb-review-link.g2:hover{background:var(--c100);}
.fb-review-later{margin-top:10px;font-size:11px;color:var(--tx3);cursor:pointer;background:none;border:none;font-family:inherit;text-decoration:underline;text-underline-offset:2px;}
.fb-review-later:hover{color:var(--tx2);}

/* Sidebar feedback button */
.sidebar-feedback-btn{
  display:flex;align-items:center;gap:8px;
  padding:7px 10px;border-radius:8px;border:none;
  background:transparent;color:rgba(255,255,255,0.38);
  font-size:12px;font-weight:500;font-family:inherit;
  cursor:pointer;width:100%;text-align:left;
  transition:all .14s;
}
.sidebar-feedback-btn:hover{background:rgba(255,255,255,0.07);color:rgba(255,255,255,0.7);}

/* ── Select avec recherche intégrée ── */
.select-search-wrap{position:relative;}
.select-search-input{width:100%;box-sizing:border-box;background:var(--bg3);border:1px solid var(--bd2);border-radius:7px 7px 0 0;padding:6px 10px;font-size:12px;color:var(--tx);font-family:'DM Sans',sans-serif;outline:none;border-bottom:none;}
.select-search-input::placeholder{color:var(--tx3);}
.select-search-wrap .fi{border-radius:0 0 7px 7px;}

/* ── Custom searchable dropdown (ss = searchable select) ── */
.ss-wrap{position:relative;width:100%;}
.ss-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--bd2);border-radius:8px;background:var(--bg2);color:var(--tx);font-size:13px;cursor:pointer;font-family:inherit;text-align:left;transition:border-color 0.12s;}
.ss-trigger:hover{border-color:var(--p400);background:var(--bg3);}
.ss-trigger:focus{outline:none;border-color:var(--p400);box-shadow:0 0 0 3px var(--p50);}
.ss-trigger-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ss-trigger-label.ss-placeholder{color:var(--tx3);}
.ss-trigger-arrow{font-size:9px;color:var(--tx3);transition:transform 0.15s;flex-shrink:0;margin-left:6px;}
.ss-wrap.open .ss-trigger-arrow{transform:rotate(180deg);}
.ss-dropdown{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--bg2);border:1px solid var(--bd2);border-radius:10px;z-index:500;box-shadow:0 8px 24px rgba(0,0,0,0.18);overflow:hidden;min-width:200px;}
.ss-search-inner{width:100%;box-sizing:border-box;padding:8px 12px;border:none;border-bottom:1px solid var(--bd);background:var(--bg3);font-size:12px;color:var(--tx);font-family:inherit;outline:none;}
.ss-search-inner::placeholder{color:var(--tx3);}
.ss-list{max-height:220px;overflow-y:auto;}
.ss-option{padding:8px 12px;font-size:12px;cursor:pointer;color:var(--tx);transition:background 0.08s;display:block;}
.ss-option:hover{background:var(--bg3);}
.ss-option.ss-selected{background:var(--p50);color:var(--tx);font-weight:600;}
.ss-option.ss-hidden{display:none;}
.ss-empty-msg{padding:10px 12px;font-size:12px;color:var(--tx3);font-style:italic;}
.ss-optgroup-label{padding:6px 12px 3px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--tx3);background:var(--bg3);}

/* ── Dépendances dropdown ── */
.dep-dd-wrap{position:relative;}
.dep-dd-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border:1px solid var(--bd2);border-radius:8px;background:var(--bg3);color:var(--tx2);font-size:12px;cursor:pointer;font-family:inherit;transition:all 0.12s;}
.dep-dd-trigger:hover{border-color:var(--bd2);background:var(--bg4);color:var(--tx);}
.dep-dd-panel{position:absolute;left:0;right:0;top:calc(100%+4px);background:var(--bg2);border:1px solid var(--bd2);border-radius:10px;z-index:400;box-shadow:0 8px 24px rgba(0,0,0,0.18);padding:8px;}
.dep-item{display:flex;align-items:center;gap:7px;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:5px;transition:background 0.08s;}
.dep-item:hover{background:var(--bg3);}

/* ── Bouton + Nouvelle tâche dans catégorie ── */
.cat-add-task-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px;border-radius:7px;
  border:1px solid var(--lime-dark);background:var(--lime);
  color:#10131A;font-size:11px;font-weight:700;
  cursor:pointer;flex-shrink:0;line-height:1.2;
  transition:all 0.12s;white-space:nowrap;font-family:inherit;
  box-shadow:0 1px 4px var(--lime-glow);
}
.cat-add-task-btn:hover{background:var(--lime-dark);border-color:var(--lime-dark);}
/* ── Modaux déplaçables — overlay ne bloque pas les événements ── */
.modal-bg,.as-modal-bg,.cal-tl-modal-bg,.cal-fs-modal-bg,.cal-mt-modal-bg,.td-modal-bg,.lib-modal-bg{
  pointer-events:none;
}
.modal-bg>.modal,.as-modal-bg>.as-modal,.cal-tl-modal-bg>.cal-tl-modal,
.cal-fs-modal-bg>.cal-fs-modal,.cal-mt-modal-bg>.cal-mt-modal,
.td-modal-bg>.td-modal,.lib-modal-bg>.lib-modal{
  pointer-events:auto;
}
/* Overdue overlay garde ses pointer-events */
.od-overlay{pointer-events:auto;}
.modal-drag-handle{cursor:move;user-select:none;}

/* ── Tâche conteneur (isContainer) ── */
.dur-container-info{
  font-size:11px;color:var(--tx3);font-style:italic;padding:5px 8px;
  background:var(--bg3);border-radius:6px;border:1px solid var(--bd);
}


/* ══════════════════════════════════════════════════════════════════
   CPO — Nouveau layout (bandeau héro + corps scindé)
   ══════════════════════════════════════════════════════════════════ */

/* Page racine */
.cpo-page{
  display:flex;flex-direction:column;
  height:100%;overflow:hidden;
  background:var(--bg);
  position:relative;
}

/* ── Bandeau héro pleine largeur ── */
.cpo-hero{
  flex-shrink:0;
  display:flex;align-items:center;gap:14px;
  padding:10px 20px;
  border-bottom:1px solid var(--bd);
  background:var(--bg2);
}
.cpo-hero-id{
  display:flex;align-items:center;gap:12px;
  flex-shrink:0;
}
.cpo-avatar-col{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  flex-shrink:0;
}
.cpo-hero-sep{
  width:1px;height:44px;
  background:var(--bd2);
  flex-shrink:0;margin:0 4px;
}
.cpo-hero-copy{flex-shrink:0;}
.cpo-hero-label{
  font-size:10px;font-weight:700;
  letter-spacing:0.08em;text-transform:uppercase;
  color:var(--lime-fg);margin-bottom:3px;
}
.cpo-hero-actions{
  margin-left:auto;
  display:flex;align-items:center;gap:8px;
  flex-shrink:0;
}
.cpo-hero-btn{
  font-size:11px;color:var(--tx2);
  background:var(--bg3);
  border:1px solid var(--bd2);
  border-radius:8px;padding:4px 11px;
  cursor:pointer;white-space:nowrap;
  font-family:inherit;
  transition:all 0.12s;
}
.cpo-hero-btn:hover{color:var(--tx);border-color:var(--bd3);}

/* Pill D11 */
.cpo-d11-pill{
  display:flex;align-items:center;gap:6px;
  padding:5px 13px;border-radius:20px;
  background:#10131A;
  border:1px solid #8BFF3C;
  cursor:pointer;
  font-family:inherit;
  transition:background 0.15s;
}
.cpo-d11-pill:hover{background:#1a1f2e;}
.cpo-d11-pulse{
  width:7px;height:7px;border-radius:50%;
  background:#8BFF3C;flex-shrink:0;
  animation:d11pulse 1.4s ease-in-out infinite;
}
@keyframes d11pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:0.45;transform:scale(0.65)}
}
.cpo-d11-text{
  font-size:11px;font-weight:700;
  color:#8BFF3C;white-space:nowrap;
}
@media(prefers-color-scheme:dark){
  .cpo-d11-pill{
    background:rgba(139,255,60,0.09);
    border-color:rgba(139,255,60,0.28);
  }
  .cpo-d11-pill:hover{background:rgba(139,255,60,0.16);}
}

/* ── Corps scindé ── */
.cpo-body{
  display:flex;flex:1;
  min-height:0;gap:1px;
  background:var(--bd);
}
.cpo-main{
  flex:1;min-width:0;
  display:flex;flex-direction:column;
  background:var(--bg);
}
.cpo-sidebar{
  width:320px;flex-shrink:0;
  display:flex;flex-direction:column;
  background:var(--bg2);
  overflow-y:auto;
}

/* ── Zones sidebar ── */
.cpo-zone{
  border-bottom:1px solid var(--bd);
  padding:11px 13px;
}
.cpo-zone-alerts{flex:1;}
.cpo-zone-head{
  display:flex;align-items:center;
  justify-content:space-between;
  margin-bottom:5px;
}
.cpo-zone-label{
  font-size:10px;font-weight:700;
  letter-spacing:0.07em;text-transform:uppercase;
  color:var(--tx3);
}
.cpo-day-count{
  font-size:11px;color:var(--tx3);
}
.cpo-progress{
  height:3px;background:var(--bg3);
  border-radius:2px;margin-bottom:9px;
  overflow:hidden;
}
.cpo-progress-fill{
  height:100%;background:var(--lime-fg);
  border-radius:2px;transition:width 0.3s ease;
}
.cpo-empty-hint{
  font-size:12px;color:var(--tx3);
  padding:4px 0;font-style:italic;
}

/* ── Tâches du jour ── */
.cpo-task-item{
  display:flex;align-items:flex-start;gap:8px;
  padding:5px 0;
  border-bottom:1px solid var(--bd);
}
.cpo-task-item:last-child{border-bottom:none;}
.cpo-task-check{
  width:14px;height:14px;border-radius:3px;
  border:1.5px solid var(--bd2);
  flex-shrink:0;margin-top:2px;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.12s;
  color:var(--bg);
}
.cpo-task-check:hover{border-color:var(--lime-fg);}
.cpo-task-check.done{
  background:var(--lime-fg);border-color:var(--lime-fg);
}
.cpo-task-body{flex:1;min-width:0;}
.cpo-task-name{font-size:12px;color:var(--tx);}
.cpo-task-name.done{
  text-decoration:line-through;color:var(--tx3);
}
.cpo-task-meta{font-size:11px;color:var(--tx3);}
.cpo-task-time{
  font-size:11px;color:var(--tx2);
  background:none;border:1px solid var(--bd2);
  border-radius:4px;padding:1px 6px;
  cursor:pointer;flex-shrink:0;margin-top:2px;
  font-family:inherit;white-space:nowrap;
  transition:all 0.12s;
}
.cpo-task-time:hover{border-color:var(--lime-fg);color:var(--lime-fg);}

/* ── Alertes ── */
.cpo-notif{
  display:flex;align-items:flex-start;gap:7px;
  padding:7px 10px;border-radius:8px;
  margin-bottom:5px;
}
.cpo-notif:last-child{margin-bottom:0;}
.cpo-notif.warning{background:var(--a50);border:1px solid var(--a100);}
.cpo-notif.info{background:var(--bl50);border:1px solid var(--bl100);}
.cpo-notif-dot{
  width:6px;height:6px;border-radius:50%;
  flex-shrink:0;margin-top:4px;
}
.cpo-notif.warning .cpo-notif-dot{background:var(--a400);}
.cpo-notif.info    .cpo-notif-dot{background:var(--bl400);}
.cpo-notif-text{font-size:12px;line-height:1.4;color:var(--tx);}

/* ── Modal briefing de la semaine ── */
.cpo-modal-overlay{
  display:none;
  position:absolute;inset:0;
  background:rgba(0,0,0,0.32);
  z-index:200;
  align-items:flex-start;
  justify-content:flex-end;
  padding:70px 18px 0 0;
}
.cpo-modal-overlay.open{display:flex;}
.cpo-modal{
  background:var(--bg2);
  border:1px solid var(--bd2);
  border-radius:12px;
  width:310px;
  overflow:hidden;
  animation:fadeSlideIn 0.18s ease;
}
.cpo-modal-head{
  display:flex;align-items:center;
  justify-content:space-between;
  padding:9px 14px;
  border-bottom:1px solid var(--bd);
  background:var(--bg3);
}
.cpo-modal-title{
  font-size:12px;font-weight:700;
  color:var(--tx);
}
.cpo-modal-close{
  background:none;border:none;
  font-size:18px;line-height:1;
  color:var(--tx2);cursor:pointer;
  padding:0;font-family:inherit;
  transition:color 0.12s;
}
.cpo-modal-close:hover{color:var(--tx);}
.cpo-modal-body{
  padding:13px 16px;
  font-size:13px;color:var(--tx);
  line-height:1.65;
  max-height:320px;overflow-y:auto;
}
.cpo-modal-body strong{color:var(--tx);font-weight:700;}
.cpo-modal-body ul,.cpo-modal-body ol{
  padding-left:16px;margin:5px 0;
}
.cpo-modal-body li{margin-bottom:3px;}
.cpo-modal-body::-webkit-scrollbar{width:4px;}
.cpo-modal-body::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px;}

/* ── Blocs d'info héro CPO ── */
.cpo-blocks{
  display:flex;gap:8px;align-items:stretch;
  flex:1;padding:0 8px;
}
.cpo-block{
  flex:1;padding:9px 13px;
  border-radius:10px;
  background:var(--bg);
  border:1px solid var(--bd2);
  display:flex;flex-direction:column;gap:3px;
  min-width:0;
}
.cpo-block-warn{border-color:var(--c300);}
.cpo-block-coming{opacity:.65;}
.cpo-block-label{
  font-size:10px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;
  color:var(--tx3);
}
.cpo-block-value{
  font-size:20px;font-weight:700;
  color:var(--tx);line-height:1.1;
}
.cpo-block-coming .cpo-block-value{
  font-size:12px;font-weight:400;
  font-style:italic;color:var(--tx3);
  line-height:1.5;
}
.cpo-block-bar{
  height:4px;background:var(--bg3);
  border-radius:2px;margin:3px 0;overflow:hidden;
}
.cpo-block-bar-fill{
  height:100%;border-radius:2px;
  transition:width .3s ease;
}
.cpo-block-sub{
  font-size:11px;color:var(--tx2);
}

/* ── Sidebar tâches du jour — redesign ── */
.cpo-task-col-hdr{
  display:flex;align-items:center;
  margin-bottom:4px;
}
.cpo-col-label{
  font-size:10px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--tx3);width:56px;text-align:center;flex-shrink:0;
}
.cpo-task-item{
  display:flex;align-items:center;gap:6px;
  padding:5px 0;
  border-bottom:1px solid var(--bd);
}
.cpo-task-item:last-child{border-bottom:none;}
.cpo-task-body{flex:1;min-width:0;}
.cpo-task-name{font-size:12px;color:var(--tx);line-height:1.3;}
.cpo-task-name.done{text-decoration:line-through;color:var(--tx3);}
.cpo-task-meta{font-size:11px;color:var(--tx3);}
.cpo-time-input{
  width:52px;height:26px;
  border:1px solid var(--bd2);border-radius:6px;
  background:var(--bg);color:var(--tx);
  font-size:12px;font-family:inherit;
  text-align:center;padding:0 4px;
  flex-shrink:0;
  transition:border-color .12s;
}
.cpo-time-input:focus{border-color:var(--lime-fg);outline:none;}
.cpo-time-input::-webkit-inner-spin-button{opacity:.5;}
.cpo-done-btn{
  font-size:11px;font-weight:600;
  color:var(--tx2);
  background:none;
  border:1px solid var(--bd2);
  border-radius:6px;padding:3px 8px;
  cursor:pointer;white-space:nowrap;
  font-family:inherit;flex-shrink:0;
  transition:all .12s;
}
.cpo-done-btn:hover{color:var(--lime-fg);border-color:var(--lime-fg);}
.cpo-done-badge{
  font-size:11px;font-weight:700;
  color:var(--lime-fg);flex-shrink:0;
}

/* ── Zone À confirmer (recap) ── */
.cpo-zone-recap{background:var(--bg2);}
.cpo-recap-expiry{font-size:10px;color:var(--tx3);}
.cpo-recap-note{
  font-size:11px;color:var(--tx3);
  font-style:italic;margin-bottom:8px;
}
.cpo-recap-item{
  border-bottom:1px solid var(--bd);
  padding:7px 0;
}
.cpo-recap-item:last-of-type{border-bottom:none;}
.cpo-recap-title{font-size:12px;font-weight:600;color:var(--tx);}
.cpo-recap-planned{font-size:11px;color:var(--tx3);margin-bottom:5px;}
.cpo-recap-row{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap;margin-bottom:5px;}
.cpo-recap-time-wrap{display:flex;flex-direction:column;gap:2px;}
.cpo-recap-actions{display:flex;gap:5px;}
.cpo-recap-btn{
  font-size:11px;font-weight:600;
  border-radius:6px;padding:3px 9px;
  cursor:pointer;font-family:inherit;
  border:1px solid var(--bd2);
  transition:all .12s;
}
.cpo-recap-done{
  background:var(--lime-fg-bg);
  color:var(--lime-fg);
  border-color:var(--lime-fg-border-strong);
}
.cpo-recap-done:hover{background:var(--lime-fg);color:#10131A;}
.cpo-recap-skip{
  background:none;color:var(--tx2);
}
.cpo-recap-skip:hover{color:var(--c400);border-color:var(--c400);}
.cpo-recap-other{margin-top:10px;border-top:1px solid var(--bd);padding-top:8px;}
.cpo-recap-other-label{
  font-size:10px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--tx3);margin-bottom:6px;
}
.cpo-recap-search-wrap{position:relative;margin-bottom:6px;}
.cpo-recap-search{
  width:100%;height:28px;
  border:1px solid var(--bd2);border-radius:7px;
  background:var(--bg);color:var(--tx);
  font-size:12px;font-family:inherit;
  padding:0 10px;
  transition:border-color .12s;
}
.cpo-recap-search:focus{border-color:var(--lime-fg);outline:none;}
.cpo-recap-results{
  position:absolute;left:0;right:0;top:100%;margin-top:3px;
  background:var(--bg2);border:1px solid var(--bd2);
  border-radius:8px;z-index:50;overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,.18);
}
.cpo-recap-result{
  display:flex;align-items:baseline;justify-content:space-between;
  padding:6px 10px;cursor:pointer;gap:6px;
  transition:background .1s;
}
.cpo-recap-result:hover{background:var(--bg3);}
.cpo-recap-result-name{font-size:12px;color:var(--tx);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cpo-recap-result-proj{font-size:10px;color:var(--tx3);flex-shrink:0;}
.cpo-recap-empty{padding:8px 10px;font-size:12px;color:var(--tx3);}
.cpo-recap-new{
  font-size:11px;color:var(--tx2);
  background:none;border:none;
  cursor:pointer;font-family:inherit;
  padding:0;transition:color .12s;
}
.cpo-recap-new:hover{color:var(--lime-fg);}

/* ── Recap — formulaire unifié chat + sidebar ── */
.cpo-recap-bubble{
  max-width:420px;
}
.cpo-recap-chat-title{
  font-size:13px;font-weight:700;
  color:var(--tx);margin-bottom:12px;
}
.cpo-recap-done-label{
  display:flex;align-items:center;gap:7px;
  font-size:12px;color:var(--tx2);
  cursor:pointer;margin:6px 0 8px;
}
.cpo-recap-checkbox{
  width:14px;height:14px;
  accent-color:var(--lime-fg);
  cursor:pointer;flex-shrink:0;
}
.cpo-recap-confirm{
  background:var(--lime-fg);
  color:#10131A;
  border-color:var(--lime-fg);
  font-weight:700;
}
.cpo-recap-confirm:hover{
  background:var(--lime-fg-dark, #6fd420);
}
.cpo-recap-unit{
  font-size:11px;color:var(--tx3);
  align-self:center;margin-left:2px;
}

/* ── Saisie h/min recap ── */
.cpo-hm-wrap{
  display:flex;align-items:center;gap:4px;margin-top:3px;
}
.cpo-hm-input{
  width:44px;height:28px;
  border:1px solid var(--bd2);border-radius:6px;
  background:var(--bg);color:var(--tx);
  font-size:13px;font-family:inherit;
  text-align:center;padding:0 4px;
  transition:border-color .12s;
}
.cpo-hm-input:focus{border-color:var(--lime-fg);outline:none;}
.cpo-hm-input::-webkit-inner-spin-button{opacity:.5;}
.cpo-hm-unit{
  font-size:11px;color:var(--tx3);flex-shrink:0;
}
.cpo-recap-row-inline .cpo-hm-wrap{margin-left:auto;}

/* ── Suppression temps loggué ── */
.cpo-log-del{
  background:none;border:none;
  font-size:14px;line-height:1;
  color:var(--tx3);cursor:pointer;
  padding:0 2px;flex-shrink:0;
  font-family:inherit;
  transition:color .12s;
}
.cpo-log-del:hover{color:var(--c400);}

/* ── Suppression créneau dans modal Détail du temps ── */
.td-del-btn{
  background:none;border:none;
  color:var(--tx3);cursor:pointer;
  padding:2px 4px;border-radius:4px;
  font-family:inherit;font-size:12px;
  transition:color .12s,background .12s;
  display:flex;align-items:center;justify-content:center;
}
.td-del-btn:hover{color:var(--c400);background:var(--c50);}

/* ── CPO sidebar pleine hauteur + boutons d'action ── */
.cpo-body{
  /* Écrase la règle existante — sidebar commence en haut */
  display:flex;flex:1;min-height:0;gap:1px;background:var(--bd);
}
.cpo-main{
  flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);
}
/* Hero dans cpo-main (plus dans bande séparée) */
.cpo-main .cpo-hero{
  flex-shrink:0;display:flex;align-items:center;gap:14px;
  padding:10px 20px;border-bottom:1px solid var(--bd);
  background:var(--bg2);
  overflow:hidden;
}
/* cpo-hero-id peut rétrécir pour laisser toujours la place au bouton Nouvelle conversation */
.cpo-main .cpo-hero .cpo-hero-id{
  flex:1;min-width:0;
}
.cpo-sidebar-actions{
  flex-shrink:0;display:flex;flex-direction:column;gap:6px;
  padding:10px 12px;border-bottom:1px solid var(--bd);
  background:var(--bg2);
}
.cpo-sidebar-action-btn{
  width:100%;padding:8px 12px;
  border-radius:8px;border:1px solid var(--bd2);
  background:var(--bg3);color:var(--tx2);
  font-size:12px;font-weight:600;
  font-family:inherit;cursor:pointer;
  text-align:left;
  transition:all .12s;
}
.cpo-sidebar-action-btn:hover{color:var(--lime-fg);border-color:var(--lime-fg);}

/* ── Boutons hero CPO (entre blocs et sidebar) ── */
.cpo-hero-btns{
  display:flex;flex-direction:column;gap:6px;
  flex-shrink:0;margin-left:auto;
  align-self:center;padding:0 4px;
  min-width:170px;
}

/* ── Ligne temps effectué inline ── */
.cpo-recap-row-inline{
  display:flex;align-items:center;gap:8px;
  flex-wrap:nowrap;margin-bottom:4px;
}
.cpo-recap-row-inline .cpo-col-label{
  font-size:11px;white-space:nowrap;
}

/* ══════════════════════════════════════════════
   GESTION DE SESSION CPO — Archivage & Restauration
══════════════════════════════════════════════ */

/* ── Séparateur entre session archivée et nouvelle ── */
.cpo-session-sep {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0 10px;
  padding: 0 4px;
}
.cpo-session-sep-line {
  flex: 1;
  height: 1px;
  background: var(--bd2);
}
.cpo-session-sep-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--tx3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  padding: 2px 8px;
  background: var(--bg3);
  border-radius: 20px;
  border: 1px solid var(--bd);
}

/* ── Conteneur de la session archivée affichée en lecture ── */
.cpo-archived-conv {
  margin-bottom: 8px;
  padding: 12px;
  background: var(--bg3);
  border-radius: 10px;
  border: 1px solid var(--bd);
  opacity: 0.72;
}
.cpo-archived-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--bd);
}
.cpo-archived-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--tx2);
}
.cpo-archived-close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--tx3);
  font-size: 16px;
  line-height: 1;
  padding: 0 2px;
  transition: color 0.12s;
}
.cpo-archived-close:hover { color: var(--tx); }

/* Les messages archivés sont légèrement atténués */
.cpo-archived-msg .aip-msg-bubble {
  background: var(--bg4) !important;
  opacity: 0.85;
  font-size: 12.5px;
}
