/* ═══════════════════════════════════════════
   LEXIDOC — ESPACE PROFESSIONNEL
   CSS Dashboard v4 — aligné portail client
═══════════════════════════════════════════ */

:root {
  /* Fond — identique portail client dark */
  --bg:      #070d18;
  --s1:      #0d1628;
  --s2:      #0f1d32;
  --s3:      #162440;
  --s4:      #1e304d;
  --s5:      #2a3d5c;

  /* Lignes */
  --line:    rgba(255,255,255,0.055);
  --line2:   rgba(255,255,255,0.09);
  --line3:   rgba(255,255,255,0.14);

  /* Or — identique portail */
  --gold:    #c9a84c;
  --goldl:   #dbb96a;
  --golddim: rgba(201,168,76,0.11);
  --goldbrd: rgba(201,168,76,0.22);
  --goldglow:rgba(201,168,76,0.18);

  /* Bleu — identique portail */
  --blue:    #3b82f6;
  --bluedim: rgba(59,130,246,0.12);
  --bluebrd: rgba(59,130,246,0.22);

  /* États */
  --green:   #22c55e;
  --greendim:rgba(34,197,94,0.11);
  --greenbrd:rgba(34,197,94,0.22);
  --red:     #dc2626;
  --reddim:  rgba(220,38,38,0.11);
  --redbrd:  rgba(220,38,38,0.22);
  --orange:  #f59e0b;

  /* Texte */
  --t1:  #e8eef8;
  --t2:  #b8c8e0;
  --t3:  #6a80a0;
  --t4:  #2a3d5c;

  /* Tendances */
  --up:   #22c55e;
  --down: #dc2626;
  --flat: #6a80a0;

  /* Géométrie */
  --radius:    12px;
  --radius-sm: 8px;
  --radius-xs: 6px;

  /* Ombres */
  --shadow-card: 0 16px 48px rgba(0,0,0,0.55), 0 2px 12px rgba(0,0,0,0.4), 0 0 0 1px rgba(201,168,76,0.07);
  --shadow-sm:   0 4px 16px rgba(0,0,0,0.35);

  /* Ease */
  --ease:   cubic-bezier(0.4,0,0.2,1);
  --spring: cubic-bezier(0.34,1.56,0.64,1);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:13px; }
