:root {
  --bg: #f4f6fb;
  --bg-soft: #eef1fa;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --text: #0f1e3c;
  --muted: #667085;
  --border: #e5e9f0;
  --navy: #0f1e3c;
  --navy-2: #14264d;
  --purple: #5b46e8;
  --purple-2: #7b61ff;
  --purple-soft: #eef1ff;
  --green: #10b981;
  --green-soft: #eafaf2;
  --orange: #f59e0b;
  --orange-soft: #fff7e6;
  --red: #ef4444;
  --red-soft: #fff0f0;
  --blue: #2563eb;
  --blue-soft: #eaf1ff;
  --shadow: 0 14px 34px -22px rgba(15, 30, 60, .55);
  --shadow-soft: 0 6px 18px -12px rgba(15, 30, 60, .45);
  --radius: 18px;
  --radius-sm: 12px;
  --sidebar: 78px;
  --topbar: 72px;
}

[data-theme="dark"] {
  --bg: #0b1020;
  --bg-soft: #0e162a;
  --surface: #111a2f;
  --surface-2: #16213a;
  --text: #f4f7fb;
  --muted: #a8b3c7;
  --border: rgba(255,255,255,.09);
  --navy: #070d1b;
  --navy-2: #101a31;
  --purple-soft: rgba(123, 97, 255, .14);
  --green-soft: rgba(16,185,129,.14);
  --orange-soft: rgba(245,158,11,.14);
  --red-soft: rgba(239,68,68,.14);
  --blue-soft: rgba(37,99,235,.16);
  --shadow: 0 20px 50px -30px rgba(0,0,0,.9);
  --shadow-soft: 0 10px 26px -20px rgba(0,0,0,.75);
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Arial, sans-serif;
  background:
    radial-gradient(circle at 18% 8%, rgba(123, 97, 255, .13), transparent 28%),
    radial-gradient(circle at 82% 18%, rgba(37, 99, 235, .11), transparent 24%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);
  color: var(--text);
  min-height: 100vh;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }

.app-shell { min-height: 100vh; padding-top: var(--topbar); padding-left: var(--sidebar); }

