/*
 * DoctoZen : composants communs. Mobile d'abord (360 px) ; la mise en page desktop s'active à partir de 992 px.
 * Toutes les valeurs viennent des jetons de theme.css : une page n'a jamais de style propre.
 */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; color-scheme: light; }
body {
  margin: 0;
  font-family: var(--dz-font);
  font-size: var(--dz-text-md);
  line-height: var(--dz-leading);
  color: var(--dz-text);
  background: var(--dz-bg);
  -webkit-font-smoothing: antialiased;
  overflow-wrap: anywhere;
}
img, svg { display: block; max-width: 100%; }
a { color: var(--dz-primary); text-underline-offset: 2px; }
h1, h2, h3 { line-height: 1.25; margin: 0 0 var(--dz-space-2); font-weight: var(--dz-weight-strong); letter-spacing: -0.01em; }
h1 { font-size: var(--dz-text-page-title); }
h2 { font-size: var(--dz-text-lg); }
h3 { font-size: var(--dz-text-card); }
p { margin: 0 0 var(--dz-space-3); }
strong, b { font-weight: var(--dz-weight-strong); }
small { font-size: var(--dz-text-secondary); }
code { font-family: var(--dz-font-mono); }
:focus-visible { outline: none; box-shadow: var(--dz-focus); border-radius: var(--dz-radius-sm); }
[hidden] { display: none !important; }

.dz-icon { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.dz-text-muted { color: var(--dz-text-muted); }
.dz-stack > * + * { margin-top: var(--dz-space-3); }
.dz-skip { position: absolute; left: -999px; top: 0; background: var(--dz-primary); color: #fff; padding: var(--dz-space-2) var(--dz-space-4); z-index: 100; }
.dz-skip:focus { left: var(--dz-space-2); }
.dz-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.dz-back { display: inline-flex; align-items: center; min-height: var(--dz-touch); color: var(--dz-primary); text-decoration: none; font-weight: var(--dz-weight-strong); font-size: var(--dz-text-sm); }

/* État « pressé » commun à tous les éléments cliquables */
.dz-btn, .dz-tile, .dz-chip, .dz-doctor-card, .dz-list__item--link, .dz-tabbar__link, .dz-sidebar__link, .dz-segmented__item, .dz-profile-switch__item {
  transition: transform var(--dz-press-duration) ease, background-color var(--dz-press-duration) ease, border-color var(--dz-press-duration) ease, box-shadow var(--dz-press-duration) ease;
  -webkit-tap-highlight-color: transparent;
}
.dz-btn:active, .dz-tile:active, .dz-chip:active, .dz-doctor-card:active, .dz-list__item--link:active, .dz-tabbar__link:active,
.dz-segmented__item:active, .dz-profile-switch__item:active { transform: scale(var(--dz-press-scale)); }

/* ---------- Shell ---------- */
.dz-shell { min-height: 100vh; padding-top: var(--dz-topbar-h); padding-bottom: var(--dz-bottom-space); }
.dz-topbar {
  position: fixed; inset: 0 0 auto 0; height: var(--dz-topbar-h); z-index: 20;
  display: flex; align-items: center; gap: var(--dz-space-3); padding: 0 var(--dz-space-4);
  background: rgba(255, 255, 255, 0.96); border-bottom: 1px solid var(--dz-border);
  -webkit-backdrop-filter: saturate(1.4) blur(8px); backdrop-filter: saturate(1.4) blur(8px);
}
.dz-brand { display: flex; align-items: center; gap: var(--dz-space-2); font-weight: var(--dz-weight-strong); font-size: var(--dz-text-lg); color: var(--dz-primary); text-decoration: none; min-height: var(--dz-touch); }
.dz-brand img { width: 28px; height: 28px; }
.dz-topbar__user { margin-left: auto; min-width: var(--dz-touch); min-height: var(--dz-touch); display: grid; place-items: center; text-decoration: none; }
.dz-topbar__login { margin-left: auto; }
.dz-network { margin-left: auto; font-size: var(--dz-text-xs); font-weight: var(--dz-weight-strong); color: var(--dz-warning); background: var(--dz-warning-tint); padding: var(--dz-space-1) var(--dz-space-3); border-radius: 999px; }
.dz-network:not([hidden]) + .dz-topbar__user { margin-left: 0; }
.dz-main { max-width: var(--dz-content-max); margin: 0 auto; padding: var(--dz-space-4); }
.dz-main:focus { outline: none; }
/* Démonstration en ligne : bandeau discret et permanent sous la barre du haut. */
.dz-demo-banner { margin: 0; padding: var(--dz-space-1) var(--dz-space-4); text-align: center; font-size: var(--dz-text-xs); font-weight: var(--dz-weight-strong); color: var(--dz-warning); background: var(--dz-warning-tint); border-bottom: 1px solid var(--dz-border); }

/* Barre d'onglets mobile : libellés courts sur une ligne, onglet actif avec pastille de fond */
.dz-tabbar {
  position: fixed; inset: auto 0 0 0; z-index: 20; background: rgba(255, 255, 255, 0.97);
  border-top: 1px solid var(--dz-border); padding-bottom: env(safe-area-inset-bottom);
  -webkit-backdrop-filter: saturate(1.4) blur(8px); backdrop-filter: saturate(1.4) blur(8px);
}
.dz-tabbar__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); list-style: none; margin: 0; padding: 0 var(--dz-space-1); height: var(--dz-tabbar-h); }
.dz-tabbar__link {
  height: 100%; min-width: var(--dz-touch); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  font-size: var(--dz-text-xs); color: var(--dz-text-muted); text-decoration: none; padding: 0 2px;
}
.dz-tabbar__link > span:last-child { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dz-tabbar__pill { display: grid; place-items: center; width: 52px; height: 30px; border-radius: 999px; }
.dz-tabbar__link.is-active { color: var(--dz-primary); font-weight: var(--dz-weight-strong); }
.dz-tabbar__link.is-active .dz-tabbar__pill { background: var(--dz-surface-tint); }

/* Barre latérale desktop (masquée sur mobile) */
.dz-sidebar { display: none; }
.dz-sidebar__list { list-style: none; margin: 0; padding: var(--dz-space-3); display: grid; gap: 2px; }
.dz-sidebar__link {
  display: flex; align-items: center; gap: var(--dz-space-3); min-height: var(--dz-touch); padding: 0 var(--dz-space-3);
  border-radius: var(--dz-radius-sm); color: var(--dz-text); text-decoration: none; font-size: var(--dz-text-card); font-weight: var(--dz-weight-medium);
}
.dz-sidebar__link .dz-icon { width: 20px; height: 20px; color: var(--dz-text-muted); }
.dz-sidebar__link:hover { background: var(--dz-surface-tint-2); }
.dz-sidebar__link.is-active { background: var(--dz-surface-tint); color: var(--dz-primary); font-weight: var(--dz-weight-strong); }
.dz-sidebar__link.is-active .dz-icon { color: var(--dz-primary); }

@media (min-width: 992px) {
  .dz-shell { padding-bottom: 0; padding-left: var(--dz-sidebar-w); }
  .dz-tabbar { display: none; }
  .dz-sidebar {
    display: block; position: fixed; top: var(--dz-topbar-h); bottom: 0; left: 0; width: var(--dz-sidebar-w);
    background: var(--dz-surface); border-right: 1px solid var(--dz-border); overflow-y: auto;
  }
  .dz-main { padding: var(--dz-space-6); }
}

/* ---------- Boutons ---------- */
.dz-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--dz-space-2);
  min-height: var(--dz-touch); padding: 0 var(--dz-space-5); border-radius: var(--dz-radius-sm);
  border: 1px solid transparent; font: inherit; font-size: var(--dz-text-card); font-weight: var(--dz-weight-strong);
  cursor: pointer; text-decoration: none; text-align: center;
}
.dz-btn--primary { background: var(--dz-primary); color: var(--dz-primary-contrast); box-shadow: 0 1px 2px rgba(21, 101, 192, 0.25); }
.dz-btn--primary:hover { background: var(--dz-primary-hover); }
.dz-btn--ghost { background: var(--dz-surface); color: var(--dz-primary); border-color: var(--dz-border-strong); }
.dz-btn--ghost:hover { background: var(--dz-surface-tint-2); }
.dz-btn--danger { color: var(--dz-danger); }
.dz-btn--block { width: 100%; }
/* Bouton compact : plus petit à l'œil, cible tactile intacte (44 px). */
.dz-btn--sm { padding: 0 var(--dz-space-3); font-size: var(--dz-text-sm); }
.dz-btn[disabled] { opacity: .55; cursor: not-allowed; }