body {
  font-family:'DM Sans',sans-serif;
  background:var(--bg);
  color:var(--t1);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ═══════════════════════════════════════════
   AMBIENT GLOW (identique portail)
═══════════════════════════════════════════ */
.dark-ambient {
  position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(ellipse 70% 45% at 15% -5%, rgba(59,130,246,0.07) 0%, transparent 60%),
    radial-gradient(ellipse 50% 35% at 85% 105%, rgba(201,168,76,0.06) 0%, transparent 55%);
}
body > * { position:relative; z-index:1; }

/* ═══════════════════════════════════════════
   LOGIN
═══════════════════════════════════════════ */
#login-screen {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden; background:var(--bg);
}
.login-bg {
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 700px 500px at 20% 70%, rgba(201,168,76,0.04) 0%, transparent 70%),
    radial-gradient(ellipse 600px 400px at 85% 20%, rgba(59,130,246,0.05) 0%, transparent 65%);
}
.login-grid {
  position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,0.012) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.012) 1px, transparent 1px);
  background-size:52px 52px;
}
.login-wrap {
  width:400px; position:relative; z-index:1;
  animation:fadeUp 0.55s cubic-bezier(0.16,1,0.3,1);
}
.lw-brand { text-align:center; margin-bottom:36px; }
.lw-brand-name {
  font-family:'Fraunces',serif; font-size:2rem; font-weight:400;
  font-style:italic; color:var(--t1); letter-spacing:-0.01em;
}
.lw-brand-name span { color:var(--gold); }
.lw-brand-sub {
  font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--t3); margin-top:5px;
}
.lw-card {
  background:linear-gradient(160deg,#0f1e35 0%,#0b1525 60%,#080f1e 100%);
  border:1px solid var(--line2);
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
}
.lw-stripe {
  height:2px;
  background:linear-gradient(90deg, var(--gold) 0%, transparent 55%);
  border-radius:var(--radius) var(--radius) 0 0;
}
.lw-body { padding:32px 36px 28px; }
.lf { margin-bottom:18px; }
.lf label {
  display:block; font-size:0.68rem; font-weight:500;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--t3); margin-bottom:7px;
}
.lf input {
  width:100%; padding:12px 14px;
  background:rgba(255,255,255,0.035); border:1px solid var(--line2);
  border-radius:var(--radius-sm);
  color:var(--t1); font-family:'DM Sans',sans-serif; font-size:0.9rem; outline:none;
  transition:border-color 0.18s, box-shadow 0.18s;
}
.lf input:focus {
  border-color:var(--gold);
  box-shadow:0 0 0 3px var(--goldglow);
}
.lf input::placeholder { color:var(--t4); }
.lbtn {
  width:100%; padding:13px;
  background:linear-gradient(135deg,var(--gold),var(--goldl));
  border:none; border-radius:var(--radius-sm);
  color:#0d1422; font-family:'DM Sans',sans-serif; font-size:0.78rem;
  font-weight:600; letter-spacing:0.12em; text-transform:uppercase;
  cursor:pointer; transition:all 0.2s; margin-top:4px;
}
.lbtn:hover {
  box-shadow:0 4px 20px var(--goldglow);
  transform:translateY(-1px);
}
.lbtn:disabled { opacity:0.4; cursor:not-allowed; box-shadow:none; transform:none; }
.lerr {
  margin-top:12px; padding:10px 13px;
  background:var(--reddim); border:1px solid var(--redbrd);
  border-radius:var(--radius-sm); color:var(--red); font-size:0.82rem; display:none;
}
.lw-trust {
  padding:12px 36px; border-top:1px solid var(--line);
  display:flex; gap:18px; justify-content:center;
}
.trust-it { display:flex; align-items:center; gap:5px; font-size:0.68rem; color:var(--t3); }
.trust-dot {
  width:5px; height:5px; border-radius:50%; background:var(--green);
  box-shadow:0 0 6px rgba(34,197,94,0.7);
  animation:blink 2.5s ease infinite;
}
@keyframes blink {
  0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(34,197,94,0.5)}
  60%{opacity:0.7;box-shadow:0 0 0 5px rgba(34,197,94,0)}
}
.lw-legal {
  padding:11px 36px; border-top:1px solid var(--line);
  font-size:0.68rem; color:var(--t4); text-align:center; line-height:1.8;
}
.lw-legal a { color:var(--t3); text-decoration:none; }
.lw-legal a:hover { color:var(--gold); }

/* ═══════════════════════════════════════════
   APP LAYOUT
═══════════════════════════════════════════ */
#app { display:none; }