.topbar {
  position: fixed; inset: 0 0 auto 0; height: var(--topbar);
  z-index: 20;
  display: flex; align-items: center; gap: 22px;
  padding: 0 24px;
  color: #fff;
  background: linear-gradient(135deg, var(--navy), #151f43 62%, #2a1f6c);
  box-shadow: 0 10px 30px -22px #000;
}
.brand { display: flex; align-items: center; gap: 12px; min-width: 178px; }
.brand-mark {
  width: 38px; height: 38px; border-radius: 11px;
  background: linear-gradient(135deg, var(--purple), var(--purple-2));
  display:flex; align-items:center; justify-content:center;
  font-weight: 900; letter-spacing: -.04em;
  box-shadow: 0 8px 18px -8px rgba(123,97,255,.8);
}
.brand-word { font-size: 18px; font-weight: 850; letter-spacing: -.04em; }
.topnav { display: flex; align-items: center; gap: 4px; flex: 1; }
.topnav a {
  color: rgba(255,255,255,.78);
  padding: 10px 13px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 650;
  white-space: nowrap;
}
.topnav a:hover, .topnav a.active { background: rgba(255,255,255,.10); color: #fff; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.top-pill, .icon-pill, .select-pill {
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: white;
  border-radius: 999px;
  min-height: 38px;
  padding: 0 13px;
  display:flex; align-items:center; gap: 8px;
  font-size: 13px; font-weight: 700;
  cursor: pointer;
}
.icon-pill { width: 38px; justify-content:center; padding: 0; }
.select-pill { appearance: none; outline: none; color: white; }
.select-pill option { color: #111827; }
.avatar {
  width: 38px; height: 38px; border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, var(--purple), var(--purple-2));
  color:#fff; font-size: 12px; font-weight: 850;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.14);
}

.sidebar {
  position: fixed; top: var(--topbar); left: 0; bottom: 0; width: var(--sidebar); z-index: 15;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 18px 12px;
  background: linear-gradient(180deg, #0b1531, #091124);
  border-right: 1px solid rgba(255,255,255,.06);
}
.side-link {
  width: 46px; height: 46px; border-radius: 15px;
  display:flex; align-items:center; justify-content:center;
  color: rgba(255,255,255,.72);
  font-size: 20px;
  transition: .16s ease;
}
.side-link:hover, .side-link.active { background: linear-gradient(135deg, var(--purple), var(--purple-2)); color: #fff; box-shadow: 0 8px 18px -9px rgba(123,97,255,.9); }
.side-spacer { flex: 1; }

.main { padding: 30px; max-width: 1680px; margin: 0 auto; }
.page-head { display:flex; justify-content:space-between; align-items:flex-start; gap: 18px; margin-bottom: 22px; }
.eyebrow { font-size: 11px; font-weight: 850; color: var(--purple); text-transform: uppercase; letter-spacing: .11em; margin-bottom: 8px; }
h1 { margin: 0; font-size: 32px; letter-spacing: -.045em; line-height: 1.12; }
.subtitle { margin-top: 8px; color: var(--muted); font-size: 15px; line-height: 1.55; }
.head-actions { display:flex; gap: 10px; align-items:center; flex-wrap: wrap; justify-content:flex-end; }

.card {
  background: color-mix(in srgb, var(--surface) 97%, transparent);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}
.card-pad { padding: 20px; }
.card-title { margin: 0 0 12px; font-size: 17px; letter-spacing: -.02em; }
.card-subtitle { color: var(--muted); font-size: 13px; line-height: 1.5; margin: -6px 0 16px; }
.grid { display:grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.btn {
  border: 1px solid var(--border); background: var(--surface); color: var(--text);
  min-height: 42px; padding: 0 16px; border-radius: 12px;
  font-weight: 750; cursor: pointer; display:inline-flex; align-items:center; gap: 8px; justify-content:center;
  box-shadow: none;
}
.btn-primary { border: 0; color: #fff; background: linear-gradient(135deg, var(--purple), var(--purple-2)); box-shadow: 0 10px 24px -15px rgba(91,70,232,.8); }
.btn-danger { border: 0; color:#fff; background: var(--red); }
.btn-sm { min-height: 34px; padding: 0 12px; border-radius: 10px; font-size: 13px; }
.input, .select, .textarea {
  width: 100%; min-height: 42px;
  border: 1px solid var(--border); border-radius: 12px;
  background: var(--surface); color: var(--text);
  padding: 0 13px; outline: none;
}
.textarea { min-height: 110px; padding: 12px 13px; resize: vertical; }
.input:focus, .select:focus, .textarea:focus { border-color: rgba(91,70,232,.55); box-shadow: 0 0 0 4px rgba(91,70,232,.10); }
label { display:block; font-size: 11px; font-weight: 850; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 7px; }
.form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }

.badge {
  display:inline-flex; align-items:center; gap: 6px;
  min-height: 26px; padding: 0 10px; border-radius: 999px;
  font-size: 12px; font-weight: 800;
  background: var(--purple-soft); color: var(--purple); border: 1px solid rgba(91,70,232,.16);
  white-space: nowrap;
}
.badge.green { background: var(--green-soft); color: #079569; border-color: rgba(16,185,129,.22); }
.badge.orange { background: var(--orange-soft); color: #b76b00; border-color: rgba(245,158,11,.24); }
.badge.red { background: var(--red-soft); color: #d12d2d; border-color: rgba(239,68,68,.20); }
.badge.blue { background: var(--blue-soft); color: var(--blue); border-color: rgba(37,99,235,.18); }
.badge.gray { background: var(--surface-2); color: var(--muted); border-color: var(--border); }
.dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; display:inline-block; }

.table-card { overflow:hidden; }
table { width: 100%; border-collapse: collapse; }
th { text-align:left; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; padding: 14px 16px; background: var(--surface-2); }
td { padding: 15px 16px; border-top: 1px solid var(--border); color: color-mix(in srgb, var(--text) 90%, var(--muted)); font-size: 14px; vertical-align: middle; }
.table-actions { color: var(--muted); text-align:right; font-size: 20px; }
.avatar-mini {
  width: 34px; height: 34px; border-radius: 50%;
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--purple-soft); color: var(--purple); font-weight:850; font-size: 12px; margin-right: 9px;
}
.person { display:flex; align-items:center; min-width: 0; }
.person strong { display:block; color: var(--text); }
.person small { display:block; color: var(--muted); margin-top: 2px; }

.kpi { padding: 18px; position: relative; overflow:hidden; }
.kpi::after { content:""; position:absolute; right:-26px; top:-32px; width:96px; height:96px; border-radius:50%; background: var(--purple-soft); }
.kpi-label { color: var(--muted); font-weight: 750; font-size: 13px; }
.kpi-value { margin-top: 8px; font-size: 34px; line-height:1; font-weight: 900; letter-spacing:-.05em; color: var(--purple); }
.kpi-note { color: var(--muted); font-size: 12px; margin-top: 8px; }

.filter-row { display:flex; align-items:center; gap: 10px; margin-bottom: 16px; }
.filter-row .input { flex: 1; }

.login-page { min-height: 100vh; display:grid; grid-template-columns: 1fr 520px; align-items:center; gap: 54px; padding: 80px 11vw; }
.login-brand { display:flex; flex-direction:column; gap: 14px; align-items:flex-start; }
.login-logo { width: 92px; height: 92px; border-radius: 26px; font-size: 44px; }
.login-brand h1 { font-size: 56px; }
.login-card { padding: 34px; }
.login-card h2 { margin:0; font-size: 28px; letter-spacing:-.035em; }
.login-foot { margin-top: 22px; display:flex; gap: 14px; justify-content:center; color: var(--muted); font-size: 13px; }

.profile-grid { display:grid; grid-template-columns: 340px 1fr; gap: 18px; }
.detail-list { display:grid; gap: 12px; margin: 18px 0; }
.detail-item { display:flex; gap: 10px; align-items:flex-start; color: var(--muted); font-size: 14px; }
.detail-item strong { color: var(--text); }
.tabs { display:flex; gap: 6px; border-bottom:1px solid var(--border); margin: -20px -20px 20px; padding: 0 16px; }
.tab { padding: 16px 10px 14px; color: var(--muted); font-weight: 750; font-size: 14px; border-bottom: 3px solid transparent; }
.tab.active { color: var(--purple); border-bottom-color: var(--purple); }

.calendar-layout { display:grid; grid-template-columns: minmax(0,1.5fr) minmax(360px,.8fr); gap:18px; }
.week-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.day { min-height: 250px; border:1px solid var(--border); border-radius: 15px; padding: 10px; background: var(--surface-2); }
.day.active { background: var(--purple-soft); border-color: rgba(91,70,232,.25); }
.day-head { font-size: 12px; color: var(--muted); font-weight:850; text-transform:uppercase; display:flex; justify-content:space-between; align-items:center; margin-bottom: 8px; }
.event { border-left: 3px solid var(--purple); background: var(--surface); border-radius: 10px; padding: 8px; font-size: 12px; margin-bottom: 7px; box-shadow: var(--shadow-soft); }
.event.green { border-left-color: var(--green); }
.event.orange { border-left-color: var(--orange); }
.event.blue { border-left-color: var(--blue); }
.event strong { display:block; color:var(--text); }
.timeline { display:grid; gap: 10px; }
.timeline-item { display:grid; grid-template-columns: 64px 1fr auto; gap: 12px; align-items:center; padding: 12px; border:1px solid var(--border); border-radius: 14px; background: var(--surface-2); }
.timeline-time { color: var(--purple); font-weight: 900; }

.steps { display:grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 18px; }
.step { display:flex; align-items:center; gap: 10px; padding: 14px; border:1px solid var(--border); border-radius: 14px; background: var(--surface); color: var(--muted); font-weight: 750; }
.step b { width: 28px; height: 28px; border-radius: 50%; display:flex; align-items:center; justify-content:center; background: var(--surface-2); color: var(--muted); }
.step.active { color: var(--purple); border-color: rgba(91,70,232,.23); background: var(--purple-soft); }
.step.active b { color:#fff; background: linear-gradient(135deg,var(--purple),var(--purple-2)); }
.dropzone { min-height: 180px; border: 2px dashed rgba(91,70,232,.35); border-radius: 16px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap: 10px; background: var(--purple-soft); }
.upload-icon { width: 58px; height:58px; border-radius: 18px; background: linear-gradient(135deg,var(--purple),var(--purple-2)); color:#fff; display:flex; align-items:center; justify-content:center; font-size: 26px; box-shadow: 0 12px 24px -16px rgba(91,70,232,.95); }

.ai-box { min-height: 190px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 16px; padding: 14px; color: var(--muted); line-height: 1.65; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; }
.credit-card { display:flex; align-items:center; justify-content:space-between; gap: 18px; padding: 18px; background: linear-gradient(135deg, var(--navy), #2a1f6c); color: #fff; border-radius: var(--radius); box-shadow: var(--shadow); }
.credit-card .num { font-size: 34px; font-weight: 900; letter-spacing:-.05em; }

.super-grid { display:grid; grid-template-columns: 1.1fr .9fr; gap:18px; }
.module-card { padding: 18px; display:flex; gap: 14px; align-items:flex-start; }
.module-icon { width: 44px; height: 44px; border-radius: 14px; display:flex; align-items:center; justify-content:center; background:var(--purple-soft); color:var(--purple); font-size: 22px; flex:none; }
.metric-line { display:flex; align-items:center; justify-content:space-between; gap: 12px; padding: 13px 0; border-bottom:1px solid var(--border); }
.metric-line:last-child { border-bottom:0; }

.placeholder { min-height: 560px; display:flex; align-items:center; justify-content:center; text-align:center; padding: 40px; }
.placeholder-inner { max-width: 560px; }
.placeholder-icon { width: 86px; height:86px; border-radius: 30px; margin: 0 auto 18px; display:flex; align-items:center; justify-content:center; background: var(--purple-soft); color: var(--purple); font-size: 42px; }

.status-banner { display:flex; align-items:flex-start; gap: 14px; border:1px solid rgba(91,70,232,.18); background: var(--purple-soft); padding: 16px 18px; border-radius: var(--radius); color: var(--text); margin-bottom: 18px; }
.status-banner b { color: var(--purple); }

[dir="rtl"] .topnav, [dir="rtl"] .top-actions, [dir="rtl"] .brand, [dir="rtl"] .filter-row, [dir="rtl"] .person, [dir="rtl"] .detail-item { flex-direction: row-reverse; }
[dir="rtl"] .app-shell { padding-left: 0; padding-right: var(--sidebar); }
[dir="rtl"] .sidebar { left: auto; right: 0; border-right: 0; border-left: 1px solid rgba(255,255,255,.06); }
[dir="rtl"] th, [dir="rtl"] td { text-align: right; }
[dir="rtl"] .table-actions { text-align: left; }
[dir="rtl"] .event { border-left: 0; border-right: 3px solid var(--purple); }
[dir="rtl"] .event.green { border-right-color: var(--green); }
[dir="rtl"] .event.orange { border-right-color: var(--orange); }
[dir="rtl"] .event.blue { border-right-color: var(--blue); }

@media (max-width: 1100px) {
  .topnav { display:none; }
  .grid-4 { grid-template-columns: repeat(2,1fr); }
  .grid-3 { grid-template-columns: repeat(2,1fr); }
  .profile-grid, .calendar-layout, .super-grid, .login-page { grid-template-columns: 1fr; }
  .login-page { padding: 60px 24px; }
}
@media (max-width: 760px) {
  :root { --sidebar: 0px; }
  .sidebar { display:none; }
  .main { padding: 20px 14px; }
  .grid-4, .grid-3, .grid-2, .form-grid { grid-template-columns: 1fr; }
  .page-head, .filter-row { flex-direction: column; align-items: stretch; }
  .steps { grid-template-columns: 1fr; }
  table { min-width: 860px; }
  .table-card { overflow:auto; }
}

/* === NOVEX v2 — circuit dialer, stock, rappels et analyse appels === */
.workflow-map { display:grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 12px; }
.workflow-step { position:relative; padding: 15px; border:1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: var(--shadow-soft); }
.workflow-step::after { content:'→'; position:absolute; right:-12px; top:50%; transform:translateY(-50%); color:var(--muted); font-weight:900; }
.workflow-step:last-child::after { display:none; }
.workflow-num { width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--purple),var(--purple-2)); color:#fff; font-weight:900; margin-bottom:10px; }
.workflow-title { font-weight:850; color:var(--text); margin-bottom:5px; }
.workflow-desc { color:var(--muted); font-size:12px; line-height:1.45; }
.dialer-layout { display:grid; grid-template-columns: minmax(320px,.85fr) minmax(0,1.15fr) minmax(340px,.9fr); gap:18px; }
.call-card { background: linear-gradient(135deg, var(--surface), color-mix(in srgb, var(--purple-soft) 38%, var(--surface))); border:1px solid var(--border); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
.call-number { font-size: 30px; letter-spacing:-.03em; font-weight:900; color:var(--purple); margin: 8px 0 4px; }
.call-actions { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:10px; margin-top: 15px; }
.status-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:10px; }
.status-btn { min-height:72px; border:1px solid var(--border); border-radius:16px; background:var(--surface); padding:12px; cursor:pointer; text-align:left; box-shadow:var(--shadow-soft); }
.status-btn b { display:block; color:var(--text); margin-bottom:4px; }
.status-btn span { font-size:12px; color:var(--muted); line-height:1.35; }
.status-btn.purple { border-color:rgba(91,70,232,.24); background:var(--purple-soft); }
.status-btn.green { border-color:rgba(16,185,129,.24); background:var(--green-soft); }
.status-btn.orange { border-color:rgba(245,158,11,.24); background:var(--orange-soft); }
.status-btn.red { border-color:rgba(239,68,68,.20); background:var(--red-soft); }
.status-btn.blue { border-color:rgba(37,99,235,.20); background:var(--blue-soft); }
.route-list { display:grid; gap:10px; }
.route-item { display:grid; grid-template-columns: 42px 1fr auto; align-items:center; gap:12px; padding:12px; border:1px solid var(--border); background:var(--surface-2); border-radius:14px; }
.route-icon { width:42px; height:42px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--purple-soft); color:var(--purple); font-size:20px; }
.stock-grid { display:grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap:14px; }
.stock-card { padding:16px; border:1px solid var(--border); background:var(--surface); border-radius:16px; box-shadow:var(--shadow-soft); }
.stock-card b { display:block; font-size:26px; letter-spacing:-.04em; margin:4px 0; }
.distribution-layout { display:grid; grid-template-columns: minmax(0,1.25fr) minmax(360px,.75fr); gap:18px; }
.rule-box { display:grid; grid-template-columns: 1fr auto; gap:10px; align-items:center; padding:12px 0; border-bottom:1px solid var(--border); }
.rule-box:last-child { border-bottom:0; }
.alert-call { animation: pulseAlert 1.7s infinite; border-color: rgba(245,158,11,.55) !important; background: var(--orange-soft) !important; }
@keyframes pulseAlert { 0%,100%{ box-shadow:0 0 0 0 rgba(245,158,11,.24);} 50%{ box-shadow:0 0 0 8px rgba(245,158,11,0);} }
.recording-row { display:grid; grid-template-columns: 80px 1.2fr 1fr .9fr .8fr auto; gap:12px; align-items:center; padding:14px 0; border-bottom:1px solid var(--border); }
.recording-row:last-child { border-bottom:0; }
.audio-pill { height:34px; min-width:140px; border-radius:999px; background:var(--surface-2); border:1px solid var(--border); display:flex; align-items:center; gap:8px; padding:0 10px; color:var(--muted); font-size:12px; }
.audio-bars { display:flex; gap:2px; align-items:end; height:14px; }
.audio-bars span { width:3px; border-radius:99px; background:var(--purple); opacity:.85; }
.audio-bars span:nth-child(1){height:7px}.audio-bars span:nth-child(2){height:12px}.audio-bars span:nth-child(3){height:9px}.audio-bars span:nth-child(4){height:14px}.audio-bars span:nth-child(5){height:6px}
@media (max-width: 1200px) {
  .workflow-map { grid-template-columns: repeat(3,1fr); }
  .dialer-layout, .distribution-layout { grid-template-columns: 1fr; }
  .stock-grid { grid-template-columns: repeat(2,1fr); }
  .recording-row { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .workflow-map, .stock-grid, .call-actions, .status-grid { grid-template-columns: 1fr; }
  .workflow-step::after { display:none; }
}
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.badge.red { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; }
@media (max-width: 980px) { .grid-3 { grid-template-columns: 1fr; } }

.clean-list { margin: 0; padding-left: 18px; color: var(--muted); line-height: 1.8; }
.status-banner { display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border-radius:var(--radius); border:1px solid rgba(16,185,129,.22); background:var(--green-soft); color:var(--text); }
.status-banner > span { width:34px; height:34px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--surface); box-shadow:var(--shadow-soft); flex:none; }
@media (max-width: 1100px) { .topnav { overflow-x:auto; } .grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); } .grid-3, .grid-2 { grid-template-columns: 1fr; } }


/* ══════════════════════════════════════════════════════════════════════
   NOVEX v5 — Dialer flottant, accordéons intelligents, roue thème
   ════════════════════════════════════════════════════════════════════ */
.workspace-shell{position:relative;min-height:760px;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.25));border:1px solid var(--border)}
[data-theme="dark"] .workspace-shell{background:linear-gradient(180deg,rgba(17,26,47,.88),rgba(14,22,42,.62))}
.prospect-board{padding:18px}
.board-row{display:grid;grid-template-columns:44px 1.2fr .8fr .8fr 1fr 260px;align-items:center;gap:14px;padding:13px 16px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent)}
.board-row:first-child{border-top:0;border-radius:18px 18px 0 0}.board-row:last-child{border-radius:0 0 18px 18px}.board-row:hover{background:var(--surface)}
.phone-mask{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--purple-soft);color:var(--purple);padding:5px 9px;border-radius:999px;font-size:12px;font-weight:850}
.float-window{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 80px -38px rgba(15,30,60,.65);overflow:hidden;z-index:3}
.float-dialer{width:350px;right:42px;top:96px}.float-qualif{width:430px;left:46px;top:118px}.float-ai{width:380px;left:500px;top:150px}
.float-head{height:56px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:white;background:linear-gradient(135deg,var(--purple),var(--purple-2))}
.float-head.orange{background:linear-gradient(135deg,#ff7844,#ed5ea5)}.float-head.ai{background:linear-gradient(135deg,#654ce5,#9b5ae5)}
.float-title{font-weight:900;letter-spacing:-.02em}.float-sub{font-size:11px;opacity:.84;margin-top:2px}.float-tools{display:flex;gap:8px}.float-tool{width:28px;height:28px;border-radius:9px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}
.float-body{padding:16px}.call-timer{font-size:46px;font-weight:950;text-align:center;color:var(--purple);letter-spacing:-.05em;margin:10px 0}.call-status{font-size:12px;text-align:center;color:var(--muted);margin-top:-6px;margin-bottom:16px}
.dialer-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.dialer-actions .status-btn{min-height:54px;padding:8px}.status-btn.compact b{font-size:12px}.status-btn.compact span{font-size:10px;margin-top:2px}
.floating-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.step-dots{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:14px}.step-dot{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);font-weight:900}.step-dot.active{background:linear-gradient(135deg,#ff7844,#ed5ea5);color:white;border:0}.mini-script{padding:12px;border-radius:14px;background:var(--blue-soft);border-left:4px solid var(--blue);font-size:12px;color:var(--text);font-style:italic;text-align:center;margin-bottom:14px}.soft-field{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:10px 14px;margin-bottom:9px;text-align:center;font-weight:750}.ai-chat{height:310px;overflow:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:14px}.ai-msg{padding:10px 12px;border-radius:14px;margin-bottom:10px;font-size:12px;line-height:1.45}.ai-msg.bot{background:var(--purple-soft);color:var(--text);border:1px solid rgba(91,70,232,.12)}.ai-msg.user{background:var(--surface);border:1px solid var(--border);margin-left:30px}.quick-chips{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.chip-btn{border:1px solid rgba(91,70,232,.24);color:var(--purple);background:var(--surface);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.ai-input-row{display:grid;grid-template-columns:1fr auto;gap:9px;margin-top:10px}
.confirmateur-pop{position:absolute;right:416px;top:432px;width:330px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 80px -42px rgba(15,30,60,.78);padding:16px;z-index:4}.confirmateur-pop h3{margin:0 0 8px}.confirmateur-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--border)}
.reminder-panel{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.alarm-popup{position:relative;border:2px solid rgba(245,158,11,.38);background:linear-gradient(135deg,var(--orange-soft),var(--surface));border-radius:22px;padding:18px;box-shadow:0 18px 44px -28px rgba(245,158,11,.75)}.alarm-bell{width:54px;height:54px;border-radius:18px;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 10px 22px -14px var(--orange)}
.nvx-accordion{display:grid;gap:10px}.acc-item{border:1px solid var(--border);background:var(--surface);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-soft)}.acc-title{width:100%;border:0;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:space-between;padding:16px 18px;cursor:pointer;font-weight:900;text-align:left}.acc-title small{display:block;color:var(--muted);font-weight:600;margin-top:3px}.acc-chevron{transition:.18s ease;color:var(--purple)}.acc-item.open .acc-chevron{transform:rotate(90deg)}.acc-content{display:none;padding:0 18px 18px;color:var(--muted);line-height:1.65}.acc-item.open .acc-content{display:block}.acc-content strong{color:var(--text)}
.archive-month-grid{display:grid;gap:10px}.filter-box{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}.filter-box .input,.filter-box .select{min-height:38px}.month-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
.theme-wheel-card{display:grid;grid-template-columns:320px 1fr;gap:26px;align-items:center}.color-wheel{width:260px;height:260px;border-radius:50%;background:conic-gradient(#7c2831,#a01e2f,#c8681f,#dcc590,#2d5f3f,#0bbdb0,#4a90e2,#0066ff,#6b4594,#c2577a,#7c2831);box-shadow:0 25px 64px -36px rgba(15,30,60,.85);position:relative;margin:auto;cursor:pointer}.color-wheel:before{content:"";position:absolute;inset:34px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 1px var(--border)}.color-wheel:after{content:"NOVEX";position:absolute;inset:87px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--purple),var(--purple-2));color:#fff;font-weight:950;letter-spacing:-.04em}.theme-dot{width:18px;height:18px;border-radius:50%;position:absolute;box-shadow:0 0 0 4px var(--surface),0 8px 18px -8px #000}.theme-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:10px;cursor:pointer}.theme-swatch{width:30px;height:30px;border-radius:10px}.theme-choice.active{border-color:rgba(91,70,232,.45);background:var(--purple-soft)}
@media(max-width:1100px){.float-window{position:static;width:auto!important;margin:14px}.workspace-shell{min-height:auto}.board-row{grid-template-columns:36px 1fr;}.board-row>*:nth-child(n+3){display:none}.reminder-panel,.theme-wheel-card{grid-template-columns:1fr}.filter-box{grid-template-columns:1fr 1fr}.month-details{grid-template-columns:1fr}}


/* NOVEX v6 — Auth Supabase réelle */
.auth-error{display:none;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:10px 12px;border-radius:12px;font-weight:700;font-size:13px;line-height:1.35}
.novex-user-chip{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body[data-role="telepro"] .telepro-hidden{display:none!important}
body[data-platform-owner="false"] .platform-only{display:none!important}

/* NOVEX v6.1 — séparation visuelle des rôles */
.role-notice strong{color:var(--text)}
body[data-role="telepro"] .page-head .eyebrow::after{content:" · ESPACE TÉLÉPRO";}
body[data-role="confirmateur"] .page-head .eyebrow::after{content:" · ESPACE CONFIRMATEUR";}
body[data-role="commercial"] .page-head .eyebrow::after{content:" · ESPACE COMMERCIAL";}
body[data-role="admin_client"] .page-head .eyebrow::after{content:" · ADMIN CLIENT";}
body[data-role="super_admin_novex"] .page-head .eyebrow::after{content:" · SUPER ADMIN";}


/* NOVEX v7.1 — Import réel + distribution manuelle */
.nvx-panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-soft); padding: 18px; }
.nvx-import-zone { border: 1.5px dashed color-mix(in srgb, var(--purple) 35%, var(--border)); border-radius: 18px; padding: 22px; background: color-mix(in srgb, var(--purple) 5%, var(--surface)); }
.nvx-import-zone input[type="file"] { width: 100%; padding: 14px; border-radius: 14px; background: var(--surface); border: 1px solid var(--border); }
.nvx-help { color: var(--muted); font-size: 13px; line-height: 1.55; }
.nvx-mini-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.nvx-mini-table th, .nvx-mini-table td { padding: 10px 12px; border-top: 1px solid var(--border); }
.nvx-actions-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.nvx-alert { padding: 12px 14px; border-radius: 14px; margin: 12px 0; font-size: 13px; background: var(--blue-soft); color: var(--blue); border: 1px solid rgba(37,99,235,.15); }
.nvx-alert.ok { background: var(--green-soft); color: #047857; border-color: rgba(16,185,129,.22); }
.nvx-alert.err { background: var(--red-soft); color: #b91c1c; border-color: rgba(239,68,68,.2); }
.nvx-two-col { display:grid; grid-template-columns: 1.1fr .9fr; gap:18px; }
.nvx-small { font-size: 12px; color: var(--muted); }
.nvx-muted { color: var(--muted); }
.nvx-assign-card { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px; border:1px solid var(--border); border-radius:16px; background:var(--surface); margin-bottom:10px; }
.nvx-assign-card .left { display:flex; align-items:center; gap:10px; }
.nvx-assign-card input { width: 96px; }
.nvx-progress { height:10px; background:var(--surface-2); border-radius:999px; overflow:hidden; min-width:150px; }
.nvx-progress span { display:block; height:100%; background:linear-gradient(135deg,var(--purple),var(--purple-2)); width:0%; }
@media (max-width: 980px){ .nvx-two-col{grid-template-columns:1fr} }

/* Dialer v7.1 : seules les fenêtres demandées s’ouvrent */
body.nvx-dialer-controlled .float-qualif,
body.nvx-dialer-controlled .float-ai,
body.nvx-dialer-controlled .confirmateur-pop { display:none; }
body.nvx-dialer-controlled .float-window.is-open,
body.nvx-dialer-controlled .confirmateur-pop.is-open { display:block; }
.float-window.is-minimized .float-body { display:none; }
.float-window.is-minimized { height:auto!important; }
.float-head { cursor: move; }


/* NOVEX v7.3 — Nettoyage données exemples + dialer réel */
.empty-real-data {
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: 18px;
  padding: 28px;
  text-align: center;
  color: var(--muted);
}
.empty-real-data h3 { color: var(--text); margin:0 0 8px; font-size:20px; }
.empty-real-data .empty-actions { margin-top: 16px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

body.nvx-dialer-controlled .float-window,
body.nvx-dialer-controlled .confirmateur-pop { display:none; }
body.nvx-dialer-controlled .float-window.is-open,
body.nvx-dialer-controlled .confirmateur-pop.is-open { display:block; }
body.nvx-dialer-controlled .float-window { position: fixed; z-index: 5000; }
body.nvx-dialer-controlled .float-dialer { right:42px; top:96px; }
body.nvx-dialer-controlled .float-qualif { left:46px; top:118px; }
body.nvx-dialer-controlled .float-ai { left:500px; top:150px; }
body.nvx-dialer-controlled .confirmateur-pop { position:fixed; z-index:6000; right:42px; top:410px; }
.float-head { cursor: move; user-select:none; }
.float-tool { cursor:pointer; }
.float-tool:hover { background: rgba(255,255,255,.26); }


/* NOVEX v7.4 — Prospects/table/import/distribution fixes */
.prospects-head { margin-bottom: 24px; }
.kpi-grid.prospects-kpis {
  display:grid;
  grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap:16px;
  margin: 18px 0 24px;
}
.kpi-card {
  background: var(--surface);
  border:1px solid var(--border);
  border-radius:20px;
  padding:18px 20px;
  box-shadow: var(--shadow-sm);
  min-height:92px;
}
.kpi-card span { display:block; color:var(--muted); font-weight:700; font-size:13px; margin-bottom:8px; }
.kpi-card strong { display:block; font-size:30px; line-height:1; color:var(--text); }
.kpi-card small { display:block; color:var(--muted); margin-top:8px; }

.prospects-card { padding:18px; border-radius:22px; }
.prospects-toolbar {
  display:grid;
  grid-template-columns: 1fr 1fr 1.5fr auto auto;
  gap:10px;
  align-items:center;
  margin-bottom:12px;
}
.prospects-countline { color:var(--muted); font-size:13px; font-weight:700; margin: 6px 0 12px; }
.table-scroll {
  max-height: 62vh;
  overflow: auto;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
}
.prospects-table { width:100%; border-collapse:separate; border-spacing:0; min-width:1120px; }
.prospects-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--surface-2, #f7f8fb);
  box-shadow: 0 1px 0 var(--border);
}
.prospects-table th, .prospects-table td {
  padding:12px 14px;
  text-align:left;
  border-bottom:1px solid var(--border);
  vertical-align:middle;
}
.prospects-table th { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.row-actions { display:flex; gap:8px; flex-wrap:nowrap; }
.btn-sm { padding:7px 10px; font-size:12px; border-radius:10px; }
.tag, .status-pill {
  display:inline-flex; align-items:center; border-radius:999px;
  padding:4px 9px; font-weight:800; font-size:12px;
  background:var(--accent-soft); color:var(--accent-deep);
  border:1px solid var(--accent-border);
}
.status-pill { background:#f3f4f6; color:#374151; border-color:#e5e7eb; }

.nvx-assign-card {
  display:grid;
  grid-template-columns: minmax(220px, 1fr) 130px auto minmax(120px, auto);
  gap:12px;
  align-items:center;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  margin-bottom:10px;
}
.nvx-assign-card small { display:block; color:var(--muted); margin-top:2px; }
.assign-result { font-size:13px; font-weight:800; color:var(--success); }

@media (max-width: 900px) {
  .kpi-grid.prospects-kpis { grid-template-columns:1fr 1fr; }
  .prospects-toolbar { grid-template-columns:1fr; }
}


/* NOVEX v7.5 — Super Admin cleanup */
.client-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.danger-soft {
  background: rgba(239,68,68,.10) !important;
  color: #ef4444 !important;
  border: 1px solid rgba(239,68,68,.25) !important;
}
.superadmin-clients-table td:last-child,
.superadmin-clients-table th:last-child {
  min-width: 260px;
}
.table-actions {
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: var(--text) !important;
}


/* NOVEX v7.7 — pagination + rappels */
.prospects-toolbar {
  grid-template-columns: 1fr 1fr 1.5fr 130px auto auto !important;
}
.reminder-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  margin-bottom:10px;
}
.reminder-row small { color: var(--muted); }
.reminder-row p { margin:6px 0 0; color:var(--text); }
@media (max-width: 980px){
  .prospects-toolbar { grid-template-columns:1fr !important; }
  .reminder-row { flex-direction:column; align-items:flex-start; }
}


/* NOVEX v7.8 — pagination + dialer compact + adresse autocomplete */
.page-info {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:92px;
  height:42px;
  padding:0 12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  color:var(--muted);
  font-weight:800;
  white-space:nowrap;
}

.dialer-actions {
  display:grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap:8px !important;
  margin-top:12px !important;
}

.status-btn.compact {
  min-height:54px !important;
  padding:8px 6px !important;
  border-radius:14px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:2px !important;
  line-height:1.05 !important;
}

.status-btn.compact b {
  display:block;
  width:100%;
  font-size:12px !important;
  letter-spacing:.01em;
}

.status-btn.compact span {
  display:block;
  width:100%;
  font-size:10px !important;
  opacity:.82;
}

.address-autocomplete {
  position:relative;
}

.address-suggestions {
  display:none;
  position:absolute;
  z-index:9000;
  left:0;
  right:0;
  top:calc(100% + 6px);
  background:var(--surface);
  border:1px solid var(--border);
  box-shadow:var(--shadow-lg);
  border-radius:14px;
  overflow:hidden;
  max-height:240px;
  overflow-y:auto;
}

.address-suggestions.is-open {
  display:block;
}

.address-suggestion {
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  padding:10px 12px;
  cursor:pointer;
  color:var(--text);
  border-bottom:1px solid var(--border);
}

.address-suggestion:hover {
  background:var(--surface-2, rgba(99,102,241,.08));
}

.address-suggestion b {
  display:block;
  font-size:13px;
}

.address-suggestion small,
.address-suggestion.muted {
  display:block;
  color:var(--muted);
  font-size:12px;
}


/* NOVEX v8.0 — Dialer action hard-fix */
.dialer-actions {
  display:grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap:8px !important;
  margin-top:12px !important;
}
.status-btn.compact {
  min-height:52px !important;
  padding:8px 6px !important;
  border-radius:14px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:2px !important;
  line-height:1.05 !important;
}
.status-btn.compact b { width:100%; font-size:11.5px !important; }
.status-btn.compact span { width:100%; font-size:10px !important; opacity:.82; }
.address-autocomplete { position:relative; }
.address-suggestions {
  display:none;
  position:absolute;
  z-index:9000;
  left:0;
  right:0;
  top:calc(100% + 6px);
  background:var(--surface);
  border:1px solid var(--border);
  box-shadow:var(--shadow-lg);
  border-radius:14px;
  overflow:hidden;
  max-height:240px;
  overflow-y:auto;
}
.address-suggestions.is-open { display:block; }
.address-suggestion {
  width:100%;
  border:0;
  background:transparent;
  text-align:left;
  padding:10px 12px;
  cursor:pointer;
  color:var(--text);
  border-bottom:1px solid var(--border);
}
.address-suggestion:hover { background:var(--surface-2, rgba(99,102,241,.08)); }
.address-suggestion b { display:block; font-size:13px; }
.address-suggestion small, .address-suggestion.muted { display:block; color:var(--muted); font-size:12px; }


/* NOVEX v8.1 — Sélecteur rond chromatique */
.novex-theme-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  z-index: 9999;
}

.novex-theme-wheel {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,.78);
  background:
    conic-gradient(
      from 0deg,
      #ff004c,
      #ff8a00,
      #ffe600,
      #4ade80,
      #00d5ff,
      #2563eb,
      #8b5cf6,
      #ff00d4,
      #ff004c
    );
  box-shadow: 0 10px 25px rgba(15,23,42,.18), inset 0 0 0 3px rgba(255,255,255,.42);
  cursor: pointer;
  padding: 0;
  display: grid;
  place-items: center;
  transition: transform .18s ease, box-shadow .18s ease;
}

.novex-theme-wheel:hover {
  transform: translateY(-1px) scale(1.04);
  box-shadow: 0 14px 32px rgba(15,23,42,.23), inset 0 0 0 3px rgba(255,255,255,.52);
}

.novex-theme-wheel span {
  width: 15px;
  height: 15px;
  border-radius: 999px;
  display: block;
  background: var(--surface, #fff);
  border: 1px solid rgba(15,23,42,.16);
}

.novex-theme-panel {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 290px;
  padding: 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 24px 60px rgba(15,23,42,.22);
}

.novex-theme-panel.is-open {
  display: block;
}

.novex-theme-panel-title {
  font-weight: 900;
  color: var(--text);
  margin-bottom: 10px;
}

.novex-theme-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.novex-theme-choice {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 14px;
  padding: 9px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  color: var(--text);
  text-align: left;
  transition: background .18s ease, transform .18s ease, border-color .18s ease;
}

.novex-theme-choice:hover {
  background: var(--accent-soft);
  border-color: var(--accent-border);
  transform: translateX(2px);
}

.novex-theme-dot {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.55), 0 4px 10px rgba(15,23,42,.18);
  flex: 0 0 auto;
}

.novex-theme-choice b {
  font-size: 13px;
}

/* Applique aussi l’accent choisi sur quelques zones principales */
.btn-primary,
button.btn-primary {
  background: var(--accent) !important;
  border-color: var(--accent-strong) !important;
}

.sidebar .active,
.nav-link.active,
.menu-item.active {
  background: var(--accent-soft) !important;
  color: var(--accent-deep) !important;
}

.eyebrow,
.kpi-card strong,
.card-title .accent {
  color: var(--accent-deep);
}

@media (max-width: 760px) {
  .novex-theme-panel {
    right: auto;
    left: 0;
    width: 260px;
  }
}


/* NOVEX v8.2 — Theme button fallback */
.novex-theme-wrap.novex-theme-fixed {
  position: fixed !important;
  top: 18px;
  right: 18px;
  z-index: 10000;
}


/* NOVEX v8.4 — rappel date/heure explicite */
.callback-grid {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  margin: 10px 0;
}

.quick-callbacks {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin: 10px 0 12px;
}

.callback-actions {
  margin-top:14px;
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

#saveCallbackBtn {
  min-width: 190px;
  font-weight: 900;
}

@media (max-width: 700px) {
  .callback-grid { grid-template-columns:1fr; }
  .callback-actions { flex-direction:column; }
  #saveCallbackBtn { width:100%; }
}


/* NOVEX v8.5 — callback clair */
.callback-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:10px 0;
}
.quick-callbacks {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0 12px;
}
.callback-actions {
  margin-top:14px;
  display:flex;
  justify-content:flex-end;
  gap:10px;
}
#saveCallbackBtn { min-width:190px; font-weight:900; }
@media (max-width:700px){
  .callback-grid { grid-template-columns:1fr; }
  .callback-actions { flex-direction:column; }
  #saveCallbackBtn { width:100%; }
}


/* NOVEX v8.7 — Ambiances couleurs complètes */
:root {
  --theme-bg-1: hsl(204 100% 97%);
  --theme-bg-2: hsl(214 95% 93%);
  --theme-bg-3: hsl(190 90% 96%);
  --theme-sidebar: linear-gradient(180deg, hsl(218 68% 28%), hsl(206 75% 38%));
  --theme-topbar: rgba(255,255,255,.82);
  --surface-glass: rgba(255,255,255,.76);
  --surface-glass-strong: rgba(255,255,255,.90);
}

html, body {
  background:
    radial-gradient(circle at 12% 12%, color-mix(in srgb, var(--accent-soft) 72%, transparent), transparent 33%),
    radial-gradient(circle at 88% 6%, color-mix(in srgb, var(--theme-bg-2) 82%, transparent), transparent 35%),
    linear-gradient(135deg, var(--theme-bg-1), var(--theme-bg-2) 52%, var(--theme-bg-3)) !important;
  min-height: 100%;
}

body::before {
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(120deg, rgba(255,255,255,.45), transparent 34%),
    radial-gradient(circle at 50% 100%, rgba(255,255,255,.55), transparent 38%);
  z-index: -1;
}

.app-shell,
.layout,
.page,
.main,
main.main {
  background: transparent !important;
}

.sidebar,
.aside,
.side-nav,
nav.sidebar {
  background: var(--theme-sidebar) !important;
  box-shadow: 12px 0 35px rgba(15,23,42,.12) !important;
}

.sidebar a,
.sidebar .nav-link,
.side-nav a,
.aside a {
  color: rgba(255,255,255,.82) !important;
}

.sidebar a.active,
.sidebar .active,
.sidebar .nav-link.active,
.side-nav a.active,
.menu-item.active {
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18) !important;
}

.topbar,
.header,
.app-header,
header {
  background: var(--theme-topbar) !important;
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  border-bottom: 1px solid rgba(255,255,255,.55) !important;
}

.card,
.kpi-card,
.table-card,
.prospects-card,
.float-window,
.confirmateur-pop {
  background: var(--surface-glass) !important;
  border: 1px solid rgba(255,255,255,.64) !important;
  box-shadow: 0 18px 50px rgba(15,23,42,.10) !important;
  backdrop-filter: blur(18px) saturate(1.12);
  -webkit-backdrop-filter: blur(18px) saturate(1.12);
}

.card:hover,
.kpi-card:hover {
  box-shadow: 0 24px 65px rgba(15,23,42,.14) !important;
}

.table-scroll,
.data-table,
.prospects-table {
  background: rgba(255,255,255,.68) !important;
}

.prospects-table thead th,
.data-table thead th {
  background: var(--surface-glass-strong) !important;
  backdrop-filter: blur(14px);
}

.btn-primary,
button.btn-primary {
  background: linear-gradient(135deg, var(--accent), var(--accent-strong)) !important;
  border-color: color-mix(in srgb, var(--accent-strong) 86%, #000) !important;
  color: #fff !important;
  box-shadow: 0 12px 26px color-mix(in srgb, var(--accent) 28%, transparent) !important;
}

.btn-primary:hover,
button.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 34px color-mix(in srgb, var(--accent) 34%, transparent) !important;
}

.btn,
button.btn {
  border-color: color-mix(in srgb, var(--accent-border) 60%, rgba(255,255,255,.7)) !important;
}

.input,
select.input,
textarea.input {
  background: rgba(255,255,255,.78) !important;
  border-color: color-mix(in srgb, var(--accent-border) 48%, rgba(15,23,42,.14)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.56);
}

.input:focus,
select.input:focus,
textarea.input:focus {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 15%, transparent) !important;
}

.eyebrow,
.kpi-card strong,
.card-title .accent {
  color: var(--accent-deep) !important;
}

.tag,
.status-pill {
  background: var(--accent-soft) !important;
  border-color: var(--accent-border) !important;
  color: var(--accent-deep) !important;
}

.novex-theme-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  z-index: 9999;
}

.novex-theme-wrap.novex-theme-fixed {
  position: fixed !important;
  top: 18px;
  right: 18px;
  z-index: 10000;
}

.novex-theme-wheel {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,.88);
  background:
    conic-gradient(
      from 0deg,
      #ff004c,
      #ff8a00,
      #ffe600,
      #4ade80,
      #00d5ff,
      #2563eb,
      #8b5cf6,
      #ff00d4,
      #ff004c
    );
  box-shadow: 0 12px 28px rgba(15,23,42,.20), inset 0 0 0 3px rgba(255,255,255,.46);
  cursor: pointer;
  padding: 0;
  display: grid;
  place-items: center;
  transition: transform .18s ease, box-shadow .18s ease;
}