/* ---------- Cartes, listes ---------- */
.dz-card { background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: var(--dz-radius); padding: var(--dz-space-4); box-shadow: var(--dz-shadow); margin-bottom: var(--dz-space-4); }
.dz-card > :last-child { margin-bottom: 0; }
.dz-card__title { display: flex; align-items: center; gap: var(--dz-space-2); font-size: var(--dz-text-card); font-weight: var(--dz-weight-strong); color: var(--dz-text); margin-bottom: var(--dz-space-3); }
.dz-card__title .dz-icon { width: 20px; height: 20px; color: var(--dz-primary); }
.dz-grid { display: grid; gap: 0 var(--dz-space-4); }
@media (min-width: 768px) { .dz-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.dz-list { list-style: none; margin: 0; padding: 0; }
.dz-list__item { display: flex; align-items: center; gap: var(--dz-space-3); min-height: var(--dz-touch); padding: var(--dz-space-3) 0; border-bottom: 1px solid var(--dz-border); }
.dz-list li:last-child > .dz-list__item, .dz-list__item:last-child { border-bottom: 0; }
.dz-list__item--link { color: inherit; text-decoration: none; padding-left: var(--dz-space-2); padding-right: var(--dz-space-2); border-radius: var(--dz-radius-sm); }
.dz-list__item--link:hover { background: var(--dz-surface-tint-2); }
.dz-list__item--stack { flex-wrap: wrap; }
.dz-list__item--stack > .dz-list__body { flex-basis: 60%; }
.dz-list__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.dz-list__body strong { font-size: var(--dz-text-card); }
.dz-list__body small { color: var(--dz-text-muted); }
.dz-list__chevron { color: var(--dz-text-muted); width: 20px; height: 20px; }
.dz-card.dz-list { padding: var(--dz-space-1) var(--dz-space-4); }

.dz-avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--dz-gradient-icon); color: var(--dz-primary); font-weight: var(--dz-weight-strong); }
.dz-avatar--sm { width: 36px; height: 36px; font-size: var(--dz-text-sm); }
.dz-avatar--lg { width: 64px; height: 64px; font-size: var(--dz-text-lg); }
img.dz-avatar { object-fit: cover; border: 2px solid var(--dz-surface-tint); }

.dz-badge { display: inline-flex; align-items: center; min-width: 22px; height: 22px; padding: 0 var(--dz-space-2); border-radius: 999px; font-size: var(--dz-text-xs); font-weight: var(--dz-weight-strong); background: var(--dz-surface-tint); color: var(--dz-primary); white-space: nowrap; }
.dz-badge--danger { background: var(--dz-danger-tint); color: var(--dz-danger); }
.dz-badge--info { background: var(--dz-info-tint); color: var(--dz-primary); }
.dz-badge--success { background: var(--dz-success-tint); color: var(--dz-success); }
.dz-badge--warning { background: var(--dz-warning-tint); color: var(--dz-warning); }

.dz-chips { display: flex; gap: var(--dz-space-2); overflow-x: auto; padding-bottom: var(--dz-space-2); margin-bottom: var(--dz-space-3); scrollbar-width: none; }
.dz-chips::-webkit-scrollbar { display: none; }
/* Fondu à droite quand la rangée défile (classe posée par ui-kit.js) : il reste des pastilles à voir. */
.dz-chips.has-more { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent); }
.dz-chip { display: inline-flex; align-items: center; gap: var(--dz-space-2); min-height: var(--dz-touch); padding: 0 var(--dz-space-4); white-space: nowrap; border-radius: 999px; border: 1px solid var(--dz-border-strong); background: var(--dz-surface); color: var(--dz-text); text-decoration: none; font-size: var(--dz-text-sm); font-weight: var(--dz-weight-medium); }
.dz-chip .dz-icon { width: 18px; height: 18px; }
.dz-chip[aria-current="page"] { background: var(--dz-primary); border-color: var(--dz-primary); color: var(--dz-primary-contrast); }

.dz-page-header { display: flex; align-items: center; gap: var(--dz-space-3); margin: var(--dz-space-1) 0 var(--dz-space-4); }
.dz-page-header h1 { margin: 0; }
.dz-page-header p { margin: 0; color: var(--dz-text-muted); font-size: var(--dz-text-secondary); }
.dz-page-header > .dz-icon { color: var(--dz-primary); }
.dz-section-title { font-size: var(--dz-text-section); font-weight: var(--dz-weight-strong); color: var(--dz-text-muted); text-transform: uppercase; letter-spacing: .06em; margin: var(--dz-space-5) 0 var(--dz-space-2); }