/* ─── SIDEBAR ─── */
.sidebar {
  position:fixed; top:0; left:0; width:210px; height:100vh;
  background:var(--s1); border-right:1px solid var(--line);
  display:flex; flex-direction:column; z-index:200;
}
.sidebar::after {
  content:''; position:absolute; top:0; right:0; bottom:0; width:1px;
  background:linear-gradient(to bottom, transparent, rgba(201,168,76,0.15) 40%, rgba(201,168,76,0.15) 60%, transparent);
}
.sb-hd { padding:18px 16px 14px; border-bottom:1px solid var(--line); }
.sb-logo {
  font-family:'Fraunces',serif; font-size:1.3rem; font-weight:400;
  font-style:italic; color:var(--t1); margin-bottom:13px;
}
.sb-logo span { color:var(--gold); }
.sb-cab {
  background:rgba(255,255,255,0.03); border:1px solid var(--line);
  border-radius:var(--radius-xs); padding:9px 11px;
}
.sb-cab-lbl { font-size:0.63rem; letter-spacing:0.13em; text-transform:uppercase; color:var(--t4); margin-bottom:3px; }
.sb-cab-name { font-size:0.82rem; font-weight:500; color:var(--t1); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sb-cab-prof { font-size:0.68rem; color:var(--t3); margin-top:1px; }
.sb-formule { display:inline-block; padding:2px 7px; border-radius:var(--radius-xs); font-size:0.62rem; font-weight:500; letter-spacing:0.1em; text-transform:uppercase; margin-top:5px; }
.fm-pro     { background:var(--golddim); color:var(--gold); border:1px solid var(--goldbrd); }
.fm-cabinet { background:var(--bluedim); color:var(--blue); border:1px solid var(--bluebrd); }
.fm-starter { background:rgba(84,96,112,0.12); color:var(--t3); border:1px solid rgba(84,96,112,0.2); }

.sb-nav { flex:1; padding:10px 7px; overflow-y:auto; }
.sngl { font-size:0.63rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--t4); padding:0 9px; margin:13px 0 4px; }
.ni {
  display:flex; align-items:center; gap:8px; padding:9px 10px;
  border-radius:var(--radius-xs);
  font-size:0.8rem; color:var(--t2); cursor:pointer; transition:all 0.14s;
  margin-bottom:2px; user-select:none; border-left:2px solid transparent;
}
.ni:hover { background:rgba(255,255,255,0.045); color:var(--t1); }
.ni.active { background:var(--golddim); color:var(--gold); border-left-color:var(--gold); font-weight:500; }
.ni svg { flex-shrink:0; opacity:0.55; }
.ni.active svg { opacity:1; }
.nbadge {
  margin-left:auto; background:var(--reddim); color:var(--red);
  border:1px solid var(--redbrd); border-radius:var(--radius-xs);
  font-size:0.62rem; font-weight:600; padding:1px 5px;
}
.sb-ft { padding:11px; border-top:1px solid var(--line); }
.sb-user {
  display:flex; align-items:center; gap:8px; padding:8px 9px;
  border-radius:var(--radius-xs);
  background:rgba(255,255,255,0.03); border:1px solid var(--line); margin-bottom:6px;
}
.sb-av {
  width:30px; height:30px; border-radius:var(--radius-xs);
  background:var(--golddim); border:1px solid var(--goldbrd);
  display:flex; align-items:center; justify-content:center;
  font-size:0.7rem; font-weight:700; color:var(--gold); flex-shrink:0;
  font-family:'DM Mono',monospace;
}
.sb-un { font-size:0.8rem; font-weight:500; line-height:1.2; }
.sb-ur { font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--t3); margin-top:1px; }
.sb-logout {
  width:100%; padding:8px; background:none; border:1px solid var(--line);
  border-radius:var(--radius-xs); color:var(--t3); font-family:'DM Sans',sans-serif;
  font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
  cursor:pointer; transition:all 0.14s;
}
.sb-logout:hover { border-color:var(--red); color:var(--red); }

/* ─── MAIN ─── */
.main {
  margin-left:210px; min-height:100vh;
  background:
    radial-gradient(ellipse 500px 300px at 100% 0, rgba(201,168,76,0.03) 0%, transparent 55%),
    var(--bg);
}
.main-in { padding:28px 36px; max-width:1380px; }
.page { display:none; }
.page.active { display:block; animation:fadeUp 0.22s ease; }

/* ─── PAGE HEADER ─── */
.phd {
  display:flex; align-items:flex-start; justify-content:space-between;
  margin-bottom:22px; padding-bottom:18px; border-bottom:1px solid var(--line);
}
.phd-eyebrow {
  font-size:0.66rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--t3); margin-bottom:5px; display:flex; align-items:center; gap:7px;
}
.phd-eyebrow::before { content:''; width:18px; height:1px; background:var(--gold); opacity:0.5; }
.phd-name {
  font-family:'Fraunces',serif; font-size:1.85rem; font-weight:400;
  font-style:italic; color:var(--gold); line-height:1; display:block;
}
.phd-date { font-size:0.74rem; color:var(--t3); margin-top:4px; font-weight:300; }
.page-ttl { font-family:'Fraunces',serif; font-size:1.65rem; font-weight:400; font-style:italic; color:var(--t1); line-height:1; }
.page-ttl em { color:var(--gold); }
.page-sub { font-size:0.74rem; color:var(--t3); margin-top:4px; }
.phd-right { display:flex; align-items:center; gap:8px; padding-top:2px; }
.sync-lbl { font-size:0.68rem; color:var(--t4); }
.btn-sm {
  padding:7px 14px; background:none; border:1px solid var(--line2);
  border-radius:var(--radius-xs); color:var(--t2); font-family:'DM Sans',sans-serif;
  font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase;
  cursor:pointer; transition:all 0.14s; display:flex; align-items:center; gap:5px; white-space:nowrap;
}
.btn-sm:hover { border-color:var(--gold); color:var(--gold); }