.novex-theme-wheel:hover {
  transform: translateY(-1px) scale(1.05);
  box-shadow: 0 16px 36px rgba(15,23,42,.25), inset 0 0 0 3px rgba(255,255,255,.58);
}

.novex-theme-wheel span {
  width: 15px;
  height: 15px;
  border-radius: 999px;
  display: block;
  background: var(--surface, #fff);
  border: 1px solid rgba(15,23,42,.16);
}

.novex-theme-panel {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 310px;
  padding: 14px;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.72);
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  box-shadow: 0 26px 70px rgba(15,23,42,.22);
}

.novex-theme-panel.is-open {
  display: block;
}

.novex-theme-panel-title {
  font-weight: 950;
  color: var(--text);
  margin-bottom: 3px;
  font-size: 15px;
}

.novex-theme-panel-subtitle {
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 12px;
}

.novex-theme-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.novex-theme-choice {
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.72);
  border-radius: 15px;
  padding: 9px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  color: var(--text);
  text-align: left;
  transition: background .18s ease, transform .18s ease, border-color .18s ease;
}

.novex-theme-choice:hover {
  background: var(--accent-soft);
  border-color: var(--accent-border);
  transform: translateX(2px);
}

.novex-theme-dot {
  width: 23px;
  height: 23px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.65), 0 5px 13px rgba(15,23,42,.18);
  flex: 0 0 auto;
}