.dz-empty { text-align: center; padding: var(--dz-space-6) var(--dz-space-4); color: var(--dz-text-muted); }
.dz-empty h2 { color: var(--dz-text); font-size: var(--dz-text-lg); }
.dz-empty__icon { width: 48px; height: 48px; margin: 0 auto var(--dz-space-3); color: var(--dz-primary); }

.dz-alert { padding: var(--dz-space-3) var(--dz-space-4); border-radius: var(--dz-radius-sm); margin-bottom: var(--dz-space-4); font-size: var(--dz-text-sm); }
.dz-alert--error { background: var(--dz-danger-tint); color: var(--dz-danger); }
.dz-alert--error:empty, .dz-alert--error.validation-summary-valid { display: none; }
.dz-alert--info { background: var(--dz-info-tint); color: var(--dz-primary); }
.dz-alert ul { margin: 0; padding-left: var(--dz-space-4); }
.dz-banner { display: flex; align-items: center; gap: var(--dz-space-2); padding: var(--dz-space-3) var(--dz-space-4); margin-bottom: var(--dz-space-4); border-radius: var(--dz-radius-sm); background: var(--dz-surface-tint); color: var(--dz-primary); font-size: var(--dz-text-sm); font-weight: var(--dz-weight-strong); }
.dz-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--dz-space-2); }
.dz-actions + .dz-card { margin-top: var(--dz-space-3); }

/* ---------- Formulaires ---------- */
.dz-form { display: grid; gap: var(--dz-space-4); }
.dz-field { display: grid; gap: var(--dz-space-1); min-width: 0; }
.dz-field label { font-weight: var(--dz-weight-strong); font-size: var(--dz-text-sm); }
.dz-field input, .dz-field select, .dz-field textarea, .dz-search input, .dz-filters select, .dz-filter-bar input, .dz-filter-bar select, .dz-inline-form input {
  width: 100%; min-height: var(--dz-touch); padding: 0 var(--dz-space-3); font: inherit; color: var(--dz-text);
  background: var(--dz-surface); border: 1px solid var(--dz-border-strong); border-radius: var(--dz-radius-sm);
}
.dz-field textarea { padding: var(--dz-space-3); min-height: 96px; }
.dz-field input:focus, .dz-field select:focus, .dz-field textarea:focus, .dz-search input:focus, .dz-filters select:focus,
.dz-filter-bar input:focus, .dz-filter-bar select:focus, .dz-inline-form input:focus { border-color: var(--dz-primary); box-shadow: var(--dz-focus); outline: none; }
.dz-field__error { color: var(--dz-danger); font-size: var(--dz-text-sm); }
.dz-field__hint { color: var(--dz-text-muted); font-size: var(--dz-text-xs); }
.dz-check { display: flex; align-items: center; gap: var(--dz-space-2); min-height: var(--dz-touch); font-size: var(--dz-text-md); }
.dz-check input { width: 20px; height: 20px; flex: none; accent-color: var(--dz-primary); }
/* 16 px minimum dans les champs : iOS zoome sinon à la saisie. Placé après les règles « font: inherit ». */
input:not([type="checkbox"]):not([type="radio"]):not(.dz-otp), select, textarea { font-size: var(--dz-text-input) !important; }

.dz-search { position: relative; display: flex; align-items: center; margin-bottom: var(--dz-space-4); }
.dz-search .dz-icon { position: absolute; left: var(--dz-space-3); color: var(--dz-text-muted); width: 20px; height: 20px; }
.dz-search input { padding-left: calc(var(--dz-space-3) * 2 + 20px); border-radius: 999px; box-shadow: var(--dz-shadow); }
.dz-search--hero { margin: var(--dz-space-3) 0 0; }
.dz-search--hero input { min-height: 48px; }

.dz-pager { display: flex; align-items: center; justify-content: space-between; gap: var(--dz-space-3); font-size: var(--dz-text-sm); color: var(--dz-text-muted); }
.dz-details > summary { min-height: var(--dz-touch); display: flex; align-items: center; cursor: pointer; font-weight: var(--dz-weight-strong); font-size: var(--dz-text-card); color: var(--dz-primary); }
.dz-details[open] { display: grid; gap: var(--dz-space-4); }
.dz-links { display: flex; justify-content: space-between; gap: var(--dz-space-3); flex-wrap: wrap; font-size: var(--dz-text-sm); }
.dz-links a { display: inline-flex; align-items: center; min-height: var(--dz-touch); }
.dz-inline-form { display: flex; flex: 1; gap: var(--dz-space-2); align-items: center; min-width: 0; }
.dz-inline-form input { flex: 1; min-width: 0; }

/* ---------- Accueil ---------- */
/* Bannière : dégradé bleu ciel léger, texte foncé (contraste AA), compacte. */
.dz-hero { background: var(--dz-gradient-tint); color: var(--dz-text); border: 1px solid var(--dz-border); border-radius: var(--dz-radius-lg); padding: var(--dz-space-4); margin-bottom: var(--dz-space-4); position: relative; overflow: hidden; box-shadow: var(--dz-shadow); }
.dz-hero::after { content: ""; position: absolute; width: 140px; height: 140px; right: -48px; top: -56px; border-radius: 50%; background: var(--dz-accent); opacity: .18; }
.dz-hero__hello { margin: 0; font-size: var(--dz-text-sm); color: var(--dz-text-muted); position: relative; z-index: 1; }
.dz-hero__title { font-size: var(--dz-text-lg); color: var(--dz-primary); margin: 2px 0 0; position: relative; z-index: 1; }
.dz-hero .dz-search { position: relative; z-index: 1; }

