:root {
  --bg: #edf7f8;
  --panel: #ffffff;
  --panel-soft: #f0fbfb;
  --soft: #e8f7f7;
  --line: #cfe5e7;
  --line-strong: #b7d4d8;
  --text: #17313a;
  --muted: #667985;
  --primary: #0b7b83;
  --primary-dark: #075f66;
  --primary-soft: #e8f7f7;
  --accent: #d8733f;
  --accent-soft: #fff1e8;
  --danger: #b95024;
  --success: #16805d;
  --warning: #9b5122;
  --shadow: 0 14px 34px rgba(11, 123, 131, .08);
  --shadow-strong: 0 18px 50px rgba(11, 123, 131, .14);
  --radius: 16px;
  --radius-lg: 20px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body {
  min-height: 100%;
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  line-height: 1.42;
  background: linear-gradient(180deg, #f6fbfc 0%, var(--bg) 100%);
  color: var(--text);
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { opacity: .55; cursor: not-allowed; }

.app-shell { min-height: 100vh; }
.loading-card {
  margin: 16vh auto;
  width: min(92vw, 430px);
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, #fff 0%, #fbffff 100%);
  color: var(--primary-dark);
  box-shadow: var(--shadow-strong);
  display: grid;
  gap: 8px;
}
.loading-card strong { font-size: 22px; }
.loading-card span { color: var(--muted); }

.layout {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
}
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
  background: #fff;
  color: var(--text);
  border-right: 1px solid var(--line);
  padding: 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 8px 18px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 2px;
}
.brandLogo {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  object-fit: contain;
  display: block;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 10px 24px rgba(11, 123, 131, .12);
  flex: 0 0 auto;
}
.brand strong {
  display: block;
  color: var(--primary-dark);
  font-size: 18px;
  letter-spacing: .01em;
  line-height: 1.15;
}
.brand span {
  display: block;
  color: var(--accent);
  font-size: 12px;
  font-weight: 800;
  margin-top: 2px;
}
.brand small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  margin-top: 2px;
}

.nav { display: grid; gap: 3px; }
.nav button {
  width: 100%;
  border: 0;
  border-radius: 10px;
  padding: 10px 11px;
  background: transparent;
  color: var(--primary-dark);
  text-align: left;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background .15s ease, box-shadow .15s ease, color .15s ease;
}
.nav button:hover {
  background: var(--primary-soft);
  color: var(--primary-dark);
}
.nav button.active {
  background: var(--primary-soft);
  color: var(--primary-dark);
  font-weight: 900;
  box-shadow: inset 4px 0 0 var(--accent);
}
.navIcon {
  width: 22px;
  height: 22px;
  border-radius: 7px;
  display: grid;
  place-items: center;
  background: var(--primary-soft);
  color: var(--primary-dark);
  border: 1px solid var(--line);
  font-size: 11px;
  font-weight: 900;
  flex: 0 0 auto;
}
.nav button.active .navIcon,
.nav button:hover .navIcon {
  background: #fff;
  border-color: var(--line-strong);
}
.sidebar-footer {
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding-top: 14px;
  display: grid;
  gap: 10px;
}
.user-pill {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--primary-soft);
  color: var(--muted);
  padding: 12px;
  display: grid;
  gap: 4px;
}
.user-pill strong { color: var(--primary-dark); }
.user-pill small { color: var(--muted); font-weight: 700; }