.novex-theme-choice b {
  font-size: 13px;
}

@media (max-width: 760px) {
  .novex-theme-panel {
    right: auto;
    left: 0;
    width: 270px;
  }
}


/* NOVEX v8.8 — Fiche confirmateur réelle */
.detail-list {
  display:grid;
  gap:10px;
}
.detail-list > div {
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:11px 12px;
  border:1px solid color-mix(in srgb, var(--accent-border) 42%, rgba(15,23,42,.08));
  border-radius:14px;
  background:rgba(255,255,255,.56);
}
.detail-list span {
  color:var(--muted);
  font-weight:800;
  font-size:12px;
}
.detail-list b {
  text-align:right;
  color:var(--text);
}
.fiche-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}


/* NOVEX v8.9 — Confirmateur + esthétique bandes */
:root {
  --theme-topbar: linear-gradient(180deg, hsl(218 68% 28%), hsl(206 75% 38%));
}

.topbar,
.header,
.app-header,
header {
  background: var(--theme-sidebar) !important;
  color: #fff !important;
  border-bottom: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 12px 30px rgba(15,23,42,.18) !important;
}

.topnav a,
.brand,
.brand-word,
.top-actions,
.top-pill,
.icon-pill,
.select-pill,
#novexUserChip {
  color: #fff !important;
}