.dz-tiles { list-style: none; padding: 0; margin: 0 0 var(--dz-space-2); display: grid; gap: var(--dz-space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .dz-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.dz-tile { display: flex; flex-direction: column; justify-content: space-between; gap: var(--dz-space-3); height: 100%; min-height: 108px; padding: var(--dz-space-4); border-radius: var(--dz-radius); background: var(--dz-surface); border: 1px solid var(--dz-border); color: var(--dz-text); text-decoration: none; box-shadow: var(--dz-shadow); }
.dz-tile:hover { border-color: var(--dz-border-strong); box-shadow: var(--dz-shadow-raised); }
.dz-tile__icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--dz-gradient-icon); color: var(--dz-primary); }
.dz-tile__icon .dz-icon { width: 22px; height: 22px; }
.dz-tile__label { font-size: var(--dz-text-card); font-weight: var(--dz-weight-strong); line-height: 1.3; }
.dz-tile small { display: block; font-weight: var(--dz-weight-regular); color: var(--dz-text-muted); font-size: var(--dz-text-xs); }
/* Nombre impair de tuiles : la dernière occupe toute la ligne (pas de carte orpheline). */
.dz-tiles > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
/* Accueil : prochain rendez-vous. */
.dz-next__body { display: flex; flex-direction: column; gap: 2px; color: var(--dz-text); text-decoration: none; margin-bottom: var(--dz-space-3); }
.dz-next__when { font-size: var(--dz-text-lg); color: var(--dz-primary); }
.dz-tile__value { font-size: var(--dz-text-xl); font-weight: var(--dz-weight-strong); color: var(--dz-primary); line-height: 1; }
.dz-tile--attention { border-color: #F2C27D; background: #FFF9F0; }
.dz-tile--attention .dz-tile__value { color: var(--dz-warning); }
/* Liste d'actions secondaires (icône en pastille, chevron) */
.dz-list__icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex: none; background: var(--dz-gradient-icon); color: var(--dz-primary); }
.dz-list__icon .dz-icon { width: 20px; height: 20px; }


/* Notifications éphémères */
.dz-toasts { position: fixed; left: var(--dz-space-4); right: var(--dz-space-4); bottom: calc(var(--dz-tabbar-h) + var(--dz-space-4) + env(safe-area-inset-bottom)); z-index: 50; display: grid; gap: var(--dz-space-2); pointer-events: none; }
.dz-toast { pointer-events: auto; padding: var(--dz-space-3) var(--dz-space-4); border-radius: var(--dz-radius-sm); background: var(--dz-text); color: #fff; box-shadow: var(--dz-shadow-raised); font-size: var(--dz-text-sm); }
.dz-toast--error { background: var(--dz-danger); }
@media (min-width: 992px) { .dz-toasts { left: auto; width: 360px; bottom: var(--dz-space-5); } }

/* Squelettes de chargement (évitent l'écran blanc en 3G) */
.dz-skeleton { background: linear-gradient(90deg, #E8EEF4 25%, #F3F6F9 50%, #E8EEF4 75%); background-size: 200% 100%; animation: dz-shimmer 1.2s infinite; border-radius: var(--dz-radius-sm); min-height: 16px; }
@keyframes dz-shimmer { to { background-position: -200% 0; } }

/* ---------- Pages d'authentification (connexion, inscription, mot de passe) ---------- */
.dz-auth { min-height: 100vh; background: linear-gradient(180deg, var(--dz-surface-tint) 0%, var(--dz-bg) 55%); }
.dz-auth__main { max-width: 420px; margin: 0 auto; padding: var(--dz-space-5) var(--dz-space-4) var(--dz-space-6); }
.dz-auth__brand { text-align: center; margin-bottom: var(--dz-space-4); }
.dz-auth__brand img { margin: 0 auto var(--dz-space-2); width: 48px; height: 48px; }
.dz-auth__name { font-size: var(--dz-text-xl); font-weight: var(--dz-weight-strong); color: var(--dz-primary); margin: 0; }
.dz-auth__tagline { color: var(--dz-text-muted); margin: 0; font-size: var(--dz-text-sm); }
.dz-auth-card { background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: var(--dz-radius-lg); padding: var(--dz-space-5) var(--dz-space-4); box-shadow: var(--dz-shadow); }
.dz-auth-card__title { font-size: var(--dz-text-page-title); }
.dz-auth-card__footer { text-align: center; margin: var(--dz-space-4) 0 0; font-size: var(--dz-text-sm); }
.dz-steps { display: flex; align-items: center; gap: var(--dz-space-2); font-size: var(--dz-text-sm); color: var(--dz-text-muted); margin-bottom: var(--dz-space-3); }
.dz-steps span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--dz-surface-tint); color: var(--dz-primary); font-weight: var(--dz-weight-strong); }
.dz-steps .dz-steps__current { background: var(--dz-primary); color: var(--dz-primary-contrast); }
.dz-segmented { display: grid; grid-template-columns: 1fr 1fr; gap: var(--dz-space-1); padding: var(--dz-space-1); margin-bottom: var(--dz-space-4); border-radius: var(--dz-radius-sm); background: var(--dz-surface-tint); }
.dz-segmented__item { min-height: var(--dz-touch); display: grid; place-items: center; text-align: center; border-radius: 8px; font-size: var(--dz-text-sm); font-weight: var(--dz-weight-strong); color: var(--dz-primary); text-decoration: none; padding: 0 var(--dz-space-2); }
.dz-segmented__item.is-active { background: var(--dz-surface); box-shadow: var(--dz-shadow); }
/* Filtre à plus de deux choix (statuts) : autant de colonnes que la largeur le permet. */
.dz-segmented--wrap { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); }
.dz-otp { font-size: var(--dz-text-xl) !important; letter-spacing: .4em; text-align: center; font-variant-numeric: tabular-nums; }
.dz-steps-list { margin: 0 0 var(--dz-space-4); padding-left: var(--dz-space-5); display: grid; gap: var(--dz-space-2); }
.dz-qr { margin: 0 auto var(--dz-space-3); border: 1px solid var(--dz-border); border-radius: var(--dz-radius-sm); image-rendering: pixelated; }
.dz-code { font-family: var(--dz-font-mono); background: var(--dz-surface-tint); padding: 2px 6px; border-radius: 4px; word-break: break-all; }
.dz-recovery-codes { list-style: none; padding: 0; margin: 0 0 var(--dz-space-4); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dz-space-2); }
.dz-recovery-codes code { display: block; text-align: center; font: var(--dz-weight-strong) var(--dz-text-md) var(--dz-font-mono); letter-spacing: .08em; padding: var(--dz-space-2); background: var(--dz-surface-tint); border-radius: var(--dz-radius-sm); }