/* ─── ALERTS ─── */
.alrt {
  display:flex; align-items:center; gap:9px; padding:10px 14px;
  border-radius:var(--radius-sm); margin-bottom:9px; font-size:0.8rem;
  animation:fadeUp 0.2s ease;
}
.alrt-danger { background:var(--reddim); border:1px solid var(--redbrd); color:var(--red); }
.alrt-info   { background:var(--golddim); border:1px solid var(--goldbrd); color:var(--gold); }
#alert-zone { margin-bottom:4px; }

/* ─── LIEN DÉPÔT ─── */
.link-card {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:linear-gradient(135deg,rgba(201,168,76,0.07),rgba(201,168,76,0.02));
  border:1px solid var(--goldbrd); border-radius:var(--radius);
  padding:14px 18px; margin-bottom:20px; transition:border-color 0.15s;
  position:relative; overflow:hidden;
}
.link-card::before {
  content:''; position:absolute; left:0; top:0; width:3px; height:100%;
  background:linear-gradient(to bottom, var(--gold), var(--goldl));
}
.link-card:hover { border-color:rgba(201,168,76,0.4); }
.lc-left { display:flex; align-items:center; gap:11px; }
.lc-ico {
  width:34px; height:34px; background:var(--golddim); border:1px solid var(--goldbrd);
  border-radius:var(--radius-xs); display:flex; align-items:center; justify-content:center; flex-shrink:0;
  box-shadow:0 0 12px rgba(201,168,76,0.12);
}
.lc-lbl { font-size:0.63rem; letter-spacing:0.13em; text-transform:uppercase; color:var(--t3); margin-bottom:4px; }
.lc-url { font-family:'DM Mono',monospace; font-size:0.78rem; color:var(--t1); }
.lc-url.masked { letter-spacing:0.05em; color:var(--t2); }
.lc-actions { display:flex; gap:6px; }
.btn-reveal {
  padding:7px 12px; background:rgba(255,255,255,0.04); border:1px solid var(--line2);
  border-radius:var(--radius-xs); color:var(--t3); font-family:'DM Sans',sans-serif;
  font-size:0.68rem; cursor:pointer; transition:all 0.14s;
}
.btn-reveal:hover { border-color:var(--line3); color:var(--t1); }
.btn-copy {
  padding:7px 13px; background:var(--golddim); border:1px solid var(--goldbrd);
  border-radius:var(--radius-xs); color:var(--gold); font-family:'DM Sans',sans-serif;
  font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase;
  cursor:pointer; transition:all 0.14s; white-space:nowrap;
}
.btn-copy:hover { background:rgba(201,168,76,0.2); }
.btn-copy.copied { background:var(--greendim); border-color:var(--greenbrd); color:var(--green); }