.top-pill, .icon-pill, .select-pill, #novexUserChip {
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
}

.role-notice,
#novexRoleNotice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding: 12px 16px;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--accent-border) 55%, rgba(255,255,255,.18));
  background: color-mix(in srgb, var(--surface-glass) 74%, var(--theme-bg-2));
  box-shadow: 0 10px 25px rgba(15,23,42,.08);
  cursor: default;
}
.role-notice strong,
#novexRoleNotice strong {
  color: var(--text);
}
.role-notice span,
#novexRoleNotice span {
  color: color-mix(in srgb, var(--text) 72%, var(--muted));
}

.page-head .subtitle {
  color: color-mix(in srgb, var(--text) 72%, var(--muted));
}


/* ============================================================
   NOVEX v9.0 — Conteneurs colorés doux / pastel premium
   Objectif : embellir les cards, panneaux et widgets sans perdre la lisibilité.
   Inspiré du style "IAM Dark + Variants" envoyé par M. Haddad.
   ============================================================ */

:root {
  --panel-mint: rgba(220, 252, 231, .72);
  --panel-sky: rgba(219, 234, 254, .76);
  --panel-lilac: rgba(237, 233, 254, .76);
  --panel-peach: rgba(255, 237, 213, .76);
  --panel-rose: rgba(252, 231, 243, .72);
  --panel-amber: rgba(254, 243, 199, .76);
  --panel-cyan: rgba(207, 250, 254, .70);
  --panel-slate: rgba(241, 245, 249, .80);

  --panel-mint-border: rgba(16, 185, 129, .42);
  --panel-sky-border: rgba(59, 130, 246, .42);
  --panel-lilac-border: rgba(139, 92, 246, .42);
  --panel-peach-border: rgba(249, 115, 22, .42);
  --panel-rose-border: rgba(236, 72, 153, .38);
  --panel-amber-border: rgba(245, 158, 11, .42);
  --panel-cyan-border: rgba(6, 182, 212, .38);
  --panel-slate-border: rgba(100, 116, 139, .28);
}