/* ---------- Bascule de profil (barre supérieure) ---------- */
.dz-profile-switch { position: relative; margin-left: auto; }
.dz-profile-switch + .dz-topbar__user { margin-left: 0; }
.dz-network:not([hidden]) ~ .dz-profile-switch { margin-left: 0; }
.dz-profile-switch > summary { list-style: none; display: flex; align-items: center; gap: var(--dz-space-2); min-height: var(--dz-touch); padding: 0 var(--dz-space-2) 0 var(--dz-space-1); border-radius: 999px; background: var(--dz-surface-tint); color: var(--dz-primary); font-weight: var(--dz-weight-strong); font-size: var(--dz-text-sm); cursor: pointer; }
.dz-profile-switch > summary::-webkit-details-marker { display: none; }
.dz-profile-switch > summary .dz-icon { width: 18px; height: 18px; }
.dz-profile-switch__label { max-width: 7.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dz-profile-switch__menu { position: absolute; right: 0; top: calc(100% + var(--dz-space-1)); min-width: 220px; max-width: calc(100vw - 2 * var(--dz-space-4)); display: grid; padding: var(--dz-space-2); background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: var(--dz-radius); box-shadow: var(--dz-shadow-raised); }
.dz-profile-switch__item { display: flex; align-items: center; gap: var(--dz-space-2); min-height: var(--dz-touch); padding: 0 var(--dz-space-2); border: 0; border-radius: var(--dz-radius-sm); background: none; font: inherit; font-size: var(--dz-text-card); color: var(--dz-text); text-align: left; text-decoration: none; cursor: pointer; }
.dz-profile-switch__item:hover, .dz-profile-switch__item[aria-pressed="true"] { background: var(--dz-surface-tint); color: var(--dz-primary); font-weight: var(--dz-weight-strong); }

/* ---------- Menu du compte (barre supérieure) ---------- */
.dz-account-menu { position: relative; margin-left: auto; }
.dz-profile-switch + .dz-account-menu, .dz-network:not([hidden]) ~ .dz-account-menu { margin-left: 0; }
.dz-account-menu > summary { list-style: none; cursor: pointer; }
.dz-account-menu > summary::-webkit-details-marker { display: none; }
.dz-account-menu__icon { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--dz-border-strong); color: var(--dz-primary); background: var(--dz-surface); }
.dz-account-menu__icon .dz-icon { width: 20px; height: 20px; }
.dz-account-menu__panel { position: absolute; right: 0; top: calc(100% + var(--dz-space-1)); min-width: 220px; display: grid; padding: var(--dz-space-2); background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: var(--dz-radius); box-shadow: var(--dz-shadow-raised); }
.dz-account-menu__panel form { display: grid; }
.dz-account-menu__name { margin: 0; padding: var(--dz-space-2); font-size: var(--dz-text-sm); color: var(--dz-text-muted); border-bottom: 1px solid var(--dz-border); }

/* ---------- Mes proches ---------- */
/* Avatar et texte sur la première ligne, actions alignées sous le texte : rien n'est écrasé sur 360 px. */
.dz-dependent { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--dz-space-3); row-gap: var(--dz-space-2); align-items: start; }
.dz-dependent__actions { grid-column: 2; display: flex; align-items: center; gap: var(--dz-space-2); }
@media (min-width: 600px) { .dz-dependent { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; } .dz-dependent__actions { grid-column: 3; } }
.dz-icon-btn { width: var(--dz-touch); height: var(--dz-touch); display: grid; place-items: center; flex: none; border-radius: 50%; color: var(--dz-primary); text-decoration: none; border: 1px solid var(--dz-border-strong); background: var(--dz-surface); }
.dz-icon-btn:hover { background: var(--dz-surface-tint-2); }
.dz-icon-btn .dz-icon { width: 20px; height: 20px; }
.dz-block-action { margin: var(--dz-space-4) 0 var(--dz-space-5); }

/* ---------- Trouver un médecin ---------- */
.dz-finder { background: var(--dz-gradient-tint); border: 1px solid var(--dz-border); border-radius: var(--dz-radius-lg); padding: var(--dz-space-4); margin-bottom: var(--dz-space-3); box-shadow: var(--dz-shadow); }
.dz-finder__title { margin: 0; font-size: var(--dz-text-page-title); color: var(--dz-primary); }
.dz-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dz-space-2); margin-bottom: var(--dz-space-3); }
.dz-filters select { padding: 0 var(--dz-space-2); }
.dz-doctor-list { list-style: none; margin: 0 0 var(--dz-space-4); padding: 0; display: grid; gap: var(--dz-space-3); }
@media (min-width: 768px) { .dz-doctor-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dz-doctor-card { display: flex; align-items: center; gap: var(--dz-space-3); padding: var(--dz-space-4); background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: var(--dz-radius); color: inherit; text-decoration: none; box-shadow: var(--dz-shadow); }
.dz-doctor-card:hover { border-color: var(--dz-border-strong); box-shadow: var(--dz-shadow-raised); }
.dz-doctor-card .dz-avatar { width: 52px; height: 52px; }
.dz-doctor-card__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.dz-doctor-card__body strong { font-size: var(--dz-text-card); }
.dz-doctor-card__place { display: flex; align-items: center; gap: 4px; color: var(--dz-text-muted); font-size: var(--dz-text-sm); }
.dz-doctor-card__place .dz-icon { width: 14px; height: 14px; }
.dz-doctor-card__specialty { color: var(--dz-primary); font-size: var(--dz-text-sm); font-weight: var(--dz-weight-medium); }
.dz-doctor-card__modes { display: flex; flex-wrap: wrap; gap: var(--dz-space-1); margin-top: var(--dz-space-1); }

/* ---------- Mes lieux, proches ---------- */
.dz-attach { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--dz-space-3); width: 100%; }
.dz-attach .dz-list__body { flex-basis: 100%; }
.dz-specialty-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 140px), 1fr)); gap: 0 var(--dz-space-3); }
.dz-transfer-code { text-align: center; margin: var(--dz-space-4) 0; }
.dz-transfer-code code { display: inline-block; font: var(--dz-weight-strong) var(--dz-text-xl) var(--dz-font-mono); letter-spacing: .12em; padding: var(--dz-space-3) var(--dz-space-4); background: var(--dz-surface-tint); border-radius: var(--dz-radius-sm); }

/* ---------- Administration ---------- */
.dz-filter-bar { display: grid; gap: var(--dz-space-2); margin-bottom: var(--dz-space-4); }
@media (min-width: 768px) { .dz-filter-bar { grid-template-columns: 2fr 1fr 1fr auto; align-items: end; } }
.dz-audit-row { font-size: var(--dz-text-sm); }
.dz-audit-row code { font-size: var(--dz-text-xs); }