/* ─── KPI ROW ─── */
.kpi-row {
  display:grid; grid-template-columns:repeat(5,1fr);
  gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; margin-bottom:20px;
}
.kc { background:var(--s2); padding:18px 16px; transition:background 0.14s; position:relative; }
.kc:hover { background:var(--s3); }
.kc::after {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  opacity:0; transition:opacity 0.15s; border-radius:0;
}
.kc:hover::after { opacity:1; }
.kc-g::after  { background:var(--gold); }
.kc-b::after  { background:var(--blue); }
.kc-o::after  { background:var(--orange); }
.kc-gr::after { background:var(--green); }
.kc-lbl { font-size:0.63rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--t3); margin-bottom:9px; display:flex; align-items:center; gap:5px; }
.kc-dot { width:4px; height:4px; border-radius:50%; }
.kc-val { font-family:'Fraunces',serif; font-size:2.6rem; font-weight:400; font-style:italic; line-height:1; margin-bottom:3px; }
.kc-g  .kc-val { color:var(--gold); }
.kc-b  .kc-val { color:var(--blue); }
.kc-o  .kc-val { color:var(--orange); }
.kc-gr .kc-val { color:var(--green); }
.kc-hint { font-size:0.67rem; color:var(--t4); }
.kc-trend { display:inline-flex; align-items:center; gap:3px; font-size:0.67rem; font-family:'DM Mono',monospace; margin-top:4px; }
.trend-up   { color:var(--up); }
.trend-down { color:var(--down); }
.trend-flat { color:var(--flat); }

/* ─── VALUE BAR ─── */
.value-bar {
  display:flex; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; margin-bottom:20px;
}
.vb-cell { flex:1; background:var(--s2); padding:12px 16px; display:flex; align-items:center; gap:10px; transition:background 0.14s; }
.vb-cell:hover { background:var(--s3); }
.vb-ico { width:26px; height:26px; border-radius:var(--radius-xs); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.vb-val { font-family:'DM Mono',monospace; font-size:0.95rem; color:var(--t1); font-weight:500; }
.vb-lbl { font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--t3); margin-top:1px; }
.vb-trend { font-size:0.68rem; font-family:'DM Mono',monospace; margin-top:2px; }

/* ─── DASHBOARD GRID ─── */
.dash-grid   { display:grid; grid-template-columns:1fr 1fr 280px; gap:12px; margin-bottom:12px; }
.dash-grid-2 { display:grid; grid-template-columns:1fr 280px; gap:12px; }

/* ─── PANELS ─── */
.panel {
  background:var(--s2); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden;
  transition:border-color 0.15s;
}
.panel:hover { border-color:var(--line2); }
.panel-hd {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border-bottom:1px solid var(--line);
}
.panel-ttl {
  font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--t2);
  display:flex; align-items:center; gap:7px;
}
.panel-ttl::before { content:''; width:10px; height:1px; background:var(--gold); opacity:0.5; }
.panel-act { font-size:0.7rem; color:var(--gold); cursor:pointer; opacity:0.65; transition:opacity 0.14s; }
.panel-act:hover { opacity:1; }