/* Base plus élégante pour tous les conteneurs */
.card,
.kpi-card,
.table-card,
.prospects-card,
section.card,
.card-pad,
.float-window,
.confirmateur-pop {
  position: relative;
  overflow: hidden;
  border-radius: 22px !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.74), rgba(255,255,255,.56)) !important;
  border: 1px solid rgba(255,255,255,.70) !important;
  box-shadow:
    0 20px 55px rgba(15,23,42,.10),
    inset 0 1px 0 rgba(255,255,255,.62) !important;
}

/* Petit éclat discret dans le coin */
.card::after,
.kpi-card::after,
.table-card::after,
.prospects-card::after,
section.card::after,
.card-pad::after {
  content: "";
  position: absolute;
  right: -26px;
  top: -32px;
  width: 110px;
  height: 110px;
  border-radius: 999px;
  background: rgba(255,255,255,.34);
  pointer-events: none;
}

/* Trait d’accent à gauche comme sur la maquette */
.card::before,
.kpi-card::before,
.table-card::before,
.prospects-card::before,
section.card::before,
.card-pad::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 4px;
  border-radius: 0 999px 999px 0;
  background: var(--accent);
  opacity: .78;
  pointer-events: none;
}

/* Alternance douce automatique dans les grilles */
.grid > .card:nth-child(8n+1),
.grid > .card-pad:nth-child(8n+1),
.grid-2 > .card:nth-child(8n+1),
.grid-3 > .card:nth-child(8n+1),
.grid-4 > .card:nth-child(8n+1) {
  background: linear-gradient(135deg, var(--panel-mint), rgba(255,255,255,.70)) !important;
  border-color: var(--panel-mint-border) !important;
}
.grid > .card:nth-child(8n+1)::before,
.grid-2 > .card:nth-child(8n+1)::before,
.grid-3 > .card:nth-child(8n+1)::before,
.grid-4 > .card:nth-child(8n+1)::before { background: rgb(16,185,129); }