/* ---------- Écrans secondaires : retour à gauche, titre centré ---------- */
.dz-screen-header { display: grid; grid-template-columns: var(--dz-touch) minmax(0, 1fr) var(--dz-touch); align-items: center; gap: var(--dz-space-2); margin: calc(var(--dz-space-2) * -1) 0 var(--dz-space-3); }
.dz-screen-header__back, .dz-screen-header__action { width: var(--dz-touch); height: var(--dz-touch); display: grid; place-items: center; border-radius: 50%; color: var(--dz-primary); text-decoration: none; }
.dz-screen-header__back:hover, .dz-screen-header__action:hover { background: var(--dz-surface-tint-2); }
.dz-screen-header__title { text-align: center; min-width: 0; }
.dz-screen-header__title h1 { margin: 0; font-size: var(--dz-text-lg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dz-screen-header__title p { margin: 0; font-size: var(--dz-text-sm); color: var(--dz-primary); font-weight: var(--dz-weight-medium); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dz-screen-help { margin-bottom: var(--dz-space-4); font-size: var(--dz-text-sm); }
.dz-banner--neutral { background: var(--dz-surface); border: 1px solid var(--dz-border); color: var(--dz-text-muted); font-weight: var(--dz-weight-regular); }
.dz-banner .dz-icon { width: 20px; height: 20px; flex: none; }

/* ---------- Dossier médical ---------- */
.dz-record-card { background: var(--dz-gradient-tint); border: 1px solid var(--dz-border); border-radius: var(--dz-radius-lg); padding: var(--dz-space-4); margin-bottom: var(--dz-space-4); box-shadow: var(--dz-shadow); }
.dz-record-card__who { display: flex; align-items: center; gap: var(--dz-space-3); margin-bottom: var(--dz-space-3); }
.dz-record-card__who h1 { margin: 0; }
.dz-record-card__who p { margin: 2px 0 0; font-size: var(--dz-text-sm); }
.dz-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dz-space-2); margin: 0; }
@media (min-width: 600px) { .dz-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.dz-facts__item { background: var(--dz-surface); border-radius: var(--dz-radius-sm); padding: var(--dz-space-2) var(--dz-space-3); }
.dz-facts dt { font-size: var(--dz-text-xs); color: var(--dz-text-muted); }
.dz-facts dd { margin: 0; font-weight: var(--dz-weight-strong); font-size: var(--dz-text-card); }
.dz-link-action { display: inline-flex; align-items: center; min-height: var(--dz-touch); font-size: var(--dz-text-sm); font-weight: var(--dz-weight-strong); }

.dz-callout { display: flex; align-items: center; gap: var(--dz-space-3); padding: var(--dz-space-3) var(--dz-space-4); margin-bottom: var(--dz-space-4); border-radius: var(--dz-radius); border: 1px solid var(--dz-border); background: var(--dz-surface); color: var(--dz-text); text-decoration: none; box-shadow: var(--dz-shadow); }
.dz-callout--warning { border-color: #F2C27D; background: #FFF9F0; }
.dz-callout--warning .dz-list__icon { background: var(--dz-warning-tint); color: var(--dz-warning); }
.dz-callout small { color: var(--dz-text-muted); }

/* Liste des rubriques : icône, libellé, compteur, dernière mise à jour */
.dz-sections { list-style: none; margin: 0 0 var(--dz-space-4); padding: var(--dz-space-1) var(--dz-space-2); background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: var(--dz-radius); box-shadow: var(--dz-shadow); }
.dz-sections li + li { border-top: 1px solid var(--dz-border); }
.dz-section-row { display: flex; align-items: center; gap: var(--dz-space-3); min-height: 60px; padding: var(--dz-space-2); color: inherit; text-decoration: none; border-radius: var(--dz-radius-sm); }
.dz-section-row:hover { background: var(--dz-surface-tint-2); }
.dz-section-row__icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; flex: none; background: var(--dz-gradient-icon); color: var(--dz-primary); }
.dz-section-row__icon .dz-icon { width: 22px; height: 22px; }
.dz-section-row__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.dz-section-row__body strong { font-size: var(--dz-text-card); }
.dz-section-row__body small { color: var(--dz-text-muted); }

/* Entrées d'une rubrique et de la chronologie */
.dz-entries { list-style: none; margin: 0 0 var(--dz-space-3); padding: var(--dz-space-1) var(--dz-space-2); }
.dz-entries li + li { border-top: 1px solid var(--dz-border); }
.dz-entry { display: flex; align-items: center; gap: var(--dz-space-3); min-height: var(--dz-touch); padding: var(--dz-space-3) var(--dz-space-2); color: inherit; text-decoration: none; border-radius: var(--dz-radius-sm); }
.dz-entry:hover { background: var(--dz-surface-tint-2); }
.dz-entry__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.dz-entry__title { font-size: var(--dz-text-card); }
.dz-entry__section { font-size: var(--dz-text-xs); color: var(--dz-primary); font-weight: var(--dz-weight-strong); text-transform: uppercase; letter-spacing: .04em; }
.dz-entry__value { font-size: var(--dz-text-lg); font-weight: var(--dz-weight-strong); color: var(--dz-primary); font-variant-numeric: tabular-nums; }
.dz-entry__value--lg { font-size: var(--dz-text-xl); margin: 0 0 var(--dz-space-2); }
.dz-entry__detail { color: var(--dz-text); }
.dz-entry__meta { color: var(--dz-text-muted); font-size: var(--dz-text-xs); }
.dz-entry-title { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dz-space-2); font-size: var(--dz-text-lg); }

.dz-details-list { margin: 0 0 var(--dz-space-3); display: grid; gap: var(--dz-space-3); }
.dz-details-list dt { font-size: var(--dz-text-xs); color: var(--dz-text-muted); }
.dz-details-list dd { margin: 0; white-space: pre-line; }
.dz-source { display: flex; align-items: center; gap: var(--dz-space-2); margin: var(--dz-space-3) 0 0; padding-top: var(--dz-space-3); border-top: 1px solid var(--dz-border); font-size: var(--dz-text-sm); color: var(--dz-text-muted); }
.dz-source .dz-icon { width: 18px; height: 18px; }
.dz-document-preview { width: 100%; max-height: 360px; object-fit: contain; border-radius: var(--dz-radius-sm); border: 1px solid var(--dz-border); margin-bottom: var(--dz-space-3); background: var(--dz-surface-tint-2); }
.dz-actions--stack { display: grid; gap: var(--dz-space-2); }
.dz-btn--danger { color: var(--dz-danger); border-color: #F1B9B5; }

/* Paramètres vitaux : dernière mesure de chaque paramètre */
.dz-metrics { list-style: none; margin: 0 0 var(--dz-space-4); padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dz-space-2); }
@media (min-width: 768px) { .dz-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.dz-metric { height: 100%; display: flex; flex-direction: column; gap: 2px; padding: var(--dz-space-3); background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: var(--dz-radius); color: inherit; text-decoration: none; box-shadow: var(--dz-shadow); }
.dz-metric:hover { border-color: var(--dz-border-strong); }
.dz-metric__label { font-size: var(--dz-text-xs); color: var(--dz-text-muted); }
.dz-metric__value { font-size: var(--dz-text-lg); font-weight: var(--dz-weight-strong); color: var(--dz-primary); font-variant-numeric: tabular-nums; }
.dz-metric__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dz-space-1); font-size: var(--dz-text-xs); color: var(--dz-text-muted); }
.dz-chart { position: relative; height: 240px; padding: var(--dz-space-3); margin: 0 0 var(--dz-space-4); }