.main {
  padding: 22px;
  min-width: 0;
  max-width: 1280px;
  width: 100%;
}
.header {
  background: rgba(255, 255, 255, .94);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 16px 18px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
}
.header h1 {
  margin: 0;
  color: var(--primary-dark);
  font-size: 22px;
  line-height: 1.2;
}
.header p {
  margin: 5px 0 0;
  color: var(--accent);
  font-size: 13px;
  font-weight: 700;
}
.grid { display: grid; gap: 16px; }
.grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.card {
  background: linear-gradient(180deg, #fff 0%, #fbffff 100%);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
  box-shadow: var(--shadow);
  color: var(--text);
}
button.card { border: 1px solid var(--line); }
button.card:hover,
.card.interactive:hover {
  transform: translateY(-1px);
  border-color: var(--primary);
  box-shadow: 0 16px 36px rgba(11, 123, 131, .14);
}
.card.soft {
  background: var(--primary-soft);
  box-shadow: none;
}
.card h2,
.card h3,
.item h3 {
  margin: 0 0 10px;
  color: var(--primary-dark);
}
.card h2 { font-size: 18px; }
.card h3,
.item h3 { font-size: 15px; }
.muted { color: var(--muted); }
.small-text { font-size: 12px; line-height: 1.45; }

.kpi {
  text-align: left;
  display: grid;
  gap: 8px;
  border-top: 3px solid var(--accent) !important;
  min-height: 132px;
}
.kpi strong {
  color: var(--primary-dark);
  font-size: 27px;
  line-height: 1;
}
.kpi span {
  color: var(--text);
  font-weight: 900;
}
.kpi small { color: var(--muted); }

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 12px;
  font-weight: 900;
  background: var(--primary-soft);
  color: var(--primary-dark);
  border: 1px solid var(--line);
  white-space: nowrap;
}
.badge.success { background: #e8f7f0; color: var(--success); border-color: #c7eadc; }
.badge.warning { background: var(--accent-soft); color: var(--warning); border-color: #f4c7ad; }
.badge.danger { background: #f7ebe7; color: var(--danger); border-color: #f0c8b8; }
.version-badge { margin: 8px 0 12px; }

.actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; align-items: center; }
.btn {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 13px;
  background: #fff;
  color: var(--primary-dark);
  font-weight: 800;
  box-shadow: none;
}
.btn:hover { background: var(--primary-soft); border-color: var(--primary); }
.btn.primary {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
  box-shadow: 0 8px 18px rgba(11, 123, 131, .18);
}
.btn.primary:hover { background: var(--primary-dark); }
.btn.danger {
  background: #f7ebe7;
  color: var(--danger);
  border-color: #f0c8b8;
}
.btn.ghost { background: #fff; color: var(--primary-dark); }

.form-grid { display: grid; gap: 12px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field { display: grid; gap: 6px; }
.field label {
  color: var(--muted);
  font-weight: 800;
  font-size: 12px;
}
.field input,
.field select,
.field textarea {
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  padding: 10px 11px;
  background: rgba(255, 255, 255, .76);
  color: var(--text);
  outline: none;
}
.field input::placeholder,
.field textarea::placeholder { color: rgba(23, 49, 58, .52); }
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(11, 123, 131, .12);
}
.field textarea { min-height: 92px; resize: vertical; }

.check-line {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--text);
}
.check-line input { width: auto; margin-top: 3px; }
.clean-list { margin: 0; padding-left: 18px; display: grid; gap: 8px; }

.list { display: grid; gap: 12px; }
.item {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  background: #fff;
  display: grid;
  gap: 8px;
  box-shadow: 0 12px 30px rgba(11, 123, 131, .06);
}
.item-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.meta { display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 13px; }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { border-bottom: 1px solid var(--line); text-align: left; padding: 10px 9px; vertical-align: top; font-size: 13px; }
th { background: var(--primary-soft); color: #587178; text-transform: uppercase; letter-spacing: .04em; font-size: 12px; }
tr:last-child td { border-bottom: 0; }
.empty { padding: 22px; border-radius: 16px; background: #fbffff; border: 1px dashed var(--line-strong); color: var(--muted); text-align: center; }

.toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  background: var(--text);
  color: white;
  border-radius: 12px;
  padding: 12px 14px;
  box-shadow: var(--shadow-strong);
  max-width: 360px;
  z-index: 50;
}

.login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 22px;
  background: linear-gradient(135deg, #ffffff 0%, #e8f7f7 52%, #fff1e8 100%);
}
.login-box {
  width: min(100%, 490px);
  background: rgba(255, 255, 255, .96);
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 26px;
  box-shadow: var(--shadow-strong);
}
.login-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 8px;
}
.login-brand .brandLogo { width: 64px; height: 64px; border-radius: 18px; }
.login-brand h1 { margin: 0; color: var(--primary-dark); font-size: 28px; line-height: 1.1; }
.login-brand p { margin: 4px 0 0; color: var(--accent); font-weight: 800; }
.login-intro { color: var(--muted); margin: 0 0 16px; }
.quick-logins { display: grid; gap: 8px; margin-top: 14px; }
.quick-logins .btn { text-align: left; }

.profile-card { display: flex; gap: 16px; align-items: center; }
.profile-card .profile-photo { flex-shrink: 0; }
.profile-photo {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: 24px;
  border: 1px solid var(--line);
  background: var(--primary-soft);
  box-shadow: 0 10px 24px rgba(11, 123, 131, .08);
  flex: 0 0 auto;
}
.profile-photo.placeholder {
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--muted);
  padding: 10px;
  font-size: 12px;
}

@media (max-width: 980px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar {
    position: static;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding: 14px;
    box-shadow: 0 16px 40px rgba(11, 123, 131, .10);
  }
  .brand { padding-bottom: 12px; margin-bottom: 0; }
  .nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nav button { min-height: 44px; }
  .sidebar-footer { margin-top: 0; }
  .main { padding: 14px; }
  .header { align-items: flex-start; flex-direction: column; padding: 14px; }
  .grid.cols-2,
  .grid.cols-3,
  .grid.cols-4,
  .form-grid.two { grid-template-columns: 1fr; }
  .item-top { display: grid; }
  .toast { left: 16px; right: 16px; bottom: 16px; max-width: none; }
}

@media (max-width: 560px) {
  body { font-size: 13px; }
  .nav { grid-template-columns: 1fr; }
  .brandLogo { width: 42px; height: 42px; }
  .login-brand { align-items: flex-start; }
  .login-brand .brandLogo { width: 56px; height: 56px; }
  .profile-card { display: grid; }
  .actions .btn { flex: 1 1 auto; }
}

/* V2.0.5 — interface complète préparée */
.navGrouped { gap: 12px; }
.navSection { display: grid; gap: 3px; }
.navTitle {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 8px 8px 3px;
}
.adminGroup { margin-top: 16px; }
.adminGroup h3 { margin: 0 0 10px; color: var(--primary-dark); }
.adminCommandGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.adminCommand {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(180deg, #fff 0%, #fbffff 100%);
  padding: 12px;
  text-align: left;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 4px 10px;
  align-items: start;
  color: var(--text);
}
.adminCommand:hover { border-color: var(--primary); background: var(--primary-soft); }
.adminCommandIcon {
  grid-row: span 2;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--primary-soft);
  border: 1px solid var(--line);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 900;
}
.adminCommand strong { color: var(--primary-dark); }
.adminCommand small { color: var(--muted); line-height: 1.3; }
@media (max-width: 980px) {
  .adminCommandGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .adminCommandGrid { grid-template-columns: 1fr; }
}

/* V2.0.6 — reprise plus fidèle de la force V1 + socle matching figé */
.connected-title {
  text-align: center;
  color: var(--primary-dark);
  display: grid;
  gap: 2px;
  min-width: 280px;
}
.connected-title strong { font-size: 18px; letter-spacing: .03em; }
.connected-title small { color: var(--muted); font-weight: 800; }
.back-home {
  margin: -4px 0 16px;
  min-width: 280px;
  justify-content: flex-start;
  border-left: 4px solid var(--accent);
  box-shadow: var(--shadow);
}
.request-builder { padding: 0; overflow: hidden; }
.request-builder > * { margin: 16px; }
.request-builder-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.request-builder-top h2 { margin-bottom: 4px; }
.request-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.request-type-card {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  text-align: left;
  color: var(--text);
  display: grid;
  gap: 9px;
  min-height: 120px;
}
.request-type-card.active,
.request-type-card:hover {
  border-color: var(--primary);
  background: var(--primary-soft);
  box-shadow: inset 0 0 0 1px rgba(11, 123, 131, .22);
}
.request-type-card span,
.mini-icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: var(--primary);
  color: #fff;
  font-weight: 900;
  display: grid;
  place-items: center;
}
.request-type-card strong { color: var(--primary-dark); font-size: 16px; }
.request-type-card small { color: var(--muted); }
.request-type-grid.has-selection-focus .request-type-card.is-inactive {
  opacity: .42;
  filter: saturate(.32);
  transform: scale(.985);
  box-shadow: none;
}
.request-type-grid.has-selection-focus .request-type-card.is-inactive:hover {
  opacity: .64;
  filter: saturate(.5);
}
.request-type-grid.has-selection-focus .request-type-card.active {
  opacity: 1;
  filter: none;
  transform: translateY(-1px);
}
.compact-request-form {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.search-input {
  max-width: 240px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
}
.mini-ann-card {
  min-width: 220px;
  max-width: 320px;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: linear-gradient(180deg, #fff 0%, #fbffff 100%);
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.mini-ann-card strong { display: block; color: var(--primary-dark); font-size: 14px; }
.mini-ann-card small { display: block; color: var(--muted); margin-top: 4px; }
.table-actions { margin-top: 0; gap: 7px; }
.table-actions .btn { padding: 8px 10px; min-width: 92px; }
.request-table th:last-child,
.request-table td:last-child { min-width: 260px; }
.work-target-field { transition: opacity .16s ease; }
@media (max-width: 980px) {
  .connected-title { text-align: left; min-width: 0; }
  .back-home { min-width: 0; width: 100%; }
  .request-builder-top { align-items: flex-start; flex-direction: column; }
  .request-type-grid { grid-template-columns: 1fr; }
  .search-input { max-width: none; width: 100%; }
}

/* V2.0.7 — bouton explicite de modification profil/cabinet */
.header-actions { margin-top: 0; justify-content: flex-end; }
.edit-panel.is-hidden { display: none; }
.edit-panel {
  border-left: 4px solid var(--accent);
}
@media (max-width: 980px) {
  .header-actions { justify-content: stretch; width: 100%; }
  .header-actions .btn { flex: 1 1 auto; }
}

/* V2.0.9 — inventaire fonctions + carte monde stratégique */
.world-map-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: linear-gradient(180deg, #f8ffff 0%, #ffffff 100%);
  padding: 14px;
  margin: 14px 0;
  box-shadow: var(--shadow-soft);
}
.world-map-card svg {
  width: 100%;
  display: block;
  min-height: 240px;
}
.world-ocean { fill: #eaf8f8; }
.world-land {
  stroke: rgba(9, 83, 88, .28);
  stroke-width: 2;
}
.world-land.core { fill: #0b7b83; opacity: .9; }
.world-land.prepared { fill: #e96c2c; opacity: .76; }
.world-land.future { fill: #9ccfd0; opacity: .72; }
.map-pin { stroke: #fff; stroke-width: 3; }
.core-pin { fill: #064e54; }
.prepared-pin { fill: #d95f28; }
.future-pin { fill: #6d9fa0; }
.map-label {
  font: 700 18px Inter, Arial, sans-serif;
  fill: #074f55;
}
.world-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.world-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.world-legend i {
  width: 14px;
  height: 14px;
  display: inline-block;
  border-radius: 4px;
}
.legend-core { background: #0b7b83; }
.legend-prepared { background: #e96c2c; }
.legend-future { background: #9ccfd0; }
@media (max-width: 700px) {
  .world-map-card svg { min-height: 180px; }
  .map-label { font-size: 14px; }
}

/* V2.0.10 — PWA installable */
.installAppBtn {
  width: 100%;
  margin-top: 8px;
}
.pwa-help {
  display: block;
  margin: 4px 0 8px;
  color: var(--muted, #6b7280);
  font-size: 0.74rem;
  line-height: 1.25;
}
.pwa-status {
  margin: 8px 0;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(0, 120, 141, 0.08);
  color: #00788d;
  font-weight: 700;
  font-size: 0.78rem;
  text-align: center;
}

/* V2.0.11 — reprise V1 : couleurs métier + dentiste CA/rétrocession */
.hidden-field { display: none !important; }
.request-type-card.request-type-assistante { border-color: #a8dfe2; background: linear-gradient(135deg,#f1fbfb 0%,#fff 78%); }
.request-type-card.request-type-assistante span { background: #0f7f83; }
.request-type-card.request-type-assistante.active,
.request-type-card.request-type-assistante:hover { border-color: #0f7f83; background: #e9f8f8; box-shadow: 0 0 0 3px rgba(15,127,131,.12); }
.request-type-card.request-type-dentiste { border-color: #ffd0b0; background: linear-gradient(135deg,#fff6ee 0%,#fff 78%); }
.request-type-card.request-type-dentiste span { background: #d66f2f; }
.request-type-card.request-type-dentiste.active,
.request-type-card.request-type-dentiste:hover { border-color: #d66f2f; background: #fff2e9; box-shadow: 0 0 0 3px rgba(214,111,47,.14); }
.request-type-card.request-type-dentiste strong { color: #a24b15; }
.request-type-card.request-type-assistante strong { color: #0f676d; }
.request-table tr.demandeMissionRow.assistante td { background: #fbffff; }
.request-table tr.demandeMissionRow.dentiste td { background: #fffaf6; }
.request-table tr.demandeMissionRow.collaboration td { background: #f8faff; }
.request-table tr.demandeMissionRow.assistante td:first-child { box-shadow: inset 5px 0 0 #0f7f83; }
.request-table tr.demandeMissionRow.dentiste td:first-child { box-shadow: inset 5px 0 0 #d66f2f; }
.request-table tr.demandeMissionRow.collaboration td:first-child { box-shadow: inset 5px 0 0 #5867b3; }
.mini-ann-card.assistante { background: linear-gradient(135deg,#e7f8f8 0%,#fff 78%); border-color: #9bdadd; }
.mini-ann-card.dentiste { background: linear-gradient(135deg,#fff0e4 0%,#fff 78%); border-color: #ffc69f; }
.mini-ann-card.collaboration { background: linear-gradient(135deg,#f3f6ff 0%,#fff 78%); border-color: #c8d7ff; }
.mini-ann-card.assistante .mini-icon { background: #0f7f83; }
.mini-ann-card.dentiste .mini-icon { background: #d66f2f; }
.mini-ann-card.collaboration .mini-icon { background: #5867b3; }
.demandeTypeBadge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 14px;
  border: 1px solid var(--line);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.demandeTypeBadge .demandeTypeIcon {
  width: 24px;
  height: 24px;
  border-radius: 9px;
  display: inline-grid;
  place-items: center;
  color: #fff;
  font-weight: 900;
  line-height: 1;
}
.demandeTypeBadge.assistante { background: #e9f8f8; color: #0f676d; border-color: #a8dfe2; }
.demandeTypeBadge.assistante .demandeTypeIcon { background: #0f7f83; }
.demandeTypeBadge.dentiste { background: #fff2e9; color: #a24b15; border-color: #ffd0b0; }
.demandeTypeBadge.collaboration { background: #eef2ff; color: #36428b; border-color: #c8d7ff; }
.demandeTypeBadge.dentiste .demandeTypeIcon { background: #d66f2f; }
.demandeTypeBadge.collaboration .demandeTypeIcon { background: #5867b3; }
.remuneration-lines { display: inline-block; line-height: 1.35; font-weight: 700; }
.announcement-card.assistante { border-left: 5px solid #0f7f83; background: linear-gradient(180deg,#f6ffff 0%,#fff 78%); }
.announcement-card.dentiste { border-left: 5px solid #d66f2f; background: linear-gradient(180deg,#fff8f1 0%,#fff 78%); }
@media (max-width: 700px) {
  .demandeTypeBadge { white-space: normal; justify-content: flex-start; }
  .request-table tr.demandeMissionRow.assistante,
  .request-table tr.demandeMissionRow.dentiste,
  .request-table tr.demandeMissionRow.collaboration,
  .request-table tr.demandeMissionRow.collaboration { border-radius: 16px; }
}


/* V2.0.13 — retour tableau de bord global façon V1 */
.global-back-home {
  margin: 0 0 16px;
  min-width: 280px;
  justify-content: flex-start;
  border-left: 4px solid var(--accent);
  box-shadow: var(--shadow);
  background: #fff;
}
.global-back-home:hover {
  background: var(--primary-soft);
  border-color: var(--primary);
}
@media (max-width: 604px) {
  .global-back-home { min-width: 0; width: 100%; }
}

/* V2.0.17 — rendu documents côté utilisateur préparé mais non activé */
.user-documents-preview {
  border-left: 4px solid var(--accent);
  background: linear-gradient(135deg, #fffdf9 0%, #ffffff 76%);
}
.document-preview-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.document-option-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin: 14px 0;
}
.document-option-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(15, 127, 131, 0.06);
}
.document-option-card h3 {
  margin: 8px 0 6px;
  color: var(--primary-dark);
}
.document-option-card p {
  min-height: 42px;
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.35;
}
.document-option-icon {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 14px;
  background: var(--primary-soft);
  color: var(--primary-dark);
  font-size: 0.72rem;
  font-weight: 900;
}
.document-source-preview {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.document-field-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.document-field {
  border: 1px solid #cfe8e9;
  border-radius: 14px;
  padding: 10px 12px;
  background: #f8ffff;
}
.document-field span {
  display: block;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  margin-bottom: 3px;
}
.document-field strong {
  display: block;
  color: var(--text);
  font-size: 0.9rem;
}
.document-field.missing {
  border-color: #ffd0b0;
  background: #fff8f1;
}
.document-field.missing strong { color: #a24b15; }
.document-option-card button:disabled,
.user-documents-preview button:disabled {
  opacity: 0.62;
  cursor: not-allowed;
}
@media (max-width: 700px) {
  .document-preview-head { flex-direction: column; }
  .document-option-grid,
  .document-field-grid { grid-template-columns: 1fr; }
}
.notice {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px 14px;
  margin: 12px 0;
  background: #f8ffff;
  color: var(--text);
}
.notice.warning {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #7c2d12;
}
.warning-text { color: #a24b15 !important; }
.success-text { color: #057a55 !important; }
.generated-documents-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.generated-document-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
}
.contract-live-preview {
  border: 1px dashed #91d7da;
  border-radius: 18px;
  padding: 14px;
  background: #fbffff;
}
@media (max-width: 700px) {
  .generated-document-row { flex-direction: column; align-items: stretch; }
  .generated-document-row .actions { justify-content: stretch; }
}

/* V2.0.19 — tableau de bord cabinet repris façon V1 */
.grid.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dashboardHeaderV1 .headerAccount { text-align: center; display: grid; gap: 3px; color: var(--primary); }
.dashboardHeaderV1 .headerAccount strong { font-size: 20px; letter-spacing: .5px; }
.dashboardHeaderV1 .headerAccount small { color: var(--muted); font-weight: 700; }
.dashboardKpisV1 { margin-top: 10px; }
.kpiV1 { position: relative; min-height: 118px; border-top: 3px solid var(--accent); }
.kpiV1 .kpiIcon {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border-radius: 12px;
  background: #e8fbfb;
  border: 1px solid #bee9e8;
  color: var(--primary);
  font-weight: 900;
}
.dashboardTableCard { margin-top: 16px; }
.dashboardLatestTable th,
.dashboardLatestTable td { vertical-align: top; }
@media (max-width: 1180px) { .grid.cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .grid.cols-5 { grid-template-columns: 1fr; } .dashboardHeaderV1 .headerAccount { text-align: left; } }


/* V2.0.20 — sélection intelligente reprise V1 */
.selection-toolbar-v1 {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 14px;
  margin-bottom: 10px;
}
.selection-select-v1 { flex: 1 1 420px; max-width: 520px; }
.selection-actions-v1 { margin-top: 0; justify-content: flex-end; }
.selection-summary-v1 {
  margin: 10px 0 12px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--accent-soft);
  border: 1px solid #f4c7ad;
  color: var(--warning);
  line-height: 1.45;
}
.selection-table-wrap-v1 { margin-top: 8px; }
.selection-table-v1 td:first-child { min-width: 260px; }
.selection-table-v1 td:last-child { min-width: 430px; }
.selection-row-actions-v1 { margin-top: 0; gap: 7px; }
.selection-row-actions-v1 .btn { min-width: 94px; padding: 8px 10px; }
.profile-preview-v1 { margin-top: 14px; }
@media (max-width: 980px) {
  .selection-toolbar-v1 { align-items: stretch; flex-direction: column; }
  .selection-select-v1 { max-width: none; }
  .selection-actions-v1 { justify-content: stretch; }
  .selection-actions-v1 .btn { flex: 1 1 auto; }
  .selection-table-v1 td:last-child { min-width: 300px; }
}

/* V2.0.22 — annonces reçues reprises façon V1 */
.received-v1-card h2 {
  margin-bottom: 14px;
}
.received-radius-banner {
  background: rgba(0, 124, 128, 0.08);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 14px;
}
.received-v1-table-wrap {
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
}
.received-v1-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}
.received-v1-table th {
  background: rgba(0, 124, 128, 0.09);
  color: #4f6570;
  text-align: left;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 11px 12px;
}
.received-v1-table td {
  padding: 12px;
  vertical-align: top;
  border-top: 1px solid var(--border);
}
.received-v1-row.assistante {
  border-left: 4px solid var(--primary);
}
.received-v1-row.dentiste {
  border-left: 4px solid var(--orange);
}
.received-actions {
  display: grid;
  gap: 8px;
  min-width: 160px;
}
.received-actions .btn {
  width: 100%;
}
@media (max-width: 900px) {
  .received-v1-table thead { display: none; }
  .received-v1-table, .received-v1-table tbody, .received-v1-table tr, .received-v1-table td { display: block; width: 100%; }
  .received-v1-table tr { border-top: 1px solid var(--border); }
  .received-v1-table td { border-top: none; }
}

/* V2.0.29 — messagerie popup V1 */
.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(23, 49, 58, .42);
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 22px;
}
.message-modal {
  width: min(92vw, 760px);
  max-height: 86vh;
  overflow: auto;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(23, 49, 58, .24);
  padding: 18px;
  display: grid;
  gap: 14px;
}
.message-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
}
.message-modal-head h2 { margin: 0; color: var(--primary-dark); font-size: 20px; }
.message-modal-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; font-weight: 700; }
.icon-btn {
  min-width: 38px;
  height: 38px;
  padding: 0;
  display: grid;
  place-items: center;
  font-size: 20px;
}
.message-modal-status { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.message-modal-status small { color: var(--muted); }
.message-thread {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(226, 245, 245, .86), rgba(247, 252, 252, .96));
  padding: 14px;
  display: grid;
  gap: 12px;
  max-height: 300px;
  overflow: auto;
  scroll-behavior: smooth;
}
.message-empty {
  padding: 18px;
  border-radius: 12px;
  border: 1px dashed var(--line-strong);
  background: #fbffff;
  color: var(--muted);
  text-align: center;
}
.message-bubble {
  width: min(84%, 600px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px 14px;
  box-shadow: 0 12px 24px rgba(11, 123, 131, .07);
}
.message-bubble.theirs {
  justify-self: start;
  background: #fff7ef;
  border-color: rgba(216, 104, 42, .28);
  border-top-left-radius: 6px;
}
.message-bubble.mine {
  justify-self: end;
  background: #f0fbfb;
  border-color: rgba(11, 123, 131, .48);
  border-top-right-radius: 6px;
}
.message-bubble-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.message-author { color: var(--primary-dark); font-weight: 950; letter-spacing: .02em; text-transform: uppercase; font-size: 12px; }
.message-origin { border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 900; color: var(--muted); background: rgba(255,255,255,.78); border: 1px solid rgba(11,123,131,.12); }
.message-bubble.theirs .message-origin { color: #a34f1f; border-color: rgba(216,104,42,.18); }
.message-bubble p { margin: 0 0 8px; white-space: pre-wrap; line-height: 1.45; }
.message-bubble small { color: var(--muted); font-weight: 700; }
.message-compose { display: grid; gap: 8px; }
.message-compose label { color: var(--muted); font-weight: 900; font-size: 12px; }
.message-compose textarea { min-height: 112px; }

@media (max-width: 700px) {
  .modal-backdrop { padding: 10px; align-items: end; }
  .message-modal { width: 100%; max-height: 92vh; border-radius: 18px 18px 0 0; }
  .message-bubble { width: 100%; }
  .message-bubble-header { align-items: flex-start; }
}

.supabase-login-status {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 12px 0;
  padding: 10px 12px;
  border: 1px solid rgba(0, 120, 141, 0.18);
  border-radius: 14px;
  background: rgba(233, 248, 248, 0.75);
}
.supabase-login-status small { color: var(--muted); }


/* V2.0.34 — aide installation iPhone / PWA */
.pwa-login-box {
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid rgba(0, 120, 141, 0.22);
  border-radius: 16px;
  background: rgba(0, 120, 141, 0.06);
}
.pwa-login-box.success {
  background: rgba(21, 128, 61, 0.08);
  border-color: rgba(21, 128, 61, 0.24);
}
.pwa-login-box strong {
  display: block;
  color: #00515a;
  margin-bottom: 4px;
}
.pwa-login-box small {
  display: block;
  color: var(--muted, #5b6b7a);
  line-height: 1.4;
}
.pwa-login-box .installAppBtn {
  margin-top: 10px;
}


/* Dentamigo V2.0.35 — menu latéral mobile caché et déployable */
.mobile-menu-toggle,
.mobile-menu-backdrop {
  display: none;
}

@media (max-width: 860px) {
  body {
    padding-top: 58px;
  }

  .mobile-menu-toggle {
    display: inline-flex;
    position: fixed;
    top: max(10px, env(safe-area-inset-top));
    left: 12px;
    z-index: 1200;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(0, 120, 141, .22);
    border-radius: 999px;
    background: rgba(255,255,255,.96);
    color: #00515a;
    padding: 10px 14px;
    box-shadow: 0 10px 28px rgba(0, 61, 70, .12);
    font-weight: 800;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .mobile-menu-toggle span {
    font-size: 18px;
    line-height: 1;
  }

  .mobile-menu-toggle strong {
    font-size: 14px;
  }

  .mobile-menu-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1050;
    background: rgba(2, 26, 31, .36);
    backdrop-filter: blur(2px);
  }

  .mobile-menu-backdrop[hidden] {
    display: none !important;
  }

  .app-shell,
  .layout,
  .app-layout,
  main,
  .main,
  .content,
  .app-main {
    max-width: 100%;
  }

  .app-sidebar,
  .sidebar,
  .side-nav,
  .navigation,
  aside[data-sidebar],
  aside {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: min(86vw, 330px) !important;
    max-width: 330px !important;
    height: 100dvh !important;
    z-index: 1100 !important;
    transform: translateX(-105%) !important;
    transition: transform .22s ease !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    box-shadow: 18px 0 40px rgba(0, 61, 70, .18);
    border-right: 1px solid rgba(0, 120, 141, .16);
    background: #fff !important;
  }

  .app-sidebar.mobile-open,
  .sidebar.mobile-open,
  .side-nav.mobile-open,
  .navigation.mobile-open,
  aside.mobile-open {
    transform: translateX(0) !important;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }

  body:not(.mobile-menu-open) .app-sidebar,
  body:not(.mobile-menu-open) .sidebar,
  body:not(.mobile-menu-open) .side-nav,
  body:not(.mobile-menu-open) .navigation,
  body:not(.mobile-menu-open) aside[data-sidebar],
  body:not(.mobile-menu-open) aside {
    pointer-events: none;
  }

  body.mobile-menu-open .app-sidebar,
  body.mobile-menu-open .sidebar,
  body.mobile-menu-open .side-nav,
  body.mobile-menu-open .navigation,
  body.mobile-menu-open aside[data-sidebar],
  body.mobile-menu-open aside {
    pointer-events: auto;
  }

  .app-main,
  .main,
  .content,
  main {
    width: 100% !important;
    margin-left: 0 !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

@media (max-width: 420px) {
  .mobile-menu-toggle {
    left: 10px;
    padding: 9px 12px;
  }
}


/* Dentamigo V2.0.36 — smartphone : tableaux transformés en cartes, sans débordement horizontal */
@media (max-width: 760px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .main,
  .app-main,
  main,
  .content {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .card {
    overflow: hidden;
  }

  .table-wrap,
  .request-table-wrap,
  .received-v1-table-wrap,
  .selection-table-wrap-v1 {
    overflow-x: hidden !important;
    border-radius: 18px;
    background: transparent;
    border: 0;
  }

  .request-table,
  .request-table tbody,
  .request-table tr,
  .request-table td,
  .received-v1-table,
  .received-v1-table tbody,
  .received-v1-table tr,
  .received-v1-table td,
  .selection-table-v1,
  .selection-table-v1 tbody,
  .selection-table-v1 tr,
  .selection-table-v1 td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .request-table thead,
  .received-v1-table thead,
  .selection-table-v1 thead {
    display: none !important;
  }

  .request-table tr,
  .received-v1-table tr,
  .selection-table-v1 tr {
    margin: 0 0 14px;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 24px rgba(11, 123, 131, .07);
  }

  .request-table tr.demandeMissionRow.assistante td,
  .request-table tr.demandeMissionRow.dentiste td,
  .request-table tr.demandeMissionRow.collaboration td {
    background: #fff;
  }

  .request-table tr.demandeMissionRow.assistante,
  .received-v1-row.assistante {
    border-left: 5px solid #0f7f83;
  }

  .request-table tr.demandeMissionRow.dentiste,
  .request-table tr.demandeMissionRow.collaboration,
  .received-v1-row.dentiste {
    border-left: 5px solid #d66f2f;
  }

  .request-table tr.demandeMissionRow.assistante td:first-child,
  .request-table tr.demandeMissionRow.dentiste td:first-child,
  .request-table tr.demandeMissionRow.collaboration td:first-child {
    box-shadow: none !important;
  }

  .request-table td,
  .received-v1-table td,
  .selection-table-v1 td {
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    padding: 12px 14px !important;
    font-size: 14px;
  }

  .request-table td:last-child,
  .received-v1-table td:last-child,
  .selection-table-v1 td:last-child {
    border-bottom: 0 !important;
  }

  .request-table td::before,
  .received-v1-table td::before,
  .selection-table-v1 td::before {
    display: block;
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .request-table td:nth-child(1)::before { content: "Annonce"; }
  .request-table td:nth-child(2)::before { content: "Type"; }
  .request-table td:nth-child(3)::before { content: "Dates"; }
  .request-table td:nth-child(4)::before { content: "Rémunération"; }
  .request-table td:nth-child(5)::before { content: "Statut"; }
  .request-table td:nth-child(6)::before { content: "Actions"; }

  .received-v1-table td:nth-child(1)::before { content: "Cabinet"; }
  .received-v1-table td:nth-child(2)::before { content: "Annonce"; }
  .received-v1-table td:nth-child(3)::before { content: "Dates"; }
  .received-v1-table td:nth-child(4)::before { content: "Rémunération"; }
  .received-v1-table td:nth-child(5)::before { content: "Distance"; }
  .received-v1-table td:nth-child(6)::before { content: "Ma réponse"; }
  .received-v1-table td:nth-child(7)::before { content: "Actions"; }

  .selection-table-v1 td:nth-child(1)::before { content: "Profil"; }
  .selection-table-v1 td:nth-child(2)::before { content: "Métier"; }
  .selection-table-v1 td:nth-child(3)::before { content: "Rémunération"; }
  .selection-table-v1 td:nth-child(4)::before { content: "Réponse"; }
  .selection-table-v1 td:nth-child(5)::before { content: "Actions"; }

  .mini-ann-card,
  .demandeTypeBadge,
  .received-actions,
  .table-actions,
  .selection-row-actions-v1 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .mini-ann-card {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .mini-ann-card small,
  .mini-ann-card strong {
    overflow-wrap: anywhere;
  }

  .demandeTypeBadge {
    display: flex;
    justify-content: flex-start;
    white-space: normal !important;
  }

  .table-actions,
  .received-actions,
  .selection-row-actions-v1 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .table-actions .btn,
  .received-actions .btn,
  .selection-row-actions-v1 .btn,
  .selection-row-actions-v1 button {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center;
  }

  .request-builder-top {
    gap: 12px;
  }

  .request-builder-top h2 {
    line-height: 1.15;
  }

  .search-input {
    width: 100%;
    max-width: none;
  }

  .request-table th:last-child,
  .request-table td:last-child,
  .selection-table-v1 td:first-child,
  .selection-table-v1 td:last-child {
    min-width: 0 !important;
  }
}

/* Ajustement du bouton menu pour éviter qu'il gêne les champs en haut de page */
@media (max-width: 860px) {
  body {
    padding-top: 66px;
  }

  .mobile-menu-toggle {
    top: max(8px, env(safe-area-inset-top));
  }
}


/* Dentamigo V2.0.40 — compteurs visibles et actualisation dashboard */
.dashboardRefreshBtn {
  margin-top: 8px;
  padding: 7px 12px;
  min-height: auto;
  font-size: 13px;
}

.nav button {
  position: relative;
}

.navBadge {
  margin-left: auto;
  min-width: 22px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
  background: #d86f31;
  color: white;
  font-weight: 900;
  font-size: 12px;
  line-height: 1;
  box-shadow: 0 6px 14px rgba(216, 111, 49, .22);
}

.nav button.active .navBadge {
  background: #0f7f83;
}

@media (max-width: 760px) {
  .dashboardRefreshBtn {
    width: 100%;
    margin-top: 10px;
  }

  .headerAccount.compact {
    align-items: stretch;
  }
}


/* Dentamigo V2.0.42 — fiche détail annonce */
.announcementDetailPanel {
  margin: 0 0 16px;
  border-left: 5px solid #0f7f83;
}

.announcementDetailPanel.dentiste {
  border-left-color: #d66f2f;
}

.detailHeader {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.detailHeader h2 {
  margin: 10px 0 4px;
}

.detailGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.detailGrid > div,
.detailDescription {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(241, 251, 251, .55);
  padding: 12px 14px;
}

.detailGrid small,
.detailDescription small {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 11px;
}

.detailGrid strong {
  display: block;
  overflow-wrap: anywhere;
  line-height: 1.35;
}

.detailDescription {
  margin-top: 12px;
}

.detailDescription p {
  margin: 0;
  white-space: pre-wrap;
  line-height: 1.5;
}

@media (max-width: 760px) {
  .detailHeader {
    display: block;
  }

  .detailHeader .btn {
    width: 100%;
    margin-top: 12px;
  }

  .detailGrid {
    grid-template-columns: 1fr;
  }
}

/* Dentamigo V2.0.42.1 — popups profil et mission */
.profile-modal,
.announcement-modal {
  max-width: 920px;
}

.profile-modal .detailDescription,
.announcement-modal .detailDescription {
  margin-top: 12px;
}

.modal-actions {
  margin-top: 14px;
  justify-content: flex-end;
}

.profile-modal .small-text,
.announcement-modal .small-text {
  margin-top: 12px;
}

@media (max-width: 760px) {
  .profile-modal,
  .announcement-modal {
    width: 100%;
    max-height: 92vh;
    border-radius: 18px 18px 0 0;
  }

  .modal-actions .btn {
    width: 100%;
  }
}


/* Dentamigo V2.0.42.6 — Suivi mission lisible sur smartphone */
@media (max-width: 760px) {
  .mission-tracking-wrap {
    overflow-x: hidden !important;
    border: 0;
    background: transparent;
    border-radius: 18px;
  }

  .mission-tracking-table,
  .mission-tracking-table tbody,
  .mission-tracking-table tr,
  .mission-tracking-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  .mission-tracking-table thead {
    display: none !important;
  }

  .mission-tracking-table tr {
    margin: 0 0 14px;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 24px rgba(11, 123, 131, .07);
  }

  .mission-tracking-table td {
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    padding: 13px 14px !important;
    font-size: 14px;
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  .mission-tracking-table td:last-child {
    border-bottom: 0 !important;
  }

  .mission-tracking-table td::before {
    display: block;
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .mission-tracking-table td:nth-child(1)::before { content: "Mission"; }
  .mission-tracking-table td:nth-child(2)::before { content: "Dates"; }
  .mission-tracking-table td:nth-child(3)::before { content: "Statut"; }
  .mission-tracking-table td:nth-child(4)::before { content: "Actions"; }

  .mission-tracking-table .actions,
  .mission-tracking-table .compact-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .mission-tracking-table .btn,
  .mission-tracking-table button {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-content: center;
    white-space: normal !important;
    line-height: 1.2;
  }
}

/* V2.0.42.10 — matching automatique : pas de bouton cabinet de recalcul manuel */
.auto-selection-note {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 12px;
}
.small-admin-action {
  opacity: .85;
}

/* V2.0.42.15 — disponibilité partielle / démarrage décalé */
.checkline {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.35;
}
.checkline input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--primary);
  flex: 0 0 auto;
}
.delayed-start-option {
  border: 1px solid var(--line);
  background: rgba(0, 123, 128, 0.045);
  border-radius: 18px;
  padding: 14px 16px;
}
.partial-note {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.94rem;
}
.selection-row-actions-v1 .btn[disabled] {
  opacity: 0.65;
}
@media (max-width: 760px) {
  .delayed-start-option {
    padding: 12px;
  }
  .checkline {
    font-size: 0.95rem;
  }
}

/* V2.0.42.16 — sélection : profils en mission / démarrage décalé plus visibles */
.selection-profile-row.partial-availability-row {
  background: #fff8f1;
  box-shadow: inset 5px 0 0 #d66f2f;
}
.selection-profile-row.partial-availability-row td {
  background: #fff8f1;
}
.selection-profile-row.partial-availability-row td:first-child {
  background: linear-gradient(90deg, #fff2e6 0%, #fff8f1 100%);
}
.partial-availability-badge {
  margin: 6px 6px 0 0;
  border-color: #f0b88e;
  background: #fff0e4;
  color: #9a4b1f;
}
.partial-availability-text {
  display: inline-block;
  margin-top: 6px;
  color: #8a4b26;
  font-size: 0.9rem;
  font-weight: 700;
}
@media (max-width: 760px) {
  .selection-profile-row.partial-availability-row {
    border-color: #f0b88e !important;
    border-left: 6px solid #d66f2f !important;
    background: #fff8f1 !important;
  }
}

/* V2.0.42.17 — carte admin branchée sur données Supabase */
.admin-map-card {
  border: 1px solid var(--border);
  border-radius: 24px;
  background: linear-gradient(180deg, #f4fbfb, #ffffff);
  overflow: hidden;
  margin: 16px 0;
  box-shadow: var(--shadow-soft);
}
.admin-map-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 14px 0;
}
.admin-map-summary span {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 700;
}
.admin-map-svg {
  width: 100%;
  min-height: 360px;
  display: block;
}
.admin-map-bg { fill: #e9f7f8; }
.admin-map-france { fill: #ffffff; stroke: rgba(0, 120, 141, .26); stroke-width: 3; }
.admin-map-grid { fill: none; stroke: rgba(0, 120, 141, .13); stroke-width: 1; stroke-dasharray: 8 10; }
.admin-map-title { fill: var(--primary-dark); font-size: 22px; font-weight: 800; }
.admin-map-point rect,
.admin-map-point circle,
.admin-map-point path {
  stroke: #fff;
  stroke-width: 3;
  filter: drop-shadow(0 4px 10px rgba(15, 23, 42, .18));
}
.admin-map-point text {
  fill: #173238;
  font-size: 13px;
  font-weight: 900;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 3px;
}
.admin-map-point.cabinet rect { fill: #00788d; }
.admin-map-point.assistante circle { fill: #0b7b83; }
.admin-map-point.dentiste circle { fill: #f16f1e; }
.admin-map-point.announcement path { fill: #7c3aed; }
.admin-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  padding: 0 14px 14px;
  color: var(--muted);
  font-weight: 700;
  font-size: 13px;
}
.admin-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.admin-map-legend i {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  display: inline-block;
}
.admin-map-legend .legend-cabinet { background: #00788d; border-radius: 4px; }
.admin-map-legend .legend-assistante { background: #0b7b83; }
.admin-map-legend .legend-dentiste { background: #f16f1e; }
.admin-map-legend .legend-annonce { background: #7c3aed; border-radius: 3px; transform: rotate(45deg); }
@media (max-width: 760px) {
  .admin-map-svg { min-height: 260px; }
  .admin-map-title { font-size: 18px; }
  .admin-map-point text { font-size: 12px; }
}

/* V2.0.42.19 — Carte admin simplifiée façon V1 */
.admin-france-map-card {
  overflow: visible;
}
.admin-map-v1-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  gap: 16px;
  align-items: start;
  margin-bottom: 14px;
}
.admin-map-controls {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.admin-map-controls label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}
.admin-map-controls select {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 11px 12px;
  background: #fff;
  color: var(--primary-dark);
  font-weight: 800;
}
.admin-map-check {
  display: inline-flex !important;
  grid-template-columns: auto 1fr !important;
  align-items: center;
  gap: 8px !important;
}
.admin-map-v1-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(280px, .95fr);
  gap: 16px;
  align-items: start;
}
.admin-leaflet-map {
  height: 470px;
  min-height: 470px;
  border: 1px solid var(--border);
  border-radius: 22px;
  overflow: hidden;
  background: #edf8fa;
  box-shadow: var(--shadow-soft);
}
.admin-map-side-panel {
  display: grid;
  gap: 14px;
}
.admin-map-summary-card {
  border: 1px solid var(--border);
  border-radius: 20px;
  background: linear-gradient(180deg, #f7fcfc, #ffffff);
  padding: 14px;
}
.admin-map-summary-card h3 {
  margin: 0 0 10px;
  color: var(--primary-dark);
}
.admin-map-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.admin-map-kpis span {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  padding: 10px 12px;
}
.admin-map-kpis strong {
  display: block;
  font-size: 1.45rem;
  color: var(--primary);
  line-height: 1.1;
}
.admin-map-kpis small {
  display: block;
  color: var(--muted);
  margin-top: 4px;
}
.admin-map-popup {
  display: grid;
  gap: 4px;
  min-width: 190px;
  color: #173238;
}
.admin-map-popup strong {
  color: var(--primary-dark);
}
.admin-map-popup span,
.admin-map-popup small {
  color: #58717b;
}
.admin-map-legend-v1 {
  padding: 10px 2px 0;
}
@media (max-width: 1020px) {
  .admin-map-v1-head,
  .admin-map-v1-layout {
    grid-template-columns: 1fr;
  }
  .admin-leaflet-map {
    height: 390px;
    min-height: 390px;
  }
}
@media (max-width: 760px) {
  .admin-leaflet-map {
    height: 330px;
    min-height: 330px;
    border-radius: 18px;
  }
  .admin-map-kpis {
    grid-template-columns: 1fr 1fr;
  }
}

.message-compose-locked {
  border: 1px solid rgba(217, 104, 41, 0.28);
  background: rgba(255, 246, 239, 0.92);
  border-radius: 18px;
  padding: 14px;
  color: var(--ink);
}
.message-compose-locked strong { color: var(--accent-2); }
.message-compose-locked p { margin: 4px 0 0; color: var(--muted); }

/* V2.0.42.30 — envoi push serveur */
[data-enable-push] {
  width: 100%;
  margin-top: 8px;
}

.pwa-push-warning {
  border-color: rgba(217, 104, 41, 0.34) !important;
  background: rgba(255, 246, 239, 0.95) !important;
  color: var(--accent-2) !important;
}

/* V2.0.42.40 — RGPD affiché seulement si acceptation nécessaire */
.login-rgpd-box {
  border: 1px solid rgba(0, 120, 141, 0.22);
  border-radius: 16px;
  padding: 12px 14px;
  background: rgba(232, 247, 247, 0.72);
  display: grid;
  gap: 8px;
}
.login-rgpd-header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}
.login-rgpd-details summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--primary-dark);
  padding: 8px 0;
}
.login-rgpd-scroll {
  max-height: 230px;
  overflow-y: auto;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--text);
  font-size: 13px;
  line-height: 1.5;
}
.login-rgpd-scroll h3 {
  margin: 12px 0 6px;
  font-size: 14px;
  color: var(--primary-dark);
}
.rgpd-consent-line {
  border-color: rgba(232, 112, 43, .35);
  background: #fffaf6;
}
@media (max-width: 560px) {
  .login-rgpd-scroll { max-height: 260px; }
}

/* V2.0.42.52 — refactoring UI sélection intelligente, affichage uniquement */
.btn.success {
  background: #e8f7f0;
  color: var(--success);
  border-color: #c7eadc;
}
.btn.success:hover { background: #d9f1e7; }
.eyebrow {
  display: inline-block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.selection-page-v2 {
  display: grid;
  gap: 18px;
}
.selection-header-v2 p { max-width: 760px; }
.selection-topbar-v2 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.selection-topbar-v2 h2,
.selection-candidates-head-v2 h2,
.selection-active-main-v2 h2,
.selection-candidate-card-v2 h3 {
  margin: 0;
}
.selection-main-actions-v2 {
  margin-top: 0;
  justify-content: flex-end;
}
.selection-send-all-v2 {
  min-width: 180px;
  justify-content: center;
}
.selection-native-select-v2 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.selection-announcement-slider-v2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.selection-announcement-card-v2 {
  width: 100%;
  display: grid;
  gap: 6px;
  text-align: left;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(180deg, #fff 0%, #fbffff 100%);
  color: var(--text);
  box-shadow: 0 10px 24px rgba(11, 123, 131, .05);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}
.selection-announcement-card-v2:hover {
  transform: translateY(-1px);
  border-color: var(--primary);
  box-shadow: 0 16px 36px rgba(11, 123, 131, .11);
}
.selection-announcement-card-v2.is-active {
  border-color: var(--primary);
  background: linear-gradient(180deg, #effcfc 0%, #ffffff 100%);
  box-shadow: 0 18px 42px rgba(11, 123, 131, .14);
}
.selection-announcement-card-v2.dentiste.is-active { border-color: var(--accent); }
.selection-announcement-card-v2 strong {
  color: var(--primary-dark);
  font-size: 18px;
}
.selection-announcement-card-v2.dentiste strong { color: var(--warning); }
.selection-announcement-card-v2 span,
.selection-announcement-card-v2 small {
  color: var(--muted);
  font-weight: 700;
}
.selection-card-city-v2 {
  color: var(--primary-dark) !important;
  font-weight: 900 !important;
}
.selection-active-card-v2 {
  margin: 0;
  padding: 18px;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: linear-gradient(135deg, #ffffff 0%, #effcfc 100%);
  color: var(--text);
}
.selection-active-card-v2.dentiste {
  background: linear-gradient(135deg, #ffffff 0%, #fff4ec 100%);
  border-color: #f1c9b3;
}
.selection-active-title-v2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}
.selection-active-main-v2 {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr);
  gap: 18px;
  align-items: start;
}
.selection-active-main-v2 p,
.selection-active-main-v2 small { color: var(--muted); }

.selection-announcement-card-v2.collaboration {
  border-color: #c8d7ff;
  background: linear-gradient(180deg, #f7f8ff 0%, #ffffff 100%);
}
.selection-announcement-card-v2.collaboration:hover {
  border-color: #5867b3;
  box-shadow: 0 16px 36px rgba(88, 103, 179, .14);
}
.selection-announcement-card-v2.collaboration.is-active {
  border-color: #5867b3;
  background: linear-gradient(180deg, #eef2ff 0%, #ffffff 100%);
  box-shadow: 0 18px 42px rgba(88, 103, 179, .18);
}
.selection-announcement-card-v2.collaboration strong {
  color: #36428b;
}
.selection-announcement-card-v2.collaboration .selection-card-city-v2 {
  color: #36428b !important;
}
.selection-active-card-v2.collaboration {
  background: linear-gradient(135deg, #ffffff 0%, #eef2ff 100%);
  border-color: #c8d7ff;
}
.selection-candidate-card-v2.collaboration {
  border-left: 5px solid #5867b3;
  box-shadow: 0 12px 28px rgba(88, 103, 179, .08);
}
.selection-avatar-v2.collaboration {
  background: #5867b3;
}
.response-announcement-card-v2.collaboration {
  border-color: #c8d7ff;
  background: linear-gradient(135deg, #ffffff 0%, #eef2ff 100%);
}
.selection-stats-v2 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.selection-stats-v2 span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 12px;
  border-radius: 15px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.72);
}
.selection-stats-v2 strong {
  color: var(--primary-dark);
  font-size: 20px;
}
.selection-stats-v2 small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.selection-candidates-wrap-v2 { margin-top: 0; }
.selection-loading-card-v2 {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: linear-gradient(135deg, #ffffff 0%, #effcfc 100%);
  box-shadow: 0 12px 28px rgba(11, 123, 131, .07);
}
.selection-loading-card-v2 h2 {
  margin: 0 0 4px;
  color: var(--primary-dark);
  font-size: 20px;
}
.selection-loading-card-v2 p {
  margin: 0;
}
.selection-loading-spinner-v2 {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  border-radius: 50%;
  border: 4px solid rgba(11, 123, 131, .16);
  border-top-color: var(--primary);
  animation: dentamigoSpin .9s linear infinite;
}
@keyframes dentamigoSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.selection-candidates-v2 {
  display: grid;
  gap: 12px;
}
.selection-candidates-head-v2 {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}
.selection-candidate-list-v2 {
  display: grid;
  gap: 12px;
}
.selection-candidate-card-v2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(11, 123, 131, .06);
}
.selection-candidate-card-v2.assistante { border-left: 5px solid var(--primary); }
.selection-candidate-card-v2.dentiste { border-left: 5px solid var(--accent); }
.selection-candidate-main-v2 {
  min-width: 0;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.selection-avatar-v2 {
  width: 48px;
  height: 48px;
  display: inline-grid;
  place-items: center;
  border-radius: 16px;
  background: var(--primary);
  color: #fff;
  font-weight: 900;
}
.selection-avatar-v2.dentiste { background: var(--accent); }
.selection-candidate-meta-v2 {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 8px 0;
}
.selection-skills-v2 {
  margin: 0 0 4px;
  color: var(--text);
  overflow-wrap: anywhere;
}
.selection-row-actions-v2 {
  margin-top: 0;
  justify-content: flex-end;
  min-width: 360px;
}
.selection-row-actions-v2 .btn {
  min-width: 104px;
}
.selection-action-optional-v2[disabled] {
  display: none;
}
.selection-exclude-hidden-v2 {
  display: none !important;
}
@media (max-width: 980px) {
  .selection-topbar-v2,
  .selection-candidates-head-v2 {
    align-items: stretch;
    flex-direction: column;
  }
  .selection-main-actions-v2,
  .selection-main-actions-v2 .btn,
  .selection-send-all-v2 {
    width: 100%;
  }
  .selection-active-main-v2 {
    grid-template-columns: 1fr;
  }
  .selection-stats-v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .selection-candidate-card-v2 {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .selection-row-actions-v2 {
    min-width: 0;
    width: 100%;
    justify-content: stretch;
  }
  .selection-row-actions-v2 .btn {
    flex: 1 1 140px;
  }
}
@media (max-width: 760px) {
  .selection-page-v2 {
    gap: 14px;
  }
  .selection-announcement-slider-v2 {
    display: flex;
    overflow-x: auto;
    gap: 12px;
    padding: 2px 4px 12px;
    margin: 0 -4px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .selection-announcement-slider-v2::-webkit-scrollbar { display: none; }
  .selection-announcement-card-v2 {
    flex: 0 0 min(86vw, 360px);
    scroll-snap-align: center;
  }
  .selection-stats-v2 {
    grid-template-columns: 1fr;
  }
  .selection-active-card-v2,
  .selection-candidate-card-v2 {
    border-radius: 18px;
    padding: 14px;
  }
  .selection-candidate-main-v2 {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
  }
  .selection-avatar-v2 {
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }
  .selection-row-actions-v2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .selection-row-actions-v2 .btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* V2.0.42.54 — Réponses : même principe UI que Sélection intelligente, affichage uniquement */
.response-page-v2 {
  display: grid;
  gap: 18px;
}
.response-header-v2 p { max-width: 760px; }
.response-topbar-v2 h2,
.response-candidates-head-v2 h2,
.response-profile-card-v2 h3 { margin: 0; }
.response-announcement-slider-v2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.response-announcement-card-v2 {
  min-height: 148px;
}
.response-card-mini-stats-v2 {
  margin-top: 4px;
  color: var(--primary-dark) !important;
  font-size: 12px;
  font-weight: 900 !important;
}
.response-active-card-v2 { margin: 0; }
.response-stats-v2 span strong {
  white-space: nowrap;
}
.response-candidates-wrap-v2 { margin-top: 0; }
.response-candidates-v2 {
  display: grid;
  gap: 12px;
}
.response-list-v2 {
  display: grid;
  gap: 12px;
}
.response-profile-card-v2 {
  align-items: start;
}
.response-profile-meta-v2 {
  margin: 8px 0;
}
.response-message-v2 {
  margin: 8px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f8ffff;
  color: var(--text);
  overflow-wrap: anywhere;
}
.response-row-actions-v2 {
  min-width: 300px;
}
.response-row-actions-v2 .btn {
  min-width: 112px;
}
@media (max-width: 980px) {
  .response-row-actions-v2 {
    min-width: 0;
    width: 100%;
  }
}
@media (max-width: 760px) {
  .response-announcement-slider-v2 {
    display: flex;
    overflow-x: auto;
    gap: 12px;
    padding: 2px 4px 12px;
    margin: 0 -4px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .response-announcement-slider-v2::-webkit-scrollbar { display: none; }
  .response-announcement-card-v2 {
    flex: 0 0 min(86vw, 360px);
    scroll-snap-align: center;
  }
  .response-row-actions-v2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .response-row-actions-v2 .btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* V2.0.42.55 — Admin santé Supabase / Vercel / Application, lecture seule */
.admin-health-card h3 {
  margin: 16px 0 10px;
  color: var(--primary-dark);
}
.admin-health-summary {
  display: grid;
  grid-template-columns: minmax(280px, 1.2fr) repeat(3, minmax(160px, .7fr));
  gap: 12px;
  align-items: stretch;
  margin: 12px 0 16px;
}
.admin-health-main {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.admin-health-main strong {
  display: block;
  color: var(--primary-dark);
  font-size: 17px;
}
.admin-health-main small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}
.admin-health-main.green { border-color: #c7eadc; background: #f7fffb; }
.admin-health-main.orange { border-color: #f4c7ad; background: #fffaf5; }
.admin-health-main.red { border-color: #f0c8b8; background: #fff7f5; }
.admin-health-dot {
  width: 15px;
  height: 15px;
  border-radius: 999px;
  flex: 0 0 auto;
  box-shadow: 0 0 0 5px rgba(9, 122, 122, .08);
}
.admin-health-dot.green { background: var(--success); }
.admin-health-dot.orange { background: var(--warning); }
.admin-health-dot.red { background: var(--danger); }
.admin-health-table-wrap td,
.admin-health-table-wrap th {
  vertical-align: top;
}
@media (max-width: 980px) {
  .admin-health-summary {
    grid-template-columns: 1fr 1fr;
  }
  .admin-health-main {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .admin-health-summary {
    grid-template-columns: 1fr;
  }
}

/* V2.0.42.57 — Dashboard admin lisible, lecture seule */
.admin-dashboard-header { align-items: flex-start; }
.admin-overview {
  display: grid;
  gap: 16px;
}
.admin-status-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: linear-gradient(135deg, #ffffff 0%, #f6fcfc 100%);
  box-shadow: var(--shadow);
}
.admin-status-hero.green { border-color: #c7eadc; }
.admin-status-hero.orange { border-color: #f4c7ad; background: linear-gradient(135deg, #ffffff 0%, #fff9f4 100%); }
.admin-status-hero.red { border-color: #f0c8b8; background: linear-gradient(135deg, #ffffff 0%, #fff7f4 100%); }
.admin-status-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.admin-status-left h2 {
  margin: 0;
  color: var(--primary-dark);
  font-size: clamp(22px, 3vw, 32px);
}
.admin-status-left p {
  margin: 5px 0 0;
  color: var(--muted);
}
.admin-status-light {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  flex: 0 0 auto;
  box-shadow: 0 0 0 7px rgba(11, 123, 131, .08);
}
.admin-status-light.green,
.admin-alert-dot.green { background: var(--success); }
.admin-status-light.orange,
.admin-alert-dot.orange { background: var(--warning); }
.admin-status-light.red,
.admin-alert-dot.red { background: var(--danger); }
.admin-status-right {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.admin-overview-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.admin-metric-card {
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 16px;
  background: #fff;
  box-shadow: var(--shadow);
  display: grid;
  gap: 6px;
  min-height: 116px;
  border-top: 4px solid var(--primary);
}
.admin-metric-card strong {
  font-size: 30px;
  line-height: 1;
  color: var(--primary-dark);
}
.admin-metric-card span {
  font-weight: 900;
  color: var(--text);
}
.admin-metric-card small {
  color: var(--muted);
}
.admin-metric-card.orange,
.admin-metric-card.red { border-top-color: var(--accent); }
.admin-action-panel,
.admin-alert-panel,
.admin-quick-access {
  margin-top: 0;
}
.admin-panel-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.admin-panel-title h2,
.admin-quick-access h2,
.admin-alert-panel h2 {
  margin-top: 0;
}
.admin-action-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.admin-action-card,
.admin-alert-row,
.admin-quick-link {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  text-align: left;
  padding: 14px;
  color: var(--text);
  display: grid;
  gap: 6px;
  min-width: 0;
}
.admin-action-card:hover,
.admin-alert-row:hover,
.admin-quick-link:hover {
  border-color: var(--primary);
  background: var(--primary-soft);
}
.admin-action-card.orange { border-color: #f4c7ad; background: #fffaf5; }
.admin-action-card.red { border-color: #f0c8b8; background: #fff7f4; }
.admin-action-card.green { border-color: #c7eadc; background: #f7fffb; }
.admin-action-value {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  background: var(--primary-soft);
  color: var(--primary-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 20px;
}
.admin-action-card strong,
.admin-quick-link strong {
  color: var(--primary-dark);
}
.admin-action-card small,
.admin-alert-row small,
.admin-quick-link small {
  color: var(--muted);
  line-height: 1.35;
}
.admin-alert-list {
  display: grid;
  gap: 10px;
}
.admin-alert-row {
  grid-template-columns: 14px minmax(0, 1fr);
  align-items: center;
}
.admin-alert-row.red { border-color: #f0c8b8; background: #fff7f4; }
.admin-alert-row.orange { border-color: #f4c7ad; background: #fffaf5; }
.admin-alert-dot {
  width: 11px;
  height: 11px;
  border-radius: 999px;
}
.admin-quick-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}
.admin-readable-section {
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.74);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.admin-readable-section > summary {
  list-style: none;
  cursor: pointer;
  padding: 16px 18px;
  font-weight: 900;
  color: var(--primary-dark);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.admin-readable-section > summary::-webkit-details-marker { display: none; }
.admin-readable-section > summary::after {
  content: 'ouvrir';
  font-size: 12px;
  color: var(--muted);
  font-weight: 800;
}
.admin-readable-section[open] > summary::after { content: 'fermer'; }
.admin-readable-section > .card,
.admin-readable-section > .admin-readable-grid,
.admin-readable-section > article {
  margin: 0 16px 16px;
}
.admin-readable-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 1180px) {
  .admin-overview-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-quick-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-readable-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .admin-status-hero { align-items: flex-start; flex-direction: column; }
  .admin-status-right { justify-content: flex-start; }
  .admin-overview-kpis,
  .admin-action-grid,
  .admin-quick-grid { grid-template-columns: 1fr; }
  .admin-readable-section > .card,
  .admin-readable-section > .admin-readable-grid,
  .admin-readable-section > article { margin-left: 10px; margin-right: 10px; }
}

/* V2.0.42.58 — Listes admin exploitables, lecture seule */
.admin-list-card {
  display: grid;
  gap: 14px;
}
.admin-list-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.admin-list-title h2 { margin-bottom: 4px; }
.admin-list-controls {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(180px, 220px) minmax(160px, 200px) auto;
  gap: 12px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #f8fcfc;
}
.admin-list-controls .field { margin: 0; }
.admin-list-search-field { min-width: 0; }
.admin-search-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.admin-search-row input { min-width: 0; }
.admin-table-wrap table td,
.admin-table-wrap table th {
  vertical-align: top;
}
.admin-table-wrap table tbody tr:hover {
  background: #f6fcfc;
}
.admin-list-mobile {
  display: none;
}
.admin-mobile-card {
  display: grid;
  gap: 7px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(11, 123, 131, .05);
}
.admin-mobile-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.admin-mobile-card-head strong {
  color: var(--primary-dark);
  overflow-wrap: anywhere;
}
.admin-mobile-card p {
  margin: 0;
  color: var(--muted);
}
.admin-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
@media (max-width: 980px) {
  .admin-list-controls {
    grid-template-columns: 1fr 1fr;
  }
  .admin-list-controls > .btn {
    width: 100%;
  }
}
@media (max-width: 760px) {
  .admin-list-title {
    flex-direction: column;
  }
  .admin-list-controls {
    grid-template-columns: 1fr;
  }
  .admin-search-row {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-list-desktop {
    display: none;
  }
  .admin-list-mobile {
    display: grid;
    gap: 10px;
  }
  .admin-mobile-card-head {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* V2.0.42.59 — Fiches détail admin en lecture seule */
.admin-detail-button {
  white-space: nowrap;
  padding: 7px 12px;
  font-size: .86rem;
}

.admin-card-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.admin-detail-panel {
  margin-top: 18px;
  border: 1px solid rgba(20, 184, 166, .24);
  box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

.admin-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(148, 163, 184, .18);
  padding-bottom: 14px;
  margin-bottom: 14px;
}

.admin-detail-head h2 {
  margin: 8px 0 4px;
}

.admin-detail-badges,
.admin-detail-alerts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.admin-detail-alert {
  display: grid;
  gap: 2px;
  min-width: min(100%, 260px);
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(245, 158, 11, .28);
  background: rgba(245, 158, 11, .08);
  color: #7c2d12;
}

.admin-detail-alert.red {
  border-color: rgba(239, 68, 68, .28);
  background: rgba(239, 68, 68, .08);
  color: #7f1d1d;
}

.admin-detail-alert.green {
  border-color: rgba(34, 197, 94, .28);
  background: rgba(34, 197, 94, .08);
  color: #14532d;
}

.admin-detail-alert span {
  font-size: .88rem;
}

.admin-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.admin-detail-section {
  padding: 14px;
  border-radius: 16px;
  background: rgba(248, 250, 252, .9);
  border: 1px solid rgba(148, 163, 184, .16);
}

.admin-detail-section h3 {
  margin: 0 0 10px;
  font-size: .98rem;
}

.admin-detail-row {
  display: grid;
  grid-template-columns: minmax(110px, .9fr) minmax(0, 1.2fr);
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid rgba(148, 163, 184, .14);
}

.admin-detail-row:first-of-type {
  border-top: 0;
}

.admin-detail-row span {
  color: var(--muted, #64748b);
  font-size: .88rem;
}

.admin-detail-row strong {
  font-size: .92rem;
  color: var(--text, #0f172a);
  word-break: break-word;
}

@media (max-width: 760px) {
  .admin-detail-head {
    flex-direction: column;
  }
  .admin-detail-head .btn {
    width: 100%;
  }
  .admin-detail-grid {
    grid-template-columns: 1fr;
  }
  .admin-detail-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .admin-card-actions {
    justify-content: stretch;
  }
  .admin-card-actions .btn {
    width: 100%;
  }
}

/* V2.0.42.60 — Historique admin propre en lecture seule */
.admin-history-layout {
  display: grid;
  gap: 18px;
}
.admin-history-section {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fbfefe;
}
.admin-history-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.admin-history-section-head h3 {
  margin: 0 0 4px;
  color: var(--primary-dark);
}
.admin-history-section .admin-table-wrap {
  margin-top: 0;
}
@media (max-width: 760px) {
  .admin-history-section {
    padding: 12px;
    border-radius: 18px;
  }
  .admin-history-section-head {
    flex-direction: column;
  }
}

/* V2.0.42.61 — Export rapport bêta admin */
.admin-beta-export-card {
  display: grid;
  gap: 14px;
}
.admin-section-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.admin-section-title-row h2 {
  margin: 0 0 4px;
}
.admin-report-preview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 980px) {
  .admin-report-preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .admin-section-title-row {
    flex-direction: column;
  }
  .admin-report-preview-grid {
    grid-template-columns: 1fr;
  }
}

/* V2.0.42.62 — Passe UX finale mobile/PC, affichage uniquement */
:root {
  --border: var(--line);
  --shadow-soft: var(--shadow);
  --orange: var(--accent);
  --ink: var(--text);
  --accent-2: var(--accent);
}

html,
body,
.app-shell,
.layout {
  max-width: 100%;
  overflow-x: hidden;
}

.main {
  margin-inline: auto;
}

.grid > *,
.card,
.item,
.admin-mobile-card,
.admin-detail-section,
.selection-announcement-card-v2,
.selection-candidate-card-v2,
.response-announcement-card-v2,
.response-profile-card-v2 {
  min-width: 0;
}

.card,
.item,
.message-bubble,
.admin-mobile-card,
.admin-detail-row strong,
.selection-candidate-card-v2,
.response-profile-card-v2 {
  overflow-wrap: anywhere;
}

.btn,
.nav button,
.mobile-menu-toggle,
.icon-btn {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.btn {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  line-height: 1.15;
}

.field input,
.field select,
.field textarea,
.search-input {
  min-height: 42px;
}

:focus-visible {
  outline: 3px solid rgba(11, 123, 131, .24);
  outline-offset: 2px;
}

.table-wrap,
.admin-table-wrap,
.received-v1-table-wrap,
.selection-table-wrap-v1,
.mission-tracking-wrap {
  max-width: 100%;
}

.message-thread,
.sidebar,
.admin-leaflet-map,
.modal-backdrop {
  overscroll-behavior: contain;
}

@media (min-width: 981px) {
  .main {
    padding: 24px;
  }

  .header {
    position: relative;
  }

  .card {
    scroll-margin-top: 18px;
  }
}

@media (max-width: 860px) {
  body {
    padding-top: calc(64px + env(safe-area-inset-top));
  }

  .mobile-menu-toggle {
    min-height: 44px;
    max-width: calc(100vw - 24px);
  }

  body.mobile-menu-open .mobile-menu-toggle {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
  }

  .sidebar .nav,
  aside .nav {
    grid-template-columns: 1fr !important;
  }

  .sidebar,
  aside[data-sidebar],
  aside {
    padding-bottom: calc(18px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 760px) {
  .main,
  .app-main,
  main,
  .content {
    padding-left: 12px !important;
    padding-right: 12px !important;
    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
  }

  .header {
    gap: 10px;
    margin-bottom: 14px;
  }

  .header h1 {
    font-size: 20px;
  }

  .header p {
    font-size: 12px;
  }

  .card,
  .item {
    padding: 14px;
    border-radius: 18px;
  }

  .badge {
    white-space: normal;
    text-align: center;
    max-width: 100%;
  }

  .actions:not(.selection-row-actions-v2):not(.response-row-actions-v2):not(.selection-main-actions-v2) {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .actions:not(.selection-row-actions-v2):not(.response-row-actions-v2):not(.selection-main-actions-v2) .btn {
    width: 100%;
  }

  .btn,
  .field input,
  .field select,
  .field textarea,
  .search-input {
    min-height: 46px;
    font-size: 16px;
  }

  .field textarea {
    min-height: 118px;
  }

  .profile-card {
    gap: 12px;
  }

  .profile-photo {
    width: 82px;
    height: 82px;
    border-radius: 20px;
  }

  .modal-backdrop {
    padding: 8px;
  }

  .message-modal,
  .profile-modal,
  .announcement-modal {
    max-height: calc(100dvh - 16px);
    width: 100%;
  }

  .message-modal-head {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #fff;
  }

  .message-thread {
    max-height: min(45dvh, 390px);
  }

  .message-compose textarea {
    min-height: 132px;
  }

  .selection-announcement-slider-v2,
  .response-announcement-slider-v2 {
    scroll-padding-inline: 12px;
  }

  .selection-announcement-card-v2,
  .response-announcement-card-v2 {
    flex-basis: min(88vw, 380px);
  }

  .admin-status-hero,
  .admin-list-controls,
  .admin-detail-panel {
    border-radius: 20px;
  }
}

@media (max-width: 420px) {
  .main,
  .app-main,
  main,
  .content {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .brand strong,
  .connected-title strong {
    font-size: 17px;
  }

  .admin-metric-card strong,
  .kpi strong {
    font-size: 25px;
  }

  .selection-announcement-card-v2,
  .response-announcement-card-v2 {
    flex-basis: calc(100vw - 34px);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}



/* V2.0.42.64 — Maintenance admin encadrée, lecture seule */
.maintenance-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: 18px;
  align-items: center;
}
.maintenance-hero h2 { margin: 8px 0 6px; }
.maintenance-hero-status {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.maintenance-hero-status strong {
  display: block;
  color: var(--primary-dark);
  font-size: 18px;
}
.maintenance-hero-status small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.35;
}
.maintenance-hero-status.green { border-color: #c7eadc; background: #f7fffb; }
.maintenance-hero-status.orange { border-color: #f4c7ad; background: #fffaf5; }
.maintenance-hero-status.red { border-color: #f0c8b8; background: #fff7f4; }
.maintenance-kpis { margin-top: 16px; }
.maintenance-grid { align-items: stretch; }
.maintenance-panel .table-wrap { margin-top: 8px; }
.maintenance-alert-list,
.maintenance-checklist,
.maintenance-action-grid {
  display: grid;
  gap: 10px;
}
.maintenance-action-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.maintenance-alert,
.maintenance-check,
.maintenance-action-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  padding: 13px;
  display: grid;
  gap: 6px;
  text-align: left;
  min-width: 0;
}
.maintenance-alert {
  grid-template-columns: 12px minmax(0, 1fr);
  align-items: start;
}
.maintenance-alert.green { border-color: #c7eadc; background: #f7fffb; }
.maintenance-alert.orange { border-color: #f4c7ad; background: #fffaf5; }
.maintenance-alert.red { border-color: #f0c8b8; background: #fff7f4; }
.maintenance-alert strong,
.maintenance-check strong,
.maintenance-action-card strong {
  color: var(--primary-dark);
}
.maintenance-alert small,
.maintenance-check small,
.maintenance-action-card small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  line-height: 1.35;
}
.maintenance-check {
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: start;
}
.maintenance-check > span {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  background: var(--primary-soft);
  color: var(--primary-dark);
}
.maintenance-check.done > span { background: #e8f7f0; color: var(--success); }
.maintenance-check.pending > span { background: var(--accent-soft); color: var(--warning); }
.maintenance-action-card {
  cursor: pointer;
  border-color: #c7eadc;
  background: #f7fffb;
}
.maintenance-action-card:hover {
  border-color: var(--primary);
  background: var(--primary-soft);
}
@media (max-width: 900px) {
  .maintenance-hero,
  .maintenance-action-grid {
    grid-template-columns: 1fr;
  }
}

/* v2.0.42.65 — préparation nettoyage test admin */
.cleanup-scope-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin: 14px 0;
}
.cleanup-scope-card {
  border: 1px solid rgba(7, 126, 150, 0.16);
  background: rgba(7, 126, 150, 0.04);
  border-radius: 16px;
  padding: 14px;
  min-width: 0;
}
.cleanup-scope-card strong {
  display: block;
  font-size: 1.6rem;
  color: var(--primary, #077e96);
  line-height: 1;
}
.cleanup-scope-card span {
  display: block;
  margin-top: 6px;
  font-weight: 700;
}
.cleanup-scope-card small {
  display: block;
  margin-top: 4px;
  color: var(--muted, #667085);
}
.maintenance-note {
  border-radius: 14px;
  padding: 12px 14px;
  margin-top: 12px;
  background: rgba(245, 158, 11, 0.09);
  border: 1px solid rgba(245, 158, 11, 0.24);
}
.cleanup-preview {
  margin-top: 14px;
}
.cleanup-preview summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--primary, #077e96);
}
.cleanup-preview-block {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
  min-width: 0;
}
.cleanup-preview-block h3 {
  margin-top: 0;
}
@media (max-width: 720px) {
  .cleanup-scope-grid {
    grid-template-columns: 1fr 1fr;
  }
  .cleanup-scope-card {
    padding: 12px;
  }
  .cleanup-scope-card strong {
    font-size: 1.35rem;
  }
}

/* v2.0.42.70 — Création de compte publique contrôlée */
.signup-box {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(232, 247, 247, .72), rgba(255, 255, 255, .92));
}
.signup-box summary {
  cursor: pointer;
  color: var(--primary-dark);
  font-weight: 900;
  list-style: none;
}
.signup-box summary::-webkit-details-marker { display: none; }
.signup-box summary::after {
  content: '+';
  float: right;
  color: var(--primary);
  font-weight: 900;
}
.signup-box details[open] summary::after { content: '−'; }
.signup-form { margin-top: 14px; }
.signup-role-panel {
  grid-column: 1 / -1;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, .72);
}
.signup-form .rgpd-consent-line { align-items: flex-start; }
@media (max-width: 640px) {
  .signup-box { padding: 12px; }
  .signup-role-panel { padding: 10px; }
}

/* v2.0.42.71 — Connexion nettoyée et liens RGPD lisibles */
.login-box.clean-login {
  width: min(100%, 560px);
}
.pwa-login-box.compact {
  margin: 10px 0 18px;
  padding: 0;
  border: 0;
  background: transparent;
}
.pwa-login-box.compact .installAppBtn {
  margin-top: 0;
  width: 100%;
}
.signup-legal-box {
  grid-column: 1 / -1;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 250, 246, .78);
}
.signup-legal-box p {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: .95rem;
}
.signup-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
}
.signup-legal-links a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 8px 11px;
  border-radius: 999px;
  border: 1px solid rgba(0, 120, 141, .22);
  background: #fff;
  color: var(--primary-dark);
  font-weight: 900;
  text-decoration: none;
}
.signup-legal-links a:hover,
.signup-legal-links a:focus-visible {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(0, 120, 141, .12);
  outline: none;
}
.signup-legal-details {
  margin-top: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}
.signup-legal-details summary {
  padding: 10px 12px;
}
.signup-legal-details .login-rgpd-scroll {
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
}
@media (max-width: 560px) {
  .login-page {
    padding: 14px;
    place-items: start center;
  }
  .login-box {
    padding: 20px;
    border-radius: 20px;
  }
  .signup-legal-links {
    display: grid;
    gap: 8px;
  }
  .signup-legal-links a {
    justify-content: center;
    width: 100%;
  }
}


/* v2.0.42.72 — réinitialisation sécurisée du mot de passe */
.password-reset-box,
.password-recovery-box {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--border, #cfe2e2);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
}

.password-reset-box summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--primary, #007f7f);
}

.password-recovery-box.active {
  border-color: var(--primary, #007f7f);
  background: rgba(0, 127, 127, 0.08);
  box-shadow: 0 10px 28px rgba(0, 70, 70, 0.10);
}

.password-recovery-box h2 {
  margin: 0 0 .35rem;
  color: var(--primary-dark, #005c5c);
}

.compact-form {
  margin-top: .85rem;
}

@media (max-width: 640px) {
  .password-reset-box,
  .password-recovery-box {
    padding: .9rem;
    border-radius: 16px;
  }
}

/* v2.0.42.75 - Retour utilisateur propre sur création compte / limite email Supabase */
.signup-feedback {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 10px;
  background: #f8ffff;
  color: var(--text);
  font-weight: 700;
  line-height: 1.45;
}
.signup-feedback[hidden] { display: none !important; }
.signup-feedback.success {
  border-color: #bdebd8;
  background: #f0fff8;
  color: #075f46;
}
.signup-feedback.warning {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #7c2d12;
}
.signup-feedback.error {
  border-color: #fecaca;
  background: #fff1f2;
  color: #7f1d1d;
}

/* V2.0.42.82 — messagerie centre de communication premium */
.message-page-header-v2 {
  align-items: flex-start;
}

.message-center-v2 {
  display: grid;
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr) minmax(260px, 320px);
  gap: 16px;
  min-height: min(74dvh, 780px);
  align-items: stretch;
}

.message-conversation-panel-v2,
.message-discussion-panel-v2,
.message-context-panel-v2 {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 16px 42px rgba(23, 49, 58, .08);
  overflow: hidden;
}

.message-conversation-panel-v2 {
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
}

.message-panel-head-v2 {
  padding: 18px 18px 12px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
}
.message-panel-head-v2 h2,
.message-discussion-title-v2 h2,
.message-context-card-v2 h3 {
  margin: 2px 0 0;
  color: var(--primary-dark);
}

.message-search-v2 { padding: 0 18px 12px; }
.message-search-v2 .search-input { width: 100%; }

.message-tabs-v2 {
  display: flex;
  gap: 8px;
  padding: 0 18px 14px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.message-tab-v2 {
  border: 1px solid rgba(11,123,131,.16);
  background: rgba(240, 251, 251, .78);
  color: var(--primary-dark);
  border-radius: 999px;
  padding: 8px 11px;
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.message-tab-v2 span {
  min-width: 19px;
  height: 19px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: rgba(11,123,131,.12);
  font-size: 11px;
}
.message-tab-v2.active,
.message-tab-v2:hover {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 10px 22px rgba(11,123,131,.18);
  transform: translateY(-1px);
}
.message-tab-v2.active span,
.message-tab-v2:hover span { background: rgba(255,255,255,.24); }

.message-conversation-list-v2 {
  padding: 0 12px 14px;
  display: grid;
  gap: 10px;
  overflow: auto;
  min-height: 0;
}
.message-conversation-card-v2 {
  width: 100%;
  border: 1px solid rgba(11,123,131,.12);
  background: #fff;
  border-radius: 20px;
  padding: 12px;
  display: grid;
  grid-template-columns: 56px minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  text-align: left;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.message-conversation-card-v2:hover,
.message-conversation-card-v2.active {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(23,49,58,.11);
  border-color: rgba(11,123,131,.45);
  background: linear-gradient(180deg, #f4ffff, #ffffff);
}
.message-conversation-card-v2.active { outline: 3px solid rgba(11,123,131,.1); }
.message-card-body-v2 { min-width: 0; display: grid; gap: 4px; }
.message-card-top-v2 { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.message-card-top-v2 strong { color: var(--primary-dark); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.message-card-top-v2 small,
.message-card-meta-v2,
.message-card-preview-v2 { color: var(--muted); font-size: 12px; font-weight: 700; }
.message-card-meta-v2 { display: flex; align-items: center; gap: 5px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.message-card-preview-v2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.message-unread-badge-v2 {
  min-width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--orange);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 950;
  box-shadow: 0 8px 18px rgba(216,104,42,.25);
}

.message-avatar-v2,
.message-avatar-large-v2,
.message-avatar-context-v2 {
  object-fit: cover;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 2px solid rgba(11,123,131,.16);
  background: linear-gradient(135deg, rgba(11,123,131,.12), rgba(216,104,42,.10));
  color: var(--primary-dark);
  font-weight: 950;
  letter-spacing: .02em;
}
.message-avatar-v2 { width: 56px; height: 56px; border-radius: 50%; }
.message-avatar-large-v2 { width: 72px; height: 72px; border-radius: 22px; }
.message-avatar-context-v2 { width: 92px; height: 92px; border-radius: 28px; margin-inline: auto; font-size: 24px; }
.presence-dot-v2 { width: 9px; height: 9px; border-radius: 999px; display: inline-block; background: #9ca3af; }
.presence-dot-v2.online { background: #14a36f; box-shadow: 0 0 0 4px rgba(20,163,111,.12); }
.presence-dot-v2.offline { background: #cbd5e1; }

.message-discussion-panel-v2 {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: linear-gradient(180deg, rgba(226,245,245,.52), #fff 46%);
}
.message-discussion-head-v2 {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 16px;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(8px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
}
.message-discussion-title-v2 { min-width: 0; }
.message-discussion-title-v2 p { margin: 4px 0 8px; color: var(--muted); font-weight: 800; }
.message-quick-actions-v2 { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.message-quick-actions-v2 .btn { min-height: 38px; padding-inline: 12px; }
.message-mobile-back-v2 { display: none; }

.message-thread-v2 {
  min-height: 0;
  overflow: auto;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  scroll-behavior: smooth;
  background:
    radial-gradient(circle at top left, rgba(11,123,131,.08), transparent 34%),
    linear-gradient(180deg, rgba(247,252,252,.92), rgba(255,255,255,.96));
}
.message-date-separator-v2 { display: flex; justify-content: center; margin: 4px 0; }
.message-date-separator-v2 span {
  font-size: 12px;
  color: var(--muted);
  font-weight: 900;
  background: rgba(255,255,255,.86);
  border: 1px solid var(--line);
  padding: 6px 12px;
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(23,49,58,.05);
}
.message-bubble-v2 {
  width: min(78%, 680px);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 12px 14px;
  box-shadow: 0 14px 28px rgba(23,49,58,.07);
  animation: messageAppearV2 .2s ease both;
}
.message-bubble-v2.theirs {
  align-self: flex-start;
  background: #fff7ef;
  border-color: rgba(216,104,42,.24);
  border-bottom-left-radius: 8px;
}
.message-bubble-v2.mine {
  align-self: flex-end;
  background: #e9f8f8;
  border-color: rgba(11,123,131,.38);
  border-bottom-right-radius: 8px;
}
.message-bubble-meta-v2 { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 6px; }
.message-bubble-meta-v2 strong { color: var(--primary-dark); font-size: 12px; letter-spacing: .03em; text-transform: uppercase; }
.message-bubble-meta-v2 span { color: var(--muted); font-weight: 900; font-size: 11px; }
.message-bubble-v2 p { margin: 0 0 8px; white-space: pre-wrap; line-height: 1.5; }
.message-bubble-v2 small { color: var(--muted); font-weight: 800; }

.message-compose-v2 {
  border-top: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  padding: 14px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}
.message-compose-tools-v2 { display: flex; gap: 6px; }
.message-tool-v2 {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #f8ffff;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .16s ease;
}
.message-tool-v2:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(23,49,58,.09); }
.message-compose-v2 textarea {
  resize: none;
  min-height: 46px;
  max-height: 170px;
  border-radius: 16px;
  padding: 13px 14px;
}
.message-send-v2 { min-width: 112px; border-radius: 16px; }
.message-compose-locked-v2 { grid-template-columns: 1fr; align-items: start; }
.message-compose-locked-v2 p { margin: 2px 0 0; color: var(--muted); }

.message-context-panel-v2 {
  padding: 16px;
  display: grid;
  align-content: start;
  gap: 14px;
}
.message-context-card-v2 {
  text-align: center;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: linear-gradient(180deg, #fbffff, #fff);
  padding: 18px 14px;
}
.message-context-card-v2 p { margin: 4px 0 10px; color: var(--muted); font-weight: 800; }
.message-context-section-v2 {
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  padding: 14px;
}
.message-context-section-v2 h4 { margin: 0 0 10px; color: var(--primary-dark); }
.message-context-section-v2 dl { display: grid; gap: 8px; margin: 0; }
.message-context-section-v2 dt { color: var(--muted); font-size: 11px; font-weight: 950; text-transform: uppercase; letter-spacing: .05em; }
.message-context-section-v2 dd { margin: -5px 0 4px; font-weight: 850; overflow-wrap: anywhere; }
.message-context-section-v2 p { margin: 6px 0; color: var(--muted); font-weight: 750; }
.message-context-empty-v2,
.message-empty-large-v2,
.message-empty-state-v2 {
  padding: 22px;
  border: 1px dashed var(--line-strong);
  border-radius: 20px;
  background: rgba(255,255,255,.78);
  color: var(--muted);
}
.message-empty-large-v2 { margin: auto; text-align: center; max-width: 420px; }
.message-empty-large-v2 strong { color: var(--primary-dark); font-size: 20px; }

@keyframes messageAppearV2 {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1180px) {
  .message-center-v2 { grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); }
  .message-context-panel-v2 { display: none; }
}

@media (max-width: 760px) {
  .message-center-v2 {
    display: block;
    min-height: calc(100dvh - 120px);
  }
  .message-conversation-panel-v2,
  .message-discussion-panel-v2 {
    min-height: calc(100dvh - 130px);
    border-radius: 20px;
  }
  .message-center-v2.has-active .message-conversation-panel-v2 { display: none; }
  .message-center-v2.no-active .message-discussion-panel-v2 { display: none; }
  .message-conversation-list-v2 { max-height: calc(100dvh - 340px); }
  .message-mobile-back-v2 { display: inline-flex; grid-column: 1 / -1; justify-self: start; }
  .message-discussion-head-v2 {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
  }
  .message-avatar-large-v2 { width: 56px; height: 56px; border-radius: 18px; }
  .message-discussion-title-v2 h2 { font-size: 18px; }
  .message-quick-actions-v2 {
    grid-column: 1 / -1;
    justify-content: stretch;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .message-quick-actions-v2 .btn { width: 100%; }
  .message-thread-v2 { padding: 14px; max-height: calc(100dvh - 350px); }
  .message-bubble-v2 { width: 92%; }
  .message-compose-v2 {
    grid-template-columns: 1fr auto;
    padding: 10px;
  }
  .message-compose-tools-v2 {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
  .message-send-v2 { min-width: 92px; }
}

/* V2.0.42.83 — cartes messages visuelles avec photo correspondant */
@media (min-width: 1181px) {
  .message-center-v2 {
    grid-template-columns: minmax(340px, 420px) minmax(0, 1fr) minmax(260px, 320px);
  }
}

.message-conversation-list-v2 {
  gap: 14px;
  padding: 0 14px 16px;
}

.message-conversation-card-v2.message-conversation-tile-v2 {
  position: relative;
  grid-template-columns: 88px minmax(0, 1fr);
  align-items: stretch;
  gap: 14px;
  padding: 14px;
  min-height: 128px;
  border-radius: 26px;
  border-color: rgba(11, 123, 131, .15);
  background:
    radial-gradient(circle at top left, rgba(11,123,131,.10), transparent 38%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(245,253,253,.94));
  box-shadow: 0 12px 30px rgba(23,49,58,.07);
  overflow: hidden;
}

.message-conversation-card-v2.message-conversation-tile-v2::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--primary);
  opacity: .68;
}

.message-conversation-card-v2.message-conversation-tile-v2.role-dentiste::before { background: var(--orange); }
.message-conversation-card-v2.message-conversation-tile-v2.role-assistante::before { background: #0f8a93; }
.message-conversation-card-v2.message-conversation-tile-v2.role-cabinet::before { background: #087278; }

.message-conversation-card-v2.message-conversation-tile-v2:hover,
.message-conversation-card-v2.message-conversation-tile-v2.active {
  transform: translateY(-2px);
  box-shadow: 0 20px 42px rgba(23,49,58,.14);
  border-color: rgba(11,123,131,.50);
  background:
    radial-gradient(circle at top left, rgba(11,123,131,.16), transparent 42%),
    linear-gradient(135deg, #f1ffff, #ffffff 74%);
}

.message-conversation-card-v2.message-conversation-tile-v2.active {
  outline: 4px solid rgba(11,123,131,.10);
}

.message-tile-photo-wrap-v2 {
  position: relative;
  display: grid;
  place-items: center;
  align-self: center;
  width: 88px;
  height: 88px;
}

.message-avatar-tile-v2 {
  width: 82px;
  height: 82px;
  border-radius: 28px;
  object-fit: cover;
  display: grid;
  place-items: center;
  border: 3px solid rgba(255,255,255,.92);
  outline: 2px solid rgba(11,123,131,.18);
  background: linear-gradient(135deg, rgba(11,123,131,.18), rgba(216,104,42,.13));
  color: var(--primary-dark);
  font-size: 24px;
  font-weight: 950;
  box-shadow: 0 14px 26px rgba(23,49,58,.13);
}

.message-tile-role-mark-v2 {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--primary);
  color: #fff;
  border: 2px solid #fff;
  font-size: 13px;
  font-weight: 950;
  box-shadow: 0 10px 20px rgba(23,49,58,.16);
}

.role-dentiste .message-tile-role-mark-v2 { background: var(--orange); }
.role-assistante .message-tile-role-mark-v2 { background: #0f8a93; }
.role-cabinet .message-tile-role-mark-v2 { background: #087278; }

.message-tile-presence-v2 {
  position: absolute;
  right: 2px;
  top: 5px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 3px solid #fff;
  background: #cbd5e1;
  box-shadow: 0 8px 18px rgba(23,49,58,.16);
}
.message-tile-presence-v2.online { background: #14a36f; }
.message-tile-presence-v2.offline { background: #cbd5e1; }

.message-conversation-tile-v2 .message-card-body-v2 {
  align-content: center;
  gap: 8px;
}

.message-conversation-tile-v2 .message-card-top-v2 strong {
  font-size: 16px;
  line-height: 1.16;
}

.message-conversation-tile-v2 .message-card-top-v2 small {
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(11,123,131,.08);
  color: var(--primary-dark);
  white-space: nowrap;
}

.message-conversation-tile-v2 .message-card-meta-v2 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  white-space: normal;
  overflow: visible;
}

.message-conversation-tile-v2 .message-card-meta-v2 span {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(11,123,131,.08);
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 900;
}

.message-conversation-tile-v2 .message-card-preview-v2 {
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.35;
  color: #334155;
  font-size: 13px;
}

.message-card-foot-v2 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.message-status-pill-v2 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 11px;
  font-weight: 950;
}
.message-status-pill-v2.online {
  background: #ecfdf5;
  color: #067647;
}
.message-status-pill-v2.online::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #14a36f;
}
.message-status-pill-v2.offline::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #cbd5e1;
}

.message-read-dot-v2 {
  min-width: 24px;
  height: 24px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(11,123,131,.08);
  color: var(--primary-dark);
  font-weight: 950;
}

.message-conversation-tile-v2 .message-unread-badge-v2 {
  position: static;
  min-width: 28px;
  height: 28px;
  font-size: 13px;
}

@media (max-width: 760px) {
  .message-conversation-list-v2 {
    gap: 12px;
    max-height: calc(100dvh - 320px);
    padding: 0 10px 14px;
  }
  .message-conversation-card-v2.message-conversation-tile-v2 {
    grid-template-columns: 80px minmax(0, 1fr);
    min-height: 118px;
    padding: 12px;
    border-radius: 24px;
  }
  .message-tile-photo-wrap-v2 {
    width: 80px;
    height: 80px;
  }
  .message-avatar-tile-v2 {
    width: 74px;
    height: 74px;
    border-radius: 24px;
    font-size: 22px;
  }
  .message-conversation-tile-v2 .message-card-top-v2 {
    gap: 8px;
  }
  .message-conversation-tile-v2 .message-card-top-v2 strong {
    font-size: 15px;
  }
  .message-conversation-tile-v2 .message-card-meta-v2 span {
    font-size: 10px;
    padding: 4px 7px;
  }
}

/* V2.0.42.84 — messages en cartes + conversation en popup */
.message-page-header-v3 {
  align-items: flex-start;
  gap: 14px;
}
.message-board-v3 {
  border: 1px solid var(--line);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(240,251,251,.72));
  box-shadow: 0 18px 48px rgba(23,49,58,.08);
  padding: 18px;
  display: grid;
  gap: 18px;
}
.message-board-toolbar-v3 {
  display: grid;
  grid-template-columns: minmax(240px, 420px) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
}
.message-search-v3 .search-input { width: 100%; }
.message-tabs-v3 {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
  scrollbar-width: thin;
}
.message-tab-v3 {
  border: 1px solid rgba(11,123,131,.16);
  background: rgba(255,255,255,.9);
  color: var(--primary-dark);
  border-radius: 999px;
  padding: 10px 13px;
  font-weight: 950;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 42px;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.message-tab-v3 span {
  min-width: 20px;
  height: 20px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: rgba(11,123,131,.10);
  font-size: 11px;
}
.message-tab-v3.active,
.message-tab-v3:hover {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 10px 22px rgba(11,123,131,.18);
  transform: translateY(-1px);
}
.message-tab-v3.active span,
.message-tab-v3:hover span { background: rgba(255,255,255,.24); }
.message-card-grid-v3 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  align-items: stretch;
}
.message-conversation-card-v3 {
  position: relative;
  width: 100%;
  min-height: 210px;
  border: 1px solid rgba(11,123,131,.16);
  border-radius: 28px;
  background:
    radial-gradient(circle at top left, rgba(11,123,131,.12), transparent 42%),
    linear-gradient(135deg, #fff, #f5ffff 76%);
  box-shadow: 0 14px 34px rgba(23,49,58,.08);
  padding: 16px;
  text-align: left;
  cursor: pointer;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.message-conversation-card-v3::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: var(--primary);
  opacity: .82;
}
.message-conversation-card-v3.role-dentiste::before { background: var(--orange); }
.message-conversation-card-v3.role-assistante::before { background: #0f8a93; }
.message-conversation-card-v3.role-cabinet::before { background: #087278; }
.message-conversation-card-v3:hover,
.message-conversation-card-v3.active {
  transform: translateY(-3px);
  box-shadow: 0 24px 54px rgba(23,49,58,.15);
  border-color: rgba(11,123,131,.45);
}
.message-card-photo-zone-v3 {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-height: 92px;
}
.message-avatar-card-v3 {
  width: 90px;
  height: 90px;
  border-radius: 30px;
  object-fit: cover;
  display: grid;
  place-items: center;
  border: 4px solid rgba(255,255,255,.95);
  outline: 2px solid rgba(11,123,131,.18);
  background: linear-gradient(135deg, rgba(11,123,131,.18), rgba(216,104,42,.14));
  color: var(--primary-dark);
  font-size: 26px;
  font-weight: 950;
  box-shadow: 0 16px 30px rgba(23,49,58,.15);
}
.message-card-role-mark-v3 {
  position: absolute;
  left: calc(50% - 52px);
  bottom: 2px;
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--primary);
  color: #fff;
  border: 2px solid #fff;
  font-size: 13px;
  font-weight: 950;
  box-shadow: 0 10px 20px rgba(23,49,58,.16);
}
.role-dentiste .message-card-role-mark-v3 { background: var(--orange); }
.role-assistante .message-card-role-mark-v3 { background: #0f8a93; }
.role-cabinet .message-card-role-mark-v3 { background: #087278; }
.message-card-presence-v3 {
  position: absolute;
  right: calc(50% - 51px);
  top: 6px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 3px solid #fff;
  background: #cbd5e1;
  box-shadow: 0 8px 18px rgba(23,49,58,.16);
}
.message-card-presence-v3.online { background: #14a36f; }
.message-card-content-v3 {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
}
.message-card-line-v3 {
  display: flex;
  gap: 10px;
  align-items: baseline;
  justify-content: space-between;
}
.message-card-line-v3 strong {
  color: var(--primary-dark);
  font-size: 18px;
  line-height: 1.15;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.message-card-line-v3 small {
  color: var(--primary-dark);
  background: rgba(11,123,131,.08);
  border-radius: 999px;
  padding: 5px 8px;
  font-size: 12px;
  font-weight: 950;
  white-space: nowrap;
}
.message-card-tags-v3 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.message-card-tags-v3 span {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(11,123,131,.08);
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 900;
}
.message-card-preview-v3 {
  color: #334155;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.message-card-bottom-v3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}
.message-card-bottom-v3 b {
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--orange);
  color: #fff;
  box-shadow: 0 8px 18px rgba(216,104,42,.25);
}
.message-card-bottom-v3 em {
  min-width: 26px;
  height: 26px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(11,123,131,.08);
  color: var(--primary-dark);
  font-style: normal;
  font-weight: 950;
}
.message-empty-state-v3 { grid-column: 1 / -1; }
.message-popup-backdrop-v3 {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(15, 35, 42, .54);
  backdrop-filter: blur(6px);
  padding: 24px;
  display: grid;
  place-items: center;
  animation: messageFadeV3 .16s ease both;
}
.message-popup-v3 {
  width: min(980px, 100%);
  max-height: min(92dvh, 860px);
  border-radius: 30px;
  border: 1px solid rgba(11,123,131,.18);
  background: linear-gradient(180deg, #ffffff, #f6ffff 62%);
  box-shadow: 0 34px 84px rgba(15,35,42,.28);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  animation: messagePopV3 .18s ease both;
}
.message-popup-head-v3 {
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
}
.message-popup-identity-v3 {
  display: flex;
  gap: 14px;
  align-items: center;
  min-width: 0;
}
.message-avatar-popup-v3 {
  width: 72px;
  height: 72px;
  border-radius: 24px;
  object-fit: cover;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 3px solid rgba(255,255,255,.96);
  outline: 2px solid rgba(11,123,131,.18);
  background: linear-gradient(135deg, rgba(11,123,131,.18), rgba(216,104,42,.14));
  color: var(--primary-dark);
  font-weight: 950;
  font-size: 22px;
}
.message-popup-identity-v3 h2 {
  margin: 0;
  color: var(--primary-dark);
  font-size: 22px;
}
.message-popup-identity-v3 p {
  margin: 4px 0 8px;
  color: var(--muted);
  font-weight: 850;
}
.message-popup-close-v3 {
  font-size: 24px;
  min-width: 50px;
  min-height: 50px;
}
.message-status-pill-v3 {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 12px;
  font-weight: 950;
}
.message-status-pill-v3::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #cbd5e1;
}
.message-status-pill-v3.online {
  background: #ecfdf5;
  color: #067647;
}
.message-status-pill-v3.online::before { background: #14a36f; }
.message-popup-info-v3 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--line);
  background: rgba(240,251,251,.78);
}
.message-popup-info-v3 span {
  padding: 7px 10px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(11,123,131,.12);
  color: var(--muted);
  font-weight: 800;
}
.message-popup-info-v3 strong { color: var(--primary-dark); }
.message-thread-v3 {
  min-height: 0;
  overflow: auto;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  scroll-behavior: smooth;
  background:
    radial-gradient(circle at top left, rgba(11,123,131,.08), transparent 34%),
    linear-gradient(180deg, rgba(247,252,252,.92), rgba(255,255,255,.96));
}
.message-popup-v3 .message-compose-v2 {
  border-top: 1px solid var(--line);
  background: rgba(255,255,255,.97);
}
@keyframes messageFadeV3 { from { opacity: 0; } to { opacity: 1; } }
@keyframes messagePopV3 { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 760px) {
  .message-board-v3 {
    padding: 12px;
    border-radius: 22px;
  }
  .message-board-toolbar-v3 {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .message-tabs-v3 {
    margin-inline: -2px;
    padding-bottom: 4px;
    scrollbar-width: none;
  }
  .message-tabs-v3::-webkit-scrollbar { display: none; }
  .message-card-grid-v3 {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .message-conversation-card-v3 {
    min-height: 190px;
    border-radius: 24px;
  }
  .message-avatar-card-v3 {
    width: 84px;
    height: 84px;
    border-radius: 28px;
  }
  .message-card-line-v3 strong { font-size: 17px; }
  .message-popup-backdrop-v3 {
    padding: 0;
    place-items: stretch;
  }
  .message-popup-v3 {
    width: 100%;
    max-height: 100dvh;
    height: 100dvh;
    border-radius: 0;
    border: 0;
  }
  .message-popup-head-v3 {
    padding: 12px;
    align-items: flex-start;
  }
  .message-avatar-popup-v3 {
    width: 56px;
    height: 56px;
    border-radius: 20px;
  }
  .message-popup-identity-v3 h2 { font-size: 18px; }
  .message-popup-identity-v3 p { font-size: 13px; }
  .message-popup-info-v3 {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding: 10px 12px;
  }
  .message-popup-info-v3 span { white-space: nowrap; }
  .message-thread-v3 {
    padding: 14px;
  }
  .message-popup-v3 .message-compose-v2 {
    grid-template-columns: 1fr auto;
    padding: 10px;
  }
  .message-popup-v3 .message-compose-tools-v2 {
    grid-column: 1 / -1;
  }
}

/* v2.0.42.85 — clôture admin encadrée des missions passées */
.admin-closure-card {
  border: 1px solid rgba(10, 126, 132, 0.22);
}
.admin-closure-card.warning {
  border-color: rgba(218, 103, 43, 0.34);
  background: linear-gradient(135deg, rgba(255, 248, 242, 0.96), rgba(241, 252, 252, 0.96));
}
.admin-closure-card.success {
  border-color: rgba(10, 126, 132, 0.24);
  background: linear-gradient(135deg, rgba(241, 252, 252, 0.96), rgba(255, 255, 255, 0.98));
}
.admin-closure-preview {
  display: grid;
  gap: 10px;
  margin: 14px 0;
}
.admin-closure-item {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(10, 126, 132, 0.16);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 8px 22px rgba(3, 57, 64, 0.06);
}
.admin-closure-item strong {
  color: var(--color-primary, #006b72);
}
.admin-closure-item span,
.admin-closure-item small {
  color: var(--color-muted, #58717a);
}
@media (max-width: 760px) {
  .admin-closure-card .actions {
    align-items: stretch;
  }
  .admin-closure-card .actions .btn {
    width: 100%;
  }
}

/* V2.0.42.88 — Suivi mission en cartes, distinct des conversations */
.mission-tracking-board-v3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.mission-card-v3 {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(11,123,131,.16);
  border-radius: 28px;
  background:
    radial-gradient(circle at top left, rgba(11,123,131,.10), transparent 42%),
    linear-gradient(135deg, #fff, #f6ffff 78%);
  box-shadow: 0 14px 34px rgba(23,49,58,.08);
  padding: 16px;
  display: grid;
  gap: 14px;
}
.mission-card-v3::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: var(--primary);
  opacity: .9;
}
.mission-card-v3.role-dentiste::before { background: var(--orange); }
.mission-card-v3.role-assistante::before { background: #0f8a93; }
.mission-card-v3.is-past-due {
  background:
    radial-gradient(circle at top left, rgba(216,104,42,.12), transparent 44%),
    linear-gradient(135deg, #fff, #fffaf5 78%);
}
.mission-card-head-v3,
.mission-card-main-v3,
.mission-card-actions-v3 {
  display: flex;
  align-items: center;
  gap: 12px;
}
.mission-card-head-v3 { justify-content: space-between; }
.mission-card-kicker-v3 {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.mission-card-icon-v3 {
  width: 72px;
  height: 72px;
  flex: 0 0 auto;
  border-radius: 24px;
  display: grid;
  place-items: center;
  border: 4px solid rgba(255,255,255,.95);
  outline: 2px solid rgba(11,123,131,.18);
  background: linear-gradient(135deg, rgba(11,123,131,.16), rgba(216,104,42,.12));
  color: var(--primary-dark);
  font-size: 24px;
  font-weight: 950;
  box-shadow: 0 13px 26px rgba(23,49,58,.13);
}
.role-dentiste .mission-card-icon-v3 { color: var(--orange); }
.mission-card-title-v3 { min-width: 0; }
.mission-card-title-v3 h3 {
  margin: 0 0 4px;
  color: var(--primary-dark);
  font-size: 20px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.mission-card-title-v3 p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.mission-card-role-v3 {
  display: inline-flex;
  margin-top: 8px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(11,123,131,.10);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 900;
}
.mission-card-facts-v3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}
.mission-card-facts-v3 span {
  min-width: 0;
  border: 1px solid rgba(11,123,131,.10);
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  padding: 10px;
  display: grid;
  gap: 4px;
}
.mission-card-facts-v3 small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.mission-card-facts-v3 strong {
  color: var(--text);
  font-size: 13px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.mission-message-unread-v3,
.mission-message-read-v3 {
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 900;
}
.mission-message-unread-v3 { color: var(--orange); }
.mission-message-preview-v3 {
  margin: 0;
  color: var(--muted);
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.mission-message-preview-v3 strong { color: var(--primary-dark); }
.mission-card-actions-v3 {
  flex-wrap: wrap;
  align-items: stretch;
}
.mission-card-actions-v3 .btn { flex: 1 1 150px; }
.mission-card-note-v3 {
  display: inline-flex;
  align-items: center;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
@media (max-width: 760px) {
  .mission-tracking-board-v3 {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .mission-card-v3 {
    border-radius: 24px;
    padding: 14px;
  }
  .mission-card-main-v3 {
    align-items: flex-start;
  }
  .mission-card-icon-v3 {
    width: 58px;
    height: 58px;
    border-radius: 20px;
    font-size: 20px;
  }
  .mission-card-title-v3 h3 { font-size: 18px; }
  .mission-card-facts-v3 {
    grid-template-columns: 1fr;
  }
  .mission-card-actions-v3 {
    display: grid;
    grid-template-columns: 1fr;
  }
  .mission-card-actions-v3 .btn {
    width: 100%;
  }
}

/* V2.0.42.89 — Suivi mission mobile en slide horizontal + bouton messages lié grisé à 0 */
.mission-linked-messages-btn-v3:disabled {
  opacity: .48;
  cursor: not-allowed;
  filter: grayscale(.35);
  box-shadow: none;
}

@media (max-width: 760px) {
  .mission-tracking-board-v3 {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 12px;
    margin-inline: -4px;
    padding: 2px 4px 14px;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .mission-tracking-board-v3::-webkit-scrollbar { display: none; }
  .mission-card-v3 {
    flex: 0 0 min(88vw, 390px);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* V2.0.43.00 — option collaboration dentiste sans nouveau rôle métier */
@media (min-width: 981px) {
  .request-type-grid.demande-tabs-v1 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.request-type-card.request-type-collaboration { border-color: #c8d7ff; background: linear-gradient(135deg,#f3f6ff 0%,#fff 78%); }
.request-type-card.request-type-collaboration span { background: #5867b3; }
.request-type-card.request-type-collaboration.active,
.request-type-card.request-type-collaboration:hover { border-color: #5867b3; background: #eef2ff; box-shadow: 0 0 0 3px rgba(88,103,179,.14); }
.request-type-card.request-type-collaboration strong { color: #36428b; }


.collaboration-fields-v2 {
  display: grid;
  gap: 12px;
}
.collaboration-fields-v2.is-hidden,
.delayed-start-option.is-hidden {
  display: none !important;
}
.collaboration-notice-v2 {
  border-color: #c8d7ff;
  background: linear-gradient(135deg, #f5f7ff, #ffffff);
  color: #36428b;
}
.collaboration-notice-v2 strong {
  display: block;
  color: #36428b;
  margin-bottom: 4px;
}
.collaboration-fields-grid-v2 {
  padding: 12px;
  border: 1px solid #d7e0ff;
  border-radius: 18px;
  background: #fbfcff;
}


.security-warning {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid #f0c36d;
  border-radius: 14px;
  background: #fff8e6;
  color: #7a4b00;
  font-weight: 800;
}
.security-warning span {
  font-size: 13px;
  color: #8a5a00;
  font-weight: 700;
}

/* Logo cliquable vers l’accueil */
.brand-home-link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.brand-home-link:hover {
  opacity: 0.92;
}
.brand-home-link:focus-visible {
  outline: 3px solid rgba(0, 120, 141, 0.35);
  outline-offset: 4px;
}

/* v2.0.43.34 — Contact admin / support séparé des missions */
.support-page-header .actions {
  align-items: center;
}
.support-compose-card {
  margin-bottom: 18px;
}
.support-new-form,
.support-archive-panel {
  display: grid;
  gap: 10px;
}
.support-new-form input,
.support-new-form textarea,
.support-archive-panel input {
  width: 100%;
}
.support-card.archived {
  opacity: 0.78;
}
.support-avatar {
  display: inline-grid;
  place-items: center;
  font-weight: 800;
}
.support-popup .message-thread-v3,
.support-thread {
  min-height: 260px;
}
.support-archive-panel {
  border-top: 1px solid rgba(0, 120, 141, 0.14);
  padding: 12px 16px 16px;
  background: rgba(255, 255, 255, 0.72);
}
.support-archive-panel .btn.danger,
.btn.danger {
  border-color: rgba(190, 18, 60, 0.25);
  background: #be123c;
  color: #fff;
}
.support-locked {
  margin: 0;
}


/* V2.0.43.38 — popup décision mission profil robuste */
.mission-decision-popup {
  position: fixed;
  left: 50%;
  top: 22px;
  transform: translate(-50%, -12px) scale(.98);
  width: min(92vw, 460px);
  z-index: 2147483000;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: center;
  padding: 18px 20px;
  border-radius: 24px;
  border: 1px solid rgba(11, 123, 131, .18);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 24px 70px rgba(23, 49, 58, .26);
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  transition: opacity .18s ease, transform .18s ease;
}
.mission-decision-popup.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
}
.mission-decision-popup.validated {
  background: linear-gradient(135deg, #ffffff 0%, #e8fbf8 58%, #fff5e9 100%);
  border-color: rgba(15, 127, 131, .26);
}
.mission-decision-popup.not-selected {
  background: linear-gradient(135deg, #ffffff 0%, #fff7ef 100%);
  border-color: rgba(216, 111, 49, .28);
}
.mission-decision-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(15, 127, 131, .10);
  font-size: 25px;
}
.mission-decision-popup.not-selected .mission-decision-icon {
  background: rgba(216, 111, 49, .12);
}
.mission-decision-content {
  position: relative;
  z-index: 2;
}
.mission-decision-content strong {
  display: block;
  margin: 0 0 4px;
  color: var(--primary-dark);
  font-size: 20px;
  line-height: 1.15;
}
.mission-decision-content p {
  margin: 0;
  color: var(--text);
  font-weight: 800;
  line-height: 1.35;
}
.mission-decision-content small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-weight: 800;
}
.mission-decision-close {
  position: absolute;
  top: 8px;
  right: 10px;
  z-index: 3;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid rgba(23, 49, 58, .10);
  background: rgba(255, 255, 255, .82);
  color: var(--muted);
  font-weight: 900;
  cursor: pointer;
}
.mission-confetti-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.mission-confetti {
  position: absolute;
  top: -18px;
  left: calc(6% + (var(--i) * 5%));
  width: 8px;
  height: 14px;
  border-radius: 3px;
  background: #0f7f83;
  opacity: .9;
  animation: dentamigo-confetti 1.15s ease-out both;
  animation-delay: calc(var(--i) * 38ms);
}
.mission-confetti.c1 { background: #d86f31; }
.mission-confetti.c2 { background: #f6c85f; }
.mission-confetti.c3 { background: #76c7c0; }
.mission-confetti.c4 { background: #ef7b72; }
.mission-confetti.c5 { background: #6f9ceb; }
@keyframes dentamigo-confetti {
  0% { transform: translateY(-20px) rotate(0deg); opacity: 0; }
  12% { opacity: 1; }
  100% { transform: translateY(150px) rotate(320deg); opacity: 0; }
}
@media (max-width: 760px) {
  .mission-decision-popup {
    top: calc(74px + env(safe-area-inset-top));
    width: calc(100vw - 24px);
    padding: 16px 18px;
    border-radius: 22px;
  }
  .mission-decision-content strong { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .mission-decision-popup,
  .mission-confetti { transition: none; animation: none; }
}

/* V2.0.43.39 — popup décision mission visible PC/mobile : styles déjà présents, maintien root/frontend synchronisé. */


/* v2.0.43.72 — admin guidage alertes sans pavés SQL */
.maintenance-advice {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--line);
}
.maintenance-advice p {
  margin: 0 0 6px;
}
.maintenance-advice ol {
  margin: 0 0 0 18px;
  padding: 0;
  color: var(--muted);
  line-height: 1.45;
  font-size: .92rem;
}
.maintenance-sql-box {
  margin-top: 10px;
}
.maintenance-sql-box summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--primary-dark);
}
.maintenance-sql-box pre {
  margin: 10px 0;
  max-height: 260px;
  overflow: auto;
  padding: 12px;
  border-radius: 14px;
  background: #0f172a;
  color: #e5e7eb;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: .82rem;
}

/* Dentamigo 43.79 - masquer les horaires pour les demandes de collaboration */
[data-schedule-fields].is-hidden {
  display: none !important;
}