.grid > .card:nth-child(8n+2),
.grid > .card-pad:nth-child(8n+2),
.grid-2 > .card:nth-child(8n+2),
.grid-3 > .card:nth-child(8n+2),
.grid-4 > .card:nth-child(8n+2) {
  background: linear-gradient(135deg, var(--panel-amber), rgba(255,255,255,.72)) !important;
  border-color: var(--panel-amber-border) !important;
}
.grid > .card:nth-child(8n+2)::before,
.grid-2 > .card:nth-child(8n+2)::before,
.grid-3 > .card:nth-child(8n+2)::before,
.grid-4 > .card:nth-child(8n+2)::before { background: rgb(245,158,11); }

.grid > .card:nth-child(8n+3),
.grid > .card-pad:nth-child(8n+3),
.grid-2 > .card:nth-child(8n+3),
.grid-3 > .card:nth-child(8n+3),
.grid-4 > .card:nth-child(8n+3) {
  background: linear-gradient(135deg, var(--panel-sky), rgba(255,255,255,.70)) !important;
  border-color: var(--panel-sky-border) !important;
}
.grid > .card:nth-child(8n+3)::before,
.grid-2 > .card:nth-child(8n+3)::before,
.grid-3 > .card:nth-child(8n+3)::before,
.grid-4 > .card:nth-child(8n+3)::before { background: rgb(59,130,246); }

.grid > .card:nth-child(8n+4),
.grid > .card-pad:nth-child(8n+4),
.grid-2 > .card:nth-child(8n+4),
.grid-3 > .card:nth-child(8n+4),
.grid-4 > .card:nth-child(8n+4) {
  background: linear-gradient(135deg, var(--panel-peach), rgba(255,255,255,.72)) !important;
  border-color: var(--panel-peach-border) !important;
}
.grid > .card:nth-child(8n+4)::before,
.grid-2 > .card:nth-child(8n+4)::before,
.grid-3 > .card:nth-child(8n+4)::before,
.grid-4 > .card:nth-child(8n+4)::before { background: rgb(249,115,22); }

.grid > .card:nth-child(8n+5),
.grid > .card-pad:nth-child(8n+5),
.grid-2 > .card:nth-child(8n+5),
.grid-3 > .card:nth-child(8n+5),
.grid-4 > .card:nth-child(8n+5) {
  background: linear-gradient(135deg, var(--panel-lilac), rgba(255,255,255,.72)) !important;
  border-color: var(--panel-lilac-border) !important;
}
.grid > .card:nth-child(8n+5)::before,
.grid-2 > .card:nth-child(8n+5)::before,
.grid-3 > .card:nth-child(8n+5)::before,
.grid-4 > .card:nth-child(8n+5)::before { background: rgb(139,92,246); }

.grid > .card:nth-child(8n+6),
.grid > .card-pad:nth-child(8n+6),
.grid-2 > .card:nth-child(8n+6),
.grid-3 > .card:nth-child(8n+6),
.grid-4 > .card:nth-child(8n+6) {
  background: linear-gradient(135deg, var(--panel-rose), rgba(255,255,255,.74)) !important;
  border-color: var(--panel-rose-border) !important;
}
.grid > .card:nth-child(8n+6)::before,
.grid-2 > .card:nth-child(8n+6)::before,
.grid-3 > .card:nth-child(8n+6)::before,
.grid-4 > .card:nth-child(8n+6)::before { background: rgb(236,72,153); }

.grid > .card:nth-child(8n+7),
.grid > .card-pad:nth-child(8n+7),
.grid-2 > .card:nth-child(8n+7),
.grid-3 > .card:nth-child(8n+7),
.grid-4 > .card:nth-child(8n+7) {
  background: linear-gradient(135deg, var(--panel-cyan), rgba(255,255,255,.72)) !important;
  border-color: var(--panel-cyan-border) !important;
}
.grid > .card:nth-child(8n+7)::before,
.grid-2 > .card:nth-child(8n+7)::before,
.grid-3 > .card:nth-child(8n+7)::before,
.grid-4 > .card:nth-child(8n+7)::before { background: rgb(6,182,212); }

.grid > .card:nth-child(8n+8),
.grid > .card-pad:nth-child(8n+8),
.grid-2 > .card:nth-child(8n+8),
.grid-3 > .card:nth-child(8n+8),
.grid-4 > .card:nth-child(8n+8) {
  background: linear-gradient(135deg, var(--panel-slate), rgba(255,255,255,.76)) !important;
  border-color: var(--panel-slate-border) !important;
}
.grid > .card:nth-child(8n+8)::before,
.grid-2 > .card:nth-child(8n+8)::before,
.grid-3 > .card:nth-child(8n+8)::before,
.grid-4 > .card:nth-child(8n+8)::before { background: rgb(100,116,139); }

/* Les gros tableaux restent lisibles mais plus jolis */
.table-card,
.prospects-card,
.card:has(table),
section.card:has(table) {
  background:
    linear-gradient(135deg, rgba(255,255,255,.82), color-mix(in srgb, var(--accent-soft) 38%, rgba(255,255,255,.72))) !important;
  border-color: color-mix(in srgb, var(--accent-border) 45%, rgba(255,255,255,.55)) !important;
}

.table-card::before,
.prospects-card::before,
.card:has(table)::before,
section.card:has(table)::before {
  background: var(--accent) !important;
}

/* Les petites cartes de réglages / modules ont un style plus "bouton premium" */
.settings-card,
.module-card,
.action-card {
  min-height: 120px;
}

/* Titres plus lisibles sur fond coloré */
.card-title,
.card h2,
.card h3,
.kpi-card h2,
.kpi-card h3 {
  color: color-mix(in srgb, var(--text) 88%, var(--accent-deep)) !important;
}

/* Les blocs internes restent blancs pour la lecture */
.detail-list > div,
.nvx-alert,
.empty-real-data {
  background: rgba(255,255,255,.66) !important;
  border-color: rgba(255,255,255,.72) !important;
}

/* Mode foncé : garder l’effet coloré sans devenir criard */
html[data-theme="dark"] .card,
html[data-theme="dark"] .kpi-card,
html[data-theme="dark"] .table-card,
html[data-theme="dark"] .prospects-card,
html[data-theme="dark"] section.card,
html[data-theme="dark"] .card-pad {
  background:
    linear-gradient(135deg, rgba(30,41,59,.78), color-mix(in srgb, var(--accent-deep) 22%, rgba(15,23,42,.72))) !important;
  border-color: rgba(255,255,255,.12) !important;
}