/* Formulaires de rubrique */
.dz-choice { border: 0; padding: 0; margin: 0; min-width: 0; }
.dz-choice legend { font-weight: var(--dz-weight-strong); font-size: var(--dz-text-sm); padding: 0; margin-bottom: var(--dz-space-1); }
.dz-choice__options { display: flex; flex-wrap: wrap; gap: var(--dz-space-2); }
.dz-choice__options--grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dz-choice__option { position: relative; }
.dz-choice__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dz-choice__option span { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-width: var(--dz-touch); min-height: var(--dz-touch); padding: 0 var(--dz-space-4); border-radius: 999px; border: 1px solid var(--dz-border-strong); background: var(--dz-surface); font-size: var(--dz-text-sm); font-weight: var(--dz-weight-medium); cursor: pointer; }
.dz-choice__option input:checked + span { background: var(--dz-primary); border-color: var(--dz-primary); color: var(--dz-primary-contrast); }
.dz-choice__option input:focus-visible + span { box-shadow: var(--dz-focus); }
.dz-input-unit { position: relative; display: flex; align-items: center; }
.dz-input-unit input { padding-right: 4.5rem; }
.dz-input-unit__label { position: absolute; right: var(--dz-space-3); color: var(--dz-text-muted); font-size: var(--dz-text-sm); pointer-events: none; }
.dz-select-search { width: 100%; min-height: var(--dz-touch); padding: 0 var(--dz-space-3); margin-bottom: var(--dz-space-1); border: 1px dashed var(--dz-border-strong); border-radius: var(--dz-radius-sm); font: inherit; background: var(--dz-surface-tint-2); }
.dz-field--invalid input, .dz-field--invalid select, .dz-field--invalid textarea { border-color: var(--dz-danger); }
.dz-field input[type="file"] { padding: var(--dz-space-2); min-height: var(--dz-touch); }

/* Action principale toujours visible au-dessus de la barre d'onglets */
.dz-sticky-action { position: sticky; bottom: calc(var(--dz-tabbar-h) + env(safe-area-inset-bottom) + var(--dz-space-2)); z-index: 5; padding-top: var(--dz-space-2); margin-top: var(--dz-space-3); background: linear-gradient(to top, var(--dz-bg) 70%, transparent); }
@media (min-width: 992px) { .dz-sticky-action { bottom: var(--dz-space-4); } }
.dz-pager { margin-bottom: var(--dz-space-3); }
.dz-pager .dz-btn:only-child { margin-left: auto; }

/* Animations réduites : ni transition ni effet « pressé ». */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .dz-btn:active, .dz-tile:active, .dz-chip:active, .dz-doctor-card:active, .dz-list__item--link:active, .dz-tabbar__link:active,
  .dz-segmented__item:active, .dz-profile-switch__item:active { transform: none; }
}

/* Rendez-vous : créneaux (grille de boutons de 44 px au moins, 4 par ligne à 360 px) et agenda du médecin. */
.dz-slots { list-style: none; margin: 0 0 var(--dz-space-3); padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: var(--dz-space-2); }
.dz-slots form { margin: 0; }
.dz-slot { display: flex; align-items: center; justify-content: center; width: 100%; min-height: var(--dz-touch); border-radius: var(--dz-radius-sm); border: 1px solid var(--dz-border-strong); background: var(--dz-surface); color: var(--dz-primary); font: inherit; font-size: var(--dz-text-sm); font-weight: var(--dz-weight-strong); text-decoration: none; cursor: pointer; }
.dz-slot:hover, .dz-slot:focus-visible { background: var(--dz-surface-tint); border-color: var(--dz-primary); }
.dz-agenda-nav strong { color: var(--dz-text); text-align: center; }
/* Majuscule à la première lettre seulement (« Semaine du lundi 12 octobre »), pas à chaque mot. */
.dz-agenda-nav strong::first-letter, .dz-card__title a::first-letter { text-transform: uppercase; }
.dz-agenda-item__time { display: grid; flex: none; width: 52px; font-weight: var(--dz-weight-strong); color: var(--dz-primary); font-variant-numeric: tabular-nums; }
.dz-agenda-item__time small { font-weight: var(--dz-weight-regular); color: var(--dz-text-muted); font-size: var(--dz-text-xs); }
.dz-card--today { border-color: var(--dz-primary); }
.dz-card__title a { display: inline-block; color: inherit; text-decoration: none; }
.dz-card__title small { font-weight: var(--dz-weight-regular); margin-left: var(--dz-space-2); }
.dz-icon--flip { transform: scaleX(-1); }

/* Téléconsultation : vidéo de l'autre participant en 4:3 (pleine largeur à 360 px), sa propre image en vignette,
   commandes de 56 px sur une ligne, messages sous la vidéo. Jamais de défilement horizontal. */