/* ─── TABLE ─── */
.dtable { width:100%; border-collapse:collapse; }
.dtable thead tr { border-bottom:1px solid var(--line); }
.dtable th { padding:9px 14px; font-size:0.63rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--t3); text-align:left; font-weight:500; }
.dtable td { padding:10px 14px; font-size:0.8rem; color:var(--t2); border-bottom:1px solid rgba(255,255,255,0.022); vertical-align:middle; }
.dtable tr:last-child td { border-bottom:none; }
.dtable tbody tr { transition:background 0.1s; }
.dtable tbody tr:hover td { background:rgba(255,255,255,0.022); color:var(--t1); }
td.ref  { font-family:'DM Mono',monospace; font-size:0.73rem; color:var(--gold); }
.cn { font-weight:500; color:var(--t1); font-size:0.8rem; }
.ce { font-size:0.7rem; color:var(--t3); margin-top:1px; }
td.fc { max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
td.dc { white-space:nowrap; font-size:0.73rem; font-family:'DM Mono',monospace; }

/* ─── BADGES ─── */
.badge {
  display:inline-flex; align-items:center; gap:4px;
  padding:3px 8px; border-radius:var(--radius-xs);
  font-size:0.68rem; font-weight:500; white-space:nowrap;
}
.badge::before { content:''; width:4px; height:4px; border-radius:50%; flex-shrink:0; }
.b-r { background:var(--bluedim); color:var(--blue); border:1px solid var(--bluebrd); }
.b-r::before { background:var(--blue); }
.b-t { background:rgba(245,158,11,0.1); color:var(--orange); border:1px solid rgba(245,158,11,0.22); }
.b-t::before { background:var(--orange); }
.b-v { background:var(--greendim); color:var(--green); border:1px solid var(--greenbrd); }
.b-v::before { background:var(--green); }
.b-a { background:rgba(84,96,112,0.1); color:var(--t3); border:1px solid rgba(84,96,112,0.15); }
.b-a::before { background:var(--t3); }
.b-i { background:var(--reddim); color:var(--red); border:1px solid var(--redbrd); }
.b-i::before { background:var(--red); }

/* ─── CLIENT CARDS ─── */
.client-card {
  padding:13px 16px; border-bottom:1px solid var(--line);
  transition:background 0.12s;
}
.client-card:last-child { border-bottom:none; }
.client-card:hover { background:rgba(255,255,255,0.018); }
.cc-top { display:flex; align-items:center; gap:9px; margin-bottom:8px; }
.cc-av {
  width:32px; height:32px; border-radius:var(--radius-xs);
  background:var(--s4); border:1px solid var(--line2);
  display:flex; align-items:center; justify-content:center;
  font-family:'DM Mono',monospace; font-size:0.7rem; font-weight:500; color:var(--t2); flex-shrink:0;
}
.cc-info { flex:1; min-width:0; }
.cc-name { font-size:0.82rem; font-weight:500; color:var(--t1); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cc-sub  { font-size:0.68rem; color:var(--t3); margin-top:1px; }
.cc-count { text-align:right; flex-shrink:0; }
.cc-num  { font-family:'DM Mono',monospace; font-size:1.1rem; font-weight:500; color:var(--gold); line-height:1; }
.cc-num-lbl { font-size:0.62rem; color:var(--t4); margin-top:1px; }
.cc-bar-wrap { display:flex; align-items:center; gap:6px; }
.cc-bar-bg   { flex:1; height:3px; background:rgba(255,255,255,0.06); border-radius:2px; overflow:hidden; }
.cc-bar-fill { height:100%; background:var(--gold); border-radius:2px; opacity:0.7; }
.cc-trend-lbl { font-size:0.65rem; font-family:'DM Mono',monospace; white-space:nowrap; flex-shrink:0; }

/* ─── CHART ─── */
.chart-area { padding:16px 18px; }
.chart-header { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; }
.chart-main-val { font-family:'Fraunces',serif; font-size:1.6rem; font-weight:400; font-style:italic; color:var(--t1); }
.chart-main-lbl { font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--t4); }
.chart-bars { display:flex; align-items:flex-end; gap:4px; height:70px; margin-bottom:6px; }
.cbc { flex:1; display:flex; flex-direction:column; align-items:center; gap:5px; }
.cb {
  width:100%; background:rgba(201,168,76,0.18); border-radius:4px 4px 0 0;
  min-height:2px; transition:background 0.15s; border-top:1px solid rgba(201,168,76,0.35);
}
.cb:hover { background:rgba(201,168,76,0.32); }
.cb.today { background:rgba(201,168,76,0.32); border-top-color:var(--gold); }
.cbl { font-family:'DM Mono',monospace; font-size:0.6rem; color:var(--t4); }
.chart-stats { display:flex; justify-content:space-between; padding-top:10px; border-top:1px solid var(--line); margin-top:4px; }
.cs-item { text-align:center; }
.cs-val { font-family:'DM Mono',monospace; font-size:0.9rem; color:var(--t1); }
.cs-lbl { font-size:0.62rem; letter-spacing:0.07em; text-transform:uppercase; color:var(--t4); margin-top:2px; }

/* ─── ACTIVITY FEED ─── */
.act-item {
  display:flex; align-items:flex-start; gap:10px;
  padding:10px 16px; border-bottom:1px solid var(--line);
  transition:background 0.1s;
}
.act-item:last-child { border-bottom:none; }
.act-item:hover { background:rgba(255,255,255,0.012); }
.act-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; margin-top:4px; }
.act-body { flex:1; min-width:0; }
.act-ttl  { font-size:0.8rem; color:var(--t1); line-height:1.35; }
.act-sub  { font-size:0.7rem; color:var(--t3); margin-top:2px; }
.act-time { font-size:0.68rem; color:var(--t4); flex-shrink:0; font-family:'DM Mono',monospace; padding-top:2px; }