/* ============================================================
   NOVEX v9.1 — Nettoyage esthétique après test
   Objectif : revenir à une interface professionnelle, lisible,
   claire, avec couleurs élégantes mais pas envahissantes.
   ============================================================ */

:root {
  --novex-header-1: #10234f;
  --novex-header-2: #174b83;
  --novex-header-3: #1f6fa8;

  --novex-page-bg-1: #f4f9ff;
  --novex-page-bg-2: #eaf4ff;
  --novex-page-bg-3: #f8fbff;

  --novex-card-bg: rgba(255,255,255,.86);
  --novex-card-bg-soft: rgba(255,255,255,.78);
  --novex-card-border: rgba(37,99,235,.14);
  --novex-card-shadow: 0 16px 42px rgba(15,23,42,.09);
}

/* Fond général plus propre, moins orange, moins envahissant */
html,
body {
  background:
    radial-gradient(circle at 15% 8%, rgba(186,230,253,.48), transparent 30%),
    radial-gradient(circle at 88% 10%, rgba(219,234,254,.50), transparent 34%),
    linear-gradient(135deg, var(--novex-page-bg-1), var(--novex-page-bg-2) 55%, var(--novex-page-bg-3)) !important;
}

/* Barre du haut lisible et cohérente avec la sidebar */
.topbar,
.header,
.app-header,
header {
  background: linear-gradient(135deg, var(--novex-header-1), var(--novex-header-2) 58%, var(--novex-header-3)) !important;
  color: #fff !important;
  border-bottom: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 12px 34px rgba(15,23,42,.20) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Sidebar dans la même famille que la topbar */
.sidebar,
.aside,
.side-nav,
nav.sidebar {
  background: linear-gradient(180deg, var(--novex-header-1), var(--novex-header-2) 70%, var(--novex-header-3)) !important;
  box-shadow: 10px 0 34px rgba(15,23,42,.18) !important;
}

/* Textes de la barre haute bien visibles */
.topbar *,
.header *,
.app-header *,
header * {
  color: #fff !important;
}

.topnav a {
  color: rgba(255,255,255,.82) !important;
  background: transparent !important;
}

.topnav a:hover,
.topnav a.active {
  color: #fff !important;
  background: rgba(255,255,255,.14) !important;
}

/* Le N ne doit plus être un carré violet qui choque */
.brand-mark {
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 8px 22px rgba(15,23,42,.18) !important;
}

.avatar {
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.24) !important;
}

/* Boutons topbar lisibles */
.top-pill,
.icon-pill,
.select-pill,
#novexUserChip {
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  color: #fff !important;
}

/* Bouton couleur toujours visible */
.novex-theme-wrap {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 20000 !important;
}

.novex-theme-wheel {
  width: 38px !important;
  height: 38px !important;
  border: 2px solid rgba(255,255,255,.88) !important;
  box-shadow: 0 10px 25px rgba(0,0,0,.20), inset 0 0 0 3px rgba(255,255,255,.45) !important;
}

/* Si la topbar masque le bouton couleur, on le remet en flottant discret */
body:not(:has(.novex-theme-wheel))::after {
  content: "";
}

/* Conteneurs : on annule l'effet trop multicolore de v9.0 */
.card,
.kpi-card,
.table-card,
.prospects-card,
section.card,
.card-pad,
.float-window,
.confirmateur-pop {
  border-radius: 20px !important;
  background:
    linear-gradient(135deg, var(--novex-card-bg), var(--novex-card-bg-soft)) !important;
  border: 1px solid var(--novex-card-border) !important;
  box-shadow: var(--novex-card-shadow) !important;
  backdrop-filter: blur(14px) saturate(1.08) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.08) !important;
}

/* Supprime les gros ronds colorés automatiques trop visibles */
.card::after,
.kpi-card::after,
.table-card::after,
.prospects-card::after,
section.card::after,
.card-pad::after {
  display: none !important;
}

/* Garde seulement un petit accent discret */
.card::before,
.kpi-card::before,
.table-card::before,
.prospects-card::before,
section.card::before,
.card-pad::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 3px;
  border-radius: 0 999px 999px 0;
  background: var(--accent, #2563eb);
  opacity: .55;
  pointer-events: none;
}

/* Petites variations très discrètes uniquement dans les grilles */
.grid > .card:nth-child(4n+1),
.grid-2 > .card:nth-child(4n+1),
.grid-3 > .card:nth-child(4n+1),
.grid-4 > .card:nth-child(4n+1) {
  background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(239,246,255,.72)) !important;
}

.grid > .card:nth-child(4n+2),
.grid-2 > .card:nth-child(4n+2),
.grid-3 > .card:nth-child(4n+2),
.grid-4 > .card:nth-child(4n+2) {
  background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(240,253,250,.62)) !important;
}

.grid > .card:nth-child(4n+3),
.grid-2 > .card:nth-child(4n+3),
.grid-3 > .card:nth-child(4n+3),
.grid-4 > .card:nth-child(4n+3) {
  background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(245,243,255,.62)) !important;
}

.grid > .card:nth-child(4n+4),
.grid-2 > .card:nth-child(4n+4),
.grid-3 > .card:nth-child(4n+4),
.grid-4 > .card:nth-child(4n+4) {
  background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,247,237,.60)) !important;
}

/* Les cartes KPI doivent rester propres */
.kpi-card {
  background: rgba(255,255,255,.84) !important;
}

/* Tableaux : très lisibles */
.table-card,
.prospects-card,
.card:has(table),
section.card:has(table) {
  background: rgba(255,255,255,.88) !important;
}

/* Encart session active : plus bouton blanc */
.role-notice,
#novexRoleNotice {
  background: rgba(255,255,255,.58) !important;
  border: 1px solid rgba(37,99,235,.16) !important;
  border-left: 3px solid var(--accent, #2563eb) !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.06) !important;
  border-radius: 16px !important;
  color: var(--text) !important;
  cursor: default !important;
}

/* Page-head plus propre */
.page-head {
  color: var(--text) !important;
}

.page-head h1 {
  color: #0f234a !important;
}

.page-head .subtitle {
  color: rgba(15,35,74,.72) !important;
}

/* Correctif du fond orange restant */
body[data-novex-theme="orange"],
body[data-novex-theme="solid-orange"] {
  --novex-page-bg-1: #fff8f1;
  --novex-page-bg-2: #fff1df;
  --novex-page-bg-3: #fffaf3;
  --novex-header-1: #7c2d12;
  --novex-header-2: #c2410c;
  --novex-header-3: #ea580c;
}

body[data-novex-theme="sky"],
body[data-novex-theme="ocean"],
body[data-novex-theme="solid-blue"] {
  --novex-page-bg-1: #f4f9ff;
  --novex-page-bg-2: #e8f4ff;
  --novex-page-bg-3: #f8fbff;
  --novex-header-1: #10234f;
  --novex-header-2: #174b83;
  --novex-header-3: #1f6fa8;
}

body[data-novex-theme="green"],
body[data-novex-theme="solid-emerald"] {
  --novex-page-bg-1: #f3fff8;
  --novex-page-bg-2: #e7f8ef;
  --novex-page-bg-3: #f8fffb;
  --novex-header-1: #064e3b;
  --novex-header-2: #047857;
  --novex-header-3: #059669;
}

body[data-novex-theme="violet"],
body[data-novex-theme="rose"] {
  --novex-page-bg-1: #fbf8ff;
  --novex-page-bg-2: #f0eaff;
  --novex-page-bg-3: #fff8fc;
  --novex-header-1: #3b0764;
  --novex-header-2: #5b21b6;
  --novex-header-3: #7c3aed;
}

body[data-novex-theme="gold"] {
  --novex-page-bg-1: #fffdf3;
  --novex-page-bg-2: #fff7d6;
  --novex-page-bg-3: #fffef8;
  --novex-header-1: #713f12;
  --novex-header-2: #a16207;
  --novex-header-3: #ca8a04;
}

body[data-novex-theme="graphite"] {
  --novex-page-bg-1: #f8fafc;
  --novex-page-bg-2: #edf2f7;
  --novex-page-bg-3: #ffffff;
  --novex-header-1: #0f172a;
  --novex-header-2: #334155;
  --novex-header-3: #475569;
}


/* NOVEX v9.5 — Sécurité téléphone */
.masked-phone {
  user-select: text;
  font-variant-numeric: tabular-nums;
}
a[data-open-dialer="true"] {
  cursor: pointer;
}