.dz-banner--warning { background: var(--dz-warning-tint); color: var(--dz-warning); flex-wrap: wrap; }
.dz-call__with { margin: 0 0 var(--dz-space-3); }
.dz-call__stage { position: relative; overflow: hidden; aspect-ratio: 4 / 3; max-height: 70vh; margin-bottom: var(--dz-space-3); border-radius: var(--dz-radius); background: #10233F; }
.dz-call__remote { width: 100%; height: 100%; object-fit: contain; display: block; }
.dz-call__placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; padding: var(--dz-space-4); color: #FFFFFF; text-align: center; font-weight: var(--dz-weight-strong); }
.dz-call__placeholder[hidden] { display: none; }
.dz-call__self { position: absolute; right: var(--dz-space-2); bottom: var(--dz-space-2); width: 28%; max-width: 160px; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--dz-radius-sm); border: 2px solid #FFFFFF; background: #1D3557; transform: scaleX(-1); }
.dz-call__self[hidden] { display: none; }
.dz-call__quality { position: absolute; left: var(--dz-space-2); top: var(--dz-space-2); display: inline-flex; align-items: center; gap: var(--dz-space-1); padding: 2px var(--dz-space-2); border-radius: 999px; background: rgba(0, 0, 0, 0.55); color: #FFFFFF; font-size: var(--dz-text-xs); }
.dz-call__quality .dz-icon { width: 16px; height: 16px; }
.dz-call__quality[data-level="good"] .dz-icon, .dz-call__quality[data-level="excellent"] .dz-icon { color: #7EE2A8; }
.dz-call__quality[data-level="poor"] .dz-icon, .dz-call__quality[data-level="lost"] .dz-icon { color: #FFB4A9; }
.dz-call__controls { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--dz-space-2); margin-bottom: var(--dz-space-3); }
.dz-call__control { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 56px; padding: var(--dz-space-1); border: 1px solid var(--dz-border-strong); border-radius: var(--dz-radius-sm); background: var(--dz-surface); color: var(--dz-text); font: inherit; font-size: var(--dz-text-xs); cursor: pointer; }
.dz-call__control span { overflow: hidden; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; }
.dz-call__control[aria-pressed="false"]:not([data-call-audio-only]) { background: var(--dz-surface-tint); color: var(--dz-text-muted); }
.dz-call__control[data-call-audio-only][aria-pressed="true"] { background: var(--dz-primary); border-color: var(--dz-primary); color: var(--dz-primary-contrast); }
/* Mobile : « Raccrocher » seul sur sa ligne, large et facile à atteindre ; une seule ligne de 5 boutons dès 768 px. */
.dz-call__control--hangup { grid-column: 1 / -1; flex-direction: row; gap: var(--dz-space-2); background: var(--dz-danger); border-color: var(--dz-danger); color: #FFFFFF; font-size: var(--dz-text-sm); font-weight: var(--dz-weight-strong); }
.dz-call__control:focus-visible { box-shadow: var(--dz-focus); outline: none; }
.dz-call__unread { position: absolute; top: 6px; right: 18%; width: 10px; height: 10px; border-radius: 50%; background: var(--dz-danger); }
.dz-call__unread[hidden] { display: none; }
.dz-call__audio-choice { margin-bottom: var(--dz-space-3); }
.dz-call__chat { margin-bottom: var(--dz-space-3); }
.dz-call__messages { list-style: none; margin: 0 0 var(--dz-space-3); padding: 0; max-height: 220px; overflow-y: auto; display: grid; gap: var(--dz-space-2); }
.dz-call__messages li { max-width: 85%; padding: var(--dz-space-2) var(--dz-space-3); border-radius: var(--dz-radius-sm); background: var(--dz-surface-tint); overflow-wrap: anywhere; }
.dz-call__messages li.dz-call__mine { justify-self: end; background: var(--dz-primary); color: var(--dz-primary-contrast); }
.dz-call__messages small { display: block; opacity: 0.8; font-size: var(--dz-text-xs); }
.dz-call__chat-form { display: flex; gap: var(--dz-space-2); }
.dz-call__chat-form input { flex: 1; min-width: 0; }
.dz-call__note { font-size: var(--dz-text-sm); margin-top: var(--dz-space-3); }
@media (min-width: 768px) {
  .dz-call__stage { aspect-ratio: 16 / 9; }
  .dz-call__controls { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .dz-call__control { font-size: var(--dz-text-sm); }
  .dz-call__control--hangup { grid-column: auto; flex-direction: column; gap: 2px; font-weight: var(--dz-weight-regular); }
}

/* ---------- Cloche des notifications (barre supérieure) ---------- */
.dz-bell { position: relative; margin-left: auto; width: var(--dz-touch); height: var(--dz-touch); display: grid; place-items: center; flex: none; border-radius: 50%; color: var(--dz-primary); text-decoration: none; }
.dz-bell:hover { background: var(--dz-surface-tint-2); }
.dz-bell .dz-icon { width: 22px; height: 22px; }
.dz-profile-switch + .dz-bell, .dz-network:not([hidden]) ~ .dz-bell, .dz-bell + .dz-account-menu { margin-left: 0; }
.dz-bell__count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; display: grid; place-items: center; font-size: 11px; font-weight: var(--dz-weight-strong); line-height: 1; color: #fff; background: var(--dz-danger); }
.dz-bell__count[hidden] { display: none; }

/* ---------- Notifications ---------- */
.dz-notification { display: flex; align-items: flex-start; gap: var(--dz-space-3); width: 100%; min-height: var(--dz-touch); padding: var(--dz-space-3) var(--dz-space-2); border: 0; border-bottom: 1px solid var(--dz-border); border-radius: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.dz-notifications li:last-child .dz-notification { border-bottom: 0; }
.dz-notification:hover { background: var(--dz-surface-tint-2); }
.dz-notification--unread .dz-list__body strong::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: var(--dz-space-2); border-radius: 50%; background: var(--dz-primary); vertical-align: middle; }
.dz-notification .dz-list__body small, .dz-notification .dz-list__body span { overflow-wrap: anywhere; }
.dz-notifications form { margin: 0; }
.dz-preferences { width: 100%; border-collapse: collapse; }
.dz-preferences th, .dz-preferences td { padding: var(--dz-space-2) var(--dz-space-1); border-bottom: 1px solid var(--dz-border); text-align: left; vertical-align: middle; }
.dz-preferences th[scope="col"], .dz-preferences td { text-align: center; width: 72px; }
.dz-preferences th[scope="row"] { font-weight: var(--dz-weight-regular); }
.dz-preferences td .dz-check { justify-content: center; }
/* Barre supérieure étroite (360 px) : marque, bascule de profil, cloche et compte tiennent sur une ligne. */
.dz-brand { white-space: nowrap; flex-shrink: 0; }
@media (max-width: 400px) {
  .dz-topbar { gap: var(--dz-space-1); padding: 0 var(--dz-space-3); }
}

/* ---------- Ordonnances ---------- */
.dz-prescription-line { display: grid; gap: var(--dz-space-3); margin: 0 0 var(--dz-space-3); min-width: 0; }
.dz-prescription-line legend { padding: 0 var(--dz-space-1); font-weight: var(--dz-weight-strong); color: var(--dz-primary); }
.dz-verify-block { display: grid; gap: var(--dz-space-3); justify-items: center; text-align: center; }
.dz-verify-qr { width: 200px; max-width: 70vw; }
.dz-verify-qr svg { display: block; width: 100%; height: auto; }
.dz-verify-url { overflow-wrap: anywhere; }