/* ─── EFFICACITÉ ─── */
.eff-grid { padding:14px 16px; display:flex; flex-direction:column; gap:10px; }
.eff-row  { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.eff-lbl  { font-size:0.7rem; color:var(--t3); }
.eff-val  { font-family:'DM Mono',monospace; font-size:0.88rem; font-weight:500; }
.eff-bar  { height:2px; background:rgba(255,255,255,0.05); border-radius:1px; overflow:hidden; margin-top:3px; }
.eff-fill { height:100%; border-radius:1px; transition:width 0.4s ease; }
.eff-divider { height:1px; background:var(--line); }
.eff-big { text-align:center; padding:4px 0 8px; border-top:1px solid var(--line); margin-top:2px; }
.eff-big-val { font-family:'Fraunces',serif; font-size:2rem; font-weight:400; font-style:italic; color:var(--green); }
.eff-big-lbl { font-size:0.63rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--t4); margin-top:3px; }

/* ─── DOSSIERS ─── */
.mini-row {
  display:flex; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; margin-bottom:18px;
}
.mr-cell { flex:1; background:var(--s2); padding:12px 14px; display:flex; align-items:center; gap:10px; transition:background 0.14s; }
.mr-cell:hover { background:var(--s3); }
.mr-ico  { width:26px; height:26px; border-radius:var(--radius-xs); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.mr-val  { font-family:'DM Mono',monospace; font-size:1rem; color:var(--t1); font-weight:500; }
.mr-lbl  { font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--t3); margin-top:1px; }

.filters { display:flex; gap:7px; margin-bottom:11px; flex-wrap:wrap; }
.fi {
  padding:9px 12px; background:var(--s2); border:1px solid var(--line);
  border-radius:var(--radius-xs); color:var(--t1); font-family:'DM Sans',sans-serif;
  font-size:0.8rem; outline:none; transition:border-color 0.14s;
}
.fi:focus { border-color:var(--gold); box-shadow:0 0 0 2px var(--goldglow); }
.fi::placeholder { color:var(--t4); }

/* ─── STATES ─── */
.sbox { padding:44px 20px; text-align:center; color:var(--t3); }
.spin {
  width:18px; height:18px; border:2px solid var(--s5); border-top-color:var(--gold);
  border-radius:50%; animation:sp 0.7s linear infinite; margin:0 auto 10px;
}
.sbox p { font-size:0.8rem; }
.empty-s { padding:44px 36px; text-align:center; }
.es-ico {
  width:42px; height:42px; background:var(--golddim); border:1px solid var(--goldbrd);
  border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; margin:0 auto 14px;
  box-shadow:0 0 16px rgba(201,168,76,0.12);
}
.es-ttl { font-family:'Fraunces',serif; font-size:1.1rem; font-weight:400; font-style:italic; color:var(--t1); margin-bottom:7px; }
.es-sub { font-size:0.8rem; color:var(--t3); line-height:1.7; max-width:300px; margin:0 auto; }

/* ─── STATUT SELECT ─── */
.statut-sel {
  padding:4px 7px; background:transparent; border:1px solid var(--line2);
  border-radius:var(--radius-xs); color:var(--t2); font-family:'DM Sans',sans-serif;
  font-size:0.72rem; outline:none; cursor:pointer; transition:all 0.15s;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%236a80a0' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 6px center; padding-right:20px;
}
.statut-sel:hover { border-color:var(--gold); color:var(--t1); }
.statut-sel.saving { opacity:0.5; pointer-events:none; }
.statut-sel.saved  { border-color:var(--green); color:var(--green); }

/* ─── PAGINATION ─── */
.pagination {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border-top:1px solid var(--line);
  font-size:0.72rem; color:var(--t3);
}
.pag-pages { display:flex; gap:4px; }
.pag-btn {
  padding:5px 10px; background:none; border:1px solid var(--line);
  border-radius:var(--radius-xs); color:var(--t3); font-family:'DM Sans',sans-serif;
  font-size:0.72rem; cursor:pointer; transition:all 0.14s; min-width:30px; text-align:center;
}
.pag-btn:hover    { border-color:var(--line3); color:var(--t1); }
.pag-btn.active   { background:var(--golddim); border-color:var(--goldbrd); color:var(--gold); }
.pag-btn:disabled { opacity:0.3; cursor:not-allowed; }

/* ─── TOAST ─── */
.toast {
  position:fixed; bottom:24px; right:24px; z-index:999;
  background:var(--s3); border:1px solid var(--line2); border-radius:var(--radius-sm);
  padding:10px 16px; font-size:0.82rem; color:var(--t1);
  box-shadow:var(--shadow-card);
  opacity:0; transform:translateY(8px); pointer-events:none;
  transition:opacity 0.25s, transform 0.25s;
}
.toast.show { opacity:1; transform:translateY(0); }

/* ─── ANIMATIONS ─── */
@keyframes fadeUp { from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)} }
@keyframes sp     { to{transform:rotate(360deg)} }

/* ===== MODALS ===== */
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:1000;align-items:center;justify-content:center;}
.modal-backdrop.open{display:flex;}
.modal-box{background:#0f1829;border:1px solid var(--border);border-radius:12px;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.5);}
.modal-box--sm{max-width:420px;}
.modal-hd{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);}
.modal-title{font-family:'Fraunces',serif;font-size:17px;color:var(--fg);}
.modal-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:6px;}
.modal-close:hover{background:var(--border);color:var(--fg);}
.modal-body{overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:20px;}
.modal-section{display:flex;flex-direction:column;gap:12px;}
.modal-ft{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;}
.form-row{display:flex;flex-direction:column;gap:6px;}
.form-row label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;}
.form-row input,.form-row select{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--fg);font-size:14px;outline:none;}
.form-row input:focus,.form-row select:focus{border-color:var(--blue);}
.checklist-builder{display:flex;flex-direction:column;gap:8px;min-height:40px;}
.checklist-item{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;}
.checklist-item input[type=text]{flex:1;background:none;border:none;color:var(--fg);font-size:13px;outline:none;}
.checklist-item input[type=number]{width:60px;background:none;border:1px solid var(--border);border-radius:6px;padding:4px 6px;color:var(--muted);font-size:12px;text-align:center;}
.checklist-item .ci-label{font-size:11px;color:var(--muted);white-space:nowrap;}
.checklist-item .ci-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0 4px;}
.checklist-item .ci-del:hover{color:#ef4444;}
.btn-add-item{background:none;border:1px dashed var(--border);border-radius:8px;color:var(--blue);padding:8px;font-size:13px;cursor:pointer;text-align:center;}
.btn-add-item:hover{border-color:var(--blue);background:rgba(59,130,246,.06);}
.btn-cancel{background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);padding:9px 18px;font-size:14px;cursor:pointer;}
.btn-cancel:hover{border-color:var(--fg);color:var(--fg);}
.btn-primary{background:var(--blue);border:none;border-radius:8px;color:#fff;padding:9px 20px;font-size:14px;font-weight:600;cursor:pointer;}
.btn-primary:hover{background:#2563eb;}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.succes-link-box{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;align-items:center;gap:10px;word-break:break-all;font-size:13px;color:var(--blue);}
.succes-link-box button{background:var(--border);border:none;border-radius:6px;color:var(--fg);padding:6px 12px;font-size:12px;cursor:pointer;white-space:nowrap;}
.btn-nouveau{background:var(--blue);border:none;border-radius:8px;color:#fff;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;margin-right:8px;}
.btn-nouveau:hover{background:#2563eb;}
